Skip to content

Commit 9b9f1c6

Browse files
author
Vincent Potucek
committed
[prone] Add UnusedVariable
1 parent 58dea98 commit 9b9f1c6

File tree

9 files changed

+200
-210
lines changed

9 files changed

+200
-210
lines changed

api/maven-api-xml/src/main/java/org/apache/maven/api/xml/XmlNode.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -533,16 +533,16 @@ private String toStringObject() {
533533
}
534534

535535
private static <T> boolean addToStringField(
536-
StringBuilder sb, T o, Function<T, Boolean> p, String n, boolean w) {
536+
StringBuilder sb, T o, Function<T, Boolean> p, String n, boolean append) {
537537
if (!p.apply(o)) {
538-
if (w) {
538+
if (append) {
539539
sb.append(", ");
540540
} else {
541-
w = true;
541+
append = true;
542542
}
543543
sb.append(n).append("='").append(o).append('\'');
544544
}
545-
return w;
545+
return append;
546546
}
547547
}
548548
}

compat/maven-model/src/test/java/org/apache/maven/model/v4/ModelXmlTest.java

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -56,19 +56,20 @@ void testXmlRoundtripWithProperties() throws Exception {
5656

5757
@Test
5858
void testNamespaceInXmlNode() throws XMLStreamException {
59-
String xml = "<project xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
60-
+ " xmlns=\"http://maven.apache.org/POM/4.0.0\"\n"
61-
+ " xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/POM/4.0.0\">\n"
62-
+ " <build>\n"
63-
+ " <plugins>\n"
64-
+ " <plugin>\n"
65-
+ " <m:configuration xmlns:m=\"http://maven.apache.org/POM/4.0.0\" xmlns=\"http://fabric8.io/fabric8-maven-plugin\">\n"
66-
+ " <myConfig>foo</myConfig>\n"
67-
+ " </m:configuration>\n"
68-
+ " </plugin>\n"
69-
+ " </plugins>\n"
70-
+ " </build>\n"
71-
+ "</project>";
59+
String xml = """
60+
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
61+
xmlns="http://maven.apache.org/POM/4.0.0"
62+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/POM/4.0.0">
63+
<build>
64+
<plugins>
65+
<plugin>
66+
<m:configuration xmlns:m="http://maven.apache.org/POM/4.0.0" xmlns="http://fabric8.io/fabric8-maven-plugin">
67+
<myConfig>foo</myConfig>
68+
</m:configuration>
69+
</plugin>
70+
</plugins>
71+
</build>
72+
</project>""";
7273

7374
Model model = fromXml(xml);
7475
Plugin plugin = model.getBuild().getPlugins().get(0);

impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultSettingsBuilder.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ private Settings readSettings(
200200
return Settings.newInstance();
201201
}
202202

203-
settings = interpolate(settings, request, problems);
203+
settings = interpolate(settings, request);
204204
settings = decrypt(settingsSource, settings, request, problems);
205205

206206
settingsValidator.validate(settings, isProjectSettings, problems);
@@ -228,8 +228,7 @@ private Settings readSettings(
228228
return settings;
229229
}
230230

231-
private Settings interpolate(
232-
Settings settings, SettingsBuilderRequest request, ProblemCollector<BuilderProblem> problems) {
231+
private Settings interpolate(Settings settings, SettingsBuilderRequest request) {
233232
UnaryOperator<String> src;
234233
if (request.getInterpolationSource().isPresent()) {
235234
src = request.getInterpolationSource().get();

impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultToolchainsBuilder.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -140,15 +140,12 @@ private PersistedToolchains readToolchains(
140140
return PersistedToolchains.newInstance();
141141
}
142142

143-
toolchains = interpolate(toolchains, request, problems);
143+
toolchains = interpolate(toolchains, request);
144144

145145
return toolchains;
146146
}
147147

148-
private PersistedToolchains interpolate(
149-
PersistedToolchains toolchains,
150-
ToolchainsBuilderRequest request,
151-
ProblemCollector<BuilderProblem> problems) {
148+
private PersistedToolchains interpolate(PersistedToolchains toolchains, ToolchainsBuilderRequest request) {
152149
Map<String, String> userProperties = request.getSession().getUserProperties();
153150
Map<String, String> systemProperties = request.getSession().getSystemProperties();
154151
UnaryOperator<String> src = Interpolator.chain(userProperties::get, systemProperties::get);

impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultModelBuilder.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,6 @@ public class DefaultModelBuilder implements ModelBuilder {
138138
private static final String FILE = "file";
139139
private static final String IMPORT = "import";
140140
private static final String PARENT = "parent";
141-
private static final String MODEL = "model";
142141

143142
private final Logger logger = LoggerFactory.getLogger(getClass());
144143

impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultModelObjectPool.java

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,10 @@
1818
*/
1919
package org.apache.maven.impl.model;
2020

21-
import java.util.Arrays;
2221
import java.util.Map;
2322
import java.util.Objects;
24-
import java.util.Set;
2523
import java.util.concurrent.ConcurrentHashMap;
2624
import java.util.concurrent.atomic.AtomicLong;
27-
import java.util.stream.Collectors;
2825

2926
import org.apache.maven.api.Constants;
3027
import org.apache.maven.api.model.Dependency;
@@ -33,6 +30,9 @@
3330
import org.slf4j.Logger;
3431
import org.slf4j.LoggerFactory;
3532

33+
import static java.util.Arrays.stream;
34+
import static org.apache.maven.api.Constants.MAVEN_MODEL_PROCESSOR_POOLED_TYPES;
35+
3636
/**
3737
* Default implementation of ModelObjectProcessor that provides memory optimization
3838
* through object pooling and interning.
@@ -77,10 +77,12 @@ public <T> T process(T object) {
7777
}
7878

7979
Class<?> objectType = object.getClass();
80-
String simpleClassName = objectType.getSimpleName();
8180

8281
// Check if this object type should be pooled (read configuration dynamically)
83-
if (!getPooledTypes(properties).contains(simpleClassName)) {
82+
if (stream(getProperty(MAVEN_MODEL_PROCESSOR_POOLED_TYPES, "Dependency").split(","))
83+
.map(String::trim)
84+
.filter(s -> !s.isEmpty())
85+
.anyMatch(objectType.getSimpleName()::equals)) {
8486
return object;
8587
}
8688

@@ -95,17 +97,6 @@ private String getProperty(String name, String defaultValue) {
9597
return value instanceof String str ? str : defaultValue;
9698
}
9799

98-
/**
99-
* Gets the set of object types that should be pooled.
100-
*/
101-
private Set<String> getPooledTypes(Map<?, ?> properties) {
102-
String pooledTypesProperty = getProperty(Constants.MAVEN_MODEL_PROCESSOR_POOLED_TYPES, "Dependency");
103-
return Arrays.stream(pooledTypesProperty.split(","))
104-
.map(String::trim)
105-
.filter(s -> !s.isEmpty())
106-
.collect(Collectors.toSet());
107-
}
108-
109100
/**
110101
* Creates a cache for the specified object type with the appropriate reference type.
111102
*/

impl/maven-support/src/test/java/org/apache/maven/model/v4/MavenStaxReaderTest.java

Lines changed: 49 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,10 @@ class MavenStaxReaderTest {
3434

3535
@Test
3636
void testNamespaceReporting() throws Exception {
37-
String xml = "<project xmlns=\"http://maven.apache.org/POM/4.0.0\">\n"
38-
+ " <modelVersion>4.0.0</modelVersion>\n"
39-
+ "</project>";
37+
String xml = """
38+
<project xmlns="http://maven.apache.org/POM/4.0.0">
39+
<modelVersion>4.0.0</modelVersion>
40+
</project>""";
4041

4142
Model model = fromXml(xml);
4243
assertEquals("http://maven.apache.org/POM/4.0.0", model.getNamespaceUri());
@@ -52,31 +53,33 @@ void testEmptyNamespaceReporting() throws Exception {
5253

5354
@Test
5455
void testNamespaceConsistency() throws XMLStreamException {
55-
String xml = "<project xmlns=\"http://maven.apache.org/POM/4.0.0\">\n"
56-
+ " <build xmlns=\"http://maven.apache.org/POM/4.0.0\">\n"
57-
+ " <plugins>\n"
58-
+ " <plugin>\n"
59-
+ " <artifactId>maven-test-plugin</artifactId>\n"
60-
+ " </plugin>\n"
61-
+ " </plugins>\n"
62-
+ " </build>\n"
63-
+ "</project>";
56+
String xml = """
57+
<project xmlns="http://maven.apache.org/POM/4.0.0">
58+
<build xmlns="http://maven.apache.org/POM/4.0.0">
59+
<plugins>
60+
<plugin>
61+
<artifactId>maven-test-plugin</artifactId>
62+
</plugin>
63+
</plugins>
64+
</build>
65+
</project>""";
6466

6567
Model model = fromXml(xml);
6668
assertEquals("http://maven.apache.org/POM/4.0.0", model.getNamespaceUri());
6769
}
6870

6971
@Test
7072
void testNamespaceInconsistencyThrows() {
71-
String xml = "<project xmlns=\"http://maven.apache.org/POM/4.0.0\">\n"
72-
+ " <build xmlns=\"http://maven.apache.org/POM/4.1.0\">\n"
73-
+ " <plugins>\n"
74-
+ " <plugin>\n"
75-
+ " <artifactId>maven-test-plugin</artifactId>\n"
76-
+ " </plugin>\n"
77-
+ " </plugins>\n"
78-
+ " </build>\n"
79-
+ "</project>";
73+
String xml = """
74+
<project xmlns="http://maven.apache.org/POM/4.0.0">
75+
<build xmlns="http://maven.apache.org/POM/4.1.0">
76+
<plugins>
77+
<plugin>
78+
<artifactId>maven-test-plugin</artifactId>
79+
</plugin>
80+
</plugins>
81+
</build>
82+
</project>""";
8083

8184
XMLStreamException ex = assertThrows(XMLStreamException.class, () -> fromXml(xml));
8285
assertTrue(ex.getMessage().contains("Unexpected namespace for element 'build'"));
@@ -102,15 +105,16 @@ void testEmptyNamespaceConsistency() throws XMLStreamException {
102105

103106
@Test
104107
void testEmptyNamespaceInconsistencyThrows() {
105-
String xml = "<project>\n"
106-
+ " <build xmlns=\"http://maven.apache.org/POM/4.0.0\">\n"
107-
+ " <plugins>\n"
108-
+ " <plugin>\n"
109-
+ " <artifactId>maven-test-plugin</artifactId>\n"
110-
+ " </plugin>\n"
111-
+ " </plugins>\n"
112-
+ " </build>\n"
113-
+ "</project>";
108+
String xml = """
109+
<project>
110+
<build xmlns="http://maven.apache.org/POM/4.0.0">
111+
<plugins>
112+
<plugin>
113+
<artifactId>maven-test-plugin</artifactId>
114+
</plugin>
115+
</plugins>
116+
</build>
117+
</project>""";
114118

115119
XMLStreamException ex = assertThrows(XMLStreamException.class, () -> fromXml(xml));
116120
assertTrue(ex.getMessage().contains("Unexpected namespace for element 'build'"));
@@ -120,20 +124,21 @@ void testEmptyNamespaceInconsistencyThrows() {
120124

121125
@Test
122126
void testPluginConfigurationAllowsOtherNamespaces() throws XMLStreamException {
123-
String xml = "<project xmlns=\"http://maven.apache.org/POM/4.0.0\">\n"
124-
+ " <build>\n"
125-
+ " <plugins>\n"
126-
+ " <plugin>\n"
127-
+ " <artifactId>maven-test-plugin</artifactId>\n"
128-
+ " <configuration>\n"
129-
+ " <customConfig xmlns:custom=\"http://custom.namespace.org\">\n"
130-
+ " <custom:element>value</custom:element>\n"
131-
+ " </customConfig>\n"
132-
+ " </configuration>\n"
133-
+ " </plugin>\n"
134-
+ " </plugins>\n"
135-
+ " </build>\n"
136-
+ "</project>";
127+
String xml = """
128+
<project xmlns="http://maven.apache.org/POM/4.0.0">
129+
<build>
130+
<plugins>
131+
<plugin>
132+
<artifactId>maven-test-plugin</artifactId>
133+
<configuration>
134+
<customConfig xmlns:custom="http://custom.namespace.org">
135+
<custom:element>value</custom:element>
136+
</customConfig>
137+
</configuration>
138+
</plugin>
139+
</plugins>
140+
</build>
141+
</project>""";
137142

138143
Model model = fromXml(xml);
139144
assertNotNull(model);

impl/maven-xml/src/main/java/org/apache/maven/internal/xml/XmlNodeImpl.java

Lines changed: 23 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,7 @@
2121
import java.io.IOException;
2222
import java.io.Serializable;
2323
import java.io.StringWriter;
24-
import java.util.List;
25-
import java.util.ListIterator;
26-
import java.util.Map;
27-
import java.util.Objects;
28-
import java.util.function.Function;
24+
import java.util.*;
2925

3026
import org.apache.maven.api.annotations.Nonnull;
3127
import org.apache.maven.api.xml.XmlNode;
@@ -301,29 +297,28 @@ public String toString() {
301297
}
302298

303299
public String toStringObject() {
304-
StringBuilder sb = new StringBuilder();
305-
sb.append("XmlNode[");
306-
boolean w = false;
307-
w = addToStringField(sb, prefix, o -> !o.isEmpty(), "prefix", w);
308-
w = addToStringField(sb, namespaceUri, o -> !o.isEmpty(), "namespaceUri", w);
309-
w = addToStringField(sb, name, o -> !o.isEmpty(), "name", w);
310-
w = addToStringField(sb, value, o -> !o.isEmpty(), "value", w);
311-
w = addToStringField(sb, attributes, o -> !o.isEmpty(), "attributes", w);
312-
w = addToStringField(sb, children, o -> !o.isEmpty(), "children", w);
313-
w = addToStringField(sb, location, Objects::nonNull, "location", w);
314-
sb.append("]");
315-
return sb.toString();
316-
}
317-
318-
private static <T> boolean addToStringField(StringBuilder sb, T o, Function<T, Boolean> p, String n, boolean w) {
319-
if (!p.apply(o)) {
320-
if (w) {
321-
sb.append(", ");
322-
} else {
323-
w = true;
324-
}
325-
sb.append(n).append("='").append(o).append('\'');
300+
StringJoiner joiner = new StringJoiner(", ", "XmlNode[", "]");
301+
if (prefix != null && !prefix.isEmpty()) {
302+
joiner.add("prefix='" + prefix + "'");
303+
}
304+
if (namespaceUri != null && !namespaceUri.isEmpty()) {
305+
joiner.add("namespaceUri='" + namespaceUri + "'");
306+
}
307+
if (name != null && !name.isEmpty()) {
308+
joiner.add("name='" + name + "'");
309+
}
310+
if (value != null && !value.isEmpty()) {
311+
joiner.add("value='" + value + "'");
312+
}
313+
if (attributes != null && !attributes.isEmpty()) {
314+
joiner.add("attributes='" + attributes + "'");
315+
}
316+
if (children != null && !children.isEmpty()) {
317+
joiner.add("children='" + children + "'");
318+
}
319+
if (location != null) {
320+
joiner.add("location='" + location + "'");
326321
}
327-
return w;
322+
return joiner.toString();
328323
}
329324
}

0 commit comments

Comments
 (0)