View Javadoc

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