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