diff --git a/bsf-pom.xml b/bsf-pom.xml
new file mode 100644
index 0000000..fd9d8f6
--- /dev/null
+++ b/bsf-pom.xml
@@ -0,0 +1,37 @@
+
+ 4.0.0
+
+ org.apache
+ apache
+ 3
+
+ bsf
+ bsf
+ 2.4.0
+ Bean Scripting Framework
+ http://jakarta.apache.org/bsf
+
+
+ scm:svn:http://svn.apache.org/jakarta/bsf/tags/bsf-2.4.0
+ scm:svn:https://svn.apache.org/jakarta/bsf/tags/bsf-2.4.0
+ http://svn.apache.org/viewvc/jakarta/bsf/tags/bsf-2.4.0
+
+
+
+
+ commons-logging
+ commons-logging
+ 1.0.4
+ compile
+
+
+ junit
+ junit
+ 3.8.2
+ test
+
+
+
+
diff --git a/bsf-src-2.4.0.tar.gz b/bsf-src-2.4.0.tar.gz
new file mode 100644
index 0000000..f44dc9f
Binary files /dev/null and b/bsf-src-2.4.0.tar.gz differ
diff --git a/bsf.spec b/bsf.spec
new file mode 100644
index 0000000..e63270b
--- /dev/null
+++ b/bsf.spec
@@ -0,0 +1,72 @@
+Name: bsf
+Epoch: 0
+Version: 2.4.0
+Release: 32
+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: bsf-pom.xml
+Patch0000: build-file.patch
+Patch0001: build.properties.patch
+
+BuildRequires: javapackages-local ant apache-parent xalan-j2 rhino 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.
+
+The two primary components of BSF are the BSFManager and the BSFEngine.
+The BSFManager handles all scripting execution engines running under its
+control, and maintains the object registry that permits scripts access
+to Java objects. By creating an instance of the BSFManager class, a Java
+application can gain access to scripting services.
+
+The BSFEngine provides an interface that must be implemented for a language
+to be used by BSF. This interface provides an abstraction of the scripting
+language's capabilities that permits generic handling of script execution
+and object registration within the execution context of the scripting
+language engine.
+
+An application can instantiate a single BSFManager, and execute several
+different scripting languages identically via the BSFEngine interface. Furthermore,
+all of the scripting languages handled by the BSFManager are aware of the
+objects registered with that BSFManager, and the execution state of those
+scripting languages is maintained for the lifetime of the BSFManager.
+
+%package help
+Summary: Help documentation for bsf
+Provides: bsf-javadoc = %{epoch}:%{version}-%{release}
+Obsoletes: bsf-javadoc < %{epoch}:%{version}-%{release}
+
+%description help
+The Package is infomation about bsf.
+
+%prep
+%autosetup -p1
+
+find -name \*.jar -delete
+
+%mvn_file : bsf
+%mvn_alias : org.apache.bsf:
+
+%build
+export CLASSPATH=$(build-classpath apache-commons-logging rhino xalan-j2)
+ant jar javadocs
+
+%mvn_artifact %{SOURCE1} build/lib/bsf.jar
+
+%install
+%mvn_install -J build/javadocs
+
+%files -f .mfiles
+%license LICENSE.txt NOTICE.txt
+%doc AUTHORS.txt CHANGES.txt README.txt TODO.txt RELEASE-NOTE.txt
+
+%files help -f .mfiles-javadoc
+
+%changelog
+* Thu Dec 12 2019 wanjiankang - 0:2.4.0-32
+- Package Init
diff --git a/build-file.patch b/build-file.patch
new file mode 100644
index 0000000..87b2c2b
--- /dev/null
+++ b/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 @@
+
+
+
+-
++
+
+
+
+@@ -134,11 +134,13 @@
+
+
+
++
+
+
+
+@@ -268,6 +270,7 @@
+
+
+
++
+
+
+
diff --git a/build.properties.patch b/build.properties.patch
new file mode 100644
index 0000000..3ea3f72
--- /dev/null
+++ b/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 @@
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++