<?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>13</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.3-SNAPSHOT</version>
    <description>A recator 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.org.apache.jena</module>
                <module>ext.org.apache.jena.tdb</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>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.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.impl</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>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>
            </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>
                <module>platform.testing</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>
        </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://svn.apache.org/viewvc/incubator/clerezza</url>
        <connection>scm:svn:http://svn.apache.org/repos/asf/incubator/clerezza/trunk/</connection>
        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/incubator/clerezza/trunk/</developerConnection>
    </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.2-SNAPSHOT</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>
