<?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>
        <groupId>com.alipay.sofa</groupId>
        <artifactId>sofaboot-dependencies</artifactId>
        <version>3.0.0</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>rpc-sofa-boot-plugin</artifactId>
    <version>6.0.0</version>

    <properties>
        <ark.plugin.name>rpc-sofa-boot-plugin</ark.plugin.name>
        <rpc.all.version>5.4.7</rpc.all.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.alipay.sofa</groupId>
            <artifactId>rpc-sofa-boot-starter</artifactId>
            <version>${project.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>com.alipay.sofa</groupId>
                    <artifactId>sofa-rpc-all</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>com.alipay.sofa</groupId>
            <artifactId>healthcheck-sofa-boot-starter</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>com.alipay.sofa</groupId>
            <artifactId>sofa-ark-spi</artifactId>
            <version>${sofa.ark.version}</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>com.alipay.sofa</groupId>
            <artifactId>sofa-rpc-all</artifactId>
            <version>${rpc.all.version}</version>
            <optional>true</optional>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.10.4</version>
                <configuration>
                    <encoding>${project.build.sourceEncoding}</encoding>
                    <detectOfflineLinks>true</detectOfflineLinks>
                    <breakiterator>true</breakiterator>
                    <author>false</author>
                    <keywords>true</keywords>
                    <quiet>true</quiet>
                </configuration>
                <executions>
                    <execution>
                        <id>attach-javadocs</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>3.0.1</version>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>com.googlecode.maven-java-formatter-plugin</groupId>
                <artifactId>maven-java-formatter-plugin</artifactId>
                <version>0.4</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>format</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <configFile>${user.dir}/tools/codestyle/formatter.xml</configFile>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>com.mycila</groupId>
                <artifactId>license-maven-plugin</artifactId>
                <version>3.0</version>
                <executions>
                    <!-- https://github.com/mycila/license-maven-plugin#maven-license-plugin -->
                    <execution>
                        <phase>process-sources</phase>
                        <goals>
                            <!-- among available goals remove, format, check, help  -->
                            <goal>format</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <!-- session.executionRootDirectory resolves properly even with nested modules -->
                    <header>${user.dir}/tools/codestyle/HEADER</header>
                    <includes>
                        <include>**/src/main/java/**</include>
                        <include>**/src/test/java/**</include>
                    </includes>
                    <strictCheck>true</strictCheck>
                    <mapping>
                        <java>SLASHSTAR_STYLE</java>
                    </mapping>
                </configuration>
            </plugin>

            <plugin>
                <groupId>com.alipay.sofa</groupId>
                <artifactId>sofa-ark-plugin-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>default-cli</id>
                        <goals>
                            <goal>ark-plugin</goal>
                        </goals>

                        <configuration>
                            <priority>2000</priority>
                            <pluginName>${ark.plugin.name}</pluginName>
                            <classifier> </classifier>

                            <exported>
                                <packages>
                                    <package>com.alipay.sofa.rpc.api.*</package>
                                    <package>com.alipay.sofa.rpc.base.*</package>
                                    <package>com.alipay.sofa.rpc.bootstrap.*</package>
                                    <package>com.alipay.sofa.rpc.client.*</package>
                                    <package>com.alipay.sofa.rpc.codec.*</package>
                                    <package>com.alipay.sofa.rpc.common.*</package>
                                    <package>com.alipay.sofa.rpc.config.*</package>
                                    <package>com.alipay.sofa.rpc.context.*</package>
                                    <package>com.alipay.sofa.rpc.core.*</package>
                                    <package>com.alipay.sofa.rpc.event.*</package>
                                    <package>com.alipay.sofa.rpc.ext.*</package>
                                    <package>com.alipay.sofa.rpc.filter.*</package>
                                    <package>com.alipay.sofa.rpc.invoke.*</package>
                                    <package>com.alipay.sofa.rpc.listener.*</package>
                                    <package>com.alipay.sofa.rpc.log.*</package>
                                    <package>com.alipay.sofa.rpc.message.*</package>
                                    <package>com.alipay.sofa.rpc.metrics.*</package>
                                    <package>com.alipay.sofa.rpc.module.*</package>
                                    <package>com.alipay.sofa.rpc.protocol.*</package>
                                    <package>com.alipay.sofa.rpc.proxy.*</package>
                                    <package>com.alipay.sofa.rpc.registry.*</package>
                                    <package>com.alipay.sofa.rpc.server.*</package>
                                    <package>com.alipay.sofa.rpc.tracer.*</package>
                                    <package>com.alipay.sofa.rpc.transport.*</package>
                                    <package>com.alipay.hessian.generic.model.*</package>
                                    <package>com.alibaba.dubbo.*</package>
                                    <package>org.I0Itec.zkclient.*</package>
                                    <package>javax.ws.rs.*</package>
                                </packages>

                            </exported>

                            <imported>
                                <packages>
                                    <package>com.alipay.common.tracer.core.*</package>
                                    <package>io.opentracing.*</package>
                                </packages>
                            </imported>

                            <excludeGroupIds>
                                <excludeGroupId>org.springframework</excludeGroupId>
                                <excludeGroupId>org.springframework.boot</excludeGroupId>
                                <excludeGroupId>org.apache.tomcat.embed</excludeGroupId>
                            </excludeGroupIds>

                            <excludes>
                                <exclude>com.alipay.sofa:healthcheck-sofa-boot-starter</exclude>
                            </excludes>

                            <shades>
                                <shade>com.alipay.sofa:rpc-sofa-boot-starter</shade>
                            </shades>
                        </configuration>
                    </execution>

                </executions>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>default</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <repositories>
                <repository>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                    <id>maven-snapshot</id>
                    <url>https://oss.sonatype.org/content/repositories/snapshots</url>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                    <id>maven-snapshot</id>
                    <url>https://oss.sonatype.org/content/repositories/snapshots</url>
                </pluginRepository>
            </pluginRepositories>
        </profile>
    </profiles>

</project>
