package net.lr.karaf.jms.service; import javax.jms.Connection; import org.osgi.framework.BundleContext; import org.osgi.framework.InvalidSyntaxException; import org.osgi.framework.ServiceReference; public class ExtJmsServiceOsgiFactory implements ExtJmsServiceFactory { BundleContext bundleContext; @Override public ExtJmsService create(Connection connection) { ServiceReference[] refs; try { refs = bundleContext.getServiceReferences(ExtJmsServiceFactory.class.getName(), null); } catch (InvalidSyntaxException e) { throw new RuntimeException(e.getMessage(), e); } for (ServiceReference ref : refs) { ExtJmsServiceFactory factory = (ExtJmsServiceFactory)bundleContext.getService(ref); if (factory.canHandle(connection)) { return factory.create(connection); } } return new DummyExtJmsService(); } @Override public boolean canHandle(Connection connection) { return true; } }