You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2012/02/13 21:35:47 UTC

svn commit: r1243680 - /openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java

Author: rmannibucau
Date: Mon Feb 13 20:35:46 2012
New Revision: 1243680

URL: http://svn.apache.org/viewvc?rev=1243680&view=rev
Log:
adding dump/loadDump methods in ConfigurationFactory - will need enhancement but easier to add it as hooks for now

Modified:
    openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java

Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java?rev=1243680&r1=1243679&r2=1243680&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java Mon Feb 13 20:35:46 2012
@@ -78,9 +78,16 @@ import org.apache.openejb.util.URLs;
 import org.apache.openejb.util.UpdateChecker;
 
 import javax.ejb.embeddable.EJBContainer;
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
 import java.io.File;
 import java.io.FileInputStream;
+import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.OutputStream;
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.URL;
@@ -100,6 +107,7 @@ import static org.apache.openejb.config.
 import static org.apache.openejb.config.ServiceUtils.implies;
 
 public class ConfigurationFactory implements OpenEjbConfigurationFactory {
+    public static final String APP_INFO_XML = "openejb/app-info.xml";
     public static final String ADDITIONAL_DEPLOYMENTS = "conf/deployments.xml";
     static final String CONFIGURATION_PROPERTY = "openejb.configuration";
     static final String CONF_FILE_PROPERTY = "openejb.conf.file";
@@ -1287,4 +1295,46 @@ public class ConfigurationFactory implem
             return null;
         }
     }
+
+    public void dump(final File output, final AppInfo info) throws IOException {
+        final File parent = output.getParentFile();
+        if (!parent.exists() && !parent.mkdirs()) {
+            throw new IOException("can't create directory " + output.getParent());
+        }
+
+        // TODO: something else is surely better than java serialization!
+        // loadDump method should be modified too
+        final OutputStream fos = new BufferedOutputStream(new FileOutputStream(output));
+        final ObjectOutputStream oos = new ObjectOutputStream(fos);
+        try {
+            oos.writeObject(info);
+        } finally {
+            IO.close(fos);
+        }
+    }
+
+    public AppInfo loadDump(final InputStream input) throws OpenEJBException {
+        if (input == null) {
+            throw new NullPointerException("input can't be null");
+        }
+
+        // TODO: something else is surely better than java serialization!
+        final InputStream fis = new BufferedInputStream(input);
+        final ObjectInputStream ois;
+        try {
+            ois = new ObjectInputStream(fis);
+        } catch (IOException e) {
+            throw new OpenEJBException(e);
+        }
+
+        try {
+            return (AppInfo) ois.readObject();
+        } catch (ClassNotFoundException e) {
+            throw new OpenEJBException(e);
+        } catch (IOException e) {
+            throw new OpenEJBException(e);
+        } finally {
+            IO.close(fis);
+        }
+    }
 }