r1172 - trunk/wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin
Author: mfortun Date: 2011-08-18 15:34:06 +0200 (Thu, 18 Aug 2011) New Revision: 1172 Url: http://nuiton.org/repositories/revision/wikitty/1172 Log: *complete goal run Modified: trunk/wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin/WPRunMojo.java Modified: trunk/wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin/WPRunMojo.java =================================================================== --- trunk/wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin/WPRunMojo.java 2011-08-18 10:05:22 UTC (rev 1171) +++ trunk/wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin/WPRunMojo.java 2011-08-18 13:34:06 UTC (rev 1172) @@ -25,9 +25,20 @@ package org.nuiton.wikitty.plugin; import java.io.File; +import java.io.IOException; import java.net.URL; +import java.util.List; +import org.apache.commons.lang.StringUtils; +import org.apache.maven.artifact.Artifact; +import org.apache.maven.artifact.factory.ArtifactFactory; +import org.apache.maven.artifact.repository.ArtifactRepository; +import org.apache.maven.artifact.resolver.ArtifactNotFoundException; +import org.apache.maven.artifact.resolver.ArtifactResolutionException; +import org.apache.maven.artifact.resolver.ArtifactResolver; import org.apache.maven.plugin.dependency.CopyDependenciesMojo; +import org.apache.maven.plugin.dependency.resolvers.ResolveDependenciesMojo; +import org.apache.maven.project.MavenProject; import org.nuiton.util.ApplicationConfig; import org.nuiton.wikitty.WikittyConfigOption; import org.nuiton.wikitty.publication.PropertiesExtended; @@ -50,8 +61,53 @@ */ public class WPRunMojo extends AbstractWPMojo { + private static final String DEPENDCY_TYPE_WAR = "war"; + + protected static final String PUBLICATION_WAR_ARTIFACT_ID = "wikitty-publication-ui"; + + protected static final String PUBLICATION_WAR_GROUP_ID = "org.nuiton.wikitty"; + static public String FALLBACK_PROPERTIE_FILE_NAME = "fallback.properties"; + /** + * The component that is used to resolve additional artifacts required. + * @required + * @component + * + */ + private ArtifactResolver artifactResolver; + + /** + * The component used for creating artifact instances. + * @required + * @component + */ + private ArtifactFactory artifactFactory; + + + + /** + * Local Repository. + * + * @parameter expression="${localRepository}" + * @required + * @readonly + * @since 1.0.0 + */ + protected ArtifactRepository localRepository; + + /** + * Remote repositories used for the project. + * + * @parameter expression="${project.remoteArtifactRepositories}" + * @required + * @readonly + * @since 1.0.0 + */ + protected List remoteRepositories; + + + @Override protected void init() throws Exception { // TODO @@ -59,15 +115,10 @@ @Override protected void doAction() throws Exception { - - // TODO mfortun-2011-08-17 need to use copyDepencies Mojo to find - // the wikittyPublication war - File webApp = new File( - "/home/Manou/workspaceStage/wikitty/wikitty-publication-ui/target/wikitty-publication-ui-3.2-SNAPSHOT.war"); - - // CopyDependenciesMojo findWar = new CopyDependenciesMojo(); - - System.out.println(webApp); + + File webApp = resolveFile(); + + String build = project.getBuild().getDirectory(); File buildDir = new File(build); createDirectoryIfNecessary(buildDir); @@ -110,6 +161,48 @@ jettyRunMojo.setProject(project); jettyRunMojo.execute(); + } + /* + * from org.codehaus.mojo.license.DefaultThirdPartyTool + * by tchemit + */ + private File resolveFile() throws IOException, + ArtifactResolutionException, ArtifactNotFoundException { + File result; + + // TODO: this is a bit crude - proper type, or proper handling as + // metadata rather than an artifact in 2.1? + Artifact artifact = artifactFactory.createArtifactWithClassifier( + PUBLICATION_WAR_GROUP_ID, PUBLICATION_WAR_ARTIFACT_ID, + project.getVersion(), DEPENDCY_TYPE_WAR, StringUtils.EMPTY); + // TODO mfortun-2011-08-18 change for version + try { + artifactResolver.resolve(artifact, remoteRepositories, localRepository); + + result = artifact.getFile(); + + // we use zero length files to avoid re-resolution (see below) + if (result.length() == 0) { + getLog().debug("Skipped third party descriptor"); + } + } catch (ArtifactNotFoundException e) { + getLog().debug( + "Unable to locate third party files descriptor : " + e); + + // we can afford to write an empty descriptor here as we don't + // expect it to turn up later in the remote + // repository, because the parent was already released (and + // snapshots are updated automatically if changed) + result = new File(localRepository.getBasedir(), + localRepository.pathOf(artifact)); + + createNewFile(result); + } + + return result; + } + + }
participants (1)
-
mfortun@users.nuiton.org