#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
<?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>
    <groupId>${groupId}</groupId>
    <artifactId>${artifactId}</artifactId>
    <packaging>war</packaging>
    <version>${version}</version>
    <name>${artifactId}</name>
    <description>A custom project using MyFaces 2.0 with Trinidad</description>
    <url>http://www.myorganization.org</url>

    <!-- Instructions 
      - Run using jetty 
          mvn clean jetty:run
          mvn clean -Dcontainer=jetty-mojarra jetty:run
          Set your browser to http://localhost:8080/${artifactId}
      - Run using tomcat
          mvn clean -Dcontainer=tomcat7 tomcat:run
          Set your browser to http://localhost:8080/${artifactId}
      - Run war using tomcat
          mvn clean -Dcontainer=tomcat7 tomcat:run-war
          Set your browser to http://localhost:8080/${artifactId}
      - Run war using jetty (remove <webApp> config inside plugin config first)
          mvn clean jetty:run-war
          mvn clean -Dcontainer=jetty-mojarra jetty:run-war
          Set your browser to http://localhost:8080
      - Build war and bundle JSF jars 
          mvn clean -Pbundle-myfaces install
          mvn clean -Pbundle-mojarra install
     -->

    <properties>
        <jsf-myfaces.version>2.1.7</jsf-myfaces.version>
        <jsf-mojarra.version>2.1.7</jsf-mojarra.version>        
        <jetty.maven.plugin.version>8.1.3.v20120416</jetty.maven.plugin.version>
        <trinidad.version>2.0.1</trinidad.version>        
    </properties>

    <build>
        <finalName>${artifactId}</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <!-- Project dependencies -->
    <dependencies>

        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-servlet_2.5_spec</artifactId>
            <version>1.2</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-el_2.2_spec</artifactId>
            <version>1.0.2</version>
            <scope>provided</scope>
        </dependency>
        
        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-annotation_1.0_spec</artifactId>
            <version>1.1.1</version>
            <scope>provided</scope>
        </dependency>
        
        <!-- JSF API: Add here as provided dependency and then add it
             on jetty-maven-plugin as compile/runtime dependency.
             The same goes for other JSF libraries. -->
        <dependency>
            <groupId>org.apache.myfaces.core</groupId>
            <artifactId>myfaces-api</artifactId>
            <version>${symbol_dollar}{jsf-myfaces.version}</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
            <scope>runtime</scope>
        </dependency>

        <!-- Apache Trinidad -->
        <dependency>
            <groupId>org.apache.myfaces.trinidad</groupId>
            <artifactId>trinidad-api</artifactId>
            <version>${symbol_dollar}{trinidad.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.myfaces.trinidad</groupId>
            <artifactId>trinidad-impl</artifactId>
            <version>${symbol_dollar}{trinidad.version}</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.8.2</version>
            <scope>test</scope>
        </dependency>

    </dependencies>

    <profiles>
        <profile>
            <id>bundle-myfaces</id>
            <activation>
                <property>
                    <name>jsf</name>
                    <value>myfaces</value>
                </property>
            </activation>
            <!-- Include MyFaces jars into the war -->
            <dependencies>
                <dependency>
                    <groupId>org.apache.myfaces.core</groupId>
                    <artifactId>myfaces-api</artifactId>
                    <version>${symbol_dollar}{jsf-myfaces.version}</version>
                    <scope>compile</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.myfaces.core</groupId>
                    <artifactId>myfaces-impl</artifactId>
                    <version>${symbol_dollar}{jsf-myfaces.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <!-- Apache Trinidad -->
                <dependency>
                    <groupId>org.apache.myfaces.trinidad</groupId>
                    <artifactId>trinidad-api</artifactId>
                    <version>${symbol_dollar}{trinidad.version}</version>
                    <scope>compile</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.myfaces.trinidad</groupId>
                    <artifactId>trinidad-impl</artifactId>
                    <version>${symbol_dollar}{trinidad.version}</version>
                    <scope>runtime</scope>
                </dependency>
            </dependencies>
        </profile>

        <profile>
            <!-- Plugin embedded jetty 8 container. 
                 Just running use:
                 mvn clean jetty:run
            -->
            <!-- For debugging use (attach debugger port 8000):
                 mvnDebug clean jetty:run
            -->
            <id>jettyConfig</id>
            <activation>
                <property>
                    <name>!container</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <!--This plugin allows to run the war using mvn jetty:run -->
                        <groupId>org.mortbay.jetty</groupId>
                        <artifactId>jetty-maven-plugin</artifactId>
                        <version>${symbol_dollar}{jetty.maven.plugin.version}</version>
                        <configuration>
                            <systemProperties>
                                <systemProperty>
                                    <!-- optional to use the ecj compiler -->
                                    <name>org.apache.jasper.compiler.disablejsr199</name>
                                    <value>true</value>
                                </systemProperty>
                            </systemProperties>
                            <webApp>
                                <contextPath>/${symbol_dollar}{artifactId}</contextPath>
                            </webApp>
                            <scanIntervalSeconds>5</scanIntervalSeconds>
                        </configuration>
                        <dependencies>
                           <!-- Tld scanning only works when JSF is included
                                as container dependency. Add other jsf libraries
                                here, so jetty:run goal can find and process them -->
                            <dependency>
                                <groupId>org.apache.myfaces.core</groupId>
                                <artifactId>myfaces-api</artifactId>
                                <version>${symbol_dollar}{jsf-myfaces.version}</version>
                                <scope>compile</scope>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.myfaces.core</groupId>
                                <artifactId>myfaces-impl</artifactId>
                                <version>${symbol_dollar}{jsf-myfaces.version}</version>
                                <scope>runtime</scope>
                            </dependency>
                            <!-- Apache Trinidad -->
                            <dependency>
                                <groupId>org.apache.myfaces.trinidad</groupId>
                                <artifactId>trinidad-api</artifactId>
                                <version>${symbol_dollar}{trinidad.version}</version>
                                <scope>compile</scope>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.myfaces.trinidad</groupId>
                                <artifactId>trinidad-impl</artifactId>
                                <version>${symbol_dollar}{trinidad.version}</version>
                                <scope>runtime</scope>
                            </dependency>
                        </dependencies>
                    </plugin>
                </plugins>
            </build>
        </profile>
        
        <profile>
            <id>bundle-mojarra</id>
            <activation>
                <property>
                    <name>jsf</name>
                    <value>mojarra</value>
                </property>
            </activation>
            <!-- Include Mojarra jars into the war -->
            <dependencies>
                <dependency>
                    <groupId>com.sun.faces</groupId>
                    <artifactId>jsf-api</artifactId>
                    <version>${symbol_dollar}{jsf-mojarra.version}</version>
                    <scope>compile</scope>
                </dependency>
                <dependency>
                    <groupId>com.sun.faces</groupId>
                    <artifactId>jsf-impl</artifactId>
                    <version>${symbol_dollar}{jsf-mojarra.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <!-- Apache Trinidad -->
                <dependency>
                    <groupId>org.apache.myfaces.trinidad</groupId>
                    <artifactId>trinidad-api</artifactId>
                    <version>${symbol_dollar}{trinidad.version}</version>
                    <scope>compile</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.myfaces.trinidad</groupId>
                    <artifactId>trinidad-impl</artifactId>
                    <version>${symbol_dollar}{trinidad.version}</version>
                    <scope>runtime</scope>
                </dependency>
            </dependencies>
            <repositories>
                <repository>
                    <id>java.net</id>
                    <url>http://download.java.net/maven/2</url>
                </repository>
            </repositories>
        </profile>

        <profile>
            <!-- Plugin embedded jetty 8 container. 
                 Just running use:
                 mvn clean -Dcontainer=jetty-mojarra jetty:run 
            -->
            <!-- For debugging use (attach debugger port 8000):
                 mvn clean -Dcontainer=jetty-mojarra jetty:run 
            -->
            <id>jettyConfig-mojarra</id>
            <activation>
                <property>
                    <name>container</name>
                    <value>jetty-mojarra</value>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <!--This plugin allows to run the war using mvn jetty:run -->
                        <groupId>org.mortbay.jetty</groupId>
                        <artifactId>jetty-maven-plugin</artifactId>
                        <version>${symbol_dollar}{jetty.maven.plugin.version}</version>
                        <configuration>
                            <systemProperties>
                                <systemProperty>
                                    <!-- optional to use the ecj compiler -->
                                    <name>org.apache.jasper.compiler.disablejsr199</name>
                                    <value>true</value>
                                </systemProperty>
                            </systemProperties>
                            <webApp>
                                <contextPath>/${symbol_dollar}{artifactId}</contextPath>
                            </webApp>
                            <scanIntervalSeconds>5</scanIntervalSeconds>
                        </configuration>
                        <dependencies>
                           <!-- Tld scanning only works when JSF is included
                                as container dependency. Add other jsf libraries
                                here, so jetty:run goal can find and process them -->
                           <dependency>
                               <groupId>com.sun.faces</groupId>
                               <artifactId>jsf-api</artifactId>
                               <version>${symbol_dollar}{jsf-mojarra.version}</version>
                               <scope>compile</scope>
                           </dependency>
                           <dependency>
                               <groupId>com.sun.faces</groupId>
                               <artifactId>jsf-impl</artifactId>
                               <version>${symbol_dollar}{jsf-mojarra.version}</version>
                               <scope>runtime</scope>
                           </dependency>
                            <!-- Apache Trinidad -->
                            <dependency>
                                <groupId>org.apache.myfaces.trinidad</groupId>
                                <artifactId>trinidad-api</artifactId>
                                <version>${symbol_dollar}{trinidad.version}</version>
                                <scope>compile</scope>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.myfaces.trinidad</groupId>
                                <artifactId>trinidad-impl</artifactId>
                                <version>${symbol_dollar}{trinidad.version}</version>
                                <scope>runtime</scope>
                            </dependency>
                        </dependencies>
                    </plugin>
                </plugins>
            </build>
            <repositories>
                <repository>
                    <id>java.net</id>
                    <url>http://download.java.net/maven/2</url>
                </repository>
            </repositories>
        </profile>
        
        <profile>
            <id>maven-tomcat7</id>
            <activation>
                <property>
                    <name>container</name>
                    <value>tomcat7</value>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                      <groupId>org.apache.tomcat.maven</groupId>
                      <artifactId>tomcat7-maven-plugin</artifactId>
                      <version>2.0-beta-1</version>
                    </plugin>
                </plugins>
            </build>
            <dependencies>
                <dependency>
                    <groupId>org.apache.myfaces.core</groupId>
                    <artifactId>myfaces-api</artifactId>
                    <version>${symbol_dollar}{jsf-myfaces.version}</version>
                    <scope>compile</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.myfaces.core</groupId>
                    <artifactId>myfaces-impl</artifactId>
                    <version>${symbol_dollar}{jsf-myfaces.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <!-- Apache Trinidad -->
                <dependency>
                    <groupId>org.apache.myfaces.trinidad</groupId>
                    <artifactId>trinidad-api</artifactId>
                    <version>${symbol_dollar}{trinidad.version}</version>
                    <scope>compile</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.myfaces.trinidad</groupId>
                    <artifactId>trinidad-impl</artifactId>
                    <version>${symbol_dollar}{trinidad.version}</version>
                    <scope>runtime</scope>
                </dependency>

            </dependencies>
        </profile>

    </profiles>

</project>
