Remove usage of old StringTokenizer (#1306)

This commit is contained in:
Guillaume Nodet 2023-11-17 16:50:51 +01:00 committed by GitHub
parent d62113772e
commit 3cebbf7a15
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 30 additions and 34 deletions

View File

@ -18,8 +18,6 @@
*/
package org.apache.maven.artifact.versioning;
import java.util.StringTokenizer;
/**
* Default implementation of artifact versioning.
*
@ -123,29 +121,30 @@ public class DefaultArtifactVersion implements ArtifactVersion {
} else {
boolean fallback = false;
StringTokenizer tok = new StringTokenizer(part1, ".");
if (tok.hasMoreTokens()) {
majorVersion = getNextIntegerToken(tok);
String[] tok = part1.split("\\.");
int idx = 0;
if (idx < tok.length) {
majorVersion = getNextIntegerToken(tok[idx++]);
if (majorVersion == null) {
fallback = true;
}
} else {
fallback = true;
}
if (tok.hasMoreTokens()) {
minorVersion = getNextIntegerToken(tok);
if (idx < tok.length) {
minorVersion = getNextIntegerToken(tok[idx++]);
if (minorVersion == null) {
fallback = true;
}
}
if (tok.hasMoreTokens()) {
incrementalVersion = getNextIntegerToken(tok);
if (idx < tok.length) {
incrementalVersion = getNextIntegerToken(tok[idx++]);
if (incrementalVersion == null) {
fallback = true;
}
}
if (tok.hasMoreTokens()) {
qualifier = tok.nextToken();
if (idx < tok.length) {
qualifier = tok[idx++];
fallback = isDigits(qualifier);
}
@ -178,8 +177,7 @@ public class DefaultArtifactVersion implements ArtifactVersion {
return true;
}
private static Integer getNextIntegerToken(StringTokenizer tok) {
String s = tok.nextToken();
private static Integer getNextIntegerToken(String s) {
if ((s.length() > 1) && s.startsWith("0")) {
return null;
}

View File

@ -24,7 +24,8 @@ import javax.inject.Singleton;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.lifecycle.LifecycleNotFoundException;
@ -73,11 +74,9 @@ public class DefaultLifecycleTaskSegmentCalculator implements LifecycleTaskSegme
if ((tasks == null || tasks.isEmpty())
&& (rootProject.getDefaultGoal() != null
&& !rootProject.getDefaultGoal().isEmpty())) {
StringTokenizer tokenizer = new StringTokenizer(rootProject.getDefaultGoal());
tasks = new ArrayList<>();
while (tokenizer.hasMoreTokens()) {
tasks.add(tokenizer.nextToken());
}
tasks = Stream.of(rootProject.getDefaultGoal().split("\\s+"))
.filter(g -> !g.isEmpty())
.collect(Collectors.toList());
}
return calculateTaskSegments(session, tasks);

View File

@ -26,7 +26,6 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.StringTokenizer;
import org.apache.maven.api.xml.XmlNode;
import org.apache.maven.execution.MavenSession;
@ -127,9 +126,9 @@ public class MojoDescriptorCreator {
Plugin plugin = null;
StringTokenizer tok = new StringTokenizer(task, ":");
String[] tok = task.split(":");
int numTokens = tok.countTokens();
int numTokens = tok.length;
if (numTokens >= 4) {
// We have everything that we need
@ -142,19 +141,19 @@ public class MojoDescriptorCreator {
// goal
//
plugin = new Plugin();
plugin.setGroupId(tok.nextToken());
plugin.setArtifactId(tok.nextToken());
plugin.setVersion(tok.nextToken());
goal = tok.nextToken();
plugin.setGroupId(tok[0]);
plugin.setArtifactId(tok[1]);
plugin.setVersion(tok[2]);
goal = tok[3];
// This won't be valid, but it constructs something easy to read in the error message
while (tok.hasMoreTokens()) {
goal += ":" + tok.nextToken();
for (int idx = 4; idx < tok.length; idx++) {
goal += ":" + tok[idx];
}
} else if (numTokens == 3) {
// groupId:artifactId:goal or pluginPrefix:version:goal (since Maven 3.9.0)
String firstToken = tok.nextToken();
String firstToken = tok[0];
// groupId or pluginPrefix? heuristics: groupId contains dot (.) but not pluginPrefix
if (firstToken.contains(".")) {
// We have everything that we need except the version
@ -168,22 +167,22 @@ public class MojoDescriptorCreator {
//
plugin = new Plugin();
plugin.setGroupId(firstToken);
plugin.setArtifactId(tok.nextToken());
plugin.setArtifactId(tok[1]);
} else {
// pluginPrefix:version:goal, like remote-resources:3.5.0:process
plugin = findPluginForPrefix(firstToken, session);
plugin.setVersion(tok.nextToken());
plugin.setVersion(tok[1]);
}
goal = tok.nextToken();
goal = tok[2];
} else {
// We have a prefix and goal
//
// idea:idea
//
String prefix = tok.nextToken();
String prefix = tok[0];
if (numTokens == 2) {
goal = tok.nextToken();
goal = tok[1];
} else {
// goal was missing - pass through to MojoNotFoundException
goal = "";