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;
+
+(a)Target({ElementType.TYPE})
+(a)Retention(RetentionPolicy.RUNTIME)
+@Inherited
+@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)
-(a)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;
+
+
+(a)XmlAccessorType(XmlAccessType.NONE)
+(a)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;
-
+@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.
*/
+@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.
*/
+@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;
-
+@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;
-
+
+@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
- */
+ */
+@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;
+@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;
+@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;
-/**
- */
+@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
*/
+@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;
+@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
- */
+ */
+@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;
-
+@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
- */
+ */
+@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.
- */
+ */
+@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;
-/**
- */
+@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
*/
+@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
*/
+@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.
*/
+@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.
*/
+@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;
-
+@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.
*/
+@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;
+@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;
-
-@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;
+
+@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();