<?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>
    <packaging>pom</packaging>
    <name>Apache MyFaces Extensions Validator Examples Assembly</name>
    <groupId>org.apache.myfaces.extensions.validator.examples</groupId>
    <artifactId>myfaces-extval-examples-assembly12</artifactId>

    <parent>
        <groupId>org.apache.myfaces.extensions.validator.examples</groupId>
        <artifactId>examples-project</artifactId>
        <version>2.0.6-SNAPSHOT</version>
    </parent>

    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>dependency-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-war</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>org.apache.myfaces.extensions.validator.examples</groupId>
                                    <artifactId>examples-hello_world</artifactId>
                                    <version>${project.version}</version>
                                    <type>war</type>	
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.apache.myfaces.extensions.validator.examples</groupId>
                                    <artifactId>examples-feature-set_01</artifactId>
                                    <version>${project.version}</version>
                                    <type>war</type>
                                </artifactItem>
                            </artifactItems>
                            <outputDirectory>${project.build.directory}/war</outputDirectory>
                        </configuration>
                    </execution>
                    <execution>
                        <id>copy-src</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>org.apache.myfaces.extensions.validator.examples</groupId>
                                    <artifactId>examples-hello_world</artifactId>
                                    <version>${project.version}</version>
                                    <type>java-source</type>    
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.apache.myfaces.extensions.validator.examples</groupId>
                                    <artifactId>examples-feature-set_01</artifactId>
                                    <version>${project.version}</version>
                                    <type>java-source</type>
                                </artifactItem>
                            </artifactItems>
                            <outputDirectory>${project.build.directory}/src</outputDirectory>
                        </configuration>
                    </execution>                    
                </executions>
            </plugin>

            <plugin>
                <!-- EXECUTE mvn package to generate assembly files -->
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.1</version>
                <executions>
                    <execution>
                        <id>make_assembly_src</id>
                        <phase>package</phase>
                        <goals>
                            <goal>assembly</goal>
                        </goals>
                        <configuration>
                            <descriptors>   
                                <descriptor>src/main/assembly/depsrc.xml</descriptor>
                            </descriptors>
                            <finalName>myfaces-extval-examples-${project.version}-src</finalName>
                            <appendAssemblyId>false</appendAssemblyId>
                            <outputDirectory>${project.build.directory}/out</outputDirectory>
                            <workDirectory>${project.build.directory}/work</workDirectory>
                        </configuration>                
                    </execution>
                    <execution>
                        <id>make_assembly_bin</id>
                        <phase>package</phase>
                        <goals>
                            <goal>assembly</goal>
                        </goals>
	                    <configuration>
	                        <descriptors>   
	                            <descriptor>src/main/assembly/dep.xml</descriptor>
	                        </descriptors>
	                        <finalName>myfaces-extval-examples-${project.version}</finalName>
	                        <outputDirectory>${project.build.directory}/out</outputDirectory>
	                        <workDirectory>${project.build.directory}/work</workDirectory>
	                    </configuration>                        
                    </execution>
                </executions>
            </plugin>
	    
            <plugin>
                <groupId>org.apache.myfaces.maven</groupId>
                <artifactId>wagon-maven-plugin</artifactId>
                <version>1.0.1</version>
                <configuration>
                    <id>myfaces-nightly-builds</id>
                    <url>scpexe://minotaur.apache.org/www/people.apache.org/builds/myfaces/nightly</url>
                    <inputDirectory>${project.build.directory}/out</inputDirectory>
                </configuration>
            </plugin>

        </plugins>

    </build>

</project>
