Files
datawave/web-services/deploy/application/pom.xml

1033 lines
54 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<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>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-deploy-parent</artifactId>
<version>8.6.0-SNAPSHOT</version>
</parent>
<artifactId>datawave-ws-deploy-application</artifactId>
<packaging>pom</packaging>
<name>${project.artifactId}</name>
<properties>
<!-- The base path for the wildfly modules directory where custom JBOSS modules should be added. -->
<base.wildfly.modules.dir>${project.build.directory}/wildfly/overlay/modules</base.wildfly.modules.dir>
<!-- The base path for the wildfly core application modules directory where library versions can be overridden. -->
<base.wildfly.system.modules.dir>${base.wildfly.modules.dir}/system/layers/base</base.wildfly.system.modules.dir>
<!-- jkube kubernetes-maven-plugin only has access to project properties so we redefine them to properly render the Dockerfile-->
<project.build.finalName>${project.build.finalName}</project.build.finalName>
<version.slf4j-jboss-logmanager>2.0.2.Final</version.slf4j-jboss-logmanager>
</properties>
<dependencies>
<dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
</dependency>
<dependency>
<groupId>gov.nsa.datawave</groupId>
<artifactId>datawave-data-dictionary-core</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>gov.nsa.datawave</groupId>
<artifactId>datawave-edge-dictionary-core</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>gov.nsa.datawave</groupId>
<artifactId>datawave-edge-model-configuration-core</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>gov.nsa.datawave</groupId>
<artifactId>datawave-ingest-configuration</artifactId>
<version>${project.version}</version>
<exclusions>
<exclusion>
<groupId>gov.nsa.datawave.core</groupId>
<artifactId>datawave-core-common-util</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>gov.nsa.datawave</groupId>
<artifactId>datawave-metrics-core</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>gov.nsa.datawave</groupId>
<artifactId>datawave-query-core</artifactId>
<version>${project.version}</version>
<exclusions>
<exclusion>
<groupId>gov.nsa.datawave.core</groupId>
<artifactId>datawave-core-common-util</artifactId>
</exclusion>
<exclusion>
<groupId>gov.nsa.datawave.core</groupId>
<artifactId>datawave-core-connection-pool</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-accumulo</artifactId>
<version>${project.version}</version>
<type>ejb</type>
<exclusions>
<exclusion>
<groupId>gov.nsa.datawave.core</groupId>
<artifactId>datawave-core-common-util</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-annotations</artifactId>
<version>${project.version}</version>
<type>ejb</type>
<exclusions>
<exclusion>
<groupId>gov.nsa.datawave.core</groupId>
<artifactId>datawave-core-common-util</artifactId>
</exclusion>
<exclusion>
<groupId>gov.nsa.datawave.core</groupId>
<artifactId>datawave-core-connection-pool</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-atom</artifactId>
<version>${project.version}</version>
<type>ejb</type>
<exclusions>
<exclusion>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
</exclusion>
<exclusion>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-cached-results</artifactId>
<version>${project.version}</version>
<type>ejb</type>
</dependency>
<dependency>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-client</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-common</artifactId>
<version>${project.version}</version>
<type>ejb</type>
<exclusions>
<exclusion>
<groupId>gov.nsa.datawave.core</groupId>
<artifactId>datawave-core-connection-pool</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-common-util</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-dictionary</artifactId>
<version>${project.version}</version>
<type>ejb</type>
</dependency>
<dependency>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-metrics</artifactId>
<version>${project.version}</version>
<type>ejb</type>
</dependency>
<dependency>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-model</artifactId>
<version>${project.version}</version>
<type>ejb</type>
</dependency>
<dependency>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-modification</artifactId>
<version>${project.version}</version>
<type>ejb</type>
<exclusions>
<exclusion>
<groupId>gov.nsa.datawave.core</groupId>
<artifactId>datawave-core-common-util</artifactId>
</exclusion>
<exclusion>
<groupId>gov.nsa.datawave.core</groupId>
<artifactId>datawave-core-connection-pool</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-query</artifactId>
<version>${project.version}</version>
<type>ejb</type>
<exclusions>
<exclusion>
<groupId>gov.nsa.datawave.core</groupId>
<artifactId>datawave-core-common-util</artifactId>
</exclusion>
<exclusion>
<groupId>gov.nsa.datawave.core</groupId>
<artifactId>datawave-core-connection-pool</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-query-websocket</artifactId>
<version>${project.version}</version>
<type>war</type>
</dependency>
<dependency>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-rest-api</artifactId>
<version>${project.version}</version>
<type>war</type>
</dependency>
<dependency>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-security</artifactId>
<version>${project.version}</version>
<type>ejb</type>
</dependency>
<dependency>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-web-root</artifactId>
<version>${project.version}</version>
<type>war</type>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
<version>${version.commons-text}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-vfs2</artifactId>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-yarn-common</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j2-impl</artifactId>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-epsg-wkt</artifactId>
<version>${version.geotools}</version>
<exclusions>
<exclusion>
<groupId>javax.media</groupId>
<artifactId>jai_core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-shapefile</artifactId>
<version>${version.geotools}</version>
<exclusions>
<exclusion>
<groupId>javax.media</groupId>
<artifactId>jai_core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.jboss.slf4j</groupId>
<artifactId>slf4j-jboss-logmanager</artifactId>
<version>${version.slf4j-jboss-logmanager}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}-${project.version}</finalName>
<plugins>
<plugin>
<artifactId>maven-ear-plugin</artifactId>
<configuration>
<defaultLibBundleDir>lib/</defaultLibBundleDir>
<skinnyWars>true</skinnyWars>
<classifier>${build.env}</classifier>
<modules combine.children="append">
<ejbModule>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-common</artifactId>
</ejbModule>
<ejbModule>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-security</artifactId>
</ejbModule>
<ejbModule>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-accumulo</artifactId>
</ejbModule>
<ejbModule>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-query</artifactId>
</ejbModule>
<ejbModule>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-annotations</artifactId>
</ejbModule>
<ejbModule>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-cached-results</artifactId>
</ejbModule>
<ejbModule>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-atom</artifactId>
</ejbModule>
<ejbModule>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-model</artifactId>
</ejbModule>
<ejbModule>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-dictionary</artifactId>
</ejbModule>
<webModule>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-query-websocket</artifactId>
<contextRoot>/DataWave/Query/websocket</contextRoot>
</webModule>
<webModule>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-rest-api</artifactId>
<contextRoot>/DataWave</contextRoot>
</webModule>
<webModule>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-web-root</artifactId>
<contextRoot>/</contextRoot>
</webModule>
</modules>
</configuration>
<executions>
<execution>
<id>generate-application-xml</id>
<goals>
<goal>generate-application-xml</goal>
</goals>
<phase>generate-resources</phase>
</execution>
<execution>
<id>create-ear</id>
<goals>
<goal>ear</goal>
</goals>
<phase>package</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<!--
When the dist profile is active, we will skip javadoc generation for this module (javadoc generation is only
on when the dist profile is active). We also pull in web-service-docs:war as a dependency and include it in
the generated ear.
-->
<profile>
<id>docker</id>
<activation>
<property>
<name>docker-release</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.jkube</groupId>
<artifactId>kubernetes-maven-plugin</artifactId>
<version>1.18.1</version>
<configuration>
<verbose>true</verbose>
<pushRegistry>${container.registry}</pushRegistry>
<images>
<image>
<name>${registry.namespace}${image.prefix}webservice-${build.env}:${project.version}</name>
<build>
<!-- defaults to ${project.basedir}/src/main/docker when using relative paths -->
<contextDir>.</contextDir>
<buildOptions>
<memory>8589934592</memory>
</buildOptions>
<assembly>
<name>/</name>
<!-- matches dist.xml assembly file-->
<layers>
<layer>
<id>ear</id>
<files>
<file>
<source>${project.build.directory}/${project.build.finalName}-${build.env}.ear</source>
<!-- target/docker/<image path>/build -->
<outputDirectory>.</outputDirectory>
<fileMode>0640</fileMode>
</file>
</files>
</layer>
<layer>
<id>wildfly-files</id>
<fileSets>
<fileSet>
<directory>${project.build.directory}/wildfly</directory>
<!-- target/docker/<image path>/build -->
<outputDirectory>.</outputDirectory>
<excludes>*.sh</excludes>
<fileMode>0640</fileMode>
<directoryMode>0750</directoryMode>
</fileSet>
</fileSets>
</layer>
<layer>
<id>wildfly-scripts</id>
<fileSets>
<fileSet>
<directory>${project.build.directory}/wildfly</directory>
<!-- target/docker/<image path>/build -->
<outputDirectory>.</outputDirectory>
<includes>*.sh</includes>
<fileMode>0750</fileMode>
<directoryMode>0750</directoryMode>
</fileSet>
</fileSets>
</layer>
</layers>
</assembly>
</build>
</image>
</images>
</configuration>
<executions>
<execution>
<id>build</id>
<goals>
<goal>build</goal>
</goals>
<phase>install</phase>
</execution>
<execution>
<id>push</id>
<goals>
<goal>push</goal>
</goals>
<phase>deploy</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>dist</id>
<activation>
<property>
<name>dist</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-deploy-docs</artifactId>
<version>${project.version}</version>
<type>war</type>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-ear-plugin</artifactId>
<configuration>
<modules>
<webModule>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-deploy-docs</artifactId>
<contextRoot>/DataWave/doc</contextRoot>
</webModule>
</modules>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>client-login-example</id>
<dependencies>
<dependency>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-examples-client-login</artifactId>
<version>${project.version}</version>
<type>ejb</type>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-ear-plugin</artifactId>
<configuration>
<modules>
<ejbModule>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-examples-client-login</artifactId>
</ejbModule>
</modules>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!--
When the assemble profile is active, we will build an assembly tarball that includes the EAR as well
as configuration for a clean installation of Wildfly.
-->
<profile>
<id>assemble</id>
<activation>
<property>
<name>tar</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>assembly</id>
<goals>
<goal>single</goal>
</goals>
<phase>package</phase>
<configuration>
<descriptors>
<descriptor>src/main/assembly/dist.xml</descriptor>
</descriptors>
<tarLongFileMode>posix</tarLongFileMode>
<finalName>${project.artifactId}-${project.version}</finalName>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>assemble-and-docker-prep</id>
<activation>
<property>
<name>!skipPrep</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<!-- Activate the assert-properties plugin to ensure all configuration we require is set. -->
<groupId>gov.nsa.datawave.plugins</groupId>
<artifactId>assert-properties</artifactId>
<executions>
<execution>
<id>assert-properties</id>
<goals>
<goal>assert-properties</goal>
</goals>
<phase>initialize</phase>
<configuration>
<expectedPropertyNames>src/main/assert/expected-properties.txt</expectedPropertyNames>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<!-- Override version of libraries for JBOSS module org.apache.commons.lang3 -->
<execution>
<id>copy-org-apache-commons-lang3</id>
<goals>
<goal>copy</goal>
</goals>
<phase>process-resources</phase>
<configuration>
<outputDirectory>${base.wildfly.system.modules.dir}/org/apache/commons/lang3/main</outputDirectory>
<artifactItems>
<artifactItem>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${version.commons-lang3}</version>
</artifactItem>
</artifactItems>
</configuration>
</execution>
<!-- Copy resources for JBOSS module org.apache.commons.commons-text -->
<execution>
<id>copy-org-apache-commons-text</id>
<goals>
<goal>copy</goal>
</goals>
<phase>process-resources</phase>
<configuration>
<outputDirectory>${base.wildfly.modules.dir}/org/apache/commons/commons-text/main</outputDirectory>
<artifactItems>
<artifactItem>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
<version>${version.commons-text}</version>
</artifactItem>
</artifactItems>
</configuration>
</execution>
<!-- Copy resources for JBOSS module io.jsonwebtoken.jjwt-api -->
<execution>
<id>copy-io-jsonwebtoken-jjwt-api</id>
<goals>
<goal>copy</goal>
</goals>
<phase>process-resources</phase>
<configuration>
<outputDirectory>${base.wildfly.modules.dir}/io/jsonwebtoken/jjwt-api/main</outputDirectory>
<artifactItems>
<artifactItem>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-api</artifactId>
<version>${version.jjwt}</version>
</artifactItem>
</artifactItems>
</configuration>
</execution>
<!-- Copy resources for JBOSS module io.jsonwebtoken.jjwt-impl -->
<execution>
<id>copy-io-jsonwebtoken-jjwt-impl</id>
<goals>
<goal>copy</goal>
</goals>
<phase>process-resources</phase>
<configuration>
<outputDirectory>${base.wildfly.modules.dir}/io/jsonwebtoken/jjwt-impl/main</outputDirectory>
<artifactItems>
<artifactItem>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-impl</artifactId>
<version>${version.jjwt}</version>
</artifactItem>
</artifactItems>
</configuration>
</execution>
<!-- Copy resources for JBOSS module com.fasterxml.jackson.datatype.jackson-datatype-guava -->
<execution>
<id>copy-com-fasterxml-jackson-datatype-jackson-datatype-guava</id>
<goals>
<goal>copy</goal>
</goals>
<phase>process-resources</phase>
<configuration>
<outputDirectory>${base.wildfly.modules.dir}/com/fasterxml/jackson/datatype/jackson-datatype-guava/main</outputDirectory>
<artifactItems>
<artifactItem>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-guava</artifactId>
<version>${version.jackson}</version>
</artifactItem>
</artifactItems>
</configuration>
</execution>
<!-- Copy resources for JBOSS module com.fasterxml.jackson.module.jackson-module-jaxb-annotations -->
<execution>
<id>copy-com-fasterxml-jackson-module-jackson-module-jaxb-annotations</id>
<goals>
<goal>copy</goal>
</goals>
<phase>process-resources</phase>
<configuration>
<outputDirectory>${base.wildfly.modules.dir}/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/main</outputDirectory>
<artifactItems>
<artifactItem>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-jaxb-annotations</artifactId>
<version>${version.jackson}</version>
</artifactItem>
</artifactItems>
</configuration>
</execution>
<!-- Copy resources for JBOSS module datawave.commons.datawave-commons-security. -->
<execution>
<id>copy-datawave-commons-security</id>
<goals>
<goal>copy</goal>
</goals>
<phase>process-resources</phase>
<configuration>
<outputDirectory>${base.wildfly.modules.dir}/datawave/commons/datawave-commons-security/main</outputDirectory>
<artifactItems>
<artifactItem>
<groupId>gov.nsa.datawave.commons</groupId>
<artifactId>datawave-commons-security</artifactId>
<version>${project.version}</version>
</artifactItem>
</artifactItems>
</configuration>
</execution>
<!-- Copy resources for JBOSS module datawave.webservice.datawave-security-elytron. -->
<execution>
<id>copy-datawave-ws-security-elytron</id>
<goals>
<goal>copy</goal>
</goals>
<phase>process-resources</phase>
<configuration>
<outputDirectory>${base.wildfly.modules.dir}/datawave/webservice/datawave-security-elytron/main</outputDirectory>
<artifactItems>
<artifactItem>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-security-elytron</artifactId>
<version>${project.version}</version>
</artifactItem>
</artifactItems>
</configuration>
</execution>
<!-- Copy resources for JBOSS module datawave.webservice.datawave-security-elytron-module. -->
<execution>
<id>copy-datawave-ws-security-elytron-module</id>
<goals>
<goal>copy</goal>
</goals>
<phase>process-resources</phase>
<configuration>
<outputDirectory>${base.wildfly.modules.dir}/datawave/webservice/datawave-security-elytron-module/main</outputDirectory>
<artifactItems>
<artifactItem>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-security-elytron-module</artifactId>
<version>${project.version}</version>
</artifactItem>
</artifactItems>
</configuration>
</execution>
<!--
Copy the MySQL connector jar to a known place so we can deploy it to Wildfly in the setup script.
-->
<execution>
<id>copy-mysql-jar</id>
<goals>
<goal>copy</goal>
</goals>
<phase>process-resources</phase>
<configuration>
<outputDirectory>${project.build.directory}/wildfly/mysql</outputDirectory>
<overWriteIfNewer>true</overWriteIfNewer>
<artifactItems>
<artifactItem>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
</artifactItem>
</artifactItems>
</configuration>
</execution>
<!--
Copy resources needed for the Hadoop configuration/native library module
-->
<execution>
<id>copy-hadoop-dependencies</id>
<goals>
<goal>copy</goal>
</goals>
<phase>process-resources</phase>
<configuration>
<outputDirectory>${base.wildfly.modules.dir}/org/apache/hadoop/common/main</outputDirectory>
<artifactItems>
<artifactItem>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-auth</artifactId>
</artifactItem>
<artifactItem>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client-api</artifactId>
</artifactItem>
<artifactItem>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client-runtime</artifactId>
</artifactItem>
<dependency>
<groupId>org.apache.hadoop.thirdparty</groupId>
<artifactId>hadoop-shaded-guava</artifactId>
</dependency>
<dependency>
<groupId>org.apache.hadoop.thirdparty</groupId>
<artifactId>hadoop-shaded-protobuf_3_25</artifactId>
</dependency>
<artifactItem>
<groupId>org.apache.hadoop.thirdparty</groupId>
<artifactId>hadoop-shaded-guava</artifactId>
</artifactItem>
<artifactItem>
<groupId>com.fasterxml.woodstox</groupId>
<artifactId>woodstox-core</artifactId>
<version>${version.woodstox-core}</version>
</artifactItem>
<artifactItem>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>stax2-api</artifactId>
<version>${version.woodstox-stax2}</version>
</artifactItem>
<artifactItem>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
</artifactItem>
<artifactItem>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
</artifactItem>
<artifactItem>
<groupId>org.apache.commons</groupId>
<artifactId>commons-configuration2</artifactId>
</artifactItem>
<artifactItem>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</artifactItem>
<artifactItem>
<groupId>org.apache.avro</groupId>
<artifactId>avro</artifactId>
</artifactItem>
</artifactItems>
</configuration>
</execution>
<!--
Copy resources needed to run MapReduce queries
-->
<execution>
<id>copy-mapreduce-dependencies</id>
<goals>
<goal>copy</goal>
</goals>
<phase>process-resources</phase>
<configuration>
<outputDirectory>${project.build.directory}/wildfly/overlay/tools/mapreduce/lib</outputDirectory>
<artifactItems>
<artifactItem>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</artifactItem>
<dependency>
<groupId>jakarta.enterprise</groupId>
<artifactId>jakarta.enterprise.cdi-api</artifactId>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-core</artifactId>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-core-spi</artifactId>
</dependency>
<artifactItem>
<groupId>org.jboss.spec.javax.annotation</groupId>
<artifactId>jboss-annotations-api_1.3_spec</artifactId>
</artifactItem>
<artifactItem>
<groupId>org.jboss.spec.javax.ejb</groupId>
<artifactId>jboss-ejb-api_3.2_spec</artifactId>
</artifactItem>
<artifactItem>
<groupId>org.jboss.spec.javax.enterprise.concurrent</groupId>
<artifactId>jboss-concurrency-api_1.0_spec</artifactId>
</artifactItem>
<artifactItem>
<groupId>org.jboss.spec.javax.interceptor</groupId>
<artifactId>jboss-interceptors-api_1.2_spec</artifactId>
</artifactItem>
<artifactItem>
<groupId>org.jboss.spec.javax.jms</groupId>
<artifactId>jboss-jms-api_2.0_spec</artifactId>
</artifactItem>
<artifactItem>
<groupId>org.jboss.spec.javax.security.jacc</groupId>
<artifactId>jboss-jacc-api_1.5_spec</artifactId>
</artifactItem>
<artifactItem>
<groupId>org.jboss.spec.javax.servlet</groupId>
<artifactId>jboss-servlet-api_4.0_spec</artifactId>
</artifactItem>
<artifactItem>
<groupId>org.jboss.spec.javax.transaction</groupId>
<artifactId>jboss-transaction-api_1.3_spec</artifactId>
</artifactItem>
<artifactItem>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
</artifactItem>
</artifactItems>
</configuration>
</execution>
<execution>
<id>copy-slf4j-api-dependencies</id>
<goals>
<goal>copy</goal>
</goals>
<phase>process-resources</phase>
<configuration>
<outputDirectory>${base.wildfly.system.modules.dir}/org/slf4j/main</outputDirectory>
<artifactItems>
<artifactItem>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</artifactItem>
</artifactItems>
</configuration>
</execution>
<execution>
<id>copy-slf4j-impl-dependencies</id>
<goals>
<goal>copy</goal>
</goals>
<phase>process-resources</phase>
<configuration>
<outputDirectory>${base.wildfly.system.modules.dir}/org/slf4j/impl/main</outputDirectory>
<artifactItems>
<artifactItem>
<groupId>org.jboss.slf4j</groupId>
<artifactId>slf4j-jboss-logmanager</artifactId>
</artifactItem>
</artifactItems>
</configuration>
</execution>
<!--
Unpack Configuration files into the configuration jboss module (this allows easy modification at runtime)
-->
<execution>
<id>unpack-configuration</id>
<goals>
<goal>unpack</goal>
</goals>
<phase>process-resources</phase>
<configuration>
<artifactItems>
<artifactItem>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-deploy-configuration</artifactId>
<version>${project.version}</version>
<classifier>${build.env}</classifier>
</artifactItem>
</artifactItems>
<excludes>META-INF/**</excludes>
<outputDirectory>${project.build.directory}/wildfly/overlay/modules/datawave/webservice/configuration/main/conf</outputDirectory>
</configuration>
</execution>
<!--
Unpack scripts that are in the cached results jar.
-->
<execution>
<id>unpack-cached-results-scripts</id>
<goals>
<goal>unpack</goal>
</goals>
<phase>generate-resources</phase>
<configuration>
<artifactItems>
<artifactItem>
<groupId>gov.nsa.datawave.webservices</groupId>
<artifactId>datawave-ws-cached-results</artifactId>
<version>${project.version}</version>
</artifactItem>
</artifactItems>
<includes>replication_scripts/**</includes>
<outputDirectory>${project.build.directory}/wildfly-tmp/overlay</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-wildfly-resources</id>
<goals>
<goal>copy-resources</goal>
</goals>
<phase>process-resources</phase>
<configuration>
<outputDirectory>${project.build.directory}/wildfly</outputDirectory>
<resources>
<resource>
<directory>${project.basedir}/src/main/wildfly</directory>
<excludes>
<exclude>**/*.p12</exclude>
<exclude>**/*.jks</exclude>
<exclude>**/*.jar</exclude>
<exclude>**/*.h2.db</exclude>
</excludes>
<filtering>true</filtering>
</resource>
<resource>
<directory>${project.basedir}/src/main/wildfly</directory>
<includes>
<include>**/*.p12</include>
<include>**/*.jks</include>
<include>**/*.jar</include>
<include>**/*.h2.db</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<filtering>true</filtering>
<directory>${project.build.directory}/wildfly-tmp</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>