<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>
  
  <name>JBoss Web Services - Stack CXF Runtime Client jakarta</name>
  <artifactId>jbossws-cxf-client</artifactId>
  <packaging>jar</packaging>
  
  <parent>
    <groupId>org.jboss.ws.cxf</groupId>
    <artifactId>jbossws-cxf</artifactId>
    <version>7.3.7.Final</version>
    <relativePath>../../pom.xml</relativePath>
  </parent>
  
  <!-- Dependencies -->
  <dependencies>
    
    <!-- jbossws dependencies -->
    <dependency>
      <groupId>org.jboss.modules</groupId>
      <artifactId>jboss-modules</artifactId>
    </dependency>
    <dependency>
      <groupId>org.jboss.ws</groupId>
      <artifactId>jbossws-api</artifactId>
    </dependency>
    <dependency>
      <groupId>org.jboss.ws</groupId>
      <artifactId>jbossws-common</artifactId>
    </dependency>
    <dependency>
      <groupId>org.jboss.ws</groupId>
      <artifactId>jbossws-common-tools</artifactId>
    </dependency>
    <dependency>
      <groupId>org.jboss.ws</groupId>
      <artifactId>jbossws-spi</artifactId>
    </dependency>
    <dependency> <!-- Always make sure jbossws-cxf-factories dependency is explicitly declared before anything transitively pulling CXF -->
      <groupId>org.jboss.ws.cxf</groupId>
      <artifactId>jbossws-cxf-factories</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.jboss.ws.cxf</groupId>
      <artifactId>jbossws-cxf-transports-udp</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.jboss.ws.cxf</groupId>
      <artifactId>jbossws-cxf-transports-undertow</artifactId>
      <version>${project.version}</version>
    </dependency>
    
    <!-- CXF dependencies -->
    <dependency>
      <groupId>org.apache.cxf</groupId>
      <artifactId>cxf-core</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-features-logging</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.cxf</groupId>
      <artifactId>cxf-rt-bindings-soap</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.cxf</groupId>
      <artifactId>cxf-rt-bindings-coloc</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.cxf</groupId>
      <artifactId>cxf-rt-frontend-jaxws</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.cxf</groupId>
      <artifactId>cxf-rt-transports-http</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.cxf</groupId>
      <artifactId>cxf-rt-transports-http-hc</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.cxf</groupId>
      <artifactId>cxf-rt-transports-jms</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.cxf</groupId>
      <artifactId>cxf-rt-transports-local</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.cxf</groupId>
      <artifactId>cxf-rt-ws-mex</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.cxf</groupId>
      <artifactId>cxf-rt-ws-rm</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.cxf</groupId>
      <artifactId>cxf-rt-ws-policy</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.cxf</groupId>
      <artifactId>cxf-rt-ws-security</artifactId>
    </dependency>
    <!-- workaround for maven bug processing transitive excludes [MNG-5761]-->
    <dependency>
      <groupId>org.apache.cxf</groupId>
      <artifactId>cxf-rt-wsdl</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.cxf</groupId>
      <artifactId>cxf-tools-java2ws</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.cxf</groupId>
      <artifactId>cxf-tools-wsdlto-core</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.cxf</groupId>
      <artifactId>cxf-tools-wsdlto-databinding-jaxb</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.cxf</groupId>
      <artifactId>cxf-tools-wsdlto-frontend-jaxws</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.cxf.services.ws-discovery</groupId>
      <artifactId>cxf-services-ws-discovery-api</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.cxf.xjcplugins</groupId>
      <artifactId>cxf-xjc-boolean</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.cxf.xjcplugins</groupId>
      <artifactId>cxf-xjc-bug986</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.cxf.xjcplugins</groupId>
      <artifactId>cxf-xjc-dv</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.cxf.xjcplugins</groupId>
      <artifactId>cxf-xjc-ts</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.cxf.xjc-utils</groupId>
      <artifactId>cxf-xjc-runtime</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.velocity</groupId>
      <artifactId>velocity-engine-core</artifactId>
    </dependency>
    <dependency>
      <groupId>commons-collections</groupId>
      <artifactId>commons-collections</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-lang3</artifactId>
    </dependency>
    <dependency>
      <groupId>commons-beanutils</groupId>
      <artifactId>commons-beanutils</artifactId>
    </dependency>
    <dependency>
      <groupId>com.sun.xml.fastinfoset</groupId>
      <artifactId>FastInfoset</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.santuario</groupId>
      <artifactId>xmlsec</artifactId>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.woodstox</groupId>
      <artifactId>woodstox-core</artifactId>
    </dependency>
    <dependency>
      <groupId>org.ow2.asm</groupId>
      <artifactId>asm</artifactId>
    </dependency>
    
    <!--
    useStrictFiltering requires dependency in all included modules
    http://jira.codehaus.org/browse/MASSEMBLY-317
    -->
    <dependency>
      <groupId>jakarta.xml.bind</groupId>
      <artifactId>jakarta.xml.bind-api</artifactId>
    </dependency>

    <dependency>
      <groupId>jakarta.xml.ws</groupId>
      <artifactId>jakarta.xml.ws-api</artifactId>
    </dependency> 
    
    <dependency>
      <groupId>org.jboss.spec.jakarta.xml.soap</groupId>
      <artifactId>jboss-saaj-api_3.0_spec</artifactId>
    </dependency>
    
    <dependency>
      <groupId>jakarta.servlet</groupId>
      <artifactId>jakarta.servlet-api</artifactId>
    </dependency>
    
    <!-- [JBWS-3722] Explicit JAXB dependencies to ensure the dependency management from jbossws-cxf pom.xml applies -->
    <dependency>
      <groupId>org.glassfish.jaxb</groupId>
      <artifactId>jaxb-runtime</artifactId>
    </dependency>
    <dependency>
      <groupId>org.glassfish.jaxb</groupId>
      <artifactId>jaxb-xjc</artifactId>
    </dependency>
    <dependency>
      <groupId>org.glassfish.jaxb</groupId>
      <artifactId>codemodel</artifactId>
    </dependency>
    <dependency>
      <groupId>com.sun.xml.bind.external</groupId>
      <artifactId>rngom</artifactId>
    </dependency>
    
    <!-- Explicit saaj-impl dependency in synch with default SAAJ factories expected by our SAAJ API -->
    <dependency>
      <groupId>com.sun.xml.messaging.saaj</groupId>
      <artifactId>saaj-impl</artifactId>
    </dependency>
    

    <!-- jboss provided -->
    <dependency>
      <groupId>org.jboss.logging</groupId>
      <artifactId>jboss-logging</artifactId>
    </dependency>
    <dependency>
      <groupId>org.jboss.logging</groupId>
      <artifactId>jboss-logging-processor</artifactId>
      <scope>provided</scope>
    </dependency>
    <!-- CXF wsdl2java velocity needs slf4j logging-->
    <dependency>
      <groupId>org.jboss.slf4j</groupId>
      <artifactId>slf4j-jboss-logging</artifactId>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <showDeprecation>false</showDeprecation>
          <compilerArguments>
            <AgeneratedTranslationFilesPath>${project.basedir}/target/generated-translation-files</AgeneratedTranslationFilesPath>
          </compilerArguments>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <skipTests>true</skipTests> <!-- RLS debug only  stmt TODO remove -->
          <failIfNoTests>false</failIfNoTests>
          <classpathDependencyExcludes>
            <classpathDependencyExclude>org.jboss.modules:jboss-modules</classpathDependencyExclude>
          </classpathDependencyExcludes>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <profiles>
    <!--
    Name:  enforce
    Descr: Enforce artifact dependencies
    -->
    <profile>
      <id>enforce</id>
      <activation>
        <property>
          <name>!skip-enforce</name>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-enforcer-plugin</artifactId>
            <executions>
              <execution>
                <id>ban-bad-dependencies</id>
                <goals>
                  <goal>enforce</goal>
                </goals>
                <configuration>
                  <rules>
                    <bannedDependencies>
                      <searchTransitive>true</searchTransitive>
                      <excludes>
                        <exclude>org.apache.cxf:cxf-rt-bindings-corba</exclude>
                        <exclude>org.apache.cxf:cxf-rt-javascript</exclude>
                        <exclude>org.apache.geronimo.specs:*:*:*:compile</exclude>
                        <exclude>org.codehaus.jra:jra</exclude>
                        <exclude>asm:asm</exclude> <!-- We want newer version -->
                        <exclude>org.slf4j:slf4j-jdk14</exclude>
                        <exclude>org.springframework:*</exclude>
                        <exclude>com.sun.xml.bind:*</exclude>
                        <exclude>org.jboss.spec.javax.servlet:jboss-servlet-api_3.1_spec</exclude><!-- We want 4.0 API -->

                        <!-- We want to use JBoss versions of these APIs -->
                        <exclude>javax.annotation:javax.annotation-api:*:*:compile</exclude>
                        <exclude>jakarta.annotation:*:*:compile</exclude>
                        <exclude>javax.ejb:ejb-api</exclude>
                        <exclude>javax.jms:javax.jms-api</exclude>
                        <exclude>javax.security.auth.message:javax.security.auth.message-api</exclude>
                        <exclude>javax.security.jacc:javax.security.jacc-api</exclude>
                        <exclude>javax.servlet:servlet-api</exclude>
                        <exclude>javax.xml.bind:jaxb-api:*:*:compile</exclude>
                        <exclude>javax.xml.soap:saaj-api</exclude>
                        <exclude>javax.xml.ws:jaxws-api:*:*:compile</exclude>
                      </excludes>
                    </bannedDependencies>
                  </rules>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
  
</project>
