<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>com.mobidevelop.robovm</groupId>
    <artifactId>robovm-compiler-parent</artifactId>
    <version>2.3.3</version>
  </parent>

  <artifactId>robovm-rt</artifactId>
  <name>RoboVM Runtime Library</name>
  <packaging>jar</packaging>

  <licenses>
    <license>
      <name>The Apache Software License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

  <build>
    <resources>
      <resource><directory>robovm/src/main/resources</directory></resource>
      <resource><directory>libcore/crypto/src/main/resources</directory></resource>
      <resource><directory>libcore/dalvik/src/main/resources</directory></resource>
      <resource><directory>libcore/json/src/main/resources</directory></resource>
      <resource><directory>libcore/libdvm/src/main/resources</directory></resource>
      <resource><directory>libcore/luni/src/main/resources</directory></resource>
      <resource><directory>libcore/xml/src/main/resources</directory></resource>
      <resource><directory>external/apache-xml/src/main/resources</directory></resource>
      <resource><directory>external/bouncycastle/bcpkix/src/main/resources</directory></resource>
      <resource><directory>external/bouncycastle/bcprov/src/main/resources</directory></resource>
      <resource><directory>external/javasqlite/src/main/resources</directory></resource>
      <resource><directory>external/okhttp/src/main/resources</directory></resource>
      <resource>
        <directory>libcore/luni/src/main/java</directory>
        <includes>
          <include>**/*.properties</include>
        </includes>
      </resource>
      <resource>
        <directory>external/apache-xml/src/main/java</directory>
        <includes>
          <include>**/*.properties</include>
        </includes>
      </resource>
      <resource>
        <directory>robovm/src/filtered-java/</directory>
        <targetPath>${project.build.directory}/generated-sources/filtered-java</targetPath>
        <filtering>true</filtering>
        <includes>
          <include>**/*.java</include>
        </includes>
      </resource>
    </resources>
    
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>2.4</version>
        <configuration>
          <excludes>
            <exclude>org/bouncycastle/**</exclude>
            <exclude>org/conscrypt/**</exclude>
            <exclude>com/squareup/**</exclude>
          </excludes>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>1.7</version>
        <executions>
          <execution>
            <phase>generate-sources</phase>
            <goals><goal>add-source</goal></goals>
            <configuration>
              <sources>
                <source>${project.build.directory}/generated-sources/filtered-java</source>
                <source>robovm/src/main/java</source>
                <source>libcore/crypto/src/main/java</source>
                <source>libcore/dalvik/src/main/java</source>
                <source>libcore/json/src/main/java</source>
                <source>libcore/libdvm/src/main/java</source>
                <source>libcore/luni/src/main/java</source>
                <source>libcore/xml/src/main/java</source>
                <source>external/apache-http/src</source>
                <source>external/apache-xml/src/main/java</source>
                <source>external/bouncycastle/bcpkix/src/main/java</source>
                <source>external/bouncycastle/bcprov/src/main/java</source>
                <source>external/javasqlite/src/main/java</source>
                <source>external/okhttp/src/main/java</source>
                <source>external/okhttp/android/main/java</source>
              </sources>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <configuration>
          <excludes>
            <exclude>org/bouncycastle/**/*</exclude>
            <exclude>org/conscrypt/**/*</exclude>
            <exclude>com/squareup/**/*</exclude>
          </excludes>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <configuration>
          <excludePackageNames>org.bouncycastle.*</excludePackageNames>
          <excludePackageNames>org.conscrypt.*</excludePackageNames>
          <excludePackageNames>com.squareup.*</excludePackageNames>
          <maxmemory>2g</maxmemory>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.7</version>
        <executions>
          <execution>
            <phase>process-classes</phase>
            <configuration>
              <target>
                <taskdef name="jarjar" classname="com.tonicsystems.jarjar.JarJarTask" classpathref="maven.plugin.classpath" />

                <!-- Use jarjar to change the package name org.bouncycastle to com.android.org.bouncycastle and 
                     org.conscrypt to com.android.org.conscrypt and save the result to target/jarjar.jar -->
                <jarjar jarfile="${project.build.directory}/jarjar.jar">
                  <fileset dir="${project.build.outputDirectory}">
                    <include name="org/bouncycastle/**" />
                    <include name="org/conscrypt/**" />
                    <include name="com/squareup/**" />
                  </fileset>
                  <rule pattern="org.bouncycastle.**" result="com.android.@0" />
                  <rule pattern="org.conscrypt.**" result="com.android.@0" />
                  <rule pattern="com.squareup.**" result="com.android.@1" />
                </jarjar>

                <!-- Explode the jarjar jar to target/classes -->
                <unzip src="${project.build.directory}/jarjar.jar" dest="${project.build.directory}/classes">
                  <patternset>
                    <exclude name="META-INF/**" />
                    <exclude name="org/bouncycastle/**" />
                    <exclude name="org/conscrypt/**" />
                    <exclude name="com/squareup/**" />
                  </patternset>
                </unzip>

              </target>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
        <dependencies>
          <dependency>
            <groupId>com.googlecode.jarjar</groupId>
            <artifactId>jarjar</artifactId>
            <version>1.3</version>
          </dependency>
        </dependencies>
      </plugin>
    </plugins>

    <pluginManagement>
      <plugins>
        <plugin>
         <groupId>org.eclipse.m2e</groupId>
         <artifactId>lifecycle-mapping</artifactId>
         <version>1.0.0</version>
         <configuration>
           <lifecycleMappingMetadata>
             <pluginExecutions>
               <pluginExecution>
                 <pluginExecutionFilter>
                   <groupId>org.apache.maven.plugins</groupId>
                   <artifactId>maven-antrun-plugin</artifactId>
                   <versionRange>[1.0.0,)</versionRange>
                   <goals>
                     <goal>run</goal>
                   </goals>
                 </pluginExecutionFilter>
                 <action>
                   <execute>
                     <runOnIncremental>false</runOnIncremental>
                   </execute>
                 </action>
               </pluginExecution>
             </pluginExecutions>
           </lifecycleMappingMetadata>
         </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

</project>
