You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2015/09/23 11:35:48 UTC

[12/16] camel git commit: CAMEL-8545: camel-swagger-java to run outside servlet - work in progress

CAMEL-8545: camel-swagger-java to run outside servlet - work in progress


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/8fff52ad
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/8fff52ad
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/8fff52ad

Branch: refs/heads/master
Commit: 8fff52ad073d3cdd13099e3fd6c9346e504f3bbf
Parents: 44a15c5
Author: Claus Ibsen <da...@apache.org>
Authored: Wed Sep 23 09:29:08 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Wed Sep 23 09:29:08 2015 +0200

----------------------------------------------------------------------
 .../camel/component/rest/RestApiEndpoint.java     | 18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/8fff52ad/camel-core/src/main/java/org/apache/camel/component/rest/RestApiEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/rest/RestApiEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/rest/RestApiEndpoint.java
index 7ceb16b..e6df668 100644
--- a/camel-core/src/main/java/org/apache/camel/component/rest/RestApiEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/rest/RestApiEndpoint.java
@@ -16,18 +16,15 @@
  */
 package org.apache.camel.component.rest;
 
-import java.io.IOException;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.camel.CamelContext;
 import org.apache.camel.Component;
 import org.apache.camel.Consumer;
 import org.apache.camel.NoSuchBeanException;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.impl.DefaultEndpoint;
-import org.apache.camel.spi.FactoryFinder;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RestApiConsumerFactory;
 import org.apache.camel.spi.RestApiProcessorFactory;
@@ -39,8 +36,8 @@ import org.apache.camel.spi.UriPath;
 @UriEndpoint(scheme = "rest-api", title = "REST API", syntax = "rest-api:path", consumerOnly = true, label = "core,rest")
 public class RestApiEndpoint extends DefaultEndpoint {
 
+    public static final String DEFAULT_API_COMPONENT_NAME = "swagger";
     public static final String RESOURCE_PATH = "META-INF/services/org/apache/camel/rest/";
-    private FactoryFinder factoryFinder;
 
     @UriPath @Metadata(required = "true")
     private String path;
@@ -107,13 +104,6 @@ public class RestApiEndpoint extends DefaultEndpoint {
         this.parameters = parameters;
     }
 
-    private Class<?> findApiProcessorFactory(String name, CamelContext context) throws ClassNotFoundException, IOException {
-        if (factoryFinder == null) {
-            factoryFinder = context.getFactoryFinder(RESOURCE_PATH);
-        }
-        return factoryFinder.findClass(name);
-    }
-
     @Override
     public Producer createProducer() throws Exception {
         RestApiProcessorFactory factory = null;
@@ -128,6 +118,9 @@ public class RestApiEndpoint extends DefaultEndpoint {
 
         // lookup on classpath using factory finder
         String name = apiComponentName != null ? apiComponentName : config.getApiComponent();
+        if (name == null) {
+            name = DEFAULT_API_COMPONENT_NAME;
+        }
         Object instance = getCamelContext().getFactoryFinder(RESOURCE_PATH).newInstance(name);
         if (instance instanceof RestApiProcessorFactory) {
             factory = (RestApiProcessorFactory) instance;
@@ -152,6 +145,9 @@ public class RestApiEndpoint extends DefaultEndpoint {
     public Consumer createConsumer(Processor processor) throws Exception {
         RestApiConsumerFactory factory = null;
         String cname = null;
+
+        // we use the rest component as the HTTP consumer to service the API
+        // the API then uses the api component (eg usually camel-swagger-java) to build the API
         if (getComponentName() != null) {
             Object comp = getCamelContext().getRegistry().lookupByName(getComponentName());
             if (comp != null && comp instanceof RestApiConsumerFactory) {