CAMEL-8041: Camel commands should be reusable.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/c30e4559 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/c30e4559 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/c30e4559 Branch: refs/heads/master Commit: c30e45598d386003b51272a3027c73c2f7524d2b Parents: acd55f5 Author: Claus Ibsen <davscl...@apache.org> Authored: Thu Nov 13 10:58:07 2014 +0100 Committer: Claus Ibsen <davscl...@apache.org> Committed: Thu Nov 13 10:58:07 2014 +0100 ---------------------------------------------------------------------- .../camel/commands/AbstractContextCommand.java | 6 +- .../camel/commands/ComponentListCommand.java | 8 +-- .../apache/camel/commands/RestShowCommand.java | 2 +- .../camel/commands/internal/RegexUtil.java | 52 +++++++-------- .../commands/internal/CamelControllerImpl.java | 10 ++- .../karaf/commands/internal/RegexUtil.java | 69 -------------------- .../camel/karaf/commands/RegexUtilTest.java | 53 --------------- 7 files changed, 41 insertions(+), 159 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/c30e4559/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/AbstractContextCommand.java ---------------------------------------------------------------------- diff --git a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/AbstractContextCommand.java b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/AbstractContextCommand.java index 7212b15..9facb48 100644 --- a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/AbstractContextCommand.java +++ b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/AbstractContextCommand.java @@ -43,12 +43,12 @@ public abstract class AbstractContextCommand extends AbstractCamelCommand { } // Setting thread context classloader to the bundle classloader to enable legacy code that relies on it - ClassLoader oldClassloader = Thread.currentThread().getContextClassLoader(); - Thread.currentThread().setContextClassLoader(camelContext.getApplicationContextClassLoader()); +// ClassLoader oldClassloader = Thread.currentThread().getContextClassLoader(); +// Thread.currentThread().setContextClassLoader(camelContext.getApplicationContextClassLoader()); try { return performContextCommand(camelController, camelContext, out, err); } finally { - Thread.currentThread().setContextClassLoader(oldClassloader); +// Thread.currentThread().setContextClassLoader(oldClassloader); } } http://git-wip-us.apache.org/repos/asf/camel/blob/c30e4559/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/ComponentListCommand.java ---------------------------------------------------------------------- diff --git a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/ComponentListCommand.java b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/ComponentListCommand.java index 8f613c1..290260e 100644 --- a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/ComponentListCommand.java +++ b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/ComponentListCommand.java @@ -91,10 +91,10 @@ public class ComponentListCommand extends AbstractContextCommand { return null; } else { // some of the options is optional so we need to start from 1 - int maxNameLen = 1; - int maxStatusLen = 1; - int maxMavenLen = 1; - int maxDescriptionLen = 1; + int maxNameLen = 0; + int maxStatusLen = 0; + int maxMavenLen = 0; + int maxDescriptionLen = 0; for (final Map<String, String> component : components) { http://git-wip-us.apache.org/repos/asf/camel/blob/c30e4559/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RestShowCommand.java ---------------------------------------------------------------------- diff --git a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RestShowCommand.java b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RestShowCommand.java index 889246d..fb0dde2 100644 --- a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RestShowCommand.java +++ b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RestShowCommand.java @@ -34,7 +34,7 @@ public class RestShowCommand extends AbstractContextCommand { protected Object performContextCommand(CamelController camelController, CamelContext camelContext, PrintStream out, PrintStream err) throws Exception { List<RestDefinition> rests = camelController.getRestDefinitions(context); if (rests == null || rests.isEmpty()) { - out.print("There are no REST services in CamelContext with name: " + context); + out.println("There are no REST services in CamelContext with name: " + context); return null; } // use a routes definition to dump the rests http://git-wip-us.apache.org/repos/asf/camel/blob/c30e4559/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/internal/RegexUtil.java ---------------------------------------------------------------------- diff --git a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/internal/RegexUtil.java b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/internal/RegexUtil.java index 45d0ee8..4c05f22 100644 --- a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/internal/RegexUtil.java +++ b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/internal/RegexUtil.java @@ -35,32 +35,32 @@ public final class RegexUtil { for (int i = 0; i < wildcard.length(); i++) { final char c = wildcard.charAt(i); switch (c) { - case '*': - sb.append(".*?"); - break; - case '?': - sb.append("."); - break; - // chars that have magic regex meaning. They need quoting to be taken literally - case '$': - case '(': - case ')': - case '+': - case '-': - case '.': - case '[': - case '\\': - case ']': - case '^': - case '{': - case '|': - case '}': - sb.append('\\'); - sb.append(c); - break; - default: - sb.append(c); - break; + case '*': + sb.append(".*?"); + break; + case '?': + sb.append("."); + break; + // chars that have magic regex meaning. They need quoting to be taken literally + case '$': + case '(': + case ')': + case '+': + case '-': + case '.': + case '[': + case '\\': + case ']': + case '^': + case '{': + case '|': + case '}': + sb.append('\\'); + sb.append(c); + break; + default: + sb.append(c); + break; } } return sb.toString(); http://git-wip-us.apache.org/repos/asf/camel/blob/c30e4559/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/internal/CamelControllerImpl.java ---------------------------------------------------------------------- diff --git a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/internal/CamelControllerImpl.java b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/internal/CamelControllerImpl.java index 1e733e9..f695f6a 100644 --- a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/internal/CamelControllerImpl.java +++ b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/internal/CamelControllerImpl.java @@ -209,7 +209,9 @@ public class CamelControllerImpl implements CamelController { return o1.getUrl().compareTo(o2.getUrl()); } }); - answer.put(camelContextName, services); + if (!services.isEmpty()) { + answer.put(camelContextName, services); + } } } else { // already sorted by camel context @@ -222,7 +224,9 @@ public class CamelControllerImpl implements CamelController { return o1.getUrl().compareTo(o2.getUrl()); } }); - answer.put(camelContext.getName(), services); + if (!services.isEmpty()) { + answer.put(camelContext.getName(), services); + } } } return answer; @@ -278,7 +282,7 @@ public class CamelControllerImpl implements CamelController { } } - Map<String, String> row = new HashMap<>(); + Map<String, String> row = new HashMap<String, String>(); row.put("name", name); row.put("status", status); if (description != null) { http://git-wip-us.apache.org/repos/asf/camel/blob/c30e4559/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/internal/RegexUtil.java ---------------------------------------------------------------------- diff --git a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/internal/RegexUtil.java b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/internal/RegexUtil.java deleted file mode 100644 index 82b8717..0000000 --- a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/internal/RegexUtil.java +++ /dev/null @@ -1,69 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.karaf.commands.internal; - -/** - * Util class. - */ -public final class RegexUtil { - - private RegexUtil() { - } - - /** - * convert a wild card containing * and ? to the equivalent regex - * - * @param wildcard wildcard string describing a file. - * @return regex string that could be fed to Pattern.compile - */ - public static String wildcardAsRegex(String wildcard) { - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < wildcard.length(); i++) { - final char c = wildcard.charAt(i); - switch (c) { - case '*': - sb.append(".*?"); - break; - case '?': - sb.append("."); - break; - // chars that have magic regex meaning. They need quoting to be taken literally - case '$': - case '(': - case ')': - case '+': - case '-': - case '.': - case '[': - case '\\': - case ']': - case '^': - case '{': - case '|': - case '}': - sb.append('\\'); - sb.append(c); - break; - default: - sb.append(c); - break; - } - } - return sb.toString(); - } - -} http://git-wip-us.apache.org/repos/asf/camel/blob/c30e4559/platforms/karaf/commands/src/test/java/org/apache/camel/karaf/commands/RegexUtilTest.java ---------------------------------------------------------------------- diff --git a/platforms/karaf/commands/src/test/java/org/apache/camel/karaf/commands/RegexUtilTest.java b/platforms/karaf/commands/src/test/java/org/apache/camel/karaf/commands/RegexUtilTest.java deleted file mode 100644 index 31dc455..0000000 --- a/platforms/karaf/commands/src/test/java/org/apache/camel/karaf/commands/RegexUtilTest.java +++ /dev/null @@ -1,53 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.karaf.commands; - -import java.util.regex.Pattern; - -import org.apache.camel.karaf.commands.internal.RegexUtil; -import org.junit.Test; - -import static org.junit.Assert.assertTrue; - -public class RegexUtilTest { - - @Test - public void testWildcardAsRegex() throws Exception { - String testRouteId1 = "route.inbound.systema"; - String testRouteId2 = "route.inbound.systemb"; - String testRouteId3 = "route.outbound.systema"; - String testRouteId4 = "route.outbound.systemb"; - String testRouteId5 = "outbound.systemc"; - - assertTrue(Pattern.matches(RegexUtil.wildcardAsRegex("route.inbound*"), testRouteId1)); - assertTrue(!Pattern.matches(RegexUtil.wildcardAsRegex(".inbound*"), testRouteId2)); - assertTrue(Pattern.matches(RegexUtil.wildcardAsRegex("*.inbound*"), testRouteId2)); - - assertTrue(Pattern.matches(RegexUtil.wildcardAsRegex("*outbound*"), testRouteId3)); - assertTrue(Pattern.matches(RegexUtil.wildcardAsRegex("*outbound*"), testRouteId4)); - assertTrue(Pattern.matches(RegexUtil.wildcardAsRegex("*outbound*"), testRouteId5)); - - assertTrue(Pattern.matches(RegexUtil.wildcardAsRegex("*"), testRouteId1)); - assertTrue(Pattern.matches(RegexUtil.wildcardAsRegex("*"), testRouteId2)); - assertTrue(Pattern.matches(RegexUtil.wildcardAsRegex("*"), testRouteId3)); - assertTrue(Pattern.matches(RegexUtil.wildcardAsRegex("*"), testRouteId4)); - assertTrue(Pattern.matches(RegexUtil.wildcardAsRegex("*"), testRouteId5)); - - assertTrue(Pattern.matches(RegexUtil.wildcardAsRegex("route.inbound.systema"), testRouteId1)); - } - -}