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