<?xml version="1.0" encoding="UTF-8"?>
<!--

    Copyright (C) 2009-2010 the original author or authors.
    See the notice.md file distributed with this work for additional
    information regarding copyright ownership.

    Licensed 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">

    <parent>
        <groupId>org.apache.karaf</groupId>
        <artifactId>karaf</artifactId>
        <version>2.2.0-fuse-SNAPSHOT</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>

    <artifactId>manual</artifactId>
    <name>Apache Karaf :: Manual</name>
    <packaging>war</packaging>

    <properties>
        <must-succeed>false</must-succeed>
        <manual.dir>${project.build.directory}/manual</manual.dir>
        <manual>${manual.dir}/manual-${project.version}</manual>
        <netbeans.hint.deploy.server>Tomcat60</netbeans.hint.deploy.server>
        <jetty-port>8080</jetty-port>
        <jetty-war-dir>${project.build.directory}/webapp/</jetty-war-dir>
        <scalate.version>1.4.0</scalate.version>
        <wikitext.version>1.3</wikitext.version>
        <scalate.editor>${env.SCALATE_EDITOR}</scalate.editor>
        <scalate.mode>production</scalate.mode>
        <scalate.workdir>${project.build.directory}/scalateWorkDir</scalate.workdir>
        <karaf.version>${project.version}</karaf.version>
        <maven.wagon.version>1.0-beta-6</maven.wagon.version>
    </properties>

    <repositories>
        <repository>
            <id>fusesource</id>
            <name>Fusesource Maven Repository</name>
            <url>http://repo.fusesource.com/nexus/content/repositories/snapshots/</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>fusesource</id>
            <name>Fusesource Maven Repository</name>
            <url>http://repo.fusesource.com/nexus/content/repositories/snapshots/</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>

    <dependencies>
        <dependency>
            <groupId>org.fusesource.scalate</groupId>
            <artifactId>scalate-wikitext</artifactId>
            <version>${scalate.version}</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>0.9.24</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.6.0</version>
        </dependency>
        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-library</artifactId>
            <version>2.8.1</version>
        </dependency>
        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-compiler</artifactId>
            <version>2.8.1</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <executions>
                    <execution>
                        <id>filter</id>
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/webapp</outputDirectory>
                            <resources>
                                <resource>
                                    <directory>src/main/webapp</directory>
                                    <filtering>true</filtering>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>1.5</version>
                <executions>
                    <execution>
                        <id>add-source</id>
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>add-source</goal>
                        </goals>
                        <configuration>
                            <sources>
                                <source>${project.build.directory}/webapp</source>
                            </sources>
                        </configuration>
                    </execution>
                    <execution>
                        <id>attach-artifacts</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>attach-artifact</goal>
                        </goals>
                        <configuration>
                            <artifacts>
                                <artifact>
                                    <file>${manual}.pdf</file>
                                    <type>pdf</type>
                                </artifact>
                                <artifact>
                                    <file>${manual}.html</file>
                                    <type>html</type>
                                </artifact>
                            </artifacts>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.karaf.tooling</groupId>
                <artifactId>cmdhelp-maven-plugin</artifactId>
                <version>${project.version}</version>
                <executions>
                    <execution>
                        <id>generate-commands</id>
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>cmdhelp</goal>
                        </goals>
                        <configuration>
                            <format>conf</format>
                            <targetFolder>${project.build.directory}/webapp/commands/</targetFolder>
                            <classLoader>plugin</classLoader>
                        </configuration>
                    </execution>
                </executions>
                <dependencies>
                    <!-- Commands for help generation -->
                    <dependency>
                        <groupId>org.apache.karaf.shell</groupId>
                        <artifactId>org.apache.karaf.shell.commands</artifactId>
                        <version>${project.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>org.apache.karaf.shell</groupId>
                        <artifactId>org.apache.karaf.shell.config</artifactId>
                        <version>${project.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>org.apache.karaf.shell</groupId>
                        <artifactId>org.apache.karaf.shell.console</artifactId>
                        <version>${project.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>org.apache.karaf.shell</groupId>
                        <artifactId>org.apache.karaf.shell.dev</artifactId>
                        <version>${project.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>org.apache.karaf.shell</groupId>
                        <artifactId>org.apache.karaf.shell.log</artifactId>
                        <version>${project.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>org.apache.karaf.shell</groupId>
                        <artifactId>org.apache.karaf.shell.obr</artifactId>
                        <version>${project.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>org.apache.karaf.shell</groupId>
                        <artifactId>org.apache.karaf.shell.osgi</artifactId>
                        <version>${project.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>org.apache.karaf.shell</groupId>
                        <artifactId>org.apache.karaf.shell.packages</artifactId>
                        <version>${project.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>org.apache.karaf.shell</groupId>
                        <artifactId>org.apache.karaf.shell.ssh</artifactId>
                        <version>${project.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>org.apache.karaf.shell</groupId>
                        <artifactId>org.apache.karaf.shell.web</artifactId>
                        <version>${project.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>org.apache.karaf.shell</groupId>
                        <artifactId>org.apache.karaf.shell.wrapper</artifactId>
                        <version>${project.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>org.apache.karaf.admin</groupId>
                        <artifactId>org.apache.karaf.admin.command</artifactId>
                        <version>${project.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>org.apache.karaf.diagnostic</groupId>
                        <artifactId>org.apache.karaf.diagnostic.command</artifactId>
                        <version>${project.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>org.apache.karaf.features</groupId>
                        <artifactId>org.apache.karaf.features.command</artifactId>
                        <version>${project.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>org.apache.karaf.jaas</groupId>
                        <artifactId>org.apache.karaf.jaas.command</artifactId>
                        <version>${project.version}</version>
                    </dependency>
                </dependencies>
            </plugin>
            <plugin>
                <groupId>org.fusesource.scalate</groupId>
                <artifactId>maven-scalate-plugin</artifactId>
                <version>${scalate.version}</version>
                <executions>
                    <execution>
                        <id>generate-htmls</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>sitegen-no-fork</goal>
                        </goals>
                        <configuration>
                            <warSourceDirectory>${project.build.directory}/webapp</warSourceDirectory>
                        </configuration>
                    </execution>
                </executions>
                <configuration>
                    <remoteServerId>people.apache.org</remoteServerId>
                    <remoteServerUrl>scp://people.apache.org/www/karaf.apache.org/manual/${karaf.version}</remoteServerUrl>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.maven.wagon</groupId>
                        <artifactId>wagon-ssh</artifactId>
                        <version>${maven.wagon.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>org.fusesource.wikitext</groupId>
                        <artifactId>confluence-core</artifactId>
                        <version>${wikitext.version}</version>
                    </dependency>
                </dependencies>
            </plugin>
            <plugin>
                <artifactId>maven-antrun-plugin</artifactId>
                <version>1.2</version>
                <executions>
                    <execution>
                        <id>create-manual</id>
                        <phase>package</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <tasks>
                                <taskdef name="trycatch" classname="net.sf.antcontrib.logic.TryCatchTask"
                                         classpathref="maven.plugin.classpath"/>
                                <mkdir dir="${manual.dir}"/>
                                <move file="${project.build.directory}/sitegen/manual.html" tofile="${manual}.html"/>
                                <trycatch property="error">
                                    <try>
                                        <echo message="Generating PDF using Prince XML (http://www.princexml.com/)"/>
                                        <exec executable="prince">
                                            <arg value="${manual}.html"/>
                                            <arg value="${manual}.pdf"/>
                                            <arg value="--log"/>
                                            <arg value="${project.build.directory}/prince.log"/>
                                        </exec>
                                    </try>
                                    <catch>
                                        <if>
                                            <equals arg1="${must-succeed}" arg2="true"/>
                                            <then>
                                                <echo>ERROR: ${error}</echo>
                                                <fail>${error}</fail>
                                            </then>
                                            <else>
                                                <echo>ERROR: ${error}</echo>
                                                <echo>Falling back to dummy manuals</echo>
                                                <copy file="src/fallback/manual.html" tofile="${manual}.html"/>
                                                <copy file="src/fallback/manual.pdf" tofile="${manual}.pdf"/>
                                            </else>
                                        </if>
                                    </catch>
                                </trycatch>
                            </tasks>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.1</version>
                <configuration>
                    <webResources>
                        <resource>
                            <directory>${project.build.directory}/webapp/</directory>
                        </resource>
                    </webResources>
                    <archive>
                        <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
                    </archive>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>7.1.5.v20100705</version>
                <configuration>
                    <!-- When editing the conf files, you can comment this line to run
                        mvn jetty:run
                       to have a live web site
                    -->
                    <webAppSourceDirectory>${jetty-war-dir}</webAppSourceDirectory>

                    <systemProperties>
                        <systemProperty>
                            <name>scalate.editor</name>
                            <value>${scalate.editor}</value>
                        </systemProperty>
                        <systemProperty>
                            <name>scalate.workdir</name>
                            <value>${scalate.workdir}</value>
                        </systemProperty>
                        <systemProperty>
                            <name>scalate.mode</name>
                            <value>${scalate.mode}</value>
                        </systemProperty>
                    </systemProperties>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <executions>
                    <execution>
                        <id>bundle-manifest</id>
                        <phase>process-classes</phase>
                        <goals>
                            <goal>manifest</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <supportedProjectTypes>
                        <supportedProjectType>jar</supportedProjectType>
                        <supportedProjectType>bundle</supportedProjectType>
                        <supportedProjectType>war</supportedProjectType>
                    </supportedProjectTypes>
                    <instructions>
                        <Import-Package>
                            javax.servlet,
                            javax.servlet.http,
                            org.osgi.framework,
                            org.osgi.service.packageadmin,
                            javax.swing.tree,
                            org.apache.commons.logging;provider=paxlogging;resolution:=optional,
                            org.apache.log4j;provider=paxlogging;resolution:=optional,
                            org.slf4j;provider=paxlogging;resolution:=optional;version="[1.5,2)",
                        </Import-Package>
                        <Bundle-ClassPath>.,WEB-INF/classes</Bundle-ClassPath>
                        <Embed-Directory>WEB-INF/lib</Embed-Directory>
                        <Embed-Dependency>*;scope=compile|runtime</Embed-Dependency>
                        <Embed-Transitive>true</Embed-Transitive>
                        <Webapp-Context>/karaf-doc</Webapp-Context>
                    </instructions>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <reporting>
        <plugins>
            <plugin>
                <groupId>org.fusesource.scalate</groupId>
                <artifactId>maven-scalate-plugin</artifactId>
                <version>${scalate.version}</version>
            </plugin>
        </plugins>
    </reporting>

    <profiles>
        <profile>
            <id>live</id>
            <properties>
                <jetty-war-dir>${basedir}/src/main/webapp/</jetty-war-dir>
                <scalate.mode>development</scalate.mode>
            </properties>
        </profile>
        <profile>
            <id>release</id>
            <properties>
                <must-succeed>true</must-succeed>
            </properties>
        </profile>
    </profiles>

</project>

