[jboss-svn-commits] JBL Code SVN: r19042 - labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Mar 17 19:11:26 EDT 2008
Author: mingjin
Date: 2008-03-17 19:11:25 -0400 (Mon, 17 Mar 2008)
New Revision: 19042
Modified:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/CompositePackageClassLoader.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DialectDatas.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/JavaDialectData.java
Log:
JBRULES-1488 fixed failed test in ServiceImplementationTest.testRunScenarioWithJar
- CompositePackageClassLoader.java, testing classLoader before add.
- JavaDialectData.java, adding DialectDatas's classLoader to DroolsObjectInput stream instead of it'w own one
- DialectDatas.java. adding DroolsObjectInput stream's classLoader to store.
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/CompositePackageClassLoader.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/CompositePackageClassLoader.java 2008-03-17 20:32:14 UTC (rev 19041)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/CompositePackageClassLoader.java 2008-03-17 23:11:25 UTC (rev 19042)
@@ -27,7 +27,7 @@
this.classLoaders.add(object);
}
}
- } else {
+ } else if (classLoader instanceof DroolsClassLoader && !classLoaders.contains(classLoader)) {
this.classLoaders.add( classLoader );
}
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DialectDatas.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DialectDatas.java 2008-03-17 20:32:14 UTC (rev 19041)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DialectDatas.java 2008-03-17 23:11:25 UTC (rev 19042)
@@ -1,5 +1,7 @@
package org.drools.rule;
+import org.drools.common.DroolsObjectInput;
+
import java.io.Externalizable;
import java.io.IOException;
import java.io.ObjectInput;
@@ -9,15 +11,13 @@
import java.util.Map;
import java.util.Map.Entry;
-import org.drools.common.DroolsObjectInput;
-
public class DialectDatas implements Externalizable {
- private ClassLoader parentClassLoader;
+ private transient ClassLoader parentClassLoader;
private CompositePackageClassLoader classLoader;
- private Map<String, DialectData> dialects;
+ private Map<String, DialectData> dialects;
- private Map lineMappings;
+ private Map lineMappings;
/**
* Default constructor - for Externalizable. This should never be used by a user, as it
@@ -41,7 +41,6 @@
public void writeExternal(final ObjectOutput stream) throws IOException {
stream.writeObject(this.dialects);
stream.writeObject(this.classLoader);
- stream.writeObject(this.parentClassLoader instanceof DroolsClassLoader ? this.parentClassLoader : null);
stream.writeObject( this.lineMappings );
}
@@ -53,14 +52,16 @@
*/
public void readExternal(final ObjectInput stream) throws IOException,
ClassNotFoundException {
- this.dialects = (Map<String, DialectData>)stream.readObject();
+ this.dialects = (Map<String, DialectData>)stream.readObject();
this.classLoader = (CompositePackageClassLoader)stream.readObject();
- setParentClassLoader((ClassLoader)stream.readObject());
+ setParentClassLoader(this.classLoader.getParent());
if (stream instanceof DroolsObjectInput) {
- ((DroolsObjectInput)stream).setClassLoader(this.classLoader);
- ((DroolsObjectInput)stream).setDialectDatas(this);
+ DroolsObjectInput droolsStream = (DroolsObjectInput)stream;
+ addClassLoader(droolsStream.getClassLoader());
+ droolsStream.setClassLoader(this.classLoader);
+ droolsStream.setDialectDatas(this);
}
- this.lineMappings = (Map) stream.readObject();
+ this.lineMappings = (Map) stream.readObject();
}
public void addDialectData(String dialect, DialectData dialectData) {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/JavaDialectData.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/JavaDialectData.java 2008-03-17 20:32:14 UTC (rev 19041)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/JavaDialectData.java 2008-03-17 23:11:25 UTC (rev 19042)
@@ -16,6 +16,20 @@
* limitations under the License.
*/
+import org.drools.RuntimeDroolsException;
+import org.drools.base.accumulators.JavaAccumulatorFunctionExecutor;
+import org.drools.common.DroolsObjectInputStream;
+import org.drools.common.DroolsObjectOutputStream;
+import org.drools.spi.Accumulator;
+import org.drools.spi.Consequence;
+import org.drools.spi.EvalExpression;
+import org.drools.spi.PredicateExpression;
+import org.drools.spi.ReturnValueEvaluator;
+import org.drools.spi.ReturnValueExpression;
+import org.drools.util.StringUtils;
+import org.drools.workflow.core.node.ActionNode;
+import org.drools.workflow.instance.impl.ReturnValueConstraintEvaluator;
+
import java.io.ByteArrayInputStream;
import java.io.Externalizable;
import java.io.IOException;
@@ -32,20 +46,6 @@
import java.util.Map;
import java.util.Map.Entry;
-import org.drools.RuntimeDroolsException;
-import org.drools.base.accumulators.JavaAccumulatorFunctionExecutor;
-import org.drools.common.DroolsObjectInputStream;
-import org.drools.common.DroolsObjectOutputStream;
-import org.drools.spi.Accumulator;
-import org.drools.spi.Consequence;
-import org.drools.spi.EvalExpression;
-import org.drools.spi.PredicateExpression;
-import org.drools.spi.ReturnValueEvaluator;
-import org.drools.spi.ReturnValueExpression;
-import org.drools.util.StringUtils;
-import org.drools.workflow.core.node.ActionNode;
-import org.drools.workflow.instance.impl.ReturnValueConstraintEvaluator;
-
public class JavaDialectData
implements
DialectData,
@@ -129,7 +129,8 @@
this.datas = (DialectDatas)droolsStream.readObject();
this.classLoader = (PackageClassLoader)droolsStream.readObject();
this.datas.addClassLoader( this.classLoader );
- droolsStream.setClassLoader(this.classLoader);
+ this.datas.addClassLoader(droolsStream.getClassLoader());
+ droolsStream.setClassLoader(this.datas.getClassLoader());
droolsStream.setDialectDatas(this.datas);
this.store = (Map) stream.readObject();
this.AST = stream.readObject();
More information about the jboss-svn-commits
mailing list