Author: davsclaus
Date: Sun Jun 22 23:36:53 2008
New Revision: 670453
URL: http://svn.apache.org/viewvc?rev=670453&view=rev
Log:
CAMEL-628. Added unit test that can be used for wiki documentation. Inspired by
request by user forum. Added disable/enable JMX to the ContextTestSupport.
Added:
activemq/camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpToFileTest.java
(with props)
activemq/camel/trunk/components/camel-jetty/src/test/resources/log4j.properties
(with props)
Modified:
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/ContextTestSupport.java
activemq/camel/trunk/components/camel-jetty/pom.xml
Modified:
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/ContextTestSupport.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/ContextTestSupport.java?rev=670453&r1=670452&r2=670453&view=diff
==============================================================================
---
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/ContextTestSupport.java
(original)
+++
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/ContextTestSupport.java
Sun Jun 22 23:36:53 2008
@@ -27,6 +27,7 @@
import org.apache.camel.spi.Language;
import org.apache.camel.util.CamelContextHelper;
import org.apache.camel.util.jndi.JndiTest;
+import org.apache.camel.management.JmxSystemPropertyKeys;
/**
* A useful base class which creates a [EMAIL PROTECTED] CamelContext} with
some routes
@@ -273,4 +274,19 @@
assertNotNull("No endpoint found for uri: " + uri, endpoint);
return endpoint;
}
+
+ /**
+ * Disables the JMX agent. Must be called before the [EMAIL PROTECTED]
#setUp()} method.
+ */
+ protected void disableJMX() {
+ System.setProperty(JmxSystemPropertyKeys.DISABLED, "true");
+ }
+
+ /**
+ * Enables the JMX agent. Must be called before the [EMAIL PROTECTED]
#setUp()} method.
+ */
+ protected void enableJMX() {
+ System.setProperty(JmxSystemPropertyKeys.DISABLED, "false");
+ }
+
}
Modified: activemq/camel/trunk/components/camel-jetty/pom.xml
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-jetty/pom.xml?rev=670453&r1=670452&r2=670453&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-jetty/pom.xml (original)
+++ activemq/camel/trunk/components/camel-jetty/pom.xml Sun Jun 22 23:36:53 2008
@@ -82,11 +82,17 @@
<optional>true</optional>
<scope>test</scope>
</dependency>
+
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
</project>
Added:
activemq/camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpToFileTest.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpToFileTest.java?rev=670453&view=auto
==============================================================================
---
activemq/camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpToFileTest.java
(added)
+++
activemq/camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpToFileTest.java
Sun Jun 22 23:36:53 2008
@@ -0,0 +1,79 @@
+/**
+ * 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.jetty;
+
+import java.io.File;
+
+import org.apache.camel.ContextTestSupport;
+import org.apache.camel.Exchange;
+import org.apache.camel.ExchangePattern;
+import org.apache.camel.Processor;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.file.FileComponent;
+import org.apache.camel.converter.IOConverter;
+
+/**
+ * Unit testing demonstrating how to store incomming requests as files and
serving a reponse back.
+ */
+public class HttpToFileTest extends ContextTestSupport {
+
+ public void testToJettyAndSaveToFile() throws Exception {
+ Object out = template.sendBody("http://localhost:8080/myworld", "Hello
World");
+
+ String response = context.getTypeConverter().convertTo(String.class,
out);
+ assertEquals("Response from Jetty", "We got the file", response);
+
+ // give file some time to save
+ Thread.sleep(1000);
+
+ File file = new File("./target/myworld/hello.txt");
+ file = file.getAbsoluteFile();
+ assertTrue("File should exists", file.exists());
+
+ String content = IOConverter.toString(file);
+ assertEquals("File conent", "Hello World", content);
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ disableJMX();
+ super.setUp();
+ }
+
+ protected RouteBuilder createRouteBuilder() throws Exception {
+ return new RouteBuilder() {
+ public void configure() throws Exception {
+ // put the incoming data on the seda queue and return a fixed
response that we got the file
+
from("jetty:http://localhost:8080/myworld").to("seda:in").setBody(constant("We
got the file"));
+
+ // store the content from the queue as a file
+ from("seda:in").process(new MyJettyProcessor())
+ .setHeader(FileComponent.HEADER_FILE_NAME, "hello.txt")
+ .to("file://target/myworld?append=false");
+ }
+ };
+ }
+
+ private class MyJettyProcessor implements Processor {
+ public void process(Exchange exchange) throws Exception {
+ // must convert to in only as file producer will try to load the
file if the exchange pattern
+ // is out capable.
+ exchange.setPattern(ExchangePattern.InOnly);
+ }
+ }
+
+}
Propchange:
activemq/camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpToFileTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
activemq/camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpToFileTest.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added:
activemq/camel/trunk/components/camel-jetty/src/test/resources/log4j.properties
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-jetty/src/test/resources/log4j.properties?rev=670453&view=auto
==============================================================================
---
activemq/camel/trunk/components/camel-jetty/src/test/resources/log4j.properties
(added)
+++
activemq/camel/trunk/components/camel-jetty/src/test/resources/log4j.properties
Sun Jun 22 23:36:53 2008
@@ -0,0 +1,35 @@
+## ---------------------------------------------------------------------------
+## 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, file
+
+# CONSOLE appender not used by default
+log4j.appender.console=org.apache.log4j.ConsoleAppender
+log4j.appender.console.layout=org.apache.log4j.PatternLayout
+log4j.appender.console.layout.ConversionPattern=%d %-5p %c{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-jetty-test.log
+
+# debug loging for Camel
+log4j.logger.org.apache.camel.component.jetty=DEBUG
Propchange:
activemq/camel/trunk/components/camel-jetty/src/test/resources/log4j.properties
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
activemq/camel/trunk/components/camel-jetty/src/test/resources/log4j.properties
------------------------------------------------------------------------------
svn:keywords = Rev Date