[teiid-commits] teiid SVN: r3909 - in trunk: test-integration/common/src/test/java/org/teiid/jdbc and 1 other directory.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Fri Mar 2 21:23:46 EST 2012


Author: shawkins
Date: 2012-03-02 21:23:45 -0500 (Fri, 02 Mar 2012)
New Revision: 3909

Modified:
   trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCMetdataProcessor.java
   trunk/test-integration/common/src/test/java/org/teiid/jdbc/TestDymamicImportedMetaData.java
Log:
TEIID-1959 added excludeTables and excludeProcedures

Modified: trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCMetdataProcessor.java
===================================================================
--- trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCMetdataProcessor.java	2012-03-02 17:35:05 UTC (rev 3908)
+++ trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCMetdataProcessor.java	2012-03-03 02:23:45 UTC (rev 3909)
@@ -33,6 +33,7 @@
 import java.util.Map;
 import java.util.Set;
 import java.util.TreeMap;
+import java.util.regex.Pattern;
 
 import org.teiid.core.util.StringUtil;
 import org.teiid.logging.LogConstants;
@@ -90,6 +91,9 @@
 	private Set<String> unsignedTypes = new HashSet<String>();
 	private String quoteString;
 	
+	private Pattern excludeTables;
+	private Pattern excludeProcedures;
+	
 	public void getConnectorMetadata(Connection conn, MetadataFactory metadataFactory)
 			throws SQLException, TranslatorException {
 		DatabaseMetaData metadata = conn.getMetaData();
@@ -149,6 +153,9 @@
 				}
 			}
 			String fullProcedureName = getFullyQualifiedName(procedureCatalog, procedureSchema, procedureName);
+			if (excludeProcedures != null && excludeProcedures.matcher(fullProcedureName).matches()) {
+				continue;
+			}
 			Procedure procedure = metadataFactory.addProcedure(useFullSchemaName?fullProcedureName:procedureName);
 			procedure.setNameInSource(getFullyQualifiedName(procedureCatalog, procedureSchema, nameInSource, true));
 			ResultSet columns = metadata.getProcedureColumns(catalog, procedureSchema, procedureName, null);
@@ -209,6 +216,9 @@
 			String tableSchema = tables.getString(2);
 			String tableName = tables.getString(3);
 			String fullName = getFullyQualifiedName(tableCatalog, tableSchema, tableName);
+			if (excludeTables != null && excludeTables.matcher(fullName).matches()) {
+				continue;
+			}
 			Table table = metadataFactory.addTable(useFullSchemaName?fullName:tableName);
 			table.setNameInSource(getFullyQualifiedName(tableCatalog, tableSchema, tableName, true));
 			table.setSupportsUpdate(true);
@@ -486,4 +496,12 @@
 		this.useCatalogName = useCatalog;
 	}
 	
+	public void setExcludeProcedures(String excludeProcedures) {
+		this.excludeProcedures = Pattern.compile(excludeProcedures, Pattern.DOTALL | Pattern.CASE_INSENSITIVE);
+	}
+	
+	public void setExcludeTables(String excludeTables) {
+		this.excludeTables = Pattern.compile(excludeTables, Pattern.DOTALL | Pattern.CASE_INSENSITIVE);
+	}
+	
 }

Modified: trunk/test-integration/common/src/test/java/org/teiid/jdbc/TestDymamicImportedMetaData.java
===================================================================
--- trunk/test-integration/common/src/test/java/org/teiid/jdbc/TestDymamicImportedMetaData.java	2012-03-02 17:35:05 UTC (rev 3908)
+++ trunk/test-integration/common/src/test/java/org/teiid/jdbc/TestDymamicImportedMetaData.java	2012-03-03 02:23:45 UTC (rev 3909)
@@ -28,6 +28,8 @@
 import java.util.LinkedHashMap;
 import java.util.Properties;
 
+import org.junit.After;
+import org.junit.Before;
 import org.junit.Test;
 import org.teiid.core.types.DataTypeManager;
 import org.teiid.core.util.UnitTestUtil;
@@ -47,6 +49,16 @@
 @SuppressWarnings("nls")
 public class TestDymamicImportedMetaData {
 
+	FakeServer server;
+	
+	@Before public void setup() {
+		server = new FakeServer();
+	}
+	
+	@After public void teardown() {
+		server.stop();
+	}
+	
 	private MetadataFactory getMetadata(Properties importProperties, Connection conn)
 			throws TranslatorException {
 		MetadataFactory mf = createMetadataFactory("test", importProperties);
@@ -63,7 +75,6 @@
 	}
 	
     @Test public void testProcImport() throws Exception {
-    	FakeServer server = new FakeServer();
     	server.deployVDB("vdb", UnitTestUtil.getTestDataPath() + "/TestCase3473/test.vdb");
     	Connection conn = server.createConnection("jdbc:teiid:vdb"); //$NON-NLS-1$
     	
@@ -71,11 +82,25 @@
     	importProperties.setProperty("importer.importProcedures", Boolean.TRUE.toString());
     	MetadataFactory mf = getMetadata(importProperties, conn);
     	Procedure p = mf.getMetadataStore().getSchemas().get("TEST").getProcedures().get("VDB.SYS.GETXMLSCHEMAS");
+    	assertEquals(29, mf.getMetadataStore().getSchemas().get("TEST").getTables().size());
+    	assertEquals(8, mf.getMetadataStore().getSchemas().get("TEST").getProcedures().size());
     	assertEquals(1, p.getResultSet().getColumns().size());
     }
     
+    @Test public void testExcludes() throws Exception {
+    	server.deployVDB("vdb", UnitTestUtil.getTestDataPath() + "/TestCase3473/test.vdb");
+    	Connection conn = server.createConnection("jdbc:teiid:vdb"); //$NON-NLS-1$
+    	
+    	Properties importProperties = new Properties();
+    	importProperties.setProperty("importer.importProcedures", Boolean.TRUE.toString());
+    	importProperties.setProperty("importer.excludeTables", "VDB\\.SYS\\..*");
+    	importProperties.setProperty("importer.excludeProcedures", "VDB\\..*");
+    	MetadataFactory mf = getMetadata(importProperties, conn);
+    	assertEquals(18, mf.getMetadataStore().getSchemas().get("TEST").getTables().size());
+    	assertEquals(0, mf.getMetadataStore().getSchemas().get("TEST").getProcedures().size());
+    }
+    
     @Test public void testDuplicateException() throws Exception {
-    	FakeServer server = new FakeServer();
     	MetadataFactory mf = createMetadataFactory("x", new Properties());
     	MetadataFactory mf1 = createMetadataFactory("y", new Properties());
     	
@@ -107,7 +132,6 @@
     }
     
     @Test public void testUseCatalog() throws Exception {
-    	FakeServer server = new FakeServer();
     	MetadataFactory mf = createMetadataFactory("x", new Properties());
     	
     	Table dup = mf.addTable("dup");



More information about the teiid-commits mailing list