<?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.ode</groupId>
    <artifactId>ode-jbi</artifactId>
    <name>ODE :: JBI Distribution</name>
    <parent>
        <groupId>org.apache.ode</groupId>
        <artifactId>ode</artifactId>
        <version>1.4-SNAPSHOT</version>
    </parent>

    <properties>
    <jbi.version>1.1.0</jbi.version>
        <spring.version>2.5.6</spring.version>
        <servicemix.core.version>3.3</servicemix.core.version>
        <servicemix.component.version>2008.01</servicemix.component.version>
        <servicemix.utils.version>1.0.0</servicemix.utils.version>
        <tranql.version>1.1</tranql.version>
    <geronimo.specs.jms.version>1.1-rc4</geronimo.specs.jms.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.apache.ode</groupId>
            <artifactId>ode-bpel-api</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.ode</groupId>
            <artifactId>ode-bpel-compiler</artifactId>
            <exclusions>
             <exclusion>
               <groupId>xml-apis</groupId>
               <artifactId>xml-apis</artifactId>
             </exclusion>
             <exclusion>
               <groupId>dom4j</groupId>
               <artifactId>dom4j</artifactId>
             </exclusion>
             <exclusion>
               <groupId>jdom</groupId>
               <artifactId>jdom</artifactId>
             </exclusion>
             <exclusion>
               <groupId>stax</groupId>
               <artifactId>stax-api</artifactId>
             </exclusion>
             <exclusion>
               <groupId>xom</groupId>
               <artifactId>xom</artifactId>
             </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.ode</groupId>
            <artifactId>ode-bpel-connector</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.ode</groupId>
            <artifactId>ode-bpel-dao</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.ode</groupId>
            <artifactId>ode-bpel-epr</artifactId>
            <exclusions>
             <exclusion>
               <groupId>org.apache.geronimo.components</groupId>
               <artifactId>geronimo-connector</artifactId>
             </exclusion>
             <exclusion>
               <groupId>org.apache.geronimo.components</groupId>
               <artifactId>geronimo-transaction</artifactId>
             </exclusion>
             <exclusion>
               <groupId>org.jencks</groupId>
               <artifactId>jencks</artifactId>
             </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.geronimo.components</groupId>
            <artifactId>geronimo-connector</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.geronimo.components</groupId>
            <artifactId>geronimo-transaction</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.ode</groupId>
            <artifactId>ode-agents</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.ode</groupId>
            <artifactId>ode-bpel-obj</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.ode</groupId>
            <artifactId>ode-bpel-runtime</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.ode</groupId>
            <artifactId>ode-scheduler-simple</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.ode</groupId>
            <artifactId>ode-bpel-store</artifactId>
            <exclusions>
             <exclusion>
               <groupId>org.hibernate</groupId>
               <artifactId>hibernate-core</artifactId>
             </exclusion>
             <exclusion>
               <groupId>hsqldb</groupId>
               <artifactId>hsqldb</artifactId>
             </exclusion>
             <exclusion>
               <groupId>org.apache.geronimo.specs</groupId>
               <artifactId>geronimo-jms_1.1_spec</artifactId>
             </exclusion>
             <exclusion>
               <groupId>org.apache.geronimo.specs</groupId>
               <artifactId>geronimo-jpa_1.0_spec</artifactId>
             </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.ode</groupId>
            <artifactId>ode-bpel-schemas</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.ode</groupId>
            <artifactId>ode-utils</artifactId>
            <exclusions>
             <exclusion>
               <groupId>org.apache.axis2</groupId>
               <artifactId>axis2-adb</artifactId>
             </exclusion>
             <exclusion>
               <groupId>org.apache.axis2</groupId>
               <artifactId>axis2-codegen</artifactId>
             </exclusion>
             <exclusion>
               <groupId>org.apache.axis2</groupId>
               <artifactId>axis2-kernel</artifactId>
             </exclusion>
             <exclusion>
               <groupId>org.apache.axis2</groupId>
               <artifactId>axis2-java2wsdl</artifactId>
             </exclusion>
             <exclusion>
               <groupId>org.apache.axis2</groupId>
               <artifactId>axis2-jibx</artifactId>
             </exclusion>
             <exclusion>
               <groupId>org.apache.axis2</groupId>
               <artifactId>axis2-saaj</artifactId>
             </exclusion>
             <exclusion>
               <groupId>org.apache.axis2</groupId>
               <artifactId>axis2-xmlbeans</artifactId>
             </exclusion>
             <exclusion>
               <groupId>org.apache.geronimo.specs</groupId>
               <artifactId>geronimo-javamail_1.4_spec</artifactId>
             </exclusion>
             <exclusion>
               <groupId>org.codehaus.woodstox</groupId>
               <artifactId>wstx-asl</artifactId>
             </exclusion>
             <exclusion>
               <groupId>xml-apis</groupId>
               <artifactId>xml-apis</artifactId>
             </exclusion>
             <exclusion>
               <groupId>org.apache.geronimo.specs</groupId>
               <artifactId>geronimo-activation_1.1_spec</artifactId>
             </exclusion>
             <exclusion>
               <groupId>xpp3</groupId>
               <artifactId>xpp3_min</artifactId>
             </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.ode</groupId>
            <artifactId>ode-bpel-ql</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.servicemix.specs</groupId>
            <artifactId>org.apache.servicemix.specs.jbi-api-1.0</artifactId>
            <version>${jbi.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
          <groupId>org.apache.ode</groupId>
          <artifactId>ode-dao-jpa</artifactId>
          <exclusions>
             <exclusion>
               <groupId>xerces</groupId>
               <artifactId>xmlParserAPIs</artifactId>
             </exclusion>
            </exclusions>
        </dependency>
        <dependency>
          <groupId>org.apache.derby</groupId>
          <artifactId>derby</artifactId>
        </dependency>
        <dependency>
          <groupId>org.apache.ode</groupId>
          <artifactId>ode-dao-hibernate</artifactId>
        </dependency>
        <dependency>
          <groupId>org.hibernate</groupId>
          <artifactId>hibernate-core</artifactId>
          <scope>provided</scope>
        </dependency>
        <dependency>
          <groupId>org.apache.ode</groupId>
          <artifactId>ode-bpel-api-jca</artifactId>
        </dependency>
        <dependency>
          <groupId>org.apache.ode</groupId>
          <artifactId>ode-jca-ra</artifactId>
        </dependency>
        <dependency>
          <groupId>org.apache.ode</groupId>
          <artifactId>ode-jca-server</artifactId>
        </dependency>
        <dependency>
          <groupId>org.apache.ode</groupId>
          <artifactId>ode-jacob</artifactId>
        </dependency>
        <dependency>
            <groupId>xerces</groupId>
            <artifactId>xercesImpl</artifactId>
        </dependency>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
      <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>commons-io</groupId>
          <artifactId>commons-io</artifactId>
      <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring</artifactId>
          <version>${spring.version}</version>
      <scope>test</scope>
        </dependency>

        <dependency>
          <groupId>org.apache.servicemix</groupId>
          <artifactId>servicemix-core</artifactId>
          <version>${servicemix.core.version}</version>
      <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>org.apache.servicemix</groupId>
          <artifactId>servicemix-soap</artifactId>
          <version>${servicemix.component.version}</version>
      <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>org.apache.servicemix</groupId>
          <artifactId>servicemix-common</artifactId>
          <version>${servicemix.component.version}</version>
      <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>org.apache.servicemix</groupId>
          <artifactId>servicemix-shared</artifactId>
          <version>${servicemix.component.version}</version>
      <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>org.apache.servicemix</groupId>
          <artifactId>servicemix-http</artifactId>
          <version>${servicemix.component.version}</version>
      <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>org.apache.servicemix</groupId>
          <artifactId>servicemix-eip</artifactId>
          <version>${servicemix.component.version}</version>
      <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>org.apache.servicemix</groupId>
          <artifactId>servicemix-utils</artifactId>
          <version>${servicemix.utils.version}</version>
      <scope>test</scope>
        </dependency>
        <dependency>
           <groupId>org.apache.geronimo.specs</groupId>
           <artifactId>geronimo-javamail_1.4_spec</artifactId>
           <scope>test</scope>
        </dependency>

       <!-- for JBI packaging -->
       <dependency>
          <groupId>ant</groupId>
          <artifactId>ant</artifactId>
       </dependency>
       <dependency>
          <groupId>tranql</groupId>
          <artifactId>tranql-connector</artifactId>
          <version>${tranql.version}</version>
          <exclusions>
             <exclusion>
               <groupId>geronimo-spec</groupId>
               <artifactId>geronimo-spec-j2ee-connector</artifactId>
             </exclusion>
             <exclusion>
               <groupId>geronimo-spec</groupId>
               <artifactId>geronimo-spec-jta</artifactId>
             </exclusion>
             <exclusion>
               <groupId>regexp</groupId>
               <artifactId>regexp</artifactId>
             </exclusion>
             <exclusion>
               <groupId>net.java.dev.javacc</groupId>
               <artifactId>javacc</artifactId>
             </exclusion>
          </exclusions>
       </dependency>
       <dependency>
          <groupId>tranql</groupId>
          <artifactId>tranql-connector-derby-common</artifactId>
          <version>${tranql.version}</version>
          <scope>test</scope>
       </dependency>
       <dependency>
          <groupId>geronimo-spec</groupId>
          <artifactId>geronimo-spec-jms</artifactId>
          <version>${geronimo.specs.jms.version}</version>
       </dependency>
       <dependency>
          <groupId>commons-primitives</groupId>
          <artifactId>commons-primitives</artifactId>
       </dependency>
       <dependency>
          <groupId>backport-util-concurrent</groupId>
          <artifactId>backport-util-concurrent</artifactId>
       </dependency>
       <dependency>
          <groupId>commons-dbcp</groupId>
          <artifactId>commons-dbcp</artifactId>
          <exclusions>
           <exclusion>
             <groupId>xml-apis</groupId>
             <artifactId>xml-apis</artifactId>
           </exclusion>
          </exclusions>
       </dependency>
       <dependency>
          <groupId>org.apache.geronimo.specs</groupId>
          <artifactId>geronimo-ejb_2.1_spec</artifactId>
       </dependency>

       <!-- This is a way to specify the global exclusion in the dependency tree -->
       <dependency>
          <groupId>commons-httpclient</groupId>
          <artifactId>commons-httpclient</artifactId>
          <scope>provided</scope>
       </dependency>
       <dependency>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
          <scope>provided</scope>
       </dependency>
    </dependencies>


   <build>
     <plugins>
      <plugin>
        <groupId>org.apache.servicemix.tooling</groupId>
        <artifactId>jbi-maven-plugin</artifactId>
        <version>3.2.3</version>
        <extensions>true</extensions>
        <executions>
          <execution>
            <id>jbi-generation</id>
            <phase>process-resources</phase>
            <goals>
              <goal>generate-jbi-component-descriptor</goal>
            </goals>
            <configuration>
              <component>org.apache.ode.jbi.OdeComponent</component>
              <bootstrap>org.apache.ode.jbi.OdeBootstrap</bootstrap>
              <bootstrapClassLoaderDelegation>parent-first</bootstrapClassLoaderDelegation>
              <componentClassLoaderDelegation>parent-first</componentClassLoaderDelegation>
              <type>service-engine</type>
              <name>OdeBpelEngine</name>
              <description>ODE JBI Integration Layer</description>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
            <systemPropertyVariables>
              <java.naming.factory.initial>org.apache.xbean.spring.jndi.SpringInitialContextFactory</java.naming.factory.initial>
              <org.apache.ode.autoRetireProcess>true</org.apache.ode.autoRetireProcess>
            </systemPropertyVariables>
            <excludes>
                <!-- FIXME: these two tests failed in jdk6, ODE-860 -->
            	<exclude>**/DigestJbiTest.java</exclude>
            	<exclude>**/OnEventAlarmJbiTest.java</exclude>
            </excludes>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <executions>
          <execution>
            <id>jbi-package</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
            <configuration>
              <finalName>ode-jbi-${project.version}</finalName>
              <appendAssemblyId>false</appendAssemblyId>
              <descriptors>
                <descriptor>src/main/assembly/bin.xml</descriptor>
              </descriptors>
              <tarLongFileMode>gnu</tarLongFileMode>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.4.2</version>
        <executions>
          <execution>
            <id>copy-resources</id>
            <phase>process-test-resources</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>target/test/smx/ode</outputDirectory>
              <resources>
                <resource>
                  <directory>${basedir}/../dao-jpa-ojpa-derby/target/derby</directory>
                </resource>
                <resource>
                  <directory>${basedir}/../dao-hibernate-db/target/derby</directory>
                </resource>
              </resources>
            </configuration>
          </execution>
          <execution>
            <id>copy-resources2</id>
            <phase>process-test-resources</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>target/test/resources</outputDirectory>
              <resources>
                <resource>
                  <directory>src/test/resources</directory>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>
     </plugins>

     <testResources>
       <testResource>
         <directory>src/test/resources</directory>
       </testResource>
       <testResource>
         <directory>src/test/jbi</directory>
         <targetPath>../test/smx/ode</targetPath>
       </testResource>
       <testResource>
         <directory>src/main/jbi</directory>
         <includes><include>hibernate.properties</include></includes>
         <targetPath>../test/smx/ode</targetPath>
       </testResource>
     </testResources>
   </build>

</project>
