summaryrefslogtreecommitdiffstats
path: root/branches/sca-java-1.x/modules/contribution-jee/src
diff options
context:
space:
mode:
authorvamsic007 <vamsic007@13f79535-47bb-0310-9956-ffa450edef68>2009-06-25 06:22:00 +0000
committervamsic007 <vamsic007@13f79535-47bb-0310-9956-ffa450edef68>2009-06-25 06:22:00 +0000
commit39584f6d48697811dfe3355ab88ddbb6a0ff99c4 (patch)
tree522a26214c89f21e1c0fe990894d760782cf1a83 /branches/sca-java-1.x/modules/contribution-jee/src
parent21a5d8309c4798314bb045817a3170c77b59c102 (diff)
TUSCANY-3018 EarContributionProcessor's URL.setURLStreamHandlerFactory() fails with factory already defined error
o Handle "archive" URLs without setting the StreamHandlerFactory git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@788271 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'branches/sca-java-1.x/modules/contribution-jee/src')
-rw-r--r--branches/sca-java-1.x/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/impl/EarContributionProcessor.java23
1 files changed, 5 insertions, 18 deletions
diff --git a/branches/sca-java-1.x/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/impl/EarContributionProcessor.java b/branches/sca-java-1.x/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/impl/EarContributionProcessor.java
index 64a8a92e01..b0eb155636 100644
--- a/branches/sca-java-1.x/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/impl/EarContributionProcessor.java
+++ b/branches/sca-java-1.x/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/impl/EarContributionProcessor.java
@@ -28,7 +28,6 @@ import java.net.URI;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLStreamHandler;
-import java.net.URLStreamHandlerFactory;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
@@ -49,25 +48,13 @@ import org.eclipse.emf.common.archive.ArchiveURLConnection;
*/
public class EarContributionProcessor implements PackageProcessor {
- /* Install handler for "archive" */
- static {
- URL.setURLStreamHandlerFactory(new URLStreamHandlerFactory() {
- public URLStreamHandler createURLStreamHandler(String protocol) {
- if("archive".equalsIgnoreCase(protocol)) {
- return new Handler();
- } else {
- return null;
- }
- }}
- );
- }
-
- static class Handler extends URLStreamHandler {
+ /* URL stream handler for "archive" */
+ private static URLStreamHandler archiveUrlStreamHandler = new URLStreamHandler() {
@Override
protected URLConnection openConnection(URL u) throws IOException {
return new ArchiveURLConnection(u);
}
- }
+ };
public URL getArtifactURL(URL packageSourceURL, URI artifact)
throws MalformedURLException {
@@ -75,9 +62,9 @@ public class EarContributionProcessor implements PackageProcessor {
return packageSourceURL;
}
if (packageSourceURL.toString().startsWith("archive:")) {
- return new URL(packageSourceURL, artifact.toString());
+ return new URL(packageSourceURL, artifact.toString(), archiveUrlStreamHandler);
} else {
- return new URL("archive:" + packageSourceURL.toExternalForm() + "!/" + artifact);
+ return new URL("archive", "", -1, packageSourceURL.toExternalForm() + "!/" + artifact, archiveUrlStreamHandler);
}
}