<?xml version="1.0" encoding="UTF-8"?>
<!--
    * 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>
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.apache.tuscany.sca</groupId>
        <artifactId>itest-distribution</artifactId>
        <version>2.0.1-SNAPSHOT</version>
        <relativePath>../pom.xml</relativePath>
    </parent>
    <artifactId>itest-distribution-src-dsitro-rat</artifactId>
    <name>Apache Tuscany SCA iTest Distribution Src Distro RAT</name>

    <profiles>
        <profile>
            <id>distribution</id>
            <dependencies>
                <dependency>
                    <groupId>org.apache.tuscany.sca</groupId>
                    <artifactId>itest-src-distro-unzip</artifactId>
                    <type>pom</type>
                    <version>2.0.1-SNAPSHOT</version>
                </dependency>        
            </dependencies>
        </profile>
    </profiles>

    <build>
                 <plugins>
                    <plugin>
                        <groupId>org.apache.rat</groupId>
                        <artifactId>apache-rat-plugin</artifactId>
                        <version>0.6</version>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>check</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration>
                           <basedir>../../../../distribution/all/target/apache-tuscany-sca-all-2.0-src.dir</basedir>
                           <excludeSubProjects>false</excludeSubProjects>
                           <excludes> 
                              <exclude>tuscany-sca-2.0-src/CHANGES</exclude>
                              <exclude>**/*.MF</exclude>
                              <exclude>tuscany-sca-2.0-src/testing/itest/spi/spi-safe.txt</exclude>
                              <exclude>tuscany-sca-2.0-src/testing/compliance-tests/binding-ws/sca_variables.dtd</exclude>
                              <exclude>tuscany-sca-2.0-src/testing/itest/implementation-spring/src/main/resources/implementation/policies/CalculatorJass.config</exclude>
                              <exclude>tuscany-sca-2.0-src/modules/binding-ws-runtime-axis2/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/engine/repository/modules/modules.list</exclude>
                              <exclude>tuscany-sca-2.0-src/modules/binding-ws-runtime-axis2/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/engine/repository/services/services.list</exclude>
                              <exclude>tuscany-sca-2.0-src/modules/implementation-spring-tie/src/main/resources/META-INF/spring.handlers</exclude>
                              <exclude>tuscany-sca-2.0-src/modules/implementation-spring-tie/src/main/resources/META-INF/spring.schemas</exclude>
                              <exclude>tuscany-sca-2.0-src/modules/implementation-spring-runtime/src/main/resources/META-INF/spring.handlers</exclude>
                              <exclude>tuscany-sca-2.0-src/modules/implementation-spring-runtime/src/main/resources/META-INF/spring.schemas</exclude>
                              <exclude>tuscany-sca-2.0-src/maven/archetypes/binding/src/test/resources/projects/basic/goal.txt</exclude>
                              <exclude>tuscany-sca-2.0-src/maven/archetypes/implementation/src/test/resources/projects/basic/goal.txt</exclude>
                              <exclude>tuscany-sca-2.0-src/modules/implementation-python-runtime/src/main/resources/django/__init__.py</exclude>
                              <exclude>tuscany-sca-2.0-src/modules/implementation-python-runtime/src/main/resources/django/utils/__init__.py</exclude>
                              <exclude>tuscany-sca-2.0-src/maven/archetypes/policy/src/test/resources/projects/basic/goal.txt</exclude>

                              <!-- these ones we need to implement RAT license processors to handle the non-AL headers, just exclude for now -->
                              <exclude>tuscany-sca-2.0-src/modules/assembly-xsd/**/*.*</exclude>
                              <exclude>tuscany-sca-2.0-src/modules/sca-api/**/*.*</exclude>
                              <exclude>tuscany-sca-2.0-src/modules/implementation-web-runtime/src/main/resources/META-INF/sca.tld</exclude>
                              <exclude>tuscany-sca-2.0-src/modules/assembly-xml/src/main/resources/META-INF/sca-policy-1.1-intents-definitions-cd04.xml</exclude>
                              <exclude>tuscany-sca-2.0-src/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientFactoryFinderImpl.java</exclude>
                              <exclude>tuscany-sca-2.0-src/modules/binding-comet-runtime/src/main/resources/jquery.guid.js</exclude>
                              <exclude>tuscany-sca-2.0-src/modules/binding-comet-runtime/src/main/resources/jquery.json-2.2.min.js</exclude>
                              <exclude>tuscany-sca-2.0-src/modules/implementation-python-runtime/src/main/resources/django/utils/simplejson/*</exclude>
                              <exclude>tuscany-sca-2.0-src/testing/compliance-tests/binding-jms/src/test/resources/tuscany-oasis-sca-tests-errors.properties</exclude>
                           </excludes>
                        </configuration>
                    </plugin>
                </plugins>
    </build>
</project>
