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 2016/03/30 19:47:25 UTC

[7/7] camel git commit: CAMEL-9776 : camel-braintree: add uri param to configure advanced options

CAMEL-9776 : camel-braintree: add uri param to configure advanced options


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/aa3d9e46
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/aa3d9e46
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/aa3d9e46

Branch: refs/heads/master
Commit: aa3d9e46d458586405c1896bfe570ced0858b923
Parents: 94e6eb3
Author: lburgazzoli <lb...@gmail.com>
Authored: Wed Mar 30 17:28:10 2016 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Wed Mar 30 19:45:46 2016 +0200

----------------------------------------------------------------------
 components/camel-braintree/pom.xml              | 42 +++++-----
 .../braintree/BraintreeConfiguration.java       | 82 +++++++++++++++++++-
 .../braintree/AbstractBraintreeTestSupport.java |  3 +
 .../src/test/resources/log4j.properties         |  8 +-
 parent/pom.xml                                  |  5 ++
 .../features/src/main/resources/features.xml    |  2 +-
 6 files changed, 121 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/aa3d9e46/components/camel-braintree/pom.xml
----------------------------------------------------------------------
diff --git a/components/camel-braintree/pom.xml b/components/camel-braintree/pom.xml
index cf72639..420d523 100644
--- a/components/camel-braintree/pom.xml
+++ b/components/camel-braintree/pom.xml
@@ -54,24 +54,6 @@
       <artifactId>braintree-java</artifactId>
       <version>${braintree-gateway-version}</version>
     </dependency>
-    <dependency>
-      <groupId>org.apache.commons</groupId>
-      <artifactId>commons-lang3</artifactId>
-      <version>${commons-lang3-version}</version>
-    </dependency>
-
-    <dependency>
-      <groupId>commons-collections</groupId>
-      <artifactId>commons-collections</artifactId>
-      <version>${commons-collections-version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.google.guava</groupId>
-      <artifactId>guava</artifactId>
-      <version>${google-guava-version}</version>
-      <scope>test</scope>
-    </dependency>
 
     <!-- Component API javadoc in provided scope to read API signatures -->
     <dependency>
@@ -90,6 +72,12 @@
     </dependency>
     <dependency>
       <groupId>org.slf4j</groupId>
+      <artifactId>jul-to-slf4j</artifactId>
+    </dependency>
+
+    <!-- testing - logging -->
+    <dependency>
+      <groupId>org.slf4j</groupId>
       <artifactId>slf4j-log4j12</artifactId>
       <scope>test</scope>
     </dependency>
@@ -105,6 +93,24 @@
       <artifactId>camel-test</artifactId>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-lang3</artifactId>
+      <version>${commons-lang3-version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>commons-collections</groupId>
+      <artifactId>commons-collections</artifactId>
+      <version>${commons-collections-version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+      <version>${google-guava-version}</version>
+      <scope>test</scope>
+    </dependency>
 
   </dependencies>
 

http://git-wip-us.apache.org/repos/asf/camel/blob/aa3d9e46/components/camel-braintree/src/main/java/org/apache/camel/component/braintree/BraintreeConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-braintree/src/main/java/org/apache/camel/component/braintree/BraintreeConfiguration.java b/components/camel-braintree/src/main/java/org/apache/camel/component/braintree/BraintreeConfiguration.java
index b7a5d87..1b4e39c 100644
--- a/components/camel-braintree/src/main/java/org/apache/camel/component/braintree/BraintreeConfiguration.java
+++ b/components/camel-braintree/src/main/java/org/apache/camel/component/braintree/BraintreeConfiguration.java
@@ -16,6 +16,10 @@
  */
 package org.apache.camel.component.braintree;
 
+import java.util.logging.Handler;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
 import com.braintreegateway.BraintreeGateway;
 import com.braintreegateway.Environment;
 import org.apache.camel.component.braintree.internal.BraintreeApiName;
@@ -24,6 +28,7 @@ import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
 import org.apache.camel.util.ObjectHelper;
+import org.slf4j.bridge.SLF4JBridgeHandler;
 
 /**
  * Component configuration for Braintree component.
@@ -65,6 +70,17 @@ public class BraintreeConfiguration {
     @Metadata(label = "proxy")
     private Integer proxyPort;
 
+    @UriParam(javaType = "java.lang.String")
+    @Metadata(label = "advanced,logging")
+    private Level httpLogLevel;
+
+    @Metadata(label = "advanced,logging")
+    private String httpLogName;
+
+    @UriParam
+    @Metadata(label = "advanced")
+    private Integer httpReadTimeout;
+
     public BraintreeApiName getApiName() {
         return apiName;
     }
@@ -153,6 +169,46 @@ public class BraintreeConfiguration {
         this.proxyPort = proxyPort;
     }
 
+    public Level getHttpLogLevel() {
+        return httpLogLevel;
+    }
+
+    /**
+     * Set logging level for http calls, @see java.util.logging.Level
+     */
+    public void setHttpLogLevel(String httpLogLevel) {
+        this.httpLogLevel = Level.parse(httpLogLevel);
+    }
+
+    /**
+     * Set logging level for http calls, @see java.util.logging.Level
+     */
+    public void setHttpLogLevel(Level httpLogLevel) {
+        this.httpLogLevel = httpLogLevel;
+    }
+
+    public String getHttpLogName() {
+        return httpLogName;
+    }
+
+    /**
+     * Set log category to use to log http calls, default "Braintree"
+     */
+    public void setHttpLogName(String httpLogName) {
+        this.httpLogName = httpLogName;
+    }
+
+    public Integer getHttpReadTimeout() {
+        return httpReadTimeout;
+    }
+
+    /**
+     * Set read timeout for http calls.
+     */
+    public void setHttpReadTimeout(Integer httpReadTimeout) {
+        this.httpReadTimeout = httpReadTimeout;
+    }
+
     /**
      * Helper method to get and Environment object from its name
      */
@@ -176,7 +232,7 @@ public class BraintreeConfiguration {
     /**
      * Construct a BraintreeGateway from configuration
      */
-    BraintreeGateway newBraintreeGateway() {
+    synchronized BraintreeGateway newBraintreeGateway() {
         final BraintreeGateway gateway = new BraintreeGateway(
             getBraintreeEnvironment(),
             getMerchantId(),
@@ -187,6 +243,30 @@ public class BraintreeConfiguration {
             gateway.setProxy(proxyHost, proxyPort);
         }
 
+        if (httpReadTimeout != null) {
+            gateway.getConfiguration().setTimeout(httpReadTimeout);
+        }
+
+        // If custom log name is defined, a new logger wil be requested otherwise
+        // the one supplied by Braintree' SDK will be used
+        final Logger logger = ObjectHelper.isNotEmpty(httpLogName)
+            ? Logger.getLogger(httpLogName)
+            : gateway.getConfiguration().getLogger();
+
+        // Cleanup handlers as by default braintree install a ConsoleHandler
+        for (Handler handler : logger.getHandlers()) {
+            logger.removeHandler(handler);
+        }
+
+        // Add SLF4J bridge
+        logger.addHandler(new SLF4JBridgeHandler());
+
+        if (httpLogLevel != null) {
+            logger.setLevel(httpLogLevel);
+        }
+
+        gateway.getConfiguration().setLogger(logger);
+
         return gateway;
     }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/aa3d9e46/components/camel-braintree/src/test/java/org/apache/camel/component/braintree/AbstractBraintreeTestSupport.java
----------------------------------------------------------------------
diff --git a/components/camel-braintree/src/test/java/org/apache/camel/component/braintree/AbstractBraintreeTestSupport.java b/components/camel-braintree/src/test/java/org/apache/camel/component/braintree/AbstractBraintreeTestSupport.java
index 33bbc9e..c145b9b 100644
--- a/components/camel-braintree/src/test/java/org/apache/camel/component/braintree/AbstractBraintreeTestSupport.java
+++ b/components/camel-braintree/src/test/java/org/apache/camel/component/braintree/AbstractBraintreeTestSupport.java
@@ -21,6 +21,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Properties;
+import java.util.logging.Level;
 
 import com.braintreegateway.BraintreeGateway;
 import org.apache.camel.CamelContext;
@@ -70,6 +71,8 @@ public class AbstractBraintreeTestSupport extends CamelTestSupport {
         addOptionIfMissing(options, "privateKey" , "CAMEL_BRAINTREE_PRIVATE_KEY");
 
         final BraintreeConfiguration configuration = new BraintreeConfiguration();
+        configuration.setHttpLogLevel(Level.WARNING);
+        configuration.setHttpLogName("org.apache.camel.component.braintree.camel-braintree");
         IntrospectionSupport.setProperties(configuration, options);
 
         // add BraintreeComponent to Camel context

http://git-wip-us.apache.org/repos/asf/camel/blob/aa3d9e46/components/camel-braintree/src/test/resources/log4j.properties
----------------------------------------------------------------------
diff --git a/components/camel-braintree/src/test/resources/log4j.properties b/components/camel-braintree/src/test/resources/log4j.properties
index befa085..9e38447 100644
--- a/components/camel-braintree/src/test/resources/log4j.properties
+++ b/components/camel-braintree/src/test/resources/log4j.properties
@@ -18,10 +18,11 @@
 #
 # The logging properties used
 #
-log4j.rootLogger=INFO, out
+log4j.rootLogger=INFO, file
 
 # uncomment the following line to turn on Camel debugging
 #log4j.logger.org.apache.camel=DEBUG
+#log4j.logger.org.apache.camel.component.braintree=TRACE
 
 # CONSOLE appender not used by default
 log4j.appender.out=org.apache.log4j.ConsoleAppender
@@ -29,3 +30,8 @@ log4j.appender.out.layout=org.apache.log4j.PatternLayout
 log4j.appender.out.layout.ConversionPattern=[%30.30t] %-30.30c{1} %-5p %m%n
 #log4j.appender.out.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%n
 
+# File appender
+log4j.appender.file=org.apache.log4j.FileAppender
+log4j.appender.file.layout=org.apache.log4j.PatternLayout
+log4j.appender.file.layout.ConversionPattern=%d %-5p %c{1} - %m %n
+log4j.appender.file.file=target/camel-braintree-test.log

http://git-wip-us.apache.org/repos/asf/camel/blob/aa3d9e46/parent/pom.xml
----------------------------------------------------------------------
diff --git a/parent/pom.xml b/parent/pom.xml
index df8a3fd..0674589 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -2108,6 +2108,11 @@
         <version>${slf4j-version}</version>
       </dependency>
       <dependency>
+        <groupId>org.slf4j</groupId>
+        <artifactId>jul-to-slf4j</artifactId>
+        <version>${slf4j-version}</version>
+      </dependency>
+      <dependency>
         <groupId>log4j</groupId>
         <artifactId>log4j</artifactId>
         <version>${log4j-version}</version>

http://git-wip-us.apache.org/repos/asf/camel/blob/aa3d9e46/platforms/karaf/features/src/main/resources/features.xml
----------------------------------------------------------------------
diff --git a/platforms/karaf/features/src/main/resources/features.xml b/platforms/karaf/features/src/main/resources/features.xml
index 1ef3c26..0479142 100644
--- a/platforms/karaf/features/src/main/resources/features.xml
+++ b/platforms/karaf/features/src/main/resources/features.xml
@@ -241,7 +241,7 @@
   </feature>
   <feature name='camel-braintree' version='${project.version}' resolver='(obr)' start-level='50'>
     <feature version='${project.version}'>camel-core</feature>
-     <bundle dependency='true'>mvn:org.apache.commons/commons-lang3/${commons-lang3-version}</bundle>
+     <bundle dependency='true'>mvn:org.slf4j/jul-to-slf4j/${slf4j-version}</bundle>
      <bundle dependency='true'>mvn:com.braintreepayments.gateway/braintree-java/${braintree-gateway-version}</bundle>
     <bundle>mvn:org.apache.camel/camel-braintree/${project.version}</bundle>
   </feature>