Author: brett
Date: Thu Apr 28 23:49:53 2005
New Revision: 165269

URL: http://svn.apache.org/viewcvs?rev=165269&view=rev
Log:
playground for the SCM wagon

Added:
    
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/CustomWagonManager.java
   (with props)
Modified:
    maven/components/trunk/maven-artifact-ant/pom.xml
    maven/components/trunk/maven-artifact-ant/sample.build.xml
    
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/AbstractArtifactTask.java
    
maven/components/trunk/maven-artifact-ant/src/main/resources/META-INF/plexus/components.xml

Modified: maven/components/trunk/maven-artifact-ant/pom.xml
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-ant/pom.xml?rev=165269&r1=165268&r2=165269&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact-ant/pom.xml (original)
+++ maven/components/trunk/maven-artifact-ant/pom.xml Thu Apr 28 23:49:53 2005
@@ -46,6 +46,12 @@
       <version>1.0-alpha-3-SNAPSHOT</version>
       <scope>runtime</scope>
     </dependency>
+    <dependency>
+      <groupId>org.apache.maven.wagon</groupId>
+      <artifactId>wagon-scm</artifactId>
+      <version>1.0-alpha-3-SNAPSHOT</version>
+      <!-- temporarily compile time scope>runtime</scope -->
+    </dependency>
   </dependencies>
   <build>
     <plugins>

Modified: maven/components/trunk/maven-artifact-ant/sample.build.xml
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-ant/sample.build.xml?rev=165269&r1=165268&r2=165269&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact-ant/sample.build.xml (original)
+++ maven/components/trunk/maven-artifact-ant/sample.build.xml Thu Apr 28 
23:49:53 2005
@@ -37,5 +37,55 @@
       <pom refid="maven.project"/>
     </artifact:deploy>
   </target>
+
+  <target name="test-scm">
+    <mkdir dir="target" />
+
+    <pathconvert targetos="unix" property="repo.path.unix">
+      <map from="c:" to=""/>
+      <path>
+        <pathelement location="${basedir}/target/deployment-repo-scm" />
+      </path>
+    </pathconvert>
+
+    <property name="scm.url" value="file://${repo.path.unix}" />
+
+    <delete dir="${repo.path.unix}" />
+
+    <exec executable="svnadmin" failonerror="true">
+      <arg line="create ${repo.path.unix}" />
+    </exec>
+
+    <artifact:localRepository id="local.repository" 
location="${basedir}/target/local-repo" layout="default"/>
+
+    <artifact:remoteRepository id="deploy.repository" url="scm:svn:${scm.url}" 
layout="default"/>
+
+    <artifact:dependencies pathId="dependency.classpath">
+      <dependency groupId="org.apache.maven.wagon" 
artifactId="wagon-provider-test" version="1.0-alpha-2"/>
+      <dependency groupId="org.codehaus.modello" artifactId="modello-core" 
version="1.0-alpha-2-SNAPSHOT"/>
+      <localRepository refid="local.repository"/>
+    </artifact:dependencies>
+
+    <exec executable="svn" dir="${basedir}/target/local-repo" 
failonerror="true">
+      <arg line="import -m 'import' ${scm.url}" />
+    </exec>
+
+    <delete dir="${basedir}/target/local-repo-scm" />
+
+    <artifact:localRepository id="local.repository.scm" 
location="${basedir}/target/local-repo-scm" layout="default"/>
+
+    <artifact:dependencies pathId="dependency.classpath">
+      <dependency groupId="org.apache.maven.wagon" 
artifactId="wagon-provider-test" version="1.0-alpha-2"/>
+      <dependency groupId="org.codehaus.modello" artifactId="modello-core" 
version="1.0-alpha-2-SNAPSHOT"/>
+      <localRepository refid="local.repository.scm"/>
+      <remoteRepository refid="deploy.repository"/>
+    </artifact:dependencies>
+
+    <artifact:deploy file="target/maven-artifact-ant-2.0-SNAPSHOT.jar">
+      <localRepository refid="local.repository.scm"/>
+      <remoteRepository refid="deploy.repository" />
+      <pom refid="maven.project"/>
+    </artifact:deploy>
+  </target>
 </project>
 

Modified: 
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/AbstractArtifactTask.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/AbstractArtifactTask.java?rev=165269&r1=165268&r2=165269&view=diff
==============================================================================
--- 
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/AbstractArtifactTask.java
 (original)
+++ 
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/AbstractArtifactTask.java
 Thu Apr 28 23:49:53 2005
@@ -42,6 +42,10 @@
     {
         ArtifactRepositoryLayout repositoryLayout = (ArtifactRepositoryLayout) 
lookup( ArtifactRepositoryLayout.ROLE,
                                                                                
        repository.getLayout() );
+
+        CustomWagonManager manager = (CustomWagonManager) lookup( 
WagonManager.ROLE );
+        manager.setLocalRepository( repository.getLocation() );
+
         return new ArtifactRepository( "local", "file://" + 
repository.getLocation(), repositoryLayout );
     }
 

Added: 
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/CustomWagonManager.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/CustomWagonManager.java?rev=165269&view=auto
==============================================================================
--- 
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/CustomWagonManager.java
 (added)
+++ 
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/CustomWagonManager.java
 Thu Apr 28 23:49:53 2005
@@ -0,0 +1,57 @@
+package org.apache.maven.artifact.ant;
+
+/*
+ * Copyright 2001-2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.maven.artifact.manager.DefaultWagonManager;
+import org.apache.maven.wagon.Wagon;
+import org.apache.maven.wagon.UnsupportedProtocolException;
+import org.apache.maven.wagon.providers.scm.ScmWagon;
+
+import java.io.File;
+
+/**
+ * Custom wagon manager for the ant tasks - used to set the SCM checkout 
directory to the local repository.
+ *
+ * @todo find a better way and share with m2
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">Brett Porter</a>
+ * @version $Id$
+ */
+public class CustomWagonManager
+    extends DefaultWagonManager
+{
+    private File localRepository;
+
+    public Wagon getWagon( String protocol )
+        throws UnsupportedProtocolException
+    {
+        Wagon wagon = super.getWagon( protocol );
+
+        if ( protocol.equals( "scm" ) )
+        {
+            ((ScmWagon)wagon).setCheckoutDirectory( localRepository );
+        }
+
+        return wagon;
+    }
+
+    public void setLocalRepository( File localRepository )
+    {
+        this.localRepository = localRepository;
+    }
+
+}

Propchange: 
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/CustomWagonManager.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/CustomWagonManager.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: 
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/CustomWagonManager.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: 
maven/components/trunk/maven-artifact-ant/src/main/resources/META-INF/plexus/components.xml
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-ant/src/main/resources/META-INF/plexus/components.xml?rev=165269&r1=165268&r2=165269&view=diff
==============================================================================
--- 
maven/components/trunk/maven-artifact-ant/src/main/resources/META-INF/plexus/components.xml
 (original)
+++ 
maven/components/trunk/maven-artifact-ant/src/main/resources/META-INF/plexus/components.xml
 Thu Apr 28 23:49:53 2005
@@ -9,7 +9,7 @@
      -->
     <component>
       <role>org.apache.maven.artifact.manager.WagonManager</role>
-      
<implementation>org.apache.maven.artifact.manager.DefaultWagonManager</implementation>
+      
<implementation>org.apache.maven.artifact.ant.CustomWagonManager</implementation>
       <requirements>
         <requirement>
           
<role>org.apache.maven.artifact.handler.manager.ArtifactHandlerManager</role>
@@ -278,6 +278,17 @@
 
     <component>
       <role>org.apache.maven.wagon.Wagon</role>
+      <role-hint>scm</role-hint>
+      
<implementation>org.apache.maven.wagon.providers.scm.ScmWagon</implementation>
+      <instantiation-strategy>per-lookup</instantiation-strategy>
+      <requirements>
+        <requirement> 
+          <role>org.apache.maven.scm.manager.ScmManager</role>
+        </requirement>
+      </requirements>
+    </component>
+    <component>
+      <role>org.apache.maven.wagon.Wagon</role>
       <role-hint>scp</role-hint>
       
<implementation>org.apache.maven.wagon.providers.ssh.ScpWagon</implementation>
       <instantiation-strategy>per-lookup</instantiation-strategy>
@@ -293,6 +304,131 @@
       
<implementation>org.apache.maven.wagon.providers.ssh.ScpWagon</implementation>
       <instantiation-strategy>per-lookup</instantiation-strategy>
     </component>
-  </components>
 
+    <component>
+      <role>org.apache.maven.scm.manager.ScmManager</role>
+      
<implementation>org.apache.maven.scm.manager.DefaultScmManager</implementation>
+      <requirements>
+        <requirement>
+          <role>org.apache.maven.scm.provider.ScmProvider</role>
+          <field-name>scmProviders</field-name>
+        </requirement>
+      </requirements>
+    </component>
+
+    <component>
+      <role>org.apache.maven.scm.provider.ScmProvider</role>
+      <role-hint>cvs</role-hint>
+      
<implementation>org.apache.maven.scm.provider.cvslib.CvsScmProvider</implementation>
+      <requirements>
+        <requirement>
+          <role>org.apache.maven.scm.provider.cvslib.command.CvsCommand</role>
+          <field-name>commands</field-name>
+        </requirement>
+      </requirements>
+    </component>
+
+    <component>
+      <role>org.apache.maven.scm.provider.cvslib.command.CvsCommand</role>
+      <role-hint>add</role-hint>
+      
<implementation>org.apache.maven.scm.provider.cvslib.command.add.CvsAddCommand</implementation>
+    </component>
+
+    <component>
+      <role>org.apache.maven.scm.provider.cvslib.command.CvsCommand</role>
+      <role-hint>change-log</role-hint>
+      
<implementation>org.apache.maven.scm.provider.cvslib.command.changelog.CvsChangeLogCommand</implementation>
+    </component>
+
+    <component>
+      <role>org.apache.maven.scm.provider.cvslib.command.CvsCommand</role>
+      <role-hint>check-in</role-hint>
+      
<implementation>org.apache.maven.scm.provider.cvslib.command.checkin.CvsCheckInCommand</implementation>
+    </component>
+
+    <component>
+      <role>org.apache.maven.scm.provider.cvslib.command.CvsCommand</role>
+      <role-hint>check-out</role-hint>
+      
<implementation>org.apache.maven.scm.provider.cvslib.command.checkout.CvsCheckOutCommand</implementation>
+    </component>
+
+    <component>
+      <role>org.apache.maven.scm.provider.cvslib.command.CvsCommand</role>
+      <role-hint>diff</role-hint>
+      
<implementation>org.apache.maven.scm.provider.cvslib.command.diff.CvsDiffCommand</implementation>
+    </component>
+
+    <component>
+      <role>org.apache.maven.scm.provider.cvslib.command.CvsCommand</role>
+      <role-hint>status</role-hint>
+      
<implementation>org.apache.maven.scm.provider.cvslib.command.status.CvsStatusCommand</implementation>
+    </component>
+
+    <component>
+      <role>org.apache.maven.scm.provider.cvslib.command.CvsCommand</role>
+      <role-hint>tag</role-hint>
+      
<implementation>org.apache.maven.scm.provider.cvslib.command.tag.CvsTagCommand</implementation>
+    </component>
+
+    <component>
+      <role>org.apache.maven.scm.provider.cvslib.command.CvsCommand</role>
+      <role-hint>update</role-hint>
+      
<implementation>org.apache.maven.scm.provider.cvslib.command.update.CvsUpdateCommand</implementation>
+    </component>
+
+    <component>
+      <role>org.apache.maven.scm.provider.ScmProvider</role>
+      <role-hint>svn</role-hint>
+      
<implementation>org.apache.maven.scm.provider.svn.SvnScmProvider</implementation>
+      <requirements>
+        <requirement>
+          <role>org.apache.maven.scm.provider.svn.command.SvnCommand</role>
+          <field-name>commands</field-name>
+        </requirement>
+      </requirements>
+    </component>
+
+    <component>
+      <role>org.apache.maven.scm.provider.svn.command.SvnCommand</role>
+      <role-hint>add</role-hint>
+      
<implementation>org.apache.maven.scm.provider.svn.command.add.SvnAddCommand</implementation>
+    </component>
+
+    <component>
+      <role>org.apache.maven.scm.provider.svn.command.SvnCommand</role>
+      <role-hint>check-in</role-hint>
+      
<implementation>org.apache.maven.scm.provider.svn.command.checkin.SvnCheckInCommand</implementation>
+    </component>
+
+    <component>
+      <role>org.apache.maven.scm.provider.svn.command.SvnCommand</role>
+      <role-hint>check-out</role-hint>
+      
<implementation>org.apache.maven.scm.provider.svn.command.checkout.SvnCheckOutCommand</implementation>
+    </component>
+
+    <component>
+      <role>org.apache.maven.scm.provider.svn.command.SvnCommand</role>
+      <role-hint>diff</role-hint>
+      
<implementation>org.apache.maven.scm.provider.svn.command.diff.SvnDiffCommand</implementation>
+    </component>
+
+    <component>
+      <role>org.apache.maven.scm.provider.svn.command.SvnCommand</role>
+      <role-hint>status</role-hint>
+      
<implementation>org.apache.maven.scm.provider.svn.command.status.SvnStatusCommand</implementation>
+    </component>
+
+    <component>
+      <role>org.apache.maven.scm.provider.svn.command.SvnCommand</role>
+      <role-hint>tag</role-hint>
+      
<implementation>org.apache.maven.scm.provider.svn.command.tag.SvnTagCommand</implementation>
+    </component>
+
+    <component>
+      <role>org.apache.maven.scm.provider.svn.command.SvnCommand</role>
+      <role-hint>update</role-hint>
+      
<implementation>org.apache.maven.scm.provider.svn.command.update.SvnUpdateCommand</implementation>
+    </component>
+
+  </components>
 </component-set>



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

Reply via email to