You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2017/01/09 20:00:22 UTC
camel git commit: camel-catalog should allow custom classloader when
validating simple expression as camel-core may need to be loaded from a
different classpath depending where the catalog are being used.
Repository: camel
Updated Branches:
refs/heads/master ab5529ebe -> 43b9583b8
camel-catalog should allow custom classloader when validating simple expression as camel-core may need to be loaded from a different classpath depending where the catalog are being used.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/43b9583b
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/43b9583b
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/43b9583b
Branch: refs/heads/master
Commit: 43b9583b8cf0b813cacc630b4d00d229ec8fea9e
Parents: ab5529e
Author: Claus Ibsen <da...@apache.org>
Authored: Mon Jan 9 20:59:47 2017 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Mon Jan 9 20:59:47 2017 +0100
----------------------------------------------------------------------
.../org/apache/camel/catalog/CamelCatalog.java | 22 ++++++++++++++++++++
.../camel/catalog/DefaultCamelCatalog.java | 18 ++++++++++++----
2 files changed, 36 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/43b9583b/platforms/catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java
----------------------------------------------------------------------
diff --git a/platforms/catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java b/platforms/catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java
index a29f2a9..ff70e58 100644
--- a/platforms/catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java
+++ b/platforms/catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java
@@ -363,6 +363,17 @@ public interface CamelCatalog {
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 simple language from the classpath
+ * @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
@@ -373,6 +384,17 @@ public interface CamelCatalog {
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 simple language from the classpath
+ * @param simple the simple predicate
+ * @return validation result
+ */
+ SimpleValidationResult validateSimplePredicate(ClassLoader classLoader, String simple);
+
+ /**
* Returns the component name from the given endpoint uri
*
* @param uri the endpoint uri
http://git-wip-us.apache.org/repos/asf/camel/blob/43b9583b/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
----------------------------------------------------------------------
diff --git a/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java b/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
index 65953da..fcf74be 100644
--- a/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
+++ b/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
@@ -1796,21 +1796,31 @@ public class DefaultCamelCatalog implements CamelCatalog {
@Override
public SimpleValidationResult validateSimpleExpression(String simple) {
- return doValidateSimple(simple, false);
+ return doValidateSimple(DefaultCamelCatalog.class.getClassLoader(), simple, false);
+ }
+
+ @Override
+ public SimpleValidationResult validateSimpleExpression(ClassLoader classLoader, String simple) {
+ return doValidateSimple(classLoader, simple, false);
}
@Override
public SimpleValidationResult validateSimplePredicate(String simple) {
- return doValidateSimple(simple, true);
+ return doValidateSimple(DefaultCamelCatalog.class.getClassLoader(), simple, true);
+ }
+
+ @Override
+ public SimpleValidationResult validateSimplePredicate(ClassLoader classLoader, String simple) {
+ return doValidateSimple(classLoader, simple, true);
}
- private SimpleValidationResult doValidateSimple(String simple, boolean predicate) {
+ private SimpleValidationResult doValidateSimple(ClassLoader classLoader, String simple, boolean predicate) {
SimpleValidationResult answer = new SimpleValidationResult(simple);
Object instance = null;
Class clazz = null;
try {
- clazz = DefaultCamelCatalog.class.getClassLoader().loadClass("org.apache.camel.language.simple.SimpleLanguage");
+ clazz = classLoader.loadClass("org.apache.camel.language.simple.SimpleLanguage");
instance = clazz.newInstance();
} catch (Exception e) {
// ignore