blob: 07ac95f368ac5bc14dc92208219d64154b915ec6 [file] [log] [blame]
<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.3.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.felix.karaf</groupId>
<artifactId>manual</artifactId>
<version>1.3.0-SNAPSHOT</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>