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
         {


Reply via email to