[jboss-svn-commits] JBL Code SVN: r35303 - in labs/jbossrules/trunk: drools-api/src/main/java/org/drools/osgi/api and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun Sep 26 18:06:29 EDT 2010
Author: atoulme
Date: 2010-09-26 18:06:29 -0400 (Sun, 26 Sep 2010)
New Revision: 35303
Modified:
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/marshalling/MarshallerFactory.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/marshalling/MarshallerProvider.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/osgi/api/Activator.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/ServiceRegistryImpl.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/osgi/core/Activator.java
Log:
make MarshallerProvider available over OSGi
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/marshalling/MarshallerFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/marshalling/MarshallerFactory.java 2010-09-26 20:51:24 UTC (rev 35302)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/marshalling/MarshallerFactory.java 2010-09-26 22:06:29 UTC (rev 35303)
@@ -18,7 +18,10 @@
import java.io.ByteArrayOutputStream;
+import javax.imageio.spi.ServiceRegistry;
+
import org.drools.KnowledgeBase;
+import org.drools.util.ServiceRegistryImpl;
/**
@@ -124,12 +127,6 @@
}
private static void loadProvider() {
- try {
- Class<MarshallerProvider> cls = (Class<MarshallerProvider>) Class.forName( "org.drools.marshalling.impl.MarshallerProviderImpl" );
- setMarshallerProvider( cls.newInstance() );
- } catch ( Exception e2 ) {
- throw new RuntimeException( "Provider org.drools.marshalling.impl.MarshallerProviderImpl could not be set.",
- e2 );
- }
+ setMarshallerProvider( ServiceRegistryImpl.getInstance().get( MarshallerProvider.class ) );
}
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/marshalling/MarshallerProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/marshalling/MarshallerProvider.java 2010-09-26 20:51:24 UTC (rev 35302)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/marshalling/MarshallerProvider.java 2010-09-26 22:06:29 UTC (rev 35303)
@@ -17,13 +17,14 @@
package org.drools.marshalling;
import org.drools.KnowledgeBase;
+import org.drools.Service;
/**
*
* <p>This api is experimental and thus the classes and the interfaces returned are subject to change.</p>
*
*/
-public interface MarshallerProvider {
+public interface MarshallerProvider extends Service {
ObjectMarshallingStrategyAcceptor newClassFilterAcceptor(String[] patterns);
ObjectMarshallingStrategy newIdentityMarshallingStrategy();
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/osgi/api/Activator.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/osgi/api/Activator.java 2010-09-26 20:51:24 UTC (rev 35302)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/osgi/api/Activator.java 2010-09-26 22:06:29 UTC (rev 35303)
@@ -21,6 +21,7 @@
import java.util.concurrent.Callable;
import org.drools.Service;
+import org.drools.marshalling.MarshallerProvider;
import org.drools.util.ServiceRegistry;
import org.drools.util.ServiceRegistryImpl;
import org.osgi.framework.BundleActivator;
@@ -35,6 +36,7 @@
BundleActivator {
private ServiceRegistration serviceRegistry;
private ServiceTracker registryTracker;
+ private ServiceTracker marshallerProviderTracker;
public void start(BundleContext bc) throws Exception {
System.out.println( "registering api services" );
@@ -47,13 +49,23 @@
Service.class.getName(),
new DroolsServiceTracker( bc,
this ) );
+
registryTracker.open();
+
+ this.marshallerProviderTracker = new ServiceTracker( bc,
+ MarshallerProvider.class.getName(),
+ new DroolsServiceTracker( bc,
+ this) );
+
+ this.marshallerProviderTracker.open();
+
System.out.println( "api drools services registered" );
}
public void stop(BundleContext bc) throws Exception {
this.serviceRegistry.unregister();
this.registryTracker.close();
+ this.marshallerProviderTracker.close();
}
public static class DroolsServiceTracker
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/ServiceRegistryImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/ServiceRegistryImpl.java 2010-09-26 20:51:24 UTC (rev 35302)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/ServiceRegistryImpl.java 2010-09-26 22:06:29 UTC (rev 35303)
@@ -39,6 +39,7 @@
import org.drools.SystemEventListenerService;
import org.drools.builder.KnowledgeBuilderFactoryService;
import org.drools.io.ResourceFactoryService;
+import org.drools.marshalling.MarshallerProvider;
/**
* This is an internal class, not for public consumption.
@@ -176,7 +177,8 @@
addDefault( SystemEventListenerService.class,
"org.drools.impl.SystemEventListenerServiceImpl" );
-
+ addDefault( MarshallerProvider.class,
+ "org.drools.marshalling.impl.MarshallerProviderImpl");
// addDefault( SystemE.class,
// "org.drools.io.impl.ResourceFactoryServiceImpl" );
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/osgi/core/Activator.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/osgi/core/Activator.java 2010-09-26 20:51:24 UTC (rev 35302)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/osgi/core/Activator.java 2010-09-26 22:06:29 UTC (rev 35303)
@@ -16,16 +16,17 @@
package org.drools.osgi.core;
+import java.util.Dictionary;
import java.util.Hashtable;
-import java.util.concurrent.Callable;
import org.drools.KnowledgeBaseFactoryService;
import org.drools.Service;
-import org.drools.builder.KnowledgeBuilderFactoryService;
import org.drools.impl.KnowledgeBaseFactoryServiceImpl;
import org.drools.io.ResourceFactoryService;
import org.drools.io.impl.ResourceFactoryServiceImpl;
-import org.drools.util.ServiceRegistry;
+import org.drools.marshalling.MarshallerProvider;
+import org.drools.marshalling.impl.MarshallerProviderImpl;
+import org.drools.osgi.api.Activator.BundleContextInstantiator;
import org.drools.util.ServiceRegistryImpl;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
@@ -39,6 +40,7 @@
BundleActivator {
private ServiceRegistration resourceReg;
private ServiceRegistration kbaseReg;
+ private ServiceRegistration marshallerProviderReg;
public void start(BundleContext bc) throws Exception {
System.out.println( "registering core services" );
@@ -50,12 +52,17 @@
new KnowledgeBaseFactoryServiceImpl(),
new Hashtable() );
+ this.marshallerProviderReg = bc.registerService( new String[]{MarshallerProvider.class.getName(), Service.class.getName()},
+ new MarshallerProviderImpl(),
+ new Hashtable() );
+
System.out.println( "core services registered" );
}
public void stop(BundleContext bc) throws Exception {
this.kbaseReg.unregister();
this.resourceReg.unregister();
+ this.marshallerProviderReg.unregister();
}
-
+
}
More information about the jboss-svn-commits
mailing list