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

  This is free software; you can redistribute it and/or modify it
  under the terms of the GNU Lesser General Public License as
  published by the Free Software Foundation; either version 2.1 of
  the License, or (at your option) any later version.

  This software is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with this software; if not, write to the Free
  Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  02110-1301 USA, or see the FSF site: http://www.fsf.org.
  -->
<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>com.github.albfernandez.richfaces</groupId>
        <artifactId>richfaces-components-parent</artifactId>
        <version>4.6.21.ayg</version>
        <relativePath>../pom.xml</relativePath>
    </parent>

    <artifactId>richfaces</artifactId>
    <name>RichFaces rich components</name>

    <properties>
        <faces.resources.dir>${project.build.outputDirectory}/META-INF/resources</faces.resources.dir>
        <resource.mappings.dir>${project.build.outputDirectory}/META-INF/richfaces</resource.mappings.dir>
        <version.richfaces.resource.plugin>4.6.21.ayg</version.richfaces.resource.plugin>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.jboss.spec</groupId>
            <artifactId>jboss-javaee-6.0</artifactId>
            <type>pom</type>
            <scope>provided</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.jboss.spec.javax.faces</groupId>
                    <artifactId>jboss-jsf-api_2.1_spec</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.jboss.spec.javax.el</groupId>
                    <artifactId>jboss-el-api_2.2_spec</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>com.github.albfernandez.richfaces</groupId>
            <artifactId>richfaces-core</artifactId>
        </dependency>
        <dependency>
            <groupId>com.github.albfernandez.richfaces</groupId>
            <artifactId>richfaces-a4j</artifactId>
        </dependency>

        <dependency>
            <groupId>org.jboss.spec.javax.el</groupId>
            <artifactId>jboss-el-api_3.0_spec</artifactId>
            <version>1.0.13.Final</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <scope>provided</scope>
            <optional>true</optional>
        </dependency>

	<dependency>
		<groupId>com.sun.xml.bind</groupId>
		<artifactId>jaxb-impl</artifactId>
		<version>2.2.11</version>
		<scope>test</scope>
	</dependency>

	<dependency>
		<groupId>com.sun.xml.bind</groupId>
		<artifactId>jaxb-core</artifactId>
		<version>2.2.11</version>
		<scope>test</scope>
	</dependency>

        <dependency>
            <groupId>xmlunit</groupId>
            <artifactId>xmlunit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.github.albfernandez.test-jsf</groupId>
            <artifactId>jsf-test-scriptunit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-all</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>com.github.albfernandez.richfaces.cdk</groupId>
                <artifactId>richfaces-cdk-maven-plugin</artifactId>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <!-- Travis build workaround -->
                    <argLine>${surefire.jvm.params}</argLine>
                </configuration>
            </plugin>
        </plugins>
        <pluginManagement>
            <plugins>
                <!--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.github.albfernandez.richfaces</groupId>
                                        <artifactId>richfaces-resource-optimizer-maven-plugin</artifactId>
                                        <versionRange>[4.5.2.Final,)</versionRange>
                                        <goals>
                                            <goal>process</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore></ignore>
                                    </action>
                                </pluginExecution>
                            </pluginExecutions>
                        </lifecycleMappingMetadata>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

    <profiles>
        <profile>
            <id>generate-optimized-resources</id>
            <activation>
                <property>
                    <name>!optimization.skip</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>com.github.albfernandez.richfaces</groupId>
                        <artifactId>richfaces-resource-optimizer-maven-plugin</artifactId>
                        <version>${version.richfaces.resource.plugin}</version>
                        <configuration>
                            <skins>
                                <skin>blueSky</skin>
                                <skin>classic</skin>
                                <skin>deepMarine</skin>
                                <skin>emeraldTown</skin>
                                <skin>japanCherry</skin>
                                <skin>ruby</skin>
                                <skin>wine</skin>
                                <skin>plain</skin>
                                <skin>DEFAULT</skin>
                                <skin>NULL</skin>
                            </skins>
                            <includedContentTypes>
                                <include>application/javascript</include>
                                <include>text/css</include>
                                <include>image/.+</include>
                            </includedContentTypes>
                            <fileNameMappings>
                                <property>
                                    <name>^.*showcase.*/([^/]+\.css)$</name>
                                    <value>org.richfaces.showcase.css/$1</value>
                                </property>
                                <property>
                                    <name>^.+/([^/]+\.(png|gif|jpg))$</name>
                                    <value>org.richfaces.images/$1</value>
                                </property>
                                <property>
                                    <name>^.+/([^/]+\.css)$</name>
                                    <value>org.richfaces.css/$1</value>
                                </property>
                            </fileNameMappings>
                            <excludedFiles>
                                <exclude>^javax.faces</exclude>
                                <exclude>^flot</exclude>
                                <exclude>org.richfaces:jquery.js</exclude>
                                <exclude>org.richfaces:jquery.min.js</exclude>
                                <exclude>com.jqueryui:jquery-ui.js</exclude>
                                <exclude>com.jqueryui:jquery-ui.min.js</exclude>
                                <exclude>^\Qorg.richfaces.renderkit.html.images.\E.*</exclude>
                                <exclude>^\Qorg.richfaces.renderkit.html.iconimages.\E.*</exclude>
                                <exclude>^\Qorg.richfaces.ckeditor\E</exclude>
                                <!-- ignore already generated resources -->
                                <exclude>^\Qorg.richfaces.staticResource\E</exclude>
                            </excludedFiles>
                        </configuration>
                        <executions>
                            <!-- Static -->
                            <execution>
                                <id>static-resources</id>
                                <goals>
                                    <goal>process</goal>
                                </goals>
                                <configuration>
                                    <compress>false</compress>
                                    <resourcesOutputDir>${faces.resources.dir}/org.richfaces.staticResource/${project.version}/Static/</resourcesOutputDir>
                                    <staticResourceMappingFile>${resource.mappings.dir}/optimizedResourcesMapping/Static.properties</staticResourceMappingFile>
                                    <staticResourcePrefix>org.richfaces.staticResource/${project.version}/Static/</staticResourcePrefix>
                                </configuration>
                            </execution>

                            <!-- Compressed -->
                            <execution>
                                <id>compressed-resources</id>
                                <goals>
                                    <goal>process</goal>
                                </goals>
                                <configuration>
                                    <compress>true</compress>
                                    <resourcesOutputDir>${faces.resources.dir}/org.richfaces.staticResource/${project.version}/Compressed/</resourcesOutputDir>
                                    <staticResourceMappingFile>${resource.mappings.dir}/optimizedResourcesMapping/Compressed.properties</staticResourceMappingFile>
                                    <staticResourcePrefix>org.richfaces.staticResource/${project.version}/Compressed/</staticResourcePrefix>
                                </configuration>
                            </execution>

                            <!-- Packed -->
                            <execution>
                                <id>packed-resources</id>
                                <goals>
                                    <goal>process</goal>
                                </goals>
                                <configuration>
                                    <pack>packed</pack>
                                    <compress>false</compress>
                                    <resourcesOutputDir>${faces.resources.dir}/org.richfaces.staticResource/${project.version}/Packed/</resourcesOutputDir>
                                    <staticResourceMappingFile>${resource.mappings.dir}/optimizedResourcesMapping/Packed.properties</staticResourceMappingFile>
                                    <staticResourcePrefix>org.richfaces.staticResource/${project.version}/Packed/</staticResourcePrefix>
                                    <excludedFiles>
                                        <exclude>^javax.faces</exclude>
                                        <exclude>^flot</exclude>
                                        <exclude>^\Qorg.richfaces.renderkit.html.images.\E.*</exclude>
                                        <exclude>^\Qorg.richfaces.renderkit.html.iconimages.\E.*</exclude>
                                        <exclude>^\Qorg.richfaces.ckeditor\E</exclude>
                                        <exclude>^\Qorg.richfaces.staticResource\E</exclude>
                                        <exclude>^org\.richfaces:jquery\.js$</exclude>
                                    </excludedFiles>
                                </configuration>
                            </execution>
                            <execution>
                                <id>resources-excluded-from-packaging</id>
                                <goals>
                                    <goal>process</goal>
                                </goals>
                                <configuration>
                                    <compress>false</compress>
                                    <resourcesOutputDir>${faces.resources.dir}/org.richfaces.staticResource/${project.version}/Packed/</resourcesOutputDir>
                                    <staticResourceMappingFile>${resource.mappings.dir}/optimizedResourcesMapping/Packed.properties</staticResourceMappingFile>
                                    <staticResourcePrefix>org.richfaces.staticResource/${project.version}/Packed/</staticResourcePrefix>
                                    <includedFiles>
                                        <include>^org\.richfaces:jquery\.js$</include>
                                    </includedFiles>
                                </configuration>
                            </execution>

                            <!-- PackedCompressed -->
                            <execution>
                                <id>packed-compressed-resources</id>
                                <goals>
                                    <goal>process</goal>
                                </goals>
                                <configuration>
                                    <pack>packed</pack>
                                    <compress>true</compress>
                                    <resourcesOutputDir>${faces.resources.dir}/org.richfaces.staticResource/${project.version}/PackedCompressed/</resourcesOutputDir>
                                    <staticResourceMappingFile>${resource.mappings.dir}/optimizedResourcesMapping/PackedCompressed.properties</staticResourceMappingFile>
                                    <staticResourcePrefix>org.richfaces.staticResource/${project.version}/PackedCompressed/</staticResourcePrefix>
                                    <excludedFiles>
                                        <exclude>^javax.faces</exclude>
                                        <exclude>^flot</exclude>
                                        <exclude>^\Qorg.richfaces.renderkit.html.images.\E.*</exclude>
                                        <exclude>^\Qorg.richfaces.renderkit.html.iconimages.\E.*</exclude>
                                        <exclude>^\Qorg.richfaces.ckeditor\E</exclude>
                                        <exclude>^\Qorg.richfaces.staticResource\E</exclude>
                                        <exclude>^org\.richfaces:jquery\.js$</exclude>
                                    </excludedFiles>
                                </configuration>
                            </execution>
                            <execution>
                                <id>compressed-resources-excluded-from-packaging</id>
                                <goals>
                                    <goal>process</goal>
                                </goals>
                                <configuration>
                                    <compress>true</compress>
                                    <resourcesOutputDir>${faces.resources.dir}/org.richfaces.staticResource/${project.version}/PackedCompressed/</resourcesOutputDir>
                                    <staticResourceMappingFile>${resource.mappings.dir}/optimizedResourcesMapping/PackedCompressed.properties</staticResourceMappingFile>
                                    <staticResourcePrefix>org.richfaces.staticResource/${project.version}/PackedCompressed/</staticResourcePrefix>
                                    <includedFiles>
                                        <include>^org\.richfaces:jquery\.js$</include>
                                    </includedFiles>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <!-- Release -->
        <profile>
            <id>release</id>
            <build>
                <plugins>
                    <!-- JavaDoc -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <configuration>
							<source>7</source>
							<links>
		                        <link>https://docs.oracle.com/javase/7/docs/api/</link>
		                    </links>
						</configuration>
                        <executions>
                            <execution>
                                <id>generate-javadoc</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>

                    <!-- VDL DOC -->
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>exec-maven-plugin</artifactId>
                        <version>1.3.2</version>
                        <executions>
                            <execution>
                                <id>generate-vdldoc</id>
                                <phase>prepare-package</phase>
                                <goals>
                                    <goal>exec</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration>
                            <executable>java</executable>
                            <arguments>
                                <argument>-jar</argument>
                                <argument>${settings.localRepository}/org/omnifaces/vdldoc/${version.vdldoc}/vdldoc-${version.vdldoc}.jar</argument>
                                <argument>-d</argument>
                                <argument>${project.build.directory}/vdldoc</argument>
                                <argument>-windowtitle</argument>
                                <argument>${project.name} ${version.richfaces} VDL Documentation</argument>
                                <argument>-doctitle</argument>
                                <argument>${project.name} ${version.richfaces} VDL Documentation</argument>
                                <argument>${project.build.directory}/generated-sources/main/resources/META-INF/rich.taglib.xml</argument>
                            </arguments>
                        </configuration>
                        <dependencies>
                            <dependency>
                                <groupId>org.omnifaces</groupId>
                                <artifactId>vdldoc</artifactId>
                                <version>${version.vdldoc}</version>
                            </dependency>
                        </dependencies>
                    </plugin>
 
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <configuration>
                            <descriptors>
                                   <descriptor>src/main/xml/assembler-vdldoc.xml</descriptor>
                            </descriptors>
                        </configuration>
                        <executions>
                            <execution>
                                <id>richfaces-rich-vdldoc-assembly</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>single</goal>
                                </goals>
                                <configuration>
                                    <descriptor>${project.basedir}/src/main/xml/assembler-vdldoc.xml</descriptor>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                     
                </plugins>
            </build>
        </profile>
    </profiles>

</project>
