[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