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


Reply via email to