Author: struberg
Date: Mon Mar 21 12:10:26 2011
New Revision: 1083750
URL: http://svn.apache.org/viewvc?rev=1083750&view=rev
Log:
OWB-393 finally dropped the rest of the old XML stuff.
moved additionalInterceptorBindingTypes over to BeanManagerImpl.
Finally we should introduce an own holder for all those
'additional' stuff which gets registered via Extensions at startup.
Removed:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/xml/XMLAnnotationTypeManager.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/xml/XMLUtil.java
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansContext.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/webbeans/WebBeansInterceptor.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/BeforeBeanDiscoveryImpl.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/xml/WebBeansXMLConfigurator.java
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansContext.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansContext.java?rev=1083750&r1=1083749&r2=1083750&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansContext.java
(original)
+++
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansContext.java
Mon Mar 21 12:10:26 2011
@@ -54,7 +54,6 @@ import org.apache.webbeans.spi.SecurityS
import org.apache.webbeans.spi.plugins.OpenWebBeansPlugin;
import org.apache.webbeans.util.ClassUtil;
import org.apache.webbeans.util.WebBeansUtil;
-import org.apache.webbeans.xml.XMLAnnotationTypeManager;
/**
* @version $Rev$ $Date$
@@ -83,7 +82,6 @@ public class WebBeansContext
private PluginLoader pluginLoader = new PluginLoader();
private SerializableBeanVault serializableBeanVault = new
SerializableBeanVault();
private StereoTypeManager stereoTypeManager = new StereoTypeManager();
- private XMLAnnotationTypeManager xmlAnnotationTypeManager = new
XMLAnnotationTypeManager(this);
private AnnotationManager annotationManager = new AnnotationManager(this);
private ResolutionUtil resolutionUtil = new ResolutionUtil(this);
private InjectionPointFactory injectionPointFactory = new
InjectionPointFactory(this);
@@ -294,11 +292,6 @@ public class WebBeansContext
return javassistProxyFactory;
}
- public XMLAnnotationTypeManager getXMLAnnotationTypeManager()
- {
- return xmlAnnotationTypeManager;
- }
-
//candidates for fields
public ScannerService getScannerService()
{
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java?rev=1083750&r1=1083749&r2=1083750&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
(original)
+++
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
Mon Mar 21 12:10:26 2011
@@ -110,7 +110,7 @@ import static org.apache.webbeans.util.I
@SuppressWarnings("unchecked")
public class BeanManagerImpl implements BeanManager, Referenceable
{
- private static final long serialVersionUID = 1L;
+ private static final long serialVersionUID = 2L;
/**
* Holds the non-standard contexts with key = scope type
@@ -159,6 +159,9 @@ public class BeanManagerImpl implements
/**Additional interceptor class*/
private List<Class<?>> additionalInterceptorClasses = new
ArrayList<Class<?>>();
+ /**Additional interceptor binding types we got via Extensions */
+ private Map<Class<? extends Annotation>, Set<Annotation>>
additionalInterceptorBindingTypes = new HashMap<Class<? extends Annotation>,
Set<Annotation>>();
+
/**
* This list contains additional qualifiers which got set via the {@link
javax.enterprise.inject.spi.BeforeBeanDiscovery#addQualifier(Class)}
* event function.
@@ -170,11 +173,12 @@ public class BeanManagerImpl implements
* {@link javax.enterprise.inject.spi.BeforeBeanDiscovery#addScope(Class,
boolean, boolean)} event function.
*/
private List<ExternalScope> additionalScopes = new
ArrayList<ExternalScope>();
-
- private ErrorStack errorStack = new ErrorStack();
-
+
private List<AnnotatedType<?>> additionalAnnotatedTypes = new
ArrayList<AnnotatedType<?>>();
+
+ private ErrorStack errorStack = new ErrorStack();
+
/**
* This map stores all beans along with their unique {@link
javax.enterprise.inject.spi.PassivationCapable} id.
* This is used as a reference for serialization.
@@ -430,6 +434,32 @@ public class BeanManagerImpl implements
return this.additionalDecoratorClasses.contains(clazz);
}
+ public void addInterceptorBindingType(Class<? extends Annotation>
bindingType, Annotation... inheritsArray)
+ {
+ Set<Annotation> inherits =
additionalInterceptorBindingTypes.get(bindingType);
+ if (inherits == null)
+ {
+ inherits = new HashSet<Annotation>();
+ additionalInterceptorBindingTypes.put(bindingType, inherits);
+ }
+ for(Annotation ann : inheritsArray)
+ {
+ inherits.add(ann);
+ }
+
+ }
+
+ public boolean hasInterceptorBindingType(Class<? extends Annotation>
bindingType)
+ {
+ return
additionalInterceptorBindingTypes.keySet().contains(bindingType);
+ }
+
+
+ public Set<Annotation> getInterceptorBindingTypeMetaAnnotations(Class<?
extends Annotation> interceptorBindingType)
+ {
+ return
Collections.unmodifiableSet(additionalInterceptorBindingTypes.get(interceptorBindingType));
+ }
+
/**
* {@inheritDoc}
*/
@@ -1196,6 +1226,7 @@ public class BeanManagerImpl implements
this.additionalAnnotatedTypes.clear();
this.additionalDecoratorClasses.clear();
this.additionalInterceptorClasses.clear();
+ this.additionalInterceptorBindingTypes.clear();
this.additionalQualifiers.clear();
this.additionalScopes.clear();
this.cacheProxies.clear();
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/webbeans/WebBeansInterceptor.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/webbeans/WebBeansInterceptor.java?rev=1083750&r1=1083749&r2=1083750&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/webbeans/WebBeansInterceptor.java
(original)
+++
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/webbeans/WebBeansInterceptor.java
Mon Mar 21 12:10:26 2011
@@ -193,9 +193,9 @@ public class WebBeansInterceptor<T> exte
Set<Annotation> declared = null;
Annotation[] anns = null;
- if
(webBeansContext.getXMLAnnotationTypeManager().hasInterceptorBindingType(clazzAnnot))
+ if
(webBeansContext.getBeanManagerImpl().hasInterceptorBindingType(clazzAnnot))
{
- declared =
webBeansContext.getXMLAnnotationTypeManager().getInterceptorBindingTypeInherites(clazzAnnot);
+ declared =
webBeansContext.getBeanManagerImpl().getInterceptorBindingTypeMetaAnnotations(clazzAnnot);
anns = new Annotation[declared.size()];
anns = declared.toArray(anns);
}
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/BeforeBeanDiscoveryImpl.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/BeforeBeanDiscoveryImpl.java?rev=1083750&r1=1083749&r2=1083750&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/BeforeBeanDiscoveryImpl.java
(original)
+++
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/BeforeBeanDiscoveryImpl.java
Mon Mar 21 12:10:26 2011
@@ -71,7 +71,7 @@ public class BeforeBeanDiscoveryImpl imp
@Override
public void addInterceptorBinding(Class<? extends Annotation> binding,
Annotation... bindingDef)
{
-
webBeansContext.getXMLAnnotationTypeManager().addInterceotorBindingTypeInheritAnnotation(binding,
bindingDef);
+
webBeansContext.getBeanManagerImpl().addInterceptorBindingType(binding,
bindingDef);
}
/**
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/xml/WebBeansXMLConfigurator.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/xml/WebBeansXMLConfigurator.java?rev=1083750&r1=1083749&r2=1083750&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/xml/WebBeansXMLConfigurator.java
(original)
+++
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/xml/WebBeansXMLConfigurator.java
Mon Mar 21 12:10:26 2011
@@ -22,11 +22,14 @@ import java.io.IOException;
import java.io.InputStream;
import javax.interceptor.Interceptor;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
import org.apache.webbeans.config.OWBLogConst;
import org.apache.webbeans.config.WebBeansContext;
import org.apache.webbeans.decorator.DecoratorsManager;
import org.apache.webbeans.exception.WebBeansConfigurationException;
+import org.apache.webbeans.exception.WebBeansException;
import org.apache.webbeans.inject.AlternativesManager;
import org.apache.webbeans.intercept.InterceptorsManager;
import org.apache.webbeans.logger.WebBeansLogger;
@@ -145,7 +148,7 @@ public final class WebBeansXMLConfigurat
CURRENT_SCAN_FILE_NAME = fileName;
//Get root element of the XML document
- Element webBeansRoot =
XMLUtil.getSpecStrictRootElement(xmlStream);
+ Element webBeansRoot = getSpecStrictRootElement(xmlStream);
//Start configuration
configureSpecSpecific(webBeansRoot,fileName,scanner);
@@ -158,6 +161,44 @@ public final class WebBeansXMLConfigurat
}
/**
+ * Gets the root element of the parsed document.
+ *
+ * @param stream parsed document
+ * @return root element of the document
+ * @throws WebBeansException if any runtime exception occurs
+ */
+ private Element getSpecStrictRootElement(InputStream stream) throws
WebBeansException
+ {
+ try
+ {
+ DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
+ factory.setCoalescing(false);
+ factory.setExpandEntityReferences(true);
+ factory.setIgnoringComments(true);
+ factory.setIgnoringElementContentWhitespace(true);
+ factory.setNamespaceAware(true);
+ factory.setValidating(false);
+ DocumentBuilder documentBuilder = factory.newDocumentBuilder();
+ documentBuilder.setErrorHandler(new WebBeansErrorHandler());
+ documentBuilder.setEntityResolver(new WebBeansResolver());
+
+ Element root = documentBuilder.parse(stream).getDocumentElement();
+ return root;
+ }
+ catch (Exception e)
+ {
+ logger.fatal(e, OWBLogConst.FATAL_0002);
+ throw new
WebBeansException(logger.getTokenString(OWBLogConst.EXCEPT_0013), e);
+ }
+ }
+
+ private String getName(Element element)
+ {
+ Asserts.assertNotNull(element, "element argument can not be null");
+ return element.getLocalName();
+ }
+
+ /**
* Configures the xml file root element.
*
* @param webBeansRoot root element of the configuration xml file
@@ -177,16 +218,16 @@ public final class WebBeansXMLConfigurat
child = (Element) node;
/* <Interceptors> element decleration */
- if
(XMLUtil.getName(child).equals(WebBeansConstants.WEB_BEANS_XML_SPEC_SPECIFIC_INTERCEPTORS_ELEMENT))
+ if
(getName(child).equals(WebBeansConstants.WEB_BEANS_XML_SPEC_SPECIFIC_INTERCEPTORS_ELEMENT))
{
configureInterceptorsElement(child,fileName,scanner);
}
/* <Decorators> element decleration */
- else if
(XMLUtil.getName(child).equals(WebBeansConstants.WEB_BEANS_XML_SPEC_SPECIFIC_DECORATORS_ELEMENT))
+ else if
(getName(child).equals(WebBeansConstants.WEB_BEANS_XML_SPEC_SPECIFIC_DECORATORS_ELEMENT))
{
configureDecoratorsElement(child,fileName,scanner);
}
- else if
(XMLUtil.getName(child).equals(WebBeansConstants.WEB_BEANS_XML_SPEC_SPECIFIC_ALTERNATIVES))
+ else if
(getName(child).equals(WebBeansConstants.WEB_BEANS_XML_SPEC_SPECIFIC_ALTERNATIVES))
{
configureAlternativesElement(child,fileName,scanner);
}
@@ -311,13 +352,13 @@ public final class WebBeansXMLConfigurat
}
child = (Element) node;
- if
(XMLUtil.getName(child).equals(WebBeansConstants.WEB_BEANS_XML_SPEC_SPECIFIC_STEREOTYPE)
||
-
XMLUtil.getName(child).equals(WebBeansConstants.WEB_BEANS_XML_OWB_SPECIFIC_STEREOTYPE))
+ if
(getName(child).equals(WebBeansConstants.WEB_BEANS_XML_SPEC_SPECIFIC_STEREOTYPE)
||
+
getName(child).equals(WebBeansConstants.WEB_BEANS_XML_OWB_SPECIFIC_STEREOTYPE))
{
addAlternative(child, true,fileName,scanner);
}
- else if
(XMLUtil.getName(child).equals(WebBeansConstants.WEB_BEANS_XML_SPEC_SPECIFIC_CLASS)
- ||
XMLUtil.getName(child).equals(WebBeansConstants.WEB_BEANS_XML_OWB_SPECIFIC_CLASS))
+ else if
(getName(child).equals(WebBeansConstants.WEB_BEANS_XML_SPEC_SPECIFIC_CLASS)
+ ||
getName(child).equals(WebBeansConstants.WEB_BEANS_XML_OWB_SPECIFIC_CLASS))
{
addAlternative(child, false,fileName,scanner);
}
@@ -325,7 +366,7 @@ public final class WebBeansXMLConfigurat
{
if (logger.wblWillLogWarn())
{
- logger.warn(OWBLogConst.WARN_0002, XMLUtil.getName(child));
+ logger.warn(OWBLogConst.WARN_0002, getName(child));
}
}
}
@@ -339,7 +380,7 @@ public final class WebBeansXMLConfigurat
if (clazz == null)
{
- throw new
WebBeansConfigurationException(createConfigurationFailedMessage() +
"Alternative class : " + XMLUtil.getName(child) + " not found");
+ throw new
WebBeansConfigurationException(createConfigurationFailedMessage() +
"Alternative class : " + getName(child) + " not found");
}
else
{