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
37 pluginManager.disablePlugin("test.plugin");
38 assertTrue(StaticBooleanFlag.flag.get());
39 pluginManager.enablePlugin("test.plugin");
40
41
42 StaticBooleanFlag.flag.set(false);
43 osgiContainerManager.stop();
44 assertTrue(StaticBooleanFlag.flag.get());
45 }
46 }