Author: meerajk
Date: Sun Sep 24 02:44:41 2006
New Revision: 449381

URL: http://svn.apache.org/viewvc?view=rev&rev=449381
Log:
Added full support for deployed repositories. Now time to add some good tests 
:-)

Modified:
    
incubator/tuscany/java/sca/services/maven/src/main/java/org/apache/tuscany/services/maven/MavenHelper.java

Modified: 
incubator/tuscany/java/sca/services/maven/src/main/java/org/apache/tuscany/services/maven/MavenHelper.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/maven/src/main/java/org/apache/tuscany/services/maven/MavenHelper.java?view=diff&rev=449381&r1=449380&r2=449381
==============================================================================
--- 
incubator/tuscany/java/sca/services/maven/src/main/java/org/apache/tuscany/services/maven/MavenHelper.java
 (original)
+++ 
incubator/tuscany/java/sca/services/maven/src/main/java/org/apache/tuscany/services/maven/MavenHelper.java
 Sun Sep 24 02:44:41 2006
@@ -21,9 +21,9 @@
 import java.io.File;
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.util.Collections;
 import java.util.LinkedList;
 import java.util.List;
-import java.util.Set;
 
 import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
@@ -39,7 +39,6 @@
 import org.apache.maven.artifact.resolver.ArtifactResolver;
 
 import org.apache.tuscany.spi.services.artifact.Artifact;
-import org.apache.tuscany.spi.services.info.RuntimeInfo;
 import org.codehaus.classworlds.ClassWorld;
 import org.codehaus.classworlds.DuplicateRealmException;
 import org.codehaus.plexus.PlexusContainerException;
@@ -58,7 +57,7 @@
 
     /** Remote repository URLs */
     private final String[] remoteRepositoryUrls;
-    
+
     /** Deployed repository URL */
     private final URL deployedRepositoryUrl;
 
@@ -85,7 +84,8 @@
      * 
      * @param remoteRepositoryUrls
      *            Remote repository URLS.
-     * @param runtimeInfo Runtime information.
+     * @param runtimeInfo
+     *            Runtime information.
      */
     public MavenHelper(String[] remoteRepositoryUrls, URL baseUrl) {
         try {
@@ -117,7 +117,7 @@
             artifactResolver = (ArtifactResolver) 
embedder.lookup(ArtifactResolver.ROLE);
 
             setUpRepositories(embedder);
-            
+
             embedder.stop();
 
         } catch (DuplicateRealmException ex) {
@@ -153,10 +153,15 @@
                 rootArtifact.getVersion(), 
org.apache.maven.artifact.Artifact.SCOPE_RUNTIME, rootArtifact.getType());
         try {
 
-            artifactResolver.resolve(mavenRootArtifact, remoteRepositories, 
localRepository);
+            boolean resolvedFromDeployment = true;
+            artifactResolver.resolve(mavenRootArtifact, 
Collections.EMPTY_LIST, deployedRepository);
+            if (mavenRootArtifact.getFile() == null) {
+                artifactResolver.resolve(mavenRootArtifact, 
remoteRepositories, localRepository);
+                resolvedFromDeployment = false;
+            }
             rootArtifact.setUrl(mavenRootArtifact.getFile().toURL());
 
-            resolveDependencies(rootArtifact, mavenRootArtifact);
+            resolveDependencies(rootArtifact, mavenRootArtifact, 
resolvedFromDeployment);
 
         } catch (ArtifactResolutionException ex) {
             throw new TuscanyMavenException(ex);
@@ -179,11 +184,10 @@
 
             ArtifactRepositoryLayout layout = (ArtifactRepositoryLayout) 
embedder.lookup(ArtifactRepositoryLayout.ROLE, "default");
 
-            String updatePolicyFlag = 
ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS;
-            String checksumPolicyFlag = 
ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN;
-
-            ArtifactRepositoryPolicy snapshotsPolicy = new 
ArtifactRepositoryPolicy(true, updatePolicyFlag, checksumPolicyFlag);
-            ArtifactRepositoryPolicy releasesPolicy = new 
ArtifactRepositoryPolicy(true, updatePolicyFlag, checksumPolicyFlag);
+            ArtifactRepositoryPolicy snapshotsPolicy = new 
ArtifactRepositoryPolicy(true, ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS,
+                    ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN);
+            ArtifactRepositoryPolicy releasesPolicy = new 
ArtifactRepositoryPolicy(true, ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS,
+                    ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN);
 
             localRepository = 
artifactRepositoryFactory.createArtifactRepository("local", 
LOCAL_REPO.toURL().toExternalForm(), layout,
                     snapshotsPolicy, releasesPolicy);
@@ -193,6 +197,14 @@
                         snapshotsPolicy, releasesPolicy));
             }
 
+            ArtifactRepositoryPolicy deployedRepositorySnapshotsPolicy = new 
ArtifactRepositoryPolicy(true,
+                    ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS, 
ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN);
+            ArtifactRepositoryPolicy deployedRepositoryReleasesPolicy = new 
ArtifactRepositoryPolicy(true,
+                    ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS, 
ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN);
+
+            deployedRepository = 
artifactRepositoryFactory.createArtifactRepository("local", 
deployedRepositoryUrl.toExternalForm(), layout,
+                    deployedRepositorySnapshotsPolicy, 
deployedRepositoryReleasesPolicy);
+
         } catch (MalformedURLException ex) {
             throw new TuscanyMavenException(ex);
         } catch (ComponentLookupException ex) {
@@ -204,16 +216,26 @@
     /*
      * Resolves transitive dependencies.
      */
-    private void resolveDependencies(Artifact rootArtifact, 
org.apache.maven.artifact.Artifact mavenRootArtifact) {
+    private void resolveDependencies(Artifact rootArtifact, 
org.apache.maven.artifact.Artifact mavenRootArtifact, boolean 
resolvedFromDeployment) {
 
         try {
 
-            ResolutionGroup resolutionGroup = 
metadataSource.retrieve(mavenRootArtifact, localRepository, remoteRepositories);
-            ArtifactResolutionResult result = 
artifactResolver.resolveTransitively(resolutionGroup.getArtifacts(), 
mavenRootArtifact,
-                    remoteRepositories, localRepository, metadataSource);
+            ResolutionGroup resolutionGroup = null;
+            ArtifactResolutionResult result = null;
+
+            if (resolvedFromDeployment) {
+                resolutionGroup = metadataSource.retrieve(mavenRootArtifact, 
deployedRepository, Collections.EMPTY_LIST);
+                result = 
artifactResolver.resolveTransitively(resolutionGroup.getArtifacts(), 
mavenRootArtifact, remoteRepositories, localRepository,
+                        metadataSource);
+            } else {
+                resolutionGroup = metadataSource.retrieve(mavenRootArtifact, 
localRepository, remoteRepositories);
+                result = 
artifactResolver.resolveTransitively(resolutionGroup.getArtifacts(), 
mavenRootArtifact, remoteRepositories, localRepository,
+                        metadataSource);
+            }
 
             // Add the artifacts to the deployment unit
-            for (org.apache.maven.artifact.Artifact depArtifact : 
(Set<org.apache.maven.artifact.Artifact>) result.getArtifacts()) {
+            for (Object obj : result.getArtifacts()) {
+                org.apache.maven.artifact.Artifact depArtifact = 
(org.apache.maven.artifact.Artifact) obj;
                 Artifact artifact = new Artifact();
                 artifact.setName(mavenRootArtifact.getArtifactId());
                 artifact.setGroup(mavenRootArtifact.getGroupId());



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to