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/01/19 12:09:52 UTC

[2/2] camel git commit: CAMEL-10721: Polished and allow to override options

CAMEL-10721: Polished and allow to override options


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

Branch: refs/heads/master
Commit: 388b787bb10806b60dbf8bae1cd54ac698d79be2
Parents: fe9d104
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Jan 19 13:08:54 2017 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Jan 19 13:08:54 2017 +0100

----------------------------------------------------------------------
 .../apache/camel/maven/connector/ConnectorMojo.java |  9 +++++++++
 .../src/main/resources/camel-connector.json         |  4 ++--
 .../main/java/org/beverage/BeverageEndpoint.java    | 16 +++++++++++++++-
 .../main/java/org/beverage/BeverageProducer.java    |  7 +++++--
 .../src/main/java/org/foo/FooBarWineRoute.java      | 10 +++++-----
 .../src/main/resources/camel-connector.json         |  3 +++
 6 files changed, 39 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/388b787b/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 31123cc..2576f49 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
@@ -220,6 +220,7 @@ public class ConnectorMojo extends AbstractJarMojo {
         // find the endpoint options
         List options = (List) dto.get("endpointOptions");
         Map values = (Map) dto.get("endpointValues");
+        Map overrides = (Map) dto.get("endpointOverrides");
 
         ObjectMapper mapper = new ObjectMapper();
 
@@ -244,6 +245,14 @@ public class ConnectorMojo extends AbstractJarMojo {
                 }
             }
 
+            // is there any overrides for this row?
+            if (overrides != null && overrides.containsKey(key)) {
+                Map over = (Map) overrides.get(key);
+                if (over != null) {
+                    row.putAll(over);
+                }
+            }
+
             // we should build the json as one-line which is how Camel does it today
             // which makes its internal json parser support loading our generated schema file
             String line = mapper.writeValueAsString(row);

http://git-wip-us.apache.org/repos/asf/camel/blob/388b787b/connectors/examples/bar-connector/src/main/resources/camel-connector.json
----------------------------------------------------------------------
diff --git a/connectors/examples/bar-connector/src/main/resources/camel-connector.json b/connectors/examples/bar-connector/src/main/resources/camel-connector.json
index d3ebcac..50960df 100644
--- a/connectors/examples/bar-connector/src/main/resources/camel-connector.json
+++ b/connectors/examples/bar-connector/src/main/resources/camel-connector.json
@@ -10,10 +10,10 @@
   "groupId" : "org.foo",
   "artifactId" : "wine-connector",
   "version" : "2.19.0-SNAPSHOT",
-  "description" : "To order two drinks from the bar",
+  "description" : "To order drinks from the bar",
   "labels" : [ "bar" ],
   "pattern" : "To",
-  "endpointOptions" : [ "drink", "amount" ],
+  "endpointOptions" : [ "drink", "amount", "celebrity" ],
   "endpointValues" : {
     "amount" : "2"
   }

http://git-wip-us.apache.org/repos/asf/camel/blob/388b787b/connectors/examples/beverage-component/src/main/java/org/beverage/BeverageEndpoint.java
----------------------------------------------------------------------
diff --git a/connectors/examples/beverage-component/src/main/java/org/beverage/BeverageEndpoint.java b/connectors/examples/beverage-component/src/main/java/org/beverage/BeverageEndpoint.java
index d333b59..1680a86 100644
--- a/connectors/examples/beverage-component/src/main/java/org/beverage/BeverageEndpoint.java
+++ b/connectors/examples/beverage-component/src/main/java/org/beverage/BeverageEndpoint.java
@@ -35,13 +35,16 @@ public class BeverageEndpoint extends DefaultEndpoint {
     @UriParam(defaultValue = "1")
     private int amount = 1;
 
+    @UriParam
+    private boolean celebrity;
+
     public BeverageEndpoint(String endpointUri, Component component) {
         super(endpointUri, component);
     }
 
     @Override
     public Producer createProducer() throws Exception {
-        return new BeverageProducer(this, drink, amount);
+        return new BeverageProducer(this, drink, amount, celebrity);
     }
 
     @Override
@@ -75,4 +78,15 @@ public class BeverageEndpoint extends DefaultEndpoint {
     public void setAmount(int amount) {
         this.amount = amount;
     }
+
+    public boolean isCelebrity() {
+        return celebrity;
+    }
+
+    /**
+     * Is this a famous person ordering
+     */
+    public void setCelebrity(boolean celebrity) {
+        this.celebrity = celebrity;
+    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/388b787b/connectors/examples/beverage-component/src/main/java/org/beverage/BeverageProducer.java
----------------------------------------------------------------------
diff --git a/connectors/examples/beverage-component/src/main/java/org/beverage/BeverageProducer.java b/connectors/examples/beverage-component/src/main/java/org/beverage/BeverageProducer.java
index c93e87c..3fb6cf5 100644
--- a/connectors/examples/beverage-component/src/main/java/org/beverage/BeverageProducer.java
+++ b/connectors/examples/beverage-component/src/main/java/org/beverage/BeverageProducer.java
@@ -24,19 +24,22 @@ public class BeverageProducer extends DefaultProducer {
 
     private final Beverages drink;
     private final int amount;
+    private final boolean celebrity;
 
     private transient int total;
 
-    public BeverageProducer(Endpoint endpoint, Beverages drink, int amount) {
+    public BeverageProducer(Endpoint endpoint, Beverages drink, int amount, boolean celebrity) {
         super(endpoint);
         this.drink = drink;
         this.amount = amount;
+        this.celebrity = celebrity;
     }
 
     @Override
     public void process(Exchange exchange) throws Exception {
         total += amount;
 
-        exchange.getIn().setBody("Total " + total + " of " + drink.name().toLowerCase() + " ordered");
+        exchange.getIn().setBody("total " + total + " of " + drink.name().toLowerCase() + " ordered"
+            + (celebrity ? " from famous person" : ""));
     }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/388b787b/connectors/examples/foo-bar-wine-example/src/main/java/org/foo/FooBarWineRoute.java
----------------------------------------------------------------------
diff --git a/connectors/examples/foo-bar-wine-example/src/main/java/org/foo/FooBarWineRoute.java b/connectors/examples/foo-bar-wine-example/src/main/java/org/foo/FooBarWineRoute.java
index f2b8f15..62cd18a 100644
--- a/connectors/examples/foo-bar-wine-example/src/main/java/org/foo/FooBarWineRoute.java
+++ b/connectors/examples/foo-bar-wine-example/src/main/java/org/foo/FooBarWineRoute.java
@@ -25,12 +25,12 @@ public class FooBarWineRoute extends RouteBuilder {
 
     @Override
     public void configure() throws Exception {
-        from("foo:wine?period=2000")
+        from("foo:ThirstyBear?period=2000")
             .to("wine:Wine?amount=2")
-            .log("Wine ordered ${body}");
+            .log("ThirstyBear ordered ${body}");
 
-        from("foo:bar?period=5000")
-            .to("bar:GinTonic?amount=5")
-            .log("Bar ordered ${body}");
+        from("foo:Moes?period=5000")
+            .to("bar:Beer?amount=5&celebrity=true")
+            .log("Moes ordered ${body}");
     }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/388b787b/connectors/examples/wine-connector/src/main/resources/camel-connector.json
----------------------------------------------------------------------
diff --git a/connectors/examples/wine-connector/src/main/resources/camel-connector.json b/connectors/examples/wine-connector/src/main/resources/camel-connector.json
index def291c..c7c88e5 100644
--- a/connectors/examples/wine-connector/src/main/resources/camel-connector.json
+++ b/connectors/examples/wine-connector/src/main/resources/camel-connector.json
@@ -16,5 +16,8 @@
   "endpointOptions" : [ "drink", "amount" ],
   "endpointValues" : {
     "drink" : "Wine"
+  },
+  "endpointOverrides": {
+    "drink": { "enum": [ "Wine" ], "description": "You can only order wine" }
   }
 }
\ No newline at end of file