summaryrefslogtreecommitdiff
path: root/java/broker/src/main/java/org/apache/qpid/server/security/SecurityPluginActivator.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/broker/src/main/java/org/apache/qpid/server/security/SecurityPluginActivator.java')
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/security/SecurityPluginActivator.java54
1 files changed, 54 insertions, 0 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/security/SecurityPluginActivator.java b/java/broker/src/main/java/org/apache/qpid/server/security/SecurityPluginActivator.java
new file mode 100644
index 0000000000..789bdd0073
--- /dev/null
+++ b/java/broker/src/main/java/org/apache/qpid/server/security/SecurityPluginActivator.java
@@ -0,0 +1,54 @@
+package org.apache.qpid.server.security;
+
+import org.apache.log4j.Logger;
+import org.apache.qpid.server.configuration.plugins.ConfigurationPluginFactory;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+/**
+ * An OSGi {@link BundleActivator} that loads a {@link SecurityPluginFactory}.
+ */
+public abstract class SecurityPluginActivator implements BundleActivator
+{
+ private static final Logger _logger = Logger.getLogger(SecurityPluginActivator.class);
+
+ private SecurityPluginFactory _factory;
+ private ConfigurationPluginFactory _config;
+ private BundleContext _ctx;
+ private String _bundleName;
+
+ /** Implement this to return the factory this plugin activates. */
+ public abstract SecurityPluginFactory getFactory();
+
+ /** Implement this to return the factory this plugin activates. */
+ public abstract ConfigurationPluginFactory getConfigurationFactory();
+
+ /**
+ * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext ctx) throws Exception
+ {
+ _ctx = ctx;
+ _factory = getFactory();
+ _config = getConfigurationFactory();
+ _bundleName = ctx.getBundle().getSymbolicName();
+
+ // register the service
+ _logger.info("Registering security plugin: " + _bundleName);
+ _ctx.registerService(SecurityPluginFactory.class.getName(), _factory, null);
+ _ctx.registerService(ConfigurationPluginFactory.class.getName(), _config, null);
+ }
+
+ /**
+ * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception
+ {
+ _logger.info("Stopping security plugin: " + _bundleName);
+
+ // null object references
+ _factory = null;
+ _config = null;
+ _ctx = null;
+ }
+}