<?xml version="1.0" encoding="UTF-8" standalone="no"?><!--

 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.

--><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>org.apache</groupId>
        <artifactId>apache</artifactId>
        <version>14</version>
    </parent>
    <groupId>org.apache.clerezza</groupId>
    <artifactId>reactor</artifactId>
    <packaging>pom</packaging>
    <name>Clerezza - Reactor build (root)</name>
    <url>http://incubator.apache.org/clerezza/mvn-site/</url>
    <version>0.4-SNAPSHOT</version>
    <description>A reactor to build all of clerezza</description>
    <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>

    <profiles>
        <profile>
            <id>release</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <modules>
                <module>parent</module>
                <module>clerezza-jar-resource-bundle</module>
                <module>platform.style.classic.webguiexamples</module>
                <module>ext</module>
                <module>ext.com.ibm.icu</module>
                <module>ext.javax.mail</module>
                <module>ext.org.json.simple</module>
                <module>ext.org.ops4j.pax.swissbox.tinybundles</module>
                <module>ext.org.apache.lucene</module>
                <module>slf4j-scala-api</module>
                <module>internal.archetype</module>
                <module>scala-scripting</module>
                <module>jaxrs.extensions</module>
                <module>jaxrs.rdf.providers</module>
                <module>jaxrs.stanbol.fragments</module>
                <module>jaxrs.utils</module>
                <module>jaxrs.whiteboard.jersey</module>
                <module>maven-jaxrs-report-plugin</module>
                <module>maven-ontologies-plugin</module>
                <!-- <module>maven-pladoc-plugin</module> -->
                <module>permissiondescriptions</module>
                <module>ssl.keygen</module>
                <module>platform</module>
                <module>platform.accountcontrolpanel</module>
                <module>platform.concepts</module>
                <module>platform.config</module>
                <module>platform.config.gui</module>
                <module>platform.content.imagemetadata</module>
                <module>platform.content</module>
                <module>platform.content.default404</module>
                <module>platform.content.fsadaptor</module>
                <module>platform.content.representations</module>
                <module>platform.cris</module>
                <module>platform.curieprefixmanager</module>
                <module>platform.dashboard</module>
                <module>platform.dashboard.webinterface</module>
                <module>platform.documentation</module>
                <module>platform.documentation.viewer</module>
                <module>platform.enrichment</module>
                <module>platform.editor</module>
                <module>platform.globalmenu.api</module>
                <module>platform.graphnodeprovider</module>
                <module>platform.graphprovider.content</module>
                <module>platform.language</module>
                <module>platform.launcher.storageless.parent</module>
                <module>platform.launcher.tdb</module>
                <module>platform.logging</module>
                <module>platform.mail</module>
                <module>platform.scripting</module>
                <module>platform.scripting.scriptmanager</module>
                <module>platform.security.foafssl</module>
                <module>platform.security.conditions</module>
                <module>platform.shellcustomizer</module>
                <module>platform.typehandlerspace</module>
                <module>platform.typehandlerspace.wink</module>
                <module>platform.typehandlerspace.jaxrs2</module>
                <module>platform.typerendering</module>
                <module>platform.typerendering.gui</module>
                <module>platform.typerendering.scala</module>
                <module>platform.typerendering.scalaserverpages</module>
                <module>platform.typerendering.seedsnipe</module>
                <module>platform.typepriority</module>
                <module>platform.usermanager</module>
                <module>platform.usermanager.webinterface</module>
                <module>platform.users</module>
                <module>platform.xhtml2html</module>
                <module>provisioning</module>
                <module>osgi.services</module>
                <module>rdf.core</module>
                <module>rdf.core.test</module>
                <module>rdf.cris</module>
                <module>rdf.enrichment</module>
                <module>rdf.file.storage</module>
                <module>rdf.jena.commons</module>
                <module>rdf.jena.facade</module>
                <module>rdf.jena.parser</module>
                <module>rdf.jena.serializer</module>
                <module>rdf.jena.sparql</module>
                <module>rdf.jena.storage</module>
                <module>rdf.jena.tdb.storage</module>
                <module>rdf.locking</module>
                <module>rdf.ontologies</module>
                <module>rdf.metadata</module>
                <module>rdf.rdfa</module>
                <module>rdf.rdfjson</module>
                <module>rdf.scala.utils</module>
                <module>rdf.schemagen</module>
                <module>rdf.simple.storage</module>
                <module>rdf.stable.serializer</module>
                <module>rdf.utils</module>
                <module>rdf.web</module>
                <module>shell</module>
                <module>shell.felixshellcommand</module>
                <module>bundledevtool</module>
                <module>sshshell</module>
                <module>templating</module>
                <module>templating.seedsnipe</module>
                <module>tools.offline</module>
                <module>uima</module>
                <module>utils.customproperty</module>
                <module>utils.imageprocessing</module>
                <module>utils</module>
                <module>web.fileserver</module>
                <module>web.resources.jquery</module>
                <module>web.resources.scripts</module>
                <module>platform.style.default</module>
                <module>platform.style.classic</module>
                <module>web.resources.yui</module>
                <module>rdf.storage.externalizer</module>
                <module>rdf.storage.web</module>

                <module>ext.virtuoso.jdbc</module>
                <module>rdf.virtuoso.storage</module>
                <!-- <module>platform.launcher.virtuoso</module> -->
            </modules>
        </profile>
        <profile>
            <id>rat</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.rat</groupId>
                        <artifactId>apache-rat-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>default-cli</id>
                                <goals>
                                    <goal>check</goal>
                                </goals>
                                <phase>verify</phase>
                                <configuration>
                                    <excludes>
                                        <!-- File generated by maven-release-plugin -->
                                        <exclude>release.properties</exclude>
                                        <!-- hidden files -->
                                        <exclude>**/.*</exclude>
                                        <exclude>**/.*/*</exclude>
                                        <exclude>**/.*/**/*</exclude>
                                        <exclude>**/*.sh</exclude>
                                        <exclude>**/main/shell/**/*</exclude>
                                        <exclude>**/maven-eclipse.xml</exclude>
                                        <exclude>**/*.iml</exclude>
                                        <exclude>**/target/**/*</exclude>
                                        <exclude>**/src/test/**/*.nt</exclude>
                                        <exclude>**/src/test/**/*.ttl</exclude>
                                        <exclude>**/src/test/**/*.rdf</exclude>
                                        <exclude>**/src/test/**/*.txt</exclude>
                                        <exclude>**/src/test/**/*.n3</exclude>
                                        <exclude>**/src/test/**/*.json</exclude>
                                        <exclude>**/src/test/**/*.seed</exclude>
                                        <exclude>**/src/test/**/*.xrdf</exclude>
                                        <exclude>**/src/test/**/*.foaf</exclude>
                                        <exclude>**/src/test/**/*.turtle</exclude>
                                        <exclude>**/documentation.nt</exclude>
                                        <!-- yui is bsd licensed -->
                                        <exclude>web.resources.yui/src/main/resources/**/*</exclude>
                                        <exclude>web.resources.jquery/src/main/resources/org/apache/clerezza/web/resources/jquery/staticweb/**/*</exclude>
                                        <exclude>platform.scripting.scriptmanager/src/main/resources/org/apache/clerezza/platform/scripting/scriptmanager/scriptmanager-script-information.xhtml</exclude>
                                        <exclude>templating.seedsnipe/src/test/resources/org/apache/clerezza/templating/seedsnipe/libby-foaf.rdf</exclude>
                                        <exclude>platform.usermanager.webinterface/src/main/resources/org/apache/clerezza/platform/usermanager/webinterface/reset_mail.txt</exclude>
                                        <exclude>rdf.ontologies/src/main/resources/org/apache/clerezza/rdf/ontologies/*</exclude>
                                        <exclude>platform.security.foafssl/ontologies/src/main/resources/org/apache/clerezza/foafssl/ontologies/*</exclude>
                                        <!-- text files for inclusion -->
                                        <exclude>platform.typerendering.scalaserverpages/src/main/resources/org/apache/clerezza/platform/typerendering/scalaserverpages/*.txt</exclude>
                                        <exclude>**/META-INF/services/*</exclude>
                                        <exclude>**/LICENSE*</exclude>
                                        <exclude>**/META-INF/MANIFEST.MF</exclude>
                                        <exclude>ssl.keygen/samplewebapp/src/main/webapp/cacert.crt</exclude>
                                        <exclude>web.fileserver/src/main/resources/org/apache/clerezza/web/fileserver/util/mime.types</exclude>
                                        <exclude>platform.content/src/main/resources/org/apache/clerezza/platform/content/staticweb/discoscripts/**/*</exclude>
                                        <exclude>platform.content/src/main/resources/org/apache/clerezza/platform/content/*</exclude>
                                    </excludes>
                                    <numUnapprovedLicenses>0</numUnapprovedLicenses>
                                    <excludeSubProjects>false</excludeSubProjects>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>

                </plugins>
            </build>
        </profile>
        <profile>
            <id>it</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <modules>
                <module>integrationtest.web</module>
                <module>integrationtest.web.performance</module>
            </modules>
        </profile>
        <profile>
            <id>additions</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <modules>
                <!-- tests depends on availability of right version of imagemagick, see CLEREZZA-326-->
                <module>utils.imagemagick</module>
                <!-- have dependencies that are not in maven central -->
                <module>ext.org.jruby</module>
                <module>ext.org.openrdf.sesame</module>
                <module>platform.launcher.sesame</module>
                <module>rdf.sesame.storage</module>
                <module>rdf.sesame.parser</module>
            </modules>
        </profile>
        <profile>
            <id>site-build</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <pluginRepositories>
                <pluginRepository>
                    <id>apache.snapshots</id>
                    <url>http://repository.apache.org/snapshots/</url>
                </pluginRepository>
            </pluginRepositories>
        </profile>
    </profiles>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-scr-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-deploy-plugin</artifactId>
            </plugin>
            <plugin>
                <artifactId>maven-clean-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-install-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.codehaus.xsite</groupId>
                <artifactId>xsite-maven-plugin</artifactId>
            </plugin>
            <!-- having this here has the effect that the resources copied by the resources plugin (below) have
            priority over the remote resources -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-remote-resources-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>process</goal>
                        </goals>
                        <configuration>        
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-release-plugin</artifactId>
                <version>2.5</version>
                <configuration>
                    <useReleaseProfile>false</useReleaseProfile>
                    <goals>deploy</goals>
                    <arguments>-Papache-release </arguments>
                </configuration>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <targetPath>META-INF</targetPath>
                <filtering>false</filtering>
                <directory>${basedir}</directory>
                <includes>
                    <include>NOTICE</include>
                    <include>LICENSE.*</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
        </resources>
    </build>
    <distributionManagement>
        <!-- where to deploy the web site -->
        <site>
            <id>people.apache.org</id>
            <url>scp://people.apache.org/www/incubator.apache.org/clerezza/mvn-site/</url>
        </site>

        <!-- where to deploy the artifacts -->
        <repository>
            <id>apache.releases.https</id>
            <name>Apache Release Distribution Repository</name>
            <url>https://repository.apache.org/service/local/staging/deploy/maven2</url>
        </repository>
        <snapshotRepository>
            <id>apache.snapshots.https</id>
            <name>Apache Development Snapshot Repository</name>
            <url>https://repository.apache.org/content/repositories/snapshots</url>
        </snapshotRepository>
    </distributionManagement>

    <!-- jira -->
    <issueManagement>
        <system>Jira</system>
        <url>https://issues.apache.org/jira/browse/CLEREZZA</url>
    </issueManagement>
    <ciManagement>
        <system>Jenkins</system>
        <url>https://builds.apache.org/job/clerezza-trunk-1.6/</url>
    </ciManagement>


    <scm>
        <url>http://git.apache.org/clerezza.git/</url>
        <connection>scm:git:git://git.apache.org/clerezza.git</connection>
        <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/clerezza.git</developerConnection>
      <tag>reactor-0.3</tag>
  </scm>

    <!-- lets generate reports -->
    <reporting>
        <plugins>
            <!-- javadoc -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <!-- Version 2.6  passes invalid arguments to the wadl doclet -->
                <version>2.4</version>
            </plugin>

            <!-- test results -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-report-plugin</artifactId>
                <version>2.4.2</version>
            </plugin>

            <!-- pmd reports (potential bugs, suboptimal code, duplicate code) -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-pmd-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <targetJdk>1.6</targetJdk>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.clerezza</groupId>
                <artifactId>maven-jaxrs-report-plugin</artifactId>
                <version>0.1-incubating</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-plugin-plugin</artifactId>
                <version>2.5.1</version>
            </plugin>
            <!--            <plugin>
                <groupId>org.apache.clerezza</groupId>
                <artifactId>maven-pladoc-plugin.core</artifactId>
                <version>0.1</version>
            </plugin> -->
        </plugins>
    </reporting>
</project>
