[
https://jira.jboss.org/jira/browse/JBAS-7976?page=com.atlassian.jira.plug...
]
Ales Justin commented on JBAS-7976:
-----------------------------------
OK, fixed/hacked merge.
As Ear contents deployer only creates modules, this should be fine.
Can you try it out?
protected void createMetaData(DeploymentUnit unit, String name, String suffix) throws
DeploymentException
{
EarMetaData specMetaData = unit.getAttachment(EarMetaData.class);
JBossAppMetaData metaData = unit.getAttachment(JBossAppMetaData.class); // from ear
contents deployer
// do parse
super.createMetaData(unit, name, suffix);
// new parsed metadata
JBossAppMetaData parsed = unit.getAttachment(JBossAppMetaData.class);
if (metaData != null && parsed != null)
{
ModulesMetaData mmd = metaData.getModules();
if (mmd != null && mmd.isEmpty() == false)
{
ModulesMetaData parsedMMD = parsed.getModules();
if (parsedMMD == null)
{
parsedMMD = new ModulesMetaData();
parsed.setModules(parsedMMD);
}
parsedMMD.merge(parsedMMD, mmd);
}
}
// parsed is the one we use after merged modules
metaData = parsed;
if(specMetaData == null && metaData == null)
return;
// If there no JBossMetaData was created from a jboss-app.xml, create one
if (metaData == null)
metaData = new JBossAppMetaData();
// Create a merged view
JBossAppMetaData mergedMetaData = new JBossAppMetaData();
mergedMetaData.merge(metaData, specMetaData);
// Set the merged as the output
unit.getTransientManagedObjects().addAttachment(JBossAppMetaData.class,
mergedMetaData);
// Keep the raw parsed metadata as well
unit.addAttachment("Raw"+JBossAppMetaData.class.getName(), metaData,
JBossAppMetaData.class);
// Pass the ear callByValue setting
if (isCallByValue())
unit.addAttachment("EAR.callByValue", Boolean.TRUE, Boolean.class);
//Pass the unauthenticated identity
if (this.unauthenticatedIdentity != null)
unit.addAttachment("EAR.unauthenticatedIdentity",
this.unauthenticatedIdentity, String.class);
}
jboss-app.xml is not parsed when no application.xml is provided
---------------------------------------------------------------
Key: JBAS-7976
URL:
https://jira.jboss.org/jira/browse/JBAS-7976
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Deployers
Affects Versions: 6.0.0.M2
Reporter: Alessio Soldano
Assignee: Ales Justin
Fix For: 6.0.0.CR1
Attachments: [JBAS-7976]__#2.patch,
[JBAS-7976]__fix_JBossAppParsing_deployer_.patch
JBossAppParsingDeployers does not actually parse jboss-app.xml when no application.xml
descriptor is provided. In that case, the EARContentsDeployer creates a JBoss50AppMetaData
instance and attach that to the deployment unit. Later JBossAppParsingDeployer (actually
AbstractParsingDeployerWithOutput::createMetaData(DeploymentUnit unit, Set<String>
names, String suffix, String key)) finds the metadata are already there and returns
without doing the actual parse.
A consequence of this is that, for instance, a security domain declared in jboss-app.xml
is not picked up.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira