Title: [1030] trunk/core/src/main/java/org/servicemix/jbi/util: Downgrade xstream dependency to 1.0.x for deployment inside geronimo

Diff

Modified: trunk/core/src/main/java/org/servicemix/jbi/framework/AutoDeploymentService.java (1029 => 1030)

--- trunk/core/src/main/java/org/servicemix/jbi/framework/AutoDeploymentService.java	2005-12-07 09:23:32 UTC (rev 1029)
+++ trunk/core/src/main/java/org/servicemix/jbi/framework/AutoDeploymentService.java	2005-12-07 11:11:40 UTC (rev 1030)
@@ -16,11 +16,7 @@
 package org.servicemix.jbi.framework;
 
 import java.io.File;
-import java.io.FileReader;
-import java.io.FileWriter;
 import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.ArrayList;
@@ -32,6 +28,7 @@
 import java.util.Map;
 import java.util.Timer;
 import java.util.TimerTask;
+
 import javax.jbi.JBIException;
 import javax.jbi.management.DeploymentException;
 import javax.jbi.management.LifeCycleMBean;
@@ -39,6 +36,7 @@
 import javax.management.MBeanAttributeInfo;
 import javax.resource.spi.work.Work;
 import javax.resource.spi.work.WorkException;
+
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.servicemix.jbi.config.spring.XBeanProcessor;
@@ -49,9 +47,9 @@
 import org.servicemix.jbi.management.AttributeInfoHelper;
 import org.servicemix.jbi.management.BaseLifeCycle;
 import org.servicemix.jbi.util.FileUtil;
+import org.servicemix.jbi.util.XmlPersistenceSupport;
 import org.xbean.spring.context.FileSystemXmlApplicationContext;
-import com.thoughtworks.xstream.XStream;
-import com.thoughtworks.xstream.io.xml.DomDriver;
+
 import edu.emory.mathcs.backport.java.util.concurrent.ConcurrentHashMap;
 import edu.emory.mathcs.backport.java.util.concurrent.atomic.AtomicBoolean;
 /**
@@ -74,7 +72,6 @@
     private Timer statsTimer;
     private TimerTask timerTask;
     private Map pendingSAs=new ConcurrentHashMap();
-    private XStream xstream=new XStream(new DomDriver());
     private Map installFileMap=null;
     private Map deployFileMap=null;
 
@@ -528,27 +525,19 @@
 
     private void persistState(File root,Map map){
         try{
-            File file=FileUtil.getDirectoryPath(root,MONITOR_STATE_FILE);
-            FileWriter writer=new FileWriter(file);
-            ObjectOutputStream out=xstream.createObjectOutputStream(writer,"file-install-times");
-            out.writeObject(map);
-            out.close();
-            writer.close();
+            File file = FileUtil.getDirectoryPath(root,MONITOR_STATE_FILE);
+            XmlPersistenceSupport.write(file, map);
         }catch(IOException e){
             log.error("Failed to persist file state to: "+root,e);
         }
     }
 
     private Map readState(File root){
-        Map result=new HashMap();
+        Map result = new HashMap();
         try{
-            File file=FileUtil.getDirectoryPath(root,MONITOR_STATE_FILE);
-            if(file.exists()){
-                FileReader reader=new FileReader(file);
-                ObjectInputStream in=xstream.createObjectInputStream(reader);
-                result=(Map) in.readObject();
-                in.close();
-                reader.close();
+            File file = FileUtil.getDirectoryPath(root,MONITOR_STATE_FILE);
+            if(file.exists()) {
+                result = (Map) XmlPersistenceSupport.read(file);
             }else {
                 log.debug("State file doesn't exist: " + file.getPath());
             }

Modified: trunk/core/src/main/java/org/servicemix/jbi/framework/LocalComponentConnector.java (1029 => 1030)

--- trunk/core/src/main/java/org/servicemix/jbi/framework/LocalComponentConnector.java	2005-12-07 09:23:32 UTC (rev 1029)
+++ trunk/core/src/main/java/org/servicemix/jbi/framework/LocalComponentConnector.java	2005-12-07 11:11:40 UTC (rev 1030)
@@ -16,25 +16,22 @@
 package org.servicemix.jbi.framework;
 
 import java.io.File;
-import java.io.FileReader;
-import java.io.FileWriter;
 import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
 import java.util.Properties;
 import java.util.Set;
+
 import javax.jbi.JBIException;
 import javax.jbi.component.Component;
 import javax.jbi.component.ComponentLifeCycle;
 import javax.jbi.management.LifeCycleMBean;
 import javax.jbi.servicedesc.ServiceEndpoint;
 import javax.management.ObjectName;
+
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.servicemix.jbi.container.ActivationSpec;
 import org.servicemix.jbi.messaging.DeliveryChannelImpl;
-import com.thoughtworks.xstream.XStream;
-import com.thoughtworks.xstream.io.xml.DomDriver;
+import org.servicemix.jbi.util.XmlPersistenceSupport;
 /**
  * ComponentConnector is used internally for message routing
  * 
@@ -50,7 +47,6 @@
     private ObjectName extendedMBeanName;
     private ComponentMBeanImpl componentMBean;
     private boolean pojo;
-    private XStream xstream = new XStream(new DomDriver());
 
     /**
      * Default Constructor
@@ -265,15 +261,11 @@
             String componentName=getComponentNameSpace().getName();
             if(componentMBean!=null){
                 try{
-                    String currentState=componentMBean.getCurrentState();
-                    File stateFile=context.getContainer().getEnvironmentContext().getComponentStateFile(componentName);
-                    Properties props=new Properties();
-                    props.setProperty("state",currentState);
-                    FileWriter writer=new FileWriter(stateFile);
-                    ObjectOutputStream out=xstream.createObjectOutputStream(writer,"running-state");
-                    out.writeObject(props);
-                    out.close();
-                    writer.close();
+                    String currentState = componentMBean.getCurrentState();
+                    File stateFile = context.getContainer().getEnvironmentContext().getComponentStateFile(componentName);
+                    Properties props = new Properties();
+                    props.setProperty("state", currentState);
+                    XmlPersistenceSupport.write(stateFile, props);
                 }catch(IOException e){
                     log.error("Failed to write current running state for Component: "+componentName,e);
                 }
@@ -314,13 +306,9 @@
         if(componentMBean!=null){
             String componentName=getComponentNameSpace().getName();          
             try{
-                File stateFile=context.getContainer().getEnvironmentContext().getComponentStateFile(componentName);
-                FileReader reader=new FileReader(stateFile);
-                ObjectInputStream in=xstream.createObjectInputStream(reader);
-                Properties props=(Properties) in.readObject();
-                result=props.getProperty("state",result);
-                in.close();
-                reader.close();
+                File stateFile = context.getContainer().getEnvironmentContext().getComponentStateFile(componentName);
+                Properties props = (Properties) XmlPersistenceSupport.read(stateFile);
+                result = props.getProperty("state",result);
             }catch(Exception e){
                 log.error("Failed to read running state for Component: "+componentName,e);
             }

Modified: trunk/core/src/main/java/org/servicemix/jbi/framework/ServiceAssemblyLifeCycle.java (1029 => 1030)

--- trunk/core/src/main/java/org/servicemix/jbi/framework/ServiceAssemblyLifeCycle.java	2005-12-07 09:23:32 UTC (rev 1029)
+++ trunk/core/src/main/java/org/servicemix/jbi/framework/ServiceAssemblyLifeCycle.java	2005-12-07 11:11:40 UTC (rev 1030)
@@ -16,18 +16,15 @@
 package org.servicemix.jbi.framework;
 
 import java.io.File;
-import java.io.FileReader;
-import java.io.FileWriter;
 import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
 import java.util.Properties;
+
 import javax.jbi.management.DeploymentServiceMBean;
+
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.servicemix.jbi.deployment.ServiceAssembly;
-import com.thoughtworks.xstream.XStream;
-import com.thoughtworks.xstream.io.xml.DomDriver;
+import org.servicemix.jbi.util.XmlPersistenceSupport;
 /**
  * ComponentConnector is used internally for message routing
  * 
@@ -41,7 +38,6 @@
     static final String STOPPED=DeploymentServiceMBean.STOPPED;
     private ServiceAssembly serviceAssembly;
     private String currentState=SHUTDOWN;
-    private XStream xstream=new XStream(new DomDriver());
     private File stateFile;
 
     /**
@@ -121,14 +117,10 @@
      */
     void writeRunningState(){
         try{
-            String currentState=getCurrentState();
-            Properties props=new Properties();
-            props.setProperty("state",currentState);
-            FileWriter writer=new FileWriter(stateFile);
-            ObjectOutputStream out=xstream.createObjectOutputStream(writer,"running-state");
-            out.writeObject(props);
-            out.close();
-            writer.close();
+            String currentState = getCurrentState();
+            Properties props = new Properties();
+            props.setProperty("state", currentState);
+            XmlPersistenceSupport.write(stateFile, props);
         }catch(IOException e){
             log.error("Failed to write current running state for ServiceAssembly: "+getName(),e);
         }
@@ -140,11 +132,8 @@
     void getRunningStateFromStore(){
         try{
             if(stateFile.exists()){
-                FileReader reader=new FileReader(stateFile);
-                ObjectInputStream in=xstream.createObjectInputStream(reader);
-                Properties props=(Properties) in.readObject();
-                currentState=props.getProperty("state",SHUTDOWN);
-                reader.close();
+                Properties props = (Properties) XmlPersistenceSupport.read(stateFile);
+                currentState = props.getProperty("state",SHUTDOWN);
             }
         }catch(Exception e){
             log.error("Failed to read current running state for ServiceAssembly: "+getName(),e);

Added: trunk/core/src/main/java/org/servicemix/jbi/util/XmlPersistenceSupport.java (1029 => 1030)

--- trunk/core/src/main/java/org/servicemix/jbi/util/XmlPersistenceSupport.java	2005-12-07 09:23:32 UTC (rev 1029)
+++ trunk/core/src/main/java/org/servicemix/jbi/util/XmlPersistenceSupport.java	2005-12-07 11:11:40 UTC (rev 1030)
@@ -0,0 +1,50 @@
+/**
+ * <a href="" The open source ESB</a>
+ * 
+ * Copyright 2005 RAJD Consultancy Ltd
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ * 
+ */
+package org.servicemix.jbi.util;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.Reader;
+import java.io.Writer;
+
+import com.thoughtworks.xstream.XStream;
+import com.thoughtworks.xstream.io.xml.DomDriver;
+
+public class XmlPersistenceSupport {
+
+    private static XStream xstream = new XStream(new DomDriver());
+    
+    public static Object read(File file) throws IOException {
+        Reader r = new FileReader(file);
+        try {
+            return xstream.fromXML(r);
+        } finally {
+            r.close();   
+        }
+    }
+    
+    public static void write(File file, Object obj) throws IOException {
+        Writer w = new FileWriter(file);
+        try {
+            xstream.toXML(obj, w);
+        } finally {
+            w.close();
+        }
+    }
+    
+}

Reply via email to