You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by eb...@apache.org on 2020/04/07 00:56:17 UTC
[tomcat-jakartaee-migration] 05/10: Turned the migration profile
into an instance field of the Migration class
This is an automated email from the ASF dual-hosted git repository.
ebourg pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tomcat-jakartaee-migration.git
commit 39ada7099918e7f571e4119b200e79f242cf72a2
Author: Emmanuel Bourg <eb...@apache.org>
AuthorDate: Mon Apr 6 23:28:39 2020 +0200
Turned the migration profile into an instance field of the Migration class
---
.../apache/tomcat/jakartaee/ClassConverter.java | 4 +--
.../org/apache/tomcat/jakartaee/Converter.java | 2 +-
.../org/apache/tomcat/jakartaee/EESpecProfile.java | 6 ++++
.../org/apache/tomcat/jakartaee/Migration.java | 30 +++++++++++++++----
.../org/apache/tomcat/jakartaee/NoOpConverter.java | 2 +-
.../org/apache/tomcat/jakartaee/TextConverter.java | 4 +--
.../java/org/apache/tomcat/jakartaee/Util.java | 35 ----------------------
7 files changed, 37 insertions(+), 46 deletions(-)
diff --git a/src/main/java/org/apache/tomcat/jakartaee/ClassConverter.java b/src/main/java/org/apache/tomcat/jakartaee/ClassConverter.java
index 4b7777b..9d398d7 100644
--- a/src/main/java/org/apache/tomcat/jakartaee/ClassConverter.java
+++ b/src/main/java/org/apache/tomcat/jakartaee/ClassConverter.java
@@ -35,7 +35,7 @@ public class ClassConverter implements Converter {
@Override
- public void convert(InputStream src, OutputStream dest) throws IOException {
+ public void convert(InputStream src, OutputStream dest, EESpecProfile profile) throws IOException {
ClassParser parser = new ClassParser(src, "unknown");
JavaClass javaClass = parser.parse();
@@ -46,7 +46,7 @@ public class ClassConverter implements Converter {
if (constantPool[i] instanceof ConstantUtf8) {
ConstantUtf8 c = (ConstantUtf8) constantPool[i];
String str = c.getBytes();
- c = new ConstantUtf8(Util.convert(str));
+ c = new ConstantUtf8(profile.convert(str));
constantPool[i] = c;
}
}
diff --git a/src/main/java/org/apache/tomcat/jakartaee/Converter.java b/src/main/java/org/apache/tomcat/jakartaee/Converter.java
index f3d62ec..92ef1dd 100644
--- a/src/main/java/org/apache/tomcat/jakartaee/Converter.java
+++ b/src/main/java/org/apache/tomcat/jakartaee/Converter.java
@@ -24,5 +24,5 @@ public interface Converter {
boolean accepts(String filename);
- void convert(InputStream src, OutputStream dest) throws IOException;
+ void convert(InputStream src, OutputStream dest, EESpecProfile profile) throws IOException;
}
diff --git a/src/main/java/org/apache/tomcat/jakartaee/EESpecProfile.java b/src/main/java/org/apache/tomcat/jakartaee/EESpecProfile.java
index 3d77867..45aed81 100644
--- a/src/main/java/org/apache/tomcat/jakartaee/EESpecProfile.java
+++ b/src/main/java/org/apache/tomcat/jakartaee/EESpecProfile.java
@@ -16,6 +16,7 @@
*/
package org.apache.tomcat.jakartaee;
+import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
@@ -41,4 +42,9 @@ public enum EESpecProfile {
public Pattern getPattern() {
return pattern;
}
+
+ public String convert(String name) {
+ Matcher m = pattern.matcher(name);
+ return m.replaceAll("jakarta$1");
+ }
}
diff --git a/src/main/java/org/apache/tomcat/jakartaee/Migration.java b/src/main/java/org/apache/tomcat/jakartaee/Migration.java
index dcaec1e..5c8d41b 100644
--- a/src/main/java/org/apache/tomcat/jakartaee/Migration.java
+++ b/src/main/java/org/apache/tomcat/jakartaee/Migration.java
@@ -44,6 +44,7 @@ public class Migration {
private static final Logger logger = Logger.getLogger(Migration.class.getCanonicalName());
private static final StringManager sm = StringManager.getManager(Migration.class);
+ private EESpecProfile profile = EESpecProfile.TOMCAT;
private File source;
private File destination;
private final List<Converter> converters;
@@ -59,6 +60,23 @@ public class Migration {
converters.add(new NoOpConverter());
}
+ /**
+ * Set the Jakarta EE specifications that should be used.
+ *
+ * @param profile the Jakarta EE specification profile
+ */
+ public void setEESpecProfile(EESpecProfile profile) {
+ this.profile = profile;
+ }
+
+ /**
+ * Get the Jakarta EE profile being used.
+ *
+ * @return the profile
+ */
+ public EESpecProfile getEESpecProfile() {
+ return profile;
+ }
public void setSource(File source) {
if (!source.canRead()) {
@@ -76,7 +94,7 @@ public class Migration {
public boolean execute() throws IOException {
logger.log(Level.INFO, sm.getString("migration.execute", source.getAbsolutePath(),
- destination.getAbsolutePath(), Util.getEESpecProfile().toString()));
+ destination.getAbsolutePath(), profile.toString()));
boolean result = true;
long t1 = System.nanoTime();
if (source.isDirectory()) {
@@ -157,7 +175,7 @@ public class Migration {
logger.log(Level.FINE, sm.getString("migration.skipSignatureFile", sourceName));
continue;
}
- String destName = Util.convert(sourceName);
+ String destName = profile.convert(sourceName);
JarEntry destEntry = new JarEntry(destName);
jarOs.putNextEntry(destEntry);
result = result && migrateStream(destEntry.getName(), jarIs, jarOs);
@@ -181,7 +199,7 @@ public class Migration {
logger.log(Level.FINE, sm.getString("migration.stream", name));
for (Converter converter : converters) {
if (converter.accepts(name)) {
- converter.convert(src, dest);
+ converter.convert(src, dest, profile);
break;
}
}
@@ -238,6 +256,8 @@ public class Migration {
public static void main(String[] args) {
System.setProperty("java.util.logging.SimpleFormatter.format", "%5$s%n");
+ Migration migration = new Migration();
+
boolean valid = false;
String source = null;
String dest = null;
@@ -247,7 +267,7 @@ public class Migration {
dest = args[2];
valid = true;
try {
- Util.setEESpecProfile(args[0].substring(PROFILE_ARG.length()));
+ migration.setEESpecProfile(EESpecProfile.valueOf(args[0].substring(PROFILE_ARG.length())));
} catch (IllegalArgumentException e) {
// Invalid profile value
valid = false;
@@ -263,7 +283,7 @@ public class Migration {
usage();
System.exit(1);
}
- Migration migration = new Migration();
+
migration.setSource(new File(source));
migration.setDestination(new File(dest));
boolean result = false;
diff --git a/src/main/java/org/apache/tomcat/jakartaee/NoOpConverter.java b/src/main/java/org/apache/tomcat/jakartaee/NoOpConverter.java
index cd1152a..aeedb00 100644
--- a/src/main/java/org/apache/tomcat/jakartaee/NoOpConverter.java
+++ b/src/main/java/org/apache/tomcat/jakartaee/NoOpConverter.java
@@ -29,7 +29,7 @@ public class NoOpConverter implements Converter {
}
@Override
- public void convert(InputStream src, OutputStream dest) throws IOException {
+ public void convert(InputStream src, OutputStream dest, EESpecProfile profile) throws IOException {
// This simply copies the source to the destination
byte[] buf = new byte[8192];
int numRead;
diff --git a/src/main/java/org/apache/tomcat/jakartaee/TextConverter.java b/src/main/java/org/apache/tomcat/jakartaee/TextConverter.java
index d0a0db2..e0fdc2f 100644
--- a/src/main/java/org/apache/tomcat/jakartaee/TextConverter.java
+++ b/src/main/java/org/apache/tomcat/jakartaee/TextConverter.java
@@ -59,13 +59,13 @@ public class TextConverter implements Converter {
* execution.
*/
@Override
- public void convert(InputStream src, OutputStream dest) throws IOException {
+ public void convert(InputStream src, OutputStream dest, EESpecProfile profile) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
flow(src, baos);
String srcString = new String(baos.toByteArray(), StandardCharsets.ISO_8859_1);
- String destString = Util.convert(srcString);
+ String destString = profile.convert(srcString);
ByteArrayInputStream bais = new ByteArrayInputStream(destString.getBytes(StandardCharsets.ISO_8859_1));
flow (bais, dest);
diff --git a/src/main/java/org/apache/tomcat/jakartaee/Util.java b/src/main/java/org/apache/tomcat/jakartaee/Util.java
index af0bb12..edd7203 100644
--- a/src/main/java/org/apache/tomcat/jakartaee/Util.java
+++ b/src/main/java/org/apache/tomcat/jakartaee/Util.java
@@ -17,37 +17,9 @@
package org.apache.tomcat.jakartaee;
import java.util.Locale;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
public class Util {
- private static EESpecProfile profile = EESpecProfile.TOMCAT;
-
- /**
- * Set the Jakarta EE specifications that should be used.
- * @param profile the Jakarta EE specification profile
- */
- public static void setEESpecProfile(String profile) {
- setEESpecProfile(EESpecProfile.valueOf(profile));
- }
-
- /**
- * Set the Jakarta EE specifications that should be used.
- * @param profile the Jakarta EE specification profile
- */
- public static void setEESpecProfile(EESpecProfile profile) {
- Util.profile = profile;
- }
-
- /**
- * Get the Jakarta EE profile being used.
- * @return the profile
- */
- public static EESpecProfile getEESpecProfile() {
- return profile;
- }
-
/**
* Get the extension of a filename
* <p>
@@ -64,13 +36,6 @@ public class Util {
return filename.substring(lastPeriod + 1).toLowerCase(Locale.ENGLISH);
}
-
- public static String convert(String name) {
- Matcher m = profile.getPattern().matcher(name);
- return m.replaceAll("jakarta$1");
- }
-
-
private Util() {
// Hide default constructor. Utility class.
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org