You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by kw...@apache.org on 2006/07/17 20:56:09 UTC

svn commit: r422798 - in /incubator/tuscany/java/das/rdb/src: main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/ main/java/org/apache/tuscany/das/rdb/graphbuilder/schema/ test/java/org/apache/tuscany/das/rdb/test/ test/java/org/apache/tuscany/das/...

Author: kwilliams
Date: Mon Jul 17 11:56:08 2006
New Revision: 422798

URL: http://svn.apache.org/viewvc?rev=422798&view=rev
Log:
Brent's patch-a for TUSCANY-543

Added:
    incubator/tuscany/java/das/rdb/src/test/resources/staticInvalid.xml   (with props)
Modified:
    incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/GraphBuilderMetadata.java
    incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/schema/ESchemaMaker.java
    incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ExceptionTests.java
    incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/commands/ReadCustomersStaticTypesCommand.java
    incubator/tuscany/java/das/rdb/src/test/resources/basicStaticCustomer.xml
    incubator/tuscany/java/das/rdb/src/test/resources/companyMappingWithConverters.xml
    incubator/tuscany/java/das/rdb/src/test/resources/staticCustomer.xml
    incubator/tuscany/java/das/rdb/src/test/resources/staticCustomerOrder.xml

Modified: incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/GraphBuilderMetadata.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/GraphBuilderMetadata.java?rev=422798&r1=422797&r2=422798&view=diff
==============================================================================
--- incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/GraphBuilderMetadata.java (original)
+++ incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/GraphBuilderMetadata.java Mon Jul 17 11:56:08 2006
@@ -29,7 +29,6 @@
 import org.apache.tuscany.das.rdb.util.DebugUtil;
 
 import commonj.sdo.Type;
-import commonj.sdo.helper.TypeHelper;
 
 
 /**
@@ -39,21 +38,13 @@
 	private Config mappingModel;
 	private final Collection resultSets = new ArrayList();
 	private boolean debug = false;
-	private Type schema;
+	private String typeURI;
 
 
 	public GraphBuilderMetadata(Collection results, Config model, ResultSetShape shape) throws SQLException {
 		this.mappingModel = model;
-		if (model != null && model.getDataObjectModel() != null) {
-
-			Class rootClass;
-			try {
-				rootClass = Thread.currentThread().getContextClassLoader().loadClass(model.getDataObjectModel());				
-				this.schema = TypeHelper.INSTANCE.getType(rootClass);
-			} catch (ClassNotFoundException e) {
-				throw new RuntimeException(e);
-			}
-
+		if (model != null) {
+			this.typeURI = model.getDataObjectModel();		
 		}
 		
 		Iterator i = results.iterator();
@@ -96,10 +87,10 @@
 	 */
 	public Type getSchema() {
 		ESchemaMaker schemaMaker = new ESchemaMaker(this);
-		if ( this.schema == null ) {		
+		if ( this.typeURI == null ) {		
 			return schemaMaker.createTypes();
 		} else {
-			return schemaMaker.createTypes(this.schema);
+			return schemaMaker.createTypes(this.typeURI);
 		}
 	}
 

Modified: incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/schema/ESchemaMaker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/schema/ESchemaMaker.java?rev=422798&r1=422797&r2=422798&view=diff
==============================================================================
--- incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/schema/ESchemaMaker.java (original)
+++ incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/schema/ESchemaMaker.java Mon Jul 17 11:56:08 2006
@@ -183,10 +183,12 @@
 		return "http:///org.apache.tuscany.das.rdb/das";
 	}
 
-	public Type createTypes(Type aType) {
+	public Type createTypes(String uri) {
 		Type rootType = SDOUtil.createType(typeHelper, getURI() + "/DataGraphRoot", "DataGraphRoot", false);	
 		
-		EPackage pkg = ((TypeHelperImpl)typeHelper).getExtendedMetaData().getPackage(aType.getURI());
+		EPackage pkg = ((TypeHelperImpl)typeHelper).getExtendedMetaData().getPackage(uri);
+		if ( pkg == null ) 
+			throw new RuntimeException("SDO Types have not been registered for URI " + uri);
 		Iterator i = pkg.getEClassifiers().iterator();
 		while ( i.hasNext() ) {
 			Type type = (Type) i.next();

Modified: incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ExceptionTests.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ExceptionTests.java?rev=422798&r1=422797&r2=422798&view=diff
==============================================================================
--- incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ExceptionTests.java (original)
+++ incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ExceptionTests.java Mon Jul 17 11:56:08 2006
@@ -61,6 +61,18 @@
 
     }
 
+    public void testUnregisteredTypes() throws Exception {
+    	DAS das = DAS.FACTORY.createDAS(getConfig("staticInvalid.xml"), getConnection());
+        Command readCustomers = das.createCommand("select * from CUSTOMER where ID = 1");                   
+
+        try {
+        	 readCustomers.executeQuery();
+            
+            fail("Exception should be thrown");
+        } catch (RuntimeException ex) {
+            assertEquals("SDO Types have not been registered for URI invalidURI", ex.getMessage());
+        }
+    }
 
     public void testMissingMapping() throws Exception {
     	SDOUtil.registerStaticTypes(CustomerFactory.class);

Modified: incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/commands/ReadCustomersStaticTypesCommand.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/commands/ReadCustomersStaticTypesCommand.java?rev=422798&r1=422797&r2=422798&view=diff
==============================================================================
--- incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/commands/ReadCustomersStaticTypesCommand.java (original)
+++ incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/commands/ReadCustomersStaticTypesCommand.java Mon Jul 17 11:56:08 2006
@@ -48,7 +48,7 @@
 		t.setTypeName("Customer");
 		mapping.getTable().add(t);
 		
-		mapping.setDataObjectModel("org.apache.tuscany.das.rdb.test.customer.Customer");
+		mapping.setDataObjectModel("http:///org.apache.tuscany.das.rdb.test/customer.xsd");
 	}
 	
 	public ReadCustomersStaticTypesCommand() {

Modified: incubator/tuscany/java/das/rdb/src/test/resources/basicStaticCustomer.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/resources/basicStaticCustomer.xml?rev=422798&r1=422797&r2=422798&view=diff
==============================================================================
--- incubator/tuscany/java/das/rdb/src/test/resources/basicStaticCustomer.xml (original)
+++ incubator/tuscany/java/das/rdb/src/test/resources/basicStaticCustomer.xml Mon Jul 17 11:56:08 2006
@@ -16,7 +16,7 @@
  -->
 <Config xsi:noNamespaceSchemaLocation="http:///org.apache.tuscany.das.rdb/config.xsd" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-dataObjectModel="org.apache.tuscany.das.rdb.test.customer.Customer">
+dataObjectModel="http:///org.apache.tuscany.das.rdb.test/customer.xsd">
   
  <Table tableName="CUSTOMER" typeName="Customer">
    <Column columnName="ID" primaryKey="true"/>

Modified: incubator/tuscany/java/das/rdb/src/test/resources/companyMappingWithConverters.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/resources/companyMappingWithConverters.xml?rev=422798&r1=422797&r2=422798&view=diff
==============================================================================
--- incubator/tuscany/java/das/rdb/src/test/resources/companyMappingWithConverters.xml (original)
+++ incubator/tuscany/java/das/rdb/src/test/resources/companyMappingWithConverters.xml Mon Jul 17 11:56:08 2006
@@ -15,7 +15,8 @@
   limitations under the License.
  -->
 <Config xsi:noNamespaceSchemaLocation="http:///org.apache.tuscany.das.rdb/config.xsd" 
-xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" dataObjectModel="org.apache.tuscany.das.rdb.test.company.CompanyType">
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+dataObjectModel="org.apache.tuscany.das.rdb.test/company.xsd">
   
   <Table tableName="COMPANY" typeName="CompanyType">
     <Column columnName="ID" primaryKey="true"/>

Modified: incubator/tuscany/java/das/rdb/src/test/resources/staticCustomer.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/resources/staticCustomer.xml?rev=422798&r1=422797&r2=422798&view=diff
==============================================================================
--- incubator/tuscany/java/das/rdb/src/test/resources/staticCustomer.xml (original)
+++ incubator/tuscany/java/das/rdb/src/test/resources/staticCustomer.xml Mon Jul 17 11:56:08 2006
@@ -16,7 +16,7 @@
  -->
 <Config xsi:noNamespaceSchemaLocation="http:///org.apache.tuscany.das.rdb/config.xsd" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
-dataObjectModel="org.apache.tuscany.das.rdb.test.customer.Customer">
+dataObjectModel="http:///org.apache.tuscany.das.rdb.test/customer.xsd">
   
 	
 </Config>

Modified: incubator/tuscany/java/das/rdb/src/test/resources/staticCustomerOrder.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/resources/staticCustomerOrder.xml?rev=422798&r1=422797&r2=422798&view=diff
==============================================================================
--- incubator/tuscany/java/das/rdb/src/test/resources/staticCustomerOrder.xml (original)
+++ incubator/tuscany/java/das/rdb/src/test/resources/staticCustomerOrder.xml Mon Jul 17 11:56:08 2006
@@ -16,7 +16,7 @@
  -->
 <Config xsi:noNamespaceSchemaLocation="http:///org.apache.tuscany.das.rdb/config.xsd" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-dataObjectModel="org.apache.tuscany.das.rdb.test.customer.Customer">
+dataObjectModel="http:///org.apache.tuscany.das.rdb.test/customer.xsd">
 
   <Command name="Customer and Orders" SQL="SELECT * FROM CUSTOMER LEFT JOIN ANORDER ON CUSTOMER.ID = ANORDER.CUSTOMER_ID where CUSTOMER.ID = ?" kind="Select"/>
 		

Added: incubator/tuscany/java/das/rdb/src/test/resources/staticInvalid.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/resources/staticInvalid.xml?rev=422798&view=auto
==============================================================================
--- incubator/tuscany/java/das/rdb/src/test/resources/staticInvalid.xml (added)
+++ incubator/tuscany/java/das/rdb/src/test/resources/staticInvalid.xml Mon Jul 17 11:56:08 2006
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--
+  Copyright (c) 2005 The Apache Software Foundation or its licensors, as applicable.
+
+  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.
+ -->
+<Config xsi:noNamespaceSchemaLocation="http:///org.apache.tuscany.das.rdb/config.xsd" 
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+dataObjectModel="invalidURI">
+  
+	
+</Config>

Propchange: incubator/tuscany/java/das/rdb/src/test/resources/staticInvalid.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/das/rdb/src/test/resources/staticInvalid.xml
------------------------------------------------------------------------------
    svn:keywords = Rev,Date



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org