[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