<?xml version="1.0"?>
<!--
  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>
    <groupId>org.apache.cxf.samples</groupId>
    <artifactId>cxf-samples</artifactId>
    <packaging>pom</packaging>
    <version>3.3.5</version>
    <name>Apache CXF Samples</name>
    <description>Apache CXF Samples</description>
    <url>https://cxf.apache.org</url>
    <properties>
        <!-- don't deploy the samples, kind of pointless -->
        <maven.deploy.skip>true</maven.deploy.skip>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <spring.boot.version>2.1.3.RELEASE</spring.boot.version>
        <spring.cloud.eureka.version>2.0.2.RELEASE</spring.cloud.eureka.version>
        <cxf.jetty9.version>9.4.24.v20191120</cxf.jetty9.version>
        <cxf.httpcomponents.client.version>4.5.8</cxf.httpcomponents.client.version>
        <cxf.swagger.ui.version>3.24.3</cxf.swagger.ui.version>
        <cxf.tika.version>1.23</cxf.tika.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-jdk14</artifactId>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-features-logging</artifactId>
            <version>${project.version}</version>
        </dependency>
    </dependencies>
    <modules>
        <module>aegis</module>
        <module>aegis_standalone</module>
        <module>callback</module>
        <module>clustering/failover_jaxws_osgi</module>
        <module>clustering/failover_server</module>
        <module>configuration_interceptor</module>
        <module>corba/bank</module>
        <module>corba/bank_ws_addressing</module>
        <module>corba/hello_world</module>
        <module>groovy_spring_support</module>
        <module>in_jvm_transport</module>
        <module>java_first_jaxws</module>
        <module>java_first_jaxws_factory_bean</module>
        <module>java_first_jms</module>
        <module>java_first_pojo</module>
        <module>java_first_spring_support</module>
        <module>jax_rs/basic</module>
        <module>jax_rs/basic_https</module>
        <module>jax_rs/basic_oidc</module>
        <module>jax_rs/big_query</module>
        <module>jax_rs/content_negotiation</module>
        <module>jax_rs/description_openapi_v3</module>
        <module>jax_rs/description_openapi_v3_osgi</module>
        <module>jax_rs/description_openapi_v3_web</module>
        <module>jax_rs/description_openapi_v3_spring</module>
        <module>jax_rs/description_swagger2</module>
        <module>jax_rs/description_swagger2_osgi</module>
        <module>jax_rs/description_swagger2_spring</module>
        <module>jax_rs/description_swagger2_web</module>
        <module>jax_rs/minimal_osgi</module>
        <module>jax_rs/odata</module>
        <module>jax_rs/search</module>
        <module>jax_rs/spark</module>
        <module>jax_rs/spring_boot</module>
        <module>jax_rs/spring_boot_scan/application</module>
        <module>jax_rs/spring_boot_scan/client</module>
        <module>jax_rs/spring_boot_scan/eureka-registry</module>
        <module>jax_rs/spring_security</module>
        <module>jax_rs/sse_cdi</module>
        <module>jax_rs/sse_client</module>
        <module>jax_rs/sse_osgi</module>
        <module>jax_rs/sse_spring</module>
        <module>jax_rs/sse_tomcat</module>
        <module>jax_rs/tracing_brave</module>
        <module>jax_rs/tracing_brave_osgi</module>
        <module>jax_rs/tracing_opentracing</module>
        <module>jax_rs/tracing_opentracing_camel</module>
        <module>jax_rs/tracing_opentracing_osgi</module>
        <module>jax_rs/websocket</module>
        <module>jax_rs/websocket_osgi</module>
        <module>jax_rs/websocket_web</module>
        <module>jax_server_aegis_client</module>
        <module>jaxws_async</module>
        <module>jaxws_dispatch_provider</module>
        <module>jaxws_handlers</module>
        <module>jaxws_spring_boot</module>
        <module>jaxws_tracing_brave_osgi</module>
        <module>jms_pubsub</module>
        <module>jms_queue</module>
        <module>jms_spec_demo</module>
        <module>jms_spring_config</module>
        <module>js_browser_client_java_first</module>
        <module>js_browser_client_simple</module>
        <module>js_client</module>
        <module>js_provider</module>
        <module>mtom</module>
        <module>oauth/client</module>
        <module>oauth/server</module>
        <module>restful_dispatch</module>
        <module>ruby_spring_support</module>
        <module>soap_header</module>
        <module>sts</module>
        <module>throttling</module>
        <module>ws_addressing</module>
        <module>ws_discovery</module>
        <module>ws_eventing</module>
        <module>ws_notification</module>
        <module>ws_policy</module>
        <module>ws_rm</module>
        <module>ws_security/sign_enc</module>
        <module>ws_security/sign_enc_policy</module>
        <module>ws_security/ut</module>
        <module>ws_security/ut_policy</module>
        <module>wsdl_first</module>
        <module>wsdl_first_dynamic_client</module>
        <module>wsdl_first_https</module>
        <module>wsdl_first_pure_xml</module>
        <module>wsdl_first_rpclit</module>
        <module>wsdl_first_soap12</module>
        <module>wsdl_first_xml_wrapped</module>
    </modules>
    <dependencyManagement>
        <dependencies>
            <!-- 
            Pull in the cxf-parents as import scope to re-use the dependencyManagement
            sections of those poms.   Those sections define the versions of various third
            party deps that CXF used to build with and test with and we would like
            to make sure the same versions are used for the samples
            -->
            <dependency>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-parent</artifactId>
                <version>${project.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf</artifactId>
                <version>${project.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <build>
        <defaultGoal>install</defaultGoal>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.1</version>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <version>1.2</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>maven-bundle-plugin</artifactId>
                    <version>4.2.0</version>
                </plugin>
                <plugin>
                    <groupId>org.eclipse.jetty</groupId>
                    <artifactId>jetty-maven-plugin</artifactId>
                    <version>${cxf.jetty9.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>3.2.2</version>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
    <profiles>
        <profile>
            <id>snapshots</id>
            <repositories>
                <repository>
                    <id>apache-snapshots</id>
                    <name>Apache SNAPSHOT Repository</name>
                    <url>https://repository.apache.org/content/groups/snapshots-group/</url>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                    <releases>
                        <enabled>false</enabled>
                    </releases>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>apache-snapshots</id>
                    <name>Apache Maven Plugin Snapshots</name>
                    <url>https://repository.apache.org/content/groups/snapshots-group/</url>
                    <releases>
                        <enabled>false</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </pluginRepository>
            </pluginRepositories>
        </profile>
        <profile>
            <id>java9-plus</id>
            <properties>
                    <cxf.jaxb.version>2.3.2</cxf.jaxb.version>
            </properties>
            <activation>
                <jdk>[9,)</jdk>
            </activation>
            <dependencies>
                <dependency>
                    <groupId>jakarta.xml.bind</groupId>
                    <artifactId>jakarta.xml.bind-api</artifactId>
                    <version>${cxf.jaxb.version}</version>
                </dependency>
                <dependency>
                    <groupId>javax.annotation</groupId>
                    <artifactId>javax.annotation-api</artifactId>
                    <version>1.3.1</version>
                </dependency>
                <dependency>
                    <groupId>javax.xml.ws</groupId>
                    <artifactId>jaxws-api</artifactId>
                    <version>2.3.0</version>
                </dependency>
                <dependency>
                    <groupId>javax.activation</groupId>
                    <artifactId>javax.activation-api</artifactId>
                    <version>1.2.0</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.geronimo.specs</groupId>
                    <artifactId>geronimo-ws-metadata_2.0_spec</artifactId>
                    <version>1.1.3</version>
                </dependency>
                <dependency>
                    <groupId>com.sun.xml.messaging.saaj</groupId>
                    <artifactId>saaj-impl</artifactId>
                    <version>1.4.0-b03</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.geronimo.specs</groupId>
                    <artifactId>geronimo-jta_1.1_spec</artifactId>
                    <version>1.1.1</version>
                </dependency>
                <dependency>
                    <groupId>org.glassfish.jaxb</groupId>
                    <artifactId>jaxb-runtime</artifactId>
                    <version>${cxf.jaxb.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.glassfish.jaxb</groupId>
                    <artifactId>jaxb-xjc</artifactId>
                    <version>${cxf.jaxb.version}</version>
                </dependency>
            </dependencies>
        </profile>
    </profiles>
    <!--
     we turn off the deploy in the properties above, but deploy plugin will
     still barf without this section in the pom
     -->
    <distributionManagement>
        <repository>
            <id>apache.releases.https</id>
            <name>Apache Release Distribution Repository</name>
            <url>https://repository.apache.org/service/local/staging/deploy/maven2</url>
        </repository>
        <snapshotRepository>
            <id>apache.snapshots.https</id>
            <name>Apache Development Snapshot Repository</name>
            <url>https://repository.apache.org/content/repositories/snapshots</url>
            <uniqueVersion>false</uniqueVersion>
        </snapshotRepository>
    </distributionManagement>
</project>
