[jboss-svn-commits] JBL Code SVN: r31752 - in labs/jbossrules/trunk: drools-compiler/src/main/java/org/drools/builder/impl and 11 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Feb 19 20:15:07 EST 2010


Author: KrisVerlaenen
Date: 2010-02-19 20:15:05 -0500 (Fri, 19 Feb 2010)
New Revision: 31752

Added:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/BPMN2ProcessFactory.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/BPMN2ProcessProvider.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/BPMN2ProcessProviderImpl.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/osgi/
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/osgi/bpmn2/
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/osgi/bpmn2/Activator.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/java/org/drools/bpmn2/BPMN2ResourceTypeTest.java
Modified:
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgeBuilder.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/ResourceType.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/builder/impl/KnowledgeBuilderImpl.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/wizard/project/ProcessLauncherSample_bpmn.java.template
   labs/jbossrules/trunk/drools-process/drools-bpmn2/.classpath
   labs/jbossrules/trunk/drools-process/drools-bpmn2/.project
   labs/jbossrules/trunk/drools-process/drools-bpmn2/pom.xml
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/BPMNSemanticModule.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/SubProcessHandler.java
   labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBuilderRemoteClient.java
   labs/jbossrules/trunk/osgi-bundles/org.drools.osgi.test/src/test/java/org/drools/osgi/integrationtests/BPMN2OsgiTest.java
Log:
JBRULES-2435: BPMN2 resource type
 - added BPMN2 resource type
 - simplified BPMN2 resource loading

Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgeBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgeBuilder.java	2010-02-19 20:43:54 UTC (rev 31751)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgeBuilder.java	2010-02-20 01:15:05 UTC (rev 31752)
@@ -2,6 +2,7 @@
 
 import java.util.Collection;
 
+import org.drools.KnowledgeBase;
 import org.drools.definition.KnowledgePackage;
 import org.drools.io.Resource;
 
@@ -139,6 +140,12 @@
      *     The Collection of KnowledgePackages
      */
     Collection<KnowledgePackage> getKnowledgePackages();
+    
+    /**
+     * Creates a new KnowledgeBase from the knowledge packages that have been added to
+     * this builder.  An exception is thrown if there are any errors.
+     */
+    KnowledgeBase newKnowledgeBase();
 
     /**
      * If errors occurred during the build process they are added here

Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/ResourceType.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/ResourceType.java	2010-02-19 20:43:54 UTC (rev 31751)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/ResourceType.java	2010-02-20 01:15:05 UTC (rev 31752)
@@ -59,6 +59,11 @@
                                                                              "Drools Rule Flow Language",
                                                                              "rf" );
 
+    /** Drools BPMN2 Language */
+    public static final ResourceType BPMN2      = addResourceTypeToRegistry( "BPMN2",
+                                                                             "Drools BPMN2 Language",
+                                                                             "bpmn" );
+
     /** Decision Table */
     public static final ResourceType DTABLE     = addResourceTypeToRegistry( "DTABLE",
                                                                              "Decision Table",

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/builder/impl/KnowledgeBuilderImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/builder/impl/KnowledgeBuilderImpl.java	2010-02-19 20:43:54 UTC (rev 31751)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/builder/impl/KnowledgeBuilderImpl.java	2010-02-20 01:15:05 UTC (rev 31752)
@@ -4,7 +4,10 @@
 import java.util.Collection;
 import java.util.List;
 
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactory;
 import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderError;
 import org.drools.builder.KnowledgeBuilderErrors;
 import org.drools.builder.ResourceConfiguration;
 import org.drools.builder.ResourceType;
@@ -44,8 +47,21 @@
 		}
 		
 		return list;
-	}	
+	}
 	
+	public KnowledgeBase newKnowledgeBase() {
+		KnowledgeBuilderErrors errors = getErrors();
+		if (errors.size() > 0) {
+			for (KnowledgeBuilderError error: errors) {
+				System.err.println(error);
+			}
+			throw new IllegalArgumentException("Could not parse knowledge.");
+		}
+		KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+		kbase.addKnowledgePackages(getKnowledgePackages());
+		return kbase;
+	}
+	
 	public boolean hasErrors() {
 	    return this.pkgBuilder.hasErrors();
 	}

Added: 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	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/BPMN2ProcessFactory.java	2010-02-20 01:15:05 UTC (rev 31752)
@@ -0,0 +1,36 @@
+package org.drools.compiler;
+
+
+public class BPMN2ProcessFactory {
+
+	private static BPMN2ProcessProvider provider;
+
+	public static void configurePackageBuilder(PackageBuilder packageBuilder) {
+		getBPMN2ProcessProvider().configurePackageBuilder(packageBuilder);
+	}
+
+	public static synchronized void setBPMN2ProcessProvider(BPMN2ProcessProvider provider) {
+		BPMN2ProcessFactory.provider = provider;
+	}
+
+	public static synchronized BPMN2ProcessProvider getBPMN2ProcessProvider() {
+		if (provider == null) {
+			loadProvider();
+		}
+		return provider;
+	}
+
+	@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);
+		}
+	}
+	
+}

Added: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/BPMN2ProcessProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/BPMN2ProcessProvider.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/BPMN2ProcessProvider.java	2010-02-20 01:15:05 UTC (rev 31752)
@@ -0,0 +1,9 @@
+package org.drools.compiler;
+
+import org.drools.Service;
+
+public interface BPMN2ProcessProvider extends Service {
+
+    void configurePackageBuilder(PackageBuilder packageBuilder);
+
+}

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java	2010-02-19 20:43:54 UTC (rev 31751)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java	2010-02-20 01:15:05 UTC (rev 31752)
@@ -88,7 +88,6 @@
 import org.drools.rule.TypeDeclaration;
 import org.drools.rule.builder.RuleBuildContext;
 import org.drools.rule.builder.RuleBuilder;
-import org.drools.runtime.EnvironmentName;
 import org.drools.spi.InternalReadAccessor;
 import org.drools.type.DateFormats;
 import org.drools.type.DateFormatsImpl;
@@ -478,6 +477,10 @@
             } else if ( ResourceType.DRF.equals( type ) ) {
                 ((InternalResource) resource).setResourceType( type );
                 addProcessFromXml( resource );
+            } else if ( ResourceType.BPMN2.equals( type ) ) {
+                ((InternalResource) resource).setResourceType( type );
+                BPMN2ProcessFactory.configurePackageBuilder(this);
+                addProcessFromXml( resource );
             } else if ( ResourceType.DTABLE.equals( type ) ) {
                 ((InternalResource) resource).setResourceType( type );
                 DecisionTableConfiguration dtableConfiguration = (DecisionTableConfiguration) configuration;

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/wizard/project/ProcessLauncherSample_bpmn.java.template
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/wizard/project/ProcessLauncherSample_bpmn.java.template	2010-02-19 20:43:54 UTC (rev 31751)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/wizard/project/ProcessLauncherSample_bpmn.java.template	2010-02-20 01:15:05 UTC (rev 31752)
@@ -1,15 +1,9 @@
 package com.sample;
 
 import org.drools.KnowledgeBase;
-import org.drools.KnowledgeBaseFactory;
-import org.drools.bpmn2.xml.BPMNSemanticModule;
 import org.drools.builder.KnowledgeBuilder;
-import org.drools.builder.KnowledgeBuilderConfiguration;
-import org.drools.builder.KnowledgeBuilderError;
-import org.drools.builder.KnowledgeBuilderErrors;
 import org.drools.builder.KnowledgeBuilderFactory;
 import org.drools.builder.ResourceType;
-import org.drools.compiler.PackageBuilderConfiguration;
 import org.drools.io.ResourceFactory;
 import org.drools.logger.KnowledgeRuntimeLogger;
 import org.drools.logger.KnowledgeRuntimeLoggerFactory;
@@ -35,21 +29,9 @@
 	}
 
 	private static KnowledgeBase readKnowledgeBase() throws Exception {
-		KnowledgeBuilderConfiguration conf = KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration();
-		((PackageBuilderConfiguration) conf).initSemanticModules();
-		((PackageBuilderConfiguration) conf).addSemanticModule(new BPMNSemanticModule());
-		KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(conf);
-		kbuilder.add(ResourceFactory.newClassPathResource("sample.bpmn"), ResourceType.DRF);
-		KnowledgeBuilderErrors errors = kbuilder.getErrors();
-		if (errors.size() > 0) {
-			for (KnowledgeBuilderError error: errors) {
-				System.err.println(error);
-			}
-			throw new IllegalArgumentException("Could not parse knowledge.");
-		}
-		KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
-		kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
-		return kbase;
+		KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+		kbuilder.add(ResourceFactory.newClassPathResource("sample.bpmn"), ResourceType.BPMN2);
+		return kbuilder.newKnowledgeBase();
 	}
 
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/.classpath	2010-02-19 20:43:54 UTC (rev 31751)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/.classpath	2010-02-20 01:15:05 UTC (rev 31752)
@@ -1,44 +1,48 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
-	<classpathentry excluding="**/*.java" including="**" kind="src" output="target/test-classes" path="src/test/resources"/>
-	<classpathentry including="**/*.java" kind="src" path="src/main/java"/>
-	<classpathentry excluding="**/*.java" kind="src" path="src/main/resources"/>
-	<classpathentry kind="var" path="M2_REPO/javax/transaction/jta/1.1/jta-1.1.jar"/>
-	<classpathentry kind="var" path="M2_REPO/javax/persistence/persistence-api/1.0/persistence-api-1.0.jar"/>
-	<classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.6/antlr-2.7.6.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.1.3/antlr-runtime-3.1.3.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/codehaus/btm/btm/1.3.3/btm-1.3.3.jar"/>
-	<classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/apache/jasper/springsource/com.springsource.org.apache.jasper.org.eclipse.jdt.springsource/6.0.20.S2-r5956/com.springsource.org.apache.jasper.org.eclipse.jdt.springsource-6.0.20.S2-r5956.jar"/>
-	<classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"/>
-	<classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar"/>
-	<classpathentry kind="src" path="/drools-api"/>
-	<classpathentry kind="src" path="/drools-compiler"/>
-	<classpathentry kind="src" path="/drools-core"/>
-	<classpathentry kind="src" path="/drools-persistence-jpa"/>
-	<classpathentry kind="var" path="M2_REPO/org/hibernate/ejb3-persistence/1.0.2.GA/ejb3-persistence-1.0.2.GA.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/apache/geronimo/specs/geronimo-jms_1.1_spec/1.0.1/geronimo-jms_1.1_spec-1.0.1.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/apache/geronimo/specs/geronimo-jta_1.0.1B_spec/1.0.1/geronimo-jta_1.0.1B_spec-1.0.1.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/antlr/gunit/3.1.3/gunit-3.1.3.jar"/>
-	<classpathentry kind="var" path="M2_REPO/com/h2database/h2/1.1.117/h2-1.1.117.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-annotations/3.4.0.GA/hibernate-annotations-3.4.0.GA.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-commons-annotations/3.1.0.GA/hibernate-commons-annotations-3.1.0.GA.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-core/3.3.0.SP1/hibernate-core-3.3.0.SP1.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-entitymanager/3.4.0.GA/hibernate-entitymanager-3.4.0.GA.jar"/>
-	<classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
-	<classpathentry kind="var" path="M2_REPO/javassist/javassist/3.4.GA/javassist-3.4.GA.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.1/jmock-2.5.1.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/jmock/jmock-legacy/2.5.1/jmock-legacy-2.5.1.jar"/>
-	<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/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"/>
-	<classpathentry kind="var" path="M2_REPO/org/antlr/stringtemplate/3.2/stringtemplate-3.2.jar"/>
-	<classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.jar"/>
-	<classpathentry kind="output" path="target/classes"/>
-</classpath>
+<classpath>
+  <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
+  <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
+  <classpathentry kind="src" path="src/main/java" including="**/*.java"/>
+  <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
+  <classpathentry kind="output" path="target/classes"/>
+  <classpathentry kind="var" path="M2_REPO/javax/activation/activation/1.1/activation-1.1.jar"/>
+  <classpathentry kind="var" path="M2_REPO/javax/xml/bind/jaxb-api/2.1/jaxb-api-2.1.jar" sourcepath="M2_REPO/javax/xml/bind/jaxb-api/2.1/jaxb-api-2.1-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/javax/transaction/jta/1.0.1B/jta-1.0.1B.jar"/>
+  <classpathentry kind="var" path="M2_REPO/javax/persistence/persistence-api/1.0/persistence-api-1.0.jar"/>
+  <classpathentry kind="var" path="M2_REPO/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2.jar"/>
+  <classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.6/antlr-2.7.6.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.1.3/antlr-runtime-3.1.3.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/codehaus/btm/btm/1.3.3/btm-1.3.3.jar"/>
+  <classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/apache/jasper/springsource/com.springsource.org.apache.jasper.org.eclipse.jdt.springsource/6.0.20.S2-r5956/com.springsource.org.apache.jasper.org.eclipse.jdt.springsource-6.0.20.S2-r5956.jar"/>
+  <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"/>
+  <classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/drools/drools-api/5.1.0.SNAPSHOT/drools-api-5.1.0.SNAPSHOT.jar" sourcepath="M2_REPO/org/drools/drools-api/5.1.0.SNAPSHOT/drools-api-5.1.0.SNAPSHOT-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/drools/drools-compiler/5.1.0.SNAPSHOT/drools-compiler-5.1.0.SNAPSHOT.jar" sourcepath="M2_REPO/org/drools/drools-compiler/5.1.0.SNAPSHOT/drools-compiler-5.1.0.SNAPSHOT-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/drools/drools-core/5.1.0.SNAPSHOT/drools-core-5.1.0.SNAPSHOT.jar" sourcepath="M2_REPO/org/drools/drools-core/5.1.0.SNAPSHOT/drools-core-5.1.0.SNAPSHOT-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/drools/drools-persistence-jpa/5.1.0.SNAPSHOT/drools-persistence-jpa-5.1.0.SNAPSHOT.jar" sourcepath="M2_REPO/org/drools/drools-persistence-jpa/5.1.0.SNAPSHOT/drools-persistence-jpa-5.1.0.SNAPSHOT-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/hibernate/ejb3-persistence/1.0.2.GA/ejb3-persistence-1.0.2.GA.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/apache/geronimo/specs/geronimo-jms_1.1_spec/1.0.1/geronimo-jms_1.1_spec-1.0.1.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/apache/geronimo/specs/geronimo-jta_1.0.1B_spec/1.0.1/geronimo-jta_1.0.1B_spec-1.0.1.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/antlr/gunit/3.1.3/gunit-3.1.3.jar"/>
+  <classpathentry kind="var" path="M2_REPO/com/h2database/h2/1.1.117/h2-1.1.117.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-annotations/3.4.0.GA/hibernate-annotations-3.4.0.GA.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-commons-annotations/3.1.0.GA/hibernate-commons-annotations-3.1.0.GA.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-core/3.3.0.SP1/hibernate-core-3.3.0.SP1.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-entitymanager/3.4.0.GA/hibernate-entitymanager-3.4.0.GA.jar"/>
+  <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
+  <classpathentry kind="var" path="M2_REPO/javassist/javassist/3.4.GA/javassist-3.4.GA.jar"/>
+  <classpathentry kind="var" path="M2_REPO/com/sun/xml/bind/jaxb-impl/2.1.7/jaxb-impl-2.1.7.jar"/>
+  <classpathentry kind="var" path="M2_REPO/com/sun/xml/bind/jaxb-xjc/2.1.7/jaxb-xjc-2.1.7.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.1/jmock-2.5.1.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock-legacy/2.5.1/jmock-legacy-2.5.1.jar"/>
+  <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.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"/>
+  <classpathentry kind="var" path="M2_REPO/org/antlr/stringtemplate/3.2/stringtemplate-3.2.jar"/>
+  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+</classpath>
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/.project
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/.project	2010-02-19 20:43:54 UTC (rev 31751)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/.project	2010-02-20 01:15:05 UTC (rev 31752)
@@ -1,18 +1,13 @@
-<projectDescription>
-  <name>drools-bpmn2</name>
-  <comment>A rule production system</comment>
-  <projects>
-    <project>drools-api</project>
-    <project>drools-compiler</project>
-    <project>drools-core</project>
-    <project>drools-persistence-jpa</project>
-  </projects>
-  <buildSpec>
-    <buildCommand>
-      <name>org.eclipse.jdt.core.javabuilder</name>
-    </buildCommand>
-  </buildSpec>
-  <natures>
-    <nature>org.eclipse.jdt.core.javanature</nature>
-  </natures>
+<projectDescription>
+  <name>drools-bpmn2</name>
+  <comment>A rule production system</comment>
+  <projects/>
+  <buildSpec>
+    <buildCommand>
+      <name>org.eclipse.jdt.core.javabuilder</name>
+    </buildCommand>
+  </buildSpec>
+  <natures>
+    <nature>org.eclipse.jdt.core.javanature</nature>
+  </natures>
 </projectDescription>
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/pom.xml	2010-02-19 20:43:54 UTC (rev 31751)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/pom.xml	2010-02-20 01:15:05 UTC (rev 31752)
@@ -45,7 +45,7 @@
                   <Import-Package>!org.drools.*, *</Import-Package>
                   <Export-Package> org.drools.*</Export-Package>
                   <DynamicImport-Package>*</DynamicImport-Package>
-                  <!--Bundle-Activator>org.drools.osgi.core.Activator</Bundle-Activator-->
+                  <Bundle-Activator>org.drools.osgi.bpmn2.Activator</Bundle-Activator>
                </instructions>
             </configuration>
          </plugin>
@@ -72,7 +72,13 @@
       <artifactId>drools-persistence-jpa</artifactId>
       <scope>test</scope>
     </dependency>
+    <!-- External dependencies -->
     <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.osgi.core</artifactId>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
       <groupId>com.h2database</groupId>
       <artifactId>h2</artifactId>
       <version>1.1.117</version>

Added: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/BPMN2ProcessProviderImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/BPMN2ProcessProviderImpl.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/BPMN2ProcessProviderImpl.java	2010-02-20 01:15:05 UTC (rev 31752)
@@ -0,0 +1,17 @@
+package org.drools.bpmn2;
+
+import org.drools.bpmn2.xml.BPMNSemanticModule;
+import org.drools.compiler.BPMN2ProcessProvider;
+import org.drools.compiler.PackageBuilder;
+import org.drools.compiler.PackageBuilderConfiguration;
+
+public class BPMN2ProcessProviderImpl implements BPMN2ProcessProvider {
+
+    public void configurePackageBuilder(PackageBuilder packageBuilder) {
+        PackageBuilderConfiguration conf = packageBuilder.getPackageBuilderConfiguration();
+        if (conf.getSemanticModules().getSemanticModule(BPMNSemanticModule.BPMN2_URI) == null) {
+        	conf.addSemanticModule(new BPMNSemanticModule());
+        }
+    }
+
+}

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/BPMNSemanticModule.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/BPMNSemanticModule.java	2010-02-19 20:43:54 UTC (rev 31751)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/BPMNSemanticModule.java	2010-02-20 01:15:05 UTC (rev 31752)
@@ -15,8 +15,10 @@
 
 public class BPMNSemanticModule extends DefaultSemanticModule {
 	
+	public static final String BPMN2_URI = "http://schema.omg.org/spec/BPMN/2.0";
+	
 	public BPMNSemanticModule() {
-		super("http://schema.omg.org/spec/BPMN/2.0");
+		super(BPMN2_URI);
 		
         addHandler("process", new ProcessHandler());
         

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/SubProcessHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/SubProcessHandler.java	2010-02-19 20:43:54 UTC (rev 31751)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/SubProcessHandler.java	2010-02-20 01:15:05 UTC (rev 31752)
@@ -126,6 +126,9 @@
 		        		dataType = new ObjectDataType(itemDefinition.getStructureRef());
 		        	}
 		        }
+		        if (dataType == null) {
+		        	dataType = new ObjectDataType("java.lang.Object");
+		        }
                 if (variableName != null && variableName.trim().length() > 0) {
                 	forEachNode.setVariable(variableName, dataType);
                 }

Added: 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	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/osgi/bpmn2/Activator.java	2010-02-20 01:15:05 UTC (rev 31752)
@@ -0,0 +1,27 @@
+package org.drools.osgi.bpmn2;
+
+import java.util.Hashtable;
+
+import org.drools.bpmn2.BPMN2ProcessProviderImpl;
+import org.drools.compiler.BPMN2ProcessProvider;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceRegistration;
+
+public class Activator
+    implements
+    BundleActivator {
+    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( "drools BPMN2 process services registered" );
+    }
+
+    public void stop(BundleContext bc) throws Exception {
+        this.bpmn2ProcessReg.unregister();
+    }
+}

Added: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/java/org/drools/bpmn2/BPMN2ResourceTypeTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/java/org/drools/bpmn2/BPMN2ResourceTypeTest.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/java/org/drools/bpmn2/BPMN2ResourceTypeTest.java	2010-02-20 01:15:05 UTC (rev 31752)
@@ -0,0 +1,33 @@
+package org.drools.bpmn2;
+
+import junit.framework.TestCase;
+
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactory;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderError;
+import org.drools.builder.KnowledgeBuilderErrors;
+import org.drools.builder.KnowledgeBuilderFactory;
+import org.drools.builder.ResourceType;
+import org.drools.io.ResourceFactory;
+import org.drools.runtime.StatefulKnowledgeSession;
+
+public class BPMN2ResourceTypeTest extends TestCase {
+	
+	public void testResourceType() {
+		KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+		kbuilder.add(ResourceFactory.newClassPathResource("BPMN2-MinimalProcess.xml"), ResourceType.BPMN2);
+		KnowledgeBuilderErrors errors = kbuilder.getErrors();
+		if (errors.size() > 0) {
+			for (KnowledgeBuilderError error: errors) {
+				System.err.println(error);
+			}
+			throw new IllegalArgumentException("Could not parse knowledge.");
+		}
+		KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+		kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
+		StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+		ksession.startProcess("Minimal");
+	}
+
+}

Modified: labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBuilderRemoteClient.java
===================================================================
--- labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBuilderRemoteClient.java	2010-02-19 20:43:54 UTC (rev 31751)
+++ labs/jbossrules/trunk/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBuilderRemoteClient.java	2010-02-20 01:15:05 UTC (rev 31752)
@@ -2,6 +2,7 @@
 
 import java.util.Collection;
 
+import org.drools.KnowledgeBase;
 import org.drools.builder.KnowledgeBuilder;
 import org.drools.builder.KnowledgeBuilderErrors;
 import org.drools.builder.ResourceConfiguration;
@@ -128,4 +129,9 @@
         
     }
 
+	public KnowledgeBase newKnowledgeBase() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
 }

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-19 20:43:54 UTC (rev 31751)
+++ labs/jbossrules/trunk/osgi-bundles/org.drools.osgi.test/src/test/java/org/drools/osgi/integrationtests/BPMN2OsgiTest.java	2010-02-20 01:15:05 UTC (rev 31752)
@@ -1,24 +1,13 @@
 package org.drools.osgi.integrationtests;
 
-import java.io.StringReader;
-
 import org.drools.KnowledgeBase;
 import org.drools.KnowledgeBaseFactoryService;
-import org.drools.bpmn2.xml.BPMN2SemanticModule;
-import org.drools.bpmn2.xml.BPMNDISemanticModule;
-import org.drools.bpmn2.xml.BPMNSemanticModule;
-import org.drools.bpmn2.xml.XmlBPMNProcessDumper;
-import org.drools.bpmn2.xpath.XPathDialectConfiguration;
 import org.drools.builder.KnowledgeBuilder;
-import org.drools.builder.KnowledgeBuilderConfiguration;
 import org.drools.builder.KnowledgeBuilderError;
 import org.drools.builder.KnowledgeBuilderFactoryService;
 import org.drools.builder.ResourceType;
-import org.drools.compiler.PackageBuilderConfiguration;
-import org.drools.compiler.xml.XmlProcessReader;
 import org.drools.io.ResourceFactoryService;
 import org.drools.osgi.test.AbstractDroolsSpringDMTest;
-import org.drools.ruleflow.core.RuleFlowProcess;
 import org.drools.runtime.StatefulKnowledgeSession;
 import org.drools.runtime.process.ProcessInstance;
 import org.drools.util.ServiceRegistry;
@@ -27,11 +16,9 @@
 public class BPMN2OsgiTest extends AbstractDroolsSpringDMTest {
 
     protected void onSetUp() throws Exception {
-        
     }
 
     protected void onTearDown() throws Exception {
-        
     }
 
 	public void testMinimalProcess() throws Exception {		
@@ -42,30 +29,14 @@
 	}
 	
 	private KnowledgeBase createKnowledgeBase(String process) throws Exception {
-		
         ServiceReference serviceRef = bundleContext.getServiceReference( ServiceRegistry.class.getName() );
         ServiceRegistry registry = (ServiceRegistry) bundleContext.getService( serviceRef );
-
         KnowledgeBuilderFactoryService knowledgeBuilderFactoryService = registry.get( KnowledgeBuilderFactoryService.class );
         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());        
-        
-		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();
+		kbuilder.add(resourceFactoryService.newClassPathResource(process, BPMN2OsgiTest.class), ResourceType.BPMN2);
 		if (!kbuilder.getErrors().isEmpty()) {
 			for (KnowledgeBuilderError error: kbuilder.getErrors()) {
 				System.err.println(error);



More information about the jboss-svn-commits mailing list