You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by li...@apache.org on 2022/10/26 08:26:52 UTC
[tomcat-jakartaee-migration] 01/04: Improve composability of the migration tool when using from other tools
This is an automated email from the ASF dual-hosted git repository.
lihan pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat-jakartaee-migration.git
commit 12cfba68ab42ca06e99bf585656d1aa4936a9d7a
Author: Danny Thomas <da...@netflix.com>
AuthorDate: Mon Oct 24 11:48:16 2022 +1100
Improve composability of the migration tool when using from other tools
---
.../apache/tomcat/jakartaee/ClassConverter.java | 10 +-
.../org/apache/tomcat/jakartaee/Converter.java | 3 +-
.../org/apache/tomcat/jakartaee/EESpecProfile.java | 96 ++----------------
.../apache/tomcat/jakartaee/EESpecProfiles.java | 112 +++++++++++++++++++++
.../apache/tomcat/jakartaee/ManifestConverter.java | 19 ++--
.../org/apache/tomcat/jakartaee/Migration.java | 40 ++++++--
.../org/apache/tomcat/jakartaee/MigrationCLI.java | 2 +-
.../org/apache/tomcat/jakartaee/MigrationTask.java | 4 +-
.../tomcat/jakartaee/PassThroughConverter.java | 3 +-
.../org/apache/tomcat/jakartaee/TextConverter.java | 17 ++--
.../tomcat/jakartaee/LocalStrings.properties | 2 +
.../tomcat/jakartaee/ClassConverterTest.java | 2 +-
.../apache/tomcat/jakartaee/EESpecProfileTest.java | 4 +-
.../org/apache/tomcat/jakartaee/MigrationTest.java | 7 ++
.../apache/tomcat/jakartaee/TextConverterTest.java | 2 +-
15 files changed, 197 insertions(+), 126 deletions(-)
diff --git a/src/main/java/org/apache/tomcat/jakartaee/ClassConverter.java b/src/main/java/org/apache/tomcat/jakartaee/ClassConverter.java
index 8b4116d..decb208 100644
--- a/src/main/java/org/apache/tomcat/jakartaee/ClassConverter.java
+++ b/src/main/java/org/apache/tomcat/jakartaee/ClassConverter.java
@@ -39,7 +39,7 @@ public class ClassConverter implements Converter, ClassFileTransformer {
protected final EESpecProfile profile;
public ClassConverter() {
- this(EESpecProfile.TOMCAT);
+ this(EESpecProfiles.TOMCAT);
}
public ClassConverter(EESpecProfile profile) {
this.profile = profile;
@@ -58,8 +58,8 @@ public class ClassConverter implements Converter, ClassFileTransformer {
@Override
- public void convert(String path, InputStream src, OutputStream dest, EESpecProfile profile) throws IOException {
- convertInternal(path, src, dest, profile, null);
+ public boolean convert(String path, InputStream src, OutputStream dest, EESpecProfile profile) throws IOException {
+ return convertInternal(path, src, dest, profile, null);
}
@@ -78,7 +78,7 @@ public class ClassConverter implements Converter, ClassFileTransformer {
}
- protected void convertInternal(String path, InputStream src, OutputStream dest, EESpecProfile profile, ClassLoader loader)
+ protected boolean convertInternal(String path, InputStream src, OutputStream dest, EESpecProfile profile, ClassLoader loader)
throws IOException {
ClassParser parser = new ClassParser(src, "unknown");
JavaClass javaClass = parser.parse();
@@ -146,5 +146,7 @@ public class ClassConverter implements Converter, ClassFileTransformer {
}
javaClass.dump(dest);
+
+ return converted;
}
}
diff --git a/src/main/java/org/apache/tomcat/jakartaee/Converter.java b/src/main/java/org/apache/tomcat/jakartaee/Converter.java
index e05c232..1bba1a1 100644
--- a/src/main/java/org/apache/tomcat/jakartaee/Converter.java
+++ b/src/main/java/org/apache/tomcat/jakartaee/Converter.java
@@ -34,6 +34,7 @@ public interface Converter {
* @param profile The profile that defines the conversion required
*
* @throws IOException If the conversion fails
+ * @return true if the converter made a conversion to the file
*/
- void convert(String path, InputStream src, OutputStream dest, EESpecProfile profile) throws IOException;
+ boolean convert(String path, 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 8ed0d91..321e8cb 100644
--- a/src/main/java/org/apache/tomcat/jakartaee/EESpecProfile.java
+++ b/src/main/java/org/apache/tomcat/jakartaee/EESpecProfile.java
@@ -14,100 +14,22 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.apache.tomcat.jakartaee;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-/**
- * Specification profile defining the replacements performed.
- */
-public enum EESpecProfile {
-
- TOMCAT("javax", "jakarta",
- "javax([/\\.](annotation(?![/\\.]processing)" +
- "|ejb" +
- "|el" +
- "|mail" +
- "|persistence" +
- "|security[/\\.]auth[/\\.]message" +
- "|servlet" +
- "|transaction(?![/\\.]xa)" +
- "|websocket))"),
-
- EE("javax", "jakarta",
- "javax([/\\.](activation" +
- "|annotation(?![/\\.]processing)" +
- "|batch" +
- "|decorator" +
- "|ejb" +
- "|el" +
- "|enterprise" +
- "|faces" +
- "|jms" +
- "|json" +
- "|jws" +
- "|interceptor" +
- "|inject" +
- "|mail" +
- "|management[/\\.]j2ee" +
- "|persistence" +
- "|resource" +
- "|security[/\\.](auth[/\\.]message|enterprise|jacc)" +
- "|servlet" +
- "|transaction(?![/\\.]xa)" +
- "|validation" +
- "|websocket" +
- "|ws[/\\.]rs" +
- "|xml[/\\.](bind|soap|ws)))"),
- JEE8("jakarta", "javax",
- "jakarta([/\\.](activation" +
- "|annotation(?![/\\.]processing)" +
- "|batch" +
- "|decorator" +
- "|ejb" +
- "|el" +
- "|enterprise" +
- "|faces" +
- "|jms" +
- "|json" +
- "|jws" +
- "|interceptor" +
- "|inject" +
- "|mail" +
- "|management[/\\.]j2ee" +
- "|persistence" +
- "|resource" +
- "|security[/\\.](auth[/\\.]message|enterprise|jacc)" +
- "|servlet" +
- "|transaction(?![/\\.]xa)" +
- "|validation" +
- "|websocket" +
- "|ws[/\\.]rs" +
- "|xml[/\\.](bind|soap|ws)))");
-
- private String source;
- private String target;
- private Pattern pattern;
-
- EESpecProfile(String source, String target, String pattern) {
- this.source = source;
- this.target = target;
- this.pattern = Pattern.compile(pattern);
+public interface EESpecProfile {
+ default String convert(String name) {
+ Matcher m = getPattern().matcher(name);
+ return m.replaceAll(getTarget() + "$1");
}
- public String convert(String name) {
- Matcher m = pattern.matcher(name);
- return m.replaceAll(target + "$1");
- }
+ String getSource();
- public String getSource()
- {
- return source;
- }
+ String getTarget();
- public String getTarget()
- {
- return target;
- }
+ Pattern getPattern();
}
+
diff --git a/src/main/java/org/apache/tomcat/jakartaee/EESpecProfiles.java b/src/main/java/org/apache/tomcat/jakartaee/EESpecProfiles.java
new file mode 100644
index 0000000..effc43a
--- /dev/null
+++ b/src/main/java/org/apache/tomcat/jakartaee/EESpecProfiles.java
@@ -0,0 +1,112 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.tomcat.jakartaee;
+
+import java.util.regex.Pattern;
+
+/**
+ * Specification profile defining the replacements performed.
+ */
+public enum EESpecProfiles implements EESpecProfile {
+
+ TOMCAT("javax", "jakarta",
+ "javax([/\\.](annotation(?![/\\.]processing)" +
+ "|ejb" +
+ "|el" +
+ "|mail" +
+ "|persistence" +
+ "|security[/\\.]auth[/\\.]message" +
+ "|servlet" +
+ "|transaction(?![/\\.]xa)" +
+ "|websocket))"),
+
+ EE("javax", "jakarta",
+ "javax([/\\.](activation" +
+ "|annotation(?![/\\.]processing)" +
+ "|batch" +
+ "|decorator" +
+ "|ejb" +
+ "|el" +
+ "|enterprise" +
+ "|faces" +
+ "|jms" +
+ "|json" +
+ "|jws" +
+ "|interceptor" +
+ "|inject" +
+ "|mail" +
+ "|management[/\\.]j2ee" +
+ "|persistence" +
+ "|resource" +
+ "|security[/\\.](auth[/\\.]message|enterprise|jacc)" +
+ "|servlet" +
+ "|transaction(?![/\\.]xa)" +
+ "|validation" +
+ "|websocket" +
+ "|ws[/\\.]rs" +
+ "|xml[/\\.](bind|soap|ws)))"),
+ JEE8("jakarta", "javax",
+ "jakarta([/\\.](activation" +
+ "|annotation(?![/\\.]processing)" +
+ "|batch" +
+ "|decorator" +
+ "|ejb" +
+ "|el" +
+ "|enterprise" +
+ "|faces" +
+ "|jms" +
+ "|json" +
+ "|jws" +
+ "|interceptor" +
+ "|inject" +
+ "|mail" +
+ "|management[/\\.]j2ee" +
+ "|persistence" +
+ "|resource" +
+ "|security[/\\.](auth[/\\.]message|enterprise|jacc)" +
+ "|servlet" +
+ "|transaction(?![/\\.]xa)" +
+ "|validation" +
+ "|websocket" +
+ "|ws[/\\.]rs" +
+ "|xml[/\\.](bind|soap|ws)))");
+ private String source;
+ private String target;
+ private Pattern pattern;
+
+ EESpecProfiles(String source, String target, String pattern) {
+ this.source = source;
+ this.target = target;
+ this.pattern = Pattern.compile(pattern);
+ }
+
+ @Override
+ public String getSource() {
+ return source;
+ }
+
+ @Override
+ public String getTarget() {
+ return target;
+ }
+
+ @Override
+ public Pattern getPattern() {
+ return pattern;
+ }
+}
diff --git a/src/main/java/org/apache/tomcat/jakartaee/ManifestConverter.java b/src/main/java/org/apache/tomcat/jakartaee/ManifestConverter.java
index 19099c2..7d344cf 100644
--- a/src/main/java/org/apache/tomcat/jakartaee/ManifestConverter.java
+++ b/src/main/java/org/apache/tomcat/jakartaee/ManifestConverter.java
@@ -48,20 +48,16 @@ public class ManifestConverter implements Converter {
}
@Override
- public void convert(String path, InputStream src, OutputStream dest, EESpecProfile profile) throws IOException {
+ public boolean convert(String path, InputStream src, OutputStream dest, EESpecProfile profile) throws IOException {
Manifest srcManifest = new Manifest(src);
Manifest destManifest = new Manifest(srcManifest);
- boolean result = false;
-
- result = result | removeSignatures(destManifest);
+ boolean result = removeSignatures(destManifest);
result = result | updateValues(destManifest, profile);
- if (result) {
- destManifest.write(dest);
- } else {
- srcManifest.write(dest);
- }
+ destManifest.write(dest);
+
+ return result;
}
@@ -97,8 +93,7 @@ public class ManifestConverter implements Converter {
private boolean updateValues(Manifest manifest, EESpecProfile profile) {
- boolean result = false;
- result = result | updateValues(manifest.getMainAttributes(), profile);
+ boolean result = updateValues(manifest.getMainAttributes(), profile);
for (Attributes attributes : manifest.getEntries().values()) {
result = result | updateValues(attributes, profile);
}
@@ -112,7 +107,7 @@ public class ManifestConverter implements Converter {
if (attributes.containsKey(Attributes.Name.IMPLEMENTATION_VERSION)) {
String newValue = attributes.get(Attributes.Name.IMPLEMENTATION_VERSION) + "-" + Info.getVersion();
attributes.put(Attributes.Name.IMPLEMENTATION_VERSION, newValue);
- result = true;
+ // Purposefully avoid setting result
}
// Update package names in values
for (Entry<Object,Object> entry : attributes.entrySet()) {
diff --git a/src/main/java/org/apache/tomcat/jakartaee/Migration.java b/src/main/java/org/apache/tomcat/jakartaee/Migration.java
index 35bfcbe..ae95f41 100644
--- a/src/main/java/org/apache/tomcat/jakartaee/Migration.java
+++ b/src/main/java/org/apache/tomcat/jakartaee/Migration.java
@@ -88,8 +88,12 @@ public class Migration {
DEFAULT_EXCLUDES.add("spring-security-rsa-*.jar");
}
- private EESpecProfile profile = EESpecProfile.TOMCAT;
+ private EESpecProfile profile = EESpecProfiles.TOMCAT;
+
+ private boolean enableDefaultExcludes = true;
private boolean zipInMemory;
+ private boolean converted;
+ private State state = State.NOT_STARTED;
private File source;
private File destination;
private final List<Converter> converters;
@@ -107,6 +111,12 @@ public class Migration {
converters.add(new PassThroughConverter());
}
+ public enum State {
+ NOT_STARTED,
+ RUNNING,
+ COMPLETE
+ }
+
/**
* Set the Jakarta EE specifications that should be used.
*
@@ -125,6 +135,10 @@ public class Migration {
return profile;
}
+ public void setEnableDefaultExcludes(boolean enableDefaultExcludes) {
+ this.enableDefaultExcludes = enableDefaultExcludes;
+ }
+
public void setZipInMemory(boolean zipInMemory) {
this.zipInMemory = zipInMemory;
}
@@ -147,7 +161,21 @@ public class Migration {
}
+ public boolean hasConverted() {
+ if (state != State.COMPLETE) {
+ throw new IllegalStateException(sm.getString("migration.notCompleted"));
+ }
+ return converted;
+ }
+
+
public void execute() throws IOException {
+ if (state == State.RUNNING) {
+ throw new IllegalStateException(sm.getString("migration.alreadyRunning"));
+ }
+ state = State.RUNNING;
+ converted = false;
+
logger.log(Level.INFO, sm.getString("migration.execute", source.getAbsolutePath(),
destination.getAbsolutePath(), profile.toString()));
@@ -159,7 +187,7 @@ public class Migration {
throw new IOException(sm.getString("migration.mkdirError", destination.getAbsolutePath()));
}
} else {
- // Single file
+ // Single file`
File parentDestination = destination.getAbsoluteFile().getParentFile();
if (parentDestination.exists() || parentDestination.mkdirs()) {
migrateFile(source, destination);
@@ -168,10 +196,9 @@ public class Migration {
}
}
logger.log(Level.INFO, sm.getString("migration.done",
- Long.valueOf(TimeUnit.MILLISECONDS.convert(System.nanoTime() - t1, TimeUnit.NANOSECONDS))));
+ TimeUnit.MILLISECONDS.convert(System.nanoTime() - t1, TimeUnit.NANOSECONDS)));
}
-
private void migrateDirectory(File src, File dest) throws IOException {
// Won't return null because src is known to be a directory
String[] files = src.list();
@@ -309,14 +336,13 @@ public class Migration {
} else {
for (Converter converter : converters) {
if (converter.accepts(name)) {
- converter.convert(name, src, dest, profile);
+ converted = converted | converter.convert(name, src, dest, profile);
break;
}
}
}
}
-
private boolean isArchive(String fileName) {
return fileName.endsWith(".jar") || fileName.endsWith(".war") || fileName.endsWith(".zip");
}
@@ -326,7 +352,7 @@ public class Migration {
File f = new File(name);
String filename = f.getName();
- if (GlobMatcher.matchName(DEFAULT_EXCLUDES, filename, true)) {
+ if (enableDefaultExcludes && GlobMatcher.matchName(DEFAULT_EXCLUDES, filename, true)) {
return true;
}
diff --git a/src/main/java/org/apache/tomcat/jakartaee/MigrationCLI.java b/src/main/java/org/apache/tomcat/jakartaee/MigrationCLI.java
index 1b7c92f..05c50cb 100644
--- a/src/main/java/org/apache/tomcat/jakartaee/MigrationCLI.java
+++ b/src/main/java/org/apache/tomcat/jakartaee/MigrationCLI.java
@@ -69,7 +69,7 @@ public class MigrationCLI {
iter.remove();
String profileName = argument.substring(PROFILE_ARG.length());
try {
- EESpecProfile profile = EESpecProfile.valueOf(profileName.toUpperCase(Locale.ENGLISH));
+ EESpecProfile profile = EESpecProfiles.valueOf(profileName.toUpperCase(Locale.ENGLISH));
migration.setEESpecProfile(profile);
} catch (IllegalArgumentException e) {
// Invalid profile value
diff --git a/src/main/java/org/apache/tomcat/jakartaee/MigrationTask.java b/src/main/java/org/apache/tomcat/jakartaee/MigrationTask.java
index 39f31dd..f5fd264 100644
--- a/src/main/java/org/apache/tomcat/jakartaee/MigrationTask.java
+++ b/src/main/java/org/apache/tomcat/jakartaee/MigrationTask.java
@@ -31,7 +31,7 @@ public class MigrationTask extends Task {
private File src;
private File dest;
- private String profile = EESpecProfile.TOMCAT.toString();
+ private String profile = EESpecProfiles.TOMCAT.toString();
private boolean zipInMemory = false;
private String excludes;
@@ -74,7 +74,7 @@ public class MigrationTask extends Task {
// check the parameters
EESpecProfile profile = null;
try {
- profile = EESpecProfile.valueOf(this.profile.toUpperCase());
+ profile = EESpecProfiles.valueOf(this.profile.toUpperCase());
} catch (IllegalArgumentException e) {
throw new BuildException("Invalid profile specified: " + this.profile, getLocation()); // todo i18n
}
diff --git a/src/main/java/org/apache/tomcat/jakartaee/PassThroughConverter.java b/src/main/java/org/apache/tomcat/jakartaee/PassThroughConverter.java
index 8da2d9b..1d6a48c 100644
--- a/src/main/java/org/apache/tomcat/jakartaee/PassThroughConverter.java
+++ b/src/main/java/org/apache/tomcat/jakartaee/PassThroughConverter.java
@@ -34,11 +34,12 @@ public class PassThroughConverter implements Converter {
}
@Override
- public void convert(String path, InputStream src, OutputStream dest, EESpecProfile profile) throws IOException {
+ public boolean convert(String path, InputStream src, OutputStream dest, EESpecProfile profile) throws IOException {
// This simply copies the source to the destination
Util.copy(src, dest);
if (logger.isLoggable(Level.FINEST)) {
logger.log(Level.FINEST, sm.getString("passThroughConverter.noConversion", path));
}
+ return false;
}
}
diff --git a/src/main/java/org/apache/tomcat/jakartaee/TextConverter.java b/src/main/java/org/apache/tomcat/jakartaee/TextConverter.java
index 80036ba..3c91117 100644
--- a/src/main/java/org/apache/tomcat/jakartaee/TextConverter.java
+++ b/src/main/java/org/apache/tomcat/jakartaee/TextConverter.java
@@ -66,22 +66,25 @@ public class TextConverter implements Converter {
* execution.
*/
@Override
- public void convert(String path, InputStream src, OutputStream dest, EESpecProfile profile) throws IOException {
+ public boolean convert(String path, InputStream src, OutputStream dest, EESpecProfile profile) throws IOException {
String srcString = Util.toString(src, StandardCharsets.ISO_8859_1);
String destString = profile.convert(srcString);
-
// Object comparison is deliberate here
- if (srcString == destString) {
- if (logger.isLoggable(Level.FINEST)) {
- logger.log(Level.FINEST, sm.getString("classConverter.noConversion", path));
- }
- } else {
+ boolean converted = srcString != destString;
+
+ if (converted) {
if (logger.isLoggable(Level.FINE)) {
logger.log(Level.FINE, sm.getString("textConverter.converted", path));
}
+ } else {
+ if (logger.isLoggable(Level.FINEST)) {
+ logger.log(Level.FINEST, sm.getString("classConverter.noConversion", path));
+ }
}
ByteArrayInputStream bais = new ByteArrayInputStream(destString.getBytes(StandardCharsets.ISO_8859_1));
Util.copy(bais, dest);
+
+ return converted;
}
}
diff --git a/src/main/resources/org/apache/tomcat/jakartaee/LocalStrings.properties b/src/main/resources/org/apache/tomcat/jakartaee/LocalStrings.properties
index 6ee3665..f803338 100644
--- a/src/main/resources/org/apache/tomcat/jakartaee/LocalStrings.properties
+++ b/src/main/resources/org/apache/tomcat/jakartaee/LocalStrings.properties
@@ -21,6 +21,8 @@ migration.archive.complete=Migration finished for archive [{0}]
migration.archive.memory=Migration starting for archive [{0}] using in memory copy
migration.archive.stream=Migration starting for archive [{0}] using streaming
migration.cannotReadSource=Cannot read source location [{0}]
+migration.notCompleted=Migration has not completed
+migration.alreadyRunning=Migration is already running
migration.done=Migration completed successfully in [{0}] milliseconds
migration.error=Error performing migration
migration.execute=Performing migration from source [{0}] to destination [{1}] with Jakarta EE specification profile [{2}]
diff --git a/src/test/java/org/apache/tomcat/jakartaee/ClassConverterTest.java b/src/test/java/org/apache/tomcat/jakartaee/ClassConverterTest.java
index bf0b29e..0df49a2 100644
--- a/src/test/java/org/apache/tomcat/jakartaee/ClassConverterTest.java
+++ b/src/test/java/org/apache/tomcat/jakartaee/ClassConverterTest.java
@@ -65,7 +65,7 @@ public class ClassConverterTest {
}
// Transform
- ClassConverter convertor = new ClassConverter(EESpecProfile.TOMCAT);
+ ClassConverter convertor = new ClassConverter(EESpecProfiles.TOMCAT);
transformed = convertor.transform(this.getClass().getClassLoader(),
"org.apache.tomcat.jakartaee.TesterConstants", null, null, original);
diff --git a/src/test/java/org/apache/tomcat/jakartaee/EESpecProfileTest.java b/src/test/java/org/apache/tomcat/jakartaee/EESpecProfileTest.java
index 4073334..bdc3b48 100644
--- a/src/test/java/org/apache/tomcat/jakartaee/EESpecProfileTest.java
+++ b/src/test/java/org/apache/tomcat/jakartaee/EESpecProfileTest.java
@@ -25,7 +25,7 @@ public class EESpecProfileTest {
@Test
public void testProfileTomcat() {
- EESpecProfile profile = EESpecProfile.TOMCAT;
+ EESpecProfile profile = EESpecProfiles.TOMCAT;
assertEquals("jakarta.annotation", profile.convert("javax.annotation"));
assertEquals("jakarta.ejb", profile.convert("javax.ejb"));
@@ -75,7 +75,7 @@ public class EESpecProfileTest {
@Test
public void testProfileEE() {
- EESpecProfile profile = EESpecProfile.EE;
+ EESpecProfile profile = EESpecProfiles.EE;
assertEquals("jakarta.activation", profile.convert("javax.activation"));
assertEquals("jakarta.annotation", profile.convert("javax.annotation"));
diff --git a/src/test/java/org/apache/tomcat/jakartaee/MigrationTest.java b/src/test/java/org/apache/tomcat/jakartaee/MigrationTest.java
index 0d61442..1217177 100644
--- a/src/test/java/org/apache/tomcat/jakartaee/MigrationTest.java
+++ b/src/test/java/org/apache/tomcat/jakartaee/MigrationTest.java
@@ -164,6 +164,13 @@ public class MigrationTest {
}
}
+ @Test
+ public void testHasConversionsThrowsWhenNotComplete() {
+ Migration migration = new Migration();
+ IllegalStateException exception = assertThrows(IllegalStateException.class, migration::hasConverted);
+ assertEquals("Migration has not completed", exception.getMessage());
+ }
+
@Test
public void testMigrateSignedJarFileRSA() throws Exception {
testMigrateSignedJarFile("rsa");
diff --git a/src/test/java/org/apache/tomcat/jakartaee/TextConverterTest.java b/src/test/java/org/apache/tomcat/jakartaee/TextConverterTest.java
index f8d029b..f136567 100644
--- a/src/test/java/org/apache/tomcat/jakartaee/TextConverterTest.java
+++ b/src/test/java/org/apache/tomcat/jakartaee/TextConverterTest.java
@@ -22,7 +22,7 @@ public class TextConverterTest {
TextConverter converter = new TextConverter();
ByteArrayInputStream in = new ByteArrayInputStream(INPUT.getBytes(StandardCharsets.ISO_8859_1));
ByteArrayOutputStream out = new ByteArrayOutputStream();
- EESpecProfile profile = EESpecProfile.EE;
+ EESpecProfile profile = EESpecProfiles.EE;
// test
converter.convert(TEST_FILENAME, in, out, profile);
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org