Загрузка данных


<?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>ru.rshbintech.retail.frontsystem.efr.lib</groupId>
        <artifactId>efr-parent-pom</artifactId>
        <version>3.0.4</version>
    </parent>

    <groupId>ru.rshbintech.retail.frontsystem.efr.biz</groupId>
    <artifactId>credit-claim-service</artifactId>
    <version>${revision}</version>
    <packaging>pom</packaging>
    <name>credit-claim</name>
    <description>Микросервис кредитных заявок</description>

    <modules>
        <module>credit-claim-app</module>
        <module>credit-claim-core</module>
    </modules>

    <scm>
        <url>https://gitlab.rshbdev.ru/rshbintech/retail/frontsystem/efr/biz/credit-claim-service</url>
        <developerConnection>scm:git:https://gitlab.rshbdev.ru/rshbintech/retail/frontsystem/efr/biz/credit-claim-service.git</developerConnection>
        <tag>HEAD</tag>
    </scm>

    <properties>
        <revision>local-SNAPSHOT</revision>
        <java.version>17</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>${java.version}</maven.compiler.source>
        <maven.compiler.target>${java.version}</maven.compiler.target>

<!--        <efr.credit-service-interface.version>local-SNAPSHOT</efr.credit-service-interface.version>-->
        <efr.credit-claim-interface.version>master-SNAPSHOT</efr.credit-claim-interface.version>
        <efr.discovery.version>6.1.1</efr.discovery.version>
        <efr.transport.version>6.1.3</efr.transport.version>
        <efr.utilities.version>6.1.3</efr.utilities.version>
        <efr.infrastructure.logging.version>6.1.1</efr.infrastructure.logging.version>
        <efr.infrastructure.logging-api.version>6.1.1</efr.infrastructure.logging-api.version>
        <efr.settings.version>6.1.2</efr.settings.version>
        <efr.reporting.version>6.1.4</efr.reporting.version>
        <efr.reporting-service.version>6.1.5</efr.reporting-service.version>
        <efr.reporting-light-service-interface.version>6.2.2</efr.reporting-light-service-interface.version>
        <efr.digital-signature.version>6.1.7</efr.digital-signature.version>
        <efr.auth.version>6.1.12</efr.auth.version>
        <efr.esb-interface.version>6.1.15</efr.esb-interface.version>
        <efr.asoa.version>6.1.7</efr.asoa.version>
        <efr.dict.version>6.1.7</efr.dict.version>
        <efr.clients.version>6.1.7</efr.clients.version>
        <efr.client-data-authorization.version>6.1.1</efr.client-data-authorization.version>
        <efr.credit-products.version>6.1.1</efr.credit-products.version>
        <efr.bpm.version>6.1.9</efr.bpm.version>
        <efr.product.info.version>6.1.7</efr.product.info.version>
        <efr.biometry.version>6.1.0</efr.biometry.version>
        <efr.operations.version>6.1.4</efr.operations.version>
        <efr.saf.support.version>6.1.1</efr.saf.support.version>
        <efr.attachments-service.version>6.1.5</efr.attachments-service.version>
        <efr.email-support.version>6.1.2</efr.email-support.version>
        <dbo.support.version>6.1.5</dbo.support.version>
        <efr.handbook-ms.version>6.1.2</efr.handbook-ms.version>
        <efr.healthcheck.version>6.2.2</efr.healthcheck.version>
        <efr.mortgage.version>6.1.4</efr.mortgage.version>
        <metrics.version>6.1.1</metrics.version>
        <itsm.version>6.1.11</itsm.version>
        <autocomplete-service.version>6.1.9</autocomplete-service.version>
        <efr.sms-support.version>6.1.3</efr.sms-support.version>
        <efr.csp-support.version>6.1.1</efr.csp-support.version>
        <efr.private-rest-model.version>DRAFT.2.28</efr.private-rest-model.version>
        <digital-profile-client.version>6.1.6</digital-profile-client.version>
        <javax.el.version>3.0.0</javax.el.version>
        <opencsv.version>2.4</opencsv.version>
        <org.apache.pdfbox.version>2.0.27</org.apache.pdfbox.version>
        <camunda.version>7.8.0</camunda.version>
        <collections.version>3.2.2</collections.version>
        <xml-apis.version>1.3.04</xml-apis.version>
        <objenesis.version>3.2</objenesis.version>
        <commons.version>2.6</commons.version>
        <swagger-annotations.version>2.2.4</swagger-annotations.version>
        <copy-rename-maven-plugin.version>1.0</copy-rename-maven-plugin.version>
        <exec-maven-plugin.version>1.5.0</exec-maven-plugin.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>ru.rshbintech.retail.frontsystem.efr.infrastructure</groupId>
                <artifactId>asoa-model</artifactId>
                <version>${efr.asoa.version}</version>
            </dependency>
            <dependency>
                <groupId>ru.rshbintech.retail.frontsystem.efr.infrastructure</groupId>
                <artifactId>asoa-support</artifactId>
                <version>${efr.asoa.version}</version>
            </dependency>
            <dependency>
                <groupId>ru.rshbintech.retail.frontsystem.efr.biz</groupId>
                <artifactId>efr-clients-data-service-client</artifactId>
                <version>${efr.clients.version}</version>
            </dependency>

            <dependency>
                <groupId>ru.rshbintech.retail.frontsystem.efr.infrastructure</groupId>
                <artifactId>reporting-service-support</artifactId>
                <version>${efr.reporting-service.version}</version>
            </dependency>

            <dependency>
                <groupId>ru.rshbintech.retail.frontsystem.efr.lib</groupId>
                <artifactId>reporting-support</artifactId>
                <version>${efr.reporting.version}</version>
            </dependency>

            <dependency>
                <groupId>ru.softlab.ibrs.modules</groupId>
                <artifactId>private-rest-model</artifactId>
                <version>${efr.private-rest-model.version}</version>
            </dependency>
            <dependency>
                <groupId>ru.rshbintech.retail.frontsystem.efr.infrastructure</groupId>
                <artifactId>auth-service-support</artifactId>
                <version>${efr.auth.version}</version>
            </dependency>
            <dependency>
                <groupId>ru.rshbintech.retail.frontsystem.efr.infrastructure</groupId>
                <artifactId>auth-service-test</artifactId>
                <version>${efr.auth.version}</version>
            </dependency>
            <dependency>
                <groupId>ru.rshbintech.retail.frontsystem.efr.infrastructure</groupId>
                <artifactId>bpm-support</artifactId>
                <version>${efr.bpm.version}</version>
            </dependency>
            <dependency>
                <groupId>ru.rshbintech.retail.frontsystem.efr.infrastructure</groupId>
                <artifactId>bpm-model</artifactId>
                <version>${efr.bpm.version}</version>
            </dependency>
            <dependency>
                <groupId>ru.rshbintech.retail.frontsystem.efr.infrastructure</groupId>
                <artifactId>common-settings-client</artifactId>
                <version>${efr.settings.version}</version>
            </dependency>
            <dependency>
                <groupId>ru.rshbintech.retail.frontsystem.efr.biz</groupId>
                <artifactId>efr-clients-data-service-model</artifactId>
                <version>${efr.clients.version}</version>
            </dependency>

            <dependency>
                <groupId>ru.rshbintech.retail.frontsystem.efr.lib</groupId>
                <artifactId>transport-support</artifactId>
                <version>${efr.transport.version}</version>
            </dependency>
            <dependency>
                <groupId>ru.rshbintech.retail.frontsystem.efr.lib</groupId>
                <artifactId>transport-test</artifactId>
                <version>${efr.transport.version}</version>
            </dependency>
            <dependency>
                <groupId>ru.rshbintech.retail.frontsystem.efr.lib</groupId>
                <artifactId>logging-api</artifactId>
                <version>${efr.infrastructure.logging-api.version}</version>
            </dependency>
            <dependency>
                <groupId>ru.rshbintech.retail.frontsystem.efr.lib</groupId>
                <artifactId>utilities</artifactId>
                <version>${efr.utilities.version}</version>
            </dependency>
            <dependency>
                <groupId>ru.rshbintech.retail.frontsystem.efr.infrastructure</groupId>
                <artifactId>esb-support</artifactId>
                <version>${efr.esb-interface.version}</version>
            </dependency>
            <dependency>
                <groupId>ru.rshbintech.retail.frontsystem.efr.infrastructure</groupId>
                <artifactId>common-dict-client</artifactId>
                <version>${efr.dict.version}</version>
            </dependency>
<!--            <dependency>-->
<!--                <groupId>ru.rshbintech.retail.frontsystem.efr.biz</groupId>-->
<!--                <artifactId>credit-service-model</artifactId>-->
<!--                <version>${efr.credit-service-interface.version}</version>-->
<!--            </dependency>-->
            <dependency>
                <groupId>ru.rshbintech.retail.frontsystem.efr.lib</groupId>
                <artifactId>attachments-service-support</artifactId>
                <version>${efr.attachments-service.version}</version>
            </dependency>
            <dependency>
                <groupId>ru.rshbintech.retail.frontsystem.efr.lib</groupId>
                <artifactId>client-data-authorization-support</artifactId>
                <version>${efr.client-data-authorization.version}</version>
            </dependency>
            <dependency>
                <groupId>ru.rshbintech.retail.frontsystem.efr.infrastructure</groupId>
                <artifactId>esb-model</artifactId>
                <version>${efr.esb-interface.version}</version>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${lombok.version}</version>
            </dependency>
            <dependency>
                <groupId>ru.rshbintech.retail.frontsystem.efr.biz</groupId>
                <artifactId>operations-service-support</artifactId>
                <version>${efr.operations.version}</version>
            </dependency>
            <dependency>
                <groupId>ru.rshbintech.retail.frontsystem.efr.biz</groupId>
                <artifactId>operations-service-client</artifactId>
                <version>${efr.operations.version}</version>
            </dependency>

            <dependency>
                <groupId>ru.rshbintech.retail.frontsystem.efr.biz</groupId>
                <artifactId>mortgage-client</artifactId>
                <version>${efr.mortgage.version}</version>
            </dependency>

            <dependency>
                <groupId>ru.rshbintech.retail.frontsystem.efr.biz</groupId>
                <artifactId>mortgage-model</artifactId>
                <version>${efr.mortgage.version}</version>
            </dependency>

            <dependency>
                <groupId>ru.rshbintech.retail.frontsystem.efr.biz</groupId>
                <artifactId>efr-clients-data-service-support</artifactId>
                <version>${efr.clients.version}</version>
            </dependency>

            <dependency>
                <groupId>ru.rshbintech.retail.frontsystem.efr.infrastructure</groupId>
                <artifactId>common-settings-support</artifactId>
                <version>${efr.settings.version}</version>
            </dependency>

            <dependency>
                <groupId>commons-collections</groupId>
                <artifactId>commons-collections</artifactId>
                <version>${collections.version}</version>
            </dependency>
            <dependency>
                <groupId>ru.rshbintech.retail.frontsystem.efr.infrastructure</groupId>
                <artifactId>proxy-esb-client</artifactId>
                <version>${efr.esb-interface.version}</version>
            </dependency>
            <dependency>
                <groupId>xml-apis</groupId>
                <artifactId>xml-apis</artifactId>
                <version>${xml-apis.version}</version>
            </dependency>
            <dependency>
                <groupId>org.objenesis</groupId>
                <artifactId>objenesis</artifactId>
                <version>${objenesis.version}</version>
            </dependency>
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-validator</artifactId>
                <version>${hibernate-validator.version}</version>
            </dependency>
            <dependency>
                <groupId>ru.rshbintech.retail.frontsystem.efr.biz</groupId>
                <artifactId>itsm-transfer-service-model</artifactId>
                <version>${itsm.version}</version>
            </dependency>
            <dependency>
                <groupId>org.hamcrest</groupId>
                <artifactId>hamcrest</artifactId>
                <version>${hamcrest.version}</version>
            </dependency>

            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>${commons.version}</version>
            </dependency>
            <dependency>
                <groupId>io.swagger.core.v3</groupId>
                <artifactId>swagger-annotations</artifactId>
                <version>${swagger-annotations.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <finalName>credit</finalName>

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <argLine>
                        -Dfile.encoding=UTF-8
                        --add-opens=java.base/java.util=ALL-UNNAMED
                        --add-opens=java.base/java.lang=ALL-UNNAMED
                        --add-opens=java.base/java.lang.reflect=ALL-UNNAMED
                        --illegal-access=permit
                    </argLine>
                    <includes>
                        <include>**/*Test.java</include>
                    </includes>
                    <excludes>
                        <exclude>**/*IntegrationTest.java</exclude>
                    </excludes>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>flatten-maven-plugin</artifactId>
                <configuration>
                    <updatePomFile>true</updatePomFile>
                    <flattenMode>resolveCiFriendliesOnly</flattenMode>
                </configuration>
                <executions>
                    <execution>
                        <id>flatten</id>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>flatten</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>flatten.clean</id>
                        <phase>clean</phase>
                        <goals>
                            <goal>clean</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>local</id>
            <properties>
                <profileActive>local</profileActive>
            </properties>
        </profile>
        <profile>
            <id>prod</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <profileActive>prod</profileActive>
            </properties>
        </profile>
    </profiles>
</project>

ARG IMAGE_NAME__MAVEN
ARG IMAGE_TAG__MAVEN
ARG IMAGE_NAME__JRE
ARG IMAGE_TAG__JRE
ARG IMAGE_NAME__TOMCAT
ARG IMAGE_TAG__TOMCAT
ARG IMAGE_NAME__TOMEE
ARG IMAGE_TAG__TOMEE


FROM ${IMAGE_NAME__MAVEN}:${IMAGE_TAG__MAVEN} as build
ARG ARTIFACT_VERSION=local-SNAPSHOT
RUN useradd -d /app -m -u 1001 app && \
    mkdir /app/.m2 && \
    cp /root/.m2/settings.xml /app/.m2/settings.xml && \
    chown -R app:app /app
USER app
WORKDIR /app
COPY --chown=app:app pom.xml .
COPY --chown=app:app "credit-claim-app/" "credit-claim-app/"
COPY --chown=app:app "credit-claim-core/" "credit-claim-core/"
RUN mvn versions:set-property -Dproperty=artifactVersion -DnewVersion=${ARTIFACT_VERSION}
RUN mvn versions:set-property -Dproperty=revision -DnewVersion=${ARTIFACT_VERSION}
RUN mvn ${MAVEN_CLI_OPTS} clean compile -DskipTests



FROM build as test
RUN mvn ${MAVEN_CLI_OPTS} test
RUN export COV_REP_FILE=target/site/jacoco/index.html && [ -f "$COV_REP_FILE" ] && cat $COV_REP_FILE || true


FROM build as package
RUN mvn ${MAVEN_CLI_OPTS} package -DskipTests
RUN mvn ${MAVEN_CLI_OPTS} deploy -DskipTests

FROM ${IMAGE_NAME__JRE}:${IMAGE_TAG__JRE} as runtime
COPY *ca-trust/ /opt/ca-trust
RUN find /opt/ca-trust -type f -name "*.pem" -print0 | xargs -0rn 1 -I {} \
    $JAVA_HOME/bin/keytool -import -noprompt -trustcacerts \
    -alias "$(basename -s .pem {})" \
    -file "{}" \
    -keystore $JAVA_HOME/lib/security/cacerts \
    -storepass changeit



COPY --from=package /app/target/credit-claim-service.jar /app
USER app
CMD exec java ${JAVA_OPTS} ${JAVA_INTERNAL_DEBUG_OPTS} -jar credit-claim-service.jar