<?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">
    <parent>
        <artifactId>dapeng-container</artifactId>
        <groupId>com.github.dapeng-soa</groupId>
        <version>2.2.2</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>dapeng-container-impl</artifactId>

    <properties>
        <devName>dapeng-container</devName>
        <dapeng-version>2.2.2</dapeng-version>
    </properties>

    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>

    <profiles>
        <profile>
            <id>default</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>

        <profile>
            <id>dev</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>

            <build>
                <resources>
                    <resource>
                        <filtering>true</filtering>
                        <directory>${basedir}/src/main/command</directory>
                        <includes>
                            <include>startup.sh</include>
                            <include>startup_dapeng.sh</include>
                            <include>shutdown.sh</include>
                        </includes>
                        <targetPath>${project.build.directory}/${devName}/bin</targetPath>
                    </resource>
                    <resource>
                        <filtering>true</filtering>
                        <directory>${basedir}/src/main/resources</directory>
                        <includes>
                            <include>logback.xml</include>
                        </includes>
                        <targetPath>${project.build.directory}/${devName}/conf</targetPath>
                    </resource>
                    <resource>
                        <filtering>false</filtering>
                        <directory>${basedir}/src/main/resources</directory>
                    </resource>
                </resources>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-dependency-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>copy-dependencies-0</id>
                                <phase>prepare-package</phase>
                                <goals>
                                    <goal>copy-dependencies</goal>
                                </goals>
                                <configuration>
                                    <outputDirectory>${project.build.directory}/${devName}/lib
                                    </outputDirectory>
                                    <overWriteReleases>false</overWriteReleases>
                                    <overWriteSnapshots>false</overWriteSnapshots>
                                    <overWriteIfNewer>true</overWriteIfNewer>
                                    <includeArtifactIds>
                                        dapeng-core,dapeng-transaction-api
                                    </includeArtifactIds>
                                </configuration>
                            </execution>
                            <execution>
                                <id>copy-dependencies-1</id>
                                <phase>prepare-package</phase>
                                <goals>
                                    <goal>copy-dependencies</goal>
                                </goals>
                                <configuration>
                                    <outputDirectory>${project.build.directory}/${devName}/bin/lib
                                    </outputDirectory>
                                    <overWriteReleases>false</overWriteReleases>
                                    <overWriteSnapshots>false</overWriteSnapshots>
                                    <overWriteIfNewer>true</overWriteIfNewer>
                                    <excludeArtifactIds>
                                        dapeng-core,dapeng-transaction-api,commons-logging,dapeng-message-api,dapeng-api-doc,dapeng-message-kafka,kafka_2.12,kafka-clients,jopt-simple,metrics-core
                                    </excludeArtifactIds>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>

                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <version>1.8</version>
                        <executions>
                            <execution>
                                <id>create-empty-directory</id>
                                <phase>process-classes</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <configuration>
                                    <tasks>
                                        <mkdir dir="${project.build.directory}/${devName}/apps"/>
                                        <mkdir dir="${project.build.directory}/${devName}/logs"/>
                                        <mkdir dir="${project.build.directory}/${devName}/plugin"/>
                                    </tasks>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>

                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-jar-plugin</artifactId>
                        <version>2.3.2</version>
                        <configuration>
                            <outputDirectory>${project.build.directory}/${devName}/bin/lib
                            </outputDirectory>
                        </configuration>
                    </plugin>

                    <!--<plugin>-->
                        <!--<groupId>com.spotify</groupId>-->
                        <!--<artifactId>docker-maven-plugin</artifactId>-->
                        <!--<version>0.4.10</version>-->
                        <!--<configuration>-->
                            <!--<imageName>docker.io/dapengsoa/dapeng-container:${dapeng-version}</imageName>-->
                            <!--<dockerDirectory>${basedir}</dockerDirectory>-->
                        <!--</configuration>-->
                        <!--<executions>-->
                            <!--<execution>-->
                                <!--<id>build-image</id>-->
                                <!--<phase>package</phase>-->
                                <!--<goals>-->
                                    <!--<goal>build</goal>-->
                                <!--</goals>-->
                            <!--</execution>-->
                        <!--</executions>-->
                    <!--</plugin>-->
                </plugins>
            </build>
        </profile>

        <profile>
            <id>dockerBuild</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>

            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <version>1.8</version>
                <executions>
                    <execution>
                        <id>copy files</id>
                        <phase>package</phase>
                        <configuration>
                            <!-- copy child's output files into target/docker -->
                            <tasks>
                                <copy todir="${basedir}/docker/dapeng-container/">
                                   <fileset dir="${project.build.directory}/dapeng-container/" />
                                </copy>
                            </tasks>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>clean up the docker folder</id>
                        <phase>clean</phase>
                        <configuration>
                            <!-- delete folder under docker -->
                            <tasks>
                                <delete dir="${basedir}/docker/dapeng-container"/>
                            </tasks>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
                    </plugin>

                    <plugin>
                        <groupId>com.spotify</groupId>
                        <artifactId>docker-maven-plugin</artifactId>
                        <version>0.4.10</version>
                        <configuration>
                            <imageName>docker.io/dapengsoa/dapeng-container:${dapeng-version}</imageName>
                            <dockerDirectory>${basedir}/docker</dockerDirectory>
                        </configuration>
                        <executions>
                            <execution>
                                <id>build-image</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>build</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

    </profiles>
    
    <dependencies>
        <dependency>
            <groupId>com.github.dapeng-soa</groupId>
            <artifactId>dapeng-container-api</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>com.github.dapeng-soa</groupId>
            <artifactId>dapeng-utils</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>com.github.dapeng-soa</groupId>
            <artifactId>dapeng-core</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>com.github.dapeng-soa</groupId>
            <artifactId>dapeng-spring</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>com.github.dapeng-soa</groupId>
            <artifactId>dapeng-transaction-api</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>com.github.dapeng-soa</groupId>
            <artifactId>dapeng-api-doc</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>com.github.dapeng-soa</groupId>
            <artifactId>dapeng-message-kafka</artifactId>
            <version>${project.version}</version>
        </dependency>
        <!--counter-->
        <dependency>
            <groupId>com.github.dapeng-soa</groupId>
            <artifactId>dapeng-counter-api</artifactId>
            <version>${project.version}</version>
        </dependency>

        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-all</artifactId>
        </dependency>

        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
        </dependency>

        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>

        <dependency>
            <groupId>org.codehaus.janino</groupId>
            <artifactId>janino</artifactId>
        </dependency>

        <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>2.2.2</version>
        </dependency>
    </dependencies>
</project>
