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 2008/09/07 12:30:23 UTC
svn commit: r692809 - in /activemq/camel/trunk/examples: ./
camel-example-axis/ camel-example-axis/src/ camel-example-axis/src/main/
camel-example-axis/src/main/java/ camel-example-axis/src/main/java/org/
camel-example-axis/src/main/java/org/apache/ ca...
Author: davsclaus
Date: Sun Sep 7 03:30:23 2008
New Revision: 692809
URL: http://svn.apache.org/viewvc?rev=692809&view=rev
Log:
CAMEL-601: Added camel-example-axis with a tutorial on how to use Camel with Axis and the web application deployment model.
Added:
activemq/camel/trunk/examples/camel-example-axis/ (with props)
activemq/camel/trunk/examples/camel-example-axis/README.txt (with props)
activemq/camel/trunk/examples/camel-example-axis/pom.xml (with props)
activemq/camel/trunk/examples/camel-example-axis/src/
activemq/camel/trunk/examples/camel-example-axis/src/main/
activemq/camel/trunk/examples/camel-example-axis/src/main/java/
activemq/camel/trunk/examples/camel-example-axis/src/main/java/org/
activemq/camel/trunk/examples/camel-example-axis/src/main/java/org/apache/
activemq/camel/trunk/examples/camel-example-axis/src/main/java/org/apache/camel/
activemq/camel/trunk/examples/camel-example-axis/src/main/java/org/apache/camel/example/
activemq/camel/trunk/examples/camel-example-axis/src/main/java/org/apache/camel/example/axis/
activemq/camel/trunk/examples/camel-example-axis/src/main/java/org/apache/camel/example/axis/AxisReportIncidentService.java (with props)
activemq/camel/trunk/examples/camel-example-axis/src/main/java/org/apache/camel/example/axis/ReportIncidentService.java (with props)
activemq/camel/trunk/examples/camel-example-axis/src/main/resources/
activemq/camel/trunk/examples/camel-example-axis/src/main/resources/axis-example-context.xml (with props)
activemq/camel/trunk/examples/camel-example-axis/src/main/resources/log4j.properties (with props)
activemq/camel/trunk/examples/camel-example-axis/src/main/webapp/
activemq/camel/trunk/examples/camel-example-axis/src/main/webapp/WEB-INF/ (with props)
activemq/camel/trunk/examples/camel-example-axis/src/main/webapp/WEB-INF/server-config.wsdd (with props)
activemq/camel/trunk/examples/camel-example-axis/src/main/webapp/WEB-INF/web.xml (with props)
activemq/camel/trunk/examples/camel-example-axis/src/main/webapp/WEB-INF/wsdl/
activemq/camel/trunk/examples/camel-example-axis/src/main/webapp/WEB-INF/wsdl/report_incident.wsdl (with props)
activemq/camel/trunk/examples/camel-example-axis/src/test/
activemq/camel/trunk/examples/camel-example-axis/src/test/java/
activemq/camel/trunk/examples/camel-example-axis/src/test/java/org/
activemq/camel/trunk/examples/camel-example-axis/src/test/java/org/apache/
activemq/camel/trunk/examples/camel-example-axis/src/test/java/org/apache/camel/
activemq/camel/trunk/examples/camel-example-axis/src/test/java/org/apache/camel/example/
activemq/camel/trunk/examples/camel-example-axis/src/test/java/org/apache/camel/example/axis/
activemq/camel/trunk/examples/camel-example-axis/src/test/java/org/apache/camel/example/axis/AxisReportIncidentServiceTest.java (with props)
activemq/camel/trunk/examples/camel-example-axis/src/test/java/org/apache/camel/example/axis/ReportIncidentServiceTest.java (with props)
activemq/camel/trunk/examples/camel-example-axis/src/test/resources/
activemq/camel/trunk/examples/camel-example-axis/src/test/resources/log4j.properties (with props)
Modified:
activemq/camel/trunk/examples/pom.xml
Propchange: activemq/camel/trunk/examples/camel-example-axis/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Sun Sep 7 03:30:23 2008
@@ -0,0 +1,8 @@
+.project
+.pmd
+.checkstyle
+.classpath
+target
+.settings
+eclipse-classes
+*.i??
Added: activemq/camel/trunk/examples/camel-example-axis/README.txt
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/examples/camel-example-axis/README.txt?rev=692809&view=auto
==============================================================================
--- activemq/camel/trunk/examples/camel-example-axis/README.txt (added)
+++ activemq/camel/trunk/examples/camel-example-axis/README.txt Sun Sep 7 03:30:23 2008
@@ -0,0 +1,38 @@
+Axis Example
+============
+
+This example shows how Camel integrates with older frameworks such as Apache Axis 1.4.
+It can be run using Maven.
+
+The example exposes a webservice using Apache Axis that uses Camel to send the input
+as a message to an endpoint. The endpoint is a file endpoint that stores a backup of the request.
+The purpose is more to demonstrate the integration between Axis, Spring and Camel than
+other concepts in Camel such as its powerful routing and mediation framework.
+
+To run the example type
+ mvn jetty:run
+
+You stop Jetty using ctrl + c
+
+Then you can hit the url: http://localhost:8080/camel-example-axis/services in a browser
+to see the exposed webservice by Apache Axis.
+
+The wsdl can be reached by clicking on the wsdl link. You can use a webservie tools to try
+it out online such as SoapUI.
+
+This project uses log4j as the logging and log4j.properties is located in src/main/resources
+
+For the latest & greatest documentation on how to use this example please see
+ http://activemq.apache.org/camel/tutorial-axis-camel.html
+
+If you hit any problems please talk to us on the Camel Forums
+ http://activemq.apache.org/camel/discussion-forums.html
+
+Please help us make Apache Camel better - we appreciate any feedback you
+may have. Enjoy!
+
+------------------------
+The Camel riders!
+
+
+
Propchange: activemq/camel/trunk/examples/camel-example-axis/README.txt
------------------------------------------------------------------------------
svn:eol-style = native
Added: activemq/camel/trunk/examples/camel-example-axis/pom.xml
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/examples/camel-example-axis/pom.xml?rev=692809&view=auto
==============================================================================
--- activemq/camel/trunk/examples/camel-example-axis/pom.xml (added)
+++ activemq/camel/trunk/examples/camel-example-axis/pom.xml Sun Sep 7 03:30:23 2008
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>examples</artifactId>
+ <version>1.5-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>camel-example-axis</artifactId>
+ <name>Camel :: Example :: Axis</name>
+ <description>An example how to use Apache Axis 1.4 with Camel as a web application</description>
+ <packaging>war</packaging>
+
+ <properties>
+ <jetty-version>6.1.1</jetty-version>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-core</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-spring</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-web</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.axis</groupId>
+ <artifactId>axis</artifactId>
+ <version>1.4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.axis</groupId>
+ <artifactId>axis-jaxrpc</artifactId>
+ <version>1.4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.axis</groupId>
+ <artifactId>axis-saaj</artifactId>
+ <version>1.4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>axis</groupId>
+ <artifactId>axis-wsdl4j</artifactId>
+ <version>1.5.1</version>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-discovery</groupId>
+ <artifactId>commons-discovery</artifactId>
+ <version>0.4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.14</version>
+ </dependency>
+
+ <!-- for unit testing -->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.2</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-test</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty</artifactId>
+ <version>${jetty-version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.5</source>
+ <target>1.5</target>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>maven-jetty-plugin</artifactId>
+ <version>${jetty-version}</version>
+ </plugin>
+
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>axistools-maven-plugin</artifactId>
+ <configuration>
+ <sourceDirectory>src/main/webapp/WEB-INF/wsdl</sourceDirectory>
+ <packageSpace>org.apache.camel.example.reportincident</packageSpace>
+ <testCases>false</testCases>
+ <serverSide>true</serverSide>
+ <subPackageByFileName>false</subPackageByFileName>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>wsdl2java</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-maven-plugin</artifactId>
+ <configuration>
+ <fileApplicationContextUri>src/main/resources/*.xml</fileApplicationContextUri>
+ </configuration>
+ </plugin>
+
+ </plugins>
+
+ </build>
+
+</project>
Propchange: activemq/camel/trunk/examples/camel-example-axis/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: activemq/camel/trunk/examples/camel-example-axis/pom.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml
Added: activemq/camel/trunk/examples/camel-example-axis/src/main/java/org/apache/camel/example/axis/AxisReportIncidentService.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/examples/camel-example-axis/src/main/java/org/apache/camel/example/axis/AxisReportIncidentService.java?rev=692809&view=auto
==============================================================================
--- activemq/camel/trunk/examples/camel-example-axis/src/main/java/org/apache/camel/example/axis/AxisReportIncidentService.java (added)
+++ activemq/camel/trunk/examples/camel-example-axis/src/main/java/org/apache/camel/example/axis/AxisReportIncidentService.java Sun Sep 7 03:30:23 2008
@@ -0,0 +1,29 @@
+package org.apache.camel.example.axis;
+
+import org.apache.camel.example.reportincident.InputReportIncident;
+import org.apache.camel.example.reportincident.OutputReportIncident;
+import org.apache.camel.example.reportincident.ReportIncidentService_PortType;
+import org.springframework.remoting.jaxrpc.ServletEndpointSupport;
+
+import javax.xml.rpc.ServiceException;
+import java.rmi.RemoteException;
+
+/**
+ * Axis webservice
+ */
+public class AxisReportIncidentService extends ServletEndpointSupport implements ReportIncidentService_PortType {
+
+ private ReportIncidentService service;
+
+ @Override
+ protected void onInit() throws ServiceException {
+ // get hold of the spring bean from the application context
+ service = (ReportIncidentService) getApplicationContext().getBean("incidentservice");
+ }
+
+ public OutputReportIncident reportIncident(InputReportIncident parameters) throws RemoteException {
+ // delegate to the real service
+ return service.reportIncident(parameters);
+ }
+
+}
Propchange: activemq/camel/trunk/examples/camel-example-axis/src/main/java/org/apache/camel/example/axis/AxisReportIncidentService.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: activemq/camel/trunk/examples/camel-example-axis/src/main/java/org/apache/camel/example/axis/ReportIncidentService.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/examples/camel-example-axis/src/main/java/org/apache/camel/example/axis/ReportIncidentService.java?rev=692809&view=auto
==============================================================================
--- activemq/camel/trunk/examples/camel-example-axis/src/main/java/org/apache/camel/example/axis/ReportIncidentService.java (added)
+++ activemq/camel/trunk/examples/camel-example-axis/src/main/java/org/apache/camel/example/axis/ReportIncidentService.java Sun Sep 7 03:30:23 2008
@@ -0,0 +1,35 @@
+package org.apache.camel.example.axis;
+
+import org.apache.camel.EndpointInject;
+import org.apache.camel.ProducerTemplate;
+import org.apache.camel.example.reportincident.InputReportIncident;
+import org.apache.camel.example.reportincident.OutputReportIncident;
+
+/**
+ * Our real service that is not tied to Axis
+ */
+public class ReportIncidentService {
+
+ @EndpointInject(name = "backup")
+ private ProducerTemplate template;
+
+ public OutputReportIncident reportIncident(InputReportIncident parameters) {
+ System.out.println("Hello ReportIncidentService is called from " + parameters.getGivenName());
+
+ String data = parameters.getDetails();
+
+ // store the data as a file
+ String filename = parameters.getIncidentId() + ".txt";
+ // send the data to the endpoint and the header contains what filename it should be stored as
+ template.sendBodyAndHeader(data, "org.apache.camel.file.name", filename);
+
+ OutputReportIncident out = new OutputReportIncident();
+ out.setCode("OK");
+ return out;
+ }
+
+ public void setTemplate(ProducerTemplate template) {
+ this.template = template;
+ }
+
+}
\ No newline at end of file
Propchange: activemq/camel/trunk/examples/camel-example-axis/src/main/java/org/apache/camel/example/axis/ReportIncidentService.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: activemq/camel/trunk/examples/camel-example-axis/src/main/resources/axis-example-context.xml
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/examples/camel-example-axis/src/main/resources/axis-example-context.xml?rev=692809&view=auto
==============================================================================
--- activemq/camel/trunk/examples/camel-example-axis/src/main/resources/axis-example-context.xml (added)
+++ activemq/camel/trunk/examples/camel-example-axis/src/main/resources/axis-example-context.xml Sun Sep 7 03:30:23 2008
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:camel="http://activemq.apache.org/camel/schema/spring"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+ http://activemq.apache.org/camel/schema/spring http://activemq.apache.org/camel/schema/spring/camel-spring.xsd">
+
+ <bean id="incidentservice" class="org.apache.camel.example.axis.ReportIncidentService"/>
+
+ <camel:camelContext id="camelContext">
+ <!-- endpoint named backup that is configued as a file component -->
+ <camel:endpoint id="backup" uri="file://target?append=false"/>
+
+ </camel:camelContext>
+
+</beans>
+
\ No newline at end of file
Propchange: activemq/camel/trunk/examples/camel-example-axis/src/main/resources/axis-example-context.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: activemq/camel/trunk/examples/camel-example-axis/src/main/resources/axis-example-context.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml
Added: activemq/camel/trunk/examples/camel-example-axis/src/main/resources/log4j.properties
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/examples/camel-example-axis/src/main/resources/log4j.properties?rev=692809&view=auto
==============================================================================
--- activemq/camel/trunk/examples/camel-example-axis/src/main/resources/log4j.properties (added)
+++ activemq/camel/trunk/examples/camel-example-axis/src/main/resources/log4j.properties Sun Sep 7 03:30:23 2008
@@ -0,0 +1,36 @@
+## ------------------------------------------------------------------------
+## 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 for eclipse testing, We want to see INFO output on the console.
+#
+log4j.rootLogger=INFO, file
+
+# uncomment the next line to debug Camel
+#log4j.logger.org.apache.camel=DEBUG
+
+# CONSOLE appender not used by default
+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
+
+# 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-example-axis.log
+log4j.appender.file.append=true
\ No newline at end of file
Propchange: activemq/camel/trunk/examples/camel-example-axis/src/main/resources/log4j.properties
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: activemq/camel/trunk/examples/camel-example-axis/src/main/webapp/WEB-INF/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Sun Sep 7 03:30:23 2008
@@ -0,0 +1 @@
+attachments
Added: activemq/camel/trunk/examples/camel-example-axis/src/main/webapp/WEB-INF/server-config.wsdd
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/examples/camel-example-axis/src/main/webapp/WEB-INF/server-config.wsdd?rev=692809&view=auto
==============================================================================
--- activemq/camel/trunk/examples/camel-example-axis/src/main/webapp/WEB-INF/server-config.wsdd (added)
+++ activemq/camel/trunk/examples/camel-example-axis/src/main/webapp/WEB-INF/server-config.wsdd Sun Sep 7 03:30:23 2008
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
+ <!-- global configuration -->
+ <globalConfiguration>
+ <parameter name="sendXsiTypes" value="true"/>
+ <parameter name="sendMultiRefs" value="true"/>
+ <parameter name="sendXMLDeclaration" value="true"/>
+ <parameter name="axis.sendMinimizedElements" value="true"/>
+ </globalConfiguration>
+
+ <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
+
+ <!-- this service is from deploy.wsdd -->
+ <service name="ReportIncidentPort" provider="java:RPC" style="document" use="literal">
+ <wsdlFile>/WEB-INF/wsdl/report_incident.wsdl</wsdlFile>
+ <parameter name="wsdlTargetNamespace" value="http://reportincident.example.camel.apache.org"/>
+ <parameter name="wsdlServiceElement" value="ReportIncidentService"/>
+ <parameter name="schemaUnqualified" value="http://reportincident.example.camel.apache.org"/>
+ <parameter name="wsdlServicePort" value="ReportIncidentPort"/>
+ <parameter name="className" value="org.apache.camel.example.axis.AxisReportIncidentService"/>
+ <parameter name="wsdlPortType" value="ReportIncidentService"/>
+ <parameter name="typeMappingVersion" value="1.2"/>
+ <operation name="reportIncident" qname="ReportIncident" returnQName="retNS:outputReportIncident" xmlns:retNS="http://reportincident.example.camel.apache.org" returnType="rtns:>outputReportIncident" xmlns:rtns="http://reportincident.example.camel.apache.org" soapAction="http://reportincident.example.camel.apache.org/ReportIncident" >
+ <parameter qname="pns:inputReportIncident" xmlns:pns="http://reportincident.example.camel.apache.org" type="tns:>inputReportIncident" xmlns:tns="http://reportincident.example.camel.apache.org"/>
+ </operation>
+ <parameter name="allowedMethods" value="reportIncident"/>
+
+ <typeMapping
+ xmlns:ns="http://reportincident.example.camel.apache.org"
+ qname="ns:>outputReportIncident"
+ type="java:org.apache.camel.example.reportincident.OutputReportIncident"
+ serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
+ deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
+ encodingStyle=""
+ />
+ <typeMapping
+ xmlns:ns="http://reportincident.example.camel.apache.org"
+ qname="ns:>inputReportIncident"
+ type="java:org.apache.camel.example.reportincident.InputReportIncident"
+ serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
+ deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
+ encodingStyle=""
+ />
+ </service>
+
+ <!-- part of Axis configuration -->
+ <transport name="http">
+ <requestFlow>
+ <handler type="URLMapper"/>
+ <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
+ </requestFlow>
+ </transport>
+</deployment>
Propchange: activemq/camel/trunk/examples/camel-example-axis/src/main/webapp/WEB-INF/server-config.wsdd
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: activemq/camel/trunk/examples/camel-example-axis/src/main/webapp/WEB-INF/server-config.wsdd
------------------------------------------------------------------------------
svn:mime-type = text/xml
Added: activemq/camel/trunk/examples/camel-example-axis/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/examples/camel-example-axis/src/main/webapp/WEB-INF/web.xml?rev=692809&view=auto
==============================================================================
--- activemq/camel/trunk/examples/camel-example-axis/src/main/webapp/WEB-INF/web.xml (added)
+++ activemq/camel/trunk/examples/camel-example-axis/src/main/webapp/WEB-INF/web.xml Sun Sep 7 03:30:23 2008
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
+
+ <display-name>Camel :: Example :: AXIS</display-name>
+
+ <context-param>
+ <param-name>contextConfigLocation</param-name>
+ <param-value>
+ classpath:axis-example-context.xml
+ </param-value>
+ </context-param>
+
+ <listener>
+ <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
+ </listener>
+
+ <servlet>
+ <servlet-name>axis</servlet-name>
+ <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>axis</servlet-name>
+ <url-pattern>/services/*</url-pattern>
+ </servlet-mapping>
+
+</web-app>
Propchange: activemq/camel/trunk/examples/camel-example-axis/src/main/webapp/WEB-INF/web.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: activemq/camel/trunk/examples/camel-example-axis/src/main/webapp/WEB-INF/web.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml
Added: activemq/camel/trunk/examples/camel-example-axis/src/main/webapp/WEB-INF/wsdl/report_incident.wsdl
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/examples/camel-example-axis/src/main/webapp/WEB-INF/wsdl/report_incident.wsdl?rev=692809&view=auto
==============================================================================
--- activemq/camel/trunk/examples/camel-example-axis/src/main/webapp/WEB-INF/wsdl/report_incident.wsdl (added)
+++ activemq/camel/trunk/examples/camel-example-axis/src/main/webapp/WEB-INF/wsdl/report_incident.wsdl Sun Sep 7 03:30:23 2008
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://reportincident.example.camel.apache.org"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ targetNamespace="http://reportincident.example.camel.apache.org">
+
+ <!-- Type definitions for input- and output parameters for webservice -->
+ <wsdl:types>
+ <xs:schema targetNamespace="http://reportincident.example.camel.apache.org">
+ <xs:element name="inputReportIncident">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="xs:string" name="incidentId"/>
+ <xs:element type="xs:string" name="incidentDate"/>
+ <xs:element type="xs:string" name="givenName"/>
+ <xs:element type="xs:string" name="familyName"/>
+ <xs:element type="xs:string" name="summary"/>
+ <xs:element type="xs:string" name="details"/>
+ <xs:element type="xs:string" name="email"/>
+ <xs:element type="xs:string" name="phone"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="outputReportIncident">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="xs:string" name="code"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:schema>
+ </wsdl:types>
+
+ <!-- Message definitions for input and output -->
+ <wsdl:message name="inputReportIncident">
+ <wsdl:part name="parameters" element="tns:inputReportIncident"/>
+ </wsdl:message>
+ <wsdl:message name="outputReportIncident">
+ <wsdl:part name="parameters" element="tns:outputReportIncident"/>
+ </wsdl:message>
+
+ <!-- Port (interface) definitions -->
+ <wsdl:portType name="ReportIncidentService">
+ <wsdl:operation name="ReportIncident">
+ <wsdl:input message="tns:inputReportIncident"/>
+ <wsdl:output message="tns:outputReportIncident"/>
+ </wsdl:operation>
+ </wsdl:portType>
+
+ <!-- Port bindings to transports and encoding - HTTP, document literal encoding is used -->
+ <wsdl:binding name="ReportIncidentBinding" type="tns:ReportIncidentService">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="ReportIncident">
+ <soap:operation
+ soapAction="http://reportincident.example.camel.apache.org/ReportIncident"
+ style="document"/>
+ <wsdl:input>
+ <soap:body parts="parameters" use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="parameters" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+
+ <!-- Service definition -->
+ <wsdl:service name="ReportIncidentService">
+ <wsdl:port name="ReportIncidentPort" binding="tns:ReportIncidentBinding">
+ <soap:address location="http://reportincident.example.camel.apache.org"/>
+ </wsdl:port>
+ </wsdl:service>
+
+</wsdl:definitions>
Propchange: activemq/camel/trunk/examples/camel-example-axis/src/main/webapp/WEB-INF/wsdl/report_incident.wsdl
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: activemq/camel/trunk/examples/camel-example-axis/src/main/webapp/WEB-INF/wsdl/report_incident.wsdl
------------------------------------------------------------------------------
svn:mime-type = text/xml
Added: activemq/camel/trunk/examples/camel-example-axis/src/test/java/org/apache/camel/example/axis/AxisReportIncidentServiceTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/examples/camel-example-axis/src/test/java/org/apache/camel/example/axis/AxisReportIncidentServiceTest.java?rev=692809&view=auto
==============================================================================
--- activemq/camel/trunk/examples/camel-example-axis/src/test/java/org/apache/camel/example/axis/AxisReportIncidentServiceTest.java (added)
+++ activemq/camel/trunk/examples/camel-example-axis/src/test/java/org/apache/camel/example/axis/AxisReportIncidentServiceTest.java Sun Sep 7 03:30:23 2008
@@ -0,0 +1,90 @@
+package org.apache.camel.example.axis;
+
+import junit.framework.TestCase;
+import org.apache.camel.example.reportincident.InputReportIncident;
+import org.apache.camel.example.reportincident.OutputReportIncident;
+import org.apache.camel.example.reportincident.ReportIncidentService_PortType;
+import org.apache.camel.example.reportincident.ReportIncidentService_ServiceLocator;
+import org.mortbay.jetty.Connector;
+import org.mortbay.jetty.Server;
+import org.mortbay.jetty.nio.SelectChannelConnector;
+import org.mortbay.jetty.webapp.WebAppContext;
+
+import java.io.File;
+import java.net.URL;
+
+/**
+ * Unit test with embedded Jetty to execute a webservice request using Axis
+ */
+public class AxisReportIncidentServiceTest extends TestCase {
+
+ private Server server;
+
+ private void startJetty() throws Exception {
+ // create an embedded Jetty server
+ server = new Server();
+
+ // add a listener on port 8080 on localhost (127.0.0.1)
+ Connector connector = new SelectChannelConnector();
+ connector.setPort(8080);
+ connector.setHost("127.0.0.1");
+ server.addConnector(connector);
+
+ // add our web context path
+ WebAppContext wac = new WebAppContext();
+ wac.setContextPath("/unittest");
+ // set the location of the exploded webapp where WEB-INF is located
+ // this is a nice feature of Jetty where we can point to src/main/webapp
+ wac.setWar("./src/main/webapp");
+ server.setHandler(wac);
+
+ // then start Jetty
+ server.setStopAtShutdown(true);
+ server.start();
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ startJetty();
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ server.stop();
+ }
+
+ public void testReportIncidentWithAxis() throws Exception {
+ // the url to the axis webservice exposed by jetty
+ URL url = new URL("http://localhost:8080/unittest/services/ReportIncidentPort");
+
+ // Axis stuff to get the port where we can send the webservice request
+ ReportIncidentService_ServiceLocator locator = new ReportIncidentService_ServiceLocator();
+ ReportIncidentService_PortType port = locator.getReportIncidentPort(url);
+
+ // create input to send
+ InputReportIncident input = createDummyIncident();
+ // send the webservice and get the response
+ OutputReportIncident output = port.reportIncident(input);
+ assertEquals("OK", output.getCode());
+
+ // should generate a file also
+ File file = new File("target/" + input.getIncidentId() + ".txt");
+ assertTrue("File should exists", file.exists());
+ }
+
+ protected InputReportIncident createDummyIncident() {
+ InputReportIncident input = new InputReportIncident();
+ input.setEmail("davsclaus@apache.org");
+ input.setIncidentId("12345678");
+ input.setIncidentDate("2008-07-13");
+ input.setPhone("+45 2962 7576");
+ input.setSummary("Failed operation");
+ input.setDetails("The wrong foot was operated.");
+ input.setFamilyName("Ibsen");
+ input.setGivenName("Claus");
+ return input;
+ }
+
+}
Propchange: activemq/camel/trunk/examples/camel-example-axis/src/test/java/org/apache/camel/example/axis/AxisReportIncidentServiceTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: activemq/camel/trunk/examples/camel-example-axis/src/test/java/org/apache/camel/example/axis/ReportIncidentServiceTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/examples/camel-example-axis/src/test/java/org/apache/camel/example/axis/ReportIncidentServiceTest.java?rev=692809&view=auto
==============================================================================
--- activemq/camel/trunk/examples/camel-example-axis/src/test/java/org/apache/camel/example/axis/ReportIncidentServiceTest.java (added)
+++ activemq/camel/trunk/examples/camel-example-axis/src/test/java/org/apache/camel/example/axis/ReportIncidentServiceTest.java Sun Sep 7 03:30:23 2008
@@ -0,0 +1,41 @@
+package org.apache.camel.example.axis;
+
+import org.apache.camel.example.reportincident.InputReportIncident;
+import org.apache.camel.example.reportincident.OutputReportIncident;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit38.AbstractJUnit38SpringContextTests;
+
+import java.io.File;
+
+/**
+ * Unit test of service
+ */
+@ContextConfiguration(locations = "classpath:axis-example-context.xml")
+public class ReportIncidentServiceTest extends AbstractJUnit38SpringContextTests {
+
+ public void testIncident() {
+ ReportIncidentService service = (ReportIncidentService) applicationContext.getBean("incidentservice");
+
+ InputReportIncident input = createDummyIncident();
+ OutputReportIncident output = service.reportIncident(input);
+ assertEquals("OK", output.getCode());
+
+ // should generate a file also
+ File file = new File("target/" + input.getIncidentId() + ".txt");
+ assertTrue("File should exists", file.exists());
+ }
+
+ protected InputReportIncident createDummyIncident() {
+ InputReportIncident input = new InputReportIncident();
+ input.setEmail("davsclaus@apache.org");
+ input.setIncidentId("12345678");
+ input.setIncidentDate("2008-07-13");
+ input.setPhone("+45 2962 7576");
+ input.setSummary("Failed operation");
+ input.setDetails("The wrong foot was operated.");
+ input.setFamilyName("Ibsen");
+ input.setGivenName("Claus");
+ return input;
+ }
+
+}
Propchange: activemq/camel/trunk/examples/camel-example-axis/src/test/java/org/apache/camel/example/axis/ReportIncidentServiceTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: activemq/camel/trunk/examples/camel-example-axis/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/examples/camel-example-axis/src/test/resources/log4j.properties?rev=692809&view=auto
==============================================================================
--- activemq/camel/trunk/examples/camel-example-axis/src/test/resources/log4j.properties (added)
+++ activemq/camel/trunk/examples/camel-example-axis/src/test/resources/log4j.properties Sun Sep 7 03:30:23 2008
@@ -0,0 +1,36 @@
+## ------------------------------------------------------------------------
+## 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 for eclipse testing, We want to see INFO output on the console.
+#
+log4j.rootLogger=INFO, file
+
+# uncomment the next line to debug Camel
+log4j.logger.org.apache.camel=DEBUG
+
+# CONSOLE appender not used by default
+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
+
+# 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-example-axis.log
+log4j.appender.file.append=true
\ No newline at end of file
Propchange: activemq/camel/trunk/examples/camel-example-axis/src/test/resources/log4j.properties
------------------------------------------------------------------------------
svn:eol-style = native
Modified: activemq/camel/trunk/examples/pom.xml
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/examples/pom.xml?rev=692809&r1=692808&r2=692809&view=diff
==============================================================================
--- activemq/camel/trunk/examples/pom.xml (original)
+++ activemq/camel/trunk/examples/pom.xml Sun Sep 7 03:30:23 2008
@@ -48,6 +48,7 @@
</pluginRepositories>
<modules>
+ <module>camel-example-axis</module>
<module>camel-example-bam</module>
<module>camel-example-cxf</module>
<module>camel-example-docs</module>