#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, OpenWebBeans and MyFaces CODI</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 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>
        <openwebbeans.version>1.1.4</openwebbeans.version>
        <codi.version>1.0.5</codi.version>
    </properties>

    <build>
        <finalName>${artifactId}</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.5</source>
                    <target>1.5</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>

        <!-- Specifications -->
        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-jta_1.1_spec</artifactId>
            <version>1.1.1</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-interceptor_1.1_spec</artifactId>
            <version>1.0</version>
            <scope>provided</scope>
        </dependency>

        <!-- JSR-330 -->
        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-atinject_1.0_spec</artifactId>
            <version>1.0</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-jcdi_1.0_spec</artifactId>
            <version>1.0</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-validation_1.0_spec</artifactId>
            <version>1.1</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-jpa_1.0_spec</artifactId>
            <version>1.1.2</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>
        
        <dependency>
            <groupId>dom4j</groupId>
            <artifactId>dom4j</artifactId>
            <version>1.6.1</version>
        </dependency>

        <dependency>
            <groupId>org.apache.myfaces.extensions.cdi.core</groupId>
            <artifactId>myfaces-extcdi-core-api</artifactId>
            <version>${symbol_dollar}{codi.version}</version>
            <scope>provided</scope>
        </dependency>

        <!-- test dependencies -->
        <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>
                <dependency>
                    <groupId>org.apache.geronimo.specs</groupId>
                    <artifactId>geronimo-jta_1.1_spec</artifactId>
                    <version>1.1.1</version>
                    <scope>compile</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.geronimo.specs</groupId>
                    <artifactId>geronimo-interceptor_1.1_spec</artifactId>
                    <version>1.0</version>
                    <scope>compile</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.geronimo.specs</groupId>
                    <artifactId>geronimo-atinject_1.0_spec</artifactId>
                    <version>1.0</version>
                    <scope>compile</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.geronimo.specs</groupId>
                    <artifactId>geronimo-jcdi_1.0_spec</artifactId>
                    <version>1.0</version>
                    <scope>compile</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.geronimo.specs</groupId>
                    <artifactId>geronimo-validation_1.0_spec</artifactId>
                    <version>1.1</version>
                    <scope>compile</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.geronimo.specs</groupId>
                    <artifactId>geronimo-jpa_1.0_spec</artifactId>
                    <version>1.1.2</version>
                    <scope>compile</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.openwebbeans</groupId>
                    <artifactId>openwebbeans-impl</artifactId>
                    <version>${symbol_dollar}{openwebbeans.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.openwebbeans</groupId>
                    <artifactId>openwebbeans-jsf</artifactId>
                    <version>${symbol_dollar}{openwebbeans.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.openwebbeans</groupId>
                    <artifactId>openwebbeans-web</artifactId>
                    <version>${symbol_dollar}{openwebbeans.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.openwebbeans</groupId>
                    <artifactId>openwebbeans-spi</artifactId>
                    <version>${symbol_dollar}{openwebbeans.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.openwebbeans</groupId>
                    <artifactId>openwebbeans-resource</artifactId>
                    <version>${symbol_dollar}{openwebbeans.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <!-- MyFaces CODI -->
                <!-- the JSF independent core -->
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.core</groupId>
                    <artifactId>myfaces-extcdi-core-api</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.core</groupId>
                    <artifactId>myfaces-extcdi-core-impl</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <!-- the JSF-2.0 specific library, which includes the JSF-1.2 parts -->
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                    <artifactId>myfaces-extcdi-jsf20-module-api</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                    <artifactId>myfaces-extcdi-jsf20-module-impl</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <!-- the BV-1.0 specific library -->
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                    <artifactId>myfaces-extcdi-bv1-module-api</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                    <artifactId>myfaces-extcdi-bv1-module-impl</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <!-- CODI JPA-1.0 Module -->
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                    <artifactId>myfaces-extcdi-jpa1-module-api</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                    <artifactId>myfaces-extcdi-jpa1-module-impl</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <!-- CODI-I18N Message Module -->
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                    <artifactId>myfaces-extcdi-message-module-api</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                    <artifactId>myfaces-extcdi-message-module-impl</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <!-- CODI-Scripting Module -->
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                    <artifactId>myfaces-extcdi-scripting-module-api</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                    <artifactId>myfaces-extcdi-scripting-module-impl</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <!-- OPTIONAL: use the all-in-one jar instead of the individual CODI module dependencies -->
                <!--dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.bundles</groupId>
                    <artifactId>myfaces-extcdi-bundle-jsf20</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                    <scope>compile</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>
                            <dependency>
                                <groupId>org.apache.geronimo.specs</groupId>
                                <artifactId>geronimo-jta_1.1_spec</artifactId>
                                <version>1.1.1</version>
                                <scope>compile</scope>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.geronimo.specs</groupId>
                                <artifactId>geronimo-interceptor_1.1_spec</artifactId>
                                <version>1.0</version>
                                <scope>compile</scope>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.geronimo.specs</groupId>
                                <artifactId>geronimo-atinject_1.0_spec</artifactId>
                                <version>1.0</version>
                                <scope>compile</scope>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.geronimo.specs</groupId>
                                <artifactId>geronimo-jcdi_1.0_spec</artifactId>
                                <version>1.0</version>
                                <scope>compile</scope>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.geronimo.specs</groupId>
                                <artifactId>geronimo-validation_1.0_spec</artifactId>
                                <version>1.1</version>
                                <scope>compile</scope>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.geronimo.specs</groupId>
                                <artifactId>geronimo-jpa_1.0_spec</artifactId>
                                <version>1.1.2</version>
                                <scope>compile</scope>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.openwebbeans</groupId>
                                <artifactId>openwebbeans-impl</artifactId>
                                <version>${symbol_dollar}{openwebbeans.version}</version>
                                <scope>runtime</scope>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.openwebbeans</groupId>
                                <artifactId>openwebbeans-jsf</artifactId>
                                <version>${symbol_dollar}{openwebbeans.version}</version>
                                <scope>runtime</scope>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.openwebbeans</groupId>
                                <artifactId>openwebbeans-web</artifactId>
                                <version>${symbol_dollar}{openwebbeans.version}</version>
                                <scope>runtime</scope>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.openwebbeans</groupId>
                                <artifactId>openwebbeans-spi</artifactId>
                                <version>${symbol_dollar}{openwebbeans.version}</version>
                                <scope>runtime</scope>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.openwebbeans</groupId>
                                <artifactId>openwebbeans-resource</artifactId>
                                <version>${symbol_dollar}{openwebbeans.version}</version>
                                <scope>runtime</scope>
                            </dependency>
                            <!-- MyFaces CODI -->
                            <!-- the JSF independent core -->
                            <dependency>
                                <groupId>org.apache.myfaces.extensions.cdi.core</groupId>
                                <artifactId>myfaces-extcdi-core-api</artifactId>
                                <version>${symbol_dollar}{codi.version}</version>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.myfaces.extensions.cdi.core</groupId>
                                <artifactId>myfaces-extcdi-core-impl</artifactId>
                                <version>${symbol_dollar}{codi.version}</version>
                                <scope>runtime</scope>
                            </dependency>
                            <!-- the JSF-2.0 specific library, which includes the JSF-1.2 parts -->
                            <dependency>
                                <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                                <artifactId>myfaces-extcdi-jsf20-module-api</artifactId>
                                <version>${symbol_dollar}{codi.version}</version>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                                <artifactId>myfaces-extcdi-jsf20-module-impl</artifactId>
                                <version>${symbol_dollar}{codi.version}</version>
                                <scope>runtime</scope>
                            </dependency>
                            <!-- the BV-1.0 specific library -->
                            <dependency>
                                <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                                <artifactId>myfaces-extcdi-bv1-module-api</artifactId>
                                <version>${symbol_dollar}{codi.version}</version>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                                <artifactId>myfaces-extcdi-bv1-module-impl</artifactId>
                                <version>${symbol_dollar}{codi.version}</version>
                                <scope>runtime</scope>
                            </dependency>
                            <!-- CODI JPA-1.0 Module -->
                            <dependency>
                                <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                                <artifactId>myfaces-extcdi-jpa1-module-api</artifactId>
                                <version>${symbol_dollar}{codi.version}</version>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                                <artifactId>myfaces-extcdi-jpa1-module-impl</artifactId>
                                <version>${symbol_dollar}{codi.version}</version>
                                <scope>runtime</scope>
                            </dependency>
                            <!-- CODI-I18N Message Module -->
                            <dependency>
                                <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                                <artifactId>myfaces-extcdi-message-module-api</artifactId>
                                <version>${symbol_dollar}{codi.version}</version>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                                <artifactId>myfaces-extcdi-message-module-impl</artifactId>
                                <version>${symbol_dollar}{codi.version}</version>
                                <scope>runtime</scope>
                            </dependency>
                            <!-- CODI-Scripting Module -->
                            <dependency>
                                <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                                <artifactId>myfaces-extcdi-scripting-module-api</artifactId>
                                <version>${symbol_dollar}{codi.version}</version>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                                <artifactId>myfaces-extcdi-scripting-module-impl</artifactId>
                                <version>${symbol_dollar}{codi.version}</version>
                                <scope>runtime</scope>
                            </dependency>
                            <!-- OPTIONAL: use the all-in-one jar instead of the individual CODI module dependencies -->
                            <!--dependency>
                                <groupId>org.apache.myfaces.extensions.cdi.bundles</groupId>
                                <artifactId>myfaces-extcdi-bundle-jsf20</artifactId>
                                <version>${symbol_dollar}{codi.version}</version>
                                <scope>compile</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>
                <dependency>
                    <groupId>org.apache.geronimo.specs</groupId>
                    <artifactId>geronimo-jta_1.1_spec</artifactId>
                    <version>1.1.1</version>
                    <scope>compile</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.geronimo.specs</groupId>
                    <artifactId>geronimo-interceptor_1.1_spec</artifactId>
                    <version>1.0</version>
                    <scope>compile</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.geronimo.specs</groupId>
                    <artifactId>geronimo-atinject_1.0_spec</artifactId>
                    <version>1.0</version>
                    <scope>compile</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.geronimo.specs</groupId>
                    <artifactId>geronimo-jcdi_1.0_spec</artifactId>
                    <version>1.0</version>
                    <scope>compile</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.geronimo.specs</groupId>
                    <artifactId>geronimo-validation_1.0_spec</artifactId>
                    <version>1.1</version>
                    <scope>compile</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.geronimo.specs</groupId>
                    <artifactId>geronimo-jpa_1.0_spec</artifactId>
                    <version>1.1.2</version>
                    <scope>compile</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.openwebbeans</groupId>
                    <artifactId>openwebbeans-impl</artifactId>
                    <version>${symbol_dollar}{openwebbeans.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.openwebbeans</groupId>
                    <artifactId>openwebbeans-jsf</artifactId>
                    <version>${symbol_dollar}{openwebbeans.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.openwebbeans</groupId>
                    <artifactId>openwebbeans-web</artifactId>
                    <version>${symbol_dollar}{openwebbeans.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.openwebbeans</groupId>
                    <artifactId>openwebbeans-spi</artifactId>
                    <version>${symbol_dollar}{openwebbeans.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.openwebbeans</groupId>
                    <artifactId>openwebbeans-resource</artifactId>
                    <version>${symbol_dollar}{openwebbeans.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <!-- MyFaces CODI -->
                <!-- the JSF independent core -->
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.core</groupId>
                    <artifactId>myfaces-extcdi-core-api</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.core</groupId>
                    <artifactId>myfaces-extcdi-core-impl</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <!-- the JSF-2.0 specific library, which includes the JSF-1.2 parts -->
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                    <artifactId>myfaces-extcdi-jsf20-module-api</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                    <artifactId>myfaces-extcdi-jsf20-module-impl</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <!-- the BV-1.0 specific library -->
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                    <artifactId>myfaces-extcdi-bv1-module-api</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                    <artifactId>myfaces-extcdi-bv1-module-impl</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <!-- CODI JPA-1.0 Module -->
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                    <artifactId>myfaces-extcdi-jpa1-module-api</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                    <artifactId>myfaces-extcdi-jpa1-module-impl</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <!-- CODI-I18N Message Module -->
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                    <artifactId>myfaces-extcdi-message-module-api</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                    <artifactId>myfaces-extcdi-message-module-impl</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <!-- CODI-Scripting Module -->
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                    <artifactId>myfaces-extcdi-scripting-module-api</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                    <artifactId>myfaces-extcdi-scripting-module-impl</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <!-- OPTIONAL: use the all-in-one jar instead of the individual CODI module dependencies -->
                <!--dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.bundles</groupId>
                    <artifactId>myfaces-extcdi-bundle-jsf20</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                    <scope>compile</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>
                            <dependency>
                                <groupId>org.apache.geronimo.specs</groupId>
                                <artifactId>geronimo-jta_1.1_spec</artifactId>
                                <version>1.1.1</version>
                                <scope>compile</scope>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.geronimo.specs</groupId>
                                <artifactId>geronimo-interceptor_1.1_spec</artifactId>
                                <version>1.0</version>
                                <scope>compile</scope>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.geronimo.specs</groupId>
                                <artifactId>geronimo-atinject_1.0_spec</artifactId>
                                <version>1.0</version>
                                <scope>compile</scope>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.geronimo.specs</groupId>
                                <artifactId>geronimo-jcdi_1.0_spec</artifactId>
                                <version>1.0</version>
                                <scope>compile</scope>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.geronimo.specs</groupId>
                                <artifactId>geronimo-validation_1.0_spec</artifactId>
                                <version>1.1</version>
                                <scope>compile</scope>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.geronimo.specs</groupId>
                                <artifactId>geronimo-jpa_1.0_spec</artifactId>
                                <version>1.1.2</version>
                                <scope>compile</scope>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.openwebbeans</groupId>
                                <artifactId>openwebbeans-impl</artifactId>
                                <version>${symbol_dollar}{openwebbeans.version}</version>
                                <scope>runtime</scope>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.openwebbeans</groupId>
                                <artifactId>openwebbeans-jsf</artifactId>
                                <version>${symbol_dollar}{openwebbeans.version}</version>
                                <scope>runtime</scope>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.openwebbeans</groupId>
                                <artifactId>openwebbeans-web</artifactId>
                                <version>${symbol_dollar}{openwebbeans.version}</version>
                                <scope>runtime</scope>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.openwebbeans</groupId>
                                <artifactId>openwebbeans-spi</artifactId>
                                <version>${symbol_dollar}{openwebbeans.version}</version>
                                <scope>runtime</scope>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.openwebbeans</groupId>
                                <artifactId>openwebbeans-resource</artifactId>
                                <version>${symbol_dollar}{openwebbeans.version}</version>
                                <scope>runtime</scope>
                            </dependency>
                            <!-- MyFaces CODI -->
                            <!-- the JSF independent core -->
                            <dependency>
                                <groupId>org.apache.myfaces.extensions.cdi.core</groupId>
                                <artifactId>myfaces-extcdi-core-api</artifactId>
                                <version>${symbol_dollar}{codi.version}</version>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.myfaces.extensions.cdi.core</groupId>
                                <artifactId>myfaces-extcdi-core-impl</artifactId>
                                <version>${symbol_dollar}{codi.version}</version>
                                <scope>runtime</scope>
                            </dependency>
                            <!-- the JSF-2.0 specific library, which includes the JSF-1.2 parts -->
                            <dependency>
                                <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                                <artifactId>myfaces-extcdi-jsf20-module-api</artifactId>
                                <version>${symbol_dollar}{codi.version}</version>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                                <artifactId>myfaces-extcdi-jsf20-module-impl</artifactId>
                                <version>${symbol_dollar}{codi.version}</version>
                                <scope>runtime</scope>
                            </dependency>
                            <!-- the BV-1.0 specific library -->
                            <dependency>
                                <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                                <artifactId>myfaces-extcdi-bv1-module-api</artifactId>
                                <version>${symbol_dollar}{codi.version}</version>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                                <artifactId>myfaces-extcdi-bv1-module-impl</artifactId>
                                <version>${symbol_dollar}{codi.version}</version>
                                <scope>runtime</scope>
                            </dependency>
                            <!-- CODI JPA-1.0 Module -->
                            <dependency>
                                <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                                <artifactId>myfaces-extcdi-jpa1-module-api</artifactId>
                                <version>${symbol_dollar}{codi.version}</version>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                                <artifactId>myfaces-extcdi-jpa1-module-impl</artifactId>
                                <version>${symbol_dollar}{codi.version}</version>
                                <scope>runtime</scope>
                            </dependency>
                            <!-- CODI-I18N Message Module -->
                            <dependency>
                                <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                                <artifactId>myfaces-extcdi-message-module-api</artifactId>
                                <version>${symbol_dollar}{codi.version}</version>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                                <artifactId>myfaces-extcdi-message-module-impl</artifactId>
                                <version>${symbol_dollar}{codi.version}</version>
                                <scope>runtime</scope>
                            </dependency>
                            <!-- CODI-Scripting Module -->
                            <dependency>
                                <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                                <artifactId>myfaces-extcdi-scripting-module-api</artifactId>
                                <version>${symbol_dollar}{codi.version}</version>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                                <artifactId>myfaces-extcdi-scripting-module-impl</artifactId>
                                <version>${symbol_dollar}{codi.version}</version>
                                <scope>runtime</scope>
                            </dependency>
                            <!-- OPTIONAL: use the all-in-one jar instead of the individual CODI module dependencies -->
                            <!--dependency>
                                <groupId>org.apache.myfaces.extensions.cdi.bundles</groupId>
                                <artifactId>myfaces-extcdi-bundle-jsf20</artifactId>
                                <version>${symbol_dollar}{codi.version}</version>
                                <scope>compile</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>
                <dependency>
                    <groupId>org.apache.geronimo.specs</groupId>
                    <artifactId>geronimo-jta_1.1_spec</artifactId>
                    <version>1.1.1</version>
                    <scope>compile</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.geronimo.specs</groupId>
                    <artifactId>geronimo-interceptor_1.1_spec</artifactId>
                    <version>1.0</version>
                    <scope>compile</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.geronimo.specs</groupId>
                    <artifactId>geronimo-atinject_1.0_spec</artifactId>
                    <version>1.0</version>
                    <scope>compile</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.geronimo.specs</groupId>
                    <artifactId>geronimo-jcdi_1.0_spec</artifactId>
                    <version>1.0</version>
                    <scope>compile</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.geronimo.specs</groupId>
                    <artifactId>geronimo-validation_1.0_spec</artifactId>
                    <version>1.1</version>
                    <scope>compile</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.geronimo.specs</groupId>
                    <artifactId>geronimo-jpa_1.0_spec</artifactId>
                    <version>1.1.2</version>
                    <scope>compile</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.openwebbeans</groupId>
                    <artifactId>openwebbeans-impl</artifactId>
                    <version>${symbol_dollar}{openwebbeans.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.openwebbeans</groupId>
                    <artifactId>openwebbeans-jsf</artifactId>
                    <version>${symbol_dollar}{openwebbeans.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.openwebbeans</groupId>
                    <artifactId>openwebbeans-web</artifactId>
                    <version>${symbol_dollar}{openwebbeans.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.openwebbeans</groupId>
                    <artifactId>openwebbeans-spi</artifactId>
                    <version>${symbol_dollar}{openwebbeans.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.openwebbeans</groupId>
                    <artifactId>openwebbeans-resource</artifactId>
                    <version>${symbol_dollar}{openwebbeans.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <!-- MyFaces CODI -->
                <!-- the JSF independent core -->
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.core</groupId>
                    <artifactId>myfaces-extcdi-core-api</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.core</groupId>
                    <artifactId>myfaces-extcdi-core-impl</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <!-- the JSF-2.0 specific library, which includes the JSF-1.2 parts -->
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                    <artifactId>myfaces-extcdi-jsf20-module-api</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                    <artifactId>myfaces-extcdi-jsf20-module-impl</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <!-- the BV-1.0 specific library -->
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                    <artifactId>myfaces-extcdi-bv1-module-api</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                    <artifactId>myfaces-extcdi-bv1-module-impl</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <!-- CODI JPA-1.0 Module -->
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                    <artifactId>myfaces-extcdi-jpa1-module-api</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                    <artifactId>myfaces-extcdi-jpa1-module-impl</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <!-- CODI-I18N Message Module -->
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                    <artifactId>myfaces-extcdi-message-module-api</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                    <artifactId>myfaces-extcdi-message-module-impl</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <!-- CODI-Scripting Module -->
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                    <artifactId>myfaces-extcdi-scripting-module-api</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
                    <artifactId>myfaces-extcdi-scripting-module-impl</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                    <scope>runtime</scope>
                </dependency>
                <!-- OPTIONAL: use the all-in-one jar instead of the individual CODI module dependencies -->
                <!--dependency>
                    <groupId>org.apache.myfaces.extensions.cdi.bundles</groupId>
                    <artifactId>myfaces-extcdi-bundle-jsf20</artifactId>
                    <version>${symbol_dollar}{codi.version}</version>
                    <scope>compile</scope>
                </dependency-->
            </dependencies>
        </profile>

    </profiles>

</project>
