<?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>

    <name>DeepaMehta 4 Global</name>
    <groupId>de.deepamehta</groupId>
    <artifactId>deepamehta-global</artifactId>
    <version>4.4.3</version>
    <packaging>pom</packaging>

    <description>DeepaMehta is a software platform for knowledge workers</description>
    <url>http://www.deepamehta.de/</url>
    <scm>
        <connection>scm:git:git@github.com:jri/deepamehta.git</connection>
        <url>https://github.com/jri/deepamehta</url>
    </scm>

    <licenses>
        <license>
            <name>GNU General Public License, version 3</name>
            <url>http://www.gnu.org/licenses/gpl.txt</url>
        </license>
    </licenses>

    <developers>
        <developer>
            <id>jri</id>
            <name>Jörg Richter</name>
            <email>jri@deepamehta.de</email>
        </developer>
        <developer>
            <id>dgf</id>
            <name>Danny Gräf</name>
            <email>mail@dagnu.de</email>
        </developer>
        <developer>
            <id>mre</id>
            <name>Malte Reißig</name>
            <email>mre@deepamehta.de</email>
        </developer>
        <developer>
            <id>eschnepel</id>
            <name>Enrico Schnepel</name>
            <email>enrico.schnepel@gmx.de</email>
        </developer>
        <developer>
            <id>jucovschi</id>
            <name>Constantin Jucovschi</name>
            <email>jucovschi@gmail.com</email>
        </developer>        
    </developers>

    <repositories>
        <repository>
            <id>snapshots-repo</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>

    <properties>
        <!-- Webserver -->
        <org.osgi.service.http.port>8080</org.osgi.service.http.port>
        <org.osgi.service.http.enabled>true</org.osgi.service.http.enabled>
        <org.ops4j.pax.web.session.timeout>0</org.ops4j.pax.web.session.timeout>
        <!-- HTTPS -->
        <org.osgi.service.http.port.secure>8443</org.osgi.service.http.port.secure>
        <org.osgi.service.http.secure.enabled>false</org.osgi.service.http.secure.enabled>
        <org.ops4j.pax.web.ssl.keystore></org.ops4j.pax.web.ssl.keystore>
        <org.ops4j.pax.web.ssl.password></org.ops4j.pax.web.ssl.password>
        <org.ops4j.pax.web.ssl.keypassword></org.ops4j.pax.web.ssl.keypassword>

        <!-- Request Filter -->
        <dm4.security.read_requires_login>false</dm4.security.read_requires_login>
        <dm4.security.write_requires_login>true</dm4.security.write_requires_login>
        <dm4.security.subnet_filter>127.0.0.1/32</dm4.security.subnet_filter>

        <!-- Host -->
        <dm4.host.url>http://localhost:${org.osgi.service.http.port}/</dm4.host.url>

        <!-- Database -->
        <dm4.database.path>${project.basedir}/deepamehta-db</dm4.database.path>

        <!-- File Repository -->
        <dm4.filerepo.path></dm4.filerepo.path>

        <!-- Logging -->
        <java.util.logging.config.file>
            ${project.basedir}/modules/dm4-distribution/conf/logging.properties
        </java.util.logging.config.file>
        <felix.log.level>1</felix.log.level><!-- To see any Felix logging set the level to at least 4. -->

        <!-- Encoding -->
        <file.encoding>UTF-8</file.encoding>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <profiles>
        <profile>
            <id>run</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <!-- IMPORTANT: The leading and trailing commas represent a workaround for Felix 4 and must not     -->
                <!-- be deleted (this was not required with Felix 3). Felix 4 apparently surrounds the entire       -->
                <!-- property value with double quotes, rendering the first and last paths invalid (very strange!). -->
                <!-- As a workaround we setup 2 (empty) bogus paths at the beginning and end.                       -->
                <felix.fileinstall.dir>,
                    ${project.basedir}/modules/dm4-core/target,
                    ${project.basedir}/modules/dm4-webservice/target,
                    ${project.basedir}/modules/dm4-webclient/target,
                    ${project.basedir}/modules/dm4-webbrowser/target,
                    ${project.basedir}/modules/dm4-notes/target,
                    ${project.basedir}/modules/dm4-contacts/target,
                    ${project.basedir}/modules/dm4-workspaces/target,
                    ${project.basedir}/modules/dm4-typeeditor/target,
                    ${project.basedir}/modules/dm4-iconpicker/target,
                    ${project.basedir}/modules/dm4-typesearch/target,
                    ${project.basedir}/modules/dm4-topicmaps/target,
                    ${project.basedir}/modules/dm4-files/target,
                    ${project.basedir}/modules/dm4-filemanager/target,
                    ${project.basedir}/modules/dm4-help/target,
                    ${project.basedir}/modules/dm4-accesscontrol/target,
                    ${project.basedir}/modules/dm4-facets/target,
                    ${project.basedir}/modules/dm4-geomaps/target,
                    ${project.basedir}/modules/dm4-time/target,
                    ${project.basedir}/modules/dm4-caching/target,
                    ${project.basedir}/modules/dm4-storage-neo4j/target,
                    ${project.basedir}/modules/dm4-box-renderer-dom/target,
                    <!-- Note: Although the dm4-storage-neo4j module can not be hot-REdeployed it must be          -->
                    <!-- hot-deployed. It can not be statically deployed (via 3rd-party-bundles) because it        -->
                    <!-- depends on Core and Core would be not yet available (as it is hot-deployed).              -->
                    <!-- The reason why dm4-storage-neo4j module can not be hot-REdeployed is that the Core        -->
                    <!-- would not stop (as it has no dependency on dm4-storage-neo4j).                            -->
                </felix.fileinstall.dir>
                <!-- Watching only for jar files suppresses deployment of exploded bundles (which often fails).    -->
                <felix.fileinstall.filter>.*\\.jar</felix.fileinstall.filter>
                <!-- Setting "noInitialDelay" to true causes *synchronous* bundle starts in the order the watch    -->
                <!-- directories are defined! Furthermore the STARTED framework event is eventually fired. Default -->
                <!-- is noInitialDelay=false, which causes *asynchronous* bundle starts in arbitrary order.        -->
                <felix.fileinstall.noInitialDelay>false</felix.fileinstall.noInitialDelay>
                <!-- To see any File Install logging set the level to at least 4.                                  -->
                <felix.fileinstall.log.level>0</felix.fileinstall.log.level>
            </properties>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.ops4j</groupId>
                        <artifactId>maven-pax-plugin</artifactId>
                        <version>1.4</version>
                        <configuration>
                            <runner>1.8.6</runner>
                            <deployPoms>
                                modules/dm4-provision/3rd-party-bundles/pom.xml,
                                modules/dm4-provision/felix-bundles/pom.xml
                            </deployPoms>
                        </configuration>
                    </plugin>
                    <!-- Deletes OSGi container configuration as created by Pax Runner -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-clean-plugin</artifactId>
                        <version>2.4.1</version>
                        <configuration>
                            <filesets>
                                <fileset>
                                    <directory>runner</directory>
                                </fileset>
                            </filesets>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <id>all</id>
            <modules>
                <module>modules/dm4-core</module>
                <module>modules/dm4-webservice</module>
                <module>modules/dm4-webclient</module>
                <module>modules/dm4-webbrowser</module>
                <module>modules/dm4-notes</module>
                <module>modules/dm4-contacts</module>
                <module>modules/dm4-workspaces</module>
                <module>modules/dm4-typeeditor</module>
                <module>modules/dm4-iconpicker</module>
                <module>modules/dm4-typesearch</module>
                <module>modules/dm4-topicmaps</module>
                <module>modules/dm4-files</module>
                <module>modules/dm4-filemanager</module>
                <module>modules/dm4-help</module>
                <module>modules/dm4-accesscontrol</module>
                <module>modules/dm4-facets</module>
                <module>modules/dm4-geomaps</module>
                <module>modules/dm4-time</module>
                <module>modules/dm4-caching</module>
                <module>modules/dm4-storage-neo4j</module>
                <module>modules/dm4-box-renderer-dom</module>
                <!-- Testing -->
                <module>modules/dm4-test</module>
                <!-- POM projects follow -->
                <!-- Note: modules/dm4-distribution and modules/dm4-assemblies are not included here. -->
                <!-- We don't want to build the distribution and assemblies with every reactor build. -->
                <!-- To build the distribution and assemblies use "mvn clean install -P dist".        -->
                <module>modules/dm4-parent</module>
                <module>modules/dm4-plugin-parent</module>
                <module>modules/dm4-provision</module>
            </modules>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <version>2.8.1</version>
                        <configuration>
                            <show>private</show>
                            <linksource>true</linksource>
                            <links>
                                <link>http://jersey.java.net/nonav/apidocs/1.8/jersey/</link>
                                <link>http://jettison.codehaus.org/apidocs/</link> <!-- version 1.2 -->
                                <link>http://www.osgi.org/javadoc/r4v401/</link>
                            </links>
                            <doclet>org.umlgraph.doclet.UmlGraphDoc</doclet>
                            <docletArtifact>
                                <groupId>org.umlgraph</groupId>
                                <artifactId>umlgraph</artifactId>
                                <version>5.6</version>
                            </docletArtifact>
                            <additionalparam>
                                -collapsible -hide java.* -hide org.* -inferdepvis public -inferrel
                            </additionalparam>
                            <useStandardDocletOptions>true</useStandardDocletOptions>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <id>dist</id>
            <modules>
                <module>modules/dm4-distribution</module>
                <module>modules/dm4-assemblies</module>
            </modules>
        </profile>

        <profile>
            <id>release</id>
            <modules>
                <module>modules/dm4-core</module>
                <module>modules/dm4-webservice</module>
                <module>modules/dm4-webclient</module>
                <module>modules/dm4-webbrowser</module>
                <module>modules/dm4-notes</module>
                <module>modules/dm4-contacts</module>
                <module>modules/dm4-workspaces</module>
                <module>modules/dm4-typeeditor</module>
                <module>modules/dm4-iconpicker</module>
                <module>modules/dm4-typesearch</module>
                <module>modules/dm4-topicmaps</module>
                <module>modules/dm4-files</module>
                <module>modules/dm4-filemanager</module>
                <module>modules/dm4-help</module>
                <module>modules/dm4-accesscontrol</module>
                <module>modules/dm4-facets</module>
                <module>modules/dm4-geomaps</module>
                <module>modules/dm4-time</module>
                <module>modules/dm4-caching</module>
                <module>modules/dm4-storage-neo4j</module>
                <module>modules/dm4-box-renderer-dom</module>
                <!-- Testing -->
                <module>modules/dm4-test</module>
                <!-- POM projects -->
                <module>modules/dm4-parent</module>
                <module>modules/dm4-plugin-parent</module>
                <module>modules/dm4-provision</module>
                <module>modules/dm4-distribution</module>
                <module>modules/dm4-assemblies</module>
            </modules>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.sonatype.plugins</groupId>
                        <artifactId>nexus-staging-maven-plugin</artifactId>
                        <version>1.6.5</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.2.1</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.5</version>
                        <executions>
                            <execution>
                                <id>sign-artifacts</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
            <distributionManagement>
                <snapshotRepository>
                    <id>ossrh</id>
                    <url>https://oss.sonatype.org/content/repositories/snapshots</url>
                </snapshotRepository>
            </distributionManagement>
        </profile>

        <profile>
            <id>neo4j</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>exec-maven-plugin</artifactId>
                        <version>1.2</version>
                        <goals>
                            <goal>java</goal>
                        </goals>
                        <configuration>
                            <includePluginDependencies>true</includePluginDependencies>
                            <mainClass>org.neo4j.shell.StartClient</mainClass>
                            <arguments>
                                <argument>-path</argument>
                                <argument>${dm4.database.path}</argument>
                                <argument>-readonly</argument>
                                <argument>-v</argument>
                            </arguments>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
            <dependencies>
                <dependency>
                    <groupId>org.neo4j</groupId>
                    <artifactId>neo4j-shell</artifactId>
                    <version>1.8.1</version>
                </dependency>
                <dependency>
                    <groupId>org.neo4j</groupId>
                    <artifactId>neo4j-kernel</artifactId>
                    <version>1.8.1</version>
                </dependency>
            </dependencies>
        </profile>
    </profiles>
</project>
