Skip to content

Commit ba65608

Browse files
Use MavenProjectHelper for adding resources
In Maven 4 many objects are immutable, modification of an existing list can have no effects
1 parent 08fb478 commit ba65608

14 files changed

+73
-78
lines changed

src/license/THIRD-PARTY.properties

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,31 @@
11
# Generated by org.codehaus.mojo.license.AddThirdPartyMojo
22
#-------------------------------------------------------------------------------
33
# Already used licenses in project :
4+
# - Apache 2
5+
# - Apache 2.0
6+
# - Apache License 2.0
47
# - Apache License, Version 2.0
58
# - Apache Public License 2.0
69
# - Apache-2.0
7-
# - BSD 4-Clause DOM4J
10+
# - BSD
11+
# - BSD 2-Clause License
12+
# - BSD License
813
# - COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
9-
# - Eclipse Public License 1.0
14+
# - Eclipse Public License v2.0
1015
# - Eclipse Public License, Version 1.0
16+
# - GNU General Public License, version 2 (GPL2), with the classpath exception
1117
# - Lesser General Public License (LGPL) v 3.0
1218
# - MIT License
13-
# - New BSD License
19+
# - MIT license
1420
# - Public Domain
21+
# - The Apache License, Version 2.0
1522
# - The Apache Software License, Version 2.0
23+
# - The MIT License
24+
# - The SAX License
25+
# - The W3C License
1626
#-------------------------------------------------------------------------------
1727
# Please fill the missing licenses for dependencies :
1828
#
1929
#
20-
#Tue Jun 06 18:01:37 CEST 2023
21-
commons-beanutils--commons-beanutils--1.7.0=The Apache Software License, Version 2.0
22-
dom4j--dom4j--1.1=BSD 4-Clause DOM4J
30+
#Fri Nov 29 08:49:34 CET 2024
2331
org.codehaus.plexus--plexus-i18n--1.0-beta-10=The Apache Software License, Version 2.0
24-
oro--oro--2.0.8=The Apache Software License, Version 2.0

src/main/java/org/codehaus/mojo/license/AbstractAddThirdPartyMojo.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import org.apache.maven.plugin.MojoFailureException;
4242
import org.apache.maven.plugins.annotations.Parameter;
4343
import org.apache.maven.project.MavenProject;
44+
import org.apache.maven.project.MavenProjectHelper;
4445
import org.apache.maven.project.ProjectBuildingException;
4546
import org.codehaus.mojo.license.api.DefaultThirdPartyHelper;
4647
import org.codehaus.mojo.license.api.DependenciesTool;
@@ -666,7 +667,9 @@ public abstract class AbstractAddThirdPartyMojo extends AbstractLicenseMojo {
666667
@Parameter(property = "license.artifactFiltersUrl")
667668
protected String artifactFiltersUrl;
668669

669-
protected AbstractAddThirdPartyMojo(ThirdPartyTool thirdPartyTool, DependenciesTool dependenciesTool) {
670+
protected AbstractAddThirdPartyMojo(
671+
ThirdPartyTool thirdPartyTool, DependenciesTool dependenciesTool, MavenProjectHelper projectHelper) {
672+
super(projectHelper);
670673
this.thirdPartyTool = thirdPartyTool;
671674
this.dependenciesTool = dependenciesTool;
672675
}

src/main/java/org/codehaus/mojo/license/AbstractFileHeaderMojo.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import org.apache.commons.lang3.StringUtils;
4242
import org.apache.maven.plugin.MojoFailureException;
4343
import org.apache.maven.plugins.annotations.Parameter;
44+
import org.apache.maven.project.MavenProjectHelper;
4445
import org.codehaus.mojo.license.api.FreeMarkerHelper;
4546
import org.codehaus.mojo.license.header.FileHeader;
4647
import org.codehaus.mojo.license.header.FileHeaderProcessor;
@@ -374,7 +375,9 @@ public abstract class AbstractFileHeaderMojo extends AbstractLicenseNameMojo {
374375
*/
375376
private FreeMarkerHelper freeMarkerHelper = FreeMarkerHelper.newDefaultHelper();
376377

377-
protected AbstractFileHeaderMojo(Map<String, FileHeaderTransformer> transformers) {
378+
protected AbstractFileHeaderMojo(
379+
Map<String, FileHeaderTransformer> transformers, MavenProjectHelper projectHelper) {
380+
super(projectHelper);
378381
this.transformers = transformers;
379382
}
380383

src/main/java/org/codehaus/mojo/license/AbstractLicenseMojo.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,16 @@
2424

2525
import java.io.File;
2626
import java.nio.charset.Charset;
27+
import java.util.Arrays;
28+
import java.util.Objects;
2729

2830
import org.apache.commons.lang3.StringUtils;
2931
import org.apache.maven.plugin.AbstractMojo;
3032
import org.apache.maven.plugin.MojoExecutionException;
3133
import org.apache.maven.plugin.MojoFailureException;
3234
import org.apache.maven.plugins.annotations.Parameter;
3335
import org.apache.maven.project.MavenProject;
34-
import org.codehaus.mojo.license.utils.MojoHelper;
36+
import org.apache.maven.project.MavenProjectHelper;
3537
import org.slf4j.Logger;
3638
import org.slf4j.LoggerFactory;
3739

@@ -78,6 +80,12 @@ public abstract class AbstractLicenseMojo extends AbstractMojo {
7880
@Parameter(defaultValue = "${project}", readonly = true)
7981
MavenProject project;
8082

83+
protected final MavenProjectHelper projectHelper;
84+
85+
protected AbstractLicenseMojo(MavenProjectHelper projectHelper) {
86+
this.projectHelper = Objects.requireNonNull(projectHelper, "projectHelper cannot be null");
87+
}
88+
8189
// ----------------------------------------------------------------------
8290
// Abstract methods
8391
// ----------------------------------------------------------------------
@@ -332,9 +340,9 @@ protected void checkEncoding() {
332340
* @param includes files to include
333341
*/
334342
protected void addResourceDir(File dir, String... includes) {
335-
boolean added = MojoHelper.addResourceDir(dir, getProject(), includes);
336-
if (added && isVerbose()) {
337-
LOG.info("add resource {} with includes {}", dir, (Object) includes);
343+
projectHelper.addResource(getProject(), dir.getAbsolutePath(), Arrays.asList(includes), null);
344+
if (isVerbose()) {
345+
LOG.info("add resource {} with includes {}", dir, includes);
338346
}
339347
}
340348

src/main/java/org/codehaus/mojo/license/AbstractLicenseNameMojo.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535

3636
import org.apache.commons.lang3.StringUtils;
3737
import org.apache.maven.plugins.annotations.Parameter;
38+
import org.apache.maven.project.MavenProjectHelper;
3839
import org.codehaus.mojo.license.api.FreeMarkerHelper;
3940
import org.codehaus.mojo.license.header.transformer.FileHeaderTransformer;
4041
import org.codehaus.mojo.license.model.Copyright;
@@ -201,6 +202,10 @@ public abstract class AbstractLicenseNameMojo extends AbstractLicenseMojo {
201202
*/
202203
private LicenseStore licenseStore;
203204

205+
public AbstractLicenseNameMojo(MavenProjectHelper projectHelper) {
206+
super(projectHelper);
207+
}
208+
204209
// ----------------------------------------------------------------------
205210
// AbstractLicenseMojo Implementaton
206211
// ----------------------------------------------------------------------

src/main/java/org/codehaus/mojo/license/AddThirdPartyMojo.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
import org.apache.maven.plugins.annotations.Parameter;
4444
import org.apache.maven.plugins.annotations.ResolutionScope;
4545
import org.apache.maven.project.MavenProject;
46+
import org.apache.maven.project.MavenProjectHelper;
4647
import org.apache.maven.project.ProjectBuildingException;
4748
import org.codehaus.mojo.license.api.ArtifactFilters;
4849
import org.codehaus.mojo.license.api.DependenciesTool;
@@ -126,8 +127,9 @@ public class AddThirdPartyMojo extends AbstractAddThirdPartyMojo implements Mave
126127
private ArtifactFilters artifactFilters;
127128

128129
@Inject
129-
public AddThirdPartyMojo(ThirdPartyTool thirdPartyTool, DependenciesTool dependenciesTool) {
130-
super(thirdPartyTool, dependenciesTool);
130+
public AddThirdPartyMojo(
131+
ThirdPartyTool thirdPartyTool, DependenciesTool dependenciesTool, MavenProjectHelper projectHelper) {
132+
super(thirdPartyTool, dependenciesTool, projectHelper);
131133
}
132134

133135
// ----------------------------------------------------------------------

src/main/java/org/codehaus/mojo/license/AggregatorAddThirdPartyMojo.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import org.apache.maven.plugins.annotations.Parameter;
4242
import org.apache.maven.plugins.annotations.ResolutionScope;
4343
import org.apache.maven.project.MavenProject;
44+
import org.apache.maven.project.MavenProjectHelper;
4445
import org.apache.maven.project.ProjectBuildingException;
4546
import org.codehaus.mojo.license.api.DependenciesTool;
4647
import org.codehaus.mojo.license.api.ThirdPartyTool;
@@ -112,8 +113,9 @@ public class AggregatorAddThirdPartyMojo extends AbstractAddThirdPartyMojo {
112113
private File aggregateMissingLicensesFile;
113114

114115
@Inject
115-
public AggregatorAddThirdPartyMojo(ThirdPartyTool thirdPartyTool, DependenciesTool dependenciesTool) {
116-
super(thirdPartyTool, dependenciesTool);
116+
public AggregatorAddThirdPartyMojo(
117+
ThirdPartyTool thirdPartyTool, DependenciesTool dependenciesTool, MavenProjectHelper projectHelper) {
118+
super(thirdPartyTool, dependenciesTool, projectHelper);
117119
}
118120

119121
// ----------------------------------------------------------------------
@@ -222,7 +224,7 @@ protected void doAction() throws Exception {
222224
continue;
223225
}
224226

225-
AddThirdPartyMojo mojo = new AddThirdPartyMojo(thirdPartyTool, dependenciesTool);
227+
AddThirdPartyMojo mojo = new AddThirdPartyMojo(thirdPartyTool, dependenciesTool, projectHelper);
226228
mojo.initFromMojo(this, reactorProject);
227229

228230
LicenseMap childLicenseMap = mojo.licenseMap;

src/main/java/org/codehaus/mojo/license/CheckFileHeaderMojo.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828

2929
import org.apache.maven.plugins.annotations.Mojo;
3030
import org.apache.maven.plugins.annotations.Parameter;
31+
import org.apache.maven.project.MavenProjectHelper;
3132
import org.codehaus.mojo.license.header.transformer.FileHeaderTransformer;
3233

3334
/**
@@ -68,8 +69,8 @@ public class CheckFileHeaderMojo extends AbstractFileHeaderMojo {
6869
private boolean skipCheckLicense;
6970

7071
@Inject
71-
public CheckFileHeaderMojo(Map<String, FileHeaderTransformer> transformers) {
72-
super(transformers);
72+
public CheckFileHeaderMojo(Map<String, FileHeaderTransformer> transformers, MavenProjectHelper projectHelper) {
73+
super(transformers, projectHelper);
7374
}
7475

7576
// ----------------------------------------------------------------------

src/main/java/org/codehaus/mojo/license/CommentStyleListMojo.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import org.apache.maven.plugin.MojoFailureException;
3535
import org.apache.maven.plugins.annotations.Mojo;
3636
import org.apache.maven.plugins.annotations.Parameter;
37+
import org.apache.maven.project.MavenProjectHelper;
3738
import org.codehaus.mojo.license.header.transformer.FileHeaderTransformer;
3839
import org.slf4j.Logger;
3940
import org.slf4j.LoggerFactory;
@@ -72,7 +73,8 @@ public class CommentStyleListMojo extends AbstractLicenseMojo {
7273
private final Map<String, FileHeaderTransformer> transformers;
7374

7475
@Inject
75-
public CommentStyleListMojo(Map<String, FileHeaderTransformer> transformers) {
76+
public CommentStyleListMojo(Map<String, FileHeaderTransformer> transformers, MavenProjectHelper projectHelper) {
77+
super(projectHelper);
7678
this.transformers = transformers;
7779
}
7880

src/main/java/org/codehaus/mojo/license/LicenseListMojo.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import org.apache.maven.plugin.MojoFailureException;
3232
import org.apache.maven.plugins.annotations.Mojo;
3333
import org.apache.maven.plugins.annotations.Parameter;
34+
import org.apache.maven.project.MavenProjectHelper;
3435
import org.codehaus.mojo.license.model.License;
3536
import org.codehaus.mojo.license.model.LicenseStore;
3637
import org.slf4j.Logger;
@@ -78,6 +79,10 @@ public class LicenseListMojo extends AbstractLicenseMojo {
7879
*/
7980
private LicenseStore licenseStore;
8081

82+
public LicenseListMojo(MavenProjectHelper projectHelper) {
83+
super(projectHelper);
84+
}
85+
8186
// ----------------------------------------------------------------------
8287
// AbstractLicenseMojo Implementaton
8388
// ----------------------------------------------------------------------

src/main/java/org/codehaus/mojo/license/RemoveFileHeaderMojo.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import org.apache.commons.lang3.StringUtils;
4141
import org.apache.maven.plugins.annotations.Mojo;
4242
import org.apache.maven.plugins.annotations.Parameter;
43+
import org.apache.maven.project.MavenProjectHelper;
4344
import org.codehaus.mojo.license.header.transformer.FileHeaderTransformer;
4445
import org.codehaus.mojo.license.model.License;
4546
import org.codehaus.mojo.license.utils.FileUtil;
@@ -221,7 +222,8 @@ public class RemoveFileHeaderMojo extends AbstractLicenseNameMojo {
221222
private Map<String, List<File>> filesToTreatByCommentStyle;
222223

223224
@Inject
224-
public RemoveFileHeaderMojo(Map<String, FileHeaderTransformer> transformers) {
225+
public RemoveFileHeaderMojo(Map<String, FileHeaderTransformer> transformers, MavenProjectHelper projectHelper) {
226+
super(projectHelper);
225227
this.transformers = transformers;
226228
}
227229

src/main/java/org/codehaus/mojo/license/UpdateFileHeaderMojo.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828

2929
import org.apache.maven.plugins.annotations.Mojo;
3030
import org.apache.maven.plugins.annotations.Parameter;
31+
import org.apache.maven.project.MavenProjectHelper;
3132
import org.codehaus.mojo.license.header.transformer.FileHeaderTransformer;
3233

3334
/**
@@ -88,8 +89,8 @@ public class UpdateFileHeaderMojo extends AbstractFileHeaderMojo {
8889
private boolean dryRun;
8990

9091
@Inject
91-
public UpdateFileHeaderMojo(Map<String, FileHeaderTransformer> transformers) {
92-
super(transformers);
92+
public UpdateFileHeaderMojo(Map<String, FileHeaderTransformer> transformers, MavenProjectHelper projectHelper) {
93+
super(transformers, projectHelper);
9394
}
9495

9596
// ----------------------------------------------------------------------

src/main/java/org/codehaus/mojo/license/UpdateProjectLicenseMojo.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,14 @@
2222
* #L%
2323
*/
2424

25+
import javax.inject.Inject;
26+
2527
import java.io.File;
2628

2729
import org.apache.maven.plugins.annotations.LifecyclePhase;
2830
import org.apache.maven.plugins.annotations.Mojo;
2931
import org.apache.maven.plugins.annotations.Parameter;
32+
import org.apache.maven.project.MavenProjectHelper;
3033
import org.codehaus.mojo.license.model.License;
3134
import org.codehaus.mojo.license.utils.FileUtil;
3235
import org.slf4j.Logger;
@@ -123,6 +126,11 @@ public class UpdateProjectLicenseMojo extends AbstractLicenseNameMojo {
123126
*/
124127
private boolean doGenerate;
125128

129+
@Inject
130+
public UpdateProjectLicenseMojo(MavenProjectHelper projectHelper) {
131+
super(projectHelper);
132+
}
133+
126134
// ----------------------------------------------------------------------
127135
// AbstractLicenceMojo Implementation
128136
// ----------------------------------------------------------------------

src/main/java/org/codehaus/mojo/license/utils/MojoHelper.java

Lines changed: 0 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
* #L%
2323
*/
2424

25-
import java.io.File;
2625
import java.net.MalformedURLException;
2726
import java.net.URI;
2827
import java.net.URL;
@@ -35,7 +34,6 @@
3534

3635
import org.apache.commons.collections.comparators.ComparatorChain;
3736
import org.apache.maven.artifact.Artifact;
38-
import org.apache.maven.model.Resource;
3937
import org.apache.maven.project.MavenProject;
4038
import org.slf4j.Logger;
4139
import org.slf4j.LoggerFactory;
@@ -49,58 +47,6 @@
4947
public class MojoHelper {
5048
private static final Logger LOG = LoggerFactory.getLogger(MojoHelper.class);
5149

52-
/**
53-
* Add the directory as a resource of the given project.
54-
*
55-
* @param dir the directory to add
56-
* @param project the project to update
57-
* @param includes the includes of the resource
58-
* @return {@code true} if the resources was added (not already existing)
59-
*/
60-
public static boolean addResourceDir(File dir, MavenProject project, String... includes) {
61-
List<?> resources = project.getResources();
62-
return addResourceDir(dir, project, resources, includes);
63-
}
64-
65-
/**
66-
* Add the directory as a resource in the given resource list.
67-
*
68-
* @param dir the directory to add
69-
* @param project the project involved
70-
* @param resources the list of existing resources
71-
* @param includes includes of the new resources
72-
* @return {@code true} if the resource was added (not already existing)
73-
*/
74-
public static boolean addResourceDir(File dir, MavenProject project, List<?> resources, String... includes) {
75-
String newresourceDir = dir.getAbsolutePath();
76-
boolean shouldAdd = true;
77-
for (Object o : resources) {
78-
Resource r = (Resource) o;
79-
if (!r.getDirectory().equals(newresourceDir)) {
80-
continue;
81-
}
82-
83-
for (String i : includes) {
84-
if (!r.getIncludes().contains(i)) {
85-
r.addInclude(i);
86-
}
87-
}
88-
shouldAdd = false;
89-
break;
90-
}
91-
if (shouldAdd) {
92-
Resource r = new Resource();
93-
r.setDirectory(newresourceDir);
94-
for (String i : includes) {
95-
if (!r.getIncludes().contains(i)) {
96-
r.addInclude(i);
97-
}
98-
}
99-
project.addResource(r);
100-
}
101-
return shouldAdd;
102-
}
103-
10450
public static Comparator<MavenProject> newMavenProjectComparator() {
10551
return new Comparator<MavenProject>() {
10652
/**

0 commit comments

Comments
 (0)