You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sc...@apache.org on 2015/12/18 00:32:24 UTC
[1/2] maven git commit: Revert "[MNG-5868] Adding serval times the
same artifact via MavenProjectHelper (attachArtifact) does not produce a
failure"
Repository: maven
Updated Branches:
refs/heads/master 020e35816 -> 5f048234f
Revert "[MNG-5868] Adding serval times the same artifact via MavenProjectHelper (attachArtifact) does not produce a failure"
This reverts commit 020e35816f184c10c3f87f103336fed4516f7af6.
Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/536350f5
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/536350f5
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/536350f5
Branch: refs/heads/master
Commit: 536350f5c5960e6c639305acde79e3fc81a91dd4
Parents: 020e358
Author: Christian Schulte <sc...@apache.org>
Authored: Fri Dec 18 00:12:22 2015 +0100
Committer: Christian Schulte <sc...@apache.org>
Committed: Fri Dec 18 00:12:22 2015 +0100
----------------------------------------------------------------------
.../project/DefaultMavenProjectHelper.java | 7 +++
.../org/apache/maven/project/MavenProject.java | 66 +++-----------------
.../maven/project/MavenProjectHelper.java | 12 +---
3 files changed, 20 insertions(+), 65 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/maven/blob/536350f5/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectHelper.java
----------------------------------------------------------------------
diff --git a/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectHelper.java b/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectHelper.java
index 223e920..2cce9f6 100644
--- a/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectHelper.java
+++ b/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectHelper.java
@@ -91,6 +91,13 @@ public class DefaultMavenProjectHelper
attachArtifact( project, artifact );
}
+ /**
+ * Add an attached artifact or replace the file for an existing artifact.
+ *
+ * @see MavenProject#addAttachedArtifact(org.apache.maven.artifact.Artifact)
+ * @param project project reference.
+ * @param artifact artifact to add or replace.
+ */
public void attachArtifact( MavenProject project, Artifact artifact )
{
project.addAttachedArtifact( artifact );
http://git-wip-us.apache.org/repos/asf/maven/blob/536350f5/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
----------------------------------------------------------------------
diff --git a/maven-core/src/main/java/org/apache/maven/project/MavenProject.java b/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
index 5710250..9c936e1 100644
--- a/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
+++ b/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
@@ -260,7 +260,7 @@ public class MavenProject
/**
* Sets project {@code file} without changing project {@code basedir}.
- *
+ *
* @since 3.2.4
*/
public void setPomFile( File file )
@@ -909,65 +909,19 @@ public class MavenProject
}
/**
- * Adds an artifact to the list of attached artifacts.
- *
- * @param artifact The artifact to add.
- *
- * @throws DuplicateArtifactAttachmentException if the same artifact already is attached to this project.
+ * Add or replace an artifact. This method is now deprecated. Use the @{MavenProjectHelper} to attach artifacts to a
+ * project. In spite of the 'throws' declaration on this API, this method has never thrown an exception since Maven
+ * 3.0.x. Historically, it logged and ignored a second addition of the same g/a/v/c/t. Now it replaces the file for
+ * the artifact, so that plugins (e.g. shade) can change the pathname of the file for a particular set of
+ * coordinates.
*
- * @see #isArtifactAttached(org.apache.maven.artifact.Artifact)
- * @see #getAttachedArtifacts()
- *
- * @deprecated Please use {@link MavenProjectHelper} to attach artifacts to a project.
+ * @param artifact the artifact to add or replace.
+ * @throws DuplicateArtifactAttachmentException
*/
- @Deprecated
public void addAttachedArtifact( Artifact artifact )
throws DuplicateArtifactAttachmentException
{
- if ( artifact == null )
- {
- throw new NullPointerException( "artifact" );
- }
-
-// MNG-5868: The following is the former Javadoc comment of this method. I added method 'isArtifactAttached' to provide
-// a way for people to test for a possible 'DuplicateArtifactAttachmentException' and updated this method to
-// throw that exception. Regarding the former comment: "Now it replaces the file for the artifact, so that
-// plugins (e.g. shade) can change the pathname of the file for a particular set of coordinates." is not what
-// this method did before the update. It just added duplicate artifacts to the list of attached artifacts.
-
-// Former Javadoc comment:
-// -----------------------
-// Add or replace an artifact. This method is now deprecated. Use the @{MavenProjectHelper} to attach artifacts to a
-// project. In spite of the 'throws' declaration on this API, this method has never thrown an exception since Maven
-// 3.0.x. Historically, it logged and ignored a second addition of the same g/a/v/c/t. Now it replaces the file for
-// the artifact, so that plugins (e.g. shade) can change the pathname of the file for a particular set of
-// coordinates.
-
- if ( this.isArtifactAttached( artifact ) )
- {
- throw new DuplicateArtifactAttachmentException( this, artifact );
- }
-
- this.attachedArtifacts.add( artifact );
- }
-
- /**
- * Tests a given artifact to be contained in the list of attached artifacts.
- *
- * @param artifact The artifact to test.
- *
- * @return {@code true}, if the list of attached artifacts contains {@code artifact}; {@code false}, else.
- *
- * @since 3.4
- */
- public boolean isArtifactAttached( final Artifact artifact )
- {
- if ( artifact == null )
- {
- throw new NullPointerException( "artifact" );
- }
-
- return this.getAttachedArtifacts().contains( artifact );
+ getAttachedArtifacts().add( artifact );
}
public List<Artifact> getAttachedArtifacts()
@@ -976,7 +930,7 @@ public class MavenProject
{
attachedArtifacts = new ArrayList<>();
}
- return Collections.unmodifiableList( attachedArtifacts );
+ return attachedArtifacts;
}
public Xpp3Dom getGoalConfiguration( String pluginGroupId, String pluginArtifactId, String executionId,
http://git-wip-us.apache.org/repos/asf/maven/blob/536350f5/maven-core/src/main/java/org/apache/maven/project/MavenProjectHelper.java
----------------------------------------------------------------------
diff --git a/maven-core/src/main/java/org/apache/maven/project/MavenProjectHelper.java b/maven-core/src/main/java/org/apache/maven/project/MavenProjectHelper.java
index 73b3f8f..0b54c00 100644
--- a/maven-core/src/main/java/org/apache/maven/project/MavenProjectHelper.java
+++ b/maven-core/src/main/java/org/apache/maven/project/MavenProjectHelper.java
@@ -34,20 +34,16 @@ public interface MavenProjectHelper
* @param project project reference.
* @param artifactFile artifact file.
* @param artifactClassifier artifact classifier.
- * @throws DuplicateArtifactAttachmentException if the same artifact already is attached to this project.
*/
- void attachArtifact( MavenProject project, File artifactFile, String artifactClassifier )
- throws DuplicateArtifactAttachmentException;
+ void attachArtifact( MavenProject project, File artifactFile, String artifactClassifier );
/**
* * See {@link #attachArtifact(MavenProject, String, String, java.io.File)}, but with classifier set to null.
* @param project project reference.
* @param artifactType artifact type.
* @param artifactFile arrifact file.
- * @throws DuplicateArtifactAttachmentException if the same artifact already is attached to this project.
*/
- void attachArtifact( MavenProject project, String artifactType, File artifactFile )
- throws DuplicateArtifactAttachmentException;
+ void attachArtifact( MavenProject project, String artifactType, File artifactFile );
/**
* Add or replace an artifact to the current project.
@@ -55,10 +51,8 @@ public interface MavenProjectHelper
* @param artifactType the type (e.g. jar) or null.
* @param artifactClassifier the classifier or null.
* @param artifactFile the file for the artifact.
- * @throws DuplicateArtifactAttachmentException if the same artifact already is attached to this project.
*/
- void attachArtifact( MavenProject project, String artifactType, String artifactClassifier, File artifactFile )
- throws DuplicateArtifactAttachmentException;
+ void attachArtifact( MavenProject project, String artifactType, String artifactClassifier, File artifactFile );
/**
* Add a resource directory to the project.
[2/2] maven git commit: [MNG-5868] Adding serval times the same
artifact via MavenProjectHelper (attachArtifact) does not produce a failure
Posted by sc...@apache.org.
[MNG-5868] Adding serval times the same artifact via MavenProjectHelper (attachArtifact) does not produce a failure
o Updated to restore the behaviour consensus had been
reached in MNG-5387.
o Kept 'MavenProject.getAttachedArtifacts' to return an
unmodifiable list.
Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/5f048234
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/5f048234
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/5f048234
Branch: refs/heads/master
Commit: 5f048234ff44dbf70fcad9f17834c64866f452e1
Parents: 536350f
Author: Christian Schulte <sc...@apache.org>
Authored: Fri Dec 18 00:27:26 2015 +0100
Committer: Christian Schulte <sc...@apache.org>
Committed: Fri Dec 18 00:30:02 2015 +0100
----------------------------------------------------------------------
.../project/DefaultMavenProjectHelper.java | 7 ----
.../org/apache/maven/project/MavenProject.java | 39 +++++++++++++++-----
2 files changed, 29 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/maven/blob/5f048234/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectHelper.java
----------------------------------------------------------------------
diff --git a/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectHelper.java b/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectHelper.java
index 2cce9f6..223e920 100644
--- a/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectHelper.java
+++ b/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectHelper.java
@@ -91,13 +91,6 @@ public class DefaultMavenProjectHelper
attachArtifact( project, artifact );
}
- /**
- * Add an attached artifact or replace the file for an existing artifact.
- *
- * @see MavenProject#addAttachedArtifact(org.apache.maven.artifact.Artifact)
- * @param project project reference.
- * @param artifact artifact to add or replace.
- */
public void attachArtifact( MavenProject project, Artifact artifact )
{
project.addAttachedArtifact( artifact );
http://git-wip-us.apache.org/repos/asf/maven/blob/5f048234/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
----------------------------------------------------------------------
diff --git a/maven-core/src/main/java/org/apache/maven/project/MavenProject.java b/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
index 9c936e1..8337834 100644
--- a/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
+++ b/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
@@ -909,19 +909,38 @@ public class MavenProject
}
/**
- * Add or replace an artifact. This method is now deprecated. Use the @{MavenProjectHelper} to attach artifacts to a
- * project. In spite of the 'throws' declaration on this API, this method has never thrown an exception since Maven
- * 3.0.x. Historically, it logged and ignored a second addition of the same g/a/v/c/t. Now it replaces the file for
- * the artifact, so that plugins (e.g. shade) can change the pathname of the file for a particular set of
- * coordinates.
+ * Adds or replaces an artifact.
*
- * @param artifact the artifact to add or replace.
- * @throws DuplicateArtifactAttachmentException
+ * @param artifact The artifact to add or replace.
+ *
+ * @deprecated Please use {@link MavenProjectHelper}
+ * @see https://issues.apache.org/jira/browse/MNG-5868
+ * @see https://issues.apache.org/jira/browse/MNG-5387
+ * @see https://issues.apache.org/jira/browse/MNG-4013
+ * @see https://issues.apache.org/jira/browse/MNG-3119
*/
+ @Deprecated
public void addAttachedArtifact( Artifact artifact )
- throws DuplicateArtifactAttachmentException
{
- getAttachedArtifacts().add( artifact );
+ getAttachedArtifacts();
+ assert this.attachedArtifacts != null : "Unexpected missing attached artifacts.";
+
+ boolean replaced = false;
+ for ( int i = 0, s0 = this.attachedArtifacts.size(); i < s0; i++ )
+ {
+ final Artifact a = this.attachedArtifacts.get( i );
+
+ if ( a.equals( artifact ) )
+ {
+ this.attachedArtifacts.set( i, artifact );
+ replaced = true;
+ }
+ }
+
+ if ( !replaced )
+ {
+ this.attachedArtifacts.add( artifact );
+ }
}
public List<Artifact> getAttachedArtifacts()
@@ -930,7 +949,7 @@ public class MavenProject
{
attachedArtifacts = new ArrayList<>();
}
- return attachedArtifacts;
+ return Collections.unmodifiableList( attachedArtifacts );
}
public Xpp3Dom getGoalConfiguration( String pluginGroupId, String pluginArtifactId, String executionId,