<?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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>de.jgoldhammer</groupId>
    <artifactId>alfresco-jscript-extension</artifactId>
    <version>1.0</version>
    <name>Alfresco Jscript Repository Extensions</name>
    <description>This module contains some useful Alfresco repository Javascript Objects which can be used to develop alfresco repository extensions. Most of them reuse functionality from the public service api of Alfresco.</description>
    <url>https://github.com/jgoldhammer/alfresco-jscript-extensions</url>
    <packaging>jar</packaging>

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

    <scm>
        <connection>scm:git:git@github.com:jgoldhammer/alfresco-jscript-extensions.git</connection>
        <developerConnection>scm:git:git@github.com:jgoldhammer/alfresco-jscript-extensions.git</developerConnection>
        <url>git@github.com:jgoldhammer/alfresco-jscript-extensions.git</url>
        <tag>HEAD</tag>
    </scm>

    <developers>
        <developer>
            <id>j.goldhammer</id>
            <name>Jens Goldhammer</name>
            <email>j.goldhammer@fme.de</email>
            <organization>fme AG</organization>
            <organizationUrl>http://www.fme.de</organizationUrl>
            <roles>
                <role>Founder</role>
                <role>Architect</role>
                <role>Developer</role>
            </roles>
            <properties>
                <twitter>twitter.com/jensWr</twitter>
            </properties>
        </developer>
    </developers>

    <properties>

        <sonatypeOssDistMgmtSnapshotsUrl>https://oss.sonatype.org/content/repositories/snapshots/</sonatypeOssDistMgmtSnapshotsUrl>

        <!-- Alfresco Maven Plugin version to use -->
        <alfresco.sdk.version>3.0.0-beta-3</alfresco.sdk.version>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <!-- Alfresco Data directory, which will contain:
                Content Store (i.e. the files we upload)
                Database (i.e. the metadata for the uploaded files)
                Search index (i.e. the indexed content and metadata)
             Configured in alfresco-global.properties with the 'dir.root' property.
                -->
        <alfresco.data.location>${session.executionRootDirectory}/alf_data_dev</alfresco.data.location>

        <!-- Duplicated with alfresco.solrHome in the plugin, we need them out here to do filtering -->
        <solr.home>${alfresco.data.location}/solr</solr.home>
        <solr.model.dir>${solr.home}/alfrescoModels</solr.model.dir>
        <solr.content.dir>${solr.home}/index</solr.content.dir>

        <!-- Properties used in dependency declarations, you don't need to change these -->
        <alfresco.groupId>org.alfresco</alfresco.groupId>

        <!-- Alfresco Platform webapp version, this is the original Alfresco webapp that will be
            customized and then deployed and run by the tomcat maven plugin when
            executing for example $ mvn clean install alfresco:run -->
        <alfresco.platform.version>5.2.a-EA</alfresco.platform.version>
        <!-- Alfresco Share version, so we can bring in correct alfresco-share-services artifact -->
        <alfresco.share.version>5.1.g</alfresco.share.version>

        <!-- Alfresco Repo Database configuration.
           By default it uses a flat file H2 database to be able to run embedded.
           The H2 database implementation is brought in via the tomcat7-maven-plugin as a dependency.
           The data files for the H2 database will be created in a relative path, such as alf_data_dev/h2_data/alf_dev,
           see alfresco.db.url below.
           For more information about the db parameters see:http://www.h2database.com/html/features.html
        -->
        <alfresco.db.name>alf_dev</alfresco.db.name>
        <alfresco.db.username>alfresco</alfresco.db.username>
        <alfresco.db.password>alfresco</alfresco.db.password>
        <alfresco.db.params>AUTO_SERVER=TRUE;DB_CLOSE_ON_EXIT=FALSE;LOCK_TIMEOUT=10000;MVCC=FALSE;LOCK_MODE=0
        </alfresco.db.params>
        <alfresco.db.url>jdbc:h2:${alfresco.data.location}/h2_data/${alfresco.db.name};${alfresco.db.params}
        </alfresco.db.url>
        <alfresco.db.datasource.class>org.h2.jdbcx.JdbcDataSource</alfresco.db.datasource.class>

        <!-- JRebel Hot reloading of classpath stuff and web resource stuff -->
        <jrebel.version>1.1.6</jrebel.version>

        <!-- Environment to use, Alfresco Maven Plugin will copy alfresco-global.properties from this directory -->
        <env>local</env>
    </properties>

    <!-- This will import the dependencyManagement for all artifacts in the selected Alfresco platform.
            NOTE: You still need to define dependencies in your POM,
            but you can omit version as it's enforced by this dependencyManagement.
            NOTE: It defaults to the latest version this SDK pom has been tested with,
            but alfresco version can/should be overridden in your project's pom
    -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>${alfresco.groupId}</groupId>
                <artifactId>alfresco-platform-distribution</artifactId>
                <version>${alfresco.platform.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>



    <dependencies>
        <!-- The main Alfresco Repo dependency for compiling Java code in src/main/java -->
        <dependency>
            <groupId>${alfresco.groupId}</groupId>
            <artifactId>alfresco-repository</artifactId>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>3.2.17.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.sling/org.apache.sling.junit.remote -->
        <dependency>
            <groupId>com.tradeshift</groupId>
            <artifactId>junit-remote</artifactId>
            <version>3</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.h2database/h2 -->
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>1.4.192</version>
            <scope>test</scope>
        </dependency>



    </dependencies>

    <distributionManagement>
        <snapshotRepository>
            <id>ossrh</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        </snapshotRepository>
    </distributionManagement>

    <build>
        <plugins>

            <!--
                The Alfresco Maven Plugin contains all the logic to run the extension
                in an embedded Tomcat with the H2 database.
                -->
            <plugin>
                <groupId>org.alfresco.maven.plugin</groupId>
                <artifactId>alfresco-maven-plugin</artifactId>
                <version>${alfresco.sdk.version}</version>
                <configuration>
                    <!-- Default is to run with a Community edition, change to 'enterprise' if using Enterprise edition -->
                    <alfrescoEdition>community</alfrescoEdition>

                    <!-- We need the flat file H2 database to run the Repo -->
                    <enableH2>true</enableH2>
                    <!-- This is a platform extension JAR, so we need the platform webapp (alfresco.war) -->
                    <enablePlatform>true</enablePlatform>
                    <!-- Enable Solr so we can use search, our Repo extension probably need search -->
                    <enableSolr>true</enableSolr>
                    <!-- We don't need the share.war if we don't have any UI extensions -->
                    <enableShare>true</enableShare>

                    <!--
                       JARs and AMPs that should be overlayed/applied to the Platform/Repository WAR
                       (i.e. alfresco.war)
                       -->
                    <platformModules>
                        <!-- This AMP is needed if we are going to access the platform webapp from a Share webapp -->
                        <moduleDependency>
                            <groupId>${alfresco.groupId}</groupId>
                            <artifactId>alfresco-share-services</artifactId>
                            <version>${alfresco.share.version}</version>
                            <type>amp</type>
                        </moduleDependency>

                        <moduleDependency>
                            <groupId>de.fmaul</groupId>
                            <artifactId>javascript-console-repo</artifactId>
                            <version>0.6</version>
                            <type>amp</type>
                        </moduleDependency>

                        <!-- Bring in this JAR project, need to be included here, otherwise resources from META-INF
                             will not be loaded, such as the test.html page
                        -->
                        <moduleDependency>
                            <groupId>${project.groupId}</groupId>
                            <artifactId>${project.artifactId}</artifactId>
                            <version>${project.version}</version>
                        </moduleDependency>
                    </platformModules>
                    <shareModules>
                        <moduleDependency>
                            <groupId>de.fmaul</groupId>
                            <artifactId>javascript-console-share</artifactId>
                            <version>0.6</version>
                            <type>amp</type>
                        </moduleDependency>
                    </shareModules>
                </configuration>
            </plugin>

            <!-- Build an AMP if 3rd party libs are needed by the extension -->
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.6</version>
                <executions>
                    <execution>
                        <id>build-amp-file</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                        <configuration>
                            <appendAssemblyId>false</appendAssemblyId>
                            <descriptor>src/main/assembly/amp.xml</descriptor>
                        </configuration>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>org.alfresco.maven.plugin</groupId>
                        <artifactId>alfresco-maven-plugin</artifactId>
                        <version>${alfresco.sdk.version}</version>
                    </dependency>
                </dependencies>
            </plugin>

            <!-- Hot reloading with JRebel -->
            <plugin>
                <groupId>org.zeroturnaround</groupId>
                <artifactId>jrebel-maven-plugin</artifactId>
                <version>${jrebel.version}</version>
                <executions>
                    <execution>
                        <id>generate-rebel-xml</id>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <!-- For more information about how to configure JRebel plugin see:
                         http://manuals.zeroturnaround.com/jrebel/standalone/maven.html#maven-rebel-xml -->
                    <classpath>
                        <fallback>all</fallback>
                        <resources>
                            <resource>
                                <!--
                                Empty resource element marks default configuration. By
                                default it is placed first in generated configuration.
                                -->
                            </resource>
                        </resources>
                    </classpath>

                    <!--
                      alwaysGenerate - default is false
                      If 'false' - rebel.xml is generated if timestamps of pom.xml and the current rebel.xml file are not equal.
                      If 'true' - rebel.xml will always be generated
                    -->
                    <alwaysGenerate>true</alwaysGenerate>
                </configuration>
            </plugin>
        </plugins>

        <resources>
            <!-- Filter the resource files in this project and do property substitutions -->
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
        <testResources>
            <!-- Filter the test resource files in this project and do property substitutions -->
            <testResource>
                <directory>src/test/resources</directory>
                <filtering>true</filtering>
            </testResource>
        </testResources>
    </build>

    <profiles>
        <profile>
            <id>release</id>
            <build>
                <plugins>
                    <!-- plugin for publishing maven artifacts-->
                    <plugin>
                        <groupId>org.sonatype.plugins</groupId>
                        <artifactId>nexus-staging-maven-plugin</artifactId>
                        <version>1.6.7</version>
                        <extensions>true</extensions>
                        <configuration>
                            <serverId>ossrh</serverId>
                            <nexusUrl>https://oss.sonatype.org/</nexusUrl>
                            <autoReleaseAfterClose>true</autoReleaseAfterClose>
                        </configuration>
                    </plugin>

                    <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.9.1</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>
                        <configuration>
                            <useAgent>false</useAgent>
                        </configuration>
                        <executions>
                            <execution>
                                <id>sign-artifacts</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

    <!--
        Alfresco Maven Repositories
        -->
    <repositories>
        <repository>
            <id>alfresco-public</id>
            <url>https://artifacts.alfresco.com/nexus/content/groups/public</url>
        </repository>
        <repository>
            <id>alfresco-public-snapshots</id>
            <url>https://artifacts.alfresco.com/nexus/content/groups/public-snapshots</url>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>daily</updatePolicy>
            </snapshots>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>alfresco-plugin-public</id>
            <url>https://artifacts.alfresco.com/nexus/content/groups/public</url>
        </pluginRepository>
        <pluginRepository>
            <id>alfresco-plugin-public-snapshots</id>
            <url>https://artifacts.alfresco.com/nexus/content/groups/public-snapshots</url>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>daily</updatePolicy>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>

</project>
