<?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 xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
  <modelVersion>4.0.0</modelVersion>

  <name>Apache MyFaces Trinidad API</name>
  <description>Public API for the Apache MyFaces Trinidad project</description>

  <parent>
    <groupId>org.apache.myfaces.trinidad</groupId>
    <artifactId>trinidad</artifactId>
    <version>2.2.1</version>
  </parent>

  <artifactId>trinidad-api</artifactId>
  <packaging>jar</packaging>
  
  <dependencies>

    <dependency>
      <groupId>org.apache.myfaces.trinidad</groupId>
      <artifactId>trinidad-build</artifactId>
    </dependency>
    
    <dependency>
        <groupId>org.apache.myfaces.buildtools</groupId>
        <artifactId>myfaces-builder-annotations</artifactId>
    </dependency>
    
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-servlet_3.0_spec</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jsp_2.1_spec</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-el_2.2_spec</artifactId>
    </dependency>

    <dependency>
      <groupId>javax.portlet</groupId>
      <artifactId>portlet-api</artifactId>
    </dependency>

    <dependency>
      <groupId>javax.validation</groupId>
      <artifactId>validation-api</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.myfaces.portlet-bridge</groupId>
      <artifactId>portlet-bridge-api</artifactId>
    </dependency>

    <!--dependency>
      <groupId>org.apache.myfaces.core</groupId>
      <artifactId>myfaces-api</artifactId>
      <scope>provided</scope>
    </dependency-->

    <dependency>
      <groupId>com.sun.faces</groupId>
      <artifactId>jsf-api</artifactId>
      <scope>provided</scope>
    </dependency>

    <!-- "test" scope dependencies -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.myfaces.test</groupId>
      <artifactId>myfaces-test22</artifactId>
    </dependency>

    <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
    </dependency>

    <dependency>
      <groupId>jmock</groupId>
      <artifactId>jmock</artifactId>
    </dependency>

    <dependency>
      <groupId>jmock</groupId>
      <artifactId>jmock-cglib</artifactId>
    </dependency>
     <dependency>
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-lang3</artifactId>
       <scope>test</scope>
     </dependency>

     <dependency>
       <groupId>commons-io</groupId>
       <artifactId>commons-io</artifactId>
       <scope>test</scope>
     </dependency> 

  </dependencies>

  <build>
    <plugins>
      <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>clirr-maven-plugin</artifactId>
         <version>2.8</version>
         <configuration>
           <minSeverity>error</minSeverity>
           <textOutputFile>${project.basedir}/target/clirr-runner.txt</textOutputFile>
           <failOnError>false</failOnError>
           <comparisonArtifacts>
             <comparisonArtifact>
               <groupId>org.apache.myfaces.trinidad</groupId>
               <artifactId>trinidad-api</artifactId>
               <version>2.0.0</version>
             </comparisonArtifact>
           </comparisonArtifacts>
         </configuration>
         <executions>
           <execution>
             <goals>
               <goal>check</goal>
             </goals>
             <phase>test-compile</phase>
           </execution>
         </executions>
       </plugin>

      <plugin>
        <groupId>org.apache.myfaces.trinidadbuild</groupId>
        <artifactId>maven-jdev-plugin</artifactId>
        <configuration>
          <projectHasTests>true</projectHasTests>
          <testSourceRoots>
            <file>${project.basedir}/src/test</file>
          </testSourceRoots>
        </configuration>
      </plugin>

      <!-- 
          To make the current version of maven available through a property (maven.version),
          the build-helper-maven-plugin can be used.
      -->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>1.5</version>
        <executions>
          <execution>
            <phase>validate</phase>
            <goals>
              <goal>maven-version</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
         <archive>
           <manifest>
             <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
             <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
           </manifest>
           <manifestEntries>
             <Maven-Version>${maven.version}</Maven-Version>
             <Java-Vendor>${java.vendor}</Java-Vendor>
             <Os-Name>${os.name}</Os-Name>
             <Os-Arch>${os.arch}</Os-Arch>
             <Os-Version>${os.version}</Os-Version>
           </manifestEntries>
         </archive>
       </configuration>
        <executions>
          <execution>
            <goals>
              <goal>test-jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.myfaces.trinidadbuild</groupId>
        <artifactId>maven-xrts-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>generate-sources</goal>
              <goal>generate-test-sources</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      
      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <configuration>
          <filtering>true</filtering>
        </configuration>
      </plugin>

      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <systemProperties>
            <property>
              <name>trinidad.clirr.golden</name>
              <value>${project.basedir}/src/test/clirr/clirr-runner.txt</value>
            </property>
            <property>
              <name>trinidad.clirr.compare</name>
              <value>${project.basedir}/target/clirr-runner.txt</value>
            </property>
          </systemProperties>
          <includes implementation="java.util.ArrayList">
            <include implementation="java.lang.String">**/*Test.java</include>
          </includes>
        </configuration>
      </plugin>

      <plugin>
          <groupId>org.apache.myfaces.buildtools</groupId>
          <artifactId>myfaces-builder-plugin</artifactId>
          <executions>
              <execution>
                  <goals>
                      <goal>build-metadata</goal>
                  </goals>
                  <configuration>
                      <inputFile>${project.basedir}/src/main/conf/META-INF/myfaces-core-2_0-metadata.xml</inputFile>
                      <readMavenFacesPluginMetadata>true</readMavenFacesPluginMetadata>
                  </configuration>
              </execution>
          </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.myfaces.trinidadbuild</groupId>
        <artifactId>maven-faces-plugin</artifactId>
        <configuration>
          <typePrefix>org.apache</typePrefix>
          <packageContains>org.apache</packageContains>
          <jsfVersion>${jsf-spec.version}</jsfVersion>
          <!--suppressListenerMethods>true</suppressListenerMethods-->
          <force>true</force>
          <generatedSourceDirectory>${project.build.directory}/generated-sources/maven-faces-plugin</generatedSourceDirectory>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>generate-components</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.myfaces.trinidadbuild</groupId>
        <artifactId>maven-i18n-plugin</artifactId>
        <configuration>
          <locale>en_US</locale>
          <force>true</force>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>generate-locale-elements</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-site-plugin</artifactId>
        <configuration>
          <reportPlugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-project-info-reports-plugin</artifactId>
            </plugin>

            <plugin>
              <groupId>org.apache.myfaces.trinidadbuild</groupId>
              <artifactId>maven-tagdoc-plugin</artifactId>
              <configuration>
                <taglibs>
                  <tr>http://myfaces.apache.org/trinidad</tr>
                  <trh>http://myfaces.apache.org/trinidad/html</trh>
                </taglibs>
              </configuration>
            </plugin>

            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-javadoc-plugin</artifactId>
              <configuration>
                <showPackage>false</showPackage>
                <showProtected>true</showProtected>
                <!-- we should look up the new URLs -->
                <!--links>
                  <link>http://download.oracle.com/javase/1.5.0/docs/api</link>
                  <link>http://download.oracle.com/javaee/1.4/api</link>
                  <link>http://download.oracle.com/docs/cd/E17802_01/j2ee/javaee/javaserverfaces/2.0/docs/api</link>
                  <link>http://download.oracle.com/javaee/5/api</link>
                </links-->
              </configuration>
            </plugin>

            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-jxr-plugin</artifactId>
            </plugin>

            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-changelog-plugin</artifactId>
              <configuration>
                <basedir>${basedir}</basedir>
              </configuration>
            </plugin>

            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-pmd-plugin</artifactId>
            </plugin>
          </reportPlugins>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <configuration>
          <excludes>
            <exclude>**/clirr-runner.txt</exclude>
            <!-- Sometimes added by jdev.  Should not ever be checked in. -->            
            <exclude>/src/webapp/</exclude>
          </excludes>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <!-- 
    This profile is for preparing a release....
  -->
  <profiles>
    <profile>
      <id>prepare-release</id>

      <activation>
        <property>
          <name>prepareRelease</name>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-javadoc-plugin</artifactId>
            <executions>
              <execution>
                <id>attach-javadocs</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    
    <!-- This adds further debugging information to the manifest.  Currently this is the svn revision number of the build.  -->
    <profile>
      <id>extended-manifest</id>
      
      <build>
        <plugins>
          <!-- 
            To make the current revision number, we use the buildnumber-maven-plugin.
          -->
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>buildnumber-maven-plugin</artifactId>
            <version>1.0-beta-4</version>
            <executions>
              <execution>
                <phase>validate</phase>
                <goals>
                  <goal>create</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <doCheck>false</doCheck>
              <doUpdate>false</doUpdate>
              <getRevisionOnlyOnce>true</getRevisionOnlyOnce>
              <buildNumberPropertyName>scm.revision</buildNumberPropertyName>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
              <archive>
                <manifestEntries>
                  <Revision>${scm.revision}</Revision>
                </manifestEntries>
              </archive>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
