View Javadoc

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