You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by me...@apache.org on 2006/10/15 01:14:01 UTC

svn commit: r464051 - in /incubator/tuscany/java/sca/services/maven/src: main/java/org/apache/tuscany/services/maven/ test/java/org/apache/tuscany/services/maven/

Author: meerajk
Date: Sat Oct 14 16:14:00 2006
New Revision: 464051

URL: http://svn.apache.org/viewvc?view=rev&rev=464051
Log:
Added support for offline mode.

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

Modified: incubator/tuscany/java/sca/services/maven/src/main/java/org/apache/tuscany/services/maven/MavenArtifactRepository.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/maven/src/main/java/org/apache/tuscany/services/maven/MavenArtifactRepository.java?view=diff&rev=464051&r1=464050&r2=464051
==============================================================================
--- incubator/tuscany/java/sca/services/maven/src/main/java/org/apache/tuscany/services/maven/MavenArtifactRepository.java (original)
+++ incubator/tuscany/java/sca/services/maven/src/main/java/org/apache/tuscany/services/maven/MavenArtifactRepository.java Sat Oct 14 16:14:00 2006
@@ -50,7 +50,7 @@
     public MavenArtifactRepository(@Property(name = "remoteRepoUrl")
     String remoteRepoUrl, @Autowire
     RuntimeInfo runtimeInfo) {
-        mavenHelper = new MavenHelper(remoteRepoUrl);
+        mavenHelper = new MavenHelper(remoteRepoUrl, runtimeInfo.isOnline());
         warRepositoryHelper = new WarRepositoryHelper(runtimeInfo.getBaseURL());
         mavenHelper.start();
     }

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=464051&r1=464050&r2=464051
==============================================================================
--- 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 Sat Oct 14 16:14:00 2006
@@ -75,6 +75,9 @@
     /** Artifact resolver */
     private ArtifactResolver artifactResolver;
 
+    /** Online */
+    private boolean online;
+
     /**
      * Initialize the remote repository URLs.
      * 
@@ -83,8 +86,9 @@
      * @param runtimeInfo
      *            Runtime information.
      */
-    public MavenHelper(String remoteRepositoryUrl) {
+    public MavenHelper(String remoteRepositoryUrl, boolean online) {
         this.remoteRepositoryUrls = remoteRepositoryUrl.split(",");
+        this.online = online;
     }
 
     /**
@@ -99,31 +103,31 @@
 
             Embedder embedder = new Embedder();
             ClassWorld classWorld = new ClassWorld();
-            
+
             classWorld.newRealm("plexus.core", getClass().getClassLoader());
-            
+
             // Evil hack for Tomcat classloader issue - starts
             Field realmsField = ClassWorld.class.getDeclaredField("realms");
             realmsField.setAccessible(true);
-            Map realms = (Map)realmsField.get(classWorld);
+            Map realms = (Map) realmsField.get(classWorld);
             DefaultClassRealm realm = (DefaultClassRealm) realms.get("plexus.core");
 
             Class clazz = Class.forName("org.codehaus.classworlds.RealmClassLoader");
-            Constructor ctr = clazz.getDeclaredConstructor(new Class[] {DefaultClassRealm.class, ClassLoader.class});
+            Constructor ctr = clazz.getDeclaredConstructor(new Class[] { DefaultClassRealm.class, ClassLoader.class });
             ctr.setAccessible(true);
             Object realmClassLoader = ctr.newInstance(realm, getClass().getClassLoader());
-            
+
             Field realmClassLoaderField = DefaultClassRealm.class.getDeclaredField("classLoader");
             realmClassLoaderField.setAccessible(true);
             realmClassLoaderField.set(realm, realmClassLoader);
             // Evil hack for Tomcat classloader issue - ends
-            
+
             embedder.start(classWorld);
 
             metadataSource = (ArtifactMetadataSource) embedder.lookup(ArtifactMetadataSource.ROLE);
             artifactFactory = (ArtifactFactory) embedder.lookup(ArtifactFactory.ROLE);
             artifactResolver = (ArtifactResolver) embedder.lookup(ArtifactResolver.ROLE);
-            
+
             setUpRepositories(embedder);
 
             embedder.stop();
@@ -173,10 +177,10 @@
                 rootArtifact.getVersion(), org.apache.maven.artifact.Artifact.SCOPE_RUNTIME, rootArtifact.getType());
 
         try {
-            
+
             if (resolve(mavenRootArtifact)) {
                 rootArtifact.setUrl(mavenRootArtifact.getFile().toURL());
-                if(resolveDependencies(rootArtifact, mavenRootArtifact)) {
+                if (resolveDependencies(rootArtifact, mavenRootArtifact)) {
                     return true;
                 } else {
                     return false;
@@ -194,7 +198,7 @@
      * Resolves the artifact.
      */
     private boolean resolve(org.apache.maven.artifact.Artifact mavenRootArtifact) {
-        
+
         try {
             artifactResolver.resolve(mavenRootArtifact, remoteRepositories, localRepository);
             return true;
@@ -203,7 +207,7 @@
         } catch (ArtifactNotFoundException ex) {
             return false;
         }
-        
+
     }
 
     /*
@@ -217,20 +221,23 @@
 
             ArtifactRepositoryLayout layout = (ArtifactRepositoryLayout) embedder.lookup(ArtifactRepositoryLayout.ROLE, "default");
 
-            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);
+            String updatePolicy = online ? ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS : ArtifactRepositoryPolicy.UPDATE_POLICY_NEVER;
+            ArtifactRepositoryPolicy snapshotsPolicy = new ArtifactRepositoryPolicy(true, updatePolicy, ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN);
+            ArtifactRepositoryPolicy releasesPolicy = new ArtifactRepositoryPolicy(true, updatePolicy, ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN);
 
             localRepository = artifactRepositoryFactory.createArtifactRepository("local", LOCAL_REPO.toURL().toExternalForm(), layout,
                     snapshotsPolicy, releasesPolicy);
 
-            for(String remoteRepositoryUrl : remoteRepositoryUrls) {
-                String repoid= remoteRepositoryUrl.replace(':', '_');
-                repoid= repoid.replace('/', '_');
-                repoid= repoid.replace('\\', '_');
-                remoteRepositories.add(artifactRepositoryFactory.createArtifactRepository(repoid, remoteRepositoryUrl, layout,
-                    snapshotsPolicy, releasesPolicy));
+            if (!online) {
+                return;
+            }
+
+            for (String remoteRepositoryUrl : remoteRepositoryUrls) {
+                String repoid = remoteRepositoryUrl.replace(':', '_');
+                repoid = repoid.replace('/', '_');
+                repoid = repoid.replace('\\', '_');
+                remoteRepositories.add(artifactRepositoryFactory.createArtifactRepository(repoid, remoteRepositoryUrl, layout, snapshotsPolicy,
+                        releasesPolicy));
             }
 
         } catch (MalformedURLException ex) {
@@ -253,7 +260,7 @@
 
             resolutionGroup = metadataSource.retrieve(mavenRootArtifact, localRepository, remoteRepositories);
             result = artifactResolver.resolveTransitively(resolutionGroup.getArtifacts(), mavenRootArtifact, remoteRepositories, localRepository,
-                        metadataSource);
+                    metadataSource);
 
             // Add the artifacts to the deployment unit
             for (Object obj : result.getArtifacts()) {
@@ -276,7 +283,7 @@
         } catch (ArtifactNotFoundException ex) {
             return false;
         }
-        
+
         return true;
 
     }

Modified: incubator/tuscany/java/sca/services/maven/src/test/java/org/apache/tuscany/services/maven/MavenArtifactRepositoryTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/maven/src/test/java/org/apache/tuscany/services/maven/MavenArtifactRepositoryTestCase.java?view=diff&rev=464051&r1=464050&r2=464051
==============================================================================
--- incubator/tuscany/java/sca/services/maven/src/test/java/org/apache/tuscany/services/maven/MavenArtifactRepositoryTestCase.java (original)
+++ incubator/tuscany/java/sca/services/maven/src/test/java/org/apache/tuscany/services/maven/MavenArtifactRepositoryTestCase.java Sat Oct 14 16:14:00 2006
@@ -69,16 +69,18 @@
             }
         });
         Artifact artifact = new Artifact();
-        artifact.setGroup("org.apache.maven");
-        artifact.setName("maven-artifact");
-        artifact.setVersion("2.0.4");
+        artifact.setGroup("junit");
+        artifact.setName("junit");
+        artifact.setVersion("3.8.1");
         artifact.setType("jar");
 
         repository.resolve(artifact);
 
         Set<URL> urls = artifact.getUrls();
+        
+        System.err.println(urls);
 
-        assertEquals(2, urls.size());
+        assertEquals(1, urls.size());
 
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org