<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>
    <groupId>org.apache.myfaces.extensions.scripting</groupId>
    <artifactId>extscript-myfaces20-bundle</artifactId>
    <packaging>jar</packaging>
    <name>MyFaces Extension Scripting MyFaces 2.0 convenience meta bundle</name>
    <version>1.0.3-SNAPSHOT</version>

    <description>
        The meta bundle bundeling all needed core runtimes
        for a full myfaces 2.0 build
    </description>

    <parent>
        <groupId>org.apache.myfaces.extensions.scripting</groupId>
        <artifactId>extscript-bundles</artifactId>
        <version>1.0.3-SNAPSHOT</version>
    </parent>

    <scm>
        <connection>scm:svn:http://svn.apache.org/repos/asf/myfaces/extensions/scripting/trunk/extscript-bundles/extscript-myfaces20-bundle</connection>
        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/myfaces/extensions/scripting/trunk/extscript-bundles/extscript-myfaces20-bundle</developerConnection>
        <url>http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/extscript-bundles/extscript-myfaces20-bundle</url>
    </scm>

    <dependencies>
        <dependency>
            <groupId>org.apache.myfaces.extensions.scripting</groupId>
            <artifactId>extscript-core</artifactId>
            <version>1.0.3-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.apache.myfaces.extensions.scripting</groupId>
            <artifactId>extscript-core-java6</artifactId>
            <version>1.0.3-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.apache.myfaces.extensions.scripting</groupId>
            <artifactId>extscript-myfaces2-extensions</artifactId>
            <version>1.0.3-SNAPSHOT</version>
        </dependency>
    </dependencies>

    <!-- we use the maven shade plugin to bundle our subprojects into bundles -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>1.3.1</version>
                <!--
                    todo use the shade plugin
                    to rename references from
                    util.shared_impl into impl
                -->
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <artifactSet>
                        <includes>
                            <artifact>org.apache.myfaces.extensions.scripting:extscript-core</artifact>
                            <artifact>org.apache.myfaces.extensions.scripting:extscript-core-java6</artifact>
                            <artifact>org.apache.myfaces.extensions.scripting:extscript-myfaces2-extensions</artifact>
                        </includes>
                    </artifactSet>
                </configuration>
            </plugin>
        </plugins>
    </build>


</project>
