<?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>release20130710-reactor</artifactId>
    <packaging>pom</packaging>
    <name>Clerezza - Reelase 20130710 Reactor build (root)</name>
    <url>http://incubator.apache.org/clerezza/mvn-site/</url>
    <version>0.4-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>jaxrs.rdf.providers</module>
<module>jaxrs.utils</module>
<module>rdf.core</module>
<module>rdf.core.test</module>
<module>rdf.cris</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.web</module>
<module>scala-scripting</module>
<module>shell</module>
<module>slf4j-scala-api</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>
    </profiles>
    <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/clerezza</url>
        <connection>scm:svn:https://svn.apache.org/repos/asf/clerezza/branches/20130710-release/</connection>
        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/clerezza/branches/20130710-release/</developerConnection>
    </scm>

</project>
