ARIES-727 make the commons-jexl a optional dependency. People won't need this if they don't use the syntax ${a+b} in blueprint-ext.
git-svn-id: https://svn.apache.org/repos/asf/aries/branches/0.3-RCx@1163899 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/blueprint/blueprint-annotation-itest/src/test/java/org/apache/aries/blueprint/itests/AbstractIntegrationTest.java b/blueprint/blueprint-annotation-itest/src/test/java/org/apache/aries/blueprint/itests/AbstractIntegrationTest.java
index dea1618..4f43c9c 100644
--- a/blueprint/blueprint-annotation-itest/src/test/java/org/apache/aries/blueprint/itests/AbstractIntegrationTest.java
+++ b/blueprint/blueprint-annotation-itest/src/test/java/org/apache/aries/blueprint/itests/AbstractIntegrationTest.java
@@ -222,7 +222,8 @@
mavenBundle("org.apache.aries", "org.apache.aries.util"),
mavenBundle("org.apache.aries.proxy", "org.apache.aries.proxy"),
mavenBundle("asm", "asm-all"),
- mavenBundle("org.apache.commons", "commons-jexl"),
+ //no syntax like ${a+b} is used in blueprint-ext of the blueprint samples, so don't need this
+ //mavenBundle("org.apache.commons", "commons-jexl"),
equinox().version("3.5.0")
);
diff --git a/blueprint/blueprint-bundle/pom.xml b/blueprint/blueprint-bundle/pom.xml
index ec3d3c7..125d786 100644
--- a/blueprint/blueprint-bundle/pom.xml
+++ b/blueprint/blueprint-bundle/pom.xml
@@ -49,6 +49,7 @@
org.apache.aries.blueprint.annotation.service;resolution:=optional,
org.apache.aries.quiesce.manager;version="[0.2,1.0)";resolution:=optional,
org.apache.aries.quiesce.participant;version="[0.2,1.0)";resolution:=optional,
+ org.apache.commons.jexl2;resolution:=optional,
*
</aries.osgi.import>
<aries.osgi.export>
diff --git a/blueprint/blueprint-core/pom.xml b/blueprint/blueprint-core/pom.xml
index 44daee4..7822ee0 100644
--- a/blueprint/blueprint-core/pom.xml
+++ b/blueprint/blueprint-core/pom.xml
@@ -48,6 +48,7 @@
org.apache.aries.blueprint.annotation.service;resolution:=optional,
org.apache.aries.quiesce.manager;version="[0.2,1.0)";resolution:=optional,
org.apache.aries.quiesce.participant;version="[0.2,1.0)";resolution:=optional,
+ org.apache.commons.jexl2;resolution:=optional,
*
</aries.osgi.import>
<aries.osgi.export.service>
diff --git a/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/ext/PropertyPlaceholder.java b/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/ext/PropertyPlaceholder.java
index 1698cc7..c4d5cd0 100644
--- a/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/ext/PropertyPlaceholder.java
+++ b/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/ext/PropertyPlaceholder.java
@@ -148,13 +148,19 @@
String result = super.retrieveValue(expression);
if (result == null){
- JexlExpressionParser parser = getJexlParser();
try {
- Object obj = parser.evaluate(expression);
- if (obj!=null) {
- result = obj.toString();
+ Class.forName("org.apache.commons.jexl2.JexlEngine");
+ JexlExpressionParser parser = getJexlParser();
+ try {
+ Object obj = parser.evaluate(expression);
+ if (obj!=null) {
+ result = obj.toString();
+ }
+ } catch (Exception e) {
+ LOGGER.info("Could not evaluate expression: {}", expression);
+ LOGGER.info("Exception:", e);
}
- } catch (Exception e) {
+ } catch (ClassNotFoundException e) {
LOGGER.info("Could not evaluate expression: {}", expression);
LOGGER.info("Exception:", e);
}
diff --git a/blueprint/blueprint-itests/src/test/java/org/apache/aries/blueprint/itests/AbstractIntegrationTest.java b/blueprint/blueprint-itests/src/test/java/org/apache/aries/blueprint/itests/AbstractIntegrationTest.java
index 5f549ed..fcb3ecd 100644
--- a/blueprint/blueprint-itests/src/test/java/org/apache/aries/blueprint/itests/AbstractIntegrationTest.java
+++ b/blueprint/blueprint-itests/src/test/java/org/apache/aries/blueprint/itests/AbstractIntegrationTest.java
@@ -224,7 +224,8 @@
mavenBundle("org.apache.aries", "org.apache.aries.util"),
mavenBundle("org.apache.aries.proxy", "org.apache.aries.proxy"),
mavenBundle("asm", "asm-all"),
- mavenBundle("org.apache.commons", "commons-jexl"),
+ //no syntax like ${a+b} is used in blueprint-ext of the blueprint samples, so don't need this
+ //mavenBundle("org.apache.commons", "commons-jexl"),
equinox().version("3.5.0")
);
diff --git a/blueprint/blueprint-itests/src/test/java/org/apache/aries/blueprint/itests/QuiesceBlueprintTest.java b/blueprint/blueprint-itests/src/test/java/org/apache/aries/blueprint/itests/QuiesceBlueprintTest.java
index 97ed0df..de97d99 100644
--- a/blueprint/blueprint-itests/src/test/java/org/apache/aries/blueprint/itests/QuiesceBlueprintTest.java
+++ b/blueprint/blueprint-itests/src/test/java/org/apache/aries/blueprint/itests/QuiesceBlueprintTest.java
@@ -91,8 +91,8 @@
systemProperty("org.ops4j.pax.logging.DefaultServiceLog.level").value("DEBUG"),
// Bundles
- mavenBundle("org.apache.aries.quiesce", "org.apache.aries.quiesce.api"),
- mavenBundle("org.apache.aries.blueprint", "org.apache.aries.blueprint"),
+ mavenBundle("org.apache.aries.blueprint", "org.apache.aries.blueprint"),
+ mavenBundle("org.apache.aries.quiesce", "org.apache.aries.quiesce.api"),
mavenBundle("org.apache.aries.blueprint", "org.apache.aries.blueprint.testbundlea").noStart(),
mavenBundle("org.apache.aries.blueprint", "org.apache.aries.blueprint.testbundleb").noStart(),
mavenBundle("org.apache.aries.blueprint", "org.apache.aries.blueprint.testquiescebundle")