Author: ningjiang
Date: Thu Jul 12 15:22:19 2012
New Revision: 1360722

URL: http://svn.apache.org/viewvc?rev=1360722&view=rev
Log:
CAMEL-5438 supports dynamic resolve property

Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/CamelContext.java
    
camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
    
camel/trunk/camel-core/src/main/java/org/apache/camel/converter/stream/CachedOutputStream.java
    
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
    
camel/trunk/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java
    
camel/trunk/camel-core/src/main/java/org/apache/camel/util/MessageHelper.java
    
camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java
    
camel/trunk/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpEndpoint.java
    
camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
    
camel/trunk/components/camel-xmlsecurity/src/main/java/org/apache/camel/dataformat/xmlsecurity/XMLSecurityDataFormat.java
    
camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextInfo.java

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/CamelContext.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/CamelContext.java?rev=1360722&r1=1360721&r2=1360722&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/CamelContext.java 
(original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/CamelContext.java Thu 
Jul 12 15:22:19 2012
@@ -838,6 +838,14 @@ public interface CamelContext extends Su
     Map<String, String> getProperties();
 
     /**
+     * Gets the property value that can be referenced in the camel context
+     *
+     * @return the string value of property
+     * 
+     */
+    String getProperty(String name);
+    
+    /**
      * Gets the default FactoryFinder which will be used for the loading the 
factory class from META-INF
      *
      * @return the default factory finder

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java?rev=1360722&r1=1360721&r2=1360722&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
 Thu Jul 12 15:22:19 2012
@@ -593,7 +593,7 @@ public final class ExpressionBuilder {
     public static Expression camelContextPropertyExpression(final String 
propertyName) {
         return new ExpressionAdapter() {
             public Object evaluate(Exchange exchange) {
-                return exchange.getContext().getProperties().get(propertyName);
+                return exchange.getContext().getProperty(propertyName);
             }
 
             @Override

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/converter/stream/CachedOutputStream.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/converter/stream/CachedOutputStream.java?rev=1360722&r1=1360721&r2=1360722&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/converter/stream/CachedOutputStream.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/converter/stream/CachedOutputStream.java
 Thu Jul 12 15:22:19 2012
@@ -61,8 +61,8 @@ public class CachedOutputStream extends 
     }
 
     public CachedOutputStream(Exchange exchange, boolean closedOnCompletion) {
-        String hold = exchange.getContext().getProperties().get(THRESHOLD);
-        String dir = exchange.getContext().getProperties().get(TEMP_DIR);
+        String hold = exchange.getContext().getProperty(THRESHOLD);
+        String dir = exchange.getContext().getProperty(TEMP_DIR);
         if (hold != null) {
             this.threshold = 
exchange.getContext().getTypeConverter().convertTo(Long.class, hold);
         }

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java?rev=1360722&r1=1360721&r2=1360722&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
 Thu Jul 12 15:22:19 2012
@@ -2481,4 +2481,18 @@ public class DefaultCamelContext extends
             return new ActiveMQUuidGenerator();
         }
     }
+
+    @Override
+    public String getProperty(String name) {
+        String value = getProperties().get(name);
+        if (ObjectHelper.isNotEmpty(value)) {
+            try {
+                value = resolvePropertyPlaceholders(value);
+            } catch (Exception ex) {
+                // throw CamelRutimeException
+                throw new RuntimeCamelException(ex);
+            }
+        }
+        return value;
+    }
 }

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java?rev=1360722&r1=1360721&r2=1360722&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java
 Thu Jul 12 15:22:19 2012
@@ -174,7 +174,7 @@ public final class CamelContextHelper {
      */
     public static int getMaximumCachePoolSize(CamelContext camelContext) 
throws IllegalArgumentException {
         if (camelContext != null) {
-            String s = 
camelContext.getProperties().get(Exchange.MAXIMUM_CACHE_POOL_SIZE);
+            String s = 
camelContext.getProperty(Exchange.MAXIMUM_CACHE_POOL_SIZE);
             if (s != null) {
                 try {
                     // we cannot use Camel type converters as they may not be 
ready this early
@@ -205,7 +205,7 @@ public final class CamelContextHelper {
      */
     public static int getMaximumEndpointCacheSize(CamelContext camelContext) 
throws IllegalArgumentException {
         if (camelContext != null) {
-            String s = 
camelContext.getProperties().get(Exchange.MAXIMUM_ENDPOINT_CACHE_SIZE);
+            String s = 
camelContext.getProperty(Exchange.MAXIMUM_ENDPOINT_CACHE_SIZE);
             if (s != null) {
                 // we cannot use Camel type converters as they may not be 
ready this early
                 try {

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/util/MessageHelper.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/util/MessageHelper.java?rev=1360722&r1=1360721&r2=1360722&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/util/MessageHelper.java 
(original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/util/MessageHelper.java 
Thu Jul 12 15:22:19 2012
@@ -157,7 +157,7 @@ public final class MessageHelper {
     public static String extractBodyForLogging(Message message, String 
prepend) {
         boolean streams = false;
         if (message.getExchange() != null) {
-            String property = 
message.getExchange().getContext().getProperties().get(Exchange.LOG_DEBUG_BODY_STREAMS);
+            String property = 
message.getExchange().getContext().getProperty(Exchange.LOG_DEBUG_BODY_STREAMS);
             if (property != null) {
                 streams = 
message.getExchange().getContext().getTypeConverter().convertTo(Boolean.class, 
property);
             }
@@ -167,7 +167,7 @@ public final class MessageHelper {
         int maxChars = 1000;
 
         if (message.getExchange() != null) {
-            String property = 
message.getExchange().getContext().getProperties().get(Exchange.LOG_DEBUG_BODY_MAX_CHARS);
+            String property = 
message.getExchange().getContext().getProperty(Exchange.LOG_DEBUG_BODY_MAX_CHARS);
             if (property != null) {
                 maxChars = 
message.getExchange().getContext().getTypeConverter().convertTo(Integer.class, 
property);
             }

Modified: 
camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java?rev=1360722&r1=1360721&r2=1360722&view=diff
==============================================================================
--- 
camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java
 (original)
+++ 
camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java
 Thu Jul 12 15:22:19 2012
@@ -105,9 +105,9 @@ public class HttpEndpoint extends Defaul
         HttpClient answer = new HttpClient(getClientParams());
 
         // configure http proxy from camelContext
-        if 
(ObjectHelper.isNotEmpty(getCamelContext().getProperties().get("http.proxyHost"))
 && 
ObjectHelper.isNotEmpty(getCamelContext().getProperties().get("http.proxyPort")))
 {
-            String host = 
getCamelContext().getProperties().get("http.proxyHost");
-            int port = 
Integer.parseInt(getCamelContext().getProperties().get("http.proxyPort"));
+        if 
(ObjectHelper.isNotEmpty(getCamelContext().getProperty("http.proxyHost")) && 
ObjectHelper.isNotEmpty(getCamelContext().getProperty("http.proxyPort"))) {
+            String host = getCamelContext().getProperty("http.proxyHost");
+            int port = 
Integer.parseInt(getCamelContext().getProperty("http.proxyPort"));
             LOG.debug("CamelContext properties http.proxyHost and 
http.proxyPort detected. Using http proxy host: {} port: {}", host, port);
             answer.getHostConfiguration().setProxy(host, port);
         }

Modified: 
camel/trunk/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpEndpoint.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpEndpoint.java?rev=1360722&r1=1360721&r2=1360722&view=diff
==============================================================================
--- 
camel/trunk/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpEndpoint.java
 (original)
+++ 
camel/trunk/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpEndpoint.java
 Thu Jul 12 15:22:19 2012
@@ -122,10 +122,10 @@ public class HttpEndpoint extends Defaul
         HttpClient answer = new DefaultHttpClient(clientConnectionManager, 
getClientParams());
 
         // configure http proxy from camelContext
-        if 
(ObjectHelper.isNotEmpty(getCamelContext().getProperties().get("http.proxyHost"))
 && 
ObjectHelper.isNotEmpty(getCamelContext().getProperties().get("http.proxyPort")))
 {
-            String host = 
getCamelContext().getProperties().get("http.proxyHost");
-            int port = 
Integer.parseInt(getCamelContext().getProperties().get("http.proxyPort"));
-            String scheme = 
getCamelContext().getProperties().get("http.proxyScheme");
+        if 
(ObjectHelper.isNotEmpty(getCamelContext().getProperty("http.proxyHost")) && 
ObjectHelper.isNotEmpty(getCamelContext().getProperty("http.proxyPort"))) {
+            String host = getCamelContext().getProperty("http.proxyHost");
+            int port = 
Integer.parseInt(getCamelContext().getProperty("http.proxyPort"));
+            String scheme = getCamelContext().getProperty("http.proxyScheme");
             // fallback and use either http4 or https4 depending on secure
             if (scheme == null) {
                 scheme = HttpHelper.isSecureConnection(getEndpointUri()) ? 
"https4" : "http4";

Modified: 
camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java?rev=1360722&r1=1360721&r2=1360722&view=diff
==============================================================================
--- 
camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
 (original)
+++ 
camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
 Thu Jul 12 15:22:19 2012
@@ -383,8 +383,8 @@ public class JettyHttpComponent extends 
         CamelContext camelContext = this.getCamelContext();
         FilterHolder filterHolder = new FilterHolder();
         filterHolder.setInitParameter("deleteFiles", "true");
-        if 
(ObjectHelper.isNotEmpty(camelContext.getProperties().get(TMP_DIR))) {
-            File file = new File(camelContext.getProperties().get(TMP_DIR));
+        if (ObjectHelper.isNotEmpty(camelContext.getProperty(TMP_DIR))) {
+            File file = new File(camelContext.getProperty(TMP_DIR));
             if (!file.isDirectory()) {
                 throw new RuntimeCamelException(
                         "The temp file directory of camel-jetty is not exists, 
please recheck it with directory name :"

Modified: 
camel/trunk/components/camel-xmlsecurity/src/main/java/org/apache/camel/dataformat/xmlsecurity/XMLSecurityDataFormat.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-xmlsecurity/src/main/java/org/apache/camel/dataformat/xmlsecurity/XMLSecurityDataFormat.java?rev=1360722&r1=1360721&r2=1360722&view=diff
==============================================================================
--- 
camel/trunk/components/camel-xmlsecurity/src/main/java/org/apache/camel/dataformat/xmlsecurity/XMLSecurityDataFormat.java
 (original)
+++ 
camel/trunk/components/camel-xmlsecurity/src/main/java/org/apache/camel/dataformat/xmlsecurity/XMLSecurityDataFormat.java
 Thu Jul 12 15:22:19 2012
@@ -268,29 +268,29 @@ public class XMLSecurityDataFormat imple
         Map<String, String> contextProps = context.getProperties();
                
         if (this.recipientKeyAlias == null) {
-            recipientKeyAlias = contextProps.get(XML_ENC_RECIPIENT_ALIAS);
+            recipientKeyAlias = context.getProperty(XML_ENC_RECIPIENT_ALIAS);
         }
 
         if (this.trustStore == null && 
contextProps.containsKey(XML_ENC_TRUST_STORE_URL)) {
             trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
-            URL trustStoreUrl = new 
URL(contextProps.get(XML_ENC_TRUST_STORE_URL));
+            URL trustStoreUrl = new 
URL(context.getProperty(XML_ENC_TRUST_STORE_URL));
             if (trustStorePassword == null) {
-                trustStorePassword = 
contextProps.get(XML_ENC_TRUST_STORE_PASSWORD);
+                trustStorePassword = 
context.getProperty(XML_ENC_TRUST_STORE_PASSWORD);
             }
             trustStore.load(trustStoreUrl.openStream(), 
trustStorePassword.toCharArray());
         }
         
         if (this.keyStore == null && 
contextProps.containsKey(XML_ENC_KEY_STORE_URL)) {
             keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
-            URL keyStoreUrl = new URL(contextProps.get(XML_ENC_KEY_STORE_URL));
+            URL keyStoreUrl = new 
URL(context.getProperty(XML_ENC_KEY_STORE_URL));
             if (keyStorePassword == null) {
-                keyStorePassword = 
contextProps.get(XML_ENC_KEY_STORE_PASSWORD);
+                keyStorePassword = 
context.getProperty(XML_ENC_KEY_STORE_PASSWORD);
             }
             keyStore.load(keyStoreUrl.openStream(), 
keyStorePassword.toCharArray());    
         }
         
         if (context.getProperties().containsKey(XML_ENC_KEY_STORE_ALIAS) && 
this.recipientKeyAlias == null) {
-            recipientKeyAlias = contextProps.get(XML_ENC_KEY_STORE_ALIAS);
+            recipientKeyAlias = context.getProperty(XML_ENC_KEY_STORE_ALIAS);
         }
     }
     

Modified: 
camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextInfo.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextInfo.java?rev=1360722&r1=1360721&r2=1360722&view=diff
==============================================================================
--- 
camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextInfo.java
 (original)
+++ 
camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextInfo.java
 Thu Jul 12 15:22:19 2012
@@ -124,7 +124,7 @@ public class ContextInfo extends OsgiCom
         System.out.println("");
         
System.out.println(StringEscapeUtils.unescapeJava("\u001B[1mProperties\u001B[0m"));
         for (String property : camelContext.getProperties().keySet()) {
-            System.out.println(StringEscapeUtils.unescapeJava("\t" + property 
+ " = " + camelContext.getProperties().get(property)));
+            System.out.println(StringEscapeUtils.unescapeJava("\t" + property 
+ " = " + camelContext.getProperty(property)));
         }
         System.out.println("");
         
System.out.println(StringEscapeUtils.unescapeJava("\u001B[1mComponents\u001B[0m"));


Reply via email to