You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by gn...@apache.org on 2020/03/04 08:58:08 UTC

[camel] 23/32: Move DefaultModelJAXBContextFactory to camel-xml-jaxb

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

gnodet pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 73502c025c1001de48610d930452d5302106aa66
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Tue Mar 3 21:42:22 2020 +0100

    Move DefaultModelJAXBContextFactory to camel-xml-jaxb
---
 components/camel-blueprint/pom.xml                                   | 4 ++++
 .../org/apache/camel/blueprint/BlueprintModelJAXBContextFactory.java | 2 +-
 .../java/org/apache/camel/spring/SpringModelJAXBContextFactory.java  | 2 +-
 .../java/org/apache/camel/spring/CamelContextFactoryBeanTest.java    | 2 +-
 .../src/main/java/org/apache/camel/spi/ModelJAXBContextFactory.java  | 5 +++++
 .../src/main/java/org/apache/camel/impl/DefaultCamelContext.java     | 5 ++++-
 .../src/test/java/org/apache/camel/model/XmlTestSupport.java         | 2 +-
 .../META-INF/services/org/apache/camel/model-jaxbcontext-factory     | 2 ++
 .../org/apache/camel/xml/jaxb}/DefaultModelJAXBContextFactory.java   | 4 +++-
 .../java/org/apache/camel/itest/jaxb/SpringLoadRouteFromXmlTest.java | 2 +-
 10 files changed, 23 insertions(+), 7 deletions(-)

diff --git a/components/camel-blueprint/pom.xml b/components/camel-blueprint/pom.xml
index f351356..173f06c 100644
--- a/components/camel-blueprint/pom.xml
+++ b/components/camel-blueprint/pom.xml
@@ -56,6 +56,10 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel</groupId>
+            <artifactId>camel-xml-jaxb</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
             <artifactId>camel-bean</artifactId>
         </dependency>
         <dependency>
diff --git a/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintModelJAXBContextFactory.java b/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintModelJAXBContextFactory.java
index 07259b5..dd296bf 100644
--- a/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintModelJAXBContextFactory.java
+++ b/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintModelJAXBContextFactory.java
@@ -20,7 +20,7 @@ import java.util.LinkedHashSet;
 import java.util.Set;
 
 import org.apache.camel.core.xml.AbstractCamelContextFactoryBean;
-import org.apache.camel.impl.DefaultModelJAXBContextFactory;
+import org.apache.camel.xml.jaxb.DefaultModelJAXBContextFactory;
 import org.apache.camel.util.blueprint.SSLContextParametersFactoryBean;
 
 public class BlueprintModelJAXBContextFactory extends DefaultModelJAXBContextFactory {
diff --git a/components/camel-spring/src/main/java/org/apache/camel/spring/SpringModelJAXBContextFactory.java b/components/camel-spring/src/main/java/org/apache/camel/spring/SpringModelJAXBContextFactory.java
index 76a8066..3b39cc1 100644
--- a/components/camel-spring/src/main/java/org/apache/camel/spring/SpringModelJAXBContextFactory.java
+++ b/components/camel-spring/src/main/java/org/apache/camel/spring/SpringModelJAXBContextFactory.java
@@ -16,7 +16,7 @@
  */
 package org.apache.camel.spring;
 
-import org.apache.camel.impl.DefaultModelJAXBContextFactory;
+import org.apache.camel.xml.jaxb.DefaultModelJAXBContextFactory;
 
 public class SpringModelJAXBContextFactory extends DefaultModelJAXBContextFactory {
 
diff --git a/components/camel-spring/src/test/java/org/apache/camel/spring/CamelContextFactoryBeanTest.java b/components/camel-spring/src/test/java/org/apache/camel/spring/CamelContextFactoryBeanTest.java
index 6392dba..56b9898 100644
--- a/components/camel-spring/src/test/java/org/apache/camel/spring/CamelContextFactoryBeanTest.java
+++ b/components/camel-spring/src/test/java/org/apache/camel/spring/CamelContextFactoryBeanTest.java
@@ -20,7 +20,7 @@ import java.net.URL;
 import java.util.LinkedList;
 import java.util.List;
 
-import org.apache.camel.impl.DefaultModelJAXBContextFactory;
+import org.apache.camel.xml.jaxb.DefaultModelJAXBContextFactory;
 import org.apache.camel.impl.engine.DefaultUuidGenerator;
 import org.apache.camel.spi.ModelJAXBContextFactory;
 import org.apache.camel.spi.UuidGenerator;
diff --git a/core/camel-api/src/main/java/org/apache/camel/spi/ModelJAXBContextFactory.java b/core/camel-api/src/main/java/org/apache/camel/spi/ModelJAXBContextFactory.java
index 88578c6..7098c51 100644
--- a/core/camel-api/src/main/java/org/apache/camel/spi/ModelJAXBContextFactory.java
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/ModelJAXBContextFactory.java
@@ -25,6 +25,11 @@ import javax.xml.bind.JAXBException;
 public interface ModelJAXBContextFactory {
 
     /**
+     * Service factory key.
+     */
+    String FACTORY = "model-jaxbcontext-factory";
+
+    /**
      * Creates a new {@link javax.xml.bind.JAXBContext} used for loading the Camel model
      *
      * @return a new JAXBContext
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultCamelContext.java b/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
index ede62b8..5edb552 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
@@ -218,7 +218,10 @@ public class DefaultCamelContext extends AbstractModelCamelContext {
 
     @Override
     protected ModelJAXBContextFactory createModelJAXBContextFactory() {
-        return new DefaultModelJAXBContextFactory();
+        return new BaseServiceResolver<>(ModelJAXBContextFactory.FACTORY, ModelJAXBContextFactory.class)
+                .resolve(this)
+                .orElseThrow(() -> new IllegalArgumentException("Cannot find ModelJAXBContextFactory on classpath. "
+                        + "Add camel-xml-jaxb to classpath."));
     }
 
     @Override
diff --git a/core/camel-core/src/test/java/org/apache/camel/model/XmlTestSupport.java b/core/camel-core/src/test/java/org/apache/camel/model/XmlTestSupport.java
index ee9ee34..a143125 100644
--- a/core/camel-core/src/test/java/org/apache/camel/model/XmlTestSupport.java
+++ b/core/camel-core/src/test/java/org/apache/camel/model/XmlTestSupport.java
@@ -23,7 +23,7 @@ import javax.xml.bind.JAXBException;
 import javax.xml.bind.Unmarshaller;
 
 import org.apache.camel.TestSupport;
-import org.apache.camel.impl.DefaultModelJAXBContextFactory;
+import org.apache.camel.xml.jaxb.DefaultModelJAXBContextFactory;
 import org.apache.camel.model.rest.RestContainer;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/core/camel-xml-jaxb/src/generated/resources/META-INF/services/org/apache/camel/model-jaxbcontext-factory b/core/camel-xml-jaxb/src/generated/resources/META-INF/services/org/apache/camel/model-jaxbcontext-factory
new file mode 100644
index 0000000..2b9714b
--- /dev/null
+++ b/core/camel-xml-jaxb/src/generated/resources/META-INF/services/org/apache/camel/model-jaxbcontext-factory
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.xml.jaxb.DefaultModelJAXBContextFactory
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultModelJAXBContextFactory.java b/core/camel-xml-jaxb/src/main/java/org/apache/camel/xml/jaxb/DefaultModelJAXBContextFactory.java
similarity index 92%
rename from core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultModelJAXBContextFactory.java
rename to core/camel-xml-jaxb/src/main/java/org/apache/camel/xml/jaxb/DefaultModelJAXBContextFactory.java
index cdd53cb..1ec86ef 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultModelJAXBContextFactory.java
+++ b/core/camel-xml-jaxb/src/main/java/org/apache/camel/xml/jaxb/DefaultModelJAXBContextFactory.java
@@ -14,18 +14,20 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.impl;
+package org.apache.camel.xml.jaxb;
 
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.JAXBException;
 
 import org.apache.camel.model.Constants;
 import org.apache.camel.spi.ModelJAXBContextFactory;
+import org.apache.camel.spi.annotations.JdkService;
 
 /**
  * Default implementation of
  * {@link org.apache.camel.spi.ModelJAXBContextFactory}.
  */
+@JdkService(ModelJAXBContextFactory.FACTORY)
 public class DefaultModelJAXBContextFactory implements ModelJAXBContextFactory {
 
     private volatile JAXBContext context;
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jaxb/SpringLoadRouteFromXmlTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jaxb/SpringLoadRouteFromXmlTest.java
index f97da93..e6a2f73 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jaxb/SpringLoadRouteFromXmlTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jaxb/SpringLoadRouteFromXmlTest.java
@@ -20,7 +20,7 @@ import javax.xml.bind.JAXBContext;
 import javax.xml.bind.Unmarshaller;
 
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.impl.DefaultModelJAXBContextFactory;
+import org.apache.camel.xml.jaxb.DefaultModelJAXBContextFactory;
 import org.apache.camel.model.RoutesDefinition;
 import org.apache.camel.test.spring.CamelSpringTestSupport;
 import org.junit.Test;