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 2017/03/09 12:32:58 UTC
[1/2] camel git commit: CAMEL-10967: camel-catalog-connector - Add
api to build endpoint uri based on connection options
Repository: camel
Updated Branches:
refs/heads/master 7f561212a -> 1dfb70985
CAMEL-10967: camel-catalog-connector - Add api to build endpoint uri based on connection options
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/1dfb7098
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/1dfb7098
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/1dfb7098
Branch: refs/heads/master
Commit: 1dfb70985f1962d30eb9336488c63c39fd1b30c8
Parents: 655916c
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Mar 9 13:32:41 2017 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Mar 9 13:32:48 2017 +0100
----------------------------------------------------------------------
.../connector/CamelConnectorCatalog.java | 22 ------------
.../connector/DefaultCamelConnectorCatalog.java | 36 --------------------
.../camel/catalog/rest/CamelCatalogRest.java | 18 +++++++++-
.../catalog/rest/CamelConnectorCatalogRest.java | 35 +++++++++++++++++++
.../org/apache/camel/catalog/CamelCatalog.java | 4 +--
5 files changed, 54 insertions(+), 61 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/1dfb7098/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/CamelConnectorCatalog.java
----------------------------------------------------------------------
diff --git a/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/CamelConnectorCatalog.java b/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/CamelConnectorCatalog.java
index 5bbebf3..80c9fae 100644
--- a/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/CamelConnectorCatalog.java
+++ b/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/CamelConnectorCatalog.java
@@ -112,28 +112,6 @@ public interface CamelConnectorCatalog {
String componentSchemaJSon(String groupId, String artifactId, String version);
/**
- * Creates an endpoint uri in Java style from the information in the json schema
- *
- * @param scheme the endpoint schema
- * @param json the json schema with the endpoint properties
- * @param encode whether to URL encode the returned uri or not
- * @return the constructed endpoint uri
- * @throws java.net.URISyntaxException is thrown if there is encoding error
- */
- String asEndpointUri(String scheme, String json, boolean encode) throws URISyntaxException;
-
- /**
- * Creates an endpoint uri in XML style (eg escape & as &l;) from the information in the json schema
- *
- * @param scheme the endpoint schema
- * @param json the json schema with the endpoint properties
- * @param encode whether to URL encode the returned uri or not
- * @return the constructed endpoint uri
- * @throws java.net.URISyntaxException is thrown if there is encoding error
- */
- String asEndpointUriXml(String scheme, String json, boolean encode) throws URISyntaxException;
-
- /**
* Creates an endpoint uri in Java style from the information from the properties
*
* @param scheme the endpoint schema
http://git-wip-us.apache.org/repos/asf/camel/blob/1dfb7098/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/DefaultCamelConnectorCatalog.java
----------------------------------------------------------------------
diff --git a/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/DefaultCamelConnectorCatalog.java b/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/DefaultCamelConnectorCatalog.java
index 57d5f3f..387164c 100644
--- a/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/DefaultCamelConnectorCatalog.java
+++ b/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/DefaultCamelConnectorCatalog.java
@@ -106,42 +106,6 @@ public class DefaultCamelConnectorCatalog implements CamelConnectorCatalog {
}
@Override
- public String asEndpointUri(String scheme, String json, boolean encode) throws URISyntaxException {
- // delegate to use CamelCatalog
- Optional<ConnectorDto> found = dataStore.findConnector(null, true).stream().filter(d -> d.getScheme().equals(scheme)).findAny();
- if (found.isPresent()) {
- ConnectorDto dto = found.get();
-
- // need to add custom connector as component to the catalog before we can build the uri
- String javaType = dto.getJavaType();
- String componentJson = componentSchemaJSon(dto.getGroupId(), dto.getArtifactId(), dto.getVersion());
-
- camelCatalog.addComponent(scheme, javaType, componentJson);
- return camelCatalog.asEndpointUri(scheme, json, encode);
- }
- // no connector with that scheme
- return null;
- }
-
- @Override
- public String asEndpointUriXml(String scheme, String json, boolean encode) throws URISyntaxException {
- // delegate to use CamelCatalog
- Optional<ConnectorDto> found = dataStore.findConnector(null, true).stream().filter(d -> d.getScheme().equals(scheme)).findAny();
- if (found.isPresent()) {
- ConnectorDto dto = found.get();
-
- // need to add custom connector as component to the catalog before we can build the uri
- String javaType = dto.getJavaType();
- String componentJson = componentSchemaJSon(dto.getGroupId(), dto.getArtifactId(), dto.getVersion());
-
- camelCatalog.addComponent(scheme, javaType, componentJson);
- return camelCatalog.asEndpointUriXml(scheme, json, encode);
- }
- // no connector with that scheme
- return null;
- }
-
- @Override
public String asEndpointUri(String scheme, Map<String, String> properties, boolean encode) throws URISyntaxException {
// delegate to use CamelCatalog
Optional<ConnectorDto> found = dataStore.findConnector(null, true).stream().filter(d -> d.getScheme().equals(scheme)).findAny();
http://git-wip-us.apache.org/repos/asf/camel/blob/1dfb7098/platforms/camel-catalog-rest/src/main/java/org/apache/camel/catalog/rest/CamelCatalogRest.java
----------------------------------------------------------------------
diff --git a/platforms/camel-catalog-rest/src/main/java/org/apache/camel/catalog/rest/CamelCatalogRest.java b/platforms/camel-catalog-rest/src/main/java/org/apache/camel/catalog/rest/CamelCatalogRest.java
index 6514783..9092f6c 100644
--- a/platforms/camel-catalog-rest/src/main/java/org/apache/camel/catalog/rest/CamelCatalogRest.java
+++ b/platforms/camel-catalog-rest/src/main/java/org/apache/camel/catalog/rest/CamelCatalogRest.java
@@ -295,7 +295,7 @@ public class CamelCatalogRest {
@Path("/asEndpointUri/{scheme}")
@Consumes("application/json")
@Produces("text/plain")
- @ApiOperation(value = "Creates an endpoint uri in Java style from the information in the json schema")
+ @ApiOperation(value = "Creates an endpoint uri in Java style configured using the provided options in the JSon body")
public String asEndpointUri(@ApiParam(value = "The component scheme", readOnly = true) @PathParam("scheme") String scheme,
@ApiParam(value = "The options as a JSon map with key/value pairs", required = true) String json) {
try {
@@ -308,6 +308,22 @@ public class CamelCatalogRest {
}
@POST
+ @Path("/asEndpointUriXml/{scheme}")
+ @Consumes("application/json")
+ @Produces("text/plain")
+ @ApiOperation(value = "Creates an endpoint uri in XML style configured using the provided options in the JSon body")
+ public String asEndpointUriXml(@ApiParam(value = "The component scheme", readOnly = true) @PathParam("scheme") String scheme,
+ @ApiParam(value = "The options as a JSon map with key/value pairs", required = true) String json) {
+ try {
+ ObjectMapper mapper = new ObjectMapper();
+ Map map = mapper.readValue(json, Map.class);
+ return catalog.asEndpointUriXml(scheme, map, true);
+ } catch (Exception e) {
+ return null;
+ }
+ }
+
+ @POST
@Path("/mavenCacheDirectory/{name}")
@ApiOperation(value = "Configures the Maven cache directory to use when downloading artifacts")
public void mavenCacheDirectory(@ApiParam(value = "The name of the cache directory", required = true) @PathParam("name") String name) {
http://git-wip-us.apache.org/repos/asf/camel/blob/1dfb7098/platforms/camel-catalog-rest/src/main/java/org/apache/camel/catalog/rest/CamelConnectorCatalogRest.java
----------------------------------------------------------------------
diff --git a/platforms/camel-catalog-rest/src/main/java/org/apache/camel/catalog/rest/CamelConnectorCatalogRest.java b/platforms/camel-catalog-rest/src/main/java/org/apache/camel/catalog/rest/CamelConnectorCatalogRest.java
index 03ad80b..24c8153 100644
--- a/platforms/camel-catalog-rest/src/main/java/org/apache/camel/catalog/rest/CamelConnectorCatalogRest.java
+++ b/platforms/camel-catalog-rest/src/main/java/org/apache/camel/catalog/rest/CamelConnectorCatalogRest.java
@@ -17,7 +17,9 @@
package org.apache.camel.catalog.rest;
import java.util.List;
+import java.util.Map;
import java.util.Set;
+import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
@@ -25,6 +27,7 @@ import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
+import com.fasterxml.jackson.databind.ObjectMapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
@@ -104,6 +107,38 @@ public class CamelConnectorCatalogRest {
}
@POST
+ @Path("/asEndpointUri/{scheme}")
+ @Consumes("application/json")
+ @Produces("text/plain")
+ @ApiOperation(value = "Creates an endpoint uri in Java style configured using the provided options in the JSon body")
+ public String asEndpointUri(@ApiParam(value = "The component scheme", readOnly = true) @PathParam("scheme") String scheme,
+ @ApiParam(value = "The options as a JSon map with key/value pairs", required = true) String json) {
+ try {
+ ObjectMapper mapper = new ObjectMapper();
+ Map map = mapper.readValue(json, Map.class);
+ return catalog.asEndpointUri(scheme, map, true);
+ } catch (Exception e) {
+ return null;
+ }
+ }
+
+ @POST
+ @Path("/asEndpointUriXml/{scheme}")
+ @Consumes("application/json")
+ @Produces("text/plain")
+ @ApiOperation(value = "Creates an endpoint uri in XML style configured using the provided options in the JSon body")
+ public String asEndpointUriXml(@ApiParam(value = "The component scheme", readOnly = true) @PathParam("scheme") String scheme,
+ @ApiParam(value = "The options as a JSon map with key/value pairs", required = true) String json) {
+ try {
+ ObjectMapper mapper = new ObjectMapper();
+ Map map = mapper.readValue(json, Map.class);
+ return catalog.asEndpointUriXml(scheme, map, true);
+ } catch (Exception e) {
+ return null;
+ }
+ }
+
+ @POST
@Path("/mavenCacheDirectory/{name}")
@ApiOperation(value = "Configures the Maven cache directory to use when downloading artifacts")
public void mavenCacheDirectory(@ApiParam(value = "The name of the cache directory", required = true) @PathParam("name") String name) {
http://git-wip-us.apache.org/repos/asf/camel/blob/1dfb7098/platforms/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java
----------------------------------------------------------------------
diff --git a/platforms/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java b/platforms/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java
index e45eb67..ca5f4f6 100644
--- a/platforms/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java
+++ b/platforms/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java
@@ -513,7 +513,7 @@ public interface CamelCatalog {
String asEndpointUri(String scheme, String json, boolean encode) throws URISyntaxException;
/**
- * Creates an endpoint uri in XML style (eg escape & as &l;) from the information in the json schema
+ * Creates an endpoint uri in XML style from the information in the json schema
*
* @param scheme the endpoint schema
* @param json the json schema with the endpoint properties
@@ -536,7 +536,7 @@ public interface CamelCatalog {
String asEndpointUri(String scheme, Map<String, String> properties, boolean encode) throws URISyntaxException;
/**
- * Creates an endpoint uri in XML style (eg escape & as &l;) from the information from the properties
+ * Creates an endpoint uri in XML style from the information from the properties
*
* @param scheme the endpoint schema
* @param properties the properties as key value pairs
[2/2] camel git commit: CAMEL-10967: camel-catalog-connector - Add
api to build endpoint uri based on connection options
Posted by da...@apache.org.
CAMEL-10967: camel-catalog-connector - Add api to build endpoint uri based on connection options
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/655916cd
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/655916cd
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/655916cd
Branch: refs/heads/master
Commit: 655916cd7476757821af7f8f073645449a7a43be
Parents: 7f56121
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Mar 9 13:22:52 2017 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Mar 9 13:32:48 2017 +0100
----------------------------------------------------------------------
.../connector/CamelConnectorCatalog.java | 61 +++++++++++-
.../catalog/connector/ConnectorDataStore.java | 10 +-
.../camel/catalog/connector/ConnectorDto.java | 9 ++
.../connector/DefaultCamelConnectorCatalog.java | 97 +++++++++++++++++++-
.../connector/MemoryConnectorDataStore.java | 21 ++++-
.../connector/CamelConnectorCatalogTest.java | 42 +++++++--
.../catalog/maven/ConnectorArtifactHelper.java | 14 ++-
.../maven/DefaultMavenArtifactProvider.java | 7 +-
.../catalog/maven/MavenVersionManager.java | 16 ++++
platforms/camel-catalog-rest/pom.xml | 12 ++-
.../camel/catalog/rest/CamelCatalogRest.java | 45 ++++++---
.../catalog/rest/CamelConnectorCatalogRest.java | 38 ++++----
.../rest/CamelConnectorCatalogRestTest.java | 3 +-
.../org/apache/camel/catalog/CamelCatalog.java | 2 +
14 files changed, 314 insertions(+), 63 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/655916cd/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/CamelConnectorCatalog.java
----------------------------------------------------------------------
diff --git a/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/CamelConnectorCatalog.java b/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/CamelConnectorCatalog.java
index 6923b51..5bbebf3 100644
--- a/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/CamelConnectorCatalog.java
+++ b/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/CamelConnectorCatalog.java
@@ -16,7 +16,9 @@
*/
package org.apache.camel.catalog.connector;
+import java.net.URISyntaxException;
import java.util.List;
+import java.util.Map;
import javax.management.MXBean;
/**
@@ -48,13 +50,15 @@ public interface CamelConnectorCatalog {
* @param version maven version
* @param name name of connector
* @param scheme scheme of connector
+ * @param javaType fully qualified class name of the connector
* @param description description of connector
* @param labels labels (separated by comma) of connector
* @param connectorJson the <tt>camel-connector</tt> json file
* @param connectorSchemaJson the <tt>camel-connector-schema</tt> json file
+ * @param componentSchemaJson the <tt>camel-component-schema</tt> json file
*/
- void addConnector(String groupId, String artifactId, String version, String name, String scheme, String description, String labels,
- String connectorJson, String connectorSchemaJson);
+ void addConnector(String groupId, String artifactId, String version, String name, String scheme, String javaType,
+ String description, String labels, String connectorJson, String connectorSchemaJson, String componentSchemaJson);
/**
* Removes the connector from the catalog
@@ -98,4 +102,57 @@ public interface CamelConnectorCatalog {
*/
String connectorSchemaJSon(String groupId, String artifactId, String version);
+ /**
+ * Returns the <tt>camel-component-schema</tt> json file for the given connector with the Maven coordinate
+ *
+ * @param groupId maven group id
+ * @param artifactId maven artifact id
+ * @param version maven version
+ */
+ String componentSchemaJSon(String groupId, String artifactId, String version);
+
+ /**
+ * Creates an endpoint uri in Java style from the information in the json schema
+ *
+ * @param scheme the endpoint schema
+ * @param json the json schema with the endpoint properties
+ * @param encode whether to URL encode the returned uri or not
+ * @return the constructed endpoint uri
+ * @throws java.net.URISyntaxException is thrown if there is encoding error
+ */
+ String asEndpointUri(String scheme, String json, boolean encode) throws URISyntaxException;
+
+ /**
+ * Creates an endpoint uri in XML style (eg escape & as &l;) from the information in the json schema
+ *
+ * @param scheme the endpoint schema
+ * @param json the json schema with the endpoint properties
+ * @param encode whether to URL encode the returned uri or not
+ * @return the constructed endpoint uri
+ * @throws java.net.URISyntaxException is thrown if there is encoding error
+ */
+ String asEndpointUriXml(String scheme, String json, boolean encode) throws URISyntaxException;
+
+ /**
+ * Creates an endpoint uri in Java style from the information from the properties
+ *
+ * @param scheme the endpoint schema
+ * @param properties the properties as key value pairs
+ * @param encode whether to URL encode the returned uri or not
+ * @return the constructed endpoint uri
+ * @throws java.net.URISyntaxException is thrown if there is encoding error
+ */
+ String asEndpointUri(String scheme, Map<String, String> properties, boolean encode) throws URISyntaxException;
+
+ /**
+ * Creates an endpoint uri in XML style (eg escape & as &l;) from the information from the properties
+ *
+ * @param scheme the endpoint schema
+ * @param properties the properties as key value pairs
+ * @param encode whether to URL encode the returned uri or not
+ * @return the constructed endpoint uri
+ * @throws java.net.URISyntaxException is thrown if there is encoding error
+ */
+ String asEndpointUriXml(String scheme, Map<String, String> properties, boolean encode) throws URISyntaxException;
+
}
http://git-wip-us.apache.org/repos/asf/camel/blob/655916cd/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/ConnectorDataStore.java
----------------------------------------------------------------------
diff --git a/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/ConnectorDataStore.java b/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/ConnectorDataStore.java
index fadfafb..c862a2f 100644
--- a/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/ConnectorDataStore.java
+++ b/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/ConnectorDataStore.java
@@ -29,8 +29,9 @@ public interface ConnectorDataStore {
* @param dto the connector dto
* @param connectorJson the <tt>camel-connector</tt> json file
* @param connectorSchemaJson the <tt>camel-connector-schema</tt> json file
+ * @param componentSchemaJson the <tt>camel-component-schema</tt> json file
*/
- void addConnector(ConnectorDto dto, String connectorJson, String connectorSchemaJson);
+ void addConnector(ConnectorDto dto, String connectorJson, String connectorSchemaJson, String componentSchemaJson);
/**
* Is the connector already registered in the catalog
@@ -68,4 +69,11 @@ public interface ConnectorDataStore {
*/
String connectorSchemaJSon(ConnectorDto dto);
+ /**
+ * Returns the <tt>camel-component-schema</tt> json file for the given connector with the Maven coordinate
+ *
+ * @param dto the connector dto
+ */
+ String componentSchemaJSon(ConnectorDto dto);
+
}
http://git-wip-us.apache.org/repos/asf/camel/blob/655916cd/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/ConnectorDto.java
----------------------------------------------------------------------
diff --git a/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/ConnectorDto.java b/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/ConnectorDto.java
index 87e96c0..ad2facb 100644
--- a/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/ConnectorDto.java
+++ b/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/ConnectorDto.java
@@ -25,6 +25,7 @@ public class ConnectorDto {
private String scheme;
private String description;
private String labels;
+ private String javaType;
private String groupId;
private String artifactId;
@@ -66,6 +67,14 @@ public class ConnectorDto {
this.labels = labels;
}
+ public String getJavaType() {
+ return javaType;
+ }
+
+ public void setJavaType(String javaType) {
+ this.javaType = javaType;
+ }
+
public String getGroupId() {
return groupId;
}
http://git-wip-us.apache.org/repos/asf/camel/blob/655916cd/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/DefaultCamelConnectorCatalog.java
----------------------------------------------------------------------
diff --git a/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/DefaultCamelConnectorCatalog.java b/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/DefaultCamelConnectorCatalog.java
index 82d7d8d..57d5f3f 100644
--- a/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/DefaultCamelConnectorCatalog.java
+++ b/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/DefaultCamelConnectorCatalog.java
@@ -16,10 +16,17 @@
*/
package org.apache.camel.catalog.connector;
+import java.net.URISyntaxException;
import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+
+import org.apache.camel.catalog.CamelCatalog;
+import org.apache.camel.catalog.DefaultCamelCatalog;
public class DefaultCamelConnectorCatalog implements CamelConnectorCatalog {
+ private final CamelCatalog camelCatalog = new DefaultCamelCatalog(true);
private ConnectorDataStore dataStore = new MemoryConnectorDataStore();
@Override
@@ -37,17 +44,19 @@ public class DefaultCamelConnectorCatalog implements CamelConnectorCatalog {
}
@Override
- public void addConnector(String groupId, String artifactId, String version, String name, String scheme, String description, String labels,
- String connectorJson, String connectorSchemaJson) {
+ public void addConnector(String groupId, String artifactId, String version, String name, String scheme,
+ String javaType, String description, String labels,
+ String connectorJson, String connectorSchemaJson, String componentSchemaJson) {
ConnectorDto dto = new ConnectorDto();
dto.setGroupId(groupId);
dto.setArtifactId(artifactId);
dto.setVersion(version);
dto.setName(name);
dto.setScheme(scheme);
+ dto.setJavaType(javaType);
dto.setDescription(description);
dto.setLabels(labels);
- dataStore.addConnector(dto, connectorJson, connectorSchemaJson);
+ dataStore.addConnector(dto, connectorJson, connectorSchemaJson, componentSchemaJson);
}
@Override
@@ -86,4 +95,86 @@ public class DefaultCamelConnectorCatalog implements CamelConnectorCatalog {
dto.setVersion(version);
return dataStore.connectorSchemaJSon(dto);
}
+
+ @Override
+ public String componentSchemaJSon(String groupId, String artifactId, String version) {
+ ConnectorDto dto = new ConnectorDto();
+ dto.setGroupId(groupId);
+ dto.setArtifactId(artifactId);
+ dto.setVersion(version);
+ return dataStore.componentSchemaJSon(dto);
+ }
+
+ @Override
+ public String asEndpointUri(String scheme, String json, boolean encode) throws URISyntaxException {
+ // delegate to use CamelCatalog
+ Optional<ConnectorDto> found = dataStore.findConnector(null, true).stream().filter(d -> d.getScheme().equals(scheme)).findAny();
+ if (found.isPresent()) {
+ ConnectorDto dto = found.get();
+
+ // need to add custom connector as component to the catalog before we can build the uri
+ String javaType = dto.getJavaType();
+ String componentJson = componentSchemaJSon(dto.getGroupId(), dto.getArtifactId(), dto.getVersion());
+
+ camelCatalog.addComponent(scheme, javaType, componentJson);
+ return camelCatalog.asEndpointUri(scheme, json, encode);
+ }
+ // no connector with that scheme
+ return null;
+ }
+
+ @Override
+ public String asEndpointUriXml(String scheme, String json, boolean encode) throws URISyntaxException {
+ // delegate to use CamelCatalog
+ Optional<ConnectorDto> found = dataStore.findConnector(null, true).stream().filter(d -> d.getScheme().equals(scheme)).findAny();
+ if (found.isPresent()) {
+ ConnectorDto dto = found.get();
+
+ // need to add custom connector as component to the catalog before we can build the uri
+ String javaType = dto.getJavaType();
+ String componentJson = componentSchemaJSon(dto.getGroupId(), dto.getArtifactId(), dto.getVersion());
+
+ camelCatalog.addComponent(scheme, javaType, componentJson);
+ return camelCatalog.asEndpointUriXml(scheme, json, encode);
+ }
+ // no connector with that scheme
+ return null;
+ }
+
+ @Override
+ public String asEndpointUri(String scheme, Map<String, String> properties, boolean encode) throws URISyntaxException {
+ // delegate to use CamelCatalog
+ Optional<ConnectorDto> found = dataStore.findConnector(null, true).stream().filter(d -> d.getScheme().equals(scheme)).findAny();
+ if (found.isPresent()) {
+ ConnectorDto dto = found.get();
+
+ // need to add custom connector as component to the catalog before we can build the uri
+ String javaType = dto.getJavaType();
+ String componentJson = componentSchemaJSon(dto.getGroupId(), dto.getArtifactId(), dto.getVersion());
+
+ camelCatalog.addComponent(scheme, javaType, componentJson);
+ return camelCatalog.asEndpointUri(scheme, properties, encode);
+ }
+ // no connector with that scheme
+ return null;
+ }
+
+ @Override
+ public String asEndpointUriXml(String scheme, Map<String, String> properties, boolean encode) throws URISyntaxException {
+ // delegate to use CamelCatalog
+ Optional<ConnectorDto> found = dataStore.findConnector(null, true).stream().filter(d -> d.getScheme().equals(scheme)).findAny();
+ if (found.isPresent()) {
+ ConnectorDto dto = found.get();
+
+ // need to add custom connector as component to the catalog before we can build the uri
+ String javaType = dto.getJavaType();
+ String componentJson = componentSchemaJSon(dto.getGroupId(), dto.getArtifactId(), dto.getVersion());
+
+ camelCatalog.addComponent(scheme, javaType, componentJson);
+ return camelCatalog.asEndpointUriXml(scheme, properties, encode);
+ }
+ // no connector with that scheme
+ return null;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/camel/blob/655916cd/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/MemoryConnectorDataStore.java
----------------------------------------------------------------------
diff --git a/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/MemoryConnectorDataStore.java b/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/MemoryConnectorDataStore.java
index ebb0a21..e00dfb4 100644
--- a/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/MemoryConnectorDataStore.java
+++ b/platforms/camel-catalog-connector/src/main/java/org/apache/camel/catalog/connector/MemoryConnectorDataStore.java
@@ -31,8 +31,8 @@ public class MemoryConnectorDataStore implements ConnectorDataStore {
private Set<ConnectorDetails> store = new CopyOnWriteArraySet<>();
@Override
- public void addConnector(ConnectorDto dto, String connectorJson, String connectorSchemaJson) {
- ConnectorDetails entry = new ConnectorDetails(dto, connectorJson, connectorSchemaJson);
+ public void addConnector(ConnectorDto dto, String connectorJson, String connectorSchemaJson, String componentSchemaJson) {
+ ConnectorDetails entry = new ConnectorDetails(dto, connectorJson, connectorSchemaJson, componentSchemaJson);
// remove in case we are updating the connector
store.remove(entry);
@@ -41,12 +41,12 @@ public class MemoryConnectorDataStore implements ConnectorDataStore {
@Override
public boolean hasConnector(ConnectorDto dto) {
- return store.contains(new ConnectorDetails(dto, null, null));
+ return store.contains(new ConnectorDetails(dto, null, null, null));
}
@Override
public void removeConnector(ConnectorDto dto) {
- store.remove(new ConnectorDetails(dto, null, null));
+ store.remove(new ConnectorDetails(dto, null, null, null));
}
@Override
@@ -127,6 +127,11 @@ public class MemoryConnectorDataStore implements ConnectorDataStore {
return store.stream().filter(d -> d.getDto().equals(dto)).findFirst().orElse(null).getConnectorSchemaJson();
}
+ @Override
+ public String componentSchemaJSon(ConnectorDto dto) {
+ return store.stream().filter(d -> d.getDto().equals(dto)).findFirst().orElse(null).getComponentSchemaJson();
+ }
+
/**
* Entry holding the connector details
*/
@@ -135,11 +140,13 @@ public class MemoryConnectorDataStore implements ConnectorDataStore {
private ConnectorDto dto;
private String connectorJson;
private String connectorSchemaJson;
+ private String componentSchemaJson;
- ConnectorDetails(ConnectorDto dto, String connectorJson, String connectorSchemaJson) {
+ ConnectorDetails(ConnectorDto dto, String connectorJson, String connectorSchemaJson, String componentSchemaJson) {
this.dto = dto;
this.connectorJson = connectorJson;
this.connectorSchemaJson = connectorSchemaJson;
+ this.componentSchemaJson = componentSchemaJson;
}
ConnectorDto getDto() {
@@ -154,6 +161,10 @@ public class MemoryConnectorDataStore implements ConnectorDataStore {
return connectorSchemaJson;
}
+ String getComponentSchemaJson() {
+ return componentSchemaJson;
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) {
http://git-wip-us.apache.org/repos/asf/camel/blob/655916cd/platforms/camel-catalog-connector/src/test/java/org/apache/camel/catalog/connector/CamelConnectorCatalogTest.java
----------------------------------------------------------------------
diff --git a/platforms/camel-catalog-connector/src/test/java/org/apache/camel/catalog/connector/CamelConnectorCatalogTest.java b/platforms/camel-catalog-connector/src/test/java/org/apache/camel/catalog/connector/CamelConnectorCatalogTest.java
index 4b802d6..607af6c 100644
--- a/platforms/camel-catalog-connector/src/test/java/org/apache/camel/catalog/connector/CamelConnectorCatalogTest.java
+++ b/platforms/camel-catalog-connector/src/test/java/org/apache/camel/catalog/connector/CamelConnectorCatalogTest.java
@@ -31,7 +31,8 @@ public class CamelConnectorCatalogTest {
assertEquals(0, catalog.findConnector(false).size());
catalog.addConnector("org.apache.camel", "myfoo-connector", "2.19.0",
- "MyFoo", "my-foo","Something cool", "foo,timer", null, null);
+ "MyFoo", "my-foo", "org.myfoo.connector.MyFooComponent",
+ "Something cool", "foo,timer", null, null, null);
assertEquals(1, catalog.findConnector(false).size());
}
@@ -45,7 +46,8 @@ public class CamelConnectorCatalogTest {
assertFalse(catalog.hasConnector("org.apache.camel", "myfoo-connector", "2.19.0"));
catalog.addConnector("org.apache.camel", "myfoo-connector", "2.19.0",
- "MyFoo", "my-foo", "Something cool", "foo,timer", null, null);
+ "MyFoo", "my-foo", "org.myfoo.connector.MyFooComponent",
+ "Something cool", "foo,timer", null, null, null);
assertEquals(1, catalog.findConnector(false).size());
@@ -57,7 +59,8 @@ public class CamelConnectorCatalogTest {
CamelConnectorCatalog catalog = new DefaultCamelConnectorCatalog();
catalog.addConnector("org.apache.camel", "myfoo-connector", "2.19.0",
- "MyFoo", "my-foo", "Something cool", "foo,timer", "foo", "bar");
+ "MyFoo", "my-foo", "org.myfoo.connector.MyFooComponent",
+ "Something cool", "foo,timer", "foo", "bar", "baz");
String json = catalog.connectorJSon("org.apache.camel", "myfoo-connector", "2.19.0");
assertEquals("foo", json);
@@ -68,20 +71,34 @@ public class CamelConnectorCatalogTest {
CamelConnectorCatalog catalog = new DefaultCamelConnectorCatalog();
catalog.addConnector("org.apache.camel", "myfoo-connector", "2.19.0",
- "MyFoo", "my-foo", "Something cool", "foo,timer", "foo", "bar");
+ "MyFoo", "my-foo", "org.myfoo.connector.MyFooComponent",
+ "Something cool", "foo,timer", "foo", "bar", "baz");
String json = catalog.connectorSchemaJSon("org.apache.camel", "myfoo-connector", "2.19.0");
assertEquals("bar", json);
}
@Test
+ public void testComponentSchemaJson() throws Exception {
+ CamelConnectorCatalog catalog = new DefaultCamelConnectorCatalog();
+
+ catalog.addConnector("org.apache.camel", "myfoo-connector", "2.19.0",
+ "MyFoo", "my-foo", "org.myfoo.connector.MyFooComponent",
+ "Something cool", "foo,timer", "foo", "bar", "baz");
+
+ String json = catalog.componentSchemaJSon("org.apache.camel", "myfoo-connector", "2.19.0");
+ assertEquals("baz", json);
+ }
+
+ @Test
public void testRemoveConnector() throws Exception {
CamelConnectorCatalog catalog = new DefaultCamelConnectorCatalog();
assertEquals(0, catalog.findConnector(false).size());
catalog.addConnector("org.apache.camel", "myfoo-connector", "2.19.0",
- "MyFoo", "my-foo", "Something cool", "foo,timer", null, null);
+ "MyFoo", "my-foo", "org.myfoo.connector.MyFooComponent",
+ "Something cool", "foo,timer", null, null, null);
assertEquals(1, catalog.findConnector(false).size());
@@ -97,7 +114,8 @@ public class CamelConnectorCatalogTest {
assertEquals(0, catalog.findConnector(false).size());
catalog.addConnector("org.apache.camel", "myfoo-connector", "2.19.0",
- "MyFoo", "my-foo", "Something cool", "foo,timer", null, null);
+ "MyFoo", "my-foo", "org.myfoo.connector.MyFooComponent",
+ "Something cool", "foo,timer", null, null, null);
assertEquals(1, catalog.findConnector("foo", false).size());
assertEquals(0, catalog.findConnector("bar", false).size());
@@ -110,10 +128,12 @@ public class CamelConnectorCatalogTest {
assertEquals(0, catalog.findConnector(false).size());
catalog.addConnector("org.apache.camel", "myfoo-connector", "2.19.0",
- "MyFoo", "my-foo", "Something cool", "foo,timer", null, null);
+ "MyFoo", "my-foo", "org.myfoo.connector.MyFooComponent",
+ "Something cool", "foo,timer", null, null, null);
catalog.addConnector("org.apache.camel", "myfoo-connector", "2.19.1",
- "MyFoo", "my-foo", "Something more cool", "foo,timer", null, null);
+ "MyFoo", "my-foo", "org.myfoo.connector.MyFooComponent",
+ "Something more cool", "foo,timer", null, null, null);
assertEquals(1, catalog.findConnector("foo", true).size());
assertEquals(0, catalog.findConnector("bar", true).size());
@@ -129,10 +149,12 @@ public class CamelConnectorCatalogTest {
assertEquals(0, catalog.findConnector(false).size());
catalog.addConnector("org.apache.camel", "myfoo-connector", "2.19.0",
- "MyFoo", "my-foo", "Something cool", "foo,timer", null, null);
+ "MyFoo", "my-foo", "org.myfoo.connector.MyFooComponent",
+ "Something cool", "foo,timer", null, null, null);
catalog.addConnector("org.apache.camel", "myfoo-connector", "2.19.1",
- "MyFoo", "my-foo", "Something more cool", "foo,timer", null, null);
+ "MyFoo", "my-foo", "org.myfoo.connector.MyFooComponent",
+ "Something more cool", "foo,timer", null, null, null);
assertEquals(2, catalog.findConnector("foo", false).size());
assertEquals(0, catalog.findConnector("bar", false).size());
http://git-wip-us.apache.org/repos/asf/camel/blob/655916cd/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/ConnectorArtifactHelper.java
----------------------------------------------------------------------
diff --git a/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/ConnectorArtifactHelper.java b/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/ConnectorArtifactHelper.java
index 6fcb1bc..475eb91 100644
--- a/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/ConnectorArtifactHelper.java
+++ b/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/ConnectorArtifactHelper.java
@@ -30,8 +30,8 @@ public final class ConnectorArtifactHelper {
private ConnectorArtifactHelper() {
}
- public static String[] loadConnectorJSonSchema(ClassLoader classLoader) {
- String[] answer = new String[2];
+ public static String[] loadJSonSchemas(ClassLoader classLoader) {
+ String[] answer = new String[3];
String path = "camel-connector.json";
try {
@@ -53,6 +53,16 @@ public final class ConnectorArtifactHelper {
LOG.warn("Error loading " + path + " file", e);
}
+ path = "camel-component-schema.json";
+ try {
+ InputStream is = classLoader.getResourceAsStream(path);
+ if (is != null) {
+ answer[2] = loadText(is);
+ }
+ } catch (Throwable e) {
+ LOG.warn("Error loading " + path + " file", e);
+ }
+
return answer;
}
http://git-wip-us.apache.org/repos/asf/camel/blob/655916cd/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/DefaultMavenArtifactProvider.java
----------------------------------------------------------------------
diff --git a/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/DefaultMavenArtifactProvider.java b/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/DefaultMavenArtifactProvider.java
index 3a7c2a2..054041b 100644
--- a/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/DefaultMavenArtifactProvider.java
+++ b/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/DefaultMavenArtifactProvider.java
@@ -36,7 +36,7 @@ import org.slf4j.LoggerFactory;
import static org.apache.camel.catalog.maven.ComponentArtifactHelper.extractComponentJavaType;
import static org.apache.camel.catalog.maven.ComponentArtifactHelper.loadComponentJSonSchema;
import static org.apache.camel.catalog.maven.ComponentArtifactHelper.loadComponentProperties;
-import static org.apache.camel.catalog.maven.ConnectorArtifactHelper.loadConnectorJSonSchema;
+import static org.apache.camel.catalog.maven.ConnectorArtifactHelper.loadJSonSchemas;
/**
* Default {@link MavenArtifactProvider} which uses Groovy Grape to download the artifact.
@@ -129,7 +129,7 @@ public class DefaultMavenArtifactProvider implements MavenArtifactProvider {
protected void scanCamelConnectors(CamelConnectorCatalog camelConnectorCatalog, ClassLoader classLoader,
String groupId, String artifactId, String version,
Set<String> names) {
- String[] json = loadConnectorJSonSchema(classLoader);
+ String[] json = loadJSonSchemas(classLoader);
if (json != null) {
if (!camelConnectorCatalog.hasConnector(groupId, artifactId, version)) {
try {
@@ -137,6 +137,7 @@ public class DefaultMavenArtifactProvider implements MavenArtifactProvider {
JsonNode tree = mapper.readTree(json[0]);
String name = tree.get("name").textValue();
String scheme = tree.get("scheme").textValue();
+ String javaType = tree.get("javaType").textValue();
String description = tree.get("description").textValue();
Iterator<JsonNode> it = tree.withArray("labels").iterator();
@@ -148,7 +149,7 @@ public class DefaultMavenArtifactProvider implements MavenArtifactProvider {
LOG.debug("Adding connector: {} with scheme: {}", name, scheme);
camelConnectorCatalog.addConnector(groupId, artifactId, version,
- name, scheme, description, csb.toString(), json[0], json[1]);
+ name, scheme, javaType, description, csb.toString(), json[0], json[1], json[2]);
names.add(name);
} catch (Throwable e) {
http://git-wip-us.apache.org/repos/asf/camel/blob/655916cd/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenVersionManager.java
----------------------------------------------------------------------
diff --git a/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenVersionManager.java b/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenVersionManager.java
index a6814a1..ed9339a 100644
--- a/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenVersionManager.java
+++ b/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenVersionManager.java
@@ -38,6 +38,18 @@ public class MavenVersionManager implements VersionManager {
private final ClassLoader classLoader = new GroovyClassLoader();
private String version;
private String runtimeProviderVersion;
+ private String cacheDirectory;
+
+ /**
+ * Configures the directory for the download cache.
+ * <p/>
+ * The default folder is <tt>USER_HOME/.groovy/grape</tt>
+ *
+ * @param directory the directory.
+ */
+ public void setCacheDirectory(String directory) {
+ this.cacheDirectory = directory;
+ }
/**
* To add a 3rd party Maven repository.
@@ -60,6 +72,10 @@ public class MavenVersionManager implements VersionManager {
@Override
public boolean loadVersion(String version) {
try {
+ if (cacheDirectory != null) {
+ System.setProperty("grape.root", cacheDirectory);
+ }
+
Grape.setEnableAutoDownload(true);
Map<String, Object> param = new HashMap<>();
http://git-wip-us.apache.org/repos/asf/camel/blob/655916cd/platforms/camel-catalog-rest/pom.xml
----------------------------------------------------------------------
diff --git a/platforms/camel-catalog-rest/pom.xml b/platforms/camel-catalog-rest/pom.xml
index b84a0ad..28986b5 100644
--- a/platforms/camel-catalog-rest/pom.xml
+++ b/platforms/camel-catalog-rest/pom.xml
@@ -45,6 +45,13 @@
<artifactId>camel-catalog-maven</artifactId>
</dependency>
+ <!-- json parser -->
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-databind</artifactId>
+ <version>${jackson2-version}</version>
+ </dependency>
+
<!-- REST api -->
<dependency>
<groupId>javax.ws.rs</groupId>
@@ -103,11 +110,6 @@
<artifactId>jackson-jaxrs-json-provider</artifactId>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- <scope>test</scope>
- </dependency>
<!-- testing -->
<dependency>
http://git-wip-us.apache.org/repos/asf/camel/blob/655916cd/platforms/camel-catalog-rest/src/main/java/org/apache/camel/catalog/rest/CamelCatalogRest.java
----------------------------------------------------------------------
diff --git a/platforms/camel-catalog-rest/src/main/java/org/apache/camel/catalog/rest/CamelCatalogRest.java b/platforms/camel-catalog-rest/src/main/java/org/apache/camel/catalog/rest/CamelCatalogRest.java
index 24fe206..6514783 100644
--- a/platforms/camel-catalog-rest/src/main/java/org/apache/camel/catalog/rest/CamelCatalogRest.java
+++ b/platforms/camel-catalog-rest/src/main/java/org/apache/camel/catalog/rest/CamelCatalogRest.java
@@ -17,13 +17,16 @@
package org.apache.camel.catalog.rest;
import java.util.List;
+import java.util.Map;
import java.util.Set;
+import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
+import com.fasterxml.jackson.databind.ObjectMapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
@@ -133,7 +136,7 @@ public class CamelCatalogRest {
@Path("/componentJSonSchema/{name}")
@Produces("application/json")
@ApiOperation(value = "Returns the component information as JSon format")
- public String componentJSonSchema(@ApiParam("The name of the component")
+ public String componentJSonSchema(@ApiParam(value = "The name of the component", required = true)
@PathParam("name") String name) {
return catalog.componentJSonSchema(name);
}
@@ -142,7 +145,7 @@ public class CamelCatalogRest {
@Path("/dataFormatJSonSchema/{name}")
@Produces("application/json")
@ApiOperation(value = "Returns the data format information as JSon format")
- public String dataFormatJSonSchema(@ApiParam("The name of the data format")
+ public String dataFormatJSonSchema(@ApiParam(value = "The name of the data format", required = true)
@PathParam("name") String name) {
return catalog.dataFormatJSonSchema(name);
}
@@ -151,7 +154,7 @@ public class CamelCatalogRest {
@Path("/languageJSonSchema/{name}")
@Produces("application/json")
@ApiOperation(value = "Returns the language information as JSon format")
- public String languageJSonSchema(@ApiParam("The name of the language")
+ public String languageJSonSchema(@ApiParam(value = "The name of the language", required = true)
@PathParam("name") String name) {
return catalog.languageJSonSchema(name);
}
@@ -160,7 +163,7 @@ public class CamelCatalogRest {
@Path("/modelJSonSchema/{name}")
@Produces("application/json")
@ApiOperation(value = "Returns the model (EIP) information as JSon format")
- public String modelJSonSchema(@ApiParam("The name of the model (EIP)")
+ public String modelJSonSchema(@ApiParam(value = "The name of the model (EIP)", required = true)
@PathParam("name") String name) {
return catalog.modelJSonSchema(name);
}
@@ -169,7 +172,7 @@ public class CamelCatalogRest {
@Path("/componentAsciiDoc/{name}")
@Produces("text/plain")
@ApiOperation(value = "Returns the component documentation as Ascii doc format")
- public String componentAsciiDoc(@ApiParam("The name of the component")
+ public String componentAsciiDoc(@ApiParam(value = "The name of the component", required = true)
@PathParam("name") String name) {
return catalog.componentAsciiDoc(name);
}
@@ -178,7 +181,7 @@ public class CamelCatalogRest {
@Path("/dataFormatAsciiDoc/{name}")
@Produces("text/plain")
@ApiOperation(value = "Returns the data format documentation as Ascii doc format")
- public String dataFormatAsciiDoc(@ApiParam("The name of the data format")
+ public String dataFormatAsciiDoc(@ApiParam(value = "The name of the data format", required = true)
@PathParam("name") String name) {
return catalog.dataFormatAsciiDoc(name);
}
@@ -187,7 +190,7 @@ public class CamelCatalogRest {
@Path("/languageAsciiDoc/{name}")
@Produces("text/plain")
@ApiOperation(value = "Returns the language documentation as Ascii doc format")
- public String languageAsciiDoc(@ApiParam("The name of the language")
+ public String languageAsciiDoc(@ApiParam(value = "The name of the language", required = true)
@PathParam("name") String name) {
return catalog.languageAsciiDoc(name);
}
@@ -289,17 +292,33 @@ public class CamelCatalogRest {
}
@POST
+ @Path("/asEndpointUri/{scheme}")
+ @Consumes("application/json")
+ @Produces("text/plain")
+ @ApiOperation(value = "Creates an endpoint uri in Java style from the information in the json schema")
+ public String asEndpointUri(@ApiParam(value = "The component scheme", readOnly = true) @PathParam("scheme") String scheme,
+ @ApiParam(value = "The options as a JSon map with key/value pairs", required = true) String json) {
+ try {
+ ObjectMapper mapper = new ObjectMapper();
+ Map map = mapper.readValue(json, Map.class);
+ return catalog.asEndpointUri(scheme, map, true);
+ } catch (Exception e) {
+ return null;
+ }
+ }
+
+ @POST
@Path("/mavenCacheDirectory/{name}")
@ApiOperation(value = "Configures the Maven cache directory to use when downloading artifacts")
- public void mavenCacheDirectory(@ApiParam("The name of the cache directory") @PathParam("name") String name) {
+ public void mavenCacheDirectory(@ApiParam(value = "The name of the cache directory", required = true) @PathParam("name") String name) {
maven.setCacheDirectory(name);
}
@POST
@Path("/addMavenRepository/{name}/{url}")
@ApiOperation(value = "Adds a third party Maven repository to use for downloading Maven artifacts")
- public void addMavenRepository(@ApiParam("The name of the Maven repository") @PathParam("name") String name,
- @ApiParam("The URL of the Maven repository") @PathParam("url") String url) {
+ public void addMavenRepository(@ApiParam(value = "The name of the Maven repository", required = true) @PathParam("name") String name,
+ @ApiParam(value = "The URL of the Maven repository", required = true) @PathParam("url") String url) {
maven.addMavenRepository(name, url);
}
@@ -307,9 +326,9 @@ public class CamelCatalogRest {
@Path("/addComponentFromMavenArtifact/{groupId}/{artifactId}/{version}")
@Produces("application/json")
@ApiOperation(value = "Downloads the Maven artifact and scan for custom Camel components which will be added to the catalog and returns the names of the found components")
- public Set<String> addComponentFromMavenArtifact(@ApiParam("The Maven groupId") @PathParam("groupId") String groupId,
- @ApiParam("The Maven artifactId") @PathParam("artifactId") String artifactId,
- @ApiParam("The Maven version") @PathParam("version") String version) {
+ public Set<String> addComponentFromMavenArtifact(@ApiParam(value = "The Maven groupId", required = true) @PathParam("groupId") String groupId,
+ @ApiParam(value = "The Maven artifactId", required = true) @PathParam("artifactId") String artifactId,
+ @ApiParam(value = "The Maven version", required = true) @PathParam("version") String version) {
return maven.addArtifactToCatalog(catalog, null, groupId, artifactId, version);
}
http://git-wip-us.apache.org/repos/asf/camel/blob/655916cd/platforms/camel-catalog-rest/src/main/java/org/apache/camel/catalog/rest/CamelConnectorCatalogRest.java
----------------------------------------------------------------------
diff --git a/platforms/camel-catalog-rest/src/main/java/org/apache/camel/catalog/rest/CamelConnectorCatalogRest.java b/platforms/camel-catalog-rest/src/main/java/org/apache/camel/catalog/rest/CamelConnectorCatalogRest.java
index 364bbf5..03ad80b 100644
--- a/platforms/camel-catalog-rest/src/main/java/org/apache/camel/catalog/rest/CamelConnectorCatalogRest.java
+++ b/platforms/camel-catalog-rest/src/main/java/org/apache/camel/catalog/rest/CamelConnectorCatalogRest.java
@@ -59,9 +59,10 @@ public class CamelConnectorCatalogRest {
@Path("/findConnector")
@Produces("application/json")
@ApiOperation(value = "Find all the connectors from the catalog")
- public List<ConnectorDto> findConnector(@ApiParam("Whether to include latest version only")
- @QueryParam("latestVersionOnly") boolean latestVersionOnly) {
- return catalog.findConnector(latestVersionOnly);
+ public List<ConnectorDto> findConnector(@ApiParam(value = "Whether to include latest version only", defaultValue = "true")
+ @QueryParam("latestVersionOnly") Boolean latestVersionOnly) {
+ boolean latest = latestVersionOnly != null ? latestVersionOnly : true;
+ return catalog.findConnector(latest);
}
@GET
@@ -70,20 +71,21 @@ public class CamelConnectorCatalogRest {
@ApiOperation(value = "Find all the connectors from the catalog")
public List<ConnectorDto> findConnector(@ApiParam("Filter the connector matching by name, description or labels")
@PathParam("filter") String filter,
- @ApiParam("Whether to include latest version only")
- @QueryParam("latestVersionOnly") boolean latestVersionOnly) {
- return catalog.findConnector(latestVersionOnly);
+ @ApiParam(value = "Whether to include latest version only", defaultValue = "true")
+ @QueryParam("latestVersionOnly") Boolean latestVersionOnly) {
+ boolean latest = latestVersionOnly != null ? latestVersionOnly : true;
+ return catalog.findConnector(latest);
}
@GET
@Path("/connectorJSon/{groupId}/{artifactId}/{version}")
@Produces("application/json")
@ApiOperation(value = "Returns the camel-connector json file for the given connector with the Maven coordinate")
- public String connectorJSon(@ApiParam("Maven groupdId of the connector")
+ public String connectorJSon(@ApiParam(value = "Maven groupdId of the connector", required = true)
@PathParam("groupId") String groupId,
- @ApiParam("Maven artifactId of the connector")
+ @ApiParam(value = "Maven artifactId of the connector", required = true)
@PathParam("artifactId") String artifactId,
- @ApiParam("Maven version of the connector")
+ @ApiParam(value = "Maven version of the connector", required = true)
@PathParam("version") String version) {
return catalog.connectorJSon(groupId, artifactId, version);
}
@@ -92,11 +94,11 @@ public class CamelConnectorCatalogRest {
@Path("/connectorSchemaJSon/{groupId}/{artifactId}/{version}")
@Produces("application/json")
@ApiOperation(value = "Returns the camel-connector-schema json file for the given connector with the Maven coordinate")
- public String connectorSchemaJSon(@ApiParam("Maven groupdId of the connector")
+ public String connectorSchemaJSon(@ApiParam(value = "Maven groupdId of the connector", required = true)
@PathParam("groupId") String groupId,
- @ApiParam("Maven artifactId of the connector")
+ @ApiParam(value = "Maven artifactId of the connector", required = true)
@PathParam("artifactId") String artifactId,
- @ApiParam("Maven version of the connector")
+ @ApiParam(value = "Maven version of the connector", required = true)
@PathParam("version") String version) {
return catalog.connectorSchemaJSon(groupId, artifactId, version);
}
@@ -104,15 +106,15 @@ public class CamelConnectorCatalogRest {
@POST
@Path("/mavenCacheDirectory/{name}")
@ApiOperation(value = "Configures the Maven cache directory to use when downloading artifacts")
- public void mavenCacheDirectory(@ApiParam("The name of the cache directory") @PathParam("name") String name) {
+ public void mavenCacheDirectory(@ApiParam(value = "The name of the cache directory", required = true) @PathParam("name") String name) {
maven.setCacheDirectory(name);
}
@POST
@Path("/addMavenRepository/{name}/{url}")
@ApiOperation(value = "Adds a third party Maven repository to use for downloading Maven artifacts")
- public void addMavenRepository(@ApiParam("The name of the Maven repository") @PathParam("name") String name,
- @ApiParam("The URL of the Maven repository") @PathParam("url") String url) {
+ public void addMavenRepository(@ApiParam(value = "The name of the Maven repository", required = true) @PathParam("name") String name,
+ @ApiParam(value = "The URL of the Maven repository", required = true) @PathParam("url") String url) {
maven.addMavenRepository(name, url);
}
@@ -120,9 +122,9 @@ public class CamelConnectorCatalogRest {
@Path("/addConnectorFromMavenArtifact/{groupId}/{artifactId}/{version}")
@Produces("application/json")
@ApiOperation(value = "Downloads the Maven artifact and scan for custom Camel connectors which will be added to the catalog and returns the names of the found connectors")
- public Set<String> addConnectorFromMavenArtifact(@ApiParam("The Maven groupId") @PathParam("groupId") String groupId,
- @ApiParam("The Maven artifactId") @PathParam("artifactId") String artifactId,
- @ApiParam("The Maven version") @PathParam("version") String version) {
+ public Set<String> addConnectorFromMavenArtifact(@ApiParam(value = "The Maven groupId", required = true) @PathParam("groupId") String groupId,
+ @ApiParam(value = "The Maven artifactId", required = true) @PathParam("artifactId") String artifactId,
+ @ApiParam(value = "The Maven version", required = true) @PathParam("version") String version) {
return maven.addArtifactToCatalog(null, catalog, groupId, artifactId, version);
}
http://git-wip-us.apache.org/repos/asf/camel/blob/655916cd/platforms/camel-catalog-rest/src/test/java/org/apache/camel/catalog/rest/CamelConnectorCatalogRestTest.java
----------------------------------------------------------------------
diff --git a/platforms/camel-catalog-rest/src/test/java/org/apache/camel/catalog/rest/CamelConnectorCatalogRestTest.java b/platforms/camel-catalog-rest/src/test/java/org/apache/camel/catalog/rest/CamelConnectorCatalogRestTest.java
index df6b2d9..a578092 100644
--- a/platforms/camel-catalog-rest/src/test/java/org/apache/camel/catalog/rest/CamelConnectorCatalogRestTest.java
+++ b/platforms/camel-catalog-rest/src/test/java/org/apache/camel/catalog/rest/CamelConnectorCatalogRestTest.java
@@ -73,7 +73,8 @@ public class CamelConnectorCatalogRestTest {
@Test
public void testFindConnectors() throws Exception {
- catalog.getCatalog().addConnector("org.apache.camel", "myfoo-connector", "2.19.0", "MyFoo", "my-foo","Something cool", "foo,timer", null, null);
+ catalog.getCatalog().addConnector("org.apache.camel", "myfoo-connector", "2.19.0", "MyFoo", "my-foo", "org.myfoo.connector.MyFooComponent",
+ "Something cool", "foo,timer", null, null, null);
given().
baseUri("http://localhost:" + port).
http://git-wip-us.apache.org/repos/asf/camel/blob/655916cd/platforms/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java
----------------------------------------------------------------------
diff --git a/platforms/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java b/platforms/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java
index bc4d9fa..e45eb67 100644
--- a/platforms/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java
+++ b/platforms/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java
@@ -509,6 +509,7 @@ public interface CamelCatalog {
* @return the constructed endpoint uri
* @throws java.net.URISyntaxException is thrown if there is encoding error
*/
+ @Deprecated
String asEndpointUri(String scheme, String json, boolean encode) throws URISyntaxException;
/**
@@ -520,6 +521,7 @@ public interface CamelCatalog {
* @return the constructed endpoint uri
* @throws java.net.URISyntaxException is thrown if there is encoding error
*/
+ @Deprecated
String asEndpointUriXml(String scheme, String json, boolean encode) throws URISyntaxException;
/**