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);
}
}