You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by rm...@apache.org on 2015/03/04 23:09:41 UTC
svn commit: r1664165 -
/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/SpecializationUtil.java
Author: rmannibucau
Date: Wed Mar 4 22:09:41 2015
New Revision: 1664165
URL: http://svn.apache.org/r1664165
Log:
is a normal bean specializes an ejb then fail
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/SpecializationUtil.java
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/SpecializationUtil.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/SpecializationUtil.java?rev=1664165&r1=1664164&r2=1664165&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/SpecializationUtil.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/SpecializationUtil.java Wed Mar 4 22:09:41 2015
@@ -40,6 +40,7 @@ import org.apache.webbeans.exception.Web
import org.apache.webbeans.exception.InconsistentSpecializationException;
import org.apache.webbeans.inject.AlternativesManager;
import org.apache.webbeans.logger.WebBeansLoggerFacade;
+import org.apache.webbeans.spi.plugins.OpenWebBeansEjbPlugin;
/**
* This class contains a few helpers for handling
@@ -50,12 +51,14 @@ public class SpecializationUtil
private final AlternativesManager alternativesManager;
private final WebBeansUtil webBeansUtil;
private final WebBeansContext webBeansContext;
+ private final OpenWebBeansEjbPlugin ejbPlugin;
public SpecializationUtil(WebBeansContext webBeansContext)
{
this.webBeansContext = webBeansContext;
this.alternativesManager = webBeansContext.getAlternativesManager();
this.webBeansUtil = webBeansContext.getWebBeansUtil();
+ this.ejbPlugin = webBeansContext.getPluginLoader().getEjbPlugin();
}
/**
@@ -84,6 +87,11 @@ public class SpecializationUtil
{
Class<?> specialClass = annotatedType.getJavaClass();
Class<?> superClass = specialClass.getSuperclass();
+ if (ejbPlugin != null && ejbPlugin.isSessionBean(superClass) && !ejbPlugin.isSessionBean(specialClass))
+ {
+ throw new WebBeansConfigurationException(specialClass + " specializes and EJB " + superClass + ". That's forbidden.");
+ }
+
if (attributeProvider != null)
{
BeanAttributes<?> ba = attributeProvider.get(annotatedType);