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]