brett 2005/04/18 00:09:16 Modified: maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant AbstractArtifactTask.java DeployTask.java RemoteRepository.java maven-artifact-ant/src/main/resources/org/apache/maven/artifact/ant antlib.xml maven-artifact-ant pom.xml sample.build.xml Added: maven-artifact-ant/src/main/assembly dep.xml maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant Authentication.java maven-artifact-ant/src/main/resources/META-INF/plexus components.xml Log: build an assembly that includes dependencies Revision Changes Path 1.1 maven-components/maven-artifact-ant/src/main/assembly/dep.xml Index: dep.xml =================================================================== <assembly> <!-- TODO: a jarjar format would be better --> <id>dep</id> <formats> <format>jar</format> </formats> <includeBaseDirectory>false</includeBaseDirectory> <fileSets> <fileSet> <!-- TODO: use expressions instead: ${project.build.directory}, ${project.build.finalName}, or have a <build /> tag to include the built artifact --> <directory>target/classes</directory> <outputDirectory>/</outputDirectory> </fileSet> </fileSets> <dependencySets> <dependencySet> <outputDirectory>/</outputDirectory> <unpack>true</unpack> <scope>runtime</scope> <excludes> <exclude>junit:junit</exclude> <exclude>ant:ant</exclude> <exclude>marmalade:marmalade-core</exclude> <exclude>plexus:plexus-marmalade-factory</exclude> <exclude>commons-cli:commons-cli</exclude> <exclude>plexus:plexus-container-artifact</exclude> <exclude>plexus:plexus-i18n</exclude> <exclude>org.apache.maven:maven-script-marmalade</exclude> <exclude>org.apache.maven:maven-plugin</exclude> <exclude>org.apache.maven:maven-monitor</exclude> </excludes> </dependencySet> </dependencySets> </assembly> 1.2 +6 -9 maven-components/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/AbstractArtifactTask.java Index: AbstractArtifactTask.java =================================================================== RCS file: /home/cvs/maven-components/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/AbstractArtifactTask.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- AbstractArtifactTask.java 18 Apr 2005 04:12:35 -0000 1.1 +++ AbstractArtifactTask.java 18 Apr 2005 07:09:16 -0000 1.2 @@ -36,19 +36,16 @@ protected ArtifactRepository createArtifactRepository( LocalRepository repository ) { - return createArtifactRepository( "local", "file://" + repository.getLocation(), repository.getLayout() ); + ArtifactRepositoryLayout repositoryLayout = (ArtifactRepositoryLayout) lookup( ArtifactRepositoryLayout.ROLE, + repository.getLayout() ); + return new ArtifactRepository( "local", "file://" + repository.getLocation(), repositoryLayout ); } protected ArtifactRepository createArtifactRepository( RemoteRepository repository ) { - return createArtifactRepository( "remote", repository.getUrl(), repository.getLayout() ); - } - - private ArtifactRepository createArtifactRepository( String id, String url, String layout ) - { ArtifactRepositoryLayout repositoryLayout = (ArtifactRepositoryLayout) lookup( ArtifactRepositoryLayout.ROLE, - layout ); - return new ArtifactRepository( id, url, repositoryLayout ); + repository.getLayout() ); + return new ArtifactRepository( "remote", repository.getUrl(), repository.getAuthentication(), repositoryLayout ); } protected Object lookup( String role ) 1.2 +4 -4 maven-components/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DeployTask.java Index: DeployTask.java =================================================================== RCS file: /home/cvs/maven-components/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DeployTask.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- DeployTask.java 18 Apr 2005 04:12:35 -0000 1.1 +++ DeployTask.java 18 Apr 2005 07:09:16 -0000 1.2 @@ -18,12 +18,11 @@ import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.DefaultArtifact; -import org.apache.maven.artifact.installer.ArtifactInstaller; -import org.apache.maven.artifact.repository.ArtifactRepository; -import org.apache.maven.artifact.deployer.ArtifactDeploymentException; import org.apache.maven.artifact.deployer.ArtifactDeployer; +import org.apache.maven.artifact.deployer.ArtifactDeploymentException; import org.apache.maven.artifact.metadata.ArtifactMetadata; import org.apache.maven.artifact.metadata.MavenMetadata; +import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.project.MavenProjectBuilder; import org.apache.tools.ant.BuildException; @@ -63,6 +62,7 @@ artifact.addMetadata( metadata ); } + log( "Deploying to " + remoteRepository.getUrl() ); ArtifactDeployer deployer = (ArtifactDeployer) lookup( ArtifactDeployer.ROLE ); try { 1.2 +15 -2 maven-components/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/RemoteRepository.java Index: RemoteRepository.java =================================================================== RCS file: /home/cvs/maven-components/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/RemoteRepository.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- RemoteRepository.java 18 Apr 2005 04:12:35 -0000 1.1 +++ RemoteRepository.java 18 Apr 2005 07:09:16 -0000 1.2 @@ -22,10 +22,13 @@ * @author <a href="mailto:[EMAIL PROTECTED]">Brett Porter</a> * @version $Id$ */ -public class RemoteRepository extends Repository +public class RemoteRepository + extends Repository { private String url; + private Authentication authentication; + public String getUrl() { return ( (RemoteRepository) getInstance() ).url; @@ -35,4 +38,14 @@ { this.url = url; } + + public Authentication getAuthentication() + { + return authentication; + } + + public void addAuthentication( Authentication authentication ) + { + this.authentication = authentication; + } } 1.1 maven-components/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/Authentication.java Index: Authentication.java =================================================================== package org.apache.maven.artifact.ant; import org.apache.maven.wagon.authentication.AuthenticationInfo; /* * 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. */ /** * Ant Wrapper for wagon authentication. * * @author <a href="mailto:[EMAIL PROTECTED]">Brett Porter</a> * @version $Id: Authentication.java,v 1.1 2005/04/18 07:09:16 brett Exp $ */ public class Authentication extends AuthenticationInfo { } 1.1 maven-components/maven-artifact-ant/src/main/resources/META-INF/plexus/components.xml Index: components.xml =================================================================== <!-- Merger of component descriptors from maven-artifact and maven-core because extracted jars overwrite each other --> <component-set> <components> <!-- | | WagonManager | --> <component> <role>org.apache.maven.artifact.manager.WagonManager</role> <implementation>org.apache.maven.artifact.manager.DefaultWagonManager</implementation> <requirements> <requirement> <role>org.apache.maven.artifact.handler.manager.ArtifactHandlerManager</role> </requirement> </requirements> </component> <!-- | | Transformations | --> <component> <role>org.apache.maven.artifact.transform.ArtifactTransformation</role> <implementation>org.apache.maven.artifact.transform.SnapshotTransformation</implementation> <requirements> <requirement> <role>org.apache.maven.artifact.manager.WagonManager</role> </requirement> </requirements> </component> <!-- | | Resolver | --> <component> <role>org.apache.maven.artifact.resolver.ArtifactResolver</role> <implementation>org.apache.maven.artifact.resolver.DefaultArtifactResolver</implementation> <requirements> <requirement> <role>org.apache.maven.artifact.manager.WagonManager</role> </requirement> <requirement> <role>org.apache.maven.artifact.handler.manager.ArtifactHandlerManager</role> </requirement> <requirement> <role>org.apache.maven.artifact.transform.ArtifactTransformation</role> <field-name>artifactTransformations</field-name> </requirement> </requirements> </component> <!-- | | ArtifactInstaller | --> <component> <role>org.apache.maven.artifact.installer.ArtifactInstaller</role> <implementation>org.apache.maven.artifact.installer.DefaultArtifactInstaller</implementation> <requirements> <requirement> <role>org.apache.maven.artifact.handler.manager.ArtifactHandlerManager</role> </requirement> <requirement> <role>org.apache.maven.artifact.transform.ArtifactTransformation</role> <field-name>artifactTransformations</field-name> </requirement> </requirements> </component> <!-- | | ArtifactDeployer | --> <component> <role>org.apache.maven.artifact.deployer.ArtifactDeployer</role> <implementation>org.apache.maven.artifact.deployer.DefaultArtifactDeployer</implementation> <requirements> <requirement> <role>org.apache.maven.artifact.manager.WagonManager</role> </requirement> <requirement> <role>org.apache.maven.artifact.handler.manager.ArtifactHandlerManager</role> </requirement> <requirement> <role>org.apache.maven.artifact.transform.ArtifactTransformation</role> <field-name>artifactTransformations</field-name> </requirement> </requirements> </component> <component> <role>org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout</role> <role-hint>default</role-hint> <implementation>org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout</implementation> <requirements> <requirement> <role>org.apache.maven.artifact.handler.manager.ArtifactHandlerManager</role> </requirement> </requirements> </component> <component> <role>org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout</role> <role-hint>legacy</role-hint> <implementation>org.apache.maven.artifact.repository.layout.LegacyRepositoryLayout</implementation> <requirements> <requirement> <role>org.apache.maven.artifact.handler.manager.ArtifactHandlerManager</role> </requirement> </requirements> </component> <!-- | | ArtifactHandlerManager | --> <component> <role>org.apache.maven.artifact.handler.manager.ArtifactHandlerManager</role> <implementation>org.apache.maven.artifact.handler.manager.DefaultArtifactHandlerManager</implementation> <requirements> <requirement> <role>org.apache.maven.artifact.handler.ArtifactHandler</role> <field-name>artifactHandlers</field-name> </requirement> </requirements> </component> <component> <role>org.apache.maven.artifact.handler.ArtifactHandler</role> <role-hint>ejb</role-hint> <implementation>org.apache.maven.artifact.handler.EjbHandler</implementation> </component> <component> <role>org.apache.maven.artifact.handler.ArtifactHandler</role> <role-hint>plexus-service</role-hint> <implementation>org.apache.maven.artifact.handler.PlexusServiceHandler</implementation> </component> <component> <role>org.apache.maven.artifact.handler.ArtifactHandler</role> <role-hint>jar</role-hint> <implementation>org.apache.maven.artifact.handler.JarHandler</implementation> </component> <component> <role>org.apache.maven.artifact.handler.ArtifactHandler</role> <role-hint>maven-plugin</role-hint> <implementation>org.apache.maven.artifact.handler.PluginHandler</implementation> </component> <component> <role>org.apache.maven.artifact.handler.ArtifactHandler</role> <role-hint>pom</role-hint> <implementation>org.apache.maven.artifact.handler.PomHandler</implementation> </component> <component> <role>org.apache.maven.artifact.handler.ArtifactHandler</role> <role-hint>source</role-hint> <implementation>org.apache.maven.artifact.handler.SourceHandler</implementation> </component> <component> <role>org.apache.maven.artifact.handler.ArtifactHandler</role> <role-hint>war</role-hint> <implementation>org.apache.maven.artifact.handler.WarHandler</implementation> </component> <!-- | | | --> <component> <role>org.apache.maven.project.interpolation.ModelInterpolator</role> <implementation>org.apache.maven.project.interpolation.RegexBasedModelInterpolator</implementation> </component> <!-- | | | --> <component> <role>org.apache.maven.project.injection.ModelDefaultsInjector</role> <implementation>org.apache.maven.project.injection.DefaultModelDefaultsInjector</implementation> </component> <component> <role>org.apache.maven.project.MavenProjectBuilder</role> <implementation>org.apache.maven.project.DefaultMavenProjectBuilder</implementation> <requirements> <requirement> <role>org.apache.maven.project.injection.ModelDefaultsInjector</role> </requirement> <requirement> <role>org.apache.maven.project.interpolation.ModelInterpolator</role> </requirement> <requirement> <role>org.apache.maven.project.inheritance.ModelInheritanceAssembler</role> </requirement> <requirement> <role>org.apache.maven.project.validation.ModelValidator</role> </requirement> <requirement> <role>org.apache.maven.project.path.PathTranslator</role> </requirement> <requirement> <role>org.apache.maven.artifact.factory.ArtifactFactory</role> </requirement> <requirement> <role>org.apache.maven.artifact.resolver.ArtifactResolver</role> </requirement> <requirement> <role>org.apache.maven.artifact.repository.ArtifactRepositoryFactory</role> </requirement> <requirement> <role>org.apache.maven.settings.MavenSettingsBuilder</role> </requirement> </requirements> </component> <!-- | | | --> <component> <role>org.apache.maven.project.inheritance.ModelInheritanceAssembler</role> <implementation>org.apache.maven.project.inheritance.DefaultModelInheritanceAssembler</implementation> </component> <!-- | | | --> <component> <role>org.apache.maven.project.validation.ModelValidator</role> <implementation>org.apache.maven.project.validation.DefaultModelValidator</implementation> </component> <!-- | | | --> <component> <role>org.apache.maven.artifact.factory.ArtifactFactory</role> <implementation>org.apache.maven.artifact.factory.DefaultArtifactFactory</implementation> </component> <component> <role>org.apache.maven.project.path.PathTranslator</role> <implementation>org.apache.maven.project.path.DefaultPathTranslator</implementation> </component> <component> <role>org.apache.maven.artifact.repository.ArtifactRepositoryFactory</role> <implementation>org.apache.maven.artifact.repository.DefaultArtifactRepositoryFactory</implementation> </component> <component> <role>org.apache.maven.settings.MavenSettingsBuilder</role> <implementation>org.apache.maven.settings.DefaultMavenSettingsBuilder</implementation> <configuration> <settingsPath>${user.home}/.m2/settings.xml</settingsPath> </configuration> </component> <component> <role>org.apache.maven.wagon.Wagon</role> <role-hint>http</role-hint> <implementation>org.apache.maven.wagon.providers.http.LightweightHttpWagon</implementation> <instantiation-strategy>per-lookup</instantiation-strategy> </component> <component> <role>org.apache.maven.wagon.Wagon</role> <role-hint>file</role-hint> <implementation>org.apache.maven.wagon.providers.file.FileWagon</implementation> <instantiation-strategy>per-lookup</instantiation-strategy> </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> </component> <component> <role>org.apache.maven.wagon.Wagon</role> <role-hint>sftp</role-hint> <implementation>org.apache.maven.wagon.providers.ssh.SftpWagon</implementation> <instantiation-strategy>per-lookup</instantiation-strategy> </component> <component> <role>org.apache.maven.wagon.providers.ssh.SshCommandExecutor</role> <implementation>org.apache.maven.wagon.providers.ssh.ScpWagon</implementation> <instantiation-strategy>per-lookup</instantiation-strategy> </component> </components> </component-set> 1.2 +7 -6 maven-components/maven-artifact-ant/src/main/resources/org/apache/maven/artifact/ant/antlib.xml Index: antlib.xml =================================================================== RCS file: /home/cvs/maven-components/maven-artifact-ant/src/main/resources/org/apache/maven/artifact/ant/antlib.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- antlib.xml 18 Apr 2005 04:12:35 -0000 1.1 +++ antlib.xml 18 Apr 2005 07:09:16 -0000 1.2 @@ -1,12 +1,13 @@ <?xml version="1.0"?> <antlib> <!-- Tasks --> - <typedef name="dependencies" classname="org.apache.maven.artifact.ant.DependenciesTask" /> - <typedef name="install" classname="org.apache.maven.artifact.ant.InstallTask" /> - <typedef name="deploy" classname="org.apache.maven.artifact.ant.DeployTask" /> + <typedef name="dependencies" classname="org.apache.maven.artifact.ant.DependenciesTask"/> + <typedef name="install" classname="org.apache.maven.artifact.ant.InstallTask"/> + <typedef name="deploy" classname="org.apache.maven.artifact.ant.DeployTask"/> <!-- Types --> - <typedef name="localRepository" classname="org.apache.maven.artifact.ant.LocalRepository" /> - <typedef name="remoteRepository" classname="org.apache.maven.artifact.ant.RemoteRepository" /> - <typedef name="pom" classname="org.apache.maven.artifact.ant.Pom" /> + <typedef name="localRepository" classname="org.apache.maven.artifact.ant.LocalRepository"/> + <typedef name="remoteRepository" classname="org.apache.maven.artifact.ant.RemoteRepository"/> + <typedef name="authentication" classname="org.apache.maven.artifact.ant.Authentication"/> + <typedef name="pom" classname="org.apache.maven.artifact.ant.Pom"/> </antlib> 1.2 +23 -0 maven-components/maven-artifact-ant/pom.xml Index: pom.xml =================================================================== RCS file: /home/cvs/maven-components/maven-artifact-ant/pom.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- pom.xml 18 Apr 2005 04:12:35 -0000 1.1 +++ pom.xml 18 Apr 2005 07:09:16 -0000 1.2 @@ -27,5 +27,28 @@ <version>3.8.1</version> <scope>test</scope> </dependency> + <dependency> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-file</artifactId> + <version>1.0-alpha-2</version> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-ssh</artifactId> + <version>1.0-alpha-2</version> + <scope>runtime</scope> + </dependency> </dependencies> + <build> + <plugins> + <plugin> + <artifactId>maven-assembly-plugin</artifactId> + <version>1.0-SNAPSHOT</version> + <configuration> + <descriptor>src/main/assembly/dep.xml</descriptor> + </configuration> + </plugin> + </plugins> + </build> </model> 1.2 +30 -22 maven-components/maven-artifact-ant/sample.build.xml Index: sample.build.xml =================================================================== RCS file: /home/cvs/maven-components/maven-artifact-ant/sample.build.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- sample.build.xml 18 Apr 2005 04:12:35 -0000 1.1 +++ sample.build.xml 18 Apr 2005 07:09:16 -0000 1.2 @@ -1,44 +1,52 @@ <project name="foo" xmlns:artifact="antlib:org.apache.maven.artifact.ant" default="foo"> <target name="foo"> -<!-- -TODO... -Implementation: -- don't require everything in $ANT_HOME/lib (give example using typedef) - currently all of M2_HOME/lib needs to be in ANT_HOME/lib (ie maven-core's dependencies) -- need to decouple maven-artifact from plexus, or create an ant logger for plexus, then embed it in here -- need to decouple project loading from maven-core. Loading the model was not enough (no inheritence or super model) -Features: -- read .m2/settings.xml -- get dependencies from POM ---> + <!-- + TODO... + Implementation: + - don't require everything in $ANT_HOME/lib (give example using typedef) - currently all of M2_HOME/lib needs to be in ANT_HOME/lib (ie maven-core's dependencies) + - need to decouple maven-artifact from plexus, or create an ant logger for plexus, then embed it in here + - need to decouple project loading from maven-core. Loading the model was not enough (no inheritence or super model) + Features: + - read .m2/settings.xml + - get dependencies from POM + --> - <artifact:localRepository id="local.repository" location="${basedir}/target/local-repo" layout="default" /> + <artifact:localRepository id="local.repository" location="${basedir}/target/local-repo" layout="default"/> - <artifact:remoteRepository id="deploy.repository" url="file://${basedir}/target/deployment-repo" layout="legacy" /> + <artifact:remoteRepository id="deploy.repository" url="file://${basedir}/target/deployment-repo" layout="legacy"/> - <artifact:pom file="pom.xml" id="maven.project" /> + <artifact:pom file="pom.xml" id="maven.project"/> <!-- - TODO: would be nice to declare the POM inline, but I'd need to proxy all of the model objects <artifact:pom id="maven.project"> <artifactId>...</artifactId> </artifact:pom> ---> + --> <artifact:dependencies pathId="dependency.classpath"> - <dependency groupId="org.apache.maven.wagon" artifactId="wagon-provider-test" version="1.0-alpha-2" /> - <dependency groupId="plexus" artifactId="plexus-container-default" version="1.0-alpha-2" /> - <localRepository refid="local.repository" /> + <dependency groupId="org.apache.maven.wagon" artifactId="wagon-provider-test" version="1.0-alpha-2"/> + <dependency groupId="plexus" artifactId="plexus-container-default" version="1.0-alpha-2"/> + <localRepository refid="local.repository"/> </artifact:dependencies> <artifact:install file="target/maven-artifact-ant-1.0-alpha-2-SNAPSHOT.jar"> - <localRepository refid="local.repository" /> - <pom refid="maven.project" /> + <localRepository refid="local.repository"/> + <pom refid="maven.project"/> </artifact:install> <artifact:deploy file="target/maven-artifact-ant-1.0-alpha-2-SNAPSHOT.jar"> - <localRepository refid="local.repository" /> - <remoteRepository refid="deploy.repository" /> - <pom refid="maven.project" /> + <localRepository refid="local.repository"/> + <remoteRepository refid="deploy.repository"/> + <pom refid="maven.project"/> + </artifact:deploy> + + <artifact:deploy file="target/maven-artifact-ant-1.0-alpha-2-SNAPSHOT.jar"> + <localRepository refid="local.repository"/> + <remoteRepository url="scp://localhost/tmp/deployment-repo"> + <authentication username="brett" privateKey="${user.home}/.ssh/id_dsa"/> + </remoteRepository> + <pom refid="maven.project"/> </artifact:deploy> </target> </project>
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]