From e680e90e169eaf761b92114c893ea43a0729cb98 Mon Sep 17 00:00:00 2001
From: Mark Craig <mark.craig@forgerock.com>
Date: Thu, 02 Apr 2015 12:54:27 +0000
Subject: [PATCH] CR-6546 OPENDJ-1787 Automate man page generation

---
 opendj-server-legacy/pom.xml |  299 ++++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 202 insertions(+), 97 deletions(-)

diff --git a/opendj-server-legacy/pom.xml b/opendj-server-legacy/pom.xml
index 3a5d2cb..32b1147 100644
--- a/opendj-server-legacy/pom.xml
+++ b/opendj-server-legacy/pom.xml
@@ -527,43 +527,7 @@
             </configuration>
           </execution>
 
-          <!-- Generates log references for documentation -->
-          <execution>
-            <goals>
-              <goal>generate-xml-messages-doc</goal>
-            </goals>
-            <configuration>
-              <messagesDirectory>${basedir}/src/messages/org/opends/messages</messagesDirectory>
-              <outputDirectory>${project.build.directory}/docgen/logref</outputDirectory>
-              <logMessageReferenceFilePath>${basedir}/resource/log-message-reference.xml</logMessageReferenceFilePath>
-              <messageFileNames>
-                <!-- for xxx_yyy.properties generates a log-ref-xxx-yyy.xml file -->
-                <messageFileName>admin</messageFileName>
-                <messageFileName>backend</messageFileName>
-                <messageFileName>config</messageFileName>
-                <messageFileName>core</messageFileName>
-                <messageFileName>dsconfig</messageFileName>
-                <messageFileName>extension</messageFileName>
-                <messageFileName>jeb</messageFileName>
-                <messageFileName>logger</messageFileName>
-                <messageFileName>plugin</messageFileName>
-                <messageFileName>protocol</messageFileName>
-                <messageFileName>replication</messageFileName>
-                <messageFileName>schema</messageFileName>
-                <messageFileName>task</messageFileName>
-                <messageFileName>tool</messageFileName>
-                <messageFileName>utility</messageFileName>
-
-                <!-- Ignore following message files as we document only serious errors. -->
-                <!-- <messageFileName>access_control</messageFileName> -->
-                <!-- <messageFileName>admin_tool</messageFileName> -->
-                <!-- <messageFileName>quicksetup.properties</messageFileName> -->
-                <!-- <messageFileName>runtime_information.properties</messageFileName> -->
-                <!-- <messageFileName>version.properties</messageFileName> -->
-              </messageFileNames>
-            </configuration>
-          </execution>
-
+          <!-- Generates man page sources -->
           <execution>
              <id>generate-doc</id>
              <goals>
@@ -1454,65 +1418,6 @@
         </executions>
       </plugin>
 
-      <!-- Generate documentation -->
-      <plugin>
-        <groupId>org.forgerock.opendj</groupId>
-        <artifactId>opendj-doc-plugin</artifactId>
-        <version>${project.version}</version>
-        <executions>
-          <execution>
-            <id>generate-schema-reference-doc</id>
-            <phase>pre-site</phase>
-            <goals>
-              <goal>generate-schema-ref</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-
-      <plugin>
-        <groupId>org.forgerock.commons</groupId>
-        <artifactId>forgerock-doc-maven-plugin</artifactId>
-        <version>${frDocPluginVersion}</version>
-        <inherited>false</inherited>
-        <configuration>
-          <projectName>${shortProductName}</projectName>
-          <projectVersion>${docTargetVersion}</projectVersion>
-          <releaseVersion>${docTargetVersion}</releaseVersion>
-          <googleAnalyticsId>${gaId}</googleAnalyticsId>
-        </configuration>
-        <executions>
-          <execution>
-            <id>pre-process-doc</id>
-            <phase>pre-site</phase>
-            <goals>
-              <goal>process</goal>
-            </goals>
-          </execution>
-          <execution>
-            <id>build-doc</id>
-            <phase>pre-site</phase>
-            <goals>
-              <goal>build</goal>
-            </goals>
-          </execution>
-          <execution>
-            <id>layout-doc</id>
-            <phase>site</phase>
-            <goals>
-              <goal>site</goal>
-            </goals>
-          </execution>
-          <execution>
-            <id>layout-release</id>
-            <phase>site</phase>
-            <goals>
-              <goal>release</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-
       <!-- Build javadoc -->
       <plugin>
         <groupId>org.forgerock.maven.plugins</groupId>
@@ -1921,6 +1826,98 @@
       </build>
     </profile>
 
+    <profile>
+      <!-- Build documentation -->
+      <id>docs</id>
+
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.forgerock.opendj</groupId>
+            <artifactId>opendj-doc-plugin</artifactId>
+            <version>${project.version}</version>
+            <executions>
+              <execution>
+                <id>generate-schema-reference-doc</id>
+                <phase>prepare-package</phase>
+                <goals>
+                  <goal>generate-schema-ref</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
+
+          <plugin>
+            <groupId>org.forgerock.opendj</groupId>
+            <artifactId>opendj-maven-plugin</artifactId>
+            <version>${project.version}</version>
+            <executions>
+              <execution>
+                <goals>
+                  <goal>generate-xml-messages-doc</goal>
+                </goals>
+                <phase>prepare-package</phase>
+                <configuration>
+                  <messagesDirectory>${basedir}/src/messages/org/opends/messages</messagesDirectory>
+                  <outputDirectory>${project.build.directory}/docgen/logref</outputDirectory>
+                  <logMessageReferenceFilePath>${basedir}/resource/log-message-reference.xml</logMessageReferenceFilePath>
+                  <messageFileNames>
+                    <!-- for xxx_yyy.properties generates a log-ref-xxx-yyy.xml file -->
+                    <messageFileName>admin</messageFileName>
+                    <messageFileName>backend</messageFileName>
+                    <messageFileName>config</messageFileName>
+                    <messageFileName>core</messageFileName>
+                    <messageFileName>dsconfig</messageFileName>
+                    <messageFileName>extension</messageFileName>
+                    <messageFileName>jeb</messageFileName>
+                    <messageFileName>logger</messageFileName>
+                    <messageFileName>plugin</messageFileName>
+                    <messageFileName>protocol</messageFileName>
+                    <messageFileName>replication</messageFileName>
+                    <messageFileName>schema</messageFileName>
+                    <messageFileName>task</messageFileName>
+                    <messageFileName>tool</messageFileName>
+                    <messageFileName>utility</messageFileName>
+
+                    <!-- Ignore following message files as we document only serious errors. -->
+                    <!-- <messageFileName>access_control</messageFileName> -->
+                    <!-- <messageFileName>admin_tool</messageFileName> -->
+                    <!-- <messageFileName>quicksetup.properties</messageFileName> -->
+                    <!-- <messageFileName>runtime_information.properties</messageFileName> -->
+                    <!-- <messageFileName>version.properties</messageFileName> -->
+                  </messageFileNames>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+
+          <plugin>
+            <groupId>org.forgerock.commons</groupId>
+            <artifactId>forgerock-doc-maven-plugin</artifactId>
+            <inherited>false</inherited>
+            <executions>
+              <execution>
+                <id>build-doc</id>
+                <phase>pre-site</phase>
+                <goals>
+                  <goal>process</goal>
+                  <goal>build</goal>
+                </goals>
+              </execution>
+              <execution>
+                <id>layout-doc</id>
+                <phase>site</phase>
+                <goals>
+                  <goal>site</goal>
+                  <goal>release</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+
     <!-- Build the debian package -->
     <profile>
       <id>package-deb</id>
@@ -1930,10 +1927,32 @@
           <deb.docprefix>/usr/share/doc/${lowerCaseProductName}</deb.docprefix>
           <deb.release>1</deb.release>
           <deb.maintainer>opendj@forgerock.org</deb.maintainer>
+          <manpage.dir>${project.build.directory}/docbkx/manpages/reference</manpage.dir>
         </properties>
 
         <build>
           <plugins>
+            <!-- Build man pages -->
+            <plugin>
+                <groupId>org.forgerock.commons</groupId>
+                <artifactId>forgerock-doc-maven-plugin</artifactId>
+                <configuration>
+                    <formats combine.self="override">
+                        <format>man</format>
+                    </formats>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>build-man-pages</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>process</goal>
+                            <goal>build</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
             <!-- Filter deb install and remove scripts -->
             <plugin>
               <artifactId>maven-resources-plugin</artifactId>
@@ -1974,6 +1993,21 @@
                     </target>
                   </configuration>
                 </execution>
+                <execution>
+                  <id>gzip-man-pages</id>
+                  <phase>verify</phase>
+                  <goals>
+                    <goal>run</goal>
+                  </goals>
+                  <configuration>
+                    <target>
+                      <apply executable="gzip"><!-- Must we also build these packages on Windows? -->
+                        <arg value="-9" />
+                        <fileset dir="${manpage.dir}" />
+                      </apply>
+                    </target>
+                  </configuration>
+                </execution>
               </executions>
             </plugin>
 
@@ -2034,6 +2068,16 @@
                         </mapper>
                       </data>
 
+                      <!-- OpenDJ man pages -->
+                      <data>
+                        <src>${manpage.dir}</src>
+                        <type>directory</type>
+                        <mapper>
+                          <type>perm</type>
+                          <prefix>${deb.prefix}/share/man</prefix>
+                        </mapper>
+                      </data>
+
                       <!-- OpenDJ archive files without specific permission -->
                       <data>
                         <src>${project.build.directory}/package/${lowerCaseProductName}</src>
@@ -2089,6 +2133,27 @@
 
       <build>
         <plugins>
+            <!-- Build man pages -->
+          <plugin>
+            <groupId>org.forgerock.commons</groupId>
+            <artifactId>forgerock-doc-maven-plugin</artifactId>
+            <configuration>
+              <formats combine.self="override">
+                <format>man</format>
+              </formats>
+            </configuration>
+            <executions>
+              <execution>
+                <id>build-man-pages</id>
+                <phase>package</phase>
+                <goals>
+                  <goal>process</goal>
+                  <goal>build</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
+
           <plugin>
             <groupId>org.codehaus.mojo</groupId>
             <artifactId>rpm-maven-plugin</artifactId>
@@ -2136,6 +2201,12 @@
                   <directory>${rpm.prefix}/lib/extensions</directory>
                 </mapping>
                 <mapping>
+                  <directory>${rpm.prefix}/share</directory>
+                </mapping>
+                <mapping>
+                  <directory>${rpm.prefix}/share/man</directory>
+                </mapping>
+                <mapping>
                   <directory>${rpm.prefix}/snmp</directory>
                 </mapping>
                 <mapping>
@@ -2175,7 +2246,7 @@
                   </sources>
                 </mapping>
 
-                <!-- Add executables scripts and librairies -->
+                <!-- Add executable scripts and libraries -->
                 <mapping>
                   <directory>${rpm.prefix}</directory>
                   <filemode>755</filemode>
@@ -2199,6 +2270,19 @@
                   </sources>
                 </mapping>
 
+                <!-- Add man pages -->
+                <mapping>
+                  <directory>${rpm.prefix}/share/man</directory>
+                  <sources>
+                    <source>
+                      <location>${project.build.directory}/docbkx/manpages/reference</location>
+                      <includes>
+                        <include>**/*.*</include>
+                      </includes>
+                    </source>
+                  </sources>
+                </mapping>
+
                 <!-- Add other files to the rpm -->
                 <mapping>
                   <directory>${rpm.prefix}</directory>
@@ -2285,6 +2369,27 @@
       <id>package-svr4</id>
       <build>
         <plugins>
+          <!-- Build man pages -->
+          <plugin>
+            <groupId>org.forgerock.commons</groupId>
+            <artifactId>forgerock-doc-maven-plugin</artifactId>
+            <configuration>
+              <formats combine.self="override">
+                <format>man</format>
+              </formats>
+            </configuration>
+            <executions>
+              <execution>
+                <id>build-man-pages</id>
+                <phase>package</phase>
+                <goals>
+                  <goal>process</goal>
+                  <goal>build</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
+
           <plugin>
             <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-antrun-plugin</artifactId>

--
Gitblit v1.10.0