<?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 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/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.apache.syncope</groupId>
    <artifactId>syncope-deb</artifactId>
    <version>1.2.2</version>
  </parent>

  <name>Apache Syncope Deb Core</name>
  <description>Apache Syncope Deb Core</description>
  <groupId>org.apache.syncope</groupId>
  <artifactId>syncope-deb-core</artifactId>
  <packaging>war</packaging>

  <dependencies>
    <dependency>
      <groupId>org.apache.syncope</groupId>
      <artifactId>syncope-core</artifactId>
      <version>${project.version}</version>
      <type>war</type>
      <scope>runtime</scope>
    </dependency>
  </dependencies>

  <build>
    <resources>
      <resource>
        <directory>${project.basedir}/src/deb/tomcat7</directory>
        <filtering>true</filtering>
        <targetPath>${project.build.directory}/tomcat7</targetPath>
      </resource>
      <resource>
        <directory>${project.basedir}/../../core/src/main/resources</directory>
        <filtering>true</filtering>
        <targetPath>${project.build.directory}/etc</targetPath>
        <includes>
          <include>*.properties</include>
          <include>*.xml</include>
          <include>mailTemplates/*.vm</include>
        </includes>
        <excludes>
          <exclude>*Context*.xml</exclude>
          <exclude>*log4j2.xml</exclude>
        </excludes>
      </resource>
      <resource>
        <directory>${project.build.directory}/etc</directory>
        <targetPath>${project.build.directory}/classes</targetPath>
      </resource>
      <resource>
        <directory>${project.basedir}/../../core/src/main/resources</directory>
        <filtering>true</filtering>
        <targetPath>${project.build.directory}/classes</targetPath>
        <includes>
          <include>log4j2.xml</include>
        </includes>
      </resource>
      <resource>
        <directory>../..</directory>
        <targetPath>META-INF</targetPath>
        <includes>
          <include>LICENSE</include>
          <include>NOTICE</include>
        </includes>
      </resource>
    </resources>

    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <inherited>true</inherited>
        <executions>
          <execution>
            <id>set-bundles</id>
            <phase>process-resources</phase>
            <goals>
              <goal>copy</goal>
            </goals>
            <configuration>
              <outputDirectory>${project.build.directory}/bundles</outputDirectory>          
            </configuration>
          </execution>
        </executions>
      </plugin>

      <!-- Put NOTICE and LICENSE files in all javadoc artifacts -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.6</version>
        <executions>
          <execution>
            <id>copy-javadoc-legal-files</id>
            <phase>process-resources</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>${project.build.directory}/apidocs/META-INF</outputDirectory>
              <resources>
                <resource>
                  <directory>../..</directory>
                  <includes>
                    <include>LICENSE</include>
                    <include>NOTICE</include>
                  </includes>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>
                              
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <inherited>false</inherited>
        <extensions>true</extensions>
        <configuration>
          <attachClasses>false</attachClasses>
          <webResources>
            <resource>
              <directory>${basedir}/../../core</directory>
              <targetPath>META-INF</targetPath>
              <includes>
                <include>LICENSE</include>
                <include>NOTICE</include>
              </includes>
            </resource>
          </webResources>   
          <overlays>
            <overlay>
              <groupId>org.apache.syncope</groupId>
              <artifactId>syncope-core</artifactId>
            </overlay>
          </overlays>                   
        </configuration>
      </plugin>
      
      <plugin>
        <groupId>org.vafer</groupId>
        <artifactId>jdeb</artifactId>
        <inherited>true</inherited>
        <extensions>true</extensions>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>jdeb</goal>
            </goals>
            <configuration>
              <verbose>false</verbose>
              <controlDir>${project.basedir}/src/deb/control</controlDir>
              <deb>${project.build.directory}/apache-syncope-${project.version}.deb</deb>
              <dataSet>
                <data>
                  <type>template</type>
                  <paths>
                    <path>/var/lib/apache-syncope</path>
                    <path>${log.directory}</path>
                  </paths>
                  <mapper>
                    <type>perm</type>
                    <user>tomcat7</user>
                    <group>tomcat7</group>
                  </mapper>
                </data>

                <data>
                  <src>${project.build.directory}/tomcat7</src>
                  <type>directory</type>
                  <mapper>
                    <type>perm</type>
                    <prefix>/etc/tomcat7/Catalina/localhost</prefix>
                    <user>tomcat7</user>
                    <group>tomcat7</group>
                  </mapper>
                </data>
                <data>
                  <src>${project.build.directory}/etc</src>
                  <type>directory</type>
                  <mapper>
                    <type>perm</type>
                    <prefix>${conf.directory}</prefix>
                    <user>tomcat7</user>
                    <group>tomcat7</group>
                  </mapper>
                </data>
                <data>
                  <src>src/deb/utils</src>
                  <type>directory</type>
                  <mapper>
                    <type>perm</type>
                    <prefix>/usr/share/apache-syncope</prefix>
                    <user>tomcat7</user>
                    <group>tomcat7</group>
                  </mapper>
                </data>
                <data>
                  <src>${project.build.directory}/${project.build.finalName}.war</src>
                  <type>file</type>
                  <mapper>
                    <type>perm</type>
                    <prefix>/usr/share/apache-syncope</prefix>
                    <user>tomcat7</user>
                    <group>tomcat7</group>
                  </mapper>
                </data>
                <data>
                  <src>${project.build.directory}/bundles</src>
                  <type>directory</type>
                  <mapper>
                    <type>perm</type>
                    <prefix>${bundles.directory}</prefix>
                    <user>tomcat7</user>
                    <group>tomcat7</group>
                  </mapper>
                </data>
                <data>
                  <src>${basedir}/../../core</src>
                  <type>directory</type>
                  <includes>LICENSE,NOTICE</includes>
                  <mapper>
                    <type>perm</type>
                    <prefix>/usr/share/doc/apache-syncope</prefix>
                  </mapper>
                </data>
              </dataSet>
            </configuration>
          </execution>
        </executions>
      </plugin>       
    </plugins>
  </build>

  <profiles>
    <profile>
      <id>apache-release</id>
      
      <build>
        <plugins>      
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-deploy-plugin</artifactId>
            <configuration>
              <skip>true</skip>
            </configuration>
          </plugin>           
        </plugins>
      </build>
    </profile>
  </profiles>

</project>
