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   import org.junit.Test;
7   
8   import static org.junit.Assert.assertFalse;
9   import static org.junit.Assert.assertTrue;
10  
11  /**
12   *
13   */
14  public class TestPluginWithJaxp extends PluginInContainerTestBase {
15      @Test
16      public void testDisposable() throws Exception {
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          pluginController.disablePlugin("test.plugin");
40          assertTrue(StaticBooleanFlag.flag.get());
41          pluginController.enablePlugins("test.plugin");
42  
43          // on framework shutdown
44          StaticBooleanFlag.flag.set(false);
45          osgiContainerManager.stop();
46          assertTrue(StaticBooleanFlag.flag.get());
47      }
48  }