diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d27868a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+SOURCES/httpunit-1.7-clean.tar.gz
diff --git a/.rh-maven33-httpunit.metadata b/.rh-maven33-httpunit.metadata
new file mode 100644
index 0000000..34e215d
--- /dev/null
+++ b/.rh-maven33-httpunit.metadata
@@ -0,0 +1 @@
+051b8f7dbb8d5f0ad3b508fbe9331ecc79fc4ce2 SOURCES/httpunit-1.7-clean.tar.gz
diff --git a/README.md b/README.md
deleted file mode 100644
index 98f42b4..0000000
--- a/README.md
+++ /dev/null
@@ -1,4 +0,0 @@
-The master branch has no content
-
-Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6
-If you find this file in a distro specific branch, it means that no content has been checked in yet
diff --git a/SOURCES/LICENSE-2.0.txt b/SOURCES/LICENSE-2.0.txt
new file mode 100644
index 0000000..d645695
--- /dev/null
+++ b/SOURCES/LICENSE-2.0.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed 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.
diff --git a/SOURCES/create-tarball.sh b/SOURCES/create-tarball.sh
new file mode 100755
index 0000000..63de277
--- /dev/null
+++ b/SOURCES/create-tarball.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+if [ $# -ne 1 ]; then
+ echo "Usage: ./create-tarball.sh VERSION"
+ exit 1
+fi
+
+VERSION=${1}
+NAME="httpunit"
+
+wget http://download.sourceforge.net/${NAME}/${NAME}-${VERSION}.zip
+unzip ${NAME}-${VERSION}.zip
+rm ${NAME}-${VERSION}.zip
+
+( cd ${NAME}-${VERSION}
+ # remove bundled jars
+ find . -name "*.jar" -delete
+ # remove non-free XML DTD files
+ rm -f META-INF/web-app_2_2.dtd META-INF/web-app_2_3.dtd META-INF/web-app_2_4.xsd
+ # remove pre-generated javadoc
+ rm -Rf doc/api
+)
+
+tar czvf ${NAME}-${VERSION}-clean.tar.gz ./${NAME}-${VERSION}
+
diff --git a/SOURCES/httpunit-1.7.pom b/SOURCES/httpunit-1.7.pom
new file mode 100644
index 0000000..cd12c22
--- /dev/null
+++ b/SOURCES/httpunit-1.7.pom
@@ -0,0 +1,76 @@
+
+ 4.0.0
+ httpunit
+ httpunit
+ HttpUnit
+ 1.7
+ A Java library for the automatic stimulation and testing of web applications.
+ http://httpunit.sourceforge.net
+
+
+ MIT License
+ http://httpunit.sourceforge.net/doc/license.html
+
+
+
+ src
+ test
+
+
+ maven-compiler-plugin
+
+
+ 1.4
+
+
+
+
+
+
+ xerces
+ xmlParserAPIs
+ 2.2.1
+ true
+
+
+ xerces
+ xercesImpl
+ 2.6.2
+ true
+
+
+ nekohtml
+ nekohtml
+ 0.9.5
+ true
+
+
+ rhino
+ js
+ 1.6R5
+ true
+
+
+ javax.servlet
+ servlet-api
+ 2.3
+
+
+ jtidy
+ jtidy
+ 4aug2000r7-dev
+
+
+ junit
+ junit
+ 3.8.1
+ true
+
+
+ javax.mail
+ mail
+ 1.4
+ test
+
+
+
diff --git a/SOURCES/httpunit-JavaScript-NotAFunctionException.patch b/SOURCES/httpunit-JavaScript-NotAFunctionException.patch
new file mode 100644
index 0000000..2b72ab9
--- /dev/null
+++ b/SOURCES/httpunit-JavaScript-NotAFunctionException.patch
@@ -0,0 +1,18 @@
+--- src/com/meterware/httpunit/javascript/JavaScript.java.orig 2004-10-03 10:17:12.000000000 +0300
++++ src/com/meterware/httpunit/javascript/JavaScript.java 2004-11-13 18:48:18.546230094 +0200
+@@ -826,10 +826,15 @@
+ static ElementArray newElementArray( Scriptable parent ) {
+ try {
+ return (ElementArray) Context.getCurrentContext().newObject( parent, "ElementArray" );
++/* PropertyException not thrown here as of Rhino-1.5-R5
+ } catch (PropertyException e) {
+ throw new RhinoException( e );
++*/
++/* deprecated NotAFunctionException now extends Error
++ and is no longer thrown by Rhino-1.5-R5
+ } catch (NotAFunctionException e) {
+ throw new RhinoException( e );
++*/
+ } catch (JavaScriptException e) {
+ throw new RhinoException( e );
+ }
diff --git a/SOURCES/httpunit-not-implemented.patch b/SOURCES/httpunit-not-implemented.patch
new file mode 100644
index 0000000..8ec06f5
--- /dev/null
+++ b/SOURCES/httpunit-not-implemented.patch
@@ -0,0 +1,422 @@
+diff --git a/src/com/meterware/servletunit/ServletUnitHttpRequest.java b/src/com/meterware/servletunit/ServletUnitHttpRequest.java
+index c2c331e..2d198b8 100644
+--- a/src/com/meterware/servletunit/ServletUnitHttpRequest.java
++++ b/src/com/meterware/servletunit/ServletUnitHttpRequest.java
+@@ -33,10 +33,17 @@ import java.util.*;
+
+ import javax.servlet.http.HttpServletRequest;
+ import javax.servlet.http.Cookie;
++import javax.servlet.http.HttpServletResponse;
+ import javax.servlet.http.HttpSession;
++import javax.servlet.http.Part;
++import javax.servlet.AsyncContext;
++import javax.servlet.DispatcherType;
++import javax.servlet.ServletContext;
+ import javax.servlet.ServletInputStream;
+ import javax.servlet.RequestDispatcher;
+ import javax.servlet.ServletException;
++import javax.servlet.ServletRequest;
++import javax.servlet.ServletResponse;
+
+
+ /**
+@@ -886,6 +893,71 @@ class ServletUnitHttpRequest implements HttpServletRequest {
+ }
+
+ }
++
++
++ public AsyncContext getAsyncContext() {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public DispatcherType getDispatcherType() {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public ServletContext getServletContext() {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public boolean isAsyncStarted() {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public boolean isAsyncSupported() {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public AsyncContext startAsync() {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public AsyncContext startAsync(ServletRequest arg0, ServletResponse arg1) {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public boolean authenticate(HttpServletResponse arg0) throws IOException,
++ ServletException {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public Part getPart(String arg0) throws IOException, IllegalStateException,
++ ServletException {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public Collection getParts() throws IOException,
++ IllegalStateException, ServletException {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public void login(String arg0, String arg1) throws ServletException {
++ throw new UnsupportedOperationException();
++
++ }
++
++
++ public void logout() throws ServletException {
++ throw new UnsupportedOperationException();
++
++ }
+ }
+
+
+diff --git a/src/com/meterware/servletunit/ServletUnitHttpResponse.java b/src/com/meterware/servletunit/ServletUnitHttpResponse.java
+index bcf7236..4585e73 100644
+--- a/src/com/meterware/servletunit/ServletUnitHttpResponse.java
++++ b/src/com/meterware/servletunit/ServletUnitHttpResponse.java
+@@ -463,7 +463,7 @@ class ServletUnitHttpResponse implements HttpServletResponse {
+ /**
+ * Returns the status of this response.
+ **/
+- int getStatus() {
++ public int getStatus() {
+ return _status;
+ }
+
+@@ -602,6 +602,22 @@ class ServletUnitHttpResponse implements HttpServletResponse {
+ ENCODING_MAP.put("Big5", "zh_TW zh_HK " );
+ }
+
++
++
++ public String getHeader(String arg0) {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public Collection getHeaderNames() {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public Collection getHeaders(String arg0) {
++ throw new UnsupportedOperationException();
++ }
++
+ }
+
+
+diff --git a/src/com/meterware/servletunit/ServletUnitServletContext.java b/src/com/meterware/servletunit/ServletUnitServletContext.java
+index 101bfb4..e20aaf6 100644
+--- a/src/com/meterware/servletunit/ServletUnitServletContext.java
++++ b/src/com/meterware/servletunit/ServletUnitServletContext.java
+@@ -28,12 +28,22 @@ import java.net.MalformedURLException;
+ import java.net.URL;
+ import java.net.URLConnection;
+ import java.util.Enumeration;
++import java.util.EventListener;
+ import java.util.Hashtable;
++import java.util.Map;
+ import java.util.Set;
+ import java.util.Vector;
+
++import javax.servlet.Filter;
++import javax.servlet.FilterRegistration;
++import javax.servlet.FilterRegistration.Dynamic;
++import javax.servlet.Servlet;
+ import javax.servlet.ServletContext;
+ import javax.servlet.ServletException;
++import javax.servlet.ServletRegistration;
++import javax.servlet.SessionCookieConfig;
++import javax.servlet.SessionTrackingMode;
++import javax.servlet.descriptor.JspConfigDescriptor;
+
+
+
+@@ -116,7 +126,7 @@ public class ServletUnitServletContext implements ServletContext {
+ try {
+ File resourceFile = _application.getResourceFile( path );
+ // PATCH proposal [ 1592532 ] Invalid ServletUnitServletContext#getResource(String path)
+- // by Timo Westk�mper
++ // by Timo Westk�mper
+ // return !resourceFile.exists() ? null : resourceFile.toURL();
+ return resourceFile == null ? null : resourceFile.toURL();
+ } catch (MalformedURLException e) {
+@@ -400,4 +410,146 @@ public class ServletUnitServletContext implements ServletContext {
+ public void setLogStream(PrintStream logStream) {
+ this._logStream = logStream;
+ }
++
++
++ public Dynamic addFilter(String arg0, String arg1) {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public Dynamic addFilter(String arg0, Filter arg1) {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public Dynamic addFilter(String arg0, Class extends Filter> arg1) {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public void addListener(Class extends EventListener> arg0) {
++ throw new UnsupportedOperationException();
++
++ }
++
++
++ public void addListener(String arg0) {
++ throw new UnsupportedOperationException();
++
++ }
++
++
++ public void addListener(T arg0) {
++ throw new UnsupportedOperationException();
++
++ }
++
++
++ public javax.servlet.ServletRegistration.Dynamic addServlet(String arg0,
++ String arg1) {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public javax.servlet.ServletRegistration.Dynamic addServlet(String arg0,
++ Servlet arg1) {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public javax.servlet.ServletRegistration.Dynamic addServlet(String arg0,
++ Class extends Servlet> arg1) {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public T createFilter(Class arg0)
++ throws ServletException {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public T createListener(Class arg0)
++ throws ServletException {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public T createServlet(Class arg0)
++ throws ServletException {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public void declareRoles(String... arg0) {
++ throw new UnsupportedOperationException();
++
++ }
++
++
++ public ClassLoader getClassLoader() {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public Set getDefaultSessionTrackingModes() {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public int getEffectiveMajorVersion() {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public int getEffectiveMinorVersion() {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public Set getEffectiveSessionTrackingModes() {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public FilterRegistration getFilterRegistration(String arg0) {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public Map getFilterRegistrations() {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public JspConfigDescriptor getJspConfigDescriptor() {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public ServletRegistration getServletRegistration(String arg0) {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public Map getServletRegistrations() {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public SessionCookieConfig getSessionCookieConfig() {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public boolean setInitParameter(String arg0, String arg1) {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public void setSessionTrackingModes(Set arg0)
++ throws IllegalStateException, IllegalArgumentException {
++ throw new UnsupportedOperationException();
++
++ }
+ }
+diff --git a/test/com/meterware/servletunit/RequestContextTest.java b/test/com/meterware/servletunit/RequestContextTest.java
+index ec0f4d4..9d8340a 100644
+--- a/test/com/meterware/servletunit/RequestContextTest.java
++++ b/test/com/meterware/servletunit/RequestContextTest.java
+@@ -22,6 +22,7 @@ package com.meterware.servletunit;
+ import com.meterware.httpunit.HttpUnitTest;
+
+ import java.net.URL;
++import java.util.Collection;
+ import java.util.Enumeration;
+ import java.util.Map;
+ import java.util.Locale;
+@@ -32,9 +33,17 @@ import java.io.BufferedReader;
+
+ import javax.servlet.http.HttpServletRequest;
+ import javax.servlet.http.Cookie;
++import javax.servlet.http.HttpServletResponse;
+ import javax.servlet.http.HttpSession;
++import javax.servlet.http.Part;
++import javax.servlet.AsyncContext;
++import javax.servlet.DispatcherType;
++import javax.servlet.ServletContext;
++import javax.servlet.ServletException;
+ import javax.servlet.ServletInputStream;
+ import javax.servlet.RequestDispatcher;
++import javax.servlet.ServletRequest;
++import javax.servlet.ServletResponse;
+
+ import junit.framework.TestSuite;
+
+@@ -384,6 +393,78 @@ public class RequestContextTest extends HttpUnitTest {
+ public int getLocalPort() {
+ return 0; //To change body of implemented methods use File | Settings | File Templates.
+ }
++
++
++ public AsyncContext getAsyncContext() {
++ throw new UnsupportedOperationException();
++
++ }
++
++
++ public DispatcherType getDispatcherType() {
++ throw new UnsupportedOperationException();
++
++ }
++
++
++ public ServletContext getServletContext() {
++ throw new UnsupportedOperationException();
++
++ }
++
++
++ public boolean isAsyncStarted() {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public boolean isAsyncSupported() {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public AsyncContext startAsync() {
++ throw new UnsupportedOperationException();
++
++ }
++
++
++ public AsyncContext startAsync(ServletRequest arg0, ServletResponse arg1) {
++ throw new UnsupportedOperationException();
++
++ }
++
++
++ public boolean authenticate(HttpServletResponse arg0)
++ throws IOException, ServletException {
++ throw new UnsupportedOperationException();
++ }
++
++
++ public Part getPart(String arg0) throws IOException,
++ IllegalStateException, ServletException {
++ throw new UnsupportedOperationException();
++
++ }
++
++
++ public Collection getParts() throws IOException,
++ IllegalStateException, ServletException {
++ throw new UnsupportedOperationException();
++
++ }
++
++
++ public void login(String arg0, String arg1) throws ServletException {
++ throw new UnsupportedOperationException();
++
++ }
++
++
++ public void logout() throws ServletException {
++ throw new UnsupportedOperationException();
++
++ }
+ }
+
+
diff --git a/SOURCES/httpunit-servlettest.patch b/SOURCES/httpunit-servlettest.patch
new file mode 100644
index 0000000..ac2cd82
--- /dev/null
+++ b/SOURCES/httpunit-servlettest.patch
@@ -0,0 +1,15 @@
+Index: build.xml
+===================================================================
+RCS file: /cvsroot/httpunit/httpunit/build.xml,v
+retrieving revision 1.77
+diff -u -r1.77 build.xml
+--- build.xml 5 Oct 2004 03:45:15 -0000 1.77
++++ build.xml 13 Nov 2004 19:06:13 -0000
+@@ -166,6 +166,7 @@
+
+
+
++
+
+
+
diff --git a/SOURCES/junit4.patch b/SOURCES/junit4.patch
new file mode 100644
index 0000000..ddd1218
--- /dev/null
+++ b/SOURCES/junit4.patch
@@ -0,0 +1,26 @@
+--- src/com/meterware/servletunit/JUnitServlet.java.sav 2008-05-20 16:25:36.000000000 +0300
++++ src/com/meterware/servletunit/JUnitServlet.java 2012-04-18 14:00:39.653850687 +0300
+@@ -29,8 +29,6 @@ import javax.servlet.http.HttpServletRes
+ import javax.servlet.ServletException;
+
+ import junit.runner.BaseTestRunner;
+-import junit.runner.TestSuiteLoader;
+-import junit.runner.StandardTestSuiteLoader;
+ import junit.framework.Test;
+ import junit.framework.AssertionFailedError;
+ import junit.framework.TestResult;
+@@ -148,12 +146,8 @@ public class JUnitServlet extends HttpSe
+ }
+
+
+- /**
+- * Always use the StandardTestSuiteLoader. Overridden from
+- * BaseTestRunner.
+- */
+- public TestSuiteLoader getLoader() {
+- return new StandardTestSuiteLoader();
++ protected boolean useReloadingTestSuiteLoader() {
++ return false;
+ }
+
+ }
diff --git a/SOURCES/web-app_2_2.dtd b/SOURCES/web-app_2_2.dtd
new file mode 100644
index 0000000..bc80ca2
--- /dev/null
+++ b/SOURCES/web-app_2_2.dtd
@@ -0,0 +1,581 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/SOURCES/web-app_2_3.dtd b/SOURCES/web-app_2_3.dtd
new file mode 100644
index 0000000..f9daf18
--- /dev/null
+++ b/SOURCES/web-app_2_3.dtd
@@ -0,0 +1,1003 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/SOURCES/web-app_2_4.xsd b/SOURCES/web-app_2_4.xsd
new file mode 100644
index 0000000..345c25e
--- /dev/null
+++ b/SOURCES/web-app_2_4.xsd
@@ -0,0 +1,1214 @@
+
+
+
+
+
+ %W% %E%
+
+
+
+
+
+
+ ...
+
+
+ The instance documents may indicate the published version of
+ the schema using the xsi:schemaLocation attribute for J2EE
+ namespace with the following location:
+
+ http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd
+
+ ]]>
+
+
+
+
+
+
+ The following conventions apply to all J2EE
+ deployment descriptor elements unless indicated otherwise.
+
+ - In elements that specify a pathname to a file within the
+ same JAR file, relative filenames (i.e., those not
+ starting with "/") are considered relative to the root of
+ the JAR file's namespace. Absolute filenames (i.e., those
+ starting with "/") also specify names in the root of the
+ JAR file's namespace. In general, relative names are
+ preferred. The exception is .war files where absolute
+ names are preferred for consistency with the Servlet API.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The web-app element is the root of the deployment
+ descriptor for a web application. Note that the sub-elements
+ of this element can be in the arbitrary order. Because of
+ that, the multiplicity of the elements of distributable,
+ session-config, welcome-file-list, jsp-config, login-config,
+ and locale-encoding-mapping-list was changed from "?" to "*"
+ in this schema. However, the deployment descriptor instance
+ file must not contain multiple elements of session-config,
+ jsp-config, and login-config. When there are multiple elements of
+ welcome-file-list or locale-encoding-mapping-list, the container
+ must concatenate the element contents. The multiple occurrence
+ of the element distributable is redundant and the container
+ treats that case exactly in the same way when there is only
+ one distributable.
+
+
+
+
+
+
+
+
+ The servlet element contains the name of a servlet.
+ The name must be unique within the web application.
+
+
+
+
+
+
+
+
+
+
+
+ The filter element contains the name of a filter.
+ The name must be unique within the web application.
+
+
+
+
+
+
+
+
+
+
+
+ The ejb-local-ref-name element contains the name of an EJB
+ reference. The EJB reference is an entry in the web
+ application's environment and is relative to the
+ java:comp/env context. The name must be unique within
+ the web application.
+
+ It is recommended that name is prefixed with "ejb/".
+
+
+
+
+
+
+
+
+
+
+
+ The ejb-ref-name element contains the name of an EJB
+ reference. The EJB reference is an entry in the web
+ application's environment and is relative to the
+ java:comp/env context. The name must be unique within
+ the web application.
+
+ It is recommended that name is prefixed with "ejb/".
+
+
+
+
+
+
+
+
+
+
+
+ The resource-env-ref-name element specifies the name of
+ a resource environment reference; its value is the
+ environment entry name used in the web application code.
+ The name is a JNDI name relative to the java:comp/env
+ context and must be unique within a web application.
+
+
+
+
+
+
+
+
+
+
+
+ The message-destination-ref-name element specifies the name of
+ a message destination reference; its value is the
+ environment entry name used in the web application code.
+ The name is a JNDI name relative to the java:comp/env
+ context and must be unique within a web application.
+
+
+
+
+
+
+
+
+
+
+
+ The res-ref-name element specifies the name of a
+ resource manager connection factory reference. The name
+ is a JNDI name relative to the java:comp/env context.
+ The name must be unique within a web application.
+
+
+
+
+
+
+
+
+
+
+
+ The env-entry-name element contains the name of a web
+ application's environment entry. The name is a JNDI
+ name relative to the java:comp/env context. The name
+ must be unique within a web application.
+
+
+
+
+
+
+
+
+
+
+
+
+ A role-name-key is specified to allow the references
+ from the security-role-refs.
+
+
+
+
+
+
+
+
+
+
+
+ The keyref indicates the references from
+ security-role-ref to a specified role-name.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The auth-constraintType indicates the user roles that
+ should be permitted access to this resource
+ collection. The role-name used here must either correspond
+ to the role-name of one of the security-role elements
+ defined for this web application, or be the specially
+ reserved role-name "*" that is a compact syntax for
+ indicating all roles in the web application. If both "*"
+ and rolenames appear, the container interprets this as all
+ roles. If no roles are defined, no user is allowed access
+ to the portion of the web application described by the
+ containing security-constraint. The container matches
+ role names case sensitively when determining access.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The auth-methodType is used to configure the authentication
+ mechanism for the web application. As a prerequisite to
+ gaining access to any web resources which are protected by
+ an authorization constraint, a user must have authenticated
+ using the configured mechanism. Legal values are "BASIC",
+ "DIGEST", "FORM", "CLIENT-CERT", or a vendor-specific
+ authentication scheme.
+
+ Used in: login-config
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The dispatcher has four legal values: FORWARD, REQUEST, INCLUDE,
+ and ERROR. A value of FORWARD means the Filter will be applied
+ under RequestDispatcher.forward() calls. A value of REQUEST
+ means the Filter will be applied under ordinary client calls to
+ the path or servlet. A value of INCLUDE means the Filter will be
+ applied under RequestDispatcher.include() calls. A value of
+ ERROR means the Filter will be applied under the error page
+ mechanism. The absence of any dispatcher elements in a
+ filter-mapping indicates a default of applying filters only under
+ ordinary client calls to the path or servlet.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The encodingType defines IANA character sets.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The error-code contains an HTTP error code, ex: 404
+
+ Used in: error-page
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The error-pageType contains a mapping between an error code
+ or exception type to the path of a resource in the web
+ application.
+
+ Used in: web-app
+
+
+
+
+
+
+
+
+
+
+
+
+ The exception-type contains a fully qualified class
+ name of a Java exception type.
+
+
+
+
+
+
+
+
+
+
+ The location element contains the location of the
+ resource in the web application relative to the root of
+ the web application. The value of the location must have
+ a leading `/'.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Declaration of the filter mappings in this web
+ application is done by using filter-mappingType.
+ The container uses the filter-mapping
+ declarations to decide which filters to apply to a request,
+ and in what order. The container matches the request URI to
+ a Servlet in the normal way. To determine which filters to
+ apply it matches filter-mapping declarations either on
+ servlet-name, or on url-pattern for each filter-mapping
+ element, depending on which style is used. The order in
+ which filters are invoked is the order in which
+ filter-mapping declarations that match a request URI for a
+ servlet appear in the list of filter-mapping elements. The
+ filter-name value must be the value of the filter-name
+ sub-elements of one of the filter declarations in the
+ deployment descriptor.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The logical name of the filter is declare
+ by using filter-nameType. This name is used to map the
+ filter. Each filter name is unique within the web
+ application.
+
+ Used in: filter, filter-mapping
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The filterType is used to declare a filter in the web
+ application. The filter is mapped to either a servlet or a
+ URL pattern in the filter-mapping element, using the
+ filter-name value to reference. Filters can access the
+ initialization parameters declared in the deployment
+ descriptor at runtime via the FilterConfig interface.
+
+ Used in: web-app
+
+
+
+
+
+
+
+
+
+
+
+ The fully qualified classname of the filter.
+
+
+
+
+
+
+
+
+
+ The init-param element contains a name/value pair as
+ an initialization param of a servlet filter
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The form-login-configType specifies the login and error
+ pages that should be used in form based login. If form based
+ authentication is not used, these elements are ignored.
+
+ Used in: login-config
+
+
+
+
+
+
+
+
+
+
+ The form-login-page element defines the location in the web
+ app where the page that can be used for login can be
+ found. The path begins with a leading / and is interpreted
+ relative to the root of the WAR.
+
+
+
+
+
+
+
+
+
+ The form-error-page element defines the location in
+ the web app where the error page that is displayed
+ when login is not successful can be found.
+ The path begins with a leading / and is interpreted
+ relative to the root of the WAR.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The http-method contains an HTTP method recognized by the
+ web-app, for example GET, POST, ...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The locale-encoding-mapping-list contains one or more
+ locale-encoding-mapping(s).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The locale-encoding-mapping contains locale name and
+ encoding name. The locale name must be either "Language-code",
+ such as "ja", defined by ISO-639 or "Language-code_Country-code",
+ such as "ja_JP". "Country code" is defined by ISO-3166.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The localeType defines valid locale defined by ISO-639-1
+ and ISO-3166.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The login-configType is used to configure the authentication
+ method that should be used, the realm name that should be
+ used for this application, and the attributes that are
+ needed by the form login mechanism.
+
+ Used in: web-app
+
+
+
+
+
+
+
+
+
+
+ The realm name element specifies the realm name to
+ use in HTTP Basic authorization.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The mime-mappingType defines a mapping between an extension
+ and a mime type.
+
+ Used in: web-app
+
+
+
+
+
+
+
+
+ The extension element contains a string describing an
+ extension. example: "txt"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The mime-typeType is used to indicate a defined mime type.
+
+ Example:
+ "text/plain"
+
+ Used in: mime-mapping
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This type defines a string which contains at least one
+ character.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The security-constraintType is used to associate
+ security constraints with one or more web resource
+ collections
+
+ Used in: web-app
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The servlet-mappingType defines a mapping between a
+ servlet and a url pattern.
+
+ Used in: web-app
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The servlet-name element contains the canonical name of the
+ servlet. Each servlet name is unique within the web
+ application.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The servletType is used to declare a servlet.
+ It contains the declarative data of a
+ servlet. If a jsp-file is specified and the load-on-startup
+ element is present, then the JSP should be pre-compiled and
+ loaded.
+
+ Used in: web-app
+
+
+
+
+
+
+
+
+
+
+
+
+ The servlet-class element contains the fully
+ qualified class name of the servlet.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The load-on-startup element indicates that this
+ servlet should be loaded (instantiated and have
+ its init() called) on the start-up of the web
+ application. The optional contents of these
+ element must be an integer indicating the order in
+ which the servlet should be loaded. If the value
+ is a negative integer, or the element is not
+ present, the container is free to load the servlet
+ whenever it chooses. If the value is a positive
+ integer or 0, the container must load and
+ initialize the servlet as the application is
+ deployed. The container must guarantee that
+ servlets marked with lower integers are loaded
+ before servlets marked with higher integers. The
+ container may choose the order of loading of
+ servlets with the same load-on-start-up value.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The session-configType defines the session parameters
+ for this web application.
+
+ Used in: web-app
+
+
+
+
+
+
+
+
+
+ The session-timeout element defines the default
+ session timeout interval for all sessions created
+ in this web application. The specified timeout
+ must be expressed in a whole number of minutes.
+ If the timeout is 0 or less, the container ensures
+ the default behaviour of sessions is never to time
+ out. If this element is not specified, the container
+ must set its default timeout period.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The transport-guaranteeType specifies that the communication
+ between client and server should be NONE, INTEGRAL, or
+ CONFIDENTIAL. NONE means that the application does not
+ require any transport guarantees. A value of INTEGRAL means
+ that the application requires that the data sent between the
+ client and server be sent in such a way that it can't be
+ changed in transit. CONFIDENTIAL means that the application
+ requires that the data be transmitted in a fashion that
+ prevents other entities from observing the contents of the
+ transmission. In most cases, the presence of the INTEGRAL or
+ CONFIDENTIAL flag will indicate that the use of SSL is
+ required.
+
+ Used in: user-data-constraint
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The user-data-constraintType is used to indicate how
+ data communicated between the client and container should be
+ protected.
+
+ Used in: security-constraint
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The elements that use this type designate a path starting
+ with a "/" and interpreted relative to the root of a WAR
+ file.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This type contains the recognized versions of
+ web-application supported. It is used to designate the
+ version of the web application.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The context-param element contains the declaration
+ of a web application's servlet context
+ initialization parameters.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The web-resource-collectionType is used to identify a subset
+ of the resources and HTTP methods on those resources within
+ a web application to which a security constraint applies. If
+ no HTTP methods are specified, then the security constraint
+ applies to all HTTP methods.
+
+ Used in: security-constraint
+
+
+
+
+
+
+
+
+
+ The web-resource-name contains the name of this web
+ resource collection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The welcome-file-list contains an ordered list of welcome
+ files elements.
+
+ Used in: web-app
+
+
+
+
+
+
+
+
+
+ The welcome-file element contains file name to use
+ as a default welcome file, such as index.html
+
+
+
+
+
+
+
+
+
+
diff --git a/SPECS/httpunit.spec b/SPECS/httpunit.spec
new file mode 100644
index 0000000..eb2d68a
--- /dev/null
+++ b/SPECS/httpunit.spec
@@ -0,0 +1,328 @@
+%global pkg_name httpunit
+%{?scl:%scl_package %{pkg_name}}
+%{?maven_find_provides_and_requires}
+
+# Copyright (c) 2000-2005, JPackage Project
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the
+# distribution.
+# 3. Neither the name of the JPackage Project nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+Name: %{?scl_prefix}%{pkg_name}
+Version: 1.7
+Release: 15.13%{?dist}
+Epoch: 0
+Summary: Automated web site testing toolkit
+License: MIT and ASL 2.0
+# ./create-tarball.sh %%{version}
+Source0: httpunit-1.7-clean.tar.gz
+Source1: http://repo1.maven.org/maven2/httpunit/httpunit/1.7/httpunit-1.7.pom
+# replacement for non-free XML DTD files (#987449)
+Source2: https://raw.github.com/apache/tomcat/TOMCAT_7_0_42/java/javax/servlet/resources/web-app_2_2.dtd
+Source3: https://raw.github.com/apache/tomcat/TOMCAT_7_0_42/java/javax/servlet/resources/web-app_2_3.dtd
+Source4: https://raw.github.com/apache/tomcat/TOMCAT_7_0_42/java/javax/servlet/resources/web-app_2_4.xsd
+# sources 2-4 are licensed under ASL 2.0
+Source5: http://www.apache.org/licenses/LICENSE-2.0.txt
+Source6: create-tarball.sh
+Patch1: %{pkg_name}-JavaScript-NotAFunctionException.patch
+Patch2: %{pkg_name}-servlettest.patch
+Patch3: %{pkg_name}-not-implemented.patch
+Patch4: junit4.patch
+URL: http://httpunit.sourceforge.net/
+BuildRequires: %{?scl_prefix_java_common}javapackages-tools
+BuildRequires: %{?scl_prefix_java_common}ant >= 0:1.6
+BuildRequires: %{?scl_prefix_java_common}nekohtml
+BuildRequires: %{?scl_prefix}jtidy
+BuildRequires: %{?scl_prefix_java_common}junit >= 0:3.8
+BuildRequires: %{?scl_prefix_java_common}tomcat-servlet-3.0-api
+BuildRequires: %{?scl_prefix_java_common}javamail >= 0:1.3
+BuildRequires: rhino
+
+Requires: %{?scl_prefix_java_common}junit >= 0:3.8
+Requires: %{?scl_prefix_java_common}tomcat-servlet-3.0-api
+# As of 1.5, requires either nekohtml or jtidy, and prefers nekohtml.
+Requires: %{?scl_prefix_java_common}nekohtml
+Requires: rhino
+
+BuildArch: noarch
+
+
+%description
+HttpUnit emulates the relevant portions of browser behavior, including form
+submission, JavaScript, basic http authentication, cookies and automatic page
+redirection, and allows Java test code to examine returned pages either as
+text, an XML DOM, or containers of forms, tables, and links.
+A companion framework, ServletUnit is included in the package.
+
+%package javadoc
+Summary: Javadoc for %{pkg_name}
+
+%description javadoc
+Javadoc for %{pkg_name}
+
+%package doc
+Summary: Documentation for %{pkg_name}
+Requires: %{name}-javadoc
+
+%description doc
+Documentation for %{pkg_name}
+
+%prep
+%setup -q -n %{pkg_name}-%{version}
+%{?scl:scl enable %{scl} - <<"EOF"}
+set -e -x
+# patch to work with rhino 1.5
+%patch1 -b .sav
+# add META-INF
+%patch2
+%patch3 -p1
+%patch4
+
+sed -i -e 's|destdir|encoding="iso-8859-1" destdir|g' build.xml
+
+sed -i -e 's|setCharEncoding( org.w3c.tidy.Configuration.UTF8 )|setInputEncoding("UTF-8")|g' src/com/meterware/httpunit/parsing/JTidyHTMLParser.java
+
+# remove all binary libs and javadocs
+find . -name "*.jar" -exec rm -f {} \;
+rm -rf doc/api
+
+ln -s $(build-classpath junit jtidy nekohtml tomcat-servlet-api js xerces-j2 | tr ':' ' ') jars
+
+mv %{SOURCE1} pom.xml
+mv %{SOURCE2} META-INF/
+mv %{SOURCE3} META-INF/
+mv %{SOURCE4} META-INF/
+mv %{SOURCE5} LICENSE-ASL
+%{?scl:EOF}
+
+
+%build
+%{?scl:scl enable %{scl} - <<"EOF"}
+set -e -x
+export CLASSPATH="$(build-classpath javamail):%{_root_datadir}/java/rhino.jar"
+export ANT_OPTS="-Dfile.encoding=iso-8859-1"
+ant -Dbuild.compiler=modern -Dbuild.sysclasspath=last \
+ jar javadocs test servlettest
+%{?scl:EOF}
+
+%install
+%{?scl:scl enable %{scl} - <<"EOF"}
+set -e -x
+mkdir -p $RPM_BUILD_ROOT%{_javadir}
+cp -p lib/%{pkg_name}.jar $RPM_BUILD_ROOT%{_javadir}/%{pkg_name}.jar
+
+# Javadoc
+mkdir -p $RPM_BUILD_ROOT%{_javadocdir}/%{name}
+cp -pr doc/api/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}
+
+# POM
+install -d -m 755 $RPM_BUILD_ROOT%{_mavenpomdir}
+install -pm 644 pom.xml $RPM_BUILD_ROOT%{_mavenpomdir}/JPP-%{pkg_name}.pom
+%add_maven_depmap JPP-%{pkg_name}.pom %{pkg_name}.jar
+
+
+# Avoid having api in doc
+rm -rf doc/api
+
+# Fix link between doc and javadoc
+pushd doc
+ln -sf %{_javadocdir}/%{name} api
+popd
+%{?scl:EOF}
+
+%files -f .mfiles
+%doc LICENSE-ASL
+
+%files javadoc
+%doc LICENSE-ASL
+%{_javadocdir}/%{name}
+
+%files doc
+%doc doc/*
+
+%changelog
+* Mon Feb 08 2016 Michal Srb - 0:1.7-15.13
+- Fix BR on maven-local & co.
+
+* Mon Jan 11 2016 Michal Srb - 0:1.7-15.12
+- maven33 rebuild #2
+
+* Sat Jan 09 2016 Michal Srb - 0:1.7-15.11
+- maven33 rebuild
+
+* Tue Jan 13 2015 Michael Simacek - 0:1.7-15.10
+- Mass rebuild 2015-01-13
+
+* Mon Jan 12 2015 Michael Simacek - 0:1.7-15.9
+- BR/R on packages from rh-java-common
+
+* Wed Jan 07 2015 Michal Srb - 1.7-15.8
+- Migrate to .mfiles
+
+* Tue Jan 06 2015 Michael Simacek - 0:1.7-15.7
+- Mass rebuild 2015-01-06
+
+* Mon May 26 2014 Mikolaj Izdebski - 0:1.7-15.6
+- Mass rebuild 2014-05-26
+
+* Wed Feb 19 2014 Mikolaj Izdebski - 0:1.7-15.5
+- Mass rebuild 2014-02-19
+
+* Tue Feb 18 2014 Mikolaj Izdebski - 0:1.7-15.4
+- Mass rebuild 2014-02-18
+
+* Tue Feb 18 2014 Mikolaj Izdebski - 0:1.7-15.3
+- Remove requires on java
+
+* Thu Feb 13 2014 Mikolaj Izdebski - 0:1.7-15.2
+- Rebuild to regenerate auto-requires
+
+* Tue Feb 11 2014 Mikolaj Izdebski - 0:1.7-15.1
+- First maven30 software collection build
+
+* Fri Dec 27 2013 Daniel Mach - 01.7-15
+- Mass rebuild 2013-12-27
+
+* Fri Aug 02 2013 Michal Srb - 0:1.7-14
+- Add create-tarball.sh script to SRPM
+
+* Wed Jul 24 2013 Michal Srb - 0:1.7-13
+- Replace non-free XML DTD files
+- Drop group tag
+- Fix R/BR
+
+* Fri Jun 28 2013 Mikolaj Izdebski - 0:1.7-12
+- Rebuild to regenerate API documentation
+- Resolves: CVE-2013-1571
+
+* Thu Feb 14 2013 Fedora Release Engineering - 0:1.7-11
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
+
+* Mon Nov 12 2012 Stanislav Ochotnicky - 0:1.7-10
+- BR/R new tomcat servlet
+
+* Tue Aug 21 2012 Tomas Radej - 0:1.7-9
+- Added POM File
+- Added Requires on jpackage-utils to javadoc package
+
+* Thu Jul 19 2012 Fedora Release Engineering - 0:1.7-8
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Wed Apr 18 2012 Alexander Kurtakov 0:1.7-7
+- Fix build against junit 4.x.
+
+* Fri Jan 13 2012 Fedora Release Engineering - 0:1.7-6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
+* Tue Dec 6 2011 Alexander Kurtakov 0:1.7-5
+- Fix build.
+- Adapt to current guidelines.
+
+* Mon Mar 7 2011 Alexander Kurtakov 0:1.7-4
+- Adopt to current guidelines.
+- Fix various rpmlint errors/warnings.
+
+* Wed Feb 09 2011 Fedora Release Engineering - 0:1.7-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Thu Oct 21 2010 Alexander Kurtakov 0:1.7-2
+- BR java 1.6.0.
+- Remove jaf from exported classpath.
+
+* Wed Oct 20 2010 Alexander Kurtakov 0:1.7-1
+- Update to 1.7.
+- Drop demo subpackage - it was never upstream.
+- Use default permissions.
+
+* Fri Jul 24 2009 Fedora Release Engineering - 0:1.6.2-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
+
+* Tue Feb 24 2009 Fedora Release Engineering - 0:1.6.2-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
+
+* Wed Jul 9 2008 Tom "spot" Callaway - 0:1.6.2-2
+- drop repotag
+
+* Wed Feb 14 2007 Permaine Cheung - 0:1.6.2-1jpp.1
+- Fixed buildroot, release
+- Renamed manual subpackage to doc subpackage as per fedora packaging guideline
+- Got rid of Vendor and Distribution tags.
+
+* Mon May 08 2006 Ralph Apel - 0:1.6.2-1jpp
+- Upgrade to 1.6.2
+- First JPP-1.7 release
+
+* Sat Nov 13 2004 Ville Skyttä - 0:1.6-1jpp
+- Update to 1.6.
+- Require Servlet API 2.3, ServletUnit doesn't work with 2.4.
+- Fix classpath construction during build; now works also with classpathx-mail.
+- Apply upstream patch to build with Java 1.5 (built with 1.4.2 though).
+- Patch to fix class path in servlet tests during build.
+
+* Wed Sep 22 2004 Ralph Apel - 0:1.5.4-3jpp
+- Patched JavaScript.java to not handle NotAFunctionException,
+ as in Rhino-1.5-R5 this now is deprecated, not thrown any more
+ and extends Error; also not to handle PropertyException not thrown
+ any more in that try block
+
+* Wed Aug 25 2004 Ralph Apel - 0:1.5.4-2jpp
+- Build with ant-1.6.2
+
+* Thu Aug 21 2003 Ville Skyttä - 0:1.5.4-1jpp
+- Update to 1.5.4.
+- Save .spec in UTF-8.
+
+* Mon May 5 2003 Ville Skyttä - 0:1.5.3-2jpp
+- Fix non-versioned javadoc symlinking.
+
+* Mon Apr 21 2003 Ville Skyttä - 0:1.5.3-1jpp
+- Update to 1.5.3 and JPackage 1.5.
+- Include non-versioned javadoc symlink.
+
+* Tue Mar 4 2003 Ville Skyttä - 1.5.2-1jpp
+- Update to 1.5.2.
+- Run unit tests during build.
+
+* Wed Dec 18 2002 Ville Skyttä - 1.5.1-1jpp
+- Update to 1.5.1.
+
+* Mon Nov 4 2002 Ville Skyttä 1.5-1jpp
+- Update to 1.5.
+
+* Thu Oct 3 2002 Ville Skyttä 1.4.6-1jpp
+- Update to 1.4.6.
+
+* Fri Sep 6 2002 Ville Skyttä 1.4.5-0.cvs20020906.1jpp
+- Update to 1.4.5 (CVS 2002-09-06, CVS version needed since we have JUnit 3.8).
+- Add requirements.
+- Add rhino and xerces to build requirements.
+- Fix/add Distribution, License, Vendor tags.
+- Use sed instead of bash2 extension when symlinking jars during build.
+- s/Copyright/License/
+
+* Tue Jul 16 2002 Henri Gomez 1.4.1-1jpp
+- first jpp release