[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