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