diff --git a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/PluginsMetadataGenerator.java b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/PluginsMetadataGenerator.java index 3803572f6d7..192fa43eb2f 100644 --- a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/PluginsMetadataGenerator.java +++ b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/PluginsMetadataGenerator.java @@ -42,6 +42,8 @@ import org.eclipse.aether.installation.InstallRequest; import org.eclipse.aether.metadata.Metadata; import org.eclipse.aether.util.ConfigUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Maven G level metadata generator. @@ -51,6 +53,8 @@ class PluginsMetadataGenerator implements MetadataGenerator { private static final String PLUGIN_DESCRIPTOR_LOCATION = "META-INF/maven/plugin.xml"; + private final Logger logger = LoggerFactory.getLogger(getClass()); + private final Map processedPlugins; private final Date timestamp; @@ -142,20 +146,20 @@ private PluginInfo extractPluginInfo(Artifact artifact) { // here groupId and artifactId cannot be null return new PluginInfo(groupId, artifactId, goalPrefix, name); } else { - throw new InvalidArtifactPluginMetadataException( - "Artifact " + artifact.getGroupId() + ":" - + artifact.getArtifactId() - + " JAR (to be installed/deployed) contains Maven Plugin metadata for plugin " - + groupId + ":" + artifactId + "; coordinates are conflicting. " - + "Most probably your JAR contains rogue Maven Plugin metadata, " - + "possible causes may be: shaded in Maven Plugin or some rogue resource)"); + logger.warn( + "Artifact {}:{}" + + " JAR (about to be installed/deployed) contains Maven Plugin metadata for" + + " conflicting coordinates: {}:{}." + + " Your JAR contains rogue Maven Plugin metadata." + + " Possible causes may be: shaded into this JAR some Maven Plugin or some rogue resource.", + artifact.getGroupId(), + artifact.getArtifactId(), + groupId, + artifactId); } } } } catch (Exception e) { - if (e instanceof InvalidArtifactPluginMetadataException) { - throw (InvalidArtifactPluginMetadataException) e; - } // here we can have: IO. ZIP or Plexus Conf Ex: but we should not interfere with user intent } } @@ -170,10 +174,4 @@ private static String mayGetChild(Xpp3Dom node, String child) { } return null; } - - public static final class InvalidArtifactPluginMetadataException extends IllegalArgumentException { - InvalidArtifactPluginMetadataException(String s) { - super(s); - } - } } diff --git a/maven-resolver-provider/src/test/java/org/apache/maven/repository/internal/RepositorySystemTest.java b/maven-resolver-provider/src/test/java/org/apache/maven/repository/internal/RepositorySystemTest.java index c22db033eb5..8031ca50831 100644 --- a/maven-resolver-provider/src/test/java/org/apache/maven/repository/internal/RepositorySystemTest.java +++ b/maven-resolver-provider/src/test/java/org/apache/maven/repository/internal/RepositorySystemTest.java @@ -18,19 +18,15 @@ */ package org.apache.maven.repository.internal; -import java.nio.file.Files; import java.util.Arrays; import java.util.List; -import org.eclipse.aether.DefaultRepositorySystemSession; import org.eclipse.aether.artifact.Artifact; import org.eclipse.aether.artifact.DefaultArtifact; import org.eclipse.aether.collection.CollectRequest; import org.eclipse.aether.collection.CollectResult; import org.eclipse.aether.graph.Dependency; import org.eclipse.aether.graph.DependencyNode; -import org.eclipse.aether.installation.InstallRequest; -import org.eclipse.aether.repository.LocalRepository; import org.eclipse.aether.resolution.ArtifactDescriptorRequest; import org.eclipse.aether.resolution.ArtifactDescriptorResult; import org.eclipse.aether.resolution.ArtifactRequest; @@ -197,29 +193,4 @@ public void testNewLocalRepositoryManager() throws Exception { public void testNewSyncContext() throws Exception { // SyncContext newSyncContext( RepositorySystemSession session, boolean shared ); } - - public void testRoguePlugin() throws Exception { - Artifact artifact = new DefaultArtifact("ut.simple:rogue-plugin:1.0"); - - ArtifactRequest artifactRequest = new ArtifactRequest(); - artifactRequest.setArtifact(artifact); - artifactRequest.addRepository(newTestRepository()); - - ArtifactResult artifactResult = system.resolveArtifact(session, artifactRequest); - checkArtifactResult(artifactResult, "rogue-plugin-1.0.jar"); - - InstallRequest installRequest = new InstallRequest(); - installRequest.addArtifact(artifactResult.getArtifact()); - - DefaultRepositorySystemSession loc = new DefaultRepositorySystemSession(session); - loc.setLocalRepositoryManager(system.newLocalRepositoryManager( - session, new LocalRepository(Files.createTempDirectory("local").toFile()))); - try { - system.install(loc, installRequest); - fail("install should fail"); - } catch (Exception e) { - assertTrue(e instanceof PluginsMetadataGenerator.InvalidArtifactPluginMetadataException); - assertTrue(e.getMessage().contains("coordinates are conflicting")); - } - } } diff --git a/maven-resolver-provider/src/test/resources/repo/ut/simple/rogue-plugin/1.0/rogue-plugin-1.0.jar b/maven-resolver-provider/src/test/resources/repo/ut/simple/rogue-plugin/1.0/rogue-plugin-1.0.jar deleted file mode 100644 index 8163c13626e..00000000000 Binary files a/maven-resolver-provider/src/test/resources/repo/ut/simple/rogue-plugin/1.0/rogue-plugin-1.0.jar and /dev/null differ diff --git a/maven-resolver-provider/src/test/resources/repo/ut/simple/rogue-plugin/1.0/rogue-plugin-1.0.pom b/maven-resolver-provider/src/test/resources/repo/ut/simple/rogue-plugin/1.0/rogue-plugin-1.0.pom deleted file mode 100644 index 84d007fc5f0..00000000000 --- a/maven-resolver-provider/src/test/resources/repo/ut/simple/rogue-plugin/1.0/rogue-plugin-1.0.pom +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - 4.0.0 - - ut.simple - rogue-plugin - 1.0 - - Simple Unit Test Rogue Plugin - diff --git a/maven-resolver-provider/src/test/resources/repo/ut/simple/rogue-plugin/maven-metadata.xml b/maven-resolver-provider/src/test/resources/repo/ut/simple/rogue-plugin/maven-metadata.xml deleted file mode 100644 index 8618d47389f..00000000000 --- a/maven-resolver-provider/src/test/resources/repo/ut/simple/rogue-plugin/maven-metadata.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - ut.simple - rogue-plugin - - 1.0 - 1.0 - - 1.0 - - 20111123122038 - - \ No newline at end of file