<?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>8</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.1-SNAPSHOT</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>
        <dojo.version>1.5.0</dojo.version>
        <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>
        <!-- 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.nexus</id>
            <name>Apache Nexus repository</name>
            <url>https://repository.apache.org/content/groups/public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
        </repository>
    </repositories>
    <pluginRepositories>
      <pluginRepository>
        <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>
      </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>
          <uniqueVersion>false</uniqueVersion>
       </snapshotRepository>
    </distributionManagement>

    <profiles>
        <!-- ====================================================================== -->
        <!-- Default profile                                                        -->
        <!-- ====================================================================== -->
        <profile>
            <id>default</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <modules>
                <module>maven/tuscany-maven-plugin</module>
                <module>maven/tuscany-diagram-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/tuscany-maven-plugin</module>
                <module>maven/tuscany-diagram-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>features/eclipse-pde</module>
            </modules>
           <build>
                <defaultGoal>org.apache.tuscany.sca:tuscany-bundle-plugin:eclipse</defaultGoal>
                <pluginManagement>
                <plugins>
                   <plugin> 
                       <groupId>org.apache.tuscany.sca</groupId> 
                       <artifactId>tuscany-bundle-plugin</artifactId> 
                       <version>1.0.8</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.sca:tuscany-bundle-plugin:eclipse</defaultGoal>
                <pluginManagement>
                <plugins>
                   <plugin> 
                       <groupId>org.apache.tuscany.sca</groupId> 
                       <artifactId>tuscany-bundle-plugin</artifactId> 
                       <version>1.0.8</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/tuscany-maven-plugin</module>
                <module>maven/tuscany-diagram-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</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/tuscany-maven-plugin</module>
                <module>maven/tuscany-diagram-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>hudson-deploy</id>
            <properties>
                <skipTests>true</skipTests>
                <buildZips>true</buildZips>
            </properties>
            <modules>
                <module>maven/tuscany-maven-plugin</module>
                <module>maven/archetypes</module>
                <module>modules</module>
                <!-- samples need to be included so that the bin distro includes the prebuilt contributions -->
                <module>samples</module>
                <module>distribution/all</module>
            </modules>
           <build>
              <defaultGoal>install</defaultGoal>
           </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</version>
        <executions>
          <execution>
            <id>enforce-plugin-versions</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requirePluginVersions>
                   <unCheckedPluginList>org.apache.tuscany.sca:tuscany-maven-plugin</unCheckedPluginList>
                   <message>Best Practice is to always define released plugin versions!</message>
                   <banLatest>true</banLatest>
                   <banRelease>true</banRelease>
                   <banSnapshots>true</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>${project.name}</Specification-Title>
                                <Specification-Vendor>The Apache Software Foundation</Specification-Vendor>
                                <Specification-Version>${project.version}</Specification-Version>
                                <Implementation-Title>${project.name}</Implementation-Title>
                                <Implementation-Vendor-Id>org.apache</Implementation-Vendor-Id>
                                <Implementation-Vendor>The Apache Software Foundation</Implementation-Vendor>
                                <Implementation-Version>${project.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.2.1</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>
