[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