diff --git a/OWB-1309-fix-missing-NoSuchMethodException.patch b/OWB-1309-fix-missing-NoSuchMethodException.patch
new file mode 100644
index 0000000000000000000000000000000000000000..5473aec21c95f3f0eba00e2e8bc7eed4fe164055
--- /dev/null
+++ b/OWB-1309-fix-missing-NoSuchMethodException.patch
@@ -0,0 +1,113 @@
+From 191724a9eb132d232f8ab081658aa40ea1eb2778 Mon Sep 17 00:00:00 2001
+Subject: [PATCH] OWB-1309 fix missing NoSuchMethodException
+
+---
+ pom.xml | 2 +-
+ .../web/tomcat7/TomcatInstanceManager.java | 53 ++++++++++++++-----
+ 2 files changed, 40 insertions(+), 15 deletions(-)
+
+diff --git a/pom.xml b/pom.xml
+index ba45ccc..316f27e 100644
+--- a/pom.xml
++++ b/pom.xml
+@@ -78,7 +78,7 @@
+ 1.0
+ 1.1
+ 6.0.35
+- 7.0.54
++ 7.0.99
+ 3.1.4
+ 1.2.9
+ 2.2.3
+diff --git a/webbeans-tomcat7/src/main/java/org/apache/webbeans/web/tomcat7/TomcatInstanceManager.java b/webbeans-tomcat7/src/main/java/org/apache/webbeans/web/tomcat7/TomcatInstanceManager.java
+index eb127e6..d271d4e 100644
+--- a/webbeans-tomcat7/src/main/java/org/apache/webbeans/web/tomcat7/TomcatInstanceManager.java
++++ b/webbeans-tomcat7/src/main/java/org/apache/webbeans/web/tomcat7/TomcatInstanceManager.java
+@@ -27,6 +27,7 @@ import javax.naming.NamingException;
+ import org.apache.juli.logging.Log;
+ import org.apache.juli.logging.LogFactory;
+ import org.apache.tomcat.InstanceManager;
++import org.apache.webbeans.util.ExceptionUtil;
+
+ public class TomcatInstanceManager implements InstanceManager
+ {
+@@ -70,24 +71,40 @@ public class TomcatInstanceManager implements InstanceManager
+ public Object newInstance(Class> aClass) throws IllegalAccessException, InvocationTargetException, NamingException, InstantiationException
+ {
+ // Creates a defaut instance
+- Object object = this.processor.newInstance(aClass);
++ try
++ {
++ Object object = this.processor.newInstance(aClass);
+
+- // Inject dependencies
+- inject(object);
++ // Inject dependencies
++ inject(object);
+
+- return object;
++ return object;
++ }
++ catch (Exception e)
++ {
++ // sadly this is required as the Tomcat InstanceManager introduced an additional Exception in their signature :(
++ throw ExceptionUtil.throwAsRuntimeException(e);
++ }
+ }
+
+ @Override
+ public Object newInstance(String str) throws IllegalAccessException, InvocationTargetException, NamingException, InstantiationException, ClassNotFoundException
+ {
+- // Creates a defaut instance
+- Object object = this.processor.newInstance(str);
++ try
++ {
++ // Creates a defaut instance
++ Object object = this.processor.newInstance(str);
+
+- // Inject dependencies
+- inject(object);
++ // Inject dependencies
++ inject(object);
+
+- return object;
++ return object;
++ }
++ catch (Exception e)
++ {
++ // sadly this is required as the Tomcat InstanceManager introduced an additional Exception in their signature :(
++ throw ExceptionUtil.throwAsRuntimeException(e);
++ }
+ }
+
+ @Override
+@@ -100,13 +117,21 @@ public class TomcatInstanceManager implements InstanceManager
+ @Override
+ public Object newInstance(String str, ClassLoader cl) throws IllegalAccessException, InvocationTargetException, NamingException, InstantiationException, ClassNotFoundException
+ {
+- // Creates a defaut instance
+- Object object = this.processor.newInstance(str, cl);
++ try
++ {
++ // Creates a defaut instance
++ Object object = this.processor.newInstance(str, cl);
+
+- // Inject dependencies
+- inject(object);
++ // Inject dependencies
++ inject(object);
+
+- return object;
++ return object;
++ }
++ catch (Exception e)
++ {
++ // sadly this is required as the Tomcat InstanceManager introduced an additional Exception in their signature :(
++ throw ExceptionUtil.throwAsRuntimeException(e);
++ }
+ }
+
+ private void inject(Object object)
+--
+2.23.0
+
diff --git a/openwebbeans-1.2.0-servlet31.patch b/openwebbeans-1.2.0-servlet31.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b7843137a40dbf9980df0c127127690be3181221
--- /dev/null
+++ b/openwebbeans-1.2.0-servlet31.patch
@@ -0,0 +1,543 @@
+diff -Nru openwebbeans-1.2.0/webbeans-test/cditest-owb/src/main/java/org/apache/webbeans/cditest/owb/MockServletContext.java openwebbeans-1.2.0.servlet/webbeans-test/cditest-owb/src/main/java/org/apache/webbeans/cditest/owb/MockServletContext.java
+--- openwebbeans-1.2.0/webbeans-test/cditest-owb/src/main/java/org/apache/webbeans/cditest/owb/MockServletContext.java 2013-05-19 07:22:06.000000000 +0200
++++ openwebbeans-1.2.0.servlet/webbeans-test/cditest-owb/src/main/java/org/apache/webbeans/cditest/owb/MockServletContext.java 2015-07-30 19:58:45.571193609 +0200
+@@ -198,5 +198,137 @@
+ {
+ attributes.put(name, object);
+ }
++ public void declareRoles(String... roleNames) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public ClassLoader getClassLoader() {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.descriptor.JspConfigDescriptor getJspConfigDescriptor() {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public T createListener(Class c) throws ServletException {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public void addListener(String className) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public void addListener(T t) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public void addListener(Class extends java.util.EventListener> listenerClass) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public Set getEffectiveSessionTrackingModes() {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public Set getDefaultSessionTrackingModes() {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public void setSessionTrackingModes(Set sessionTrackingModes) throws IllegalStateException, IllegalArgumentException {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.SessionCookieConfig getSessionCookieConfig() {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public java.util.Map getFilterRegistrations() {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.FilterRegistration getFilterRegistration(String filterName) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
+
++ public T createFilter(Class c) throws ServletException {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, Class extends javax.servlet.Filter> filterClass) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, javax.servlet.Filter filter) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, String className) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public java.util.Map getServletRegistrations() {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.ServletRegistration getServletRegistration(String servletName) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public T createServlet(Class c) throws ServletException {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.ServletRegistration.Dynamic addServlet(String servletName, Servlet servlet) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.ServletRegistration.Dynamic addServlet(String servletName, Class extends Servlet> servletClass) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.ServletRegistration.Dynamic addServlet(String servletName, String className) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public boolean setInitParameter(String name, String value) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public int getEffectiveMinorVersion() {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public int getEffectiveMajorVersion() {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public String getVirtualServerName() {
++ throw new RuntimeException("Not implemented");
++ }
+ }
+diff -Nru openwebbeans-1.2.0/webbeans-web/src/main/java/org/apache/webbeans/web/lifecycle/test/MockServletContext.java openwebbeans-1.2.0.servlet/webbeans-web/src/main/java/org/apache/webbeans/web/lifecycle/test/MockServletContext.java
+--- openwebbeans-1.2.0/webbeans-web/src/main/java/org/apache/webbeans/web/lifecycle/test/MockServletContext.java 2013-05-19 07:22:06.000000000 +0200
++++ openwebbeans-1.2.0.servlet/webbeans-web/src/main/java/org/apache/webbeans/web/lifecycle/test/MockServletContext.java 2015-07-30 19:40:48.766671820 +0200
+@@ -22,7 +22,9 @@
+ import java.net.MalformedURLException;
+ import java.net.URL;
+ import java.util.Enumeration;
++import java.util.EventListener;
+ import java.util.Hashtable;
++import java.util.Map;
+ import java.util.Set;
+ import java.util.StringTokenizer;
+
+@@ -290,4 +292,138 @@
+
+ }
+ */
++
++ public void declareRoles(String... roleNames) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public ClassLoader getClassLoader() {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.descriptor.JspConfigDescriptor getJspConfigDescriptor() {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public T createListener(Class c) throws ServletException {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public void addListener(String className) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public void addListener(T t) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public void addListener(Class extends EventListener> listenerClass) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public Set getEffectiveSessionTrackingModes() {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public Set getDefaultSessionTrackingModes() {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public void setSessionTrackingModes(Set sessionTrackingModes) throws IllegalStateException, IllegalArgumentException {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.SessionCookieConfig getSessionCookieConfig() {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public Map getFilterRegistrations() {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.FilterRegistration getFilterRegistration(String filterName) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public T createFilter(Class c) throws ServletException {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, Class extends javax.servlet.Filter> filterClass) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, javax.servlet.Filter filter) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, String className) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public Map getServletRegistrations() {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.ServletRegistration getServletRegistration(String servletName) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public T createServlet(Class c) throws ServletException {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.ServletRegistration.Dynamic addServlet(String servletName, Servlet servlet) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.ServletRegistration.Dynamic addServlet(String servletName, Class extends Servlet> servletClass) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.ServletRegistration.Dynamic addServlet(String servletName, String className) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public boolean setInitParameter(String name, String value) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public int getEffectiveMinorVersion() {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public int getEffectiveMajorVersion() {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public String getVirtualServerName() {
++ throw new RuntimeException("Not implemented");
++ }
+ }
+diff -Nru openwebbeans-1.2.0/webbeans-web/src/test/java/org/apache/webbeans/web/tests/MockServletContext.java openwebbeans-1.2.0.servlet/webbeans-web/src/test/java/org/apache/webbeans/web/tests/MockServletContext.java
+--- openwebbeans-1.2.0/webbeans-web/src/test/java/org/apache/webbeans/web/tests/MockServletContext.java 2013-05-19 07:22:06.000000000 +0200
++++ openwebbeans-1.2.0.servlet/webbeans-web/src/test/java/org/apache/webbeans/web/tests/MockServletContext.java 2015-07-30 19:45:11.315876450 +0200
+@@ -26,6 +26,8 @@
+ import java.net.MalformedURLException;
+ import java.net.URL;
+ import java.util.Enumeration;
++import java.util.EventListener;
++import java.util.Map;
+ import java.util.Set;
+
+ /**
+@@ -177,4 +179,138 @@
+ {
+ return null;
+ }
++
++ public void declareRoles(String... roleNames) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public ClassLoader getClassLoader() {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.descriptor.JspConfigDescriptor getJspConfigDescriptor() {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public T createListener(Class c) throws ServletException {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public void addListener(String className) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public void addListener(T t) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public void addListener(Class extends EventListener> listenerClass) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public Set getEffectiveSessionTrackingModes() {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public Set getDefaultSessionTrackingModes() {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public void setSessionTrackingModes(Set sessionTrackingModes) throws IllegalStateException, IllegalArgumentException {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.SessionCookieConfig getSessionCookieConfig() {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public Map getFilterRegistrations() {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.FilterRegistration getFilterRegistration(String filterName) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public T createFilter(Class c) throws ServletException {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, Class extends javax.servlet.Filter> filterClass) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, javax.servlet.Filter filter) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, String className) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public Map getServletRegistrations() {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.ServletRegistration getServletRegistration(String servletName) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public T createServlet(Class c) throws ServletException {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.ServletRegistration.Dynamic addServlet(String servletName, Servlet servlet) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.ServletRegistration.Dynamic addServlet(String servletName, Class extends Servlet> servletClass) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.ServletRegistration.Dynamic addServlet(String servletName, String className) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public boolean setInitParameter(String name, String value) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public int getEffectiveMinorVersion() {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public int getEffectiveMajorVersion() {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public String getVirtualServerName() {
++ throw new RuntimeException("Not implemented");
++ }
+ }
+diff -Nru openwebbeans-1.2.0/webbeans-web/src/test/java/org/apache/webbeans/web/tests/MockServletRequest.java openwebbeans-1.2.0.servlet/webbeans-web/src/test/java/org/apache/webbeans/web/tests/MockServletRequest.java
+--- openwebbeans-1.2.0/webbeans-web/src/test/java/org/apache/webbeans/web/tests/MockServletRequest.java 2013-05-19 07:22:06.000000000 +0200
++++ openwebbeans-1.2.0.servlet/webbeans-web/src/test/java/org/apache/webbeans/web/tests/MockServletRequest.java 2015-07-30 19:54:37.302293027 +0200
+@@ -19,10 +19,13 @@
+ package org.apache.webbeans.web.tests;
+
+ import javax.servlet.RequestDispatcher;
++import javax.servlet.ServletException;
+ import javax.servlet.ServletInputStream;
+ import javax.servlet.http.Cookie;
+ import javax.servlet.http.HttpServletRequest;
+ import javax.servlet.http.HttpSession;
++import javax.servlet.http.HttpUpgradeHandler;
++
+ import java.io.BufferedReader;
+ import java.io.IOException;
+ import java.io.UnsupportedEncodingException;
+@@ -357,4 +360,81 @@
+ {
+ return false;
+ }
++
++ public String getRemoteName() {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.http.Part getPart(String name) throws IOException, IllegalStateException, javax.servlet.ServletException {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public java.util.Collection getParts() throws IOException, IllegalStateException, javax.servlet.ServletException {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public void logout() throws javax.servlet.ServletException {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public void login(String username, String password) throws javax.servlet.ServletException {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public boolean authenticate(javax.servlet.http.HttpServletResponse response) throws IOException, javax.servlet.ServletException {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.DispatcherType getDispatcherType() {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.AsyncContext getAsyncContext() {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public boolean isAsyncSupported() {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public boolean isAsyncStarted() {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.AsyncContext startAsync(javax.servlet.ServletRequest servletRequest, javax.servlet.ServletResponse servletResponse) {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.AsyncContext startAsync() {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public javax.servlet.ServletContext getServletContext() {
++ // TODO
++ throw new UnsupportedOperationException("Not supported.");
++ }
++
++ public T upgrade(Class arg0) throws IOException, ServletException {
++ throw new RuntimeException("Not implemented");
++ }
++
++ public String changeSessionId() {
++ throw new RuntimeException("Not implemented");
++ }
++
++ public long getContentLengthLong() {
++ throw new RuntimeException("Not implemented");
++ }
+ }
diff --git a/openwebbeans-1.2.8-source-release.zip b/openwebbeans-1.2.8-source-release.zip
new file mode 100644
index 0000000000000000000000000000000000000000..5eba7f5434860e2ba6c94ea518379c7f3b48aa2a
Binary files /dev/null and b/openwebbeans-1.2.8-source-release.zip differ
diff --git a/openwebbeans.spec b/openwebbeans.spec
new file mode 100644
index 0000000000000000000000000000000000000000..64f4bb21d07cb96b4138820e89745508dd508590
--- /dev/null
+++ b/openwebbeans.spec
@@ -0,0 +1,241 @@
+%bcond_with arquillian
+Name: openwebbeans
+Version: 1.2.8
+Release: 1
+Summary: Implementation of the JSR-299 WebBeans
+License: ASL 2.0
+URL: http://openwebbeans.apache.org/
+Source0: http://www.apache.org/dist/openwebbeans/%{version}/%{name}-%{version}-source-release.zip
+Patch0: %{name}-1.2.0-servlet31.patch
+Patch1: OWB-1309-fix-missing-NoSuchMethodException.patch
+BuildRequires: maven-local mvn(javax.annotation:javax.annotation-api) >= 1.2
+BuildRequires: mvn(javax.el:javax.el-api) mvn(javax.inject:javax.inject)
+BuildRequires: mvn(javax.servlet:javax.servlet-api)
+BuildRequires: mvn(javax.servlet.jsp:javax.servlet.jsp-api) mvn(junit:junit)
+BuildRequires: mvn(org.apache:apache:pom:) mvn(org.apache:apache-jar-resource-bundle)
+BuildRequires: mvn(org.apache.felix:maven-bundle-plugin)
+BuildRequires: mvn(org.apache.geronimo.specs:geronimo-ejb_3.1_spec)
+BuildRequires: mvn(org.apache.geronimo.specs:geronimo-jcdi_1.0_spec)
+BuildRequires: mvn(org.apache.geronimo.specs:geronimo-jms_1.1_spec)
+BuildRequires: mvn(org.apache.geronimo.specs:geronimo-jta_1.1_spec)
+BuildRequires: mvn(org.apache.geronimo.specs:geronimo-validation_1.0_spec)
+BuildRequires: mvn(org.apache.geronimo.specs:specs:pom:)
+BuildRequires: mvn(org.apache.httpcomponents:project:pom:)
+BuildRequires: mvn(org.apache.maven.plugins:maven-dependency-plugin)
+BuildRequires: mvn(org.apache.maven.plugins:maven-release-plugin)
+BuildRequires: mvn(org.apache.maven.plugins:maven-remote-resources-plugin)
+BuildRequires: mvn(org.apache.tomcat:tomcat-catalina) mvn(org.apache.xbean:xbean-finder)
+BuildRequires: mvn(org.codehaus.mojo:build-helper-maven-plugin)
+BuildRequires: mvn(org.eclipse.osgi:org.eclipse.osgi)
+BuildRequires: mvn(org.hibernate.javax.persistence:hibernate-jpa-2.0-api)
+BuildRequires: mvn(org.jboss.spec.javax.faces:jboss-jsf-api_2.2_spec)
+BuildRequires: mvn(org.jboss.spec.javax.interceptor:jboss-interceptors-api_1.2_spec)
+BuildRequires: mvn(org.ow2.asm:asm) mvn(org.ow2.asm:asm-commons)
+%if %{with arquillian}
+BuildRequires: mvn(org.jboss.arquillian:arquillian-bom)
+BuildRequires: mvn(org.jboss.arquillian.container:arquillian-container-spi)
+BuildRequires: mvn(org.jboss.arquillian.core:arquillian-core-spi)
+BuildRequires: mvn(org.jboss.arquillian.junit:arquillian-junit-container)
+BuildRequires: mvn(org.jboss.arquillian.test:arquillian-test-spi)
+BuildRequires: mvn(org.jboss.arquillian.testenricher:arquillian-testenricher-cdi)
+BuildRequires: mvn(org.jboss.shrinkwrap:shrinkwrap-api)
+BuildRequires: mvn(org.jboss.shrinkwrap.resolver:shrinkwrap-resolver-bom:pom:)
+%endif
+Obsoletes: %{name}-arquillian
+Obsoletes: %{name}-cdi11
+BuildArch: noarch
+%description
+OpenWebBeans is an implementation of the JSR-299, Contexts and
+Dependency Injection for the Java EE platform.
+It also already incorporates some features which are part of JSR-346
+but doesn't need API changes as we still use the JCDI-1.0 API. The
+incorporated CDI-1.1 features are mostly parts which are not well defined
+in the CDI-1.0 specification, like Serialisation checks, etc.
+
+%package clustering
+Summary: Apache OpenWebBeans Clustering Plugin
+%description clustering
+Apache OpenWebBeans Clustering plugin.
+
+%package ee
+Summary: Apache OpenWebBeans Java EE plugin
+%description ee
+Apache OpenWebBeans Java EE Utility.
+
+%package ee-common
+Summary: Apache OpenWebBeans EE Common plugin
+%description ee-common
+Apache OpenWebBeans Java EE Common.
+
+%package ejb
+Summary: Apache OpenWebBeans EJB plugin
+%description ejb
+Apache OpenWebBeans Java EE EJB plugin.
+
+%package el22
+Summary: Apache OpenWebBeans EL 2.2 plugin
+%description el22
+Apache OpenWebBeans EL 2.2 integration.
+
+%package impl
+Summary: Apache OpenWebBeans Core
+%description impl
+Apache OpenWebBeans Implementation core module.
+
+%package jee5-ejb-resource
+Summary: Apache OpenWebBeans EE Resource plugin
+%description jee5-ejb-resource
+Apache OpenWebBeans EE 5 Resource Integration.
+
+%package jms
+Summary: Apache OpenWebBeans JMS plugin
+%description jms
+Apache OpenWebBeans JMS Integration.
+
+%package jsf
+Summary: Apache OpenWebBeans JSF-2 plugin
+%description jsf
+Apache OpenWebBeans JSF integration.
+
+%package osgi
+Summary: Apache OpenWebBeans OSGi plugin
+%description osgi
+Apache OpenWebBeans OSGi ClassLoader scanning support.
+
+%package resource
+Summary: Apache OpenWebBeans EE Resource plugin
+%description resource
+Apache OpenWebBeans EE Resource Integration.
+
+%package spi
+Summary: Apache OpenWebBeans SPI definition
+%description spi
+Apache OpenWebBeans Service Provider Interfaces.
+
+%package test
+Summary: Apache OpenWebBeans CDI Test Framework
+%description test
+This package contains testing support for CDI containers and
+also provides an implementation for OpenWebBeans.
+
+%package tomcat7
+Summary: Apache OpenWebBeans Tomcat 7 plugin
+%description tomcat7
+ApacheOpenWebBeans Tomcat 7 Web Profile.
+
+%package web
+Summary: Apache OpenWebBeans Web plugin
+%description web
+Apache OpenWebBeans Java EE Web and Serlvet plugin.
+
+%package javadoc
+Summary: Javadoc for %{name}
+%description javadoc
+This package contains javadoc for %{name}.
+
+%prep
+%setup -q
+%patch0 -p1
+%patch1 -p1
+rm -r DEPENDENCIES
+%pom_remove_plugin :maven-checkstyle-plugin
+%pom_remove_plugin :findbugs-maven-plugin
+%pom_remove_plugin :taglist-maven-plugin
+%pom_remove_plugin -r :maven-source-plugin
+%pom_disable_module distribution
+%pom_disable_module samples
+%pom_disable_module webbeans-doc
+%pom_disable_module webbeans-el10
+%pom_disable_module webbeans-jsf12
+%pom_disable_module webbeans-porting
+%pom_disable_module webbeans-tck
+%pom_disable_module atinject-tck
+%pom_disable_module webbeans-tomcat6
+%if %{without arquillian}
+%pom_disable_module webbeans-arquillian
+%pom_remove_dep :arquillian-bom webbeans-arquillian
+%endif
+%pom_change_dep -r :geronimo-annotation_1.1_spec javax.annotation:javax.annotation-api:1.2
+%pom_change_dep -r :geronimo-atinject_1.0_spec javax.inject:javax.inject:1
+%pom_change_dep -r :geronimo-el_2.2_spec javax.el:javax.el-api:3.0.0
+%pom_change_dep -r :geronimo-interceptor_1.1_spec org.jboss.spec.javax.interceptor:jboss-interceptors-api_1.2_spec:1.0.0.Final
+%pom_change_dep -r :geronimo-jpa_2.0_spec org.hibernate.javax.persistence:hibernate-jpa-2.0-api:1.0.1.Final
+%pom_change_dep -r :geronimo-jsp_2.1_spec javax.servlet.jsp:javax.servlet.jsp-api:2.3.2-b01
+%pom_change_dep -r :geronimo-servlet_2.5_spec javax.servlet:javax.servlet-api:3.1.0
+%pom_change_dep -r :myfaces-api org.jboss.spec.javax.faces:jboss-jsf-api_2.2_spec:2.2.0
+%pom_change_dep -r :org.osgi.core org.eclipse.osgi:org.eclipse.osgi
+%pom_change_dep -r org.apache.xbean:xbean-finder-shaded org.apache.xbean:xbean-finder
+%pom_change_dep -r org.apache.xbean:xbean-asm5-shaded org.ow2.asm:asm:5.0.3
+sed -i "s|org.apache.xbean.asm5|org.objectweb.asm|" \
+ webbeans-impl/src/main/java/org/apache/webbeans/proxy/AbstractProxyFactory.java \
+ webbeans-impl/src/main/java/org/apache/webbeans/proxy/InterceptorDecoratorProxyFactory.java \
+ webbeans-impl/src/main/java/org/apache/webbeans/proxy/NormalScopeProxyFactory.java \
+ webbeans-impl/src/main/java/org/apache/webbeans/proxy/SubclassProxyFactory.java
+%pom_add_dep org.ow2.asm:asm-commons:5.0.3:test webbeans-impl
+rm -r webbeans-impl/src/test/java/org/apache/webbeans/portable/AnnotatedTypeImplTest.java
+rm -rf webbeans-clustering/src/test/java/org/apache/webbeans/web/failover/tests/MockServletContext.java \
+ webbeans-clustering/src/test/java/org/apache/webbeans/web/failover/tests/MockServletRequest.java
+%pom_remove_plugin org.apache.rat:apache-rat-plugin
+%mvn_package org.apache.openwebbeans.test: test
+%mvn_package :%{name}-impl::tests: %{name}-impl
+
+%build
+%mvn_build -s -- -Dmaven.test.failure.ignore=true
+
+%install
+%mvn_install
+
+%files -f .mfiles-%{name}
+%license LICENSE NOTICE
+
+%files clustering -f .mfiles-%{name}-clustering
+%license LICENSE NOTICE
+
+%files ee -f .mfiles-%{name}-ee
+%license LICENSE NOTICE
+
+%files ee-common -f .mfiles-%{name}-ee-common
+%license LICENSE NOTICE
+
+%files ejb -f .mfiles-%{name}-ejb
+%license LICENSE NOTICE
+
+%files el22 -f .mfiles-%{name}-el22
+%license LICENSE NOTICE
+
+%files impl -f .mfiles-%{name}-impl
+%license LICENSE NOTICE
+
+%files jee5-ejb-resource -f .mfiles-%{name}-jee5-ejb-resource
+%license LICENSE NOTICE
+
+%files jms -f .mfiles-%{name}-jms
+%license LICENSE NOTICE
+
+%files jsf -f .mfiles-%{name}-jsf
+%license LICENSE NOTICE
+
+%files osgi -f .mfiles-%{name}-osgi
+%license LICENSE NOTICE
+
+%files resource -f .mfiles-%{name}-resource
+%license LICENSE NOTICE
+
+%files spi -f .mfiles-%{name}-spi
+%license LICENSE NOTICE
+
+%files test -f .mfiles-test
+%license LICENSE NOTICE
+
+%files tomcat7 -f .mfiles-%{name}-tomcat7
+%license LICENSE NOTICE
+
+%files web -f .mfiles-%{name}-web
+%license LICENSE NOTICE
+
+%files javadoc -f .mfiles-javadoc
+%license LICENSE NOTICE
+
+%changelog
+* Mon Aug 24 2020 zhanghua - 1.2.8-1
+- package init
diff --git a/openwebbeans.yaml b/openwebbeans.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..7113f276eab2bd6c244e46fda951e92552c00aa8
--- /dev/null
+++ b/openwebbeans.yaml
@@ -0,0 +1,4 @@
+version_control: github
+src_repo: apache/openwebbeans
+tag_pattern: "^openwebbeans-"
+seperator: "."