[jboss-svn-commits] JBL Code SVN: r15526 - in labs/jbossrules/trunk/drools-compiler/src: test/java/org/drools/compiler and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Oct 2 20:18:43 EDT 2007
Author: KrisVerlaenen
Date: 2007-10-02 20:18:42 -0400 (Tue, 02 Oct 2007)
New Revision: 15526
Added:
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/empty_ruleflow.rfm
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/ProcessBuilder.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ExecutionFlowControlTest.java
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/ruleflow.rfm
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_ruleflowClear.rfm
Log:
JBRULES-1244: Ruleflows should have a package name
- Process now has a packageName
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 2007-10-02 23:22:36 UTC (rev 15525)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java 2007-10-03 00:18:42 UTC (rev 15526)
@@ -217,9 +217,6 @@
if ( this.processBuilder == null ) {
this.processBuilder = new ProcessBuilder( this );
}
- if ( this.pkg == null) {
- this.pkg = new Package();
- }
try {
this.processBuilder.addProcessFromFile( processSource );
} catch ( Exception e ) {
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/ProcessBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/ProcessBuilder.java 2007-10-02 23:22:36 UTC (rev 15525)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/ProcessBuilder.java 2007-10-03 00:18:42 UTC (rev 15526)
@@ -16,6 +16,7 @@
* limitations under the License.
*/
+import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
import java.util.ArrayList;
@@ -72,13 +73,15 @@
this.processes.add( process );
// generate and add rule for process
String rules = generateRules( process );
- if (rules != null && rules.length() != 0) {
- try {
- packageBuilder.addPackageFromDrl(new StringReader(rules));
- } catch (Throwable t) {
- // should never occur
- }
- }
+ try {
+ packageBuilder.addPackageFromDrl(new StringReader(rules));
+ } catch (IOException e) {
+ // should never occur
+ e.printStackTrace(System.err);
+ } catch (DroolsParserException e) {
+ // should never occur
+ e.printStackTrace(System.err);
+ }
}
}
}
@@ -86,17 +89,12 @@
public void addProcessFromFile(final Reader reader) throws Exception {
final XStream stream = new XStream();
stream.setMode( XStream.ID_REFERENCES );
-
-
final ClassLoader oldLoader = Thread.currentThread().getContextClassLoader();
final ClassLoader newLoader = this.getClass().getClassLoader();
try {
Thread.currentThread().setContextClassLoader( newLoader );
final RuleFlowProcess process = (RuleFlowProcess) stream.fromXML( reader );
addProcess( process );
- } catch ( final Exception t ) {
- t.printStackTrace();
- throw t;
} finally {
Thread.currentThread().setContextClassLoader( oldLoader );
}
@@ -107,6 +105,7 @@
String result = "";
if (process instanceof RuleFlowProcessImpl) {
RuleFlowProcessImpl ruleFlow = (RuleFlowProcessImpl) process;
+ result = "package " + ruleFlow.getPackageName() + "\n" + result;
List imports = ruleFlow.getImports();
if (imports != null) {
for (Iterator iterator = imports.iterator(); iterator.hasNext(); ) {
@@ -142,7 +141,7 @@
private String createSplitRule(Process process, Connection connection, String constraint) {
return
- "rule \"RuleFlow-" + process.getId() + "-"
+ "rule \"RuleFlow-Split-" + process.getId() + "-"
+ connection.getFrom().getId() + "-" + connection.getTo().getId() + "\" \n" +
" ruleflow-group \"DROOLS_SYSTEM\" \n" +
" when \n" +
@@ -153,7 +152,7 @@
private String createMilestoneRule(Process process, MilestoneNode milestone) {
return
- "rule \"RuleFlow-" + process.getId() + "-" + milestone.getId() + "\" \n" +
+ "rule \"RuleFlow-Milestone-" + process.getId() + "-" + milestone.getId() + "\" \n" +
" ruleflow-group \"DROOLS_SYSTEM\" \n" +
" when \n" +
" " + milestone.getConstraint() + "\n" +
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java 2007-10-02 23:22:36 UTC (rev 15525)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java 2007-10-03 00:18:42 UTC (rev 15526)
@@ -1284,6 +1284,10 @@
public String getVersion() {
return null;
}
+
+ public String getPackageName() {
+ return null;
+ }
public void setId(String id) {
}
@@ -1296,6 +1300,9 @@
public void setVersion(String version) {
}
+
+ public void setPackageName(String packageName) {
+ }
}
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ExecutionFlowControlTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ExecutionFlowControlTest.java 2007-10-02 23:22:36 UTC (rev 15525)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ExecutionFlowControlTest.java 2007-10-03 00:18:42 UTC (rev 15526)
@@ -24,6 +24,7 @@
import org.drools.compiler.DroolsParserException;
import org.drools.compiler.PackageBuilder;
import org.drools.compiler.ProcessBuilder;
+import org.drools.compiler.PackageBuilder.PackageMergeException;
import org.drools.event.ActivationCancelledEvent;
import org.drools.event.ActivationCreatedEvent;
import org.drools.event.AgendaEventListener;
@@ -672,7 +673,65 @@
processInstance.getState() );
}
+
+ public void testLoadingRuleFlowInPackage1() throws Exception {
+ // adding ruleflow before adding package
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addRuleFlow( new InputStreamReader( getClass().getResourceAsStream( "ruleflow.rfm" ) ) );
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "ruleflow.drl" ) ) );
+ builder.getPackage();
+ }
+ public void testLoadingRuleFlowInPackage2() throws Exception {
+ // only adding ruleflow
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addRuleFlow( new InputStreamReader( getClass().getResourceAsStream( "ruleflow.rfm" ) ) );
+ builder.getPackage();
+ }
+
+ public void testLoadingRuleFlowInPackage3() throws Exception {
+ // only adding ruleflow without any generated rules
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addRuleFlow( new InputStreamReader( getClass().getResourceAsStream( "empty_ruleflow.rfm" ) ) );
+ builder.getPackage();
+ }
+
+ public void testLoadingRuleFlowInPackage4() throws Exception {
+ // adding ruleflows of different package
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addRuleFlow( new InputStreamReader( getClass().getResourceAsStream( "empty_ruleflow.rfm" ) ) );
+ try {
+ builder.addRuleFlow( new InputStreamReader( getClass().getResourceAsStream( "ruleflow.rfm" ) ) );
+ throw new Exception("An exception should have been thrown.");
+ } catch (PackageMergeException e) {
+ // do nothing
+ }
+ }
+
+ public void testLoadingRuleFlowInPackage5() throws Exception {
+ // adding ruleflow of different package than rules
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "ruleflow.drl" ) ) );
+ try {
+ builder.addRuleFlow( new InputStreamReader( getClass().getResourceAsStream( "empty_ruleflow.rfm" ) ) );
+ throw new Exception("An exception should have been thrown.");
+ } catch (PackageMergeException e) {
+ // do nothing
+ }
+ }
+
+ public void testLoadingRuleFlowInPackage6() throws Exception {
+ // adding rules of different package than ruleflow
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addRuleFlow( new InputStreamReader( getClass().getResourceAsStream( "empty_ruleflow.rfm" ) ) );
+ try {
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "ruleflow.drl" ) ) );
+ throw new Exception("An exception should have been thrown.");
+ } catch (PackageMergeException e) {
+ // do nothing
+ }
+ }
+
private RuleBase loadRuleBase(final Reader reader) throws IOException,
DroolsParserException,
Exception {
Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/empty_ruleflow.rfm
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/empty_ruleflow.rfm (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/empty_ruleflow.rfm 2007-10-03 00:18:42 UTC (rev 15526)
@@ -0,0 +1,46 @@
+<org.drools.ruleflow.core.impl.RuleFlowProcessImpl id="1">
+ <nodes id="2">
+ <entry>
+ <long>1</long>
+ <org.drools.ruleflow.core.impl.StartNodeImpl id="3">
+ <id>1</id>
+ <name>Start</name>
+ <incomingConnections id="4"/>
+ <outgoingConnections id="5">
+ <org.drools.ruleflow.core.impl.ConnectionImpl id="6">
+ <type>1</type>
+ <from class="org.drools.ruleflow.core.impl.StartNodeImpl" reference="3"/>
+ <to class="org.drools.ruleflow.core.impl.EndNodeImpl" id="7">
+ <id>4</id>
+ <name>End</name>
+ <incomingConnections id="8">
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="6"/>
+ </incomingConnections>
+ <outgoingConnections id="9"/>
+ </to>
+ </org.drools.ruleflow.core.impl.ConnectionImpl>
+ </outgoingConnections>
+ </org.drools.ruleflow.core.impl.StartNodeImpl>
+ </entry>
+ <entry>
+ <long>4</long>
+ <org.drools.ruleflow.core.impl.EndNodeImpl reference="7"/>
+ </entry>
+ </nodes>
+ <variables id="10"/>
+ <lastNodeId>9</lastNodeId>
+ <imports id="11">
+ <string>com.sample.Property</string>
+ </imports>
+ <globals id="12">
+ <entry>
+ <string>property</string>
+ <string>Property</string>
+ </entry>
+ </globals>
+ <id>com.sample.ruleflow</id>
+ <name>Ruleflow</name>
+ <version>1.0</version>
+ <type>RuleFlow</type>
+ <packageName>com.empty</packageName>
+</org.drools.ruleflow.core.impl.RuleFlowProcessImpl>
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/ruleflow.rfm
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/ruleflow.rfm 2007-10-02 23:22:36 UTC (rev 15525)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/ruleflow.rfm 2007-10-03 00:18:42 UTC (rev 15526)
@@ -147,4 +147,5 @@
<id>0</id>
<name>flow</name>
<type>Workflow</type>
+ <packageName>com.sample</packageName>
</org.drools.ruleflow.core.impl.RuleFlowProcessImpl>
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_ruleflowClear.rfm
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_ruleflowClear.rfm 2007-10-02 23:22:36 UTC (rev 15525)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_ruleflowClear.rfm 2007-10-03 00:18:42 UTC (rev 15526)
@@ -50,4 +50,5 @@
<id>ruleFlowClear</id>
<name>test_ruleflowClear</name>
<type>RuleFlow</type>
+ <packageName>com.sample</packageName>
</org.drools.ruleflow.core.impl.RuleFlowProcessImpl>
\ No newline at end of file
More information about the jboss-svn-commits
mailing list