<?xml version="1.0" encoding="UTF-8"?>
<!--
    JBoss, Home of Professional Open Source
    Copyright 2015, Red Hat, Inc. and/or its affiliates, and individual
    contributors by the @authors tag. See the copyright.txt in the
    distribution for a full listing of individual contributors.

    Licensed 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>

    <parent>
        <groupId>org.jboss</groupId>
        <artifactId>jboss-parent</artifactId>
       <version>25</version>
       <relativePath />
    </parent>
    <groupId>org.wildfly.quickstarts</groupId>
    <artifactId>quickstart-parent</artifactId>
    <version>12.0.0.Final</version>

    <packaging>pom</packaging>
    <name>${qs.name.prefix} Parent</name>
    <description>WildFly Quickstarts Parent</description>
    <url>http://www.jboss.org/jdf/quickstarts/get-started/</url>

    <licenses>
        <license>
            <name>Apache License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.html</url>
            <distribution>repo</distribution>
        </license>
    </licenses>

    <properties>
        <qs.name.prefix>WildFly Quickstart:</qs.name.prefix>
        <jboss.home.name>WILDFLY_HOME</jboss.home.name>
        <product.name>WildFly</product.name>
        <!-- A base list of dependency and plug-in version used in the various quick starts. -->
        <version.wildfly.maven.plugin>1.2.0.Final</version.wildfly.maven.plugin>

        <!-- other plug-in versions -->
        <version.com.mycyla.license>3.0</version.com.mycyla.license>

        <!-- Explicitly declaring the source encoding eliminates the following
            message: [WARNING] Using platform encoding (UTF-8 actually) to copy
            filtered resources, i.e. build is platform dependent! -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <version.spring.framework>4.3.14.RELEASE</version.spring.framework>
        <!-- EAP component version management BOM -->
        <version.server.bom>12.0.0.Final</version.server.bom>
        
        <version.jboss.spec.javaee.7.0>1.1.1.Final</version.jboss.spec.javaee.7.0>

        <version.jaxws-tools-maven-plugin>1.2.0.Final</version.jaxws-tools-maven-plugin>

        <!-- Other dependency versions -->
        <version.ro.isdc.wro4j>1.7.9</version.ro.isdc.wro4j>
        <httpclient.version>4.5.3</httpclient.version>
        <version.org.apache.commons.commons-lang3>3.5</version.org.apache.commons.commons-lang3>
        <version.h2db>1.4.193</version.h2db>
        <version.org.wildfly.checkstyle-config>1.0.6.Final</version.org.wildfly.checkstyle-config>
        <linkXRef>false</linkXRef>
    </properties>

    <dependencyManagement>
        <dependencies>
            <!-- Add H2 dependency for embedded testing database -->
            <dependency>
                <groupId>com.h2database</groupId>
                <artifactId>h2</artifactId>
                <version>${version.h2db}</version>
            </dependency>
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>2.5</version>
                <scope>compile</scope>
            </dependency>
            <dependency>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
                <version>1.2</version>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>${version.org.apache.commons.commons-lang3}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>${httpclient.version}</version>
            </dependency>
            <!-- JBoss distributes a complete set of Java EE APIs including a Bill
                of Materials (BOM). A BOM specifies the versions of a "stack" (or a collection)
                of artifacts. We use this here so that we always get the correct versions
                of artifacts. Here we use the jboss-eap-javaee7-with-tools stack (you can
                read this as the JBoss stack of the Java EE APIs, with some extras tools
                for your project, such as Arquillian for testing) -->
            <dependency>
                <groupId>org.wildfly.bom</groupId>
                <artifactId>wildfly-javaee7-with-tools</artifactId>
                <version>${version.server.bom}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!-- Define the version of the JBoss Java EE APIs we want to use -->
            <!-- JBoss distributes a complete set of Java EE APIs including
               a Bill of Materials (BOM). A BOM specifies the versions of a "stack" (or
               a collection) of artifacts. We use this here so that we always get the correct
               versions of artifacts. Here we use the jboss-javaee-7.0 stack (you can
               read this as the JBoss stack of the Java EE APIs). You can actually
               use this stack with any version of JBoss EAP that implements Java EE. -->
            <dependency>
                <groupId>org.jboss.spec</groupId>
                <artifactId>jboss-javaee-7.0</artifactId>
                <version>${version.jboss.spec.javaee.7.0}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

        </dependencies>
    </dependencyManagement>

    <!-- Activate the JBoss Enterprise Maven Repository.

        NOTE: Configuring the Maven repository in the pom.xml file is not a recommended procedure
        and is only done here to make it easier to use the quickstarts.

        For more information about how to configure Maven for your application,
        see the section entitled 'Use the Maven Repository'
        in the Development Guide for Red Hat JBoss Enterprise Application Platform located here:

        https://access.redhat.com/documentation/en/red-hat-jboss-enterprise-application-platform/
    -->
    <repositories>
        <repository>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <id>jboss-enterprise-maven-repository</id>
            <url>https://maven.repository.redhat.com/ga/</url>
        </repository>
        <repository>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <id>jboss-enterprise-maven-repository-ea</id>
            <url>https://maven.repository.redhat.com/earlyaccess/all/</url>
        </repository>
        <repository>
            <id>jboss-public-repository-group</id>
            <name>JBoss Public Maven Repository Group</name>
            <url>https://repository.jboss.org/nexus/content/groups/public/</url>
            <layout>default</layout>
            <releases>
                <enabled>true</enabled>
                <updatePolicy>never</updatePolicy>
            </releases>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>never</updatePolicy>
            </snapshots>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <id>jboss-enterprise-maven-repository</id>
            <url>https://maven.repository.redhat.com/ga/</url>
        </pluginRepository>
        <pluginRepository>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <id>jboss-enterprise-maven-repository-ea</id>
            <url>https://maven.repository.redhat.com/earlyaccess/all/</url>
        </pluginRepository>
        <pluginRepository>
            <id>jboss-public-repository-group</id>
            <name>JBoss Public Maven Repository Group</name>
            <url>https://repository.jboss.org/nexus/content/groups/public/</url>
            <layout>default</layout>
            <releases>
                <enabled>true</enabled>
                <updatePolicy>never</updatePolicy>
            </releases>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>never</updatePolicy>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>
    <build>
        <!-- Set the name of the WAR, used as the context root when the app is deployed. -->
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <plugin>
                <groupId>com.mycila</groupId>
                <artifactId>license-maven-plugin</artifactId>
                <version>${version.com.mycyla.license}</version>
                <configuration>
                    <header>${basedir}/dist/license.txt</header>
                    <aggregate>true</aggregate>
                    <strictCheck>true</strictCheck>
                    <excludes>
                        <exclude>target/**</exclude>
                        <exclude>.clover/**</exclude>
                        <exclude>**/*.sql</exclude>
                        <exclude>**/LICENSE*</exclude>
                        <exclude>**/license*</exclude>
                        <!-- Javascrip Libraries -->
                        <exclude>**/jquery*</exclude>
                        <exclude>**/angular*</exclude>
                        <exclude>**/qunit*</exclude>
                        <exclude>**/backbone*</exclude>
                        <exclude>**/lodash*</exclude>
                        <exclude>**/modernizr*</exclude>
                        <exclude>**/yepnope*</exclude>
                        <exclude>**/mobile-nav*</exclude>
                        <!--Other libraries -->
                        <exclude>**/*glyphicons*/**</exclude>
                        <exclude>**/*cordova*/**</exclude>
                    </excludes>
                    <encoding>UTF-8</encoding>
                    <headerDefinitions>
                        <headerDefinition>dist/headerdefinition.xml</headerDefinition>
                    </headerDefinitions>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
            </plugin>
        </plugins>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.wildfly.plugins</groupId>
                    <artifactId>wildfly-maven-plugin</artifactId>
                    <version>${version.wildfly.maven.plugin}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-ejb-plugin</artifactId>
                    <version>${version.ejb.plugin}</version>
                    <configuration>
                        <!-- Tell Maven we are using EJB -->
                        <ejbVersion>3.2</ejbVersion>
                    </configuration>
                </plugin>
                <!-- Checkstyle -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <version>${version.checkstyle.plugin}</version>
                    <configuration>
                        <configLocation>wildfly-checkstyle/checkstyle.xml</configLocation>
                        <includeTestSourceDirectory>true</includeTestSourceDirectory>
                        <sourceDirectories>
                            <directory>${project.build.sourceDirectory}</directory>
                        </sourceDirectories>
                        <resourceIncludes>**/*.properties,**/*.xml</resourceIncludes>
                        <includeTestResources>true</includeTestResources>
                        <includeResources>true</includeResources>
                        <consoleOutput>true</consoleOutput>
                        <failsOnError>true</failsOnError>
                        <failOnViolation>true</failOnViolation>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <groupId>org.wildfly.checkstyle</groupId>
                            <artifactId>wildfly-checkstyle-config</artifactId>
                            <version>${version.org.wildfly.checkstyle-config}</version>
                        </dependency>
                    </dependencies>
                    <executions>
                        <execution>
                            <id>check-style</id>
                            <phase>compile</phase>
                            <goals>
                                <goal>checkstyle</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
                <plugin>
                    <groupId>org.eclipse.m2e</groupId>
                    <artifactId>lifecycle-mapping</artifactId>
                    <version>1.0.0</version>
                    <configuration>
                        <lifecycleMappingMetadata>
                            <pluginExecutions>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>
                                            com.redhat.rcm.maven.plugin
                                        </groupId>
                                        <artifactId>
                                            buildmetadata-maven-plugin
                                        </artifactId>
                                        <versionRange>
                                            [1.7.0,)
                                        </versionRange>
                                        <goals>
                                            <goal>
                                                provide-buildmetadata
                                            </goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore></ignore>
                                    </action>
                                </pluginExecution>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>
                                            org.commonjava.maven.plugins
                                        </groupId>
                                        <artifactId>
                                            project-sources-maven-plugin
                                        </artifactId>
                                        <versionRange>
                                            [0.3,)
                                        </versionRange>
                                        <goals>
                                            <goal>archive</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore></ignore>
                                    </action>
                                </pluginExecution>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>
                                            org.jboss.ws.plugins
                                        </groupId>
                                        <artifactId>
                                            jaxws-tools-maven-plugin
                                        </artifactId>
                                        <versionRange>
                                            [1.2.0.Final,)
                                        </versionRange>
                                        <goals>
                                            <goal>wsconsume</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore></ignore>
                                    </action>
                                </pluginExecution>
                            </pluginExecutions>
                        </lifecycleMappingMetadata>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

    <profiles>
        <profile>
            <!-- All the modules that require nothing but JBoss Enterprise
                    Application Platform or JBoss EAP -->
            <id>default</id>
            <activation>
                <activeByDefault>true</activeByDefault>
                <property>
                    <name>default</name>
                    <value>!disabled</value>
                </property>
            </activation>
            <modules>
                <!-- All the modules that require nothing but JBoss Enterprise
                    Application Platform or JBoss EAP -->
                <module>app-client</module>
                <module>batch-processing</module>
                <module>bean-validation</module>
                <module>bean-validation-custom-constraint</module>
                <module>bmt</module>
                <module>cmt</module>
                <module>contacts-jquerymobile</module>
                <module>deltaspike-authorization</module>
                <module>deltaspike-beanbuilder</module>
                <module>deltaspike-projectstage</module>
                <module>ejb-asynchronous</module>
                <module>ejb-in-ear</module>
                <module>ejb-in-war</module>
                <module>ejb-multi-server</module>
                <module>ejb-security</module>
                <module>ejb-security-context-propagation</module>
                <module>ejb-security-jaas</module>
                <module>ejb-security-programmatic-auth</module>
                <module>ejb-throws-exception</module>
                <module>ejb-timer</module>
                <module>greeter</module>
                <module>ha-singleton-deployment</module>
                <module>ha-singleton-service</module>
                <module>helloworld</module>
                <module>helloworld-classfiletransformer</module>
                <module>helloworld-html5</module>
                <module>helloworld-jms</module>
                <module>helloworld-mbean</module>
                <module>helloworld-mdb</module>
                <module>helloworld-mdb-propertysubstitution</module>
                <module>helloworld-mutual-ssl</module>
                <module>helloworld-mutual-ssl-secured</module>
                <module>helloworld-rf</module>
                <module>helloworld-rs</module>
                <module>helloworld-singleton</module>
                <module>helloworld-ssl</module>
                <module>helloworld-ws</module>
                <module>hibernate4</module>
                <module>hibernate</module>
                <module>inter-app</module>
                <module>jaxrs-client</module>
                <module>jaxws-addressing</module>
                <module>jaxws-ejb</module>
                <module>jaxws-pojo</module>
                <module>jaxws-retail</module>
                <module>jsonp</module>
                <module>kitchensink</module>
                <module>kitchensink-angularjs</module>
                <module>kitchensink-ear</module>
                <module>kitchensink-jsp</module>
                <module>kitchensink-ml</module>
                <module>kitchensink-utjs-angularjs</module>
                <module>kitchensink-utjs-mustache</module>
                <module>logging</module>
                <module>logging-tools</module>
                <module>mail</module>
                <module>managed-executor-service</module>
                <module>messaging-clustering-singleton</module>
                <module>numberguess</module>
                <module>payment-cdi-event</module>
                <module>resteasy-jaxrs-client</module>
                <module>security-domain-to-domain</module>
                <module>servlet-async</module>
                <module>servlet-filterlistener</module>
                <module>servlet-security</module>
                <module>shopping-cart</module>
                <module>shrinkwrap-resolver</module>
                <module>spring-greeter</module>
                <module>spring-kitchensink-basic</module>
                <module>spring-kitchensink-springmvctest</module>
                <module>spring-resteasy</module>
                <module>tasks</module>
                <module>tasks-jsf</module>
                <module>tasks-rs</module>
                <module>temperature-converter</module>
                <module>thread-racing</module>
                <module>websocket-client</module>
                <module>websocket-endpoint</module>
                <module>websocket-hello</module>
                <module>wicket-ear</module>
                <module>wicket-war</module>
                <module>xml-jaxp</module>
            </modules>
        </profile>
        <profile>
            <!-- All the quickstarts that require Postgres to be running -->
            <id>requires-postgres</id>
            <activation>
                <activeByDefault>true</activeByDefault>
                <property>
                    <name>requires-postgres</name>
                    <value>!disabled</value>
                </property>
            </activation>
            <modules>
                <module>jts</module>
            </modules>
        </profile>
        <profile>
            <!-- All the quickstarts that have weird requirements around deployment that Maven can't handle -->
            <id>complex-dependencies</id>
            <activation>
                <activeByDefault>true</activeByDefault>
                <property>
                    <name>complex-dependencies</name>
                    <value>!disabled</value>
                </property>
            </activation>
            <modules>
                <module>ejb-remote</module>
                <module>resteasy-jaxrs-client</module>
                <module>jts</module>
            </modules>
        </profile>
        <profile>
            <!-- All the quickstarts that require the "standalone-full" profile
                to be in use -->
            <id>requires-full</id>
            <activation>
                <activeByDefault>true</activeByDefault>
                <property>
                    <name>requires-full</name>
                    <value>!disabled</value>
                </property>
            </activation>
            <modules>
                <module>helloworld-mbean</module>
                <module>helloworld-mdb</module>
                <module>helloworld-mdb-propertysubstitution</module>
                <module>jta-crash-rec</module>
            </modules>
        </profile>
        <profile>
            <!-- All the quickstarts that require the xts to be enabled -->
            <id>requires-xts</id>
            <activation>
                <activeByDefault>true</activeByDefault>
                <property>
                    <name>requires-xts</name>
                    <value>!disabled</value>
                </property>
            </activation>
            <modules>
                <module>wsat-simple</module>
                <module>wsba-coordinator-completion-simple</module>
                <module>wsba-participant-completion-simple</module>
            </modules>
        </profile>
        <profile>
            <id>functional-tests</id>
            <modules>
                <module>contacts-jquerymobile/functional-tests</module>
                <module>helloworld-html5/functional-tests</module>
                <module>kitchensink-angularjs/functional-tests</module>
                <module>spring-greeter/functional-tests</module>
                <module>spring-kitchensink-basic/functional-tests</module>
                <module>spring-kitchensink-springmvctest/functional-tests</module>
            </modules>
        </profile>
      
        <profile>
            <!-- An optional Arquillian testing profile that executes tests in your JBoss EAP instance.
                 This profile will start a new JBoss EAP instance, and execute the test, shutting it down when done.
                 Run with: mvn clean verify -Parq-managed -->
            <id>arq-managed</id>
            <dependencies>
                <dependency>
                    <groupId>org.wildfly.arquillian</groupId>
                    <artifactId>wildfly-arquillian-container-managed</artifactId>
                    <scope>test</scope>
                </dependency>
            </dependencies>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-failsafe-plugin</artifactId>
                        <version>${version.failsafe.plugin}</version>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>integration-test</goal>
                                    <goal>verify</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <!-- An optional Arquillian testing profile that executes tests in a remote JBoss EAP instance.
                 Run with: mvn clean verify -Parq-remote -->
            <id>arq-remote</id>
            <dependencies>
                <dependency>
                    <groupId>org.wildfly.arquillian</groupId>
                    <artifactId>wildfly-arquillian-container-remote</artifactId>
                    <scope>test</scope>
                </dependency>
            </dependencies>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-failsafe-plugin</artifactId>
                        <version>${version.failsafe.plugin}</version>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>integration-test</goal>
                                    <goal>verify</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>docs</id>
            <activation>
                <property>
                    <name>release</name>
                </property>
            </activation>
            <modules>
                <!-- not real maven projects, but here for centralized mgmt and docs -->
                <module>forge-from-scratch</module>
                <module>jts-distributed-crash-rec</module>
                <module>messaging-clustering</module>
            </modules>
            <build>
                <plugins>
              
                    <plugin>
                        <groupId>org.wildfly.maven.plugins</groupId>
                        <artifactId>quickstart-documentation-plugin</artifactId>
                        <version>2.0.0.Beta1</version>
                        <inherited>false</inherited>
                        <configuration>
                            <rootDirectory>.</rootDirectory>
                            <!--<targetDocument>${project.build.directory}/docs/README.md</targetDocument>-->
                            <targetDocument>README.adoc</targetDocument>
                        </configuration>
                        <executions>
                            <execution>
                                <id>generate-toc</id>
                                <phase>generate-resources</phase>
                                <goals>
                                    <goal>table-of-contents</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.asciidoctor</groupId>
                        <artifactId>asciidoctor-maven-plugin</artifactId>
                        <version>1.5.6</version>
                        <configuration>
                            <backend>html5</backend>
                            <attributes>
                                <artifactId>${project.artifactId}</artifactId>
                            </attributes>
                            <resources>
                                <resource>
                                    <directory>none</directory>
                                    <excludes>
                                        <exclude>**/*</exclude>
                                    </excludes>
                                </resource>
                            </resources>
                            <!--<baseDir>.</baseDir>-->
                            <doctype>article</doctype>
                            <sourceDirectory>.</sourceDirectory>
                            <sourceDocumentName>README.adoc</sourceDocumentName>
                            <outputFile>README.html</outputFile>
                            
                        </configuration>
                        <executions>
                            <execution>
                                <id>output-html</id>
                                <phase>generate-resources</phase>
                                <goals>
                                    <goal>process-asciidoc</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
             
                </plugins>
            </build>
        </profile>
        <profile>
            <id>adoc</id>
            <activation>
                <file>
                    <missing>README.adoc</missing>
                </file>
            </activation>
            <properties>
                <asciidoctor.skip>true</asciidoctor.skip>
            </properties>
        </profile>
        <profile>
            <id>dist</id>
            <activation>
                <property>
                    <name>release</name>
                </property>
            </activation>
            <modules>
                <module>dist</module>
            </modules>
        </profile>
    </profiles>
</project>
