<?xml version="1.0" encoding="UTF-8"?>
<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">
  <parent>
    <groupId>org.apache.myfaces.core</groupId>
    <artifactId>myfaces-core-project</artifactId>
    <version>1.2.6</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.apache.myfaces.core</groupId>
  <artifactId>myfaces-impl</artifactId>
  <name>Apache MyFaces JSF-1.2 Core Impl</name>
  <description>
    The private implementation classes of the Apache MyFaces Core JSF/1.2 Implementation
  </description>
  <url>http://myfaces.apache.org/core12/myfaces-impl</url>
  <scm>
    <connection>scm:svn:http://svn.apache.org/repos/asf/myfaces/core/tags/1_2_6</connection>
    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/myfaces/core/tags/1_2_6</developerConnection>
    <url>http://svn.apache.org/repos/asf/myfaces/core/tags/1_2_6</url>
  </scm>
  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <excludes>
           <exclude>**/*.vm</exclude>
        </excludes>
      </resource>    
      <resource>
        <directory>src/main/resources-facesconfig</directory>
      </resource>
    </resources>
    <plugins>
      <plugin>
        <groupId>org.apache.myfaces.buildtools</groupId>
        <artifactId>myfaces-builder-plugin</artifactId>
        <version>1.0.2</version>
        <executions>          
          <execution>
            <id>makemyfacesmetadata</id>
            <configuration>
                <!-- Qdox 1.6.3 does not parse inner enums on classes
                so we have to exclude some files temporally. 
                Added linux case (paths start with /) to filter temporally too-->
                <includes>/**/*.java,**/*.java</includes>
                <excludes>/**/FacesCompositeELResolver.java,**/FacesCompositeELResolver.java</excludes>
            </configuration>
            <goals>
              <goal>build-metadata</goal>
            </goals>
          </execution>
          <execution>
            <id>makefacesconfig</id>
            <configuration>
                <templateFile>faces-config12.vm</templateFile>
                <xmlFile>META-INF/standard-faces-config.xml</xmlFile>
                <xmlBaseFile>src/main/conf/META-INF/standard-faces-config-base.xml</xmlBaseFile>
                <modelIds>
                    <modelId>myfaces-api</modelId>
                    <modelId>myfaces-impl</modelId>
                </modelIds>
            </configuration>
            <goals>
                <goal>make-config</goal>
            </goals>
          </execution>
          <execution>
            <id>make_tags</id>
            <configuration>
               <jsfVersion>12</jsfVersion>
               <templateTagName>tagClass12.vm</templateTagName>
               <packageContains>org.apache</packageContains>
               <typePrefix>javax.faces</typePrefix>
               <modelIds>
                   <modelId>myfaces-api</modelId>
               </modelIds>
            </configuration>            
            <goals>
                <goal>make-tags</goal>
            </goals>
          </execution>
          <execution>
            <id>makecoretld</id>
            <configuration>
                <xmlFile>META-INF/myfaces_core.tld</xmlFile>
                <xmlBaseFile>src/main/conf/META-INF/myfaces_core-base.tld</xmlBaseFile>
                <templateFile>myfaces_core12.vm</templateFile>
                <modelIds>
                    <modelId>myfaces-api</modelId>
                    <modelId>myfaces-impl</modelId>
                </modelIds>
                <params>
                    <shortname>f</shortname>
                    <uri>http://java.sun.com/jsf/core</uri>
                    <displayname>JSF core tag library.</displayname>
                    <description>This tag library implements the standard JSF core tags.</description>
                </params>
            </configuration>
            <goals>
                <goal>make-config</goal>
            </goals>
          </execution>
          <execution>
            <id>makehtmltld</id>
            <configuration>
                <xmlFile>META-INF/myfaces_html.tld</xmlFile>
                <xmlBaseFile>src/main/conf/META-INF/myfaces_html-base.tld</xmlBaseFile>
                <templateFile>myfaces_html12.vm</templateFile>
                <params>
                   <shortname>h</shortname>
                   <uri>http://java.sun.com/jsf/html</uri>
                   <displayname>JSF HTML tag library.</displayname>
                   <description>This tag library implements the standard JSF HTML tags.</description>
                </params>
                <modelIds>
                    <modelId>myfaces-api</modelId>
                </modelIds>
            </configuration>
            <goals>
                <goal>make-config</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-source-plugin</artifactId>
        <version>2.0.4</version>
        <executions>
          <execution>
            <id>attach-source</id>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.3.1</version>
        <configuration>
          <excludes>
            <exclude>**/JspStateManagerImplTest*</exclude>
          </excludes>
        </configuration>
      </plugin>

      <!-- 
      <plugin> -->
        <!--
          - Using the metadata from the "build" module, generate the JSP "h" taglib.
          -
          - The "f" taglib currently appears to instead be hand-coded; not sure why.
          - Maybe because the maven-faces-plugin only supports generating one taglib?
          - Or because people just haven't got around to defining the metadata and
          - templates for it in the build module?
          -->
          <!-- 
        <groupId>org.apache.myfaces.buildtools</groupId>
        <artifactId>myfaces-faces-plugin</artifactId>
        <configuration>
          <taglibs>
            <myfaces-html>http://java.sun.com/jsf/html</myfaces-html>
          </taglibs>
          <targetPath>META-INF/standard-faces-config.xml</targetPath>
          <packageContains>org.apache</packageContains>
          <converterPackageContains>javax.faces</converterPackageContains>
          <validatorPackageContains>javax.faces</validatorPackageContains>
          <skipApiOrBaseClasses>false</skipApiOrBaseClasses>
          <jsfVersion>1.2</jsfVersion>
          <force>true</force>
          <templateSourceDirectory>src/main/java-templates</templateSourceDirectory>
          <disableIdExpressions>true</disableIdExpressions>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>generate-faces-config</goal>
              <goal>generate-jsp-taglibs</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
               -->
    </plugins>
  </build>
  <profiles>
    <profile>
        <!-- This profile use a shared dependency rather than unpack the
        code directly. The ideal is that this profile is active when the
        version of this library is snapshot, but unfortunately there is
        no way to activate it (see http://jira.codehaus.org/browse/MNG-3826).
        Existing problems on maven 2.0.x architecture makes impossible do it.
        For now the solution is trigger it manually using the property
        -Ddev=true -->
        <id>add-shared-dependency</id>
        <activation>
            <property>
                <name>dev</name>
                <value>true</value>
            </property>
        </activation>
        <dependencies>
            <dependency>
                <groupId>org.apache.myfaces.shared</groupId>
                <artifactId>myfaces-shared-impl</artifactId>
                <version>${myfaces-shared.version}</version>
                <scope>compile</scope>
            </dependency>
        </dependencies>
    </profile>
    <profile>
        <id>unpack-shared</id>
        <activation>
            <property>
                <name>!dev</name>
            </property>
        </activation>
        <build>
            <plugins>
              <plugin>
                <!--
                  - The shared-impl project generates a modified version of the "shared" module
                  - source and classes. The result is a jar full of files in the "shared_impl"
                  - package that we can merge into the jar for this project.
                  -->
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>dependency-maven-plugin</artifactId>
                <version>1.0</version>
                <executions>
                  <execution>
                    <id>unpack-shared-impl</id>
                    <phase>process-classes</phase>
                    <goals>
                      <goal>unpack</goal>
                    </goals>
                    <configuration>
                      <artifactItems>
                        <artifactItem>
                          <groupId>org.apache.myfaces.shared</groupId>
                          <artifactId>myfaces-shared-impl</artifactId>
                          <version>${myfaces-shared.version}</version>
                        </artifactItem>
                      </artifactItems>
                      <outputDirectory>${project.build.directory}/classes</outputDirectory>
                    </configuration>
                  </execution>
                  <execution>
                    <id>unpack-shared-impl-sources</id>
                    <phase>process-sources</phase>
                    <goals>
                        <goal>unpack</goal>
                    </goals>
                    <configuration>
                        <artifactItems>
                            <artifactItem>
                                <groupId>org.apache.myfaces.shared</groupId>
                                <artifactId>myfaces-shared-impl</artifactId>
                                <version>${myfaces-shared.version}</version>
                                <classifier>sources</classifier>
                            </artifactItem>
                        </artifactItems>
                        <outputDirectory>${project.build.directory}/shared_sources</outputDirectory>
                    </configuration>
                  </execution>
                </executions>
              </plugin>
              <plugin>
                <!-- 
                  - Add the unpacked shared sources directory as source directory into the pom datastructure,
                  - so that the -source jar includes them too; every .class file in the jar should have its
                  - source in the -source jar.
                  -->  
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>1.0</version>
                <executions>
                  <execution>
                    <id>add-source</id>
                    <phase>process-sources</phase>
                    <goals>
                      <goal>add-source</goal>
                    </goals>
                    <configuration>
                      <sources>
                        <source>${project.build.directory}/shared_sources</source>
                      </sources>
                    </configuration>
                  </execution>
                </executions>
              </plugin>
            </plugins>
        </build>
    </profile>
    <profile>
      <!--
        - Whenever the full website is generated, the command
        -   mvn -Pgenerate-site site
        - should be used. This will create the "tlddoc" directory containing
        - nicely-formatted versions of the docs in the jsp taglib file, ie
        - docs on all the available tags and their properties.
        -->
      <id>generate-site</id>
      <reporting>
        <plugins>
          <plugin>
            <groupId>net.sourceforge.maven-taglib</groupId>
            <artifactId>maven-taglib-plugin</artifactId>
            <version>2.3.1</version>
            <configuration>
              <taglib.src.dir>${basedir}/target/classes/META-INF</taglib.src.dir>
              <tldDocDir>${basedir}/target/site/tlddoc</tldDocDir>
            </configuration>
          </plugin>
        </plugins>
      </reporting>
    </profile>
    <profile>
      <!--
        - Whenever files are deployed to a snapshot or release repository,
        -   mvn -Pgenerate-assembly deploy
        - should be used. This will create additional artifacts that are
        - useful but too time-consuming to create when just doing a local
        - "mvn install" operation.
        -->
      <id>generate-assembly</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>2.3</version>
            <executions>
              <execution>
                <id>attach-javadoc</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>net.sourceforge.maven-taglib</groupId>
            <artifactId>maven-taglib-plugin</artifactId>
            <version>2.3.1</version>
            <executions>
              <execution>
                <id>attach-tlddoc</id>
                <goals>
                  <goal>taglibdocjar</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <taglib.src.dir>${basedir}/target/classes/META-INF</taglib.src.dir>
              <tldDocDir>${basedir}/target/tlddoc</tldDocDir>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
  <dependencies>
    <dependency>
      <groupId>org.apache.myfaces.core</groupId>
      <artifactId>myfaces-api</artifactId>
      <version>${project.version}</version>
    </dependency>
    <!-- dependency>
      <groupId>org.apache.myfaces.core</groupId>
      <artifactId>myfaces-build</artifactId>
      <version>${project.version}</version>
      <scope>provided</scope>
    </dependency -->
    <dependency>
      <!-- this dependency will be packed together with the main artifact of this pom -->
      <groupId>org.apache.myfaces.shared</groupId>
      <artifactId>myfaces-shared-impl</artifactId>
      <version>${myfaces-shared.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>jstl</groupId>
      <artifactId>jstl</artifactId>
      <!-- version defined in parent -->
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.5</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.1</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>portlet-api</groupId>
      <artifactId>portlet-api</artifactId>
      <!-- version defined in parent -->
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-annotation_1.0_spec</artifactId>
      <!-- version defined in parent -->
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jpa_3.0_spec</artifactId>
      <version>1.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-ejb_3.0_spec</artifactId>
      <version>1.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>commons-collections</groupId>
      <artifactId>commons-collections</artifactId>
      <version>3.2</version>
    </dependency>
    <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <version>1.1.1</version>
    </dependency>
    <dependency>
      <groupId>commons-discovery</groupId>
      <artifactId>commons-discovery</artifactId>
      <version>0.4</version>
    </dependency>
    <dependency>
      <groupId>commons-codec</groupId>
      <artifactId>commons-codec</artifactId>
      <version>1.3</version>
    </dependency>
    <dependency>
      <groupId>commons-beanutils</groupId>
      <artifactId>commons-beanutils</artifactId>
      <version>1.7.0</version>
    </dependency>
    <dependency>
      <groupId>commons-digester</groupId>
      <artifactId>commons-digester</artifactId>
      <version>1.8</version>
    </dependency>
    <dependency>
      <groupId>org.apache.tomcat</groupId>
      <artifactId>catalina</artifactId>
      <version>6.0.13</version>
      <scope>provided</scope>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.myfaces.buildtools</groupId>
      <artifactId>myfaces-builder-annotations</artifactId> 
      <version>1.0.2</version>
      <scope>provided</scope>
    </dependency>
    
    <dependency>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
      <classifier>jdk15</classifier>
      <version>5.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.myfaces.core</groupId>
      <artifactId>myfaces-api</artifactId>
      <classifier>tests</classifier>
      <version>${project.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.shale</groupId>
      <artifactId>shale-test</artifactId>
      <version>1.0.4</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>cactus</groupId>
      <artifactId>cactus</artifactId>
      <version>13-1.7.2</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.easymock</groupId>
      <artifactId>easymock</artifactId>
      <version>2.3</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.easymock</groupId>
      <artifactId>easymockclassextension</artifactId>
      <version>2.3</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.google.code.guice</groupId>
      <artifactId>guice</artifactId>
      <version>1.0</version>
      <scope>provided</scope>
    </dependency>    
  </dependencies>
  <reporting>
    <plugins>
      <plugin>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>2.3</version>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>changelog-maven-plugin</artifactId>
        <version>2.0-beta-1</version>
        <reportSets>
          <reportSet>
            <id>dual-report</id>
            <configuration>
              <type>range</type>
              <range>30</range>
            </configuration>
            <reports>
              <report>changelog</report>
              <report>file-activity</report>
              <report>dev-activity</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>jxr-maven-plugin</artifactId>
        <version>2.0-beta-1</version>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>surefire-report-maven-plugin</artifactId>
        <version>2.0-beta-1</version>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>taglist-maven-plugin</artifactId>
        <version>2.1</version>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>cobertura-maven-plugin</artifactId>
        <version>2.2</version>
      </plugin>
      <!-- override PMD settings to set targetJdk -->
      <plugin>
        <artifactId>maven-pmd-plugin</artifactId>
        <version>2.2</version>
        <configuration>
          <rulesets>
            <ruleset>/rulesets/basic.xml</ruleset>
            <ruleset>/rulesets/unusedcode.xml</ruleset>
          </rulesets>
          <linkXref>true</linkXref>
          <minimumTokens>100</minimumTokens>
          <targetJdk>1.5</targetJdk>
          <excludes>
            <!-- these class make the PMD plugin crash (NullPointerException). -->
            <exclude>org/apache/myfaces/el/convert/PropertyResolverToELResolver.java</exclude>
            <exclude>org/apache/myfaces/el/PropertyResolverImpl.java</exclude>
          </excludes>
        </configuration>
        <reportSets>
          <reportSet>
            <reports>
              <report>pmd</report>
              <report>cpd</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
    </plugins>
  </reporting>

  <repositories>
     <repository>
       <id>tomcat</id>
       <url>http://tomcat.apache.org/dev/dist/m2-repository</url>
     </repository>
  </repositories>

  <properties>
    <myfaces-shared.version>3.0.5</myfaces-shared.version>
  </properties>
</project>
