[jboss-cvs] JBossAS SVN: r58196 - in trunk/server/src/main/org/jboss: deployment metadata
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Nov 7 19:18:17 EST 2006
Author: alex.loubyansky at jboss.com
Date: 2006-11-07 19:18:14 -0500 (Tue, 07 Nov 2006)
New Revision: 58196
Modified:
trunk/server/src/main/org/jboss/deployment/EjbJarObjectFactory.java
trunk/server/src/main/org/jboss/metadata/RelationMetaData.java
trunk/server/src/main/org/jboss/metadata/RelationshipRoleMetaData.java
Log:
some fixes in CMR-related parsing
Modified: trunk/server/src/main/org/jboss/deployment/EjbJarObjectFactory.java
===================================================================
--- trunk/server/src/main/org/jboss/deployment/EjbJarObjectFactory.java 2006-11-07 23:37:37 UTC (rev 58195)
+++ trunk/server/src/main/org/jboss/deployment/EjbJarObjectFactory.java 2006-11-08 00:18:14 UTC (rev 58196)
@@ -22,9 +22,7 @@
package org.jboss.deployment;
import java.util.ArrayList;
-import java.util.HashSet;
import java.util.List;
-import java.util.Set;
import org.jboss.logging.Logger;
import org.jboss.metadata.ApplicationMetaData;
@@ -48,6 +46,7 @@
* An ObjectModelFactory implementation for parsing ejb-jar.xml descriptors.
*
* @author Scott.Stark at jboss.org
+ * @author Alexey.Loubyansky at jboss.org
* @version $Revision:$
*/
public class EjbJarObjectFactory extends DDObjectFactory
@@ -57,28 +56,6 @@
private int ejbVersion = 2;
private int ejbMinorVersion = 0;
- static class EnterpriseBeans
- {
- ApplicationMetaData app;
- EnterpriseBeans(ApplicationMetaData app)
- {
- this.app = app;
- }
- List<EntityMetaData> entityBeans = new ArrayList<EntityMetaData>();
- List<SessionMetaData> sessionBeans = new ArrayList<SessionMetaData>();
- List<MessageDrivenMetaData> messageBeans = new ArrayList<MessageDrivenMetaData>();
- }
- static class Relationships
- {
- ApplicationMetaData app;
- Relationships(ApplicationMetaData app)
- {
- this.app = app;
- }
- // used to assure that a relationship name is not reused
- Set relationNames = new HashSet();
- List<RelationMetaData> relations = new ArrayList<RelationMetaData>();
- }
static class AssemblyDescriptor
{
static class MethodPermission
@@ -161,9 +138,17 @@
// Check elements
if (localName.equals("enterprise-beans"))
- child = new EnterpriseBeans(dd);
+ child = dd;
+ else if(localName.equals("entity"))
+ child = new EntityMetaData(dd);
+ else if(localName.equals("session"))
+ child = new SessionMetaData(dd);
+ else if(localName.equals("message-driven"))
+ child = new MessageDrivenMetaData(dd);
else if(localName.equals("relationships"))
- child = new Relationships(dd);
+ child = dd;
+ else if (localName.equals("ejb-relation"))
+ child = new RelationMetaData();
else if( localName.equals("assembly-descriptor"))
child = new AssemblyDescriptor();
else if(localName.equals("icon"))
@@ -175,35 +160,6 @@
return child;
}
- /**
- * ejb-jar/enterprise-beans children
- *
- * @param module
- * @param navigator
- * @param namespaceURI
- * @param localName
- * @param attrs
- * @return
- */
- public Object newChild(EnterpriseBeans beans, UnmarshallingContext navigator,
- String namespaceURI, String localName, Attributes attrs)
- {
- Object child = null;
- if (localName.equals("entity"))
- {
- child = new EntityMetaData(beans.app);
- }
- else if (localName.equals("session"))
- {
- child = new SessionMetaData(beans.app);
- }
- else if (localName.equals("message-driven"))
- {
- child = new MessageDrivenMetaData(beans.app);
- }
- return child;
- }
-
public Object newChild(EntityMetaData entity, UnmarshallingContext navigator,
String namespaceURI, String localName, Attributes attrs)
{
@@ -254,83 +210,89 @@
return child;
}
- /**
- *
- * @param relations
- * @param navigator
- * @param namespaceURI
- * @param localName
- * @param attrs
- * @return
- */
- public Object newChild(Relationships relations, UnmarshallingContext navigator,
+ public Object newChild(RelationMetaData relation, UnmarshallingContext navigator,
String namespaceURI, String localName, Attributes attrs)
{
Object child = null;
- if (localName.equals("ejb-relation"))
- child = new RelationMetaData();
+
+ // left role
+ if( localName.equals("ejb-relationship-role") )
+ {
+ child = new RelationshipRoleMetaData(relation);
+ }
else
{
log.debug("Ignoring: " + localName);
}
return child;
}
- public Object newChild(RelationMetaData relation, UnmarshallingContext navigator,
+
+ public Object newChild(RelationshipRoleMetaData role, UnmarshallingContext navigator,
String namespaceURI, String localName, Attributes attrs)
{
Object child = null;
-
- // left role
- if( localName.equals("ejb-relationship-role") )
+ if(localName.equals("cascade-delete"))
{
- child = new RelationshipRoleMetaData(relation);
- // TODO need to populate RelationshipRoleMetaData
- }
- else
+ role.setCascadeDelete(true);
+ }
+ else if(localName.equals("relationship-role-source") ||
+ localName.equals("cmr-field"))
{
- log.debug("Ignoring: " + localName);
+ child = role;
}
return child;
}
- public void addChild(ApplicationMetaData parent, EnterpriseBeans beans,
+ public void addChild(ApplicationMetaData parent, EntityMetaData entity,
UnmarshallingContext navigator, String namespaceURI, String localName)
{
- // Noop
+ parent.addBeanMetaData(entity);
}
- public void addChild(EnterpriseBeans beans, EntityMetaData md,
+
+ public void addChild(ApplicationMetaData parent, SessionMetaData session,
UnmarshallingContext navigator, String namespaceURI, String localName)
{
- beans.app.addBeanMetaData(md);
+ parent.addBeanMetaData(session);
}
- public void addChild(EnterpriseBeans beans, SessionMetaData md,
+
+ public void addChild(ApplicationMetaData parent, MessageDrivenMetaData mdb,
UnmarshallingContext navigator, String namespaceURI, String localName)
{
- beans.app.addBeanMetaData(md);
+ parent.addBeanMetaData(mdb);
}
- public void addChild(EnterpriseBeans beans, MessageDrivenMetaData md,
- UnmarshallingContext navigator, String namespaceURI, String localName)
- {
- beans.app.addBeanMetaData(md);
- }
- public void addChild(ApplicationMetaData parent, Relationships relationships,
+ public void addChild(ApplicationMetaData parent, RelationMetaData relation,
UnmarshallingContext navigator, String namespaceURI, String localName)
{
- // Noop?
+ parent.addRelationship(relation);
}
- public void addChild(Relationships relationships, RelationMetaData relation,
- UnmarshallingContext navigator, String namespaceURI, String localName)
- {
- // Need to validate...
- relationships.app.addRelationship(relation);
- }
+
public void addChild(ApplicationMetaData parent, AssemblyDescriptor ad,
UnmarshallingContext navigator, String namespaceURI, String localName)
{
// TODO
}
+ public void addChild(RelationMetaData relation, RelationshipRoleMetaData role,
+ UnmarshallingContext ctx, String namespaceURI, String localName)
+ {
+ if(role.getRelationshipRoleName() == null)
+ {
+ role.setRelationshipRoleName(
+ role.getEntityName() + (role.getCMRFieldName() == null ? "" : "_" + role.getCMRFieldName())
+ );
+ }
+
+ if(relation.getLeftRelationshipRole() == null)
+ {
+ relation.setLeftRelationshipRole(role);
+ }
+ else
+ {
+ relation.setRightRelationshipRole(role);
+ }
+ }
+
/**
* Set text values of ejb-jar/* children
* @param dd
@@ -504,7 +466,31 @@
{
relation.setRelationName(value);
}
-
}
+ public void setValue(RelationshipRoleMetaData role,
+ UnmarshallingContext navigator, String namespaceURI, String localName,
+ String value)
+ {
+ if(localName.equals("ejb-relationship-role-name"))
+ {
+ role.setRelationshipRoleName(value);
+ }
+ else if(localName.equals("multiplicity"))
+ {
+ role.setMultiplicity(value);
+ }
+ else if(localName.equals("ejb-name"))
+ {
+ role.setEntityName(value);
+ }
+ else if(localName.equals("cmr-field-name"))
+ {
+ role.setCmrFieldName(value);
+ }
+ else if(localName.equals("cmr-field-type"))
+ {
+ role.setCmrFieldType(value);
+ }
+ }
}
Modified: trunk/server/src/main/org/jboss/metadata/RelationMetaData.java
===================================================================
--- trunk/server/src/main/org/jboss/metadata/RelationMetaData.java 2006-11-07 23:37:37 UTC (rev 58195)
+++ trunk/server/src/main/org/jboss/metadata/RelationMetaData.java 2006-11-08 00:18:14 UTC (rev 58196)
@@ -114,7 +114,7 @@
public void setRightRelationshipRole(RelationshipRoleMetaData left)
{
- this.left = left;
+ this.right = left;
}
public RelationshipRoleMetaData getOtherRelationshipRole(RelationshipRoleMetaData role)
Modified: trunk/server/src/main/org/jboss/metadata/RelationshipRoleMetaData.java
===================================================================
--- trunk/server/src/main/org/jboss/metadata/RelationshipRoleMetaData.java 2006-11-07 23:37:37 UTC (rev 58195)
+++ trunk/server/src/main/org/jboss/metadata/RelationshipRoleMetaData.java 2006-11-08 00:18:14 UTC (rev 58196)
@@ -139,7 +139,50 @@
public String getCMRFieldType() {
return cmrFieldType;
}
-
+
+ public void setRelationshipRoleName(String relationshipRoleName)
+ {
+ this.relationshipRoleName = relationshipRoleName;
+ }
+
+ public void setMultiplicity(String multiplicity)
+ {
+ if("One".equals(multiplicity))
+ {
+ this.multiplicity = ONE;
+ }
+ else if("Many".equals(multiplicity))
+ {
+ this.multiplicity = MANY;
+ }
+ else
+ {
+ throw new IllegalStateException("multiplicity must be exactaly 'One' " +
+ "or 'Many' but is " + multiplicity + "; this is case " +
+ "sensitive");
+ }
+ }
+
+ public void setCascadeDelete(boolean cascadeDelete)
+ {
+ this.cascadeDelete = cascadeDelete;
+ }
+
+ public void setEntityName(String entityName)
+ {
+ this.entityName = entityName;
+ }
+
+ public void setCmrFieldName(String cmrFieldName)
+ {
+ this.cmrFieldName = cmrFieldName;
+ }
+
+ public void setCmrFieldType(String cmrFieldType)
+ {
+ this.cmrFieldType = cmrFieldType;
+ }
+
public void importEjbJarXml (Element element) throws DeploymentException {
// ejb-relationship-role-name?
relationshipRoleName =
More information about the jboss-cvs-commits
mailing list