in tomee-patch-core/src/main/java/org/apache/tomee/patch/core/Transformation.java [288:438]
private void scanResource(final String path, InputStream inputStream, final OutputStream outputStream) throws IOException {
{
final String name = new File(path).getName();
final String replacement = replacements.getResources().get(name);
if (replacement != null) {
log.info(String.format("Replaced %s", path));
final File file = new File(replacement);
if (!file.exists()) {
throw new ReplacementNotFoundException("resource", path, file.getAbsolutePath());
}
inputStream = IO.read(file);
IO.copy(inputStream, outputStream);
return;
}
}
// in case we don't want to apply any transformation. Only replacement will happen
if (skipTransform) {
IO.copy(inputStream, outputStream);
return;
}
if (path.endsWith("openwebbeans.properties")) {
inputStream = StreamBuilder.create(inputStream)
.replace("org.apache.webbeans.proxy.mapping.javax.enterprise", "org.apache.webbeans.proxy.mapping.jakarta.enterprise")
.replace("\n /javax, \\\n", "\n /javax, \\\n /jakarta, \\\n")
.replace("javax.enterprise.inject.allowProxying.classes", "jakarta.enterprise.inject.allowProxying.classes")
.get();
}
inputStream = StreamBuilder.create(inputStream)
.replace("javax.activation", "jakarta.activation")
.replace("javax.annotation", "jakarta.annotation")
.replace("javax.batch", "jakarta.batch")
.replace("javax.decorator", "jakarta.decorator")
.replace("javax.ejb", "jakarta.ejb")
.replace("javax.el", "jakarta.el")
.replace("javax.enterprise", "jakarta.enterprise")
.replace("javax\\.faces", "jakarta\\.faces")
.replace("javax.inject", "jakarta.inject")
.replace("javax.interceptor", "jakarta.interceptor")
.replace("javax.jms", "jakarta.jms")
.replace("javax.json", "jakarta.json")
.replace("javax.json.bind", "jakarta.json.bind")
.replace("javax.jws", "jakarta.jws")
.replace("javax.mail", "jakarta.mail")
.replace("javax.persistence", "jakarta.persistence")
.replace("javax.resource", "jakarta.resource")
.replace("javax.security.auth.message", "jakarta.security.auth.message")
.replace("javax.security.enterprise", "jakarta.security.enterprise")
.replace("javax.security.jacc", "jakarta.security.jacc")
.replace("javax.servlet", "jakarta.servlet")
.replace("javax.transaction", "jakarta.transaction")
.replace("javax.validation", "jakarta.validation")
.replace("javax.websocket", "jakarta.websocket")
.replace("javax.ws.rs", "jakarta.ws.rs")
.replace("javax.xml.bind", "jakarta.xml.bind")
.replace("javax.xml.soap", "jakarta.xml.soap")
.replace("javax.xml.ws", "jakarta.xml.ws")
// These sub packages to the above must be renamed back
.replace("jakarta.annotation.process", "javax.annotation.process")
.replace("jakarta.enterprise.deploy", "javax.enterprise.deploy")
.replace("jakarta.transaction.xa", "javax.transaction.xa")
// Packages that are often falsely renamed
// Exceptions to the exceptions
.replace("jakarta.accessibility", "javax.accessibility")
.replace("jakarta.annotation.processing", "javax.annotation.processing")
.replace("jakarta.cache", "javax.cache")
.replace("jakarta.crypto", "javax.crypto")
.replace("jakarta.imageio", "javax.imageio")
.replace("jakarta.jdo", "javax.jdo")
.replace("jakarta.jmdns", "javax.jmdns")
.replace("jakarta.lang", "javax.lang")
.replace("jakarta.lang.model", "javax.lang.model")
.replace("jakarta.management", "javax.management")
.replace("jakarta.naming", "javax.naming")
.replace("jakarta.net", "javax.net")
.replace("jakarta.portlet", "javax.portlet")
.replace("jakarta.print", "javax.print")
.replace("jakarta.rmi", "javax.rmi")
.replace("jakarta.script", "javax.script")
.replace("jakarta.security.Principal", "javax.security.Principal")
.replace("jakarta.security.auth.AuthPermission", "javax.security.auth.AuthPermission")
.replace("jakarta.security.auth.Deprecated", "javax.security.auth.Deprecated")
.replace("jakarta.security.auth.DestroyFailedException", "javax.security.auth.DestroyFailedException")
.replace("jakarta.security.auth.Destroyable", "javax.security.auth.Destroyable")
.replace("jakarta.security.auth.LdapPrincipal", "javax.security.auth.LdapPrincipal")
.replace("jakarta.security.auth.NTDomainPrincipal", "javax.security.auth.NTDomainPrincipal")
.replace("jakarta.security.auth.NTNumericCredential", "javax.security.auth.NTNumericCredential")
.replace("jakarta.security.auth.NTSid", "javax.security.auth.NTSid")
.replace("jakarta.security.auth.NTSidDomainPrincipal", "javax.security.auth.NTSidDomainPrincipal")
.replace("jakarta.security.auth.NTSidGroupPrincipal", "javax.security.auth.NTSidGroupPrincipal")
.replace("jakarta.security.auth.NTSidPrimaryGroupPrincipal", "javax.security.auth.NTSidPrimaryGroupPrincipal")
.replace("jakarta.security.auth.NTSidUserPrincipal", "javax.security.auth.NTSidUserPrincipal")
.replace("jakarta.security.auth.NTUserPrincipal", "javax.security.auth.NTUserPrincipal")
.replace("jakarta.security.auth.PolicyFile", "javax.security.auth.PolicyFile")
.replace("jakarta.security.auth.PrincipalComparator", "javax.security.auth.PrincipalComparator")
.replace("jakarta.security.auth.PrivateCredentialPermission", "javax.security.auth.PrivateCredentialPermission")
.replace("jakarta.security.auth.RefreshFailedException", "javax.security.auth.RefreshFailedException")
.replace("jakarta.security.auth.Refreshable", "javax.security.auth.Refreshable")
.replace("jakarta.security.auth.SolarisNumericGroupPrincipal", "javax.security.auth.SolarisNumericGroupPrincipal")
.replace("jakarta.security.auth.SolarisNumericUserPrincipal", "javax.security.auth.SolarisNumericUserPrincipal")
.replace("jakarta.security.auth.SolarisPrincipal", "javax.security.auth.SolarisPrincipal")
.replace("jakarta.security.auth.Subject", "javax.security.auth.Subject")
.replace("jakarta.security.auth.SubjectDomainCombiner", "javax.security.auth.SubjectDomainCombiner")
.replace("jakarta.security.auth.UnixNumericGroupPrincipal", "javax.security.auth.UnixNumericGroupPrincipal")
.replace("jakarta.security.auth.UnixNumericUserPrincipal", "javax.security.auth.UnixNumericUserPrincipal")
.replace("jakarta.security.auth.UnixPrincipal", "javax.security.auth.UnixPrincipal")
.replace("jakarta.security.auth.UserPrincipal", "javax.security.auth.UserPrincipal")
.replace("jakarta.security.auth.X500Principal", "javax.security.auth.X500Principal")
.replace("jakarta.security.auth.callback", "javax.security.auth.callback")
.replace("jakarta.security.auth.kerberos", "javax.security.auth.kerberos")
.replace("jakarta.security.auth.login", "javax.security.auth.login")
.replace("jakarta.security.auth.spi", "javax.security.auth.spi")
.replace("jakarta.security.auth.subject", "javax.security.auth.subject")
.replace("jakarta.security.auth.x500", "javax.security.auth.x500")
.replace("jakarta.security.cert", "javax.security.cert")
.replace("jakarta.security.sasl", "javax.security.sasl")
.replace("jakarta.smartcardio", "javax.smartcardio")
.replace("jakarta.sound", "javax.sound")
.replace("jakarta.sql", "javax.sql")
.replace("jakarta.swing", "javax.swing")
.replace("jakarta.tools", "javax.tools")
.replace("jakarta.transaction.xa", "javax.transaction.xa")
.replace("jakarta.wsdl", "javax.wsdl")
.replace("jakarta.xml.XML", "javax.xml.XML")
.replace("jakarta.xml.access", "javax.xml.access")
.replace("jakarta.xml.catalog", "javax.xml.catalog")
.replace("jakarta.xml.crypto", "javax.xml.crypto")
.replace("jakarta.xml.datatype", "javax.xml.datatype")
.replace("jakarta.xml.messaging", "javax.xml.messaging")
.replace("jakarta.xml.namespace", "javax.xml.namespace")
.replace("jakarta.xml.parser", "javax.xml.parser")
.replace("jakarta.xml.parsers", "javax.xml.parsers")
.replace("jakarta.xml.registry", "javax.xml.registry")
.replace("jakarta.xml.rpc", "javax.xml.rpc")
.replace("jakarta.xml.stream", "javax.xml.stream")
.replace("jakarta.xml.transform", "javax.xml.transform")
.replace("jakarta.xml.validation", "javax.xml.validation")
.replace("jakarta.xml.xpath", "javax.xml.xpath")
.replace("javax.enterprise.deploy-api", "jakarta.enterprise.deploy-api")
.get();
IO.copy(inputStream, outputStream);
}