diff --git a/.bsf.metadata b/.bsf.metadata
new file mode 100644
index 0000000..ac03a38
--- /dev/null
+++ b/.bsf.metadata
@@ -0,0 +1 @@
+23422d907d085797fcbdf81296237e608a77e54f SOURCES/bsf-src-2.4.0.tar.gz
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..fb2de92
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+SOURCES/bsf-src-2.4.0.tar.gz
diff --git a/SOURCES/bsf-pom.xml b/SOURCES/bsf-pom.xml
new file mode 100644
index 0000000..fd9d8f6
--- /dev/null
+++ b/SOURCES/bsf-pom.xml
@@ -0,0 +1,37 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache</groupId>
+    <artifactId>apache</artifactId>
+    <version>3</version>
+  </parent>
+  <groupId>bsf</groupId>
+  <artifactId>bsf</artifactId>
+  <version>2.4.0</version>
+  <name>Bean Scripting Framework</name>
+  <url>http://jakarta.apache.org/bsf</url>
+
+  <scm>
+    <connection>scm:svn:http://svn.apache.org/jakarta/bsf/tags/bsf-2.4.0</connection>
+    <developerConnection>scm:svn:https://svn.apache.org/jakarta/bsf/tags/bsf-2.4.0</developerConnection>
+    <url>http://svn.apache.org/viewvc/jakarta/bsf/tags/bsf-2.4.0</url>
+  </scm>
+
+  <dependencies>
+    <dependency>
+      <groupId>commons-logging</groupId>
+      <artifactId>commons-logging</artifactId>
+      <version>1.0.4</version>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>3.8.2</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+</project>
diff --git a/SOURCES/build-file.patch b/SOURCES/build-file.patch
new file mode 100644
index 0000000..87b2c2b
--- /dev/null
+++ b/SOURCES/build-file.patch
@@ -0,0 +1,33 @@
+--- bsf-2.4.0-orig/build.xml	2009-09-09 11:51:20.000000000 +0200
++++ bsf-2.4.0/build.xml	2009-09-14 08:42:17.000000000 +0200
+@@ -102,7 +102,7 @@
+ 		<pathelement location="${build.tests}"/>
+ 	</path>
+ 
+-	<target name="init" depends="clean">
++	<target name="init">
+ 		<tstamp />
+ 
+ 
+@@ -134,11 +134,13 @@
+ 
+ 		<available property="junit.present" classname="junit.framework.TestCase" />
+ 
++		<!--
+ 		<uptodate property="javac.notRequired" targetfile="${build.lib}/${project.name}.jar">
+ 			<srcfiles dir="${src.dir}">
+ 				<patternset refid="javac.source.files" />
+ 			</srcfiles>
+ 		</uptodate>
++		-->		
+ 
+ 		<uptodate property="javadoc.required" targetfile="${build.lib}/${project.name}.jar">
+ 			<srcfiles dir="${build.dir}" includes="**/*.html" />
+@@ -268,6 +270,7 @@
+ 		<mkdir dir="${build.javadocs}" />
+ 		<!-- FIXME: Excluding some packages temporarily -->
+ 		<javadoc packagenames="${packages}" failonerror="true" excludepackagenames="org.apache.bsf.engines.java, org.apache.bsf.engines.javaclass" destdir="${build.javadocs}" author="true" version="false" use="true" windowtitle="${project.fullName} API" doctitle="${project.fullName}" source="${source.level}">
++			<arg value="-Xdoclint:none" />
+ 			<classpath refid="compile.classpath" />
+ 			<fileset dir="${src.dir}">
+ 				<patternset refid="java.source.files"></patternset>
diff --git a/SOURCES/build.properties.patch b/SOURCES/build.properties.patch
new file mode 100644
index 0000000..3ea3f72
--- /dev/null
+++ b/SOURCES/build.properties.patch
@@ -0,0 +1,47 @@
+diff --new-file -r -u bsf-2.4.0-orig/build-properties.xml bsf-2.4.0/build-properties.xml
+--- bsf-2.4.0-orig/build-properties.xml	1970-01-01 01:00:00.000000000 +0100
++++ bsf-2.4.0/build-properties.xml	2007-05-23 15:33:04.000000000 +0200
+@@ -0,0 +1,43 @@
++<?xml version="1.0" encoding="utf-8"?>
++<project name="props">
++    <property name="project.name" value="bsf"/>
++    <property name="project.fullName" value="Bean Scripting Framework"/>
++    <property name="project.version" value="2.4.0"/>
++    <property name="project.debug" value="on"/>
++    <property name="project.deprecation" value="on"/>
++
++    <property name="build.file" value="build.xml"/>
++    <property name="build.dir" value="build"/>
++    <property name="build.dest" value="build/classes"/>
++    <property name="build.lib" value="build/lib"/>
++    <property name="build.lib.win32" value="build/lib/win32"/>
++    <property name="build.samples" value="build/samples"/>
++    <property name="build.samples.calc" value="build/samples/calc"/>
++    <property name="build.samples.scriptedui" value="build/samples/scriptedui"/>
++    <property name="build.samples.xsl" value="build/samples/xsl"/>
++    <property name="build.javadocs" value="build/javadocs"/>
++    <property name="build.tests" value="build/testcases" />
++
++    <property name="dist.dir" value="dist"/>
++    <property name="dist.dir.root" value="${dist.dir}/${project.name}-${project.version}"/>
++    <property name="dist.bin.file" value="${dist.dir}/${project.name}-bin-${project.version}"/>
++    <property name="dist.src.file" value="${dist.dir}/${project.name}-src-${project.version}"/>
++
++    <property name="packages" value="org.apache.*"/>
++
++    <property name="samples.dir" value="samples"/>
++
++    <property name="site.src" location="xdocs"/>
++    <property name="site.dest" location="docs"/>
++    <property name="site.projectFile" value="stylesheets/project.xml"/>
++
++    <property name="source.level" value="1.3" />
++
++    <property name="src.dir" value="src"/>
++
++    <property name="templ.path" location="xdocs/stylesheets"/>
++
++    <property name="tests.dir" value="test"/>
++
++    <property name="velocity.props" location="${site.src}/velocity.properties"/>
++</project>
diff --git a/SPECS/bsf.spec b/SPECS/bsf.spec
new file mode 100644
index 0000000..21ee5a1
--- /dev/null
+++ b/SPECS/bsf.spec
@@ -0,0 +1,249 @@
+Name:           bsf
+Version:        2.4.0
+Release:        32%{?dist}
+Summary:        Bean Scripting Framework
+License:        ASL 2.0
+URL:            http://commons.apache.org/bsf/
+BuildArch:      noarch
+
+Source0:        http://apache.mirror.anlx.net//commons/%{name}/source/%{name}-src-%{version}.tar.gz
+Source1:        %{name}-pom.xml
+
+Patch0:         build-file.patch
+Patch1:         build.properties.patch
+
+BuildRequires:  javapackages-local
+BuildRequires:  ant
+BuildRequires:  apache-parent
+BuildRequires:  xalan-j2
+BuildRequires:  apache-commons-logging
+
+%description
+Bean Scripting Framework (BSF) is a set of Java classes which provides
+scripting language support within Java applications, and access to Java
+objects and methods from scripting languages. BSF allows one to write
+JSPs in languages other than Java while providing access to the Java
+class library. In addition, BSF permits any Java application to be
+implemented in part (or dynamically extended) by a language that is
+embedded within it. This is achieved by providing an API that permits
+calling scripting language engines from within Java, as well as an
+object registry that exposes Java objects to these scripting language
+engines.
+
+BSF supports several scripting languages currently:
+* Javascript (using Rhino ECMAScript, from the Mozilla project)
+* Python (using either Jython or JPython)
+* Tcl (using Jacl)
+* NetRexx (an extension of the IBM REXX scripting language in Java)
+* XSLT Stylesheets (as a component of Apache XML project's Xalan and
+Xerces)
+
+In addition, the following languages are supported with their own BSF
+engines:
+* Java (using BeanShell, from the BeanShell project)
+* JRuby
+* JudoScript
+
+%prep
+%setup -q
+%patch0 -p1
+%patch1 -p1
+find -name \*.jar -delete
+
+%mvn_file : %{name}
+%mvn_alias : org.apache.bsf:
+
+%build
+export CLASSPATH=$(build-classpath apache-commons-logging xalan-j2)
+ant -Dsource.level=1.6 jar
+
+%mvn_artifact %{SOURCE1} build/lib/%{name}.jar
+
+%install
+%mvn_install
+
+%files -f .mfiles
+%license LICENSE.txt NOTICE.txt
+%doc AUTHORS.txt CHANGES.txt README.txt TODO.txt RELEASE-NOTE.txt
+
+%changelog
+* Tue Nov 05 2019 Mikolaj Izdebski <mizdebsk@redhat.com> - 2.4.0-32
+- Mass rebuild for javapackages-tools 201902
+
+* Fri May 24 2019 Mikolaj Izdebski <mizdebsk@redhat.com> - 2.4.0-31
+- Mass rebuild for javapackages-tools 201901
+
+* Tue Jul 17 2018 Mikolaj Izdebski <mizdebsk@redhat.com> - 0:2.4.0-30
+- Remove bulid dependency on rhino
+
+* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0:2.4.0-29
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
+* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0:2.4.0-28
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0:2.4.0-27
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Fri Feb 10 2017 Michael Simacek <msimacek@redhat.com> - 0:2.4.0-26
+- Add missing BR apache-parent
+
+* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0:2.4.0-25
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
+* Tue Jun 14 2016 Mikolaj Izdebski <mizdebsk@redhat.com> - 0:2.4.0-24
+- Cleanup package
+
+* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0:2.4.0-23
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
+
+* Tue Jul 14 2015 Mikolaj Izdebski <mizdebsk@redhat.com> - 0:2.4.0-22
+- Add build-requires on javapackages-local
+
+* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0:2.4.0-21
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Thu May 14 2015 Mikolaj Izdebski <mizdebsk@redhat.com> - 0:2.4.0-20
+- Disable javadoc doclint
+
+* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0:2.4.0-19
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
+* Wed May 21 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 0:2.4.0-18
+- Use .mfiles generated during build
+- Update to current packaging guidelines
+
+* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0:2.4.0-17
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
+
+* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0:2.4.0-16
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
+
+* Thu Nov 22 2012 Tomas Radej <tradej@redhat.com> - 0:2.4.0-15
+- Fixed URL of Source0
+
+* Tue Nov 20 2012 Mikolaj Izdebski <mizdebsk@redhat.com> - 0:2.4.0-14
+- Remove unneeded BR: jython
+
+* Wed Jul 18 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0:2.4.0-13
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Fri Mar 16 2012 Alexander Kurtakov <akurtako@redhat.com> 0:2.4.0-12
+- Drop jsp/servlet api dependencies, leftovers from the past.
+
+* Thu Jan 12 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0:2.4.0-11
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
+* Fri Dec  2 2011 Stanislav Ochotnicky <sochotnicky@redhat.com> - 0:2.4.0-10
+- Fixes according to latest guidelines
+- Fix maven depmap
+
+* Mon Feb 07 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0:2.4.0-9
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Tue Sep 21 2010 Orion Poplawski <orion@cora.nwra.com> - 0:2.4.0-8
+- Build against rhino for JavaScript support
+
+* Mon Jun 14 2010 Stanislav Ochotnicky <sochotnicky@redhat.com> - 0:2.4.0-7
+- Added pom file to enable maven dependency resolution
+- Fix Source0 URL
+- Fix Group designation
+
+* Mon Jun  7 2010 Stanislav Ochotnicky <sochotnicky@redhat.com> - 0:2.4.0-6
+- Fix BR after jakarta-commons rename
+
+* Wed Apr 7 2010 Alexander Kurtakov <akurtako@redhat.com> 0:2.4.0-5
+- Drop gcj support.
+- Build against servlet and jsp apis from tomcat6.
+
+* Mon Jan 11 2010 Andrew Overholt <overholt@redhat.com> 2.4.0-4
+- Fix License (ASL 2.0 and not 1.1) (rhbz#554465).
+
+* Mon Sep 14 2009 Christoph Höger <choeger@cs.tu-berlin.de> - 0:2.4.0-3
+- Fix typo in Requires
+
+* Wed Sep 09 2009 Christoph Höger <choeger@cs.tu-berlin.de> - 0:2.4.0-1
+- New Upstream release: 2.4.0
+- Add jython build dependency to include bsf-jython engine
+
+* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0:2.3.0-15
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
+
+* Mon Feb 23 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0:2.3.0-14
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
+
+* Wed Jul  9 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 0:2.3.0-13
+- drop repotag
+- fix license
+
+* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 0:2.3.0-12jpp.2
+- Autorebuild for GCC 4.3
+
+* Wed Mar 07 2007 Permaine Cheung <pcheung@redhat.com> 0:2.3.0-11jpp.2
+- Update spec file as per Fedora guidelines
+
+* Thu Aug 03 2006 Deepak Bhole <dbhole@redhat.com> 0:2.3.0-11jpp.1
+- Added missing requirements.
+
+* Sat Jul 22 2006 Jakub Jelinek <jakub@redhat.com> 0:2.3.0-10jpp_2fc
+- Rebuilt
+
+* Fri Jul 21 2006 Deepak Bhole <dbhole@redhat.com> 0:2.3.0-10jpp_2fc
+- Removing vendor and distribution tags.
+
+* Thu Jul 20 2006 Deepak Bhole <dbhole@redhat.com> 0:2.3.0-10jpp_1fc
+- Added conditional native compilation.
+- From gbenson@redhat:
+-   Build without Jython or Rhino for now.
+-   Build with servletapi5.
+-   Avoid Sun-specific classes.
+
+* Wed Apr 26 2006 Fernando Nasser <fnasser@redhat.com>  0:2.3.0-9jpp
+- First JPP 1.7 build
+
+* Wed Nov 3 2004 Nicolas Mailhot <nim@jpackage.org>  0:2.3.0-8jpp
+- Clean up specfile a bit
+
+* Fri Aug 20 2004 Ralph Apel <r.apel at r-apel.de> 0:2.3.0-7jpp
+- Build with ant-1.6.2
+
+* Thu Oct 09 2003 David Walluck <david@anti-microsoft.org> 0:2.3.0-6jpp
+- add javadoc symlinks
+- change Apache Software License to Apache License
+
+* Tue Aug 26 2003 David Walluck <david@anti-microsoft.org> 0:2.3.0-5jpp
+- remove all Requires
+
+* Fri Apr 12 2003 David Walluck <david@anti-microsoft.org> 0:2.3.0-4jpp
+- fix strange permissions
+
+* Fri Apr 11 2003 David Walluck <david@anti-microsoft.org> 0:2.3.0-3jpp
+- rebuild for jpackage 1.5
+
+* Wed Jan 22 2003 David Walluck <david@anti-microsoft.org> 2.3.0-2jpp
+- Requires/BuildRequires: xalan-j2
+- update %%description
+
+* Mon Jan 13 2003 David Walluck <david@anti-microsoft.org> 2.3.0-1jpp
+- version 2.3.0 (first jakarta release)
+
+* Tue May 07 2002 Guillaume Rousse <guillomovitch@users.sourceforge.net> 2.2-5jpp
+- vendor, distribution, group tags
+- versioned dir for javadoc
+- section macro
+
+* Sat Dec 1 2001 Guillaume Rousse <guillomovitch@users.sourceforge.net> 2.2-4jpp
+- javadoc in javadoc package
+
+* Wed Nov 21 2001 Christian Zoffoli <czoffoli@littlepenguin.org> 2.2-3jpp
+- removed packager tag
+- new jpp extension
+- fixed url
+
+* Sat Oct 6 2001 Guillaume Rousse <guillomovitch@users.sourceforge.net> 2.2-2jpp
+- first unified release
+- used original tarball
+- s/jPackage/JPackage
+
+* Thu Aug 30 2001 Guillaume Rousse <guillomovitch@users.sourceforge.net> 2.2-1jpp
+- first Mandrake release