<?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/maven-v4_0_0.xsd">
    <!--
        To build the distribution files from project root:

        mvn clean compile package -Dtest=false

        To build and deploy a full digned release with docs, run:

            mvn clean deploy -Pjavadoc-profile,docbook-profile,sign-release

        Note that to sign the release, you need to have "gpg" installed and
        create a key. See http://apache.org/dev/release-signing.html
    -->
    <modelVersion>4.0.0</modelVersion>
    <artifactId>apache-openjpa</artifactId>
    <packaging>pom</packaging>
    <name>OpenJPA Distribution</name>
    <parent>
        <groupId>org.apache.openjpa</groupId>
        <artifactId>openjpa-parent</artifactId>
        <version>1.1.0</version>
    </parent>

    <properties>
        <openjpa.release.keyAlias>
            ${user.name}@apache.org
        </openjpa.release.keyAlias>

        <openjpa.assembly.finalName>
            ${artifactId}-${version}</openjpa.assembly.finalName>
        <openjpa.assembly.outputDirectory>
            ${project.basedir}/../target/site/downloads
        </openjpa.assembly.outputDirectory>

        <openjpa.assembly.binarySuffix>binary</openjpa.assembly.binarySuffix>
        <openjpa.assembly.binaryBase>
            ${openjpa.assembly.outputDirectory}/${openjpa.assembly.finalName}-${openjpa.assembly.binarySuffix}
        </openjpa.assembly.binaryBase>
        <openjpa.assembly.binaryFile>
            ${openjpa.assembly.binaryBase}.zip
        </openjpa.assembly.binaryFile>

        <openjpa.assembly.sourceSuffix>source</openjpa.assembly.sourceSuffix>
        <openjpa.assembly.sourceBase>
            ${openjpa.assembly.outputDirectory}/${openjpa.assembly.finalName}-${openjpa.assembly.sourceSuffix}
        </openjpa.assembly.sourceBase>
        <openjpa.assembly.sourceFile>
            ${openjpa.assembly.sourceBase}.zip
        </openjpa.assembly.sourceFile>

        <parent.site.docs>
            ${project.basedir}/../target/site/docs
        </parent.site.docs>

        <docbook.source>${project.basedir}/src/doc/manual</docbook.source>
        <docbook.target>${project.basedir}/target/manual</docbook.target>
        <docbook.version>1.67.2</docbook.version>
        <local.repository>${settings.localRepository}</local.repository>
    </properties>

    <build>
        <!-- needed to let maven pass the "compile" phase -->
        <testSourceDirectory>/none/</testSourceDirectory>

        <!-- filter site resources -->
        <resources>
            <resource>
                <directory>${project.basedir}/src/site</directory>
                <!-- targetPath is relative to target/classes/ -->
                <targetPath>../filtered-site</targetPath>
                <filtering>false</filtering>
            </resource>
        </resources>

        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <executions>
                    <execution>
                        <id>bin</id>
                        <phase>package</phase>
                        <goals>
                            <goal>attached</goal>
                        </goals>
                        <configuration>
                            <descriptor>assembly.xml</descriptor>
                            <outputDirectory>${openjpa.assembly.outputDirectory}</outputDirectory>
                            <workDirectory>target/work</workDirectory>
                        </configuration>
                    </execution>
                    <execution>
                        <id>sources</id>
                        <phase>package</phase>
                        <goals>
                            <goal>attached</goal>
                        </goals>
                        <configuration>
                            <descriptor>source-assembly.xml</descriptor>
                            <outputDirectory>${openjpa.assembly.outputDirectory}</outputDirectory>
                            <workDirectory>target/work</workDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <!--
                Copy over site files from src/site to target/filtered-site
                so we can filter resources and include other generated
                content from the openjpa-project module.
            -->
            <plugin>
                <artifactId>maven-resources-plugin</artifactId>
                <executions>
                    <execution>
                        <id>prefilter-site</id>
                        <phase>site</phase>
                        <goals>
                            <goal>resources</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
                <version>2.0-beta-5</version>
                <configuration>
                    <siteDirectory>target/filtered-site</siteDirectory>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <!--
            Docbook profile. Docs can be built by running:
            MAVEN_OPTS=-Xmx512m
            mvn -f openjpa-project/pom.xml process-resources -Pdocbook-profile
        -->
        <profile>
            <id>docbook-profile</id>
            <build>
                <plugins>
                    <!-- build the docs when processing resources -->
                    <plugin>
                        <groupId>com.agilejava.docbkx</groupId>
                        <artifactId>docbkx-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>build-pdf-doc</id>
                                <phase>process-resources</phase>
                                <goals><goal>generate-pdf</goal></goals>
                                <configuration>
                                    <sourceDirectory>
                                        ${docbook.source}
                                    </sourceDirectory>
                                    <targetDirectory>
                                        ${docbook.target}
                                    </targetDirectory>
                                    <includes>manual.xml</includes>
                                    <foCustomization>
                                        ${docbook.source}/manual-pdf.xsl
                                    </foCustomization>
                                    <imgSrcPath>
                                        ${docbook.source}/
                                    </imgSrcPath>
                                    <postProcess>
                                        <!-- copy to parent module for 
                                             expanded access in upload -->
                                        <mkdir dir="${parent.site.docs}"/>
                                        <delete file="${docbook.target}/manual.fo"/>
                                        <copy todir="${parent.site.docs}">
                                            <fileset
                                                dir="${docbook.target}">
                                                <include name="manual.pdf"/>
                                            </fileset>
                                        </copy>
                                    </postProcess>
                                </configuration>
                            </execution>
                            <execution>
                                <id>build-chunked-doc</id>
                                <phase>process-resources</phase>
                                <goals><goal>generate-html</goal></goals>
                                <configuration>
                                    <sourceDirectory>
                                        ${docbook.source}
                                    </sourceDirectory>
                                    <targetDirectory>
                                        ${docbook.target}
                                    </targetDirectory>
                                    <includes>manual.xml</includes>
                                    <chunkedOutput>true</chunkedOutput>
                                    <chunkQuietly>false</chunkQuietly>
                                    <htmlCustomization>
                                        ${docbook.source}/manual-xhtml-chunk.xsl
                                    </htmlCustomization>
                                    <postProcess>
                                        <!-- rename manual to index -->
                                        <move
                                        file="${docbook.target}/manual.html"
                                        tofile="${docbook.target}/index.html"/>

                                        <!-- copy over images and styles -->
                                        <mkdir dir="${docbook.target}/img"/>
                                        <copy todir="${docbook.target}/img">
                                            <fileset
                                                dir="${docbook.source}/img">
                                                <include name="*.*"/>
                                                <exclude name="*.graffle"/>
                                            </fileset>
                                        </copy>

                                        <mkdir dir="${docbook.target}/css"/>
                                        <copy todir="${docbook.target}/css">
                                            <fileset
                                                dir="${docbook.source}/css">
                                                <include name="*.*"/>
                                            </fileset>
                                        </copy>

                                        <!-- copy to parent module for 
                                             expanded access in upload -->
                                        <mkdir dir="${parent.site.docs}"/>
                                        <copy todir="${parent.site.docs}">
                                            <fileset
                                                dir="${docbook.target}">
                                                <include name="*.*"/>
                                            </fileset>
                                        </copy>
                                    </postProcess>
                                </configuration>
                            </execution>
                            <execution>
                                <id>build-single-doc</id>
                                <phase>process-resources</phase>
                                <goals><goal>generate-html</goal></goals>
                                <configuration>
                                    <sourceDirectory>
                                        ${docbook.source}
                                    </sourceDirectory>
                                    <targetDirectory>
                                        ${docbook.target}
                                    </targetDirectory>
                                    <includes>manual.xml</includes>
                                    <chunkedOutput>false</chunkedOutput>
                                    <htmlCustomization>
                                        ${docbook.source}/manual-xhtml.xsl
                                    </htmlCustomization>
                                    <postProcess>
                                        <!-- copy to parent module for 
                                             expanded access in upload -->
                                        <mkdir dir="${parent.site.docs}"/>
                                        <copy todir="${parent.site.docs}">
                                            <fileset
                                                dir="${docbook.target}">
                                                <include name="manual.html"/>
                                            </fileset>
                                        </copy>
                                    </postProcess>
                                </configuration>
                            </execution>
                        </executions>
                        <dependencies>
                        <dependency>
                            <groupId>org.docbook</groupId>
                            <artifactId>docbook-xml</artifactId>
                            <version>4.4</version>
                            <scope>runtime</scope>
                        </dependency>
                        </dependencies>
                    </plugin>
                </plugins>
            </build>
            <activation>
                <property>
                    <name>builddocs</name>
                    <value>true</value>
                </property>
            </activation>
            <pluginRepositories>
                <pluginRepository>
                    <id>agilejava</id>
                    <name>Agilejava repository (Docbook plugin)</name>
                    <url>http://agilejava.com/maven</url>
                </pluginRepository>
            </pluginRepositories>
        </profile>

        <!-- sign the release files -->
        <profile>
            <id>sign-release</id>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <executions>
                            <execution>
                                <phase>verify</phase>
                                <configuration>
                                    <tasks>
                                    <echo>Signing release files...</echo>
                                    <macrodef name="sign-file">
                                        <attribute name="file" />
                                        <sequential>
                                        <delete failonerror="false"
                                            file="@{file}.asc"/>
                                        <exec executable="gpg"
                                            failonerror="true">
                                            <arg value="--batch"/>
                                            <arg value="--passphrase"/>
                                            <arg value="${gpg.passphrase}"/>
                                            <arg value="--verbose"/>
                                            <arg value="--default-key"/>
                                            <arg value="${openjpa.release.keyAlias}"/>
                                            <arg value="--armor"/>
                                            <arg value="--detach-sig"/>
                                            <arg value="@{file}"/>
                                        </exec>
                                        </sequential>
                                    </macrodef>
                                    <sign-file file="${openjpa.assembly.binaryFile}"/>
                                    <sign-file file="${openjpa.assembly.sourceFile}"/>
                                    </tasks>
                                </configuration>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>build-helper-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>attach-signature-artifacts</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>attach-artifact</goal>
                                </goals>
                                <configuration>
                                    <artifacts>
                                        <artifact>
                                            <file>${openjpa.assembly.binaryFile}.asc</file>
                                            <classifier>${openjpa.assembly.binarySuffix}.zip</classifier>
                                            <type>asc</type>
                                        </artifact>
                                        <artifact>
                                            <file>${openjpa.assembly.sourceFile}.asc</file>
                                            <classifier>${openjpa.assembly.sourceSuffix}.zip</classifier>
                                            <type>asc</type>
                                        </artifact>
                                    </artifacts>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
            <activation>
                <property>
                    <name>sign</name>
                    <value>true</value>
                </property>
            </activation>
        </profile>
    </profiles>

    <!-- need to explicitly list dependencies for assembly to work -->
    <dependencies>
        <dependency>
            <groupId>org.apache.openjpa</groupId>
            <artifactId>openjpa</artifactId>
            <version>${pom.version}</version>
        </dependency>

        <!-- included so we can include it in the distribution -->
        <dependency>
            <groupId>org.apache.derby</groupId>
            <artifactId>derby</artifactId>
        </dependency>
    </dependencies>
</project>
