[jboss-svn-commits] JBL Code SVN: r31866 - in labs/jbossrules/trunk: drools-api/src/main/java/org/drools/util and 8 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun Feb 28 00:08:27 EST 2010
Author: mark.proctor at jboss.com
Date: 2010-02-28 00:08:26 -0500 (Sun, 28 Feb 2010)
New Revision: 31866
Added:
labs/jbossrules/trunk/drools-persistence-jpa/src/main/java/org/drools/persistence/osgi/Activator.java
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/util/ServiceRegistry.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/ServiceRegistryImpl.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/BPMN2ProcessFactory.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/DecisionTableFactory.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/osgi/compiler/Activator.java
labs/jbossrules/trunk/drools-decisiontables/src/main/java/org/drools/osgi/decisiontables/Activator.java
labs/jbossrules/trunk/drools-process/drools-bpmn2/.classpath
labs/jbossrules/trunk/drools-process/drools-bpmn2/META-INF/MANIFEST.MF
labs/jbossrules/trunk/drools-process/drools-bpmn2/pom.xml
labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/osgi/bpmn2/Activator.java
labs/jbossrules/trunk/osgi-bundles/org.drools.osgi.test/src/test/java/org/drools/osgi/integrationtests/BPMN2OsgiTest.java
Log:
JBRULES-2351 OSGi Ready
-BPMN2 and DecisionTables providers are now registered properly
-ServiceRegistry now does not add defaults to the main registry, instead it uses those as a fallback if nothing is registered.
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-02-28 00:15:42 UTC (rev 31865)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/osgi/api/Activator.java 2010-02-28 05:08:26 UTC (rev 31866)
@@ -54,7 +54,7 @@
public Object addingService(ServiceReference ref) {
Service service = (Service) this.bc.getService( ref );
- System.out.println( "registering : " + service + " : " + service.getClass().getInterfaces()[0] );
+ System.out.println( "registering api : " + service + " : " + service.getClass().getInterfaces()[0] );
Dictionary dic = new Hashtable();
ServiceReference regServiceRef = this.activator.serviceRegistry.getReference();
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/ServiceRegistry.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/ServiceRegistry.java 2010-02-28 00:15:42 UTC (rev 31865)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/ServiceRegistry.java 2010-02-28 05:08:26 UTC (rev 31866)
@@ -16,5 +16,8 @@
// public void unregisterInstance(Service service);
public <T> T get(Class<T> cls);
+
+ public void addDefault(Class cls,
+ String impl);
}
\ No newline at end of file
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-02-28 00:15:42 UTC (rev 31865)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/ServiceRegistryImpl.java 2010-02-28 05:08:26 UTC (rev 31866)
@@ -152,7 +152,13 @@
e );
}
} else {
- throw new IllegalArgumentException( "Unable to locate a service for Class '" + (cls != null ? cls.getName() : null) + "'" );
+ cal = this.defaultServices.get( cls.getName() );
+ try {
+ return cls.cast( cal.call() );
+ } catch ( Exception e ) {
+ throw new IllegalArgumentException( "Unable to instantiate service for Class '" + (cls != null ? cls.getName() : null) + "'",
+ e );
+ }
}
}
@@ -169,16 +175,13 @@
addDefault( SystemEventListenerService.class,
"org.drools.impl.SystemEventListenerServiceImpl" );
-
// addDefault( SystemE.class,
// "org.drools.io.impl.ResourceFactoryServiceImpl" );
}
- private void addDefault(Class cls,
- String impl) {
+ public synchronized void addDefault(Class cls,
+ String impl) {
ReflectionInstantiator<Service> resourceRi = new ReflectionInstantiator<Service>( impl );
- registry.put( cls.getName(),
- resourceRi );
defaultServices.put( cls.getName(),
resourceRi );
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/BPMN2ProcessFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/BPMN2ProcessFactory.java 2010-02-28 00:15:42 UTC (rev 31865)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/BPMN2ProcessFactory.java 2010-02-28 05:08:26 UTC (rev 31866)
@@ -1,6 +1,9 @@
package org.drools.compiler;
+import org.drools.KnowledgeBaseFactoryService;
+import org.drools.util.ServiceRegistryImpl;
+
public class BPMN2ProcessFactory {
private static BPMN2ProcessProvider provider;
@@ -21,16 +24,9 @@
}
@SuppressWarnings("unchecked")
- private static void loadProvider() {
- try {
- // we didn't find anything in properties so lets try and us reflection
- Class<BPMN2ProcessProvider> cls = (Class<BPMN2ProcessProvider>)
- Class.forName("org.drools.bpmn2.BPMN2ProcessProviderImpl");
- setBPMN2ProcessProvider(cls.newInstance());
- } catch (Exception e2) {
- throw new RuntimeException(
- "Provider org.drools.bpmn2.BPMN2ProcessProviderImpl could not be set.", e2);
- }
+ private static void loadProvider() {
+ ServiceRegistryImpl.getInstance().addDefault( BPMN2ProcessProvider.class, "org.drools.bpmn2.BPMN2ProcessProviderImpl" );
+ setBPMN2ProcessProvider(ServiceRegistryImpl.getInstance().get( BPMN2ProcessProvider.class ) );
}
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/DecisionTableFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/DecisionTableFactory.java 2010-02-28 00:15:42 UTC (rev 31865)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/DecisionTableFactory.java 2010-02-28 05:08:26 UTC (rev 31866)
@@ -3,8 +3,10 @@
import java.io.InputStream;
import java.io.Reader;
+import org.drools.SystemEventListenerService;
import org.drools.builder.DecisionTableConfiguration;
import org.drools.osgi.compiler.Activator;
+import org.drools.util.ServiceRegistryImpl;
public class DecisionTableFactory {
private static DecisionTableProvider provider;
@@ -28,12 +30,7 @@
}
private static void loadProvider() {
- try {
- // we didn't find anything in properties so lets try and us reflection
- Class<DecisionTableProvider> cls = ( Class<DecisionTableProvider> ) Class.forName( "org.drools.decisiontable.DecisionTableProviderImpl" );
- setDecisionTableProvider( cls.newInstance() );
- } catch ( Exception e2 ) {
- throw new RuntimeException( "Provider org.drools.decisiontable.DecisionTableProviderImpl could not be set.", e2);
- }
+ ServiceRegistryImpl.getInstance().addDefault( DecisionTableProvider.class, "org.drools.decisiontable.DecisionTableProviderImpl" );
+ setDecisionTableProvider(ServiceRegistryImpl.getInstance().get( DecisionTableProvider.class ) );
}
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/osgi/compiler/Activator.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/osgi/compiler/Activator.java 2010-02-28 00:15:42 UTC (rev 31865)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/osgi/compiler/Activator.java 2010-02-28 05:08:26 UTC (rev 31866)
@@ -6,11 +6,14 @@
import org.drools.Service;
import org.drools.builder.KnowledgeBuilderFactoryService;
import org.drools.builder.impl.KnowledgeBuilderFactoryServiceImpl;
+import org.drools.compiler.BPMN2ProcessFactory;
+import org.drools.compiler.BPMN2ProcessProvider;
import org.drools.compiler.DecisionTableProvider;
import org.drools.osgi.api.Activator.BundleContextInstantiator;
import org.drools.util.ServiceRegistryImpl;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
+import org.osgi.framework.Constants;
import org.osgi.framework.ServiceReference;
import org.osgi.framework.ServiceRegistration;
import org.osgi.util.tracker.ServiceTracker;
@@ -30,7 +33,11 @@
new Hashtable() );
this.dtableTracker = new ServiceTracker( bc,
- DecisionTableProvider.class.getName(),
+ bc.createFilter( "(|(" +
+ Constants.OBJECTCLASS + "=" +
+ DecisionTableProvider.class.getName() + ")(" +
+ Constants.OBJECTCLASS + "=" +
+ BPMN2ProcessProvider.class.getName() +") )"),
new DroolsServiceTracker( bc,
this ) );
this.dtableTracker.open();
@@ -57,7 +64,7 @@
public Object addingService(ServiceReference ref) {
Service service = (Service) this.bc.getService( ref );
- System.out.println( "registering : " + service + " : " + service.getClass().getInterfaces()[0] );
+ System.out.println( "registering compiler : " + service + " : " + service.getClass().getInterfaces()[0] );
Dictionary dic = new Hashtable();
ServiceReference regServiceRef = this.activator.kbuilderReg.getReference();
@@ -84,6 +91,7 @@
Object arg1) {
Service service = (Service) bc.getService( ref );
ServiceRegistryImpl.getInstance().unregisterLocator( service.getClass().getInterfaces()[0] );
+ System.out.println( "unregistering compiler : " + service + " : " + service.getClass().getInterfaces()[0] );
}
}
Modified: labs/jbossrules/trunk/drools-decisiontables/src/main/java/org/drools/osgi/decisiontables/Activator.java
===================================================================
--- labs/jbossrules/trunk/drools-decisiontables/src/main/java/org/drools/osgi/decisiontables/Activator.java 2010-02-28 00:15:42 UTC (rev 31865)
+++ labs/jbossrules/trunk/drools-decisiontables/src/main/java/org/drools/osgi/decisiontables/Activator.java 2010-02-28 05:08:26 UTC (rev 31866)
@@ -9,6 +9,7 @@
//import org.drools.impl.KnowledgeBaseFactoryServiceImpl;
//import org.drools.io.ResourceFactoryService;
//import org.drools.io.impl.ResourceFactoryServiceImpl;
+import org.drools.Service;
import org.drools.compiler.DecisionTableProvider;
import org.drools.decisiontable.DecisionTableProviderImpl;
import org.osgi.framework.BundleActivator;
@@ -22,7 +23,7 @@
public void start(BundleContext bc) throws Exception {
System.out.println( "registering decision tables drools services" );
- this.kdtableReg = bc.registerService( DecisionTableProvider.class.getName(),
+ this.kdtableReg = bc.registerService( new String[]{ DecisionTableProvider.class.getName(), Service.class.getName()},
new DecisionTableProviderImpl(),
new Hashtable() );
System.out.println( "drools decision tables services registered" );
Added: labs/jbossrules/trunk/drools-persistence-jpa/src/main/java/org/drools/persistence/osgi/Activator.java
===================================================================
--- labs/jbossrules/trunk/drools-persistence-jpa/src/main/java/org/drools/persistence/osgi/Activator.java (rev 0)
+++ labs/jbossrules/trunk/drools-persistence-jpa/src/main/java/org/drools/persistence/osgi/Activator.java 2010-02-28 05:08:26 UTC (rev 31866)
@@ -0,0 +1,18 @@
+package org.drools.persistence.osgi;
+
+import org.hibernate.ejb.HibernatePersistence;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+public class Activator
+ implements
+ BundleActivator {
+
+ public void start(BundleContext bc) throws Exception {
+ System.out.println( "In Activator : " + HibernatePersistence.class );
+ }
+
+ public void stop(BundleContext bc) throws Exception {
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/.classpath 2010-02-28 00:15:42 UTC (rev 31865)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/.classpath 2010-02-28 05:08:26 UTC (rev 31866)
@@ -41,6 +41,7 @@
<classpathentry kind="var" path="M2_REPO/junit/junit/4.6/junit-4.6.jar"/>
<classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.16/mvel2-2.0.16.jar"/>
<classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/felix/org.osgi.compendium/1.4.0/org.osgi.compendium-1.4.0.jar"/>
<classpathentry kind="var" path="M2_REPO/org/apache/felix/org.osgi.core/1.4.0/org.osgi.core-1.4.0.jar"/>
<classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.5.10/slf4j-api-1.5.10.jar"/>
<classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-jdk14/1.5.2/slf4j-jdk14-1.5.2.jar"/>
Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/META-INF/MANIFEST.MF
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/META-INF/MANIFEST.MF 2010-02-28 00:15:42 UTC (rev 31865)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/META-INF/MANIFEST.MF 2010-02-28 05:08:26 UTC (rev 31866)
@@ -1,14 +1,18 @@
Manifest-Version: 1.0
+Bundle-Activator: org.drools.osgi.bpmn2.Activator
Created-By: 1.5.0_21 (Sun Microsystems Inc.)
Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
-Import-Package: org.w3c.dom,org.xml.sax
-Bnd-LastModified: 1266547541398
-Export-Package: org.drools.bpmn2.core;version="5.1.0.SNAPSHOT",org.dro
- ols.bpmn2.xpath;version="5.1.0.SNAPSHOT",org.drools.bpmn2.handler;ver
- sion="5.1.0.SNAPSHOT",org.drools.bpmn2.xml;uses:="org.drools.bpmn2.co
- re,org.xml.sax,org.w3c.dom,org.drools.bpmn2.xml.di";version="5.1.0.SN
- APSHOT",org.drools.bpmn2.xml.di;uses:="org.xml.sax,org.w3c.dom";versi
- on="5.1.0.SNAPSHOT"
+Import-Package: org.osgi.framework;version="1.5",org.w3c.dom,org.xml.s
+ ax
+Bnd-LastModified: 1267333501253
+Export-Package: org.drools.bpmn2;uses:="org.drools.bpmn2.xml";version=
+ "5.1.0.SNAPSHOT",org.drools.bpmn2.core;version="5.1.0.SNAPSHOT",org.d
+ rools.bpmn2.xpath;version="5.1.0.SNAPSHOT",org.drools.bpmn2.handler;v
+ ersion="5.1.0.SNAPSHOT",org.drools.bpmn2.xml;uses:="org.drools.bpmn2.
+ core,org.xml.sax,org.w3c.dom,org.drools.bpmn2.xml.di";version="5.1.0.
+ SNAPSHOT",org.drools.bpmn2.xml.di;uses:="org.xml.sax,org.w3c.dom";ver
+ sion="5.1.0.SNAPSHOT",org.drools.osgi.bpmn2;uses:="org.drools.bpmn2,o
+ rg.osgi.framework";version="5.1.0.SNAPSHOT"
Bundle-Version: 5.1.0.SNAPSHOT
Bundle-Name: Drools :: Process :: BPMN2
Bundle-Description: A rule production system
Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/pom.xml 2010-02-28 00:15:42 UTC (rev 31865)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/pom.xml 2010-02-28 05:08:26 UTC (rev 31866)
@@ -90,6 +90,17 @@
<version>1.3.3</version>
<scope>test</scope>
</dependency>
+
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.osgi.core</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.osgi.compendium</artifactId>
+ <scope>provided</scope>
+ </dependency>
</dependencies>
Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/osgi/bpmn2/Activator.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/osgi/bpmn2/Activator.java 2010-02-28 00:15:42 UTC (rev 31865)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/osgi/bpmn2/Activator.java 2010-02-28 05:08:26 UTC (rev 31866)
@@ -2,6 +2,7 @@
import java.util.Hashtable;
+import org.drools.Service;
import org.drools.bpmn2.BPMN2ProcessProviderImpl;
import org.drools.compiler.BPMN2ProcessProvider;
import org.osgi.framework.BundleActivator;
@@ -14,14 +15,16 @@
private ServiceRegistration bpmn2ProcessReg;
public void start(BundleContext bc) throws Exception {
- System.out.println( "registering BPMN2 process drools services" );
- this.bpmn2ProcessReg = bc.registerService( BPMN2ProcessProvider.class.getName(),
- new BPMN2ProcessProviderImpl(),
- new Hashtable() );
+ System.out.println( "registering BPMN2 process drools services" );
+ this.bpmn2ProcessReg = bc.registerService( new String[]{ BPMN2ProcessProvider.class.getName(), Service.class.getName()},
+ new BPMN2ProcessProviderImpl(),
+ new Hashtable() );
+
System.out.println( "drools BPMN2 process services registered" );
}
public void stop(BundleContext bc) throws Exception {
this.bpmn2ProcessReg.unregister();
}
+
}
Modified: labs/jbossrules/trunk/osgi-bundles/org.drools.osgi.test/src/test/java/org/drools/osgi/integrationtests/BPMN2OsgiTest.java
===================================================================
--- labs/jbossrules/trunk/osgi-bundles/org.drools.osgi.test/src/test/java/org/drools/osgi/integrationtests/BPMN2OsgiTest.java 2010-02-28 00:15:42 UTC (rev 31865)
+++ labs/jbossrules/trunk/osgi-bundles/org.drools.osgi.test/src/test/java/org/drools/osgi/integrationtests/BPMN2OsgiTest.java 2010-02-28 05:08:26 UTC (rev 31866)
@@ -50,22 +50,26 @@
KnowledgeBaseFactoryService knowledgeBaseFactoryService = registry.get( KnowledgeBaseFactoryService.class );
ResourceFactoryService resourceFactoryService = registry.get( ResourceFactoryService.class );
- KnowledgeBuilderConfiguration conf = knowledgeBuilderFactoryService.newKnowledgeBuilderConfiguration();
- ((PackageBuilderConfiguration) conf).initSemanticModules();
- ((PackageBuilderConfiguration) conf).addSemanticModule(new BPMNSemanticModule());
- ((PackageBuilderConfiguration) conf).addSemanticModule(new BPMN2SemanticModule());
- ((PackageBuilderConfiguration) conf).addSemanticModule(new BPMNDISemanticModule());
- ((PackageBuilderConfiguration) conf).addDialect("XPath", new XPathDialectConfiguration());
+ KnowledgeBuilder kbuilder = knowledgeBuilderFactoryService.newKnowledgeBuilder();
+ kbuilder.add(resourceFactoryService.newClassPathResource(process, BPMN2OsgiTest.class), ResourceType.BPMN2);
- XmlProcessReader processReader = new XmlProcessReader(
- ((PackageBuilderConfiguration) conf).getSemanticModules());
- RuleFlowProcess p = (RuleFlowProcess)
- processReader.read(BPMN2OsgiTest.class.getResourceAsStream(process));
+// KnowledgeBuilderConfiguration conf = knowledgeBuilderFactoryService.newKnowledgeBuilderConfiguration();
+// ((PackageBuilderConfiguration) conf).initSemanticModules();
+// ((PackageBuilderConfiguration) conf).addSemanticModule(new BPMNSemanticModule());
+// ((PackageBuilderConfiguration) conf).addSemanticModule(new BPMN2SemanticModule());
+// ((PackageBuilderConfiguration) conf).addSemanticModule(new BPMNDISemanticModule());
+// ((PackageBuilderConfiguration) conf).addDialect("XPath", new XPathDialectConfiguration());
+//
+// XmlProcessReader processReader = new XmlProcessReader(
+// ((PackageBuilderConfiguration) conf).getSemanticModules());
+// RuleFlowProcess p = (RuleFlowProcess)
+// processReader.read(BPMN2OsgiTest.class.getResourceAsStream(process));
+//
+// KnowledgeBuilder kbuilder = knowledgeBuilderFactoryService.newKnowledgeBuilder(conf);
+//
+// kbuilder.add(resourceFactoryService.newReaderResource(
+// new StringReader(XmlBPMNProcessDumper.INSTANCE.dump(p))), ResourceType.DRF);
- KnowledgeBuilder kbuilder = knowledgeBuilderFactoryService.newKnowledgeBuilder(conf);
-
- kbuilder.add(resourceFactoryService.newReaderResource(
- new StringReader(XmlBPMNProcessDumper.INSTANCE.dump(p))), ResourceType.DRF);
if (!kbuilder.getErrors().isEmpty()) {
for (KnowledgeBuilderError error: kbuilder.getErrors()) {
System.err.println(error);
More information about the jboss-svn-commits
mailing list