Merge branch 'master' of github.com:apache/tomee-patch-plugin
diff --git a/pom.xml b/pom.xml
index 854b3f8..c598a60 100644
--- a/pom.xml
+++ b/pom.xml
@@ -47,7 +47,7 @@
<connection>scm:git:git@github.com:apache/tomee-patch-plugin.git</connection>
<url>scm:git:git@github.com:apache/tomee-patch-plugin.git</url>
<developerConnection>scm:git:git@github.com:apache/tomee-patch-plugin.git</developerConnection>
- <tag>HEAD</tag>
+ <tag>tomee-patch-parent-0.2</tag>
</scm>
<issueManagement>
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.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 @@
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 @@
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 @@
}
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 @@
.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/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 @@
@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 @@
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());