User: salborini
Date: 00/08/22 12:26:42
Modified: src/main/org/jboss/metadata ApplicationMetaData.java
BeanMetaData.java EjbRefMetaData.java
Log:
Fixed bug about internal/external ejb-refs.
- Internal link: ejb-jar.xml must have a ejb-ref-link tag
- External link: jboss.xml must have a jndi-name tag
Revision Changes Path
1.4 +2 -22 jboss/src/main/org/jboss/metadata/ApplicationMetaData.java
Index: ApplicationMetaData.java
===================================================================
RCS file:
/products/cvs/ejboss/jboss/src/main/org/jboss/metadata/ApplicationMetaData.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ApplicationMetaData.java 2000/08/14 16:07:41 1.3
+++ ApplicationMetaData.java 2000/08/22 19:26:41 1.4
@@ -25,7 +25,7 @@
*
* @see <related>
* @author <a href="mailto:[EMAIL PROTECTED]">Sebastien Alborini</a>
- * @version $Revision: 1.3 $
+ * @version $Revision: 1.4 $
*/
public class ApplicationMetaData extends MetaData {
// Constants -----------------------------------------------------
@@ -37,8 +37,7 @@
private ArrayList securityRoles = new ArrayList();
private ArrayList configurations = new ArrayList();
private HashMap resources = new HashMap();
- private HashMap homeJndiMap = null;
-
+
// Static --------------------------------------------------------
@@ -88,15 +87,7 @@
return (String)resources.get(name);
}
- public String getJndiFromHome(String homeClass) {
- // homeJndiName must be initialized once jboss.xml has been processed
-
- if (homeJndiMap == null) makeHomeJndiMap();
- return (String)homeJndiMap.get(homeClass);
- }
-
-
public void importEjbJarXml (Element element) throws DeploymentException {
// find the beans
@@ -273,17 +264,6 @@
// Protected -----------------------------------------------------
// Private -------------------------------------------------------
- private void makeHomeJndiMap() {
- homeJndiMap = new HashMap();
-
- Iterator iterator = getEnterpriseBeans();
- while (iterator.hasNext()) {
- BeanMetaData bean = (BeanMetaData)iterator.next();
- homeJndiMap.put(bean.getHome(), bean.getJndiName());
- }
- }
-
-
// Inner classes -------------------------------------------------
}
1.6 +17 -5 jboss/src/main/org/jboss/metadata/BeanMetaData.java
Index: BeanMetaData.java
===================================================================
RCS file: /products/cvs/ejboss/jboss/src/main/org/jboss/metadata/BeanMetaData.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- BeanMetaData.java 2000/08/15 01:40:57 1.5
+++ BeanMetaData.java 2000/08/22 19:26:41 1.6
@@ -21,7 +21,7 @@
*
* @see <related>
* @author <a href="mailto:[EMAIL PROTECTED]">Sebastien Alborini</a>
- * @version $Revision: 1.5 $
+ * @version $Revision: 1.6 $
*/
public abstract class BeanMetaData extends MetaData {
// Constants -----------------------------------------------------
@@ -36,7 +36,7 @@
private String ejbClass;
protected boolean session;
- private ArrayList ejbReferences = new ArrayList();
+ private HashMap ejbReferences = new HashMap();
private ArrayList environmentEntries = new ArrayList();
private ArrayList securityRoleReferences = new ArrayList();
private HashMap resourceReferences = new HashMap();
@@ -70,7 +70,7 @@
public String getEjbName() { return ejbName; }
- public Iterator getEjbReferences() { return ejbReferences.iterator(); }
+ public Iterator getEjbReferences() { return ejbReferences.values().iterator();
}
public Iterator getEnvironmentEntries() { return
environmentEntries.iterator(); }
@@ -169,7 +169,7 @@
EjbRefMetaData ejbRefMetaData = new EjbRefMetaData();
ejbRefMetaData.importEjbJarXml(ejbRef);
- ejbReferences.add(ejbRefMetaData);
+ ejbReferences.put(ejbRefMetaData.getName(), ejbRefMetaData);
}
// set the security roles references
@@ -214,7 +214,19 @@
String resourceName =
getElementContent(getUniqueChild(resourceRef, "resource-name"));
ResourceRefMetaData resourceRefMetaData =
(ResourceRefMetaData)resourceReferences.get(resRefName);
resourceRefMetaData.setResourceName(resourceName);
- }
+ }
+
+ // set the external ejb-references (optional)
+ iterator = getChildrenByTagName(element, "ejb-ref");
+ while (iterator.hasNext()) {
+ Element ejbRef = (Element)iterator.next();
+ String ejbRefName = getElementContent(getUniqueChild(ejbRef,
"ejb-ref-name"));
+ EjbRefMetaData ejbRefMetaData =
(EjbRefMetaData)ejbReferences.get(ejbRefName);
+ if (ejbRefMetaData == null) {
+ throw new DeploymentException("ejb-ref " + ejbRefName
+ " found in jboss.xml but not in ejb-jar.xml");
+ }
+ ejbRefMetaData.importJbossXml(ejbRef);
+ }
}
1.2 +11 -2 jboss/src/main/org/jboss/metadata/EjbRefMetaData.java
Index: EjbRefMetaData.java
===================================================================
RCS file:
/products/cvs/ejboss/jboss/src/main/org/jboss/metadata/EjbRefMetaData.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- EjbRefMetaData.java 2000/08/12 00:37:58 1.1
+++ EjbRefMetaData.java 2000/08/22 19:26:41 1.2
@@ -15,7 +15,7 @@
*
* @see <related>
* @author <a href="mailto:[EMAIL PROTECTED]">Sebastien Alborini</a>
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
public class EjbRefMetaData extends MetaData {
// Constants -----------------------------------------------------
@@ -32,9 +32,12 @@
private String home;
private String remote;
- // the jndi name: we must map "name" to "link"
+ // internal link: map name to link
private String link;
+ // external link: map name to jndiName
+ private String jndiName;
+
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
@@ -53,6 +56,8 @@
public String getLink() { return link; }
+ public String getJndiName() { return jndiName; }
+
public void importEjbJarXml(Element element) throws DeploymentException {
name = getElementContent(getUniqueChild(element, "ejb-ref-name"));
type = getElementContent(getUniqueChild(element, "ejb-ref-type"));
@@ -61,6 +66,10 @@
link = getElementContent(getOptionalChild(element, "ejb-link"));
}
+ public void importJbossXml(Element element) throws DeploymentException {
+ jndiName = getElementContent(getOptionalChild(element, "jndi-name"));
+ }
+
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------