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 2014/11/12 16:38:42 UTC
[3/4] camel git commit: CAMEL-7999: Added path kind option to
explained options in endpoints. Also grab the value so its shown as well.
CAMEL-7999: Added path kind option to explained options in endpoints. Also grab the value so its shown as well.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/a293de58
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/a293de58
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/a293de58
Branch: refs/heads/master
Commit: a293de58df19eca25bfcb8850c973d8eed028705
Parents: dcd0d35
Author: Claus Ibsen <da...@apache.org>
Authored: Wed Nov 12 15:13:04 2014 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Wed Nov 12 15:13:04 2014 +0100
----------------------------------------------------------------------
.../apache/camel/impl/DefaultCamelContext.java | 30 +++++++++++++-------
.../org/apache/camel/impl/DefaultComponent.java | 13 ++-------
.../java/org/apache/camel/util/URISupport.java | 22 ++++++++++++++
.../camel/karaf/commands/EndpointExplain.java | 4 +--
.../camel/karaf/commands/EndpointList.java | 4 +--
5 files changed, 47 insertions(+), 26 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/a293de58/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
index 138d69d..7f9fc54 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
@@ -23,6 +23,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
+import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
@@ -1230,18 +1231,25 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
selected.put(name, new String[]{name, kind, type, javaType, value, defaultValue, description});
}
- if (includeAllOptions) {
- // include other rows
- for (Map<String, String> row : rows) {
- String name = row.get("name");
- String kind = row.get("kind");
- String value = row.get("value");
- String defaultValue = row.get("defaultValue");
- String type = row.get("type");
- String javaType = row.get("javaType");
+ // include other rows
+ for (Map<String, String> row : rows) {
+ String name = row.get("name");
+ String kind = row.get("kind");
+ String value = row.get("value");
+ String defaultValue = row.get("defaultValue");
+ String type = row.get("type");
+ String javaType = row.get("javaType");
+ value = URISupport.sanitizePath(value);
+ String description = row.get("description");
+
+ if ("path".equals(kind)) {
+ // if its the path option then we need to grab the actual value from the uri, which is the remainder path
+ value = URISupport.extractRemainderPath(u, false);
value = URISupport.sanitizePath(value);
- String description = row.get("description");
+ }
+ // always include path options
+ if (includeAllOptions || "path".equals(kind)) {
// add as selected row
if (!selected.containsKey(name)) {
selected.put(name, new String[]{name, kind, type, javaType, value, defaultValue, description});
@@ -1269,7 +1277,7 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
String description = row[6];
// add json of the option
- buffer.append(doubleQuote(name) + ": { ");
+ buffer.append(doubleQuote(name)).append(": { ");
CollectionStringBuffer csb = new CollectionStringBuffer();
if (kind != null) {
csb.append("\"kind\": \"" + kind + "\"");
http://git-wip-us.apache.org/repos/asf/camel/blob/a293de58/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java
index bad9b0c..a832e4d 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java
@@ -74,22 +74,13 @@ public abstract class DefaultComponent extends ServiceSupport implements Compone
// check URI string to the unsafe URI characters
String encodedUri = preProcessUri(uri);
URI u = new URI(encodedUri);
- String path = useRawUri() ? u.getRawSchemeSpecificPart() : u.getSchemeSpecificPart();
-
- // lets trim off any query arguments
- if (path.startsWith("//")) {
- path = path.substring(2);
- }
- int idx = path.indexOf('?');
- if (idx > -1) {
- path = path.substring(0, idx);
- }
+ String path = URISupport.extractRemainderPath(u, useRawUri());
Map<String, Object> parameters;
if (useRawUri()) {
// when using raw uri then the query is taking from the uri as is
String query;
- idx = uri.indexOf('?');
+ int idx = uri.indexOf('?');
if (idx > -1) {
query = uri.substring(idx + 1);
} else {
http://git-wip-us.apache.org/repos/asf/camel/blob/a293de58/camel-core/src/main/java/org/apache/camel/util/URISupport.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/util/URISupport.java b/camel-core/src/main/java/org/apache/camel/util/URISupport.java
index 607f859..894f2ab 100644
--- a/camel-core/src/main/java/org/apache/camel/util/URISupport.java
+++ b/camel-core/src/main/java/org/apache/camel/util/URISupport.java
@@ -94,6 +94,28 @@ public final class URISupport {
}
/**
+ * Extracts the scheme specific path from the URI that is used as the remainder option when creating endpoints.
+ *
+ * @param u the URI
+ * @param useRaw whether to force using raw values
+ * @return the remainder path
+ */
+ public static String extractRemainderPath(URI u, boolean useRaw) {
+ String path = useRaw ? u.getRawSchemeSpecificPart() : u.getSchemeSpecificPart();
+
+ // lets trim off any query arguments
+ if (path.startsWith("//")) {
+ path = path.substring(2);
+ }
+ int idx = path.indexOf('?');
+ if (idx > -1) {
+ path = path.substring(0, idx);
+ }
+
+ return path;
+ }
+
+ /**
* Parses the query part of the uri (eg the parameters).
* <p/>
* The URI parameters will by default be URI encoded. However you can define a parameter
http://git-wip-us.apache.org/repos/asf/camel/blob/a293de58/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/EndpointExplain.java
----------------------------------------------------------------------
diff --git a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/EndpointExplain.java b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/EndpointExplain.java
index 93bed6b..c950a20 100644
--- a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/EndpointExplain.java
+++ b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/EndpointExplain.java
@@ -89,8 +89,8 @@ public class EndpointExplain extends CamelCommandSupport {
Collections.sort(options, new Comparator<Map<String, String>>() {
@Override
public int compare(Map<String, String> o1, Map<String, String> o2) {
- // sort by kind first, then name
- int answer = o1.get("kind").compareTo(o2.get("kind"));
+ // sort by kind first (need to -1 as we want path on top), then name
+ int answer = -1 * o1.get("kind").compareTo(o2.get("kind"));
if (answer == 0) {
answer = o1.get("name").compareTo(o2.get("name"));
}
http://git-wip-us.apache.org/repos/asf/camel/blob/a293de58/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/EndpointList.java
----------------------------------------------------------------------
diff --git a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/EndpointList.java b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/EndpointList.java
index 6777df1..d39f2e0 100644
--- a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/EndpointList.java
+++ b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/EndpointList.java
@@ -102,8 +102,8 @@ public class EndpointList extends CamelCommandSupport {
Collections.sort(options, new Comparator<Map<String, String>>() {
@Override
public int compare(Map<String, String> o1, Map<String, String> o2) {
- // sort by kind first, then name
- int answer = o1.get("kind").compareTo(o2.get("kind"));
+ // sort by kind first (need to -1 as we want path on top), then name
+ int answer = -1 * o1.get("kind").compareTo(o2.get("kind"));
if (answer == 0) {
answer = o1.get("name").compareTo(o2.get("name"));
}