From e1862afdb1abfd3d7e98ac4741b0af08b2a75c89 Mon Sep 17 00:00:00 2001 From: Sanne Grinovero Date: Tue, 13 Sep 2022 17:28:18 +0100 Subject: [PATCH 01/11] Transform DB2 driver to Jakarta APIs (cherry picked from commit ec6d2cf85fa023d4fb0411c05b781f5bc3aaa1e6) --- extensions/jdbc/jdbc-db2/deployment/pom.xml | 5 ++ .../db2/deployment/JakartaEnablement.java | 82 +++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 extensions/jdbc/jdbc-db2/deployment/src/main/java/io/quarkus/jdbc/db2/deployment/JakartaEnablement.java diff --git a/extensions/jdbc/jdbc-db2/deployment/pom.xml b/extensions/jdbc/jdbc-db2/deployment/pom.xml index a412fa6bb6395..a803ad71c492f 100644 --- a/extensions/jdbc/jdbc-db2/deployment/pom.xml +++ b/extensions/jdbc/jdbc-db2/deployment/pom.xml @@ -48,6 +48,11 @@ assertj-core test + + org.eclipse.transformer + org.eclipse.transformer + 0.5.0 + diff --git a/extensions/jdbc/jdbc-db2/deployment/src/main/java/io/quarkus/jdbc/db2/deployment/JakartaEnablement.java b/extensions/jdbc/jdbc-db2/deployment/src/main/java/io/quarkus/jdbc/db2/deployment/JakartaEnablement.java new file mode 100644 index 0000000000000..c74ed6b81b965 --- /dev/null +++ b/extensions/jdbc/jdbc-db2/deployment/src/main/java/io/quarkus/jdbc/db2/deployment/JakartaEnablement.java @@ -0,0 +1,82 @@ +package io.quarkus.jdbc.db2.deployment; + +import java.nio.ByteBuffer; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.eclipse.transformer.action.ActionContext; +import org.eclipse.transformer.action.ByteData; +import org.eclipse.transformer.action.impl.ActionContextImpl; +import org.eclipse.transformer.action.impl.ByteDataImpl; +import org.eclipse.transformer.action.impl.ClassActionImpl; +import org.eclipse.transformer.action.impl.SelectionRuleImpl; +import org.eclipse.transformer.action.impl.SignatureRuleImpl; +import org.eclipse.transformer.util.FileUtils; +import org.objectweb.asm.ClassReader; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.quarkus.bootstrap.classloading.QuarkusClassLoader; +import io.quarkus.deployment.annotations.BuildProducer; +import io.quarkus.deployment.annotations.BuildStep; +import io.quarkus.deployment.builditem.BytecodeTransformerBuildItem; + +/** + * The DB2 driver is compiled using references to classes in the javax.transaction + * package; we need to transform these to fix compatibility with jakarta.transaction. + * We do this by leveraging the Eclipse Transformer project during Augmentation, so + * that end users don't need to bother. + */ +public class JakartaEnablement { + + private static final List CLASSES_NEEDING_TRANSFORMATION = List.of( + "com.ibm.db2.jcc.t2zos.ab", + "com.ibm.db2.jcc.t2zos.T2zosConnection", + "com.ibm.db2.jcc.t2zos.T2zosConfiguration"); + + @BuildStep + void transformToJakarta(BuildProducer transformers) { + if (QuarkusClassLoader.isClassPresentAtRuntime("jakarta.transaction.Transaction")) { + JakartaTransformer tr = new JakartaTransformer(); + for (String classname : CLASSES_NEEDING_TRANSFORMATION) { + final BytecodeTransformerBuildItem item = new BytecodeTransformerBuildItem.Builder() + .setCacheable(true) + .setContinueOnFailure(false) + .setClassToTransform(classname) + .setClassReaderOptions(ClassReader.SKIP_DEBUG) + .setInputTransformer(tr::transform) + .build(); + transformers.produce(item); + } + } + } + + private static class JakartaTransformer { + + private final Logger logger; + private final ActionContext ctx; + + JakartaTransformer() { + logger = LoggerFactory.getLogger("JakartaTransformer"); + Map renames = new HashMap<>(); + //N.B. we enable only this transformation, not the full set of capabilities of Eclipse Transformer; + //this might need tailoring if the same idea gets applied to a different context. + renames.put("javax.transaction", "jakarta.transaction"); + ctx = new ActionContextImpl(logger, + new SelectionRuleImpl(logger, Collections.emptyMap(), Collections.emptyMap()), + new SignatureRuleImpl(logger, renames, null, null, null, null, null, Collections.emptyMap())); + } + + byte[] transform(final String name, final byte[] bytes) { + logger.info("Jakarta EE compatibility enhancer for Quarkus: transforming " + name); + final ClassActionImpl classTransformer = new ClassActionImpl(ctx); + final ByteBuffer input = ByteBuffer.wrap(bytes); + final ByteData inputData = new ByteDataImpl(name, input, FileUtils.DEFAULT_CHARSET); + final ByteData outputData = classTransformer.apply(inputData); + return outputData.buffer().array(); + } + } + +} From c426db7a4e7ef80a62ed0816b85888b4ba2071df Mon Sep 17 00:00:00 2001 From: Guillaume Smet Date: Wed, 14 Sep 2022 10:45:56 +0200 Subject: [PATCH 02/11] Jakarta - Bump wildfly-elytron to 2.0.0.Final (cherry picked from commit 6382413496aa207f1c8859584716a20e9f02b172) --- jakarta/rewrite.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jakarta/rewrite.yml b/jakarta/rewrite.yml index 2a91603ad2fcf..149e23736f45a 100644 --- a/jakarta/rewrite.yml +++ b/jakarta/rewrite.yml @@ -183,7 +183,7 @@ recipeList: # WildFly Security - org.openrewrite.maven.ChangePropertyValue: key: wildfly-elytron.version - newValue: 2.0.0.Beta3 + newValue: 2.0.0.Final --- type: specs.openrewrite.org/v1beta/recipe name: io.quarkus.jakarta-jaxrs-jaxb From 648a3837daaf5d810a026c388882f7289012c4dd Mon Sep 17 00:00:00 2001 From: Guillaume Smet Date: Thu, 15 Sep 2022 12:32:34 +0200 Subject: [PATCH 03/11] Jakarta - Fix the Parsson situation (cherry picked from commit bee662a70147cd9a0d7ab4003203327b9685daa3) --- build-parent/pom.xml | 1 + .../deployment/pom.xml | 15 ----------- .../resteasy-reactive/server/jsonb/pom.xml | 1 + .../reactive-messaging-amqp/pom.xml | 18 ------------- jakarta/rewrite.yml | 25 +++++++++++++++++++ jakarta/transform.sh | 5 ++-- 6 files changed, 30 insertions(+), 35 deletions(-) diff --git a/build-parent/pom.xml b/build-parent/pom.xml index 691fbcc8b8fdf..41b87cb2a71f3 100644 --- a/build-parent/pom.xml +++ b/build-parent/pom.xml @@ -1279,6 +1279,7 @@ io.quarkus.build-parent + io.quarkus.jakarta-json-cleanup diff --git a/extensions/smallrye-reactive-messaging-amqp/deployment/pom.xml b/extensions/smallrye-reactive-messaging-amqp/deployment/pom.xml index 60bd5b514e3af..ecd53ab12ed09 100644 --- a/extensions/smallrye-reactive-messaging-amqp/deployment/pom.xml +++ b/extensions/smallrye-reactive-messaging-amqp/deployment/pom.xml @@ -47,20 +47,6 @@ org.apache.activemq artemis-server test - - - org.jboss.logmanager - jboss-logmanager - - - commons-logging - commons-logging - - - jakarta.json - jakarta.json-api - - org.testcontainers @@ -123,5 +109,4 @@ - diff --git a/independent-projects/resteasy-reactive/server/jsonb/pom.xml b/independent-projects/resteasy-reactive/server/jsonb/pom.xml index 5213908b714b5..61859d2038764 100644 --- a/independent-projects/resteasy-reactive/server/jsonb/pom.xml +++ b/independent-projects/resteasy-reactive/server/jsonb/pom.xml @@ -111,6 +111,7 @@ io.quarkus.jakarta-jaxb-switch + io.quarkus.jakarta-json-cleanup diff --git a/integration-tests/reactive-messaging-amqp/pom.xml b/integration-tests/reactive-messaging-amqp/pom.xml index da8bdcb487de4..2ccd4e67e7cf8 100644 --- a/integration-tests/reactive-messaging-amqp/pom.xml +++ b/integration-tests/reactive-messaging-amqp/pom.xml @@ -59,24 +59,6 @@ org.apache.activemq artemis-server test - - - org.jboss.logmanager - jboss-logmanager - - - commons-logging - commons-logging - - - org.apache.johnzon - johnzon-core - - - jakarta.json - jakarta.json-api - - org.apache.activemq diff --git a/jakarta/rewrite.yml b/jakarta/rewrite.yml index 149e23736f45a..f003b7e2df89c 100644 --- a/jakarta/rewrite.yml +++ b/jakarta/rewrite.yml @@ -316,6 +316,31 @@ recipeList: artifactId: resteasy-json-p-provider exclusionGroupId: jakarta.json exclusionArtifactId: jakarta.json-api + - org.openrewrite.maven.RemoveExclusion: + groupId: org.apache.activemq + artifactId: artemis-server + exclusionGroupId: jakarta.json + exclusionArtifactId: jakarta.json-api + - org.openrewrite.maven.RemoveExclusion: + groupId: org.apache.activemq + artifactId: artemis-amqp-protocol + exclusionGroupId: jakarta.json + exclusionArtifactId: jakarta.json-api + - org.openrewrite.maven.RemoveExclusion: + groupId: org.eclipse + artifactId: yasson + exclusionGroupId: jakarta.json + exclusionArtifactId: jakarta.json-api + - org.openrewrite.maven.RemoveExclusion: + groupId: org.eclipse + artifactId: yasson + exclusionGroupId: org.glassfish + exclusionArtifactId: jakarta.json + - org.openrewrite.maven.RemoveExclusion: + groupId: jakarta.json.bind + artifactId: jakarta.json.bind-api + exclusionGroupId: jakarta.json + exclusionArtifactId: jakarta.json-api --- type: specs.openrewrite.org/v1beta/recipe name: io.quarkus.jakarta-json diff --git a/jakarta/transform.sh b/jakarta/transform.sh index 05f74fbc12118..53193669d090d 100755 --- a/jakarta/transform.sh +++ b/jakarta/transform.sh @@ -230,8 +230,9 @@ sed -i 's@com.sun.xml.bind.v2.ContextFactory@org.glassfish.jaxb.runtime.v2.Conte sed -i '/com.sun.xml.internal.bind.v2.ContextFactory/d' extensions/jaxb/deployment/src/main/java/io/quarkus/jaxb/deployment/JaxbProcessor.java ## JSON-P implementation switch -sed -i 's@org.glassfish:jakarta.json@org.eclipse.parsson:jakarta.json@g' extensions/logging-json/runtime/pom.xml -sed -i 's@org.glassfish:jakarta.json@org.eclipse.parsson:jakarta.json@g' extensions/jsonp/runtime/pom.xml +sed -i 's@org.glassfish:jakarta.json@org.eclipse.parsson:parsson\n jakarta.json:jakarta.json-api@g' extensions/logging-json/runtime/pom.xml +sed -i 's@org.glassfish:jakarta.json@org.eclipse.parsson:parsson@g' extensions/jsonp/runtime/pom.xml +sed -i 's@org.glassfish:javax.json@org.glassfish:javax.json\n org.glassfish:jakarta.json\n org.eclipse.parsson:jakarta.json@g' extensions/jsonp/runtime/pom.xml sed -i 's@import org.glassfish.json.JsonProviderImpl;@import org.eclipse.parsson.JsonProviderImpl;@g' extensions/jsonp/deployment/src/main/java/io/quarkus/jsonp/deployment/JsonpProcessor.java ## cleanup phase - needs to be done once everything has been rewritten From ad5904755a233853ae7e3442eb8f6227a8e8bfcd Mon Sep 17 00:00:00 2001 From: Guillaume Smet Date: Thu, 15 Sep 2022 17:57:53 +0200 Subject: [PATCH 04/11] Jakarta - Transform some references in build.gradle (cherry picked from commit 9a74058898a405118b3630903ce28c684f38470a) --- jakarta/transform.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/jakarta/transform.sh b/jakarta/transform.sh index 53193669d090d..1f887a81d0b10 100755 --- a/jakarta/transform.sh +++ b/jakarta/transform.sh @@ -300,6 +300,9 @@ sed -i 's@org.jboss.narayana.rts:narayana-lra@org.jboss.narayana.rts:narayana-lr sed -i 's@org.jboss.narayana.rts:lra-client@org.jboss.narayana.rts:lra-client-jakarta@g' extensions/narayana-lra/runtime/pom.xml sed -i 's@META-INF/services/javax.ws.rs.client.ClientBuilder@META-INF/services/jakarta.ws.rs.client.ClientBuilder@g' extensions/narayana-lra/runtime/pom.xml +find integration-tests/gradle -name build.gradle | xargs sed -i 's/javax.enterprise.context.ApplicationScoped/jakarta.enterprise.context.ApplicationScoped/g' +find integration-tests/gradle -name build.gradle | xargs sed -i 's/javax.ws.rs.Path/jakarta.ws.rs.Path/g' + transform_documentation sed -i 's@javax/ws/rs@jakarta/ws/rs@g' docs/src/main/asciidoc/resteasy-reactive.adoc sed -i 's@https://javadoc.io/doc/jakarta.ws.rs/jakarta.ws.rs-api/2.1.1@https://javadoc.io/doc/jakarta.ws.rs/jakarta.ws.rs-api/3.1.0@g' docs/src/main/asciidoc/resteasy-reactive.adoc From 03946b6b27c9d093c0b913bafc90a04712650cf2 Mon Sep 17 00:00:00 2001 From: Guillaume Smet Date: Thu, 15 Sep 2022 17:58:40 +0200 Subject: [PATCH 05/11] Jakarta - Update the RESTEasy Reactive TCK (cherry picked from commit 42b876ab6afaa6e1fd0b8707a36255e7838ee39f) --- jakarta/rewrite.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jakarta/rewrite.yml b/jakarta/rewrite.yml index f003b7e2df89c..5d6096af38b43 100644 --- a/jakarta/rewrite.yml +++ b/jakarta/rewrite.yml @@ -677,7 +677,7 @@ recipeList: newValue: 3.0 - org.openrewrite.maven.ChangePropertyValue: key: resteasy-reactive-testsuite.repo.ref - newValue: c5785f3465fa87395574fde1274c1712b3aa728b + newValue: 4116f1a0c5605ad00d7779367dac8002af8c6882 --- type: specs.openrewrite.org/v1beta/recipe name: io.quarkus.maven.javax.managed From 74e5c8dd1238cfd3c840ac9f26abb6a513b68618 Mon Sep 17 00:00:00 2001 From: Guillaume Smet Date: Tue, 20 Sep 2022 09:37:36 +0200 Subject: [PATCH 06/11] Jakarta - Upgrade to Infinispan 14.0.0.CR2 and new Jakarta artifacts (cherry picked from commit 00a3e4696047147b426ccfbb4752a5e9841a3045) --- extensions/infinispan-client/runtime/pom.xml | 1 - jakarta/rewrite.yml | 29 ++++---------------- 2 files changed, 6 insertions(+), 24 deletions(-) diff --git a/extensions/infinispan-client/runtime/pom.xml b/extensions/infinispan-client/runtime/pom.xml index d0395f6447303..ce7a828f9cc7e 100644 --- a/extensions/infinispan-client/runtime/pom.xml +++ b/extensions/infinispan-client/runtime/pom.xml @@ -163,7 +163,6 @@ io.quarkus.infinispan - io.quarkus.fix-infinispan-commons diff --git a/jakarta/rewrite.yml b/jakarta/rewrite.yml index 5d6096af38b43..16c901d1f78c2 100644 --- a/jakarta/rewrite.yml +++ b/jakarta/rewrite.yml @@ -851,7 +851,7 @@ displayName: Adjust Infinispan version and dependencies recipeList: - org.openrewrite.maven.ChangePropertyValue: key: infinispan.version - newValue: 14.0.0.Dev04 + newValue: 14.0.0.CR2 - org.openrewrite.maven.ChangePropertyValue: key: infinispan.protostream.version newValue: 14.0.0.CR2 @@ -865,41 +865,24 @@ recipeList: oldGroupId: org.infinispan oldArtifactId: infinispan-client-hotrod newGroupId: org.infinispan - newArtifactId: infinispan-client-hotrod - newClassifier: jakarta + newArtifactId: infinispan-client-hotrod-jakarta - org.openrewrite.maven.ChangeManagedDependencyGroupIdAndArtifactId: oldGroupId: org.infinispan oldArtifactId: infinispan-commons newGroupId: org.infinispan - newArtifactId: infinispan-commons - newClassifier: jakarta + newArtifactId: infinispan-commons-jakarta - org.openrewrite.maven.ChangeDependencyGroupIdAndArtifactId: oldGroupId: org.infinispan oldArtifactId: infinispan-core newGroupId: org.infinispan - newArtifactId: infinispan-core - newClassifier: jakarta + newArtifactId: infinispan-core-jakarta - org.openrewrite.maven.ChangeDependencyGroupIdAndArtifactId: oldGroupId: org.infinispan oldArtifactId: infinispan-client-hotrod newGroupId: org.infinispan - newArtifactId: infinispan-client-hotrod - newClassifier: jakarta + newArtifactId: infinispan-client-hotrod-jakarta - org.openrewrite.maven.ChangeDependencyGroupIdAndArtifactId: oldGroupId: org.infinispan oldArtifactId: infinispan-commons newGroupId: org.infinispan - newArtifactId: infinispan-commons - newClassifier: jakarta ---- -type: specs.openrewrite.org/v1beta/recipe -name: io.quarkus.fix-infinispan-commons -displayName: Adjust Infinispan version and dependencies -recipeList: - - org.openrewrite.maven.ExcludeDependency: - groupId: org.infinispan - artifactId: infinispan-commons - - org.openrewrite.maven.AddDependencyNoQuestionsAsked: - groupId: org.infinispan - artifactId: infinispan-commons - classifier: jakarta + newArtifactId: infinispan-commons-jakarta From 171b4bbc0a5a32a29c4547c06a59f9dd4a7b6b8e Mon Sep 17 00:00:00 2001 From: Guillaume Smet Date: Tue, 20 Sep 2022 11:34:39 +0200 Subject: [PATCH 07/11] Jakarta - Adjust JAX-RS 3.1 hash (cherry picked from commit ce54d9d2e90ca7cf0240a1f46cf3814f7cbddb2c) --- jakarta/transform.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jakarta/transform.sh b/jakarta/transform.sh index 1f887a81d0b10..1f9096061d3c6 100755 --- a/jakarta/transform.sh +++ b/jakarta/transform.sh @@ -361,7 +361,7 @@ git cherry-pick -x ${JAKARTA_10_CDI_HASH} ## JAX-RS/RESTEasy Reactive git fetch origin jakarta-10-jaxrs -git rev-list e466a63792db2e5d87eb0b662384618f16aaa419..origin/jakarta-10-jaxrs | tac | xargs git cherry-pick -x +git rev-list 1ac748346b91512957121e9b2f68c3b960c41565..origin/jakarta-10-jaxrs | tac | xargs git cherry-pick -x # Build phase From 494f31edcc099b1baf1af7ac80ec5d76b7885520 Mon Sep 17 00:00:00 2001 From: Guillaume Smet Date: Tue, 20 Sep 2022 11:36:18 +0200 Subject: [PATCH 08/11] Jakarta - Exclude old Jandex from resteasy-core This is useful starting RESTEasy 6.2. (cherry picked from commit ab9e606f847a2338fd1eedf02ac78c9228c64e6e) --- bom/application/pom.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bom/application/pom.xml b/bom/application/pom.xml index 1e3c506902bf1..4035de8d85793 100644 --- a/bom/application/pom.xml +++ b/bom/application/pom.xml @@ -4407,6 +4407,10 @@ javax.activation activation + + org.jboss + jandex + From cfa85bdad6be23e08d33a1ce04ccd8a4a3ed64c0 Mon Sep 17 00:00:00 2001 From: glefloch Date: Mon, 19 Sep 2022 22:52:11 +0200 Subject: [PATCH 09/11] Remove javax generated classes from mapstruct gradle tests (cherry picked from commit 64d81be3fc4c5abb9916f6444e5b737f221cd285) --- .../main/java/org/acme/quarkus/sample/HelloResource.java | 8 +------- .../common/src/main/java/org/acme/common/CarMapper.java | 6 ++++-- .../src/main/java/org/acme/quarkus/CarMapper.java | 5 ++++- .../main/java/org/acme/quarkus/sample/HelloResource.java | 8 +------- 4 files changed, 10 insertions(+), 17 deletions(-) diff --git a/integration-tests/gradle/src/main/resources/annotation-processor-multi-module/application/src/main/java/org/acme/quarkus/sample/HelloResource.java b/integration-tests/gradle/src/main/resources/annotation-processor-multi-module/application/src/main/java/org/acme/quarkus/sample/HelloResource.java index 0b3bf8d8c5a20..742b10f2bbc60 100644 --- a/integration-tests/gradle/src/main/resources/annotation-processor-multi-module/application/src/main/java/org/acme/quarkus/sample/HelloResource.java +++ b/integration-tests/gradle/src/main/resources/annotation-processor-multi-module/application/src/main/java/org/acme/quarkus/sample/HelloResource.java @@ -12,16 +12,10 @@ @Path("/hello") public class HelloResource { - private final CarMapper carMapper; - - public HelloResource(CarMapper carMapper) { - this.carMapper = carMapper; - } - @GET @Produces(MediaType.APPLICATION_JSON) public CarDTO hello() { Car car = new Car("foo", 4); - return carMapper.carToCarDTO(car); + return CarMapper.INSTANCE.carToCarDTO(car); } } \ No newline at end of file diff --git a/integration-tests/gradle/src/main/resources/annotation-processor-multi-module/common/src/main/java/org/acme/common/CarMapper.java b/integration-tests/gradle/src/main/resources/annotation-processor-multi-module/common/src/main/java/org/acme/common/CarMapper.java index 709387b4df8a7..fb08e64b96df3 100644 --- a/integration-tests/gradle/src/main/resources/annotation-processor-multi-module/common/src/main/java/org/acme/common/CarMapper.java +++ b/integration-tests/gradle/src/main/resources/annotation-processor-multi-module/common/src/main/java/org/acme/common/CarMapper.java @@ -2,13 +2,15 @@ import org.acme.common.domain.Car; import org.acme.common.domain.CarDTO; -import org.mapstruct.InjectionStrategy; import org.mapstruct.Mapper; import org.mapstruct.Mapping; +import org.mapstruct.factory.Mappers; -@Mapper(componentModel = "cdi", injectionStrategy = InjectionStrategy.CONSTRUCTOR) +@Mapper public interface CarMapper { + CarMapper INSTANCE = Mappers.getMapper( CarMapper.class ); + @Mapping(source = "numberOfSeats", target = "seatNumber") CarDTO carToCarDTO(Car car); diff --git a/integration-tests/gradle/src/main/resources/annotation-processor-simple-module/src/main/java/org/acme/quarkus/CarMapper.java b/integration-tests/gradle/src/main/resources/annotation-processor-simple-module/src/main/java/org/acme/quarkus/CarMapper.java index 1f24e89035019..927e199fb0c74 100644 --- a/integration-tests/gradle/src/main/resources/annotation-processor-simple-module/src/main/java/org/acme/quarkus/CarMapper.java +++ b/integration-tests/gradle/src/main/resources/annotation-processor-simple-module/src/main/java/org/acme/quarkus/CarMapper.java @@ -5,10 +5,13 @@ import org.mapstruct.InjectionStrategy; import org.mapstruct.Mapper; import org.mapstruct.Mapping; +import org.mapstruct.factory.Mappers; -@Mapper(componentModel = "cdi", injectionStrategy = InjectionStrategy.CONSTRUCTOR) +@Mapper public interface CarMapper { + CarMapper INSTANCE = Mappers.getMapper( CarMapper.class ); + @Mapping(source = "numberOfSeats", target = "seatNumber") CarDTO carToCarDTO(Car car); diff --git a/integration-tests/gradle/src/main/resources/annotation-processor-simple-module/src/main/java/org/acme/quarkus/sample/HelloResource.java b/integration-tests/gradle/src/main/resources/annotation-processor-simple-module/src/main/java/org/acme/quarkus/sample/HelloResource.java index bd74f8b8bdbdc..42d1a37e426f4 100644 --- a/integration-tests/gradle/src/main/resources/annotation-processor-simple-module/src/main/java/org/acme/quarkus/sample/HelloResource.java +++ b/integration-tests/gradle/src/main/resources/annotation-processor-simple-module/src/main/java/org/acme/quarkus/sample/HelloResource.java @@ -12,16 +12,10 @@ @Path("/hello") public class HelloResource { - private final CarMapper carMapper; - - public HelloResource(CarMapper carMapper) { - this.carMapper = carMapper; - } - @GET @Produces(MediaType.APPLICATION_JSON) public CarDTO hello() { Car car = new Car("foo", 4); - return carMapper.carToCarDTO(car); + return CarMapper.INSTANCE.carToCarDTO(car); } } \ No newline at end of file From 99e0a62a56b9a67a8e3591988b18ec7553f67556 Mon Sep 17 00:00:00 2001 From: Sanne Grinovero Date: Wed, 21 Sep 2022 23:29:19 +0100 Subject: [PATCH 10/11] Avoid letting our transformation rules getting transformed (cherry picked from commit 76715e9f6dbc7a852d16c1b90ab622ed98da3d6f) --- .../jdbc/db2/deployment/JakartaEnablement.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/extensions/jdbc/jdbc-db2/deployment/src/main/java/io/quarkus/jdbc/db2/deployment/JakartaEnablement.java b/extensions/jdbc/jdbc-db2/deployment/src/main/java/io/quarkus/jdbc/db2/deployment/JakartaEnablement.java index c74ed6b81b965..777fa15c04650 100644 --- a/extensions/jdbc/jdbc-db2/deployment/src/main/java/io/quarkus/jdbc/db2/deployment/JakartaEnablement.java +++ b/extensions/jdbc/jdbc-db2/deployment/src/main/java/io/quarkus/jdbc/db2/deployment/JakartaEnablement.java @@ -2,7 +2,6 @@ import java.nio.ByteBuffer; import java.util.Collections; -import java.util.HashMap; import java.util.List; import java.util.Map; @@ -57,18 +56,25 @@ private static class JakartaTransformer { private final Logger logger; private final ActionContext ctx; + private static final Map renames = Collections.singletonMap(forbiddenName(), "jakarta.transaction"); JakartaTransformer() { logger = LoggerFactory.getLogger("JakartaTransformer"); - Map renames = new HashMap<>(); - //N.B. we enable only this transformation, not the full set of capabilities of Eclipse Transformer; + //N.B. we enable only this single transformation of package renames, not the full set of capabilities of Eclipse Transformer; //this might need tailoring if the same idea gets applied to a different context. - renames.put("javax.transaction", "jakarta.transaction"); ctx = new ActionContextImpl(logger, new SelectionRuleImpl(logger, Collections.emptyMap(), Collections.emptyMap()), new SignatureRuleImpl(logger, renames, null, null, null, null, null, Collections.emptyMap())); } + //Need to prevent the Eclipse Transformer - which is run on this whole code base - to actually replace this name: + private static String forbiddenName() { + StringBuilder sb = new StringBuilder("java") + .append("x.") + .append("transaction"); + return sb.toString(); + } + byte[] transform(final String name, final byte[] bytes) { logger.info("Jakarta EE compatibility enhancer for Quarkus: transforming " + name); final ClassActionImpl classTransformer = new ClassActionImpl(ctx); From 62d380adb1110225f828f0eb2a771e98c37d61de Mon Sep 17 00:00:00 2001 From: Guillaume Smet Date: Mon, 24 Oct 2022 17:26:43 +0200 Subject: [PATCH 11/11] Jakarta - Upgrade to Infinispan 14.0.0.Final --- jakarta/rewrite.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jakarta/rewrite.yml b/jakarta/rewrite.yml index 16c901d1f78c2..1a9c3091d19c0 100644 --- a/jakarta/rewrite.yml +++ b/jakarta/rewrite.yml @@ -851,10 +851,10 @@ displayName: Adjust Infinispan version and dependencies recipeList: - org.openrewrite.maven.ChangePropertyValue: key: infinispan.version - newValue: 14.0.0.CR2 + newValue: 14.0.0.Final - org.openrewrite.maven.ChangePropertyValue: key: infinispan.protostream.version - newValue: 14.0.0.CR2 + newValue: 4.5.0.Final - org.openrewrite.maven.ChangeManagedDependencyGroupIdAndArtifactId: oldGroupId: org.infinispan oldArtifactId: infinispan-core