You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jspwiki.apache.org by gm...@apache.org on 2013/04/01 18:08:37 UTC

svn commit: r1463176 - in /incubator/jspwiki/trunk: ChangeLog pom.xml

Author: gmazza
Date: Mon Apr  1 16:08:37 2013
New Revision: 1463176

URL: http://svn.apache.org/r1463176
Log:
Added YUICompressor Maven plugin to compress CSS and JS files, webdocs/scripts and /templates now copied into Mavenized WAR file.

Modified:
    incubator/jspwiki/trunk/ChangeLog
    incubator/jspwiki/trunk/pom.xml

Modified: incubator/jspwiki/trunk/ChangeLog
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/ChangeLog?rev=1463176&r1=1463175&r2=1463176&view=diff
==============================================================================
--- incubator/jspwiki/trunk/ChangeLog (original)
+++ incubator/jspwiki/trunk/ChangeLog Mon Apr  1 16:08:37 2013
@@ -1,3 +1,10 @@
+2013-04-01 Glen Mazza (glenmazza AT apache DOT org)
+
+      * Added YUICompressor Maven plugin into pom.xml to do the same compression
+        done by the Ant build script to CSS and JS files in webdocs/scripts and /templates
+
+      * Updated Maven WAR plugin to bring in the webdocs/scripts and /templates files.
+
 2013-03-24 Glen Mazza (glenmazza AT apache DOT org)
 
       * Removed empty src/applets folder

Modified: incubator/jspwiki/trunk/pom.xml
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/pom.xml?rev=1463176&r1=1463175&r2=1463176&view=diff
==============================================================================
--- incubator/jspwiki/trunk/pom.xml (original)
+++ incubator/jspwiki/trunk/pom.xml Mon Apr  1 16:08:37 2013
@@ -195,12 +195,6 @@
             <version>1.1-beta-6</version>
             <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>com.yahoo.platform.yui</groupId>
-            <artifactId>yuicompressor</artifactId>
-            <version>2.4.7</version>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
 
 
@@ -258,66 +252,66 @@
                     <url>http://localhost:8080/manager/text</url>
                     <path>/${project.build.finalName}</path>
                 </configuration>
-           </plugin>
-           <plugin>
-               <artifactId>maven-antrun-plugin</artifactId>
-               <version>1.7</version>
-               <executions>
-                   <execution>
-                       <phase>generate-resources</phase>
-                       <configuration>
-                           <target>
-                               <copy file="tests/etc/userdatabase.xml.tmpl" toFile="tests/etc/userdatabase.xml"/>
-                               <copy file="tests/etc/groupdatabase.xml.tmpl" toFile="tests/etc/groupdatabase.xml"/>
-                               <copy file="etc/jspwiki.properties.tmpl" tofile="etc/jspwiki.properties" />
-                               <copy file="tests/etc/jspwiki.properties.tmpl" tofile="target/test-classes/jspwiki.properties" />
-                               <copy file="tests/etc/jspwiki_rcs.properties.tmpl" tofile="target/test-classes/jspwiki_rcs.properties" />
-                               <copy file="tests/etc/jspwiki_vers.properties.tmpl" tofile="target/test-classes/jspwiki_vers.properties" />
-
-                               <!-- Filter the properties files -->
-                               <replace file="etc/jspwiki.properties"
-                                        replacefilterfile="build.properties" />
-                               <replace file="target/test-classes/jspwiki.properties"
-                                        replacefilterfile="build.properties" />
-                               <replace file="target/test-classes/jspwiki_rcs.properties"
-                                        replacefilterfile="build.properties" />
-                               <replace file="target/test-classes/jspwiki_vers.properties"
-                                        replacefilterfile="build.properties" />
-
-                               <!-- Create web.xml files for testing -->
-                               <copy file="${basedir}/etc/web.xml" tofile="target/test-classes/WEB-INF/web.xml" />
-
-                               <!-- For web unit tests, turn off SSL (self-signed certs b0rk
-                                    the tests) and enable JDBC refs -->
-                               <replace file="target/test-classes/WEB-INF/web.xml"
-                                       token="CONFIDENTIAL" value="NONE" />
-                               <replace file="target/test-classes/WEB-INF/web.xml"
-                                       token="&lt;!--  REMOVE ME TO ENABLE JDBC DATABASE" value="" />
-                               <replace file="target/test-classes/WEB-INF/web.xml"
-                                       token="REMOVE ME TO ENABLE JDBC DATABASE  --&gt;" value="" />
-
-                               <!-- For unit testing, turn on container auth -->
-                               <replace file="target/test-classes/WEB-INF/web.xml"
-                                       token="&lt;!--  REMOVE ME TO ENABLE CONTAINER-MANAGED AUTH" value="" />
-                               <replace file="target/test-classes/WEB-INF/web.xml"
-                                       token="REMOVE ME TO ENABLE CONTAINER-MANAGED AUTH  --&gt;" value="" />
-
-                               <!-- Copy the DTDs to the test WEB-INF -->
-                               <mkdir dir="target/test-classes/WEB-INF/dtd" />
-                               <copy toDir="target/test-classes/WEB-INF/dtd">
-                                  <fileset dir="${basedir}/etc/dtd/" />
-                               </copy>
-
-                               <!-- Copy the database configuration information -->
-                               <mkdir dir="tests/etc/db/hsql" />
-                               <copy file="tests/etc/jdbc.properties.tmpl" tofile="tests/etc/db/jdbc.properties" />
+            </plugin>
+            <plugin>
+                <artifactId>maven-antrun-plugin</artifactId>
+                <version>1.7</version>
+                <executions>
+                    <execution>
+                        <phase>generate-resources</phase>
+                        <configuration>
+                            <target>
+                                <copy file="tests/etc/userdatabase.xml.tmpl" toFile="tests/etc/userdatabase.xml"/>
+                                <copy file="tests/etc/groupdatabase.xml.tmpl" toFile="tests/etc/groupdatabase.xml"/>
+                                <copy file="etc/jspwiki.properties.tmpl" tofile="etc/jspwiki.properties" />
+                                <copy file="tests/etc/jspwiki.properties.tmpl" tofile="target/test-classes/jspwiki.properties" />
+                                <copy file="tests/etc/jspwiki_rcs.properties.tmpl" tofile="target/test-classes/jspwiki_rcs.properties" />
+                                <copy file="tests/etc/jspwiki_vers.properties.tmpl" tofile="target/test-classes/jspwiki_vers.properties" />
+
+                                <!-- Filter the properties files -->
+                                <replace file="etc/jspwiki.properties"
+                                         replacefilterfile="build.properties" />
+                                <replace file="target/test-classes/jspwiki.properties"
+                                         replacefilterfile="build.properties" />
+                                <replace file="target/test-classes/jspwiki_rcs.properties"
+                                         replacefilterfile="build.properties" />
+                                <replace file="target/test-classes/jspwiki_vers.properties"
+                                         replacefilterfile="build.properties" />
+
+                                <!-- Create web.xml files for testing -->
+                                <copy file="${basedir}/etc/web.xml" tofile="target/test-classes/WEB-INF/web.xml" />
+
+                                <!-- For web unit tests, turn off SSL (self-signed certs b0rk
+                                     the tests) and enable JDBC refs -->
+                                <replace file="target/test-classes/WEB-INF/web.xml"
+                                        token="CONFIDENTIAL" value="NONE" />
+                                <replace file="target/test-classes/WEB-INF/web.xml"
+                                        token="&lt;!--  REMOVE ME TO ENABLE JDBC DATABASE" value="" />
+                                <replace file="target/test-classes/WEB-INF/web.xml"
+                                        token="REMOVE ME TO ENABLE JDBC DATABASE  --&gt;" value="" />
+
+                                <!-- For unit testing, turn on container auth -->
+                                <replace file="target/test-classes/WEB-INF/web.xml"
+                                        token="&lt;!--  REMOVE ME TO ENABLE CONTAINER-MANAGED AUTH" value="" />
+                                <replace file="target/test-classes/WEB-INF/web.xml"
+                                        token="REMOVE ME TO ENABLE CONTAINER-MANAGED AUTH  --&gt;" value="" />
+
+                                <!-- Copy the DTDs to the test WEB-INF -->
+                                <mkdir dir="target/test-classes/WEB-INF/dtd" />
+                                <copy toDir="target/test-classes/WEB-INF/dtd">
+                                    <fileset dir="${basedir}/etc/dtd/" />
+                                </copy>
+ 
+                                <!-- Copy the database configuration information -->
+                                <mkdir dir="tests/etc/db/hsql" />
+                                <copy file="tests/etc/jdbc.properties.tmpl" tofile="tests/etc/db/jdbc.properties" />
                                 <!-- Bulk-copy the table setup/teardown scripts -->
                                 <copy toDir="tests/etc/db/hsql" overwrite="true">
-                                  <fileset dir="etc/db/hsql" />
-                                  <filterset>
-                                    <filtersfile file="target/test-classes/jspwiki.properties" />
-                                    <filtersfile file="build.properties" />
-                                  </filterset>
+                                    <fileset dir="etc/db/hsql" />
+                                    <filterset>
+                                        <filtersfile file="target/test-classes/jspwiki.properties" />
+                                        <filtersfile file="build.properties" />
+                                    </filterset>
                                 </copy>
                            </target>
                        </configuration>
@@ -326,7 +320,7 @@
                        </goals>
                    </execution>
                </executions>
-           </plugin>
+            </plugin>
             <!-- Surefire plugin (running unit tests):
                  http://maven.apache.org/surefire/maven-surefire-plugin/
                  
@@ -350,6 +344,65 @@
                     </includes>
                 </configuration>
             </plugin>
+            <!-- Compress certain CSS and JS files using the YUICompressor 
+                 TODO: See if all JS files can be compressed to simplify
+                 configuration (currently just using hardcoded subset in
+                 Ant file.) 
+            -->
+            <plugin>
+                <groupId>net.alchim31.maven</groupId>
+                <artifactId>yuicompressor-maven-plugin</artifactId>
+                <version>1.3.2</version>
+                <executions>
+                    <execution>
+                        <id>compressJSfiles</id>
+                        <goals>
+                            <goal>compress</goal>
+                        </goals>
+                        <configuration>
+                            <nosuffix>true</nosuffix>
+                            <warSourceDirectory>${basedir}/src/webdocs</warSourceDirectory>
+                            <webappDirectory>${project.build.directory}/generated-sources/yuicompress</webappDirectory>
+                            <!-- Lots of warnings (300+) as YUICompressor is unhappy with our JS files -->
+                            <!--jswarn>false</jswarn-->
+                            <includes>
+                                <include>scripts/jspwiki-common.js</include>
+                                <include>scripts/jspwiki-edit.js</include>
+                                <include>scripts/jspwiki-prefs.js</include>
+                                <include>scripts/jspwiki-commonstyles.js</include>
+                                <include>scripts/prettify.js</include>
+                            </includes>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <!-- Separate execution for CSS files due to its different line-break setting 
+                             (https://github.com/yui/yuicompressor/blob/master/README.md) as configured
+                             in Ant.
+                             TODO: See if can compress all CSS files (using Ant subset)
+                             TODO: See if can have same line-break setting for JS and CSS to simplify
+                                   configuration
+                        -->
+                        <id>compressCSSfiles</id>
+                        <goals>
+                            <goal>compress</goal>
+                        </goals>
+                        <configuration>
+                            <nosuffix>true</nosuffix>
+                            <warSourceDirectory>${basedir}/src/webdocs</warSourceDirectory>
+                            <webappDirectory>${project.build.directory}/generated-sources/yuicompress</webappDirectory>
+                            <linebreakpos>0</linebreakpos>
+                            <includes>
+                                <include>templates/default/jspwiki.css</include>
+                                <include>templates/default/jspwiki_print.css</include>
+                                <include>templates/default/skins/OrderedList/skin.css</include>
+                                <include>templates/default/skins/PlainVanilla/skin.css</include>
+                                <include>templates/default/skins/PlainVanilla 1024x768/skin.css</include>
+                                <include>templates/default/skins/Smart/skin.css</include>
+                            </includes>
+                        </configuration>
+                    </execution>
+                </executions> 
+            </plugin>
             <plugin>
                 <artifactId>maven-war-plugin</artifactId>
                 <version>2.3</version>
@@ -376,28 +429,32 @@
                                 <include>admin/**</include>
                                 <include>error/**</include>
                                 <include>images/**</include>
+                                <include>scripts/**</include>
+                                <include>templates/**</include>
                                 <include>*.jsp</include>
                                 <include>*.css</include>
                             </includes>
+                            <!-- Below excluded because YUICompressor's version of
+                                 the files will be used. -->
+                            <excludes>
+                                <exclude>scripts/jspwiki-common.js</exclude>
+                                <exclude>scripts/jspwiki-edit.js</exclude>
+                                <exclude>scripts/jspwiki-prefs.js</exclude>
+                                <exclude>scripts/jspwiki-commonstyles.js</exclude>
+                                <exclude>scripts/prettify.js</exclude>
+                                <exclude>templates/default/jspwiki.css</exclude>
+                                <exclude>templates/default/jspwiki_print.css</exclude>
+                                <exclude>templates/default/skins/OrderedList/skin.css</exclude>
+                                <exclude>templates/default/skins/PlainVanilla/skin.css</exclude>
+                                <exclude>templates/default/skins/PlainVanilla 1024x768/skin.css</exclude>
+                                <exclude>templates/default/skins/Smart/skin.css</exclude>
+                            </excludes>
                         </resource>
-                    </webResources>
-                    <!--webResources>
+                        <!-- Output directory configured above with the YUICompressor Maven plugin -->
                         <resource>
-                            <directory>etc</directory>
-                            <targetPath>WEB-INF</targetPath>
-                            <includes>
-                                <include name="dtd/**" />
-                                <include name="jsp/**" />
-                                <include name="commons-logging.properties" />
-                                <include name="jspwiki.policy" />
-                                <include name="jspwiki.properties" />
-                                <include name="*.tld" />
-                                <include name="userdatabase.xml" />
-                                <include name="groupdatabase.xml" />
-                                <include name="geronimo-web.xml" />
-                            </includes>
+                            <directory>${project.build.directory}/generated-sources/yuicompress</directory>
                         </resource>
-                    </webResources-->
+                    </webResources>
                 </configuration>
             </plugin>
         </plugins>