[jboss-svn-commits] JBL Code SVN: r18738 - in labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools: rule and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Mar 6 12:55:38 EST 2008
Author: mingjin
Date: 2008-03-06 12:55:38 -0500 (Thu, 06 Mar 2008)
New Revision: 18738
Modified:
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/DroolsObjectInput.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/DroolsObjectInputStream.java
labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/rule/Package.java
Log:
tiddying up a bit.
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/DroolsObjectInput.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/DroolsObjectInput.java 2008-03-06 17:30:01 UTC (rev 18737)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/DroolsObjectInput.java 2008-03-06 17:55:38 UTC (rev 18738)
@@ -10,7 +10,7 @@
* Created by IntelliJ IDEA. User: SG0521861 Date: Mar 4, 2008 Time: 7:24:07 AM To change this template use File |
* Settings | File Templates.
*/
-public interface DroolsObjectInput {
+public interface DroolsObjectInput extends ObjectInput {
ClassLoader getClassLoader();
void setClassLoader(ClassLoader classLoader);
InternalRuleBase getRuleBase();
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/DroolsObjectInputStream.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/DroolsObjectInputStream.java 2008-03-06 17:30:01 UTC (rev 18737)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/common/DroolsObjectInputStream.java 2008-03-06 17:55:38 UTC (rev 18738)
@@ -5,12 +5,12 @@
import java.io.IOException;
import java.io.InputStream;
-import java.io.ObjectInput;
import java.io.StreamCorruptedException;
import java.io.Externalizable;
import java.io.InvalidClassException;
import java.io.ObjectInputStream;
import java.io.ObjectStreamClass;
+import java.io.ObjectInput;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
@@ -26,10 +26,10 @@
import org.drools.rule.Package;
public class DroolsObjectInputStream
- implements ObjectInput, DroolsObjectInput, DroolsObjectStreamConstants {
+ implements DroolsObjectInput, DroolsObjectStreamConstants {
private final Map<Integer, Object> objectsByHandle = new HashMap<Integer, Object>();
- private final DroolsInternalInputStream dataInput;
+ private DroolsObjectInput dataInput;
private static final Map<String, Class> primClasses = new HashMap<String, Class>( 8, 1.0F );
static {
@@ -60,6 +60,9 @@
private DialectDatas dialectDatas;
private ClassFieldExtractorCache extractorFactory;
+ /**
+ * Created this inner class to handle un-Externalizable objects just in case.
+ */
private class DroolsInternalInputStream
extends ObjectInputStream
implements DroolsObjectInput {
Modified: labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/rule/Package.java
===================================================================
--- labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/rule/Package.java 2008-03-06 17:30:01 UTC (rev 18737)
+++ labs/jbossrules/branches/ming-serialization/drools-core/src/main/java/org/drools/rule/Package.java 2008-03-06 17:55:38 UTC (rev 18738)
@@ -20,7 +20,6 @@
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
-import java.io.InputStream;
import java.io.ByteArrayOutputStream;
import java.io.ByteArrayInputStream;
import java.util.Collections;
@@ -146,11 +145,11 @@
*
*/
public void writeExternal(ObjectOutput stream) throws IOException {
- boolean isDrools = stream instanceof DroolsObjectOutputStream;
+ boolean isDroolsStream = stream instanceof DroolsObjectOutputStream;
ByteArrayOutputStream bytes = null;
ObjectOutput out;
- if (isDrools) {
+ if (isDroolsStream) {
out = stream;
}
else {
@@ -168,7 +167,9 @@
out.writeBoolean( this.valid );
out.writeObject( this.rules );
// writing the whole stream as a byte array
- if (!isDrools) {
+ if (!isDroolsStream) {
+ bytes.flush();
+ bytes.close();
stream.writeObject(bytes.toByteArray());
}
}
@@ -183,17 +184,13 @@
*/
public void readExternal(ObjectInput stream) throws IOException,
ClassNotFoundException {
- // PackageCompilationData must be restored before Rules as it has the ClassLoader needed to resolve the generated code references in Rules
- Object temp = stream.readObject();
- ObjectInput in = null;
- if (temp instanceof byte[]) {
- in = new DroolsObjectInputStream(new ByteArrayInputStream((byte[])temp));
- this.dialectDatas = (DialectDatas)in.readObject();
- }
- else {
- in = stream;
- this.dialectDatas = (DialectDatas)temp ;
- }
+ boolean isDroolsStream = stream instanceof DroolsObjectInputStream;
+ ObjectInput in = isDroolsStream
+ ? stream
+ : new DroolsObjectInputStream(new ByteArrayInputStream((byte[])stream.readObject()));
+
+ this.dialectDatas = (DialectDatas)in.readObject();
+ // Not sure needs to do this, everything is already at this time.
((DroolsObjectInput)in).setClassLoader(this.dialectDatas.getClassLoader());
this.name = (String) in.readObject();
@@ -206,7 +203,7 @@
this.valid = in.readBoolean();
this.rules = (Map) in.readObject();
- if (in != stream) {
+ if (!isDroolsStream) {
in.close();
}
}
@@ -480,7 +477,7 @@
/**
* Returns true if clazz is imported as an Event class in this package
* @param clazz
- * @return
+ * @return true if clazz is imported as an Event class in this package
*/
public boolean isEvent(Class clazz) {
if ( clazz == null ) {
More information about the jboss-svn-commits
mailing list