Author: rmannibucau
Date: Tue Jul 1 18:23:13 2014
New Revision: 1607158
URL: http://svn.apache.org/r1607158
Log:
correct scoping of dependent beans for el methods
Added:
openwebbeans/trunk/webbeans-el22/src/main/java/org/apache/webbeans/el22/WrappedMethodExpression.java
Modified:
openwebbeans/trunk/webbeans-el22/src/main/java/org/apache/webbeans/el22/WrappedExpressionFactory.java
openwebbeans/trunk/webbeans-tck/testng-dev.xml
Modified:
openwebbeans/trunk/webbeans-el22/src/main/java/org/apache/webbeans/el22/WrappedExpressionFactory.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-el22/src/main/java/org/apache/webbeans/el22/WrappedExpressionFactory.java?rev=1607158&r1=1607157&r2=1607158&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-el22/src/main/java/org/apache/webbeans/el22/WrappedExpressionFactory.java
(original)
+++
openwebbeans/trunk/webbeans-el22/src/main/java/org/apache/webbeans/el22/WrappedExpressionFactory.java
Tue Jul 1 18:23:13 2014
@@ -42,7 +42,7 @@ public class WrappedExpressionFactory ex
@Override
public MethodExpression createMethodExpression(ELContext arg0, String
arg1, Class<?> arg2, Class<?>[] arg3) throws ELException, NullPointerException
{
- return expressionFactory.createMethodExpression(arg0, arg1, arg2,
arg3);
+ return new
WrappedMethodExpression(expressionFactory.createMethodExpression(arg0, arg1,
arg2, arg3));
}
@Override
Added:
openwebbeans/trunk/webbeans-el22/src/main/java/org/apache/webbeans/el22/WrappedMethodExpression.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-el22/src/main/java/org/apache/webbeans/el22/WrappedMethodExpression.java?rev=1607158&view=auto
==============================================================================
---
openwebbeans/trunk/webbeans-el22/src/main/java/org/apache/webbeans/el22/WrappedMethodExpression.java
(added)
+++
openwebbeans/trunk/webbeans-el22/src/main/java/org/apache/webbeans/el22/WrappedMethodExpression.java
Tue Jul 1 18:23:13 2014
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+package org.apache.webbeans.el22;
+
+import org.apache.webbeans.el.ELContextStore;
+
+import javax.el.ELContext;
+import javax.el.ELException;
+import javax.el.MethodExpression;
+import javax.el.MethodInfo;
+import javax.el.MethodNotFoundException;
+import javax.el.PropertyNotFoundException;
+
+public class WrappedMethodExpression extends MethodExpression
+{
+ private final MethodExpression delegate;
+
+ public WrappedMethodExpression(final MethodExpression methodExpression)
+ {
+ this.delegate = methodExpression;
+ }
+
+ @Override
+ public MethodInfo getMethodInfo(final ELContext context)
+ throws NullPointerException, PropertyNotFoundException,
MethodNotFoundException, ELException
+ {
+ return delegate.getMethodInfo(context);
+ }
+
+ @Override
+ public Object invoke(final ELContext context, final Object[] params)
+ throws NullPointerException, PropertyNotFoundException,
MethodNotFoundException, ELException
+ {
+ try
+ {
+ return delegate.invoke(context, params);
+ }
+ finally
+ {
+ final ELContextStore store = ELContextStore.getInstance(false);
+ if (store != null)
+ {
+ store.destroyDependents();
+ }
+ }
+ }
+
+ @Override
+ public boolean equals(final Object obj)
+ {
+ return obj == this || delegate.equals(obj);
+ }
+
+ @Override
+ public int hashCode()
+ {
+ return delegate.hashCode();
+ }
+
+ @Override
+ public String getExpressionString()
+ {
+ return delegate.getExpressionString();
+ }
+
+ @Override
+ public boolean isLiteralText()
+ {
+ return delegate.isLiteralText();
+ }
+}
Modified: openwebbeans/trunk/webbeans-tck/testng-dev.xml
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-tck/testng-dev.xml?rev=1607158&r1=1607157&r2=1607158&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-tck/testng-dev.xml (original)
+++ openwebbeans/trunk/webbeans-tck/testng-dev.xml Tue Jul 1 18:23:13 2014
@@ -18,9 +18,8 @@
<suite name="JSR-346-TCK" verbose="2" configfailurepolicy="continue">
<test name="JSR-346 TCK">
<classes>
- <class name="org.jboss.cdi.tck.tests.event.select.SelectEventTest" />
<class
-
name="org.jboss.cdi.tck.tests.event.parameterized.ParameterizedEventTest" />
+
name="org.jboss.cdi.tck.tests.extensions.beanManager.el.WrapExpressionFactoryTest"
/>
</classes>
<groups>
<run>