You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jspwiki.apache.org by aj...@apache.org on 2008/08/03 14:31:01 UTC
svn commit: r682154 [2/2] - in
/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH: .classpath
ChangeLog NOTICE README UPGRADING build.properties build.xml run_webtests.sh
Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/build.xml
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/build.xml?rev=682154&r1=682153&r2=682154&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/build.xml (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/build.xml Sun Aug 3 05:31:00 2008
@@ -1,21 +1,22 @@
<!--
JSPWiki - a JSP-based WikiWiki clone.
- Copyright (C) 2001-2006 Janne Jalkanen (Janne.Jalkanen@iki.fi)
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
-->
<!--
@@ -105,10 +106,13 @@
<property name="tests.reports" value="tests/reports" />
<!-- Web unit test properties -->
- <property name="webtests.browser" value="*firefox" />
- <property name="webtests.container.user" value="janne" />
- <property name="webtests.container.password" value="myP@5sw0rd" />
- <property name="webtests.reports" value="${basedir}/tests/reports/selenium" />
+ <property name="webtests.browser" value="*firefox" />
+ <property name="webtests.reports" value="${basedir}/tests/reports/selenium" />
+ <property name="webtests.build" value="tests/build/webtests" />
+ <property name="webtests.port" value="10024" />
+ <property name="webtests.shutdown" value="19041" />
+ <property name="webtests.temp" value="${java.io.tmpdir}/webtests" />
+ <property name="selenium-rc.jar" value="tests/lib/selenium-server-1.0-beta1.jar" />
<!-- The place where the javadocs are created -->
@@ -264,12 +268,13 @@
<packageset dir="${code.src}">
<include name="com/ecyrd/**" />
</packageset>
- <link href="http://java.sun.com/j2se/1.4.2/docs/api/"/>
+ <link href="http://java.sun.com/j2se/1.5.0/docs/api/"/>
<link href="http://java.sun.com/products/javamail/javadocs/"/>
<link href="http://java.sun.com/j2ee/sdk_1.3/techdocs/api/"/>
<link href="http://www.jdom.org/docs/apidocs/"/>
<link href="http://stripes.sourceforge.net/docs/current/javadoc/"/>
<classpath refid="path.base" />
+ <classpath refid="path.tests" />
</javadoc>
</target>
@@ -295,13 +300,13 @@
used. FIXME: Figure out a better way to do this in the future. -->
<copy file="${code.i18n}/CoreResources.properties" tofile="${code.i18n}/CoreResources_en.properties"/>
<copy file="${code.i18n}/templates/default.properties" tofile="${code.i18n}/templates/default_en.properties"/>
- <copy file="${code.src}/com/ecyrd/jspwiki/plugin/PluginResources.properties" tofile="${code.src}/com/ecyrd/jspwiki/plugin/PluginResources_en.properties"/>
+ <copy file="${code.i18n}/plugin/PluginResources.properties" tofile="${code.i18n}/plugin/PluginResources_en.properties"/>
<jar jarfile="${jarfile}">
<fileset dir="${code.build}" includes="**/*.class" />
<fileset dir="${code.src}" includes="com/**/*.properties" />
<fileset dir="${code.src}" includes="templates/**/*.properties" />
<fileset dir="${code.i18n}" />
- <fileset dir="etc" includes="ini/*.xml" />
+ <fileset dir="etc" includes="ini/*.xml ini/*.properties" />
</jar>
</target>
@@ -367,9 +372,9 @@
We include the following things:
- 1) All .jar -files in the lib-directory (except servlet.jar, since
- it's gonna be provided by the servlet container anyway.)
- We also omit test-related jars like JUnit.
+ 1) All .jar -files in the lib-directory (except servlet-api.jar
+ and jsp-api.jar, since these are provided by the servlet
+ container anyway.
2) All .class-files from the build-directory
3) Everything from the src/webdocs -directory
4) Everything from the etc-directory go to the WEB-INF -directory
@@ -387,14 +392,15 @@
webxml="etc/web.xml">
<lib dir="lib" includes="*.jar" excludes="servlet-api.jar jsp-api.jar"/>
<lib file="${jarfile}" />
- <!-- TEMPORARY HACK: swap in the Stripes JSPs instead of the normal ones. -->
+ <fileset dir="${code.src}/webdocs" includes="**" excludes="**/FCK/jsp" />
+ <!-- TEMPORARY HACK: swap in the Stripes JSPs instead of the normal ones.
<fileset dir="${code.src}/webdocs" includes="**" excludes="**/*.jsp" />
<fileset dir="${code.src}/webdocs-stripes" />
<webinf dir="${code.src}/webdocs-stripes/WEB-INF" />
+ -->
<webinf dir="etc">
<include name="dtd/**" />
<include name="commons-logging.properties" />
- <include name="jspwiki.jaas" />
<include name="jspwiki.policy" />
<include name="jspwiki.properties" />
<include name="*.tld" />
@@ -406,33 +412,65 @@
<war warfile="${warfile}"
webxml="etc/web.xml" update="true">
- <fileset dir="${install.fulldir}/webdocs/" includes="**/*.js" />
+ <fileset dir="${tmpdir}/compress/webdocs/" includes="**/*.js" />
+ <fileset dir="${tmpdir}/compress/webdocs/" includes="**/*.css" />
</war>
- </target>
+ </target>
- <!-- We compress the Javascript using Dojo's Rhino system. Very useful.
- If you don't want to use the compressed stuff, just copy the default
- .js files from the distro on top of the compressed ones from the WAR.
- -->
- <target name="compressedjs">
- <mkdir dir="${install.fulldir}/webdocs/scripts"/>
- <java jar="tests/lib/custom_rhino.jar"
- output="${install.fulldir}/webdocs/scripts/jspwiki-common.js"
- fork="true">
- <arg line="-c ${code.src}/webdocs/scripts/jspwiki-common.js" />
- </java>
- <java jar="tests/lib/custom_rhino.jar"
- output="${install.fulldir}/webdocs/scripts/jspwiki-edit.js"
- fork="true">
- <arg line="-c ${code.src}/webdocs/scripts/jspwiki-edit.js" />
- </java>
- <java jar="tests/lib/custom_rhino.jar"
- output="${install.fulldir}/webdocs/scripts/jspwiki-prefs.js"
- fork="true">
- <arg line="-c ${code.src}/webdocs/scripts/jspwiki-prefs.js" />
- </java>
- </target>
+ <!-- Defines a compression macro for the JS/CSS bits we want to transform
+ into something that saves a bit of space. -->
+
+ <macrodef name="compressjs">
+ <attribute name="src"/>
+ <attribute name="args" default=""/>
+ <sequential>
+ <java jar="tests/lib/yuicompressor-2.3.3.jar"
+ output="${tmpdir}/compress/@{src}"
+ fork="true">
+ <arg line="${code.src}/@{src} @{args}" />
+ </java>
+ </sequential>
+ </macrodef>
+
+ <!-- We compress the Javascript using yahoo's yui compressor,
+ which compresses both javascript and css files.
+ If you don't want to use the compressed stuff, just copy the default
+ .js files from the distro on top of the compressed ones from the WAR.
+ -->
+ <target name="compressedjs">
+ <mkdir dir="${tmpdir}/compress/webdocs/scripts"/>
+
+ <compressjs src="webdocs/scripts/jspwiki-common.js"/>
+ <compressjs src="webdocs/scripts/jspwiki-edit.js"/>
+ <compressjs src="webdocs/scripts/jspwiki-prefs.js"/>
+ <compressjs src="webdocs/scripts/jspwiki-commonstyles.js"/>
+ <compressjs src="webdocs/scripts/prettify.js"/>
+
+ <mkdir dir="${tmpdir}/compress/webdocs/templates/default"/>
+
+ <compressjs src="webdocs/templates/default/jspwiki.css"
+ args="--line-break 0" />
+
+ <compressjs src="webdocs/templates/default/jspwiki_print.css"
+ args="--line-break 0" />
+
+ <mkdir dir="${tmpdir}/compress/webdocs/templates/default/skins/OrderedList"/>
+ <compressjs src="webdocs/templates/default/skins/OrderedList/skin.css"
+ args="--line-break 0" />
+
+ <mkdir dir="${tmpdir}/compress/webdocs/templates/default/skins/PlainVanilla"/>
+ <compressjs src="webdocs/templates/default/skins/PlainVanilla/skin.css"
+ args="--line-break 0" />
+
+ <mkdir dir="${tmpdir}/compress/webdocs/templates/default/skins/PlainVanilla 1024x768"/>
+ <compressjs src="webdocs/templates/default/skins/PlainVanilla 1024x768/skin.css"
+ args="--line-break 0" />
+
+ <mkdir dir="${tmpdir}/compress/webdocs/templates/default/skins/Smart"/>
+ <compressjs src="webdocs/templates/default/skins/Smart/skin.css"
+ args="--line-break 0" />
+ </target>
<target name="opened-war" depends="war"
description="Creates an opened JSPWiki war hierarchy into the build dir.">
@@ -459,7 +497,7 @@
<delete dir="${install.src}" />
<exec executable="svn">
- <arg line="export ${svn.repository}/${svn.tag} ${install.src}"/>
+ <arg line="export ${svn.repository}/${svn.tag} "${install.src}""/>
</exec>
<zip zipfile="${release.dir}/${ant.project.name}-src.zip">
@@ -472,19 +510,27 @@
whether a page is a core page or not is found in src/wikipages/.corepages -->
<target name="corepageszip" depends="installinit">
- <zip zipfile="${install.fulldir}/${ant.project.name}-corepages.zip"
- basedir="src/wikipages" includesfile="src/wikipages/.corepages">
+ <zip zipfile="${install.fulldir}/${ant.project.name}-corepages_en.zip"
+ basedir="src/wikipages/en" includesfile="src/wikipages/.corepages">
</zip>
+
+ <zip zipfile="${install.fulldir}/${ant.project.name}-corepages_fi.zip"
+ basedir="src/wikipages/fi" includesfile="src/wikipages/.corepages">
+ </zip>
+
+ <!-- Add other languages here -->
+
</target>
- <!-- Creates a full ZIP file of all document files -->
+ <!-- Creates a full ZIP file of all document files, ignoring any resources
+ which start with a dot. -->
<target name="documentzip" depends="installinit,javadoc"
description="Creates JSPWiki documentation zipfile">
<zip zipfile="${install.fulldir}/${ant.project.name}-doc.zip">
<zipfileset dir="doc" prefix="doc" />
- <zipfileset dir="src/wikipages" prefix="doc/wikipages" />
+ <zipfileset dir="src/wikipages" prefix="doc/wikipages" excludes="**/.??*"/>
</zip>
</target>
@@ -499,7 +545,7 @@
<copy file="README" todir="${install.fulldir}" />
<copy file="ChangeLog" todir="${install.fulldir}" />
<copy file="ReleaseNotes" todir="${install.fulldir}" />
- <copy file="doc/LICENSE" todir="${install.fulldir}" />
+ <copy file="LICENSE" todir="${install.fulldir}" />
<zip zipfile="${release.dir}/${ant.project.name}-bin.zip">
<zipfileset dir="${install.fulldir}" prefix="${ant.project.name}" />
@@ -522,25 +568,25 @@
<mkdir dir="tests/etc/WEB-INF" />
<!-- Create web.xml files for testing -->
- <copy file="${basedir}/etc/web.xml" tofile="${tests.build}/web.xml.custom" overwrite="true" />
+ <copy file="${basedir}/etc/web.xml" tofile="${webtests.build}/web.xml.custom" overwrite="true" />
<!-- For web unit tests, turn off SSL (self-signed certs b0rk
the tests) and enable JDBC refs -->
- <replace file="${tests.build}/web.xml.custom"
+ <replace file="${webtests.build}/web.xml.custom"
token="CONFIDENTIAL" value="NONE" />
- <replace file="${tests.build}/web.xml.custom"
+ <replace file="${webtests.build}/web.xml.custom"
token="<!-- REMOVE ME TO ENABLE JDBC DATABASE" value="" />
- <replace file="${tests.build}/web.xml.custom"
+ <replace file="${webtests.build}/web.xml.custom"
token="REMOVE ME TO ENABLE JDBC DATABASE -->" value="" />
<!-- For unit testing, turn on container auth -->
- <copy file="${tests.build}/web.xml.custom"
- tofile="${tests.build}/web.xml.container" overwrite="true" />
- <replace file="${tests.build}/web.xml.container"
+ <copy file="${webtests.build}/web.xml.custom"
+ tofile="${webtests.build}/web.xml.container" overwrite="true" />
+ <replace file="${webtests.build}/web.xml.container"
token="<!-- REMOVE ME TO ENABLE CONTAINER-MANAGED AUTH" value="" />
- <replace file="${tests.build}/web.xml.container"
+ <replace file="${webtests.build}/web.xml.container"
token="REMOVE ME TO ENABLE CONTAINER-MANAGED AUTH -->" value="" />
- <copy file="${tests.build}/web.xml.container"
+ <copy file="${webtests.build}/web.xml.container"
tofile="tests/etc/WEB-INF/web.xml" overwrite="true" />
<!-- Copy the DTDs to the test WEB-INF -->
@@ -577,13 +623,9 @@
<classpath>
<path refid="path.tests" />
</classpath>
-
- <sysproperty key="java.security.auth.login.config" value="${basedir}/etc/jspwiki.jaas"/>
- <sysproperty key="jspwiki.tests.auth" value="true" />
-
+ <sysproperty key="jspwiki.tests.auth" value="true" />
<formatter type="plain" />
- <formatter type="xml" usefile="yes" />
-
+ <formatter type="xml" usefile="yes" />
<batchtest todir="${tests.reports}">
<fileset dir="${tests.src}">
<include name="**/*Test.java" />
@@ -611,15 +653,11 @@
<classpath>
<path refid="path.tests" />
</classpath>
-
- <sysproperty key="java.security.auth.login.config" value="${basedir}/etc/jspwiki.jaas"/>
<sysproperty key="jspwiki.tests.auth" value="true" />
<jvmarg value="-Xdebug" />
<jvmarg value="-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y" />
-
<formatter type="plain" />
<formatter type="xml" usefile="yes" />
-
<batchtest todir="${tests.reports}">
<fileset dir="${tests.src}">
<include name="**/AuthorizationManagerTest.java" />
@@ -636,156 +674,229 @@
</target>
- <target name="guitests" depends="jar,tests-init,jartests"
+ <target name="guitests" depends="jar,tests-init,jartests,tests-db-init"
description="Runs the tests in a pretty window.">
<java classname="junit.swingui.TestRunner" fork="yes" maxmemory="512m">
<classpath>
<path refid="path.tests" />
</classpath>
-
- <sysproperty key="java.security.auth.login.config" value="${basedir}/etc/jspwiki.jaas"/>
- <sysproperty key="jspwiki.tests.auth" value="true" />
-
+ <sysproperty key="jspwiki.tests.auth" value="true" />
<arg value="com.ecyrd.jspwiki.AllTests" />
</java>
</target>
- <!-- This target runs web unit tests using Selenium. These tests assumes you
- have Tomcat or higher installed **and** that it is running on
- ${tomcat.host}:${tomcat.port} when you execute this target. The Manager
- app must be configured. Also, the Tomcat server's tomcat-users.xml
- file must contain a user named 'janne' with a password 'myP@5sw0rd'
- and an assigned role of 'Authenticated'.
- These tests has been verified to deploy on Tomcat 5.5;
- other versions may not work.
-
- If you have previously set a custom JSPWiki security policy, you
- MUST bounce Tomcat first. Otherwise, the previously installed policy
- will be in effect, and may hose the web unit tests.
-
- Of course, you need not use Tomcat in production... but to
- keep this build file simple, we do require it for web unit tests.
-
- Note: if the majority of JDBC tests fail but the non-JDBC tests do
- not, that likely means that Tomcat cannot find your JDBC jar. You
- should copy this file to Tomcat's common/lib directory (for 5.5) or
- lib (6.0).
+ <!-- This target runs web unit tests using Selenium. These tests run
+ using an enbedded Jetty server running on a hard-coded high port.
+ The webapps deployed to Jetty contain 2 sample users:
+ - 'janne' with password 'myP@5sw0rd' and role of 'Authenticated'
+ - 'admin' with password 'myP@5sw0rd' and roles of 'Authenticated', 'Admin'
+ These are the same as the test users in tests/com.ecyrd.jspwiki.auth.Users.
-->
- <target name="webtests" depends="jar,tests-init,jartests,tests-db-init,tomcat-init,war">
-
- <!-- Make sure Tomcat is set up the way we expect -->
- <ant dir="${basedir}" antfile="tests/etc/webtests.xml"
- target="webtests-init" inheritRefs="true" />
-
- <!-- Build the custom auth WAR -->
- <copy file="etc/jspwiki.properties"
- toFile="${tests.build}/jspwiki.properties.custom" flatten="true" />
- <propertyfile file="${tests.build}/jspwiki.properties.custom">
+ <target name="webtests" depends="jar,tests-init,jartests,tests-db-init,war">
+ <mkdir dir="${webtests.temp}" />
+ <mkdir dir="${webtests.build}" />
+
+ <!-- Create the master jspwiki.properties template for all webtests -->
+ <copy file="tests/etc/jspwiki.properties"
+ toFile="${webtests.build}/jspwiki.properties.tmpl" flatten="true" />
+ <propertyfile file="${webtests.build}/jspwiki.properties.tmpl">
+ <entry key="jspwiki.authorizer" value="com.ecyrd.jspwiki.auth.authorize.WebContainerAuthorizer" />
<entry key="jspwiki.userdatabase" value="com.ecyrd.jspwiki.auth.user.XMLUserDatabase" />
<entry key="jspwiki.groupdatabase" value="com.ecyrd.jspwiki.auth.authorize.XMLGroupDatabase" />
<entry key="jspwiki.referenceStyle" value="relative" />
+ <entry key="jspwiki.userdatabase.hashPrefix" value="false" />
+ <entry key="log4j.appender.TestContainerLog.File" value="${basedir}/${webtests.build}/testcontainer.log" />
+ <entry key="jspwiki-x.securityconfig.enable" value="true" />
</propertyfile>
+
+ <!-- Build the custom auth WAR -->
<webtest-setup context="test-custom"
- webxml="${tests.build}/web.xml.custom"
- props="${tests.build}/jspwiki.properties.custom" />
+ webxml="${webtests.build}/web.xml.custom"/>
<!-- Build the custom auth WAR (absolute URLs) -->
- <copy file="${tests.build}/jspwiki.properties.custom"
- toFile="${tests.build}/jspwiki.properties.custom-absolute" flatten="true" />
- <propertyfile file="${tests.build}/jspwiki.properties.custom-absolute">
- <entry key="jspwiki.referenceStyle" value="absolute" />
- <entry key="jspwiki.baseURL" value="${tomcat.protocol}://${tomcat.host}:${tomcat.port}/test-custom-absolute/" />
- </propertyfile>
<webtest-setup context="test-custom-absolute"
- webxml="${tests.build}/web.xml.custom"
- props="${tests.build}/jspwiki.properties.custom-absolute" />
+ webxml="${webtests.build}/web.xml.custom">
+ <propertyfile-entries>
+ <entry key="jspwiki.referenceStyle" value="absolute" />
+ <entry key="jspwiki.baseURL" value="http://localhost:${webtests.port}/test-custom-absolute/" />
+ </propertyfile-entries>
+ </webtest-setup>
<!-- Build the container auth WAR -->
<webtest-setup context="test-container"
- webxml="${tests.build}/web.xml.container"
- props="${tests.build}/jspwiki.properties.custom" />
+ webxml="${webtests.build}/web.xml.container" />
<!-- Build the custom auth WAR (JDBC database) -->
- <copy file="etc/jspwiki.properties"
- toFile="${tests.build}/jspwiki.properties.custom-jdbc" flatten="true" />
- <propertyfile file="${tests.build}/jspwiki.properties.custom-jdbc">
- <entry key="jspwiki.userdatabase" value="com.ecyrd.jspwiki.auth.user.JDBCUserDatabase" />
- <entry key="jspwiki.userdatabase.hashPrefix" value="false" />
- <entry key="jspwiki.groupdatabase" value="com.ecyrd.jspwiki.auth.authorize.JDBCGroupDatabase" />
- </propertyfile>
<webtest-setup context="test-custom-jdbc"
- webxml="${tests.build}/web.xml.custom"
- props="${tests.build}/jspwiki.properties.custom-jdbc" />
+ webxml="${webtests.build}/web.xml.custom">
+ <propertyfile-entries>
+ <entry key="jspwiki.userdatabase" value="com.ecyrd.jspwiki.auth.user.JDBCUserDatabase" />
+ <entry key="jspwiki.groupdatabase" value="com.ecyrd.jspwiki.auth.authorize.JDBCGroupDatabase" />
+ </propertyfile-entries>
+ </webtest-setup>
- <!-- Build the container auth WAR (shared JDBC database) and test it -->
- <copy file="etc/jspwiki.properties"
- toFile="${tests.build}/jspwiki.properties.container-jdbc" flatten="true" />
- <propertyfile file="${tests.build}/jspwiki.properties.container-jdbc">
- <entry key="jspwiki.userdatabase" value="com.ecyrd.jspwiki.auth.user.JDBCUserDatabase" />
- <entry key="jspwiki.userdatabase.isSharedWithContainer" value="true" />
- <entry key="jspwiki.userdatabase.hashPrefix" value="false" />
- <entry key="jspwiki.groupdatabase" value="com.ecyrd.jspwiki.auth.authorize.JDBCGroupDatabase" />
- </propertyfile>
+ <!-- Build the container auth WAR (JDBC database) and test it -->
<webtest-setup context="test-container-jdbc"
- webxml="${tests.build}/web.xml.container"
- props="${tests.build}/jspwiki.properties.container-jdbc" />
-
- <!-- Run the tests -->
- <webtest-selenium context="test-custom" />
- <webtest-selenium context="test-custom-absolute" />
- <webtest-selenium context="test-custom-jdbc" />
- <webtest-selenium context="test-container" />
- <webtest-selenium context="test-container-jdbc" />
-
- <!-- Tear down the test contexts -->
- <webtest-teardown context="test-custom" />
- <webtest-teardown context="test-custom-absolute" />
- <webtest-teardown context="test-custom-jdbc" />
- <webtest-teardown context="test-container" />
- <webtest-teardown context="test-container-jdbc" />
-
+ webxml="${webtests.build}/web.xml.container">
+ <propertyfile-entries>
+ <entry key="jspwiki.userdatabase" value="com.ecyrd.jspwiki.auth.user.JDBCUserDatabase" />
+ <entry key="jspwiki.groupdatabase" value="com.ecyrd.jspwiki.auth.authorize.JDBCGroupDatabase" />
+ </propertyfile-entries>
+ </webtest-setup>
+
+ <!-- Run each test in succession -->
+ <mkdir dir="${webtests.reports}" />
+ <webtest-exec context="test-custom" />
+ <webtest-exec context="test-container" />
+ <webtest-exec context="test-custom-jdbc" />
+ <webtest-exec context="test-container-jdbc" />
+ <webtest-exec context="test-custom-absolute" />
<echo>The web unit tests have finished. You can find the test reports in ${webtests.reports}.
-If all of the tests ran successfully, the reports will all be "green." If all tests ran successfully except for the "test-container" suite, then your web container is likely not set up correctly. Check to make sure that the your Tomcat container's default realm contains the user '${webtests.container.user}' with password '${webtests.container.password}' and role 'Authenticated'. Usually, Tomcat uses the "memory realm"; the config file is at ${tomcat.home}/conf/tomcat-users.xml.</echo>
+If all of the tests ran successfully, the reports will all be "green."</echo>
</target>
<macrodef name="webtest-setup">
<attribute name="context" />
<attribute name="webxml" />
- <attribute name="props" />
+ <attribute name="context.dir" default="${webtests.build}/@{context}" />
+ <attribute name="context.path" default="${basedir}/${webtests.build}/@{context}" />
+ <element name="propertyfile-entries" implicit="no" optional="true" />
<sequential>
- <ant dir="${basedir}" antfile="tests/etc/webtests.xml"
- target="webtest-setup" inheritRefs="true">
- <property name="webtest.context" value="@{context}" />
- <property name="webtest.webxml" value="@{webxml}" />
- <property name="webtest.props" value="@{props}" />
- </ant>
+
+ <echo message="===============================================================" />
+ <echo message=" Setting up web unit tests for '@{context}'" />
+ <echo message="- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" />
+ <echo message="" />
+ <echo message="Creating Selenium test scripts..."/>
+ <mkdir dir="@{context.dir}/selenium" />
+ <copy flatten="true" toDir="@{context.dir}/selenium">
+ <fileset dir="tests/etc/selenium/tests/all" />
+ <filterset>
+ <filter token="selenium.context" value="@{context}" />
+ </filterset>
+ </copy>
+
+ <echo message="Creating test page repositories..."/>
+ <!-- Create a wiki page directory and point jspwiki.properties to it -->
+ <mkdir dir="@{context.dir}/wikipages" />
+ <copy toDir="@{context.dir}/wikipages" flatten="true" >
+ <fileset dir="src/wikipages/en">
+ <include name="Main.*" />
+ <include name="LeftMenu*.*" />
+ <include name="About.*" />
+ <include name="RecentChanges.*" />
+ <include name="WikiEtiquette.*" />
+ <include name="UnusedPages.*" />
+ <include name="UndefinedPages.*" />
+ <include name="PageIndex.*" />
+ </fileset>
+ </copy>
+
+ <echo message="Creating test webapp..."/>
+ <mkdir dir="@{context.dir}/webapp/WEB-INF/classes" />
+ <mkdir dir="@{context.dir}/webapp/WEB-INF/lib" />
+
+ <!-- Copy the WEB-INF files -->
+ <copy toDir="@{context.dir}/webapp/WEB-INF">
+ <fileset dir="etc">
+ <include name="dtd/**" />
+ <include name="commons-logging.properties" />
+ <include name="jspwiki.policy" />
+ <include name="*.tld" />
+ </fileset>
+ <fileset dir="tests/etc" includes="userdatabase.xml groupdatabase.xml" />
+ </copy>
+ <copy toFile="@{context.dir}/webapp/WEB-INF/web.xml" file="@{webxml}" flatten="true" />
+
+ <!-- Create the jspwiki.properties file -->
+ <mkdir dir="@{context.dir}/workdir" />
+ <copy toFile="@{context.dir}/webapp/WEB-INF/jspwiki.properties"
+ file="${webtests.build}/jspwiki.properties.tmpl" flatten="true" />
+ <propertyfile file="@{context.dir}/webapp/WEB-INF/jspwiki.properties">
+ <entry key="jspwiki.baseURL" value="http://localhost:${webtests.port}/@{context}/" />
+ <entry key="jspwiki.workDir" value="@{context.path}/workdir" />
+ <entry key="jspwiki.fileSystemProvider.pageDir" value="@{context.path}/wikipages" />
+ <entry key="jspwiki.basicAttachmentProvider.storageDir" value="@{context.path}/wikipages" />
+ <entry key="jspwiki.xmlUserDatabaseFile" value="@{context.path}/webapp/WEB-INF/userdatabase.xml" />
+ <entry key="jspwiki.xmlGroupDatabaseFile" value="@{context.path}/webapp/WEB-INF/groupdatabase.xml" />
+ <entry key="log4j.appender.FileLog.File" value="@{context.path}/jspwiki.log" />
+ <propertyfile-entries/>
+ </propertyfile>
+
+ <!-- Copy the classes -->
+ <copy toDir="@{context.dir}/webapp/WEB-INF/classes">
+ <fileset dir="etc" includes="oscache.properties" />
+ </copy>
+
+ <!-- Copy the libraries -->
+ <copy toDir="@{context.dir}/webapp/WEB-INF/lib">
+ <fileset dir="lib" includes="*.jar" excludes="servlet-api.jar jsp-api.jar"/>
+ <fileset file="${jarfile}"/>
+ <fileset file="${jdbc.driver.jar}"/>
+ </copy>
+
+ <!-- Copy the JSPs -->
+ <copy toDir="@{context.dir}/webapp">
+ <fileset dir="${code.src}/webdocs" includes="**" />
+ </copy>
+
</sequential>
</macrodef>
+
+ <!-- ============================================================== -->
+
+ <!-- Selenium execution test task -->
- <macrodef name="webtest-teardown">
- <attribute name="context" />
+ <!-- This macro executes the Selenium test plans located in
+ tests/build/selenium/@context@/, based on templates stored
+ in tests/etc/selenium/tests. It expects your favorite servlet
+ container up & running on ${tomcat.protocol}://${tomcat.host}:${tomcat.port}
+ For this reason, these properties must be set up in your
+ build.properties file.
+ -->
+
+ <macrodef name="webtest-exec">
+ <attribute name="context"/>
<sequential>
- <ant dir="${basedir}" antfile="tests/etc/webtests.xml"
- target="webtest-teardown" inheritRefs="true">
- <property name="webtest.context" value="@{context}" />
- </ant>
+ <!-- If already running, shut down the embedded Jetty server by pinging the shutdown port -->
+ <echo message="Shutting down Jetty (if it is up)."/>
+ <get src="http://localhost:${webtests.shutdown}/" dest="${webtests.temp}/shutdown.log"
+ ignoreerrors="true" verbose="true" />
+ <sleep seconds="2"/>
+
+ <!-- Start Jetty with our test context -->
+ <echo message="Starting Jetty."/>
+ <java classname="com.ecyrd.jspwiki.web.TestContainer" fork="true" spawn="true">
+ <classpath>
+ <path refid="path.tests" />
+ </classpath>
+ <sysproperty key="java.io.tmpdir" value="${webtests.temp}" />
+ <!--
+ <jvmarg value="-Xdebug" />
+ <jvmarg value="-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n" />
+ -->
+ <arg line="@{context}=${webtests.build}/@{context}/webapp" />
+ </java>
+
+ <!-- Start Selenium tests -->
+ <echo message="Running web unit tests for context '@{context}'."/>
+ <java jar="${selenium-rc.jar}" fork="true"
+ output="${webtests.build}/@{context}/selenium/selenium.log">
+ <!--
+ <arg line="-browserSessionReuse" />
+ -->
+ <arg line="-htmlSuite" />
+ <arg line='"${webtests.browser}"' />
+ <arg line='"http://localhost:${webtests.port}"' />
+ <arg line="${basedir}/${webtests.build}/@{context}/selenium/TestSuite.html" />
+ <arg line="${webtests.reports}/@{context}.html" />
+ </java>
</sequential>
</macrodef>
-
- <macrodef name="webtest-selenium">
- <attribute name="context" />
- <sequential>
- <ant dir="${basedir}" antfile="tests/etc/webtests.xml"
- target="webtest-selenium-exec" inheritRefs="true">
- <property name="webtest.context" value="@{context}" />
- </ant>
- </sequential>
- </macrodef>
-
<!-- ============================================================== -->
@@ -1280,7 +1391,7 @@
<input message="i18n template code to generate (ie: es_ES):" addproperty="i18n.template" />
<mkdir dir="${tmplt.i18n.dir}/${ant.project.name}_${i18n.template}/etc/i18n/templates" />
- <mkdir dir="${tmplt.i18n.dir}/${ant.project.name}_${i18n.template}/src/com/ecyrd/jspwiki/plugin" />
+ <mkdir dir="${tmplt.i18n.dir}/${ant.project.name}_${i18n.template}/etc/i18n/plugin" />
<copy file="etc/i18n/CoreResources.properties"
tofile="${tmplt.i18n.dir}/${ant.project.name}_${i18n.template}/etc/i18n/CoreResources_${i18n.template}.properties"
@@ -1288,8 +1399,8 @@
<copy file="etc/i18n/templates/default.properties"
tofile="${tmplt.i18n.dir}/${ant.project.name}_${i18n.template}/etc/i18n/templates/default_${i18n.template}.properties"
overwrite="true"/>
- <copy file="src/com/ecyrd/jspwiki/plugin/PluginResources.properties"
- tofile="${tmplt.i18n.dir}/${ant.project.name}_${i18n.template}/src/com/ecyrd/jspwiki/plugin/PluginResources_${i18n.template}.properties"
+ <copy file="etc/i18n/plugin/PluginResources.properties"
+ tofile="${tmplt.i18n.dir}/${ant.project.name}_${i18n.template}/etc/i18n/plugin/PluginResources_${i18n.template}.properties"
overwrite="true" />
<echo message="Now you can start translating at ${tmplt.i18n.dir}/${ant.project.name}_${i18n.template}." />
@@ -1308,5 +1419,39 @@
<target name="i18n-clean-templates" description="Deletes all i18n directory structures">
<delete dir="${tmplt.i18n.dir}" />
</target>
+
+ <target name="api-diff" description="Compares API in JSPWiki.jar with previous version"
+ depends="jar">
+ <!-- Assumes that the dependencyfinder.dir property points to the
+ dir containing the binary distribution of DependencyFinder -->
+ <check-property prop="dependencyfinder.dir" />
+ <check-property prop="jarfile.old" />
+ <mkdir dir="${tests.reports}" />
+ <java classname="com.jeantessier.dependencyfinder.cli.JarJarDiff"
+ output="${tests.reports}/API-changes.xml">
+ <classpath refid="path.tests" />
+ <classpath>
+ <pathelement location="${dependencyfinder.dir}/lib/DependencyFinder.jar" />
+ </classpath>
+ <arg value="-new" />
+ <arg value="${jarfile}" />
+ <arg value="-old" />
+ <arg value="${jarfile.old}" />
+ <arg value="-name" />
+ <arg value="JSPWiki Public API Changes" />
+ </java>
+
+ <!-- Filthy hack that suppresses DTD resolution -->
+ <replace file="${tests.reports}/API-changes.xml"
+ token='<!DOCTYPE differences SYSTEM "http://depfind.sourceforge.net/dtd/differences.dtd">'
+ value=""/>
+ <!-- Just to be safe, replace raw ampersands with something bogus -->
+ <replace file="${tests.reports}/API-changes.xml"
+ token="&" value="(ampersand)"/>
+ <xslt in="${tests.reports}/API-changes.xml"
+ out="${tests.reports}/API-changes.html"
+ style="${dependencyfinder.dir}/etc/DiffToHTML.xsl">
+ </xslt>
+ </target>
</project>