You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by cm...@apache.org on 2012/01/14 23:25:11 UTC
svn commit: r1231591 - in
/camel/branches/camel-2.8.x/components/camel-velocity: ./
src/main/java/org/apache/camel/component/velocity/
src/test/java/org/apache/camel/component/velocity/ src/test/resources/
src/test/resources/org/apache/camel/component/...
Author: cmueller
Date: Sat Jan 14 22:25:11 2012
New Revision: 1231591
URL: http://svn.apache.org/viewvc?rev=1231591&view=rev
Log:
CAMEL-4884: Make velocity logging configurable
Added:
camel/branches/camel-2.8.x/components/camel-velocity/src/test/java/org/apache/camel/component/velocity/VelocityOverridesPropertiesTest.java
camel/branches/camel-2.8.x/components/camel-velocity/src/test/resources/org/apache/camel/component/velocity/velocity-logging.properties
- copied, changed from r1230775, camel/branches/camel-2.8.x/components/camel-velocity/src/test/resources/log4j.properties
Modified:
camel/branches/camel-2.8.x/components/camel-velocity/pom.xml
camel/branches/camel-2.8.x/components/camel-velocity/src/main/java/org/apache/camel/component/velocity/VelocityEndpoint.java
camel/branches/camel-2.8.x/components/camel-velocity/src/test/resources/log4j.properties
Modified: camel/branches/camel-2.8.x/components/camel-velocity/pom.xml
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-velocity/pom.xml?rev=1231591&r1=1231590&r2=1231591&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/components/camel-velocity/pom.xml (original)
+++ camel/branches/camel-2.8.x/components/camel-velocity/pom.xml Sat Jan 14 22:25:11 2012
@@ -67,6 +67,12 @@
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>${commons-io-version}</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
</project>
Modified: camel/branches/camel-2.8.x/components/camel-velocity/src/main/java/org/apache/camel/component/velocity/VelocityEndpoint.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-velocity/src/main/java/org/apache/camel/component/velocity/VelocityEndpoint.java?rev=1231591&r1=1231590&r2=1231591&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/components/camel-velocity/src/main/java/org/apache/camel/component/velocity/VelocityEndpoint.java (original)
+++ camel/branches/camel-2.8.x/components/camel-velocity/src/main/java/org/apache/camel/component/velocity/VelocityEndpoint.java Sat Jan 14 22:25:11 2012
@@ -69,19 +69,12 @@ public class VelocityEndpoint extends Re
private synchronized VelocityEngine getVelocityEngine() throws Exception {
if (velocityEngine == null) {
velocityEngine = new VelocityEngine();
- Properties properties = new Properties();
- // load the velocity properties from property file
- if (ObjectHelper.isNotEmpty(getPropertiesFile())) {
- Resource resource = getResourceLoader().getResource(getPropertiesFile());
- InputStream reader = resource.getInputStream();
- properties.load(reader);
- log.info("Loaded the velocity configuration file " + getPropertiesFile());
- }
// set the class resolver as a property so we can access it from CamelVelocityClasspathResourceLoader
velocityEngine.addProperty("CamelClassResolver", getCamelContext().getClassResolver());
- // set regular properties
+ // set default properties
+ Properties properties = new Properties();
properties.setProperty(Velocity.FILE_RESOURCE_LOADER_CACHE, isLoaderCache() ? "true" : "false");
properties.setProperty(Velocity.RESOURCE_LOADER, "file, class");
properties.setProperty("class.resource.loader.description", "Camel Velocity Classpath Resource Loader");
@@ -89,6 +82,14 @@ public class VelocityEndpoint extends Re
properties.setProperty(Velocity.RUNTIME_LOG_LOGSYSTEM_CLASS, CommonsLogLogChute.class.getName());
properties.setProperty(CommonsLogLogChute.LOGCHUTE_COMMONS_LOG_NAME, VelocityEndpoint.class.getName());
+ // load the velocity properties from property file which may overrides the default ones
+ if (ObjectHelper.isNotEmpty(getPropertiesFile())) {
+ Resource resource = getResourceLoader().getResource(getPropertiesFile());
+ InputStream reader = resource.getInputStream();
+ properties.load(reader);
+ log.info("Loaded the velocity configuration file " + getPropertiesFile());
+ }
+
log.debug("Initializing VelocityEngine with properties {}", properties);
// help the velocityEngine to load the CamelVelocityClasspathResourceLoader
ClassLoader old = Thread.currentThread().getContextClassLoader();
Added: camel/branches/camel-2.8.x/components/camel-velocity/src/test/java/org/apache/camel/component/velocity/VelocityOverridesPropertiesTest.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-velocity/src/test/java/org/apache/camel/component/velocity/VelocityOverridesPropertiesTest.java?rev=1231591&view=auto
==============================================================================
--- camel/branches/camel-2.8.x/components/camel-velocity/src/test/java/org/apache/camel/component/velocity/VelocityOverridesPropertiesTest.java (added)
+++ camel/branches/camel-2.8.x/components/camel-velocity/src/test/java/org/apache/camel/component/velocity/VelocityOverridesPropertiesTest.java Sat Jan 14 22:25:11 2012
@@ -0,0 +1,65 @@
+/**
+ * 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.component.velocity;
+
+import java.io.FileInputStream;
+import java.util.logging.FileHandler;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.test.junit4.CamelTestSupport;
+import org.apache.commons.io.IOUtils;
+import org.junit.Test;
+
+public class VelocityOverridesPropertiesTest extends CamelTestSupport {
+
+ @Test
+ public void testOverridingProperties() throws Exception {
+ Logger logger = Logger.getLogger("org.apache.camel.component.velocity");
+ FileHandler fh = new FileHandler("target/camel-velocity-jdk-test.log");
+ logger.addHandler(fh);
+ logger.setLevel(Level.ALL);
+
+ Exchange exchange = template.request("direct:a", new Processor() {
+ @Override
+ public void process(Exchange exchange) throws Exception {
+ exchange.getIn().setBody("Monday");
+ exchange.getIn().setHeader("name", "Christian");
+ exchange.setProperty("item", "7");
+ }
+ });
+
+ assertEquals("Dear Christian. You ordered item 7 on Monday.", exchange.getOut().getBody());
+ assertEquals("Christian", exchange.getOut().getHeader("name"));
+
+ String logContent = IOUtils.toString(new FileInputStream("target/camel-velocity-jdk-test.log"), "UTF-8");
+ assertTrue(logContent.contains("JdkLogChute will use logger 'org.apache.camel.component.velocity.VelocityEndpoint' at level 'FINEST'"));
+ assertTrue(logContent.contains("Using logger class org.apache.velocity.runtime.log.JdkLogChute"));
+ }
+
+ protected RouteBuilder createRouteBuilder() throws Exception {
+ return new RouteBuilder() {
+ public void configure() throws Exception {
+ from("direct:a")
+ .to("velocity:org/apache/camel/component/velocity/example.vm?propertiesFile=org/apache/camel/component/velocity/velocity-logging.properties");
+ }
+ };
+ }
+}
\ No newline at end of file
Modified: camel/branches/camel-2.8.x/components/camel-velocity/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-velocity/src/test/resources/log4j.properties?rev=1231591&r1=1231590&r2=1231591&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/components/camel-velocity/src/test/resources/log4j.properties (original)
+++ camel/branches/camel-2.8.x/components/camel-velocity/src/test/resources/log4j.properties Sat Jan 14 22:25:11 2012
@@ -18,18 +18,18 @@
#
# The logging properties used during tests..
#
-log4j.rootLogger=INFO, out
+log4j.rootLogger=INFO, file
#log4j.logger.org.apache.camel.component.velocity=DEBUG
# CONSOLE appender not used by default
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-log4j.appender.stdout.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%n
-
-# File appender
-log4j.appender.out=org.apache.log4j.FileAppender
+log4j.appender.out=org.apache.log4j.ConsoleAppender
log4j.appender.out.layout=org.apache.log4j.PatternLayout
log4j.appender.out.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%n
-log4j.appender.out.file=target/camel-velocity-test.log
-log4j.appender.out.append=true
+
+# File appender
+log4j.appender.file=org.apache.log4j.FileAppender
+log4j.appender.file.layout=org.apache.log4j.PatternLayout
+log4j.appender.file.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%n
+log4j.appender.file.file=target/camel-velocity-test.log
+log4j.appender.file.append=true
Copied: camel/branches/camel-2.8.x/components/camel-velocity/src/test/resources/org/apache/camel/component/velocity/velocity-logging.properties (from r1230775, camel/branches/camel-2.8.x/components/camel-velocity/src/test/resources/log4j.properties)
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-velocity/src/test/resources/org/apache/camel/component/velocity/velocity-logging.properties?p2=camel/branches/camel-2.8.x/components/camel-velocity/src/test/resources/org/apache/camel/component/velocity/velocity-logging.properties&p1=camel/branches/camel-2.8.x/components/camel-velocity/src/test/resources/log4j.properties&r1=1230775&r2=1231591&rev=1231591&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/components/camel-velocity/src/test/resources/log4j.properties (original)
+++ camel/branches/camel-2.8.x/components/camel-velocity/src/test/resources/org/apache/camel/component/velocity/velocity-logging.properties Sat Jan 14 22:25:11 2012
@@ -1,35 +1,20 @@
-## ---------------------------------------------------------------------------
+## ------------------------------------------------------------------------
## 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.
-## ---------------------------------------------------------------------------
+## ------------------------------------------------------------------------
-#
-# The logging properties used during tests..
-#
-log4j.rootLogger=INFO, out
-
-#log4j.logger.org.apache.camel.component.velocity=DEBUG
-
-# CONSOLE appender not used by default
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-log4j.appender.stdout.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%n
-
-# File appender
-log4j.appender.out=org.apache.log4j.FileAppender
-log4j.appender.out.layout=org.apache.log4j.PatternLayout
-log4j.appender.out.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%n
-log4j.appender.out.file=target/camel-velocity-test.log
-log4j.appender.out.append=true
+runtime.log.logsystem.class = org.apache.velocity.runtime.log.JdkLogChute
+runtime.log.logsystem.jdk.logger = org.apache.camel.component.velocity.VelocityEndpoint
+runtime.log.logsystem.jdk.logger.level = FINEST
\ No newline at end of file