[Jboss-cvs] JBossAS SVN: r56649 - in projects/microcontainer/trunk/container/src/main/org/jboss/virtual: . plugins/context plugins/context/file
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Sep 8 10:23:52 EDT 2006
Author: scott.stark at jboss.org
Date: 2006-09-08 10:23:50 -0400 (Fri, 08 Sep 2006)
New Revision: 56649
Modified:
projects/microcontainer/trunk/container/src/main/org/jboss/virtual/VFSUtils.java
projects/microcontainer/trunk/container/src/main/org/jboss/virtual/VirtualFile.java
projects/microcontainer/trunk/container/src/main/org/jboss/virtual/plugins/context/AbstractURLHandler.java
projects/microcontainer/trunk/container/src/main/org/jboss/virtual/plugins/context/AbstractVirtualFileHandler.java
projects/microcontainer/trunk/container/src/main/org/jboss/virtual/plugins/context/file/FileHandler.java
Log:
Commit in progress serialization work
Modified: projects/microcontainer/trunk/container/src/main/org/jboss/virtual/VFSUtils.java
===================================================================
--- projects/microcontainer/trunk/container/src/main/org/jboss/virtual/VFSUtils.java 2006-09-08 14:22:52 UTC (rev 56648)
+++ projects/microcontainer/trunk/container/src/main/org/jboss/virtual/VFSUtils.java 2006-09-08 14:23:50 UTC (rev 56649)
@@ -23,8 +23,11 @@
import java.io.IOException;
import java.io.InputStream;
+import java.util.ArrayList;
import java.util.Collection;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.StringTokenizer;
import java.util.jar.Attributes;
import java.util.jar.JarFile;
@@ -196,4 +199,26 @@
return name.substring(0, length-1);
return name;
}
+
+ /**
+ * Take a URL.getQuery string and parse it into name=value pairs
+ *
+ * @param query Possibly empty/null url query string
+ * @return String[] for the name/value pairs in the query. May be empty but never null.
+ */
+ public static Map<String, String> parseURLQuery(String query)
+ {
+ HashMap<String, String> pairsMap = new HashMap<String, String>();
+ if( query != null )
+ {
+ StringTokenizer tokenizer = new StringTokenizer(query, "=&");
+ while( tokenizer.hasMoreTokens() )
+ {
+ String name = tokenizer.nextToken();
+ String value = tokenizer.nextToken();
+ pairsMap.put(name, value);
+ }
+ }
+ return pairsMap;
+ }
}
Modified: projects/microcontainer/trunk/container/src/main/org/jboss/virtual/VirtualFile.java
===================================================================
--- projects/microcontainer/trunk/container/src/main/org/jboss/virtual/VirtualFile.java 2006-09-08 14:22:52 UTC (rev 56648)
+++ projects/microcontainer/trunk/container/src/main/org/jboss/virtual/VirtualFile.java 2006-09-08 14:23:50 UTC (rev 56649)
@@ -23,6 +23,7 @@
import java.io.IOException;
import java.io.InputStream;
+import java.io.Serializable;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Collections;
@@ -44,7 +45,10 @@
* @version $Revision: 44334 $
*/
public class VirtualFile
+ implements Serializable
{
+ private static final long serialVersionUID = 1L;
+
/** The virtual file handler */
private final VirtualFileHandler handler;
@@ -52,7 +56,7 @@
private AtomicBoolean closed = new AtomicBoolean(false);
/** The open streams */
- private final Set<InputStream> streams = Collections.synchronizedSet(new WeakSet());
+ private transient final Set<InputStream> streams = Collections.synchronizedSet(new WeakSet());
/**
* Create a new VirtualFile.
Modified: projects/microcontainer/trunk/container/src/main/org/jboss/virtual/plugins/context/AbstractURLHandler.java
===================================================================
--- projects/microcontainer/trunk/container/src/main/org/jboss/virtual/plugins/context/AbstractURLHandler.java 2006-09-08 14:22:52 UTC (rev 56648)
+++ projects/microcontainer/trunk/container/src/main/org/jboss/virtual/plugins/context/AbstractURLHandler.java 2006-09-08 14:23:50 UTC (rev 56649)
@@ -23,6 +23,7 @@
import java.io.IOException;
import java.io.InputStream;
+import java.io.Serializable;
import java.net.URL;
import java.net.URLConnection;
@@ -36,7 +37,10 @@
* @version $Revision: 1.1 $
*/
public abstract class AbstractURLHandler extends AbstractVirtualFileHandler
+ implements Serializable
{
+ private static final long serialVersionUID = 1L;
+
/** The url */
private final URL url;
Modified: projects/microcontainer/trunk/container/src/main/org/jboss/virtual/plugins/context/AbstractVirtualFileHandler.java
===================================================================
--- projects/microcontainer/trunk/container/src/main/org/jboss/virtual/plugins/context/AbstractVirtualFileHandler.java 2006-09-08 14:22:52 UTC (rev 56648)
+++ projects/microcontainer/trunk/container/src/main/org/jboss/virtual/plugins/context/AbstractVirtualFileHandler.java 2006-09-08 14:23:50 UTC (rev 56649)
@@ -22,7 +22,13 @@
package org.jboss.virtual.plugins.context;
import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.ObjectStreamField;
+import java.io.ObjectInputStream.GetField;
+import java.io.ObjectOutputStream.PutField;
import java.net.MalformedURLException;
+import java.net.URL;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
@@ -31,21 +37,31 @@
import org.jboss.virtual.VirtualFile;
import org.jboss.virtual.plugins.vfs.helpers.PathTokenizer;
import org.jboss.virtual.spi.VFSContext;
+import org.jboss.virtual.spi.VFSContextFactory;
+import org.jboss.virtual.spi.VFSContextFactoryLocator;
import org.jboss.virtual.spi.VirtualFileHandler;
/**
* AbstractVirtualFileHandler.
*
* @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @author Scott.Stark at jboss.org
* @version $Revision: 1.1 $
*/
public abstract class AbstractVirtualFileHandler implements VirtualFileHandler
{
/** The log */
protected final Logger log = Logger.getLogger(getClass());
-
+ private static final long serialVersionUID = 1L;
+ /** The class serial fields */
+ private static final ObjectStreamField[] serialPersistentFields = {
+ new ObjectStreamField("rootURL", URL.class),
+ new ObjectStreamField("url", URL.class),
+ new ObjectStreamField("name", String.class)
+ };
+
/** The VFS context */
- private final VFSContext context;
+ private transient VFSContext context;
/** The parent */
private final VirtualFileHandler parent;
@@ -54,7 +70,7 @@
private final String name;
/** The vfsPath */
- private String vfsPath;
+ private transient String vfsPath;
/** The reference count */
private AtomicInteger references = new AtomicInteger(0);
@@ -306,4 +322,29 @@
return "<unknown>";
}
}
+
+ private void writeObject(ObjectOutputStream out)
+ throws IOException
+ {
+ /*
+ // Write out the serialPersistentFields
+ PutField fields = out.putFields();
+ fields.put("rootURL", this.getVFSContext().getRootURL());
+ fields.put("vfsPath", this.getPathName());
+ out.writeFields();
+ */
+ out.defaultWriteObject();
+ }
+ private void readObject(ObjectInputStream in)
+ throws IOException, ClassNotFoundException
+ {
+ /*
+ // Read in the serialPersistentFields
+ GetField fields = in.readFields();
+ URL rootURL = (URL) fields.get("rootURL", null);
+ this.vfsPath = (String) fields.get("vfsPath", null);
+ VFSContextFactory factory = VFSContextFactoryLocator.getFactory(rootURL);
+ this.context = factory.getVFS(rootURL);
+ */
+ }
}
Modified: projects/microcontainer/trunk/container/src/main/org/jboss/virtual/plugins/context/file/FileHandler.java
===================================================================
--- projects/microcontainer/trunk/container/src/main/org/jboss/virtual/plugins/context/file/FileHandler.java 2006-09-08 14:22:52 UTC (rev 56648)
+++ projects/microcontainer/trunk/container/src/main/org/jboss/virtual/plugins/context/file/FileHandler.java 2006-09-08 14:23:50 UTC (rev 56649)
@@ -24,6 +24,7 @@
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
+import java.io.ObjectInputStream;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
@@ -38,12 +39,15 @@
* FileHandler.
*
* @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @author Scott.Stark at jboss.org
* @version $Revision: 1.1 $
*/
-public class FileHandler extends AbstractURLHandler implements StructuredVirtualFileHandler
+public class FileHandler extends AbstractURLHandler
+ implements StructuredVirtualFileHandler
{
+ private static final long serialVersionUID = 1;
/** The file */
- private final File file;
+ private transient File file;
/**
* Create a new FileHandler.
@@ -157,4 +161,13 @@
File child = new File(parentFile, name);
return context.createVirtualFileHandler(this, child);
}
+
+ private void readObject(ObjectInputStream in)
+ throws IOException, ClassNotFoundException
+ {
+ in.defaultReadObject();
+ // Initialize the transient values
+ this.file = new File(super.getURL().getPath());
+ }
+
}
More information about the jboss-cvs-commits
mailing list