Author: dblevins
Date: Sat Dec 22 18:47:19 2007
New Revision: 606530

URL: http://svn.apache.org/viewvc?rev=606530&view=rev
Log:
Resolve jarURLs relative to rootURL

Modified:
    
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java
    
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceUnitInfoImpl.java

Modified: 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java?rev=606530&r1=606529&r2=606530&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java
 (original)
+++ 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java
 Sat Dec 22 18:47:19 2007
@@ -101,9 +101,6 @@
         // Exclude Unlisted Classes
         unitInfo.setExcludeUnlistedClasses(info.excludeUnlistedClasses);
 
-        // Jar File Urls
-        unitInfo.setJarFileUrls(info.jarFiles);
-
         // JTA Datasource
         String dataSource = info.jtaDataSource;
         if (jtaDataSourceEnv != null) dataSource = jtaDataSourceEnv;
@@ -150,7 +147,7 @@
         }
 
         // Persistence Unit Root Url
-        unitInfo.setPersistenceUnitRootUrl(new 
File(info.persistenceUnitRootUrl).toURL());
+        unitInfo.setRootUrlAndJarUrls(new 
File(info.persistenceUnitRootUrl).toURL(), info.jarFiles);
 
         // create the persistence provider
         String persistenceProviderClassName = 
unitInfo.getPersistenceProviderClassName();

Modified: 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceUnitInfoImpl.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceUnitInfoImpl.java?rev=606530&r1=606529&r2=606530&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceUnitInfoImpl.java
 (original)
+++ 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceUnitInfoImpl.java
 Sat Dec 22 18:47:19 2007
@@ -21,6 +21,8 @@
 import java.lang.instrument.IllegalClassFormatException;
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.net.URI;
+import java.net.URISyntaxException;
 import java.security.ProtectionDomain;
 import java.util.ArrayList;
 import java.util.List;
@@ -171,21 +173,21 @@
         return jarFileUrls;
     }
 
-    public void setJarFileUrls(List<String> jarFiles) throws 
MalformedURLException {
-        if (jarFiles == null) {
-            throw new NullPointerException("jarFiles is null");
-        }
-        for (String jarFile : jarFiles) {
-            jarFileUrls.add((new File(jarFile)).toURL());
-        }
-    }
-
     public URL getPersistenceUnitRootUrl() {
         return persistenceUnitRootUrl;
     }
 
-    public void setPersistenceUnitRootUrl(URL persistenceUnitRootUrl) {
+    public void setRootUrlAndJarUrls(URL persistenceUnitRootUrl, List<String> 
jarFiles) throws MalformedURLException {
         this.persistenceUnitRootUrl = persistenceUnitRootUrl;
+        try {
+            URI uri = persistenceUnitRootUrl.toURI();
+            for (String path : jarFiles) {
+                URI jarURI = uri.resolve(path);
+                jarFileUrls.add(jarURI.toURL());
+            }
+        } catch (URISyntaxException e) {
+            throw new IllegalStateException(e);
+        }
     }
 
     public List<String> getManagedClassNames() {


Reply via email to