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

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Nov 9 17:53:53 EST 2006


Author: alex.loubyansky at jboss.com
Date: 2006-11-09 17:53:49 -0500 (Thu, 09 Nov 2006)
New Revision: 58244

Modified:
   trunk/server/src/main/org/jboss/deployment/EjbJarObjectFactory.java
   trunk/server/src/main/org/jboss/deployment/JBossEjbObjectFactory.java
   trunk/server/src/main/org/jboss/metadata/ApplicationMetaData.java
   trunk/server/src/main/org/jboss/metadata/BeanMetaData.java
Log:
ref metadata and other

Modified: trunk/server/src/main/org/jboss/deployment/EjbJarObjectFactory.java
===================================================================
--- trunk/server/src/main/org/jboss/deployment/EjbJarObjectFactory.java	2006-11-09 22:52:37 UTC (rev 58243)
+++ trunk/server/src/main/org/jboss/deployment/EjbJarObjectFactory.java	2006-11-09 22:53:49 UTC (rev 58244)
@@ -37,8 +37,15 @@
 import org.jboss.metadata.SessionMetaData;
 import org.jboss.metadata.BeanMetaData;
 import org.jboss.metadata.ActivationConfigPropertyMetaData;
+import org.jboss.metadata.EjbLocalRefMetaData;
+import org.jboss.metadata.EjbRefMetaData;
+import org.jboss.metadata.ResourceRefMetaData;
+import org.jboss.metadata.ResourceEnvRefMetaData;
+import org.jboss.metadata.EnvEntryMetaData;
+import org.jboss.metadata.MessageDestinationRefMetaData;
 import org.jboss.xb.binding.ObjectModelFactory;
 import org.jboss.xb.binding.UnmarshallingContext;
+import org.jboss.webservice.metadata.serviceref.ServiceRefMetaData;
 import org.xml.sax.Attributes;
 
 
@@ -315,6 +322,12 @@
       parent.addRelationship(relation);
    }
 
+   public void addChild(EntityMetaData parent, SecurityIdentityMetaData child,
+         UnmarshallingContext navigator, String namespaceURI, String localName)
+   {
+      parent.setSecurityIdentity(child);
+   }
+
    public void addChild(EntityMetaData parent, CMPFieldMetaData field,
          UnmarshallingContext navigator, String namespaceURI, String localName)
    {
@@ -327,6 +340,96 @@
       parent.addQuery(query);
    }
 
+   public void addChild(EntityMetaData parent, EjbLocalRefMetaData child,
+         UnmarshallingContext navigator, String namespaceURI, String localName)
+   {
+      parent.addEjbLocalReference(child);
+   }
+
+   public void addChild(EntityMetaData parent, EjbRefMetaData child,
+         UnmarshallingContext navigator, String namespaceURI, String localName)
+   {
+      parent.addEjbReference(child);
+   }
+
+   public void addChild(EntityMetaData parent, ResourceRefMetaData child,
+         UnmarshallingContext navigator, String namespaceURI, String localName)
+   {
+      parent.addResourceReference(child);
+   }
+
+   public void addChild(EntityMetaData parent, ResourceEnvRefMetaData child,
+         UnmarshallingContext navigator, String namespaceURI, String localName)
+   {
+      parent.addResourceEnvReference(child);
+   }
+
+   public void addChild(EntityMetaData parent, EnvEntryMetaData child,
+         UnmarshallingContext navigator, String namespaceURI, String localName)
+   {
+      parent.addEnvironmentEntry(child);
+   }
+
+   public void addChild(EntityMetaData parent, MessageDestinationRefMetaData child,
+         UnmarshallingContext navigator, String namespaceURI, String localName)
+   {
+      parent.addMessageDestinationReference(child);
+   }
+
+   public void addChild(EntityMetaData parent, ServiceRefMetaData child,
+         UnmarshallingContext navigator, String namespaceURI, String localName)
+   {
+      parent.addServiceReference(child);
+   }
+
+   public void addChild(SessionMetaData parent, SecurityIdentityMetaData child,
+         UnmarshallingContext navigator, String namespaceURI, String localName)
+   {
+      parent.setSecurityIdentity(child);
+   }
+
+   public void addChild(SessionMetaData parent, EjbLocalRefMetaData child,
+         UnmarshallingContext navigator, String namespaceURI, String localName)
+   {
+      parent.addEjbLocalReference(child);
+   }
+
+   public void addChild(SessionMetaData parent, EjbRefMetaData child,
+         UnmarshallingContext navigator, String namespaceURI, String localName)
+   {
+      parent.addEjbReference(child);
+   }
+
+   public void addChild(SessionMetaData parent, ResourceRefMetaData child,
+         UnmarshallingContext navigator, String namespaceURI, String localName)
+   {
+      parent.addResourceReference(child);
+   }
+
+   public void addChild(SessionMetaData parent, ResourceEnvRefMetaData child,
+         UnmarshallingContext navigator, String namespaceURI, String localName)
+   {
+      parent.addResourceEnvReference(child);
+   }
+
+   public void addChild(SessionMetaData parent, EnvEntryMetaData child,
+         UnmarshallingContext navigator, String namespaceURI, String localName)
+   {
+      parent.addEnvironmentEntry(child);
+   }
+
+   public void addChild(SessionMetaData parent, MessageDestinationRefMetaData child,
+         UnmarshallingContext navigator, String namespaceURI, String localName)
+   {
+      parent.addMessageDestinationReference(child);
+   }
+
+   public void addChild(SessionMetaData parent, ServiceRefMetaData child,
+         UnmarshallingContext navigator, String namespaceURI, String localName)
+   {
+      parent.addServiceReference(child);
+   }
+
    public void addChild(RelationMetaData relation, RelationshipRoleMetaData role,
                         UnmarshallingContext ctx, String namespaceURI, String localName)
    {
@@ -375,12 +478,60 @@
       }
    }
 
+   public void addChild(MessageDrivenMetaData parent, SecurityIdentityMetaData child,
+         UnmarshallingContext navigator, String namespaceURI, String localName)
+   {
+      parent.setSecurityIdentity(child);
+   }
+
    public void addChild(MessageDrivenMetaData mdb, ActivationConfigPropertyMetaData child,
                         UnmarshallingContext ctx, String namespaceURI, String localName)
    {
       mdb.getActivationConfigProperties().put(child.getName(), child);
    }
 
+   public void addChild(MessageDrivenMetaData parent, EjbLocalRefMetaData child,
+         UnmarshallingContext navigator, String namespaceURI, String localName)
+   {
+      parent.addEjbLocalReference(child);
+   }
+
+   public void addChild(MessageDrivenMetaData parent, EjbRefMetaData child,
+         UnmarshallingContext navigator, String namespaceURI, String localName)
+   {
+      parent.addEjbReference(child);
+   }
+
+   public void addChild(MessageDrivenMetaData parent, ResourceRefMetaData child,
+         UnmarshallingContext navigator, String namespaceURI, String localName)
+   {
+      parent.addResourceReference(child);
+   }
+
+   public void addChild(MessageDrivenMetaData parent, ResourceEnvRefMetaData child,
+         UnmarshallingContext navigator, String namespaceURI, String localName)
+   {
+      parent.addResourceEnvReference(child);
+   }
+
+   public void addChild(MessageDrivenMetaData parent, EnvEntryMetaData child,
+         UnmarshallingContext navigator, String namespaceURI, String localName)
+   {
+      parent.addEnvironmentEntry(child);
+   }
+
+   public void addChild(MessageDrivenMetaData parent, MessageDestinationRefMetaData child,
+         UnmarshallingContext navigator, String namespaceURI, String localName)
+   {
+      parent.addMessageDestinationReference(child);
+   }
+
+   public void addChild(MessageDrivenMetaData parent, ServiceRefMetaData child,
+         UnmarshallingContext navigator, String namespaceURI, String localName)
+   {
+      parent.addServiceReference(child);
+   }
+
    /**
     * Set text values of ejb-jar/* children
     * @param dd
@@ -737,6 +888,20 @@
       }
    }
 
+   public void setValue(SecurityIdentityMetaData parent,
+         UnmarshallingContext navigator, String namespaceURI, String localName,
+         String value)
+   {
+      if(localName.equals("use-caller-identity"))
+      {
+         parent.setUseCallerIdentity(Boolean.parseBoolean(value));
+      }
+      else if(localName.equals("run-as"))
+      {
+         parent.setRunAsRoleName(value);
+      }
+   }
+
    // inner
 
    public static class CMPFieldMetaData

Modified: trunk/server/src/main/org/jboss/deployment/JBossEjbObjectFactory.java
===================================================================
--- trunk/server/src/main/org/jboss/deployment/JBossEjbObjectFactory.java	2006-11-09 22:52:37 UTC (rev 58243)
+++ trunk/server/src/main/org/jboss/deployment/JBossEjbObjectFactory.java	2006-11-09 22:53:49 UTC (rev 58244)
@@ -44,8 +44,13 @@
 import org.jboss.metadata.AssemblyDescriptorMetaData;
 import org.jboss.metadata.SecurityRoleMetaData;
 import org.jboss.metadata.MessageDestinationMetaData;
+import org.jboss.metadata.EjbLocalRefMetaData;
+import org.jboss.metadata.ResourceRefMetaData;
+import org.jboss.metadata.ResourceEnvRefMetaData;
+import org.jboss.metadata.MessageDestinationRefMetaData;
 import org.jboss.xb.binding.UnmarshallingContext;
 import org.jboss.mx.util.ObjectNameFactory;
+import org.jboss.webservice.metadata.serviceref.ServiceRefMetaData;
 import org.xml.sax.Attributes;
 import org.w3c.dom.Element;
 import org.w3c.dom.Text;
@@ -92,6 +97,11 @@
    public Object completeRoot(Object root, UnmarshallingContext ctx,
          String uri, String name)
    {
+      ApplicationMetaData app = (ApplicationMetaData)root;
+      if(app.getUnauthenticatedPrincipal() == null)
+      {
+         app.setDefaultUnauthenticatedPrincipal();
+      }
       return root;
    }
 
@@ -104,7 +114,7 @@
       Object child = null;
       if(localName.equals("loader-repository"))
       {
-         // todo
+         // todo load-repository (it wasn't parsed in the ApplicationMetaData neither)
       }
       else if(localName.equals("invoker-proxy-bindings"))
       {
@@ -178,7 +188,6 @@
       Object child = null;
       if ((child = newEnvRefGroupChild(localName)) != null)
       {
-         // TODO: how is being associated with the bean metadata
          return child;
       }
       else if(localName.equals("invoker-bindings"))
@@ -453,6 +462,75 @@
       ((MessageDrivenMetaData)parent.metaData).getActivationConfigProperties().put(child.getName(), child);
    }
 
+   public void addChild(BeanHolder parent, EjbLocalRefMetaData child,
+         UnmarshallingContext navigator, String namespaceURI, String localName)
+   {
+      EjbLocalRefMetaData ref = parent.metaData.getEjbLocalRefByName(child.getName());
+      if(ref == null)
+      {
+         throw new IllegalStateException("ejb-local-ref " + child.getName() +
+            " found in jboss.xml in ejb " + parent.metaData.getEjbName() + " could not be found in the ejb-jar.xml");
+      }
+      ref.setJndiName(child.getJndiName());
+   }
+
+   public void addChild(BeanHolder parent, EjbRefMetaData child,
+         UnmarshallingContext navigator, String namespaceURI, String localName)
+   {
+      EjbRefMetaData ref = parent.metaData.getEjbRefByName(child.getName());
+      if(ref == null)
+      {
+         throw new IllegalStateException("ejb-ref " + child.getName() +
+            " found in jboss.xml in ejb " + parent.metaData.getEjbName() + " could not be found in the ejb-jar.xml");
+      }
+      ref.setJndiName(child.getJndiName());
+   }
+
+   public void addChild(BeanHolder parent, ResourceRefMetaData child,
+         UnmarshallingContext navigator, String namespaceURI, String localName)
+   {
+      ResourceRefMetaData ref = parent.metaData.getResourceReference(child.getRefName());
+      if(ref == null)
+      {
+         throw new IllegalStateException("resource-ref " + child.getRefName() +
+            " found in jboss.xml in ejb " + parent.metaData.getEjbName() + " could not be found in the ejb-jar.xml");
+      }
+
+      ref.setName(child.getName());
+      ref.setJndiName(child.getJndiName());
+      ref.setResURL(child.getResURL());
+   }
+
+   public void addChild(BeanHolder parent, ResourceEnvRefMetaData child,
+         UnmarshallingContext navigator, String namespaceURI, String localName)
+   {
+      ResourceEnvRefMetaData ref = parent.metaData.getResourceEnvReference(child.getRefName());
+      if(ref == null)
+      {
+         throw new IllegalStateException("resource-env-ref " + child.getRefName() +
+            " found in jboss.xml in ejb " + parent.metaData.getEjbName() + " could not be found in the ejb-jar.xml");
+      }
+      ref.setJndiName(child.getJndiName());
+   }
+
+   public void addChild(BeanHolder parent, MessageDestinationRefMetaData child,
+         UnmarshallingContext navigator, String namespaceURI, String localName)
+   {
+      MessageDestinationRefMetaData ref = parent.metaData.getMessageDestinationReference(child.getRefName());
+      if(ref == null)
+      {
+         throw new IllegalStateException("message-destination-ref " + child.getRefName() +
+            " found in jboss.xml in ejb " + parent.metaData.getEjbName() + " could not be found in the ejb-jar.xml");
+      }
+      ref.setJndiName(child.getJndiName());
+   }
+
+   public void addChild(BeanHolder parent, ServiceRefMetaData child,
+         UnmarshallingContext navigator, String namespaceURI, String localName)
+   {
+      // TODO merge/add service-ref
+   }
+
    public void addChild(InvokerMetaData parent, InvokerMetaData.EjbRef child,
          UnmarshallingContext navigator, String namespaceURI, String localName)
    {
@@ -692,7 +770,18 @@
       else if(localName.equals("invoker-proxy-binding-name"))
       {
          // TODO: according to the DTD there could only be one
-         container.setInvokerNames(new String[]{value});
+         String[] invokers = container.getInvokers();
+         if(invokers == null)
+         {
+            container.setInvokerNames(new String[]{value});
+         }
+         else
+         {
+            String[] newInvokers = new String[invokers.length + 1];
+            System.arraycopy(invokers, 0, newInvokers, 0, invokers.length);
+            newInvokers[invokers.length] = value;
+            container.setInvokerNames(newInvokers);
+         }
       }
       else if(localName.equals("sync-on-commit-only"))
       {

Modified: trunk/server/src/main/org/jboss/metadata/ApplicationMetaData.java
===================================================================
--- trunk/server/src/main/org/jboss/metadata/ApplicationMetaData.java	2006-11-09 22:52:37 UTC (rev 58243)
+++ trunk/server/src/main/org/jboss/metadata/ApplicationMetaData.java	2006-11-09 22:53:49 UTC (rev 58244)
@@ -835,16 +835,7 @@
       }
       else
       {
-         try
-         {
-            MBeanServer server = MBeanServerLocator.locateJBoss();
-            ObjectName oname = new ObjectName("jboss.security:service=JaasSecurityManager");
-            unauthenticatedPrincipal = (String)server.getAttribute(oname, "DefaultUnauthenticatedPrincipal");
-         }
-         catch (Exception e)
-         {
-            log.error("Cannot obtain unauthenticated principal");
-         }
+         setDefaultUnauthenticatedPrincipal();
       }
 
       // find the invoker configurations
@@ -1118,6 +1109,20 @@
       }
    }
 
+   public void setDefaultUnauthenticatedPrincipal()
+   {
+      try
+      {
+         MBeanServer server = MBeanServerLocator.locateJBoss();
+         ObjectName oname = new ObjectName("jboss.security:service=JaasSecurityManager");
+         unauthenticatedPrincipal = (String)server.getAttribute(oname, "DefaultUnauthenticatedPrincipal");
+      }
+      catch (Exception e)
+      {
+         log.error("Cannot obtain unauthenticated principal");
+      }
+   }
+
    public void addContainerConfiguration(ConfigurationMetaData container)
    {
       String name = container.getName();

Modified: trunk/server/src/main/org/jboss/metadata/BeanMetaData.java
===================================================================
--- trunk/server/src/main/org/jboss/metadata/BeanMetaData.java	2006-11-09 22:52:37 UTC (rev 58243)
+++ trunk/server/src/main/org/jboss/metadata/BeanMetaData.java	2006-11-09 22:53:49 UTC (rev 58244)
@@ -283,11 +283,21 @@
       return ejbReferences.values().iterator();
    }
 
+   public void addEjbReference(EjbRefMetaData ref)
+   {
+      ejbReferences.put(ref.getName(), ref);
+   }
+
    public Iterator getEjbLocalReferences()
    {
       return ejbLocalReferences.values().iterator();
    }
 
+   public void addEjbLocalReference(EjbLocalRefMetaData ref)
+   {
+      ejbLocalReferences.put(ref.getName(), ref);
+   }
+
    protected abstract void defaultInvokerBindings();
 
    public Iterator getInvokerBindings()
@@ -348,6 +358,11 @@
       return environmentEntries.iterator();
    }
 
+   public void addEnvironmentEntry(EnvEntryMetaData envEntry)
+   {
+      environmentEntries.add(envEntry);
+   }
+
    public Iterator getSecurityRoleReferences()
    {
       return securityRoleReferences.iterator();
@@ -358,16 +373,46 @@
       return resourceReferences.values().iterator();
    }
 
+   public void addResourceReference(ResourceRefMetaData resRef)
+   {
+      resourceReferences.put(resRef.getRefName(), resRef);
+   }
+
+   public ResourceRefMetaData getResourceReference(String refName)
+   {
+      return (ResourceRefMetaData)resourceReferences.get(refName);
+   }
+
    public Iterator getResourceEnvReferences()
    {
       return resourceEnvReferences.values().iterator();
    }
 
+   public void addResourceEnvReference(ResourceEnvRefMetaData resEnvRef)
+   {
+      resourceEnvReferences.put(resEnvRef.getRefName(), resEnvRef);
+   }
+
+   public ResourceEnvRefMetaData getResourceEnvReference(String refName)
+   {
+      return (ResourceEnvRefMetaData)resourceEnvReferences.get(refName);
+   }
+
    public Iterator getMessageDestinationReferences()
    {
       return messageDestinationReferences.values().iterator();
    }
 
+   public void addMessageDestinationReference(MessageDestinationRefMetaData ref)
+   {
+      messageDestinationReferences.put(ref.getRefName(), ref);
+   }
+
+   public MessageDestinationRefMetaData getMessageDestinationReference(String refName)
+   {
+      return (MessageDestinationRefMetaData)messageDestinationReferences.get(refName);
+   }
+
    /**
     * @return HashMap<ServiceRefMetaData>
     */
@@ -376,6 +421,11 @@
       return serviceReferences;
    }
 
+   public void addServiceReference(ServiceRefMetaData ref)
+   {
+      serviceReferences.put(ref.getServiceRefName(), ref);
+   }
+
    public String getJndiName()
    {
       // jndiName may be set in jboss.xml




More information about the jboss-cvs-commits mailing list