You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2017/09/13 09:10:46 UTC
[6/6] camel git commit: CAMEL-11764: Verified that connector scheme
don't clash with components scheme from the catalog
CAMEL-11764: Verified that connector scheme don't clash with components scheme from the catalog
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/626e12e9
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/626e12e9
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/626e12e9
Branch: refs/heads/master
Commit: 626e12e97a65f3269de0407639d5f20c53f14d5d
Parents: baf685c
Author: aldettinger <al...@gmail.com>
Authored: Tue Sep 12 19:16:33 2017 +0200
Committer: Andrea Cosentino <an...@gmail.com>
Committed: Wed Sep 13 11:08:14 2017 +0200
----------------------------------------------------------------------
connectors/camel-connector-maven-plugin/pom.xml | 5 +++++
.../camel/maven/connector/ConnectorMojo.java | 17 +++++++++++++++++
2 files changed, 22 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/626e12e9/connectors/camel-connector-maven-plugin/pom.xml
----------------------------------------------------------------------
diff --git a/connectors/camel-connector-maven-plugin/pom.xml b/connectors/camel-connector-maven-plugin/pom.xml
index cbb2c84..3526c4c 100644
--- a/connectors/camel-connector-maven-plugin/pom.xml
+++ b/connectors/camel-connector-maven-plugin/pom.xml
@@ -33,6 +33,11 @@
<dependencies>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-catalog</artifactId>
+ </dependency>
+
<!-- we extend this existing maven plugin -->
<dependency>
<groupId>org.apache.maven.plugins</groupId>
http://git-wip-us.apache.org/repos/asf/camel/blob/626e12e9/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/ConnectorMojo.java
----------------------------------------------------------------------
diff --git a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/ConnectorMojo.java b/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/ConnectorMojo.java
index b0471c0..2d0fcc4 100644
--- a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/ConnectorMojo.java
+++ b/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/ConnectorMojo.java
@@ -34,6 +34,9 @@ import java.util.stream.Collectors;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
+
+import org.apache.camel.catalog.CamelCatalog;
+import org.apache.camel.catalog.DefaultCamelCatalog;
import org.apache.camel.maven.connector.util.FileHelper;
import org.apache.camel.maven.connector.util.GitHelper;
import org.apache.camel.maven.connector.util.JSonSchemaHelper;
@@ -69,6 +72,8 @@ public class ConnectorMojo extends AbstractJarMojo {
@Parameter(defaultValue = "false")
private boolean includeGitUrl;
+ private CamelCatalog catalog = new DefaultCamelCatalog();
+
@Override
protected File getClassesDirectory() {
return classesDirectory;
@@ -143,6 +148,8 @@ public class ConnectorMojo extends AbstractJarMojo {
rows = JSonSchemaHelper.parseJsonSchema("component", newJson, false);
String newScheme = getOption(rows, "scheme");
+ checkConnectorScheme(newScheme);
+
// write the json file to the target directory as if camel apt would do it
String javaType = (String) dto.get("javaType");
String dir = javaType.substring(0, javaType.lastIndexOf("."));
@@ -178,6 +185,16 @@ public class ConnectorMojo extends AbstractJarMojo {
return super.createArchive();
}
+ private void checkConnectorScheme(String connectorScheme) {
+ List<String> componentNames = catalog.findComponentNames();
+ if (componentNames != null && componentNames.contains(connectorScheme)) {
+ String format = "Can't package a connector with scheme '%s' as a component with the same scheme is already registered in the catalog";
+ String message = String.format(format, connectorScheme);
+ getLog().error(message);
+ throw new IllegalArgumentException(message);
+ }
+ }
+
private String embedGitUrlInCamelConnectorJSon(ObjectMapper mapper, Map dto) throws MojoExecutionException {
// we want to include the git url of the project
File gitFolder = GitHelper.findGitFolder();