View Javadoc

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