blob: c6c6cfdbf0d3d5836bb136aaca70e32617dac769 [file] [log] [blame]
<?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">
<parent>
<groupId>org.apache.myfaces.core</groupId>
<artifactId>myfaces-core-project</artifactId>
<version>1.2.13-SNAPSHOT</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/branches/1.2.x/impl</connection>
<developerConnection>scm:svn:https://svn.apache.org/repos/asf/myfaces/core/branches/1.2.x/impl</developerConnection>
<url>http://svn.apache.org/repos/asf/myfaces/core/branches/1.2.x/impl</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>
<!-- myfaces-build-plugin - we generate a lot of stuff with this plugin (see executions) -->
<plugin>
<groupId>org.apache.myfaces.buildtools</groupId>
<artifactId>myfaces-builder-plugin</artifactId>
<executions>
<execution>
<id>makemyfacesmetadata</id>
<configuration>
<sourceDirectories>
<dir>${basedir}/src/main/java</dir>
<dir>${project.build.directory}/shared_sources</dir>
</sourceDirectories>
</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> -->
<!--
- 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>
-->
<!-- configure manifest.mf for jar -->
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>2.2</version>
<configuration>
<archive>
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
</plugin>
<!-- run test-cases -->
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.5</version>
<configuration>
<excludes>
<exclude>**/JspStateManagerImplTest*</exclude>
</excludes>
</configuration>
</plugin>
<!-- create OSGI-ready manifest.mf -->
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.1.0</version>
<executions>
<execution>
<id>bundle-manifest</id>
<phase>process-classes</phase>
<goals>
<goal>manifest</goal>
</goals>
<configuration>
<instructions>
<Bundle-SymbolicName>org.apache.myfaces.core.impl</Bundle-SymbolicName>
<Bundle-Classpath>.</Bundle-Classpath>
<Build-Jdk>${java.version}</Build-Jdk>
<Implementation-Title>${project.name}</Implementation-Title>
<Implementation-Version>${project.version}</Implementation-Version>
<Implementation-Vendor>The Apache Software Foundation</Implementation-Vendor>
<Implementation-Vendor-Id>${project.groupId}</Implementation-Vendor-Id>
<Export-Package>
*;version="${project.version}"
</Export-Package>
<Import-Package>
!org.apache.myfaces.*,
com.google.inject;version="[1.0.0, 2.0.0)";resolution:=optional,
javax.annotation,
javax.crypto,
javax.crypto.spec,
javax.ejb;resolution:=optional,
javax.el;version="[1.0.0, 3.0.0)",
javax.naming,
javax.persistence;version="[1.0.0, 2.0.0)";resolution:=optional,
javax.portlet;version="[1.0.0, 2.0.0)";resolution:=optional,
javax.servlet;version="[2.5.0, 3.0.0)",
javax.servlet.http;version="[2.5.0, 3.0.0)",
javax.servlet.jsp;version="[2.1.0, 3.0.0)",
javax.servlet.jsp.jstl.core;version="[1.1.2, 2.0.0)",
javax.servlet.jsp.tagext;version="[2.1.0, 3.0.0)",
javax.servlet.annotation;resolution:=optional,
javax.xml.parsers,
org.apache;resolution:=optional,
org.apache.commons.beanutils;version="[1.8.3, 2.0.0)",
org.apache.commons.codec.binary;version="[1.3.0, 2.0.0)",
org.apache.commons.collections.map;version="[3.2.0, 4.0.0)",
org.apache.commons.digester;version="[1.8.0, 2.0.0)",
org.apache.commons.discovery;version="[0.4.0, 1.0.0)",
org.apache.commons.discovery.resource;version="[0.4.0, 1.0.0)",
org.apache.commons.discovery.resource.names;version="[0.4.0, 1.0.0)",
org.apache.commons.discovery.tools;version="[0.4.0, 1.0.0)",
org.apache.commons.logging;version="[1.1.1, 2.0.0)",
org.w3c.dom,
org.xml.sax,
org.xml.sax.helpers,
org.apache.jasper.compiler;resolution:=optional,
org.apache.jasper.el;resolution:=optional,
org.apache.el;resolution:=optional,
org.apache.tomcat;resolution:=optional,
javax.faces.*;version="${project.version}",
*
</Import-Package>
</instructions>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<!--
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
-->
<profile>
<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>
<scope>compile</scope> <!-- otherwise it is scope=provided -->
</dependency>
</dependencies>
</profile>
<!-- standard unpacking of shared-impl -->
<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.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.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>
<!-- we need to include META-INF/resources and META-INF/internal-resources -->
<excludes>META-INF/DEPENDENCIES,META-INF/LICENSE,META-INF/NOTICE,META-INF/MANIFEST.MF</excludes>
</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>
<excludes>META-INF/**</excludes>
</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-shared</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>
<!--
- Whenever the full website is generated, the command
- mvn -Pgenerate-site -Pgenerate-tlddoc 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.
-->
<profile>
<id>generate-site</id>
<build>
<plugins>
<!-- Generate content for custom tagdoc report -->
<plugin>
<groupId>org.apache.myfaces.buildtools</groupId>
<artifactId>myfaces-builder-plugin</artifactId>
<executions>
<execution>
<id>site-tagdoc-content</id>
<configuration>
<modelIds>
<modelId>myfaces-api</modelId>
<modelId>myfaces-impl</modelId>
</modelIds>
<taglibs>
<f>http://java.sun.com/jsf/core</f>
<h>http://java.sun.com/jsf/html</h>
</taglibs>
</configuration>
<goals>
<goal>tagdoc-content</goal>
</goals>
</execution>
<execution>
<id>site-web-config</id>
<configuration>
<templateFile>xdoc-web-config.vm</templateFile>
<outputDirectory>${project.build.directory}/generated-site/xdoc</outputDirectory>
<xmlFile>webconfig.xml</xmlFile>
<modelIds>
<modelId>myfaces-api</modelId>
<modelId>myfaces-impl</modelId>
</modelIds>
</configuration>
<goals>
<goal>make-config</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>net.sourceforge.maven-taglib</groupId>
<artifactId>maven-taglib-plugin</artifactId>
<version>2.4</version>
<configuration>
<taglib.src.dir>${basedir}/target/classes/META-INF</taglib.src.dir>
<tldDocDir>${basedir}/target/site/tlddoc</tldDocDir>
</configuration>
</plugin>
<!-- trigger tagdoc-index report -->
<plugin>
<groupId>org.apache.myfaces.buildtools</groupId>
<artifactId>myfaces-builder-plugin</artifactId>
<reportSets>
<reportSet>
<configuration>
<modelIds>
<modelId>myfaces-api</modelId>
<modelId>myfaces-impl</modelId>
</modelIds>
<taglibs>
<f>http://java.sun.com/jsf/core</f>
<h>http://java.sun.com/jsf/html</h>
</taglibs>
</configuration>
<reports>
<report>tagdoc-index</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
</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.
-->
<profile>
<id>generate-assembly</id>
<activation>
<property>
<name>performRelease</name>
<value>true</value>
</property>
</activation>
<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.4</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>
<!-- check Java 1.5 -->
<profile>
<id>checkJDK</id>
<activation>
<property>
<name>performRelease</name>
<value>true</value>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.jvnet</groupId>
<artifactId>animal-sniffer</artifactId>
<version>1.2</version>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
<configuration>
<signature>
<groupId>org.jvnet.animal-sniffer</groupId>
<artifactId>java1.5</artifactId>
<version>1.0</version>
</signature>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<!-- TODO jakobk: update to codehaus animal-sniffer (is in maven-central)! -->
<!-- plugin is only in java.net -->
<pluginRepositories>
<pluginRepository>
<id>java.net.repo</id>
<name>java.net repository</name>
<url>http://download.java.net/maven/2/</url>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<dependencies>
<!-- NOTE that all versions and scopes are defined in the parent dependencyManagement section -->
<!-- myfaces-api -->
<dependency>
<groupId>org.apache.myfaces.core</groupId>
<artifactId>myfaces-api</artifactId>
</dependency>
<!-- dependency>
<groupId>org.apache.myfaces.core</groupId>
<artifactId>myfaces-build</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency -->
<!-- this dependency will be packed together with the main artifact of this pom -->
<dependency>
<groupId>org.apache.myfaces.shared</groupId>
<artifactId>myfaces-shared-impl</artifactId>
</dependency>
<!-- Servlet 2.5 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</dependency>
<!-- JSP 2.1 -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
</dependency>
<!-- JSTL 1.2 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>portlet-api</groupId>
<artifactId>portlet-api</artifactId>
<!-- version defined in parent -->
<scope>provided</scope>
</dependency>
<!-- annotations 1.0 (javax.annotation.*) -->
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-annotation_1.0_spec</artifactId>
</dependency>
<!-- jpa 3.0 - needed in AllAnnotationLifecycleProvider -->
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jpa_3.0_spec</artifactId>
<optional>true</optional> <!-- optional does not completely work in dependencyManagement (MNG-1630) -->
</dependency>
<!-- ejb 3.0 - needed in AllAnnotationLifecycleProvider -->
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-ejb_3.0_spec</artifactId>
<optional>true</optional> <!-- optional does not completely work in dependencyManagement (MNG-1630) -->
</dependency>
<!-- builder-annotations like @JSFWebConfigParam -->
<dependency>
<groupId>org.apache.myfaces.buildtools</groupId>
<artifactId>myfaces-builder-annotations</artifactId>
</dependency>
<!-- commons dependencies -->
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</dependency>
<dependency>
<groupId>commons-discovery</groupId>
<artifactId>commons-discovery</artifactId>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
</dependency>
<dependency>
<groupId>commons-digester</groupId>
<artifactId>commons-digester</artifactId>
</dependency>
<!-- tomcat 6.0.x support (LifecycleProvider) -->
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>catalina</artifactId>
<optional>true</optional> <!-- optional does not completely work in dependencyManagement (MNG-1630) -->
</dependency>
<!-- Google guice support (GuiceResolver) -->
<dependency>
<groupId>com.google.code.guice</groupId>
<artifactId>guice</artifactId>
<optional>true</optional> <!-- optional does not completely work in dependencyManagement (MNG-1630) -->
</dependency>
<!-- TEST DEPENDENCIES -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<classifier>jdk15</classifier>
</dependency>
<!-- test cases of myfaces-api -->
<dependency>
<groupId>org.apache.myfaces.core</groupId>
<artifactId>myfaces-api</artifactId>
<classifier>tests</classifier>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.shale</groupId>
<artifactId>shale-test</artifactId>
</dependency>
<dependency>
<groupId>cactus</groupId>
<artifactId>cactus</artifactId>
</dependency>
<!-- easymock -->
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
</dependency>
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymockclassextension</artifactId>
</dependency>
</dependencies>
<reporting>
<plugins>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-changelog-plugin</artifactId>
<version>2.2</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>
<artifactId>maven-jxr-plugin</artifactId>
<version>2.2</version>
</plugin>
<plugin>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>2.5</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>taglist-maven-plugin</artifactId>
<version>2.4</version>
</plugin>
<!-- override PMD settings to set targetJdk -->
<plugin>
<artifactId>maven-pmd-plugin</artifactId>
<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>
</project>