[jboss-cvs] JBossAS SVN: r61523 - in trunk/server/src/main/org/jboss: metadata and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Mar 21 03:58:16 EDT 2007
Author: scott.stark at jboss.org
Date: 2007-03-21 03:58:16 -0400 (Wed, 21 Mar 2007)
New Revision: 61523
Modified:
trunk/server/src/main/org/jboss/deployment/JBossEjbObjectFactory.java
trunk/server/src/main/org/jboss/metadata/BeanMetaData.java
Log:
Fix not handling an implicit container configuration override. This is one that uses a container-name matching an existing config rather the extends attribute.
Modified: trunk/server/src/main/org/jboss/deployment/JBossEjbObjectFactory.java
===================================================================
--- trunk/server/src/main/org/jboss/deployment/JBossEjbObjectFactory.java 2007-03-21 07:58:13 UTC (rev 61522)
+++ trunk/server/src/main/org/jboss/deployment/JBossEjbObjectFactory.java 2007-03-21 07:58:16 UTC (rev 61523)
@@ -76,12 +76,6 @@
private ApplicationMetaData appMetaData;
- static class BeanHolder
- {
- String ejbName;
- BeanMetaData metaData;
- }
-
public JBossEjbObjectFactory(ApplicationMetaData dd)
{
super();
@@ -149,11 +143,11 @@
);
}
- child = extendConfig.clone();
+ child = new ConfigurationHolder(dd, (ConfigurationMetaData)extendConfig.clone());
}
else
{
- child = new ConfigurationMetaData();
+ child = new ConfigurationHolder(dd, new ConfigurationMetaData());
}
}
else if(localName.equals("webservices"))
@@ -266,7 +260,7 @@
return child;
}
- public Object newChild(ConfigurationMetaData md, UnmarshallingContext navigator,
+ public Object newChild(ConfigurationHolder md, UnmarshallingContext navigator,
String namespaceURI, String localName, Attributes attrs)
{
Object child = null;
@@ -284,7 +278,7 @@
{
//Handle the <security-domain/> usecase
child = md;
- md.setSecurityDomain("");
+ md.getConfiguration().setSecurityDomain("");
}
return child;
}
@@ -345,10 +339,10 @@
parent.addInvokerProxyBinding(binding);
}
- public void addChild(ApplicationMetaData parent, ConfigurationMetaData container,
+ public void addChild(ApplicationMetaData parent, ConfigurationHolder container,
UnmarshallingContext navigator, String namespaceURI, String localName)
{
- parent.addContainerConfiguration(container);
+ parent.addContainerConfiguration(container.getConfiguration());
}
public void addChild(ApplicationMetaData parent, ResourceManagerMetaData child,
@@ -376,26 +370,26 @@
parent.getWsdlPublishLocations().put(child.name, child.location);
}
- public void addChild(ConfigurationMetaData parent, ClusterConfigMetaData child,
+ public void addChild(ConfigurationHolder parent, ClusterConfigMetaData child,
UnmarshallingContext navigator, String namespaceURI, String localName)
{
- parent.setClusterConfig(child);
+ parent.getConfiguration().setClusterConfig(child);
}
- public void addChild(ConfigurationMetaData parent, DomElement child,
+ public void addChild(ConfigurationHolder parent, DomElement child,
UnmarshallingContext navigator, String namespaceURI, String localName)
{
if(localName.equals("container-interceptors"))
{
- parent.setContainerInterceptorsConf(child.element);
+ parent.getConfiguration().setContainerInterceptorsConf(child.element);
}
else if(localName.equals("container-cache-conf"))
{
- parent.setContainerCacheConf(child.element);
+ parent.getConfiguration().setContainerCacheConf(child.element);
}
else if(localName.equals("container-pool-conf"))
{
- parent.setContainerPoolConf(child.element);
+ parent.getConfiguration().setContainerPoolConf(child.element);
}
}
@@ -818,12 +812,21 @@
}
}
- public void setValue(ConfigurationMetaData container,
+ public void setValue(ConfigurationHolder ch,
UnmarshallingContext navigator, String namespaceURI, String localName,
String value)
{
+ ConfigurationMetaData container = ch.getConfiguration();
if (localName.equals("container-name"))
{
+ // Here we may implicitly be extending an existing config
+ ConfigurationMetaData cmd = ch.amd.getConfigurationMetaDataByName(value);
+ if( cmd != null )
+ {
+ // Set the extended value to the implicit override
+ container = (ConfigurationMetaData) cmd.clone();
+ ch.extended = container;
+ }
container.setName(value);
}
else if(localName.equals("call-logging"))
@@ -1192,4 +1195,37 @@
String configFile;
String location;
}
+
+ static class BeanHolder
+ {
+ String ejbName;
+ BeanMetaData metaData;
+ }
+ /**
+ * Because of how ConfigurationMetaData can both explicitly and implicitly
+ * extend and existing configuration, we need a holder to allow the ConfigurationMetaData
+ * instance to be replaced by an existing config when the container-name is seen
+ * as would be the case for this jboss.xml fragment:
+ <container-configurations>
+ <container-configuration>
+ <container-name>Standard Stateless SessionBean</container-name>
+ <depends>test:name=Test</depends>
+ </container-configuration>
+ </container-configurations>
+ */
+ static class ConfigurationHolder
+ {
+ ApplicationMetaData amd;
+ ConfigurationMetaData base;
+ ConfigurationMetaData extended;
+ ConfigurationHolder(ApplicationMetaData amd, ConfigurationMetaData base)
+ {
+ this.amd = amd;
+ this.base = base;
+ }
+ ConfigurationMetaData getConfiguration()
+ {
+ return extended != null ? extended : base;
+ }
+ }
}
Modified: trunk/server/src/main/org/jboss/metadata/BeanMetaData.java
===================================================================
--- trunk/server/src/main/org/jboss/metadata/BeanMetaData.java 2007-03-21 07:58:13 UTC (rev 61522)
+++ trunk/server/src/main/org/jboss/metadata/BeanMetaData.java 2007-03-21 07:58:16 UTC (rev 61523)
@@ -310,7 +310,7 @@
if (invokerBindings == null)
{
// See if there is a container default invoker name
- String[] defaultNames = configuration.getInvokers();
+ String[] defaultNames = this.getContainerConfiguration().getInvokers();
if (defaultNames.length > 0)
{
invokerBindings = new HashMap();
More information about the jboss-cvs-commits
mailing list