View Javadoc

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          // on disable
39          pluginManager.disablePlugin("test.plugin");
40          assertTrue(StaticBooleanFlag.flag.get());
41          pluginManager.enablePlugin("test.plugin");
42  
43          // on framework shutdown
44          StaticBooleanFlag.flag.set(false);
45          osgiContainerManager.stop();
46          assertTrue(StaticBooleanFlag.flag.get());
47      }
48  }