blob: af481ab06be4958ca92687458dce016a6fc5e6a7 [file] [log] [blame]
<?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.
-->
<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.apache.james</groupId>
<artifactId>james-server</artifactId>
<version>3.7.3-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<artifactId>james-server-jpa-smtp-app</artifactId>
<packaging>jar</packaging>
<name>Apache James :: Server :: JPA SMTP only :: App</name>
<description>An advanced email server - JPA backend for SMTP with guice injection</description>
<properties>
<jpa.includes>empty</jpa.includes>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>${james.groupId}</groupId>
<artifactId>james-server-guice</artifactId>
<version>${project.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>${james.groupId}</groupId>
<artifactId>apache-james-backends-jpa</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
<artifactId>james-server-cli</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
<artifactId>james-server-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
<artifactId>james-server-data-ldap</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
<artifactId>james-server-guice-common</artifactId>
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
<artifactId>james-server-guice-common</artifactId>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
<artifactId>james-server-guice-data-ldap</artifactId>
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
<artifactId>james-server-guice-es-resporter</artifactId>
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
<artifactId>james-server-guice-smtp</artifactId>
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
<artifactId>james-server-guice-webadmin</artifactId>
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
<artifactId>james-server-guice-webadmin-data</artifactId>
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
<artifactId>james-server-guice-webadmin-mailqueue</artifactId>
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
<artifactId>james-server-guice-webadmin-mailrepository</artifactId>
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
<artifactId>james-server-jpa-common-guice</artifactId>
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
<artifactId>james-server-jpa-common-guice</artifactId>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
<artifactId>james-server-mailets</artifactId>
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
<artifactId>james-server-testing</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
<artifactId>queue-activemq-guice</artifactId>
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
<artifactId>testing-base</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</dependency>
<dependency>
<groupId>ch.qos.logback.contrib</groupId>
<artifactId>logback-jackson</artifactId>
</dependency>
<dependency>
<groupId>ch.qos.logback.contrib</groupId>
<artifactId>logback-json-classic</artifactId>
</dependency>
<dependency>
<groupId>com.linagora</groupId>
<artifactId>logback-elasticsearch-appender</artifactId>
</dependency>
<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>rest-assured</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
</dependency>
<dependency>
<groupId>org.awaitility</groupId>
<artifactId>awaitility</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<version>2.7.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>mariadb</artifactId>
<version>${testcontainers.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>com.googlecode.maven-download-plugin</groupId>
<artifactId>download-maven-plugin</artifactId>
<executions>
<execution>
<id>install-glowroot</id>
<goals>
<goal>wget</goal>
</goals>
<phase>package</phase>
<configuration>
<url>https://github.com/glowroot/glowroot/releases/download/v0.13.6/glowroot-0.13.6-dist.zip</url>
<unpack>true</unpack>
<outputDirectory>${project.build.directory}</outputDirectory>
<md5>f9026dbab1fbade067ca549913802fcc</md5>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-glowroot-resources</id>
<goals>
<goal>copy-resources</goal>
</goals>
<phase>package</phase>
<configuration>
<outputDirectory>${basedir}/target/glowroot</outputDirectory>
<resources>
<resource>
<directory>src/main/glowroot</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<configuration>
<from>
<image>eclipse-temurin:11-jre-focal</image>
</from>
<to>
<image>apache/james</image>
<tags>
<tag>jpa-smtp-latest</tag>
</tags>
</to>
<container>
<mainClass>org.apache.james.JPAJamesServerMain</mainClass>
<ports>
<port>80</port> <!-- JMAP -->
<port>143</port> <!-- IMAP -->
<port>993</port> <!-- IMAPS -->
<port>25</port> <!-- SMTP -->
<port>465</port> <!-- SMTP + STARTTLS -->
<port>587</port> <!-- SMTPS -->
<port>4000</port> <!-- GLOWROOT, if activated -->
<port>8000</port> <!-- WEBADMIN -->
</ports>
<appRoot>/root</appRoot>
<jvmFlags>
<jvmFlag>-Dlogback.configurationFile=/root/conf/logback.xml</jvmFlag>
<jvmFlag>-Dworking.directory=/root/</jvmFlag>
<!-- Prevents Logjam (CVE-2015-4000) -->
<jvmFlag>-Djdk.tls.ephemeralDHKeySize=2048</jvmFlag>
</jvmFlags>
<creationTime>USE_CURRENT_TIMESTAMP</creationTime>
<volumes>
<volume>/logs</volume>
<volume>/root/conf</volume>
<!-- Data for ActiveMQ mailQueue -->
<volume>/root/var</volume>
<!-- Data for derby database -->
<volume>/var/store</volume>
<volume>/root/glowroot/plugins</volume>
<volume>/root/glowroot/data</volume>
<volume>/root/extensions-jars</volume>
</volumes>
</container>
<extraDirectories>
<paths>
<path>
<from>sample-configuration</from>
<into>/root/conf</into>
</path>
<path>
<from>docker-configuration</from>
<into>/root/conf</into>
</path>
<path>
<from>src/main/scripts</from>
<into>/usr/bin</into>
</path>
<path>
<from>target/glowroot</from>
<into>/root</into>
</path>
<path>
<from>src/main/extensions-jars</from>
<into>/root/extensions-jars</into>
</path>
</paths>
<permissions>
<permission>
<file>/usr/bin/james-cli</file>
<mode>755</mode> <!-- Read/write/execute for owner, read/execute for group/other -->
</permission>
</permissions>
</extraDirectories>
</configuration>
<executions>
<execution>
<goals>
<goal>buildTar</goal>
</goals>
<phase>package</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<goals>
<goal>copy-dependencies</goal>
</goals>
<phase>package</phase>
<configuration>
<includeScope>compile</includeScope>
<includeScope>runtime</includeScope>
<outputDirectory>${project.build.directory}/${project.artifactId}.lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>default-jar</id>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<finalName>${project.artifactId}</finalName>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>${project.artifactId}.lib/</classpathPrefix>
<mainClass>org.apache.james.JPAJamesServerMain</mainClass>
<useUniqueVersions>false</useUniqueVersions>
</manifest>
<manifestEntries>
<Specification-Title>Apache James JPA-SMTP server Application</Specification-Title>
<Specification-Version>${project.version}</Specification-Version>
<Specification-Vendor>The Apache Software Foundation</Specification-Vendor>
<Implementation-Title>Apache James JPA-SMTP server Application</Implementation-Title>
<Implementation-Version>${project.version}</Implementation-Version>
<Implementation-Vendor>The Apache Software Foundation</Implementation-Vendor>
<Implementation-Vendor-Id>org.apache</Implementation-Vendor-Id>
<url>https://james.apache.org/server</url>
</manifestEntries>
</archive>
</configuration>
</execution>
<execution>
<id>test-jar</id>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorSourceDirectory>src/assemble/</descriptorSourceDirectory>
<tarLongFileMode>gnu</tarLongFileMode>
<appendAssemblyId>false</appendAssemblyId>
<finalName>james-server-jpa-smtp-app</finalName>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<goals>
<goal>single</goal>
</goals>
<phase>package</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>