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]