[jboss-cvs] JBossAS SVN: r58195 - in trunk/server/src/main/org/jboss: deployment ejb metadata

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Nov 7 18:37:40 EST 2006


Author: alex.loubyansky at jboss.com
Date: 2006-11-07 18:37:37 -0500 (Tue, 07 Nov 2006)
New Revision: 58195

Modified:
   trunk/server/src/main/org/jboss/deployment/JBossEjbObjectFactory.java
   trunk/server/src/main/org/jboss/ejb/EjbModule.java
   trunk/server/src/main/org/jboss/metadata/InvokerProxyBindingMetaData.java
Log:
support for proxy-factory-config, container-interceptors, container-cache-conf, container-pool-conf

Modified: trunk/server/src/main/org/jboss/deployment/JBossEjbObjectFactory.java
===================================================================
--- trunk/server/src/main/org/jboss/deployment/JBossEjbObjectFactory.java	2006-11-07 23:18:05 UTC (rev 58194)
+++ trunk/server/src/main/org/jboss/deployment/JBossEjbObjectFactory.java	2006-11-07 23:37:37 UTC (rev 58195)
@@ -21,8 +21,10 @@
  */
 package org.jboss.deployment;
 
-import java.util.ArrayList;
 
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.ParserConfigurationException;
 import org.jboss.logging.Logger;
 import org.jboss.metadata.ApplicationMetaData;
 import org.jboss.metadata.BeanMetaData;
@@ -35,15 +37,21 @@
 import org.jboss.xb.binding.UnmarshallingContext;
 import org.jboss.mx.util.ObjectNameFactory;
 import org.xml.sax.Attributes;
+import org.w3c.dom.Element;
+import org.w3c.dom.Text;
+import org.w3c.dom.Document;
 
 /**
  * ObjectFactory for translating jboss.xml into ApplicationMetaData instance
  * 
  * @author Scott.Stark at jboss.org
+ * @author Alexey.Loubyansky at jboss.org
  * @version $Revision:$
  */
 public class JBossEjbObjectFactory extends DDObjectFactory
 {
+   private static DocumentBuilder DOC_BUILDER;
+
    private static Logger log = Logger.getLogger(JBossEjbObjectFactory.class);
    private ApplicationMetaData appMetaData;
 
@@ -100,8 +108,12 @@
       }
       else if(localName.equals("invoker-proxy-bindings"))
       {
-         child = new ArrayList<InvokerProxyBindingMetaData>();
+         child = dd;
       }
+      else if(localName.equals("invoker-proxy-binding"))
+      {
+         child = new InvokerProxyBindingMetaData();
+      }
       else if(localName.equals("container-configurations"))
       {
          child = dd;
@@ -146,6 +158,7 @@
          child = new BeanHolder();
       return child;
    }
+
    public Object newChild(BeanHolder bean, UnmarshallingContext navigator,
          String namespaceURI, String localName, Attributes attrs)
    {
@@ -159,34 +172,17 @@
       return child;
    }
 
-   public Object newChild(ArrayList<InvokerProxyBindingMetaData> bindings, UnmarshallingContext navigator,
+   public Object newChild(InvokerProxyBindingMetaData md, UnmarshallingContext navigator,
          String namespaceURI, String localName, Attributes attrs)
    {
       Object child = null;
-      if (localName.equals("invoker-proxy-binding"))
-         child = new InvokerProxyBindingMetaData();
-      // TODO
-      else if (localName.equals("message-destination"))
+      if (localName.equals("proxy-factory-config"))
       {
-         child = new MessageDestinationMetaData();
+         child = new DomElement(newDomElement(localName, attrs));
       }
-      else if(localName.equals("invoker-proxy-bindings"))
-      {
-         child = new ArrayList<InvokerProxyBindingMetaData>();
-      }
-      
       return child;
    }
 
-   public Object newChild(InvokerProxyBindingMetaData md, UnmarshallingContext navigator,
-         String namespaceURI, String localName, Attributes attrs)
-   {
-      Object child = null;
-      if (localName.equals("proxy-factory-config"))
-         child = null; // TODO
-      return child;
-   }
-
    public Object newChild(ConfigurationMetaData md, UnmarshallingContext navigator,
          String namespaceURI, String localName, Attributes attrs)
    {
@@ -195,16 +191,27 @@
       {
          child = new ClusterConfigMetaData();
       }
+      else if(localName.equals("container-interceptors") ||
+         localName.equals("container-cache-conf") ||
+         localName.equals("container-pool-conf"))
+      {
+         child = new DomElement(newDomElement(localName, attrs));
+      }
       return child;
    }
 
-   public void addChild(ApplicationMetaData parent, ArrayList<InvokerProxyBindingMetaData> bindings,
+   public Object newChild(DomElement dom, UnmarshallingContext navigator,
+         String namespaceURI, String localName, Attributes attrs)
+   {
+      Element child = dom.element.getOwnerDocument().createElement(localName);
+      addAttributes(child, attrs);
+      return new DomElement(child);
+   }
+
+   public void addChild(ApplicationMetaData parent, InvokerProxyBindingMetaData binding,
          UnmarshallingContext navigator, String namespaceURI, String localName)
    {
-      for(InvokerProxyBindingMetaData md : bindings)
-      {
-         parent.addInvokerProxyBinding(md);
-      }
+      parent.addInvokerProxyBinding(binding);
    }
 
    public void addChild(ApplicationMetaData parent, ConfigurationMetaData container,
@@ -219,6 +226,38 @@
       parent.setClusterConfig(child);
    }
 
+   public void addChild(ConfigurationMetaData parent, DomElement child,
+         UnmarshallingContext navigator, String namespaceURI, String localName)
+   {
+      if(localName.equals("container-interceptors"))
+      {
+         parent.setContainerInterceptorsConf(child.element);
+      }
+      else if(localName.equals("container-cache-conf"))
+      {
+         parent.setContainerCacheConf(child.element);
+      }
+      else if(localName.equals("container-pool-conf"))
+      {
+         parent.setContainerPoolConf(child.element);
+      }
+   }
+
+   public void addChild(InvokerProxyBindingMetaData parent, DomElement domElement,
+         UnmarshallingContext navigator, String namespaceURI, String localName)
+   {
+      if(localName.equals("proxy-factory-config"))
+      {
+         parent.setProxyFactoryConfig(domElement.element);
+      }
+   }
+
+   public void addChild(DomElement parent, DomElement child,
+         UnmarshallingContext navigator, String namespaceURI, String localName)
+   {
+      parent.element.appendChild(child.element);
+   }
+
    public void setValue(ApplicationMetaData amd,
          UnmarshallingContext navigator, String namespaceURI, String localName,
          String value)
@@ -240,15 +279,19 @@
       {
          amd.setUnauthenticatedPrincipal(value);
       }
-      
+
    }
 
    public void setValue(InvokerProxyBindingMetaData md,
          UnmarshallingContext navigator, String namespaceURI, String localName,
          String value)
    {
-      if (localName.equals("invoker-mbean"))
+      if(localName.equals("name"))
       {
+         md.setName(value);
+      }
+      else if (localName.equals("invoker-mbean"))
+      {
          md.setInvokerMBean(value);
       }
       else if (localName.equals("proxy-factory"))
@@ -374,4 +417,54 @@
          config.setHaSessionStateName(value);
       }
    }
+
+   public void setValue(DomElement dom,
+         UnmarshallingContext navigator, String namespaceURI, String localName,
+         String value)
+   {
+      Document doc = dom.element.getOwnerDocument();
+      Text textNode = doc.createTextNode(value);
+      dom.element.appendChild(textNode);
+   }
+
+   // static
+
+   public static class DomElement
+   {
+      private final Element element;
+
+      public DomElement(Element element)
+      {
+         this.element = element;
+      }
+   }
+
+   private static Element newDomElement(String name, Attributes attrs)
+   {
+      if(DOC_BUILDER == null)
+      {
+         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+         try
+         {
+            DOC_BUILDER = factory.newDocumentBuilder();
+         }
+         catch(ParserConfigurationException e)
+         {
+            throw new IllegalStateException("Failed to create W3C DocumentBuilder", e);
+         }
+      }
+
+      Element element = DOC_BUILDER.newDocument().createElement(name);
+      addAttributes(element, attrs);
+
+      return element;
+   }
+
+   private static void addAttributes(Element e, Attributes attrs)
+   {
+      for(int i = 0; i < attrs.getLength(); ++i)
+      {
+         e.setAttribute(attrs.getQName(i), attrs.getValue(i));
+      }
+   }
 }

Modified: trunk/server/src/main/org/jboss/ejb/EjbModule.java
===================================================================
--- trunk/server/src/main/org/jboss/ejb/EjbModule.java	2006-11-07 23:18:05 UTC (rev 58194)
+++ trunk/server/src/main/org/jboss/ejb/EjbModule.java	2006-11-07 23:37:37 UTC (rev 58195)
@@ -24,8 +24,6 @@
 import java.lang.reflect.Constructor;
 import java.lang.reflect.Method;
 import java.net.URL;
-import java.net.URLClassLoader;
-import java.security.Policy;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -977,7 +975,8 @@
             }
             catch (Exception e)
             {
-               throw new DeploymentException("couldn't contace EJBDeployer!", e);
+               //throw new DeploymentException("couldn't contace EJBDeployer!", e);
+               log.warn("Couldn't get MetricsEnabled from EJBDeployer: " + e.getMessage());
             } // end of try-catch
 
 

Modified: trunk/server/src/main/org/jboss/metadata/InvokerProxyBindingMetaData.java
===================================================================
--- trunk/server/src/main/org/jboss/metadata/InvokerProxyBindingMetaData.java	2006-11-07 23:18:05 UTC (rev 58194)
+++ trunk/server/src/main/org/jboss/metadata/InvokerProxyBindingMetaData.java	2006-11-07 23:37:37 UTC (rev 58195)
@@ -99,6 +99,11 @@
       return proxyFactoryConfig;
    }
 
+   public void setProxyFactoryConfig(Element child)
+   {
+      this.proxyFactoryConfig = child;
+   }
+   
    /** Import the jboss.xml jboss/invoker-proxy-bindings/invoker-proxy-binding
     * child elements
     * @param element jboss/invoker-proxy-bindings/invoker-proxy-binding




More information about the jboss-cvs-commits mailing list