<?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</groupId>
        <artifactId>apache</artifactId>
        <version>7</version>
    </parent>

    <!-- ====================================================================== -->
    <!-- Project description and basic configuration                            -->
    <!-- ====================================================================== -->
    <groupId>org.apache.tuscany.sca</groupId>
    <artifactId>tuscany-sca</artifactId>
    <packaging>pom</packaging>
    <name>Apache Tuscany SCA Implementation Project (2.x)</name>
    <url>http://tuscany.apache.org</url>
    <version>2.0-Beta1</version>

    <scm>
        <connection>scm:svn:http://svn.apache.org/repos/asf/tuscany/sca-java-2.x/trunk</connection>
        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/tuscany/sca-java-2.x/trunk</developerConnection>
        <url>http://svn.apache.org/repos/asf/tuscany/sca-java-2.x/trunk</url>
    </scm>

    <prerequisites>
        <maven>2.0.6</maven>
    </prerequisites>

    <properties>
        <notice.dir>.</notice.dir>
        <tools.jar>${java.home}/../lib/tools.jar</tools.jar>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>        
    </properties>

    <issueManagement>
        <system>jira</system>
        <url>http://issues.apache.org/jira/browse/TUSCANY</url>
    </issueManagement>

    <!-- ====================================================================== -->
    <!-- Maven Repositories                                                     -->
    <!-- ====================================================================== -->
    <repositories>
       <repository>
          <id>maven.central</id>
          <url>http://repo2.maven.org/maven2</url>
           <releases>
               <enabled>true</enabled>
           </releases>
           <snapshots>
               <enabled>false</enabled>
           </snapshots>
       </repository>
       <repository>
          <id>apache.incubator</id>
          <url>http://people.apache.org/repo/m2-incubating-repository</url>
           <releases>
               <enabled>true</enabled>
           </releases>
           <snapshots>
               <enabled>false</enabled>
           </snapshots>
       </repository>
       <!-- Apache SNAPSHOT repository for unreleased artifacts -->
       <repository>
            <id>apache.snapshots</id>
            <name>Apache SNAPSHOT Repository</name>
            <url>http://repository.apache.org/snapshots</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
        <!-- Tuscany repository to hold artifacts that are not published in the public maven repos -->
        <repository>
            <id>tuscany.repo</id>
            <name>Tuscany Maven 2.x Repository</name>
            <url>http://svn.apache.org/repos/asf/tuscany/maven</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>apache.ws.zone</id>
            <name>Apache WS Zone Repository</name>
            <url>http://ws.zones.apache.org/repository2</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>indiana</id>
            <url>http://ftp.ussg.iu.edu/eclipse/modeling/emf/emf/maven2/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>osuosl.org</id>
            <url>http://ftp.osuosl.org/pub/eclipse/tools/emf/maven2</url>
           <releases>
               <enabled>true</enabled>
           </releases>
           <snapshots>
               <enabled>false</enabled>
           </snapshots>
        </repository> 

        <!-- for Saxon 9.x -->
        <repository>
            <id>intalio.org</id>
            <url>http://www.intalio.org/public/maven2</url>
           <releases>
               <enabled>true</enabled>
           </releases>
           <snapshots>
               <enabled>false</enabled>
           </snapshots>
        </repository>     

        <!-- for java.net -->
        <repository>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <id>java.net</id>
            <name>java.net Maven 1.x Repository</name>
            <url>http://download.java.net/maven/1</url>
            <layout>legacy</layout>
        </repository>

        <repository>
            <id>java.net2</id>
            <name>java.net Maven 2.x Repository</name>
            <url>http://download.java.net/maven/2</url>
            <snapshots>
              <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>

    <!-- ====================================================================== -->
    <!-- Maven Plugin-Repositories                                              -->
    <!-- ====================================================================== -->
    <pluginRepositories>
        <!-- Apache repository for artifacts released by Apache TLP projects -->
        <pluginRepository>
            <id>apache</id>
            <name>Apache Repository</name>
            <url>http://people.apache.org/repo/m2-ibiblio-rsync-repository</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>

        <!-- Apache Incubator repository for artifacts released by Incubator projects -->
        <pluginRepository>
            <id>apache.incubator</id>
            <name>Apache Incubator Repository</name>
            <url>http://people.apache.org/repo/m2-incubating-repository</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>

        <!-- Apache SNAPSHOT repository for unreleased artifacts -->
        <pluginRepository>
            <id>apache.snapshots</id>
            <name>Apache SNAPSHOT Repository</name>
            <url>http://repository.apache.org/snapshots</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>

        <!-- Codehaus SNAPSHOT repository -->
        <!--
        <pluginRepository>
            <id>codehaus-snapshot</id>
            <name>Codehaus Snapshot Repository</name>
            <url>http://snapshots.repository.codehaus.org</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
        -->

       <!-- Maven central repository -->
       <pluginRepository>
          <id>maven.central</id>
          <name>Maven Central Repository</name>
          <url>http://repo2.maven.org/maven2</url>
          <releases>
              <enabled>true</enabled>
          </releases>
          <snapshots>
              <enabled>false</enabled>
          </snapshots>
       </pluginRepository>

        <pluginRepository>
            <id>java.net2</id>
            <name>java.net Maven 2.x Repository</name>
            <url>http://download.java.net/maven/2</url>
            <snapshots>
              <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>
    
    <!-- ====================================================================== -->
    <!-- Distribution Management configuration                                  -->
    <!-- ====================================================================== -->
    <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>
       </snapshotRepository>
    </distributionManagement>

    <profiles>
        <!-- ====================================================================== -->
        <!-- Default profile                                                        -->
        <!-- ====================================================================== -->
        <profile>
            <id>default</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <modules>
                <module>maven/maven-tuscany-plugin</module>
                <module>modules</module>
                <module>samples</module>
                <module>testing/itest</module>
                <module>features</module>
                <module>distribution</module>
                <module>maven/archetypes</module>
                <module>testing/compliance-tests</module>
            </modules>
        </profile>
        <!-- ====================================================================== -->
        <!-- Default profile to be used in Mac OS environment                       -->
        <!--   Note that this set tools.jar property based on the JDK used in Mac   -->
        <!-- ====================================================================== -->
        <profile>
            <id>default-mac</id>
            <activation>
                <os>
                    <family>mac</family>
                </os>
            </activation>
            <properties>
                <tools.jar>${java.home}/../Classes/classes.jar</tools.jar>
            </properties>
            <modules>
                <module>maven/maven-tuscany-plugin</module>
                <module>modules</module>
                <module>samples</module>
                <module>testing/itest</module>
                <module>features</module>
                <module>distribution</module>
                <module>maven/archetypes</module>
                <module>testing/compliance-tests</module>
            </modules>
        </profile>

        <!-- ====================================================================== -->
        <!-- Profile used to generate OSGi based Eclipse IDE project artifacts      -->
        <!-- ====================================================================== -->
        <profile>
            <id>eclipse</id>
            <modules>
                <module>modules</module>
                <module>samples</module>
                <module>testing/itest</module>
                <module>features</module>
                <module>distribution</module>
            </modules>
           <build>
                <defaultGoal>org.apache.tuscany.maven.plugins:maven-bundle-plugin:eclipse</defaultGoal>
                <pluginManagement>
                <plugins>
                   <plugin> 
                       <groupId>org.apache.tuscany.maven.plugins</groupId> 
                       <artifactId>maven-bundle-plugin</artifactId> 
                       <version>1.0.5</version> 
                       <extensions>true</extensions> 
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-eclipse-plugin</artifactId>
                        <configuration>
                            <skip>true</skip>
                        </configuration>
                     </plugin>
                 </plugins>
                 </pluginManagement>
            </build>
        </profile>

        <!-- ====================================================================== -->
        <!-- Profile used to generate OSGi based Eclipse IDE project artifacts      -->
        <!--   Note that this set tools.jar property based on the JDK used in Mac   -->
        <!-- ====================================================================== -->
        <profile>
            <id>eclipse-mac</id>
            <properties>
                <tools.jar>${java.home}/../Classes/classes.jar</tools.jar>
            </properties>
            <modules>
                <module>modules</module>
                <module>samples</module>
                <module>testing/itest</module>
                <module>features</module>
                <module>distribution</module>
            </modules>
           <build>
                <defaultGoal>org.apache.tuscany.maven.plugins:maven-bundle-plugin:eclipse</defaultGoal>
                <pluginManagement>
                <plugins>
                   <plugin> 
                       <groupId>org.apache.tuscany.maven.plugins</groupId> 
                       <artifactId>maven-bundle-plugin</artifactId> 
                       <version>1.0.5</version> 
                       <extensions>true</extensions> 
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-eclipse-plugin</artifactId>
                        <configuration>
                            <skip>true</skip>
                        </configuration>
                     </plugin>
                 </plugins>
                 </pluginManagement>
            </build>
        </profile>

        <!-- ====================================================================== -->
        <!-- Profile to build release distribution                                  -->
        <!-- ====================================================================== -->
        <profile>
            <id>distribution</id>
            <modules>
                <module>maven/maven-tuscany-plugin</module>
                <module>modules</module>
                <module>samples</module>
                <module>testing/itest</module>
                <module>features</module>
                <module>distribution</module>
                <module>maven/archetypes</module>
                <module>testing/compliance-tests</module>
            </modules>
           <build>
              <plugins>
              </plugins>
           </build>
        </profile>

        <profile>
            <id>compliance</id>
            <modules>
                <module>testing/compliance-tests</module>
            </modules>
        </profile>

<!-- START - WHAT ARE THE FOLLOWING PROFILES FOR? -->
        <!-- ====================================================================== -->
        <!-- Profile to generate source jars for modules                            -->
        <!-- ====================================================================== -->

        <profile>
            <id>source</id>
            <modules>
                <module>modules</module>
            </modules>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-source-plugin</artifactId>
                        <version>2.1.1</version>
                        <executions>
                            <execution>
                                <id>attach-sources</id>
                                <goals>
                                    <goal>jar-no-fork</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>         
            </build>
        </profile>

        <profile>
            <id>osgi</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <modules>
               <module>samples</module>
            </modules>
            <build>
                <pluginManagement>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <configuration>
                            <skip>true</skip>
                        </configuration>
                     </plugin>
                 </plugins>
                 </pluginManagement>
                <plugins>
                <plugin>
                    <groupId>org.apache.tuscany.sca</groupId>
                    <artifactId>tuscany-maven-osgi-junit</artifactId>
                    <version>1.0</version>
                    <executions>
                        <execution>
                            <id>osgi-test</id>
                            <phase>test</phase>
                            <goals>
                                <goal>test</goal>
                            </goals>
                        </execution>
                    </executions>
                 </plugin>            
                 </plugins>       
            </build> 
        </profile>  

        <profile>
            <id>dependencies</id>
            <modules>
                <module>modules</module>
                <module>samples</module>
                <module>tutorials</module>
                <module>demos</module>
            </modules>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.tuscany.sca</groupId>
                        <artifactId>tuscany-maven-dependency-lister</artifactId>
                        <version>2.0-Beta1</version>
                        <executions>
                            <execution>
                                <phase>process-resources</phase>
                                <goals>
                                    <goal>execute</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>           
                </plugins>         
            </build>
        </profile>
        
        <profile>
            <id>security</id>
            <modules>
                <module>testing/itest</module>
            </modules>
            <activation>
                <property>
                    <name>tuscany.policy.file</name>
                </property>
            </activation>
            <properties>
                <tuscany.policy.file>file:///${java.home}/lib/security/tuscany.policy</tuscany.policy.file>
            </properties>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <version>2.4.3</version>
                        <configuration>
                            <includes>
                                <include>**/*TestCase.java</include>
                            </includes>
                            <reportFormat>brief</reportFormat>
                            <useFile>false</useFile>
                            <forkMode>once</forkMode>
                            <!-- Place tuscany.policy in your Java home security directory. Alternatively, hardcode the file location here. -->
                            <argLine>-Djava.security.manager -Djava.security.policy=${tuscany.policy.file} -Dpolicy.allowSystemProperty=true -Djava.security.debug=policy</argLine>
                        </configuration>
                    </plugin>
                </plugins>         
            </build>
        </profile>

        <!-- profile for verifying source code correctness -->
        <profile>
            <id>sourcecheck</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-checkstyle-plugin</artifactId>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-pmd-plugin</artifactId>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <configuration>
                            <source>1.6</source>
                            <target>1.6</target>
                            <showDeprecation>true</showDeprecation>
                            <compilerArgument>-Xlint:unchecked,deprecation,fallthrough,finally</compilerArgument>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <!--
          to test this profile you may like to run mvn with arguments ...
          -DaltDeploymentRepository=id::default::file:target/deploy -Prelease -Dgpg.skip
          then look in the target/deploy directory for a locally deployed repository of artifacts 
        -->
        <profile>
            <id>release</id>
            <properties>
                <skipTests>true</skipTests>
                <buildZips>true</buildZips>
            </properties>
            <modules>
                <module>maven/maven-tuscany-plugin</module>
                <module>modules</module>
                <module>features</module>
                <module>distribution</module>
                <module>maven/archetypes</module>
            </modules>
           <build>
              <defaultGoal>deploy</defaultGoal>
              <plugins>
                    <plugin>
                        <artifactId>maven-deploy-plugin</artifactId>
                        <version>2.4</version>
                        <configuration>
                            <updateReleaseInfo>true</updateReleaseInfo>
                        </configuration>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>deploy</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <version>1.1</version>
                        <executions>
                            <execution>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-source-plugin</artifactId>
                        <version>2.1.1</version>
                        <executions>
                            <execution>
                                <id>attach-sources</id>
                                <goals>
                                    <goal>jar-no-fork</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <version>2.6.1</version>
                        <configuration>
                            <maxmemory>1024m</maxmemory>
                            <tags>
                                <tag>
                                    <name>tuscany.spi.extension.inheritfrom</name>
                                    <!-- extension spi by inheritance tag for placing in classes /interfaces -->
                                    <placement>t</placement>
                                    <head>Provides part of the Tuscany SPI for Extension Developers by specialization of this class/interface
                                    </head>
                                </tag>
                                <tag>
                                    <name>tuscany.spi.extension.asclient</name>
                                    <!-- extension spi by client access tag for placing in classes / interfaces. The term client here is used
                                    in the OO design sense of any class that calls the methods of another is a client of the latter -->
                                    <placement>t</placement>
                                    <head>Provides part of the Tuscany SPI for Extension Developers by calling methods on this interface/class.</head>
                                </tag>
                                <tag>
                                    <name>tuscany.spi.extension</name>
                                    <!-- extension spi indicator for overviews, packages -->
                                    <placement>a</placement>
                                    <head>Elements of the Tuscany SPI for Extension developers are provided.</head>
                                </tag>
                            </tags>

 

                            <groups>
                                <!-- beware: this group stanza results in a grouping of pages that contains a superset of the spi, until we complete identification and then refactor out non spi code from listed packages-->
                                <group>
                                    <title>Extension Developer's SPIs (Work in Progress)</title>
                                    <packages>
org.apache.tuscany.sca.assembly:org.apache.tuscany.sca.assembly.builder:org.apache.tuscany.sca.assembly.impl:org.apache.tuscany.sca.assembly.xml:org.apache.tuscany.sca.common.http:org.apache.tuscany.sca.common.xml:org.apache.tuscany.sca.common.xml.dom:org.apache.tuscany.sca.common.xml.stax:org.apache.tuscany.sca.context:org.apache.tuscany.sca.contribution:org.apache.tuscany.sca.contribution.namespace:org.apache.tuscany.sca.contribution.processor:org.apache.tuscany.sca.contribution.resolver:org.apache.tuscany.sca.core:org.apache.tuscany.sca.core.assembly:org.apache.tuscany.sca.core.factory:org.apache.tuscany.sca.core.invocation:org.apache.tuscany.sca.core.scope:org.apache.tuscany.sca.data.collection:org.apache.tuscany.sca.databinding:org.apache.tuscany.sca.databinding.impl:org.apache.tuscany.sca.databinding.javabeans:org.apache.tuscany.sca.databinding.xml:org.apache.tuscany.sca.extensibility:org.apache.tuscany.sca.host.http:org.apache.tuscany.sca.interfacedef:org.apache.tuscany.sca.interfacedef.impl:org.apache.tuscany.sca.interfacedef.util:org.apache.tuscany.sca.interfacedef.wsdl:org.apache.tuscany.sca.invocation:org.apache.tuscany.sca.monitor:org.apache.tuscany.sca.policy:org.apache.tuscany.sca.policy.authentication.token:org.apache.tuscany.sca.policy.security:org.apache.tuscany.sca.policy.util:org.apache.tuscany.sca.provider:org.apache.tuscany.sca.runtime:org.apache.tuscany.sca.web.javascript:org.apache.tuscany.sca.work:org.apache.tuscany.sca.xsd</packages>
                                </group>
                            </groups>  <!-- -->
                        </configuration>
                    </plugin>
              </plugins>
           </build>
        </profile>

        <profile>
            <id>base</id>
            <modules>
                <module>modules/assembly</module>
                <module>modules/assembly-xml</module>
                <module>modules/assembly-xsd</module>
                <module>modules/binding-hazelcast-runtime</module>
                <module>modules/binding-sca-runtime</module>
                <module>modules/binding-ws</module>
                <module>modules/binding-ws-wsdlgen</module>
                <module>modules/binding-ws-runtime-jaxws</module>
                <module>modules/binding-ws-runtime-jaxws-ri</module>
                <module>modules/binding-jms</module>
                <module>modules/binding-jms-runtime</module>
                <module>modules/builder</module>
                <module>modules/common-java</module>
                <module>modules/common-xml</module>
                <module>modules/contribution</module>
                <module>modules/core</module>
                <module>modules/core-databinding</module>
                <module>modules/core-spi</module>
                <module>modules/databinding</module>
                <module>modules/databinding-jaxb</module>
                <module>modules/deployment</module>
                <module>modules/domain-node</module>
                <module>modules/domain-hazelcast</module>
                <module>modules/extensibility</module>
                <module>modules/host-http</module>
                <module>modules/host-jetty</module>
                <module>modules/host-webapp</module>
                <module>modules/implementation-java</module>
                <module>modules/implementation-java-runtime</module>
                <module>modules/implementation-web</module>
                <module>modules/implementation-web-runtime</module>
                <module>modules/interface-java</module>
                <module>modules/interface-java-jaxws</module>
                <module>modules/interface-wsdl</module>
                <module>modules/launcher</module>
                <module>modules/monitor</module>
                <module>modules/interface-wsdl</module>
                <module>modules/node-api</module>
                <module>modules/node-impl</module>
                <module>modules/policy-security</module>
                <module>modules/sca-api</module>
                <module>modules/sca-client-impl</module>
                <module>modules/wink</module>
                <module>modules/xsd</module>
                <module>testing/compliance-tests</module>
            </modules>
        </profile>
        <profile>
            <id>jms</id>
            <modules>
                <module>modules/binding-jms</module>
                <module>modules/binding-jms-runtime</module>
                <module>samples/webapps/helloworld-jms</module>
                <module>testing/itest/jms</module>
            </modules>
        </profile>

<!-- END - WHAT ARE THE FOLLOWING PROFILES FOR? -->

        <profile>
           <id>fast</id>
            <modules>
                <module>modules</module>
                <module>samples</module>
                <module>testing/itest</module>
                <module>features</module>
                <module>distribution</module>
                <module>maven/archetypes</module>
                <!-- module>testing/compliance-tests</module -->
            </modules>
           <build>
              <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.5</version>
                    <configuration>
                        <includes>
                            <include>**/*TestCase.java</include>
                        </includes>
                        <reportFormat>brief</reportFormat>
                        <useFile>false</useFile>
                        <forkMode>once</forkMode>
                        <argLine>-ea -Xmx256m</argLine>
                        <parallel>classes</parallel>
                    </configuration>
                </plugin>
              </plugins>
           </build>
        </profile>
    </profiles>
 

    <build>
        <defaultGoal>install</defaultGoal>

        <resources>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
<!--
            <resource>
                <directory>${notice.dir}</directory>
                <targetPath>META-INF</targetPath>
                <filtering>true</filtering>
                <includes>
                    <include>LICENSE</include>
                    <include>NOTICE</include>
                    <include>README</include>
                </includes>
            </resource>
            <resource>
                <directory>${basedir}/META-INF</directory>
                <targetPath>META-INF</targetPath>
                <includes>
                    <include>MANIFEST.MF</include>
                </includes>
            </resource>
            <resource>
                <directory>${basedir}/OSGI-INF</directory>
                <targetPath>OSGI-INF</targetPath>
                <includes>
                    <include>**/*</include>
                </includes>
            </resource>
-->
            <resource>
                <directory>${basedir}</directory>
                <includes>
                    <include>LICENSE</include>
                    <include>NOTICE</include>
                    <include>README</include>
                    <include>META-INF/**/*</include>
                    <include>OSGI-INF/**/*</include>
                </includes>
            </resource>



        </resources>
   <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>1.0-beta-1</version>
        <executions>
          <execution>
            <id>enforce-plugin-versions</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requirePluginVersions>
                   <unCheckedPluginList>org.apache.tuscany.maven.plugins:maven-tuscany-plugin</unCheckedPluginList>
                   <message>Best Practice is to always define released plugin versions!</message>
                   <banLatest>true</banLatest>
                   <banRelease>true</banRelease>
<!-- TUSCANY-3674 -->
                   <banSnapshots>false</banSnapshots>
                   <phases>clean,deploy,site</phases>
                   <additionalPlugins>
                   </additionalPlugins>
                </requirePluginVersions>
              </rules>
              <fail>false</fail>
            </configuration>
          </execution>
        </executions>
      </plugin>
   </plugins>

        <pluginManagement>
            <plugins>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>2.4</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-install-plugin</artifactId>
                    <version>2.3</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>2.0-beta-7</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>2.4.2</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>2.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>2.1-beta-1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-eclipse-plugin</artifactId>
                    <version>2.8</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-archetype-plugin</artifactId>
                    <version>2.0-alpha-5</version>
                </plugin>

                <!-- compiler plugin configuration -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>2.2</version>
                    <configuration>
                        <source>1.6</source>
                        <target>1.6</target>
                        <fork>true</fork>
                        <meminitial>512m</meminitial>
                        <maxmem>1024m</maxmem>
                    </configuration>
                </plugin>

                <!-- surefire plugin configuration -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.4.3</version>
                    <configuration>
                        <includes>
                            <include>**/*TestCase.java</include>
                        </includes>
                        <reportFormat>brief</reportFormat>
<!--
                        <useFile>false</useFile>
                        <forkMode>once</forkMode>
                        <argLine>-ea -Xmx756m -Xms756m -XX:MaxPermSize=512m</argLine>
-->
                    </configuration>
                </plugin>

                <!-- jar plugin configuration -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>2.1</version>
                    <configuration>
                        <archive>
                            <manifestEntries>
                                <Extension-Name>${project.artifactId}</Extension-Name>
                                <Specification-Title>${name}</Specification-Title>
                                <Specification-Vendor>The Apache Software Foundation</Specification-Vendor>
                                <Specification-Version>${version}</Specification-Version>
                                <Implementation-Title>${name}</Implementation-Title>
                                <Implementation-Vendor-Id>org.apache</Implementation-Vendor-Id>
                                <Implementation-Vendor>The Apache Software Foundation</Implementation-Vendor>
                                <Implementation-Version>${version}</Implementation-Version>
                            </manifestEntries>
                         </archive>
                    </configuration>
                </plugin>

                <!-- code coverage check plugin configuration -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-clover-plugin</artifactId>
                    <configuration>
                        <jdk>1.6</jdk>
                    </configuration>
                </plugin>

                <!-- ant plugin global configuration -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <version>1.3</version>

                    <dependencies>
                        <dependency>
                            <groupId>org.apache.ant</groupId>
                            <artifactId>ant-trax</artifactId>
                            <version>1.7.1</version>
                        </dependency>
                        <!-- this JDk dependency is a workaround for Maven bug - http://jira.codehaus.org/browse/MNG-1323  -->
                        <dependency>
                            <groupId>sun.jdk</groupId>
                            <artifactId>tools</artifactId>
                            <version>1.6</version>
                            <scope>system</scope>
                            <systemPath>${tools.jar}</systemPath>
                            <optional>true</optional>
                        </dependency>
                    </dependencies>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-release-plugin</artifactId>
                    <version>2.0-beta-8</version>
                    <configuration>
                        <tagBase>https://svn.apache.org/repos/asf/tuscany/sca-java-2.x/tags</tagBase>
                        <useReleaseProfile>false</useReleaseProfile>
                        <preparationGoals>clean install</preparationGoals>
                        <goals>deploy</goals>
                        <arguments>-Prelease,deploy</arguments>
                        <autoVersionSubmodules>true</autoVersionSubmodules>
                    </configuration>
                </plugin>

            </plugins>
        </pluginManagement>
    </build>

    <reporting>
        <plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>2.6.1</version>
				<configuration>
					<maxmemory>1024m</maxmemory>
					<tags>
						<tag>
							<name>tuscany.spi.extension.inheritfrom</name>
							<!-- extension spi by inheritance tag for placing in classes /interfaces -->
							<placement>t</placement>
							<head>Provides part of the Tuscany SPI for Extension Developers by specialization of this class/interface
							</head>
						</tag>
						<tag>
							<name>tuscany.spi.extension.asclient</name>
							<!-- extension spi by client access tag for placing in classes / interfaces. The term client here is used
							in the OO design sense of any class that calls the methods of another is a client of the latter -->
							<placement>t</placement>
							<head>Provides part of the Tuscany SPI for Extension Developers by calling methods on this interface/class.</head>
						</tag>
						<tag>
							<name>tuscany.spi.extension</name>
							<!-- extension spi indicator for overviews, packages -->
							<placement>a</placement>
							<head>Elements of the Tuscany SPI for Extension developers are provided.</head>
						</tag>
					</tags>

 
					<groups>
                                                <!-- beware: this group stanza results in a grouping of pages that contains a superset of the spi, until we complete identification and then refactor out non spi code from listed packages-->
						<group>
						  <title>Extension Developer's SPIs (Work in Progress)</title>
                            <packages>
org.apache.tuscany.sca.assembly:org.apache.tuscany.sca.assembly.builder:org.apache.tuscany.sca.assembly.impl:org.apache.tuscany.sca.assembly.xml:org.apache.tuscany.sca.common.http:org.apache.tuscany.sca.common.xml:org.apache.tuscany.sca.common.xml.dom:org.apache.tuscany.sca.common.xml.stax:org.apache.tuscany.sca.context:org.apache.tuscany.sca.contribution:org.apache.tuscany.sca.contribution.namespace:org.apache.tuscany.sca.contribution.processor:org.apache.tuscany.sca.contribution.resolver:org.apache.tuscany.sca.core:org.apache.tuscany.sca.core.assembly:org.apache.tuscany.sca.core.factory:org.apache.tuscany.sca.core.invocation:org.apache.tuscany.sca.core.scope:org.apache.tuscany.sca.data.collection:org.apache.tuscany.sca.databinding:org.apache.tuscany.sca.databinding.impl:org.apache.tuscany.sca.databinding.javabeans:org.apache.tuscany.sca.databinding.xml:org.apache.tuscany.sca.extensibility:org.apache.tuscany.sca.host.http:org.apache.tuscany.sca.interfacedef:org.apache.tuscany.sca.interfacedef.impl:org.apache.tuscany.sca.interfacedef.util:org.apache.tuscany.sca.interfacedef.wsdl:org.apache.tuscany.sca.invocation:org.apache.tuscany.sca.monitor:org.apache.tuscany.sca.policy:org.apache.tuscany.sca.policy.authentication.token:org.apache.tuscany.sca.policy.security:org.apache.tuscany.sca.policy.util:org.apache.tuscany.sca.provider:org.apache.tuscany.sca.runtime:org.apache.tuscany.sca.web.javascript:org.apache.tuscany.sca.work:org.apache.tuscany.sca.xsd</packages> 
						</group>
					</groups>  <!-- -->
				</configuration>
			</plugin>
		</plugins>
    </reporting>

</project>
