[jboss-svn-commits] JBL Code SVN: r19049 - 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 23:00:46 EDT 2008
Author: mingjin
Date: 2008-03-17 23:00:46 -0400 (Mon, 17 Mar 2008)
New Revision: 19049
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
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MapBackedClassLoader.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Package.java
Log:
JBRULES-1095 Cleaned up classloader handling in serialization
- CompositePackageClassLoader.java, removed externalizable and the corresponding implementations.
- DialectDatas.java: getting parentClassLoader from DroolsObjectInputStream, and setting up classloader before loading datas.
- JavaDialectData.java: using datas from DroolsObjectInputStream.
- MapBackedClassLoader.java: removed externalizable and the corresponding implementations.
- Package.java: minor cleanup.
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-18 01:30:13 UTC (rev 19048)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/CompositePackageClassLoader.java 2008-03-18 03:00:46 UTC (rev 19049)
@@ -9,13 +9,10 @@
import java.util.Iterator;
import java.util.List;
-public class CompositePackageClassLoader extends ClassLoader implements DroolsClassLoader, Externalizable {
+public class CompositePackageClassLoader extends ClassLoader implements DroolsClassLoader {
private List classLoaders = new ArrayList();
- public CompositePackageClassLoader() {
- }
-
public CompositePackageClassLoader(final ClassLoader parentClassLoader) {
super( parentClassLoader );
}
@@ -32,14 +29,6 @@
}
}
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- classLoaders = (List)in.readObject();
- }
-
- public void writeExternal(ObjectOutput out) throws IOException {
- out.writeObject(classLoaders);
- }
-
public void removeClassLoader(final ClassLoader classLoader) {
for ( final Iterator it = this.classLoaders.iterator(); it.hasNext(); ) {
if ( it.next() == 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-18 01:30:13 UTC (rev 19048)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DialectDatas.java 2008-03-18 03:00:46 UTC (rev 19049)
@@ -40,7 +40,6 @@
*/
public void writeExternal(final ObjectOutput stream) throws IOException {
stream.writeObject(this.dialects);
- stream.writeObject(this.classLoader);
stream.writeObject( this.lineMappings );
}
@@ -52,15 +51,14 @@
*/
public void readExternal(final ObjectInput stream) throws IOException,
ClassNotFoundException {
- this.dialects = (Map<String, DialectData>)stream.readObject();
- this.classLoader = (CompositePackageClassLoader)stream.readObject();
- setParentClassLoader(this.classLoader.getParent());
- if (stream instanceof DroolsObjectInput) {
- DroolsObjectInput droolsStream = (DroolsObjectInput)stream;
- addClassLoader(droolsStream.getClassLoader());
- droolsStream.setClassLoader(this.classLoader);
- droolsStream.setDialectDatas(this);
- }
+ DroolsObjectInput droolsStream = (DroolsObjectInput)stream;
+
+ setParentClassLoader(droolsStream.getClassLoader());
+ this.classLoader = new CompositePackageClassLoader( this.parentClassLoader );
+ droolsStream.setDialectDatas(this);
+ droolsStream.setClassLoader(this.classLoader);
+
+ this.dialects = (Map<String, DialectData>)droolsStream.readObject();
this.lineMappings = (Map) stream.readObject();
}
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-18 01:30:13 UTC (rev 19048)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/JavaDialectData.java 2008-03-18 03:00:46 UTC (rev 19049)
@@ -20,6 +20,7 @@
import org.drools.base.accumulators.JavaAccumulatorFunctionExecutor;
import org.drools.common.DroolsObjectInputStream;
import org.drools.common.DroolsObjectOutputStream;
+import org.drools.common.DroolsObjectInput;
import org.drools.spi.Accumulator;
import org.drools.spi.Consequence;
import org.drools.spi.EvalExpression;
@@ -104,11 +105,6 @@
*
*/
public void writeExternal(ObjectOutput stream) throws IOException {
- if (!(stream instanceof DroolsObjectOutputStream)) {
- stream = new DroolsObjectOutputStream(stream);
- }
- stream.writeObject( this.datas );
- stream.writeObject( classLoader );
stream.writeObject( this.store );
stream.writeObject( this.AST );
stream.writeObject( this.invokerLookups );
@@ -123,15 +119,12 @@
*/
public void readExternal(ObjectInput stream) throws IOException,
ClassNotFoundException {
- DroolsObjectInputStream droolsStream = stream instanceof DroolsObjectInputStream
- ? (DroolsObjectInputStream)stream
- : new DroolsObjectInputStream(stream);
- this.datas = (DialectDatas)droolsStream.readObject();
- this.classLoader = (PackageClassLoader)droolsStream.readObject();
+ DroolsObjectInput droolsStream = (DroolsObjectInput)stream;
+
+ this.datas = droolsStream.getDialectDatas();
+ this.classLoader = new PackageClassLoader( this.datas.getParentClassLoader(), this );
this.datas.addClassLoader( 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();
this.invokerLookups = (Map) droolsStream.readObject();
@@ -362,7 +355,7 @@
*/
public static class PackageClassLoader extends ClassLoader
implements
- DroolsClassLoader, Externalizable {
+ DroolsClassLoader {
private JavaDialectData parent;
public PackageClassLoader() {
@@ -373,14 +366,6 @@
this.parent = parent;
}
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- parent = (JavaDialectData)in.readObject();
- }
-
- public void writeExternal(ObjectOutput out) throws IOException {
- out.writeObject(parent);
- }
-
public Class fastFindClass(final String name) {
final Class clazz = findLoadedClass( name );
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MapBackedClassLoader.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MapBackedClassLoader.java 2008-03-18 01:30:13 UTC (rev 19048)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MapBackedClassLoader.java 2008-03-18 03:00:46 UTC (rev 19049)
@@ -16,7 +16,7 @@
public class MapBackedClassLoader extends ClassLoader
implements
- DroolsClassLoader, Externalizable {
+ DroolsClassLoader {
private static final long serialVersionUID = 400L;
@@ -32,9 +32,6 @@
} );
}
- public MapBackedClassLoader() {
- }
-
public MapBackedClassLoader(final ClassLoader parentClassLoader) {
super( parentClassLoader );
this.store = new HashMap();
@@ -46,14 +43,6 @@
this.store = store;
}
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- store = (Map)in.readObject();
- }
-
- public void writeExternal(ObjectOutput out) throws IOException {
- out.writeObject(store);
- }
-
public void addResource(String className,
byte[] bytes) {
addClass( className,
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Package.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Package.java 2008-03-18 01:30:13 UTC (rev 19048)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Package.java 2008-03-18 03:00:46 UTC (rev 19049)
@@ -194,10 +194,6 @@
: new DroolsObjectInputStream(new ByteArrayInputStream((byte[])stream.readObject()));
this.dialectDatas = (DialectDatas)in.readObject();
- // Not sure needs to do this, everything is already at this time.
- if (!isDroolsStream)
- ((DroolsObjectInput)in).setClassLoader(this.dialectDatas.getClassLoader());
-
this.typeDeclarations = (Map)in.readObject();
this.name = (String) in.readObject();
this.imports = (Map<String, ImportDeclaration>) in.readObject();
More information about the jboss-svn-commits
mailing list