<?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.
-->
<!--test 2-->
<!-- $Rev$ $Date$ -->
<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>
    <artifactId>tomee-project</artifactId>
    <groupId>org.apache.tomee</groupId>
    <version>10.0.0-M1</version>
  </parent>
  <artifactId>examples</artifactId>
  <packaging>pom</packaging>
  <name>TomEE :: Examples</name>
  <modules>
    <module>access-timeout-meta</module>
    <module>access-timeout</module>
    <module>alternate-descriptors</module>
    <module>application-composer</module>
    <module>applicationcomposer-jaxws-cdi</module>
    <module>applicationexception</module>
    <module>arquillian-jpa</module>
    <module>async-methods</module>
    <module>async-postconstruct</module>
    <module>bean-validation-design-by-contract</module>
    <module>bval-evaluation-redeployment</module>
    <module>cdi-alternative-and-stereotypes</module>
    <module>cdi-application-scope</module>
    <module>cdi-basic</module>
    <module>cdi-dynamic-inject</module>
    <module>cdi-ejbcontext-jaas</module>
    <module>cdi-events</module>
    <module>cdi-interceptors</module>
    <module>cdi-produces-disposes</module>
    <module>cdi-produces-field</module>
    <module>cdi-qualifier</module>
    <module>cdi-realm</module>
    <module>cdi-request-scope</module>
    <module>cdi-session-scope</module>
    <module>change-jaxws-url</module>
    <module>component-interfaces</module>
    <module>client-resource-lookup-preview</module>
    <module>connector-ear</module>
    <module>connector-war</module>
    <module>cucumber-jvm</module>
    <module>custom-injection</module>
    <module>datasource-ciphered-password</module>
    <module>datasource-definition</module>
    <module>datasource-versioning</module>
    <module>decorators</module>
    <module>dynamic-dao-implementation</module>
    <module>dynamic-datasource-routing</module>
    <module>dynamic-implementation</module>
    <module>dynamic-proxy-to-access-mbean</module>
    <module>ear-testing</module>
    <module>ejb-examples</module>
    <module>ejb-remote-call</module>
    <module>ejb-remote-call-2</module>
    <module>ejb-webservice</module>
    <module>groovy-cdi</module>
    <module>groovy-jpa</module>
    <module>groovy-spock</module>
    <module>helloworld-weblogic</module>
    <module>injection-of-connectionfactory</module>
    <module>injection-of-datasource</module>
    <module>injection-of-ejbs</module>
    <module>injection-of-entitymanager</module>
    <module>injection-of-env-entry</module>
    <module>interceptors</module>
    <module>javamail</module>
    <module>javamail-velocity</module>
    <module>java-modules</module>
    <module>jaxrs-filter</module>
    <module>jaxrs-json-provider-jettison</module>
    <module>jpa-eclipselink</module>
    <module>jpa-hibernate</module>
    <module>jpa-hibernate-arquillian</module>
    <module>jpa-enumerated</module>
    <module>jsf-managedBean-and-ejb</module>
    <module>jsf-cdi-and-ejb</module>
    <module>junit5-application-composer</module>
    <module>junit5-arquillian-multiple-tomee</module>
    <module>junit5-arquillian-simple-websockets</module>
    <module>lookup-of-ejbs</module>
    <module>lookup-of-ejbs-with-descriptor</module>
    <!-- Does not work with Java 9+ because of the modules. Needs more work
    <module>mbean-auto-registration</module>
    -->
    <module>movies-complete-meta</module>
    <module>movies-complete</module>
    <module>mp-config-example</module>
    <module>mp-config-source-database</module>
    <module>mp-faulttolerance-fallback</module>
    <module>mp-faulttolerance-retry</module>
    <module>mp-faulttolerance-timeout</module>
    <module>mp-jwt-bean-validation</module>
    <module>mp-jwt-bean-validation-strongly-typed</module>
    <module>mp-metrics-counted</module>
    <module>mp-metrics-histogram</module>
    <module>mp-metrics-timed</module>
    <module>mp-metrics-gauge</module>
    <module>mp-metrics-metered</module>
    <module>mp-opentracing-traced</module>
    <module>mp-rest-jwt-jwk</module>
    <module>mp-rest-jwt-principal</module>
    <module>mp-rest-jwt-public-key</module>
    <module>mp-rest-client</module>
    <module>mp-custom-healthcheck</module>
    <module>mp-openapi-reader</module>
    <module>mtom</module>
    <module>multi-jpa-provider-testing</module>
    <module>multiple-arquillian-adapters</module>
    <module>multiple-tomee-arquillian</module>
    <module>persistence-fragment</module>
    <module>pojo-webservice</module>
<!--    <module>polling-parent</module>-->
    <module>quartz-app</module>
    <module>realm-in-tomee</module>
    <module>reload-persistence-unit-properties</module>
    <module>resources-declared-in-webapp</module>
    <module>rest-applicationcomposer-mockito</module>
    <module>rest-applicationcomposer</module>
    <module>rest-cdi</module>
    <module>rest-jaas</module>
    <module>rest-on-ejb</module>
    <module>rest-example</module>
    <module>rest-example-with-application</module>
    <module>rest-xml-json</module>
    <module>scala-basic</module>
    <module>schedule-expression</module>
    <module>schedule-events</module>
    <module>schedule-methods-meta</module>
    <module>schedule-methods</module>
    <module>server-events</module>
    <module>serverless-builder</module>
    <module>serverless-tomee-webprofile</module>
    <module>serverless-tomee-microprofile</module>
    <module>serverless-tomee-plume</module>
    <module>serverless-tomee-plus</module>
    <module>singleton-startup-ordering</module>
    <module>simple-cdi-interceptor</module>
    <module>simple-ear</module>
    <module>simple-cmp2</module>
    <module>simple-jms</module>
    <module>simple-jms-context</module>
    <module>simple-mdb-and-cdi</module>
    <module>simple-mdb</module>
    <module>simple-mdb-with-descriptor</module>
    <module>simple-remote-tomcatusers</module>
    <module>simple-rest</module>
    <module>simple-singleton</module>
    <module>simple-stateful</module>
    <module>simple-stateful-callbacks</module>
    <module>simple-stateless</module>
    <module>simple-stateless-callbacks</module>
    <module>simple-stateless-with-descriptor</module>
    <module>simple-webservice</module>
    <module>simple-webservice-without-interface</module>
    <module>async-servlet</module>
    <module>struts</module>
    <module>telephone-stateful</module>
    <module>testcase-injection</module>
    <module>testing-security-meta</module>
    <module>testing-security</module>
    <module>testing-security-2</module>
    <module>testing-security-3</module>
    <module>testing-security-4</module>
    <module>testing-transactions</module>
    <module>testing-transactions-bmt</module>
<!--    <module>tomee-jersey-eclipselink</module>-->
    <module>tomee-jms-portability</module>
    <module>transaction-rollback</module>
    <module>troubleshooting</module>
    <module>webservice-attachments</module>
    <module>webservice-inheritance</module>
    <module>webservice-security</module>
    <module>webservice-ssl-client-cert</module>
    <module>webservice-ws-security</module>
    <module>webservice-ws-with-resources-config</module>
    <module>webservice-handlerchain</module>
    <module>webservice-holder</module>
    <module>moviefun</module>
    <module>moviefun-rest</module>
    <module>resources-jmx-example</module>
    <module>websocket-tls-basic-auth</module>
    <module>concurrency-utils</module>
    <module>jsonb-configuration</module>
    <module>jsonb-custom-serializer</module>
    <module>cloud-tomee-azure</module>
    <module>xa-datasource</module>
    <module>websocket-jms</module>
    <module>activemq-multiple-brokers</module>

    <!-- Jakarta Security Examples -->
    <module>security-tomcat-user-identitystore</module>
    <module>security-custom-identitystore</module>

  </modules>
  <profiles>
    <profile>
      <id>apache-release</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>3.3.2</version>
            <configuration>
              <skip>true</skip>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <inherited>false</inherited>
            <configuration>
              <descriptors>
                <descriptor>src.xml</descriptor>
              </descriptors>
              <tarLongFileMode>gnu</tarLongFileMode>
              <finalName>openejb-examples-${project.version}</finalName>
            </configuration>
            <executions>
              <execution>
                <id>make-assembly</id>
                <phase>package</phase>
                <goals>
                  <goal>single</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
