[teiid-commits] teiid SVN: r2108 - in trunk: build/kits/jboss-container/deployers/teiid.deployer and 16 other directories.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Sun May 9 21:46:40 EDT 2010


Author: rareddy
Date: 2010-05-09 21:46:37 -0400 (Sun, 09 May 2010)
New Revision: 2108

Added:
   trunk/build/kits/jboss-container/deploy/teiid/connectors/jdbc-translator.xml
   trunk/build/kits/jboss-container/teiid-examples/portfolio/text-connection-ds.xml
   trunk/client/src/main/java/org/teiid/adminapi/impl/TranslatorPropertyFactory.java
   trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/TranslatorMetadataGroupComponentMapper.java
   trunk/runtime/src/main/java/org/teiid/deployers/TranslatorMetaDataGroup.java
   trunk/runtime/src/test/java/org/teiid/deployers/TestTranslatorMetadata.java
Removed:
   trunk/build/kits/jboss-container/deploy/teiid/connectors/access-translator.xml
   trunk/build/kits/jboss-container/deploy/teiid/connectors/db2-translator.xml
   trunk/build/kits/jboss-container/deploy/teiid/connectors/derby-translator.xml
   trunk/build/kits/jboss-container/deploy/teiid/connectors/h2-translator.xml
   trunk/build/kits/jboss-container/deploy/teiid/connectors/hsql-translator.xml
   trunk/build/kits/jboss-container/deploy/teiid/connectors/mysql-translator.xml
   trunk/build/kits/jboss-container/deploy/teiid/connectors/oracle-translator.xml
   trunk/build/kits/jboss-container/deploy/teiid/connectors/postgresql-translator.xml
   trunk/build/kits/jboss-container/deploy/teiid/connectors/sqlserver-translator.xml
   trunk/build/kits/jboss-container/deploy/teiid/connectors/sybase-translator.xml
   trunk/build/kits/jboss-container/teiid-examples/portfolio/derby-connector-ds.xml
   trunk/build/kits/jboss-container/teiid-examples/portfolio/text-connector-ds.xml
   trunk/build/kits/jboss-container/teiid-examples/sample-connector-bindings/
   trunk/client/src/test/java/org/teiid/adminapi/impl/TestTranslatorMetadata.java
Modified:
   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/text-translator.xml
   trunk/build/kits/jboss-container/deployers/teiid.deployer/teiid-deployer-jboss-beans.xml
   trunk/build/kits/jboss-container/teiid-examples/dynamicvdb-portfolio/README.txt
   trunk/build/kits/jboss-container/teiid-examples/dynamicvdb-portfolio/portfolio-dynamic-vdb.xml
   trunk/build/kits/jboss-container/teiid-examples/portfolio/PortfolioModel/Portfolio.vdb
   trunk/build/kits/jboss-container/teiid-examples/portfolio/README.txt
   trunk/client/src/main/java/org/teiid/adminapi/impl/TranslatorMetaData.java
   trunk/connectors/translator-ldap/src/main/java/org/teiid/resource/adapter/ldap/LDAPExecutionFactory.java
   trunk/console/src/main/java/org/teiid/rhq/plugin/VDBComponent.java
   trunk/console/src/main/java/org/teiid/rhq/plugin/VDBDiscoveryComponent.java
   trunk/console/src/main/resources/META-INF/rhq-plugin.xml
   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/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/TranslatorParserDeployer.java
   trunk/runtime/src/main/java/org/teiid/templates/TranslatorDeploymentTemplate.java
   trunk/runtime/src/main/java/org/teiid/templates/TranslatorTemplateInfo.java
   trunk/runtime/src/main/resources/org/teiid/runtime/i18n.properties
   trunk/test-integration/db/src/test/java/org/teiid/adminapi/jboss/TestConnectorBindings.java
Log:
TEIID-1075, TEIID-1077, TEIID-1078, TEIID-1079, TEIID-1080, TEIID-1081: Multiple translators can be defined in single translator xml file. Fixed the "jopr" plugin for the translator changes. Fixed some bugs with update of the Translator and fixed the examples for changes.

Deleted: trunk/build/kits/jboss-container/deploy/teiid/connectors/access-translator.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/access-translator.xml	2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/access-translator.xml	2010-05-10 01:46:37 UTC (rev 2108)
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<translator>
-    <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
-    <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.access.AccessSQLTranslator" />
-    <xa-capable>true</xa-capable>
-</translator>

Deleted: trunk/build/kits/jboss-container/deploy/teiid/connectors/db2-translator.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/db2-translator.xml	2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/db2-translator.xml	2010-05-10 01:46:37 UTC (rev 2108)
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<translator>
-    <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
-    <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.db2.DB2SQLTranslator" />
-    <xa-capable>true</xa-capable>
-</translator>

Deleted: trunk/build/kits/jboss-container/deploy/teiid/connectors/derby-translator.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/derby-translator.xml	2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/derby-translator.xml	2010-05-10 01:46:37 UTC (rev 2108)
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<translator>
-    <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
-    <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.derby.DerbySQLTranslator" />
-    <xa-capable>true</xa-capable>
-</translator>

Deleted: trunk/build/kits/jboss-container/deploy/teiid/connectors/h2-translator.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/h2-translator.xml	2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/h2-translator.xml	2010-05-10 01:46:37 UTC (rev 2108)
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<translator>
-    <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
-    <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.h2.H2Translator" />
-    <xa-capable>true</xa-capable>
-</translator>

Deleted: trunk/build/kits/jboss-container/deploy/teiid/connectors/hsql-translator.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/hsql-translator.xml	2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/hsql-translator.xml	2010-05-10 01:46:37 UTC (rev 2108)
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<translator>
-    <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
-    <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.hsql.HsqlTranslator" />
-    <xa-capable>true</xa-capable>
-</translator>

Copied: trunk/build/kits/jboss-container/deploy/teiid/connectors/jdbc-translator.xml (from rev 2103, trunk/build/kits/jboss-container/deploy/teiid/connectors/access-translator.xml)
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/jdbc-translator.xml	                        (rev 0)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/jdbc-translator.xml	2010-05-10 01:46:37 UTC (rev 2108)
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<translator-factory>
+    <translator>
+        <name>access</name>
+        <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
+        <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.access.AccessSQLTranslator" />
+        <xa-capable>true</xa-capable>
+    </translator>
+
+    <translator>
+        <name>db2</name>
+        <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
+        <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.db2.DB2SQLTranslator" />
+        <xa-capable>true</xa-capable>
+    </translator>
+
+    <translator>
+        <name>derby</name>
+        <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
+        <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.derby.DerbySQLTranslator" />
+        <xa-capable>true</xa-capable>
+    </translator>
+
+    <translator>
+        <name>h2</name>
+        <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
+        <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.h2.H2Translator" />
+        <xa-capable>true</xa-capable>
+    </translator>
+
+    <translator>
+        <name>hsql</name>
+        <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
+        <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.hsql.HsqlTranslator" />
+        <xa-capable>true</xa-capable>
+    </translator>
+
+
+    <translator>
+        <name>mysql</name>
+        <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
+        <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.mysql.MySQLTranslator" />
+        <xa-capable>true</xa-capable>
+    </translator>
+
+    <translator>
+        <name>oracle</name>
+        <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
+        <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.oracle.OracleSQLTranslator" />
+        <xa-capable>true</xa-capable>
+    </translator>
+
+    <translator>
+        <name>postgresql</name>
+        <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
+        <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.postgresql.PostgreSQLTranslator" />
+        <xa-capable>true</xa-capable>
+    </translator>
+
+    <translator>
+        <name>sqlserver</name>
+        <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
+        <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.sqlserver.SQLServerSQLTranslator" />
+        <xa-capable>true</xa-capable>
+    </translator>
+
+    <translator>
+        <name>sybase</name>
+        <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
+        <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.sybase.SybaseSQLTranslator" />
+        <xa-capable>true</xa-capable>
+    </translator>
+</translator-factory>
\ No newline at end of file


Property changes on: trunk/build/kits/jboss-container/deploy/teiid/connectors/jdbc-translator.xml
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: trunk/build/kits/jboss-container/deploy/teiid/connectors/ldap-translator.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/ldap-translator.xml	2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/ldap-translator.xml	2010-05-10 01:46:37 UTC (rev 2108)
@@ -1,7 +1,10 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<translator>
-    <execution-factory-class>org.teiid.resource.adapter.ldap.LDAPExecutionFactory</execution-factory-class>
-    <translator-property name="SearchDefaultBaseDN" value="" />
-    <translator-property name="SearchDefaultScope" value="SUBTREE_SCOPE"/>
-    <translator-property name="RestrictToObjectClass" value="false"/>
-</translator>
+<translator-factory>
+    <translator>
+        <name>ldap</name>
+        <execution-factory-class>org.teiid.resource.adapter.ldap.LDAPExecutionFactory</execution-factory-class>
+        <translator-property name="SearchDefaultBaseDN" value="" />
+        <translator-property name="SearchDefaultScope" value="SUBTREE_SCOPE" />
+        <translator-property name="RestrictToObjectClass" value="false" />
+    </translator>
+</translator-factory>
\ No newline at end of file

Modified: trunk/build/kits/jboss-container/deploy/teiid/connectors/loopback-translator.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/loopback-translator.xml	2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/loopback-translator.xml	2010-05-10 01:46:37 UTC (rev 2108)
@@ -1,4 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<translator>
-    <execution-factory-class>org.teiid.resource.adapter.loopback.LoopbackExecutionFactory</execution-factory-class>
-</translator>
+<translator-factory>
+    <translator>
+        <name>loopback</name>
+        <execution-factory-class>org.teiid.resource.adapter.loopback.LoopbackExecutionFactory</execution-factory-class>
+    </translator>
+</translator-factory>
\ No newline at end of file

Deleted: trunk/build/kits/jboss-container/deploy/teiid/connectors/mysql-translator.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/mysql-translator.xml	2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/mysql-translator.xml	2010-05-10 01:46:37 UTC (rev 2108)
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<translator>
-    <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
-    <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.mysql.MySQLTranslator" />
-    <xa-capable>true</xa-capable>
-</translator>

Deleted: trunk/build/kits/jboss-container/deploy/teiid/connectors/oracle-translator.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/oracle-translator.xml	2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/oracle-translator.xml	2010-05-10 01:46:37 UTC (rev 2108)
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<translator>
-    <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
-    <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.oracle.OracleSQLTranslator"/>
-    <xa-capable>true</xa-capable>
-</translator>

Deleted: trunk/build/kits/jboss-container/deploy/teiid/connectors/postgresql-translator.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/postgresql-translator.xml	2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/postgresql-translator.xml	2010-05-10 01:46:37 UTC (rev 2108)
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<translator>
-    <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
-    <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.postgresql.PostgreSQLTranslator" />
-    <xa-capable>true</xa-capable>
-</translator>

Modified: trunk/build/kits/jboss-container/deploy/teiid/connectors/salesforce-translator.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/salesforce-translator.xml	2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/salesforce-translator.xml	2010-05-10 01:46:37 UTC (rev 2108)
@@ -1,4 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<translator>
-    <execution-factory-class>org.teiid.resource.adapter.salesforce.SalesForceExecutionFactory</execution-factory-class>
-</translator>
+<translator-factory>
+    <translator>
+        <name>salesforce</name>
+        <execution-factory-class>org.teiid.resource.adapter.salesforce.SalesForceExecutionFactory</execution-factory-class>
+    </translator>
+</translator-factory>
\ No newline at end of file

Deleted: trunk/build/kits/jboss-container/deploy/teiid/connectors/sqlserver-translator.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/sqlserver-translator.xml	2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/sqlserver-translator.xml	2010-05-10 01:46:37 UTC (rev 2108)
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<translator>
-    <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
-    <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.sqlserver.SQLServerSQLTranslator" />
-    <xa-capable>true</xa-capable>
-</translator>

Deleted: trunk/build/kits/jboss-container/deploy/teiid/connectors/sybase-translator.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/sybase-translator.xml	2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/sybase-translator.xml	2010-05-10 01:46:37 UTC (rev 2108)
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<translator>
-    <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
-    <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.sybase.SybaseSQLTranslator" />
-    <xa-capable>true</xa-capable>
-</translator>

Modified: trunk/build/kits/jboss-container/deploy/teiid/connectors/text-translator.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/text-translator.xml	2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/text-translator.xml	2010-05-10 01:46:37 UTC (rev 2108)
@@ -1,4 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<translator>
-    <execution-factory-class>org.teiid.resource.adapter.text.TextExecutionFactory</execution-factory-class>
-</translator>
+<translator-factory>
+    <translator>
+        <name>text</name>
+        <execution-factory-class>org.teiid.resource.adapter.text.TextExecutionFactory</execution-factory-class>
+    </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-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/deployers/teiid.deployer/teiid-deployer-jboss-beans.xml	2010-05-10 01:46:37 UTC (rev 2108)
@@ -75,6 +75,11 @@
    <bean name="VDBMetadataComponentMapper" class="org.teiid.jboss.deployers.VDBMetadataComponentMapper">
         <constructor><parameter><inject bean="PersistenceFactory" /></parameter></constructor>
    </bean>    
+   <!-- Persistence class for the Translator deployment file -->
+   <bean name="TranslatorMetadataGroupComponentMapper" class="org.teiid.jboss.deployers.TranslatorMetadataGroupComponentMapper">
+        <constructor><parameter><inject bean="PersistenceFactory" /></parameter></constructor>
+   </bean>   
+   
         
     <!--  used for the translators -->
    <bean name="TranslatorDeploymentTemplateInfoFactory" class="org.teiid.templates.TranslatorTemplateInfoFactory"/>

Modified: trunk/build/kits/jboss-container/teiid-examples/dynamicvdb-portfolio/README.txt
===================================================================
--- trunk/build/kits/jboss-container/teiid-examples/dynamicvdb-portfolio/README.txt	2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/teiid-examples/dynamicvdb-portfolio/README.txt	2010-05-10 01:46:37 UTC (rev 2108)
@@ -2,8 +2,7 @@
 
 Copy the followng files to the <jboss.home>/server/default/deploy directory.
 	- portfolio-dynamic-vdb.xml
-	- ../portfolio/derby-connector-ds.xml
-	- ../portfolio/text-connector-ds.xml
+	- ../portfolio/text-connection-ds.xml
 	- ../portfolio/portfolio-ds.xml 
 
 Start the JBoss Container

Modified: trunk/build/kits/jboss-container/teiid-examples/dynamicvdb-portfolio/portfolio-dynamic-vdb.xml
===================================================================
--- trunk/build/kits/jboss-container/teiid-examples/dynamicvdb-portfolio/portfolio-dynamic-vdb.xml	2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/teiid-examples/dynamicvdb-portfolio/portfolio-dynamic-vdb.xml	2010-05-10 01:46:37 UTC (rev 2108)
@@ -23,12 +23,11 @@
     --> 
     <model name="MarketData">
         <!-- 
-            Each of source represents data source that are defined for reading and writing data. 
-            Connectors in Teiid are defined using "xxx-ds.xml" files. The below jndi name refers
-            to one such connector.  Connectors are defined using "connection factory" templates in
-            JBoss. (ex: look at text-connector-ds.xml file)
+            Each of source represents translator and data source  reading and writing data. There are pre-defined translators or
+            you can create one. They are defined using "-translator.xml" file. Connections define connections
+            to physical sources. In JBoss AS they are typically defined using "xxx-ds.xml" files. 
         -->
-        <source name="text-connector" jndi-name="java:text-connector"/>
+        <source name="text-connector" translator-name="text" connection-jndi-name="java:marketdata-text-connection"/>
     </model>
 
     <model name="Accounts">
@@ -44,7 +43,7 @@
          <!--
             This connector is defined in the "derby-connector-ds.xml" 
           -->
-        <source name="derby-connector" jndi-name="java:derby-connector"/>
+        <source name="derby-connector" translator-name="derby" connection-jndi-name="java:PortfolioDS"/>
     </model>
 
 </vdb>
\ No newline at end of file

Modified: trunk/build/kits/jboss-container/teiid-examples/portfolio/PortfolioModel/Portfolio.vdb
===================================================================
--- trunk/build/kits/jboss-container/teiid-examples/portfolio/PortfolioModel/Portfolio.vdb	2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/teiid-examples/portfolio/PortfolioModel/Portfolio.vdb	2010-05-10 01:46:37 UTC (rev 2108)
@@ -151,9 +151,10 @@
 ¤ðpìû|¬·ÝÈ‚„®6E=@›WÚ<ù‡š·S,ÿ¹˜/&gs‚÷ôî9‰â'šãQÓ½˜¶¦iäÅV
 
 Õ0¸è.‚nÔ‹/f=õüÃŃ÷Í’†Év•närËÃ}j’æK¦ñþiÈ!;¹ozþÈÑlQ´´JlàZ†é|ñe yŸîv8Š=×ë#Ù¿¶?»VM at wí¡æ\O÷ëÚ³õm”³t&×qÃL½xþöÏJï~3óìçIõ±ç‰âÜÍ©ï¹v¥65§­9d5ýjÆÒÕ@xâ(áCõ}ß‘.kŠZ</²tŒš)G/첦äOáç<)Ó|¶Â¡öÕ‰¿¾®bN¥¬ûÈYžI»_ž)Ãd.’»8±“yt§”kMâè^~XÆy¦o7i²ŒÖe ˜ó­­æÙkÿE
-£{–î6†ÓRƒÂ£¤½;¶ZÜ9Ò°•´yû¹k£ëÆtèÿ¤¤§.¨còL5ÜßÍ@!Yvžö5lšçòTCÎ&¬aÄ‹y¡×*2]ž¼q”ÏðíÌ‹BåÒ;ùjâ;Ê““c5•NÜG‹"x’Ò2Záê@Η—è`óx•W—;ºúÒÜr.­åž$ýjtÛñ/å5ðoçÖ㔌y´]­›Íòå¼ü“o{dEçÇ4™N·–t•?žû'PK
+’ˆE­ÞØÑÍ›ñ,Ò®×O«Ô6òC¶vdz]tŒ2æ0r`&wשS¬Ÿƒí'iDišG­–$­–­1›_‹I,"Œ&­Í:LãÕ²(VÿTOVË×þq
+¢ÛÞ{m&½DÚÞ¹ûöfç¡ç0/)É/ùÿIõüÐÕcLž©†›«kPH–§×6ëûòTʆœ	LXÀ	æ³B÷®QdZ©<qÌ;žádÌŠBIè–†‰|4ñ
+óÒd#m5…NÜE‹’ñKËDh3GP9JÁÈ»ü@M„h•{r~êíMoîÚQĉHyºLP¨¾Tu5š:çpa-w”ÓŸþÆf¸hp$.:ü>Øòåÿ–¶?Dmx—Òvõ¼Þ,ŽÃ¿ù¦ó!¯èxåµÐéܐ®äû$PK
 
 
-
\ No newline at end of file
+
\ No newline at end of file

Modified: trunk/build/kits/jboss-container/teiid-examples/portfolio/README.txt
===================================================================
--- trunk/build/kits/jboss-container/teiid-examples/portfolio/README.txt	2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/teiid-examples/portfolio/README.txt	2010-05-10 01:46:37 UTC (rev 2108)
@@ -7,8 +7,7 @@
 Copy the PortfolioModel/Portolio.vdb file to the "<jboss home>/server/default/deploy" directory.
 
 Copy the Connectors for the example
-	- derby-connector-ds.xml
-	- text-connector-ds.xml
+	- text-connection-ds.xml
 	- portfolio-ds.xml 
  
 Start the JBoss Container

Deleted: trunk/build/kits/jboss-container/teiid-examples/portfolio/derby-connector-ds.xml
===================================================================
--- trunk/build/kits/jboss-container/teiid-examples/portfolio/derby-connector-ds.xml	2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/teiid-examples/portfolio/derby-connector-ds.xml	2010-05-10 01:46:37 UTC (rev 2108)
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<connection-factories>
-   <no-tx-connection-factory>
-      <jndi-name>derby-connector</jndi-name>
-      <rar-name>connector-jdbc-${project.version}.rar</rar-name>
-      <connection-definition>org.teiid.connector.api.Connector</connection-definition>
-      
-      <!--
-        All the available properties for this connector are defined inside the "ra.xml" defined inside the rar
-        file mentioned above. 
-       -->
-      <config-property name="CapabilitiesClass" type="java.lang.String">org.teiid.connector.jdbc.derby.DerbyCapabilities</config-property>
-      <config-property name="XaCapable" type="java.lang.Boolean">true</config-property>
-      <config-property name="ExtensionTranslationClassName" type="java.lang.String">org.teiid.connector.jdbc.derby.DerbySQLTranslator</config-property>
-      
-      <!--
-        This xml file is defining a connector for Teiid. Still this is not the source, this is just a 
-        Teiid connector wrapping layer. This layer needs access to physical JDBC source, that is defined
-        in the below property. This is a data source in JBoss. This can be any RDBMS. Look at 
-        "{jboss.home}/docs/examples/jca" folder. Also look at "portfolio-ds.xml" file for below data source
-      -->
-      <config-property name="SourceJNDIName" type="java.lang.String">java:PortfolioDS</config-property>
-            
-      <max-pool-size>20</max-pool-size>
-    </no-tx-connection-factory>    
-
-</connection-factories>
\ No newline at end of file

Copied: trunk/build/kits/jboss-container/teiid-examples/portfolio/text-connection-ds.xml (from rev 2101, trunk/build/kits/jboss-container/teiid-examples/portfolio/text-connector-ds.xml)
===================================================================
--- trunk/build/kits/jboss-container/teiid-examples/portfolio/text-connection-ds.xml	                        (rev 0)
+++ trunk/build/kits/jboss-container/teiid-examples/portfolio/text-connection-ds.xml	2010-05-10 01:46:37 UTC (rev 2108)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<connection-factories>
+
+   <no-tx-connection-factory>
+      <jndi-name>marketdata-text-connection</jndi-name>
+      <rar-name>connector-text-${project.version}.rar</rar-name>
+      <connection-definition>javax.resource.cci.ConnectionFactory</connection-definition>      
+      <!--
+        All the available properties for this connector are defined inside the "ra.xml" defined inside the rar
+        file mentioned above. 
+       -->
+             
+      <config-property name="XaCapable" type="java.lang.Boolean">false</config-property>
+
+      <config-property name="DescriptorFile" type="java.lang.String">${jboss.server.home.dir}/teiid-examples/portfolio/marketdata-def.txt</config-property>
+            
+      <max-pool-size>20</max-pool-size>
+
+    </no-tx-connection-factory>
+
+</connection-factories>
\ No newline at end of file


Property changes on: trunk/build/kits/jboss-container/teiid-examples/portfolio/text-connection-ds.xml
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Deleted: trunk/build/kits/jboss-container/teiid-examples/portfolio/text-connector-ds.xml
===================================================================
--- trunk/build/kits/jboss-container/teiid-examples/portfolio/text-connector-ds.xml	2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/teiid-examples/portfolio/text-connector-ds.xml	2010-05-10 01:46:37 UTC (rev 2108)
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<connection-factories>
-
-   <no-tx-connection-factory>
-      <jndi-name>text-connector</jndi-name>
-      <rar-name>connector-text-${project.version}.rar</rar-name>
-      <connection-definition>org.teiid.connector.api.Connector</connection-definition>
-      
-      <!--
-        All the available properties for this connector are defined inside the "ra.xml" defined inside the rar
-        file mentioned above. 
-       -->
-             
-      <config-property name="XaCapable" type="java.lang.Boolean">false</config-property>
-
-      <config-property name="DescriptorFile" type="java.lang.String">${jboss.server.home.dir}/teiid-examples/portfolio/marketdata-def.txt</config-property>
-            
-      <max-pool-size>20</max-pool-size>
-
-    </no-tx-connection-factory>
-
-</connection-factories>
\ No newline at end of file

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-07 21:35:44 UTC (rev 2107)
+++ trunk/client/src/main/java/org/teiid/adminapi/impl/TranslatorMetaData.java	2010-05-10 01:46:37 UTC (rev 2108)
@@ -27,18 +27,17 @@
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
 
 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)
 @XmlAccessorType(XmlAccessType.NONE)
- at XmlRootElement(name = "translator")
 public class TranslatorMetaData extends AdminObjectImpl implements Translator, Serializable {
 
 	private static final long serialVersionUID = 1680003620274793056L;
@@ -49,6 +48,7 @@
 	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 OVERRIDE_CAPABILITIES_FILE = "override-capabilities-file"; //$NON-NLS-1$
+	public static final String NAME = "name"; //$NON-NLS-1$
 	
 	// objects are used to keep the jaxb putting verbose xml elements when they are not defined.
 	private String executionFactoryClass;
@@ -66,6 +66,11 @@
 		return super.getName();
 	}	
 	
+	@XmlElement(name = NAME)
+	public void setName(String name) {
+		super.setName(name);
+	}
+	
 	@Override
 	@ManagementProperty(name=EXECUTION_FACTORY_CLASS, description="Connector Class", mandatory = true)
 	public String getExecutionFactoryClass() {
@@ -145,7 +150,8 @@
 	
 	@Override
 	@XmlElement(name = "translator-property", type = PropertyMetadata.class)
-	@ManagementProperty(description = "Translator Properties", managed=true)
+	@ManagementProperty(name="translator-property", description = "Translator Properties", managed=true)
+	@ManagementPropertyFactory(TranslatorPropertyFactory.class)
 	public List<PropertyMetadata> getJAXBProperties(){
 		return super.getJAXBProperties();
 	}	

Added: trunk/client/src/main/java/org/teiid/adminapi/impl/TranslatorPropertyFactory.java
===================================================================
--- trunk/client/src/main/java/org/teiid/adminapi/impl/TranslatorPropertyFactory.java	                        (rev 0)
+++ trunk/client/src/main/java/org/teiid/adminapi/impl/TranslatorPropertyFactory.java	2010-05-10 01:46:37 UTC (rev 2108)
@@ -0,0 +1,109 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This 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 software 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.teiid.adminapi.impl;
+
+import java.io.ObjectStreamException;
+import java.io.Serializable;
+
+import org.jboss.beans.info.spi.BeanInfo;
+import org.jboss.beans.info.spi.PropertyInfo;
+import org.jboss.managed.api.Fields;
+import org.jboss.managed.api.ManagedObject;
+import org.jboss.managed.api.factory.ManagedObjectFactory;
+import org.jboss.managed.plugins.ManagedPropertyImpl;
+import org.jboss.managed.spi.factory.InstanceClassFactory;
+import org.jboss.metatype.api.types.MapCompositeMetaType;
+import org.jboss.metatype.api.types.MetaType;
+import org.jboss.metatype.api.types.SimpleMetaType;
+import org.jboss.metatype.api.values.MetaValue;
+
+
+public class TranslatorPropertyFactory extends ManagedPropertyImpl {
+	private ManagedObjectFactory moFactory;
+	private MapCompositeMetaType type;
+
+	public TranslatorPropertyFactory(String s) {
+		super(s);
+	}
+
+	public TranslatorPropertyFactory(Fields fields) {
+		super(fields);
+		type = new MapCompositeMetaType(SimpleMetaType.STRING);
+		setField(Fields.META_TYPE, null);
+	}
+
+	public TranslatorPropertyFactory(ManagedObject managedObject, Fields fields) {
+		super(managedObject, fields);
+		type = new MapCompositeMetaType(SimpleMetaType.STRING);
+		setField(Fields.META_TYPE, null);
+	}
+
+	public MetaType getMetaType() {
+		return type;
+	}
+
+	public void setField(String fieldName, Serializable value) {
+		if (Fields.META_TYPE.equals(fieldName))
+			value = type;
+		super.setField(fieldName, value);
+	}
+
+	/**
+	 * Write the value back to the attachment if there is a PropertyInfo in the
+	 * Fields.PROPERTY_INFO field.
+	 */
+	@Override
+	@SuppressWarnings("unchecked")
+	public void setValue(MetaValue value) {
+		super.setValue(value);
+
+		PropertyInfo propertyInfo = getField(Fields.PROPERTY_INFO,PropertyInfo.class);
+		if (propertyInfo != null) {
+			Object attachment = getManagedObject().getAttachment();
+			if (attachment != null) {
+				MetaValue metaValue = value;
+				InstanceClassFactory icf = getMOFactory().getInstanceClassFactory(attachment.getClass());
+				BeanInfo beanInfo = propertyInfo.getBeanInfo();
+				icf.setValue(beanInfo, this, attachment, metaValue);
+			}
+		}
+	}
+
+	private ManagedObjectFactory getMOFactory() {
+		if (moFactory == null)
+			moFactory = ManagedObjectFactory.getInstance();
+		return moFactory;
+	}
+
+	/**
+	 * Expose only plain ManangedPropertyImpl.
+	 * 
+	 * @return simpler ManagedPropertyImpl
+	 * @throws java.io.ObjectStreamException
+	 *             for any error
+	 */
+	private Object writeReplace() throws ObjectStreamException {
+		ManagedPropertyImpl managedProperty = new ManagedPropertyImpl(getManagedObject(), getFields());
+		managedProperty.setTargetManagedObject(getTargetManagedObject());
+		return managedProperty;
+	}
+}


Property changes on: trunk/client/src/main/java/org/teiid/adminapi/impl/TranslatorPropertyFactory.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Deleted: trunk/client/src/test/java/org/teiid/adminapi/impl/TestTranslatorMetadata.java
===================================================================
--- trunk/client/src/test/java/org/teiid/adminapi/impl/TestTranslatorMetadata.java	2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/client/src/test/java/org/teiid/adminapi/impl/TestTranslatorMetadata.java	2010-05-10 01:46:37 UTC (rev 2108)
@@ -1,52 +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.adminapi.impl;
-
-import java.io.StringWriter;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
-
-import org.junit.Test;
-
- at SuppressWarnings("nls")
-public class TestTranslatorMetadata {
-
-	@Test
-	public void testFormat() throws Exception {
-		TranslatorMetaData tm = new TranslatorMetaData();
-		
-		tm.setExecutionFactoryClass("org.teiid.resource.adapter.jdbc.JDBCExecutionFactory");
-		tm.setXaCapable(true);
-		tm.setName("Oracle");
-		tm.addProperty("ExtensionTranslationClassName", "org.teiid.translator.jdbc.oracle.OracleSQLTranslator");
-		
-		JAXBContext jc = JAXBContext.newInstance(new Class<?>[] {TranslatorMetaData.class});
-		Marshaller marshell = jc.createMarshaller();
-		marshell.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,new Boolean(true));
-		
-		StringWriter sw = new StringWriter();
-		marshell.marshal(tm, sw);
-				
-		System.out.println(sw.toString());		
-	}
-}

Modified: trunk/connectors/translator-ldap/src/main/java/org/teiid/resource/adapter/ldap/LDAPExecutionFactory.java
===================================================================
--- trunk/connectors/translator-ldap/src/main/java/org/teiid/resource/adapter/ldap/LDAPExecutionFactory.java	2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/connectors/translator-ldap/src/main/java/org/teiid/resource/adapter/ldap/LDAPExecutionFactory.java	2010-05-10 01:46:37 UTC (rev 2108)
@@ -65,8 +65,8 @@
 		return restrictToObjectClass;
 	}
 	
-	public void setRestrictToObjectClass(Boolean restrictToObjectClass) {
-		this.restrictToObjectClass = restrictToObjectClass.booleanValue();
+	public void setRestrictToObjectClass(boolean restrictToObjectClass) {
+		this.restrictToObjectClass = restrictToObjectClass;
 	}
 
 	@TranslatorProperty(name="SearchDefaultScope", display="Default Search Scope", description="Default Scope for LDAP Searches", allowed={"OBJECT_SCOPE","ONELEVEL_SCOPE","SUBTREE_SCOPE"},required=true, defaultValue="SUBTREE_SCOPE")

Modified: trunk/console/src/main/java/org/teiid/rhq/plugin/VDBComponent.java
===================================================================
--- trunk/console/src/main/java/org/teiid/rhq/plugin/VDBComponent.java	2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/console/src/main/java/org/teiid/rhq/plugin/VDBComponent.java	2010-05-10 01:46:37 UTC (rev 2108)
@@ -279,50 +279,44 @@
 
 		for (MetaValue value : metaValues) {
 			GenericValueSupport genValueSupport = (GenericValueSupport) value;
-			ManagedObjectImpl managedObject = (ManagedObjectImpl) genValueSupport
-					.getValue();
+			ManagedObjectImpl managedObject = (ManagedObjectImpl) genValueSupport.getValue();
 
 			Boolean isSource = Boolean.TRUE;
 			try {
-				isSource = ProfileServiceUtil.booleanValue(managedObject
-						.getProperty("source").getValue());
+				isSource = ProfileServiceUtil.booleanValue(managedObject.getProperty("source").getValue());
 			} catch (Exception e) {
 				LOG.error(e.getMessage());
 			}
 
 			Boolean supportMultiSource = Boolean.TRUE;
 			try {
-				supportMultiSource = ProfileServiceUtil
-						.booleanValue(managedObject.getProperty(
-								"supportsMultiSourceBindings").getValue());
+				supportMultiSource = ProfileServiceUtil.booleanValue(managedObject.getProperty("supportsMultiSourceBindings").getValue());
 			} catch (Exception e) {
 				LOG.error(e.getMessage());
 			}
 
 			String modelName = managedObject.getName();
-			ManagedProperty connectorBinding = managedObject
-					.getProperty("sourceMappings");
+			ManagedProperty connectorBinding = managedObject.getProperty("sourceMappings");
 			Collection<Map<String, String>> sourceList = new ArrayList<Map<String, String>>();
+			
 			getSourceMappingValue(connectorBinding.getValue(), sourceList);
-			String visibility = ((SimpleValueSupport) managedObject
-					.getProperty("visible").getValue()).getValue().toString();
-			String type = ((EnumValueSupport) managedObject.getProperty(
-					"modelType").getValue()).getValue().toString();
+			
+			String visibility = ((SimpleValueSupport) managedObject.getProperty("visible").getValue()).getValue().toString();
+			String type = ((EnumValueSupport) managedObject.getProperty("modelType").getValue()).getValue().toString();
 
 			// Get any model errors/warnings
 			MetaValue errors = managedObject.getProperty("errors").getValue();
 			if (errors != null) {
 				CollectionValueSupport errorValueSupport = (CollectionValueSupport) errors;
 				MetaValue[] errorArray = errorValueSupport.getElements();
+				
 				for (MetaValue error : errorArray) {
 					GenericValueSupport errorGenValueSupport = (GenericValueSupport) error;
-					ManagedObject errorMo = (ManagedObject) errorGenValueSupport
-							.getValue();
-					String severity = ((SimpleValue) errorMo.getProperty(
-							"severity").getValue()).getValue().toString();
-					String message = ((SimpleValue) errorMo
-							.getProperty("value").getValue()).getValue()
-							.toString();
+					
+					ManagedObject errorMo = (ManagedObject) errorGenValueSupport.getValue();
+					String severity = ((SimpleValue) errorMo.getProperty("severity").getValue()).getValue().toString();
+					String message = ((SimpleValue) errorMo.getProperty("value").getValue()).getValue().toString();
+					
 					PropertyMap errorMap = new PropertyMap("errorMap",
 							new PropertySimple("severity", severity),
 							new PropertySimple("message", message));
@@ -335,21 +329,26 @@
 				if (isSource) {
 					String sourceName = (String) sourceMap.get("name");
 					String jndiName = (String) sourceMap.get("jndiName");
+					String translatorName = (String) sourceMap.get("translatorName");
 					PropertyMap multiSourceModel = null;
 					PropertyMap multiSourceModel2 = null;
 
 				PropertyMap model = null;
 				if (supportMultiSource){
 					//TODO need to loop through multisource models
-						multiSourceModel = new PropertyMap("model",
+					multiSourceModel = new PropertyMap("model",
 									new PropertySimple("name", modelName),
 									new PropertySimple("sourceName", sourceName),
-									new PropertySimple("jndiName", jndiName));
-						multiSourceModelsList.add(multiSourceModel);
+									new PropertySimple("jndiName", jndiName),
+									new PropertySimple("translatorName", translatorName));
+					
+					multiSourceModelsList.add(multiSourceModel);
+					
 					 model = new PropertyMap("model",
 							new PropertySimple("name", modelName),
 							new PropertySimple("sourceName", "See below"),
 							new PropertySimple("jndiName", "See below"),
+							new PropertySimple("translatorName", "See below"),
 							new PropertySimple("visibility", visibility),
 							new PropertySimple("supportsMultiSource",
 									true));
@@ -357,13 +356,15 @@
 					 	multiSourceModel = new PropertyMap("model",
 								new PropertySimple("name", modelName),
 								new PropertySimple("sourceName", sourceName),
-								new PropertySimple("jndiName", jndiName));
+								new PropertySimple("jndiName", jndiName),
+								new PropertySimple("translatorName", translatorName));
 					multiSourceModelsList.add(multiSourceModel);
 					}else{
 						 model = new PropertyMap("model",
 								new PropertySimple("name", modelName),
 								new PropertySimple("sourceName", sourceName),
 								new PropertySimple("jndiName", jndiName),
+								new PropertySimple("translatorName", translatorName),
 								new PropertySimple("visibility", visibility),
 								new PropertySimple("supportsMultiSource",
 										supportMultiSource));
@@ -397,14 +398,14 @@
 				GenericValueSupport genValue = ((GenericValueSupport) value);
 				ManagedObject mo = (ManagedObject) genValue.getValue();
 				String sourceName = mo.getName();
-				String jndi = ((SimpleValue) mo.getProperty("jndiName")
-						.getValue()).getValue().toString();
+				String jndi = ((SimpleValue) mo.getProperty("connectionJndiName").getValue()).getValue().toString();
+				String translatorName = ((SimpleValue) mo.getProperty("translatorName").getValue()).getValue().toString();
 				map.put("name", sourceName);
 				map.put("jndiName", jndi);
+				map.put("translatorName", translatorName);
 			}
 		} else {
-			throw new IllegalStateException(pValue
-					+ " is not a Collection type");
+			throw new IllegalStateException(pValue+ " is not a Collection type");
 		}
 	}
 

Modified: trunk/console/src/main/java/org/teiid/rhq/plugin/VDBDiscoveryComponent.java
===================================================================
--- trunk/console/src/main/java/org/teiid/rhq/plugin/VDBDiscoveryComponent.java	2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/console/src/main/java/org/teiid/rhq/plugin/VDBDiscoveryComponent.java	2010-05-10 01:46:37 UTC (rev 2108)
@@ -170,22 +170,17 @@
 
 			Boolean supportMultiSource = Boolean.TRUE;
 			try {
-				supportMultiSource = ProfileServiceUtil
-						.booleanValue(managedObject.getProperty(
-								"supportsMultiSourceBindings").getValue());
+				supportMultiSource = ProfileServiceUtil.booleanValue(managedObject.getProperty("supportsMultiSourceBindings").getValue());
 			} catch (Exception e) {
 				throw e;
 			}
 
 			String modelName = managedObject.getName();
-			ManagedProperty connectorBinding = managedObject
-					.getProperty("sourceMappings");
+			ManagedProperty connectorBinding = managedObject.getProperty("sourceMappings");
 			Collection<Map<String, String>> sourceList = new ArrayList<Map<String, String>>();
 			getSourceMappingValue(connectorBinding.getValue(), sourceList);
-			String visibility = ((SimpleValueSupport) managedObject
-					.getProperty("visible").getValue()).getValue().toString();
-			String type = ((EnumValueSupport) managedObject.getProperty(
-					"modelType").getValue()).getValue().toString();
+			String visibility = ((SimpleValueSupport) managedObject.getProperty("visible").getValue()).getValue().toString();
+			String type = ((EnumValueSupport) managedObject.getProperty("modelType").getValue()).getValue().toString();
 
 			// Get any model errors/warnings
 			MetaValue errors = managedObject.getProperty("errors").getValue();
@@ -194,13 +189,9 @@
 				MetaValue[] errorArray = errorValueSupport.getElements();
 				for (MetaValue error : errorArray) {
 					GenericValueSupport errorGenValueSupport = (GenericValueSupport) error;
-					ManagedObject errorMo = (ManagedObject) errorGenValueSupport
-							.getValue();
-					String severity = ((SimpleValue) errorMo.getProperty(
-							"severity").getValue()).getValue().toString();
-					String message = ((SimpleValue) errorMo
-							.getProperty("value").getValue()).getValue()
-							.toString();
+					ManagedObject errorMo = (ManagedObject) errorGenValueSupport.getValue();
+					String severity = ((SimpleValue) errorMo.getProperty("severity").getValue()).getValue().toString();
+					String message = ((SimpleValue) errorMo.getProperty("value").getValue()).getValue().toString();
 					PropertyMap errorMap = new PropertyMap("errorMap",
 							new PropertySimple("severity", severity),
 							new PropertySimple("message", message));
@@ -211,16 +202,17 @@
 			for (Map<String, String> sourceMap : sourceList) {
 
 				if (isSource) {
-					String sourceName = (String) sourceMap.get("name");
-					String jndiName = (String) sourceMap.get("jndiName");
+					String sourceName =  sourceMap.get("name");
+					String jndiName = sourceMap.get("jndiName");
+					String translatorName =  sourceMap.get("translatorName");
 					
 					PropertyMap model = new PropertyMap("model",
 							new PropertySimple("name", modelName),
 							new PropertySimple("sourceName", sourceName),
 							new PropertySimple("jndiName", jndiName),
+							new PropertySimple("translatorName", translatorName),
 							new PropertySimple("visibility", visibility),
-							new PropertySimple("supportsMultiSource",
-									supportMultiSource));
+							new PropertySimple("supportsMultiSource",supportMultiSource));
 
 					model.getSimple("jndiName").setOverride(false);
 					sourceModelsList.add(model);
@@ -252,14 +244,14 @@
 				GenericValueSupport genValue = ((GenericValueSupport) value);
 				ManagedObject mo = (ManagedObject) genValue.getValue();
 				String sourceName = mo.getName();
-				String jndi = ((SimpleValue) mo.getProperty("jndiName")
-						.getValue()).getValue().toString();
+				String jndi = ((SimpleValue) mo.getProperty("connectionJndiName").getValue()).getValue().toString();
+				String translatorName = ((SimpleValue) mo.getProperty("translatorName").getValue()).getValue().toString();
 				map.put("name", sourceName);
 				map.put("jndiName", jndi);
+				map.put("translatorName", translatorName);
 			}
 		} else {
-			throw new IllegalStateException(pValue
-					+ " is not a Collection type");
+			throw new IllegalStateException(pValue+ " is not a Collection type");
 		}
 	}
 

Modified: trunk/console/src/main/resources/META-INF/rhq-plugin.xml
===================================================================
--- trunk/console/src/main/resources/META-INF/rhq-plugin.xml	2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/console/src/main/resources/META-INF/rhq-plugin.xml	2010-05-10 01:46:37 UTC (rev 2108)
@@ -449,8 +449,11 @@
 							<c:simple-property name="sourceName"
 								displayName="Source Name" description="Source name for this model"
 								required="false" readOnly="true" />
+                            <c:simple-property name="translatorName"
+                                displayName="Translator Name" description="Name of the translator"
+                                required="true" />                                
 							<c:simple-property name="jndiName"
-								displayName="Connector Binding JNDI Name" description="JNDI name for this connector binding"
+								displayName="Connection JNDI Name" description="JNDI name for this connection"
 								required="false" />
 							<c:simple-property name="visibility"
 								displayName="Visible" description="Visibility of the model"

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-07 21:35:44 UTC (rev 2107)
+++ trunk/jboss-integration/src/main/java/org/teiid/adminapi/jboss/Admin.java	2010-05-10 01:46:37 UTC (rev 2108)
@@ -192,6 +192,8 @@
 				throw new AdminProcessingException(IntegrationPlugin.Util.getString("translator_template_not_found", typeName)); //$NON-NLS-1$
 			}
 			
+			properties.setProperty("name", deploymentName); //$NON-NLS-1$
+			
 			// template properties specific to the template
 			Map<String, ManagedProperty> propertyMap = info.getProperties();
 			

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-07 21:35:44 UTC (rev 2107)
+++ trunk/jboss-integration/src/main/java/org/teiid/adminapi/jboss/AdminObjectBuilder.java	2010-05-10 01:46:37 UTC (rev 2108)
@@ -52,7 +52,7 @@
 				if (value != null) {
 					MetaType type = value.getMetaType();
 					if (type.isSimple()) {
-						PropertiesUtils.setBeanProperty(t, mp.getName(), ((SimpleValue)value).getValue());
+						PropertiesUtils.setBeanProperty(t, mp.getMappedName(), ((SimpleValue)value).getValue());
 					}
 					else if (type.isProperties()) {
 						

Added: trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/TranslatorMetadataGroupComponentMapper.java
===================================================================
--- trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/TranslatorMetadataGroupComponentMapper.java	                        (rev 0)
+++ trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/TranslatorMetadataGroupComponentMapper.java	2010-05-10 01:46:37 UTC (rev 2108)
@@ -0,0 +1,85 @@
+/*
+ * 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.jboss.deployers;
+
+import org.jboss.managed.api.ManagedObject;
+import org.jboss.system.server.profileservice.persistence.PersistenceFactory;
+import org.jboss.system.server.profileservice.persistence.component.AbstractComponentMapper;
+import org.jboss.system.server.profileservice.persistence.xml.PersistedComponent;
+import org.teiid.adminapi.impl.TranslatorMetaData;
+import org.teiid.deployers.TranslatorMetaDataGroup;
+
+/**
+ * This class used in the Teiid deployer -jboss-beans.xml file. This used to write the persisted file for
+ * a translator
+ */
+public class TranslatorMetadataGroupComponentMapper extends AbstractComponentMapper {
+
+	public TranslatorMetadataGroupComponentMapper(PersistenceFactory persistenceFactory) {
+		super(persistenceFactory);
+	}
+
+	@Override
+	protected ManagedObject getComponent(Object attachment, PersistedComponent component, boolean create) {
+		TranslatorMetaDataGroup deployment = (TranslatorMetaDataGroup) attachment;
+		TranslatorMetaData data = null;
+		if (deployment.getTranslators() != null && !deployment.getTranslators().isEmpty()) {
+			for (TranslatorMetaData md : deployment.getTranslators()) {
+				if (md.getName().equals(component.getOriginalName())) {
+					data = md;
+					break;
+				}
+			}
+		}
+		if (data == null && create) {
+			// TODO create new attachment
+		}
+		if (data == null) {
+			throw new IllegalStateException("could not find deployment "+ component.getOriginalName()); //$NON-NLS-1$
+		}
+		return getMOF().initManagedObject(data, null);
+	}
+
+	@Override
+	protected void removeComponent(Object attachment,PersistedComponent component) {
+		TranslatorMetaDataGroup deployment = (TranslatorMetaDataGroup) attachment;
+		if (deployment.getTranslators() != null && !deployment.getTranslators().isEmpty()) {
+			for (TranslatorMetaData data : deployment.getTranslators()) {
+				if (!data.getName().equals(component.getOriginalName())) {
+					deployment.addTranslator(data);
+				}
+			}
+		}
+	}
+
+	@Override
+	protected void setComponentName(PersistedComponent component, ManagedObject mo) {
+		TranslatorMetaData metadata = (TranslatorMetaData)mo.getAttachment();
+		component.setName(metadata.getName()); 
+	}
+
+	@Override
+	public String getType() {
+		return TranslatorMetaDataGroup.class.getName();
+	}
+
+}


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

Modified: trunk/runtime/src/main/java/org/teiid/deployers/ManagedPropertyUtil.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/ManagedPropertyUtil.java	2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/runtime/src/main/java/org/teiid/deployers/ManagedPropertyUtil.java	2010-05-10 01:46:37 UTC (rev 2108)
@@ -27,6 +27,7 @@
 import org.jboss.managed.api.ManagedProperty;
 import org.jboss.managed.plugins.DefaultFieldsImpl;
 import org.jboss.managed.plugins.ManagedPropertyImpl;
+import org.jboss.metatype.api.types.MetaType;
 import org.jboss.metatype.api.types.SimpleMetaType;
 import org.jboss.metatype.api.values.MetaValue;
 import org.jboss.metatype.api.values.SimpleValueSupport;
@@ -48,7 +49,7 @@
 	}
 	
 	public static ManagedProperty createProperty(String name,
-			SimpleMetaType type, String displayName, String description,
+			MetaType type, String displayName, String description,
 			boolean mandatory, boolean readOnly, String defaultValue) {
 
 		DefaultFieldsImpl fields = new DefaultFieldsImpl(name);

Modified: trunk/runtime/src/main/java/org/teiid/deployers/TranslatorDeployer.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/TranslatorDeployer.java	2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/runtime/src/main/java/org/teiid/deployers/TranslatorDeployer.java	2010-05-10 01:46:37 UTC (rev 2108)
@@ -45,39 +45,49 @@
 /**
  * Deployer for the Translator
  */
-public class TranslatorDeployer extends AbstractSimpleRealDeployer<TranslatorMetaData> {
+public class TranslatorDeployer extends AbstractSimpleRealDeployer<TranslatorMetaDataGroup> {
 	
 	private TranslatorRepository translatorRepository;
 	private VDBStatusChecker vdbChecker;
 	
 	public TranslatorDeployer() {
-		super(TranslatorMetaData.class);
+		super(TranslatorMetaDataGroup.class);
 	}
 
 	@Override
-	public void deploy(DeploymentUnit unit, TranslatorMetaData data) throws DeploymentException {
+	public void deploy(DeploymentUnit unit, TranslatorMetaDataGroup group) throws DeploymentException {
 
-		String translatorName = data.getName();
-		
-		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);
-		}				
+		for (TranslatorMetaData data:group.getTranslators()) {
+			String translatorName = data.getName();
+			if (translatorName == null) {
+				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$
+			}
+		}
 	}
 	
 	@Override
-	public void undeploy(DeploymentUnit unit, TranslatorMetaData data) {
-		super.undeploy(unit, data);
+	public void undeploy(DeploymentUnit unit, TranslatorMetaDataGroup group) {
+		super.undeploy(unit, group);
+
+		for (TranslatorMetaData data:group.getTranslators()) {
 		
-		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.vdbChecker.translatorRemoved(translatorName);
+			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.vdbChecker.translatorRemoved(translatorName);
+			}
 		}
 	}	
 
@@ -136,7 +146,7 @@
 				if (setterMethod == null) {
 					throw new DeploymentException(RuntimePlugin.Util.getString("no_set_method", setter, tp.name())); //$NON-NLS-1$
 				}
-				setterMethod.invoke(ef, value);
+				setterMethod.invoke(ef, convert(value, method.getReturnType()));
 			}
 		}
 	}
@@ -148,4 +158,33 @@
 	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;
+			if (type == int.class || type == Integer.class) {
+				return Integer.parseInt(str);
+			}
+			else if (type == boolean.class || type == Boolean.class) {
+				return Boolean.parseBoolean(str);
+			}
+			else if (type == long.class || type == Long.class) {
+				return Long.parseLong(str);
+			}
+			else if (type == byte.class || type == Byte.class) {
+				return Byte.parseByte(str);
+			}
+			else if (type == short.class || type == Short.class) {
+				return Short.parseShort(str);
+			}
+			else if (type == float.class || type == Float.class) {
+				return Float.parseFloat(str);
+			}
+		}
+		return value;
+	}
 }

Added: trunk/runtime/src/main/java/org/teiid/deployers/TranslatorMetaDataGroup.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/TranslatorMetaDataGroup.java	                        (rev 0)
+++ trunk/runtime/src/main/java/org/teiid/deployers/TranslatorMetaDataGroup.java	2010-05-10 01:46:37 UTC (rev 2108)
@@ -0,0 +1,49 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This 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 software 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.teiid.deployers;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.jboss.managed.api.annotation.ManagementObject;
+import org.jboss.managed.api.annotation.ManagementProperty;
+import org.teiid.adminapi.impl.TranslatorMetaData;
+
+ at ManagementObject
+ at XmlRootElement(name = "translator-factory")
+public class TranslatorMetaDataGroup {
+
+	@XmlElement(name = "translator", type = TranslatorMetaData.class)
+	protected List<TranslatorMetaData> translators = new ArrayList<TranslatorMetaData>();
+	
+	@ManagementProperty(description="translators", managed=true)
+	public List<TranslatorMetaData> getTranslators(){
+		return this.translators;
+	}
+	
+	public void addTranslator(TranslatorMetaData data) {
+		this.translators.add(data);
+	}
+}


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

Modified: trunk/runtime/src/main/java/org/teiid/deployers/TranslatorParserDeployer.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/TranslatorParserDeployer.java	2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/runtime/src/main/java/org/teiid/deployers/TranslatorParserDeployer.java	2010-05-10 01:46:37 UTC (rev 2108)
@@ -22,34 +22,45 @@
 package org.teiid.deployers;
 
 import java.io.InputStream;
+import java.util.Map;
+import java.util.Set;
 
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.JAXBElement;
 import javax.xml.bind.Unmarshaller;
 import javax.xml.transform.sax.SAXSource;
 
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.spi.deployer.managed.ManagedObjectCreator;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
 import org.jboss.deployers.vfs.spi.deployer.AbstractVFSParsingDeployer;
 import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
+import org.jboss.managed.api.ManagedObject;
+import org.jboss.managed.api.ManagedProperty;
+import org.jboss.metatype.api.types.MetaType;
+import org.jboss.metatype.api.values.CollectionValue;
+import org.jboss.metatype.api.values.GenericValue;
+import org.jboss.metatype.api.values.MetaValue;
 import org.jboss.util.xml.JBossEntityResolver;
 import org.jboss.virtual.VirtualFile;
-import org.teiid.adminapi.impl.TranslatorMetaData;
 import org.xml.sax.InputSource;
 import org.xml.sax.XMLReader;
 import org.xml.sax.helpers.XMLReaderFactory;
 
 
-public class TranslatorParserDeployer extends AbstractVFSParsingDeployer<TranslatorMetaData> {   
+public class TranslatorParserDeployer extends AbstractVFSParsingDeployer<TranslatorMetaDataGroup> implements ManagedObjectCreator {   
    public static final String TRANSLATOR_SUFFIX = "-translator.xml"; //$NON-NLS-1$
    
    public TranslatorParserDeployer() {
-      super(TranslatorMetaData.class);
+      super(TranslatorMetaDataGroup.class);
       setIncludeDeploymentFile(true);
       setSuffix(TRANSLATOR_SUFFIX);
+      setBuildManagedObject(true);
    }
    
    @Override
-   protected TranslatorMetaData parse(VFSDeploymentUnit unit, VirtualFile file, TranslatorMetaData root) throws Exception {
-	  JAXBContext context = JAXBContext.newInstance(new Class[] {TranslatorMetaData.class});
+   protected TranslatorMetaDataGroup parse(VFSDeploymentUnit unit, VirtualFile file, TranslatorMetaDataGroup root) throws Exception {
+	  JAXBContext context = JAXBContext.newInstance(new Class[] {TranslatorMetaDataGroup.class});
       Unmarshaller um = context.createUnmarshaller();      
       InputStream is = file.openStream();
 
@@ -59,9 +70,8 @@
          XMLReader reader = XMLReaderFactory.createXMLReader();
          reader.setEntityResolver(new JBossEntityResolver());
          SAXSource source = new SAXSource(reader, input);
-         JAXBElement<TranslatorMetaData> elem = um.unmarshal(source, TranslatorMetaData.class);
-         TranslatorMetaData deployment = elem.getValue();
-         deployment.setName(file.getName().substring(0, (file.getName().length()-TRANSLATOR_SUFFIX.length())));
+         JAXBElement<TranslatorMetaDataGroup> elem = um.unmarshal(source, TranslatorMetaDataGroup.class);
+         TranslatorMetaDataGroup deployment = elem.getValue();
          return deployment;
       }      
       finally {
@@ -69,4 +79,23 @@
             is.close();            
       }
    }
+   
+	public void build(DeploymentUnit unit, Set<String> outputs, Map<String, ManagedObject> managedObjects) throws DeploymentException {
+		if (isBuildManagedObject()) {
+			ManagedObject mo = managedObjects.get(TranslatorMetaDataGroup.class.getName());
+			if (mo != null) {
+				ManagedProperty translators = mo.getProperty("translators"); //$NON-NLS-1$
+				MetaType propType = translators.getMetaType();
+				if (propType.isCollection()) {
+					CollectionValue value = (CollectionValue) translators.getValue();
+					if (value != null) {
+						for (MetaValue element:value.getElements()) {
+							ManagedObject translator = (ManagedObject)((GenericValue)element).getValue();
+							managedObjects.put(translator.getName(), translator);
+						}
+					}
+				}
+			}
+		}
+	}
 }

Modified: trunk/runtime/src/main/java/org/teiid/templates/TranslatorDeploymentTemplate.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/templates/TranslatorDeploymentTemplate.java	2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/runtime/src/main/java/org/teiid/templates/TranslatorDeploymentTemplate.java	2010-05-10 01:46:37 UTC (rev 2108)
@@ -27,6 +27,7 @@
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.Marshaller;
 
+import org.jboss.deployers.spi.DeploymentException;
 import org.jboss.deployers.spi.management.DeploymentTemplate;
 import org.jboss.managed.api.DeploymentTemplateInfo;
 import org.jboss.managed.api.ManagedObject;
@@ -35,7 +36,9 @@
 import org.jboss.virtual.VFS;
 import org.jboss.virtual.VirtualFile;
 import org.teiid.adminapi.impl.TranslatorMetaData;
+import org.teiid.deployers.TranslatorMetaDataGroup;
 import org.teiid.deployers.TranslatorParserDeployer;
+import org.teiid.runtime.RuntimePlugin;
 
 /**
  * Translator template writer and deployer 
@@ -63,6 +66,8 @@
 	
 	private void writeTemplate(File dsXml, DeploymentTemplateInfo values) throws Exception {
 
+		TranslatorMetaDataGroup group = new TranslatorMetaDataGroup();
+		
 		// The management framework, will update the attachment the managed property value changes.
 		// that way the translator is configured.
 		TranslatorMetaData translator = new TranslatorMetaData();
@@ -75,11 +80,17 @@
 				if (mp.getValue() != null) {
 					dsProp.setValue(mp.getValue());
 				}
+				
+				if(mp.isMandatory() && mp.getValue() == null && mp.getDefaultValue() == null) {
+					throw new DeploymentException(RuntimePlugin.Util.getString("required_property_not_exists", mp.getName())); //$NON-NLS-1$
+				}
 			}
-		}      
+		}  
+		
+		group.addTranslator(translator);
         
 		// Now use JAXB and write the file.
-		Class[] classes = { TranslatorMetaData.class };
+		Class[] classes = { TranslatorMetaDataGroup.class };
 		JAXBContext context = JAXBContext.newInstance(classes);
 		Marshaller marshaller = context.createMarshaller();
 		marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,new Boolean(true));
@@ -87,7 +98,7 @@
 		FileWriter fw = null;
 		try {
 			fw = new FileWriter(dsXml);
-			marshaller.marshal(translator, fw);
+			marshaller.marshal(group, fw);
 		} finally {
 			if (fw != null) {
 				fw.close();

Modified: trunk/runtime/src/main/java/org/teiid/templates/TranslatorTemplateInfo.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/templates/TranslatorTemplateInfo.java	2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/runtime/src/main/java/org/teiid/templates/TranslatorTemplateInfo.java	2010-05-10 01:46:37 UTC (rev 2108)
@@ -25,6 +25,7 @@
 
 import org.jboss.managed.api.ManagedProperty;
 import org.jboss.managed.plugins.BasicDeploymentTemplateInfo;
+import org.jboss.metatype.api.types.MapCompositeMetaType;
 import org.jboss.metatype.api.types.SimpleMetaType;
 import org.teiid.deployers.ManagedPropertyUtil;
 import org.teiid.resource.cci.TranslatorProperty;
@@ -38,6 +39,9 @@
 	
 	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$
 	
 	
 	public TranslatorTemplateInfo(String name, String description, Map<String, ManagedProperty> properties) {
@@ -59,6 +63,10 @@
 	
 	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$
 	}
 	
 	static ManagedProperty buildTemplateProperty(String name) {

Modified: trunk/runtime/src/main/resources/org/teiid/runtime/i18n.properties
===================================================================
--- trunk/runtime/src/main/resources/org/teiid/runtime/i18n.properties	2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/runtime/src/main/resources/org/teiid/runtime/i18n.properties	2010-05-10 01:46:37 UTC (rev 2108)
@@ -302,4 +302,7 @@
 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
-no_set_method=No {0} method found for translator property {1} 
\ No newline at end of file
+no_set_method=No {0} method found for translator property {1} 
+required_property_not_exists=Required property "{0}" and its value not specified. 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

Copied: trunk/runtime/src/test/java/org/teiid/deployers/TestTranslatorMetadata.java (from rev 2103, trunk/client/src/test/java/org/teiid/adminapi/impl/TestTranslatorMetadata.java)
===================================================================
--- trunk/runtime/src/test/java/org/teiid/deployers/TestTranslatorMetadata.java	                        (rev 0)
+++ trunk/runtime/src/test/java/org/teiid/deployers/TestTranslatorMetadata.java	2010-05-10 01:46:37 UTC (rev 2108)
@@ -0,0 +1,72 @@
+/*
+ * 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.assertEquals;
+
+import java.io.StringReader;
+import java.io.StringWriter;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.Marshaller;
+import javax.xml.bind.Unmarshaller;
+
+import org.junit.Test;
+import org.teiid.adminapi.impl.TranslatorMetaData;
+
+
+ at SuppressWarnings("nls")
+public class TestTranslatorMetadata {
+
+	@Test
+	public void testFormat() throws Exception {
+		
+		TranslatorMetaDataGroup group = new TranslatorMetaDataGroup();
+		TranslatorMetaData tm = new TranslatorMetaData();
+		group.translators.add(tm);
+		
+		
+		tm.setExecutionFactoryClass("org.teiid.resource.adapter.jdbc.JDBCExecutionFactory");
+		tm.setXaCapable(true);
+		tm.setName("Oracle");
+		tm.addProperty("ExtensionTranslationClassName", "org.teiid.translator.jdbc.oracle.OracleSQLTranslator");
+		
+		JAXBContext jc = JAXBContext.newInstance(new Class<?>[] {TranslatorMetaDataGroup.class});
+		Marshaller marshell = jc.createMarshaller();
+		marshell.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,new Boolean(true));
+		
+		StringWriter sw = new StringWriter();
+		marshell.marshal(group, sw);
+				
+		System.out.println(sw.toString());		
+		
+		Unmarshaller un = jc.createUnmarshaller();
+		group = (TranslatorMetaDataGroup)un.unmarshal(new StringReader(sw.toString()));
+		
+		tm = group.getTranslators().get(0);
+		
+		assertEquals("Oracle", tm.getName());
+		assertEquals("org.teiid.resource.adapter.jdbc.JDBCExecutionFactory", tm.getExecutionFactoryClass());
+		assertEquals("org.teiid.translator.jdbc.oracle.OracleSQLTranslator", tm.getPropertyValue("ExtensionTranslationClassName"));
+		
+	}
+}


Property changes on: trunk/runtime/src/test/java/org/teiid/deployers/TestTranslatorMetadata.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-07 21:35:44 UTC (rev 2107)
+++ trunk/test-integration/db/src/test/java/org/teiid/adminapi/jboss/TestConnectorBindings.java	2010-05-10 01:46:37 UTC (rev 2108)
@@ -6,6 +6,7 @@
 import static junit.framework.Assert.assertNotNull;
 import static junit.framework.Assert.assertNull;
 import static junit.framework.Assert.assertTrue;
+import static junit.framework.Assert.fail;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -16,6 +17,7 @@
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Properties;
 import java.util.Set;
 
 import org.junit.After;
@@ -31,6 +33,7 @@
 import org.teiid.adminapi.Request;
 import org.teiid.adminapi.Session;
 import org.teiid.adminapi.Transaction;
+import org.teiid.adminapi.Translator;
 import org.teiid.adminapi.VDB;
 
 import com.metamatrix.core.util.ObjectConverterUtil;
@@ -40,6 +43,7 @@
 public class TestConnectorBindings extends BaseConnection {
 	static ServerDatasourceConnection ds;
 	static Admin admin;
+	private static final String VERSION = "-7.0.0-SNAPSHOT"; 
 	
 	@Before
 	public void setUp() throws Exception {
@@ -201,10 +205,10 @@
 	}
 	
 	@Test
-	public void testConnectorTypeProperties() throws Exception {
-		Collection<PropertyDefinition> defs = admin.getTranslatorTemplatePropertyDefinitions("connector-jdbc-xa-7.0.0-SNAPSHOT"); //$NON-NLS-1$
+	public void testTranslatorTemplateProperties() throws Exception {
+		Collection<PropertyDefinition> defs = admin.getTranslatorTemplatePropertyDefinitions("translator-jdbc"+VERSION); //$NON-NLS-1$
 		for (PropertyDefinition pd:defs) {
-			System.out.println(pd.getName()+":"+pd.getPropertyTypeClassName());
+			System.out.println(pd.getName()+":"+pd.getPropertyTypeClassName()+":"+pd.getDefaultValue());
 			if (pd.getName().equals("ExtensionTranslationClassName")) { //$NON-NLS-1$
 				assertEquals("Extension SQL Translation Class", pd.getDisplayName()); //$NON-NLS-1$
 				assertEquals(false, pd.isAdvanced());
@@ -212,30 +216,27 @@
 				assertEquals(false, pd.isMasked());
 				assertEquals(true, pd.isModifiable());
 				
-				HashSet<String> values = new HashSet<String>();
-				values.add("org.teiid.connector.jdbc.h2.H2Translator"); //$NON-NLS-1$
-				values.add("org.teiid.connector.jdbc.sqlserver.SqlServerSQLTranslator"); //$NON-NLS-1$
-				values.add("org.teiid.connector.jdbc.mysql.MySQL5Translator"); //$NON-NLS-1$
-				values.add("org.teiid.connector.jdbc.derby.DerbySQLTranslator"); //$NON-NLS-1$
-				values.add("org.teiid.connector.jdbc.postgresql.PostgreSQLTranslator"); //$NON-NLS-1$
-				values.add("org.teiid.connector.jdbc.db2.DB2SQLTranslator"); //$NON-NLS-1$
-				values.add("org.teiid.connector.jdbc.access.AccessSQLTranslator"); //$NON-NLS-1$
-				values.add("org.teiid.connector.jdbc.mysql.MySQLTranslator"); //$NON-NLS-1$
-				values.add("org.teiid.connector.jdbc.translator.Translator"); //$NON-NLS-1$
-				values.add("org.teiid.connector.jdbc.oracle.OracleSQLTranslator"); //$NON-NLS-1$
-				assertEquals(values, pd.getAllowedValues());
+				assertEquals(12, pd.getAllowedValues().size());
+				System.out.println(pd.getAllowedValues());
 			}
 		}
 	}
 	
 	@Test
-	public void testConnectorTypes() throws Exception {
+	public void testGetTemplate() throws Exception {
+		Translator translator = admin.getTranslator("oracle");
+		assertEquals("org.teiid.translator.jdbc.oracle.OracleSQLTranslator", translator.getPropertyValue("ExtensionTranslationClassName")); //$NON-NLS-1$
+		assertEquals(true, translator.isXaCapable());
+	}
+	
+	@Test
+	public void testTranslatorTypes() throws Exception {
 		Set<String> defs = admin.getTranslatorTemplateNames();
-//		assertTrue(defs.contains("connector-salesforce-7.0.0-SNAPSHOT")); //$NON-NLS-1$
-//		assertTrue(defs.contains("connector-jdbc-7.0.0-SNAPSHOT")); //$NON-NLS-1$
-//		assertTrue(defs.contains("connector-text-7.0.0-SNAPSHOT")); //$NON-NLS-1$
-//		assertTrue(defs.contains("connector-loopback-7.0.0-SNAPSHOT")); //$NON-NLS-1$
-//		assertTrue(defs.contains("connector-ldap-7.0.0-SNAPSHOT")); //$NON-NLS-1$
+		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);
 	}
 
@@ -308,4 +309,41 @@
 		admin.removeRoleFromDataPolicy("TransactionsRevisited", 1, "policy1", "FOO");
 	}	
 	
+	@Test
+	public void testTranslator() throws Exception {
+		Properties props = new Properties();
+		
+		// test blank add
+		try {
+			admin.addTranslator("foo", "translator-jdbc"+VERSION, props);
+			fail("must have failed because no exeuction factory set");
+		}catch(Throwable e) {
+			
+		}
+		
+		// test minimal correct add
+		props.setProperty("execution-factory-class", "org.teiid.resource.adapter.jdbc.JDBCExecutionFactory");
+		admin.addTranslator("foo", "translator-jdbc"+VERSION, props);
+		
+		// test set property
+		admin.setTranslatorProperty("foo", "TrimStrings", "true");
+		
+		Translator t = admin.getTranslator("foo");
+		assertEquals("org.teiid.resource.adapter.jdbc.JDBCExecutionFactory", t.getExecutionFactoryClass());
+		assertEquals("org.teiid.resource.adapter.jdbc.JDBCExecutionFactory", t.getExecutionFactoryClass());
+		
+		try {
+			admin.setTranslatorProperty("foo", "any-thing", "every-thing");
+			fail("can not set arbitary properties on translator");
+		}catch(Throwable e) {
+			
+		}
+		
+		admin.deleteTranslator("foo");
+		
+		t = admin.getTranslator("foo");
+		assertNull(t);
+		
+	}
+	
 }



More information about the teiid-commits mailing list