You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2014/08/24 17:52:07 UTC

svn commit: r1620144 - in /tomee/tomee/trunk: container/openejb-loader/src/main/java/org/apache/openejb/loader/provisining/ itests/failover/ itests/failover/src/main/java/org/apache/openejb/itest/failover/

Author: rmannibucau
Date: Sun Aug 24 15:52:07 2014
New Revision: 1620144

URL: http://svn.apache.org/r1620144
Log:
making SystemInstance less important for resolving system (still cacheFile relies on it) + fixing Repository (from itests) class since API changed

Added:
    tomee/tomee/trunk/container/openejb-loader/src/main/java/org/apache/openejb/loader/provisining/ProvisioningResolverAware.java
      - copied, changed from r1620124, tomee/tomee/trunk/container/openejb-loader/src/main/java/org/apache/openejb/loader/provisining/ArchiveResolver.java
Modified:
    tomee/tomee/trunk/container/openejb-loader/src/main/java/org/apache/openejb/loader/provisining/MavenResolver.java
    tomee/tomee/trunk/container/openejb-loader/src/main/java/org/apache/openejb/loader/provisining/ProvisioningResolver.java
    tomee/tomee/trunk/itests/failover/pom.xml
    tomee/tomee/trunk/itests/failover/src/main/java/org/apache/openejb/itest/failover/Repository.java

Modified: tomee/tomee/trunk/container/openejb-loader/src/main/java/org/apache/openejb/loader/provisining/MavenResolver.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-loader/src/main/java/org/apache/openejb/loader/provisining/MavenResolver.java?rev=1620144&r1=1620143&r2=1620144&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-loader/src/main/java/org/apache/openejb/loader/provisining/MavenResolver.java (original)
+++ tomee/tomee/trunk/container/openejb-loader/src/main/java/org/apache/openejb/loader/provisining/MavenResolver.java Sun Aug 24 15:52:07 2014
@@ -30,8 +30,9 @@ import java.io.File;
 import java.io.InputStream;
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.util.Properties;
 
-public class MavenResolver implements ArchiveResolver {
+public class MavenResolver implements ArchiveResolver, ProvisioningResolverAware {
     private static final String REPO1 = "http://repo1.maven.org/maven2/";
     private static final String APACHE_SNAPSHOT = "https://repository.apache.org/snapshots/";
     private static final String SNAPSHOT_SUFFIX = "-SNAPSHOT";
@@ -42,6 +43,8 @@ public class MavenResolver implements Ar
         FACTORY.setValidating(false);
     }
 
+    private ProvisioningResolver resolver;
+
     @Override
     public String prefix() {
         return "mvn";
@@ -73,6 +76,9 @@ public class MavenResolver implements Ar
     }
 
     private InputStream resolveStream(final String repo1Url) throws MalformedURLException {
+        if (resolver != null) {
+            return resolver.resolveStream(repo1Url);
+        }
         return SystemInstance.get().getComponent(ProvisioningResolver.class).resolveStream(repo1Url);
     }
 
@@ -115,7 +121,13 @@ public class MavenResolver implements Ar
     }
 
     private static String m2Home() {
-        return SystemInstance.get().getProperty("openejb.m2.home", System.getProperty("user.home") + "/.m2/repository/");
+        final Properties properties;
+        if (SystemInstance.isInitialized()) {
+            properties = SystemInstance.get().getProperties();
+        } else {
+            properties = System.getProperties();
+        }
+        return properties.getProperty("openejb.m2.home", System.getProperty("user.home") + "/.m2/repository/");
     }
 
     private String mvnArtifactPath(final String toParse, final String snapshotBase) throws MalformedURLException {
@@ -199,6 +211,11 @@ public class MavenResolver implements Ar
         return defaultVersion;
     }
 
+    @Override
+    public void setResolver(final ProvisioningResolver resolver) {
+        this.resolver = resolver;
+    }
+
     private static class QuickMvnMetadataParser extends DefaultHandler {
         private boolean readTs;
         private boolean readBn;

Modified: tomee/tomee/trunk/container/openejb-loader/src/main/java/org/apache/openejb/loader/provisining/ProvisioningResolver.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-loader/src/main/java/org/apache/openejb/loader/provisining/ProvisioningResolver.java?rev=1620144&r1=1620143&r2=1620144&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-loader/src/main/java/org/apache/openejb/loader/provisining/ProvisioningResolver.java (original)
+++ tomee/tomee/trunk/container/openejb-loader/src/main/java/org/apache/openejb/loader/provisining/ProvisioningResolver.java Sun Aug 24 15:52:07 2014
@@ -16,6 +16,7 @@
  */
 package org.apache.openejb.loader.provisining;
 
+import org.apache.openejb.loader.Files;
 import org.apache.openejb.loader.IO;
 import org.apache.openejb.loader.SystemInstance;
 
@@ -45,23 +46,30 @@ public class ProvisioningResolver {
         resolvers.put("http", new HttpResolver());
         resolvers.put("https", new HttpResolver());
 
-        final String userOnes = SystemInstance.get().getProperty("openejb.provisinig.archive-resolvers");
-        if (userOnes != null) {
-            for (final String u : userOnes.split(" *, *")) {
-                final String c = u.trim();
-                if (!c.isEmpty()) {
-                    continue;
-                }
-                try {
-                    final ArchiveResolver instance = ArchiveResolver.class.cast(ProvisioningResolver.class.getClassLoader().loadClass(c));
-                    addResolver(instance);
-                } catch (final ClassNotFoundException e) {
-                    throw new IllegalArgumentException(e);
+        if (SystemInstance.isInitialized()) {
+            final String userOnes = SystemInstance.get().getProperty("openejb.provisinig.archive-resolvers");
+            if (userOnes != null) {
+                for (final String u : userOnes.split(" *, *")) {
+                    final String c = u.trim();
+                    if (!c.isEmpty()) {
+                        continue;
+                    }
+                    try {
+                        final ArchiveResolver instance = ArchiveResolver.class.cast(ProvisioningResolver.class.getClassLoader().loadClass(c));
+                        addResolver(instance);
+                    } catch (final ClassNotFoundException e) {
+                        throw new IllegalArgumentException(e);
+                    }
                 }
             }
-        }
 
-        SystemInstance.get().fireEvent(new ProvisiningResolverCreated(this));
+            SystemInstance.get().fireEvent(new ProvisiningResolverCreated(this));
+        }
+        for (final ArchiveResolver ar : resolvers.values()) {
+            if (ProvisioningResolverAware.class.isInstance(ar)) {
+                ProvisioningResolverAware.class.cast(ar).setResolver(this);
+            }
+        }
     }
 
     public void addResolver(final ArchiveResolver resolver) {
@@ -135,6 +143,7 @@ public class ProvisioningResolver {
             BufferedInputStream is = null;
             try {
                 is = new BufferedInputStream(resolverStream);
+                Files.mkdirs(file.getParentFile());
                 IO.copy(is, file);
                 return file.getAbsolutePath();
             } catch (final IOException ioe) {

Copied: tomee/tomee/trunk/container/openejb-loader/src/main/java/org/apache/openejb/loader/provisining/ProvisioningResolverAware.java (from r1620124, tomee/tomee/trunk/container/openejb-loader/src/main/java/org/apache/openejb/loader/provisining/ArchiveResolver.java)
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-loader/src/main/java/org/apache/openejb/loader/provisining/ProvisioningResolverAware.java?p2=tomee/tomee/trunk/container/openejb-loader/src/main/java/org/apache/openejb/loader/provisining/ProvisioningResolverAware.java&p1=tomee/tomee/trunk/container/openejb-loader/src/main/java/org/apache/openejb/loader/provisining/ArchiveResolver.java&r1=1620124&r2=1620144&rev=1620144&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-loader/src/main/java/org/apache/openejb/loader/provisining/ArchiveResolver.java (original)
+++ tomee/tomee/trunk/container/openejb-loader/src/main/java/org/apache/openejb/loader/provisining/ProvisioningResolverAware.java Sun Aug 24 15:52:07 2014
@@ -16,26 +16,10 @@
  */
 package org.apache.openejb.loader.provisining;
 
-import java.io.InputStream;
-
-/**
- * Intended to be used with ProvisioningResolver component
- */
-public interface ArchiveResolver {
-    /**
-     * @return the prefix this resolver handles
-     */
-    String prefix();
-
-    /**
-     * @param url the archive location
-     * @return null if can't resolve or the inputstream to use to copy the archive (isLocal() == false otherwise not called)
-     */
-    InputStream resolve(String url);
-
-    /**
-     * @param rawLocation input url
-     * @return name of the cached jar
-     */
-    String name(String rawLocation);
+// if your ArchiveResolver is a facade or can delegate to another resolver
+// then implement it to delegate to ProvisioningResolver
+//
+// ex: mvn delegates to http if the archive is not found locally
+public interface ProvisioningResolverAware {
+    void setResolver(ProvisioningResolver resolver);
 }

Modified: tomee/tomee/trunk/itests/failover/pom.xml
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/itests/failover/pom.xml?rev=1620144&r1=1620143&r2=1620144&view=diff
==============================================================================
--- tomee/tomee/trunk/itests/failover/pom.xml (original)
+++ tomee/tomee/trunk/itests/failover/pom.xml Sun Aug 24 15:52:07 2014
@@ -69,25 +69,6 @@
       <version>2.0.0-SNAPSHOT</version>
     </dependency>
     <dependency>
-      <groupId>org.apache.openejb</groupId>
-      <artifactId>openejb-provisionning</artifactId>
-      <version>${project.version}</version>
-      <exclusions>
-        <exclusion>
-          <artifactId>wagon-provider-api</artifactId>
-          <groupId>org.apache.maven.wagon</groupId>
-        </exclusion>
-        <exclusion>
-          <artifactId>plexus-utils</artifactId>
-          <groupId>org.codehaus.plexus</groupId>
-        </exclusion>
-        <exclusion>
-          <artifactId>plexus-classworlds</artifactId>
-          <groupId>org.codehaus.plexus</groupId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-    <dependency>
       <groupId>org.apache.maven.wagon</groupId>
       <artifactId>wagon-provider-api</artifactId>
       <version>2.4</version>

Modified: tomee/tomee/trunk/itests/failover/src/main/java/org/apache/openejb/itest/failover/Repository.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/itests/failover/src/main/java/org/apache/openejb/itest/failover/Repository.java?rev=1620144&r1=1620143&r2=1620144&view=diff
==============================================================================
--- tomee/tomee/trunk/itests/failover/src/main/java/org/apache/openejb/itest/failover/Repository.java (original)
+++ tomee/tomee/trunk/itests/failover/src/main/java/org/apache/openejb/itest/failover/Repository.java Sun Aug 24 15:52:07 2014
@@ -16,8 +16,8 @@
  */
 package org.apache.openejb.itest.failover;
 
-import org.apache.openejb.loader.ProvisioningUtil;
-import org.apache.openejb.resolver.Resolver;
+import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.loader.provisining.ProvisioningResolver;
 import org.apache.openejb.util.Join;
 
 import java.io.File;
@@ -26,21 +26,23 @@ import java.io.File;
  * @version $Rev$ $Date$
  */
 public final class Repository {
-    private static final Resolver RESOLVER = new Resolver();
+    private static final ProvisioningResolver RESOLVER = new ProvisioningResolver();
 
     public static File getArtifact(final String groupId, final String artifactId, final String type) {
-        final String oldCache = System.getProperty(ProvisioningUtil.OPENEJB_DEPLOYER_CACHE_FOLDER);
-        System.setProperty(ProvisioningUtil.OPENEJB_DEPLOYER_CACHE_FOLDER, System.getProperty("openejb.itest.failover.cache", "target/cache"));
+        final String oldCache = System.getProperty(ProvisioningResolver.OPENEJB_DEPLOYER_CACHE_FOLDER);
+        final String property = System.getProperty("openejb.itest.failover.cache", "target/cache");
+        new File(property).mkdirs(); // ensure cache folder exists otherwise copy will fail
+        System.setProperty(ProvisioningResolver.OPENEJB_DEPLOYER_CACHE_FOLDER, property);
         final String path;
         try {
-            path = RESOLVER.resolve("mvn:" + groupId + ":" + artifactId + ":" + guessVersion(groupId, artifactId) + ":" + type);
+            path = RESOLVER.realLocation("mvn:" + groupId + ":" + artifactId + ":" + guessVersion(groupId, artifactId) + ":" + type).iterator().next();
         } catch (final Exception e) {
             throw new RuntimeException(e);
         } finally {
             if (oldCache == null) {
-                System.clearProperty(ProvisioningUtil.OPENEJB_DEPLOYER_CACHE_FOLDER);
+                System.clearProperty(ProvisioningResolver.OPENEJB_DEPLOYER_CACHE_FOLDER);
             } else {
-                System.setProperty(ProvisioningUtil.OPENEJB_DEPLOYER_CACHE_FOLDER, oldCache);
+                System.setProperty(ProvisioningResolver.OPENEJB_DEPLOYER_CACHE_FOLDER, oldCache);
             }
         }