#
#  Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved.
#  
#  DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#  
#  The contents of this file are subject to the terms of either the Universal Permissive License 
#  v 1.0 as shown at https://oss.oracle.com/licenses/upl
#  
#  or the following license:
#  
#  Redistribution and use in source and binary forms, with or without modification, are permitted
#  provided that the following conditions are met:
#  
#  1. Redistributions of source code must retain the above copyright notice, this list of conditions
#  and the following disclaimer.
#  
#  2. Redistributions in binary form must reproduce the above copyright notice, this list of
#  conditions and the following disclaimer in the documentation and/or other materials provided with
#  the distribution.
#  
#  3. Neither the name of the copyright holder nor the names of its contributors may be used to
#  endorse or promote products derived from this software without specific prior written permission.
#  
#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
#  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
#  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
#  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
#  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
#  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
#  WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
FROM eclipse-temurin:17-jammy AS java-17

FROM maven:3.9-eclipse-temurin-21-jammy AS builder

#Until core is on Java 21, we also need a Java 17
COPY --from=java-17 /opt/java/openjdk /opt/java/openjdk-17

VOLUME [ "/root/.m2", "/target" ]

WORKDIR /jmc
COPY core core/
COPY application application/
COPY configuration configuration/
COPY license license/
COPY releng releng/
COPY pom.xml ./
COPY docker/docker-toolchains.xml .mvn/toolchains.xml
RUN grep -rl localhost:8080 releng | xargs sed -i s/localhost:8080/p2:8080/
ENV MAVEN_OPTS="-Xmx1G"

CMD mvn clean install --file core/pom.xml --toolchains .mvn/toolchains.xml \
  && mvn package --toolchains .mvn/toolchains.xml \
  && cp -a /jmc/target/* /target