You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2004/11/17 09:33:39 UTC
svn commit: rev 76104 - in geronimo/trunk/modules/connector-builder/src: schema test-data/data test/org/apache/geronimo/connector/deployment
Author: djencks
Date: Wed Nov 17 00:33:37 2004
New Revision: 76104
Added:
geronimo/trunk/modules/connector-builder/src/test-data/data/dup-admin-object-name.xml
geronimo/trunk/modules/connector-builder/src/test-data/data/dup-connectionfactoryinstance-name.xml
geronimo/trunk/modules/connector-builder/src/test-data/data/dup-resourceadapter-name.xml
geronimo/trunk/modules/connector-builder/src/test/org/apache/geronimo/connector/deployment/PlanParsingTest.java
Modified:
geronimo/trunk/modules/connector-builder/src/schema/geronimo-connector_1_5.xsd
Log:
GERONIMO-374 Added uniqueness constraints for resourceadapter-name, connectionfactory name, and admin object message-destination-name
Modified: geronimo/trunk/modules/connector-builder/src/schema/geronimo-connector_1_5.xsd
==============================================================================
--- geronimo/trunk/modules/connector-builder/src/schema/geronimo-connector_1_5.xsd (original)
+++ geronimo/trunk/modules/connector-builder/src/schema/geronimo-connector_1_5.xsd Wed Nov 17 00:33:37 2004
@@ -54,6 +54,42 @@
</xsd:documentation>
</xsd:annotation>
+ <xsd:unique name="resourceadapter-instance-name-uniqueness">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The resourceadapter-instance element must have a unique name.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:selector xpath="ger:resourceadapter/ger:resourceadapter-instance"/>
+ <xsd:field xpath="ger:resourceadapter-name"/>
+ </xsd:unique>
+
+ <xsd:unique name="connectiondefinition-instance-name-uniqueness">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The connectiondefinition-instance element must have a unique name.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:selector xpath="ger:resourceadapter/ger:outbound-resourceadapter/ger:connection-definition/ger:connectiondefinition-instance"/>
+ <xsd:field xpath="ger:name"/>
+ </xsd:unique>
+
+ <xsd:unique name="admin-object-instance-name-uniqueness">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The admin-object-instance element must have a unique name.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:selector xpath="ger:adminobject/ger:adminobject-instance"/>
+ <xsd:field xpath="ger:message-destination-name"/>
+ </xsd:unique>
+
</xsd:element>
@@ -414,7 +450,8 @@
<xsd:sequence>
<xsd:element name="resourceadapter-instance"
type="ger:resourceadapter-instanceType"
- minOccurs="0"/>
+ minOccurs="0">
+ </xsd:element>
<xsd:element name="outbound-resourceadapter"
type="ger:outbound-resourceadapterType"
minOccurs="0">
Added: geronimo/trunk/modules/connector-builder/src/test-data/data/dup-admin-object-name.xml
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/connector-builder/src/test-data/data/dup-admin-object-name.xml Wed Nov 17 00:33:37 2004
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Copyright 2004 The Apache Software Foundation
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<connector xmlns="http://geronimo.apache.org/xml/ns/j2ee/connector" version="1.5"
+ configId="org/apache/geronimo/j2ee/deployment/test"
+ parentId="org/apache/geronimo/Server">
+
+ <resourceadapter>
+ <resourceadapter-instance>
+ <resourceadapter-name>testRA</resourceadapter-name>
+ <config-property-setting name="RAStringProperty">NewStringValue</config-property-setting>
+ <workmanager-name>DefaultWorkManager</workmanager-name>
+ </resourceadapter-instance>
+ </resourceadapter>
+
+ <adminobject>
+ <adminobject-interface>org.apache.geronimo.connector.mock.MockAdminObject</adminobject-interface>
+ <adminobject-class>org.apache.geronimo.connector.mock.MockAdminObjectImpl</adminobject-class>
+ <adminobject-instance>
+ <message-destination-name>tweedledee</message-destination-name>
+ <config-property-setting name="Tweedle">Dee-value</config-property-setting>
+ </adminobject-instance>
+ <adminobject-instance>
+ <message-destination-name>tweedledum</message-destination-name>
+ <config-property-setting name="Tweedle">Dum-value</config-property-setting>
+ </adminobject-instance>
+ </adminobject>
+ <adminobject>
+ <adminobject-interface>org.apache.geronimo.connector.mock.MockAdminObject</adminobject-interface>
+ <adminobject-class>org.apache.geronimo.connector.mock.MockAdminObjectImpl</adminobject-class>
+ <adminobject-instance>
+ <message-destination-name>tweedledee</message-destination-name>
+ <config-property-setting name="Tweedle">Dee-value</config-property-setting>
+ </adminobject-instance>
+ <adminobject-instance>
+ <message-destination-name>tweedledum</message-destination-name>
+ <config-property-setting name="Tweedle">Dum-value</config-property-setting>
+ </adminobject-instance>
+ </adminobject>
+
+
+</connector>
Added: geronimo/trunk/modules/connector-builder/src/test-data/data/dup-connectionfactoryinstance-name.xml
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/connector-builder/src/test-data/data/dup-connectionfactoryinstance-name.xml Wed Nov 17 00:33:37 2004
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Copyright 2004 The Apache Software Foundation
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<connector xmlns="http://geronimo.apache.org/xml/ns/j2ee/connector" version="1.5"
+ configId="org/apache/geronimo/j2ee/deployment/test"
+ parentId="org/apache/geronimo/Server">
+
+ <resourceadapter>
+ <resourceadapter-instance>
+ <resourceadapter-name>testRA1</resourceadapter-name>
+ <config-property-setting name="RAStringProperty">NewStringValue</config-property-setting>
+ <workmanager-name>DefaultWorkManager</workmanager-name>
+ </resourceadapter-instance>
+ <outbound-resourceadapter>
+ <connection-definition>
+ <connectionfactory-interface>javax.resource.cci.ConnectionFactory</connectionfactory-interface>
+ <connectiondefinition-instance>
+ <name>FirstTestOutboundConnectionFactory</name>
+ <config-property-setting name="OutboundStringProperty1">newvalue1</config-property-setting>
+ <config-property-setting name="OutboundStringProperty3">newvalue2</config-property-setting>
+ <connectionmanager>
+ <realm-bridge>TargetRealm</realm-bridge>
+ <xa-transaction>
+ <transaction-caching/>
+ </xa-transaction>
+ <partitioned-pool>
+ <max-size>10</max-size>
+ <blocking-timeout-milliseconds>5000</blocking-timeout-milliseconds>
+ <match-one/>
+ <partition-by-subject/>
+ </partitioned-pool>
+ </connectionmanager>
+ <global-jndi-name>connectionfactories/testcf</global-jndi-name>
+ <credential-interface>javax.resource.spi.security.PasswordCredential</credential-interface>
+ </connectiondefinition-instance>
+ </connection-definition>
+ </outbound-resourceadapter>
+ </resourceadapter>
+ <resourceadapter>
+ <resourceadapter-instance>
+ <resourceadapter-name>testRA2</resourceadapter-name>
+ <config-property-setting name="RAStringProperty">NewStringValue</config-property-setting>
+ <workmanager-name>DefaultWorkManager</workmanager-name>
+ </resourceadapter-instance>
+ <outbound-resourceadapter>
+ <connection-definition>
+ <connectionfactory-interface>javax.resource.cci.ConnectionFactory</connectionfactory-interface>
+ <connectiondefinition-instance>
+ <name>FirstTestOutboundConnectionFactory</name>
+ <config-property-setting name="OutboundStringProperty1">newvalue1</config-property-setting>
+ <config-property-setting name="OutboundStringProperty3">newvalue2</config-property-setting>
+ <connectionmanager>
+ <realm-bridge>TargetRealm</realm-bridge>
+ <xa-transaction>
+ <transaction-caching/>
+ </xa-transaction>
+ <partitioned-pool>
+ <max-size>10</max-size>
+ <blocking-timeout-milliseconds>5000</blocking-timeout-milliseconds>
+ <match-one/>
+ <partition-by-subject/>
+ </partitioned-pool>
+ </connectionmanager>
+ <global-jndi-name>connectionfactories/testcf</global-jndi-name>
+ <credential-interface>javax.resource.spi.security.PasswordCredential</credential-interface>
+ </connectiondefinition-instance>
+ </connection-definition>
+ </outbound-resourceadapter>
+ </resourceadapter>
+
+
+</connector>
Added: geronimo/trunk/modules/connector-builder/src/test-data/data/dup-resourceadapter-name.xml
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/connector-builder/src/test-data/data/dup-resourceadapter-name.xml Wed Nov 17 00:33:37 2004
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Copyright 2004 The Apache Software Foundation
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<connector xmlns="http://geronimo.apache.org/xml/ns/j2ee/connector" version="1.5"
+ configId="org/apache/geronimo/j2ee/deployment/test"
+ parentId="org/apache/geronimo/Server">
+
+ <resourceadapter>
+ <resourceadapter-instance>
+ <resourceadapter-name>testRA</resourceadapter-name>
+ <config-property-setting name="RAStringProperty">NewStringValue</config-property-setting>
+ <workmanager-name>DefaultWorkManager</workmanager-name>
+ </resourceadapter-instance>
+ </resourceadapter>
+ <resourceadapter>
+ <resourceadapter-instance>
+ <resourceadapter-name>testRA</resourceadapter-name>
+ <config-property-setting name="RAStringProperty">NewStringValue</config-property-setting>
+ <workmanager-name>DefaultWorkManager</workmanager-name>
+ </resourceadapter-instance>
+ </resourceadapter>
+
+
+</connector>
Added: geronimo/trunk/modules/connector-builder/src/test/org/apache/geronimo/connector/deployment/PlanParsingTest.java
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/connector-builder/src/test/org/apache/geronimo/connector/deployment/PlanParsingTest.java Wed Nov 17 00:33:37 2004
@@ -0,0 +1,68 @@
+package org.apache.geronimo.connector.deployment;
+
+import java.io.File;
+
+import junit.framework.TestCase;
+import org.apache.geronimo.schema.SchemaConversionUtils;
+import org.apache.geronimo.xbeans.geronimo.GerConnectorDocument;
+import org.apache.xmlbeans.XmlException;
+import org.apache.xmlbeans.XmlObject;
+
+/**
+ */
+public class PlanParsingTest extends TestCase {
+
+ File basedir = new File(System.getProperty("basedir", "."));
+
+ public void testResourceAdapterNameUniqueness() throws Exception {
+ File resourcePlan = new File(basedir, "src/test-data/data/dup-resourceadapter-name.xml");
+ assertTrue(resourcePlan.exists());
+
+ XmlObject plan = SchemaConversionUtils.parse(resourcePlan.toURL());
+ GerConnectorDocument doc = (GerConnectorDocument) plan.changeType(GerConnectorDocument.type);
+ if (doc == null) {
+ doc = (GerConnectorDocument) plan;
+ }
+ try {
+ SchemaConversionUtils.validateDD(doc);
+ fail("dup resource adapter name is invalid");
+ } catch (XmlException e) {
+ //expected
+ }
+ }
+
+ public void testConnectionFactoryNameUniqueness() throws Exception {
+ File resourcePlan = new File(basedir, "src/test-data/data/dup-connectionfactoryinstance-name.xml");
+ assertTrue(resourcePlan.exists());
+
+ XmlObject plan = SchemaConversionUtils.parse(resourcePlan.toURL());
+ GerConnectorDocument doc = (GerConnectorDocument) plan.changeType(GerConnectorDocument.type);
+ if (doc == null) {
+ doc = (GerConnectorDocument) plan;
+ }
+ try {
+ SchemaConversionUtils.validateDD(doc);
+ fail("dup connection factory name is invalid");
+ } catch (XmlException e) {
+ //expected
+ }
+ }
+
+ public void testAdminObjectNameUniqueness() throws Exception {
+ File resourcePlan = new File(basedir, "src/test-data/data/dup-admin-object-name.xml");
+ assertTrue(resourcePlan.exists());
+
+ XmlObject plan = SchemaConversionUtils.parse(resourcePlan.toURL());
+ GerConnectorDocument doc = (GerConnectorDocument) plan.changeType(GerConnectorDocument.type);
+ if (doc == null) {
+ doc = (GerConnectorDocument) plan;
+ }
+ try {
+ SchemaConversionUtils.validateDD(doc);
+ fail("dup admin object name is invalid");
+ } catch (XmlException e) {
+ //expected
+ }
+ }
+
+}