<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.felix.karaf</groupId>
    <artifactId>karaf</artifactId>
    <version>1.2.0</version>
  </parent>

  <modelVersion>4.0.0</modelVersion>
  <groupId>org.apache.felix.karaf</groupId>
  <artifactId>manual</artifactId>
  <version>1.2.0</version>
  <packaging>pom</packaging>
  <name>Apache Felix Karaf :: Manual</name>
  <description>The Karaf Manual which generates a HTML and PDF representation of the manual.</description>

  <properties>
      <must-succeed>false</must-succeed>
      
      <manual.dir>${project.build.directory}/manual</manual.dir>
      <manual>${manual.dir}/manual-${project.version}</manual>
      <svn.root>${project.scm.connection}</svn.root>
  </properties>

  <build>
    <plugins>
        
    <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.2</version>
        <executions>
            <execution>
                <id>preprocess</id>
                <configuration>
                    <tasks>
                        <taskdef name="if" classname="net.sf.antcontrib.logic.IfTask" classpathref="maven.plugin.classpath" />
                        <taskdef name="for" classname="net.sf.antcontrib.logic.ForTask" classpathref="maven.plugin.classpath" />
                        <taskdef name="trycatch" classname="net.sf.antcontrib.logic.TryCatchTask" classpathref="maven.plugin.classpath" />
                        <property name="ant.regexp.regexpimpl" value="org.apache.tools.ant.util.regexp.Jdk14RegexpRegexp" />
                        <mkdir dir="${manual.dir}" />
                        <trycatch property="error">
                            <try>
                                <get src="http://cwiki.apache.org/confluence/display/FELIX/Karaf+Users%27+Guide+in+one+page" dest="${manual}.temp" />
                                <for list="1,2,3,4,5,6,7,8,9,10" param="letter">
                                    <sequential>
                                        <replaceregexp file="${manual}.temp" flags="g" match="&quot;/confluence/display/FELIX/([^&quot;]*)\+([^&quot;+]*)&quot;" replace="&quot;/confluence/display/FELIX/\1\2&quot;" />
                                    </sequential>
                                </for>
                                <replaceregexp file="${manual}.temp" flags="g" match="&quot;/confluence/display/FELIX/([^&quot;]*)&quot;" replace="&quot;#KarafUsers%27Guideinonepage-\1&quot;" />
                                <replaceregexp file="${manual}.temp" flags="g" match="&quot;/confluence/([^&quot;]*)&quot;" replace="&quot;http://cwiki.apache.org/confluence/\1&quot;" />
                                <replaceregexp file="${manual}.temp" flags="g" match="&gt;top&lt;/a&gt;" replace="&gt;&lt;/a&gt;" />
                                <java classname="org.ccil.cowan.tagsoup.CommandLine" classpathref="maven.plugin.classpath" fork="true" output="${manual}.temp2" logError="true">
                                    <arg value="${manual}.temp" />
                                </java>
                                <xslt in="${manual}.temp2" out="${manual}.html" style="${basedir}/src/xslt/extract.xsl">
                                    <param name="stylesheet" expression="${basedir}/src/styles/print.css" />
                                </xslt>
                                <exec executable="prince">
                                    <arg value="${manual}.html" />
                                    <arg value="${manual}.pdf" />
                                </exec>
                                <replace file="${manual}.html" token="${basedir}/src/styles/print.css" value="${svn.root}/src/styles/print.css" />
                                <replace file="${manual}.html" token="scm:svn:" value="" />
                            </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>
                <goals>
                    <goal>run</goal>
                </goals>
                <phase>generate-resources</phase>
            </execution>
         </executions>
      </plugin>

      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>attach-artifacts</id>
            <phase>package</phase>
            <goals>
              <goal>attach-artifact</goal>
            </goals>
            <configuration>
              <artifacts>
                <artifact>
                  <file>${manual}.html</file>
                  <type>html</type>
                </artifact>
                <artifact>
                  <file>${manual}.pdf</file>
                  <type>pdf</type>
                </artifact>
              </artifacts>
            </configuration>
          </execution>
        </executions>
      </plugin>      
    </plugins>
  </build>

  <profiles>
      <profile>
          <id>release</id>
          <properties>
              <must-succeed>true</must-succeed>
          </properties>
      </profile>
  </profiles>

</project>