<?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>
    <parent>
        <groupId>org.apache.openwebbeans</groupId>
        <artifactId>openwebbeans</artifactId>
        <version>1.2.7</version>
        <relativePath>../pom.xml</relativePath>
    </parent>

    <artifactId>samples</artifactId>
    <packaging>pom</packaging>
    <name>OWB Samples</name>
    <description>Apache OpenWebBeans Samples contains samples project for openwebbeans.</description>

    <properties>
        <deploy.skip>false</deploy.skip>
        <myfaces2.version>2.0.7</myfaces2.version>
    </properties>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.tomcat.maven</groupId>
                    <artifactId>tomcat6-maven-plugin</artifactId>
                    <version>2.2</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.tomcat.maven</groupId>
                    <artifactId>tomcat7-maven-plugin</artifactId>
                    <version>2.2</version>
                </plugin>
            </plugins>
        </pluginManagement>

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-deploy-plugin</artifactId>
                <configuration>
                    <skip>${deploy.skip}</skip> <!-- we don't deploy our samples upstream -->
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.0.2</version>
                <configuration>
                    <archiveClasses>true</archiveClasses>
                    <archive>
                        <!-- Do not include META-INF/maven to avoid long file problems on windows -->
                        <addMavenDescriptor>false</addMavenDescriptor>
                    </archive>

                    <!--
                    HACK: Include legal files explicity, otherwise they will end up in the wrong path
                          or in another jar file in the war.

                    NOTE: targetPath is broken for webResources (as documented)
                    -->
                    <webResources>
                        <resource>
                            <directory>.</directory>
                            <targetPath>META-INF</targetPath>
                            <includes>
                                <include>LICENSE</include>
                                <include>NOTICE</include>
                            </includes>
                        </resource>
                    </webResources>
                    <archive>
                        <manifestEntries>
                            <Specification-Title>${project.name}</Specification-Title>
                            <Specification-Version>${project.version}</Specification-Version>
                            <Specification-Vendor>${project.organization.name}</Specification-Vendor>
                            <Implementation-Title>${project.name}</Implementation-Title>
                            <Implementation-Version>${project.version}</Implementation-Version>
                            <Implementation-Vendor>${project.organization.name}</Implementation-Vendor>
                            <Implementation-Vendor-Id>org.apache</Implementation-Vendor-Id>
                        </manifestEntries>
                        <!-- add the generated manifest to the war -->
                        <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>

                    </archive>

                </configuration>
            </plugin>
            
        </plugins>
    </build>
    <modules>
        <module>guess</module>
        <module>conversation-sample</module>
        <module>jsf2sample</module>
        <module>reservation</module>
        <module>tomcat-sample</module>
        <module>tomcat7-sample</module>
        <module>standalone-sample</module>
    </modules>
</project>
