<?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>jar</packaging>

    <groupId>org.apache.myfaces.extensions.cdi.core</groupId>
    <artifactId>myfaces-extcdi-core-api</artifactId>

    <name>MyFaces Extensions-CDI Core-API</name>

    <parent>
        <groupId>org.apache.myfaces.extensions.cdi.core</groupId>
        <artifactId>core-project</artifactId>
        <version>1.0.0-SNAPSHOT</version>
    </parent>

    <build>
        <resources>
            <resource>
                <directory>src/main/config</directory>
                <includes>
                    <include>**/*xml</include>
                </includes>
                <targetPath>/META-INF</targetPath>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>LICENSE.txt</include>
                    <include>NOTICE.txt</include>
                </includes>
                <targetPath>/META-INF</targetPath>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*properties</include>
                </includes>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <inherited>true</inherited>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>

                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <configuration>
                    <!--
                       We need to exclude a few classes which do trickier stuff,
                       e.g. use implicit java5 VM guarantees.
                    -->
                    <excludes>
                        **/ProjectStage.java,
                        **/DefaultAnnotation.java
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>
