[jboss-svn-commits] JBL Code SVN: r19323 - in labs/jbossrules/branches/4.0.x: drools-compiler/src/test/java/org/drools/integrationtests and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Mar 30 11:20:34 EDT 2008


Author: tirelli
Date: 2008-03-30 11:20:33 -0400 (Sun, 30 Mar 2008)
New Revision: 19323

Modified:
   labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaPredicateBuilder.java
   labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
   labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/mvel/DroolsMVELFactory.java
Log:
JBRULES-1522: ok, I hope now it is all working

Modified: labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaPredicateBuilder.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaPredicateBuilder.java	2008-03-30 04:30:01 UTC (rev 19322)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaPredicateBuilder.java	2008-03-30 15:20:33 UTC (rev 19323)
@@ -28,7 +28,7 @@
                                          previousDeclarations,
                                          localDeclarations,
                                          (String[]) usedIdentifiers[1].toArray( new String[usedIdentifiers[1].size()] ) );
-        map.put( "expression", predicateDescr.getContent() );
+        map.put( "expression", predicateDescr.getContent().toString().replaceAll( "\"", "\\\\\\\"" ) );
 
         generatTemplates( "predicateMethod",
                           "predicateInvoker",

Modified: labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java	2008-03-30 04:30:01 UTC (rev 19322)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java	2008-03-30 15:20:33 UTC (rev 19323)
@@ -18,6 +18,7 @@
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
+import java.io.File;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.ObjectInput;
@@ -4688,7 +4689,9 @@
     }
 
     public void testAlphaEvalWithOrCE() throws Exception {
-        final PackageBuilder builder = new PackageBuilder();
+        PackageBuilderConfiguration conf = new PackageBuilderConfiguration();
+        conf.setDumpDir( new File("./target") );
+        final PackageBuilder builder = new PackageBuilder( conf );
         builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_AlphaEvalWithOrCE.drl" ) ) );
         final Package pkg = builder.getPackage();
 

Modified: labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/mvel/DroolsMVELFactory.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/mvel/DroolsMVELFactory.java	2008-03-30 04:30:01 UTC (rev 19322)
+++ labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/mvel/DroolsMVELFactory.java	2008-03-30 15:20:33 UTC (rev 19323)
@@ -1,15 +1,21 @@
 package org.drools.base.mvel;
 
-import java.io.Serializable;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
 import java.lang.reflect.Method;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import org.drools.WorkingMemory;
+import org.drools.common.DroolsObjectInputStream;
 import org.drools.reteoo.ReteTuple;
 import org.drools.rule.Declaration;
 import org.drools.spi.KnowledgeHelper;
@@ -23,7 +29,7 @@
 public class DroolsMVELFactory extends BaseVariableResolverFactory
     implements
     LocalVariableResolverFactory,
-    Serializable,
+    Externalizable,
     Cloneable {
 
     private static final long serialVersionUID = 400L;
@@ -49,10 +55,16 @@
 
     static {
         //for handling dates as string literals
-        DataConversion.addConversionHandler( Date.class, new MVELDateCoercion() );
-        DataConversion.addConversionHandler( Calendar.class, new MVELCalendarCoercion() );
+        DataConversion.addConversionHandler( Date.class,
+                                             new MVELDateCoercion() );
+        DataConversion.addConversionHandler( Calendar.class,
+                                             new MVELCalendarCoercion() );
     }
 
+    // used only by serialization
+    public DroolsMVELFactory() {
+    }
+
     public DroolsMVELFactory(final Map previousDeclarations,
                              final Map localDeclarations,
                              final Map globals) {
@@ -80,36 +92,37 @@
         }
     }
 
-//    public void writeExternal(final ObjectOutput stream) throws IOException {
-//        setNextFactory( null );
-//        stream.writeObject( this.previousDeclarations );
-//        stream.writeObject( this.localDeclarations );
-//        stream.writeObject( this.globals );
-//        stream.writeObject( this.variableResolvers );
-//    }
-//
-//    public void readExternal(final ObjectInput stream) throws IOException,
-//                                                      ClassNotFoundException {
-//        DroolsObjectInputStream droolsInputStream = (DroolsObjectInputStream) stream;
-//
-//        this.previousDeclarations = (Map) droolsInputStream.readObject();
-//        this.localDeclarations = (Map) droolsInputStream.readObject();
-//        this.globals = (Map) droolsInputStream.readObject();
-//        this.variableResolvers = (Map) droolsInputStream.readObject();
-//
-//        StaticMethodImportResolverFactory factory = new StaticMethodImportResolverFactory();
-//        setNextFactory( factory );
-//
-//        Package pkg = droolsInputStream.getPackage();
-//        ClassLoader classLoader = pkg.getPackageCompilationData().getClassLoader();
-//        for ( Iterator it = pkg.getStaticImports().iterator(); it.hasNext(); ) {
-//            String staticImportEntry = (String) it.next();
-//            addStaticImport( factory,
-//                             staticImportEntry,
-//                             classLoader );
-//        }
-//    }
+    public void writeExternal(final ObjectOutput stream) throws IOException {
+        stream.writeObject( this.previousDeclarations );
+        stream.writeObject( this.localDeclarations );
+        stream.writeObject( this.globals );
+        stream.writeObject( this.localVariables );
+        stream.writeObject( this.variableResolvers != null ? new HashSet( this.variableResolvers.keySet() ) : null );
+    }
 
+    public void readExternal(final ObjectInput stream) throws IOException,
+                                                      ClassNotFoundException {
+        DroolsObjectInputStream droolsInputStream = (DroolsObjectInputStream) stream;
+
+        this.previousDeclarations = (Map) droolsInputStream.readObject();
+        this.localDeclarations = (Map) droolsInputStream.readObject();
+        this.globals = (Map) droolsInputStream.readObject();
+        this.localVariables = (Map) droolsInputStream.readObject();
+
+        // restore resolvers
+        Set resolvers = (Set) droolsInputStream.readObject();
+        if ( resolvers != null ) {
+            for ( Iterator it = resolvers.iterator(); it.hasNext(); ) {
+                String name = (String) it.next();
+                if ( !isResolveable( name ) ) {
+                    addResolver( name,
+                                 new LocalVariableResolver( this,
+                                                            name ) );
+                }
+            }
+        }
+    }
+
     public static void addStaticImport(StaticMethodImportResolverFactory factory,
                                        String staticImportEntry,
                                        ClassLoader classLoader) {
@@ -162,7 +175,7 @@
                 this.localVariables = new HashMap();
             } else {
                 this.localVariables.clear();
-            }            
+            }
         } else {
             this.localVariables = variables;
         }
@@ -199,9 +212,9 @@
                          vr = new LocalVariableResolver( this,
                                                          name ) );
         }
-        
+
         vr.setValue( value );
-        return vr;        
+        return vr;
     }
 
     public VariableResolver createVariable(String name,
@@ -213,8 +226,8 @@
                          vr = new LocalVariableResolver( this,
                                                          name,
                                                          type ) );
-        }        
-        
+        }
+
         vr.setValue( value );
         return vr;
     }
@@ -243,7 +256,7 @@
                                                        (Class) this.globals.get( name ),
                                                        this ) );
             return true;
-        }  else if ( nextFactory != null ) {
+        } else if ( nextFactory != null ) {
             return nextFactory.isResolveable( name );
         }
 




More information about the jboss-svn-commits mailing list