[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