This is an automated email from the ASF dual-hosted git repository.

ppalaga 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 744b5ef  Fix #1066 Remove the need for registering 
RestBindingJaxbDataFormatFactory service
744b5ef is described below

commit 744b5efcb645523dc5e52b48c684b0f41e0ae87a
Author: Peter Palaga <ppal...@redhat.com>
AuthorDate: Wed Jun 10 11:39:52 2020 +0200

    Fix #1066 Remove the need for registering RestBindingJaxbDataFormatFactory 
service
---
 .../quarkus/core/deployment/BuildProcessor.java    | 10 --------
 .../component/jaxb/deployment/JaxbProcessor.java   | 10 ++++++++
 .../quarkus/component/jaxb/JaxbRecorder.java}      | 29 +++++++++-------------
 3 files changed, 22 insertions(+), 27 deletions(-)

diff --git 
a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/BuildProcessor.java
 
b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/BuildProcessor.java
index 77464e1..54d2928 100644
--- 
a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/BuildProcessor.java
+++ 
b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/BuildProcessor.java
@@ -85,8 +85,6 @@ import 
org.apache.camel.quarkus.core.deployment.spi.UploadAttacherBuildItem;
 import org.apache.camel.quarkus.core.deployment.util.CamelSupport;
 import org.apache.camel.quarkus.core.deployment.util.PathFilter;
 import org.apache.camel.quarkus.support.common.CamelCapabilities;
-import org.apache.camel.spi.FactoryFinder;
-import org.apache.camel.spi.RestBindingJaxbDataFormatFactory;
 import org.apache.camel.spi.TypeConverterLoader;
 import org.apache.camel.spi.TypeConverterRegistry;
 import org.jboss.jandex.ClassInfo;
@@ -191,14 +189,6 @@ class BuildProcessor {
                     "META-INF/services/org/apache/camel/dataformat/*",
                     "META-INF/services/org/apache/camel/send-dynamic/*"));
 
-            // TODO: this can be removed and the 
RestBindingJaxbDataFormatFactory can be discovered
-            //       and instantiated when camel is on the classpath with a 
camel context customizer
-            //       when https://github.com/apache/camel-quarkus/issues/984 
will be implemented
-            services.produce(new CamelServicePatternBuildItem(
-                    CamelServiceDestination.DISCOVERY,
-                    true,
-                    FactoryFinder.DEFAULT_PATH + 
RestBindingJaxbDataFormatFactory.FACTORY));
-
             services.produce(new CamelServicePatternBuildItem(
                     CamelServiceDestination.DISCOVERY,
                     false,
diff --git 
a/extensions/jaxb/deployment/src/main/java/org/apache/camel/quarkus/component/jaxb/deployment/JaxbProcessor.java
 
b/extensions/jaxb/deployment/src/main/java/org/apache/camel/quarkus/component/jaxb/deployment/JaxbProcessor.java
index 8808ea6..c01f2f8 100644
--- 
a/extensions/jaxb/deployment/src/main/java/org/apache/camel/quarkus/component/jaxb/deployment/JaxbProcessor.java
+++ 
b/extensions/jaxb/deployment/src/main/java/org/apache/camel/quarkus/component/jaxb/deployment/JaxbProcessor.java
@@ -18,8 +18,12 @@ package org.apache.camel.quarkus.component.jaxb.deployment;
 
 import com.sun.xml.bind.v2.runtime.output.FastInfosetStreamWriterOutput;
 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.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;
+import org.apache.camel.quarkus.component.jaxb.JaxbRecorder;
+import 
org.apache.camel.quarkus.core.deployment.spi.CamelContextCustomizerBuildItem;
 
 class JaxbProcessor {
 
@@ -35,4 +39,10 @@ class JaxbProcessor {
         return new 
RuntimeInitializedClassBuildItem(FastInfosetStreamWriterOutput.class.getCanonicalName());
     }
 
+    @BuildStep
+    @Record(value = ExecutionTime.STATIC_INIT)
+    CamelContextCustomizerBuildItem contextCustomizer(JaxbRecorder recorder) {
+        return new 
CamelContextCustomizerBuildItem(recorder.newRestBindingJaxbDataFormatFactoryContextCustomizer());
+    }
+
 }
diff --git 
a/extensions/jaxb/deployment/src/main/java/org/apache/camel/quarkus/component/jaxb/deployment/JaxbProcessor.java
 
b/extensions/jaxb/runtime/src/main/java/org/apache/camel/quarkus/component/jaxb/JaxbRecorder.java
similarity index 53%
copy from 
extensions/jaxb/deployment/src/main/java/org/apache/camel/quarkus/component/jaxb/deployment/JaxbProcessor.java
copy to 
extensions/jaxb/runtime/src/main/java/org/apache/camel/quarkus/component/jaxb/JaxbRecorder.java
index 8808ea6..f8c5843 100644
--- 
a/extensions/jaxb/deployment/src/main/java/org/apache/camel/quarkus/component/jaxb/deployment/JaxbProcessor.java
+++ 
b/extensions/jaxb/runtime/src/main/java/org/apache/camel/quarkus/component/jaxb/JaxbRecorder.java
@@ -14,25 +14,20 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.quarkus.component.jaxb.deployment;
+package org.apache.camel.quarkus.component.jaxb;
 
-import com.sun.xml.bind.v2.runtime.output.FastInfosetStreamWriterOutput;
-import io.quarkus.deployment.annotations.BuildStep;
-import io.quarkus.deployment.builditem.FeatureBuildItem;
-import 
io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;
+import io.quarkus.runtime.RuntimeValue;
+import io.quarkus.runtime.annotations.Recorder;
+import org.apache.camel.ExtendedCamelContext;
+import org.apache.camel.converter.jaxb.JaxbRestBindingJaxbDataFormatFactory;
+import org.apache.camel.quarkus.core.CamelContextCustomizer;
 
-class JaxbProcessor {
-
-    private static final String FEATURE = "camel-jaxb";
-
-    @BuildStep
-    FeatureBuildItem feature() {
-        return new FeatureBuildItem(FEATURE);
-    }
-
-    @BuildStep
-    RuntimeInitializedClassBuildItem fastInfosetStreamWriterOutput() {
-        return new 
RuntimeInitializedClassBuildItem(FastInfosetStreamWriterOutput.class.getCanonicalName());
+@Recorder
+public class JaxbRecorder {
+    public RuntimeValue<CamelContextCustomizer> 
newRestBindingJaxbDataFormatFactoryContextCustomizer() {
+        JaxbRestBindingJaxbDataFormatFactory factory = new 
JaxbRestBindingJaxbDataFormatFactory();
+        return new RuntimeValue<>(
+                context -> 
context.adapt(ExtendedCamelContext.class).setRestBindingJaxbDataFormatFactory(factory));
     }
 
 }

Reply via email to