<?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 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.apache.camel</groupId>
    <artifactId>components</artifactId>
    <version>3.0.0-M4</version>
  </parent>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-cxf</artifactId>
  <version>3.0.0-M4</version>
  <name>Camel :: CXF</name>
  <description>Camel CXF support</description>
  <licenses>
    <license>
      <name>Apache License, Version 2.0</name>
      <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>
  <properties>
    <camel.osgi.import.defaults></camel.osgi.import.defaults>
    <camel.osgi.failok>true</camel.osgi.failok>
    <camel.osgi.import>!org.springframework.boot.*,
            !org.springframework.context.annotation.*;resolution:=optional,
            !org.apache.camel.component.cxf,
            !org.apache.camel.component.cxf.blueprint,
            !org.apache.camel.component.cxf.converter,
            !org.apache.camel.component.cxf.feature,
            !org.apache.camel.component.cxf.interceptors,
            !org.apache.camel.component.cxf.jaxrs,
            !org.apache.camel.component.cxf.spring,
            !org.apache.camel.component.cxf.util,
            !org.apache.camel.blueprint,
            javax.activation*;version="[0.0,2)",
            javax.jws*;version="[0.0,3)",
            javax.ws.rs*;version="[0.0,3)",
            javax.xml.soap*;version="[1.3,2)",
            javax.xml.stream*;version="[0.0,2)",
            javax.xml.ws*;version="[0.0,3.0)",
            org.apache.camel.*;${camel.osgi.import.camel.version},
            org.springframework*;version="${spring-version-range}";resolution:=optional,
            org.apache.cxf.*;version="${cxf-version-range}",
            ${camel.osgi.import.defaults},
            ${camel.osgi.import.additional},
            org.osgi.service.blueprint;resolution:=optional,
            org.osgi.service.blueprint.container;resolution:=optional,
            org.osgi.service.blueprint.reflect;resolution:=optional,
            org.apache.aries.blueprint;version="[1.0,2.0)";resolution:=optional,
            org.apache.aries.blueprint.reflect;version="[1.0,2.0)";resolution:=optional,
            org.apache.aries.blueprint.mutable;version="[1.0,2.0)";resolution:=optional,
            org.apache.camel.blueprint;resolution:=optional,
            *</camel.osgi.import>
  </properties>
  <dependencies>
    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-support</artifactId>
      <version>3.0.0-M4</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-spring</artifactId>
      <version>3.0.0-M4</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-cxf-transport</artifactId>
      <version>3.0.0-M4</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-http-common</artifactId>
      <version>3.0.0-M4</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.cxf</groupId>
      <artifactId>cxf-rt-frontend-jaxrs</artifactId>
      <version>3.3.2</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.cxf</groupId>
      <artifactId>cxf-rt-frontend-jaxws</artifactId>
      <version>3.3.2</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.cxf</groupId>
      <artifactId>cxf-rt-rs-client</artifactId>
      <version>3.3.2</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.cxf</groupId>
      <artifactId>cxf-rt-features-logging</artifactId>
      <version>3.3.2</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>5.1.8.RELEASE</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.1.8.RELEASE</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-blueprint</artifactId>
      <version>3.0.0-M4</version>
      <scope>provided</scope>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>osgi.core</artifactId>
      <version>6.0.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>osgi.cmpn</artifactId>
      <version>6.0.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.aries.blueprint</groupId>
      <artifactId>org.apache.aries.blueprint.core</artifactId>
      <version>1.10.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.cxf</groupId>
      <artifactId>cxf-rt-bindings-soap</artifactId>
      <version>3.3.2</version>
      <scope>compile</scope>
    </dependency>
  </dependencies>
  <build>
    <defaultGoal>install</defaultGoal>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <includes>
          <include>**/*</include>
        </includes>
        <excludes>
          <exclude>META-INF/spring.*</exclude>
        </excludes>
      </resource>
    </resources>
    <plugins>
      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <childDelegation>false</childDelegation>
          <forkedProcessTimeoutInSeconds>300</forkedProcessTimeoutInSeconds>
          <reportFormat>brief</reportFormat>
          <useFile>false</useFile>
          <runOrder>alphabetical</runOrder>
        </configuration>
      </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>./src/main/resources/schema/cxfEndpoint.xsd</file>
                  <classifier>spring</classifier>
                  <type>xsd</type>
                </artifact>
                <artifact>
                  <file>./src/main/resources/schema/blueprint/camel-cxf.xsd</file>
                  <classifier>blueprint</classifier>
                  <type>xsd</type>
                </artifact>
              </artifacts>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-codegen-plugin</artifactId>
        <executions>
          <execution>
            <id>generate-sources</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>wsdl2java</goal>
            </goals>
            <configuration>
              <fork>${cxf.codegenplugin.forkmode}</fork>
              <additionalJvmArgs>${cxf.codegen.jvmArgs}</additionalJvmArgs>
              <testSourceRoot>${basedir}/target/generated/src/test/java</testSourceRoot>
              <defaultOptions>
                <frontEnd>jaxws21</frontEnd>
              </defaultOptions>
              <wsdlOptions>
                <wsdlOption>
                  <wsdl>${basedir}/src/test/resources/mtom.wsdl</wsdl>
                </wsdlOption>
                <wsdlOption>
                  <wsdl>${basedir}/src/test/resources/hello_world_wssec.wsdl</wsdl>
                </wsdlOption>
                <wsdlOption>
                  <wsdl>${basedir}/src/test/resources/MultiPartTest.wsdl</wsdl>
                </wsdlOption>
                <wsdlOption>
                  <wsdl>${basedir}/src/test/resources/person.wsdl</wsdl>
                </wsdlOption>
                <wsdlOption>
                  <wsdl>${basedir}/src/test/resources/order.wsdl</wsdl>
                </wsdlOption>
                <wsdlOption>
                  <wsdl>${basedir}/src/test/resources/person-non-wrapper.wsdl</wsdl>
                  <extraargs>
                    <extraarg>-b</extraarg>
                    <extraarg>${basedir}/src/test/resources/person-non-wrapper-binding.xml</extraarg>
                  </extraargs>
                </wsdlOption>
                <wsdlOption>
                  <wsdl>${basedir}/src/test/resources/soap_header.wsdl</wsdl>
                  <extraargs>
                    <extraarg>-verbose</extraarg>
                  </extraargs>
                </wsdlOption>
                <wsdlOption>
                  <wsdl>${basedir}/src/test/resources/pizza_service.wsdl</wsdl>
                  <extraargs>
                    <extraarg>-exsh</extraarg>
                    <extraarg>true</extraarg>
                  </extraargs>
                </wsdlOption>
              </wsdlOptions>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <id>copy-spring-meta-filter</id>
            <phase>process-resources</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <target>
                <echo>Copying spring meta files</echo>
                <copy todir="${project.build.directory}/spring-meta" preservelastmodified="true">
                  <fileset dir="${project.basedir}/src/main/resources">
                    <include name="**/spring.*" />
                  </fileset>
                </copy>
                <replace file="${project.build.directory}/spring-meta/META-INF/spring.handlers" preservelastmodified="true" value="${project.version}" token="\\${project.version}" />
                <replace file="${project.build.directory}/spring-meta/META-INF/spring.schemas" preservelastmodified="true" value="${project.version}" token="\\${project.version}" />
                <copy todir="${project.build.directory}/classes" preservelastmodified="true">
                  <fileset dir="${project.build.directory}/spring-meta" />
                </copy>
              </target>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
