diff --git a/src/main/java/org/apache/maven/plugins/war/AbstractWarMojo.java b/src/main/java/org/apache/maven/plugins/war/AbstractWarMojo.java index 5c14fd72..a142a8b9 100644 --- a/src/main/java/org/apache/maven/plugins/war/AbstractWarMojo.java +++ b/src/main/java/org/apache/maven/plugins/war/AbstractWarMojo.java @@ -57,6 +57,7 @@ import org.apache.maven.shared.utils.StringUtils; import org.codehaus.plexus.archiver.jar.JarArchiver; import org.codehaus.plexus.archiver.manager.ArchiverManager; +import org.codehaus.plexus.archiver.manager.NoSuchArchiverException; /** * Contains common jobs for WAR mojos. @@ -387,16 +388,23 @@ public abstract class AbstractWarMojo extends AbstractMojo { private final MavenResourcesFiltering mavenResourcesFiltering; protected AbstractWarMojo( - JarArchiver jarArchiver, ArtifactFactory artifactFactory, ArchiverManager archiverManager, MavenFileFilter mavenFileFilter, MavenResourcesFiltering mavenResourcesFiltering) { - this.jarArchiver = jarArchiver; this.artifactFactory = artifactFactory; this.archiverManager = archiverManager; this.mavenFileFilter = mavenFileFilter; this.mavenResourcesFiltering = mavenResourcesFiltering; + try { + this.jarArchiver = (JarArchiver) archiverManager.getArchiver("jar"); + } catch (NoSuchArchiverException e) { + throw new IllegalStateException("Cannot find jar archiver", e); + } + } + + public ArchiverManager getArchiverManager() { + return archiverManager; } /** diff --git a/src/main/java/org/apache/maven/plugins/war/WarExplodedMojo.java b/src/main/java/org/apache/maven/plugins/war/WarExplodedMojo.java index f2b999b6..7e89fa0b 100644 --- a/src/main/java/org/apache/maven/plugins/war/WarExplodedMojo.java +++ b/src/main/java/org/apache/maven/plugins/war/WarExplodedMojo.java @@ -19,7 +19,6 @@ package org.apache.maven.plugins.war; import javax.inject.Inject; -import javax.inject.Named; import org.apache.maven.artifact.factory.ArtifactFactory; import org.apache.maven.plugin.MojoExecutionException; @@ -29,7 +28,6 @@ import org.apache.maven.plugins.annotations.ResolutionScope; import org.apache.maven.shared.filtering.MavenFileFilter; import org.apache.maven.shared.filtering.MavenResourcesFiltering; -import org.codehaus.plexus.archiver.jar.JarArchiver; import org.codehaus.plexus.archiver.manager.ArchiverManager; /** @@ -43,12 +41,11 @@ public class WarExplodedMojo extends AbstractWarMojo { @Inject public WarExplodedMojo( - JarArchiver jarArchiver, ArtifactFactory artifactFactory, ArchiverManager archiverManager, - @Named("default") MavenFileFilter mavenFileFilter, - @Named("default") MavenResourcesFiltering mavenResourcesFiltering) { - super(jarArchiver, artifactFactory, archiverManager, mavenFileFilter, mavenResourcesFiltering); + MavenFileFilter mavenFileFilter, + MavenResourcesFiltering mavenResourcesFiltering) { + super(artifactFactory, archiverManager, mavenFileFilter, mavenResourcesFiltering); } @Override diff --git a/src/main/java/org/apache/maven/plugins/war/WarInPlaceMojo.java b/src/main/java/org/apache/maven/plugins/war/WarInPlaceMojo.java index 3951c7ea..1acf40f4 100644 --- a/src/main/java/org/apache/maven/plugins/war/WarInPlaceMojo.java +++ b/src/main/java/org/apache/maven/plugins/war/WarInPlaceMojo.java @@ -19,7 +19,6 @@ package org.apache.maven.plugins.war; import javax.inject.Inject; -import javax.inject.Named; import org.apache.maven.artifact.factory.ArtifactFactory; import org.apache.maven.plugin.MojoExecutionException; @@ -28,7 +27,6 @@ import org.apache.maven.plugins.annotations.ResolutionScope; import org.apache.maven.shared.filtering.MavenFileFilter; import org.apache.maven.shared.filtering.MavenResourcesFiltering; -import org.codehaus.plexus.archiver.jar.JarArchiver; import org.codehaus.plexus.archiver.manager.ArchiverManager; /** @@ -39,12 +37,11 @@ public class WarInPlaceMojo extends AbstractWarMojo { @Inject public WarInPlaceMojo( - JarArchiver jarArchiver, ArtifactFactory artifactFactory, ArchiverManager archiverManager, - @Named("default") MavenFileFilter mavenFileFilter, - @Named("default") MavenResourcesFiltering mavenResourcesFiltering) { - super(jarArchiver, artifactFactory, archiverManager, mavenFileFilter, mavenResourcesFiltering); + MavenFileFilter mavenFileFilter, + MavenResourcesFiltering mavenResourcesFiltering) { + super(artifactFactory, archiverManager, mavenFileFilter, mavenResourcesFiltering); } @Override diff --git a/src/main/java/org/apache/maven/plugins/war/WarMojo.java b/src/main/java/org/apache/maven/plugins/war/WarMojo.java index 8d00a4b1..8eedef1a 100644 --- a/src/main/java/org/apache/maven/plugins/war/WarMojo.java +++ b/src/main/java/org/apache/maven/plugins/war/WarMojo.java @@ -19,7 +19,6 @@ package org.apache.maven.plugins.war; import javax.inject.Inject; -import javax.inject.Named; import java.io.File; import java.io.IOException; @@ -35,7 +34,6 @@ import org.apache.maven.artifact.factory.ArtifactFactory; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; -import org.apache.maven.plugins.annotations.Component; import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; @@ -44,11 +42,10 @@ import org.apache.maven.project.MavenProjectHelper; import org.apache.maven.shared.filtering.MavenFileFilter; import org.apache.maven.shared.filtering.MavenResourcesFiltering; -import org.codehaus.plexus.archiver.Archiver; import org.codehaus.plexus.archiver.ArchiverException; -import org.codehaus.plexus.archiver.jar.JarArchiver; import org.codehaus.plexus.archiver.jar.ManifestException; import org.codehaus.plexus.archiver.manager.ArchiverManager; +import org.codehaus.plexus.archiver.manager.NoSuchArchiverException; import org.codehaus.plexus.archiver.war.WarArchiver; import org.codehaus.plexus.util.FileUtils; @@ -82,15 +79,6 @@ public class WarMojo extends AbstractWarMojo { @Parameter private String classifier; - /** - * The WAR archiver. - */ - @Component(role = Archiver.class, hint = "war") - private WarArchiver warArchiver; - - @Component - private MavenProjectHelper projectHelper; - /** * Whether this is the main artifact being built. Set to false if you don't want to install or deploy * it to the local repository instead of the default one in an execution. @@ -140,14 +128,17 @@ public class WarMojo extends AbstractWarMojo { @Parameter(property = "maven.war.skip", defaultValue = "false") private boolean skip; + private final MavenProjectHelper projectHelper; + @Inject public WarMojo( - JarArchiver jarArchiver, ArtifactFactory artifactFactory, ArchiverManager archiverManager, - @Named("default") MavenFileFilter mavenFileFilter, - @Named("default") MavenResourcesFiltering mavenResourcesFiltering) { - super(jarArchiver, artifactFactory, archiverManager, mavenFileFilter, mavenResourcesFiltering); + MavenFileFilter mavenFileFilter, + MavenResourcesFiltering mavenResourcesFiltering, + MavenProjectHelper projectHelper) { + super(artifactFactory, archiverManager, mavenFileFilter, mavenResourcesFiltering); + this.projectHelper = projectHelper; } // ---------------------------------------------------------------------- @@ -199,6 +190,7 @@ private void performPackaging(File warFile) MavenArchiver archiver = new MavenArchiver(); + WarArchiver warArchiver = getWarArchiver(); archiver.setArchiver(warArchiver); archiver.setCreatedBy("Maven WAR Plugin", "org.apache.maven.plugins", "maven-war-plugin"); @@ -390,18 +382,12 @@ public void setWarName(String warName) { this.warName = warName; } - /** - * @return {@link #warArchiver} - */ public WarArchiver getWarArchiver() { - return warArchiver; - } - - /** - * @param warArchiver {@link #warArchiver} - */ - public void setWarArchiver(WarArchiver warArchiver) { - this.warArchiver = warArchiver; + try { + return (WarArchiver) getArchiverManager().getArchiver("war"); + } catch (NoSuchArchiverException e) { + throw new IllegalStateException("Cannot find war archiver", e); + } } /** @@ -411,13 +397,6 @@ public MavenProjectHelper getProjectHelper() { return projectHelper; } - /** - * @param projectHelper {@link #projectHelper} - */ - public void setProjectHelper(MavenProjectHelper projectHelper) { - this.projectHelper = projectHelper; - } - /** * @return {@link #primaryArtifact} */