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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Feb 10 11:25:45 EST 2009


Author: KrisVerlaenen
Date: 2009-02-10 11:25:44 -0500 (Tue, 10 Feb 2009)
New Revision: 25210

Modified:
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/ResourceType.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/processes/XMLPersistenceTest.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/SessionConfiguration.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELCompilationUnit.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/context/exception/ActionExceptionHandler.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/datatype/impl/type/ObjectDataType.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/timer/Timer.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/CompositeNode.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/Trigger.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/.classpath
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/META-INF/MANIFEST.MF
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/build.properties
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/dsl/editor/DSLAdapter.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/rulebuilder/editors/RuleEditor.java
Log:
 - various small fixes to get an entire life cycle example working

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	2009-02-10 16:04:06 UTC (rev 25209)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/ResourceType.java	2009-02-10 16:25:44 UTC (rev 25210)
@@ -41,6 +41,9 @@
     /** Binary Package */
     public static final ResourceType PKG = addResourceTypeToRegistry("PKG");
 
+    /** Drools Rule Language */
+    public static final ResourceType BRL = addResourceTypeToRegistry("BRL");
+
     /** ChangeSet */
     public static final ResourceType ChangeSet = addResourceTypeToRegistry("ChangeSet");
     

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	2009-02-10 16:04:06 UTC (rev 25209)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java	2009-02-10 16:25:44 UTC (rev 25210)
@@ -17,6 +17,7 @@
  */
 
 import java.beans.IntrospectionException;
+import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.Reader;
@@ -52,6 +53,9 @@
 import org.drools.facttemplates.FactTemplateImpl;
 import org.drools.facttemplates.FieldTemplate;
 import org.drools.facttemplates.FieldTemplateImpl;
+import org.drools.guvnor.client.modeldriven.brl.RuleModel;
+import org.drools.guvnor.server.util.BRDRLPersistence;
+import org.drools.guvnor.server.util.BRXMLPersistence;
 import org.drools.io.InternalResource;
 import org.drools.io.Resource;
 import org.drools.io.impl.ClassPathResource;
@@ -383,6 +387,44 @@
         this.resource = null;
     }
 
+    public void addPackageFromBrl(final Resource resource)
+			throws DroolsParserException, IOException {
+		this.resource = resource;
+
+        String brl = loadBrlFile(resource.getReader());
+		RuleModel model = BRXMLPersistence.getInstance().unmarshal(brl);
+		String drl = BRDRLPersistence.getInstance().marshal(model);
+        final DrlParser parser = new DrlParser();
+        DefaultExpander expander = getDslExpander();
+
+        try {
+            String str = expander.expand( new StringReader(drl) );
+            if ( expander.hasErrors() ) {
+                this.results.addAll( expander.getErrors() );
+            }
+
+            final PackageDescr pkg = parser.parse( str );
+            this.results.addAll( parser.getErrors() );
+            if ( !parser.hasErrors() ) {
+                addPackage( pkg );
+            }
+        } catch ( IOException e ) {
+            throw new RuntimeException( e );
+        }
+        this.resource = null;
+	}
+
+    private String loadBrlFile(final Reader drl) throws IOException {
+        final StringBuffer buf = new StringBuffer();
+        final BufferedReader input = new BufferedReader( drl );
+        String line = null;
+        while ( (line = input.readLine()) != null ) {
+            buf.append( line );
+            buf.append( "\n" );
+        }
+        return buf.toString();
+    }
+    
     public void addDsl(Resource resource) throws IOException {
         this.resource = resource;
 
@@ -459,6 +501,9 @@
             } else if ( ResourceType.XDRL.equals( type )) {
                 ((InternalResource) resource).setResourceType( type );
                 addPackageFromXml( resource );
+            } else if ( ResourceType.BRL.equals( type )) {
+                ((InternalResource) resource).setResourceType( type );
+                addPackageFromBrl( resource );
             } else if ( ResourceType.DRF.equals( type )) {
                 ((InternalResource) resource).setResourceType( type );
                 addProcessFromXml( resource );

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/processes/XMLPersistenceTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/processes/XMLPersistenceTest.java	2009-02-10 16:04:06 UTC (rev 25209)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/processes/XMLPersistenceTest.java	2009-02-10 16:25:44 UTC (rev 25210)
@@ -1,5 +1,7 @@
 package org.drools.xml.processes;
 
+import java.io.ByteArrayOutputStream;
+import java.io.ObjectOutputStream;
 import java.io.StringReader;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -500,6 +502,9 @@
         System.out.println(xml2);
         
 //        assertEquals(xml, xml2);
+        
+        // test serialization of process elements
+        new ObjectOutputStream(new ByteArrayOutputStream()).writeObject(process);
     }
     
     public void testSpecialCharacters() {

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/SessionConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/SessionConfiguration.java	2009-02-10 16:04:06 UTC (rev 25209)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/SessionConfiguration.java	2009-02-10 16:25:44 UTC (rev 25210)
@@ -77,6 +77,7 @@
         out.writeObject( chainedProperties );
         out.writeBoolean( immutable );
         out.writeBoolean( keepReference );
+        out.writeObject( clockType );
     }
 
     public void readExternal(ObjectInput in) throws IOException,
@@ -84,6 +85,7 @@
         chainedProperties = (ChainedProperties) in.readObject();
         immutable = in.readBoolean();
         keepReference = in.readBoolean();
+        clockType = (ClockType) in.readObject();
     }
 
     /**

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELCompilationUnit.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELCompilationUnit.java	2009-02-10 16:04:06 UTC (rev 25209)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELCompilationUnit.java	2009-02-10 16:25:44 UTC (rev 25210)
@@ -20,6 +20,7 @@
 import org.drools.runtime.rule.RuleContext;
 import org.drools.spi.KnowledgeHelper;
 import org.mvel2.DataConversion;
+import org.mvel2.MVEL;
 import org.mvel2.ParserContext;
 import org.mvel2.compiler.AbstractParser;
 import org.mvel2.compiler.ExpressionCompiler;
@@ -340,6 +341,8 @@
                                 final ClassLoader classLoader,
                                 final ParserContext parserContext,
                                 final int languageLevel) {
+    	MVEL.COMPILER_OPT_ALLOW_NAKED_METH_CALL = true;
+    	
         ExpressionCompiler compiler = new ExpressionCompiler( text.trim() );
 
         if ( MVELDebugHandler.isDebugMode() ) {

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/context/exception/ActionExceptionHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/context/exception/ActionExceptionHandler.java	2009-02-10 16:04:06 UTC (rev 25209)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/context/exception/ActionExceptionHandler.java	2009-02-10 16:25:44 UTC (rev 25210)
@@ -1,8 +1,10 @@
 package org.drools.process.core.context.exception;
 
+import java.io.Serializable;
+
 import org.drools.workflow.core.DroolsAction;
 
-public class ActionExceptionHandler implements ExceptionHandler {
+public class ActionExceptionHandler implements ExceptionHandler, Serializable {
 	
 	private static final long serialVersionUID = 400L;
 	

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/datatype/impl/type/ObjectDataType.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/datatype/impl/type/ObjectDataType.java	2009-02-10 16:04:06 UTC (rev 25209)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/datatype/impl/type/ObjectDataType.java	2009-02-10 16:25:44 UTC (rev 25210)
@@ -51,11 +51,11 @@
     }
 
     public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-    	className = in.readUTF();
+    	className = (String) in.readObject();
     }
 
     public void writeExternal(ObjectOutput out) throws IOException {
-    	out.writeUTF(className);
+    	out.writeObject(className);
     }
 
     public boolean verifyDataType(final Object value) {

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/timer/Timer.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/timer/Timer.java	2009-02-10 16:04:06 UTC (rev 25209)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/timer/Timer.java	2009-02-10 16:25:44 UTC (rev 25210)
@@ -1,10 +1,12 @@
 package org.drools.process.core.timer;
 
+import java.io.Serializable;
+
 /**
  * 
  * @author <a href="mailto:kris_verlaenen at hotmail.com">Kris Verlaenen</a>
  */
-public class Timer {
+public class Timer implements Serializable {
 
     private long id;
     private long delay;

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/CompositeNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/CompositeNode.java	2009-02-10 16:04:06 UTC (rev 25209)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/CompositeNode.java	2009-02-10 16:25:44 UTC (rev 25210)
@@ -1,5 +1,6 @@
 package org.drools.workflow.core.node;
 
+import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -320,7 +321,7 @@
         }
     }
     
-    public class NodeAndType {
+    public class NodeAndType implements Serializable {
 
         private long nodeId;
         private String type;
@@ -396,7 +397,7 @@
         
         public Node getInNode() {
             if (inNode == null) {
-                inNode = getNodeContainer().getNode(inNodeId);
+                inNode = ((NodeContainer) CompositeNode.this.getNodeContainer()).internalGetNode(inNodeId);
             }
             return inNode;
         }
@@ -438,7 +439,7 @@
         
         public Node getOutNode() {
             if (outNode == null) {
-                outNode = getNodeContainer().getNode(outNodeId);
+                outNode = ((NodeContainer) CompositeNode.this.getNodeContainer()).internalGetNode(outNodeId);
             }
             return outNode;
         }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/Trigger.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/Trigger.java	2009-02-10 16:04:06 UTC (rev 25209)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/Trigger.java	2009-02-10 16:25:44 UTC (rev 25210)
@@ -1,12 +1,13 @@
 package org.drools.workflow.core.node;
 
+import java.io.Serializable;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 
 import org.drools.process.core.context.variable.Mappable;
 
-public class Trigger implements Mappable {
+public class Trigger implements Mappable, Serializable {
 	
     private Map<String, String> inMapping = new HashMap<String, String>();
 

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/.classpath	2009-02-10 16:04:06 UTC (rev 25209)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/.classpath	2009-02-10 16:25:44 UTC (rev 25210)
@@ -2,6 +2,7 @@
 <classpath>
 	<classpathentry kind="src" path="src/main/java"/>
 	<classpathentry kind="src" path="src/main/resources"/>
+	<classpathentry exported="true" kind="lib" path="lib/joda-time.jar"/>
 	<classpathentry exported="true" kind="lib" path="lib/drools-api.jar"/>
 	<classpathentry exported="true" kind="lib" path="lib/drools-core.jar" sourcepath="/drools-core"/>
 	<classpathentry exported="true" kind="lib" path="lib/drools-compiler.jar" sourcepath="/drools-compiler"/>

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/META-INF/MANIFEST.MF
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/META-INF/MANIFEST.MF	2009-02-10 16:04:06 UTC (rev 25209)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/META-INF/MANIFEST.MF	2009-02-10 16:25:44 UTC (rev 25210)
@@ -42,6 +42,7 @@
  lib/xstream.jar,
  lib/antlr-runtime.jar,
  lib/drools-templates.jar,
- lib/mvel2.jar
+ lib/mvel2.jar,
+ lib/joda-time.jar
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Export-Package: org.drools.eclipse.util

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/build.properties
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/build.properties	2009-02-10 16:04:06 UTC (rev 25209)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/build.properties	2009-02-10 16:25:44 UTC (rev 25210)
@@ -6,7 +6,8 @@
                lib/,\
                lib/drools-templates.jar,\
                lib/drools-api.jar,\
-               lib/mvel2.jar
+               lib/mvel2.jar,\
+               lib/joda-time.jar
 bin.excludes = lib/drools-documentation.jar
 src.includes = META-INF/,\
                icons/,\

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/dsl/editor/DSLAdapter.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/dsl/editor/DSLAdapter.java	2009-02-10 16:04:06 UTC (rev 25209)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/dsl/editor/DSLAdapter.java	2009-02-10 16:25:44 UTC (rev 25210)
@@ -43,7 +43,7 @@
 	private DSLTree dslTree = new DSLTree();
     
     //to dig out the expander, without using the parser.
-    private static final Pattern EXPANDER_PATTERN = Pattern.compile( "\\n\\s*expander\\s*(.*)\\.dsl\\s", 
+    private static final Pattern EXPANDER_PATTERN = Pattern.compile( "\\n\\s*expander\\s*(.*)\\.dsl", 
                                                              Pattern.DOTALL | Pattern.MULTILINE );
     /**
      * This will sniff out the DSL config file name from the content.

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/rulebuilder/editors/RuleEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/rulebuilder/editors/RuleEditor.java	2009-02-10 16:04:06 UTC (rev 25209)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/rulebuilder/editors/RuleEditor.java	2009-02-10 16:25:44 UTC (rev 25210)
@@ -21,6 +21,7 @@
 import org.drools.guvnor.server.util.BRDRLPersistence;
 import org.drools.guvnor.server.util.BRXMLPersistence;
 import org.drools.lang.dsl.DSLMappingFile;
+import org.drools.lang.dsl.DSLTokenizedMappingFile;
 import org.eclipse.core.internal.resources.Container;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IResource;
@@ -203,7 +204,7 @@
             for ( int i = 0; i < files.length; i++ ) {
                 if ( files[i].getName().endsWith( ".dsl" ) ) {
                     String contents = getFileContents( (IFile) files[i] );
-                    DSLMappingFile dsl = new DSLMappingFile();
+                    DSLTokenizedMappingFile dsl = new DSLTokenizedMappingFile();
 
                     if ( dsl.parseAndLoad( new StringReader( contents ) ) ) {
                         dslList.add( dsl );




More information about the jboss-svn-commits mailing list