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/04/14 10:52:59 UTC

[5/6] camel git commit: Rename catalog to runtimecatalog to avoid clash with same package name in camel-catalog.

http://git-wip-us.apache.org/repos/asf/camel/blob/c66be7a8/camel-core/src/main/java/org/apache/camel/catalog/EndpointValidationResult.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/catalog/EndpointValidationResult.java b/camel-core/src/main/java/org/apache/camel/catalog/EndpointValidationResult.java
deleted file mode 100644
index 9bb98f0..0000000
--- a/camel-core/src/main/java/org/apache/camel/catalog/EndpointValidationResult.java
+++ /dev/null
@@ -1,451 +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.catalog;
-
-import java.io.Serializable;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import static org.apache.camel.catalog.URISupport.isEmpty;
-
-/**
- * Details result of validating endpoint uri.
- */
-public class EndpointValidationResult implements Serializable {
-
-    private final String uri;
-    private int errors;
-
-    // general
-    private String syntaxError;
-    private String unknownComponent;
-    private String incapable;
-
-    // options
-    private Set<String> unknown;
-    private Map<String, String[]> unknownSuggestions;
-    private Set<String> lenient;
-    private Set<String> notConsumerOnly;
-    private Set<String> notProducerOnly;
-    private Set<String> required;
-    private Map<String, String> invalidEnum;
-    private Map<String, String[]> invalidEnumChoices;
-    private Map<String, String[]> invalidEnumSuggestions;
-    private Map<String, String> invalidReference;
-    private Map<String, String> invalidBoolean;
-    private Map<String, String> invalidInteger;
-    private Map<String, String> invalidNumber;
-    private Map<String, String> defaultValues;
-
-    public EndpointValidationResult() {
-        this(null);
-    }
-
-    public EndpointValidationResult(String uri) {
-        this.uri = uri;
-    }
-
-    public String getUri() {
-        return uri;
-    }
-
-    public boolean hasErrors() {
-        return errors > 0;
-    }
-
-    public int getNumberOfErrors() {
-        return errors;
-    }
-
-    public boolean isSuccess() {
-        boolean ok = syntaxError == null && unknownComponent == null && incapable == null
-                && unknown == null && required == null;
-        if (ok) {
-            ok = notConsumerOnly == null && notProducerOnly == null;
-        }
-        if (ok) {
-            ok = invalidEnum == null && invalidEnumChoices == null && invalidReference == null
-                && invalidBoolean == null && invalidInteger == null && invalidNumber == null;
-        }
-        return ok;
-    }
-
-    public void addSyntaxError(String syntaxError) {
-        this.syntaxError = syntaxError;
-        errors++;
-    }
-
-    public void addIncapable(String uri) {
-        this.incapable = uri;
-        errors++;
-    }
-
-    public void addUnknownComponent(String name) {
-        this.unknownComponent = name;
-        errors++;
-    }
-
-    public void addUnknown(String name) {
-        if (unknown == null) {
-            unknown = new LinkedHashSet<String>();
-        }
-        if (!unknown.contains(name)) {
-            unknown.add(name);
-            errors++;
-        }
-    }
-
-    public void addUnknownSuggestions(String name, String[] suggestions) {
-        if (unknownSuggestions == null) {
-            unknownSuggestions = new LinkedHashMap<String, String[]>();
-        }
-        unknownSuggestions.put(name, suggestions);
-    }
-
-    public void addLenient(String name) {
-        if (lenient == null) {
-            lenient = new LinkedHashSet<String>();
-        }
-        if (!lenient.contains(name)) {
-            lenient.add(name);
-        }
-    }
-
-    public void addRequired(String name) {
-        if (required == null) {
-            required = new LinkedHashSet<String>();
-        }
-        if (!required.contains(name)) {
-            required.add(name);
-            errors++;
-        }
-    }
-
-    public void addInvalidEnum(String name, String value) {
-        if (invalidEnum == null) {
-            invalidEnum = new LinkedHashMap<String, String>();
-        }
-        if (!invalidEnum.containsKey(name)) {
-            invalidEnum.put(name, value);
-            errors++;
-        }
-    }
-
-    public void addInvalidEnumChoices(String name, String[] choices) {
-        if (invalidEnumChoices == null) {
-            invalidEnumChoices = new LinkedHashMap<String, String[]>();
-        }
-        invalidEnumChoices.put(name, choices);
-    }
-
-    public void addInvalidEnumSuggestions(String name, String[] suggestions) {
-        if (invalidEnumSuggestions == null) {
-            invalidEnumSuggestions = new LinkedHashMap<String, String[]>();
-        }
-        invalidEnumSuggestions.put(name, suggestions);
-    }
-
-    public void addInvalidReference(String name, String value) {
-        if (invalidReference == null) {
-            invalidReference = new LinkedHashMap<String, String>();
-        }
-        if (!invalidReference.containsKey(name)) {
-            invalidReference.put(name, value);
-            errors++;
-        }
-    }
-
-    public void addInvalidBoolean(String name, String value) {
-        if (invalidBoolean == null) {
-            invalidBoolean = new LinkedHashMap<String, String>();
-        }
-        if (!invalidBoolean.containsKey(name)) {
-            invalidBoolean.put(name, value);
-            errors++;
-        }
-    }
-
-    public void addInvalidInteger(String name, String value) {
-        if (invalidInteger == null) {
-            invalidInteger = new LinkedHashMap<String, String>();
-        }
-        if (!invalidInteger.containsKey(name)) {
-            invalidInteger.put(name, value);
-            errors++;
-        }
-    }
-
-    public void addInvalidNumber(String name, String value) {
-        if (invalidNumber == null) {
-            invalidNumber = new LinkedHashMap<String, String>();
-        }
-        if (!invalidNumber.containsKey(name)) {
-            invalidNumber.put(name, value);
-            errors++;
-        }
-    }
-
-    public void addDefaultValue(String name, String value)  {
-        if (defaultValues == null) {
-            defaultValues = new LinkedHashMap<String, String>();
-        }
-        defaultValues.put(name, value);
-    }
-
-    public void addNotConsumerOnly(String name) {
-        if (notConsumerOnly == null) {
-            notConsumerOnly = new LinkedHashSet<String>();
-        }
-        if (!notConsumerOnly.contains(name)) {
-            notConsumerOnly.add(name);
-            errors++;
-        }
-    }
-
-    public void addNotProducerOnly(String name) {
-        if (notProducerOnly == null) {
-            notProducerOnly = new LinkedHashSet<String>();
-        }
-        if (!notProducerOnly.contains(name)) {
-            notProducerOnly.add(name);
-            errors++;
-        }
-    }
-
-    public String getSyntaxError() {
-        return syntaxError;
-    }
-
-    public String getIncapable() {
-        return incapable;
-    }
-
-    public Set<String> getUnknown() {
-        return unknown;
-    }
-
-    public Set<String> getLenient() {
-        return lenient;
-    }
-
-    public Map<String, String[]> getUnknownSuggestions() {
-        return unknownSuggestions;
-    }
-
-    public String getUnknownComponent() {
-        return unknownComponent;
-    }
-
-    public Set<String> getRequired() {
-        return required;
-    }
-
-    public Map<String, String> getInvalidEnum() {
-        return invalidEnum;
-    }
-
-    public Map<String, String[]> getInvalidEnumChoices() {
-        return invalidEnumChoices;
-    }
-
-    public List<String> getEnumChoices(String optionName) {
-        if (invalidEnumChoices != null) {
-            String[] enums = invalidEnumChoices.get(optionName);
-            if (enums != null) {
-                return Arrays.asList(enums);
-            }
-        }
-
-        return Collections.emptyList();
-    }
-
-    public Map<String, String> getInvalidReference() {
-        return invalidReference;
-    }
-
-    public Map<String, String> getInvalidBoolean() {
-        return invalidBoolean;
-    }
-
-    public Map<String, String> getInvalidInteger() {
-        return invalidInteger;
-    }
-
-    public Map<String, String> getInvalidNumber() {
-        return invalidNumber;
-    }
-
-    public Map<String, String> getDefaultValues() {
-        return defaultValues;
-    }
-
-    public Set<String> getNotConsumerOnly() {
-        return notConsumerOnly;
-    }
-
-    public Set<String> getNotProducerOnly() {
-        return notProducerOnly;
-    }
-
-    /**
-     * A human readable summary of the validation errors.
-     *
-     * @param includeHeader whether to include a header
-     * @return the summary, or <tt>null</tt> if no validation errors
-     */
-    public String summaryErrorMessage(boolean includeHeader) {
-        if (isSuccess()) {
-            return null;
-        }
-
-        if (incapable != null) {
-            return "\tIncapable of parsing uri: " + incapable;
-        } else if (syntaxError != null) {
-            return "\tSyntax error: " + syntaxError;
-        } else if (unknownComponent != null) {
-            return "\tUnknown component: " + unknownComponent;
-        }
-
-        // for each invalid option build a reason message
-        Map<String, String> options = new LinkedHashMap<String, String>();
-        if (unknown != null) {
-            for (String name : unknown) {
-                if (unknownSuggestions != null && unknownSuggestions.containsKey(name)) {
-                    String[] suggestions = unknownSuggestions.get(name);
-                    if (suggestions != null && suggestions.length > 0) {
-                        String str = Arrays.asList(suggestions).toString();
-                        options.put(name, "Unknown option. Did you mean: " + str);
-                    } else {
-                        options.put(name, "Unknown option");
-                    }
-                } else {
-                    options.put(name, "Unknown option");
-                }
-            }
-        }
-        if (notConsumerOnly != null) {
-            for (String name : notConsumerOnly) {
-                options.put(name, "Option not applicable in consumer only mode");
-            }
-        }
-        if (notProducerOnly != null) {
-            for (String name : notProducerOnly) {
-                options.put(name, "Option not applicable in producer only mode");
-            }
-        }
-        if (required != null) {
-            for (String name : required) {
-                options.put(name, "Missing required option");
-            }
-        }
-        if (invalidEnum != null) {
-            for (Map.Entry<String, String> entry : invalidEnum.entrySet()) {
-                String name = entry.getKey();
-                String[] choices = invalidEnumChoices.get(name);
-                String defaultValue = defaultValues != null ? defaultValues.get(entry.getKey()) : null;
-                String str = Arrays.asList(choices).toString();
-                String msg = "Invalid enum value: " + entry.getValue() + ". Possible values: " + str;
-                if (invalidEnumSuggestions != null) {
-                    String[] suggestions = invalidEnumSuggestions.get(name);
-                    if (suggestions != null && suggestions.length > 0) {
-                        str = Arrays.asList(suggestions).toString();
-                        msg += ". Did you mean: " + str;
-                    }
-                }
-                if (defaultValue != null) {
-                    msg += ". Default value: " + defaultValue;
-                }
-
-                options.put(entry.getKey(), msg);
-            }
-        }
-        if (invalidReference != null) {
-            for (Map.Entry<String, String> entry : invalidReference.entrySet()) {
-                boolean empty = isEmpty(entry.getValue());
-                if (empty) {
-                    options.put(entry.getKey(), "Empty reference value");
-                } else if (!entry.getValue().startsWith("#")) {
-                    options.put(entry.getKey(), "Invalid reference value: " + entry.getValue() + " must start with #");
-                } else {
-                    options.put(entry.getKey(), "Invalid reference value: " + entry.getValue());
-                }
-            }
-        }
-        if (invalidBoolean != null) {
-            for (Map.Entry<String, String> entry : invalidBoolean.entrySet()) {
-                boolean empty = isEmpty(entry.getValue());
-                if (empty) {
-                    options.put(entry.getKey(), "Empty boolean value");
-                } else {
-                    options.put(entry.getKey(), "Invalid boolean value: " + entry.getValue());
-                }
-            }
-        }
-        if (invalidInteger != null) {
-            for (Map.Entry<String, String> entry : invalidInteger.entrySet()) {
-                boolean empty = isEmpty(entry.getValue());
-                if (empty) {
-                    options.put(entry.getKey(), "Empty integer value");
-                } else {
-                    options.put(entry.getKey(), "Invalid integer value: " + entry.getValue());
-                }
-            }
-        }
-        if (invalidNumber != null) {
-            for (Map.Entry<String, String> entry : invalidNumber.entrySet()) {
-                boolean empty = isEmpty(entry.getValue());
-                if (empty) {
-                    options.put(entry.getKey(), "Empty number value");
-                } else {
-                    options.put(entry.getKey(), "Invalid number value: " + entry.getValue());
-                }
-            }
-        }
-
-        // build a table with the error summary nicely formatted
-        // lets use 24 as min length
-        int maxLen = 24;
-        for (String key : options.keySet()) {
-            maxLen = Math.max(maxLen, key.length());
-        }
-        String format = "%" + maxLen + "s    %s";
-
-        // build the human error summary
-        StringBuilder sb = new StringBuilder();
-        if (includeHeader) {
-            sb.append("Endpoint validator error\n");
-            sb.append("---------------------------------------------------------------------------------------------------------------------------------------\n");
-            sb.append("\n");
-        }
-        if (uri != null) {
-            sb.append("\t").append(uri).append("\n");
-        } else {
-            sb.append("\n");
-        }
-        for (Map.Entry<String, String> option : options.entrySet()) {
-            String out = String.format(format, option.getKey(), option.getValue());
-            sb.append("\n\t").append(out);
-        }
-
-        return sb.toString();
-    }
-}

http://git-wip-us.apache.org/repos/asf/camel/blob/c66be7a8/camel-core/src/main/java/org/apache/camel/catalog/JSonSchemaHelper.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/catalog/JSonSchemaHelper.java b/camel-core/src/main/java/org/apache/camel/catalog/JSonSchemaHelper.java
deleted file mode 100644
index 774facd..0000000
--- a/camel-core/src/main/java/org/apache/camel/catalog/JSonSchemaHelper.java
+++ /dev/null
@@ -1,424 +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.catalog;
-
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-public final class JSonSchemaHelper {
-
-    // 0 = text, 1 = enum, 2 = boolean, 3 = integer or number
-    private static final Pattern PATTERN = Pattern.compile("\"(.+?)\"|\\[(.+)\\]|(true|false)|(-?\\d+\\.?\\d*)");
-    private static final String QUOT = "&quot;";
-
-    private JSonSchemaHelper() {
-    }
-
-    /**
-     * Parses the json schema to split it into a list or rows, where each row contains key value pairs with the metadata
-     *
-     * @param group the group to parse from such as <tt>component</tt>, <tt>componentProperties</tt>, or <tt>properties</tt>.
-     * @param json the json
-     * @return a list of all the rows, where each row is a set of key value pairs with metadata
-     */
-    public static List<Map<String, String>> parseJsonSchema(String group, String json, boolean parseProperties) {
-        List<Map<String, String>> answer = new ArrayList<Map<String, String>>();
-        if (json == null) {
-            return answer;
-        }
-
-        boolean found = false;
-
-        // parse line by line
-        String[] lines = json.split("\n");
-        for (String line : lines) {
-            // we need to find the group first
-            if (!found) {
-                String s = line.trim();
-                found = s.startsWith("\"" + group + "\":") && s.endsWith("{");
-                continue;
-            }
-
-            // we should stop when we end the group
-            if (line.equals("  },") || line.equals("  }")) {
-                break;
-            }
-
-            // need to safe encode \" so we can parse the line
-            line = line.replaceAll("\"\\\\\"\"", '"' + QUOT + '"');
-
-            Map<String, String> row = new LinkedHashMap<String, String>();
-            Matcher matcher = PATTERN.matcher(line);
-
-            String key;
-            if (parseProperties) {
-                // when parsing properties the first key is given as name, so the first parsed token is the value of the name
-                key = "name";
-            } else {
-                key = null;
-            }
-            while (matcher.find()) {
-                if (key == null) {
-                    key = matcher.group(1);
-                } else {
-                    String value = matcher.group(1);
-                    if (value != null) {
-                        // its text based
-                        value = value.trim();
-                        // decode
-                        value = value.replaceAll(QUOT, "\"");
-                        value = decodeJson(value);
-                    }
-                    if (value == null) {
-                        // not text then its maybe an enum?
-                        value = matcher.group(2);
-                        if (value != null) {
-                            // its an enum so strip out " and trim spaces after comma
-                            value = value.replaceAll("\"", "");
-                            value = value.replaceAll(", ", ",");
-                            value = value.trim();
-                        }
-                    }
-                    if (value == null) {
-                        // not text then its maybe a boolean?
-                        value = matcher.group(3);
-                    }
-                    if (value == null) {
-                        // not text then its maybe a integer?
-                        value = matcher.group(4);
-                    }
-                    if (value != null) {
-                        row.put(key, value);
-                    }
-                    // reset
-                    key = null;
-                }
-            }
-            if (!row.isEmpty()) {
-                answer.add(row);
-            }
-        }
-
-        return answer;
-    }
-
-    private static String decodeJson(String value) {
-        // json encodes a \ as \\ so we need to decode from \\ back to \
-        if ("\\\\".equals(value)) {
-            value = "\\";
-        }
-        return value;
-    }
-
-    public static boolean isComponentLenientProperties(List<Map<String, String>> rows) {
-        for (Map<String, String> row : rows) {
-            if (row.containsKey("lenientProperties")) {
-                return "true".equals(row.get("lenientProperties"));
-            }
-        }
-        return false;
-    }
-
-    public static boolean isComponentConsumerOnly(List<Map<String, String>> rows) {
-        for (Map<String, String> row : rows) {
-            if (row.containsKey("consumerOnly")) {
-                return "true".equals(row.get("consumerOnly"));
-            }
-        }
-        return false;
-    }
-
-    public static boolean isComponentProducerOnly(List<Map<String, String>> rows) {
-        for (Map<String, String> row : rows) {
-            if (row.containsKey("producerOnly")) {
-                return "true".equals(row.get("producerOnly"));
-            }
-        }
-        return false;
-    }
-
-    public static boolean isPropertyConsumerOnly(List<Map<String, String>> rows, String name) {
-        for (Map<String, String> row : rows) {
-            String labels = null;
-            boolean found = false;
-            if (row.containsKey("name")) {
-                found = name.equals(row.get("name"));
-            }
-            if (row.containsKey("label")) {
-                labels = row.get("label");
-            }
-            if (found) {
-                return labels != null && labels.contains("consumer");
-            }
-        }
-        return false;
-    }
-
-    public static boolean isPropertyProducerOnly(List<Map<String, String>> rows, String name) {
-        for (Map<String, String> row : rows) {
-            String labels = null;
-            boolean found = false;
-            if (row.containsKey("name")) {
-                found = name.equals(row.get("name"));
-            }
-            if (row.containsKey("label")) {
-                labels = row.get("label");
-            }
-            if (found) {
-                return labels != null && labels.contains("producer");
-            }
-        }
-        return false;
-    }
-
-    public static boolean isPropertyRequired(List<Map<String, String>> rows, String name) {
-        for (Map<String, String> row : rows) {
-            boolean required = false;
-            boolean found = false;
-            if (row.containsKey("name")) {
-                found = name.equals(row.get("name"));
-            }
-            if (row.containsKey("required")) {
-                required = "true".equals(row.get("required"));
-            }
-            if (found) {
-                return required;
-            }
-        }
-        return false;
-    }
-
-    public static String getPropertyKind(List<Map<String, String>> rows, String name) {
-        for (Map<String, String> row : rows) {
-            String kind = null;
-            boolean found = false;
-            if (row.containsKey("name")) {
-                found = name.equals(row.get("name"));
-            }
-            if (row.containsKey("kind")) {
-                kind = row.get("kind");
-            }
-            if (found) {
-                return kind;
-            }
-        }
-        return null;
-    }
-
-    public static boolean isPropertyBoolean(List<Map<String, String>> rows, String name) {
-        for (Map<String, String> row : rows) {
-            String type = null;
-            boolean found = false;
-            if (row.containsKey("name")) {
-                found = name.equals(row.get("name"));
-            }
-            if (row.containsKey("type")) {
-                type = row.get("type");
-            }
-            if (found) {
-                return "boolean".equals(type);
-            }
-        }
-        return false;
-    }
-
-    public static boolean isPropertyInteger(List<Map<String, String>> rows, String name) {
-        for (Map<String, String> row : rows) {
-            String type = null;
-            boolean found = false;
-            if (row.containsKey("name")) {
-                found = name.equals(row.get("name"));
-            }
-            if (row.containsKey("type")) {
-                type = row.get("type");
-            }
-            if (found) {
-                return "integer".equals(type);
-            }
-        }
-        return false;
-    }
-
-    public static boolean isPropertyNumber(List<Map<String, String>> rows, String name) {
-        for (Map<String, String> row : rows) {
-            String type = null;
-            boolean found = false;
-            if (row.containsKey("name")) {
-                found = name.equals(row.get("name"));
-            }
-            if (row.containsKey("type")) {
-                type = row.get("type");
-            }
-            if (found) {
-                return "number".equals(type);
-            }
-        }
-        return false;
-    }
-
-    public static boolean isPropertyObject(List<Map<String, String>> rows, String name) {
-        for (Map<String, String> row : rows) {
-            String type = null;
-            boolean found = false;
-            if (row.containsKey("name")) {
-                found = name.equals(row.get("name"));
-            }
-            if (row.containsKey("type")) {
-                type = row.get("type");
-            }
-            if (found) {
-                return "object".equals(type);
-            }
-        }
-        return false;
-    }
-
-    public static String getPropertyDefaultValue(List<Map<String, String>> rows, String name) {
-        for (Map<String, String> row : rows) {
-            String defaultValue = null;
-            boolean found = false;
-            if (row.containsKey("name")) {
-                found = name.equals(row.get("name"));
-            }
-            if (row.containsKey("defaultValue")) {
-                defaultValue = row.get("defaultValue");
-            }
-            if (found) {
-                return defaultValue;
-            }
-        }
-        return null;
-    }
-
-    public static String stripOptionalPrefixFromName(List<Map<String, String>> rows, String name) {
-        for (Map<String, String> row : rows) {
-            String optionalPrefix = null;
-            boolean found = false;
-            if (row.containsKey("optionalPrefix")) {
-                optionalPrefix = row.get("optionalPrefix");
-            }
-            if (row.containsKey("name")) {
-                if (optionalPrefix != null && name.startsWith(optionalPrefix)) {
-                    name = name.substring(optionalPrefix.length());
-                    // try again
-                    return stripOptionalPrefixFromName(rows, name);
-                } else {
-                    found = name.equals(row.get("name"));
-                }
-            }
-            if (found) {
-                return name;
-            }
-        }
-        return name;
-    }
-
-    public static String getPropertyEnum(List<Map<String, String>> rows, String name) {
-        for (Map<String, String> row : rows) {
-            String enums = null;
-            boolean found = false;
-            if (row.containsKey("name")) {
-                found = name.equals(row.get("name"));
-            }
-            if (row.containsKey("enum")) {
-                enums = row.get("enum");
-            }
-            if (found) {
-                return enums;
-            }
-        }
-        return null;
-    }
-
-    public static String getPropertyPrefix(List<Map<String, String>> rows, String name) {
-        for (Map<String, String> row : rows) {
-            String prefix = null;
-            boolean found = false;
-            if (row.containsKey("name")) {
-                found = name.equals(row.get("name"));
-            }
-            if (row.containsKey("prefix")) {
-                prefix = row.get("prefix");
-            }
-            if (found) {
-                return prefix;
-            }
-        }
-        return null;
-    }
-
-    public static boolean isPropertyMultiValue(List<Map<String, String>> rows, String name) {
-        for (Map<String, String> row : rows) {
-            boolean multiValue = false;
-            boolean found = false;
-            if (row.containsKey("name")) {
-                found = name.equals(row.get("name"));
-            }
-            if (row.containsKey("multiValue")) {
-                multiValue = "true".equals(row.get("multiValue"));
-            }
-            if (found) {
-                return multiValue;
-            }
-        }
-        return false;
-    }
-
-    public static String getPropertyNameFromNameWithPrefix(List<Map<String, String>> rows, String name) {
-        for (Map<String, String> row : rows) {
-            String propertyName = null;
-            boolean found = false;
-            if (row.containsKey("name")) {
-                propertyName = row.get("name");
-            }
-            if (row.containsKey("prefix")) {
-                String preifx = row.get("prefix");
-                found = name.startsWith(preifx);
-            }
-            if (found) {
-                return propertyName;
-            }
-        }
-        return null;
-    }
-
-    public static Map<String, String> getRow(List<Map<String, String>> rows, String key) {
-        for (Map<String, String> row : rows) {
-            if (key.equals(row.get("name"))) {
-                return row;
-            }
-        }
-        return null;
-    }
-
-    public static Set<String> getNames(List<Map<String, String>> rows) {
-        Set<String> answer = new LinkedHashSet<String>();
-        for (Map<String, String> row : rows) {
-            if (row.containsKey("name")) {
-                answer.add(row.get("name"));
-            }
-        }
-        return answer;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/camel/blob/c66be7a8/camel-core/src/main/java/org/apache/camel/catalog/JSonSchemaResolver.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/catalog/JSonSchemaResolver.java b/camel-core/src/main/java/org/apache/camel/catalog/JSonSchemaResolver.java
deleted file mode 100644
index 9bf09cc..0000000
--- a/camel-core/src/main/java/org/apache/camel/catalog/JSonSchemaResolver.java
+++ /dev/null
@@ -1,64 +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.catalog;
-
-/**
- * Pluggable resolver to load JSon schema files for components, data formats, languages etc.
- */
-public interface JSonSchemaResolver {
-
-    /**
-     * Returns the component information as JSon format.
-     *
-     * @param name the component name
-     * @return component details in JSon
-     */
-    String getComponentJSonSchema(String name);
-
-    /**
-     * Returns the data format information as JSon format.
-     *
-     * @param name the data format name
-     * @return data format details in JSon
-     */
-    String getDataFormatJSonSchema(String name);
-
-    /**
-     * Returns the language information as JSon format.
-     *
-     * @param name the language name
-     * @return language details in JSon
-     */
-    String getLanguageJSonSchema(String name);
-
-    /**
-     * Returns the other (miscellaneous) information as JSon format.
-     *
-     * @param name the other (miscellaneous) name
-     * @return other (miscellaneous) details in JSon
-     */
-    String getOtherJSonSchema(String name);
-
-    /**
-     * Returns the model information as JSon format.
-     *
-     * @param name the model name
-     * @return model details in JSon
-     */
-    String getModelJSonSchema(String name);
-
-}

http://git-wip-us.apache.org/repos/asf/camel/blob/c66be7a8/camel-core/src/main/java/org/apache/camel/catalog/LanguageValidationResult.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/catalog/LanguageValidationResult.java b/camel-core/src/main/java/org/apache/camel/catalog/LanguageValidationResult.java
deleted file mode 100644
index 4a977eb..0000000
--- a/camel-core/src/main/java/org/apache/camel/catalog/LanguageValidationResult.java
+++ /dev/null
@@ -1,65 +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.catalog;
-
-import java.io.Serializable;
-
-/**
- * Validation result of parsing a language expression or predicate
- */
-public class LanguageValidationResult implements Serializable {
-    private final String text;
-    private String error;
-    private String shortError;
-    private int index;
-
-    public LanguageValidationResult(String text) {
-        this.text = text;
-    }
-
-    public String getText() {
-        return text;
-    }
-
-    public boolean isSuccess() {
-        return error == null;
-    }
-
-    public void setError(String error) {
-        this.error = error;
-    }
-
-    public String getError() {
-        return error;
-    }
-
-    public String getShortError() {
-        return shortError;
-    }
-
-    public void setShortError(String shortError) {
-        this.shortError = shortError;
-    }
-
-    public int getIndex() {
-        return index;
-    }
-
-    public void setIndex(int index) {
-        this.index = index;
-    }
-}

http://git-wip-us.apache.org/repos/asf/camel/blob/c66be7a8/camel-core/src/main/java/org/apache/camel/catalog/RuntimeCamelCatalog.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/catalog/RuntimeCamelCatalog.java b/camel-core/src/main/java/org/apache/camel/catalog/RuntimeCamelCatalog.java
deleted file mode 100644
index b46edab..0000000
--- a/camel-core/src/main/java/org/apache/camel/catalog/RuntimeCamelCatalog.java
+++ /dev/null
@@ -1,234 +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.catalog;
-
-import java.net.URISyntaxException;
-import java.util.Map;
-
-import org.apache.camel.StaticService;
-
-/**
- * Runtime based CamelCatalog which are included in camel-core that can provided limit CamelCatalog capabilities
- */
-public interface RuntimeCamelCatalog extends StaticService {
-
-    /**
-     * Returns the component information as JSon format.
-     *
-     * @param name the component name
-     * @return component details in JSon
-     */
-    String componentJSonSchema(String name);
-
-    /**
-     * Returns the data format information as JSon format.
-     *
-     * @param name the data format name
-     * @return data format details in JSon
-     */
-    String dataFormatJSonSchema(String name);
-
-    /**
-     * Returns the language information as JSon format.
-     *
-     * @param name the language name
-     * @return language details in JSon
-     */
-    String languageJSonSchema(String name);
-
-    /**
-     * Returns the model information as JSon format.
-     *
-     * @param name the model name
-     * @return model details in JSon
-     */
-    String modelJSonSchema(String name);
-
-    /**
-     * Parses the endpoint uri and constructs a key/value properties of each option
-     *
-     * @param uri  the endpoint uri
-     * @return properties as key value pairs of each endpoint option
-     */
-    Map<String, String> endpointProperties(String uri) throws URISyntaxException;
-
-    /**
-     * Parses the endpoint uri and constructs a key/value properties of only the lenient properties (eg custom options)
-     * <p/>
-     * For example using the HTTP components to provide query parameters in the endpoint uri.
-     *
-     * @param uri  the endpoint uri
-     * @return properties as key value pairs of each lenient properties
-     */
-    Map<String, String> endpointLenientProperties(String uri) throws URISyntaxException;
-
-    /**
-     * Validates the pattern whether its a valid time pattern.
-     *
-     * @param pattern  the pattern such as 5000, 5s, 5sec, 4min, 4m30s, 1h, etc.
-     * @return <tt>true</tt> if valid, <tt>false</tt> if invalid
-     */
-    boolean validateTimePattern(String pattern);
-
-    /**
-     * Validates the properties for the given scheme against component and endpoint
-     *
-     * @param scheme  the endpoint scheme
-     * @param properties  the endpoint properties
-     * @return validation result
-     */
-    EndpointValidationResult validateProperties(String scheme, Map<String, String> properties);
-
-    /**
-     * Parses and validates the endpoint uri and constructs a key/value properties of each option.
-     *
-     * @param uri  the endpoint uri
-     * @return validation result
-     */
-    EndpointValidationResult validateEndpointProperties(String uri);
-
-    /**
-     * Parses and validates the endpoint uri and constructs a key/value properties of each option.
-     * <p/>
-     * The option ignoreLenientProperties can be used to ignore components that uses lenient properties.
-     * When this is true, then the uri validation is stricter but would fail on properties that are not part of the component
-     * but in the uri because of using lenient properties.
-     * For example using the HTTP components to provide query parameters in the endpoint uri.
-     *
-     * @param uri  the endpoint uri
-     * @param ignoreLenientProperties  whether to ignore components that uses lenient properties.
-     * @return validation result
-     */
-    EndpointValidationResult validateEndpointProperties(String uri, boolean ignoreLenientProperties);
-
-    /**
-     * Parses and validates the endpoint uri and constructs a key/value properties of each option.
-     * <p/>
-     * The option ignoreLenientProperties can be used to ignore components that uses lenient properties.
-     * When this is true, then the uri validation is stricter but would fail on properties that are not part of the component
-     * but in the uri because of using lenient properties.
-     * For example using the HTTP components to provide query parameters in the endpoint uri.
-     *
-     * @param uri  the endpoint uri
-     * @param ignoreLenientProperties  whether to ignore components that uses lenient properties.
-     * @param consumerOnly whether the endpoint is only used as a consumer
-     * @param producerOnly whether the endpoint is only used as a producer
-     * @return validation result
-     */
-    EndpointValidationResult validateEndpointProperties(String uri, boolean ignoreLenientProperties, boolean consumerOnly, boolean producerOnly);
-
-    /**
-     * Parses and validates the simple expression.
-     * <p/>
-     * <b>Important:</b> This requires having <tt>camel-core</tt> on the classpath
-     *
-     * @param simple  the simple expression
-     * @return validation result
-     * @deprecated use {@link #validateSimpleExpression(ClassLoader, String)}
-     */
-    @Deprecated
-    SimpleValidationResult validateSimpleExpression(String simple);
-
-    /**
-     * Parses and validates the simple expression.
-     * <p/>
-     * <b>Important:</b> This requires having <tt>camel-core</tt> on the classpath
-     *
-     * @param classLoader a custom classloader to use for loading the language from the classpath, or <tt>null</tt> for using default classloader
-     * @param simple  the simple expression
-     * @return validation result
-     */
-    SimpleValidationResult validateSimpleExpression(ClassLoader classLoader, String simple);
-
-    /**
-     * Parses and validates the simple predicate
-     * <p/>
-     * <b>Important:</b> This requires having <tt>camel-core</tt> on the classpath
-     *
-     * @param simple  the simple predicate
-     * @return validation result
-     * @deprecated use {@link #validateSimplePredicate(ClassLoader, String)}
-     */
-    @Deprecated
-    SimpleValidationResult validateSimplePredicate(String simple);
-
-    /**
-     * Parses and validates the simple predicate
-     * <p/>
-     * <b>Important:</b> This requires having <tt>camel-core</tt> on the classpath
-     *
-     * @param classLoader a custom classloader to use for loading the language from the classpath, or <tt>null</tt> for using default classloader
-     * @param simple  the simple predicate
-     * @return validation result
-     */
-    SimpleValidationResult validateSimplePredicate(ClassLoader classLoader, String simple);
-
-    /**
-     * Parses and validates the language as a predicate
-     * <p/>
-     * <b>Important:</b> This requires having <tt>camel-core</tt> and the language dependencies on the classpath
-     *
-     * @param classLoader a custom classloader to use for loading the language from the classpath, or <tt>null</tt> for using default classloader
-     * @param language the name of the language
-     * @param text  the predicate text
-     * @return validation result
-     */
-    LanguageValidationResult validateLanguagePredicate(ClassLoader classLoader, String language, String text);
-
-    /**
-     * Parses and validates the language as an expression
-     * <p/>
-     * <b>Important:</b> This requires having <tt>camel-core</tt> and the language dependencies on the classpath
-     *
-     * @param classLoader a custom classloader to use for loading the language from the classpath, or <tt>null</tt> for using default classloader
-     * @param language the name of the language
-     * @param text  the expression text
-     * @return validation result
-     */
-    LanguageValidationResult validateLanguageExpression(ClassLoader classLoader, String language, String text);
-
-    /**
-     * Returns the component name from the given endpoint uri
-     *
-     * @param uri  the endpoint uri
-     * @return the component name (aka scheme), or <tt>null</tt> if not possible to determine
-     */
-    String endpointComponentName(String uri);
-
-    /**
-     * 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 &ampl;) 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/c66be7a8/camel-core/src/main/java/org/apache/camel/catalog/SimpleValidationResult.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/catalog/SimpleValidationResult.java b/camel-core/src/main/java/org/apache/camel/catalog/SimpleValidationResult.java
deleted file mode 100644
index 5c86f23..0000000
--- a/camel-core/src/main/java/org/apache/camel/catalog/SimpleValidationResult.java
+++ /dev/null
@@ -1,32 +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.catalog;
-
-/**
- * To be backwards compatible, but favor using {@link LanguageValidationResult} instead.
- */
-public class SimpleValidationResult extends LanguageValidationResult {
-
-    public SimpleValidationResult(String text) {
-        super(text);
-    }
-
-    public String getSimple() {
-        return getText();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/camel/blob/c66be7a8/camel-core/src/main/java/org/apache/camel/catalog/SuggestionStrategy.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/catalog/SuggestionStrategy.java b/camel-core/src/main/java/org/apache/camel/catalog/SuggestionStrategy.java
deleted file mode 100644
index 057d372..0000000
--- a/camel-core/src/main/java/org/apache/camel/catalog/SuggestionStrategy.java
+++ /dev/null
@@ -1,34 +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.catalog;
-
-import java.util.Set;
-
-/**
- * Strategy to provide suggestions for unknown endpoint options
- */
-public interface SuggestionStrategy {
-
-    /**
-     * Provides a list of valid option names for a did you mean function.
-     *
-     * @param names         valid names
-     * @param unknownOption unknown option name
-     * @return a list of suggested names (did you mean)
-     */
-    String[] suggestEndpointOptions(Set<String> names, String unknownOption);
-}

http://git-wip-us.apache.org/repos/asf/camel/blob/c66be7a8/camel-core/src/main/java/org/apache/camel/catalog/TimePatternConverter.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/catalog/TimePatternConverter.java b/camel-core/src/main/java/org/apache/camel/catalog/TimePatternConverter.java
deleted file mode 100644
index 4ed843a..0000000
--- a/camel-core/src/main/java/org/apache/camel/catalog/TimePatternConverter.java
+++ /dev/null
@@ -1,120 +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.catalog;
-
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * This class is a copy from camel-core so we can use it independent to validate uris with time patterns
- */
-public final class TimePatternConverter {
-    private static final Pattern NUMBERS_ONLY_STRING_PATTERN = Pattern.compile("^[-]?(\\d)+$", Pattern.CASE_INSENSITIVE);
-    private static final Pattern HOUR_REGEX_PATTERN = Pattern.compile("((\\d)*(\\d))h(our(s)?)?", Pattern.CASE_INSENSITIVE);
-    private static final Pattern MINUTES_REGEX_PATTERN = Pattern.compile("((\\d)*(\\d))m(in(ute(s)?)?)?", Pattern.CASE_INSENSITIVE);
-    private static final Pattern SECONDS_REGEX_PATTERN = Pattern.compile("((\\d)*(\\d))s(ec(ond)?(s)?)?", Pattern.CASE_INSENSITIVE);
-
-    /**
-     * Utility classes should not have a public constructor.
-     */
-    private TimePatternConverter() {
-    }
-
-    public static long toMilliSeconds(String source) throws IllegalArgumentException {
-        long milliseconds = 0;
-        boolean foundFlag = false;
-
-        checkCorrectnessOfPattern(source);
-        Matcher matcher;
-
-        matcher = createMatcher(NUMBERS_ONLY_STRING_PATTERN, source);
-        if (matcher.find()) {
-            // Note: This will also be used for regular numeric strings.
-            //       This String -> long converter will be used for all strings.
-            milliseconds = Long.valueOf(source);
-        } else {
-            matcher = createMatcher(HOUR_REGEX_PATTERN, source);
-            if (matcher.find()) {
-                milliseconds = milliseconds + (3600000 * Long.valueOf(matcher.group(1)));
-                foundFlag = true;
-            }
-
-            matcher = createMatcher(MINUTES_REGEX_PATTERN, source);
-            if (matcher.find()) {
-                long minutes = Long.valueOf(matcher.group(1));
-                if ((minutes > 59) && foundFlag) {
-                    throw new IllegalArgumentException("Minutes should contain a valid value between 0 and 59: " + source);
-                }
-                foundFlag = true;
-                milliseconds = milliseconds + (60000 * minutes);
-            }
-
-            matcher = createMatcher(SECONDS_REGEX_PATTERN, source);
-            if (matcher.find()) {
-                long seconds = Long.valueOf(matcher.group(1));
-                if ((seconds > 59) && foundFlag) {
-                    throw new IllegalArgumentException("Seconds should contain a valid value between 0 and 59: " + source);
-                }
-                foundFlag = true;
-                milliseconds = milliseconds + (1000 * seconds);
-            }
-
-            // No pattern matched... initiating fallback check and conversion (if required).
-            // The source at this point may contain illegal values or special characters
-            if (!foundFlag) {
-                milliseconds = Long.valueOf(source);
-            }
-        }
-
-        return milliseconds;
-    }
-
-    private static void checkCorrectnessOfPattern(String source) {
-        //replace only numbers once
-        Matcher matcher = createMatcher(NUMBERS_ONLY_STRING_PATTERN, source);
-        String replaceSource = matcher.replaceFirst("");
-
-        //replace hour string once
-        matcher = createMatcher(HOUR_REGEX_PATTERN, replaceSource);
-        if (matcher.find() && matcher.find()) {
-            throw new IllegalArgumentException("Hours should not be specified more then once: " + source);
-        }
-        replaceSource = matcher.replaceFirst("");
-
-        //replace minutes once
-        matcher = createMatcher(MINUTES_REGEX_PATTERN, replaceSource);
-        if (matcher.find() && matcher.find()) {
-            throw new IllegalArgumentException("Minutes should not be specified more then once: " + source);
-        }
-        replaceSource = matcher.replaceFirst("");
-
-        //replace seconds once
-        matcher = createMatcher(SECONDS_REGEX_PATTERN, replaceSource);
-        if (matcher.find() && matcher.find()) {
-            throw new IllegalArgumentException("Seconds should not be specified more then once: " + source);
-        }
-        replaceSource = matcher.replaceFirst("");
-
-        if (replaceSource.length() > 0) {
-            throw new IllegalArgumentException("Illegal characters: " + source);
-        }
-    }
-
-    private static Matcher createMatcher(Pattern pattern, String source) {
-        return pattern.matcher(source);
-    }
-}

http://git-wip-us.apache.org/repos/asf/camel/blob/c66be7a8/camel-core/src/main/java/org/apache/camel/catalog/URISupport.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/catalog/URISupport.java b/camel-core/src/main/java/org/apache/camel/catalog/URISupport.java
deleted file mode 100644
index ea1ecd5..0000000
--- a/camel-core/src/main/java/org/apache/camel/catalog/URISupport.java
+++ /dev/null
@@ -1,392 +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.catalog;
-
-import java.io.UnsupportedEncodingException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URLDecoder;
-import java.net.URLEncoder;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Copied from org.apache.camel.util.URISupport
- */
-public final class URISupport {
-
-    public static final String RAW_TOKEN_START = "RAW(";
-    public static final String RAW_TOKEN_END = ")";
-
-    private static final String CHARSET = "UTF-8";
-
-    private URISupport() {
-        // Helper class
-    }
-
-    /**
-     * Normalizes the URI so unsafe characters is encoded
-     *
-     * @param uri the input uri
-     * @return as URI instance
-     * @throws URISyntaxException is thrown if syntax error in the input uri
-     */
-    public static URI normalizeUri(String uri) throws URISyntaxException {
-        return new URI(UnsafeUriCharactersEncoder.encode(uri, true));
-    }
-
-    public static Map<String, Object> extractProperties(Map<String, Object> properties, String optionPrefix) {
-        Map<String, Object> rc = new LinkedHashMap<String, Object>(properties.size());
-
-        for (Iterator<Map.Entry<String, Object>> it = properties.entrySet().iterator(); it.hasNext();) {
-            Map.Entry<String, Object> entry = it.next();
-            String name = entry.getKey();
-            if (name.startsWith(optionPrefix)) {
-                Object value = properties.get(name);
-                name = name.substring(optionPrefix.length());
-                rc.put(name, value);
-                it.remove();
-            }
-        }
-
-        return rc;
-    }
-
-    /**
-     * Strips the query parameters from the uri
-     *
-     * @param uri  the uri
-     * @return the uri without the query parameter
-     */
-    public static String stripQuery(String uri) {
-        int idx = uri.indexOf('?');
-        if (idx > -1) {
-            uri = uri.substring(0, idx);
-        }
-        return uri;
-    }
-
-    /**
-     * Parses the query parameters of the uri (eg the query part).
-     *
-     * @param uri the uri
-     * @return the parameters, or an empty map if no parameters (eg never null)
-     * @throws URISyntaxException is thrown if uri has invalid syntax.
-     */
-    public static Map<String, Object> parseParameters(URI uri) throws URISyntaxException {
-        String query = uri.getQuery();
-        if (query == null) {
-            String schemeSpecificPart = uri.getSchemeSpecificPart();
-            int idx = schemeSpecificPart.indexOf('?');
-            if (idx < 0) {
-                // return an empty map
-                return new LinkedHashMap<String, Object>(0);
-            } else {
-                query = schemeSpecificPart.substring(idx + 1);
-            }
-        } else {
-            query = stripPrefix(query, "?");
-        }
-        return parseQuery(query);
-    }
-
-    /**
-     * Strips the prefix from the value.
-     * <p/>
-     * Returns the value as-is if not starting with the prefix.
-     *
-     * @param value  the value
-     * @param prefix the prefix to remove from value
-     * @return the value without the prefix
-     */
-    public static String stripPrefix(String value, String prefix) {
-        if (value != null && value.startsWith(prefix)) {
-            return value.substring(prefix.length());
-        }
-        return value;
-    }
-
-    /**
-     * 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
-     * values with the syntax: <tt>key=RAW(value)</tt> which tells Camel to not encode the value,
-     * and use the value as is (eg key=value) and the value has <b>not</b> been encoded.
-     *
-     * @param uri the uri
-     * @return the parameters, or an empty map if no parameters (eg never null)
-     * @throws URISyntaxException is thrown if uri has invalid syntax.
-     * @see #RAW_TOKEN_START
-     * @see #RAW_TOKEN_END
-     */
-    public static Map<String, Object> parseQuery(String uri) throws URISyntaxException {
-        return parseQuery(uri, false);
-    }
-
-    /**
-     * 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
-     * values with the syntax: <tt>key=RAW(value)</tt> which tells Camel to not encode the value,
-     * and use the value as is (eg key=value) and the value has <b>not</b> been encoded.
-     *
-     * @param uri the uri
-     * @param useRaw whether to force using raw values
-     * @return the parameters, or an empty map if no parameters (eg never null)
-     * @throws URISyntaxException is thrown if uri has invalid syntax.
-     * @see #RAW_TOKEN_START
-     * @see #RAW_TOKEN_END
-     */
-    public static Map<String, Object> parseQuery(String uri, boolean useRaw) throws URISyntaxException {
-        // must check for trailing & as the uri.split("&") will ignore those
-        if (uri != null && uri.endsWith("&")) {
-            throw new URISyntaxException(uri, "Invalid uri syntax: Trailing & marker found. "
-                    + "Check the uri and remove the trailing & marker.");
-        }
-
-        if (isEmpty(uri)) {
-            // return an empty map
-            return new LinkedHashMap<String, Object>(0);
-        }
-
-        // need to parse the uri query parameters manually as we cannot rely on splitting by &,
-        // as & can be used in a parameter value as well.
-
-        try {
-            // use a linked map so the parameters is in the same order
-            Map<String, Object> rc = new LinkedHashMap<String, Object>();
-
-            boolean isKey = true;
-            boolean isValue = false;
-            boolean isRaw = false;
-            StringBuilder key = new StringBuilder();
-            StringBuilder value = new StringBuilder();
-
-            // parse the uri parameters char by char
-            for (int i = 0; i < uri.length(); i++) {
-                // current char
-                char ch = uri.charAt(i);
-                // look ahead of the next char
-                char next;
-                if (i <= uri.length() - 2) {
-                    next = uri.charAt(i + 1);
-                } else {
-                    next = '\u0000';
-                }
-
-                // are we a raw value
-                isRaw = value.toString().startsWith(RAW_TOKEN_START);
-
-                // if we are in raw mode, then we keep adding until we hit the end marker
-                if (isRaw) {
-                    if (isKey) {
-                        key.append(ch);
-                    } else if (isValue) {
-                        value.append(ch);
-                    }
-
-                    // we only end the raw marker if its )& or at the end of the value
-
-                    boolean end = ch == RAW_TOKEN_END.charAt(0) && (next == '&' || next == '\u0000');
-                    if (end) {
-                        // raw value end, so add that as a parameter, and reset flags
-                        addParameter(key.toString(), value.toString(), rc, useRaw || isRaw);
-                        key.setLength(0);
-                        value.setLength(0);
-                        isKey = true;
-                        isValue = false;
-                        isRaw = false;
-                        // skip to next as we are in raw mode and have already added the value
-                        i++;
-                    }
-                    continue;
-                }
-
-                // if its a key and there is a = sign then the key ends and we are in value mode
-                if (isKey && ch == '=') {
-                    isKey = false;
-                    isValue = true;
-                    isRaw = false;
-                    continue;
-                }
-
-                // the & denote parameter is ended
-                if (ch == '&') {
-                    // parameter is ended, as we hit & separator
-                    String aKey = key.toString();
-                    // the key may be a placeholder of options which we then do not know what is
-                    boolean validKey = !aKey.startsWith("{{") && !aKey.endsWith("}}");
-                    if (validKey) {
-                        addParameter(aKey, value.toString(), rc, useRaw || isRaw);
-                    }
-                    key.setLength(0);
-                    value.setLength(0);
-                    isKey = true;
-                    isValue = false;
-                    isRaw = false;
-                    continue;
-                }
-
-                // regular char so add it to the key or value
-                if (isKey) {
-                    key.append(ch);
-                } else if (isValue) {
-                    value.append(ch);
-                }
-            }
-
-            // any left over parameters, then add that
-            if (key.length() > 0) {
-                String aKey = key.toString();
-                // the key may be a placeholder of options which we then do not know what is
-                boolean validKey = !aKey.startsWith("{{") && !aKey.endsWith("}}");
-                if (validKey) {
-                    addParameter(aKey, value.toString(), rc, useRaw || isRaw);
-                }
-            }
-
-            return rc;
-
-        } catch (UnsupportedEncodingException e) {
-            URISyntaxException se = new URISyntaxException(e.toString(), "Invalid encoding");
-            se.initCause(e);
-            throw se;
-        }
-    }
-
-    @SuppressWarnings("unchecked")
-    private static void addParameter(String name, String value, Map<String, Object> map, boolean isRaw) throws UnsupportedEncodingException {
-        name = URLDecoder.decode(name, CHARSET);
-        if (!isRaw) {
-            // need to replace % with %25
-            value = URLDecoder.decode(value.replaceAll("%", "%25"), CHARSET);
-        }
-
-        // does the key already exist?
-        if (map.containsKey(name)) {
-            // yes it does, so make sure we can support multiple values, but using a list
-            // to hold the multiple values
-            Object existing = map.get(name);
-            List<String> list;
-            if (existing instanceof List) {
-                list = (List<String>) existing;
-            } else {
-                // create a new list to hold the multiple values
-                list = new ArrayList<String>();
-                String s = existing != null ? existing.toString() : null;
-                if (s != null) {
-                    list.add(s);
-                }
-            }
-            list.add(value);
-            map.put(name, list);
-        } else {
-            map.put(name, value);
-        }
-    }
-
-    /**
-     * Assembles a query from the given map.
-     *
-     * @param options  the map with the options (eg key/value pairs)
-     * @param ampersand to use & for Java code, and &amp; for XML
-     * @return a query string with <tt>key1=value&key2=value2&...</tt>, or an empty string if there is no options.
-     * @throws URISyntaxException is thrown if uri has invalid syntax.
-     */
-    public static String createQueryString(Map<String, String> options, String ampersand, boolean encode) throws URISyntaxException {
-        try {
-            if (options.size() > 0) {
-                StringBuilder rc = new StringBuilder();
-                boolean first = true;
-                for (Object o : options.keySet()) {
-                    if (first) {
-                        first = false;
-                    } else {
-                        rc.append(ampersand);
-                    }
-
-                    String key = (String) o;
-                    Object value = options.get(key);
-
-                    // use the value as a String
-                    String s = value != null ? value.toString() : null;
-                    appendQueryStringParameter(key, s, rc, encode);
-                }
-                return rc.toString();
-            } else {
-                return "";
-            }
-        } catch (UnsupportedEncodingException e) {
-            URISyntaxException se = new URISyntaxException(e.toString(), "Invalid encoding");
-            se.initCause(e);
-            throw se;
-        }
-    }
-
-    private static void appendQueryStringParameter(String key, String value, StringBuilder rc, boolean encode) throws UnsupportedEncodingException {
-        if (encode) {
-            rc.append(URLEncoder.encode(key, CHARSET));
-        } else {
-            rc.append(key);
-        }
-        // only append if value is not null
-        if (value != null) {
-            rc.append("=");
-            if (value.startsWith(RAW_TOKEN_START) && value.endsWith(RAW_TOKEN_END)) {
-                // do not encode RAW parameters
-                rc.append(value);
-            } else {
-                if (encode) {
-                    rc.append(URLEncoder.encode(value, CHARSET));
-                } else {
-                    rc.append(value);
-                }
-            }
-        }
-    }
-
-    /**
-     * Tests whether the value is <tt>null</tt> or an empty string.
-     *
-     * @param value  the value, if its a String it will be tested for text length as well
-     * @return true if empty
-     */
-    public static boolean isEmpty(Object value) {
-        return !isNotEmpty(value);
-    }
-
-    /**
-     * Tests whether the value is <b>not</b> <tt>null</tt> or an empty string.
-     *
-     * @param value  the value, if its a String it will be tested for text length as well
-     * @return true if <b>not</b> empty
-     */
-    public static boolean isNotEmpty(Object value) {
-        if (value == null) {
-            return false;
-        } else if (value instanceof String) {
-            String text = (String) value;
-            return text.trim().length() > 0;
-        } else {
-            return true;
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/camel/blob/c66be7a8/camel-core/src/main/java/org/apache/camel/catalog/UnsafeUriCharactersEncoder.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/catalog/UnsafeUriCharactersEncoder.java b/camel-core/src/main/java/org/apache/camel/catalog/UnsafeUriCharactersEncoder.java
deleted file mode 100644
index 563bac2..0000000
--- a/camel-core/src/main/java/org/apache/camel/catalog/UnsafeUriCharactersEncoder.java
+++ /dev/null
@@ -1,206 +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.catalog;
-
-import java.util.ArrayList;
-import java.util.BitSet;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * Encoder for unsafe URI characters.
- * <p/>
- * A good source for details is <a href="http://en.wikipedia.org/wiki/Url_encode">wikipedia url encode</a> article.
- */
-public final class UnsafeUriCharactersEncoder {
-    private static BitSet unsafeCharactersRfc1738;
-    private static BitSet unsafeCharactersHttp;
-    private static final char[] HEX_DIGITS = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C',
-        'D', 'E', 'F', 'a', 'b', 'c', 'd', 'e', 'f'};
-    private static final Pattern RAW_PATTERN = Pattern.compile("RAW\\([^\\)]+\\)");
-
-    static {
-        unsafeCharactersRfc1738 = new BitSet(256);
-        unsafeCharactersRfc1738.set(' ');
-        unsafeCharactersRfc1738.set('"');
-        unsafeCharactersRfc1738.set('<');
-        unsafeCharactersRfc1738.set('>');
-        unsafeCharactersRfc1738.set('#');
-        unsafeCharactersRfc1738.set('%');
-        unsafeCharactersRfc1738.set('{');
-        unsafeCharactersRfc1738.set('}');
-        unsafeCharactersRfc1738.set('|');
-        unsafeCharactersRfc1738.set('\\');
-        unsafeCharactersRfc1738.set('^');
-        unsafeCharactersRfc1738.set('~');
-        unsafeCharactersRfc1738.set('[');
-        unsafeCharactersRfc1738.set(']');
-        unsafeCharactersRfc1738.set('`');
-    }
-
-    static {
-        unsafeCharactersHttp = new BitSet(256);
-        unsafeCharactersHttp.set(' ');
-        unsafeCharactersHttp.set('"');
-        unsafeCharactersHttp.set('<');
-        unsafeCharactersHttp.set('>');
-        unsafeCharactersHttp.set('#');
-        unsafeCharactersHttp.set('%');
-        unsafeCharactersHttp.set('{');
-        unsafeCharactersHttp.set('}');
-        unsafeCharactersHttp.set('|');
-        unsafeCharactersHttp.set('\\');
-        unsafeCharactersHttp.set('^');
-        unsafeCharactersHttp.set('~');
-        unsafeCharactersHttp.set('`');
-    }
-
-    private UnsafeUriCharactersEncoder() {
-        // util class
-    }
-
-    public static String encode(String s) {
-        return encode(s, unsafeCharactersRfc1738);
-    }
-
-    public static String encodeHttpURI(String s) {
-        return encode(s, unsafeCharactersHttp);
-    }
-
-    public static String encode(String s, BitSet unsafeCharacters) {
-        return encode(s, unsafeCharacters, false);
-    }
-
-    public static String encode(String s, boolean checkRaw) {
-        return encode(s, unsafeCharactersRfc1738, checkRaw);
-    }
-
-    public static String encodeHttpURI(String s, boolean checkRaw) {
-        return encode(s, unsafeCharactersHttp, checkRaw);
-    }
-
-    private static List<Pair> checkRAW(String s) {
-        Matcher matcher = RAW_PATTERN.matcher(s);
-        List<Pair> answer = new ArrayList<Pair>();
-        // Check all occurrences
-        while (matcher.find()) {
-            answer.add(new Pair(matcher.start(), matcher.end()));
-        }
-        return answer;
-    }
-
-    private static boolean isRaw(int index, List<Pair> pairs) {
-        for (Pair pair : pairs) {
-            if (index < pair.left) {
-                return false;
-            } else {
-                if (index >= pair.left) {
-                    if (index <= pair.right) {
-                        return true;
-                    } else {
-                        continue;
-                    }
-                }
-            }
-        }
-        return false;
-    }
-
-    private static class Pair {
-        int left;
-        int right;
-
-        Pair(int left, int right) {
-            this.left = left;
-            this.right = right;
-        }
-    }
-
-    // Just skip the encode for isRAW part
-    public static String encode(String s, BitSet unsafeCharacters, boolean checkRaw) {
-        List<Pair> rawPairs;
-        if (checkRaw) {
-            rawPairs = checkRAW(s);
-        } else {
-            rawPairs = new ArrayList<Pair>();
-        }
-
-        int n = s == null ? 0 : s.length();
-        if (n == 0) {
-            return s;
-        }
-
-        // First check whether we actually need to encode
-        char chars[] = s.toCharArray();
-        for (int i = 0;;) {
-            // just deal with the ascii character
-            if (chars[i] > 0 && chars[i] < 128) {
-                if (unsafeCharacters.get(chars[i])) {
-                    break;
-                }
-            }
-            if (++i >= chars.length) {
-                return s;
-            }
-        }
-
-        // okay there are some unsafe characters so we do need to encode
-        // see details at: http://en.wikipedia.org/wiki/Url_encode
-        StringBuilder sb = new StringBuilder();
-        for (int i = 0; i < chars.length; i++) {
-            char ch = chars[i];
-            if (ch > 0 && ch < 128 && unsafeCharacters.get(ch)) {
-                // special for % sign as it may be a decimal encoded value
-                if (ch == '%') {
-                    char next = i + 1 < chars.length ? chars[i + 1] : ' ';
-                    char next2 = i + 2 < chars.length ? chars[i + 2] : ' ';
-
-                    if (isHexDigit(next) && isHexDigit(next2) && !isRaw(i, rawPairs)) {
-                        // its already encoded (decimal encoded) so just append as is
-                        sb.append(ch);
-                    } else {
-                        // must escape then, as its an unsafe character
-                        appendEscape(sb, (byte) ch);
-                    }
-                } else {
-                    // must escape then, as its an unsafe character
-                    appendEscape(sb, (byte) ch);
-                }
-            } else {
-                sb.append(ch);
-            }
-        }
-        return sb.toString();
-    }
-
-    private static void appendEscape(StringBuilder sb, byte b) {
-        sb.append('%');
-        sb.append(HEX_DIGITS[(b >> 4) & 0x0f]);
-        sb.append(HEX_DIGITS[(b >> 0) & 0x0f]);
-    }
-
-    private static boolean isHexDigit(char ch) {
-        for (char hex : HEX_DIGITS) {
-            if (hex == ch) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/camel/blob/c66be7a8/camel-core/src/main/java/org/apache/camel/catalog/package.html
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/catalog/package.html b/camel-core/src/main/java/org/apache/camel/catalog/package.html
deleted file mode 100644
index 98786d1..0000000
--- a/camel-core/src/main/java/org/apache/camel/catalog/package.html
+++ /dev/null
@@ -1,25 +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.
--->
-<html>
-<head>
-</head>
-<body>
-
-Camel Catalog
-
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/camel/blob/c66be7a8/camel-core/src/main/java/org/apache/camel/component/rest/RestComponentVerifier.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/rest/RestComponentVerifier.java b/camel-core/src/main/java/org/apache/camel/component/rest/RestComponentVerifier.java
index 5d19e0d..4013e5f 100644
--- a/camel-core/src/main/java/org/apache/camel/component/rest/RestComponentVerifier.java
+++ b/camel-core/src/main/java/org/apache/camel/component/rest/RestComponentVerifier.java
@@ -22,12 +22,12 @@ import java.util.Map;
 import org.apache.camel.Component;
 import org.apache.camel.ComponentVerifier;
 import org.apache.camel.VerifiableComponent;
-import org.apache.camel.catalog.JSonSchemaHelper;
-import org.apache.camel.catalog.RuntimeCamelCatalog;
 import org.apache.camel.impl.verifier.CatalogVerifierCustomizer;
 import org.apache.camel.impl.verifier.DefaultComponentVerifier;
 import org.apache.camel.impl.verifier.ResultBuilder;
 import org.apache.camel.impl.verifier.ResultErrorBuilder;
+import org.apache.camel.runtimecatalog.JSonSchemaHelper;
+import org.apache.camel.runtimecatalog.RuntimeCamelCatalog;
 import org.apache.camel.spi.RestConsumerFactory;
 import org.apache.camel.spi.RestProducerFactory;
 import org.apache.camel.util.ObjectHelper;

http://git-wip-us.apache.org/repos/asf/camel/blob/c66be7a8/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 c85ce8c..b53efc8 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
@@ -26,7 +26,6 @@ import java.util.Collections;
 import java.util.Comparator;
 import java.util.Date;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
@@ -87,8 +86,6 @@ import org.apache.camel.api.management.mbean.ManagedRouteMBean;
 import org.apache.camel.builder.DefaultFluentProducerTemplate;
 import org.apache.camel.builder.ErrorHandlerBuilder;
 import org.apache.camel.builder.ErrorHandlerBuilderSupport;
-import org.apache.camel.catalog.DefaultRuntimeCamelCatalog;
-import org.apache.camel.catalog.RuntimeCamelCatalog;
 import org.apache.camel.component.properties.PropertiesComponent;
 import org.apache.camel.impl.converter.BaseTypeConverterRegistry;
 import org.apache.camel.impl.converter.DefaultTypeConverter;
@@ -121,6 +118,8 @@ import org.apache.camel.processor.interceptor.Delayer;
 import org.apache.camel.processor.interceptor.HandleFault;
 import org.apache.camel.processor.interceptor.StreamCaching;
 import org.apache.camel.processor.interceptor.Tracer;
+import org.apache.camel.runtimecatalog.DefaultRuntimeCamelCatalog;
+import org.apache.camel.runtimecatalog.RuntimeCamelCatalog;
 import org.apache.camel.spi.AsyncProcessorAwaitManager;
 import org.apache.camel.spi.CamelContextNameStrategy;
 import org.apache.camel.spi.ClassResolver;

http://git-wip-us.apache.org/repos/asf/camel/blob/c66be7a8/camel-core/src/main/java/org/apache/camel/impl/verifier/DefaultComponentVerifier.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/verifier/DefaultComponentVerifier.java b/camel-core/src/main/java/org/apache/camel/impl/verifier/DefaultComponentVerifier.java
index b9d9998..f05cdb1 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/verifier/DefaultComponentVerifier.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/verifier/DefaultComponentVerifier.java
@@ -25,8 +25,8 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.ComponentVerifier;
 import org.apache.camel.NoSuchOptionException;
 import org.apache.camel.TypeConverter;
-import org.apache.camel.catalog.EndpointValidationResult;
-import org.apache.camel.catalog.RuntimeCamelCatalog;
+import org.apache.camel.runtimecatalog.EndpointValidationResult;
+import org.apache.camel.runtimecatalog.RuntimeCamelCatalog;
 import org.apache.camel.util.CamelContextHelper;
 import org.apache.camel.util.EndpointHelper;
 import org.apache.camel.util.IntrospectionSupport;

http://git-wip-us.apache.org/repos/asf/camel/blob/c66be7a8/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java
index a09ff7d..9a70390 100644
--- a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java
+++ b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java
@@ -46,12 +46,9 @@ import org.apache.camel.StartupListener;
 import org.apache.camel.TimerListener;
 import org.apache.camel.VetoCamelContextStartException;
 import org.apache.camel.api.management.PerformanceCounter;
-import org.apache.camel.catalog.RuntimeCamelCatalog;
 import org.apache.camel.impl.ConsumerCache;
 import org.apache.camel.impl.DefaultCamelContext;
 import org.apache.camel.impl.DefaultEndpointRegistry;
-import org.apache.camel.impl.DefaultTransformerRegistry;
-import org.apache.camel.impl.DefaultValidatorRegistry;
 import org.apache.camel.impl.EventDrivenConsumerRoute;
 import org.apache.camel.impl.ProducerCache;
 import org.apache.camel.impl.ThrottlingExceptionRoutePolicy;
@@ -89,6 +86,7 @@ import org.apache.camel.processor.CamelInternalProcessor;
 import org.apache.camel.processor.interceptor.BacklogDebugger;
 import org.apache.camel.processor.interceptor.BacklogTracer;
 import org.apache.camel.processor.interceptor.Tracer;
+import org.apache.camel.runtimecatalog.RuntimeCamelCatalog;
 import org.apache.camel.spi.AsyncProcessorAwaitManager;
 import org.apache.camel.spi.DataFormat;
 import org.apache.camel.spi.EventNotifier;

http://git-wip-us.apache.org/repos/asf/camel/blob/c66be7a8/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRuntimeCamelCatalog.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRuntimeCamelCatalog.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRuntimeCamelCatalog.java
index 20d3f28..6a99656 100644
--- a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRuntimeCamelCatalog.java
+++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRuntimeCamelCatalog.java
@@ -19,7 +19,7 @@ package org.apache.camel.management.mbean;
 import org.apache.camel.CamelContext;
 import org.apache.camel.api.management.ManagedResource;
 import org.apache.camel.api.management.mbean.ManagedRuntimeCamelCatalogMBean;
-import org.apache.camel.catalog.RuntimeCamelCatalog;
+import org.apache.camel.runtimecatalog.RuntimeCamelCatalog;
 import org.apache.camel.spi.ManagementStrategy;
 
 /**