<?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>
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.apache.tuscany.sca</groupId>
        <artifactId>tuscany-distribution</artifactId>
        <version>2.0-Beta4</version>
    </parent>

    <artifactId>tuscany-distribution-osgi</artifactId>
    <name>Apache Tuscany SCA OSGI Distribution</name>
<!-- 
    <packaging>pom</packaging>
-->

    <repositories>
        <repository>
            <id>java.net2</id>
            <name>java.net Maven 2.x Repository</name>
            <url>http://download.java.net/maven/2</url>
        </repository>
        <repository>
            <id>intalio.org</id>
            <url>http://www.intalio.org/public/maven2</url>
           <releases>
               <enabled>true</enabled>
           </releases>
           <snapshots>
               <enabled>false</enabled>
           </snapshots>
        </repository>     
        <repository>
            <id>openejb-repository</id>
            <name>OpenEJB Repository</name>
            <url>http://svn.apache.org/repos/asf/openejb/repo</url>
            <layout>default</layout>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <releases>
                <enabled>true</enabled>
            </releases>
        </repository>
    </repositories>

    <dependencies>

        <!-- module jars for modules directory -->
        <dependency>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-feature-all</artifactId>
            <type>pom</type>
            <version>2.0-Beta4</version>
        </dependency>        

        <!-- needed for the unit test which produces the feature repository.xml files -->
       <dependency>
           <groupId>org.apache.tuscany.sca</groupId>
           <artifactId>tuscany-sca-api</artifactId>
           <version>2.0-Beta4</version>
           <scope>compile</scope>
       </dependency> 
               
       <dependency>
           <groupId>org.apache.aries.application</groupId>
           <artifactId>org.apache.aries.application.api</artifactId>
           <version>0.4-SNAPSHOT</version>
           <scope>test</scope>
       </dependency>          
       
       <dependency>
           <groupId>org.apache.aries.application</groupId>
           <artifactId>org.apache.aries.application.management</artifactId>
           <version>0.4-SNAPSHOT</version>
           <scope>test</scope>
       </dependency> 
       
       <dependency>
           <groupId>org.apache.aries.application</groupId>
           <artifactId>org.apache.aries.application.modeller</artifactId>
           <version>0.4-SNAPSHOT</version>
           <scope>test</scope>
       </dependency>                  
       
       <dependency>
           <groupId>org.apache.aries.application</groupId>
           <artifactId>org.apache.aries.application.resolver.obr</artifactId>
           <version>0.4-SNAPSHOT</version>
           <scope>test</scope>
       </dependency>      
      
      <!-- Pax Exam test runtime -->      
      <dependency>
          <groupId>org.ops4j.pax.exam</groupId>
          <artifactId>pax-exam</artifactId>
          <version>1.2.4</version>
          <scope>test</scope>
      </dependency>
      
      <dependency>
          <groupId>org.ops4j.pax.exam</groupId>
          <artifactId>pax-exam-junit</artifactId>
          <version>1.2.4</version>
          <scope>test</scope>
      </dependency>
      
      <dependency>
          <groupId>org.ops4j.pax.exam</groupId>
          <artifactId>pax-exam-container-default</artifactId>
          <version>1.2.4</version>
          <scope>test</scope>
      </dependency>
      
      <dependency>
          <groupId>org.ops4j.pax.logging</groupId>
          <artifactId>pax-logging-api</artifactId>
          <version>1.6.1</version>
          <scope>test</scope>
      </dependency>   
      
      <dependency>
          <groupId>org.ops4j.pax.logging</groupId>
          <artifactId>pax-logging-service</artifactId>
          <version>1.6.1</version>
          <scope>test</scope>
      </dependency> 
      
      <dependency>
          <groupId>org.ops4j.pax.url</groupId>
          <artifactId>pax-url-mvn</artifactId>
          <version>1.2.4</version>
          <scope>test</scope>
      </dependency>      
            
      <!-- extra bundles that will be loaded -->
        
      <dependency>
          <groupId>org.apache.felix</groupId>
          <artifactId>org.apache.felix.bundlerepository</artifactId>
          <version>1.6.2</version>
          <scope>test</scope>
      </dependency>        
      
       <dependency>
           <groupId>org.apache.aries</groupId>
           <artifactId>org.apache.aries.util</artifactId>
           <version>0.4-SNAPSHOT</version>
           <scope>test</scope>
       </dependency>
       
       <dependency>
           <groupId>org.apache.aries.blueprint</groupId>
           <artifactId>org.apache.aries.blueprint</artifactId>
           <version>0.4-SNAPSHOT</version>
           <scope>test</scope>
       </dependency>
       
       <dependency>
           <groupId>org.apache.aries.proxy</groupId>
           <artifactId>org.apache.aries.proxy</artifactId>
           <version>0.4-SNAPSHOT</version>
           <scope>test</scope>
       </dependency> 
       
       <dependency>
           <groupId>org.apache.aries.application</groupId>
           <artifactId>org.apache.aries.application.runtime</artifactId>
           <version>0.4-SNAPSHOT</version>
           <scope>test</scope>
       </dependency>       
       
       <dependency>
           <groupId>org.apache.aries.application</groupId>
           <artifactId>org.apache.aries.application.default.local.platform</artifactId>
           <version>0.4-SNAPSHOT</version>           
           <scope>test</scope>
       </dependency>
       
      <dependency>
          <groupId>org.apache.aries.application</groupId>
          <artifactId>org.apache.aries.application.runtime.itest.interfaces</artifactId>
          <version>0.4-SNAPSHOT</version>
          <scope>test</scope>
      </dependency>         
       
       <dependency>
           <groupId>asm</groupId>
           <artifactId>asm-all</artifactId>
           <version>3.3.1</version>
           <scope>test</scope>
       </dependency> 
       
       <dependency>
           <groupId>org.osgi</groupId>
           <artifactId>org.osgi.compendium</artifactId>
           <version>4.2.0</version>
           <scope>test</scope>
       </dependency>  
       
       <dependency>
           <groupId>org.osgi</groupId>
           <artifactId>org.osgi.core</artifactId>
           <version>4.2.0</version>
           <scope>test</scope>
       </dependency>       
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.tuscany.maven.plugins</groupId> 
                <artifactId>maven-bundle-plugin</artifactId> 
                <version>1.0.7</version>
                <executions>
                    <!-- generate the which-jars files -->
                    <execution>
                        <id>extensions-build</id>
                        <phase>process-resources</phase>
                        <goals>
                             <goal>generate-meta-data</goal>
                        </goals>
                        <configuration>
                             <generateModules>false</generateModules>
                             <useDistributionName>false</useDistributionName>
                             <generateManifestJar>true</generateManifestJar>
                             <generateConfig>false</generateConfig>
                             <generateAntScript>true</generateAntScript> 
                             <generateTargetPlatform>false</generateTargetPlatform>
                             <generateAggregatedBundle>false</generateAggregatedBundle>
                             <featuresName>features</featuresName>
                             <features>
                                 <feature>
                                     <groupId>org.apache.tuscany.sca</groupId>
                                     <artifactId>tuscany-base-runtime-pom</artifactId>
                                     <version>2.0-Beta4</version>
                                 </feature>
                             </features>
                             <extensions>
                                 <extension>
                                     <groupId>org.apache.tuscany.sca</groupId>
                                     <artifactId>tuscany-binding-atom-runtime</artifactId>
                                     <version>2.0-Beta4</version>
                                 </extension>
                                 <extension>
                                     <groupId>org.apache.tuscany.sca</groupId>
                                     <artifactId>tuscany-binding-commet-runtime</artifactId>
                                     <version>2.0-Beta4</version>
                                 </extension>
                                 <extension>
                                     <groupId>org.apache.tuscany.sca</groupId>
                                     <artifactId>tuscany-binding-corba-runtime</artifactId>
                                     <version>2.0-Beta4</version>
                                 </extension>
                                 <extension>
                                     <groupId>org.apache.tuscany.sca</groupId>
                                     <artifactId>tuscany-binding-ejb-runtime</artifactId>
                                     <version>2.0-Beta4</version>
                                 </extension>
                                 <extension>
                                     <groupId>org.apache.tuscany.sca</groupId>
                                     <artifactId>tuscany-binding-hazelcase-runtime</artifactId>
                                     <version>2.0-Beta4</version>
                                 </extension>
                                 <extension>
                                     <groupId>org.apache.tuscany.sca</groupId>
                                     <artifactId>tuscany-binding-jms-runtime</artifactId>
                                     <version>2.0-Beta4</version>
                                 </extension>
                                 <extension>
                                     <groupId>org.apache.tuscany.sca</groupId>
                                     <artifactId>tuscany-binding-jsonp-runtime</artifactId>
                                     <version>2.0-Beta4</version>
                                 </extension>
                                 <extension>
                                     <groupId>org.apache.tuscany.sca</groupId>
                                     <artifactId>tuscany-binding-jsonrpc-runtime</artifactId>
                                     <version>2.0-Beta4</version>
                                 </extension>
                                 <extension>
                                     <groupId>org.apache.tuscany.sca</groupId>
                                     <artifactId>tuscany-binding-rest-runtime</artifactId>
                                     <version>2.0-Beta4</version>
                                 </extension>
                                 <extension>
                                     <groupId>org.apache.tuscany.sca</groupId>
                                     <artifactId>tuscany-binding-rmi-runtime</artifactId>
                                     <version>2.0-Beta4</version>
                                 </extension>
                                 <extension>
                                     <groupId>org.apache.tuscany.sca</groupId>
                                     <artifactId>tuscany-binding-rss-runtime</artifactId>
                                     <version>2.0-Beta4</version>
                                 </extension>
                                 <extension>
                                     <groupId>org.apache.tuscany.sca</groupId>
                                     <artifactId>tuscany-binding-ws-runtime-axis2</artifactId>
                                     <version>2.0-Beta4</version>
                                 </extension>

                                 <extension>
                                     <groupId>org.apache.tuscany.sca</groupId>
                                     <artifactId>tuscany-implementation-bpel-runtime</artifactId>
                                     <version>2.0-Beta4</version>
                                 </extension>
                                 <extension>
                                     <groupId>org.apache.tuscany.sca</groupId>
                                     <artifactId>tuscany-implementation-jaxes-runtime</artifactId>
                                     <version>2.0-Beta4</version>
                                 </extension>
                                 <extension>
                                     <groupId>org.apache.tuscany.sca</groupId>
                                     <artifactId>tuscany-implementation-osgi-runtime</artifactId>
                                     <version>2.0-Beta4</version>
                                 </extension>
                                 <extension>
                                     <groupId>org.apache.tuscany.sca</groupId>
                                     <artifactId>tuscany-implementation-python-runtime</artifactId>
                                     <version>2.0-Beta4</version>
                                 </extension>
                                 <extension>
                                     <groupId>org.apache.tuscany.sca</groupId>
                                     <artifactId>tuscany-implementation-script-runtime</artifactId>
                                     <version>2.0-Beta4</version>
                                 </extension>
                                 <extension>
                                     <groupId>org.apache.tuscany.sca</groupId>
                                     <artifactId>tuscany-implementation-spring-runtime</artifactId>
                                     <version>2.0-Beta4</version>
                                 </extension>
                                 <extension>
                                     <groupId>org.apache.tuscany.sca</groupId>
                                     <artifactId>tuscany-implementation-web-runtime</artifactId>
                                     <version>2.0-Beta4</version>
                                 </extension>
                                 <extension>
                                     <groupId>org.apache.tuscany.sca</groupId>
                                     <artifactId>tuscany-implementation-widget-runtime</artifactId>
                                     <version>2.0-Beta4</version>
                                 </extension>

                                 <extension>
                                     <groupId>org.apache.tuscany.sca</groupId>
                                     <artifactId>tuscany-host-jetty</artifactId>
                                     <version>2.0-Beta4</version>
                                 </extension>
                             </extensions>
                            <artifactManifests>
                            <!--
                                 <artifactManifest>
                                     <groupId>org.apache.ws.commons.axiom</groupId>
                                     <artifactId>axiom-api</artifactId>
                                     <version>1.2.10</version>
                                     <manifestFile>${basedir}/manifests/axiom-api-1.2.10.MF</manifestFile>
                                 </artifactManifest>
                                 -->
                                 <artifactManifest>
                                     <groupId>org.apache.woden</groupId>
                                     <artifactId>woden-impl-dom</artifactId>
                                     <version>1.0M8</version>
                                     <manifestFile>${basedir}/manifests/woden-impl-dom-1.0M8.MF</manifestFile>
                                 </artifactManifest>
                                 <artifactManifest>
                                     <groupId>org.apache.axis2</groupId>
                                     <artifactId>axis2-kernel</artifactId>
                                     <version>1.5.3</version>
                                     <manifestFile>${basedir}/manifests/axis2-kernel-1.5.3.MF</manifestFile>
                                 </artifactManifest>
                                 <artifactManifest>
                                     <groupId>org.apache.axis2</groupId>
                                     <artifactId>axis2-transport-http</artifactId>
                                     <version>1.5.3</version>
                                     <manifestFile>${basedir}/manifests/axis2-transport-http-1.5.3.MF</manifestFile>
                                 </artifactManifest>
                                 <artifactManifest>
                                     <groupId>org.apache.axis2</groupId>
                                     <artifactId>*</artifactId>
                                     <version>*</version>
                                 </artifactManifest>
                             </artifactManifests>
                        </configuration>
                    </execution>
                </executions>
                <dependencies>
                   <dependency>
                      <groupId>org.eclipse</groupId>
                      <artifactId>osgi</artifactId>
                      <version>3.3.0-v20070530</version>
                   </dependency>
                </dependencies>
            </plugin>
      <plugin>
          <groupId>org.apache.servicemix.tooling</groupId>
          <artifactId>depends-maven-plugin</artifactId>
          <version>1.2</version>
          <executions>
              <execution>
                  <id>generate-depends-file</id>
                  <goals>
                      <goal>generate-depends-file</goal>
                  </goals>
                  <configuration>
                      <outputFile>${project.build.directory}/test-classes/META-INF/maven/dependencies.properties</outputFile>
                  </configuration>
              </execution>
          </executions>
      </plugin>             
        </plugins>
    </build>

</project>
