[jboss-cvs] JBossAS SVN: r93560 - in projects/vfs/branches/Branch_2_1/src: main/java/org/jboss/virtual/plugins/context and 4 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Sep 15 16:20:40 EDT 2009
Author: alesj
Date: 2009-09-15 16:20:39 -0400 (Tue, 15 Sep 2009)
New Revision: 93560
Modified:
projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/VirtualFile.java
projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/AbstractVirtualFileHandler.java
projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/jar/JarEntryContents.java
projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/jar/JarEntryHandler.java
projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/jar/NestedJarFromStream.java
projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/jar/NoCopyNestedJarHandler.java
projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/zip/ZipDirWrapper.java
projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/zip/ZipEntryContext.java
projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/zip/ZipEntryHandler.java
projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/zip/ZipFileWrapper.java
projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/zip/ZipStreamWrapper.java
projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/spi/VirtualFileHandler.java
projects/vfs/branches/Branch_2_1/src/test/java/org/jboss/test/virtual/test/FileVFSUnitTestCase.java
projects/vfs/branches/Branch_2_1/src/test/java/org/jboss/test/virtual/test/VirtualFileUnitTestCase.java
Log:
[JBVFS-115]; add VirtualFile::getCertificates.
Modified: projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/VirtualFile.java
===================================================================
--- projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/VirtualFile.java 2009-09-15 19:43:54 UTC (rev 93559)
+++ projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/VirtualFile.java 2009-09-15 20:20:39 UTC (rev 93560)
@@ -28,16 +28,17 @@
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
+import java.security.cert.Certificate;
import java.util.Collections;
import java.util.List;
import java.util.Set;
import java.util.concurrent.atomic.AtomicBoolean;
+import org.jboss.util.collection.WeakSet;
import org.jboss.virtual.plugins.vfs.helpers.FilterVirtualFileVisitor;
import org.jboss.virtual.plugins.vfs.helpers.MatchAllVirtualFileFilter;
import org.jboss.virtual.spi.VFSContext;
import org.jboss.virtual.spi.VirtualFileHandler;
-import org.jboss.util.collection.WeakSet;
/**
* A virtual file as seen by the user
@@ -89,6 +90,16 @@
}
/**
+ * Get certificates.
+ *
+ * @return the certificates associated with this virtual file
+ */
+ public Certificate[] getCertificates()
+ {
+ return getHandler().getCertificates();
+ }
+
+ /**
* Get the simple VF name (X.java)
*
* @return the simple file name
Modified: projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/AbstractVirtualFileHandler.java
===================================================================
--- projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/AbstractVirtualFileHandler.java 2009-09-15 19:43:54 UTC (rev 93559)
+++ projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/AbstractVirtualFileHandler.java 2009-09-15 20:20:39 UTC (rev 93560)
@@ -33,6 +33,7 @@
import java.net.URL;
import java.util.List;
import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
+import java.security.cert.Certificate;
import org.jboss.logging.Logger;
import org.jboss.virtual.VFSUtils;
@@ -634,6 +635,11 @@
return parent != null && parent.removeChild(getName());
}
+ public Certificate[] getCertificates()
+ {
+ return null;
+ }
+
/**
* Structured implementation of get child
*
Modified: projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/jar/JarEntryContents.java
===================================================================
--- projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/jar/JarEntryContents.java 2009-09-15 19:43:54 UTC (rev 93559)
+++ projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/jar/JarEntryContents.java 2009-09-15 20:20:39 UTC (rev 93560)
@@ -32,6 +32,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.jar.JarInputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
Modified: projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/jar/JarEntryHandler.java
===================================================================
--- projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/jar/JarEntryHandler.java 2009-09-15 19:43:54 UTC (rev 93559)
+++ projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/jar/JarEntryHandler.java 2009-09-15 20:20:39 UTC (rev 93560)
@@ -32,6 +32,7 @@
import java.util.Map;
import java.util.jar.JarFile;
import java.util.zip.ZipEntry;
+import java.security.cert.Certificate;
import org.jboss.virtual.plugins.context.HierarchyVirtualFileHandler;
import org.jboss.virtual.plugins.context.StructuredVirtualFileHandler;
@@ -187,4 +188,9 @@
entryChildren.add(replacement);
entryMap.put(original.getName(), replacement);
}
+
+ public Certificate[] getCertificates()
+ {
+ return getJar().getJarEntry(getEntry().getName()).getCertificates();
+ }
}
Modified: projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/jar/NestedJarFromStream.java
===================================================================
--- projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/jar/NestedJarFromStream.java 2009-09-15 19:43:54 UTC (rev 93559)
+++ projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/jar/NestedJarFromStream.java 2009-09-15 20:20:39 UTC (rev 93560)
@@ -4,14 +4,14 @@
package org.jboss.virtual.plugins.context.jar;
import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
+import java.io.ObjectInputStream.GetField;
import java.io.ObjectOutputStream;
+import java.io.ObjectOutputStream.PutField;
import java.io.ObjectStreamField;
-import java.io.ObjectInputStream.GetField;
-import java.io.ObjectOutputStream.PutField;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
@@ -20,6 +20,7 @@
import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.jar.JarFile;
+import java.util.jar.JarInputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
Modified: projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/jar/NoCopyNestedJarHandler.java
===================================================================
--- projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/jar/NoCopyNestedJarHandler.java 2009-09-15 19:43:54 UTC (rev 93559)
+++ projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/jar/NoCopyNestedJarHandler.java 2009-09-15 20:20:39 UTC (rev 93560)
@@ -27,6 +27,7 @@
import java.net.URL;
import java.util.List;
import java.util.jar.JarFile;
+import java.util.jar.JarInputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
Modified: projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/zip/ZipDirWrapper.java
===================================================================
--- projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/zip/ZipDirWrapper.java 2009-09-15 19:43:54 UTC (rev 93559)
+++ projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/zip/ZipDirWrapper.java 2009-09-15 20:20:39 UTC (rev 93560)
@@ -21,9 +21,9 @@
*/
package org.jboss.virtual.plugins.context.zip;
+import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.io.ByteArrayInputStream;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
Modified: projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/zip/ZipEntryContext.java
===================================================================
--- projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/zip/ZipEntryContext.java 2009-09-15 19:43:54 UTC (rev 93559)
+++ projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/zip/ZipEntryContext.java 2009-09-15 20:20:39 UTC (rev 93560)
@@ -37,18 +37,20 @@
import java.net.URL;
import java.security.AccessController;
import java.security.PrivilegedAction;
+import java.security.cert.Certificate;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.LinkedHashMap;
-import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.TreeMap;
import java.util.UUID;
-import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
+import java.util.jar.JarEntry;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
@@ -64,8 +66,8 @@
import org.jboss.virtual.spi.Options;
import org.jboss.virtual.spi.TempInfo;
import org.jboss.virtual.spi.VFSContext;
+import org.jboss.virtual.spi.VFSContextConstraints;
import org.jboss.virtual.spi.VirtualFileHandler;
-import org.jboss.virtual.spi.VFSContextConstraints;
/**
* <tt>ZipEntryContext</tt> implements a {@link org.jboss.virtual.spi.VFSContext}
@@ -1174,6 +1176,35 @@
}
/**
+ * Get certificates.
+ *
+ * Note: we *must* first read input stream of the file
+ * before we're able to get certificates.
+ *
+ * @param handler the current handler
+ * @return the certificates
+ */
+ Certificate[] getCertificates(ZipEntryHandler handler)
+ {
+ EntryInfo ei = entries.get(handler.getLocalPathName());
+ if (ei != null && ei.entry != null)
+ {
+ ZipEntry entry = ei.entry;
+ JarEntry je;
+ if (entry instanceof JarEntry)
+ {
+ je = (JarEntry)entry;
+ }
+ else
+ {
+ je = new JarEntry(entry);
+ }
+ return je.getCertificates();
+ }
+ return null;
+ }
+
+ /**
* Internal data structure holding meta information of a virtual file in this context
*/
static class EntryInfo
Modified: projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/zip/ZipEntryHandler.java
===================================================================
--- projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/zip/ZipEntryHandler.java 2009-09-15 19:43:54 UTC (rev 93559)
+++ projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/zip/ZipEntryHandler.java 2009-09-15 20:20:39 UTC (rev 93560)
@@ -27,6 +27,7 @@
import java.net.URISyntaxException;
import java.net.URL;
import java.util.List;
+import java.security.cert.Certificate;
import org.jboss.virtual.VFSUtils;
import org.jboss.virtual.plugins.context.AbstractVirtualFileHandler;
@@ -265,4 +266,9 @@
throw new RuntimeException("Operation not supported for handler: " + this);
}
-}
+
+ public Certificate[] getCertificates()
+ {
+ return getZipEntryContext().getCertificates(this);
+ }
+}
\ No newline at end of file
Modified: projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/zip/ZipFileWrapper.java
===================================================================
--- projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/zip/ZipFileWrapper.java 2009-09-15 19:43:54 UTC (rev 93559)
+++ projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/zip/ZipFileWrapper.java 2009-09-15 20:20:39 UTC (rev 93560)
@@ -31,6 +31,7 @@
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.Enumeration;
+import java.util.jar.JarFile;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipOutputStream;
@@ -172,7 +173,7 @@
{
if (zipFile == null)
{
- zipFile = new ZipFile(file);
+ zipFile = new JarFile(file);
if (forceNoReaper == false && noReaperOverride == false)
ZipFileLockReaper.getInstance().register(this);
}
Modified: projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/zip/ZipStreamWrapper.java
===================================================================
--- projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/zip/ZipStreamWrapper.java 2009-09-15 19:43:54 UTC (rev 93559)
+++ projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/zip/ZipStreamWrapper.java 2009-09-15 20:20:39 UTC (rev 93560)
@@ -21,9 +21,6 @@
*/
package org.jboss.virtual.plugins.context.zip;
-import org.jboss.logging.Logger;
-import org.jboss.virtual.VFSUtils;
-
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.FileNotFoundException;
@@ -40,6 +37,9 @@
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
+import org.jboss.logging.Logger;
+import org.jboss.virtual.VFSUtils;
+
/**
* ZipStreamWrapper - for abstracted access to in-memory zip file
*
Modified: projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/spi/VirtualFileHandler.java
===================================================================
--- projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/spi/VirtualFileHandler.java 2009-09-15 19:43:54 UTC (rev 93559)
+++ projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/spi/VirtualFileHandler.java 2009-09-15 20:20:39 UTC (rev 93560)
@@ -29,6 +29,7 @@
import java.net.URISyntaxException;
import java.net.URL;
import java.util.List;
+import java.security.cert.Certificate;
import org.jboss.virtual.VirtualFile;
@@ -267,4 +268,11 @@
* @throws IOException for any error
*/
boolean delete(int gracePeriod) throws IOException;
+
+ /**
+ * Get certificates.
+ *
+ * @return the certificates associated with this virtual file handler
+ */
+ Certificate[] getCertificates();
}
Modified: projects/vfs/branches/Branch_2_1/src/test/java/org/jboss/test/virtual/test/FileVFSUnitTestCase.java
===================================================================
--- projects/vfs/branches/Branch_2_1/src/test/java/org/jboss/test/virtual/test/FileVFSUnitTestCase.java 2009-09-15 19:43:54 UTC (rev 93559)
+++ projects/vfs/branches/Branch_2_1/src/test/java/org/jboss/test/virtual/test/FileVFSUnitTestCase.java 2009-09-15 20:20:39 UTC (rev 93560)
@@ -48,10 +48,9 @@
import junit.framework.Test;
import junit.framework.TestSuite;
-
import org.jboss.test.virtual.support.ClassPathIterator;
-import org.jboss.test.virtual.support.MetaDataMatchFilter;
import org.jboss.test.virtual.support.ClassPathIterator.ClassPathEntry;
+import org.jboss.test.virtual.support.MetaDataMatchFilter;
import org.jboss.virtual.MemoryFileFactory;
import org.jboss.virtual.VFS;
import org.jboss.virtual.VFSUtils;
Modified: projects/vfs/branches/Branch_2_1/src/test/java/org/jboss/test/virtual/test/VirtualFileUnitTestCase.java
===================================================================
--- projects/vfs/branches/Branch_2_1/src/test/java/org/jboss/test/virtual/test/VirtualFileUnitTestCase.java 2009-09-15 19:43:54 UTC (rev 93559)
+++ projects/vfs/branches/Branch_2_1/src/test/java/org/jboss/test/virtual/test/VirtualFileUnitTestCase.java 2009-09-15 20:20:39 UTC (rev 93560)
@@ -21,20 +21,22 @@
*/
package org.jboss.test.virtual.test;
+import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import java.net.URL;
+import java.security.cert.Certificate;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import junit.framework.Test;
import junit.framework.TestSuite;
-
import org.jboss.test.virtual.support.MockVFSContext;
import org.jboss.test.virtual.support.MockVirtualFileFilter;
import org.jboss.virtual.VFS;
+import org.jboss.virtual.VFSUtils;
import org.jboss.virtual.VirtualFile;
import org.jboss.virtual.plugins.vfs.helpers.FilterVirtualFileVisitor;
import org.jboss.virtual.spi.VirtualFileHandler;
@@ -43,6 +45,7 @@
* VirtualFileUnitTestCase.
*
* @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
* @version $Revision: 1.1 $
*/
public class VirtualFileUnitTestCase extends AbstractMockVFSTest
@@ -1339,4 +1342,19 @@
assertFalse(file1.equals(new Object()));
}
+
+ public void testCertificates() throws Exception
+ {
+ //Debug.getInstance("jar");
+
+ URL url = getResource("/vfs/test/cert_test.jar");
+ VirtualFile jar = VFS.getRoot(url);
+ VirtualFile clazz = jar.findChild("examplets/plugins/impl/AnotherInjectedPlugin.class");
+
+ InputStream tmp = clazz.openStream();
+ VFSUtils.copyStreamAndClose(tmp, new ByteArrayOutputStream()); // dummy read
+
+ Certificate[] certs = clazz.getCertificates();
+ assertNotNull("No certificates: " + clazz, certs);
+ }
}
More information about the jboss-cvs-commits
mailing list