| <?xml version="1.0" encoding="UTF-8"?> | 
 | <!-- | 
 |  | 
 |     Copyright (c) 1997, 2021 Oracle and/or its affiliates. All rights reserved. | 
 |  | 
 |     This program and the accompanying materials are made available under the | 
 |     terms of the Eclipse Public License v. 2.0, which is available at | 
 |     http://www.eclipse.org/legal/epl-2.0. | 
 |  | 
 |     This Source Code may also be made available under the following Secondary | 
 |     Licenses when the conditions for such availability set forth in the | 
 |     Eclipse Public License v. 2.0 are satisfied: GNU General Public License, | 
 |     version 2 with the GNU Classpath Exception, which is available at | 
 |     https://www.gnu.org/software/classpath/license.html. | 
 |  | 
 |     SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 | 
 |  | 
 | --> | 
 |  | 
 | <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/xsd/maven-4.0.0.xsd"> | 
 |     <modelVersion>4.0.0</modelVersion> | 
 |  | 
 |     <parent> | 
 |         <groupId>org.glassfish.main.appclient</groupId> | 
 |         <artifactId>client</artifactId> | 
 |         <version>6.2.1-SNAPSHOT</version> | 
 |     </parent> | 
 |  | 
 |     <artifactId>gf-client-module</artifactId> | 
 |     <packaging>glassfish-jar</packaging> | 
 |  | 
 |     <!-- the main artifact is the OSGi module JAR --> | 
 |     <name>Client OSGi module (including ACC)</name> | 
 |  | 
 |     <developers> | 
 |         <developer> | 
 |             <id>tjquinn</id> | 
 |             <name>Tim Quinn</name> | 
 |             <url>http://blogs.sun.com/quinn</url> | 
 |             <organization>Oracle, Inc.</organization> | 
 |             <roles> | 
 |                 <role>lead</role> | 
 |                 <role>developer</role> | 
 |             </roles> | 
 |         </developer> | 
 |     </developers> | 
 |  | 
 |     <!-- | 
 |         This module creates the app client container in three artifacts: | 
 |             1. OSGi module for the ACC | 
 |             2. stand-alone ACC JAR, suitable for running using java -jar ... | 
 |             3. bundle suitable for distribution to remote clients. | 
 |  | 
 |         Java programs that want to use the embeddable ACC would place the stand- | 
 |         alone ACC JAR on their class paths.  OSGi modules that use the embeddable | 
 |         ACC could simply declare a dependency on the ACC OSGi module. | 
 |  | 
 |         The zip bundle contains the stand-alone ACC JAR and all other JARs on | 
 |         which it depends.  End-users or administrators could copy this bundle | 
 |         to remote clients and expand it, resulting in a single self-contained | 
 |         directory which would contain all the required JARs. | 
 |     --> | 
 |     <properties> | 
 |         <extracted-dtd-root>temp</extracted-dtd-root> | 
 |         <extracted-dtd-top-level-directory>${extracted-dtd-root}/glassfish</extracted-dtd-top-level-directory> | 
 |         <extracted-dtd-directory>${extracted-dtd-top-level-directory}/lib/dtds</extracted-dtd-directory> | 
 |         <config-dtd-file>sun-application-client-container_1_2.dtd</config-dtd-file> | 
 |  | 
 |         <standalone.classifier>lib</standalone.classifier> | 
 |         <acc.osgi.module.classifier>module</acc.osgi.module.classifier> | 
 |         <findbugs.exclude>${project.basedir}/exclude.xml</findbugs.exclude> | 
 |     </properties> | 
 |  | 
 |     <dependencies> | 
 |         <dependency> | 
 |             <groupId>org.glassfish.hk2</groupId> | 
 |             <artifactId>hk2-core</artifactId> | 
 |         </dependency> | 
 |  | 
 |         <!-- required for annotation processing support --> | 
 |         <dependency> | 
 |             <groupId>org.glassfish.main.common</groupId> | 
 |             <artifactId>common-util</artifactId> | 
 |             <version>${project.version}</version> | 
 |         </dependency> | 
 |  | 
 |         <dependency> | 
 |             <groupId>org.glassfish.main.ejb</groupId> | 
 |             <artifactId>ejb-full-container</artifactId> | 
 |             <version>${project.version}</version> | 
 |         </dependency> | 
 |  | 
 |         <!-- | 
 |             We depend on the deployment/dtds and deployment/schemas modules | 
 |             but only at build-time. | 
 |  | 
 |             We extract the DTD and schema files and add them | 
 |             to the module JAR so they will be accessible at tuntime on the class path. | 
 |  | 
 |             Because we don't really rely on the zip files at runtime, we use scope "provided" | 
 |             for the dependencies. --> | 
 |         <dependency> | 
 |             <groupId>org.glassfish.main.deployment</groupId> | 
 |             <artifactId>appserver-dtds</artifactId> | 
 |             <version>${project.version}</version> | 
 |             <type>zip</type> | 
 |             <scope>provided</scope> | 
 |         </dependency> | 
 |  | 
 |         <dependency> | 
 |             <groupId>org.glassfish.main.deployment</groupId> | 
 |             <artifactId>appserver-schemas</artifactId> | 
 |             <version>${project.version}</version> | 
 |             <type>zip</type> | 
 |             <scope>provided</scope> | 
 |         </dependency> | 
 |  | 
 |  | 
 |         <!-- required for InjectionManager --> | 
 |         <dependency> | 
 |             <groupId>org.glassfish.main.common</groupId> | 
 |             <artifactId>container-common</artifactId> | 
 |             <version>${project.version}</version> | 
 |         </dependency> | 
 |  | 
 |         <!-- Required for AnnotationDetector, AnnotationScanner, PersistenceUnitDescriptor --> | 
 |         <dependency> | 
 |             <groupId>org.glassfish.main.deployment</groupId> | 
 |             <artifactId>dol</artifactId> | 
 |             <version>${project.version}</version> | 
 |         </dependency> | 
 |  | 
 |         <!-- Required for security. --> | 
 |         <dependency> | 
 |             <groupId>org.glassfish.main.security</groupId> | 
 |             <artifactId>appclient.security</artifactId> | 
 |             <version>${project.version}</version> | 
 |         </dependency> | 
 |         <!-- Required for ClientNamingConfigurator --> | 
 |         <dependency> | 
 |             <groupId>org.glassfish.main.common</groupId> | 
 |             <artifactId>glassfish-api</artifactId> | 
 |             <version>${project.version}</version> | 
 |         </dependency> | 
 |  | 
 |         <!-- required for ClientPipeCloser --> | 
 |         <dependency> | 
 |             <groupId>org.glassfish.main.security</groupId> | 
 |             <artifactId>webservices.security</artifactId> | 
 |             <version>${project.version}</version> | 
 |         </dependency> | 
 |  | 
 |         <dependency> | 
 |             <groupId>org.glassfish.main.common</groupId> | 
 |             <artifactId>glassfish-naming</artifactId> | 
 |             <version>${project.version}</version> | 
 |         </dependency> | 
 |  | 
 |         <dependency> | 
 |             <groupId>org.glassfish.main.connectors</groupId> | 
 |             <artifactId>work-management</artifactId> | 
 |             <version>${project.version}</version> | 
 |         </dependency> | 
 |  | 
 |         <dependency> | 
 |             <groupId>org.glassfish.main.connectors</groupId> | 
 |             <artifactId>connectors-inbound-runtime</artifactId> | 
 |             <version>${project.version}</version> | 
 |         </dependency> | 
 |  | 
 |  | 
 |         <dependency> | 
 |             <groupId>org.glassfish.main.orb</groupId> | 
 |             <artifactId>orb-connector</artifactId> | 
 |             <version>${project.version}</version> | 
 |         </dependency> | 
 |  | 
 |         <dependency> | 
 |             <groupId>org.glassfish.main.webservices</groupId> | 
 |             <artifactId>webservices-connector</artifactId> | 
 |             <version>${project.version}</version> | 
 |         </dependency> | 
 |  | 
 |  | 
 |         <!-- Ken C. reports that eight ORB-related modules are needed, but | 
 |             the one "orb" module directly or indirectly depends on the others so I have | 
 |             just included it here. --> | 
 |         <dependency> | 
 |             <groupId>org.glassfish.corba</groupId> | 
 |             <artifactId>glassfish-corba-orb</artifactId> | 
 |         </dependency> | 
 |  | 
 |         <dependency> | 
 |             <groupId>org.glassfish.main.orb</groupId> | 
 |             <artifactId>orb-iiop</artifactId> | 
 |             <version>${project.version}</version> | 
 |             <scope>runtime</scope> | 
 |         </dependency> | 
 |  | 
 |         <dependency> | 
 |             <groupId>org.glassfish.main.core</groupId> | 
 |             <artifactId>glassfish</artifactId> | 
 |             <version>${project.version}</version> | 
 |         </dependency> | 
 |  | 
 |         <dependency> | 
 |             <groupId>org.glassfish.main.appclient</groupId> | 
 |             <artifactId>acc-config</artifactId> | 
 |             <version>${project.version}</version> | 
 |         </dependency> | 
 |  | 
 |         <dependency> | 
 |             <groupId>org.glassfish.main.transaction</groupId> | 
 |             <artifactId>jts</artifactId> | 
 |             <version>${project.version}</version> | 
 |         </dependency> | 
 |  | 
 |         <dependency> | 
 |             <groupId>org.glassfish.main.jms</groupId> | 
 |             <artifactId>jms-core</artifactId> | 
 |             <version>${project.version}</version> | 
 |             <scope>runtime</scope> | 
 |         </dependency> | 
 |  | 
 |         <dependency> | 
 |             <groupId>jakarta.jms</groupId> | 
 |             <artifactId>jakarta.jms-api</artifactId> | 
 |             <scope>runtime</scope> | 
 |         </dependency> | 
 |  | 
 |         <!-- for EclipseLink support --> | 
 |         <dependency> | 
 |             <groupId>org.glassfish.main.persistence</groupId> | 
 |             <artifactId>eclipselink-wrapper</artifactId> | 
 |             <version>${project.version}</version> | 
 |             <type>pom</type> | 
 |             <scope>runtime</scope> | 
 |         </dependency> | 
 |  | 
 |         <dependency> | 
 |             <groupId>org.glassfish.main.persistence</groupId> | 
 |             <artifactId>jpa-container</artifactId> | 
 |             <version>${project.version}</version> | 
 |         </dependency> | 
 |  | 
 |         <dependency> | 
 |             <groupId>org.glassfish.main.persistence.cmp</groupId> | 
 |             <artifactId>cmp-internal-api</artifactId> | 
 |             <version>${project.version}</version> | 
 |             <scope>runtime</scope> | 
 |         </dependency> | 
 |  | 
 |         <!-- explicit dependencies for JARs the ACC needs --> | 
 |  | 
 |         <!-- jakarta.annotation-api.jar --> | 
 |         <dependency> | 
 |             <groupId>jakarta.annotation</groupId> | 
 |             <artifactId>jakarta.annotation-api</artifactId> | 
 |         </dependency> | 
 |  | 
 |         <!-- jakarta.xml.bind-api.jar --> | 
 |         <dependency> | 
 |             <groupId>jakarta.xml.bind</groupId> | 
 |             <artifactId>jakarta.xml.bind-api</artifactId> | 
 |         </dependency> | 
 |  | 
 |         <dependency> | 
 |             <groupId>com.sun.xml.bind</groupId> | 
 |             <artifactId>jaxb-osgi</artifactId> | 
 |         </dependency> | 
 |  | 
 |         <!-- webservices-api-osgi.jar --> | 
 |         <dependency> | 
 |             <groupId>org.glassfish.metro</groupId> | 
 |             <artifactId>webservices-api-osgi</artifactId> | 
 |         </dependency> | 
 |  | 
 |  | 
 |         <!-- This is needed because it provides the sniffer/detector/moduletype --> | 
 |         <dependency> | 
 |             <groupId>org.glassfish.main.appclient.server</groupId> | 
 |             <artifactId>appclient-connector</artifactId> | 
 |             <version>${project.version}</version> | 
 |             <scope>runtime</scope> | 
 |         </dependency> | 
 |  | 
 |         <!-- The next two mail-related dependencies allow mail session look-up | 
 |             and use from clients. --> | 
 |         <dependency> | 
 |             <groupId>org.glassfish.main.resources</groupId> | 
 |             <artifactId>mail-connector</artifactId> | 
 |             <version>${project.version}</version> | 
 |             <scope>runtime</scope> | 
 |         </dependency> | 
 |         <dependency> | 
 |             <groupId>org.glassfish.main.resources</groupId> | 
 |             <artifactId>mail-runtime</artifactId> | 
 |             <version>${project.version}</version> | 
 |             <scope>runtime</scope> | 
 |         </dependency> | 
 |  | 
 |         <!-- JSON needs to be available to clients --> | 
 |         <dependency> | 
 |             <groupId>org.glassfish</groupId> | 
 |             <artifactId>jakarta.json</artifactId> | 
 |             <scope>runtime</scope> | 
 |         </dependency> | 
 |  | 
 |         <dependency> | 
 |             <groupId>org.eclipse</groupId> | 
 |             <artifactId>yasson</artifactId> | 
 |             <scope>runtime</scope> | 
 |         </dependency> | 
 |  | 
 |         <!-- CDI support --> | 
 |         <dependency> | 
 |             <groupId>org.jboss.weld.se</groupId> | 
 |             <artifactId>weld-se-shaded</artifactId> | 
 |         </dependency> | 
 |         <dependency> | 
 |             <groupId>jakarta.enterprise</groupId> | 
 |             <artifactId>jakarta.enterprise.cdi-api</artifactId> | 
 |             <scope>compile</scope> | 
 |         </dependency> | 
 |  | 
 |         <dependency> | 
 |             <groupId>jakarta.authorization</groupId> | 
 |             <artifactId>jakarta.authorization-api</artifactId> | 
 |         </dependency> | 
 |  | 
 |         <dependency> | 
 |             <groupId>org.hamcrest</groupId> | 
 |             <artifactId>hamcrest</artifactId> | 
 |         </dependency> | 
 |     </dependencies> | 
 |  | 
 |     <build> | 
 |         <resources> | 
 |             <resource> | 
 |                 <directory>src/main/resources</directory> | 
 |                 <excludes> | 
 |                     <exclude>**/.gitkeep_empty_dir</exclude> | 
 |                 </excludes> | 
 |             </resource> | 
 |  | 
 |             <!-- The next resource definition will include the DTDs and schemas | 
 |                 in the module so we can find them at runtime in the client. | 
 |  | 
 |                 The dependency:unpack-dependency | 
 |                 goal below will by default deposit the unpacked contents into target/dependency. | 
 |                 The .dtd and .xsd files are packaged into their respective JARs in glassfish/lib, | 
 |                 so we define that combined directory as a resource location so the .dtd and | 
 |                 .xsd files will be packaged by default. | 
 |  | 
 |                 This is coordinated with the SaxParserHandlerBundled | 
 |                 class which resolves entities via the class path. --> | 
 |             <resource> | 
 |                 <directory>target/dependency/glassfish/lib/</directory> | 
 |                 <includes> | 
 |                     <include>**/*.dtd</include> | 
 |                     <include>**/*.xsd</include> | 
 |                 </includes> | 
 |             </resource> | 
 |         </resources> | 
 |         <plugins> | 
 |  | 
 |             <!-- Unpack the modules which contain the DTDs and schemas so | 
 |                 we can package them as resources. --> | 
 |             <plugin> | 
 |                 <artifactId>maven-dependency-plugin</artifactId> | 
 |                 <executions> | 
 |                     <execution> | 
 |                         <id>unpack-dtds-and-schemas</id> | 
 |                         <phase>generate-resources</phase> | 
 |                         <goals> | 
 |                             <goal>unpack-dependencies</goal> | 
 |                         </goals> | 
 |                         <configuration> | 
 |                             <includeGroupIds>org.glassfish.main.deployment</includeGroupIds> | 
 |                             <includeArtifactIds>appserver-schemas,appserver-dtds</includeArtifactIds> | 
 |                             <includes>**/*.dtd,**/*.xsd</includes> | 
 |                         </configuration> | 
 |                     </execution> | 
 |                 </executions> | 
 |             </plugin> | 
 |             <plugin> | 
 |                 <artifactId>maven-jar-plugin</artifactId> | 
 |                 <configuration> | 
 |  | 
 |                     <archive> | 
 |  | 
 |                         <manifest> | 
 |                             <mainClass>org.glassfish.main.appclient.client.acc.AppClientCommand</mainClass> | 
 |                         </manifest> | 
 |                         <!-- | 
 |                             It's discouraging to have to specify the class | 
 |                             path manually. | 
 |  | 
 |                             Ideally the plug-in would do this for us, but the jar plug-in | 
 |                             uses the name of the modules including the version strings; when the GlassFish | 
 |                             modules are packaged into the distributions the version strings are stripped | 
 |                             off. --> | 
 |                     </archive> | 
 |                 </configuration> | 
 |             </plugin> | 
 |         </plugins> | 
 |     </build> | 
 | </project> |