Skip to content

Commit 4a50d50

Browse files
authored
Merge pull request #30776 from geoand/#23442
Ensure that AwsProxyRequestContext can be used with @context in RESTEasy Reactive
2 parents d7c0292 + 47c9871 commit 4a50d50

File tree

3 files changed

+18
-5
lines changed

3 files changed

+18
-5
lines changed

extensions/amazon-lambda-rest/deployment/pom.xml

+4
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@
3939
<groupId>io.quarkus</groupId>
4040
<artifactId>quarkus-amazon-lambda-rest-event-server</artifactId>
4141
</dependency>
42+
<dependency>
43+
<groupId>io.quarkus</groupId>
44+
<artifactId>quarkus-resteasy-reactive-server-spi-deployment</artifactId>
45+
</dependency>
4246
</dependencies>
4347
<build>
4448
<resources>

extensions/amazon-lambda-rest/deployment/src/main/java/io/quarkus/amazon/lambda/http/deployment/AmazonLambdaHttpProcessor.java

+12-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import static io.vertx.core.file.impl.FileResolverImpl.CACHE_DIR_BASE_PROP_NAME;
44

5-
import org.jboss.logging.Logger;
5+
import org.jboss.jandex.DotName;
66

77
import io.quarkus.amazon.lambda.deployment.LambdaUtil;
88
import io.quarkus.amazon.lambda.deployment.ProvidedAmazonLambdaHandlerBuildItem;
@@ -23,6 +23,7 @@
2323
import io.quarkus.amazon.lambda.http.model.Headers;
2424
import io.quarkus.amazon.lambda.http.model.MultiValuedTreeMap;
2525
import io.quarkus.arc.deployment.AdditionalBeanBuildItem;
26+
import io.quarkus.arc.deployment.UnremovableBeanBuildItem;
2627
import io.quarkus.deployment.annotations.BuildProducer;
2728
import io.quarkus.deployment.annotations.BuildStep;
2829
import io.quarkus.deployment.annotations.ExecutionTime;
@@ -31,15 +32,16 @@
3132
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
3233
import io.quarkus.deployment.pkg.builditem.ArtifactResultBuildItem;
3334
import io.quarkus.deployment.pkg.builditem.OutputTargetBuildItem;
35+
import io.quarkus.resteasy.reactive.server.spi.ContextTypeBuildItem;
3436
import io.quarkus.vertx.http.deployment.RequireVirtualHttpBuildItem;
3537

3638
public class AmazonLambdaHttpProcessor {
37-
private static final Logger log = Logger.getLogger(AmazonLambdaHttpProcessor.class);
39+
private static final DotName AWS_PROXY_REQUEST_CONTEXT = DotName.createSimple(AwsProxyRequestContext.class);
3840

3941
@BuildStep
4042
public void setupCDI(BuildProducer<AdditionalBeanBuildItem> additionalBeans) {
4143
AdditionalBeanBuildItem.Builder builder = AdditionalBeanBuildItem.builder();
42-
builder.addBeanClasses(AwsHttpContextProducers.class);
44+
builder.addBeanClasses(AwsHttpContextProducers.class).setUnremovable();
4345
additionalBeans.produce(builder.build());
4446
}
4547

@@ -112,4 +114,11 @@ public void generateScripts(OutputTargetBuildItem target,
112114
.replace("${lambdaName}", lambdaName);
113115
LambdaUtil.writeFile(target, "sam.native.yaml", output);
114116
}
117+
118+
@BuildStep
119+
public void resteasyReactiveIntegration(BuildProducer<ContextTypeBuildItem> contextTypeProducer,
120+
BuildProducer<UnremovableBeanBuildItem> unremovableBeanProducer) {
121+
contextTypeProducer.produce(new ContextTypeBuildItem(AWS_PROXY_REQUEST_CONTEXT));
122+
unremovableBeanProducer.produce(UnremovableBeanBuildItem.beanTypes(AWS_PROXY_REQUEST_CONTEXT));
123+
}
115124
}

integration-tests/amazon-lambda-rest/pom.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
</dependency>
2020
<dependency>
2121
<groupId>io.quarkus</groupId>
22-
<artifactId>quarkus-resteasy</artifactId>
22+
<artifactId>quarkus-resteasy-reactive</artifactId>
2323
</dependency>
2424
<dependency>
2525
<groupId>io.quarkus</groupId>
@@ -79,7 +79,7 @@
7979
</dependency>
8080
<dependency>
8181
<groupId>io.quarkus</groupId>
82-
<artifactId>quarkus-resteasy-deployment</artifactId>
82+
<artifactId>quarkus-resteasy-reactive-deployment</artifactId>
8383
<version>${project.version}</version>
8484
<type>pom</type>
8585
<scope>test</scope>

0 commit comments

Comments
 (0)