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

     Copyright 2005-2014 Red Hat, Inc.

     Red Hat 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/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <parent>
      <groupId>io.fabric8.quickstarts</groupId>
      <artifactId>fabric8-quickstarts-java-parent</artifactId>
      <version>1.2.0.Beta4</version>
    </parent>

    <!--
        The parent POM does not contain any information required to build this example, it's only here
        for organisational purposes so feel free to remove/replace this.
    -->
    <groupId>io.fabric8.quickstarts</groupId>
    <artifactId>java-cxf-cdi</artifactId>
    <version>1.2.0.Beta4</version>
    <packaging>jar</packaging>

    <name>Fabric8 :: Quickstarts :: Java :: CXF JAX-RS with CDI Java Container</name>
    <description>CXF JAX-RS using CDI running in a standalone Java Container</description>

    <properties>
        <!-- 
          Explicitly declaring the source encoding eliminates the following message:
          [WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
        -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    
        <version.compiler.plugin>2.3.1</version.compiler.plugin>
        <skipTests>true</skipTests>
        <!-- maven-compiler-plugin -->
        <maven.compiler.target>1.7</maven.compiler.target>
        <maven.compiler.source>1.7</maven.compiler.source>
        <version.maven-surefire-plugin>2.15</version.maven-surefire-plugin>
        <version.maven-bundle-plugin>2.3.7</version.maven-bundle-plugin>

        <!-- the version of the BOM, defining all the dependency versions -->
        <fabric8.bom.version>1.2.0.Beta4</fabric8.bom.version>
        <fabric.version>1.2.0.Beta4</fabric.version>
        <cxf-version>3.0.1</cxf-version>
        <jetty-version>9.1.1.v20140108</jetty-version>
        <!-- fabric8 deploy profile configuration -->
        <fabric8.profile>quickstarts-java-cxf.cdi</fabric8.profile>
    </properties>

    <licenses>
        <license>
            <name>Apache License, Version 2.0</name>
            <distribution>repo</distribution>
            <url>http://www.apache.org/licenses/LICENSE-2.0.html</url>
        </license>
    </licenses>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>io.fabric8.bom</groupId>
                <artifactId>fabric8-bom</artifactId>
                <version>${fabric8.bom.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>

        <dependency>
            <groupId>io.fabric8</groupId>
            <artifactId>fabric-cxf</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.cxf</groupId>
                    <artifactId>cxf-bundle</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
      
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-rs-service-description</artifactId>
            <version>${cxf-version}</version>
        </dependency>
      
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-integration-cdi</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.cxf</groupId>
            <artifactId>cxf-rt-management</artifactId>
            <version>${cxf-version}</version>
        </dependency>
 
        <dependency>
            <groupId>org.jboss.weld.servlet</groupId>
            <artifactId>weld-servlet</artifactId>
            <version>2.1.2.Final</version>
        </dependency>

        <dependency>
            <groupId>org.jboss.weld</groupId>
            <artifactId>weld-core</artifactId>
            <version>2.1.2.Final</version>
        </dependency>
       
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-server</artifactId>
            <version>${jetty-version}</version>
        </dependency>

        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-servlet</artifactId>
            <version>${jetty-version}</version>
        </dependency>
   
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-jndi</artifactId>
            <version>${jetty-version}</version>
        </dependency>

        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-jsp</artifactId>
            <version>${jetty-version}</version>
        </dependency>

        <!-- these explicit transitive dependencies avoid issues of 8.x bleeding into the generated archetype -->
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-http</artifactId>
            <version>${jetty-version}</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-io</artifactId>
            <version>${jetty-version}</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-util</artifactId>
            <version>${jetty-version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.servicemix.specs</groupId>
            <artifactId>org.apache.servicemix.specs.jsr311-api-1.1.1</artifactId>
        </dependency>

        <!--
            We are also building a small Java client application that we can use to test our web web services.
            For performing the HTTP requests, we are using Apache Commons HttpClient.
        -->
        <dependency>
            <groupId>commons-httpclient</groupId>
            <artifactId>commons-httpclient</artifactId>
        </dependency>

        <!-- lets use weld for CDI -->
        <!--
        TODO when this issue is fixed: https://github.com/fabric8io/fabric8/issues/1235

        we could move this transitive dependency tree into the containers-weld profile
        so we keep our project independent of the CDI implementation?
        -->
        <dependency>
            <groupId>org.jboss.weld.se</groupId>
            <artifactId>weld-se</artifactId>
            <version>${weld2-version}</version>
        </dependency>

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

        <!-- Test Dependencies -->

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <!--
          Add the slf4j-log4j12 dependency jar for testing
        -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
        </dependency>

        <dependency>
            <groupId>com.wordnik</groupId>
            <artifactId>swagger-jaxrs_2.10</artifactId>
            <version>1.3.0</version>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>${validation-api-version}</version>
        </dependency>

 
    </dependencies>

    <build>
        <finalName>${project.artifactId}</finalName>

        <resources>
          <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
          </resource>
        </resources>

        <plugins>
            <!-- Skip Test by default and enable them only in Test profile -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>${version.maven-surefire-plugin}</version>
                <configuration>
                    <skipTests>${skipTests}</skipTests>
                </configuration>
            </plugin>
            <!-- Compiler plugin enforces Java 1.7 compatibility and activates annotation processors -->
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${version.compiler.plugin}</version>
                <configuration>
                    <source>${maven.compiler.source}</source>
                    <target>${maven.compiler.target}</target>
                </configuration>
            </plugin>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-resources-plugin</artifactId>
              <executions>
                <execution>
                  <id>filter</id>
                  <phase>generate-resources</phase>
                  <goals>
                    <goal>resources</goal>
                  </goals>
                </execution>
              </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-java2wadl-plugin</artifactId>
                <version>${cxf-version}</version>
                <executions>
                    <execution>
                        <id>process-classes</id>
                        <phase>process-classes</phase>
                        <goals>
                            <goal>java2wadl</goal>
                        </goals>
                        <configuration>
                            <classResourceNames>
                                <classResourceName>io.fabric8.quickstarts.cxfcdi.CustomerService</classResourceName>
                            </classResourceNames>
                            <attachWadl>false</attachWadl>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <!--
                  this plugin will use the fabric.* properties to configure its behaviour
                  see the Properties section here: http://fabric8.io/gitbook/mavenPlugin.html
                -->
                <groupId>io.fabric8</groupId>
                <artifactId>fabric8-maven-plugin</artifactId>
                <version>${fabric.version}</version>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.2.1</version>
                <configuration>
                    <mainClass>io.fabric8.quickstarts.cxfcdi.ApplicationStarter</mainClass>
                    <includePluginDependencies>false</includePluginDependencies>
                </configuration>
            </plugin>

        </plugins>
    </build>

    <repositories>
        <repository>
            <id>fusesource.m2</id>
            <name>FuseSource Community Release Repository</name>
            <url>https://repo.fusesource.com/nexus/content/groups/public</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <releases>
                <enabled>true</enabled>
                <updatePolicy>never</updatePolicy>
            </releases>
        </repository>
        <repository>
            <id>fusesource.ea</id>
            <name>FuseSource Community Early Access Release Repository</name>
            <url>https://repo.fusesource.com/nexus/content/groups/ea</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <releases>
                <enabled>true</enabled>
                <updatePolicy>never</updatePolicy>
            </releases>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>fusesource.m2</id>
            <name>FuseSource Community Release Repository</name>
            <url>https://repo.fusesource.com/nexus/content/groups/public</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <releases>
                <enabled>true</enabled>
                <updatePolicy>never</updatePolicy>
            </releases>
        </pluginRepository>
        <pluginRepository>
            <id>fusesource.ea</id>
            <name>FuseSource Community Early Access Release Repository</name>
            <url>https://repo.fusesource.com/nexus/content/groups/ea</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <releases>
                <enabled>true</enabled>
                <updatePolicy>never</updatePolicy>
            </releases>
        </pluginRepository>
    </pluginRepositories>

    <profiles>
        <profile>
            <id>test</id>
            <properties>
                <skipTests>false</skipTests>
            </properties>

            <build>
                <defaultGoal>verify</defaultGoal>
            </build>

        </profile>

    </profiles>

</project>
