[jboss-cvs] JBossAS SVN: r66343 - in projects/metadata/trunk/src/main/java/org/jboss/metadata: client/spec and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Oct 22 17:26:15 EDT 2007


Author: scott.stark at jboss.org
Date: 2007-10-22 17:26:15 -0400 (Mon, 22 Oct 2007)
New Revision: 66343

Removed:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/merge/MetaDataFactory.java
Modified:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/client/jboss/JBossClientMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/client/spec/ApplicationClientMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/RemoteEnvironmentRefsGroupMetaData.java
Log:
Update client metadata to use merge rather than override

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/client/jboss/JBossClientMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/client/jboss/JBossClientMetaData.java	2007-10-22 21:18:04 UTC (rev 66342)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/client/jboss/JBossClientMetaData.java	2007-10-22 21:26:15 UTC (rev 66343)
@@ -23,6 +23,9 @@
 
 import java.util.List;
 
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlTransient;
+
 import org.jboss.metadata.client.spec.ApplicationClientMetaData;
 import org.jboss.metadata.javaee.spec.DescriptionGroupMetaData;
 import org.jboss.metadata.javaee.spec.EJBReferenceMetaData;
@@ -44,14 +47,17 @@
 import org.jboss.metadata.javaee.spec.ResourceReferencesMetaData;
 import org.jboss.metadata.javaee.spec.ServiceReferenceMetaData;
 import org.jboss.metadata.javaee.spec.ServiceReferencesMetaData;
+import org.jboss.metadata.javaee.support.IdMetaDataImplWithDescriptionGroup;
 import org.jboss.metadata.javaee.support.IdMetaDataImplWithOverride;
 import org.jboss.metadata.javaee.support.JavaEEMetaDataUtil;
 
 /**
+ * The jboss javaee client application metadata
+ * 
  * @author Scott.Stark at jboss.org
  * @version $Revision$
  */
-public class JBossClientMetaData extends IdMetaDataImplWithOverride<ApplicationClientMetaData>
+public class JBossClientMetaData extends IdMetaDataImplWithDescriptionGroup
    implements RemoteEnvironment
 {
    private static final long serialVersionUID = 1L;
@@ -65,100 +71,121 @@
    /** A list of extra dependencies to wait on */
    private List<String> depends;
    
-   private transient MessageDestinationsMetaData mergedMessageDestinations;
+   private String dtdPublicId;
+   private String dtdSystemId;
+   /** The version of the client */
+   private String version;
+   /** The callback handler */
+   private String callbackHandler;
 
-   public String getCallbackHandler()
+   /** The message destinations */
+   private MessageDestinationsMetaData messageDestinations;
+
+   /**
+    * Callback for the DTD information
+    * @param root
+    * @param publicId
+    * @param systemId
+    */
+   @XmlTransient
+   public void setDTD(String root, String publicId, String systemId)
    {
-      return ensureOverride().getCallbackHandler();
+      this.dtdPublicId = publicId;
+      this.dtdSystemId = systemId;
+      // Set the version from legacy public ids
+      if(dtdPublicId != null)
+      {
+         if(dtdPublicId.contains("3.0"))
+            setVersion("3.0");
+         if(dtdPublicId.contains("3.2"))
+            setVersion("3.2");
+         if(dtdPublicId.contains("4.0"))
+            setVersion("4.0");
+         if(dtdPublicId.contains("4.2"))
+            setVersion("4.2");
+         if(dtdPublicId.contains("5.0"))
+            setVersion("5.0");
+      }
    }
-   public DescriptionGroupMetaData getDescriptionGroup()
-   {
-      return ensureOverride().getDescriptionGroup();
-   }
+   /**
+    * Get the DTD public id if one was seen
+    * @return the value of the web.xml dtd public id
+    */
+   @XmlTransient
    public String getDtdPublicId()
    {
-      return ensureOverride().getDtdPublicId();
+      return dtdPublicId;
    }
+   /**
+    * Get the DTD system id if one was seen
+    * @return the value of the web.xml dtd system id
+    */
+   @XmlTransient
    public String getDtdSystemId()
    {
-      return ensureOverride().getDtdSystemId();
+      return dtdSystemId;
    }
-   public String getId()
-   {
-      return ensureOverride().getId();
-   }
-   public MessageDestinationMetaData getMessageDestinationByName(String name)
-   {
-      return ensureOverride().getMessageDestinationByName(name);
-   }
-   public MessageDestinationsMetaData getMessageDestinations()
-   {
-      return ensureOverride().getMessageDestinations();
-   }
+
+   
    public String getVersion()
    {
-      return ensureOverride().getVersion();
+      return version;
    }
-   public void setDescriptionGroup(DescriptionGroupMetaData descriptionGroup)
+   @XmlAttribute(name="version")
+   public void setVersion(String version)
    {
-      ensureOverride().setDescriptionGroup(descriptionGroup);
+      this.version = version;
    }
-   public void setDTD(String root, String publicId, String systemId)
+
+   public String getCallbackHandler()
    {
-      ensureOverride().setDTD(root, publicId, systemId);
+      return callbackHandler;
    }
-   public void setId(String id)
-   {
-      ensureOverride().setId(id);
-   }
-   public void setMessageDestinations(MessageDestinationsMetaData messageDestinations)
-   {
-      ensureOverride().setMessageDestinations(messageDestinations);
-   }
-   public void setVersion(String version)
-   {
-      ensureOverride().setVersion(version);
-   }
-
    public void setCallbackHandler(String callbackHandler)
    {
-      ensureOverride().setCallbackHandler(callbackHandler);
+      this.callbackHandler = callbackHandler;
    }
 
    public List<String> getDepends()
    {
       return depends;
    }
-   
-   public RemoteEnvironmentRefsGroupMetaData getJBossJndiEnvironmentRefsGroup()
+   public void setDepends(List<String> depends)
    {
-      return jndiEnvironmentRefsGroup;
+      this.depends = depends;
    }
-   
+
    public String getJndiName()
    {
       return jndiName;
    }
+   public void setJndiName(String jndiName)
+   {
+      this.jndiName = jndiName;
+   }
    
-   public void setDepends(List<String> depends)
+   public RemoteEnvironmentRefsGroupMetaData getJndiEnvironmentRefsGroup()
    {
-      this.depends = depends;
+      return jndiEnvironmentRefsGroup;
    }
-   
    public void setJndiEnvironmentRefsGroup(RemoteEnvironmentRefsGroupMetaData jndiEnvironmentRefsGroup)
    {
       if(jndiEnvironmentRefsGroup == null)
          throw new IllegalArgumentException("jndiEnvironmentRefsGroup is null");
       this.jndiEnvironmentRefsGroup = jndiEnvironmentRefsGroup;
    }
+
+   // Convinence accessors
    
-   public void setJndiName(String jndiName)
+   public MessageDestinationsMetaData getMessageDestinations()
    {
-      this.jndiName = jndiName;
+      return messageDestinations;
    }
-
-   // MERGED
-   
+   public void setMessageDestinations(
+         MessageDestinationsMetaData messageDestinations)
+   {
+      this.messageDestinations = messageDestinations;
+   }
    public EJBReferenceMetaData getEjbReferenceByName(String name)
    {
       return jndiEnvironmentRefsGroup.getEjbReferenceByName(name);
@@ -239,15 +266,41 @@
       return jndiEnvironmentRefsGroup.getResourceReferences();
    }
 
-   protected ApplicationClientMetaData ensureOverride()
+   /**
+    * Merge jboss + spec into this
+    * @param jboss
+    * @param spec
+    */
+   public void merge(JBossClientMetaData jboss, ApplicationClientMetaData spec)
    {
-      if (this.getOverridenMetaData() == null)
-         this.setOverridenMetaData(newOverridenMetaData());
-      return this.getOverridenMetaData();
-   }
+      RemoteEnvironmentRefsGroupMetaData jbossEnv = null;
+      RemoteEnvironmentRefsGroupMetaData specEnv = null;
+      MessageDestinationsMetaData jbossMsgs = null;
+      MessageDestinationsMetaData specMsgs = null;
+      if(jboss != null)
+      {
+         setDepends(jboss.depends);
+         this.setJndiName(jboss.jndiName);
+         this.dtdPublicId = jboss.dtdPublicId;
+         this.dtdSystemId = jboss.dtdSystemId;
+         this.version = jboss.version;
+         jbossEnv = jboss.getJndiEnvironmentRefsGroup();
+      }
+      if(spec != null)
+      {
+         specEnv = spec.getJndiEnvironmentRefsGroup();
+         specMsgs = spec.getMessageDestinations();
+      }
 
-   protected ApplicationClientMetaData newOverridenMetaData()
-   {
-      return new ApplicationClientMetaData();
+      if(jboss != null && jboss.callbackHandler != null)
+         this.setCallbackHandler(jboss.callbackHandler);
+      else if(spec != null && spec.getCallbackHandler() != null)
+         this.setCallbackHandler(spec.getCallbackHandler());
+
+      jndiEnvironmentRefsGroup = new RemoteEnvironmentRefsGroupMetaData();
+      jndiEnvironmentRefsGroup.merge(jbossEnv, specEnv);
+
+      messageDestinations = new MessageDestinationsMetaData();
+      messageDestinations.merge(jbossMsgs, specMsgs);
    }
 }

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/client/spec/ApplicationClientMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/client/spec/ApplicationClientMetaData.java	2007-10-22 21:18:04 UTC (rev 66342)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/client/spec/ApplicationClientMetaData.java	2007-10-22 21:26:15 UTC (rev 66343)
@@ -50,7 +50,7 @@
  * The common application client meta data for all JavaEE and J2EE versions.
  *
  * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
- * @version $Revision: $
+ * @version $Revision$
  */
 public class ApplicationClientMetaData extends IdMetaDataImplWithDescriptionGroup implements RemoteEnvironment
 {
@@ -146,7 +146,7 @@
       return AbstractMappedMetaData.getByName(name, getEnvironmentEntries());
    }
 
-   protected RemoteEnvironmentRefsGroupMetaData getJndiEnvironmentRefsGroup()
+   public RemoteEnvironmentRefsGroupMetaData getJndiEnvironmentRefsGroup()
    {
       return jndiEnvironmentRefsGroup;
    }

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/RemoteEnvironmentRefsGroupMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/RemoteEnvironmentRefsGroupMetaData.java	2007-10-22 21:18:04 UTC (rev 66342)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/RemoteEnvironmentRefsGroupMetaData.java	2007-10-22 21:26:15 UTC (rev 66343)
@@ -323,4 +323,76 @@
    {
       return AbstractMappedMetaData.getByName(name, serviceReferences);
    }
+
+   public void merge(RemoteEnvironmentRefsGroupMetaData jbossEnv, RemoteEnvironmentRefsGroupMetaData specEnv)
+   {
+      EnvironmentEntriesMetaData envEntries = null;
+      EJBReferencesMetaData ejbRefs = null;
+      EJBReferencesMetaData jbossEjbRefs = null;
+      ServiceReferencesMetaData serviceRefs = null;
+      ServiceReferencesMetaData jbossServiceRefs = null;
+      ResourceReferencesMetaData resRefs = null;
+      ResourceReferencesMetaData jbossResRefs = null;
+      ResourceEnvironmentReferencesMetaData resEnvRefs = null;
+      ResourceEnvironmentReferencesMetaData jbossResEnvRefs = null;
+      MessageDestinationReferencesMetaData messageDestinationRefs = null;
+      MessageDestinationReferencesMetaData jbossMessageDestinationRefs = null;
+      PersistenceUnitReferencesMetaData persistenceUnitRefs = null;
+      LifecycleCallbacksMetaData postConstructs = null;
+      LifecycleCallbacksMetaData preDestroys = null;
+      
+      if (specEnv != null)
+      {
+         envEntries = specEnv.getEnvironmentEntries();
+         ejbRefs = specEnv.getEjbReferences();
+         serviceRefs = specEnv.getServiceReferences();
+         resRefs = specEnv.getResourceReferences();
+         resEnvRefs = specEnv.getResourceEnvironmentReferences();
+         messageDestinationRefs = specEnv.getMessageDestinationReferences();
+         persistenceUnitRefs = specEnv.getPersistenceUnitRefs();
+         postConstructs = specEnv.getPostConstructs();
+         preDestroys = specEnv.getPreDestroys();
+      }
+      
+      if (jbossEnv != null)
+      {
+         jbossEjbRefs = jbossEnv.getEjbReferences();
+         jbossServiceRefs = jbossEnv.getServiceReferences();
+         jbossResRefs = jbossEnv.getResourceReferences();
+         jbossResEnvRefs = jbossEnv.getResourceEnvironmentReferences();
+         jbossMessageDestinationRefs = jbossEnv.getMessageDestinationReferences();
+      }
+      
+      EJBReferencesMetaData mergedEjbRefs = EJBReferencesMetaData.merge(jbossEjbRefs, ejbRefs, "", "");
+      if (mergedEjbRefs != null)
+         setEjbReferences(mergedEjbRefs);
+      
+      ServiceReferencesMetaData mergedServiceRefs = ServiceReferencesMetaData.merge(jbossServiceRefs, serviceRefs, "", "");
+      if (mergedServiceRefs != null)
+         setServiceReferences(mergedServiceRefs);
+
+      ResourceReferencesMetaData mergedResRefs = ResourceReferencesMetaData.merge(jbossResRefs, resRefs, "", "");
+      if (mergedResRefs != null)
+         setResourceReferences(mergedResRefs);
+
+      ResourceEnvironmentReferencesMetaData mergedResEnvRefs = ResourceEnvironmentReferencesMetaData.merge(jbossResEnvRefs, resEnvRefs, "", "");
+      if (mergedResEnvRefs != null)
+         setResourceEnvironmentReferences(mergedResEnvRefs);
+
+      MessageDestinationReferencesMetaData mergedMessageDestinationRefs = MessageDestinationReferencesMetaData.merge(jbossMessageDestinationRefs, messageDestinationRefs, "", "");
+      if (mergedMessageDestinationRefs != null)
+         setMessageDestinationReferences(mergedMessageDestinationRefs);
+      
+      if (envEntries != null)
+         setEnvironmentEntries(envEntries);
+      
+      if (persistenceUnitRefs != null)
+         setPersistenceUnitRefs(persistenceUnitRefs);
+      
+      if (postConstructs != null)
+         setPostConstructs(postConstructs);
+      
+      if (preDestroys != null)
+         setPreDestroys(preDestroys);
+   }
 }

Deleted: projects/metadata/trunk/src/main/java/org/jboss/metadata/merge/MetaDataFactory.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/merge/MetaDataFactory.java	2007-10-22 21:18:04 UTC (rev 66342)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/merge/MetaDataFactory.java	2007-10-22 21:26:15 UTC (rev 66343)
@@ -1,47 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.metadata.merge;
-
-import org.jboss.metadata.client.jboss.JBossClientMetaData;
-import org.jboss.metadata.client.spec.ApplicationClientMetaData;
-
-/**
- * @author Scott.Stark at jboss.org
- * @version $Revision$
- */
-public class MetaDataFactory
-{
-   public static JBossClientMetaData getMergedViews(JBossClientMetaData jboss,
-      ApplicationClientMetaData spec)
-   {
-      if (spec == null)
-         return jboss;
-
-      JBossClientMetaData metaData = new JBossClientMetaData();
-      metaData.setOverridenMetaData(spec);
-      if (jboss != null)
-      {
-         jboss.merge(metaData, spec);
-      }
-      return metaData;
-   }
-}




More information about the jboss-cvs-commits mailing list