You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ja...@apache.org on 2020/10/26 10:26:23 UTC
[camel-quarkus] branch master updated: Leverage
camel-platform-http-vertx in platform-http extension
This is an automated email from the ASF dual-hosted git repository.
jamesnetherton pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/master by this push:
new e5cdc91 Leverage camel-platform-http-vertx in platform-http extension
e5cdc91 is described below
commit e5cdc9115e8a299f118b08fc190549f0c00b7383
Author: James Netherton <ja...@gmail.com>
AuthorDate: Mon Oct 26 08:26:44 2020 +0000
Leverage camel-platform-http-vertx in platform-http extension
Fixes #1144
---
.../core/deployment/AttachmentsProcessor.java | 47 --
.../deployment/spi/UploadAttacherBuildItem.java | 46 --
.../quarkus/core/CoreAttachmentsRecorder.java | 41 --
.../apache/camel/quarkus/core/UploadAttacher.java | 38 --
.../deployment/AttachmentsProcessor.java | 19 -
.../component/attachments/AttachmentsRecorder.java | 43 --
.../component/attachments/CamelFileDataSource.java | 60 ---
extensions/platform-http/deployment/pom.xml | 4 +
.../http/deployment/PlatformHttpProcessor.java | 36 +-
extensions/platform-http/runtime/pom.xml | 6 +-
.../http/runtime/PlatformHttpRecorder.java | 25 +-
.../http/runtime/QuarkusPlatformHttpConsumer.java | 510 ---------------------
.../http/runtime/QuarkusPlatformHttpEngine.java | 51 ---
.../platform/http/it/PlatformHttpResource.java | 5 -
.../http/server/it/PlatformHttpEngineTest.java | 7 +-
integration-tests/platform-http/pom.xml | 17 -
poms/bom/pom.xml | 2 +-
17 files changed, 49 insertions(+), 908 deletions(-)
diff --git a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/AttachmentsProcessor.java b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/AttachmentsProcessor.java
deleted file mode 100644
index d6aa4c2..0000000
--- a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/AttachmentsProcessor.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.quarkus.core.deployment;
-
-import io.quarkus.deployment.annotations.BuildStep;
-import io.quarkus.deployment.annotations.ExecutionTime;
-import io.quarkus.deployment.annotations.Overridable;
-import io.quarkus.deployment.annotations.Record;
-import org.apache.camel.quarkus.core.CoreAttachmentsRecorder;
-import org.apache.camel.quarkus.core.UploadAttacher;
-import org.apache.camel.quarkus.core.deployment.spi.UploadAttacherBuildItem;
-
-/**
- * Build steps related to Camel Attachments.
- */
-public class AttachmentsProcessor {
-
- /**
- * Produces an {@link UploadAttacherBuildItem} holding a no-op {@link UploadAttacher}.
- * <p>
- * Note that this {@link BuildStep} is effective only if {@code camel-quarkus-attachments} extension is not in
- * the class path.
- *
- * @param recorder the {@link CoreAttachmentsRecorder}
- * @return a new {@link UploadAttacherBuildItem}
- */
- @Overridable
- @Record(value = ExecutionTime.STATIC_INIT, optional = true)
- @BuildStep
- UploadAttacherBuildItem uploadAttacher(CoreAttachmentsRecorder recorder) {
- return new UploadAttacherBuildItem(recorder.createNoOpUploadAttacher());
- }
-}
diff --git a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/spi/UploadAttacherBuildItem.java b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/spi/UploadAttacherBuildItem.java
deleted file mode 100644
index a7eaa35..0000000
--- a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/spi/UploadAttacherBuildItem.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.quarkus.core.deployment.spi;
-
-import io.quarkus.builder.item.SimpleBuildItem;
-import io.quarkus.runtime.RuntimeValue;
-import org.apache.camel.quarkus.core.UploadAttacher;
-
-/**
- * Holds the {@link UploadAttacher} {@link RuntimeValue}.
- * <p>
- * There are two producers for this item:
- * <ul>
- * <li>The default one producing a no-op {@link UploadAttacher}
- * <li>
- * <li>The "real" one available in {@code camel-quarkus-attachments}
- * extension</li>
- * <ul>
- * The "real" one is used only if the {@code camel-quarkus-attachments}
- * extension is present in the class path.
- */
-public final class UploadAttacherBuildItem extends SimpleBuildItem {
- private final RuntimeValue<UploadAttacher> instance;
-
- public UploadAttacherBuildItem(RuntimeValue<UploadAttacher> instance) {
- this.instance = instance;
- }
-
- public RuntimeValue<UploadAttacher> getInstance() {
- return instance;
- }
-}
diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CoreAttachmentsRecorder.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CoreAttachmentsRecorder.java
deleted file mode 100644
index f2ecdf1..0000000
--- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CoreAttachmentsRecorder.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.quarkus.core;
-
-import java.io.File;
-
-import io.quarkus.runtime.RuntimeValue;
-import io.quarkus.runtime.annotations.Recorder;
-import org.apache.camel.Message;
-
-@Recorder
-public class CoreAttachmentsRecorder {
-
- public RuntimeValue<UploadAttacher> createNoOpUploadAttacher() {
- return new RuntimeValue<>((File localFile, String fileName, Message message) -> {
- throw new RuntimeException(
- String.format(
- "File %s will not be attached to message %s because camel-quarkus-attachments is not in the class path."
- + " You have several options to handle this situation:"
- + " (a) Add camel-quarkus-attachments dependency to your project if you want Camel to attach the uploads to Camel messages"
- + " (b) Disable the uploads altogether by setting quarkus.http.body.handle-file-uploads = false in your application.proprties"
- + " (c) Ignore this message because it is perhaps caused by clients out of your control",
- fileName,
- message));
- });
- }
-}
diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/UploadAttacher.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/UploadAttacher.java
deleted file mode 100644
index 89a930a..0000000
--- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/UploadAttacher.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.quarkus.core;
-
-import java.io.File;
-
-import org.apache.camel.Message;
-
-/**
- * Attaches file uploads to Camel {@link Message}s.
- */
-public interface UploadAttacher {
-
- /**
- * Attach the uploaded file represented by the given {@code localFile} and {@code fileName} to the given
- * {@code message}
- *
- * @param localFile the uploaded file stored locally
- * @param fileName the name of the upload as sent by the client
- * @param message the {@link Message} to attach the upload to
- */
- void attachUpload(File localFile, String fileName, Message message);
-
-}
diff --git a/extensions/attachments/deployment/src/main/java/org/apache/camel/quarkus/component/attachments/deployment/AttachmentsProcessor.java b/extensions/attachments/deployment/src/main/java/org/apache/camel/quarkus/component/attachments/deployment/AttachmentsProcessor.java
index 79a36d3..8454f92 100644
--- a/extensions/attachments/deployment/src/main/java/org/apache/camel/quarkus/component/attachments/deployment/AttachmentsProcessor.java
+++ b/extensions/attachments/deployment/src/main/java/org/apache/camel/quarkus/component/attachments/deployment/AttachmentsProcessor.java
@@ -17,12 +17,7 @@
package org.apache.camel.quarkus.component.attachments.deployment;
import io.quarkus.deployment.annotations.BuildStep;
-import io.quarkus.deployment.annotations.ExecutionTime;
-import io.quarkus.deployment.annotations.Record;
import io.quarkus.deployment.builditem.FeatureBuildItem;
-import org.apache.camel.quarkus.component.attachments.AttachmentsRecorder;
-import org.apache.camel.quarkus.core.UploadAttacher;
-import org.apache.camel.quarkus.core.deployment.spi.UploadAttacherBuildItem;
class AttachmentsProcessor {
@@ -32,18 +27,4 @@ class AttachmentsProcessor {
FeatureBuildItem feature() {
return new FeatureBuildItem(FEATURE);
}
-
- /**
- * Produces the "real" {@link UploadAttacher} thus overriding the default no-op one produced by
- * {@code camel-quarkus-core-deployment}.
- *
- * @param recorder the {@link AttachmentsRecorder}
- * @return a new {@link UploadAttacherBuildItem}
- */
- @Record(ExecutionTime.STATIC_INIT)
- @BuildStep
- UploadAttacherBuildItem uploadAttacher(AttachmentsRecorder recorder) {
- return new UploadAttacherBuildItem(recorder.creatUploadAttacher());
- }
-
}
diff --git a/extensions/attachments/runtime/src/main/java/org/apache/camel/quarkus/component/attachments/AttachmentsRecorder.java b/extensions/attachments/runtime/src/main/java/org/apache/camel/quarkus/component/attachments/AttachmentsRecorder.java
deleted file mode 100644
index 646a0c8..0000000
--- a/extensions/attachments/runtime/src/main/java/org/apache/camel/quarkus/component/attachments/AttachmentsRecorder.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.quarkus.component.attachments;
-
-import java.io.File;
-
-import javax.activation.DataHandler;
-
-import io.quarkus.runtime.RuntimeValue;
-import io.quarkus.runtime.annotations.Recorder;
-import org.apache.camel.Message;
-import org.apache.camel.attachment.AttachmentMessage;
-import org.apache.camel.quarkus.core.UploadAttacher;
-import org.jboss.logging.Logger;
-
-@Recorder
-public class AttachmentsRecorder {
-
- private static final Logger LOG = Logger.getLogger(AttachmentMessage.class);
-
- public RuntimeValue<UploadAttacher> creatUploadAttacher() {
- return new RuntimeValue<>((File localFile, String fileName, Message message) -> {
- LOG.tracef("Attaching file %s to message %s", fileName, message);
- final AttachmentMessage am = message.getExchange().getMessage(AttachmentMessage.class);
- am.addAttachment(fileName, new DataHandler(new CamelFileDataSource(localFile, fileName)));
- });
- }
-
-}
diff --git a/extensions/attachments/runtime/src/main/java/org/apache/camel/quarkus/component/attachments/CamelFileDataSource.java b/extensions/attachments/runtime/src/main/java/org/apache/camel/quarkus/component/attachments/CamelFileDataSource.java
deleted file mode 100644
index 273b1a8..0000000
--- a/extensions/attachments/runtime/src/main/java/org/apache/camel/quarkus/component/attachments/CamelFileDataSource.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.quarkus.component.attachments;
-
-import java.io.File;
-
-import javax.activation.FileDataSource;
-import javax.activation.FileTypeMap;
-
-/**
- * Copied from {@code camel-http-common} as we cannot depend on it here because
- * we do not want to depend on the {@code servlet-api}.
- */
-public class CamelFileDataSource extends FileDataSource {
- private final String fileName;
- private FileTypeMap typeMap;
-
- public CamelFileDataSource(File file, String fileName) {
- super(file);
- this.fileName = fileName;
- }
-
- @Override
- public String getContentType() {
- if (typeMap == null) {
- return FileTypeMap.getDefaultFileTypeMap().getContentType(fileName);
- } else {
- return typeMap.getContentType(fileName);
- }
- }
-
- @Override
- public void setFileTypeMap(FileTypeMap map) {
- typeMap = map;
- }
-
- @Override
- public String getName() {
- if (fileName != null) {
- return fileName;
- } else {
- return super.getName();
- }
- }
-
-}
diff --git a/extensions/platform-http/deployment/pom.xml b/extensions/platform-http/deployment/pom.xml
index 796f446..848cd64 100644
--- a/extensions/platform-http/deployment/pom.xml
+++ b/extensions/platform-http/deployment/pom.xml
@@ -36,6 +36,10 @@
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-attachments-deployment</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-platform-http</artifactId>
</dependency>
diff --git a/extensions/platform-http/deployment/src/main/java/org/apache/camel/quarkus/component/platform/http/deployment/PlatformHttpProcessor.java b/extensions/platform-http/deployment/src/main/java/org/apache/camel/quarkus/component/platform/http/deployment/PlatformHttpProcessor.java
index 83deb21..61c58ee 100644
--- a/extensions/platform-http/deployment/src/main/java/org/apache/camel/quarkus/component/platform/http/deployment/PlatformHttpProcessor.java
+++ b/extensions/platform-http/deployment/src/main/java/org/apache/camel/quarkus/component/platform/http/deployment/PlatformHttpProcessor.java
@@ -16,22 +16,22 @@
*/
package org.apache.camel.quarkus.component.platform.http.deployment;
-import java.util.Collections;
-
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.annotations.ExecutionTime;
import io.quarkus.deployment.annotations.Record;
import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.vertx.deployment.VertxBuildItem;
import io.quarkus.vertx.http.deployment.BodyHandlerBuildItem;
import io.quarkus.vertx.http.deployment.VertxWebRouterBuildItem;
+import io.vertx.ext.web.Router;
import org.apache.camel.component.platform.http.PlatformHttpComponent;
import org.apache.camel.component.platform.http.PlatformHttpConstants;
+import org.apache.camel.component.platform.http.vertx.VertxPlatformHttpEngine;
+import org.apache.camel.component.platform.http.vertx.VertxPlatformHttpRouter;
import org.apache.camel.quarkus.component.platform.http.runtime.PlatformHttpRecorder;
-import org.apache.camel.quarkus.component.platform.http.runtime.QuarkusPlatformHttpEngine;
import org.apache.camel.quarkus.core.deployment.spi.CamelRuntimeBeanBuildItem;
import org.apache.camel.quarkus.core.deployment.spi.CamelServiceFilter;
import org.apache.camel.quarkus.core.deployment.spi.CamelServiceFilterBuildItem;
-import org.apache.camel.quarkus.core.deployment.spi.UploadAttacherBuildItem;
class PlatformHttpProcessor {
private static final String FEATURE = "camel-platform-http";
@@ -52,29 +52,33 @@ class PlatformHttpProcessor {
@Record(ExecutionTime.RUNTIME_INIT)
@BuildStep
- PlatformHttpEngineBuildItem platformHttpEngine(
- PlatformHttpRecorder recorder,
- VertxWebRouterBuildItem router,
- BodyHandlerBuildItem bodyHandler,
- UploadAttacherBuildItem uploadAttacher) {
-
- return new PlatformHttpEngineBuildItem(
- recorder.createEngine(
- router.getRouter(),
- Collections.singletonList(bodyHandler.getHandler()),
- uploadAttacher.getInstance()));
+ PlatformHttpEngineBuildItem platformHttpEngine(PlatformHttpRecorder recorder) {
+ return new PlatformHttpEngineBuildItem(recorder.createEngine());
}
@BuildStep
CamelRuntimeBeanBuildItem platformHttpEngineBean(PlatformHttpEngineBuildItem engine) {
return new CamelRuntimeBeanBuildItem(
PlatformHttpConstants.PLATFORM_HTTP_ENGINE_NAME,
- QuarkusPlatformHttpEngine.class.getName(),
+ VertxPlatformHttpEngine.class.getName(),
engine.getInstance());
}
@Record(ExecutionTime.RUNTIME_INIT)
@BuildStep
+ CamelRuntimeBeanBuildItem platformHttpRouterBean(
+ VertxBuildItem vertx,
+ VertxWebRouterBuildItem router,
+ BodyHandlerBuildItem bodyHandler,
+ PlatformHttpRecorder recorder) {
+ return new CamelRuntimeBeanBuildItem(
+ VertxPlatformHttpRouter.PLATFORM_HTTP_ROUTER_NAME,
+ Router.class.getName(),
+ recorder.createVertxPlatformHttpRouter(vertx.getVertx(), router.getRouter(), bodyHandler.getHandler()));
+ }
+
+ @Record(ExecutionTime.RUNTIME_INIT)
+ @BuildStep
CamelRuntimeBeanBuildItem platformHttpComponentBean(PlatformHttpRecorder recorder, PlatformHttpEngineBuildItem engine) {
return new CamelRuntimeBeanBuildItem(
PlatformHttpConstants.PLATFORM_HTTP_COMPONENT_NAME,
diff --git a/extensions/platform-http/runtime/pom.xml b/extensions/platform-http/runtime/pom.xml
index 3e1864d..014de72 100644
--- a/extensions/platform-http/runtime/pom.xml
+++ b/extensions/platform-http/runtime/pom.xml
@@ -52,8 +52,12 @@
<artifactId>camel-quarkus-core</artifactId>
</dependency>
<dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-attachments</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.apache.camel</groupId>
- <artifactId>camel-platform-http</artifactId>
+ <artifactId>camel-platform-http-vertx</artifactId>
</dependency>
<dependency>
diff --git a/extensions/platform-http/runtime/src/main/java/org/apache/camel/quarkus/component/platform/http/runtime/PlatformHttpRecorder.java b/extensions/platform-http/runtime/src/main/java/org/apache/camel/quarkus/component/platform/http/runtime/PlatformHttpRecorder.java
index a33a277..29b7351 100644
--- a/extensions/platform-http/runtime/src/main/java/org/apache/camel/quarkus/component/platform/http/runtime/PlatformHttpRecorder.java
+++ b/extensions/platform-http/runtime/src/main/java/org/apache/camel/quarkus/component/platform/http/runtime/PlatformHttpRecorder.java
@@ -16,30 +16,37 @@
*/
package org.apache.camel.quarkus.component.platform.http.runtime;
-import java.util.List;
-
import io.quarkus.runtime.RuntimeValue;
import io.quarkus.runtime.annotations.Recorder;
import io.vertx.core.Handler;
+import io.vertx.core.Vertx;
import io.vertx.ext.web.Router;
import io.vertx.ext.web.RoutingContext;
import org.apache.camel.component.platform.http.PlatformHttpComponent;
import org.apache.camel.component.platform.http.spi.PlatformHttpEngine;
-import org.apache.camel.quarkus.core.UploadAttacher;
+import org.apache.camel.component.platform.http.vertx.VertxPlatformHttpEngine;
+import org.apache.camel.component.platform.http.vertx.VertxPlatformHttpRouter;
@Recorder
public class PlatformHttpRecorder {
- public RuntimeValue<PlatformHttpEngine> createEngine(
- RuntimeValue<Router> router,
- List<Handler<RoutingContext>> handlers,
- RuntimeValue<UploadAttacher> uploadAttacher) {
- return new RuntimeValue<>(new QuarkusPlatformHttpEngine(router.getValue(), handlers, uploadAttacher.getValue()));
+ public RuntimeValue<PlatformHttpEngine> createEngine() {
+ return new RuntimeValue<>(new VertxPlatformHttpEngine());
}
public RuntimeValue<PlatformHttpComponent> createComponent(RuntimeValue<PlatformHttpEngine> engine) {
PlatformHttpComponent component = new PlatformHttpComponent();
component.setEngine(engine.getValue());
-
return new RuntimeValue<>(component);
}
+
+ public RuntimeValue<VertxPlatformHttpRouter> createVertxPlatformHttpRouter(RuntimeValue<Vertx> vertx,
+ RuntimeValue<Router> router, Handler<RoutingContext> handler) {
+ VertxPlatformHttpRouter vertxPlatformHttpRouter = new VertxPlatformHttpRouter(vertx.getValue(), router.getValue()) {
+ @Override
+ public Handler<RoutingContext> bodyHandler() {
+ return handler;
+ }
+ };
+ return new RuntimeValue<>(vertxPlatformHttpRouter);
+ }
}
diff --git a/extensions/platform-http/runtime/src/main/java/org/apache/camel/quarkus/component/platform/http/runtime/QuarkusPlatformHttpConsumer.java b/extensions/platform-http/runtime/src/main/java/org/apache/camel/quarkus/component/platform/http/runtime/QuarkusPlatformHttpConsumer.java
deleted file mode 100644
index 0cc129e..0000000
--- a/extensions/platform-http/runtime/src/main/java/org/apache/camel/quarkus/component/platform/http/runtime/QuarkusPlatformHttpConsumer.java
+++ /dev/null
@@ -1,510 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.quarkus.component.platform.http.runtime;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.nio.ByteBuffer;
-import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-import java.util.regex.Pattern;
-
-import io.vertx.core.Handler;
-import io.vertx.core.MultiMap;
-import io.vertx.core.Vertx;
-import io.vertx.core.buffer.Buffer;
-import io.vertx.core.http.HttpMethod;
-import io.vertx.core.http.HttpServerRequest;
-import io.vertx.core.http.HttpServerResponse;
-import io.vertx.ext.web.FileUpload;
-import io.vertx.ext.web.Route;
-import io.vertx.ext.web.Router;
-import io.vertx.ext.web.RoutingContext;
-import org.apache.camel.Consumer;
-import org.apache.camel.Exchange;
-import org.apache.camel.Message;
-import org.apache.camel.NoTypeConversionAvailableException;
-import org.apache.camel.Processor;
-import org.apache.camel.TypeConversionException;
-import org.apache.camel.TypeConverter;
-import org.apache.camel.component.platform.http.PlatformHttpComponent;
-import org.apache.camel.component.platform.http.PlatformHttpEndpoint;
-import org.apache.camel.component.platform.http.spi.Method;
-import org.apache.camel.quarkus.core.UploadAttacher;
-import org.apache.camel.spi.HeaderFilterStrategy;
-import org.apache.camel.support.DefaultConsumer;
-import org.apache.camel.support.DefaultMessage;
-import org.apache.camel.support.ExchangeHelper;
-import org.apache.camel.support.MessageHelper;
-import org.apache.camel.support.ObjectHelper;
-import org.apache.camel.util.FileUtil;
-import org.jboss.logging.Logger;
-
-/**
- * A Quarkus specific {@link Consumer} for the {@link PlatformHttpComponent}.
- */
-public class QuarkusPlatformHttpConsumer extends DefaultConsumer {
- private static final Logger LOG = Logger.getLogger(QuarkusPlatformHttpConsumer.class);
-
- private final Router router;
- private final List<Handler<RoutingContext>> handlers;
- private final String fileNameExtWhitelist;
- private final UploadAttacher uploadAttacher;
- private final Pattern PATH_PARAMETER_PATTERN = Pattern.compile("\\{([^/}]+)\\}");
- private Route route;
-
- public QuarkusPlatformHttpConsumer(PlatformHttpEndpoint endpoint, Processor processor, Router router,
- List<Handler<RoutingContext>> handlers, UploadAttacher uploadAttacher) {
- super(endpoint, processor);
- this.router = router;
- this.handlers = handlers;
- String list = endpoint.getFileNameExtWhitelist();
- this.fileNameExtWhitelist = list == null ? list : list.toLowerCase(Locale.US);
- this.uploadAttacher = uploadAttacher;
- }
-
- static Object toHttpResponse(HttpServerResponse response, Message message, HeaderFilterStrategy headerFilterStrategy) {
- final Exchange exchange = message.getExchange();
-
- final int code = determineResponseCode(exchange, message.getBody());
- response.setStatusCode(code);
-
- final TypeConverter tc = exchange.getContext().getTypeConverter();
-
- // copy headers from Message to Response
- if (headerFilterStrategy != null) {
- for (Map.Entry<String, Object> entry : message.getHeaders().entrySet()) {
- final String key = entry.getKey();
- final Object value = entry.getValue();
- // use an iterator as there can be multiple values. (must not use a delimiter)
- final Iterator<?> it = ObjectHelper.createIterator(value, null);
- String firstValue = null;
- List<String> values = null;
- while (it.hasNext()) {
- final String headerValue = tc.convertTo(String.class, it.next());
- if (headerValue != null
- && !headerFilterStrategy.applyFilterToCamelHeaders(key, headerValue, exchange)) {
- if (firstValue == null) {
- firstValue = headerValue;
- } else {
- if (values == null) {
- values = new ArrayList<String>();
- values.add(firstValue);
- }
- values.add(headerValue);
- }
- }
- }
- if (values != null) {
- response.putHeader(key, values);
- } else if (firstValue != null) {
- response.putHeader(key, firstValue);
- }
- }
- }
-
- Object body = message.getBody();
- final Exception exception = exchange.getException();
-
- if (exception != null) {
- // we failed due an exception so print it as plain text
- final StringWriter sw = new StringWriter();
- final PrintWriter pw = new PrintWriter(sw);
- exception.printStackTrace(pw);
-
- // the body should then be the stacktrace
- body = ByteBuffer.wrap(sw.toString().getBytes(StandardCharsets.UTF_8));
- // force content type to be text/plain as that is what the stacktrace is
- message.setHeader(Exchange.CONTENT_TYPE, "text/plain; charset=utf-8");
-
- // and mark the exception as failure handled, as we handled it by returning it as the response
- ExchangeHelper.setFailureHandled(exchange);
- }
-
- // set the content-length if it can be determined, or chunked encoding
- final Integer length = determineContentLength(exchange, body);
- if (length != null) {
- response.putHeader("Content-Length", String.valueOf(length));
- } else {
- response.setChunked(true);
- }
-
- // set the content type in the response.
- final String contentType = MessageHelper.getContentType(message);
- if (contentType != null) {
- // set content-type
- response.putHeader("Content-Type", contentType);
- }
- return body;
- }
-
- /*
- * Copied from org.apache.camel.component.platform.http.vertx.VertxPlatformHttpSupport.determineContentLength(Exchange, Object)
- */
- static Integer determineContentLength(Exchange camelExchange, Object body) {
- if (body instanceof byte[]) {
- return ((byte[]) body).length;
- } else if (body instanceof ByteBuffer) {
- return ((ByteBuffer) body).remaining();
- }
- return null;
- }
-
- /*
- * Copied from org.apache.camel.http.common.DefaultHttpBinding.determineResponseCode(Exchange, Object)
- * If DefaultHttpBinding.determineResponseCode(Exchange, Object) is moved to a module without the servlet-api
- * dependency we could eventually consume it from there.
- */
- static int determineResponseCode(Exchange camelExchange, Object body) {
- boolean failed = camelExchange.isFailed();
- int defaultCode = failed ? 500 : 200;
-
- Message message = camelExchange.getMessage();
- Integer currentCode = message.getHeader(Exchange.HTTP_RESPONSE_CODE, Integer.class);
- int codeToUse = currentCode == null ? defaultCode : currentCode;
-
- if (codeToUse != 500) {
- if ((body == null) || (body instanceof String && ((String) body).trim().isEmpty())) {
- // no content
- codeToUse = currentCode == null ? 204 : currentCode;
- }
- }
-
- return codeToUse;
- }
-
- static void writeResponse(RoutingContext ctx, Exchange camelExchange, HeaderFilterStrategy headerFilterStrategy) {
- final Object body = toHttpResponse(ctx.response(), camelExchange.getMessage(), headerFilterStrategy);
-
- final HttpServerResponse response = ctx.response();
- if (body == null) {
- LOG.tracef("No payload to send as reply for exchange: %s", camelExchange);
- response.end();
- } else if (body instanceof String) {
- response.end((String) body);
- } else if (body instanceof InputStream) {
- final byte[] bytes = new byte[4096];
- try (InputStream in = (InputStream) body) {
- int len;
- while ((len = in.read(bytes)) >= 0) {
- final Buffer b = Buffer.buffer(len);
- b.appendBytes(bytes, 0, len);
- response.write(b);
- }
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- response.end();
- } else {
- final TypeConverter tc = camelExchange.getContext().getTypeConverter();
- try {
- final ByteBuffer bb = tc.mandatoryConvertTo(ByteBuffer.class, body);
- final Buffer b = Buffer.buffer(bb.capacity());
- b.setBytes(0, bb);
- response.end(b);
- } catch (TypeConversionException | NoTypeConversionAvailableException e) {
- throw new RuntimeException(e);
- }
- }
-
- }
-
- static void populateCamelHeaders(
- RoutingContext ctx,
- Map<String, Object> headersMap,
- Exchange exchange,
- HeaderFilterStrategy headerFilterStrategy) {
-
- final HttpServerRequest request = ctx.request();
- headersMap.put(Exchange.HTTP_PATH, request.path());
-
- if (headerFilterStrategy != null) {
- final MultiMap requestHeaders = request.headers();
- final String authz = requestHeaders.get("authorization");
- // store a special header that this request was authenticated using HTTP Basic
- if (authz != null && authz.trim().startsWith("Basic")) {
- if (!headerFilterStrategy.applyFilterToExternalHeaders(Exchange.AUTHENTICATION, "Basic", exchange)) {
- appendHeader(headersMap, Exchange.AUTHENTICATION, "Basic");
- }
- }
- for (String name : requestHeaders.names()) {
- // add the headers one by one, and use the header filter strategy
- for (String value : requestHeaders.getAll(name)) {
- if (!headerFilterStrategy.applyFilterToExternalHeaders(name.toString(), value, exchange)) {
- appendHeader(headersMap, name.toString(), value);
- }
- }
- }
-
- // process uri parameters as headers
- final MultiMap pathParameters = ctx.queryParams();
- // continue if the map is not empty, otherwise there are no params
- if (!pathParameters.isEmpty()) {
- for (String name : pathParameters.names()) {
- for (String value : pathParameters.getAll(name)) {
- if (!headerFilterStrategy.applyFilterToExternalHeaders(name, value, exchange)) {
- appendHeader(headersMap, name, value);
- }
- }
- }
- }
- }
-
- /* Path parameters */
- for (Entry<String, String> en : ctx.pathParams().entrySet()) {
- appendHeader(headersMap, en.getKey(), en.getValue());
- }
-
- // NOTE: these headers is applied using the same logic as camel-http/camel-jetty to be consistent
- headersMap.put(Exchange.HTTP_METHOD, request.method().toString());
- // strip query parameters from the uri
- headersMap.put(Exchange.HTTP_URL, request.absoluteURI());
- // uri is without the host and port
- headersMap.put(Exchange.HTTP_URI, request.uri());
- headersMap.put(Exchange.HTTP_QUERY, request.query());
- headersMap.put(Exchange.HTTP_RAW_QUERY, request.query());
- }
-
- @SuppressWarnings("unchecked")
- static void appendHeader(Map<String, Object> headers, String key, Object value) {
- if (headers.containsKey(key)) {
- Object existing = headers.get(key);
- List<Object> list;
- if (existing instanceof List) {
- list = (List<Object>) existing;
- } else {
- list = new ArrayList<>();
- list.add(existing);
- }
- list.add(value);
- value = list;
- }
-
- headers.put(key, value);
- }
-
- @Override
- public PlatformHttpEndpoint getEndpoint() {
- return (PlatformHttpEndpoint) super.getEndpoint();
- }
-
- @Override
- protected void doStart() throws Exception {
- super.doStart();
-
- final PlatformHttpEndpoint endpoint = getEndpoint();
- final String path = endpoint.getPath();
- /* Transform from the Camel path param syntax /path/{key} to vert.x web's /path/:key */
- final String vertxPathParamPath = PATH_PARAMETER_PATTERN.matcher(path).replaceAll(":$1");
- final Route newRoute = router.route(vertxPathParamPath);
-
- final Set<Method> methods = Method.parseList(endpoint.getHttpMethodRestrict());
- if (!methods.equals(Method.getAll())) {
- methods.stream().forEach(m -> newRoute.method(HttpMethod.valueOf(m.name())));
- }
- if (endpoint.getConsumes() != null) {
- newRoute.consumes(endpoint.getConsumes());
- }
- if (endpoint.getProduces() != null) {
- newRoute.produces(endpoint.getProduces());
- }
-
- handlers.forEach(newRoute::handler);
-
- newRoute.handler(this::handleRequest);
-
- this.route = newRoute;
- }
-
- @Override
- protected void doStop() throws Exception {
- if (route != null) {
- route.remove();
- route = null;
- }
- super.doStop();
- }
-
- @Override
- protected void doSuspend() throws Exception {
- if (route != null) {
- route.disable();
- }
- super.doSuspend();
- }
-
- @Override
- protected void doResume() throws Exception {
- if (route != null) {
- route.enable();
- }
- super.doResume();
- }
-
- private void handleRequest(RoutingContext ctx) {
- final Vertx vertx = ctx.vertx();
- final Exchange exchange = toExchange(ctx);
-
- //
- // We do not know if any of the processing logic of the route is synchronous or not so we
- // need to process the request on a thread on the Vert.x worker pool.
- //
- // As example, assuming the platform-http component is configured as the transport provider
- // for the rest dsl, then the following code may result in a blocking operation that could
- // block Vert.x event-loop for too long if the target service takes long to respond, as
- // example in case the service is a knative service scaled to zero that could take some time
- // to be come available:
- //
- // rest("/results")
- // .get("/{id}")
- // .route()
- // .removeHeaders("*", "CamelHttpPath")
- // .to("rest:get:?bridgeEndpoint=true");
- //
- vertx.executeBlocking(
- promise -> {
- try {
- createUoW(exchange);
- } catch (Exception e) {
- promise.fail(e);
- return;
- }
-
- getAsyncProcessor().process(exchange, c -> {
- if (!exchange.isFailed()) {
- promise.complete();
- } else {
- promise.fail(exchange.getException());
- }
- });
- },
- false,
- result -> {
- Throwable failure = null;
- try {
- if (result.succeeded()) {
- try {
- writeResponse(ctx, exchange, getEndpoint().getHeaderFilterStrategy());
- } catch (Exception e) {
- failure = e;
- }
- } else {
- failure = result.cause();
- }
-
- if (failure != null) {
- getExceptionHandler().handleException(
- "Failed handling platform-http endpoint " + getEndpoint().getPath(),
- failure);
- ctx.fail(failure);
- }
- } finally {
- doneUoW(exchange);
- }
- });
- }
-
- Exchange toExchange(RoutingContext ctx) {
- final Exchange exchange = getEndpoint().createExchange();
- Message in = toCamelMessage(ctx, exchange);
-
- final String charset = ctx.parsedHeaders().contentType().parameter("charset");
- if (charset != null) {
- exchange.setProperty(Exchange.CHARSET_NAME, charset);
- in.setHeader(Exchange.HTTP_CHARACTER_ENCODING, charset);
- }
-
- exchange.setIn(in);
- return exchange;
- }
-
- Message toCamelMessage(RoutingContext ctx, Exchange exchange) {
- final Message result = new DefaultMessage(exchange);
-
- final HeaderFilterStrategy headerFilterStrategy = getEndpoint().getHeaderFilterStrategy();
- populateCamelHeaders(ctx, result.getHeaders(), exchange, headerFilterStrategy);
- final String mimeType = ctx.parsedHeaders().contentType().value();
- final boolean isMultipartFormData = "multipart/form-data".equals(mimeType);
- if ("application/x-www-form-urlencoded".equals(mimeType) || isMultipartFormData) {
- final MultiMap formData = ctx.request().formAttributes();
- final Map<String, Object> body = new HashMap<>();
- for (String key : formData.names()) {
- for (String value : formData.getAll(key)) {
- if (headerFilterStrategy != null
- && !headerFilterStrategy.applyFilterToExternalHeaders(key, value, exchange)) {
- appendHeader(result.getHeaders(), key, value);
- appendHeader(body, key, value);
- }
- }
- }
- result.setBody(body);
- if (isMultipartFormData) {
- populateAttachments(ctx.fileUploads(), result);
- }
- } else {
- // extract body by myself if undertow parser didn't handle and the method is allowed to have one
- // body is extracted as byte[] then auto TypeConverter kicks in
- Method m = Method.valueOf(ctx.request().method().name());
- if (m.canHaveBody()) {
- final Buffer body = ctx.getBody();
- result.setBody(body.getBytes());
- } else {
- result.setBody(null);
- }
- }
- return result;
- }
-
- void populateAttachments(Set<FileUpload> uploads, Message message) {
- for (FileUpload upload : uploads) {
- final String name = upload.name();
- final String fileName = upload.fileName();
- LOG.tracef("HTTP attachment %s = %s", name, fileName);
- // is the file name accepted
- boolean accepted = true;
-
- if (fileNameExtWhitelist != null) {
- String ext = FileUtil.onlyExt(fileName);
- if (ext != null) {
- ext = ext.toLowerCase(Locale.US);
- if (!fileNameExtWhitelist.equals("*") && !fileNameExtWhitelist.contains(ext)) {
- accepted = false;
- }
- }
- }
- if (accepted) {
- final File localFile = new File(upload.uploadedFileName());
- uploadAttacher.attachUpload(localFile, fileName, message);
- } else {
- LOG.debugf(
- "Cannot add file as attachment: %s because the file is not accepted according to fileNameExtWhitelist: %s",
- fileName, fileNameExtWhitelist);
- }
- }
- }
-
-}
diff --git a/extensions/platform-http/runtime/src/main/java/org/apache/camel/quarkus/component/platform/http/runtime/QuarkusPlatformHttpEngine.java b/extensions/platform-http/runtime/src/main/java/org/apache/camel/quarkus/component/platform/http/runtime/QuarkusPlatformHttpEngine.java
deleted file mode 100644
index a2bf008..0000000
--- a/extensions/platform-http/runtime/src/main/java/org/apache/camel/quarkus/component/platform/http/runtime/QuarkusPlatformHttpEngine.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.quarkus.component.platform.http.runtime;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import io.vertx.core.Handler;
-import io.vertx.ext.web.Router;
-import io.vertx.ext.web.RoutingContext;
-import org.apache.camel.Consumer;
-import org.apache.camel.Processor;
-import org.apache.camel.component.platform.http.PlatformHttpEndpoint;
-import org.apache.camel.component.platform.http.spi.PlatformHttpEngine;
-import org.apache.camel.quarkus.core.UploadAttacher;
-
-public class QuarkusPlatformHttpEngine implements PlatformHttpEngine {
- private final Router router;
- private final List<Handler<RoutingContext>> handlers;
- private final UploadAttacher uploadAttacher;
-
- public QuarkusPlatformHttpEngine(Router router, List<Handler<RoutingContext>> handlers, UploadAttacher uploadAttacher) {
- this.router = router;
- this.handlers = new ArrayList<>(handlers);
- this.uploadAttacher = uploadAttacher;
- }
-
- @Override
- public Consumer createConsumer(PlatformHttpEndpoint endpoint, Processor processor) {
- return new QuarkusPlatformHttpConsumer(endpoint, processor, router, handlers, uploadAttacher);
- }
-
- public List<Handler<RoutingContext>> getHandlers() {
- return Collections.unmodifiableList(this.handlers);
- }
-}
diff --git a/integration-tests/platform-http-engine/src/main/java/org/apache/camel/quarkus/component/platform/http/it/PlatformHttpResource.java b/integration-tests/platform-http-engine/src/main/java/org/apache/camel/quarkus/component/platform/http/it/PlatformHttpResource.java
index 25061df..377c31c 100644
--- a/integration-tests/platform-http-engine/src/main/java/org/apache/camel/quarkus/component/platform/http/it/PlatformHttpResource.java
+++ b/integration-tests/platform-http-engine/src/main/java/org/apache/camel/quarkus/component/platform/http/it/PlatformHttpResource.java
@@ -27,7 +27,6 @@ import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import org.apache.camel.component.platform.http.PlatformHttpConstants;
-import org.apache.camel.quarkus.component.platform.http.runtime.QuarkusPlatformHttpEngine;
import org.apache.camel.spi.Registry;
@Path("/test")
@@ -47,10 +46,6 @@ public class PlatformHttpResource {
if (engine != null) {
builder.add(PlatformHttpConstants.PLATFORM_HTTP_ENGINE_NAME, engine.getClass().getName());
-
- if (engine instanceof QuarkusPlatformHttpEngine) {
- builder.add("handlers-size", ((QuarkusPlatformHttpEngine) engine).getHandlers().size());
- }
}
if (component != null) {
diff --git a/integration-tests/platform-http-engine/src/test/java/org/apache/camel/quarkus/component/http/server/it/PlatformHttpEngineTest.java b/integration-tests/platform-http-engine/src/test/java/org/apache/camel/quarkus/component/http/server/it/PlatformHttpEngineTest.java
index 251a514..460c26b 100644
--- a/integration-tests/platform-http-engine/src/test/java/org/apache/camel/quarkus/component/http/server/it/PlatformHttpEngineTest.java
+++ b/integration-tests/platform-http-engine/src/test/java/org/apache/camel/quarkus/component/http/server/it/PlatformHttpEngineTest.java
@@ -20,7 +20,7 @@ import io.quarkus.test.junit.QuarkusTest;
import io.restassured.RestAssured;
import org.apache.camel.component.platform.http.PlatformHttpComponent;
import org.apache.camel.component.platform.http.PlatformHttpConstants;
-import org.apache.camel.quarkus.component.platform.http.runtime.QuarkusPlatformHttpEngine;
+import org.apache.camel.component.platform.http.vertx.VertxPlatformHttpEngine;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
@@ -36,9 +36,8 @@ class PlatformHttpEngineTest {
.then()
.statusCode(200)
.body(
- PlatformHttpConstants.PLATFORM_HTTP_ENGINE_NAME, is(QuarkusPlatformHttpEngine.class.getName()),
- PlatformHttpConstants.PLATFORM_HTTP_COMPONENT_NAME, is(PlatformHttpComponent.class.getName()),
- "handlers-size", is(1));
+ PlatformHttpConstants.PLATFORM_HTTP_ENGINE_NAME, is(VertxPlatformHttpEngine.class.getName()),
+ PlatformHttpConstants.PLATFORM_HTTP_COMPONENT_NAME, is(PlatformHttpComponent.class.getName()));
}
@Test
diff --git a/integration-tests/platform-http/pom.xml b/integration-tests/platform-http/pom.xml
index 09a490c..24f09ae 100644
--- a/integration-tests/platform-http/pom.xml
+++ b/integration-tests/platform-http/pom.xml
@@ -42,10 +42,6 @@
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-log</artifactId>
</dependency>
- <dependency><!-- Leave this one out (and save ~560 kB of the native image) unless you want to attach uploads to the camel message -->
- <groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-attachments</artifactId>
- </dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-support-webhook</artifactId>
@@ -71,19 +67,6 @@
<!-- The following dependencies guarantee that this module is built after them. You can update them by running `mvn process-resources -Pformat -N` from the source tree root directory -->
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-attachments-deployment</artifactId>
- <version>${project.version}</version>
- <type>pom</type>
- <scope>test</scope>
- <exclusions>
- <exclusion>
- <groupId>*</groupId>
- <artifactId>*</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-log-deployment</artifactId>
<version>${project.version}</version>
<type>pom</type>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index b33bdd3..b07e266 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -1543,7 +1543,7 @@
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
- <artifactId>camel-platform-http</artifactId>
+ <artifactId>camel-platform-http-vertx</artifactId>
<version>${camel.version}</version>
</dependency>
<dependency>