djencks 2004/02/11 00:02:21
Modified: modules/connector/src/java/org/apache/geronimo/connector/deployment/dconfigbean AdminObjectInstanceDConfigBean.java ConnectionDefinitionInstanceDConfigBean.java ResourceAdapterDConfigBean.java ResourceAdapterDConfigRoot.java modules/deployment/src/java/org/apache/geronimo/deployment/tools DDBeanImpl.java DDBeanRootImpl.java modules/deployment/src/test/org/apache/geronimo/deployment/tools DDBeanRootTest.java modules/jetty/src/java/org/apache/geronimo/jetty/deployment WebAppDConfigRoot.java modules/jetty/src/test/org/apache/geronimo/jetty/deployment WARConfigurationFactoryTest.java Log: fix DDBeans so they return the xpath that was used to find them, from the DConfigBean Revision Changes Path 1.3 +2 -2 incubator-geronimo/modules/connector/src/java/org/apache/geronimo/connector/deployment/dconfigbean/AdminObjectInstanceDConfigBean.java Index: AdminObjectInstanceDConfigBean.java =================================================================== RCS file: /home/cvs/incubator-geronimo/modules/connector/src/java/org/apache/geronimo/connector/deployment/dconfigbean/AdminObjectInstanceDConfigBean.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- AdminObjectInstanceDConfigBean.java 10 Feb 2004 08:04:21 -0000 1.2 +++ AdminObjectInstanceDConfigBean.java 11 Feb 2004 08:02:20 -0000 1.3 @@ -123,7 +123,7 @@ public DConfigBean getDConfigBean(DDBean bean) throws ConfigurationException { String xpath = bean.getXpath(); - if (xpath.endsWith("/config-property")) { + if (xpath.equals(ADMIN_OBJECT_INSTANCE_XPATHS[0])) { String configPropertyName = bean.getText("config-property-name")[0]; ConfigPropertySettingDConfigBean configPropertySetting = (ConfigPropertySettingDConfigBean) configPropertiesMap.get(configPropertyName); assert configPropertySetting != null; 1.3 +2 -2 incubator-geronimo/modules/connector/src/java/org/apache/geronimo/connector/deployment/dconfigbean/ConnectionDefinitionInstanceDConfigBean.java Index: ConnectionDefinitionInstanceDConfigBean.java =================================================================== RCS file: /home/cvs/incubator-geronimo/modules/connector/src/java/org/apache/geronimo/connector/deployment/dconfigbean/ConnectionDefinitionInstanceDConfigBean.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- ConnectionDefinitionInstanceDConfigBean.java 10 Feb 2004 19:59:14 -0000 1.2 +++ ConnectionDefinitionInstanceDConfigBean.java 11 Feb 2004 08:02:20 -0000 1.3 @@ -205,7 +205,7 @@ public DConfigBean getDConfigBean(DDBean bean) throws ConfigurationException { String xpath = bean.getXpath(); - if (xpath.endsWith("/config-property")) { + if (xpath.equals(CONNECTION_DEFINITION_INSTANCE_XPATHS[0])) { String configPropertyName = bean.getText("config-property-name")[0]; ConfigPropertySettingDConfigBean configPropertySetting = (ConfigPropertySettingDConfigBean) configPropertiesMap.get(configPropertyName); assert configPropertySetting != null; 1.3 +4 -4 incubator-geronimo/modules/connector/src/java/org/apache/geronimo/connector/deployment/dconfigbean/ResourceAdapterDConfigBean.java Index: ResourceAdapterDConfigBean.java =================================================================== RCS file: /home/cvs/incubator-geronimo/modules/connector/src/java/org/apache/geronimo/connector/deployment/dconfigbean/ResourceAdapterDConfigBean.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- ResourceAdapterDConfigBean.java 10 Feb 2004 08:04:21 -0000 1.2 +++ ResourceAdapterDConfigBean.java 11 Feb 2004 08:02:20 -0000 1.3 @@ -177,21 +177,21 @@ public DConfigBean getDConfigBean(DDBean bean) throws ConfigurationException { String xpath = bean.getXpath(); - if (xpath.endsWith("/" + RESOURCE_ADAPTER_XPATHS[0])) { + if (xpath.equals(RESOURCE_ADAPTER_XPATHS[0])) { //resource adapter config property String configPropertyName = bean.getText("config-property-name")[0]; ConfigPropertySettingDConfigBean configPropertySetting = (ConfigPropertySettingDConfigBean) configPropertiesMap.get(configPropertyName); assert configPropertySetting != null; return configPropertySetting; } - if (xpath.endsWith("/" + RESOURCE_ADAPTER_XPATHS[1])) { + if (xpath.equals(RESOURCE_ADAPTER_XPATHS[1])) { //connection definition String connectionFactoryInterface = bean.getText("connectionfactory-interface")[0]; ConnectionDefinitionDConfigBean connectionDefinition = (ConnectionDefinitionDConfigBean) connectionDefinitionsMap.get(connectionFactoryInterface); assert connectionDefinition != null; return connectionDefinition; } - if (xpath.endsWith("/" + RESOURCE_ADAPTER_XPATHS[2])) { + if (xpath.equals(RESOURCE_ADAPTER_XPATHS[2])) { //admin objects String adminObjectInterface = bean.getText("adminobject-interface")[0]; String adminObjectClass = bean.getText("adminobject-class")[0]; 1.3 +2 -3 incubator-geronimo/modules/connector/src/java/org/apache/geronimo/connector/deployment/dconfigbean/ResourceAdapterDConfigRoot.java Index: ResourceAdapterDConfigRoot.java =================================================================== RCS file: /home/cvs/incubator-geronimo/modules/connector/src/java/org/apache/geronimo/connector/deployment/dconfigbean/ResourceAdapterDConfigRoot.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- ResourceAdapterDConfigRoot.java 10 Feb 2004 08:04:21 -0000 1.2 +++ ResourceAdapterDConfigRoot.java 11 Feb 2004 08:02:20 -0000 1.3 @@ -105,9 +105,8 @@ return XPATHS; } - //TODO should the xpath start with /?? public DConfigBean getDConfigBean(DDBean bean) throws ConfigurationException { - if (("/" + XPATHS[0]).equals(bean.getXpath())) { + if (XPATHS[0].equals(bean.getXpath())) { return resourceAdapterDConfigBean; } return null; 1.3 +29 -3 incubator-geronimo/modules/deployment/src/java/org/apache/geronimo/deployment/tools/DDBeanImpl.java Index: DDBeanImpl.java =================================================================== RCS file: /home/cvs/incubator-geronimo/modules/deployment/src/java/org/apache/geronimo/deployment/tools/DDBeanImpl.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- DDBeanImpl.java 23 Jan 2004 19:58:17 -0000 1.2 +++ DDBeanImpl.java 11 Feb 2004 08:02:21 -0000 1.3 @@ -60,6 +60,7 @@ import java.util.Iterator; import java.util.List; import java.util.Map; + import javax.enterprise.deploy.model.DDBean; import javax.enterprise.deploy.model.DDBeanRoot; import javax.enterprise.deploy.model.XpathListener; @@ -99,6 +100,13 @@ } } + DDBeanImpl(DDBeanImpl source, String xpath) { + this.xpath = xpath; + this.root = source.root; + this.children = source.children; + this.element = source.element; + } + public DDBeanRoot getRoot() { return root; } @@ -146,7 +154,11 @@ if (beans == null) { return null; } - return (DDBean[]) beans.toArray(new DDBean[beans.size()]); + DDBean[] newDDBeans = (DDBean[]) beans.toArray(new DDBean[beans.size()]); + for (int i = 0; i < newDDBeans.length; i++) { + newDDBeans[i] = new DDBeanImpl((DDBeanImpl) newDDBeans[i], xpath); + } + return newDDBeans; } else { List childBeans = (List) children.get(xpath.substring(0, index)); if (childBeans == null) { @@ -159,7 +171,7 @@ DDBean[] childs = bean.getChildBean(path); if (childs != null) { for (int j = 0; j < childs.length; j++) { - beans.add(childs[j]); + beans.add(new DDBeanImpl((DDBeanImpl) childs[j], xpath)); } } } @@ -181,5 +193,19 @@ } public void removeXpathListener(String xpath, XpathListener xpl) { + } + + public boolean equals(Object other) { + if (other.getClass() != DDBeanImpl.class) { + return false; + } + DDBeanImpl otherdd = (DDBeanImpl)other; + return xpath.equals(otherdd.xpath) + && element.equals(otherdd.element) + && root.equals(otherdd.root); + } + + public int hashCode() { + return xpath.hashCode() ^ element.hashCode() ^ root.hashCode(); } } 1.2 +9 -5 incubator-geronimo/modules/deployment/src/java/org/apache/geronimo/deployment/tools/DDBeanRootImpl.java Index: DDBeanRootImpl.java =================================================================== RCS file: /home/cvs/incubator-geronimo/modules/deployment/src/java/org/apache/geronimo/deployment/tools/DDBeanRootImpl.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- DDBeanRootImpl.java 21 Jan 2004 20:37:29 -0000 1.1 +++ DDBeanRootImpl.java 11 Feb 2004 08:02:21 -0000 1.2 @@ -71,8 +71,8 @@ import org.w3c.dom.Document; /** - * - * + * + * * @version $Revision$ $Date$ */ public class DDBeanRootImpl implements DDBeanRoot { @@ -158,9 +158,13 @@ String childName = (index == -1) ? xpath : xpath.substring(0, index); if (childName.equals(doc.getDocumentElement().getNodeName())) { if (index == -1) { - return new DDBean[] {docBean }; + return new DDBean[] {new DDBeanImpl((DDBeanImpl)docBean, xpath)}; } else { - return docBean.getChildBean(xpath.substring(index+1)); + DDBean[] newDDBeans = docBean.getChildBean(xpath.substring(index+1)); + for (int i = 0; i < newDDBeans.length; i++) { + newDDBeans[i] = new DDBeanImpl((DDBeanImpl)newDDBeans[i], xpath); + } + return newDDBeans; } } else { return null; 1.2 +4 -4 incubator-geronimo/modules/deployment/src/test/org/apache/geronimo/deployment/tools/DDBeanRootTest.java Index: DDBeanRootTest.java =================================================================== RCS file: /home/cvs/incubator-geronimo/modules/deployment/src/test/org/apache/geronimo/deployment/tools/DDBeanRootTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- DDBeanRootTest.java 21 Jan 2004 20:37:28 -0000 1.1 +++ DDBeanRootTest.java 11 Feb 2004 08:02:21 -0000 1.2 @@ -69,8 +69,8 @@ import junit.framework.TestCase; /** - * - * + * + * * @version $Revision$ $Date$ */ public class DDBeanRootTest extends TestCase { @@ -93,7 +93,7 @@ DDBean description = root.getChildBean("application-client/description")[0]; assertEquals("Test DD for app-client1", description.getText()); - assertEquals("/application-client/description", description.getXpath()); + assertEquals("application-client/description", description.getXpath()); assertEquals(description, description.getChildBean("/application-client/description")[0]); } 1.5 +3 -3 incubator-geronimo/modules/jetty/src/java/org/apache/geronimo/jetty/deployment/WebAppDConfigRoot.java Index: WebAppDConfigRoot.java =================================================================== RCS file: /home/cvs/incubator-geronimo/modules/jetty/src/java/org/apache/geronimo/jetty/deployment/WebAppDConfigRoot.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- WebAppDConfigRoot.java 9 Feb 2004 23:11:04 -0000 1.4 +++ WebAppDConfigRoot.java 11 Feb 2004 08:02:21 -0000 1.5 @@ -91,7 +91,7 @@ private void replaceWebAppDConfigBean(JettyWebAppType webApp) { DDBean ddBean = getDDBean(); - webAppBean = new WebAppDConfigBean(ddBean.getChildBean("/web-app")[0], webApp); + webAppBean = new WebAppDConfigBean(ddBean.getChildBean(XPATHS[0])[0], webApp); } JettyWebAppDocument getWebAppDocument() { @@ -103,7 +103,7 @@ } public DConfigBean getDConfigBean(DDBean bean) throws ConfigurationException { - if ("/web-app".equals(bean.getXpath())) { + if (XPATHS[0].equals(bean.getXpath())) { return webAppBean; } return null; 1.9 +5 -6 incubator-geronimo/modules/jetty/src/test/org/apache/geronimo/jetty/deployment/WARConfigurationFactoryTest.java Index: WARConfigurationFactoryTest.java =================================================================== RCS file: /home/cvs/incubator-geronimo/modules/jetty/src/test/org/apache/geronimo/jetty/deployment/WARConfigurationFactoryTest.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- WARConfigurationFactoryTest.java 9 Feb 2004 00:01:20 -0000 1.8 +++ WARConfigurationFactoryTest.java 11 Feb 2004 08:02:21 -0000 1.9 @@ -59,7 +59,6 @@ import java.io.ByteArrayOutputStream; import javax.enterprise.deploy.spi.DConfigBeanRoot; -import javax.enterprise.deploy.spi.DeploymentConfiguration; import org.apache.geronimo.deployment.tools.loader.WebDeployable; import org.apache.geronimo.xbeans.geronimo.deployment.jetty.JettyContextRootType; @@ -94,7 +93,7 @@ WebDeployable deployable = new WebDeployable(classLoader.getResource("deployables/war1/")); WARConfiguration config = new WARConfiguration(deployable); DConfigBeanRoot configRoot = config.getDConfigBeanRoot(deployable.getDDBeanRoot()); - WebAppDConfigBean contextBean = (WebAppDConfigBean) configRoot.getDConfigBean(deployable.getChildBean("/web-app")[0]); + WebAppDConfigBean contextBean = (WebAppDConfigBean) configRoot.getDConfigBean(deployable.getChildBean(configRoot.getXpaths()[0])[0]); contextBean.setContextRoot("/test"); contextBean.setContextPriorityClassLoader(false); @@ -114,7 +113,7 @@ WebDeployable deployable = new WebDeployable(classLoader.getResource("deployables/war1/")); WARConfiguration config = new WARConfiguration(deployable); DConfigBeanRoot configRoot = config.getDConfigBeanRoot(deployable.getDDBeanRoot()); - WebAppDConfigBean contextBean = (WebAppDConfigBean) configRoot.getDConfigBean(deployable.getChildBean("/web-app")[0]); + WebAppDConfigBean contextBean = (WebAppDConfigBean) configRoot.getDConfigBean(deployable.getChildBean(configRoot.getXpaths()[0])[0]); contextBean.setContextRoot("/test"); contextBean.setContextPriorityClassLoader(true); checkContents(((WebAppDConfigRoot)configRoot).getWebAppDocument()); @@ -127,7 +126,7 @@ config = new WARConfiguration(deployable); configRoot = config.getDConfigBeanRoot(deployable.getDDBeanRoot()); - contextBean = (WebAppDConfigBean) configRoot.getDConfigBean(deployable.getChildBean("/web-app")[0]); + contextBean = (WebAppDConfigBean) configRoot.getDConfigBean(deployable.getChildBean(configRoot.getXpaths()[0])[0]); assertEquals("", contextBean.getContextRoot()); @@ -136,7 +135,7 @@ checkContents(((WebAppDConfigRoot)configRoot).getWebAppDocument()); - contextBean = (WebAppDConfigBean) configRoot.getDConfigBean(deployable.getChildBean("/web-app")[0]); + contextBean = (WebAppDConfigBean) configRoot.getDConfigBean(deployable.getChildBean(configRoot.getXpaths()[0])[0]); assertEquals("/test", contextBean.getContextRoot()); assertEquals(true, contextBean.getContextPriorityClassLoader()); }