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

    Copyright (c) 2011, 2023 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.99-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>configured-client</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>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>
        <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> Jakartification - felix osgi is not jakartificated-->
        <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>

    <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>

    <profiles>
        <profile>
            <id>jdk17</id>
            <activation>
                <jdk>[17,)</jdk>
            </activation>
            <modules>
                <module>helloworld-spring-webapp</module>
                <module>helloworld-spring-annotations</module>
            </modules>
        </profile>
    </profiles>

</project>
