<?xml version="1.0" encoding="UTF-8"?>

	<!--
		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.
	-->

<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>2.8.0</version>
		<relativePath>..</relativePath>
	</parent>

	<artifactId>camel-example-cxf</artifactId>
	<packaging>bundle</packaging>
	<name>Camel :: Example :: CXF</name>
	<description>An example which demonstrates the use of the Camel CXF component
  </description>

	<properties>
		<camel.osgi.export.pkg>
			org.apache.camel.example.*
     </camel.osgi.export.pkg>
		<camel.osgi.import.additional>
			META-INF.cxf,
			org.apache.activemq.xbean,org.apache.activemq.broker,org.apache.activemq.pool
     </camel.osgi.import.additional>
	 <camel.osgi.private.pkg>
			org.apache.hello_world_soap_http,
			org.apache.hello_world_soap_http.types
     </camel.osgi.private.pkg>
		<!-- to avoid us import bunch of cxf package -->
		<camel.osgi.dynamic>*</camel.osgi.dynamic>
	</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.apache.camel</groupId>
			<artifactId>camel-cxf</artifactId>
		</dependency>
		
		<dependency>
			<groupId>org.apache.camel</groupId>
			<artifactId>camel-cxf-transport</artifactId>
		</dependency>

		<dependency>
			<groupId>org.apache.camel</groupId>
			<artifactId>camel-jetty</artifactId>
		</dependency>

		<dependency>
			<groupId>org.apache.cxf</groupId>
			<artifactId>cxf-rt-transports-http-jetty</artifactId>
			<version>${cxf-version}</version>
		</dependency>

		<dependency>
			<groupId>org.apache.cxf</groupId>
			<artifactId>cxf-rt-bindings-soap</artifactId>
			<version>${cxf-version}</version>
		</dependency>

		<dependency>
			<groupId>org.apache.cxf</groupId>
			<artifactId>cxf-rt-transports-jms</artifactId>
			<version>${cxf-version}</version>
		</dependency>

		<dependency>
			<groupId>org.apache.cxf</groupId>
			<artifactId>cxf-rt-frontend-jaxrs</artifactId>
			<version>${cxf-version}</version>
		</dependency>

		<dependency>
			<groupId>org.apache.activemq</groupId>
			<artifactId>activemq-core</artifactId>
		</dependency>

		<dependency>
			<groupId>org.apache.geronimo.specs</groupId>
			<artifactId>geronimo-j2ee-connector_1.5_spec</artifactId>
			<version>2.0.0</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.xbean</groupId>
			<artifactId>xbean-spring</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.springframework</groupId>
					<artifactId>spring</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<dependency>
			<groupId>xerces</groupId>
			<artifactId>xercesImpl</artifactId>
		</dependency>

        <!-- logging -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
		</dependency>
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
		</dependency>

		<!-- testing -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.camel</groupId>
			<artifactId>camel-test</artifactId>
			<scope>test</scope>
		</dependency>

	</dependencies>

	<profiles>
		<profile>
			<id>HttpToJMS</id>
			<properties>
				<!--
					Starting the camel-cxf example of routing the SOAP over http
					message to SOAP over JMS Server
				-->
				<target.main.class>org.apache.camel.example.cxf.CamelCxfExample</target.main.class>
			</properties>
		</profile>
		<profile>
			<id>CamelTransport</id>
			<properties>
				<!-- Starting the camel-cxf example of using Camel transport of CXF -->
				<target.main.class>org.apache.camel.example.camel.transport.CamelTransportExample</target.main.class>
			</properties>
		</profile>
		<profile>
			<id>WebServiceProvider</id>
			<properties>
				<!--
					Starting the camel-cxf example of how to use the JAXWS
					WebServiceProvider API
				-->
				<target.main.class>org.apache.camel.example.cxf.provider.CamelCxfExample</target.main.class>
			</properties>
		</profile>
		<profile>
			<id>JAXRS</id>
			<properties>
				<!-- Starting the camel-cxf example of JAXRS -->
				<target.main.class>org.apache.camel.example.cxf.jaxrs.CamelRouterBuilder</target.main.class>
			</properties>
		</profile>
		<profile>
			<id>HttpToJMS.Client</id>
			<properties>
				<!--
					Starting the camel-cxf example client of routing the SOAP over http
					message to SOAP over JMS Server
				-->
				<target.main.class>org.apache.camel.example.cxf.Client</target.main.class>
			</properties>
		</profile>
		<profile>
			<id>CamelTransport.Client</id>
			<properties>
				<!--
					Starting the camel-cxf example client of using Camel transport of
					CXF
				-->
				<target.main.class>org.apache.camel.example.camel.transport.Client</target.main.class>
			</properties>
		</profile>
		<profile>
			<id>WebServiceProvider.Client</id>
			<properties>
				<!--
					Starting the camel-cxf example client of how to use the JAXWS
					WebServiceProvider API
				-->
				<target.main.class>org.apache.camel.example.cxf.provider.Client</target.main.class>
			</properties>
		</profile>
		<profile>
			<id>JAXRS.Client</id>
			<properties>
				<!-- Starting the camel-cxf example client of JAXRS -->
				<target.main.class>org.apache.camel.example.cxf.jaxrs.Client</target.main.class>
			</properties>
		</profile>
	</profiles>

	<build>
		<resources>
			<resource>
				<directory>src/main/resources</directory>
				<filtering>true</filtering>
			</resource>
		</resources>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-resources-plugin</artifactId>
				<executions>
					<execution>
						<phase>process-resources</phase>
						<goals>
							<goal>resources</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>build-helper-maven-plugin</artifactId>
				<executions>
					<execution>
						<id>attach-artifacts</id>
						<phase>package</phase>
						<goals>
							<goal>attach-artifact</goal>
						</goals>
						<configuration>
							<artifacts>
								<artifact>
									<file>target/classes/features.xml</file>
									<type>xml</type>
									<classifier>features</classifier>
								</artifact>
							</artifacts>
						</configuration>
					</execution>
				</executions>
			</plugin>


			<plugin>
				<groupId>org.apache.cxf</groupId>
				<artifactId>cxf-codegen-plugin</artifactId>
				<version>${cxf-version}</version>
				<executions>
					<execution>
						<id>generate-sources</id>
						<phase>generate-sources</phase>
						<configuration>
							<sourceRoot>${basedir}/target/generated/src/main/java</sourceRoot>
							<wsdlOptions>
								<wsdlOption>
									<wsdl>${basedir}/src/main/resources/wsdl/hello_world.wsdl</wsdl>
								</wsdlOption>
							</wsdlOptions>
						</configuration>
						<goals>
							<goal>wsdl2java</goal>
						</goals>
					</execution>
				</executions>
			</plugin>


			<plugin>
				<artifactId>maven-surefire-plugin</artifactId>
				<configuration>
					<forkMode>once</forkMode>
					<childDelegation>false</childDelegation>
					<useFile>true</useFile>
					<includes>
						<include>**/*Test.*</include>
					</includes>
					<systemProperties>
						<property>
							<name>java.util.logging.config.file</name>
							<value>${basedir}/target/test-classes/logging.properties</value>
						</property>
					</systemProperties>
				</configuration>
			</plugin>

			<!-- Allows the example to be run via 'mvn compile exec:java' -->
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>exec-maven-plugin</artifactId>
				<configuration>
					<mainClass>${target.main.class}</mainClass>
					<includePluginDependencies>false</includePluginDependencies>
					<systemProperties>
						<property>
							<key>java.util.logging.config.file</key>
							<value>logging.properties</value>
						</property>
					</systemProperties>
				</configuration>
			</plugin>
		</plugins>
	</build>

</project>
