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  public class TestPluginSpringInteraction extends PluginInContainerTestBase {
12      @Test
13      public void testDisposable() throws Exception {
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          pluginController.disablePlugin("test.plugin");
37          assertTrue(StaticBooleanFlag.flag.get());
38          pluginController.enablePlugin("test.plugin");
39  
40          // on framework shutdown
41          StaticBooleanFlag.flag.set(false);
42          osgiContainerManager.stop();
43          assertTrue(StaticBooleanFlag.flag.get());
44      }
45  }