<?xml version="1.0" encoding="UTF-8"?>
<!--

    Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Distribution License v. 1.0, which is available at
    http://www.eclipse.org/org/documents/edl-v10.php.

    SPDX-License-Identifier: BSD-3-Clause

-->

<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.glassfish.jersey</groupId>
        <artifactId>project</artifactId>
        <version>3.0.0-SNAPSHOT</version>
    </parent>

    <licenses>
        <license>
            <name>Eclipse Distribution License v. 1.0</name>
            <url>http://www.eclipse.org/org/documents/edl-v10.php</url>
            <distribution>repo</distribution>
            <comments>Except for AngularJS, bootstrap.js, jQuery, jQuery Barcode plugin, KineticJS
                See also https://github.com/eclipse-ee4j/jersey/blob/master/NOTICE.md</comments>
        </license>
        <license>
            <name>jQuery license</name>
            <url>jquery.org/license</url>
            <distribution>repo</distribution>
            <comments>jQuery v1.12.4</comments>
        </license>
        <license>
            <name>MIT license</name>
            <url>http://www.opensource.org/licenses/mit-license.php</url>
            <distribution>repo</distribution>
            <comments>AngularJS, Bootstrap v3.3.7 (http://getbootstrap.com), 
                      jQuery Barcode plugin 0.3, KineticJS v4.7.1</comments>
        </license>
    </licenses>

    <groupId>org.glassfish.jersey.examples</groupId>
    <artifactId>project</artifactId>
    <packaging>pom</packaging>
    <name>jersey-examples</name>

    <description>Jersey examples</description>

    <modules>
        <module>assemblies</module>
        <!--<module>bean-validation-webapp</module>-->
        <module>bookmark</module>
        <module>bookmark-em</module>
        <module>bookstore-webapp</module>
        <module>cdi-webapp</module>
        <module>clipboard</module>
        <module>clipboard-programmatic</module>
        <module>declarative-linking</module>
        <module>entity-filtering</module>
        <module>entity-filtering-selectable</module>
        <module>entity-filtering-security</module>
        <!-- <module>extended-wadl-webapp</module> -->
        <module>exception-mapping</module>
        <!--<module>feed-combiner-java8-webapp</module>-->
        <module>freemarker-webapp</module>
        <!--<module>flight-mgmt-webapp</module>-->
        <module>groovy</module>
        <module>helloworld</module>
        <module>helloworld-benchmark</module>
        <module>helloworld-cdi2-se</module>
        <module>helloworld-netty</module>
        <module>helloworld-programmatic</module>
        <module>helloworld-pure-jax-rs</module>
        <module>helloworld-webapp</module>
        <module>helloworld-weld</module>
        <module>helloworld-spring-webapp</module>
        <module>helloworld-spring-annotations</module>
        <module>http-patch</module>
        <module>http-trace</module>
        <module>https-clientserver-grizzly</module>
        <module>https-server-glassfish</module>
        <module>java8-webapp</module>
        <module>jaxb</module>
        <module>jaxrs-types-injection</module>
        <module>jersey-ejb</module>
        <module>json-binding-webapp</module>
        <module>json-jackson</module>
        <module>json-jettison</module>
        <module>json-moxy</module>
<!--        <module>json-processing-webapp</module> JSONP-->
        <module>json-with-padding</module>
        <module>managed-beans-webapp</module>
        <module>managed-client</module>
        <module>managed-client-webapp</module>
        <module>managed-client-simple-webapp</module>
        <!--<module>monitoring-webapp</module>-->
        <module>multipart-webapp</module>
        <module>open-tracing</module>
        <module>osgi-helloworld-webapp</module>
        <module>osgi-http-service</module>
        <module>oauth-client-twitter</module>
        <!--<module>oauth2-client-google-webapp</module>-->
        <module>reload</module>
        <module>rx-client-webapp</module>
        <module>server-async</module>
        <module>server-async-managed</module>
        <module>server-async-standalone</module>
        <module>server-sent-events-jersey</module>
        <module>server-sent-events-jaxrs</module>
        <module>servlet3-webapp</module>
        <module>simple-console</module>
        <!--<module>shortener-webapp</module>-->
        <!--<module>sparklines</module>-->
        <module>sse-item-store-jersey-webapp</module>
        <module>sse-item-store-jaxrs-webapp</module>
        <module>sse-twitter-aggregator</module>
        <module>system-properties-example</module>
        <!--<module>tone-generator</module>-->
        <module>webapp-example-parent</module>
        <module>xml-moxy</module>
    </modules>
    <profiles>
        <profile>
            <id>exluded_due_to_jakartification</id>
            <modules><module>extended-wadl-webapp</module></modules>
        </profile>
    </profiles>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.glassfish.jersey</groupId>
                <artifactId>jersey-bom</artifactId>
                <version>${project.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <finalName>${project.artifactId}</finalName>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <dependencies>
                        <!-- Contains shared Jersey example assembly descriptors-->
                        <dependency>
                            <groupId>org.glassfish.jersey.examples</groupId>
                            <artifactId>assemblies</artifactId>
                            <version>${project.version}</version>
                        </dependency>
                    </dependencies>
                    <executions>
                        <execution>
                            <id>assemble-src-zip</id>
                            <phase>package</phase>
                            <goals>
                                <goal>single</goal>
                            </goals>
                            <configuration>
                                <descriptorRefs>
                                    <!-- Reference to a descriptor in org.glassfish.jersey.examples:assemblies module -->
                                    <descriptorRef>src-zip</descriptorRef>
                                </descriptorRefs>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <executions>
                        <execution>
                            <goals>
                                <goal>java</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.commonjava.maven.plugins</groupId>
                    <artifactId>directory-maven-plugin</artifactId>
                    <version>0.3.1</version>
                    <executions>
                        <execution>
                            <id>directories</id>
                            <goals>
                                <goal>highest-basedir</goal>
                            </goals>
                            <phase>initialize</phase>
                            <configuration>
                                <property>legal.source.folder</property>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>2.6</version>
                    <!-- Add legal information, NOTICE.md and LINCENSE.md to jars -->
                    <executions>
                        <execution>
                            <!-- copy the files to classes folder for maven-jar/war-plugin to grab it -->
                            <id>copy-legaldocs</id>
                            <goals>
                                <goal>copy-resources</goal>
                            </goals>
                            <phase>process-sources</phase>
                            <configuration>
                                <outputDirectory>${project.build.outputDirectory}</outputDirectory>
                                <resources>
                                    <resource>
                                        <directory>${legal.source.folder}</directory>
                                        <targetPath>META-INF/</targetPath>
                                        <includes>
                                            <include>NOTICE.md</include>
                                            <include>LICENSE.md</include>
                                        </includes>
                                    </resource>
                                </resources>
                            </configuration>
                        </execution>
                        <execution>
                            <!-- copy the files to source folder for maven-source-plugin to grab it -->
                            <id>copy-legaldocs-to-sources</id>
                            <goals>
                                <goal>copy-resources</goal>
                            </goals>
                            <phase>process-sources</phase>
                            <configuration>
                                <outputDirectory>${project.build.directory}/generated-sources/rsrc-gen</outputDirectory>
                                <resources>
                                    <resource>
                                        <directory>${legal.source.folder}</directory>
                                        <targetPath>META-INF/</targetPath>
                                        <includes>
                                            <include>NOTICE.md</include>
                                            <include>LICENSE.md</include>
                                        </includes>
                                    </resource>
                                </resources>
                            </configuration>
                        </execution>
                        <execution>
                            <!-- copy the files to legal folder for felix plugin to grab it -->
                            <id>copy-legaldocs-to-wars</id>
                            <goals>
                                <goal>copy-resources</goal>
                            </goals>
                            <phase>process-sources</phase>
                            <configuration>
                                <outputDirectory>${project.build.directory}/${project.artifactId}</outputDirectory>
                                <resources>
                                    <resource>
                                        <directory>${legal.source.folder}</directory>
                                        <targetPath>META-INF/</targetPath>
                                        <includes>
                                            <include>NOTICE.md</include>
                                            <include>LICENSE.md</include>
                                        </includes>
                                    </resource>
                                </resources>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </pluginManagement>
        <resources>
            <resource>
                <directory>${project.basedir}/src/main/resources</directory>
            </resource>
            <resource>
                <directory>${project.build.directory}/legal</directory>
            </resource>
        </resources>
    </build>

</project>
