<?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>
    <groupId>com.addicticks.oss</groupId>
    <artifactId>httpsupload</artifactId>
    <version>1.2.3</version>
    <packaging>jar</packaging>
    <name>HTTPS Upload library</name>
    <url>https://github.com/Addicticks/httpsupload</url>
    
    <description>
        A simple, small, no-nonsense library that allows to upload files
        to a remote server that accepts multipart/form-data encoded (RFC2388)
        uploads. The library has no external dependencies.
    </description>

    <organization>
        <name>Addicticks</name>
        <url>http://www.addicticks.com</url>
    </organization>
    
    <licenses>        
        <license>
            <name>Apache License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
    </licenses>
    
    <scm>
        <connection>scm:git:https://github.com/Addicticks/httpsupload.git</connection>
        <developerConnection>scm:git:https://github.com/Addicticks/httpsupload.git</developerConnection>
        <url>https://github.com/Addicticks/httpsupload.git</url>
      <tag>httpsupload-1.2.3</tag>
    </scm>    
    
    
    <distributionManagement>
        <repository>
            <id>ossrh</id>
            <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>
    </distributionManagement>    
    
    
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <archive>
                        
                        <manifestEntries>                            
                            <!-- Add some useful properties that we can pick up programmatically -->
                            <Project-Version>${project.version}</Project-Version>
                            <Build-Date>${maven.build.timestamp}</Build-Date>
                            <Build-Date-Format>${maven.build.timestamp.format}</Build-Date-Format>
                            
                            <!-- Override the default 'Built-By' which would otherwise be the OS name user -->
                            <Built-By>Addicticks</Built-By>
                        </manifestEntries>
                    </archive>
                </configuration>
            </plugin>

            <!--  Publish the Javadocs to Github static pages.
                  Execute this command to generate and publish javadocs:
                  mvn clean javadoc:javadoc scm-publish:publish-scm
                  
                  Unfortunately, and ugly, currently the maven-scm-publish-plugin
                  cannot use an embedded git client, which means a git client
                  must be available in PATH.
                                                                       -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-scm-publish-plugin</artifactId>
                <version>1.1</version>
                <configuration>
                    <checkoutDirectory>${project.build.directory}/scmpublish</checkoutDirectory>
                    <checkinComment>Publishing javadoc for ${project.artifactId}:${project.version}</checkinComment>
                    <content>${project.reporting.outputDirectory}/apidocs</content>
                    <skipDeletedFiles>true</skipDeletedFiles>
                    <pubScmUrl>scm:git:https://github.com/Addicticks/httpsupload.git</pubScmUrl>
                    <scmBranch>gh-pages</scmBranch> 
                </configuration>
            </plugin>



            <!--   Required for publishing to Maven Central  -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <version>2.5.2</version>
                <configuration>
                    <autoVersionSubmodules>true</autoVersionSubmodules>
                    <useReleaseProfile>false</useReleaseProfile>
                    <releaseProfiles>release-to-central</releaseProfiles>
                    <goals>deploy</goals>
                </configuration>
            </plugin>
        </plugins>
            
    </build>
    
    <profiles>
        
        <profile> 
            <id>release-to-central</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-source-plugin</artifactId>
                        <version>2.4</version>
                        <executions>
                            <execution>
                                <id>attach-sources</id>
                                <goals>
                                    <goal>jar-no-fork</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <version>2.10.3</version>
                        <executions>
                            <execution>
                                <id>attach-javadocs</id>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>                    
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <version>1.6</version>
                        <executions>
                            <execution>
                                <id>sign-artifacts</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        
        
        <!-- 
        For JDK8 the standard Javadoc produced is just plain ugly and not very
        readable. So we use our own stylesheet instead which fixes the appearance to
        be more of a JDK7 look-a-like. We also add the ability to do syntax highlighting
        of java code snippets inside Javadoc. Note that this happens only if we are 
        building under JDK8.         
        Note that the Addicticks Javadoc stylesheet customizations are not
        publicly available.                                                             -->
        <profile>
            <activation>
                <jdk>1.8</jdk>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <version>2.10.3</version>
                        <configuration>
                            <resourcesArtifacts>
                                <resourceArtifact>
                                    <groupId>com.addicticks.javadoc</groupId>
                                    <artifactId>customization</artifactId>
                                    <version>1.0</version>
                                </resourceArtifact>
                            </resourcesArtifacts>
                            
                            <!-- Shown in upper right corner : -->
                            <header>Version ${project.version}</header>
                            
                            <!-- Add SyntaxHighlighter feature. (http://alexgorbatchev.com/SyntaxHighlighter/)
                            This gets added to the top of every Javadoc html page.   -->
                            <top><![CDATA[
                                <script src="{@docRoot}/syntaxhighlighter/shCore.js" type="text/javascript"></script>
                                <script src="{@docRoot}/syntaxhighlighter/shBrushJava.js" type="text/javascript"></script>
                                <link rel="stylesheet" type="text/css" href="{@docRoot}/syntaxhighlighter/shCore.css" title="Style">
                                <link rel="stylesheet" type="text/css" href="{@docRoot}/syntaxhighlighter/shThemeDefault.css" title="Style">
                                ]]>
                            </top>
                            
                            <!-- Activate and customize SyntaxHighlighter feature.
                            This gets added to the bottom of every Javadoc html page.  -->
                            <footer><![CDATA[
                                <script type="text/javascript">
                                    SyntaxHighlighter.defaults["auto-links"] = false;
                                    SyntaxHighlighter.defaults["tab-size"] = 2;
                                    SyntaxHighlighter.defaults["toolbar"] = false;
                                    SyntaxHighlighter.all();
                                </script>
                                ]]>
                            </footer>
                            <!-- Required as of JDK 8u121 -->
                            <additionalparam>--allow-script-in-comments</additionalparam>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <!-- Set the format of the Maven build timestamp explicitly so that when
        we save it in the JAR's manifest then we know exactly what format it has -->
        <maven.build.timestamp.format>yyyyMMdd-HHmmss</maven.build.timestamp.format>
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
    </properties>

    <developers>
        <developer>
            <name>Addama Gabor</name>
            <organization>Addicticks</organization>
            <organizationUrl>http://www.addicticks.com</organizationUrl>
        </developer>
    </developers>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-core</artifactId>
            <version>1.3</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

