summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/plugins/Activator.java4
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/plugins/PluginManager.java57
2 files changed, 39 insertions, 22 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/plugins/Activator.java b/java/broker/src/main/java/org/apache/qpid/server/plugins/Activator.java
index b0ebf197f9..89d9c1de74 100644
--- a/java/broker/src/main/java/org/apache/qpid/server/plugins/Activator.java
+++ b/java/broker/src/main/java/org/apache/qpid/server/plugins/Activator.java
@@ -19,6 +19,8 @@
package org.apache.qpid.server.plugins;
+import org.apache.qpid.server.configuration.ServerConfiguration;
+import org.apache.qpid.server.registry.ApplicationRegistry;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
@@ -30,6 +32,8 @@ public class Activator implements BundleActivator
public void start(BundleContext ctx) throws Exception
{
_context = ctx;
+ ctx.registerService(ServerConfiguration.class.getName(), ApplicationRegistry.getInstance().getConfiguration(), null);
+
}
public void stop(BundleContext ctx) throws Exception
diff --git a/java/broker/src/main/java/org/apache/qpid/server/plugins/PluginManager.java b/java/broker/src/main/java/org/apache/qpid/server/plugins/PluginManager.java
index dbfcefb6ab..682c66239b 100644
--- a/java/broker/src/main/java/org/apache/qpid/server/plugins/PluginManager.java
+++ b/java/broker/src/main/java/org/apache/qpid/server/plugins/PluginManager.java
@@ -44,13 +44,12 @@ import org.osgi.util.tracker.ServiceTracker;
/**
*
* @author aidan
- *
+ *
* Provides access to pluggable elements, such as exchanges
*/
public class PluginManager
{
-
private Felix _felix = null;
private ServiceTracker _exchangeTracker = null;
private ServiceTracker _securityTracker = null;
@@ -70,16 +69,28 @@ public class PluginManager
+ "org.osgi.service.packageadmin; version=1.2.0," +
"org.osgi.service.startlevel; version=1.0.0," +
"org.osgi.service.url; version=1.0.0," +
- "org.apache.qpid.framing; version=0.2.1," +
- "org.apache.qpid.server.exchange; version=0.2.1," +
- "org.apache.qpid.server.management; version=0.2.1,"+
- "org.apache.qpid.protocol; version=0.2.1,"+
- "org.apache.qpid.server.virtualhost; version=0.2.1," +
- "org.apache.qpid; version=0.2.1," +
- "org.apache.qpid.server.queue; version=0.2.1," +
+ "org.osgi.util.tracker; version=1.0.0,"+
+ "org.apache.qpid; version=0.7," +
+ "org.apache.qpid.framing; version=0.7," +
+ "org.apache.qpid.server.exchange; version=0.7," +
+ "org.apache.qpid.server.management; version=0.7,"+
+ "org.apache.qpid.server.protocol; version=0.7,"+
+ "org.apache.qpid.server.virtualhost; version=0.7," +
+ "org.apache.qpid.server.registry; version=0.7," +
+ "org.apache.qpid.server.queue; version=0.7," +
+ "org.apache.qpid.server.binding; version=0.7," +
+ "org.apache.qpid.server.configuration; version=0.7," +
+ "org.apache.qpid.server.configuration.management; version=0.7," +
+ "org.apache.qpid.server.persistent; version=0.7," +
+ "org.apache.qpid.server.plugins; version=0.7," +
+ "org.apache.qpid.server.queue; version=0.7," +
+ "org.apache.qpid.server.security; version=0.7," +
+ "org.apache.qpid.framing.AMQShortString; version=0.7," +
+ "org.apache.qpid.server.queue.AMQQueue; version=0.7," +
+ "org.apache.qpid.server.security.access; version=0.7,"+
+ "org.apache.commons.configuration; version=0.7," +
"javax.management.openmbean; version=1.0.0,"+
- "javax.management; version=1.0.0,"+
- "org.apache.qpid.junit.extensions.util; version=0.6.1,"
+ "javax.management; version=1.0.0,"
);
if (plugindir == null)
@@ -91,10 +102,11 @@ public class PluginManager
// Set the list of bundles to load
File dir = new File(plugindir);
if (!dir.exists())
- {
+ {
_empty = true;
return;
- }
+ }
+
StringBuffer pluginJars = new StringBuffer();
if (dir.isDirectory())
@@ -107,6 +119,7 @@ public class PluginManager
}
}
}
+
if (pluginJars.length() == 0)
{
_empty = true;
@@ -124,13 +137,13 @@ public class PluginManager
try
{
_felix.start();
-
+
_exchangeTracker = new ServiceTracker(_activator.getContext(), ExchangeType.class.getName(), null);
_exchangeTracker.open();
_securityTracker = new ServiceTracker(_activator.getContext(), ACLPlugin.class.getName(), null);
- _exchangeTracker.open();
-
+ _securityTracker.open();
+
}
catch (BundleException e)
{
@@ -138,19 +151,19 @@ public class PluginManager
}
}
- private <type> Map<String, type> getServices(ServiceTracker tracker)
+ private <T> Map<String, T> getServices(ServiceTracker tracker)
{
- Map<String, type>exchanges = new HashMap<String, type>();
+ Map<String, T>services = new HashMap<String, T>();
- if (tracker != null)
+ if ((tracker != null) && (tracker.getServices() != null))
{
for (Object service : tracker.getServices())
{
- exchanges.put(service.getClass().getName(), (type) service);
+ services.put(service.getClass().getName(), (T) service);
}
- }
+ }
- return exchanges;
+ return services;
}
public Map<String, ExchangeType<?>> getExchanges()