[teiid-commits] teiid SVN: r2157 - in trunk: adminshell/src/main/java/org/teiid/adminshell and 46 other directories.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Thu May 27 13:40:15 EDT 2010


Author: rareddy
Date: 2010-05-27 13:40:05 -0400 (Thu, 27 May 2010)
New Revision: 2157

Added:
   trunk/api/src/main/java/org/teiid/translator/Translator.java
   trunk/client/src/main/java/org/teiid/adminapi/impl/VDBTranslatorMetaData.java
   trunk/runtime/src/main/java/org/teiid/deployers/TranslatorAnnotationScanningDeployer.java
   trunk/runtime/src/main/java/org/teiid/deployers/TranslatorUtil.java
   trunk/runtime/src/test/java/org/teiid/deployers/TestTranslatorUtil.java
Removed:
   trunk/build/kits/jboss-container/deploy/teiid/connectors/jdbc-translator.xml
   trunk/build/kits/jboss-container/deploy/teiid/connectors/ldap-translator.xml
   trunk/build/kits/jboss-container/deploy/teiid/connectors/loopback-translator.xml
   trunk/build/kits/jboss-container/deploy/teiid/connectors/salesforce-translator.xml
   trunk/build/kits/jboss-container/deploy/teiid/connectors/xml-translator.xml
   trunk/runtime/src/main/java/org/teiid/deployers/TranslatorPropertyUtil.java
   trunk/runtime/src/test/java/org/teiid/deployers/TestTranslatorDeployer.java
Modified:
   trunk/adminshell/src/main/java/org/teiid/adminshell/AdminShell.java
   trunk/api/src/main/java/org/teiid/translator/ExecutionFactory.java
   trunk/api/src/main/java/org/teiid/translator/TranslatorProperty.java
   trunk/build/assembly/jboss-container/dist.xml
   trunk/build/kits/jboss-container/deployers/teiid.deployer/teiid-deployer-jboss-beans.xml
   trunk/client/src/main/java/org/teiid/adminapi/Admin.java
   trunk/client/src/main/java/org/teiid/adminapi/Translator.java
   trunk/client/src/main/java/org/teiid/adminapi/VDB.java
   trunk/client/src/main/java/org/teiid/adminapi/impl/TranslatorMetaData.java
   trunk/client/src/main/java/org/teiid/adminapi/impl/VDBMetaData.java
   trunk/client/src/main/resources/vdb-deployer.xsd
   trunk/connectors/sandbox/translator-yahoo/src/main/java/org/teiid/translator/yahoo/YahooExecutionFactory.java
   trunk/connectors/sandbox/translator-yahoo/src/main/resources/META-INF/jboss-beans.xml
   trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCExecutionFactory.java
   trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/SimpleJDBCExecutionFactory.java
   trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/access/AccessExecutionFactory.java
   trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/db2/DB2ExecutionFactory.java
   trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/derby/DerbyExecutionFactory.java
   trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/h2/H2ExecutionFactory.java
   trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/hsql/HsqlExecutionFactory.java
   trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/informix/InformixExecutionFactory.java
   trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/mm/MetaMatrixExecutionFactory.java
   trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/mysql/MySQL5ExecutionFactory.java
   trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/mysql/MySQLExecutionFactory.java
   trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/oracle/OracleExecutionFactory.java
   trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/postgresql/PostgreSQLExecutionFactory.java
   trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/sqlserver/SQLServerExecutionFactory.java
   trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/sybase/SybaseExecutionFactory.java
   trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/teiid/TeiidExecutionFactory.java
   trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/teradata/TeradataExecutionFactory.java
   trunk/connectors/translator-jdbc/src/main/resources/META-INF/jboss-beans.xml
   trunk/connectors/translator-ldap/src/main/java/org/teiid/translator/ldap/LDAPExecutionFactory.java
   trunk/connectors/translator-ldap/src/main/resources/META-INF/jboss-beans.xml
   trunk/connectors/translator-loopback/src/main/java/org/teiid/translator/loopback/LoopbackExecutionFactory.java
   trunk/connectors/translator-loopback/src/main/resources/META-INF/jboss-beans.xml
   trunk/connectors/translator-salesforce/src/main/java/org/teiid/translator/salesforce/SalesForceExecutionFactory.java
   trunk/connectors/translator-salesforce/src/main/resources/META-INF/jboss-beans.xml
   trunk/connectors/translator-text/src/main/java/org/teiid/translator/text/TextExecutionFactory.java
   trunk/connectors/translator-text/src/main/resources/META-INF/jboss-beans.xml
   trunk/connectors/translator-xml/pom.xml
   trunk/connectors/translator-xml/src/main/java/org/teiid/translator/xml/XMLExecutionFactory.java
   trunk/connectors/translator-xml/src/main/resources/META-INF/jboss-beans.xml
   trunk/console/src/main/java/org/teiid/rhq/plugin/TranslatorComponent.java
   trunk/console/src/main/java/org/teiid/rhq/plugin/TranslatorDiscoveryComponent.java
   trunk/console/src/main/resources/META-INF/rhq-plugin.xml
   trunk/engine/pom.xml
   trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorManager.java
   trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/TranslatorRepository.java
   trunk/jboss-integration/src/main/java/org/teiid/adminapi/jboss/Admin.java
   trunk/jboss-integration/src/main/java/org/teiid/adminapi/jboss/AdminObjectBuilder.java
   trunk/pom.xml
   trunk/runtime/src/main/java/org/teiid/deployers/ManagedPropertyUtil.java
   trunk/runtime/src/main/java/org/teiid/deployers/TranslatorDeployer.java
   trunk/runtime/src/main/java/org/teiid/deployers/VDBDeployer.java
   trunk/runtime/src/main/java/org/teiid/deployers/VDBParserDeployer.java
   trunk/runtime/src/main/java/org/teiid/templates/TranslatorMetadataICF.java
   trunk/runtime/src/main/java/org/teiid/templates/TranslatorTemplateInfo.java
   trunk/runtime/src/main/java/org/teiid/templates/TranslatorTemplateInfoFactory.java
   trunk/runtime/src/main/resources/org/teiid/runtime/i18n.properties
   trunk/runtime/src/test/java/org/teiid/deployers/TestTranslatorMetadata.java
   trunk/test-integration/db/src/test/java/org/teiid/adminapi/jboss/TestConnectorBindings.java
Log:
TEIID-1079: adding annotation based deployer for translator; providing a way to override them in the vdb.xml

Modified: trunk/adminshell/src/main/java/org/teiid/adminshell/AdminShell.java
===================================================================
--- trunk/adminshell/src/main/java/org/teiid/adminshell/AdminShell.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/adminshell/src/main/java/org/teiid/adminshell/AdminShell.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -109,14 +109,8 @@
 	    p = props;
 	}
 	
-	@Doc(text = "Create a Translator")
-	public static Translator createTranslator(
-			@Doc(text = "deployed name") String deployedName,
-			@Doc(text = "type name") String typeName, 
-			Properties properties) throws AdminException {
-		return getAdmin().createTranslator(deployedName, typeName, properties);
-	}
 
+
 	@Doc(text = "Adds a role to the specified policy")
 	public static void addRoleToDataPolicy(
 			@Doc(text = "vdb name") String vdbName, 
@@ -152,13 +146,6 @@
 		getAdmin().clearCache(cacheType);
 	}
 
-	@Doc(text = "Delete a Translator")
-	public static void deleteTranslator(
-			@Doc(text = "deployed name") String deployedName)
-			throws AdminException {
-		getAdmin().deleteTranslator(deployedName);
-	}
-
 	@Doc(text = "Delete a VDB")
 	public static void deleteVDB(
 			@Doc(text = "vdb name") String vdbName, 
@@ -184,13 +171,8 @@
 		return getAdmin().getTranslator(deployedName);
 	}
 
-	@Doc(text = "Get all translator name Strings")
-	public static Set<String> getTranslatorTemplateNames() throws AdminException {
-		return getAdmin().getTranslatorTemplateNames();
-	}
-
 	@Doc(text = "Get all PropertyDefinitions for the given template")
-	public static Collection<PropertyDefinition> getTranslatorTemplatePropertyDefinitions(
+	public static Collection<PropertyDefinition> getTemplatePropertyDefinitions(
 			@Doc(text = "template name") String templateName) throws AdminException {
 		return getAdmin().getTemplatePropertyDefinitions(templateName);
 	}
@@ -253,14 +235,6 @@
 				.removeRoleFromDataPolicy(vdbName, vdbVersion, policyName, role);
 	}
 
-	@Doc(text = "Set a Translator property")
-	public static void setTranslatorProperty(
-			@Doc(text = "deployed name") String deployedName,
-			@Doc(text = "propery name") String propertyName, 
-			@Doc(text = "value") String propertyValue) throws AdminException {
-		getAdmin().setTranslatorProperty(deployedName, propertyName,propertyValue);
-	}
-
 	@Doc(text = "Set a runtime property")
 	public static void setRuntimeProperty(
 			@Doc(text = "name") String propertyName, 

Modified: trunk/api/src/main/java/org/teiid/translator/ExecutionFactory.java
===================================================================
--- trunk/api/src/main/java/org/teiid/translator/ExecutionFactory.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/api/src/main/java/org/teiid/translator/ExecutionFactory.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -94,6 +94,7 @@
 	/**
 	 * Initialize the connector with supplied configuration
 	 */
+	@SuppressWarnings("unused")
 	public void start() throws TranslatorException {
 	}
 	    
@@ -101,7 +102,7 @@
 	 * Defines if the Connector is read-only connector 
 	 * @return
 	 */
-	@TranslatorProperty(managed=true, display="Is Immutable",description="Is Immutable, True if the source never changes.",advanced=true)
+	@TranslatorProperty(display="Is Immutable",description="Is Immutable, True if the source never changes.",advanced=true)
 	public boolean isImmutable() {
 		return immutable;
 	}
@@ -114,7 +115,7 @@
 	 * Throw exception if there are more rows in the result set than specified in the MaxResultRows setting.
 	 * @return
 	 */
-	@TranslatorProperty(managed=true, display="Exception on Exceeding Max Rows",description="Indicates if an Exception should be thrown if the specified value for Maximum Result Rows is exceeded; else no exception and no more than the maximum will be returned",advanced=true)
+	@TranslatorProperty(display="Exception on Exceeding Max Rows",description="Indicates if an Exception should be thrown if the specified value for Maximum Result Rows is exceeded; else no exception and no more than the maximum will be returned",advanced=true)
 	public boolean isExceptionOnMaxRows() {
 		return exceptionOnMaxRows;
 	}
@@ -127,9 +128,9 @@
 	 * Maximum result set rows to fetch
 	 * @return
 	 */
-	@TranslatorProperty(managed=true, display="Maximum Result Rows", description="Maximum Result Rows allowed", advanced=true)
+	@TranslatorProperty(display="Maximum Result Rows", description="Maximum Result Rows allowed", advanced=true)
 	public int getMaxResultRows() {
-		return maxResultRows = DEFAULT_MAX_ROWS;
+		return maxResultRows;
 	}
 
 	public void setMaxResultRows(int arg0) {
@@ -140,7 +141,7 @@
 	 * Shows the XA transaction capability of the Connector.
 	 * @return
 	 */
-	@TranslatorProperty(managed=true, display="Is XA Capable", description="True, if this connector supports XA Transactions")
+	@TranslatorProperty(display="Is XA Capable", description="True, if this connector supports XA Transactions")
 	public boolean isXaCapable() {
 		return xaCapable;
 	}
@@ -197,14 +198,17 @@
 		return createUpdateExecution(command, executionContext, metadata, connectionFactory);
 	}
 
+	@SuppressWarnings("unused")
 	public ResultSetExecution createResultSetExecution(QueryExpression command, ExecutionContext executionContext, RuntimeMetadata metadata, Object connection) throws TranslatorException {
 		throw new TranslatorException("Unsupported Execution"); //$NON-NLS-1$
 	}
 
+	@SuppressWarnings("unused")
 	public ProcedureExecution createProcedureExecution(Call command, ExecutionContext executionContext, RuntimeMetadata metadata, Object connection) throws TranslatorException {
 		throw new TranslatorException("Unsupported Execution");//$NON-NLS-1$
 	}
 
+	@SuppressWarnings("unused")
 	public UpdateExecution createUpdateExecution(Command command, ExecutionContext executionContext, RuntimeMetadata metadata, Object connection) throws TranslatorException {
 		throw new TranslatorException("Unsupported Execution");//$NON-NLS-1$
 	}   

Added: trunk/api/src/main/java/org/teiid/translator/Translator.java
===================================================================
--- trunk/api/src/main/java/org/teiid/translator/Translator.java	                        (rev 0)
+++ trunk/api/src/main/java/org/teiid/translator/Translator.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -0,0 +1,40 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership.  Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * 
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * 
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA.
+ */
+package org.teiid.translator;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+ at Target({ElementType.TYPE})
+ at Retention(RetentionPolicy.RUNTIME)
+ at Inherited
+ at Documented
+/**
+ * This annotation defines a instance of a translator
+ */
+public @interface Translator {
+	String name();
+}

Modified: trunk/api/src/main/java/org/teiid/translator/TranslatorProperty.java
===================================================================
--- trunk/api/src/main/java/org/teiid/translator/TranslatorProperty.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/api/src/main/java/org/teiid/translator/TranslatorProperty.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -66,10 +66,4 @@
 	 * @return
 	 */
 	boolean masked() default false;
-	
-	/**
-	 * True if this is a full managed property, rather than just a name value pair
-	 * @return
-	 */
-	boolean managed() default false;
 }

Modified: trunk/build/assembly/jboss-container/dist.xml
===================================================================
--- trunk/build/assembly/jboss-container/dist.xml	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/build/assembly/jboss-container/dist.xml	2010-05-27 17:40:05 UTC (rev 2157)
@@ -46,8 +46,7 @@
         <includeSubModules>true</includeSubModules>
 
         <includes>
-            <include>org.jboss.teiid:teiid-jboss-integration</include>
-            <include>org.jboss.teiid.connectors:translator-xml</include>
+            <include>org.jboss.teiid:teiid-jboss-integration</include>            
         </includes>
 
         <binaries>
@@ -79,12 +78,7 @@
             <include>org.jboss.teiid.connectors:translator-salesforce</include>
             <include>org.jboss.teiid.connectors:connector-salesforce:rar</include>
             <include>org.jboss.teiid.connectors:connector-ws:rar</include>
-            
-            <!-- 
-            <include>org.jboss.teiid.connectors:connector-xml-http:rar</include>
-            <include>org.jboss.teiid.connectors:connector-xml-file:rar</include>
-            <include>org.jboss.teiid.connectors:connector-xml-soap:rar</include>
-             -->
+            <include>org.jboss.teiid.connectors:translator-xml</include>
         </includes>
 
         <binaries>        

Deleted: trunk/build/kits/jboss-container/deploy/teiid/connectors/jdbc-translator.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/jdbc-translator.xml	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/jdbc-translator.xml	2010-05-27 17:40:05 UTC (rev 2157)
@@ -1,93 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<translator-factory>
-    <translator>
-        <name>access</name>
-        <execution-factory-class>org.teiid.translator.jdbc.access.AccessExecutionFactory</execution-factory-class>
-        <template-name>translator-jdbc-${project.version}</template-name>
-        <xa-capable>true</xa-capable>
-    </translator>
-
-    <translator>
-        <name>db2</name>
-        <execution-factory-class>org.teiid.translator.jdbc.db2.DB2ExecutionFactory</execution-factory-class>
-        <template-name>translator-jdbc-${project.version}</template-name>
-        <xa-capable>true</xa-capable>
-    </translator>
-
-    <translator>
-        <name>derby</name>
-        <execution-factory-class>org.teiid.translator.jdbc.derby.DerbyExecutionFactory</execution-factory-class>
-        <template-name>translator-jdbc-${project.version}</template-name>
-        <xa-capable>true</xa-capable>
-    </translator>
-
-    <translator>
-        <name>h2</name>
-        <execution-factory-class>org.teiid.translator.jdbc.h2.H2ExecutionFactory</execution-factory-class>
-        <template-name>translator-jdbc-${project.version}</template-name>
-        <xa-capable>true</xa-capable>
-    </translator>
-
-    <translator>
-        <name>hsql</name>
-        <execution-factory-class>org.teiid.translator.jdbc.hsql.HsqlExecutionFactory</execution-factory-class>
-        <template-name>translator-jdbc-${project.version}</template-name>
-        <xa-capable>true</xa-capable>
-    </translator>
-
-    <translator>
-        <name>mysql</name>
-        <execution-factory-class>org.teiid.translator.jdbc.mysql.MySQLExecutionFactory</execution-factory-class>
-        <template-name>translator-jdbc-${project.version}</template-name>
-        <xa-capable>true</xa-capable>
-    </translator>
-    
-    <translator>
-        <name>mysql5</name>
-        <execution-factory-class>org.teiid.translator.jdbc.mysql.MySQL5ExecutionFactory</execution-factory-class>
-        <template-name>translator-jdbc-${project.version}</template-name>
-        <xa-capable>true</xa-capable>
-    </translator>    
-
-    <translator>
-        <name>oracle</name>
-        <execution-factory-class>org.teiid.translator.jdbc.oracle.OracleExecutionFactory</execution-factory-class>
-        <template-name>translator-jdbc-${project.version}</template-name>
-        <xa-capable>true</xa-capable>
-    </translator>
-
-    <translator>
-        <name>postgresql</name>
-        <execution-factory-class>org.teiid.translator.jdbc.postgresql.PostgreSQLExecutionFactory</execution-factory-class>
-        <template-name>translator-jdbc-${project.version}</template-name>
-        <xa-capable>true</xa-capable>
-    </translator>
-
-    <translator>
-        <name>sqlserver</name>
-        <execution-factory-class>org.teiid.translator.jdbc.sqlserver.SQLServerExecutionFactory</execution-factory-class>
-        <xa-capable>true</xa-capable>
-        <template-name>translator-jdbc-${project.version}</template-name>
-    </translator>
-
-    <translator>
-        <name>sybase</name>
-        <execution-factory-class>org.teiid.translator.jdbc.sybase.SybaseExecutionFactory</execution-factory-class>
-        <xa-capable>true</xa-capable>
-        <template-name>translator-jdbc-${project.version}</template-name>
-    </translator>
-    
-    <translator>
-        <name>jdbc-simple</name>
-        <execution-factory-class>org.teiid.translator.jdbc.SimpleJDBCExecutionFactory</execution-factory-class>
-        <xa-capable>true</xa-capable>
-        <template-name>translator-jdbc-${project.version}</template-name>
-    </translator>
-    
-    <translator>
-        <name>jdbc-ansi</name>
-        <execution-factory-class>org.teiid.translator.jdbc.JDBCExecutionFactory</execution-factory-class>
-        <xa-capable>true</xa-capable>
-        <template-name>translator-jdbc-${project.version}</template-name>
-    </translator>
-</translator-factory>
\ No newline at end of file

Deleted: trunk/build/kits/jboss-container/deploy/teiid/connectors/ldap-translator.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/ldap-translator.xml	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/ldap-translator.xml	2010-05-27 17:40:05 UTC (rev 2157)
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<translator-factory>
-    <translator>
-        <name>ldap</name>
-        <execution-factory-class>org.teiid.translator.ldap.LDAPExecutionFactory</execution-factory-class>
-        <template-name>translator-ldap-${project.version}</template-name>
-    </translator>
-</translator-factory>
\ No newline at end of file

Deleted: trunk/build/kits/jboss-container/deploy/teiid/connectors/loopback-translator.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/loopback-translator.xml	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/loopback-translator.xml	2010-05-27 17:40:05 UTC (rev 2157)
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<translator-factory>
-    <translator>
-        <name>loopback</name>
-        <execution-factory-class>org.teiid.translator.loopback.LoopbackExecutionFactory</execution-factory-class>
-        <template-name>translator-loopback-${project.version}</template-name>
-    </translator>
-</translator-factory>
\ No newline at end of file

Deleted: trunk/build/kits/jboss-container/deploy/teiid/connectors/salesforce-translator.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/salesforce-translator.xml	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/salesforce-translator.xml	2010-05-27 17:40:05 UTC (rev 2157)
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<translator-factory>
-    <translator>
-        <name>salesforce</name>
-        <execution-factory-class>org.teiid.translator.salesforce.SalesForceExecutionFactory</execution-factory-class>
-        <template-name>translator-salesforce-${project.version}</template-name>
-    </translator>
-</translator-factory>
\ No newline at end of file

Deleted: trunk/build/kits/jboss-container/deploy/teiid/connectors/xml-translator.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/xml-translator.xml	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/xml-translator.xml	2010-05-27 17:40:05 UTC (rev 2157)
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<translator-factory>
-    <translator>
-        <name>xml</name>
-        <execution-factory-class>org.teiid.translator.xml.XMLExecutionFactory</execution-factory-class>
-        <template-name>translator-xml-${project.version}</template-name>
-    </translator>
-</translator-factory>
\ No newline at end of file

Modified: trunk/build/kits/jboss-container/deployers/teiid.deployer/teiid-deployer-jboss-beans.xml
===================================================================
--- trunk/build/kits/jboss-container/deployers/teiid.deployer/teiid-deployer-jboss-beans.xml	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/build/kits/jboss-container/deployers/teiid.deployer/teiid-deployer-jboss-beans.xml	2010-05-27 17:40:05 UTC (rev 2157)
@@ -65,6 +65,12 @@
         <property name="translatorRepository"><inject bean="translatorRepository"/></property>
         <property name="VDBStatusChecker"><inject bean="VDBStatusChecker"/></property>
     </bean>
+    
+    <bean name="TranslatorAnnotationScanner" class="org.teiid.deployers.TranslatorAnnotationScanningDeployer">
+        <property name="translatorRepository"><inject bean="translatorRepository"/></property>
+        <property name="VDBStatusChecker"><inject bean="VDBStatusChecker"/></property>
+        <property name="managedObjectFactory"><inject bean="ManagedObjectFactory"/></property>
+    </bean>
             
     <bean name="VDBStatusChecker" class="org.teiid.deployers.VDBStatusChecker">
         <property name="VDBRepository"><inject bean="VDBRepository"/></property>

Modified: trunk/client/src/main/java/org/teiid/adminapi/Admin.java
===================================================================
--- trunk/client/src/main/java/org/teiid/adminapi/Admin.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/client/src/main/java/org/teiid/adminapi/Admin.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -45,34 +45,6 @@
     void assignToModel(String vdbName, int vdbVersion, String modelName, String sourceName, String translatorName, String dsName) throws AdminException;
     
     /**
-     * Set/update the property for the Connection Factory identified by the given deployed name.
-     * @param deployedName
-     * @param propertyName
-     * @param propertyValue
-     * @throws AdminException
-     */
-    void setTranslatorProperty(String deployedName, String propertyName, String propertyValue) throws AdminException;
-    
-    /**
-     * Create a {@link Translator}
-     *
-     * @param deployedName  Translator name that will be added to Configuration
-     * @param templateName template name 
-     * @param properties Name & Value pair need to deploy the Connection Factory
-
-     * @throws AdminException 
-     */
-    Translator createTranslator(String deployedName, String templateName, Properties properties) throws AdminException;
-
-    /**
-     * Delete the {@link Translator} from the Configuration
-     *
-     * @param deployedName - deployed name of the connection factory
-     * @throws AdminException  
-     */
-    void deleteTranslator(String deployedName) throws AdminException;
-    
-    /**
      * Deploy a {@link VDB} file.
      * @param name  Name of the VDB file to save under
      * @param VDB 	VDB.
@@ -109,14 +81,6 @@
     void setRuntimeProperty(String propertyName, String propertyValue) throws AdminException;
     
     /**
-     * Get the translator templates  available in the configuration.
-     *
-     * @return Set of connector template names.
-     * @throws AdminException 
-     */
-    Set<String> getTranslatorTemplateNames() throws AdminException;
-
-    /**
      * Get the VDBs that currently deployed in the system
      *
      * @return Collection of {@link VDB}s.  There could be multiple VDBs with the

Modified: trunk/client/src/main/java/org/teiid/adminapi/Translator.java
===================================================================
--- trunk/client/src/main/java/org/teiid/adminapi/Translator.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/client/src/main/java/org/teiid/adminapi/Translator.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -22,17 +22,13 @@
 package org.teiid.adminapi;
 
 
-public interface Translator extends AdminObject{
+public interface Translator extends AdminObject{		
+	public static final String EXECUTION_FACTORY_CLASS = "execution-factory-class"; //$NON-NLS-1$
+	public static final String TRANSLATOR_PROPERTY = "property"; //$NON-NLS-1$
 	
-	public String getExecutionFactoryClass();
-	
-	public boolean isImmutable();
-
-	public boolean isExceptionOnMaxRows();
-
-	public int getMaxResultRows();
-	
-	public boolean isXaCapable();
-
-	public String getTemplateName();
+	/**
+	 * Get the Translator type
+	 * @return
+	 */
+	public String getType();
 }

Modified: trunk/client/src/main/java/org/teiid/adminapi/VDB.java
===================================================================
--- trunk/client/src/main/java/org/teiid/adminapi/VDB.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/client/src/main/java/org/teiid/adminapi/VDB.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -87,4 +87,10 @@
      * @return
      */
     public List<DataPolicy> getDataPolicies();
+    
+    /**
+     * Get the list of translators defined in the VDB
+     * @return
+     */
+    public List<Translator> getOverrideTranslators();
 }

Modified: trunk/client/src/main/java/org/teiid/adminapi/impl/TranslatorMetaData.java
===================================================================
--- trunk/client/src/main/java/org/teiid/adminapi/impl/TranslatorMetaData.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/client/src/main/java/org/teiid/adminapi/impl/TranslatorMetaData.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -21,128 +21,12 @@
  */
 package org.teiid.adminapi.impl;
 
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-
 import org.jboss.managed.api.annotation.ManagementComponent;
 import org.jboss.managed.api.annotation.ManagementObject;
-import org.jboss.managed.api.annotation.ManagementObjectID;
 import org.jboss.managed.api.annotation.ManagementProperties;
-import org.jboss.managed.api.annotation.ManagementProperty;
-import org.jboss.managed.api.annotation.ManagementPropertyFactory;
-import org.teiid.adminapi.Translator;
 
 @ManagementObject(componentType=@ManagementComponent(type="teiid",subtype="translator"), properties=ManagementProperties.EXPLICIT)
- at XmlAccessorType(XmlAccessType.NONE)
-public class TranslatorMetaData extends AdminObjectImpl implements Translator {
-
-	private static final long serialVersionUID = 1680003620274793056L;
-	public static final String EXECUTION_FACTORY_CLASS = "execution-factory-class"; //$NON-NLS-1$
-	public static final String IMMUTABLE = "immutable"; //$NON-NLS-1$
-	public static final String EXCEPTION_ON_MAX_ROWS = "exception-on-max-rows"; //$NON-NLS-1$
-	public static final String MAX_RESULT_ROWS = "max-result-rows"; //$NON-NLS-1$
-	public static final String XA_CAPABLE = "xa-capable"; //$NON-NLS-1$
-	public static final String NAME = "name"; //$NON-NLS-1$
-	public static final String TEMPLATE_NAME = "template-name"; //$NON-NLS-1$
-	
-	// objects are used to keep the jaxb putting verbose xml elements when they are not defined.
-	private String executionFactoryClass;
-	private boolean immutable = false;
-	private boolean exceptionOnMaxRows = false;
-	private int maxResultRows = -1;
-	private boolean xaCapable = false;
-	private String templateName;
-	
-	@Override
-	@ManagementProperty(name="name", description="Name of the Translator", mandatory = true)
-	@ManagementObjectID(type="translator")
-	public String getName() {
-		return super.getName();
-	}	
-	
-	@XmlElement(name = NAME)
-	public void setName(String name) {
-		super.setName(name);
-	}
-	
-	@Override
-	@ManagementProperty(name=EXECUTION_FACTORY_CLASS, description="Execution Factory Class", mandatory = true)
-	public String getExecutionFactoryClass() {
-		return executionFactoryClass;
-	}	
-	
-	@XmlElement(name = EXECUTION_FACTORY_CLASS)
-	public void setExecutionFactoryClass(String arg0) {
-		this.executionFactoryClass = arg0;
-	}
-	
-	@Override
-	@ManagementProperty(name=IMMUTABLE, description="Is Immutable, True if the source never changes.",mandatory=true, defaultValue="false")
-	public boolean isImmutable() {
-		return immutable;
-	}
-
-	@XmlElement(name = IMMUTABLE)
-	public void setImmutable(boolean arg0) {
-		this.immutable = arg0;
-	}	
-	
-	@Override
-	@ManagementProperty(name=EXCEPTION_ON_MAX_ROWS, description="Indicates if an Exception should be thrown if the specified value for Maximum Result Rows is exceeded; else no exception and no more than the maximum will be returned",mandatory=true)
-	public boolean isExceptionOnMaxRows() {
-		return exceptionOnMaxRows;
-	}
-
-	@XmlElement(name = EXCEPTION_ON_MAX_ROWS)
-	public void setExceptionOnMaxRows(boolean arg0) {
-		this.exceptionOnMaxRows = arg0;
-	}
-	
-	@Override
-	@ManagementProperty(name=MAX_RESULT_ROWS, description="Maximum Result Rows allowed", mandatory=true)
-	public int getMaxResultRows() {
-		return maxResultRows;
-	}
-	
-	@XmlElement(name = MAX_RESULT_ROWS)
-	public void setMaxResultRows(int arg0) {
-		this.maxResultRows = arg0;
-	}	
-	
-	@Override
-	@ManagementProperty(name=XA_CAPABLE, description="True, if this connector supports XA Transactions")
-	public boolean isXaCapable() {
-		return xaCapable;
-	}
-
-	@XmlElement(name=XA_CAPABLE)
-	public void setXaCapable(boolean arg0) {
-		this.xaCapable = arg0;
-	}	
-	
-	@Override
-	@XmlElement(name = "translator-property", type = PropertyMetadata.class)
-	@ManagementProperty(name="translator-property", description = "Translator Properties", managed=true)
-	@ManagementPropertyFactory(TranslatorPropertyFactory.class)
-	public List<PropertyMetadata> getJAXBProperties(){
-		return super.getJAXBProperties();
-	}	
-	
-	@Override
-	@ManagementProperty(name=TEMPLATE_NAME, description = "Template with which this Translator is created")	
-	public String getTemplateName() {
-		return templateName;
-	}
-
-	@XmlElement(name = TEMPLATE_NAME)
-	public void setTemplateName(String templateName) {
-		this.templateName = templateName;
-	}	
-	
-	public String toString() {
-		return getName();
-	}
+public class TranslatorMetaData extends VDBTranslatorMetaData{
+	private static final long serialVersionUID = 116875548438603151L;
+	public static final String TRANSLATOR_PREFIX = "translator-"; //$NON-NLS-1$
 }

Modified: trunk/client/src/main/java/org/teiid/adminapi/impl/VDBMetaData.java
===================================================================
--- trunk/client/src/main/java/org/teiid/adminapi/impl/VDBMetaData.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/client/src/main/java/org/teiid/adminapi/impl/VDBMetaData.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -40,6 +40,7 @@
 import org.jboss.managed.api.annotation.ManagementProperty;
 import org.teiid.adminapi.DataPolicy;
 import org.teiid.adminapi.Model;
+import org.teiid.adminapi.Translator;
 import org.teiid.adminapi.VDB;
 import org.teiid.adminapi.impl.ModelMetaData.ValidationError;
 
@@ -50,6 +51,7 @@
     "description",
     "JAXBProperties",
     "models",
+    "translators",
     "dataPolicies"
 })
 @XmlRootElement(name = "vdb")
@@ -71,8 +73,20 @@
 		}
 	});
 	
+	@XmlElement(name = "translator", required = true, type = VDBTranslatorMetaData.class)
+	protected ListOverMap<VDBTranslatorMetaData> translators = new ListOverMap<VDBTranslatorMetaData>(new KeyBuilder<VDBTranslatorMetaData>() {
+		private static final long serialVersionUID = 3890502172003653563L;
+
+		@Override
+		public String getKey(VDBTranslatorMetaData entry) {
+			return entry.getName();
+		}
+	});	
+	
 	@XmlElement(name = "data-policy", required = true, type = DataPolicyMetadata.class)
 	protected ListOverMap<DataPolicyMetadata> dataPolicies = new ListOverMap<DataPolicyMetadata>(new KeyBuilder<DataPolicyMetadata>() {
+		private static final long serialVersionUID = 4954591545242715254L;
+
 		@Override
 		public String getKey(DataPolicyMetadata entry) {
 			return entry.getName();
@@ -155,6 +169,18 @@
 	}	
 	
 	@Override
+	@ManagementProperty(description="Translators in a VDB", managed=true)
+	public List<Translator> getOverrideTranslators() {
+		return new ArrayList<Translator>(this.translators.getMap().values());
+	}
+	
+	public void setTranslators(List<Translator> translators) {
+		for (Translator t: translators) {
+			this.translators.getMap().put(t.getName(), (VDBTranslatorMetaData)t);
+		}
+	}
+	
+	@Override
 	@ManagementProperty(description = "Description")	
 	public String getDescription() {
 		return this.description;

Added: trunk/client/src/main/java/org/teiid/adminapi/impl/VDBTranslatorMetaData.java
===================================================================
--- trunk/client/src/main/java/org/teiid/adminapi/impl/VDBTranslatorMetaData.java	                        (rev 0)
+++ trunk/client/src/main/java/org/teiid/adminapi/impl/VDBTranslatorMetaData.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -0,0 +1,89 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership.  Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * 
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * 
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA.
+ */
+package org.teiid.adminapi.impl;
+
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+
+import org.jboss.managed.api.annotation.ManagementObject;
+import org.jboss.managed.api.annotation.ManagementObjectID;
+import org.jboss.managed.api.annotation.ManagementProperties;
+import org.jboss.managed.api.annotation.ManagementProperty;
+import org.jboss.managed.api.annotation.ManagementPropertyFactory;
+import org.teiid.adminapi.Translator;
+
+
+ at XmlAccessorType(XmlAccessType.NONE)
+ at ManagementObject(properties=ManagementProperties.EXPLICIT)
+public class VDBTranslatorMetaData extends AdminObjectImpl implements Translator {
+	private static final long serialVersionUID = -3454161477587996138L;
+	private String type;
+	private Class executionClass;
+	
+	@Override
+	@ManagementProperty(description="Name of the Translator", mandatory = true)
+	@ManagementObjectID(type="translator")
+	public String getName() {
+		return super.getName();
+	}	
+	
+	@XmlAttribute(name = "name", required = true)
+	public void setName(String name) {
+		super.setName(name);
+	}
+	
+	@Override
+	@ManagementProperty(description="Base type of Translator", mandatory = true)
+	public String getType() {
+		return type;
+	}
+	
+	@XmlAttribute(name = "type",required = true)
+	public void setType(String type) {
+		this.type = type;
+	}	
+	
+	@Override
+	@XmlElement(name = "property", type = PropertyMetadata.class)
+	@ManagementProperty(name="property", description = "Translator Properties", managed=true)
+	@ManagementPropertyFactory(TranslatorPropertyFactory.class)
+	public List<PropertyMetadata> getJAXBProperties(){
+		return super.getJAXBProperties();
+	}	
+	
+	public String toString() {
+		return getName();
+	}
+
+	public Class<?> getExecutionFactoryClass() {
+		return this.executionClass;
+	}	
+	
+	public void setExecutionFactoryClass(Class clazz) {
+		this.executionClass = clazz;
+		addProperty(EXECUTION_FACTORY_CLASS, clazz.getName());
+	}	
+}

Modified: trunk/client/src/main/resources/vdb-deployer.xsd
===================================================================
--- trunk/client/src/main/resources/vdb-deployer.xsd	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/client/src/main/resources/vdb-deployer.xsd	2010-05-27 17:40:05 UTC (rev 2157)
@@ -44,6 +44,15 @@
                         <xs:attribute name="path" type="xs:string"/>
 					</xs:complexType>
 				</xs:element>
+                <xs:element name="translator" maxOccurs="unbounded" minOccurs="0">
+                    <xs:complexType>
+                        <xs:sequence>
+                            <xs:element name="property" type="property" minOccurs="0" maxOccurs="unbounded"/>
+                        </xs:sequence>
+                        <xs:attribute name="name" type="xs:string" use="required"/>
+                        <xs:attribute name="type" type="xs:string" use="required"/>
+                    </xs:complexType>
+                </xs:element>                
 				<xs:element name="data-policy" minOccurs="0" maxOccurs="unbounded">
 					<xs:complexType>
 						<xs:sequence>

Modified: trunk/connectors/sandbox/translator-yahoo/src/main/java/org/teiid/translator/yahoo/YahooExecutionFactory.java
===================================================================
--- trunk/connectors/sandbox/translator-yahoo/src/main/java/org/teiid/translator/yahoo/YahooExecutionFactory.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/connectors/sandbox/translator-yahoo/src/main/java/org/teiid/translator/yahoo/YahooExecutionFactory.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -28,11 +28,12 @@
 import org.teiid.language.QueryExpression;
 import org.teiid.language.Select;
 import org.teiid.metadata.RuntimeMetadata;
+import org.teiid.translator.Translator;
 import org.teiid.translator.TranslatorException;
 import org.teiid.translator.ExecutionContext;
 import org.teiid.translator.ExecutionFactory;
 import org.teiid.translator.ResultSetExecution;
-
+ at Translator(name="yahoo")
 public class YahooExecutionFactory extends ExecutionFactory {
 
 	public static final int YAHOO_MAX_SET_SIZE = 100;

Modified: trunk/connectors/sandbox/translator-yahoo/src/main/resources/META-INF/jboss-beans.xml
===================================================================
--- trunk/connectors/sandbox/translator-yahoo/src/main/resources/META-INF/jboss-beans.xml	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/connectors/sandbox/translator-yahoo/src/main/resources/META-INF/jboss-beans.xml	2010-05-27 17:40:05 UTC (rev 2157)
@@ -1,18 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <deployment xmlns="urn:jboss:bean-deployer:2.0">
-   
-   <bean name="${project.artifactId}-${project.version}" class="org.teiid.templates.TranslatorDeploymentTemplate">
-      <property name="info"><inject bean="${project.artifactId}-templateinfo"/></property>
+    
+   <bean name="translator-yahoo-template" class="org.teiid.templates.TranslatorDeploymentTemplate">
+      <property name="info"><inject bean="translator-yahoo"/></property>
       <property name="managedObjectFactory"><inject bean="ManagedObjectFactory"/></property>
    </bean>
    
-   <bean name="${project.artifactId}-templateinfo" class="org.teiid.templates.TranslatorTemplateInfo">
+   <bean name="translator-yahoo" class="org.teiid.templates.TranslatorTemplateInfo">
       <constructor factoryMethod="createTemplateInfo">
          <factory bean="TranslatorDeploymentTemplateInfoFactory"/>
          <parameter class="java.lang.Class">org.teiid.templates.TranslatorTemplateInfo</parameter>
          <parameter class="java.lang.Class">org.teiid.translator.yahoo.YahooExecutionFactory</parameter>
-         <parameter class="java.lang.String">${project.artifactId}-${project.version}</parameter>
-         <parameter class="java.lang.String">${project.description}</parameter>         
+         <parameter class="java.lang.String">translator-yahoo</parameter>
+         <parameter class="java.lang.String">Yahoo</parameter>         
       </constructor>
    </bean> 
    

Modified: trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCExecutionFactory.java
===================================================================
--- trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCExecutionFactory.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCExecutionFactory.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -60,6 +60,7 @@
 import org.teiid.logging.LogManager;
 import org.teiid.metadata.MetadataFactory;
 import org.teiid.metadata.RuntimeMetadata;
+import org.teiid.translator.Translator;
 import org.teiid.translator.TranslatorException;
 import org.teiid.translator.ExecutionContext;
 import org.teiid.translator.ExecutionFactory;
@@ -75,6 +76,7 @@
 /**
  * JDBC implementation of Connector interface.
  */
+ at Translator(name="jdbc-ansi")
 public class JDBCExecutionFactory extends ExecutionFactory implements MetadataProvider {
 
 	public static final int DEFAULT_MAX_IN_CRITERIA = 1000;

Modified: trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/SimpleJDBCExecutionFactory.java
===================================================================
--- trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/SimpleJDBCExecutionFactory.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/SimpleJDBCExecutionFactory.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -24,13 +24,16 @@
 
 import java.util.List;
 
+import org.teiid.translator.Translator;
 
+
 /**
  * This is a "simple" capabilities class that allows criteria but no 
  * complicated joins, subqueries, etc to be passed to the connector.
  * This capabilities class may come in handy for testing and for 
  * sources that support JDBC but don't support extended JDBC capabilities.  
  */
+ at Translator(name="jdbc-simple")
 public class SimpleJDBCExecutionFactory extends JDBCExecutionFactory {
 
 	public SimpleJDBCExecutionFactory() {

Modified: trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/access/AccessExecutionFactory.java
===================================================================
--- trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/access/AccessExecutionFactory.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/access/AccessExecutionFactory.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -26,10 +26,11 @@
 
 import java.util.List;
 
+import org.teiid.translator.Translator;
 import org.teiid.translator.jdbc.JDBCExecutionFactory;
 import org.teiid.translator.jdbc.sybase.SybaseExecutionFactory;
 
-
+ at Translator(name="access")
 public class AccessExecutionFactory extends SybaseExecutionFactory {
 	
 	public AccessExecutionFactory() {

Modified: trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/db2/DB2ExecutionFactory.java
===================================================================
--- trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/db2/DB2ExecutionFactory.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/db2/DB2ExecutionFactory.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -35,6 +35,7 @@
 import org.teiid.language.Literal;
 import org.teiid.language.Comparison.Operator;
 import org.teiid.language.Join.JoinType;
+import org.teiid.translator.Translator;
 import org.teiid.translator.TranslatorException;
 import org.teiid.translator.ExecutionContext;
 import org.teiid.translator.SourceSystemFunctions;
@@ -45,7 +46,8 @@
 import org.teiid.translator.jdbc.JDBCExecutionFactory;
 import org.teiid.translator.jdbc.LocateFunctionModifier;
 import org.teiid.translator.jdbc.ModFunctionModifier;
-
+
+ at Translator(name="db2")
 public class DB2ExecutionFactory extends JDBCExecutionFactory {
 
 	private final class NullHandlingFormatModifier extends

Modified: trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/derby/DerbyExecutionFactory.java
===================================================================
--- trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/derby/DerbyExecutionFactory.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/derby/DerbyExecutionFactory.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -25,6 +25,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.teiid.translator.Translator;
 import org.teiid.translator.TranslatorException;
 import org.teiid.translator.SourceSystemFunctions;
 import org.teiid.translator.TranslatorProperty;
@@ -36,7 +37,8 @@
 
 /** 
  * @since 4.3
- */
+ */
+ at Translator(name="derby")
 public class DerbyExecutionFactory extends DB2ExecutionFactory {
 	
 	public static final String TEN_1 = "10.1"; //$NON-NLS-1$

Modified: trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/h2/H2ExecutionFactory.java
===================================================================
--- trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/h2/H2ExecutionFactory.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/h2/H2ExecutionFactory.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -28,6 +28,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.teiid.translator.Translator;
 import org.teiid.translator.TranslatorException;
 import org.teiid.translator.SourceSystemFunctions;
 import org.teiid.translator.jdbc.AliasModifier;
@@ -38,6 +39,7 @@
 import org.teiid.translator.jdbc.hsql.AddDiffModifier;
 import org.teiid.translator.jdbc.oracle.ConcatFunctionModifier;
 
+ at Translator(name="h2")
 public class H2ExecutionFactory extends JDBCExecutionFactory {
 	
 	@Override

Modified: trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/hsql/HsqlExecutionFactory.java
===================================================================
--- trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/hsql/HsqlExecutionFactory.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/hsql/HsqlExecutionFactory.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -28,12 +28,14 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.teiid.translator.Translator;
 import org.teiid.translator.TranslatorException;
 import org.teiid.translator.SourceSystemFunctions;
 import org.teiid.translator.jdbc.ConvertModifier;
 import org.teiid.translator.jdbc.FunctionModifier;
 import org.teiid.translator.jdbc.JDBCExecutionFactory;
 
+ at Translator(name="hsql")
 public class HsqlExecutionFactory extends JDBCExecutionFactory {
 	
 	@Override

Modified: trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/informix/InformixExecutionFactory.java
===================================================================
--- trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/informix/InformixExecutionFactory.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/informix/InformixExecutionFactory.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -27,14 +27,14 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.teiid.translator.Translator;
 import org.teiid.translator.TranslatorException;
 import org.teiid.translator.SourceSystemFunctions;
 import org.teiid.translator.jdbc.ConvertModifier;
 import org.teiid.translator.jdbc.JDBCExecutionFactory;
 
 
-/**
- */
+ at Translator(name="informix")
 public class InformixExecutionFactory extends JDBCExecutionFactory {
 
 	@Override

Modified: trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/mm/MetaMatrixExecutionFactory.java
===================================================================
--- trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/mm/MetaMatrixExecutionFactory.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/mm/MetaMatrixExecutionFactory.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -8,11 +8,13 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.teiid.translator.Translator;
 import org.teiid.translator.jdbc.JDBCExecutionFactory;
 
 /** 
  * Capabilities compatible with MM 5.5.x
  */
+ at Translator(name="metamatrix")
 public class MetaMatrixExecutionFactory extends JDBCExecutionFactory {
     
     public List<String> getSupportedFunctions() {

Modified: trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/mysql/MySQL5ExecutionFactory.java
===================================================================
--- trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/mysql/MySQL5ExecutionFactory.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/mysql/MySQL5ExecutionFactory.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -27,10 +27,12 @@
 import java.util.List;
 
 import org.teiid.language.Function;
+import org.teiid.translator.Translator;
 import org.teiid.translator.TranslatorException;
 import org.teiid.translator.SourceSystemFunctions;
 import org.teiid.translator.jdbc.FunctionModifier;
 
+ at Translator(name="mysql5")
 public class MySQL5ExecutionFactory extends MySQLExecutionFactory {
 	
 	@Override

Modified: trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/mysql/MySQLExecutionFactory.java
===================================================================
--- trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/mysql/MySQLExecutionFactory.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/mysql/MySQLExecutionFactory.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -35,6 +35,7 @@
 import org.teiid.language.Function;
 import org.teiid.logging.LogConstants;
 import org.teiid.logging.LogManager;
+import org.teiid.translator.Translator;
 import org.teiid.translator.TranslatorException;
 import org.teiid.translator.SourceSystemFunctions;
 import org.teiid.translator.TypeFacility;
@@ -46,7 +47,8 @@
 
 /** 
  * @since 4.3
- */
+ */
+ at Translator(name="mysql")
 public class MySQLExecutionFactory extends JDBCExecutionFactory {
 	
 	public MySQLExecutionFactory() {

Modified: trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/oracle/OracleExecutionFactory.java
===================================================================
--- trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/oracle/OracleExecutionFactory.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/oracle/OracleExecutionFactory.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -53,6 +53,7 @@
 import org.teiid.logging.LogConstants;
 import org.teiid.logging.LogManager;
 import org.teiid.metadata.Column;
+import org.teiid.translator.Translator;
 import org.teiid.translator.TranslatorException;
 import org.teiid.translator.ExecutionContext;
 import org.teiid.translator.SourceSystemFunctions;
@@ -66,7 +67,7 @@
 import org.teiid.translator.jdbc.LocateFunctionModifier;
 
 
-
+ at Translator(name="oracle")
 public class OracleExecutionFactory extends JDBCExecutionFactory {
 
 	/*

Modified: trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/postgresql/PostgreSQLExecutionFactory.java
===================================================================
--- trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/postgresql/PostgreSQLExecutionFactory.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/postgresql/PostgreSQLExecutionFactory.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -36,6 +36,7 @@
 import org.teiid.language.Limit;
 import org.teiid.language.Literal;
 import org.teiid.language.SQLReservedWords;
+import org.teiid.translator.Translator;
 import org.teiid.translator.TranslatorException;
 import org.teiid.translator.ExecutionContext;
 import org.teiid.translator.SourceSystemFunctions;
@@ -56,7 +57,8 @@
 /** 
  * Translator class for PostgreSQL.  Updated to expect a 8.0+ jdbc client
  * @since 4.3
- */
+ */
+ at Translator(name="postgresql")
 public class PostgreSQLExecutionFactory extends JDBCExecutionFactory {
 	
 	public static final String EIGHT_0 = "8.0"; //$NON-NLS-1$

Modified: trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/sqlserver/SQLServerExecutionFactory.java
===================================================================
--- trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/sqlserver/SQLServerExecutionFactory.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/sqlserver/SQLServerExecutionFactory.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -32,13 +32,15 @@
 import org.teiid.language.Function;
 import org.teiid.language.LanguageObject;
 import org.teiid.translator.ExecutionContext;
+import org.teiid.translator.Translator;
 import org.teiid.translator.TypeFacility;
 import org.teiid.translator.jdbc.JDBCExecutionFactory;
 import org.teiid.translator.jdbc.sybase.SybaseExecutionFactory;
 
 /**
  * Updated to assume the use of the DataDirect, 2005 driver, or later.
- */
+ */
+ at Translator(name="sqlserver")
 public class SQLServerExecutionFactory extends SybaseExecutionFactory {
 	
 	//TEIID-31 remove mod modifier for SQL Server 2008

Modified: trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/sybase/SybaseExecutionFactory.java
===================================================================
--- trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/sybase/SybaseExecutionFactory.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/sybase/SybaseExecutionFactory.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -33,6 +33,7 @@
 import org.teiid.language.Limit;
 import org.teiid.language.OrderBy;
 import org.teiid.language.SetQuery;
+import org.teiid.translator.Translator;
 import org.teiid.translator.TranslatorException;
 import org.teiid.translator.ExecutionContext;
 import org.teiid.translator.SourceSystemFunctions;
@@ -44,8 +45,7 @@
 import org.teiid.translator.jdbc.ModFunctionModifier;
 
 
-/**
- */
+ at Translator(name="sybase")
 public class SybaseExecutionFactory extends JDBCExecutionFactory {
     
     public void start() throws TranslatorException {

Modified: trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/teiid/TeiidExecutionFactory.java
===================================================================
--- trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/teiid/TeiidExecutionFactory.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/teiid/TeiidExecutionFactory.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -27,12 +27,14 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.teiid.translator.Translator;
 import org.teiid.translator.jdbc.JDBCExecutionFactory;
 
 
 /** 
  * @since 4.3
  */
+ at Translator(name="teiid")
 public class TeiidExecutionFactory extends JDBCExecutionFactory {
     
 	@Override

Modified: trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/teradata/TeradataExecutionFactory.java
===================================================================
--- trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/teradata/TeradataExecutionFactory.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/teradata/TeradataExecutionFactory.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -25,6 +25,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.teiid.translator.Translator;
 import org.teiid.translator.jdbc.JDBCExecutionFactory;
 
 
@@ -32,6 +33,7 @@
 /** 
  * for Teradata database Release V2R5.1
  */
+ at Translator(name="teradata")
 public class TeradataExecutionFactory extends JDBCExecutionFactory {
 
     public TeradataExecutionFactory() {

Modified: trunk/connectors/translator-jdbc/src/main/resources/META-INF/jboss-beans.xml
===================================================================
--- trunk/connectors/translator-jdbc/src/main/resources/META-INF/jboss-beans.xml	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/connectors/translator-jdbc/src/main/resources/META-INF/jboss-beans.xml	2010-05-27 17:40:05 UTC (rev 2157)
@@ -1,19 +1,275 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <deployment xmlns="urn:jboss:bean-deployer:2.0">
-   
-   <bean name="${project.artifactId}-${project.version}" class="org.teiid.templates.TranslatorDeploymentTemplate">
-      <property name="info"><inject bean="${project.artifactId}-templateinfo"/></property>
-      <property name="managedObjectFactory"><inject bean="ManagedObjectFactory"/></property>
-   </bean>
-   
-   <bean name="${project.artifactId}-templateinfo" class="org.teiid.templates.TranslatorTemplateInfo">
-      <constructor factoryMethod="createTemplateInfo">
-         <factory bean="TranslatorDeploymentTemplateInfoFactory"/>
-         <parameter class="java.lang.Class">org.teiid.templates.TranslatorTemplateInfo</parameter>
-         <parameter class="java.lang.Class">org.teiid.translator.jdbc.JDBCExecutionFactory</parameter>
-         <parameter class="java.lang.String">${project.artifactId}-${project.version}</parameter>
-         <parameter class="java.lang.String">${project.description}</parameter>         
-      </constructor>
-   </bean> 
-   
+
+    <!-- JDBC-ANSI -->
+    <bean name="translator-jdbc-ansi-template" class="org.teiid.templates.TranslatorDeploymentTemplate">
+        <property name="info"><inject bean="translator-jdbc-ansi" /> </property>
+        <property name="managedObjectFactory"> <inject bean="ManagedObjectFactory" /> </property>
+    </bean>
+    
+    <bean name="translator-jdbc-ansi" class="org.teiid.templates.TranslatorTemplateInfo">
+        <constructor factoryMethod="createTemplateInfo">
+            <factory bean="TranslatorDeploymentTemplateInfoFactory" />
+            <parameter class="java.lang.Class">org.teiid.templates.TranslatorTemplateInfo</parameter>
+            <parameter class="java.lang.Class">org.teiid.translator.jdbc.JDBCExecutionFactory</parameter>
+            <parameter class="java.lang.String">translator-jdbc-ansi</parameter>
+            <parameter class="java.lang.String">ANSI JDBC</parameter>
+        </constructor>
+    </bean>
+
+    <!-- JDBC-SIMPLE -->
+    <bean name="translator-jdbc-simple-template" class="org.teiid.templates.TranslatorDeploymentTemplate">
+        <property name="info"><inject bean="translator-jdbc-simple" /> </property>
+        <property name="managedObjectFactory"> <inject bean="ManagedObjectFactory" /> </property>
+    </bean>
+
+    <bean name="translator-jdbc-simple" class="org.teiid.templates.TranslatorTemplateInfo">
+        <constructor factoryMethod="createTemplateInfo">
+            <factory bean="TranslatorDeploymentTemplateInfoFactory" />
+            <parameter class="java.lang.Class">org.teiid.templates.TranslatorTemplateInfo</parameter>
+            <parameter class="java.lang.Class">org.teiid.translator.jdbc.SimpleJDBCExecutionFactory</parameter>
+            <parameter class="java.lang.String">translator-jdbc-simple</parameter>
+            <parameter class="java.lang.String">JDBC with Simple capabilities</parameter>
+        </constructor>
+    </bean>
+
+    <!-- ACCESS -->
+    <bean name="translator-access-template" class="org.teiid.templates.TranslatorDeploymentTemplate">
+        <property name="info"><inject bean="translator-access" /> </property>
+        <property name="managedObjectFactory"> <inject bean="ManagedObjectFactory" /> </property>
+    </bean>
+
+    <bean name="translator-access" class="org.teiid.templates.TranslatorTemplateInfo">
+        <constructor factoryMethod="createTemplateInfo">
+            <factory bean="TranslatorDeploymentTemplateInfoFactory" />
+            <parameter class="java.lang.Class">org.teiid.templates.TranslatorTemplateInfo</parameter>
+            <parameter class="java.lang.Class">org.teiid.translator.jdbc.access.AccessExecutionFactory</parameter>
+            <parameter class="java.lang.String">translator-access</parameter>
+            <parameter class="java.lang.String">Access</parameter>
+        </constructor>
+    </bean>
+
+    <!-- DB2 -->
+    <bean name="translator-db2-template" class="org.teiid.templates.TranslatorDeploymentTemplate">
+        <property name="info"><inject bean="translator-db2" /> </property>
+        <property name="managedObjectFactory"> <inject bean="ManagedObjectFactory" /> </property>
+    </bean>
+
+    <bean name="translator-db2" class="org.teiid.templates.TranslatorTemplateInfo">
+        <constructor factoryMethod="createTemplateInfo">
+            <factory bean="TranslatorDeploymentTemplateInfoFactory" />
+            <parameter class="java.lang.Class">org.teiid.templates.TranslatorTemplateInfo</parameter>
+            <parameter class="java.lang.Class">org.teiid.translator.jdbc.db2.DB2ExecutionFactory</parameter>
+            <parameter class="java.lang.String">translator-db2</parameter>
+            <parameter class="java.lang.String">DB2</parameter>
+        </constructor>
+    </bean>
+
+    <!-- DERBY -->
+    <bean name="translator-derby-template" class="org.teiid.templates.TranslatorDeploymentTemplate">
+        <property name="info"><inject bean="translator-derby" /> </property>
+        <property name="managedObjectFactory"> <inject bean="ManagedObjectFactory" /> </property>
+    </bean>
+
+    <bean name="translator-derby" class="org.teiid.templates.TranslatorTemplateInfo">
+        <constructor factoryMethod="createTemplateInfo">
+            <factory bean="TranslatorDeploymentTemplateInfoFactory" />
+            <parameter class="java.lang.Class">org.teiid.templates.TranslatorTemplateInfo</parameter>
+            <parameter class="java.lang.Class">org.teiid.translator.jdbc.derby.DerbyExecutionFactory</parameter>
+            <parameter class="java.lang.String">translator-derby</parameter>
+            <parameter class="java.lang.String">Derby</parameter>
+        </constructor>
+    </bean>
+
+    <!-- H2 -->
+    <bean name="translator-h2-template" class="org.teiid.templates.TranslatorDeploymentTemplate">
+        <property name="info"><inject bean="translator-h2" /> </property>
+        <property name="managedObjectFactory"> <inject bean="ManagedObjectFactory" /> </property>
+    </bean>
+
+    <bean name="translator-h2" class="org.teiid.templates.TranslatorTemplateInfo">
+        <constructor factoryMethod="createTemplateInfo">
+            <factory bean="TranslatorDeploymentTemplateInfoFactory" />
+            <parameter class="java.lang.Class">org.teiid.templates.TranslatorTemplateInfo</parameter>
+            <parameter class="java.lang.Class">org.teiid.translator.jdbc.h2.H2ExecutionFactory</parameter>
+            <parameter class="java.lang.String">translator-h2</parameter>
+            <parameter class="java.lang.String">H2</parameter>
+        </constructor>
+    </bean>
+
+    <!-- HSQL -->
+    <bean name="translator-hsql-template" class="org.teiid.templates.TranslatorDeploymentTemplate">
+        <property name="info"><inject bean="translator-hsql" /> </property>
+        <property name="managedObjectFactory"> <inject bean="ManagedObjectFactory" /> </property>
+    </bean>
+
+    <bean name="translator-hsql" class="org.teiid.templates.TranslatorTemplateInfo">
+        <constructor factoryMethod="createTemplateInfo">
+            <factory bean="TranslatorDeploymentTemplateInfoFactory" />
+            <parameter class="java.lang.Class">org.teiid.templates.TranslatorTemplateInfo</parameter>
+            <parameter class="java.lang.Class">org.teiid.translator.jdbc.hsql.HsqlExecutionFactory</parameter>
+            <parameter class="java.lang.String">translator-hsql</parameter>
+            <parameter class="java.lang.String">HSQL</parameter>
+        </constructor>
+    </bean>
+
+    <!-- INFORMIX -->
+    <bean name="translator-informix-template" class="org.teiid.templates.TranslatorDeploymentTemplate">
+        <property name="info"><inject bean="translator-informix" /> </property>
+        <property name="managedObjectFactory"> <inject bean="ManagedObjectFactory" /> </property>
+    </bean>
+
+    <bean name="translator-informix" class="org.teiid.templates.TranslatorTemplateInfo">
+        <constructor factoryMethod="createTemplateInfo">
+            <factory bean="TranslatorDeploymentTemplateInfoFactory" />
+            <parameter class="java.lang.Class">org.teiid.templates.TranslatorTemplateInfo</parameter>
+            <parameter class="java.lang.Class">org.teiid.translator.jdbc.informix.InformixExecutionFactory</parameter>
+            <parameter class="java.lang.String">translator-informix</parameter>
+            <parameter class="java.lang.String">Informix</parameter>
+        </constructor>
+    </bean>
+
+    <!-- METAMATRIX -->
+    <bean name="translator-metamatrix-template" class="org.teiid.templates.TranslatorDeploymentTemplate">
+        <property name="info"><inject bean="translator-metamatrix" /> </property>
+        <property name="managedObjectFactory"> <inject bean="ManagedObjectFactory" /> </property>
+    </bean>
+
+    <bean name="translator-metamatrix" class="org.teiid.templates.TranslatorTemplateInfo">
+        <constructor factoryMethod="createTemplateInfo">
+            <factory bean="TranslatorDeploymentTemplateInfoFactory" />
+            <parameter class="java.lang.Class">org.teiid.templates.TranslatorTemplateInfo</parameter>
+            <parameter class="java.lang.Class">org.teiid.translator.jdbc.mm.MetaMatrixExecutionFactory</parameter>
+            <parameter class="java.lang.String">translator-metamatrix</parameter>
+            <parameter class="java.lang.String">MetaMatrix</parameter>
+        </constructor>
+    </bean>
+
+    <!-- MYSQL -->
+    <bean name="translator-mysql-template" class="org.teiid.templates.TranslatorDeploymentTemplate">
+        <property name="info"><inject bean="translator-mysql" /> </property>
+        <property name="managedObjectFactory"> <inject bean="ManagedObjectFactory" /> </property>
+    </bean>
+
+    <bean name="translator-mysql" class="org.teiid.templates.TranslatorTemplateInfo">
+        <constructor factoryMethod="createTemplateInfo">
+            <factory bean="TranslatorDeploymentTemplateInfoFactory" />
+            <parameter class="java.lang.Class">org.teiid.templates.TranslatorTemplateInfo</parameter>
+            <parameter class="java.lang.Class">org.teiid.translator.jdbc.mysql.MySQLExecutionFactory</parameter>
+            <parameter class="java.lang.String">translator-mysql</parameter>
+            <parameter class="java.lang.String">MySQL</parameter>
+        </constructor>
+    </bean>
+
+    <!-- MYSQL5 -->
+    <bean name="translator-mysql5-template" class="org.teiid.templates.TranslatorDeploymentTemplate">
+        <property name="info"><inject bean="translator-mysql5" /> </property>
+        <property name="managedObjectFactory"> <inject bean="ManagedObjectFactory" /> </property>
+    </bean>
+
+    <bean name="translator-mysql5" class="org.teiid.templates.TranslatorTemplateInfo">
+        <constructor factoryMethod="createTemplateInfo">
+            <factory bean="TranslatorDeploymentTemplateInfoFactory" />
+            <parameter class="java.lang.Class">org.teiid.templates.TranslatorTemplateInfo</parameter>
+            <parameter class="java.lang.Class">org.teiid.translator.jdbc.mysql.MySQL5ExecutionFactory</parameter>
+            <parameter class="java.lang.String">translator-mysql5</parameter>
+            <parameter class="java.lang.String">MySQL5</parameter>
+        </constructor>
+    </bean>
+
+    <!-- ORACLE -->
+    <bean name="translator-oracle-template" class="org.teiid.templates.TranslatorDeploymentTemplate">
+        <property name="info"><inject bean="translator-oracle" /> </property>
+        <property name="managedObjectFactory"> <inject bean="ManagedObjectFactory" /> </property>
+    </bean>
+
+    <bean name="translator-oracle" class="org.teiid.templates.TranslatorTemplateInfo">
+        <constructor factoryMethod="createTemplateInfo">
+            <factory bean="TranslatorDeploymentTemplateInfoFactory" />
+            <parameter class="java.lang.Class">org.teiid.templates.TranslatorTemplateInfo</parameter>
+            <parameter class="java.lang.Class">org.teiid.translator.jdbc.oracle.OracleExecutionFactory</parameter>
+            <parameter class="java.lang.String">translator-oracle</parameter>
+            <parameter class="java.lang.String">oracle</parameter>
+        </constructor>
+    </bean>
+
+    <!-- POSTGRESQL -->
+    <bean name="translator-postgresql-template" class="org.teiid.templates.TranslatorDeploymentTemplate">
+        <property name="info"><inject bean="translator-postgresql" /> </property>
+        <property name="managedObjectFactory"> <inject bean="ManagedObjectFactory" /> </property>
+    </bean>
+
+    <bean name="translator-postgresql" class="org.teiid.templates.TranslatorTemplateInfo">
+        <constructor factoryMethod="createTemplateInfo">
+            <factory bean="TranslatorDeploymentTemplateInfoFactory" />
+            <parameter class="java.lang.Class">org.teiid.templates.TranslatorTemplateInfo</parameter>
+            <parameter class="java.lang.Class">org.teiid.translator.jdbc.postgresql.PostgreSQLExecutionFactory</parameter>
+            <parameter class="java.lang.String">translator-postgresql</parameter>
+            <parameter class="java.lang.String">PostgreSQL</parameter>
+        </constructor>
+    </bean>
+
+    <!-- SQL SERVER -->
+    <bean name="translator-sqlserver-template" class="org.teiid.templates.TranslatorDeploymentTemplate">
+        <property name="info"><inject bean="translator-sqlserver" /> </property>
+        <property name="managedObjectFactory"> <inject bean="ManagedObjectFactory" /> </property>
+    </bean>
+
+    <bean name="translator-sqlserver" class="org.teiid.templates.TranslatorTemplateInfo">
+        <constructor factoryMethod="createTemplateInfo">
+            <factory bean="TranslatorDeploymentTemplateInfoFactory" />
+            <parameter class="java.lang.Class">org.teiid.templates.TranslatorTemplateInfo</parameter>
+            <parameter class="java.lang.Class">org.teiid.translator.jdbc.sqlserver.SQLServerExecutionFactory</parameter>
+            <parameter class="java.lang.String">translator-sqlserver</parameter>
+            <parameter class="java.lang.String">SQLServer</parameter>
+        </constructor>
+    </bean>
+
+    <!-- SYBASE -->
+    <bean name="translator-sybase-template" class="org.teiid.templates.TranslatorDeploymentTemplate">
+        <property name="info"><inject bean="translator-sybase" /> </property>
+        <property name="managedObjectFactory"> <inject bean="ManagedObjectFactory" /> </property>
+    </bean>
+
+    <bean name="translator-sybase" class="org.teiid.templates.TranslatorTemplateInfo">
+        <constructor factoryMethod="createTemplateInfo">
+            <factory bean="TranslatorDeploymentTemplateInfoFactory" />
+            <parameter class="java.lang.Class">org.teiid.templates.TranslatorTemplateInfo</parameter>
+            <parameter class="java.lang.Class">org.teiid.translator.jdbc.sybase.SybaseExecutionFactory</parameter>
+            <parameter class="java.lang.String">translator-sybase</parameter>
+            <parameter class="java.lang.String">Sybase</parameter>
+        </constructor>
+    </bean>
+
+    <!-- TEIID -->
+    <bean name="translator-teiid-template" class="org.teiid.templates.TranslatorDeploymentTemplate">
+        <property name="info"><inject bean="translator-teiid" /> </property>
+        <property name="managedObjectFactory"> <inject bean="ManagedObjectFactory" /> </property>
+    </bean>
+
+    <bean name="translator-teiid" class="org.teiid.templates.TranslatorTemplateInfo">
+        <constructor factoryMethod="createTemplateInfo">
+            <factory bean="TranslatorDeploymentTemplateInfoFactory" />
+            <parameter class="java.lang.Class">org.teiid.templates.TranslatorTemplateInfo</parameter>
+            <parameter class="java.lang.Class">org.teiid.translator.jdbc.teiid.TeiidExecutionFactory</parameter>
+            <parameter class="java.lang.String">translator-teiid</parameter>
+            <parameter class="java.lang.String">Teiid</parameter>
+        </constructor>
+    </bean>
+
+    <!-- TERADATA -->
+    <bean name="translator-teradata-template" class="org.teiid.templates.TranslatorDeploymentTemplate">
+        <property name="info"><inject bean="translator-teradata" /> </property>
+        <property name="managedObjectFactory"> <inject bean="ManagedObjectFactory" /> </property>
+    </bean>
+
+    <bean name="translator-teradata" class="org.teiid.templates.TranslatorTemplateInfo">
+        <constructor factoryMethod="createTemplateInfo">
+            <factory bean="TranslatorDeploymentTemplateInfoFactory" />
+            <parameter class="java.lang.Class">org.teiid.templates.TranslatorTemplateInfo</parameter>
+            <parameter class="java.lang.Class">org.teiid.translator.jdbc.teradata.TeradataExecutionFactory</parameter>
+            <parameter class="java.lang.String">translator-teradata</parameter>
+            <parameter class="java.lang.String">teradata</parameter>
+        </constructor>
+    </bean>
 </deployment>
\ No newline at end of file

Modified: trunk/connectors/translator-ldap/src/main/java/org/teiid/translator/ldap/LDAPExecutionFactory.java
===================================================================
--- trunk/connectors/translator-ldap/src/main/java/org/teiid/translator/ldap/LDAPExecutionFactory.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/connectors/translator-ldap/src/main/java/org/teiid/translator/ldap/LDAPExecutionFactory.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -29,6 +29,7 @@
 import org.teiid.language.QueryExpression;
 import org.teiid.language.Select;
 import org.teiid.metadata.RuntimeMetadata;
+import org.teiid.translator.Translator;
 import org.teiid.translator.TranslatorException;
 import org.teiid.translator.ExecutionContext;
 import org.teiid.translator.ExecutionFactory;
@@ -41,6 +42,7 @@
  * LDAP translator.  This is responsible for initializing 
  * a connection factory, and obtaining connections to LDAP.
  */
+ at Translator(name="ldap")
 public class LDAPExecutionFactory extends ExecutionFactory {
 
 	public enum SearchDefaultScope {

Modified: trunk/connectors/translator-ldap/src/main/resources/META-INF/jboss-beans.xml
===================================================================
--- trunk/connectors/translator-ldap/src/main/resources/META-INF/jboss-beans.xml	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/connectors/translator-ldap/src/main/resources/META-INF/jboss-beans.xml	2010-05-27 17:40:05 UTC (rev 2157)
@@ -1,18 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <deployment xmlns="urn:jboss:bean-deployer:2.0">
    
-   <bean name="${project.artifactId}-${project.version}" class="org.teiid.templates.TranslatorDeploymentTemplate">
-      <property name="info"><inject bean="${project.artifactId}-templateinfo"/></property>
+   <bean name="translator-ldap-template" class="org.teiid.templates.TranslatorDeploymentTemplate">
+      <property name="info"><inject bean="translator-ldap"/></property>
       <property name="managedObjectFactory"><inject bean="ManagedObjectFactory"/></property>
    </bean>
-   
-   <bean name="${project.artifactId}-templateinfo" class="org.teiid.templates.TranslatorTemplateInfo">
+    
+   <bean name="translator-ldap" class="org.teiid.templates.TranslatorTemplateInfo">
       <constructor factoryMethod="createTemplateInfo">
          <factory bean="TranslatorDeploymentTemplateInfoFactory"/>
          <parameter class="java.lang.Class">org.teiid.templates.TranslatorTemplateInfo</parameter>
          <parameter class="java.lang.Class">org.teiid.translator.ldap.LDAPExecutionFactory</parameter>
-         <parameter class="java.lang.String">${project.artifactId}-${project.version}</parameter>
-         <parameter class="java.lang.String">${project.description}</parameter>         
+         <parameter class="java.lang.String">translator-ldap</parameter>
+         <parameter class="java.lang.String">ldap</parameter>         
       </constructor>
    </bean> 
    

Modified: trunk/connectors/translator-loopback/src/main/java/org/teiid/translator/loopback/LoopbackExecutionFactory.java
===================================================================
--- trunk/connectors/translator-loopback/src/main/java/org/teiid/translator/loopback/LoopbackExecutionFactory.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/connectors/translator-loopback/src/main/java/org/teiid/translator/loopback/LoopbackExecutionFactory.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -27,6 +27,7 @@
 
 import org.teiid.language.Command;
 import org.teiid.metadata.RuntimeMetadata;
+import org.teiid.translator.Translator;
 import org.teiid.translator.TranslatorException;
 import org.teiid.translator.Execution;
 import org.teiid.translator.ExecutionContext;
@@ -36,6 +37,7 @@
 /**
  * Loopback translator.
  */
+ at Translator(name="loopback")
 public class LoopbackExecutionFactory extends ExecutionFactory {
 
 	private int waitTime = 0;

Modified: trunk/connectors/translator-loopback/src/main/resources/META-INF/jboss-beans.xml
===================================================================
--- trunk/connectors/translator-loopback/src/main/resources/META-INF/jboss-beans.xml	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/connectors/translator-loopback/src/main/resources/META-INF/jboss-beans.xml	2010-05-27 17:40:05 UTC (rev 2157)
@@ -1,18 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <deployment xmlns="urn:jboss:bean-deployer:2.0">
    
-   <bean name="${project.artifactId}-${project.version}" class="org.teiid.templates.TranslatorDeploymentTemplate">
-      <property name="info"><inject bean="${project.artifactId}-templateinfo"/></property>
+   <bean name="translator-loopback-template" class="org.teiid.templates.TranslatorDeploymentTemplate">
+      <property name="info"><inject bean="translator-loopback"/></property>
       <property name="managedObjectFactory"><inject bean="ManagedObjectFactory"/></property>
    </bean>
-   
-   <bean name="${project.artifactId}-templateinfo" class="org.teiid.templates.TranslatorTemplateInfo">
+    
+   <bean name="translator-loopback" class="org.teiid.templates.TranslatorTemplateInfo">
       <constructor factoryMethod="createTemplateInfo">
          <factory bean="TranslatorDeploymentTemplateInfoFactory"/>
          <parameter class="java.lang.Class">org.teiid.templates.TranslatorTemplateInfo</parameter>
          <parameter class="java.lang.Class">org.teiid.translator.loopback.LoopbackExecutionFactory</parameter>
-         <parameter class="java.lang.String">${project.artifactId}-${project.version}</parameter>
-         <parameter class="java.lang.String">${project.description}</parameter>         
+         <parameter class="java.lang.String">translator-loopback</parameter>
+         <parameter class="java.lang.String">Loopback</parameter>         
       </constructor>
    </bean> 
    

Modified: trunk/connectors/translator-salesforce/src/main/java/org/teiid/translator/salesforce/SalesForceExecutionFactory.java
===================================================================
--- trunk/connectors/translator-salesforce/src/main/java/org/teiid/translator/salesforce/SalesForceExecutionFactory.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/connectors/translator-salesforce/src/main/java/org/teiid/translator/salesforce/SalesForceExecutionFactory.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -32,6 +32,7 @@
 import org.teiid.logging.LogManager;
 import org.teiid.metadata.MetadataFactory;
 import org.teiid.metadata.RuntimeMetadata;
+import org.teiid.translator.Translator;
 import org.teiid.translator.TranslatorException;
 import org.teiid.translator.ExecutionContext;
 import org.teiid.translator.ExecutionFactory;
@@ -46,7 +47,7 @@
 import org.teiid.translator.salesforce.execution.QueryExecutionImpl;
 import org.teiid.translator.salesforce.execution.UpdateExecutionImpl;
 
-
+ at Translator(name="salesforce")
 public class SalesForceExecutionFactory extends ExecutionFactory implements MetadataProvider {
 
 	private String connectorStateClass;

Modified: trunk/connectors/translator-salesforce/src/main/resources/META-INF/jboss-beans.xml
===================================================================
--- trunk/connectors/translator-salesforce/src/main/resources/META-INF/jboss-beans.xml	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/connectors/translator-salesforce/src/main/resources/META-INF/jboss-beans.xml	2010-05-27 17:40:05 UTC (rev 2157)
@@ -1,18 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <deployment xmlns="urn:jboss:bean-deployer:2.0">
    
-   <bean name="${project.artifactId}-${project.version}" class="org.teiid.templates.TranslatorDeploymentTemplate">
-      <property name="info"><inject bean="${project.artifactId}-templateinfo"/></property>
+   <bean name="translator-salesforce-template" class="org.teiid.templates.TranslatorDeploymentTemplate">
+      <property name="info"><inject bean="translator-salesforce"/></property>
       <property name="managedObjectFactory"><inject bean="ManagedObjectFactory"/></property>
    </bean>
-   
-   <bean name="${project.artifactId}-templateinfo" class="org.teiid.templates.TranslatorTemplateInfo">
+    
+   <bean name="translator-salesforce" class="org.teiid.templates.TranslatorTemplateInfo">
       <constructor factoryMethod="createTemplateInfo">
          <factory bean="TranslatorDeploymentTemplateInfoFactory"/>
          <parameter class="java.lang.Class">org.teiid.templates.TranslatorTemplateInfo</parameter>
          <parameter class="java.lang.Class">org.teiid.translator.salesforce.SalesForceExecutionFactory</parameter>
-         <parameter class="java.lang.String">${project.artifactId}-${project.version}</parameter>
-         <parameter class="java.lang.String">${project.description}</parameter>         
+         <parameter class="java.lang.String">translator-salesforce</parameter>
+         <parameter class="java.lang.String">Salesforce</parameter>         
       </constructor>
    </bean> 
    

Modified: trunk/connectors/translator-text/src/main/java/org/teiid/translator/text/TextExecutionFactory.java
===================================================================
--- trunk/connectors/translator-text/src/main/java/org/teiid/translator/text/TextExecutionFactory.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/connectors/translator-text/src/main/java/org/teiid/translator/text/TextExecutionFactory.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -45,6 +45,7 @@
 import org.teiid.metadata.MetadataFactory;
 import org.teiid.metadata.RuntimeMetadata;
 import org.teiid.metadata.Table;
+import org.teiid.translator.Translator;
 import org.teiid.translator.TranslatorException;
 import org.teiid.translator.ExecutionContext;
 import org.teiid.translator.ExecutionFactory;
@@ -58,6 +59,7 @@
 /**
  * Implementation of text connector.
  */
+ at Translator(name="text")
 public class TextExecutionFactory extends ExecutionFactory implements MetadataProvider{
 
 	private boolean enforceColumnCount = false;

Modified: trunk/connectors/translator-text/src/main/resources/META-INF/jboss-beans.xml
===================================================================
--- trunk/connectors/translator-text/src/main/resources/META-INF/jboss-beans.xml	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/connectors/translator-text/src/main/resources/META-INF/jboss-beans.xml	2010-05-27 17:40:05 UTC (rev 2157)
@@ -1,18 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <deployment xmlns="urn:jboss:bean-deployer:2.0">
    
-   <bean name="${project.artifactId}-${project.version}" class="org.teiid.templates.TranslatorDeploymentTemplate">
-      <property name="info"><inject bean="${project.artifactId}-templateinfo"/></property>
+   <bean name="translator-text-template" class="org.teiid.templates.TranslatorDeploymentTemplate">
+      <property name="info"><inject bean="translator-text"/></property>
       <property name="managedObjectFactory"><inject bean="ManagedObjectFactory"/></property>
    </bean>
    
-   <bean name="${project.artifactId}-templateinfo" class="org.teiid.templates.TranslatorTemplateInfo">
+   <bean name="translator-text" class="org.teiid.templates.TranslatorTemplateInfo">
       <constructor factoryMethod="createTemplateInfo">
          <factory bean="TranslatorDeploymentTemplateInfoFactory"/>
          <parameter class="java.lang.Class">org.teiid.templates.TranslatorTemplateInfo</parameter>
          <parameter class="java.lang.Class">org.teiid.translator.text.TextExecutionFactory</parameter>
-         <parameter class="java.lang.String">${project.artifactId}-${project.version}</parameter>
-         <parameter class="java.lang.String">${project.description}</parameter>         
+         <parameter class="java.lang.String">translator-text</parameter>
+         <parameter class="java.lang.String">Text</parameter>         
       </constructor>
    </bean> 
    

Modified: trunk/connectors/translator-xml/pom.xml
===================================================================
--- trunk/connectors/translator-xml/pom.xml	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/connectors/translator-xml/pom.xml	2010-05-27 17:40:05 UTC (rev 2157)
@@ -46,11 +46,13 @@
             <groupId>xom</groupId>
             <artifactId>xom</artifactId>
             <version>1.2</version>
+            <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>nux</groupId>
             <artifactId>nux</artifactId>
             <version>1.6</version>
+            <scope>provided</scope>
         </dependency>
     </dependencies>
 

Modified: trunk/connectors/translator-xml/src/main/java/org/teiid/translator/xml/XMLExecutionFactory.java
===================================================================
--- trunk/connectors/translator-xml/src/main/java/org/teiid/translator/xml/XMLExecutionFactory.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/connectors/translator-xml/src/main/java/org/teiid/translator/xml/XMLExecutionFactory.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -47,10 +47,12 @@
 import org.teiid.translator.FileConnection;
 import org.teiid.translator.ProcedureExecution;
 import org.teiid.translator.ResultSetExecution;
+import org.teiid.translator.Translator;
 import org.teiid.translator.TranslatorException;
 import org.teiid.translator.TranslatorProperty;
 import org.teiid.translator.xml.streaming.BaseStreamingExecution;
 
+ at Translator(name="xml")
 public class XMLExecutionFactory extends ExecutionFactory {
 		
 	private String saxFilterProviderClass;
@@ -102,7 +104,7 @@
 		return logRequestResponseDocs && LogManager.isMessageToBeRecorded(LogConstants.CTX_CONNECTOR, MessageLevel.DETAIL);
 	}
 
-	public void setLogRequestResponseDocs(Boolean logRequestResponseDocs) {
+	public void setLogRequestResponseDocs(boolean logRequestResponseDocs) {
 		this.logRequestResponseDocs = logRequestResponseDocs;
 	}
 

Modified: trunk/connectors/translator-xml/src/main/resources/META-INF/jboss-beans.xml
===================================================================
--- trunk/connectors/translator-xml/src/main/resources/META-INF/jboss-beans.xml	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/connectors/translator-xml/src/main/resources/META-INF/jboss-beans.xml	2010-05-27 17:40:05 UTC (rev 2157)
@@ -1,18 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <deployment xmlns="urn:jboss:bean-deployer:2.0">
    
-   <bean name="${project.artifactId}-${project.version}" class="org.teiid.templates.TranslatorDeploymentTemplate">
-      <property name="info"><inject bean="${project.artifactId}-templateinfo"/></property>
+   <bean name="translator-xml-template" class="org.teiid.templates.TranslatorDeploymentTemplate">
+      <property name="info"><inject bean="translator-xml"/></property>
       <property name="managedObjectFactory"><inject bean="ManagedObjectFactory"/></property>
    </bean>
-   
-   <bean name="${project.artifactId}-templateinfo" class="org.teiid.templates.TranslatorTemplateInfo">
+    
+   <bean name="translator-xml" class="org.teiid.templates.TranslatorTemplateInfo">
       <constructor factoryMethod="createTemplateInfo">
          <factory bean="TranslatorDeploymentTemplateInfoFactory"/>
          <parameter class="java.lang.Class">org.teiid.templates.TranslatorTemplateInfo</parameter>
          <parameter class="java.lang.Class">org.teiid.translator.xml.XMLExecutionFactory</parameter>
-         <parameter class="java.lang.String">${project.artifactId}-${project.version}</parameter>
-         <parameter class="java.lang.String">${project.description}</parameter>         
+         <parameter class="java.lang.String">translator-xml</parameter>
+         <parameter class="java.lang.String">xml</parameter>         
       </constructor>
    </bean> 
    

Modified: trunk/console/src/main/java/org/teiid/rhq/plugin/TranslatorComponent.java
===================================================================
--- trunk/console/src/main/java/org/teiid/rhq/plugin/TranslatorComponent.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/console/src/main/java/org/teiid/rhq/plugin/TranslatorComponent.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -24,27 +24,14 @@
 import java.util.Map;
 import java.util.Set;
 
-import javax.naming.NamingException;
-
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jboss.deployers.spi.management.ManagementView;
-import org.jboss.managed.api.ComponentType;
-import org.jboss.managed.api.DeploymentTemplateInfo;
-import org.jboss.managed.api.ManagedProperty;
-import org.jboss.profileservice.spi.NoSuchDeploymentException;
 import org.rhq.core.domain.configuration.Configuration;
-import org.rhq.core.domain.configuration.PropertySimple;
-import org.rhq.core.domain.configuration.definition.ConfigurationDefinition;
 import org.rhq.core.domain.measurement.MeasurementDataNumeric;
 import org.rhq.core.domain.measurement.MeasurementReport;
 import org.rhq.core.domain.measurement.MeasurementScheduleRequest;
-import org.rhq.core.domain.resource.CreateResourceStatus;
-import org.rhq.core.domain.resource.ResourceType;
-import org.rhq.core.pluginapi.inventory.CreateResourceReport;
 import org.rhq.core.pluginapi.measurement.MeasurementFacet;
 import org.teiid.rhq.comm.ConnectionConstants;
-import org.teiid.rhq.plugin.util.ProfileServiceUtil;
 
 /**
  * Component class for the MetaMatrix Host Controller process.

Modified: trunk/console/src/main/java/org/teiid/rhq/plugin/TranslatorDiscoveryComponent.java
===================================================================
--- trunk/console/src/main/java/org/teiid/rhq/plugin/TranslatorDiscoveryComponent.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/console/src/main/java/org/teiid/rhq/plugin/TranslatorDiscoveryComponent.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -65,8 +65,7 @@
 		for (ManagedComponent translator : translators) {
 
 			String translatorKey = translator.getName();
-			String translatorName = ProfileServiceUtil.getSimpleValue(
-					translator, "name", String.class);
+			String translatorName = ProfileServiceUtil.getSimpleValue(translator, "name", String.class);
 			/**
 			 * 
 			 * A discovered resource must have a unique key, that must stay the
@@ -88,28 +87,12 @@
 			c.put(list);
 
 			// First get translator specific properties
-			ManagedProperty translatorProps = translator
-					.getProperty("translator-property");
+			ManagedProperty translatorProps = translator.getProperty("property");
 			getTranslatorValues(translatorProps.getValue(), propMap, list);
 
 			// Now get common properties
 			c.put(new PropertySimple("name", translatorName));
-			c.put(new PropertySimple("execution-factory-class",
-					ProfileServiceUtil.getSimpleValue(translator,
-							"execution-factory-class", String.class)));
-			c.put(new PropertySimple("immutable", ProfileServiceUtil
-					.getSimpleValue(translator, "immutable", Boolean.class)));
-			c.put(new PropertySimple("xa-capable", ProfileServiceUtil
-					.getSimpleValue(translator, "xa-capable", Boolean.class)));
-			c.put(new PropertySimple("exception-on-max-rows",
-					ProfileServiceUtil.getSimpleValue(translator,
-							"exception-on-max-rows", Boolean.class)));
-			c.put(new PropertySimple("max-result-rows", ProfileServiceUtil
-					.getSimpleValue(translator, "max-result-rows",
-							Integer.class)));
-			c.put(new PropertySimple("template-name", ProfileServiceUtil
-							.getSimpleValue(translator, "template-name",
-									String.class)));
+			c.put(new PropertySimple("type",ProfileServiceUtil.getSimpleValue(translator,"type", String.class)));
 
 			detail.setPluginConfiguration(c);
 			// Add to return values
@@ -125,14 +108,13 @@
 		MetaType metaType = pValue.getMetaType();
 		Map<String, T> unwrappedvalue = null;
 		if (metaType.isComposite()) {
-			unwrappedvalue = (Map<String, T>) MetaValueFactory
-					.getInstance().unwrap(pValue);
+			unwrappedvalue = (Map<String, T>) MetaValueFactory.getInstance().unwrap(pValue);
 
 			for (String key : unwrappedvalue.keySet()) {
-				map = new PropertyMap("translator-properties");
+				map = new PropertyMap("properties");
 				map.put(new PropertySimple("name", key));
 				map.put(new PropertySimple("value", unwrappedvalue.get(key)));
-				map.put(new PropertySimple("description", "Custom property"));
+				//map.put(new PropertySimple("description", "Custom property"));
 				list.add(map);
 			}
 		} else {

Modified: trunk/console/src/main/resources/META-INF/rhq-plugin.xml
===================================================================
--- trunk/console/src/main/resources/META-INF/rhq-plugin.xml	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/console/src/main/resources/META-INF/rhq-plugin.xml	2010-05-27 17:40:05 UTC (rev 2157)
@@ -32,20 +32,7 @@
 							description="Name of the translator" />
 						<c:simple-property name="execution-factory-class" displayName="execution-factory-class"
 							description="Connector Class" />	
-						<c:simple-property name="capabilities-class" displayName="capabilities-class"
-							description="The class to use to provide the Connector Capabilities" />
-						<c:simple-property name="override-capabilities-file" displayName="override-capabilities-file"
-							description="Property file that defines the override capability properties" />
-						<c:simple-property name="immutable" displayName="immutable"
-							description="Is Immutable, True if the source never changes." type="boolean" default="false" />	
-						<c:simple-property name="exception-on-max-rows" displayName="exception-on-max-rows" type="boolean" default="false" />
-							description="Indicates if an Exception should be thrown if the specified value for Maximum Result Rows is exceeded; else no exception and no more than the maximum will be returned" default="false" />
-						<c:simple-property name="max-result-rows" displayName="max-result-rows"
-							description="Maximum Result Rows allowed" default="false" />
-						<c:simple-property name="xa-capable" displayName="xa-capable"
-							description="True, if this connector supports XA Transactions" type="boolean" default="false" />
-						 <c:list-property name="translatorList" description="Properties for this translator"
-						readOnly="true">
+						 <c:list-property name="translatorList" description="Properties for this translator" readOnly="true">
 						<c:map-property name="translator-properties" >
 							<c:simple-property name="name" displayName="Name"
 								description="Name of this property" readOnly="true" />
@@ -1294,14 +1281,10 @@
 			createDeletePolicy="both" creationDataType="configuration">
 
 			<plugin-configuration>
-				<c:simple-property name="componentType" default="teiid"
-					readOnly="true" />
-				<c:simple-property name="componentSubtype"
-					default="translator" readOnly="true" />
-				<c:simple-property name="componentName" default="teiid"
-					readOnly="true" />
-				<c:simple-property name="template-name" default="translator"
-					readOnly="true" />
+				<c:simple-property name="componentType" default="teiid" readOnly="true" />
+				<c:simple-property name="componentSubtype" default="translator" readOnly="true" />
+				<c:simple-property name="componentName" default="teiid" readOnly="true" />
+				<c:simple-property name="template-name" default="translator"	readOnly="true" />
 				<c:simple-property name="resourceName" default="name">
 					<c:description>The name of the Resource configuration property
 						whose value should be used as the
@@ -1311,178 +1294,60 @@
 			</plugin-configuration>
 
 			<resource-configuration>
-				<c:simple-property name="name" displayName="Name"
-					description="Name of the translator" />
-				<c:simple-property name="execution-factory-class"
-					displayName="execution-factory-class" description="Connector Class" />
-				<c:simple-property name="immutable" displayName="immutable"
-					description="Is Immutable, True if the source never changes." type="boolean"
-					default="false" />
-				<c:simple-property name="exception-on-max-rows"
-					displayName="exception-on-max-rows"
-					description="Indicates if an Exception should be thrown if the
-					specified value for Maximum Result Rows is exceeded; else no
-					exception and no more than the maximum will be returned"
-					type="boolean" default="false" defaultValue="false" />
-				<c:simple-property name="max-result-rows"
-					displayName="max-result-rows" description="Maximum Result Rows allowed"
-					default="false" />
-				<c:simple-property name="xa-capable" displayName="xa-capable"
-					description="True, if this connector supports XA Transactions"
-					type="boolean" default="false" />
+				<c:simple-property name="name" displayName="Name" description="Name of the translator" />
+				<c:simple-property name="type" 	displayName="Type" description="Base Translator Type" readOnly="true"/>
 				<c:list-property name="translatorList" readOnly="true" required="false"
-					displayName="Translator Specific Properties" description="List of translator specific properties">
-					<c:map-property name="translator-properties" >
-						<c:simple-property name="name" displayName="Name"
-							description="Name of this property" readOnly="true" />
-						<c:simple-property name="value" displayName="Value"
-							description="Value of this property" />
-						<c:simple-property name="description"
-							displayName="Description" description="Description of this property" />
+                			displayName="Translator Specific Properties" description="List of translator specific properties">
+					<c:map-property name="translator-properties" readOnly="true">
+						<c:simple-property name="name" displayName="Name" description="Name of this property" readOnly="true" />
+						<c:simple-property name="value" displayName="Value"	description="Value of this property" readOnly="true"/>
+						<!--c:simple-property name="description" 	displayName="Description" description="Description of this property" readOnly="true"/-->
 					</c:map-property>
 				</c:list-property>
-				<c:simple-property name="template-name" default="translator"
-					readOnly="true" />
 
 				<c:template name="Access" description="Translator for Access">
-					<c:simple-property name="execution-factory-class"
-						default="org.teiid.translator.jdbc.access.AccessExecutionFactory"
-						displayName="execution-factory-class" description="Connector Class" />
-					<c:simple-property name="xa-capable" displayName="xa-capable"
-						description="True, if this connector supports XA Transactions"
-						type="boolean" default="true" />
-					<c:simple-property name="template-name"
-						default="translator-jdbc-${project.version}" readOnly="true" />
+					<c:simple-property name="type" 	default="access" displayName="Type" description="Base Translator Type" readOnly="true"/>
 				</c:template>
 				<c:template name="DB2" description="Translator for DB2">
-					<c:simple-property name="execution-factory-class"
-						default="org.teiid.translator.jdbc.db2.DB2ExecutionFactory"
-						displayName="execution-factory-class" description="Connector Class" />
-					<c:simple-property name="xa-capable" displayName="xa-capable"
-						description="True, if this connector supports XA Transactions"
-						type="boolean" default="true" />
-					<c:simple-property name="template-name"
-						default="translator-jdbc-${project.version}" readOnly="true" />
+                    <c:simple-property name="type" 	default="db2" displayName="Type" description="Base Translator Type" readOnly="true"/>
 				</c:template>
 				<c:template name="Derby" description="Translator for Derby">
 					<c:simple-property name="execution-factory-class"
 						default="org.teiid.translator.jdbc.derby.DerbyExecutionFactory"
 						displayName="execution-factory-class" description="Connector Class" />
-					<c:simple-property name="xa-capable" displayName="xa-capable"
-						description="True, if this connector supports XA Transactions"
-						type="boolean" default="true" />
-					<c:simple-property name="template-name"
-						default="translator-jdbc-${project.version}" readOnly="true" />
 				</c:template>
 				<c:template name="H2" description="Translator for H2">
-					<c:simple-property name="execution-factory-class"
-						default="org.teiid.translator.jdbc.h2.H2ExecutionFactory"
-						displayName="execution-factory-class" description="Connector Class" />
-					<c:simple-property name="xa-capable" displayName="xa-capable"
-						description="True, if this connector supports XA Transactions"
-						type="boolean" default="true" />
-					<c:simple-property name="template-name"
-						default="translator-jdbc-${project.version}" readOnly="true" />
-				</c:template>
+                    <c:simple-property name="type" 	default="h2" displayName="Type" description="Base Translator Type" readOnly="true"/>				
+                </c:template>
 				<c:template name="HSQL" description="Translator for HSQL">
-					<c:simple-property name="execution-factory-class"
-						default="org.teiid.translator.jdbc.hsql.HsqlExecutionFactory"
-						displayName="execution-factory-class" description="Connector Class" />
-					<c:simple-property name="xa-capable" displayName="xa-capable"
-						description="True, if this connector supports XA Transactions"
-						type="boolean" default="true" />
-					<c:simple-property name="template-name"
-						default="translator-jdbc-${project.version}" readOnly="true" />
+					<c:simple-property name="type" 	default="hsql" displayName="Type" description="Base Translator Type" readOnly="true"/>
 				</c:template>
 				<c:template name="MySQL" description="Translator for MySQL">
-					<c:simple-property name="execution-factory-class"
-						default="org.teiid.translator.jdbc.mysql.MySQLExecutionFactory"
-						displayName="execution-factory-class" description="Connector Class" />
-					<c:simple-property name="xa-capable" displayName="xa-capable"
-						description="True, if this connector supports XA Transactions"
-						type="boolean" default="true" />
-					<c:simple-property name="template-name"
-						default="translator-jdbc-${project.version}" readOnly="true" />
+					<c:simple-property name="type" 	default="mysql" displayName="Type" description="Base Translator Type" readOnly="true"/>
 				</c:template>
 				<c:template name="MySQL5" description="Translator for MySQL 5">
-					<c:simple-property name="execution-factory-class"
-						default="org.teiid.translator.jdbc.mysql5.MySQL5ExecutionFactory"
-						displayName="execution-factory-class" description="Connector Class" />
-					<c:simple-property name="xa-capable" displayName="xa-capable"
-						description="True, if this connector supports XA Transactions"
-						type="boolean" default="true" />
-					<c:simple-property name="template-name"
-						default="translator-jdbc-${project.version}" readOnly="true" />
+					<c:simple-property name="type" 	default="mysql5" displayName="Type" description="Base Translator Type" readOnly="true"/>
 				</c:template>
 				<c:template name="Oracle" description="Translator for Oracle">
-					<c:simple-property name="execution-factory-class"
-						default="org.teiid.translator.jdbc.oracle.OracleExecutionFactory"
-						displayName="execution-factory-class" description="Connector Class" />
-					<c:simple-property name="xa-capable" displayName="xa-capable"
-						description="True, if this connector supports XA Transactions"
-						type="boolean" default="true" />
-					<c:simple-property name="template-name"
-						default="translator-jdbc-${project.version}" readOnly="true" />
+					<c:simple-property name="type" 	default="oracle" displayName="Type" description="Base Translator Type" readOnly="true"/>
 				</c:template>
 				<c:template name="SQLServer" description="Translator for SQLServer">
-					<c:simple-property name="execution-factory-class"
-						default="org.teiid.translator.jdbc.oracle.SQLServerExecutionFactory"
-						displayName="execution-factory-class" description="Connector Class" />
-					<c:simple-property name="xa-capable" displayName="xa-capable"
-						description="True, if this connector supports XA Transactions"
-						type="boolean" default="true" />
-					<c:simple-property name="template-name"
-						default="translator-jdbc-${project.version}" readOnly="true" />
+					<c:simple-property name="type" 	default="sqlserver" displayName="Type" description="Base Translator Type" readOnly="true"/>
 				</c:template>
 				<c:template name="Sybase" description="Translator for Sybase">
-					<c:simple-property name="execution-factory-class"
-						default="org.teiid.translator.jdbc.sybase.SybaseExecutionFactory"
-						displayName="execution-factory-class" description="Connector Class" />
-					<c:simple-property name="xa-capable" displayName="xa-capable"
-						description="True, if this connector supports XA Transactions"
-						type="boolean" default="true" />
-					<c:simple-property name="template-name"
-						default="translator-jdbc-${project.version}" readOnly="true" />
+					<c:simple-property name="type" 	default="sybase" displayName="Type" description="Base Translator Type" readOnly="true"/>
 				</c:template>
 				<c:template name="LDAP" description="Translator for LDAP">
-					<c:simple-property name="execution-factory-class"
-						default="org.teiid.translator.ldap.LDAPExecutionFactory"
-						displayName="execution-factory-class" description="Connector Class" />
-					<c:simple-property name="xa-capable" displayName="xa-capable"
-						description="True, if this connector supports XA Transactions"
-						type="boolean" default="true" />
-					<c:simple-property name="template-name"
-						default="translator-ldap-${project.version}" readOnly="true" />
+					<c:simple-property name="type" 	default="ldap" displayName="Type" description="Base Translator Type" readOnly="true"/>
 				</c:template>
 				<c:template name="SalesForce" description="Translator for SalesForce">
-					<c:simple-property name="execution-factory-class"
-						default="org.teiid.translator.salesforce.SalesForceExecutionFactory"
-						displayName="execution-factory-class" description="Connector Class" />
-					<c:simple-property name="xa-capable" displayName="xa-capable"
-						description="True, if this connector supports XA Transactions"
-						type="boolean" default="true" />
-					<c:simple-property name="template-name"
-						default="translator-salesforce-${project.version}" readOnly="true" />
+					<c:simple-property name="type" 	default="salesforce" displayName="Type" description="Base Translator Type" readOnly="true"/>
 				</c:template>
 				<c:template name="XML" description="Translator for XML">
-					<c:simple-property name="execution-factory-class"
-						default="org.teiid.translator.xml.XMLExecutionFactory"
-						displayName="execution-factory-class" description="Connector Class" />
-					<c:simple-property name="xa-capable" displayName="xa-capable"
-						description="True, if this connector supports XA Transactions"
-						type="boolean" default="true" />
-					<c:simple-property name="template-name"
-						default="translator-xml-${project.version}" readOnly="true" />
+					<c:simple-property name="type" 	default="xml" displayName="Type" description="Base Translator Type" readOnly="true"/>
 				</c:template>
 				<c:template name="Loopback" description="Translator for Loopback">
-					<c:simple-property name="execution-factory-class"
-						default=">org.teiid.translator.loopback.LoopbackExecutionFactory"
-						displayName="execution-factory-class" description="Connector Class" />
-					<c:simple-property name="xa-capable" displayName="xa-capable"
-						description="True, if this connector supports XA Transactions"
-						type="boolean" default="true" />
-					<c:simple-property name="template-name"
-						default="translator-loopback-${project.version}" readOnly="true" />
+					<c:simple-property name="type" 	default="loopback" displayName="Type" description="Base Translator Type" readOnly="true"/>
 				</c:template>
 
 			</resource-configuration>

Modified: trunk/engine/pom.xml
===================================================================
--- trunk/engine/pom.xml	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/engine/pom.xml	2010-05-27 17:40:05 UTC (rev 2157)
@@ -92,6 +92,15 @@
 			<artifactId>saxon-dom</artifactId>
 		</dependency>
 
+        <dependency>
+            <groupId>xom</groupId>
+            <artifactId>xom</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>nux</groupId>
+            <artifactId>nux</artifactId>
+        </dependency>
+
 	</dependencies>
 
 </project>
\ No newline at end of file

Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorManager.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorManager.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorManager.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -89,6 +89,7 @@
 	private LinkedList<ConnectorWorkItem> queuedRequests = new LinkedList<ConnectorWorkItem>();
 	
 	private volatile boolean stopped;
+	private ExecutionFactory executionFactory;
 	
     public ConnectorManager(String translatorName, String connectionName) {
     	this.translatorName = translatorName;
@@ -98,6 +99,7 @@
     public String getStausMessage() {
     	StringBuilder sb = new StringBuilder();
     	ExecutionFactory ef = getExecutionFactory();
+		
     	if(ef != null) {
     		if (ef.isSourceRequired()) {
     			Object conn = getConnectionFactory();
@@ -129,12 +131,12 @@
         
     
     public MetadataStore getMetadata(String modelName, Map<String, Datatype> datatypes, Properties importProperties) throws TranslatorException {
-    	MetadataFactory factory = new MetadataFactory(modelName, datatypes, importProperties);
-    	ExecutionFactory executionFactory = getExecutionFactory();
-    	if (executionFactory instanceof MetadataProvider) {
-    		((MetadataProvider)executionFactory).getConnectorMetadata(factory, getConnectionFactory());
-    	}
-    	return factory.getMetadataStore();
+		MetadataFactory factory = new MetadataFactory(modelName, datatypes, importProperties);
+		ExecutionFactory executionFactory = getExecutionFactory();
+		if (executionFactory instanceof MetadataProvider) {
+			((MetadataProvider)executionFactory).getConnectorMetadata(factory, getConnectionFactory());
+		}
+		return factory.getMetadataStore();
 	}    
     
     public SourceCapabilities getCapabilities() throws TranslatorException {
@@ -142,12 +144,12 @@
     		return cachedCapabilities;
     	}
 
-    	checkStatus();
-    	ExecutionFactory translator = getExecutionFactory();
-        BasicSourceCapabilities resultCaps = CapabilitiesConverter.convertCapabilities(translator, this.connectorId, translator.isXaCapable());
-    	resultCaps.setScope(Scope.SCOPE_GLOBAL);
-    	cachedCapabilities = resultCaps;
-        return resultCaps;
+		checkStatus();
+		ExecutionFactory translator = getExecutionFactory();
+		BasicSourceCapabilities resultCaps = CapabilitiesConverter.convertCapabilities(translator, this.connectorId, translator.isXaCapable());
+		resultCaps.setScope(Scope.SCOPE_GLOBAL);
+		cachedCapabilities = resultCaps;
+		return resultCaps;
     }
     
     public ConnectorWork executeRequest(AtomicRequestMessage message, AbstractWorkItem awi) throws TranslatorException {
@@ -250,15 +252,23 @@
      * Get the <code>Translator</code> object managed by this  manager.
      * @return the <code>ExecutionFactory</code>.
      */
-    protected ExecutionFactory getExecutionFactory() {
-    	try {
-			InitialContext ic = new InitialContext();
-			return (ExecutionFactory)ic.lookup(this.translatorName);
-		} catch (NamingException e) {
-		}  
-		return null;
+    @SuppressWarnings("unused")
+	protected ExecutionFactory getExecutionFactory() {
+    	if (this.executionFactory == null) {
+	    	try {
+				InitialContext ic = new InitialContext();
+				return (ExecutionFactory)ic.lookup(this.translatorName);
+			} catch (NamingException e) {
+			}
+    	}
+		return this.executionFactory;
     }
     
+	public void setExecutionFactory(ExecutionFactory ef) {
+		this.executionFactory = ef;
+	}
+    
+    
     /**
      * Get the ConnectionFactory object required by this manager
      * @return

Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/TranslatorRepository.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/TranslatorRepository.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/TranslatorRepository.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -26,35 +26,53 @@
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
-import org.teiid.translator.ExecutionFactory;
+import org.teiid.adminapi.Translator;
+import org.teiid.adminapi.impl.TranslatorMetaData;
+import org.teiid.adminapi.impl.VDBTranslatorMetaData;
+import org.teiid.vdb.runtime.VDBKey;
 
 
 public class TranslatorRepository implements Serializable{
 	
 	private static final long serialVersionUID = -1212280886010974273L;
-	private Map<String, ExecutionFactory> translatorRepo = new ConcurrentHashMap<String, ExecutionFactory>();
+	private Map<String, TranslatorMetaData> translatorRepo = new ConcurrentHashMap<String, TranslatorMetaData>();
+	private Map<VDBKey, Map<String, VDBTranslatorMetaData>> vdbScopedTranslatorRepo = new ConcurrentHashMap<VDBKey, Map<String, VDBTranslatorMetaData>>();
 
-	public void addTranslator(String name, ExecutionFactory t) {
-//		try {
-//			InitialContext ic = new InitialContext();
-//			ic.bind(name, t);
-//		} catch (NamingException e) {
-//			LogManager.logError(LogConstants.CTX_RUNTIME, DQPPlugin.Util.getString("failed_to_bind_translator", name)); //$NON-NLS-1$
-//		}
-		this.translatorRepo.put(name, t);
+	public void addTranslatorMetadata(String name, TranslatorMetaData factory) {
+		this.translatorRepo.put(name, factory);
 	}
 	
-	public ExecutionFactory getTranslator(String name) {
-		return this.translatorRepo.get(name);
+	public void addTranslatorMetadata(VDBKey key, String name, VDBTranslatorMetaData factory) {
+		Map<String, VDBTranslatorMetaData> repo = vdbScopedTranslatorRepo.get(key);
+		if (repo == null) {
+			repo = new ConcurrentHashMap<String, VDBTranslatorMetaData>();
+			this.vdbScopedTranslatorRepo.put(key, repo);
+		}
+		repo.put(name, factory);
+	}	
+	
+	public Translator getTranslatorMetaData(VDBKey key, String name) {
+		Translator factory = null;
+
+		if (key != null) {
+			Map<String, VDBTranslatorMetaData> repo = vdbScopedTranslatorRepo.get(key);
+			if (repo != null && !repo.isEmpty()) {
+				factory = repo.get(name); 	
+			}
+		}
+		
+		if (factory == null) {
+			factory = this.translatorRepo.get(name);
+		}
+		
+		return factory;
 	}
 	
-	public ExecutionFactory removeTranslator(String name) {
-//		try {
-//			InitialContext ic = new InitialContext();
-//			ic.unbind(name);
-//		} catch (NamingException e) {
-//			LogManager.logError(LogConstants.CTX_RUNTIME, DQPPlugin.Util.getString("failed_to_unbind_translator", name)); //$NON-NLS-1$
-//		}		
+	public TranslatorMetaData removeTranslatorMetadata(String name) {
 		return this.translatorRepo.remove(name);
 	}	
+	
+	public void removeVDBTranslators(VDBKey name) {
+		this.vdbScopedTranslatorRepo.remove(name);
+	}
 }
\ No newline at end of file

Modified: trunk/jboss-integration/src/main/java/org/teiid/adminapi/jboss/Admin.java
===================================================================
--- trunk/jboss-integration/src/main/java/org/teiid/adminapi/jboss/Admin.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/jboss-integration/src/main/java/org/teiid/adminapi/jboss/Admin.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -28,7 +28,6 @@
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
@@ -76,8 +75,7 @@
 import org.teiid.jboss.IntegrationPlugin;
 import org.teiid.jboss.deployers.RuntimeEngineDeployer;
 
-public class Admin extends TeiidAdmin {
-	private static final String TRANSLATOR_PREFIX = "translator-"; //$NON-NLS-1$
+public class Admin extends TeiidAdmin {	
 	private static final String CONNECTOR_PREFIX = "connector-"; //$NON-NLS-1$
 	private static final ProfileKey DEFAULT_PROFILE_KEY = new ProfileKey(ProfileKey.DEFAULT);
 	private static final long serialVersionUID = 7081309086056911304L;
@@ -85,7 +83,6 @@
 	private static ComponentType DQPTYPE = new ComponentType("teiid", "dqp");//$NON-NLS-1$ //$NON-NLS-2$	
 	private static String DQPNAME = RuntimeEngineDeployer.class.getName();
 	private static ComponentType TRANSLATOR_TYPE = new ComponentType("teiid", "translator");//$NON-NLS-1$ //$NON-NLS-2$
-	private static AdminObjectBuilder AOB = new AdminObjectBuilder();
 	
 	private static final String[] DS_TYPES = {"XA", "NoTx", "LocalTx"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 	private static final String[] CF_TYPES = {"NoTx", "Tx"}; //$NON-NLS-1$ //$NON-NLS-2$
@@ -154,7 +151,7 @@
 		try {
 			Set<ManagedComponent> mcSet = getView().getComponentsForType(TRANSLATOR_TYPE);
 			for (ManagedComponent mc:mcSet) {
-				factories.add(AOB.buildAdminObject(mc, TranslatorMetaData.class));
+				factories.add(AdminObjectBuilder.buildAO(mc, TranslatorMetaData.class));
 			}
 		} catch (Exception e) {
 			throw new AdminComponentException(e);
@@ -167,7 +164,7 @@
 		try {
 			ManagedComponent mc = getView().getComponent(deployedName, TRANSLATOR_TYPE);
 			if (mc != null) {
-				return AOB.buildAdminObject(mc, TranslatorMetaData.class);
+				return AdminObjectBuilder.buildAO(mc, TranslatorMetaData.class);
 			}
 			return null;
 		} catch(Exception e) {
@@ -186,94 +183,6 @@
 		}
 	}	
 	
-	@Override
-	public Translator createTranslator(String deploymentName, String typeName, Properties properties) throws AdminException {
-		try {
-			ManagedComponent mc = getView().getComponent(deploymentName, TRANSLATOR_TYPE);
-			if (mc != null) {
-				throw new AdminProcessingException(IntegrationPlugin.Util.getString("translator_exists",deploymentName)); //$NON-NLS-1$;	
-			}
-			
-			DeploymentTemplateInfo info = getView().getTemplate(typeName);
-			if(info == null) {
-				throw new AdminProcessingException(IntegrationPlugin.Util.getString("translator_template_not_found", typeName)); //$NON-NLS-1$
-			}
-			
-			// template properties specific to the template
-			Map<String, ManagedProperty> propertyMap = info.getProperties();
-			
-			// walk through the supplied properties and assign properly to template
-			for (String key:properties.stringPropertyNames()) {
-				ManagedProperty mp = propertyMap.get(key);
-				if (mp != null) {
-					String value = properties.getProperty(key);
-					if (!ManagedUtil.sameValue(mp.getDefaultValue(), value)){
-						mp.setValue(SimpleValueSupport.wrap(value));
-					}
-				}
-			}
-			propertyMap.get(TranslatorMetaData.NAME).setValue(SimpleValueSupport.wrap(deploymentName)); 
-			propertyMap.get(TranslatorMetaData.TEMPLATE_NAME).setValue(SimpleValueSupport.wrap(typeName));
-			
-			getView().applyTemplate(deploymentName, info);
-		} catch (NoSuchDeploymentException e) {
-			throw new AdminComponentException(e.getMessage(), e);
-		} catch(Exception e) {
-			throw new AdminComponentException(e.getMessage(), e);
-		} 
-		return getTranslator(deploymentName);
-	}
-	
-	@Override
-	public void setTranslatorProperty(String deployedName, String propertyName, String propertyValue) throws AdminException{
-		try {
-			ManagementView localView = getView();
-			ManagedComponent mc = localView.getComponent(deployedName, TRANSLATOR_TYPE);
-			if (mc == null) {
-				throw new AdminProcessingException(IntegrationPlugin.Util.getString("translator_does_not_exist",deployedName)); //$NON-NLS-1$;
-			}
-			
-			if (mc.getProperty(propertyName) != null) {
-				mc.getProperty(propertyName).setValue(SimpleValueSupport.wrap(propertyValue));
-			}
-			else {
-				Map<String, String> configProps = new HashMap<String, String>();
-				configProps.put(propertyName, propertyValue);
-				MetaValue metaValue = ManagedUtil.compositeValueMap(configProps);
-				mc.getProperty("translator-property").setValue(metaValue); //$NON-NLS-1$
-			}
-
-			localView.updateComponent(mc);
-			localView.load();
-		} catch (Exception e) {
-			throw new AdminComponentException(e);
-		}
-	}
-		
-	@Override
-	public void deleteTranslator(String deployedName) throws AdminException {
-		try {
-			ManagedComponent mc = getView().getComponent(deployedName, TRANSLATOR_TYPE);
-			if (mc != null) {
-				ManagedUtil.removeArchive(getDeploymentManager(),mc.getDeployment().getName());
-			}
-		} catch (Exception e) {
-			throw new AdminComponentException(e);
-		}
-	}
-	
-	@Override
-	public Set<String> getTranslatorTemplateNames() throws AdminException{
-		Set<String> names = getView().getTemplateNames();
-		HashSet<String> matched = new HashSet<String>();
-		for(String name:names) {
-			if (name.startsWith(TRANSLATOR_PREFIX)) {
-				matched.add(name);
-			}
-		}
-		return matched;
-	}
-	
     boolean matches(String regEx, String value) {
         regEx = regEx.replaceAll(AdminObject.ESCAPED_WILDCARD, ".*"); //$NON-NLS-1$ 
         regEx = regEx.replaceAll(AdminObject.ESCAPED_DELIMITER, ""); //$NON-NLS-1$ 
@@ -479,8 +388,18 @@
 	
 	@Override
 	public Collection<PropertyDefinition> getTemplatePropertyDefinitions(String templateName) throws AdminException {
+		
+		DeploymentTemplateInfo info = null;
 		try {
-			DeploymentTemplateInfo info = getView().getTemplate(templateName);
+			info = getView().getTemplate(templateName);
+		} catch (NoSuchDeploymentException e) {
+			// ignore..
+		}
+		
+		try {
+			if (info == null && !templateName.startsWith(TranslatorMetaData.TRANSLATOR_PREFIX)) {
+				info = getView().getTemplate(TranslatorMetaData.TRANSLATOR_PREFIX+templateName);
+			}
 			if(info == null) {
 				throw new AdminProcessingException(IntegrationPlugin.Util.getString("connector_type_not_found", templateName)); //$NON-NLS-1$
 			}

Modified: trunk/jboss-integration/src/main/java/org/teiid/adminapi/jboss/AdminObjectBuilder.java
===================================================================
--- trunk/jboss-integration/src/main/java/org/teiid/adminapi/jboss/AdminObjectBuilder.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/jboss-integration/src/main/java/org/teiid/adminapi/jboss/AdminObjectBuilder.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -22,6 +22,7 @@
 package org.teiid.adminapi.jboss;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -38,6 +39,7 @@
 import org.jboss.metatype.api.values.MetaValue;
 import org.jboss.metatype.api.values.MetaValueFactory;
 import org.jboss.metatype.api.values.SimpleValue;
+import org.teiid.adminapi.impl.PropertyMetadata;
 import org.teiid.adminapi.impl.TranslatorMetaData;
 import org.teiid.core.TeiidRuntimeException;
 import org.teiid.core.util.PropertiesUtils;
@@ -72,8 +74,18 @@
 					}
 					else if (type.isComposite()) {
 						if (value instanceof MapCompositeValueSupport) {
-							Object myValue = MetaValueFactory.getInstance().unwrap(value);
-							PropertiesUtils.setBeanProperty(t, mp.getMappedName(), myValue);
+							HashMap<String, String> myValue = (HashMap<String, String>)MetaValueFactory.getInstance().unwrap(value);
+							
+							if (mp.getMappedName().equals("JAXBProperties")) { //$NON-NLS-1$
+								List<PropertyMetadata> props = new ArrayList<PropertyMetadata>();
+								for (String key:myValue.keySet()) {
+									props.add(new PropertyMetadata(key, myValue.get(key)));
+								}
+								PropertiesUtils.setBeanProperty(t, mp.getMappedName(), props);
+							}
+							else {
+								PropertiesUtils.setBeanProperty(t, mp.getMappedName(), myValue);
+							}
 						}
 					}
 					else if (type.isCollection()) {
@@ -89,6 +101,9 @@
 						else if (elementType == SimpleMetaType.STRING) {
 							list.addAll((List<String>) MetaValueFactory.getInstance().unwrap(value));
 						}
+						else if (elementType.isComposite()) {
+							list.addAll((List)MetaValueFactory.getInstance().unwrap(value));
+						}
 						
 						PropertiesUtils.setBeanProperty(t, mp.getMappedName(), list);
 					}
@@ -102,6 +117,8 @@
 		}
 	}
 	
+
+	
 	public <T> T buildAdminObject(ManagedCommon mc, Class<T> clazz) {
 		try {
 			Object t = clazz.newInstance();			

Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/pom.xml	2010-05-27 17:40:05 UTC (rev 2157)
@@ -462,6 +462,17 @@
 				<artifactId>ant</artifactId>
 				<version>${ant.version}</version>
 			</dependency>
+            <dependency>
+                <groupId>xom</groupId>
+                <artifactId>xom</artifactId>
+                <version>1.2</version>
+            </dependency>
+            <dependency>
+                <groupId>nux</groupId>
+                <artifactId>nux</artifactId>
+                <version>1.6</version>
+            </dependency>
+            
 		</dependencies>
 	</dependencyManagement>
 	<modules>

Modified: trunk/runtime/src/main/java/org/teiid/deployers/ManagedPropertyUtil.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/ManagedPropertyUtil.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/runtime/src/main/java/org/teiid/deployers/ManagedPropertyUtil.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -40,6 +40,10 @@
 	private static final String TEIID_PROPERTY = "teiid-property"; //$NON-NLS-1$
 	
 	public static ManagedProperty convert(Object instance, Method method, TranslatorProperty prop) {
+		return (ManagedProperty)convert(instance, method, prop, false);
+	}
+
+	private static Object convert(Object instance, Method method, TranslatorProperty prop, boolean needDefaultValue) {
 		Class<?> type = method.getReturnType();
 		String[] allowedValues = null;
 		Method getter = null;
@@ -64,7 +68,7 @@
 		} else {
 			getter = method;
 			try {
-				TranslatorDeployer.getSetter(instance.getClass(), method);
+				TranslatorUtil.getSetter(instance.getClass(), method);
 			} catch (Exception e) {
 				readOnly = true;
 			}
@@ -95,11 +99,18 @@
 		if (!(defaultValue instanceof Serializable)) {
 			defaultValue = null; //TODO
 		}
-		return createProperty(TranslatorDeployer.getPropertyName(method), SimpleMetaType.resolve(type.getName()), 
+		if (needDefaultValue) {
+			return defaultValue;
+		}
+		return createProperty(TranslatorUtil.getPropertyName(method), SimpleMetaType.resolve(type.getName()), 
 				prop.display(), prop.description(), prop.required(), readOnly, (Serializable)defaultValue,
 				prop.advanced(), prop.masked(), allowedValues);
 	}
 	
+	public static Object getDefaultValue(Object instance, Method method, TranslatorProperty prop) {
+		return convert(instance, method, prop, true);
+	}	
+	
 	public static ManagedProperty convert(ExtendedPropertyMetadata prop) {
 		return createProperty(prop.name(), SimpleMetaType.resolve(prop.type()), 
 				prop.display(), prop.description(), prop.required(), prop.readOnly(), prop.defaultValue(),

Added: trunk/runtime/src/main/java/org/teiid/deployers/TranslatorAnnotationScanningDeployer.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/TranslatorAnnotationScanningDeployer.java	                        (rev 0)
+++ trunk/runtime/src/main/java/org/teiid/deployers/TranslatorAnnotationScanningDeployer.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -0,0 +1,156 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership.  Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * 
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * 
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA.
+ */
+package org.teiid.deployers;
+
+import java.util.Collection;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.spi.annotations.AnnotationEnvironment;
+import org.jboss.deployers.spi.deployer.helpers.AbstractAnnotationDeployer;
+import org.jboss.deployers.spi.deployer.helpers.AbstractAnnotationProcessor;
+import org.jboss.deployers.spi.deployer.managed.ManagedObjectCreator;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.managed.api.ManagedObject;
+import org.jboss.managed.api.factory.ManagedObjectFactory;
+import org.teiid.adminapi.impl.TranslatorMetaData;
+import org.teiid.dqp.internal.datamgr.impl.TranslatorRepository;
+import org.teiid.logging.LogConstants;
+import org.teiid.logging.LogManager;
+import org.teiid.runtime.RuntimePlugin;
+import org.teiid.translator.Translator;
+
+/**
+ * This translator looks for classes with {@link Translator} annotation, if it finds it tries to build metadata based on that
+ * annotation. 
+ * TODO: the logic in the translator deployers need to be consolidated.
+ */
+public class TranslatorAnnotationScanningDeployer extends AbstractAnnotationDeployer implements ManagedObjectCreator {
+
+	private TranslatorRepository translatorRepository;
+	private VDBStatusChecker vdbChecker;
+	private ManagedObjectFactory mof;
+	
+	public TranslatorAnnotationScanningDeployer() {
+		super(new TranslatorAnnotationProcessor());
+	}
+
+	private static class TranslatorAnnotationProcessor extends AbstractAnnotationProcessor<Translator, TranslatorMetaData> {
+		public Class<Translator> getAnnotation() {
+			return Translator.class;
+		}
+
+		public Class<TranslatorMetaData> getOutput() {
+			return TranslatorMetaData.class;
+		}
+
+		// this is called with-in the deploy 
+		protected TranslatorMetaData createMetaDataFromClass(Class<?> clazz, Translator bean) {
+			String name = bean.name();
+			if (name == null) {
+				throw new IllegalArgumentException("Null Translator name: " + clazz); //$NON-NLS-1$
+			}
+			
+			TranslatorMetaData data = new TranslatorMetaData();
+			data.setName(bean.name());
+			data.setExecutionFactoryClass(clazz);
+
+			return data;
+		}
+	}
+	
+	public void deploy(DeploymentUnit unit, AnnotationEnvironment deployment) throws DeploymentException {
+		super.deploy(unit, deployment);
+
+		Collection<Object> group = unit.getAttachments().values();
+
+		for (Object anObj : group) {
+			if (anObj instanceof TranslatorMetaData) {
+				TranslatorMetaData data = (TranslatorMetaData)anObj;
+				String translatorName = data.getName();
+				if (translatorName == null) {
+					throw new DeploymentException(RuntimePlugin.Util.getString("name_not_found", unit.getName())); //$NON-NLS-1$
+				}
+				
+				// fill with default properties for the tooling to see the properties
+				Properties props = TranslatorUtil.getTranslatorPropertiesAsProperties(data.getExecutionFactoryClass());
+				data.setProperties(props);
+				data.addProperty(TranslatorMetaData.EXECUTION_FACTORY_CLASS, data.getExecutionFactoryClass().getName());
+				
+	            this.translatorRepository.addTranslatorMetadata(translatorName, data);
+	            LogManager.logInfo(LogConstants.CTX_RUNTIME, RuntimePlugin.Util.getString("translator_added", translatorName)); //$NON-NLS-1$
+	            this.vdbChecker.translatorAdded(translatorName);
+			}
+		}
+	}
+
+	@Override
+	public void undeploy(DeploymentUnit unit, AnnotationEnvironment deployment) {
+		super.undeploy(unit, deployment);
+		
+		Collection<Object> group = unit.getAttachments().values();
+
+		for (Object anObj : group) {
+			if (anObj instanceof TranslatorMetaData) {
+				TranslatorMetaData data = (TranslatorMetaData)anObj;
+				String translatorName = data.getName();
+				if (this.translatorRepository != null) {
+					this.translatorRepository.removeTranslatorMetadata(translatorName);
+					LogManager.logInfo(LogConstants.CTX_RUNTIME, RuntimePlugin.Util.getString("translator_removed", translatorName)); //$NON-NLS-1$
+					this.vdbChecker.translatorRemoved(translatorName);
+				}
+			}
+		}		
+	}
+	
+	@Override
+	public void build(DeploymentUnit unit, Set<String> attachmentNames, Map<String, ManagedObject> managedObjects) throws DeploymentException {
+		Collection<Object> group = unit.getAttachments().values();
+
+		for (Object anObj : group) {
+			if (anObj instanceof TranslatorMetaData) {
+				TranslatorMetaData data = (TranslatorMetaData)anObj;
+				
+				ManagedObject mo = this.mof.initManagedObject(data, TranslatorMetaData.class, data.getName(),data.getName());
+				if (mo == null) {
+					throw new DeploymentException("could not create managed object"); //$NON-NLS-1$
+				}
+				managedObjects.put(mo.getName(), mo);
+				
+			}
+		}
+	}
+	
+	public void setTranslatorRepository(TranslatorRepository repo) {
+		this.translatorRepository = repo;
+	}	
+	
+	public void setVDBStatusChecker(VDBStatusChecker checker) {
+		this.vdbChecker = checker;
+	}
+	
+	public void setManagedObjectFactory(ManagedObjectFactory mof) {
+		this.mof = mof;
+	}
+}
\ No newline at end of file

Modified: trunk/runtime/src/main/java/org/teiid/deployers/TranslatorDeployer.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/TranslatorDeployer.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/runtime/src/main/java/org/teiid/deployers/TranslatorDeployer.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -21,23 +21,17 @@
  */
 package org.teiid.deployers;
 
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.Map;
+import java.util.Set;
 
 import org.jboss.deployers.spi.DeploymentException;
 import org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer;
 import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.teiid.adminapi.Translator;
 import org.teiid.adminapi.impl.TranslatorMetaData;
-import org.teiid.core.TeiidException;
-import org.teiid.core.util.ReflectionHelper;
-import org.teiid.core.util.StringUtil;
 import org.teiid.dqp.internal.datamgr.impl.TranslatorRepository;
 import org.teiid.logging.LogConstants;
 import org.teiid.logging.LogManager;
 import org.teiid.runtime.RuntimePlugin;
-import org.teiid.translator.ExecutionFactory;
-import org.teiid.translator.TranslatorProperty;
 
 
 /**
@@ -61,16 +55,23 @@
 				throw new DeploymentException(RuntimePlugin.Util.getString("name_not_found", unit.getName())); //$NON-NLS-1$
 			}
 			
-			String executionFactoryClass = data.getExecutionFactoryClass();
-			if (executionFactoryClass != null) {
-				ExecutionFactory connector = buildTranslator(executionFactoryClass, data);
-	            this.translatorRepository.addTranslator(translatorName, connector);
-	            LogManager.logInfo(LogConstants.CTX_RUNTIME, RuntimePlugin.Util.getString("translator_started", translatorName)); //$NON-NLS-1$
-	            this.vdbChecker.translatorAdded(translatorName);
-			}	
-			else {
-				throw new DeploymentException(RuntimePlugin.Util.getString("executionfactory_not_found", unit.getName())); //$NON-NLS-1$
+			String type = data.getType();
+			Translator parent = this.translatorRepository.getTranslatorMetaData(null, type);
+			if ( parent == null) {
+				throw new DeploymentException(RuntimePlugin.Util.getString("translator_type_not_found", unit.getName())); //$NON-NLS-1$
 			}
+			
+			// fill with default properties ignoring the overridden ones.
+			Set<String> keys = parent.getProperties().stringPropertyNames();
+			for (String key:keys) {
+				if (data.getPropertyValue(key) == null && parent.getPropertyValue(key) != null) {
+					data.addProperty(key, parent.getPropertyValue(key));
+				}
+			}
+			
+            this.translatorRepository.addTranslatorMetadata(translatorName, data);
+            LogManager.logInfo(LogConstants.CTX_RUNTIME, RuntimePlugin.Util.getString("translator_added", translatorName)); //$NON-NLS-1$
+            this.vdbChecker.translatorAdded(translatorName);
 		}
 	}
 	
@@ -82,86 +83,13 @@
 		
 			String translatorName = data.getName();
 			if (this.translatorRepository != null) {
-				this.translatorRepository.removeTranslator(translatorName);
-				LogManager.logInfo(LogConstants.CTX_RUNTIME, RuntimePlugin.Util.getString("translator_stopped", translatorName)); //$NON-NLS-1$
+				this.translatorRepository.removeTranslatorMetadata(translatorName);
+				LogManager.logInfo(LogConstants.CTX_RUNTIME, RuntimePlugin.Util.getString("translator_removed", translatorName)); //$NON-NLS-1$
 				this.vdbChecker.translatorRemoved(translatorName);
 			}
 		}
 	}	
 
-	ExecutionFactory buildTranslator(String executionFactoryClass, TranslatorMetaData data) throws DeploymentException {
-		ExecutionFactory executionFactory;
-		try {
-			Object o = ReflectionHelper.create(executionFactoryClass, null, Thread.currentThread().getContextClassLoader());
-			if(!(o instanceof ExecutionFactory)) {
-				throw new DeploymentException(RuntimePlugin.Util.getString("invalid_class", executionFactoryClass));//$NON-NLS-1$	
-			}
-			
-			executionFactory = (ExecutionFactory)o;
-			injectProperties(executionFactory, data);
-			executionFactory.start();
-			return executionFactory;
-			
-		} catch (TeiidException e) {
-			throw new DeploymentException(e);
-		} catch (InvocationTargetException e) {
-			throw new DeploymentException(e);
-		} catch (IllegalAccessException e) {
-			throw new DeploymentException(e);
-		}
-	}
-	
-	public static String getPropertyName(Method method) {
-		String result = method.getName();
-		if (result.startsWith("get") || result.startsWith("set")) { //$NON-NLS-1$ //$NON-NLS-2$
-			return result.substring(3);
-		}
-		else if (result.startsWith("is")) { //$NON-NLS-1$
-			return result.substring(2);
-		}
-		return result;
-	}
-	
-	public static Method getSetter(Class<?> clazz, Method method) throws SecurityException, DeploymentException {
-		String setter = method.getName();
-		if (method.getName().startsWith("get")) { //$NON-NLS-1$
-			setter = "set"+setter.substring(3);//$NON-NLS-1$
-		}
-		else if (method.getName().startsWith("is")) { //$NON-NLS-1$
-			setter = "set"+setter.substring(2); //$NON-NLS-1$
-		}
-		try {
-			return clazz.getMethod(setter, method.getReturnType());
-		} catch (NoSuchMethodException e) {
-			throw new DeploymentException(RuntimePlugin.Util.getString("no_set_method", setter, method.getName())); //$NON-NLS-1$
-		}
-	}
-	
-	private void injectProperties(ExecutionFactory ef, final TranslatorMetaData data) throws InvocationTargetException, IllegalAccessException, DeploymentException{
-		Map<Method, TranslatorProperty> props = TranslatorPropertyUtil.getTranslatorProperties(ef.getClass());
-		
-		for (Method method:props.keySet()) {
-			TranslatorProperty tp = props.get(method);
-			if (tp.managed()) {
-				continue;
-			}
-			String propertyName = getPropertyName(method);
-			Object value = data.getPropertyValue(propertyName);
-			
-			if (value != null) {
-				Method setterMethod = getSetter(ef.getClass(), method);
-				setterMethod.invoke(ef, convert(value, method.getReturnType()));
-			} else if (tp.required()) {
-				throw new DeploymentException(RuntimePlugin.Util.getString("required_property_not_exists", tp.display())); //$NON-NLS-1$
-			}
-		}
-		
-		ef.setExceptionOnMaxRows(data.isExceptionOnMaxRows());
-		ef.setImmutable(data.isImmutable());
-		ef.setMaxResultRows(data.getMaxResultRows());
-		ef.setXaCapable(data.isXaCapable());
-	}
-
 	public void setTranslatorRepository(TranslatorRepository repo) {
 		this.translatorRepository = repo;
 	}	
@@ -169,16 +97,4 @@
 	public void setVDBStatusChecker(VDBStatusChecker checker) {
 		this.vdbChecker = checker;
 	}
-	
-	Object convert(Object value, Class<?> type) {
-		if(value.getClass() == type) {
-			return value;
-		}
-		
-		if (value instanceof String) {
-			String str = (String)value;
-			return StringUtil.valueOf(str, type);
-		}
-		return value;
-	}
 }

Deleted: trunk/runtime/src/main/java/org/teiid/deployers/TranslatorPropertyUtil.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/TranslatorPropertyUtil.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/runtime/src/main/java/org/teiid/deployers/TranslatorPropertyUtil.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -1,56 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership.  Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- */
-package org.teiid.deployers;
-
-import java.lang.reflect.Method;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.teiid.translator.TranslatorProperty;
-
-public class TranslatorPropertyUtil {
-	
-	public static Map<Method, TranslatorProperty> getTranslatorProperties(Class<?> attachmentClass) {
-		Map<Method, TranslatorProperty> props = new HashMap<Method,  TranslatorProperty>();
-		buildTranslatorProperties(attachmentClass, props);
-		return props;
-	}
-	
-	private static void buildTranslatorProperties(Class<?> attachmentClass, Map<Method, TranslatorProperty> props){
-		Method[] methods = attachmentClass.getMethods();
-		for (Method m:methods) {
-			TranslatorProperty tp = m.getAnnotation(TranslatorProperty.class);
-			if (tp != null) {
-				props.put(m, tp);
-			}
-		}
-		// Now look at the base interfaces
-		Class[] baseInterfaces = attachmentClass.getInterfaces();
-		for (Class clazz:baseInterfaces) {
-			buildTranslatorProperties(clazz, props);
-		}
-		Class superClass = attachmentClass.getSuperclass();
-		if (superClass != null) {
-			buildTranslatorProperties(superClass, props);
-		}
-	}	
-}

Copied: trunk/runtime/src/main/java/org/teiid/deployers/TranslatorUtil.java (from rev 2152, trunk/runtime/src/main/java/org/teiid/deployers/TranslatorPropertyUtil.java)
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/TranslatorUtil.java	                        (rev 0)
+++ trunk/runtime/src/main/java/org/teiid/deployers/TranslatorUtil.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -0,0 +1,169 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership.  Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * 
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * 
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA.
+ */
+package org.teiid.deployers;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+
+import org.jboss.deployers.spi.DeploymentException;
+import org.teiid.adminapi.Translator;
+import org.teiid.adminapi.impl.TranslatorMetaData;
+import org.teiid.core.TeiidException;
+import org.teiid.core.util.ReflectionHelper;
+import org.teiid.core.util.StringUtil;
+import org.teiid.runtime.RuntimePlugin;
+import org.teiid.translator.ExecutionFactory;
+import org.teiid.translator.TranslatorProperty;
+
+public class TranslatorUtil {
+	
+	public static Map<Method, TranslatorProperty> getTranslatorProperties(Class<?> attachmentClass) {
+		Map<Method, TranslatorProperty> props = new HashMap<Method,  TranslatorProperty>();
+		buildTranslatorProperties(attachmentClass, props);
+		return props;
+	}
+
+	public static Properties getTranslatorPropertiesAsProperties(Class<?> attachmentClass) {
+		Properties props = new Properties();
+		try {
+			Object instance = attachmentClass.newInstance();
+			Map<Method, TranslatorProperty> tps = TranslatorUtil.getTranslatorProperties(attachmentClass);
+			for (Method m:tps.keySet()) {
+				Object defaultValue = ManagedPropertyUtil.getDefaultValue(instance, m, tps.get(m));
+				if (defaultValue != null) {
+					props.setProperty(getPropertyName(m), defaultValue.toString());
+				}
+			}
+		} catch (InstantiationException e) {
+			// ignore
+		} catch (IllegalAccessException e) {
+			// ignore
+		}
+		return props;
+	}
+	
+	private static void buildTranslatorProperties(Class<?> attachmentClass, Map<Method, TranslatorProperty> props){
+		Method[] methods = attachmentClass.getMethods();
+		for (Method m:methods) {
+			TranslatorProperty tp = m.getAnnotation(TranslatorProperty.class);
+			if (tp != null) {
+				props.put(m, tp);
+			}
+		}
+		// Now look at the base interfaces
+		Class[] baseInterfaces = attachmentClass.getInterfaces();
+		for (Class clazz:baseInterfaces) {
+			buildTranslatorProperties(clazz, props);
+		}
+		Class superClass = attachmentClass.getSuperclass();
+		if (superClass != null) {
+			buildTranslatorProperties(superClass, props);
+		}
+	}	
+	
+	public static ExecutionFactory buildExecutionFactory(Translator data) throws DeploymentException {
+		ExecutionFactory executionFactory;
+		try {
+			String executionClass = data.getPropertyValue(TranslatorMetaData.EXECUTION_FACTORY_CLASS);
+			Object o = ReflectionHelper.create(executionClass, null, Thread.currentThread().getContextClassLoader());
+			if(!(o instanceof ExecutionFactory)) {
+				throw new DeploymentException(RuntimePlugin.Util.getString("invalid_class", executionClass));//$NON-NLS-1$	
+			}
+			
+			executionFactory = (ExecutionFactory)o;
+			injectProperties(executionFactory, data);
+			executionFactory.start();
+			return executionFactory;
+		} catch (TeiidException e) {
+			throw new DeploymentException(e);
+		} catch (InvocationTargetException e) {
+			throw new DeploymentException(e);
+		} catch (IllegalAccessException e) {
+			throw new DeploymentException(e);
+		}
+	}
+	
+	private static void injectProperties(ExecutionFactory ef, final Translator data) throws InvocationTargetException, IllegalAccessException, DeploymentException{
+		Map<Method, TranslatorProperty> props = TranslatorUtil.getTranslatorProperties(ef.getClass());
+		
+		for (Method method:props.keySet()) {
+			TranslatorProperty tp = props.get(method);
+			String propertyName = getPropertyName(method);
+			Object value = data.getPropertyValue(propertyName);
+			
+			if (value != null) {
+				Method setterMethod = getSetter(ef.getClass(), method);
+				setterMethod.invoke(ef, convert(value, method.getReturnType()));
+			} else if (tp.required()) {
+				throw new DeploymentException(RuntimePlugin.Util.getString("required_property_not_exists", tp.display())); //$NON-NLS-1$
+			}
+		}
+	}
+	
+	public static String getPropertyName(Method method) {
+		String result = method.getName();
+		if (result.startsWith("get") || result.startsWith("set")) { //$NON-NLS-1$ //$NON-NLS-2$
+			return result.substring(3);
+		}
+		else if (result.startsWith("is")) { //$NON-NLS-1$
+			return result.substring(2);
+		}
+		return result;
+	}
+	
+	public static Method getSetter(Class<?> clazz, Method method) throws SecurityException, DeploymentException {
+		String setter = method.getName();
+		if (method.getName().startsWith("get")) { //$NON-NLS-1$
+			setter = "set"+setter.substring(3);//$NON-NLS-1$
+		}
+		else if (method.getName().startsWith("is")) { //$NON-NLS-1$
+			setter = "set"+setter.substring(2); //$NON-NLS-1$
+		}
+		else {
+			setter = "set"+method.getName().substring(0,1).toUpperCase()+method.getName().substring(1); //$NON-NLS-1$
+		}
+		try {
+			return clazz.getMethod(setter, method.getReturnType());
+		} catch (NoSuchMethodException e) {
+			try {
+				return clazz.getMethod(method.getName(), method.getReturnType());
+			} catch (NoSuchMethodException e1) {
+				throw new DeploymentException(RuntimePlugin.Util.getString("no_set_method", setter, method.getName())); //$NON-NLS-1$
+			}
+		}
+	}
+	
+	private static Object convert(Object value, Class<?> type) {
+		if(value.getClass() == type) {
+			return value;
+		}
+		
+		if (value instanceof String) {
+			String str = (String)value;
+			return StringUtil.valueOf(str, type);
+		}
+		return value;
+	}
+}


Property changes on: trunk/runtime/src/main/java/org/teiid/deployers/TranslatorUtil.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: trunk/runtime/src/main/java/org/teiid/deployers/VDBDeployer.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/VDBDeployer.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/runtime/src/main/java/org/teiid/deployers/VDBDeployer.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -23,18 +23,22 @@
 
 import java.io.File;
 import java.io.IOException;
+import java.util.IdentityHashMap;
 import java.util.LinkedHashMap;
 import java.util.List;
+import java.util.Set;
 
 import org.jboss.deployers.spi.DeploymentException;
 import org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer;
 import org.jboss.deployers.structure.spi.DeploymentUnit;
 import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
 import org.teiid.adminapi.Model;
+import org.teiid.adminapi.Translator;
 import org.teiid.adminapi.VDB;
 import org.teiid.adminapi.impl.ModelMetaData;
 import org.teiid.adminapi.impl.SourceMappingMetadata;
 import org.teiid.adminapi.impl.VDBMetaData;
+import org.teiid.adminapi.impl.VDBTranslatorMetaData;
 import org.teiid.core.CoreConstants;
 import org.teiid.core.util.FileUtils;
 import org.teiid.dqp.internal.cache.DQPContextCache;
@@ -47,8 +51,9 @@
 import org.teiid.metadata.TransformationMetadata.Resource;
 import org.teiid.metadata.index.IndexMetadataFactory;
 import org.teiid.runtime.RuntimePlugin;
+import org.teiid.translator.ExecutionFactory;
 import org.teiid.translator.TranslatorException;
-import org.teiid.translator.ExecutionFactory;
+import org.teiid.vdb.runtime.VDBKey;
 
 
 public class VDBDeployer extends AbstractSimpleRealDeployer<VDBMetaData> {
@@ -85,6 +90,23 @@
 		MetadataStoreGroup store = unit.getAttachment(MetadataStoreGroup.class);
 		
 		// add required connector managers; if they are not already there
+		for (Translator t: deployment.getOverrideTranslators()) {
+			VDBTranslatorMetaData data = (VDBTranslatorMetaData)t;
+			
+			String type = data.getType();
+			Translator parent = this.translatorRepository.getTranslatorMetaData(null, type);
+			if ( parent == null) {
+				throw new DeploymentException(RuntimePlugin.Util.getString("translator_type_not_found", unit.getName())); //$NON-NLS-1$
+			}
+			
+			Set<String> keys = parent.getProperties().stringPropertyNames();
+			for (String key:keys) {
+				if (data.getPropertyValue(key) == null && parent.getPropertyValue(key) != null) {
+					data.addProperty(key, parent.getPropertyValue(key));
+				}
+			}			
+			this.translatorRepository.addTranslatorMetadata(new VDBKey(deployment.getName(), deployment.getVersion()), data.getName(), data);
+		}
 		createConnectorManagers(deployment);
 		
 		// if store is null and vdb dynamic vdb then try to get the metadata
@@ -142,18 +164,25 @@
 		LogManager.logInfo(LogConstants.CTX_RUNTIME, RuntimePlugin.Util.getString("vdb_deployed",deployment, valid?"active":"inactive")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 	}
 
-	private void createConnectorManagers(VDBMetaData deployment) {
+	private void createConnectorManagers(final VDBMetaData deployment) throws DeploymentException {
+		IdentityHashMap<Translator, ExecutionFactory> map = new IdentityHashMap<Translator, ExecutionFactory>();
+		
 		for (Model model:deployment.getModels()) {
 			if (model.getName().equals(CoreConstants.SYSTEM_MODEL)){
 				continue;
-			}
+			}			
 			for (String source:model.getSourceNames()) {
 				if (this.connectorManagerRepository.getConnectorManager(source) == null) {
-					ConnectorManager cm = new ConnectorManager(model.getSourceTranslatorName(source), model.getSourceConnectionJndiName(source)) {
-						protected ExecutionFactory getExecutionFactory() {
-							return VDBDeployer.this.translatorRepository.getTranslator(getTranslatorName());
-						}
-					};
+
+					Translator translator = VDBDeployer.this.translatorRepository.getTranslatorMetaData(new VDBKey(deployment.getName(), deployment.getVersion()), model.getSourceTranslatorName(source));
+					ExecutionFactory ef = map.get(translator);
+					if ( ef == null) {
+						ef = TranslatorUtil.buildExecutionFactory(translator);
+						map.put(translator, ef);
+					}
+
+					ConnectorManager cm = new ConnectorManager(model.getSourceTranslatorName(source), model.getSourceConnectionJndiName(source));
+					cm.setExecutionFactory(ef);
 					this.connectorManagerRepository.addConnectorManager(source, cm);
 				}
 			}
@@ -202,6 +231,8 @@
 			}
 		}
 		
+		this.translatorRepository.removeVDBTranslators(new VDBKey(deployment.getName(), deployment.getVersion()));
+		
 		if (this.vdbRepository != null) {
 			this.vdbRepository.removeVDB(deployment.getName(), deployment.getVersion());
 		}

Modified: trunk/runtime/src/main/java/org/teiid/deployers/VDBParserDeployer.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/VDBParserDeployer.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/runtime/src/main/java/org/teiid/deployers/VDBParserDeployer.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -42,8 +42,10 @@
 import org.jboss.managed.api.factory.ManagedObjectFactory;
 import org.jboss.virtual.VirtualFile;
 import org.teiid.adminapi.Model;
+import org.teiid.adminapi.Translator;
 import org.teiid.adminapi.impl.ModelMetaData;
 import org.teiid.adminapi.impl.VDBMetaData;
+import org.teiid.adminapi.impl.VDBTranslatorMetaData;
 import org.teiid.core.CoreConstants;
 import org.teiid.logging.LogConstants;
 import org.teiid.logging.LogManager;
@@ -202,6 +204,14 @@
 				}
 				managedObjects.put(mo.getName(), mo);
 			}
+			
+			for (Translator t: vdb.getOverrideTranslators()) {
+				ManagedObject mo = this.mof.initManagedObject(t, VDBTranslatorMetaData.class, t.getName(), t.getName());
+				if (mo == null) {
+					throw new DeploymentException("could not create managed object"); //$NON-NLS-1$
+				}
+				managedObjects.put(mo.getName(), mo);				
+			}
 		}
 	}	
 	

Modified: trunk/runtime/src/main/java/org/teiid/templates/TranslatorMetadataICF.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/templates/TranslatorMetadataICF.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/runtime/src/main/java/org/teiid/templates/TranslatorMetadataICF.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -40,11 +40,11 @@
 
 /**
  * This class is defined as bean in the deployer's -jboss-beans.xml file. This used to construct the 
- * TranslatorMetadata object with "translator-property"
+ * TranslatorMetadata object with "property"
  */
 public class TranslatorMetadataICF extends	AbstractInstanceClassFactory<TranslatorMetaData> {
 
-	private static final String TRANSLATOR_PROPERTY = "translator-property"; //$NON-NLS-1$
+	private static final String TRANSLATOR_PROPERTY = "property"; //$NON-NLS-1$
 
 	public TranslatorMetadataICF(ManagedObjectFactory mof) {
 		super(mof);

Modified: trunk/runtime/src/main/java/org/teiid/templates/TranslatorTemplateInfo.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/templates/TranslatorTemplateInfo.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/runtime/src/main/java/org/teiid/templates/TranslatorTemplateInfo.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -27,6 +27,8 @@
 import org.jboss.managed.plugins.BasicDeploymentTemplateInfo;
 import org.jboss.metatype.api.types.MapCompositeMetaType;
 import org.jboss.metatype.api.types.SimpleMetaType;
+import org.teiid.adminapi.Translator;
+import org.teiid.adminapi.impl.TranslatorMetaData;
 import org.teiid.deployers.ManagedPropertyUtil;
 import org.teiid.translator.TranslatorProperty;
 
@@ -38,14 +40,15 @@
 public class TranslatorTemplateInfo extends BasicDeploymentTemplateInfo {
 	
 	private static final long serialVersionUID = 9066758787789280783L;
-	static final String TEMPLATE_NAME = "template-name"; //$NON-NLS-1$
-	static final String EXECUTION_FACTORY_NAME = "execution-factory-class"; //$NON-NLS-1$
-	static final String NAME = "name"; //$NON-NLS-1$
-	static final String TRANSLATOR_PROPERTY = "translator-property"; //$NON-NLS-1$
+	static final String TYPE_NAME = "type"; //$NON-NLS-1$
+	static final String NAME = "name"; //$NON-NLS-1$	
+	private String executionFactoryName;
 	
 	
-	public TranslatorTemplateInfo(String name, String description, Map<String, ManagedProperty> properties) {
+	
+	public TranslatorTemplateInfo(String name, String description, Map<String, ManagedProperty> properties, String executionFactoryName) {
 		super(name, description, properties);
+		this.executionFactoryName = executionFactoryName;
 	}
 
 	public void start() {
@@ -54,7 +57,7 @@
 
 	@Override
 	public TranslatorTemplateInfo copy() {
-		TranslatorTemplateInfo copy = new TranslatorTemplateInfo(getName(), getDescription(), getProperties());
+		TranslatorTemplateInfo copy = new TranslatorTemplateInfo(getName(), getDescription(), getProperties(), executionFactoryName);
 		super.copy(copy);
 		copy.populate();
 		
@@ -63,14 +66,14 @@
 	
 	private void populate() {
 		addProperty(buildTemplateProperty(getName()));
-		
-		addProperty(ManagedPropertyUtil.createProperty(EXECUTION_FACTORY_NAME,SimpleMetaType.STRING, "Execution Factory Class name", "The translator's execution factory name", true, false, null));//$NON-NLS-1$ //$NON-NLS-2$
-		addProperty(ManagedPropertyUtil.createProperty(NAME,SimpleMetaType.STRING, "name", "Name of the Translator", true, false, null));//$NON-NLS-1$ //$NON-NLS-2$
-		addProperty(ManagedPropertyUtil.createProperty(TRANSLATOR_PROPERTY, new MapCompositeMetaType(SimpleMetaType.STRING), TRANSLATOR_PROPERTY, "Additional Translator properties", false, false, null)); //$NON-NLS-1$
+	
+		addProperty(ManagedPropertyUtil.createProperty(Translator.EXECUTION_FACTORY_CLASS,SimpleMetaType.STRING, "Execution Factory Class name", "The translator's execution factory name", true, true, this.executionFactoryName));//$NON-NLS-1$ //$NON-NLS-2$
+		addProperty(ManagedPropertyUtil.createProperty(NAME,SimpleMetaType.STRING, "name", "Name of the Translator", true, true, getName()));//$NON-NLS-1$ //$NON-NLS-2$
+		addProperty(ManagedPropertyUtil.createProperty(Translator.TRANSLATOR_PROPERTY, new MapCompositeMetaType(SimpleMetaType.STRING), Translator.TRANSLATOR_PROPERTY, "Additional Translator properties", false, false, null)); //$NON-NLS-1$
 	}
 	
 	static ManagedProperty buildTemplateProperty(String name) {
-		return ManagedPropertyUtil.createProperty(TEMPLATE_NAME,SimpleMetaType.STRING,
-						"Template Name", "The Name of the Teiid Connector Template", true, true, name);//$NON-NLS-1$ //$NON-NLS-2$
-	}		
+		return ManagedPropertyUtil.createProperty(TYPE_NAME,SimpleMetaType.STRING,
+						"Base Tanslator Type Name", "The Name of the Teiid Traslator", true, true, name.substring(TranslatorMetaData.TRANSLATOR_PREFIX.length()));//$NON-NLS-1$ //$NON-NLS-2$
+	}
 }

Modified: trunk/runtime/src/main/java/org/teiid/templates/TranslatorTemplateInfoFactory.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/templates/TranslatorTemplateInfoFactory.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/runtime/src/main/java/org/teiid/templates/TranslatorTemplateInfoFactory.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -29,7 +29,7 @@
 import org.jboss.managed.api.DeploymentTemplateInfo;
 import org.jboss.managed.api.ManagedProperty;
 import org.teiid.deployers.ManagedPropertyUtil;
-import org.teiid.deployers.TranslatorPropertyUtil;
+import org.teiid.deployers.TranslatorUtil;
 import org.teiid.translator.TranslatorProperty;
 
 public class TranslatorTemplateInfoFactory {
@@ -48,16 +48,16 @@
 	public DeploymentTemplateInfo createTemplateInfo(Class<? extends DeploymentTemplateInfo> infoClass, Class<?> attachmentClass, String name, String description) throws Exception {
 
 		Map<String, ManagedProperty> infoProps = getProperties(attachmentClass);
-		Class<?>[] parameterTypes = { String.class, String.class, Map.class };
+		Class<?>[] parameterTypes = { String.class, String.class, Map.class, String.class};
 		Constructor<? extends DeploymentTemplateInfo> ctor = infoClass.getConstructor(parameterTypes);
-		DeploymentTemplateInfo info = ctor.newInstance(name, description,infoProps);
+		DeploymentTemplateInfo info = ctor.newInstance(name, description,infoProps, attachmentClass.getName());
 		return info;
 	}
 
 	public static Map<String, ManagedProperty> getProperties(
 			Class<?> attachmentClass)
 			throws InstantiationException, IllegalAccessException {
-		Map<Method, TranslatorProperty> props = TranslatorPropertyUtil.getTranslatorProperties(attachmentClass);
+		Map<Method, TranslatorProperty> props = TranslatorUtil.getTranslatorProperties(attachmentClass);
 		
 		Map<String, ManagedProperty> infoProps = new HashMap<String, ManagedProperty>();
 		

Modified: trunk/runtime/src/main/resources/org/teiid/runtime/i18n.properties
===================================================================
--- trunk/runtime/src/main/resources/org/teiid/runtime/i18n.properties	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/runtime/src/main/resources/org/teiid/runtime/i18n.properties	2010-05-27 17:40:05 UTC (rev 2157)
@@ -298,11 +298,11 @@
 datasource_not_found=For {0}.{1} VDB, Data Source "{2}" not found.
 vdb_activated={0}.{1} status has been changed to active
 vdb_inactivated={0}.{1} status has been changed to inactive. Check the required translators and data sources!
-translator_started=Teiid translator "{0}" has started.
+translator_added=Teiid translator "{0}" has been added.
 invalid_class={0} invalid type of class specified. Must be of type org.teiid.connector.api.Connector
 class_not_found=Class {0} not found.
-translator_stopped=Teiid translator "{0}" stopped
+translator_removed=Teiid translator "{0}" removed.
 no_set_method=No {0} method found for translator property {1} 
 required_property_not_exists=Required property "{0}" has no value. Deployment is incomplete.
 name_not_found=Translator property "name" not defined for the deployment "{0}"
-executionfactory_not_found=Translator "execution-factory-class" property not defined for deployment "{0}"
\ No newline at end of file
+translator_type_not_found=The parent translator defined not found in configuration "{0}"

Deleted: trunk/runtime/src/test/java/org/teiid/deployers/TestTranslatorDeployer.java
===================================================================
--- trunk/runtime/src/test/java/org/teiid/deployers/TestTranslatorDeployer.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/runtime/src/test/java/org/teiid/deployers/TestTranslatorDeployer.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -1,60 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership.  Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- */
-package org.teiid.deployers;
-
-import static org.junit.Assert.*;
-
-import org.junit.Test;
-import org.teiid.adminapi.impl.TranslatorMetaData;
-import org.teiid.translator.ExecutionFactory;
-import org.teiid.translator.TranslatorProperty;
-
- at SuppressWarnings("nls")
-public class TestTranslatorDeployer {
-
-	@Test
-	public void testBuildExecutionFactory() throws Exception {
-		TranslatorMetaData tm = new TranslatorMetaData();
-		
-		tm.setXaCapable(true);
-		tm.addProperty("MyProperty", "correctly-assigned");
-		
-		TranslatorDeployer td = new TranslatorDeployer();
-		MyTranslator my = (MyTranslator)td.buildTranslator(MyTranslator.class.getName(), tm);
-		
-		assertTrue(my.isXaCapable());
-		assertEquals("correctly-assigned", my.getMyProperty());
-	}
-	
-	public static class MyTranslator extends ExecutionFactory {
-		String mine;
-		
-		@TranslatorProperty(display="my-property")
-		public String getMyProperty() {
-			return mine;
-		}
-		
-		public void setMyProperty(String value) {
-			this.mine = value;
-		}
-	}
-}

Modified: trunk/runtime/src/test/java/org/teiid/deployers/TestTranslatorMetadata.java
===================================================================
--- trunk/runtime/src/test/java/org/teiid/deployers/TestTranslatorMetadata.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/runtime/src/test/java/org/teiid/deployers/TestTranslatorMetadata.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -31,7 +31,9 @@
 import javax.xml.bind.Unmarshaller;
 
 import org.junit.Test;
+import org.teiid.adminapi.Translator;
 import org.teiid.adminapi.impl.TranslatorMetaData;
+import org.teiid.translator.ExecutionFactory;
 
 
 @SuppressWarnings("nls")
@@ -44,11 +46,8 @@
 		TranslatorMetaData tm = new TranslatorMetaData();
 		group.translators.add(tm);
 		
-		
-		tm.setExecutionFactoryClass("org.teiid.resource.adapter.jdbc.JDBCExecutionFactory");
-		tm.setXaCapable(true);
+		tm.setExecutionFactoryClass(ExecutionFactory.class);
 		tm.setName("Oracle");
-		tm.setTemplateName("template name");
 		tm.addProperty("ExtensionTranslationClassName", "org.teiid.translator.jdbc.oracle.OracleSQLTranslator");
 		
 		JAXBContext jc = JAXBContext.newInstance(new Class<?>[] {TranslatorMetaDataGroup.class});
@@ -66,9 +65,8 @@
 		tm = group.getTranslators().get(0);
 		
 		assertEquals("Oracle", tm.getName());
-		assertEquals("org.teiid.resource.adapter.jdbc.JDBCExecutionFactory", tm.getExecutionFactoryClass());
+		assertEquals(ExecutionFactory.class.getName(), tm.getPropertyValue(Translator.EXECUTION_FACTORY_CLASS));
 		assertEquals("org.teiid.translator.jdbc.oracle.OracleSQLTranslator", tm.getPropertyValue("ExtensionTranslationClassName"));
-		assertEquals("template name", tm.getTemplateName());
 		
 	}
 }

Copied: trunk/runtime/src/test/java/org/teiid/deployers/TestTranslatorUtil.java (from rev 2152, trunk/runtime/src/test/java/org/teiid/deployers/TestTranslatorDeployer.java)
===================================================================
--- trunk/runtime/src/test/java/org/teiid/deployers/TestTranslatorUtil.java	                        (rev 0)
+++ trunk/runtime/src/test/java/org/teiid/deployers/TestTranslatorUtil.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -0,0 +1,58 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership.  Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * 
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * 
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA.
+ */
+package org.teiid.deployers;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+import org.teiid.adminapi.impl.TranslatorMetaData;
+import org.teiid.translator.ExecutionFactory;
+import org.teiid.translator.TranslatorProperty;
+
+ at SuppressWarnings("nls")
+public class TestTranslatorUtil {
+
+	@Test
+	public void testBuildExecutionFactory() throws Exception {
+		TranslatorMetaData tm = new TranslatorMetaData();
+		
+		tm.addProperty("MyProperty", "correctly-assigned");
+		tm.setExecutionFactoryClass(MyTranslator.class);
+		
+		MyTranslator my = (MyTranslator)TranslatorUtil.buildExecutionFactory(tm);
+		
+		assertEquals("correctly-assigned", my.getMyProperty());
+	}
+	
+	public static class MyTranslator extends ExecutionFactory {
+		String mine;
+		
+		@TranslatorProperty(display="my-property")
+		public String getMyProperty() {
+			return mine;
+		}
+		
+		public void setMyProperty(String value) {
+			this.mine = value;
+		}
+	}
+}


Property changes on: trunk/runtime/src/test/java/org/teiid/deployers/TestTranslatorUtil.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: trunk/test-integration/db/src/test/java/org/teiid/adminapi/jboss/TestConnectorBindings.java
===================================================================
--- trunk/test-integration/db/src/test/java/org/teiid/adminapi/jboss/TestConnectorBindings.java	2010-05-27 13:45:40 UTC (rev 2156)
+++ trunk/test-integration/db/src/test/java/org/teiid/adminapi/jboss/TestConnectorBindings.java	2010-05-27 17:40:05 UTC (rev 2157)
@@ -289,21 +289,10 @@
 			System.out.println(key+"="+translator.getPropertyValue(key));
 		}
 		assertEquals("org.teiid.translator.jdbc.oracle.OracleSQLTranslator", translator.getPropertyValue("ExtensionTranslationClassName")); //$NON-NLS-1$
-		assertEquals(true, translator.isXaCapable());
+		assertEquals(false, translator.getPropertyValue("XaCapable"));
 	}
 	
 	@Test
-	public void testTranslatorTypes() throws Exception {
-		Set<String> defs = admin.getTranslatorTemplateNames();
-		assertTrue(defs.contains("translator-salesforce"+VERSION)); //$NON-NLS-1$
-		assertTrue(defs.contains("translator-jdbc"+VERSION)); //$NON-NLS-1$
-		assertTrue(defs.contains("translator-text"+VERSION)); //$NON-NLS-1$
-		assertTrue(defs.contains("translator-loopback"+VERSION)); //$NON-NLS-1$
-		assertTrue(defs.contains("translator-ldap"+VERSION)); //$NON-NLS-1$
-		System.out.println(defs);
-	}
-
-	@Test
 	public void testExportVDB() throws Exception{
 		File f = new File(UnitTestUtil.getTestScratchPath()+"/TransactionsRevisited.vdb"); //$NON-NLS-1$
 		
@@ -373,38 +362,6 @@
 	}	
 	
 	@Test
-	public void testTranslator() throws Exception {
-		Properties props = new Properties();
-		
-		// test blank add
-		try {
-			admin.createTranslator("foo", "translator-jdbc"+VERSION, props);
-			fail("must have failed because no exeuction factory set");
-		}catch(AdminException e) {
-			
-		}
-		
-		// test minimal correct add
-		props.setProperty("execution-factory-class", "org.teiid.translator.jdbc.JDBCExecutionFactory");
-		admin.createTranslator("foo", "translator-jdbc"+VERSION, props);
-		
-		// test set property
-		admin.setTranslatorProperty("foo", "TrimStrings", "true");
-		
-		Translator t = admin.getTranslator("foo");
-		assertEquals("org.teiid.translator.jdbc.JDBCExecutionFactory", t.getExecutionFactoryClass());
-		assertEquals("org.teiid.translator.jdbc.JDBCExecutionFactory", t.getExecutionFactoryClass());
-		
-		admin.setTranslatorProperty("foo", "any-thing", "every-thing");
-		
-		admin.deleteTranslator("foo");
-		
-		t = admin.getTranslator("foo");
-		assertNull(t);
-		
-	}
-	
-	@Test
 	public void testCreateDataSource() throws Exception {
 		
 		Properties p = new Properties();



More information about the teiid-commits mailing list