From 0ce65d8efb4aa43d970dc9603d8e76b55ec65b0c Mon Sep 17 00:00:00 2001
From: Jason Helfman <jgh@FreeBSD.org>
Date: Fri, 24 Jan 2014 17:03:57 +0000
Subject: [PATCH] - document proper handling of .war file in porters handbook

Approved by:	wblock (mentor)
Reviewed by:	bcr, remko (mentors)
---
 .../books/porters-handbook/book.xml           | 27 +++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/en_US.ISO8859-1/books/porters-handbook/book.xml b/en_US.ISO8859-1/books/porters-handbook/book.xml
index 9eac572195..c622c37cad 100644
--- a/en_US.ISO8859-1/books/porters-handbook/book.xml
+++ b/en_US.ISO8859-1/books/porters-handbook/book.xml
@@ -7547,6 +7547,33 @@ USE_QT4=	moc_build qmake_build rcc_build uic_build</programlisting>
 	  already installed ones (from
 	  <filename>${JAVAJARDIR}</filename>).</para>
 
+	<para>When porting a &java; application that requires an
+	  application server such as
+	  <package role="port">www/tomcat7</package> to run the
+	  service, it is quite common for a vendor to distribute a
+	  <filename>.war</filename> file.  A <filename>.war</filename>
+	  file is a Web application ARchive and is extracted when called
+	  by the application.  Avoid adding a <filename>.war</filename>
+	  file to the <filename>pkg-plist</filename>.
+	  It is not considered best practice.  An application server
+	  will expand the <filename>war</filename> archive, but not
+	  clean it up properly if the port is removed.  A more
+	  desirable way of working with this file is to extract the
+	  archive, then install the files, and lastly add these files
+	  to <filename>pkg-plist</filename>.</para>
+
+	<programlisting>TOMCATDIR=	${LOCALBASE}/apache-tomcat-7.0
+WEBAPPDIR=	myapplication
+
+post-extract:
+	@${MKDIR} ${WRKDIR}/${PORTDIRNAME}
+	@${TAR} xf ${WRKDIR}/myapplication.war -C ${WRKDIR}/${PORTDIRNAME}
+
+do-install:
+	cd ${WRKDIR} &amp;&amp; \
+	${INSTALL} -d -o ${WWWOWN} -g ${WWWGRP} ${TOMCATDIR}/webapps/${PORTDIRNAME}
+	@cd ${WRKDIR}/${PORTDIRNAME} &amp;&amp; ${COPYTREE_SHARE} \* ${WEBAPPDIR}/${PORTDIRNAME}</programlisting>
+
 	<para>Regardless of the type of your port (library or
 	  application), the additional documentation should be
 	  installed in the