[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