diff --git a/el-ri-4.0.0.tar.gz b/el-ri-4.0.0.tar.gz
new file mode 100644
index 0000000..eda06c9
Binary files /dev/null and b/el-ri-4.0.0.tar.gz differ
diff --git a/jakarta-el.spec b/jakarta-el.spec
new file mode 100644
index 0000000..bd01e78
--- /dev/null
+++ b/jakarta-el.spec
@@ -0,0 +1,100 @@
+%global srcname el-ri
+
+Name: jakarta-el
+Version: 4.0.0
+Release: 1
+Summary: Jakarta Expression Language
+License: EPL-2.0 or GPLv2 with exceptions
+
+URL: https://github.com/jakartaee/expression-language
+Source0: %{url}/archive/%{version}-RELEASE/%{srcname}-%{version}.tar.gz
+
+BuildArch: noarch
+
+BuildRequires: maven-local
+BuildRequires: mvn(junit:junit)
+BuildRequires: mvn(org.apache.felix:maven-bundle-plugin)
+BuildRequires: mvn(org.apache.maven.surefire:surefire-junit47)
+
+Provides: glassfish-el = %{version}-%{release}
+Obsoletes: glassfish-el < 3.0.1-1
+
+%description
+Jakarta Expression Language provides a specification document, API,
+reference implementation and TCK that describes an expression language
+for Java applications.
+
+This package contains the implementation.
+
+
+%package api
+Summary: Jakarta Expression Language API
+
+Provides: glassfish-el-api = %{version}-%{release}
+Obsoletes: glassfish-el-api < 3.0.1-1
+
+%description api
+Jakarta Expression Language provides a specification document, API,
+reference implementation and TCK that describes an expression language
+for Java applications.
+
+This package contains only the API.
+
+
+%package javadoc
+Summary: Javadoc for %{name}
+
+Provides: glassfish-el-javadoc = %{version}-%{release}
+Obsoletes: glassfish-el-javadoc < 3.0.1-1
+
+%description javadoc
+This package contains javadoc for %{name}.
+
+
+%prep
+%setup -q -n %{srcname}-%{version}-RELEASE
+
+%pom_remove_parent . api impl
+%pom_disable_module spec
+
+cp -pr api/src/main/java/jakarta api/src/main/java/javax
+sed -i -e 's/jakarta\./javax./g' $(find api/src/main/java/javax -name *.java)
+%pom_xpath_replace pom:instructions/pom:Export-Package \
+ 'jakarta.el,javax.el;version="3.0.0"' api
+
+%mvn_package jakarta.el:el-parent __noinstall
+
+%pom_remove_plugin -r :maven-enforcer-plugin
+%pom_remove_plugin -r :maven-javadoc-plugin
+%pom_remove_plugin -r :maven-source-plugin
+
+%mvn_alias org.glassfish:jakarta.el org.glassfish:javax.el
+%mvn_alias jakarta.el:jakarta.el-api javax.el:javax.el-api javax.el:el-api
+
+%mvn_file :jakarta.el %{name}/jakarta.el glassfish-el
+%mvn_file :jakarta.el-api %{name}/jakarta.el-api glassfish-el-api
+
+
+%build
+%mvn_build -s
+
+
+%install
+%mvn_install
+
+
+%files -f .mfiles-jakarta.el
+%license LICENSE.md NOTICE.md
+%doc README.md
+
+%files api -f .mfiles-jakarta.el-api
+%license LICENSE.md NOTICE.md
+%doc README.md
+
+%files javadoc -f .mfiles-javadoc
+%license LICENSE.md NOTICE.md
+
+
+%changelog
+* Wed Feb 09 2022 wangkai - 4.0.0-1
+- Package init
diff --git a/jakarta-el.yaml b/jakarta-el.yaml
new file mode 100644
index 0000000..1ebbb25
--- /dev/null
+++ b/jakarta-el.yaml
@@ -0,0 +1,4 @@
+version_control: github
+src_repo: jakartaee/expression-language
+tag_pattern: "(.*).-RELEASE-api"
+seperator: "."