1 package it.com.atlassian.plugin.osgi;
2
3 import com.atlassian.plugin.DefaultModuleDescriptorFactory;
4 import com.atlassian.plugin.hostcontainer.DefaultHostContainer;
5 import com.atlassian.plugin.osgi.PluginInContainerTestBase;
6 import com.atlassian.plugin.osgi.StaticBooleanFlag;
7 import com.atlassian.plugin.osgi.hostcomponents.ComponentRegistrar;
8 import com.atlassian.plugin.osgi.hostcomponents.HostComponentProvider;
9 import com.atlassian.plugin.test.PluginJarBuilder;
10
11 import java.util.concurrent.Callable;
12
13 public class TestPluginSpringInteraction extends PluginInContainerTestBase
14 {
15 public void testDisposable() throws Exception
16 {
17 StaticBooleanFlag.flag.set(false);
18 new PluginJarBuilder("testDisposable")
19 .addFormattedResource("atlassian-plugin.xml",
20 "<atlassian-plugin name='Test' key='test.plugin' pluginsVersion='2'>",
21 " <plugin-info>",
22 " <version>1.0</version>",
23 " </plugin-info>",
24 " <component key='obj' class='my.Foo'/>",
25 "</atlassian-plugin>")
26 .addFormattedJava("my.Foo",
27 "package my;",
28 "public class Foo implements org.springframework.beans.factory.DisposableBean{",
29 " public void destroy() {",
30 " com.atlassian.plugin.osgi.StaticBooleanFlag.flag.set(true);",
31 " }",
32 "}")
33 .build(pluginsDir);
34
35 initPluginManager();
36 assertFalse(StaticBooleanFlag.flag.get());
37
38
39 pluginManager.disablePlugin("test.plugin");
40 assertTrue(StaticBooleanFlag.flag.get());
41 pluginManager.enablePlugin("test.plugin");
42
43
44 StaticBooleanFlag.flag.set(false);
45 osgiContainerManager.stop();
46 assertTrue(StaticBooleanFlag.flag.get());
47 }
48 }