You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2021/03/19 03:22:29 UTC
[tomee-patch-plugin] 01/03: Add the ability to replace resource
files
This is an automated email from the ASF dual-hosted git repository.
dblevins pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tomee-patch-plugin.git
commit fd3892c245a9de70fa7785c82019272107ea8f2a
Author: David Blevins <da...@gmail.com>
AuthorDate: Thu Mar 18 20:17:14 2021 -0700
Add the ability to replace resource files
---
pom.xml | 2 +-
tomee-patch-core/pom.xml | 2 +-
.../apache/tomee/patch/core/Transformation.java | 23 ++++++++++++++++++----
tomee-patch-plugin/pom.xml | 2 +-
.../org/apache/tomee/patch/plugin/PatchMojo.java | 5 ++++-
5 files changed, 26 insertions(+), 8 deletions(-)
diff --git a/pom.xml b/pom.xml
index d9ceb64..854b3f8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -32,7 +32,7 @@
<groupId>org.apache.tomee.patch</groupId>
<artifactId>tomee-patch-parent</artifactId>
<packaging>pom</packaging>
- <version>0.1-SNAPSHOT</version>
+ <version>0.2-SNAPSHOT</version>
<name>Apache TomEE Patch Plugin</name>
<description>Tools and Maven Plugin to help complete the javax-to-jakarta bytecode transformation</description>
diff --git a/tomee-patch-core/pom.xml b/tomee-patch-core/pom.xml
index 5a12ccb..c20152b 100644
--- a/tomee-patch-core/pom.xml
+++ b/tomee-patch-core/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.tomee.patch</groupId>
<artifactId>tomee-patch-parent</artifactId>
- <version>0.1-SNAPSHOT</version>
+ <version>0.2-SNAPSHOT</version>
</parent>
<artifactId>tomee-patch-core</artifactId>
diff --git a/tomee-patch-core/src/main/java/org/apache/tomee/patch/core/Transformation.java b/tomee-patch-core/src/main/java/org/apache/tomee/patch/core/Transformation.java
index 12d1480..2625c5a 100644
--- a/tomee-patch-core/src/main/java/org/apache/tomee/patch/core/Transformation.java
+++ b/tomee-patch-core/src/main/java/org/apache/tomee/patch/core/Transformation.java
@@ -28,8 +28,10 @@ import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashSet;
import java.util.List;
+import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.zip.ZipEntry;
@@ -42,15 +44,18 @@ public class Transformation {
private final List<Clazz> classes = new ArrayList<Clazz>();
private final Log log;
+ private final Map<String, String> replacements;
public Transformation() {
this.log = new NullLog();
+ this.replacements = Collections.EMPTY_MAP;
}
- public Transformation(final List<Clazz> classes, final Log log) {
+ public Transformation(final List<Clazz> classes, final Map<String, String> replacements, final Log log) {
this.classes.addAll(classes);
this.log = log;
+ this.replacements = replacements;
}
public static File transform(final File jar) throws IOException {
@@ -85,7 +90,7 @@ public class Transformation {
IO.copy(zipInputStream, skipped);
continue;
}
-
+
/*
* If this entry has been patched, skip it
* We will add the patched version at the end
@@ -154,9 +159,9 @@ public class Transformation {
}
return false;
}
-
+
private String updatePath(final String name) {
- return name.replace("resources/javax.faces","resources/jakarta.faces");
+ return name.replace("resources/javax.faces", "resources/jakarta.faces");
}
private boolean copyUnmodified(final String path) {
@@ -210,6 +215,16 @@ public class Transformation {
.replace("javax.xml.ws", "jakarta.xml.ws")
.replace("javax\\.faces", "jakarta\\.faces") // in some javascript files
.get();
+
+ {
+ final String name = new File(path).getName();
+ final String replacement = replacements.get(name);
+ if (replacement != null) {
+ log.debug(String.format("Replaced %s with %s", path, replacement));
+ inputStream = IO.read(new File(replacement));
+ }
+ }
+
IO.copy(inputStream, outputStream);
}
diff --git a/tomee-patch-plugin/pom.xml b/tomee-patch-plugin/pom.xml
index 2d7ff90..756a1a6 100644
--- a/tomee-patch-plugin/pom.xml
+++ b/tomee-patch-plugin/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.tomee.patch</groupId>
<artifactId>tomee-patch-parent</artifactId>
- <version>0.1-SNAPSHOT</version>
+ <version>0.2-SNAPSHOT</version>
</parent>
<artifactId>tomee-patch-plugin</artifactId>
diff --git a/tomee-patch-plugin/src/main/java/org/apache/tomee/patch/plugin/PatchMojo.java b/tomee-patch-plugin/src/main/java/org/apache/tomee/patch/plugin/PatchMojo.java
index a74eb2e..c76ab47 100644
--- a/tomee-patch-plugin/src/main/java/org/apache/tomee/patch/plugin/PatchMojo.java
+++ b/tomee-patch-plugin/src/main/java/org/apache/tomee/patch/plugin/PatchMojo.java
@@ -86,6 +86,9 @@ public class PatchMojo extends AbstractMojo {
@Parameter
private Map<String, String> jdkToolchain;
+ @Parameter
+ private Map<String, String> replacements;
+
/**
* Sets the executable of the compiler to use when fork is <code>true</code>.
*/
@@ -171,7 +174,7 @@ public class PatchMojo extends AbstractMojo {
final List<Clazz> clazzes = classes();
- final Transformation transformation = new Transformation(clazzes, new MavenLog(getLog()));
+ final Transformation transformation = new Transformation(clazzes, replacements, new MavenLog(getLog()));
for (final Artifact artifact : artifacts) {
final File file = artifact.getFile();
getLog().debug("Patching " + file.getAbsolutePath());