You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by cu...@apache.org on 2012/07/14 19:17:54 UTC

svn commit: r1361564 - in /openjpa/trunk/openjpa-kernel/src/main: java/org/apache/openjpa/meta/AbstractCFMetaDataFactory.java resources/org/apache/openjpa/meta/localizer.properties

Author: curtisr7
Date: Sat Jul 14 17:17:54 2012
New Revision: 1361564

URL: http://svn.apache.org/viewvc?rev=1361564&view=rev
Log:
OPENJPA-2229: Add support for JBoss vfs when process Entities.

Modified:
    openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/AbstractCFMetaDataFactory.java
    openjpa/trunk/openjpa-kernel/src/main/resources/org/apache/openjpa/meta/localizer.properties

Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/AbstractCFMetaDataFactory.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/AbstractCFMetaDataFactory.java?rev=1361564&r1=1361563&r2=1361564&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/AbstractCFMetaDataFactory.java (original)
+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/AbstractCFMetaDataFactory.java Sat Jul 14 17:17:54 2012
@@ -22,9 +22,12 @@ import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
+import java.lang.reflect.Method;
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.net.URLConnection;
 import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.security.PrivilegedActionException;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -704,6 +707,32 @@ public abstract class AbstractCFMetaData
                         continue;
                     }
                 }
+                if ("vfs".equals(url.getProtocol())) {
+                    if (log.isTraceEnabled()) {
+                        log.trace(_loc.get("scanning-vfs-url", url));
+                    }
+
+                    final URLConnection conn = url.openConnection();
+                    final Object vfsContent = conn.getContent();
+                    final URL finalUrl = url;
+                    File file = AccessController.doPrivileged(new PrivilegedAction<File>() {
+                        @SuppressWarnings({ "rawtypes", "unchecked" })
+                        public File run() {
+                            try {
+                                Class virtualFileClass = Class.forName("org.jboss.vfs.VirtualFile");
+                                Method getPhysicalFile = virtualFileClass.getDeclaredMethod("getPhysicalFile");
+                                return (File) getPhysicalFile.invoke(vfsContent);
+                            } catch (Exception e) {
+                                log.error(_loc.get("while-scanning-vfs-url", finalUrl), e);
+                            }
+                            return null;
+                        }
+                    });
+                    if (file != null)
+                        scan(new FileMetaDataIterator(file, newMetaDataFilter()), cparser, names, true, file);
+
+                    continue;
+                }
                 if ("jar".equals(url.getProtocol())) {
                     if (url.getPath().endsWith("!/")) {
                         if (log.isTraceEnabled())

Modified: openjpa/trunk/openjpa-kernel/src/main/resources/org/apache/openjpa/meta/localizer.properties
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/resources/org/apache/openjpa/meta/localizer.properties?rev=1361564&r1=1361563&r2=1361564&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/resources/org/apache/openjpa/meta/localizer.properties (original)
+++ openjpa/trunk/openjpa-kernel/src/main/resources/org/apache/openjpa/meta/localizer.properties Sat Jul 14 17:17:54 2012
@@ -311,6 +311,7 @@ scanning-directory: Scanning directory "
 scanning-jar: Scanning jar "{0}" for persistent types.
 scanning-file: Scanning file "{0}" for persistent types.
 scanning-jar-url: Scanning jar: URL "{0}" for persistent types.
+scanning-vfs-url: Scanning JBoss vfs: URL "{0}" for persistent types.
 scanning-jar-at-url: Scanning jar file from URL "{0}" for persistent types.
 scanning-url: Scanning URL "{0}" for persistent types.
 scanning-zip-stream-url: Scanning jar in stream from URL "{0}" for persistent \
@@ -358,3 +359,4 @@ resource-url: The resource url is "{0}" 
 mapping-file-name: Mapping file name is "{0}"
 jar-file-url: Jar file url is "{0}"
 down-level-entity: A down level Entity was detected and logged. Please enable RUNTIME trace to see all down level Entities.
+while-scanning-vfs-url: Error while scanning JBoss vfs: URL "{0}" for persistent types