teiid SVN: r1127 - in trunk/engine/src: main/java/com/metamatrix/query/validator and 2 other directories.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2009-07-14 13:38:11 -0400 (Tue, 14 Jul 2009)
New Revision: 1127
Modified:
trunk/engine/src/main/java/com/metamatrix/query/sql/visitor/CriteriaTranslatorVisitor.java
trunk/engine/src/main/java/com/metamatrix/query/validator/ValidationVisitor.java
trunk/engine/src/main/resources/com/metamatrix/query/i18n.properties
trunk/engine/src/test/java/com/metamatrix/query/validator/TestValidator.java
Log:
TEIID-720 fixing validation logic for translate criteria.
Modified: trunk/engine/src/main/java/com/metamatrix/query/sql/visitor/CriteriaTranslatorVisitor.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/sql/visitor/CriteriaTranslatorVisitor.java 2009-07-14 16:31:11 UTC (rev 1126)
+++ trunk/engine/src/main/java/com/metamatrix/query/sql/visitor/CriteriaTranslatorVisitor.java 2009-07-14 17:38:11 UTC (rev 1127)
@@ -22,13 +22,26 @@
package com.metamatrix.query.sql.visitor;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
import com.metamatrix.core.util.Assertion;
-import com.metamatrix.query.sql.LanguageVisitor;
-import com.metamatrix.query.sql.lang.*;
-import com.metamatrix.query.sql.symbol.*;
-import com.metamatrix.query.sql.proc.*;
+import com.metamatrix.query.sql.lang.BetweenCriteria;
+import com.metamatrix.query.sql.lang.CompareCriteria;
+import com.metamatrix.query.sql.lang.CompoundCriteria;
+import com.metamatrix.query.sql.lang.Criteria;
+import com.metamatrix.query.sql.lang.DependentSetCriteria;
+import com.metamatrix.query.sql.lang.IsNullCriteria;
+import com.metamatrix.query.sql.lang.MatchCriteria;
+import com.metamatrix.query.sql.lang.SetCriteria;
+import com.metamatrix.query.sql.proc.CriteriaSelector;
+import com.metamatrix.query.sql.symbol.ElementSymbol;
+import com.metamatrix.query.sql.symbol.Expression;
+import com.metamatrix.query.sql.symbol.Reference;
/**
* <p> This class is used to translate criteria specified on the user's update command against
@@ -37,11 +50,8 @@
* if a CriteriaSelector is specified, also if the user explicty defines translations for some
* of the elements those translations override any symbol mappings.</p>
*/
-public class CriteriaTranslatorVisitor extends LanguageVisitor {
+public class CriteriaTranslatorVisitor extends ExpressionMappingVisitor {
- // map between virtual elements and the elements in its query transformation
- private Map symbolMap;
-
// criteria selector specified on the TranslateCriteria obj
private CriteriaSelector selector;
@@ -49,13 +59,15 @@
private Collection translations;
// list of translated criteria
- private List translatedCriteria;
+ private List<Criteria> translatedCriteria = new ArrayList<Criteria>();
+
+ private Map<Reference, Reference> impliedParameters = new HashMap<Reference, Reference>();
/**
* <p> This constructor initialises the visitor</p>
*/
public CriteriaTranslatorVisitor() {
- this.translatedCriteria = new ArrayList();
+ this(null);
}
/**
@@ -64,31 +76,10 @@
* defining the virtual group
*/
public CriteriaTranslatorVisitor(Map symbolMap) {
- this();
+ super(symbolMap);
Assertion.isNotNull(symbolMap);
- this.symbolMap = symbolMap;
}
- /**
- * <p>Get the symbol map between virtual group elements and the expressions that define
- * them on the query transform of the virtual group.</p>
- * @param symbolMap A map of virtual elements to their counterparts in transform
- * defining the virtual group
- */
- protected Symbol getMappedSymbol(Symbol symbol) {
- return (Symbol) this.symbolMap.get(symbol);
- }
-
- /**
- * <p>Set the symbol map between virtual group elements and the expressions that define
- * them on the query transform of the virtual group.</p>
- * @param symbolMap A map of virtual elements to their counterparts in transform
- * defining the virtual group
- */
- public void setSymbolMap(Map symbolMap) {
- this.symbolMap = symbolMap;
- }
-
/**
* <p>Set the criteria selector used to restrict the part of the criteria that needs to be
* translated.</p>
@@ -121,34 +112,9 @@
if (!selectorContainsCriteriaElements(obj, CriteriaSelector.BETWEEN)) {
return;
}
-
- obj.setExpression(replaceExpression(obj.getExpression()));
- obj.setLowerExpression(replaceExpression(obj.getLowerExpression()));
- obj.setUpperExpression(replaceExpression(obj.getUpperExpression()));
-
+ super.visit(obj);
translatedCriteria.add(obj);
}
-
- /**
- * <p> This method updates the <code>CaseExpression</code> object it receives as an
- * argument by replacing the virtual elements present in the expressions in the
- * function with translated expressions.</p>
- * @param obj The CaseExpression object to be updated with translated expressions
- */
- public void visit(CaseExpression obj) {
- obj.setExpression(replaceExpression(obj.getExpression()));
- int whenCount = obj.getWhenCount();
- ArrayList whens = new ArrayList(whenCount);
- ArrayList thens = new ArrayList(whenCount);
- for(int i = 0; i < whenCount; i++) {
- whens.add(replaceExpression(obj.getWhenExpression(i)));
- thens.add(replaceExpression(obj.getThenExpression(i)));
- }
- obj.setWhen(whens, thens);
- if (obj.getElseExpression() != null) {
- obj.setElseExpression(replaceExpression(obj.getElseExpression()));
- }
- }
/**
* <p> This method updates the <code>CompareCriteria</code> object it receives as an
@@ -162,9 +128,7 @@
return;
}
- obj.setLeftExpression(replaceExpression(obj.getLeftExpression()));
- obj.setRightExpression(replaceExpression(obj.getRightExpression()));
-
+ super.visit(obj);
translatedCriteria.add(obj);
}
@@ -179,8 +143,7 @@
if (!selectorContainsCriteriaElements(obj, CriteriaSelector.IS_NULL)) {
return;
}
- obj.setExpression(replaceExpression(obj.getExpression()));
-
+ super.visit(obj);
translatedCriteria.add(obj);
}
@@ -196,29 +159,9 @@
return;
}
- obj.setLeftExpression(replaceExpression(obj.getLeftExpression()));
- obj.setRightExpression(replaceExpression(obj.getRightExpression()));
-
+ super.visit(obj);
translatedCriteria.add(obj);
}
-
- /**
- * <p> This method updates the <code>SearchedCaseExpression</code> object it receives as an
- * argument by replacing the virtual elements present in the expressions in the
- * function with translated expressions.</p>
- * @param obj The SearchedCaseExpression object to be updated with translated expressions
- */
- public void visit(SearchedCaseExpression obj) {
- int whenCount = obj.getWhenCount();
- ArrayList thens = new ArrayList(whenCount);
- for(int i = 0; i < whenCount; i++) {
- thens.add(replaceExpression(obj.getThenExpression(i)));
- }
- obj.setWhen(obj.getWhen(), thens);
- if (obj.getElseExpression() != null) {
- obj.setElseExpression(replaceExpression(obj.getElseExpression()));
- }
- }
/**
* <p> This method updates the <code>SetCriteria</code> object it receives as an
@@ -232,19 +175,7 @@
return;
}
- obj.setExpression(replaceExpression(obj.getExpression()));
-
- // create a new list containing physical elements and constants
- List valuesList = new ArrayList(obj.getNumberOfValues());
-
- // iterate over the list containing virtual elements/constants
- Iterator valuesIter = obj.getValues().iterator();
- while(valuesIter.hasNext()) {
- Expression valueExpr = (Expression) valuesIter.next();
- valuesList.add(replaceExpression(valueExpr));
- }
- obj.setValues(valuesList);
-
+ super.visit(obj);
translatedCriteria.add(obj);
}
@@ -260,28 +191,10 @@
return;
}
- obj.setExpression(replaceExpression(obj.getExpression()));
-
+ super.visit(obj);
translatedCriteria.add(obj);
}
- /**
- * <p> This method updates the <code>Function</code> object it receives as an
- * argument by replacing the virtual elements present in the expressions in the
- * function with translated expressions</p>
- * @param obj The Function object to be updated with translated expressions
- */
- public void visit(Function obj) {
-
- int argLength = obj.getArgs().length;
- Expression args[] = new Expression [argLength];
-
- for(int i=0; i < argLength; i++) {
- args[i] = replaceExpression(obj.getArg(i));
- }
- obj.setArgs(args);
- }
-
/* ############### Helper Methods ################## */
private boolean selectorContainsCriteriaElements(Criteria criteria, int criteriaType) {
@@ -302,44 +215,9 @@
return true;
}
- /**
- * Utility method that implements a common pattern used throughout this class.
- * @param exp an expression
- * @return the translated expression, if the the expression needs to the
- * translated. Otherwise, the same expression.
- */
- private Expression replaceExpression(Expression exp) {
- if(exp instanceof AliasSymbol) {
- exp = ((AliasSymbol)exp).getSymbol();
- }
- if(exp instanceof ElementSymbol) {
- exp = getTranslatedExpression((ElementSymbol)exp);
- }
- return exp;
- }
-
- /**
- * <p> This method looks up the symbol map between <code>ElementSymbol</code>s at the virtual
- * group level to the <code>Expression</code>s they map to in the query transformation
- * that defines the virtual group, if there is valid translation expresion in the map the
- * translated expression is returned else a the element symbol is
- * returned back as there is no mapping (physical elements).</p>
- * @param obj The virtual <code>ElementSymbol</code> object whose counterpart used in
- * the query transformation of the virtual group is returned
- * @return An <code>Expression</code> object or the elementSymbol if the
- * object could not be mapped
- */
- private Expression getMappedExpression(ElementSymbol obj) {
-
- Expression expr = (Expression) this.symbolMap.get(obj);
- if(expr != null) {
- return expr;
- }
- return obj;
- }
-
- private Expression getTranslatedExpression(ElementSymbol obj) {
- if(this.translations != null) {
+ @Override
+ public Expression replaceExpression(Expression obj) {
+ if (this.translations != null && obj instanceof ElementSymbol) {
Iterator transIter = this.translations.iterator();
while(transIter.hasNext()) {
CompareCriteria compCrit = (CompareCriteria) transIter.next();
@@ -350,9 +228,8 @@
return compCrit.getRightExpression();
}
}
- }
-
- return getMappedExpression(obj);
+ }
+ return super.replaceExpression(obj);
}
/**
Modified: trunk/engine/src/main/java/com/metamatrix/query/validator/ValidationVisitor.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/validator/ValidationVisitor.java 2009-07-14 16:31:11 UTC (rev 1126)
+++ trunk/engine/src/main/java/com/metamatrix/query/validator/ValidationVisitor.java 2009-07-14 17:38:11 UTC (rev 1127)
@@ -511,30 +511,34 @@
Collection groups = GroupCollectorVisitor.getGroups(this.currentCommand, true);
int selectType = obj.getSelector().getSelectorType();
- Iterator critIter = PredicateCollectorVisitor.getPredicates(userCrit).iterator();
+ Collection predicates = PredicateCollectorVisitor.getPredicates(userCrit);
+ if (predicates.size() != Criteria.separateCriteriaByAnd(userCrit).size()) {
+ handleValidationError(QueryPlugin.Util.getString("ValidationVisitor.translated_or"), userCrit); //$NON-NLS-1$
+ }
+ Iterator critIter = predicates.iterator();
while(critIter.hasNext()) {
Criteria predCrit = (Criteria) critIter.next();
if(selectType != CriteriaSelector.NO_TYPE) {
if(predCrit instanceof CompareCriteria) {
CompareCriteria ccCrit = (CompareCriteria) predCrit;
if(selectType != ccCrit.getOperator()) {
- return;
+ continue;
}
} else if(predCrit instanceof MatchCriteria) {
if(selectType != CriteriaSelector.LIKE) {
- return;
+ continue;
}
} else if(predCrit instanceof IsNullCriteria) {
if(selectType != CriteriaSelector.IS_NULL) {
- return;
+ continue;
}
} else if(predCrit instanceof SetCriteria) {
if(selectType != CriteriaSelector.IN) {
- return;
+ continue;
}
} else if(predCrit instanceof BetweenCriteria) {
if(selectType != CriteriaSelector.BETWEEN) {
- return;
+ continue;
}
}
}
Modified: trunk/engine/src/main/resources/com/metamatrix/query/i18n.properties
===================================================================
--- trunk/engine/src/main/resources/com/metamatrix/query/i18n.properties 2009-07-14 16:31:11 UTC (rev 1126)
+++ trunk/engine/src/main/resources/com/metamatrix/query/i18n.properties 2009-07-14 17:38:11 UTC (rev 1127)
@@ -280,6 +280,7 @@
ERR.015.012.0027 = Expressions of type OBJECT, CLOB, BLOB, or XML cannot be used in comparison: {0}.
ValidationVisitor.invalid_lookup_key=Expressions of type OBJECT, CLOB, BLOB, or XML cannot be used as LOOKUP key columns: {0}.
ValidationVisitor.limit_not_valid_for_xml=The limit clause cannot be used on an XML document query.
+ValidationVisitor.translated_or=Translated user criteria must not contain OR criteria
ValidateCriteriaVistitor.element_not_comparable = The following data elements are not supported in comparison criteria: {0}.
ERR.015.012.0028 = The following data elements are not supported in match criteria: {0}.
ERR.015.012.0029 = INSERT, UPDATE, and DELETE not allowed on XML documents
Modified: trunk/engine/src/test/java/com/metamatrix/query/validator/TestValidator.java
===================================================================
--- trunk/engine/src/test/java/com/metamatrix/query/validator/TestValidator.java 2009-07-14 16:31:11 UTC (rev 1126)
+++ trunk/engine/src/test/java/com/metamatrix/query/validator/TestValidator.java 2009-07-14 17:38:11 UTC (rev 1127)
@@ -1281,6 +1281,23 @@
helpFailProcedure(procedure, userQuery,
FakeMetadataObject.Props.UPDATE_PROCEDURE);
}
+
+ // virtual group elements used in procedure in if statement(TRANSLATE CRITERIA)
+ // failure, aggregate function in query transform
+ public void testCreateUpdateProcedure18a() {
+ String procedure = "CREATE PROCEDURE "; //$NON-NLS-1$
+ procedure = procedure + "BEGIN\n"; //$NON-NLS-1$
+ procedure = procedure + "DECLARE integer var1;\n"; //$NON-NLS-1$
+ procedure = procedure + "Select pm1.g1.e2 from pm1.g1 where TRANSLATE = CRITERIA ON (e3);\n"; //$NON-NLS-1$
+ procedure = procedure + "ROWS_UPDATED =0;\n"; //$NON-NLS-1$
+ procedure = procedure + "END\n"; //$NON-NLS-1$
+
+ String userQuery = "UPDATE vm1.g3 SET x='x' where y like '%a' and e3= 1"; //$NON-NLS-1$
+
+ helpFailProcedure(procedure, userQuery,
+ FakeMetadataObject.Props.UPDATE_PROCEDURE);
+ }
+
// virtual group elements used in procedure in if statement(TRANSLATE CRITERIA)
// failure, translated criteria elements not present on groups of command
@@ -1387,7 +1404,21 @@
helpValidateProcedure(procedure, userQuery,
FakeMetadataObject.Props.UPDATE_PROCEDURE);
}
+
+ public void testCreateUpdateProcedure28() {
+ String procedure = "CREATE PROCEDURE "; //$NON-NLS-1$
+ procedure = procedure + "BEGIN\n"; //$NON-NLS-1$
+ procedure = procedure + "DECLARE integer var1;\n"; //$NON-NLS-1$
+ procedure = procedure + "Select pm1.g2.e2 from pm1.g2 where TRANSLATE CRITERIA;\n"; //$NON-NLS-1$
+ procedure = procedure + "ROWS_UPDATED =0;\n"; //$NON-NLS-1$
+ procedure = procedure + "END\n"; //$NON-NLS-1$
+ String userQuery = "UPDATE vm1.g3 SET x='x' where y = 1 or y = 2"; //$NON-NLS-1$
+
+ helpFailProcedure(procedure, userQuery,
+ FakeMetadataObject.Props.UPDATE_PROCEDURE);
+ }
+
// using aggregate function within a procedure - defect #8394
public void testCreateUpdateProcedure31() {
String procedure = "CREATE PROCEDURE "; //$NON-NLS-1$
15 years, 5 months
teiid SVN: r1126 - trunk/common-internal/src/main/java/com/metamatrix/platform/security/api.
by teiid-commits@lists.jboss.org
Author: rareddy
Date: 2009-07-14 12:31:11 -0400 (Tue, 14 Jul 2009)
New Revision: 1126
Modified:
trunk/common-internal/src/main/java/com/metamatrix/platform/security/api/AuthorizationRealm.java
Log:
TEIID-719: making the authorization realm check case in-sensitive
Modified: trunk/common-internal/src/main/java/com/metamatrix/platform/security/api/AuthorizationRealm.java
===================================================================
--- trunk/common-internal/src/main/java/com/metamatrix/platform/security/api/AuthorizationRealm.java 2009-07-14 15:17:47 UTC (rev 1125)
+++ trunk/common-internal/src/main/java/com/metamatrix/platform/security/api/AuthorizationRealm.java 2009-07-14 16:31:11 UTC (rev 1126)
@@ -281,6 +281,6 @@
* greater than obj2
*/
static public final int compare(AuthorizationRealm obj1, AuthorizationRealm obj2) {
- return obj1.getRealmName().compareTo(obj2.getRealmName());
+ return obj1.getRealmName().toLowerCase().compareTo(obj2.getRealmName().toLowerCase());
}
}
15 years, 5 months
teiid SVN: r1125 - in trunk/engine/src: test/java/com/metamatrix/query/optimizer and 1 other directory.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2009-07-14 11:17:47 -0400 (Tue, 14 Jul 2009)
New Revision: 1125
Modified:
trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/rules/RuleCollapseSource.java
trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/rules/RulePlaceAccess.java
trunk/engine/src/test/java/com/metamatrix/query/optimizer/TestAccessPatterns.java
Log:
TEIID-717 fix for virtual access pattern validation with update commands.
Modified: trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/rules/RuleCollapseSource.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/rules/RuleCollapseSource.java 2009-07-14 13:58:11 UTC (rev 1124)
+++ trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/rules/RuleCollapseSource.java 2009-07-14 15:17:47 UTC (rev 1125)
@@ -81,13 +81,12 @@
// Get nested non-relational plan if there is one
ProcessorPlan nonRelationalPlan = FrameUtil.getNestedPlan(accessNode);
+ Command command = FrameUtil.getNonQueryCommand(accessNode);
+
if(nonRelationalPlan != null) {
accessNode.setProperty(NodeConstants.Info.PROCESSOR_PLAN, nonRelationalPlan);
-
} else {
// Create command from access on down and save in access node
- Command command = FrameUtil.getNonQueryCommand(accessNode);
-
if(command == null) {
PlanNode commandRoot = accessNode;
GroupSymbol intoGroup = (GroupSymbol)accessNode.getFirstChild().getProperty(NodeConstants.Info.INTO_GROUP);
@@ -103,9 +102,8 @@
command = insertCommand;
}
}
- accessNode.setProperty(NodeConstants.Info.ATOMIC_REQUEST, command);
}
-
+ accessNode.setProperty(NodeConstants.Info.ATOMIC_REQUEST, command);
accessNode.removeAllChildren();
}
Modified: trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/rules/RulePlaceAccess.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/rules/RulePlaceAccess.java 2009-07-14 13:58:11 UTC (rev 1124)
+++ trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/rules/RulePlaceAccess.java 2009-07-14 15:17:47 UTC (rev 1125)
@@ -25,8 +25,6 @@
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -46,7 +44,6 @@
import com.metamatrix.query.optimizer.relational.plantree.NodeFactory;
import com.metamatrix.query.optimizer.relational.plantree.PlanNode;
import com.metamatrix.query.resolver.util.ResolverUtil;
-import com.metamatrix.query.sql.lang.Command;
import com.metamatrix.query.sql.lang.Insert;
import com.metamatrix.query.sql.symbol.ElementSymbol;
import com.metamatrix.query.sql.symbol.Expression;
Modified: trunk/engine/src/test/java/com/metamatrix/query/optimizer/TestAccessPatterns.java
===================================================================
--- trunk/engine/src/test/java/com/metamatrix/query/optimizer/TestAccessPatterns.java 2009-07-14 13:58:11 UTC (rev 1124)
+++ trunk/engine/src/test/java/com/metamatrix/query/optimizer/TestAccessPatterns.java 2009-07-14 15:17:47 UTC (rev 1125)
@@ -41,10 +41,20 @@
TestOptimizer.helpPlan(sql, TestValidator.exampleMetadata4(), new String[] {"SELECT test.\"group\".e0, test.\"group\".e2 FROM test.\"group\" WHERE (test.\"group\".e0 = 1) AND (test.\"group\".e1 = '2')"}); //$NON-NLS-1$
}
+ public void testVirtualAccessPatternPassing1() {
+ String sql = "delete from vm1.g37 where e1 = 1"; //$NON-NLS-1$
+ TestOptimizer.helpPlan(sql, FakeMetadataFactory.example1Cached(), new String[] {});
+ }
+
public void testVirtualAccessPatternFailing() {
String sql = "SELECT e0, e2 FROM vTest.vGroup2 where e0=1"; //$NON-NLS-1$
TestOptimizer.helpPlan(sql, TestValidator.exampleMetadata4(), null, null, null, TestOptimizer.SHOULD_FAIL);
}
+
+ public void testVirtualAccessPatternFailing1() {
+ String sql = "delete from vm1.g37"; //$NON-NLS-1$
+ TestOptimizer.helpPlan(sql, FakeMetadataFactory.example1Cached(), null, null, null, TestOptimizer.SHOULD_FAIL);
+ }
public void testAccessPattern1() throws Exception {
String sql = "SELECT e0, e2 FROM vTest.vGroup where e0=1 and e1='2'"; //$NON-NLS-1$
15 years, 5 months
teiid SVN: r1124 - in trunk: connector-api/src/main/java/org/teiid/connector/api and 16 other directories.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2009-07-14 09:58:11 -0400 (Tue, 14 Jul 2009)
New Revision: 1124
Modified:
trunk/client-jdbc/src/main/java/com/metamatrix/jdbc/MMDatabaseMetaData.java
trunk/connector-api/src/main/java/org/teiid/connector/api/ConnectorCapabilities.java
trunk/connector-api/src/main/java/org/teiid/connector/basic/BasicConnectorCapabilities.java
trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/JDBCCapabilities.java
trunk/documentation/reference/src/main/docbook/en-US/content/sql_support.xml
trunk/engine/src/main/java/com/metamatrix/query/optimizer/capabilities/SourceCapabilities.java
trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/GenerateCanonical.java
trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/PlanToProcessConverter.java
trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/plantree/NodeConstants.java
trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/rules/RuleAssignOutputElements.java
trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/rules/RuleMergeVirtual.java
trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/rules/RuleRaiseAccess.java
trunk/engine/src/main/java/com/metamatrix/query/processor/relational/ProjectNode.java
trunk/engine/src/main/java/com/metamatrix/query/processor/relational/SortNode.java
trunk/engine/src/main/java/com/metamatrix/query/resolver/command/SetQueryResolver.java
trunk/engine/src/main/java/com/metamatrix/query/resolver/command/SimpleQueryResolver.java
trunk/engine/src/main/java/com/metamatrix/query/resolver/util/ResolverUtil.java
trunk/engine/src/main/java/com/metamatrix/query/rewriter/QueryRewriter.java
trunk/engine/src/main/java/com/metamatrix/query/sql/lang/OrderBy.java
trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/CapabilitiesConverter.java
trunk/engine/src/test/java/com/metamatrix/query/optimizer/TestOptimizer.java
trunk/engine/src/test/java/com/metamatrix/query/processor/TestProcessor.java
trunk/engine/src/test/java/com/metamatrix/query/resolver/TestResolver.java
Log:
TEIID-514 adding the ability to specify order by columns unrelated to the select cause.
Modified: trunk/client-jdbc/src/main/java/com/metamatrix/jdbc/MMDatabaseMetaData.java
===================================================================
--- trunk/client-jdbc/src/main/java/com/metamatrix/jdbc/MMDatabaseMetaData.java 2009-07-13 22:00:25 UTC (rev 1123)
+++ trunk/client-jdbc/src/main/java/com/metamatrix/jdbc/MMDatabaseMetaData.java 2009-07-14 13:58:11 UTC (rev 1124)
@@ -2856,7 +2856,7 @@
* @throws SQLException, should never occur.
*/
public boolean supportsOrderByUnrelated() throws SQLException {
- return false;
+ return true;
}
/**
Modified: trunk/connector-api/src/main/java/org/teiid/connector/api/ConnectorCapabilities.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/connector/api/ConnectorCapabilities.java 2009-07-13 22:00:25 UTC (rev 1123)
+++ trunk/connector-api/src/main/java/org/teiid/connector/api/ConnectorCapabilities.java 2009-07-14 13:58:11 UTC (rev 1124)
@@ -205,6 +205,13 @@
boolean supportsOrderBy();
/**
+ * Support indicates connector accepts ORDER BY clause with columns not from the select
+ * @since 6.2
+ * @return
+ */
+ boolean supportsOrderByUnrelated();
+
+ /**
* Whether the source supports an explicit GROUP BY clause
* @since 6.1
*/
Modified: trunk/connector-api/src/main/java/org/teiid/connector/basic/BasicConnectorCapabilities.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/connector/basic/BasicConnectorCapabilities.java 2009-07-13 22:00:25 UTC (rev 1123)
+++ trunk/connector-api/src/main/java/org/teiid/connector/basic/BasicConnectorCapabilities.java 2009-07-14 13:58:11 UTC (rev 1124)
@@ -372,4 +372,9 @@
return false;
}
+ @Override
+ public boolean supportsOrderByUnrelated() {
+ return false;
+ }
+
}
Modified: trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/JDBCCapabilities.java
===================================================================
--- trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/JDBCCapabilities.java 2009-07-13 22:00:25 UTC (rev 1123)
+++ trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/JDBCCapabilities.java 2009-07-14 13:58:11 UTC (rev 1124)
@@ -211,6 +211,11 @@
public boolean supportsOrderBy() {
return true;
}
+
+ @Override
+ public boolean supportsOrderByUnrelated() {
+ return true;
+ }
/*
* @see com.metamatrix.data.ConnectorCapabilities#supportsOuterJoins()
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/sql_support.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/sql_support.xml 2009-07-13 22:00:25 UTC (rev 1123)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/sql_support.xml 2009-07-14 13:58:11 UTC (rev 1124)
@@ -791,16 +791,32 @@
<para>Syntax Rules:
</para>
<listitem>
- <para>Column references in the order by must appear in the select clause.</para>
+ <para>Sort columns may be specified positionally by a 1 based
+ integer or string literal, by SELECT clause alias name, or by a column
+ reference.</para>
</listitem>
<listitem>
- <para>The order by columns must be of a comparable type.</para>
+ <para>Column references may appear in the SELECT clause as the
+ expression for an aliased column or may reference columns from tables
+ in the FROM clause.
+ If the column reference is not in the SELECT clause the query must not
+ be a set operation, specify SELECT DISTINCT, or contain a GROUP BY
+ clause.</para>
</listitem>
<listitem>
- <para>If an order by is used in an inline view or view definition without a limit clause, it will be removed by the Teiid optimizer.
- </para>
+ <para>The ORDER BY columns must be of a comparable type.</para>
</listitem>
+ <listitem>
+ <para>If an ORDER BY is used in an inline view or view
+ definition without a limit clause, it will be removed by the Teiid
+ optimizer.</para>
+ </listitem>
</itemizedlist>
+ <warning>
+ <para>The use of positional ordering is no longer supported by the
+ ANSI SQL standard and is a deprecated feature in Teiid. It is
+ preferable to use alias names in the order by clause.</para>
+ </warning>
</sect2>
<sect2 id="limit_clause">
<title>LIMIT Clause</title>
Modified: trunk/engine/src/main/java/com/metamatrix/query/optimizer/capabilities/SourceCapabilities.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/optimizer/capabilities/SourceCapabilities.java 2009-07-13 22:00:25 UTC (rev 1123)
+++ trunk/engine/src/main/java/com/metamatrix/query/optimizer/capabilities/SourceCapabilities.java 2009-07-14 13:58:11 UTC (rev 1124)
@@ -162,6 +162,8 @@
* @since 3.1 SP2
*/
QUERY_ORDERBY,
+
+ QUERY_ORDERBY_UNRELATED,
/**
* Composite support for group by and having - not
* used by the connector layer
Modified: trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/GenerateCanonical.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/GenerateCanonical.java 2009-07-13 22:00:25 UTC (rev 1123)
+++ trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/GenerateCanonical.java 2009-07-14 13:58:11 UTC (rev 1124)
@@ -33,6 +33,7 @@
import com.metamatrix.query.optimizer.relational.plantree.NodeConstants;
import com.metamatrix.query.optimizer.relational.plantree.NodeFactory;
import com.metamatrix.query.optimizer.relational.plantree.PlanNode;
+import com.metamatrix.query.optimizer.relational.plantree.NodeConstants.Info;
import com.metamatrix.query.processor.relational.JoinNode.JoinStrategyType;
import com.metamatrix.query.sql.lang.Command;
import com.metamatrix.query.sql.lang.Criteria;
@@ -445,7 +446,9 @@
sortNode.setProperty(NodeConstants.Info.SORT_ORDER, orderBy.getVariables());
sortNode.setProperty(NodeConstants.Info.ORDER_TYPES, orderBy.getTypes());
-
+ if (orderBy.hasUnrelated()) {
+ sortNode.setProperty(Info.UNRELATED_SORT, true);
+ }
sortNode.addGroups(GroupsUsedByElementsVisitor.getGroups(orderBy));
GenerateCanonical.attachLast(sortNode, plan);
Modified: trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/PlanToProcessConverter.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/PlanToProcessConverter.java 2009-07-13 22:00:25 UTC (rev 1123)
+++ trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/PlanToProcessConverter.java 2009-07-14 13:58:11 UTC (rev 1124)
@@ -346,6 +346,10 @@
PlanNode child = node.getLastChild();
if (node.getParent().getType() != NodeConstants.Types.PROJECT || node.getParent().getProperty(NodeConstants.Info.INTO_GROUP) == null) {
+ if (child.getType() == NodeConstants.Types.PROJECT) {
+ //update the project cols based upon the original output
+ child.setProperty(NodeConstants.Info.PROJECT_COLS, child.getProperty(NodeConstants.Info.OUTPUT_COLS));
+ }
child.setProperty(NodeConstants.Info.OUTPUT_COLS, node.getProperty(NodeConstants.Info.OUTPUT_COLS));
}
}
Modified: trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/plantree/NodeConstants.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/plantree/NodeConstants.java 2009-07-13 22:00:25 UTC (rev 1123)
+++ trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/plantree/NodeConstants.java 2009-07-14 13:58:11 UTC (rev 1124)
@@ -110,6 +110,7 @@
// Sort node properties
ORDER_TYPES, // List <Boolean>
SORT_ORDER, // List <SingleElementSymbol>
+ UNRELATED_SORT, // Boolean
IS_DUP_REMOVAL, // Boolean
// Source node properties
Modified: trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/rules/RuleAssignOutputElements.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/rules/RuleAssignOutputElements.java 2009-07-13 22:00:25 UTC (rev 1123)
+++ trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/rules/RuleAssignOutputElements.java 2009-07-14 13:58:11 UTC (rev 1124)
@@ -146,7 +146,16 @@
case NodeConstants.Types.TUPLE_LIMIT:
case NodeConstants.Types.DUP_REMOVE:
case NodeConstants.Types.SORT:
- //for nodes that are above a project or an access node, there's no special work needed
+ if (root.hasBooleanProperty(NodeConstants.Info.UNRELATED_SORT)) {
+ //add missing sort columns
+ List<SingleElementSymbol> elements = (List<SingleElementSymbol>) root.getProperty(NodeConstants.Info.SORT_ORDER);
+ outputElements = new ArrayList<SingleElementSymbol>(outputElements);
+ for (SingleElementSymbol singleElementSymbol : elements) {
+ if (!outputElements.contains(singleElementSymbol)) {
+ outputElements.add(singleElementSymbol);
+ }
+ }
+ }
assignOutputElements(root.getLastChild(), outputElements, metadata, capFinder, rules, analysisRecord, context);
break;
case NodeConstants.Types.SOURCE: {
Modified: trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/rules/RuleMergeVirtual.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/rules/RuleMergeVirtual.java 2009-07-13 22:00:25 UTC (rev 1123)
+++ trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/rules/RuleMergeVirtual.java 2009-07-14 13:58:11 UTC (rev 1124)
@@ -102,6 +102,16 @@
if (FrameUtil.isProcedure(projectNode)) {
return root;
}
+
+ PlanNode sortNode = NodeEditor.findParent(parentProject, NodeConstants.Types.SORT, NodeConstants.Types.SOURCE);
+
+ if (sortNode != null && sortNode.hasBooleanProperty(NodeConstants.Info.UNRELATED_SORT)) {
+ // the lower group cannot contain DUP_REMOVE, GROUP, UNION
+ // or a projected expression for an unrelated sort column (until SQL 2003 sorts are supported).
+
+ // for now though the simplification is to just not remove the inline view.
+ return root;
+ }
//try to remove the virtual layer if we are only doing a simple projection in the following cases:
// 1. if the frame root is something other than a project (SET_OP, SORT, LIMIT, etc.)
Modified: trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/rules/RuleRaiseAccess.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/rules/RuleRaiseAccess.java 2009-07-13 22:00:25 UTC (rev 1123)
+++ trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/rules/RuleRaiseAccess.java 2009-07-14 13:58:11 UTC (rev 1124)
@@ -282,7 +282,19 @@
}
// If model supports the support constant parameter, then move access node
- return CapabilitiesUtil.supportsOrderBy(modelID, metadata, capFinder);
+ if (!CapabilitiesUtil.supportsOrderBy(modelID, metadata, capFinder)) {
+ return false;
+ }
+
+ /* If we have an unrelated sort it cannot be pushed down if it's not supported by the source
+ *
+ * TODO: we should be able to work this
+ */
+ if (parentNode.hasBooleanProperty(NodeConstants.Info.UNRELATED_SORT) && !CapabilitiesUtil.supports(Capability.QUERY_ORDERBY_UNRELATED, modelID, metadata, capFinder)) {
+ return false;
+ }
+
+ return true;
}
/**
Modified: trunk/engine/src/main/java/com/metamatrix/query/processor/relational/ProjectNode.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/processor/relational/ProjectNode.java 2009-07-13 22:00:25 UTC (rev 1123)
+++ trunk/engine/src/main/java/com/metamatrix/query/processor/relational/ProjectNode.java 2009-07-14 13:58:11 UTC (rev 1124)
@@ -66,7 +66,6 @@
public void reset() {
super.reset();
- needsProject = true;
currentBatch = null;
currentRow = 0;
Modified: trunk/engine/src/main/java/com/metamatrix/query/processor/relational/SortNode.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/processor/relational/SortNode.java 2009-07-13 22:00:25 UTC (rev 1123)
+++ trunk/engine/src/main/java/com/metamatrix/query/processor/relational/SortNode.java 2009-07-14 13:58:11 UTC (rev 1124)
@@ -130,7 +130,7 @@
this.phase = SORT;
}
- private void sortPhase() throws BlockedException, MetaMatrixComponentException, MetaMatrixProcessingException {
+ private void sortPhase() throws BlockedException, MetaMatrixComponentException {
this.outputID = this.sortUtility.sort();
this.phase = OUTPUT;
}
@@ -154,10 +154,12 @@
this.outputBeginRow += outputBatch.getRowCount();
+ outputBatch = removeUnrelatedColumns(outputBatch);
+
if(rowCount != -1 && outputBeginRow > rowCount) {
outputBatch.setTerminationFlag(true);
}
-
+
return outputBatch;
} catch(MemoryNotAvailableException e) {
throw BlockedOnMemoryException.INSTANCE;
@@ -166,6 +168,18 @@
}
}
+ private TupleBatch removeUnrelatedColumns(TupleBatch outputBatch) {
+ int extraColumns = this.getChildren()[0].getElements().size() - this.getElements().size();
+
+ if (extraColumns > 0) {
+ for (List tuple : outputBatch.getAllTuples()) {
+ addBatchRow(tuple.subList(0, this.getElements().size()));
+ }
+ outputBatch = pullBatch();
+ }
+ return outputBatch;
+ }
+
public void close() throws MetaMatrixComponentException {
if (!isClosed()) {
super.close();
Modified: trunk/engine/src/main/java/com/metamatrix/query/resolver/command/SetQueryResolver.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/resolver/command/SetQueryResolver.java 2009-07-13 22:00:25 UTC (rev 1123)
+++ trunk/engine/src/main/java/com/metamatrix/query/resolver/command/SetQueryResolver.java 2009-07-14 13:58:11 UTC (rev 1124)
@@ -92,7 +92,7 @@
if(setQuery.getOrderBy() != null) {
List validGroups = Collections.EMPTY_LIST;
//order by elements must use the short name of the projected symbols
- ResolverUtil.resolveOrderBy(setQuery.getOrderBy(), validGroups, setQuery.getProjectedSymbols(), metadata);
+ ResolverUtil.resolveOrderBy(setQuery.getOrderBy(), validGroups, setQuery.getProjectedSymbols(), metadata, false);
}
setProjectedTypes(setQuery, firstProjectTypes);
Modified: trunk/engine/src/main/java/com/metamatrix/query/resolver/command/SimpleQueryResolver.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/resolver/command/SimpleQueryResolver.java 2009-07-13 22:00:25 UTC (rev 1123)
+++ trunk/engine/src/main/java/com/metamatrix/query/resolver/command/SimpleQueryResolver.java 2009-07-14 13:58:11 UTC (rev 1124)
@@ -612,7 +612,7 @@
public void visit(OrderBy obj) {
try {
- ResolverUtil.resolveOrderBy(obj, new ArrayList(currentGroups), query.getSelect().getProjectedSymbols(), metadata);
+ ResolverUtil.resolveOrderBy(obj, new ArrayList(currentGroups), query.getSelect().getProjectedSymbols(), metadata, query.getGroupBy() == null && !query.getSelect().isDistinct());
} catch(QueryResolverException e) {
throw new MetaMatrixRuntimeException(e);
} catch(MetaMatrixComponentException e) {
Modified: trunk/engine/src/main/java/com/metamatrix/query/resolver/util/ResolverUtil.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/resolver/util/ResolverUtil.java 2009-07-13 22:00:25 UTC (rev 1123)
+++ trunk/engine/src/main/java/com/metamatrix/query/resolver/util/ResolverUtil.java 2009-07-14 13:58:11 UTC (rev 1124)
@@ -282,21 +282,37 @@
* Attempt to resolve the order by
* throws QueryResolverException if the symbol is not of SingleElementSymbol type
* @param orderBy
- * @param fromClauseGroups groups of the FROM clause of the query (for
+ * @param fromClauseGroups groups of the FROM clause of the query (for
* resolving ambiguous unqualified element names), or empty List if a Set Query
* Order By is being resolved
- * @param knownElements resolved elements from SELECT clause, which are only
+ * @param knownElements resolved elements from SELECT clause, which are only
* ones allowed to be in ORDER BY
- * @param metadata QueryMetadataInterface
+ * @param metadata QueryMetadataInterface
+ * @param isSimpleQuery
*/
- public static void resolveOrderBy(OrderBy orderBy, List fromClauseGroups, List knownElements, QueryMetadataInterface metadata)
+ public static void resolveOrderBy(OrderBy orderBy, List fromClauseGroups, List knownElements, QueryMetadataInterface metadata, boolean isSimpleQuery)
throws QueryResolverException, QueryMetadataException, MetaMatrixComponentException {
orderBy.setInPlanForm(false);
// Cached state, if needed
- String[] knownShortNames = null;
+ String[] knownShortNames = new String[knownElements.size()];
+ for(int i=0; i<knownElements.size(); i++) {
+ SingleElementSymbol knownSymbol = (SingleElementSymbol) knownElements.get(i);
+ if (knownSymbol instanceof ExpressionSymbol) {
+ continue;
+ }
+
+ String name = knownSymbol.getShortName();
+ //special check for uuid element symbols
+ if (knownSymbol instanceof ElementSymbol && knownSymbol.getShortName().equalsIgnoreCase(knownSymbol.getName())) {
+ name = metadata.getShortElementName(metadata.getFullName((((ElementSymbol)knownSymbol).getMetadataID())));
+ }
+
+ knownShortNames[i] = name;
+ }
+
// Collect all elements from order by
List elements = orderBy.getVariables();
Iterator elementIter = elements.iterator();
@@ -314,25 +330,6 @@
throw new QueryResolverException(ErrorMessageKeys.RESOLVER_0043, QueryPlugin.Util.getString(ErrorMessageKeys.RESOLVER_0043, symbolName));
}
- // construct the array of short names of the SELECT columns (once only)
- if(knownShortNames == null) {
- knownShortNames = new String[knownElements.size()];
-
- for(int i=0; i<knownElements.size(); i++) {
- SingleElementSymbol knownSymbol = (SingleElementSymbol) knownElements.get(i);
- if (knownSymbol instanceof ExpressionSymbol) {
- continue;
- }
-
- String name = knownSymbol.getShortName();
- //special check for uuid element symbols
- if (knownSymbol instanceof ElementSymbol && knownSymbol.getShortName().equalsIgnoreCase(knownSymbol.getName())) {
- name = metadata.getShortElementName(metadata.getFullName((((ElementSymbol)knownSymbol).getMetadataID())));
- }
-
- knownShortNames[i] = name;
- }
- }
// walk the SELECT col short names, looking for a match on the current ORDER BY 'short name'
for(int i=0; i<knownShortNames.length; i++) {
if( shortName.equalsIgnoreCase( knownShortNames[i] )) {
@@ -387,11 +384,18 @@
matchedSymbol = findMatchingElementByID(symbol, knownElements);
}
-
- TempMetadataID tempMetadataID = new TempMetadataID(symbol.getName(), matchedSymbol.getType());
- tempMetadataID.setPosition(knownElements.indexOf(matchedSymbol));
- symbol.setMetadataID(tempMetadataID);
- symbol.setType(matchedSymbol.getType());
+
+ if (matchedSymbol == null) {
+ if (!isSimpleQuery) {
+ throw new QueryResolverException(ErrorMessageKeys.RESOLVER_0043, QueryPlugin.Util.getString(ErrorMessageKeys.RESOLVER_0043, symbol.getName()));
+ }
+ orderBy.setUnrelated(true);
+ } else {
+ TempMetadataID tempMetadataID = new TempMetadataID(symbol.getName(), matchedSymbol.getType());
+ tempMetadataID.setPosition(knownElements.indexOf(matchedSymbol));
+ symbol.setMetadataID(tempMetadataID);
+ symbol.setType(matchedSymbol.getType());
+ }
}
}
@@ -429,7 +433,7 @@
}
}
- throw new QueryResolverException(ErrorMessageKeys.RESOLVER_0043, QueryPlugin.Util.getString(ErrorMessageKeys.RESOLVER_0043, symbol.getName()));
+ return null;
}
/**
Modified: trunk/engine/src/main/java/com/metamatrix/query/rewriter/QueryRewriter.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/rewriter/QueryRewriter.java 2009-07-13 22:00:25 UTC (rev 1123)
+++ trunk/engine/src/main/java/com/metamatrix/query/rewriter/QueryRewriter.java 2009-07-14 13:58:11 UTC (rev 1124)
@@ -853,14 +853,21 @@
}
OrderBy newOrderBy = new OrderBy();
+ newOrderBy.setUnrelated(orderBy.hasUnrelated());
HashSet<Expression> previousExpressions = new HashSet<Expression>();
for (int i = 0; i < orderBy.getVariableCount(); i++) {
SingleElementSymbol querySymbol = orderBy.getVariable(i);
if (!orderBy.isInPlanForm()) {
//get the order by item from the select clause, the variable must be an element symbol
- int index = ((TempMetadataID)((ElementSymbol)querySymbol).getMetadataID()).getPosition();
- querySymbol = (SingleElementSymbol)((SingleElementSymbol)projectedSymbols.get(index)).clone();
+ //however we have a hack to determine the position...
+ Object id = ((ElementSymbol)querySymbol).getMetadataID();
+ if (id instanceof TempMetadataID) {
+ int index = ((TempMetadataID)((ElementSymbol)querySymbol).getMetadataID()).getPosition();
+ if (index != -1) {
+ querySymbol = (SingleElementSymbol)((SingleElementSymbol)projectedSymbols.get(index)).clone();
+ }
+ } // else not a projected symbol
}
Expression expr = SymbolMap.getExpression(querySymbol);
if (!previousExpressions.add(expr)) {
Modified: trunk/engine/src/main/java/com/metamatrix/query/sql/lang/OrderBy.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/sql/lang/OrderBy.java 2009-07-13 22:00:25 UTC (rev 1123)
+++ trunk/engine/src/main/java/com/metamatrix/query/sql/lang/OrderBy.java 2009-07-14 13:58:11 UTC (rev 1124)
@@ -54,6 +54,7 @@
private List sortOrder;
private List orderTypes;
private boolean inPlanForm = true;
+ private boolean hasUnrelated;
/**
* Constructs a default instance of this class.
@@ -192,6 +193,7 @@
}
OrderBy result = new OrderBy(copySymbols, getTypes());
result.setInPlanForm(this.inPlanForm);
+ result.setUnrelated(this.hasUnrelated);
return result;
}
@@ -244,5 +246,13 @@
public void setInPlanForm(boolean inPlanForm) {
this.inPlanForm = inPlanForm;
}
+
+ public boolean hasUnrelated() {
+ return hasUnrelated;
+ }
+
+ public void setUnrelated(boolean hasUnrelated) {
+ this.hasUnrelated = hasUnrelated;
+ }
}
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/CapabilitiesConverter.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/CapabilitiesConverter.java 2009-07-13 22:00:25 UTC (rev 1123)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/CapabilitiesConverter.java 2009-07-14 13:58:11 UTC (rev 1124)
@@ -93,6 +93,7 @@
tgtCaps.setCapabilitySupport(Capability.QUERY_GROUP_BY, srcCaps.supportsGroupBy());
tgtCaps.setCapabilitySupport(Capability.QUERY_HAVING, srcCaps.supportsHaving());
tgtCaps.setCapabilitySupport(Capability.INSERT_WITH_QUERYEXPRESSION, srcCaps.supportsInsertWithQueryExpression());
+ tgtCaps.setCapabilitySupport(Capability.QUERY_ORDERBY_UNRELATED, srcCaps.supportsOrderByUnrelated());
List functions = srcCaps.getSupportedFunctions();
if(functions != null && functions.size() > 0) {
Modified: trunk/engine/src/test/java/com/metamatrix/query/optimizer/TestOptimizer.java
===================================================================
--- trunk/engine/src/test/java/com/metamatrix/query/optimizer/TestOptimizer.java 2009-07-13 22:00:25 UTC (rev 1123)
+++ trunk/engine/src/test/java/com/metamatrix/query/optimizer/TestOptimizer.java 2009-07-14 13:58:11 UTC (rev 1124)
@@ -144,6 +144,7 @@
caps.setCapabilitySupport(Capability.CRITERIA_OR, true);
caps.setCapabilitySupport(Capability.CRITERIA_NOT, true);
caps.setCapabilitySupport(Capability.QUERY_ORDERBY, true);
+ caps.setCapabilitySupport(Capability.QUERY_ORDERBY_UNRELATED, true);
// set typical max set size
caps.setSourceProperty(Capability.MAX_IN_CRITERIA_SIZE, new Integer(1000));
Modified: trunk/engine/src/test/java/com/metamatrix/query/processor/TestProcessor.java
===================================================================
--- trunk/engine/src/test/java/com/metamatrix/query/processor/TestProcessor.java 2009-07-13 22:00:25 UTC (rev 1123)
+++ trunk/engine/src/test/java/com/metamatrix/query/processor/TestProcessor.java 2009-07-14 13:58:11 UTC (rev 1124)
@@ -7683,6 +7683,32 @@
helpProcess(plan, dataManager, expected);
}
+ @Test public void testOrderByOutsideOfSelect() {
+ // Create query
+ String sql = "SELECT e1 FROM (select e1, e2 || e3 as e2 from pm1.g2) x order by e2"; //$NON-NLS-1$
+
+ //a, a, null, c, b, a
+ // Create expected results
+ List[] expected = new List[] {
+ Arrays.asList("a"),
+ Arrays.asList("a"),
+ Arrays.asList(new String[] {null}),
+ Arrays.asList("c"),
+ Arrays.asList("b"),
+ Arrays.asList("a"),
+ };
+ // Construct data manager with data
+ FakeDataManager dataManager = new FakeDataManager();
+ sampleData1(dataManager);
+
+ // Plan query
+ ProcessorPlan plan = helpGetPlan(helpParse(sql), FakeMetadataFactory.example1Cached(), TestOptimizer.getGenericFinder());
+
+ // Run query
+ helpProcess(plan, dataManager, expected);
+ }
+
+
private static final boolean DEBUG = false;
}
Modified: trunk/engine/src/test/java/com/metamatrix/query/resolver/TestResolver.java
===================================================================
--- trunk/engine/src/test/java/com/metamatrix/query/resolver/TestResolver.java 2009-07-13 22:00:25 UTC (rev 1123)
+++ trunk/engine/src/test/java/com/metamatrix/query/resolver/TestResolver.java 2009-07-14 13:58:11 UTC (rev 1124)
@@ -4698,5 +4698,17 @@
String sql = "SELECT * FROM pm1.g1 WHERE e3 = CASE WHEN e2 BETWEEN 3 AND 5 THEN e2 ELSE -1 END"; //$NON-NLS-1$
helpResolve(sql);
}
+
+ public void testOrderByUnrelated() {
+ helpResolve("SELECT pm1.g1.e1, e2 as x, e3 as y FROM pm1.g1 ORDER BY e4"); //$NON-NLS-1$
+ }
+ public void testOrderByUnrelated1() {
+ helpResolveException("SELECT distinct pm1.g1.e1, e2 as x, e3 as y FROM pm1.g1 ORDER BY e4"); //$NON-NLS-1$
+ }
+
+ public void testOrderByUnrelated2() {
+ helpResolveException("SELECT max(e2) FROM pm1.g1 group by e1 ORDER BY e4"); //$NON-NLS-1$
+ }
+
}
\ No newline at end of file
15 years, 5 months
teiid SVN: r1123 - in trunk: embedded/src/main/java/com/metamatrix/dqp/embedded/admin and 8 other directories.
by teiid-commits@lists.jboss.org
Author: rareddy
Date: 2009-07-13 18:00:25 -0400 (Mon, 13 Jul 2009)
New Revision: 1123
Added:
trunk/engine/src/main/java/com/metamatrix/dqp/service/ConnectorStatus.java
Modified:
trunk/client/src/main/java/org/teiid/adminapi/ConnectorBinding.java
trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/admin/BaseAdmin.java
trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/services/EmbeddedDataService.java
trunk/engine/src/main/java/com/metamatrix/dqp/service/DataService.java
trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorManager.java
trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorWrapper.java
trunk/engine/src/test/java/com/metamatrix/dqp/service/AutoGenDataService.java
trunk/engine/src/test/java/org/teiid/dqp/internal/datamgr/impl/TestConnectorManagerImpl.java
trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDataTierManager.java
trunk/server/src/main/java/com/metamatrix/server/connector/service/ConnectorService.java
trunk/server/src/main/java/com/metamatrix/server/dqp/service/PlatformDataService.java
Log:
TEIID-716: Get the connector status as defined by the connector. ConnectorStatus defines various states available.
Modified: trunk/client/src/main/java/org/teiid/adminapi/ConnectorBinding.java
===================================================================
--- trunk/client/src/main/java/org/teiid/adminapi/ConnectorBinding.java 2009-07-13 18:34:07 UTC (rev 1122)
+++ trunk/client/src/main/java/org/teiid/adminapi/ConnectorBinding.java 2009-07-13 22:00:25 UTC (rev 1123)
@@ -51,6 +51,8 @@
public static final int STATE_DATA_SOURCE_UNAVAILABLE = 6;
/**Running, not deployed*/
public static final int STATE_NOT_DEPLOYED = 7;
+ /** failed to check the status */
+ public static final int STATE_FAILED_TO_CHECK = 8;
/** Password connector property name */
public static final String PASSWORD = "Password"; //$NON-NLS-1$
Modified: trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/admin/BaseAdmin.java
===================================================================
--- trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/admin/BaseAdmin.java 2009-07-13 18:34:07 UTC (rev 1122)
+++ trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/admin/BaseAdmin.java 2009-07-13 22:00:25 UTC (rev 1123)
@@ -66,6 +66,7 @@
import com.metamatrix.dqp.embedded.DQPEmbeddedPlugin;
import com.metamatrix.dqp.service.AuthorizationService;
import com.metamatrix.dqp.service.ConfigurationService;
+import com.metamatrix.dqp.service.ConnectorStatus;
import com.metamatrix.dqp.service.DQPServiceNames;
import com.metamatrix.dqp.service.DataService;
import com.metamatrix.dqp.service.TransactionService;
@@ -336,18 +337,29 @@
// Binding state needs to be converted into pool state; until then we use
// binding state as pool state.
try {
- Boolean status = getDataService().getConnectorBindingState(src.getDeployedName());
- if (status == Boolean.TRUE) {
- binding.setState(org.teiid.adminapi.ConnectorBinding.STATE_OPEN);
- }
- else if (status == Boolean.FALSE) {
- binding.setState(org.teiid.adminapi.ConnectorBinding.STATE_DATA_SOURCE_UNAVAILABLE);
- }
- else {
- binding.setState(org.teiid.adminapi.ConnectorBinding.STATE_DATA_SOURCE_UNAVAILABLE);
- }
- }catch(Exception e) {
- binding.setState(MMConnectorBinding.STATE_DATA_SOURCE_UNAVAILABLE);
+ ConnectorStatus status = getDataService().getConnectorBindingState(src.getDeployedName());
+ switch(status) {
+ case OPEN:
+ binding.setState(org.teiid.adminapi.ConnectorBinding.STATE_OPEN);
+ break;
+ case NOT_INITIALIZED:
+ binding.setState(org.teiid.adminapi.ConnectorBinding.STATE_NOT_INITIALIZED);
+ break;
+ case CLOSED:
+ binding.setState(org.teiid.adminapi.ConnectorBinding.STATE_CLOSED);
+ break;
+ case DATA_SOURCE_UNAVAILABLE:
+ binding.setState(org.teiid.adminapi.ConnectorBinding.STATE_DATA_SOURCE_UNAVAILABLE);
+ break;
+ case INIT_FAILED:
+ binding.setState(org.teiid.adminapi.ConnectorBinding.STATE_INIT_FAILED);
+ break;
+ case UNABLE_TO_CHECK:
+ binding.setState(org.teiid.adminapi.ConnectorBinding.STATE_FAILED_TO_CHECK);
+ break;
+ }
+ }catch(MetaMatrixComponentException e) {
+ binding.setState(org.teiid.adminapi.ConnectorBinding.STATE_NOT_DEPLOYED);
}
binding.setStateChangedTime(src.getLastChangedDate());
return binding;
Modified: trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/services/EmbeddedDataService.java
===================================================================
--- trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/services/EmbeddedDataService.java 2009-07-13 18:34:07 UTC (rev 1122)
+++ trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/services/EmbeddedDataService.java 2009-07-13 22:00:25 UTC (rev 1123)
@@ -59,6 +59,7 @@
import com.metamatrix.dqp.message.AtomicResultsMessage;
import com.metamatrix.dqp.message.RequestMessage;
import com.metamatrix.dqp.service.ConnectorBindingLifeCycleListener;
+import com.metamatrix.dqp.service.ConnectorStatus;
import com.metamatrix.dqp.service.DQPServiceNames;
import com.metamatrix.dqp.service.DataService;
import com.metamatrix.dqp.service.VDBService;
@@ -323,7 +324,7 @@
* @see com.metamatrix.dqp.service.DataService#getConnectorBindingState(java.lang.String)
* @since 4.3
*/
- public Boolean getConnectorBindingState(String deployedConnectorBindingName)
+ public ConnectorStatus getConnectorBindingState(String deployedConnectorBindingName)
throws MetaMatrixComponentException {
ConnectorBinding binding = getConnectorBinding(deployedConnectorBindingName);
if (binding != null) {
@@ -331,6 +332,7 @@
if (mgr != null) {
return mgr.getStatus();
}
+ return ConnectorStatus.CLOSED;
}
throw new MetaMatrixComponentException(DQPEmbeddedPlugin.Util.getString("DataService.Unable_to_find_connector", deployedConnectorBindingName)); //$NON-NLS-1$
}
Added: trunk/engine/src/main/java/com/metamatrix/dqp/service/ConnectorStatus.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/dqp/service/ConnectorStatus.java (rev 0)
+++ trunk/engine/src/main/java/com/metamatrix/dqp/service/ConnectorStatus.java 2009-07-13 22:00:25 UTC (rev 1123)
@@ -0,0 +1,26 @@
+/*
+ * 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 com.metamatrix.dqp.service;
+
+public enum ConnectorStatus {
+ NOT_INITIALIZED, INIT_FAILED, OPEN, DATA_SOURCE_UNAVAILABLE, CLOSED, UNABLE_TO_CHECK;
+}
Property changes on: trunk/engine/src/main/java/com/metamatrix/dqp/service/ConnectorStatus.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/engine/src/main/java/com/metamatrix/dqp/service/DataService.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/dqp/service/DataService.java 2009-07-13 18:34:07 UTC (rev 1122)
+++ trunk/engine/src/main/java/com/metamatrix/dqp/service/DataService.java 2009-07-13 22:00:25 UTC (rev 1123)
@@ -131,11 +131,11 @@
/**
* Get the State of the connector binding name
- * @return {@link com.metamatrix.connector.monitor.AliveStatus}
+ * @return {@link ConnectorStatus}
* @throws MetaMatrixComponentException
* @since 4.3
*/
- Boolean getConnectorBindingState(String connectorBindingName)
+ ConnectorStatus getConnectorBindingState(String connectorBindingName)
throws MetaMatrixComponentException;
/**
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 2009-07-13 18:34:07 UTC (rev 1122)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorManager.java 2009-07-13 22:00:25 UTC (rev 1123)
@@ -86,6 +86,7 @@
import com.metamatrix.dqp.message.RequestID;
import com.metamatrix.dqp.service.BufferService;
import com.metamatrix.dqp.service.CommandLogMessage;
+import com.metamatrix.dqp.service.ConnectorStatus;
import com.metamatrix.dqp.service.DQPServiceNames;
import com.metamatrix.dqp.service.MetadataService;
import com.metamatrix.dqp.service.TransactionService;
@@ -101,7 +102,8 @@
*/
public class ConnectorManager implements ApplicationService {
- public static final int DEFAULT_MAX_THREADS = 20;
+ private static final int TIME_BETWEEN_STATUS_CHECKS = 5000;
+ public static final int DEFAULT_MAX_THREADS = 20;
private static final String DEFAULT_MAX_RESULTSET_CACHE_SIZE = "20"; //$NON-NLS-1$
private static final String DEFAULT_MAX_RESULTSET_CACHE_AGE = "3600000"; //$NON-NLS-1$
@@ -132,6 +134,9 @@
private Properties props;
private ClassLoader classloader;
+ private ConnectorStatus previousStatus;
+ private long lastStatusCheck = -1;
+
public void initialize(Properties props) {
this.props = props;
@@ -295,16 +300,23 @@
/**
* @see com.metamatrix.dqp.internal.datamgr.ConnectorManager#isAlive()
*/
- public Boolean getStatus() {
- if (this.connector == null) return false;
+ public ConnectorStatus getStatus() {
+ if (this.connector == null) {
+ return ConnectorStatus.NOT_INITIALIZED;
+ }
- ClassLoader contextloader = Thread.currentThread().getContextClassLoader();
- try {
- Thread.currentThread().setContextClassLoader(classloader);
- return this.connector.getStatus();
- } finally {
- Thread.currentThread().setContextClassLoader(contextloader);
- }
+ // we want to avoid repeated calls to status, as they may be expensive to make.
+ if (lastStatusCheck == -1 || (System.currentTimeMillis() - lastStatusCheck >= TIME_BETWEEN_STATUS_CHECKS)) {
+ ClassLoader contextloader = Thread.currentThread().getContextClassLoader();
+ try {
+ Thread.currentThread().setContextClassLoader(classloader);
+ this.previousStatus = this.connector.getStatus();
+ this.lastStatusCheck = System.currentTimeMillis();
+ } finally {
+ Thread.currentThread().setContextClassLoader(contextloader);
+ }
+ }
+ return this.previousStatus;
}
/**
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorWrapper.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorWrapper.java 2009-07-13 18:34:07 UTC (rev 1122)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorWrapper.java 2009-07-13 22:00:25 UTC (rev 1123)
@@ -35,6 +35,8 @@
import org.teiid.connector.xa.api.XAConnection;
import org.teiid.connector.xa.api.XAConnector;
+import com.metamatrix.dqp.service.ConnectorStatus;
+
/**
* ConnectorWrapper adds default behavior to the wrapped connector.
*/
@@ -94,21 +96,21 @@
return actualConnector.getCapabilities();
}
- public final Boolean getStatus() {
+ public final ConnectorStatus getStatus() {
if (supportsSingleIdentity()) {
Connection conn = null;
try {
conn = this.getConnection(null);
- return conn.isAlive();
+ return conn.isAlive()?ConnectorStatus.OPEN:ConnectorStatus.DATA_SOURCE_UNAVAILABLE;
} catch (ConnectorException e) {
- return Boolean.FALSE;
+ return ConnectorStatus.INIT_FAILED;
} finally {
if (conn != null) {
conn.close();
}
}
}
- return null;
+ return ConnectorStatus.UNABLE_TO_CHECK;
}
public Connector getActualConnector() {
Modified: trunk/engine/src/test/java/com/metamatrix/dqp/service/AutoGenDataService.java
===================================================================
--- trunk/engine/src/test/java/com/metamatrix/dqp/service/AutoGenDataService.java 2009-07-13 18:34:07 UTC (rev 1122)
+++ trunk/engine/src/test/java/com/metamatrix/dqp/service/AutoGenDataService.java 2009-07-13 22:00:25 UTC (rev 1123)
@@ -198,7 +198,7 @@
* @see com.metamatrix.dqp.service.DataService#getConnectorBindingState(java.lang.String)
* @since 4.3
*/
- public Boolean getConnectorBindingState(String connectorBindingName) throws MetaMatrixComponentException {
+ public ConnectorStatus getConnectorBindingState(String connectorBindingName) throws MetaMatrixComponentException {
return null;
}
Modified: trunk/engine/src/test/java/org/teiid/dqp/internal/datamgr/impl/TestConnectorManagerImpl.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/dqp/internal/datamgr/impl/TestConnectorManagerImpl.java 2009-07-13 18:34:07 UTC (rev 1122)
+++ trunk/engine/src/test/java/org/teiid/dqp/internal/datamgr/impl/TestConnectorManagerImpl.java 2009-07-13 22:00:25 UTC (rev 1123)
@@ -35,7 +35,13 @@
import org.junit.Test;
import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations.Mock;
+import org.teiid.connector.api.Connection;
+import org.teiid.connector.api.Connector;
+import org.teiid.connector.api.ConnectorException;
+import org.teiid.connector.api.ConnectorIdentity;
import org.teiid.connector.api.ConnectorPropertyNames;
+import org.teiid.connector.api.ExecutionContext;
import org.teiid.dqp.internal.cache.ResultSetCache;
import org.teiid.dqp.internal.datamgr.impl.TestConnectorWorkItem.QueueResultsReceiver;
import org.teiid.dqp.internal.pooling.connector.FakeSourceConnectionFactory;
@@ -46,6 +52,7 @@
import com.metamatrix.common.application.exception.ApplicationLifecycleException;
import com.metamatrix.dqp.message.AtomicRequestMessage;
import com.metamatrix.dqp.message.AtomicResultsMessage;
+import com.metamatrix.dqp.service.ConnectorStatus;
import com.metamatrix.dqp.service.DQPServiceNames;
import com.metamatrix.dqp.service.FakeMetadataService;
import com.metamatrix.query.optimizer.capabilities.SourceCapabilities;
@@ -205,5 +212,86 @@
assertNotNull(receiver.getResults().poll(1000, TimeUnit.MILLISECONDS));
cm.stop();
}
+
+ @Test public void testConnectorStatus() throws Exception {
+ ConnectorManager cm = new ConnectorManager();
+ assertEquals(ConnectorStatus.NOT_INITIALIZED, cm.getStatus());
+
+ Properties props = new Properties();
+ Connector mockConnector = Mockito.mock(Connector.class);
+ Connection mockConnection = Mockito.mock(Connection.class);
+
+ Mockito.stub(mockConnector.getConnection((ExecutionContext)Mockito.anyObject())).toReturn(mockConnection);
+
+ final String connectorName = mockConnector.getClass().getName();
+ props.setProperty(ConnectorPropertyNames.CONNECTOR_CLASS, connectorName);
+ cm.setConnector(new ConnectorWrapper(mockConnector)); // to make them same connector
+
+ // no identity can be defined
+ assertEquals(ConnectorStatus.UNABLE_TO_CHECK, cm.getStatus());
+ }
+ @Test public void testConnectorStatus_alive() throws Exception {
+ ConnectorManager cm = new ConnectorManager();
+ assertEquals(ConnectorStatus.NOT_INITIALIZED, cm.getStatus());
+
+ Properties props = new Properties();
+ Connector mockConnector = Mockito.mock(Connector.class);
+ Connection mockConnection = Mockito.mock(Connection.class);
+ ConnectorIdentity mockIdentity = Mockito.mock(ConnectorIdentity.class);
+
+ Mockito.stub(mockConnector.getConnection((ExecutionContext)Mockito.anyObject())).toReturn(mockConnection);
+ Mockito.stub(mockConnector.createIdentity(null)).toReturn(mockIdentity);
+
+ final String connectorName = mockConnector.getClass().getName();
+ props.setProperty(ConnectorPropertyNames.CONNECTOR_CLASS, connectorName);
+ startConnectorManager(cm, props);
+ cm.setConnector(new ConnectorWrapper(mockConnector)); // to make them same connector
+
+ // check Open
+ Mockito.stub(mockConnection.isAlive()).toReturn(true);
+ assertEquals(ConnectorStatus.OPEN, cm.getStatus());
+ }
+
+ @Test public void testConnectorStatus_dead() throws Exception {
+ ConnectorManager cm = new ConnectorManager();
+ assertEquals(ConnectorStatus.NOT_INITIALIZED, cm.getStatus());
+
+ Properties props = new Properties();
+ Connector mockConnector = Mockito.mock(Connector.class);
+ Connection mockConnection = Mockito.mock(Connection.class);
+ ConnectorIdentity mockIdentity = Mockito.mock(ConnectorIdentity.class);
+
+ Mockito.stub(mockConnector.getConnection((ExecutionContext)Mockito.anyObject())).toReturn(mockConnection);
+ Mockito.stub(mockConnector.createIdentity(null)).toReturn(mockIdentity);
+
+ final String connectorName = mockConnector.getClass().getName();
+ props.setProperty(ConnectorPropertyNames.CONNECTOR_CLASS, connectorName);
+ startConnectorManager(cm, props);
+ cm.setConnector(new ConnectorWrapper(mockConnector)); // to make them same connector
+
+ // data source not available
+ Mockito.stub(mockConnection.isAlive()).toReturn(false);
+ assertEquals(ConnectorStatus.DATA_SOURCE_UNAVAILABLE, cm.getStatus());
+ }
+
+ @Test public void testConnectorStatus_exception() throws Exception {
+ ConnectorManager cm = new ConnectorManager();
+ assertEquals(ConnectorStatus.NOT_INITIALIZED, cm.getStatus());
+
+ Properties props = new Properties();
+ Connector mockConnector = Mockito.mock(Connector.class);
+ ConnectorIdentity mockIdentity = Mockito.mock(ConnectorIdentity.class);
+
+ Mockito.stub(mockConnector.getConnection((ExecutionContext)Mockito.anyObject())).toThrow(new ConnectorException());
+ Mockito.stub(mockConnector.createIdentity(null)).toReturn(mockIdentity);
+
+ final String connectorName = mockConnector.getClass().getName();
+ props.setProperty(ConnectorPropertyNames.CONNECTOR_CLASS, connectorName);
+ startConnectorManager(cm, props);
+ cm.setConnector(new ConnectorWrapper(mockConnector)); // to make them same connector
+
+ // data source not available
+ assertEquals(ConnectorStatus.INIT_FAILED, cm.getStatus());
+ }
}
\ No newline at end of file
Modified: trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDataTierManager.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDataTierManager.java 2009-07-13 18:34:07 UTC (rev 1122)
+++ trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDataTierManager.java 2009-07-13 22:00:25 UTC (rev 1123)
@@ -50,6 +50,7 @@
import com.metamatrix.dqp.message.AtomicResultsMessage;
import com.metamatrix.dqp.message.RequestID;
import com.metamatrix.dqp.message.RequestMessage;
+import com.metamatrix.dqp.service.ConnectorStatus;
import com.metamatrix.dqp.service.DataService;
import com.metamatrix.dqp.service.FakeBufferService;
import com.metamatrix.dqp.service.FakeVDBService;
@@ -366,7 +367,7 @@
public void startConnectorBinding(String connectorBindingName) throws ApplicationLifecycleException,ComponentNotFoundException {}
public void stopConnectorBinding(String connectorBindingName) throws ApplicationLifecycleException,ComponentNotFoundException {}
public List getConnectorBindings() throws ComponentNotFoundException {return null;}
- public Boolean getConnectorBindingState(String connectorBindingName) throws MetaMatrixComponentException {return null;}
+ public ConnectorStatus getConnectorBindingState(String connectorBindingName) throws MetaMatrixComponentException {return null;}
public ConnectorBinding getConnectorBinding(String connectorBindingName) throws MetaMatrixComponentException {return null;}
public Collection getConnectorBindingStatistics(String connectorBindingName) throws MetaMatrixComponentException {return null;}
public Collection getConnectionPoolStatistics(String connectorBindingName) throws MetaMatrixComponentException { return null; }
Modified: trunk/server/src/main/java/com/metamatrix/server/connector/service/ConnectorService.java
===================================================================
--- trunk/server/src/main/java/com/metamatrix/server/connector/service/ConnectorService.java 2009-07-13 18:34:07 UTC (rev 1122)
+++ trunk/server/src/main/java/com/metamatrix/server/connector/service/ConnectorService.java 2009-07-13 22:00:25 UTC (rev 1123)
@@ -75,6 +75,7 @@
import com.metamatrix.dqp.message.AtomicRequestMessage;
import com.metamatrix.dqp.message.AtomicResultsMessage;
import com.metamatrix.dqp.message.RequestID;
+import com.metamatrix.dqp.service.ConnectorStatus;
import com.metamatrix.dqp.service.DQPServiceNames;
import com.metamatrix.platform.service.api.CacheAdmin;
import com.metamatrix.platform.service.api.ServiceID;
@@ -252,9 +253,9 @@
public void checkState() throws ServiceStateException {
if (monitoringEnabled && connectorMgr != null) {
- Boolean status = connectorMgr.getStatus();
+ ConnectorStatus status = connectorMgr.getStatus();
int state = getCurrentState();
- if (state == ServiceState.STATE_OPEN && status == Boolean.FALSE) {
+ if (state == ServiceState.STATE_OPEN && status == ConnectorStatus.DATA_SOURCE_UNAVAILABLE) {
updateState(ServiceState.STATE_DATA_SOURCE_UNAVAILABLE);
logOK("ConnectorService.Change_state_to_data_source_unavailable", connectorMgrName); //$NON-NLS-1$
@@ -262,7 +263,7 @@
//TODO: store the exception in the registry
}
- if (state == ServiceState.STATE_DATA_SOURCE_UNAVAILABLE && status == Boolean.TRUE) {
+ if (state == ServiceState.STATE_DATA_SOURCE_UNAVAILABLE && status == ConnectorStatus.OPEN) {
this.updateState(ServiceState.STATE_OPEN);
logOK("ConnectorService.Change_state_to_open", connectorMgrName); //$NON-NLS-1$
Modified: trunk/server/src/main/java/com/metamatrix/server/dqp/service/PlatformDataService.java
===================================================================
--- trunk/server/src/main/java/com/metamatrix/server/dqp/service/PlatformDataService.java 2009-07-13 18:34:07 UTC (rev 1122)
+++ trunk/server/src/main/java/com/metamatrix/server/dqp/service/PlatformDataService.java 2009-07-13 22:00:25 UTC (rev 1123)
@@ -48,6 +48,7 @@
import com.metamatrix.dqp.message.AtomicRequestMessage;
import com.metamatrix.dqp.message.AtomicResultsMessage;
import com.metamatrix.dqp.message.RequestMessage;
+import com.metamatrix.dqp.service.ConnectorStatus;
import com.metamatrix.dqp.service.DataService;
import com.metamatrix.platform.util.PlatformProxyHelper;
import com.metamatrix.query.optimizer.capabilities.SourceCapabilities;
@@ -193,7 +194,7 @@
* @see com.metamatrix.dqp.service.DataService#getConnectorBindingState(java.lang.String)
* @since 4.3
*/
- public Boolean getConnectorBindingState(String connectorBindingName) throws MetaMatrixComponentException {
+ public ConnectorStatus getConnectorBindingState(String connectorBindingName) throws MetaMatrixComponentException {
throw new UnsupportedOperationException();
}
15 years, 5 months
teiid SVN: r1122 - in trunk: common-internal/src/main/java/com/metamatrix/common/vdb/api and 16 other directories.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2009-07-13 14:34:07 -0400 (Mon, 13 Jul 2009)
New Revision: 1122
Modified:
trunk/client-jdbc/src/main/java/com/metamatrix/jdbc/MMDatabaseMetaData.java
trunk/common-internal/src/main/java/com/metamatrix/common/vdb/api/DEFReaderWriter.java
trunk/common-internal/src/main/java/com/metamatrix/common/vdb/api/ModelInfo.java
trunk/common-internal/src/main/java/com/metamatrix/common/vdb/api/VDBArchive.java
trunk/common-internal/src/main/java/com/metamatrix/metadata/runtime/api/MetadataSource.java
trunk/common-internal/src/main/java/com/metamatrix/vdb/runtime/BasicModelInfo.java
trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/AbstractMetadataRecord.java
trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/MetadataFactory.java
trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/TableRecordImpl.java
trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/JDBCConnector.java
trunk/connectors/connector-text/src/test/java/com/metamatrix/connector/text/TestTextConnector.java
trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/configuration/VDBConfigurationReader.java
trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/configuration/VDBConfigurationWriter.java
trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/services/EmbeddedConfigurationService.java
trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/services/EmbeddedDataService.java
trunk/embedded/src/test/java/com/metamatrix/dqp/embedded/services/TestEmbeddedConfigurationService.java
trunk/engine/src/main/java/com/metamatrix/dqp/service/DataService.java
trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorManager.java
trunk/engine/src/test/java/com/metamatrix/dqp/service/AutoGenDataService.java
trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDataTierManager.java
trunk/metadata/src/main/java/org/teiid/metadata/ConnectorMetadataStore.java
trunk/metadata/src/main/java/org/teiid/metadata/QueryMetadataCache.java
trunk/server/src/main/java/com/metamatrix/server/dqp/service/PlatformDataService.java
trunk/server/src/test/java/com/metamatrix/server/admin/apiimpl/FakeModelInfo.java
trunk/test-integration/src/test/resources/vdbless/ConfigurationInfo.def
Log:
TEIID-684 added the ability to cache the connector metadata and to specify import properties in the model definition.
Modified: trunk/client-jdbc/src/main/java/com/metamatrix/jdbc/MMDatabaseMetaData.java
===================================================================
--- trunk/client-jdbc/src/main/java/com/metamatrix/jdbc/MMDatabaseMetaData.java 2009-07-13 16:25:41 UTC (rev 1121)
+++ trunk/client-jdbc/src/main/java/com/metamatrix/jdbc/MMDatabaseMetaData.java 2009-07-13 18:34:07 UTC (rev 1122)
@@ -24,7 +24,6 @@
import java.sql.Connection;
import java.sql.DatabaseMetaData;
-import java.sql.Driver;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
Modified: trunk/common-internal/src/main/java/com/metamatrix/common/vdb/api/DEFReaderWriter.java
===================================================================
--- trunk/common-internal/src/main/java/com/metamatrix/common/vdb/api/DEFReaderWriter.java 2009-07-13 16:25:41 UTC (rev 1121)
+++ trunk/common-internal/src/main/java/com/metamatrix/common/vdb/api/DEFReaderWriter.java 2009-07-13 18:34:07 UTC (rev 1122)
@@ -162,8 +162,11 @@
BasicModelInfo model = new BasicModelInfo(props.getProperty(Model.NAME));
String visibility = props.getProperty(Model.VISIBILITY, ModelInfo.PUBLIC_VISIBILITY);
+ props.remove(Model.VISIBILITY);
model.setVisibility(visibility.equalsIgnoreCase(ModelInfo.PRIVATE_VISIBILITY)?ModelInfo.PRIVATE:ModelInfo.PUBLIC);
model.enableMutliSourceBindings(Boolean.parseBoolean(props.getProperty(Model.MULTI_SOURCE_ENABLED)));
+ props.remove(Model.MULTI_SOURCE_ENABLED);
+ model.setProperties(props);
Element cbElement = modelElement.getChild(Model.CONNECTOR_BINDINGS_ELEMENT);
if (cbElement != null) {
@@ -308,17 +311,21 @@
addPropertyElement(vdbInfoElement, VDBInfo.ACTIVE, TRUE);
}
Properties p = info.getInfoProperties();
- if (p != null) {
- for(String key : (List<String>) Collections.list(p.propertyNames())) {
- addPropertyElement(vdbInfoElement, key, p.getProperty(key));
- }
- }
+ addPropertyElements(vdbInfoElement, p);
}
else {
throw new IOException("Invalid DEF, No name supplied"); //$NON-NLS-1$
}
return vdbInfoElement;
- }
+ }
+
+ private void addPropertyElements(Element vdbInfoElement, Properties p) {
+ if (p != null) {
+ for (String key : (List<String>) Collections.list(p.propertyNames())) {
+ addPropertyElement(vdbInfoElement, key, p.getProperty(key));
+ }
+ }
+ }
private Element createModel(ModelInfo model) throws IOException {
Element modelElement = new Element(Model.ELEMENT);
@@ -326,7 +333,7 @@
if (valid) {
addPropertyElement(modelElement, Model.VISIBILITY, model.getVisibility()==ModelInfo.PRIVATE?ModelInfo.PRIVATE_VISIBILITY:ModelInfo.PUBLIC_VISIBILITY);
addPropertyElement(modelElement, Model.MULTI_SOURCE_ENABLED, Boolean.toString(model.isMultiSourceBindingEnabled()));
-
+ addPropertyElements(modelElement, model.getProperties());
List<String> bindings = model.getConnectorBindingNames();
if (bindings != null && !bindings.isEmpty()) {
Element cbsElement = new Element(Model.CONNECTOR_BINDINGS_ELEMENT);
Modified: trunk/common-internal/src/main/java/com/metamatrix/common/vdb/api/ModelInfo.java
===================================================================
--- trunk/common-internal/src/main/java/com/metamatrix/common/vdb/api/ModelInfo.java 2009-07-13 16:25:41 UTC (rev 1121)
+++ trunk/common-internal/src/main/java/com/metamatrix/common/vdb/api/ModelInfo.java 2009-07-13 18:34:07 UTC (rev 1122)
@@ -28,6 +28,7 @@
import java.util.Date;
import java.util.List;
import java.util.Map;
+import java.util.Properties;
/**
* This interface provides the model information.
@@ -209,4 +210,6 @@
String getPath();
+ Properties getProperties();
+
}
Modified: trunk/common-internal/src/main/java/com/metamatrix/common/vdb/api/VDBArchive.java
===================================================================
--- trunk/common-internal/src/main/java/com/metamatrix/common/vdb/api/VDBArchive.java 2009-07-13 16:25:41 UTC (rev 1121)
+++ trunk/common-internal/src/main/java/com/metamatrix/common/vdb/api/VDBArchive.java 2009-07-13 18:34:07 UTC (rev 1122)
@@ -64,6 +64,7 @@
public class VDBArchive implements MetadataSource {
public static String USE_CONNECTOR_METADATA = "UseConnectorMetadata"; //$NON-NLS-1$
+ public static String CACHED = "CACHED"; //$NON-NLS-1$
// configuration def contents
private BasicVDBDefn def;
@@ -121,7 +122,7 @@
}
if (def == null) {
- throw new IllegalArgumentException("No ConfigurationInfo.def file associated with vdb " + vdbURL);
+ throw new IllegalArgumentException("No ConfigurationInfo.def file associated with vdb " + vdbURL); //$NON-NLS-1$
}
deployDirectory = new File(deployDirectory, def.getName().toLowerCase() + "/" + def.getVersion().toLowerCase()); //$NON-NLS-1$
@@ -255,12 +256,25 @@
@Override
public Set<String> getConnectorMetadataModelNames() {
- if (this.def.getInfoProperties() != null && PropertiesUtils.getBooleanProperty(this.def.getInfoProperties(), USE_CONNECTOR_METADATA, false)) {
+ if (this.def.getInfoProperties() != null &&
+ (cacheConnectorMetadata() || PropertiesUtils.getBooleanProperty(this.def.getInfoProperties(), USE_CONNECTOR_METADATA, false))) {
return new HashSet<String>(this.def.getModelNames());
}
return Collections.emptySet();
}
+ public boolean cacheConnectorMetadata() {
+ if (this.def.getInfoProperties() == null) {
+ return false;
+ }
+ return CACHED.equalsIgnoreCase(this.def.getInfoProperties().getProperty(USE_CONNECTOR_METADATA));
+ }
+
+ @Override
+ public void saveFile(InputStream is, String path) throws IOException {
+ FileUtils.write(is, new File(this.deployDirectory, path));
+ }
+
private InputStream getStream(String path) throws IOException {
File f = new File(this.deployDirectory, path);
if (!f.exists()) {
@@ -542,5 +556,13 @@
}
return null;
}
+
+ @Override
+ public ModelInfo getModelInfo(String name) {
+ if (this.def == null) {
+ return null;
+ }
+ return this.def.getModel(name);
+ }
}
Modified: trunk/common-internal/src/main/java/com/metamatrix/metadata/runtime/api/MetadataSource.java
===================================================================
--- trunk/common-internal/src/main/java/com/metamatrix/metadata/runtime/api/MetadataSource.java 2009-07-13 16:25:41 UTC (rev 1121)
+++ trunk/common-internal/src/main/java/com/metamatrix/metadata/runtime/api/MetadataSource.java 2009-07-13 18:34:07 UTC (rev 1122)
@@ -1,8 +1,12 @@
package com.metamatrix.metadata.runtime.api;
import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
import java.util.Set;
+import com.metamatrix.common.vdb.api.ModelInfo;
+
public interface MetadataSource {
String getName();
@@ -26,4 +30,23 @@
*/
Set<String> getConnectorMetadataModelNames();
+ /**
+ * Whether to cache connector metadata
+ * @return
+ */
+ boolean cacheConnectorMetadata();
+
+ /**
+ * Save the stream to given path.
+ * @param path
+ */
+ void saveFile(InputStream stream, String path) throws IOException;
+
+ /**
+ * Get the model with the given name.
+ * @param name
+ * @return
+ */
+ ModelInfo getModelInfo(String name);
+
}
Modified: trunk/common-internal/src/main/java/com/metamatrix/vdb/runtime/BasicModelInfo.java
===================================================================
--- trunk/common-internal/src/main/java/com/metamatrix/vdb/runtime/BasicModelInfo.java 2009-07-13 16:25:41 UTC (rev 1121)
+++ trunk/common-internal/src/main/java/com/metamatrix/vdb/runtime/BasicModelInfo.java 2009-07-13 18:34:07 UTC (rev 1122)
@@ -33,6 +33,7 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Properties;
import java.util.Set;
import com.metamatrix.common.util.ByteArrayHelper;
@@ -67,6 +68,8 @@
private boolean isVisible;
private Map ddlFileNamesToFiles = Collections.EMPTY_MAP;
+
+ private Properties properties;
protected BasicModelInfo() {
@@ -418,6 +421,15 @@
this.pathInVdb = path;
}
+ @Override
+ public Properties getProperties() {
+ return this.properties;
+ }
+
+ public void setProperties(Properties properties) {
+ this.properties = properties;
+ }
+
public String toString() {
StringBuffer sw = new StringBuffer();
Modified: trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/AbstractMetadataRecord.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/AbstractMetadataRecord.java 2009-07-13 16:25:41 UTC (rev 1121)
+++ trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/AbstractMetadataRecord.java 2009-07-13 18:34:07 UTC (rev 1122)
@@ -22,6 +22,7 @@
package org.teiid.connector.metadata.runtime;
+import java.io.Serializable;
import java.util.Collection;
import java.util.Properties;
@@ -32,7 +33,7 @@
/**
* AbstractMetadataRecord
*/
-public abstract class AbstractMetadataRecord {
+public abstract class AbstractMetadataRecord implements Serializable {
/**
* Constants for names of accessor methods that map to fields stored on the MetadataRecords.
@@ -63,7 +64,7 @@
private String name;
private Collection<PropertyRecordImpl> extensionProperties;
- private Properties properties;
+ private transient Properties properties;
private AnnotationRecordImpl annotation;
public String getUUID() {
Modified: trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/MetadataFactory.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/MetadataFactory.java 2009-07-13 16:25:41 UTC (rev 1121)
+++ trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/MetadataFactory.java 2009-07-13 18:34:07 UTC (rev 1122)
@@ -28,6 +28,7 @@
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
+import java.util.Properties;
import java.util.Set;
import org.teiid.connector.DataPlugin;
@@ -43,6 +44,7 @@
private transient UUIDFactory factory = new UUIDFactory();
private transient Map<String, DatatypeRecordImpl> dataTypes;
+ private transient Properties importProperties;
private ModelRecordImpl model;
private Collection<TableRecordImpl> tables = new ArrayList<TableRecordImpl>();
@@ -52,8 +54,9 @@
private Set<String> uniqueNames = new HashSet<String>();
- public MetadataFactory(String modelName, Map<String, DatatypeRecordImpl> dataTypes) {
+ public MetadataFactory(String modelName, Map<String, DatatypeRecordImpl> dataTypes, Properties importProperties) {
this.dataTypes = dataTypes;
+ this.importProperties = importProperties;
model = new ModelRecordImpl();
model.setFullName(modelName);
model.setModelType(ModelType.PHYSICAL);
@@ -62,6 +65,10 @@
setUUID(model);
}
+ public Properties getImportProperties() {
+ return importProperties;
+ }
+
@Override
public ModelRecordImpl getModel() {
return model;
Modified: trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/TableRecordImpl.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/TableRecordImpl.java 2009-07-13 16:25:41 UTC (rev 1121)
+++ trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/TableRecordImpl.java 2009-07-13 18:34:07 UTC (rev 1122)
@@ -29,7 +29,7 @@
*/
public class TableRecordImpl extends ColumnSetRecordImpl {
- private int cardinality = -1;
+ private int cardinality;
private int tableType;
private String primaryKeyID;
private String materializedTableID;
Modified: trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/JDBCConnector.java
===================================================================
--- trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/JDBCConnector.java 2009-07-13 16:25:41 UTC (rev 1121)
+++ trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/JDBCConnector.java 2009-07-13 18:34:07 UTC (rev 1122)
@@ -351,6 +351,7 @@
conn = xaConn.getConnection();
}
JDBCMetdataProcessor metadataProcessor = new JDBCMetdataProcessor();
+ PropertiesUtils.setBeanProperties(metadataProcessor, metadataFactory.getImportProperties(), "importer"); //$NON-NLS-1$
PropertiesUtils.setBeanProperties(metadataProcessor, this.environment.getProperties(), "importer"); //$NON-NLS-1$
metadataProcessor.getConnectorMetadata(conn, metadataFactory);
} catch (SQLException e) {
Modified: trunk/connectors/connector-text/src/test/java/com/metamatrix/connector/text/TestTextConnector.java
===================================================================
--- trunk/connectors/connector-text/src/test/java/com/metamatrix/connector/text/TestTextConnector.java 2009-07-13 16:25:41 UTC (rev 1121)
+++ trunk/connectors/connector-text/src/test/java/com/metamatrix/connector/text/TestTextConnector.java 2009-07-13 18:34:07 UTC (rev 1122)
@@ -69,7 +69,7 @@
datatypes.put(DataTypeManager.DefaultDataTypes.BIG_INTEGER, new DatatypeRecordImpl());
datatypes.put(DataTypeManager.DefaultDataTypes.INTEGER, new DatatypeRecordImpl());
datatypes.put(DataTypeManager.DefaultDataTypes.TIMESTAMP, new DatatypeRecordImpl());
- MetadataFactory metadata = new MetadataFactory("SummitData", datatypes); //$NON-NLS-1$
+ MetadataFactory metadata = new MetadataFactory("SummitData", datatypes, new Properties()); //$NON-NLS-1$
connector.getConnectorMetadata(metadata);
assertFalse(metadata.getProcedures().iterator().hasNext());
Iterator<TableRecordImpl> tableIter = metadata.getTables().iterator();
Modified: trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/configuration/VDBConfigurationReader.java
===================================================================
--- trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/configuration/VDBConfigurationReader.java 2009-07-13 16:25:41 UTC (rev 1121)
+++ trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/configuration/VDBConfigurationReader.java 2009-07-13 18:34:07 UTC (rev 1122)
@@ -36,6 +36,7 @@
import com.metamatrix.api.exception.MetaMatrixComponentException;
import com.metamatrix.common.protocol.URLHelper;
import com.metamatrix.common.vdb.api.VDBArchive;
+import com.metamatrix.core.util.ArgCheck;
import com.metamatrix.core.util.ObjectConverterUtil;
import com.metamatrix.core.vdb.VdbConstants;
import com.metamatrix.dqp.embedded.DQPEmbeddedPlugin;
@@ -97,9 +98,7 @@
public static VDBArchive loadVDB(String name, byte[] vdbContents)
throws MetaMatrixComponentException{
- if (vdbContents == null) {
- throw new IllegalArgumentException("VDB Content provided can not be null");
- }
+ ArgCheck.isNotNull(vdbContents);
try {
VDBArchive archive = new VDBArchive(new ByteArrayInputStream(vdbContents));
Modified: trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/configuration/VDBConfigurationWriter.java
===================================================================
--- trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/configuration/VDBConfigurationWriter.java 2009-07-13 16:25:41 UTC (rev 1121)
+++ trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/configuration/VDBConfigurationWriter.java 2009-07-13 18:34:07 UTC (rev 1122)
@@ -35,6 +35,7 @@
import com.metamatrix.common.protocol.URLHelper;
import com.metamatrix.common.vdb.api.VDBArchive;
import com.metamatrix.common.vdb.api.VDBDefn;
+import com.metamatrix.core.util.FileUtils;
import com.metamatrix.dqp.embedded.DQPEmbeddedPlugin;
@@ -116,10 +117,11 @@
}
}
+ VDBDefn def = vdb.getConfigurationDef();
+
// If previous one is a DEF file, we also need to delete the VDB file
- if (url.getPath().endsWith(DEF)) {
+ if (url.getPath().endsWith(DEF) && def.getFileName() != null) {
try {
- VDBDefn def = vdb.getConfigurationDef();
url = URLHelper.buildURL(url, def.getFileName());
urlPath = url.toString()+"?action=delete"; //$NON-NLS-1$
@@ -136,6 +138,11 @@
try {in.close();}catch(IOException e) {}
}
}
- }
+ }
+
+ if (vdb.getDeployDirectory().exists()) {
+ FileUtils.removeDirectoryAndChildren(vdb.getDeployDirectory());
+ }
+
}
}
Modified: trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/services/EmbeddedConfigurationService.java
===================================================================
--- trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/services/EmbeddedConfigurationService.java 2009-07-13 16:25:41 UTC (rev 1121)
+++ trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/services/EmbeddedConfigurationService.java 2009-07-13 18:34:07 UTC (rev 1122)
@@ -26,7 +26,6 @@
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
-import java.net.URISyntaxException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
@@ -61,6 +60,7 @@
import com.metamatrix.common.vdb.api.VDBArchive;
import com.metamatrix.common.vdb.api.VDBDefn;
import com.metamatrix.core.MetaMatrixRuntimeException;
+import com.metamatrix.core.util.Assertion;
import com.metamatrix.core.vdb.VDBStatus;
import com.metamatrix.dqp.embedded.DQPEmbeddedPlugin;
import com.metamatrix.dqp.embedded.DQPEmbeddedProperties;
@@ -283,15 +283,7 @@
* @return URL - never null;
* @since 4.3
*/
- URL getVDBLocation(VDBArchive vdb) throws MetaMatrixComponentException {
- // Check if this already existing VDB then overwrite the files.
- if (this.availableVDBFiles != null && this.availableVDBFiles.size() > 0) {
- URL vdbFile = availableVDBFiles.get(vdbId(vdb));
- if (vdbFile != null) {
- return vdbFile;
- }
- }
-
+ URL getNewVDBLocation(VDBArchive vdb) {
// This is a new VDB, so where other vdbs are stored. Also since we storing this as
// single VDB/DEF combination, update the archive file info.
String vdbName = vdb.getName()+"_"+vdb.getVersion()+VDB; //$NON-NLS-1$
@@ -299,7 +291,6 @@
BasicVDBDefn def = vdb.getConfigurationDef();
def.setFileName(vdbName);
- updateDef(def,vdb);
return fileToSave;
}
@@ -315,14 +306,6 @@
return urls[0];
}
- private void updateDef(BasicVDBDefn def, VDBArchive vdb) throws MetaMatrixComponentException{
- try {
- vdb.updateConfigurationDef(def);
- } catch (IOException e) {
- throw new MetaMatrixComponentException(e);
- }
- }
-
/**
* @see com.metamatrix.dqp.service.ConfigurationService#saveVDB(com.metamatrix.metadata.runtime.admin.vdb.VDBDefn)
* @since 4.3
@@ -348,26 +331,29 @@
archiveFileName = archiveFileName.substring(0, index)+"_"+nextVersion+".vdb"; //$NON-NLS-1$ //$NON-NLS-2$
}
def.setFileName(archiveFileName);
-
- // update the changes in the archive
- updateDef(def,srcVdb);
}
+ try {
+ srcVdb.updateConfigurationDef(srcVdb.getConfigurationDef());
+ } catch (IOException e) {
+ throw new MetaMatrixComponentException(e);
+ }
+
// make sure we match up the connector binding based on user preferences
- URL vdbFile = getVDBLocation(srcVdb);
- VDBConfigurationWriter.write(srcVdb, vdbFile);
-
+ URL vdbFile = availableVDBFiles.get(vdbId(srcVdb));
+ if (vdbFile == null) {
+ vdbFile = getNewVDBLocation(srcVdb);
+ VDBConfigurationWriter.write(srcVdb, vdbFile);
+ srcVdb = VDBConfigurationReader.loadVDB(vdbFile, getDeployDir());
+ try {
+ loadVDB(vdbFile, srcVdb);
+ } catch (ApplicationInitializationException e) {
+ throw new MetaMatrixComponentException(e);
+ }
+ notifyVDBLoad(def.getName(), def.getVersion());
+ }
+
DQPEmbeddedPlugin.logInfo("EmbeddedConfigurationService.vdb_saved", new Object[] {def.getName(), def.getVersion(), vdbFile}); //$NON-NLS-1$
-
- // Only notify on the first time loads, as the all other saves due to
- // binding changes only
- if (loadedVDBs.get(vdbId(srcVdb)) == null) {
- notifyVDBLoad(def.getName(), def.getVersion());
- }
-
- // Refresh the local holdings.
- loadedVDBs.put(vdbId(srcVdb), srcVdb);
- availableVDBFiles.put(vdbId(srcVdb), vdbFile);
}
/**
@@ -395,11 +381,6 @@
// now try to add the connector bindings in the VDB to the configuration service
addConnectorBindingsInVDB(vdb, replaceBindings);
- // Now save the VDB for future use using the Configuration.
- // configuration may alter the connector bindings on VDB based
- // upon preferences set.
- saveVDB(vdb, exists ? ConfigurationService.NEXT_VDB_VERSION : vdb.getVersion());
-
// make sure we have all the bindings, otherwise this is incomplete VDB
if (!isFullyConfiguredVDB(vdb)) {
// mark as in-active
@@ -409,6 +390,11 @@
vdb.setStatus(VDBStatus.ACTIVE);
DQPEmbeddedPlugin.logInfo("VDBService.vdb_active", new Object[] {vdb.getName(), vdb.getVersion()}); //$NON-NLS-1$
}
+
+ // Now save the VDB for future use using the Configuration.
+ // configuration may alter the connector bindings on VDB based
+ // upon preferences set.
+ saveVDB(vdb, exists ? ConfigurationService.NEXT_VDB_VERSION : vdb.getVersion());
DQPEmbeddedPlugin.logInfo("VDBService.vdb_deployed", new Object[] {vdb.getName(), vdb.getVersion()}); //$NON-NLS-1$
@@ -451,7 +437,7 @@
// holds true when DQP restarted. Also, this will be only the case
// when shared binding is used.
def.addConnectorBinding(existing);
- updateDef(def,vdb);
+ saveVDB(vdb, vdb.getVersion());
}
}
}
@@ -498,8 +484,12 @@
throws MetaMatrixComponentException {
try {
+
+ URL vdbFile = availableVDBFiles.remove(vdbId(vdb));
+
+ Assertion.isNotNull(vdbFile);
+
// delete the def/vdb files
- URL vdbFile = getVDBLocation(vdb);
VDBConfigurationWriter.deleteVDB(vdb, vdbFile);
// Notify any listeners that vdb is deleted
@@ -507,7 +497,6 @@
// remove from local references.
loadedVDBs.remove(vdbId(vdb));
- availableVDBFiles.remove(vdbId(vdb));
VDBDefn def = vdb.getConfigurationDef();
@@ -585,7 +574,6 @@
}
// Save the new vdb/model defination into the persistent store.
- updateDef(def,vdb);
saveVDB(vdb, vdb.getVersion());
deleteOrphanedConnectorBindings(orphanBindings);
@@ -724,7 +712,6 @@
// all the deployed VDBs that are using this connector binding.
BasicVDBDefn def = vdb.getConfigurationDef();
def.addConnectorBinding(binding);
- updateDef(def,vdb);
// we may need to save the VDB's here..
saveVDB(vdb, vdb.getVersion());
@@ -978,7 +965,7 @@
// Find all the VDB File in the configuration
// Load them the available VDBs
- this.availableVDBFiles = loadVDBs();
+ loadVDBs();
// load the connector bindings
loadConnectorBindings(connectorBindings, connectorTypes);
@@ -1118,7 +1105,7 @@
* @throws ApplicationInitializationException
* @since 4.3
*/
- HashMap<VDBKey, URL> loadVDBs() throws ApplicationInitializationException{
+ void loadVDBs() throws ApplicationInitializationException{
// Get the files to load
HashMap<URL, VDBArchive> vdbFiles;
try {
@@ -1126,7 +1113,6 @@
} catch (MetaMatrixComponentException e) {
throw new ApplicationInitializationException(e);
}
- HashMap<VDBKey, URL> loadedVDBFiles = new HashMap<VDBKey, URL>();
for (URL vdbURL:vdbFiles.keySet()){
@@ -1134,21 +1120,25 @@
if (vdb != null) {
- // Check to make sure there are two identical VDBs with same version
- // being loaded into DQP
- if (loadedVDBs.get(vdbId(vdb)) != null) {
- throw new ApplicationInitializationException(DQPEmbeddedPlugin.Util.getString("EmbeddedConfigurationService.duplicate_vdb_found", new Object[] {vdbURL})); //$NON-NLS-1$
- }
-
- // add vdb to loaded VDBS
- loadedVDBs.put(vdbId(vdb), vdb);
- loadedVDBFiles.put(vdbId(vdb), vdbURL);
- DQPEmbeddedPlugin.logInfo("EmbeddedConfigurationService.loaded_vdb", new Object[] {vdbURL}); //$NON-NLS-1$
+ loadVDB(vdbURL, vdb);
}
}
- return loadedVDBFiles;
}
+ private void loadVDB(URL vdbURL, VDBArchive vdb)
+ throws ApplicationInitializationException {
+ // Check to make sure there are two identical VDBs with same version
+ // being loaded into DQP
+ if (loadedVDBs.get(vdbId(vdb)) != null) {
+ throw new ApplicationInitializationException(DQPEmbeddedPlugin.Util.getString("EmbeddedConfigurationService.duplicate_vdb_found", new Object[] {vdbURL})); //$NON-NLS-1$
+ }
+
+ // add vdb to loaded VDBS
+ loadedVDBs.put(vdbId(vdb), vdb);
+ availableVDBFiles.put(vdbId(vdb), vdbURL);
+ DQPEmbeddedPlugin.logInfo("EmbeddedConfigurationService.loaded_vdb", new Object[] {vdbURL}); //$NON-NLS-1$
+ }
+
protected File getDeployDir() {
File f = new File(getFullyQualifiedPath("deploy").getPath()); //$NON-NLS-1$
if (f.exists()) {
Modified: trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/services/EmbeddedDataService.java
===================================================================
--- trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/services/EmbeddedDataService.java 2009-07-13 16:25:41 UTC (rev 1121)
+++ trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/services/EmbeddedDataService.java 2009-07-13 18:34:07 UTC (rev 1122)
@@ -125,7 +125,7 @@
@Override
public ConnectorMetadata getConnectorMetadata(String vdbName,
- String vdbVersion, String modelName) throws MetaMatrixComponentException {
+ String vdbVersion, String modelName, Properties importProperties) throws MetaMatrixComponentException {
VDBService vdbService = (VDBService)this.lookupService(DQPServiceNames.VDB_SERVICE);
List<String> bindingNames = vdbService.getConnectorBindingNames(vdbName, vdbVersion, modelName);
if (bindingNames.isEmpty()) {
@@ -139,7 +139,7 @@
}
try {
- return mgr.getMetadata(modelName);
+ return mgr.getMetadata(modelName, importProperties);
} catch (ConnectorException e) {
throw new MetaMatrixComponentException(e);
}
Modified: trunk/embedded/src/test/java/com/metamatrix/dqp/embedded/services/TestEmbeddedConfigurationService.java
===================================================================
--- trunk/embedded/src/test/java/com/metamatrix/dqp/embedded/services/TestEmbeddedConfigurationService.java 2009-07-13 16:25:41 UTC (rev 1121)
+++ trunk/embedded/src/test/java/com/metamatrix/dqp/embedded/services/TestEmbeddedConfigurationService.java 2009-07-13 18:34:07 UTC (rev 1122)
@@ -152,7 +152,7 @@
VDBArchive vdb = service.getVDB("QT_Ora9DS", "1"); //$NON-NLS-1$ //$NON-NLS-2$
vdb.getConfigurationDef().setName("Foo"); //$NON-NLS-1$
vdb.getConfigurationDef().setVersion("2"); //$NON-NLS-1$
- assertTrue(service.getVDBLocation(vdb).toString().endsWith("dqp/config/Foo_2.vdb")); //$NON-NLS-1$
+ assertTrue(service.getNewVDBLocation(vdb).toString().endsWith("dqp/config/Foo_2.vdb")); //$NON-NLS-1$
}
public void testGetFileToSaveNewFile() throws Exception{
@@ -164,21 +164,10 @@
VDBArchive vdb = service.getVDB("QT_Ora9DS", "1"); //$NON-NLS-1$ //$NON-NLS-2$
vdb.getConfigurationDef().setName("Foo"); //$NON-NLS-1$
vdb.getConfigurationDef().setVersion("2"); //$NON-NLS-1$
- URL f = service.getVDBLocation(vdb);
+ URL f = service.getNewVDBLocation(vdb);
assertTrue(f.toString().endsWith("dqp/config/Foo_2.vdb")); //$NON-NLS-1$
}
- public void testGetFileAlreadyExisting() throws Exception{
- Properties p = EmbeddedTestUtil.getProperties();
- service.setUserPreferences(p);
- service.initializeService(p);
-
- VDBArchive vdb = service.getVDB("QT_Ora9DS", "1"); //$NON-NLS-1$ //$NON-NLS-2$
-
- URL f = service.getVDBLocation(vdb);
- assertTrue(f.getPath().endsWith("dqp/config/QT_Ora9DS.vdb")); //$NON-NLS-1$
- }
-
public void testGetFullyQualifiedPath() throws Exception{
Properties p = EmbeddedTestUtil.getProperties();
service.setUserPreferences(p);
Modified: trunk/engine/src/main/java/com/metamatrix/dqp/service/DataService.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/dqp/service/DataService.java 2009-07-13 16:25:41 UTC (rev 1121)
+++ trunk/engine/src/main/java/com/metamatrix/dqp/service/DataService.java 2009-07-13 18:34:07 UTC (rev 1122)
@@ -24,6 +24,7 @@
import java.util.Collection;
import java.util.List;
+import java.util.Properties;
import org.teiid.connector.metadata.runtime.ConnectorMetadata;
import org.teiid.dqp.internal.process.DQPWorkContext;
@@ -84,10 +85,11 @@
* @param vdbName
* @param vdbVersion
* @param modelName
+ * @param importProperties
* @return
* @throws MetaMatrixComponentException
*/
- ConnectorMetadata getConnectorMetadata(String vdbName, String vdbVersion, String modelName) throws MetaMatrixComponentException;
+ ConnectorMetadata getConnectorMetadata(String vdbName, String vdbVersion, String modelName, Properties importProperties) throws MetaMatrixComponentException;
/**
* Start the Connector Binding by the name given, if it is already added and not srarted.
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 2009-07-13 16:25:41 UTC (rev 1121)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorManager.java 2009-07-13 18:34:07 UTC (rev 1122)
@@ -146,10 +146,10 @@
return classloader;
}
- public ConnectorMetadata getMetadata(String modelName) throws ConnectorException {
+ public ConnectorMetadata getMetadata(String modelName, Properties importProperties) throws ConnectorException {
MetadataFactory factory;
try {
- factory = new MetadataFactory(modelName, this.metadataService.getBuiltinDatatypes());
+ factory = new MetadataFactory(modelName, this.metadataService.getBuiltinDatatypes(), importProperties);
} catch (MetaMatrixComponentException e) {
throw new ConnectorException(e);
}
Modified: trunk/engine/src/test/java/com/metamatrix/dqp/service/AutoGenDataService.java
===================================================================
--- trunk/engine/src/test/java/com/metamatrix/dqp/service/AutoGenDataService.java 2009-07-13 16:25:41 UTC (rev 1121)
+++ trunk/engine/src/test/java/com/metamatrix/dqp/service/AutoGenDataService.java 2009-07-13 18:34:07 UTC (rev 1122)
@@ -28,6 +28,7 @@
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
+import java.util.Properties;
import org.teiid.connector.metadata.runtime.ConnectorMetadata;
import org.teiid.dqp.internal.datamgr.impl.ConnectorWorkItem;
@@ -249,7 +250,7 @@
@Override
public ConnectorMetadata getConnectorMetadata(String vdbName,
- String vdbVersion, String modelName) {
+ String vdbVersion, String modelName, Properties importProperties) {
throw new UnsupportedOperationException();
}
Modified: trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDataTierManager.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDataTierManager.java 2009-07-13 16:25:41 UTC (rev 1121)
+++ trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDataTierManager.java 2009-07-13 18:34:07 UTC (rev 1122)
@@ -394,7 +394,7 @@
}
@Override
public ConnectorMetadata getConnectorMetadata(String vdbName,
- String vdbVersion, String modelName) {
+ String vdbVersion, String modelName, Properties importProperties) {
throw new UnsupportedOperationException();
}
}
Modified: trunk/metadata/src/main/java/org/teiid/metadata/ConnectorMetadataStore.java
===================================================================
--- trunk/metadata/src/main/java/org/teiid/metadata/ConnectorMetadataStore.java 2009-07-13 16:25:41 UTC (rev 1121)
+++ trunk/metadata/src/main/java/org/teiid/metadata/ConnectorMetadataStore.java 2009-07-13 18:34:07 UTC (rev 1122)
@@ -44,18 +44,16 @@
import com.metamatrix.api.exception.MetaMatrixComponentException;
import com.metamatrix.api.exception.query.QueryMetadataException;
import com.metamatrix.core.MetaMatrixCoreException;
-import com.metamatrix.dqp.service.DataService;
import com.metamatrix.query.metadata.MetadataStore;
-import com.metamatrix.vdb.runtime.VDBKey;
public class ConnectorMetadataStore implements MetadataStore {
private ConnectorMetadata metadata;
private String modelName;
- public ConnectorMetadataStore(VDBKey key, String modelName, DataService dataService) throws MetaMatrixComponentException {
+ public ConnectorMetadataStore(String modelName, ConnectorMetadata metadata) {
this.modelName = modelName;
- this.metadata = dataService.getConnectorMetadata(key.getName(), key.getVersion(), modelName);
+ this.metadata = metadata;
}
@Override
Modified: trunk/metadata/src/main/java/org/teiid/metadata/QueryMetadataCache.java
===================================================================
--- trunk/metadata/src/main/java/org/teiid/metadata/QueryMetadataCache.java 2009-07-13 16:25:41 UTC (rev 1121)
+++ trunk/metadata/src/main/java/org/teiid/metadata/QueryMetadataCache.java 2009-07-13 18:34:07 UTC (rev 1122)
@@ -23,7 +23,12 @@
package org.teiid.metadata;
import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
@@ -37,6 +42,7 @@
import org.teiid.connector.metadata.MetadataConnectorConstants;
import org.teiid.connector.metadata.MultiObjectSource;
import org.teiid.connector.metadata.PropertyFileObjectSource;
+import org.teiid.connector.metadata.runtime.ConnectorMetadata;
import org.teiid.connector.metadata.runtime.DatatypeRecordImpl;
import org.teiid.metadata.index.IndexMetadataStore;
@@ -167,7 +173,35 @@
Set<String> modelNames = runtimeSelector.getConnectorMetadataModelNames();
if (!modelNames.isEmpty()) {
for (String modelName : modelNames) {
- metadataStores.add(new ConnectorMetadataStore(vdbID, modelName, dataService));
+ ConnectorMetadata connectorMetadata = null;
+ String savedMetadata = "/META-INF/" + modelName.toLowerCase() + ".ser"; //$NON-NLS-1$ //$NON-NLS-2$
+ if (runtimeSelector.cacheConnectorMetadata()) {
+ File f = runtimeSelector.getFile(savedMetadata);
+ if (f != null) {
+ ObjectInputStream ois = null;
+ try {
+ ois = new ObjectInputStream(new FileInputStream(f));
+ connectorMetadata = (ConnectorMetadata)ois.readObject();
+ } catch (Exception e) {
+
+ } finally {
+ if (ois != null) {
+ ois.close();
+ }
+ }
+ }
+ }
+ if (connectorMetadata == null) {
+ connectorMetadata = dataService.getConnectorMetadata(vdbID.getName(), vdbID.getVersion(), modelName, runtimeSelector.getModelInfo(modelName).getProperties());
+ }
+ if (runtimeSelector.cacheConnectorMetadata()) {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ ObjectOutputStream oos = new ObjectOutputStream(baos);
+ oos.writeObject(connectorMetadata);
+ oos.close();
+ runtimeSelector.saveFile(new ByteArrayInputStream(baos.toByteArray()), savedMetadata);
+ }
+ metadataStores.add(new ConnectorMetadataStore(modelName, connectorMetadata));
}
}
metadataStores.add(indexMetadataStore);
Modified: trunk/server/src/main/java/com/metamatrix/server/dqp/service/PlatformDataService.java
===================================================================
--- trunk/server/src/main/java/com/metamatrix/server/dqp/service/PlatformDataService.java 2009-07-13 16:25:41 UTC (rev 1121)
+++ trunk/server/src/main/java/com/metamatrix/server/dqp/service/PlatformDataService.java 2009-07-13 18:34:07 UTC (rev 1122)
@@ -234,7 +234,7 @@
@Override
public ConnectorMetadata getConnectorMetadata(String vdbName,
- String vdbVersion, String modelName) {
+ String vdbVersion, String modelName, Properties importProperties) {
throw new UnsupportedOperationException();
}
Modified: trunk/server/src/test/java/com/metamatrix/server/admin/apiimpl/FakeModelInfo.java
===================================================================
--- trunk/server/src/test/java/com/metamatrix/server/admin/apiimpl/FakeModelInfo.java 2009-07-13 16:25:41 UTC (rev 1121)
+++ trunk/server/src/test/java/com/metamatrix/server/admin/apiimpl/FakeModelInfo.java 2009-07-13 18:34:07 UTC (rev 1122)
@@ -27,6 +27,7 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Properties;
import java.util.Set;
import com.metamatrix.common.util.ByteArrayHelper;
@@ -266,4 +267,9 @@
public String getPath() {
return null;
}
+
+ @Override
+ public Properties getProperties() {
+ return new Properties();
+ }
}
Modified: trunk/test-integration/src/test/resources/vdbless/ConfigurationInfo.def
===================================================================
--- trunk/test-integration/src/test/resources/vdbless/ConfigurationInfo.def 2009-07-13 16:25:41 UTC (rev 1121)
+++ trunk/test-integration/src/test/resources/vdbless/ConfigurationInfo.def 2009-07-13 18:34:07 UTC (rev 1122)
@@ -2,8 +2,8 @@
<VDB>
<VDBInfo>
<Property Name="Name" Value="VDBLess" />
- <Property Name="Version" Value="3" />
- <Property Name="UseConnectorMetadata" Value="true" />
+ <Property Name="Version" Value="2" />
+ <Property Name="UseConnectorMetadata" Value="cached" />
</VDBInfo>
<Model>
<Property Name="Name" Value="SummitData" />
@@ -13,9 +13,13 @@
</Model>
<Model>
<Property Name="Name" Value="Derby" />
+
<ConnectorBindings>
<Connector Name="Derby Connector" />
</ConnectorBindings>
+
+ <!-- import settings -->
+ <Property Name="importer.useFullSchemaName" Value="false"/>
</Model>
<ConnectorBindings>
<Connector Name="Text Connector" ComponentType="Text File Connector">
@@ -28,9 +32,6 @@
<Properties>
<Property Name="Immutable">true</Property>
<Property Name="URL">jdbc:derby:jar:(src/test/resources/derby/sample.zip)bqt</Property>
-
- <!-- import settings -->
- <Property Name="importer.useFullSchemaName">false</Property>
</Properties>
</Connector>
</ConnectorBindings>
15 years, 5 months
teiid SVN: r1121 - trunk/build/kit-embedded/bin.
by teiid-commits@lists.jboss.org
Author: rareddy
Date: 2009-07-13 12:25:41 -0400 (Mon, 13 Jul 2009)
New Revision: 1121
Modified:
trunk/build/kit-embedded/bin/run.bat
Log:
TEIID-259: fix script error
Modified: trunk/build/kit-embedded/bin/run.bat
===================================================================
--- trunk/build/kit-embedded/bin/run.bat 2009-07-11 15:27:48 UTC (rev 1120)
+++ trunk/build/kit-embedded/bin/run.bat 2009-07-13 16:25:41 UTC (rev 1121)
@@ -48,7 +48,7 @@
rem set JAVA_OPTS=%JAVA_OPTS% -Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y
rem Generate teiid.keystore file
-set KEYSTORE_FILE = %TEIID_HOME%\deploy\teiid.keystore
+set KEYSTORE_FILE=%TEIID_HOME%\deploy\teiid.keystore
if not exist %KEYSTORE_FILE% (
%JAVA%" -classpath "%TEIID_CLASSPATH%" com.metamatrix.common.util.crypto.CryptoUtil -genkey %KEYSTORE_FILE%
echo A new key with keystore generated at %KEYSTORE_FILE%
15 years, 5 months
teiid SVN: r1120 - in trunk: connector-api/src/main/java/org/teiid/connector/metadata/runtime and 6 other directories.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2009-07-11 11:27:48 -0400 (Sat, 11 Jul 2009)
New Revision: 1120
Added:
trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/BaseColumn.java
Modified:
trunk/client-jdbc/src/main/java/com/metamatrix/jdbc/MMDatabaseMetaData.java
trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/ColumnRecordImpl.java
trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/ColumnSetRecordImpl.java
trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/ConnectorMetadata.java
trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/MetadataFactory.java
trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/ProcedureParameterRecordImpl.java
trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/ProcedureRecordImpl.java
trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/TableRecordImpl.java
trunk/connector-api/src/main/resources/org/teiid/connector/i18n.properties
trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/JDBCMetdataProcessor.java
trunk/engine/src/main/java/com/metamatrix/query/metadata/MetadataStore.java
trunk/metadata/src/main/java/org/teiid/metadata/CompositeMetadataStore.java
trunk/metadata/src/main/java/org/teiid/metadata/ConnectorMetadataStore.java
trunk/metadata/src/main/java/org/teiid/metadata/TransformationMetadata.java
trunk/metadata/src/main/java/org/teiid/metadata/index/IndexMetadataStore.java
trunk/metadata/src/main/java/org/teiid/metadata/index/RecordFactory.java
trunk/test-integration/src/test/java/com/metamatrix/server/integration/TestVDBLessExecution.java
Log:
TEIID-714 TEIID-687 TEIID-685 TEIID-684 adding the ability to import procedures and fixing the DatabaseMetadata.getProcedures call.
Modified: trunk/client-jdbc/src/main/java/com/metamatrix/jdbc/MMDatabaseMetaData.java
===================================================================
--- trunk/client-jdbc/src/main/java/com/metamatrix/jdbc/MMDatabaseMetaData.java 2009-07-10 20:48:29 UTC (rev 1119)
+++ trunk/client-jdbc/src/main/java/com/metamatrix/jdbc/MMDatabaseMetaData.java 2009-07-11 15:27:48 UTC (rev 1120)
@@ -264,7 +264,7 @@
.append(RUNTIME_MODEL.VIRTUAL_MODEL_NAME)
.append(".Procedures as p CROSS JOIN ") //$NON-NLS-1$
.append(RUNTIME_MODEL.VIRTUAL_MODEL_NAME)
- .append(".VirtualDatabases v WHERE UCASE(v.Name)").append(LIKE_ESCAPE).append("AND UCASE(p.Name)").append(LIKE_ESCAPE) //$NON-NLS-1$//$NON-NLS-2$
+ .append(".VirtualDatabases v WHERE UCASE(v.Name)").append(LIKE_ESCAPE).append("AND UCASE(p.FullName)").append(LIKE_ESCAPE) //$NON-NLS-1$//$NON-NLS-2$
.append(" ORDER BY PROCEDURE_SCHEM, PROCEDURE_NAME").toString(); //$NON-NLS-1$
private final static String QUERY_PROCEDURE_COLUMNS =
Added: trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/BaseColumn.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/BaseColumn.java (rev 0)
+++ trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/BaseColumn.java 2009-07-11 15:27:48 UTC (rev 1120)
@@ -0,0 +1,118 @@
+/*
+ * 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.connector.metadata.runtime;
+
+public class BaseColumn extends AbstractMetadataRecord {
+
+ private String datatypeUUID;
+ private String runtimeType;
+ private Object defaultValue;
+ private int length;
+ private int scale;
+ private int radix;
+ private int precision;
+ private int nullType;
+ private int position;
+ private DatatypeRecordImpl datatype;
+
+ public Object getDefaultValue() {
+ return defaultValue;
+ }
+
+ public String getDatatypeUUID() {
+ return datatypeUUID;
+ }
+
+ public String getRuntimeType() {
+ return runtimeType;
+ }
+
+ public int getLength() {
+ return length;
+ }
+
+ public int getPrecision() {
+ return precision;
+ }
+
+ public int getScale() {
+ return scale;
+ }
+
+ public int getRadix() {
+ return radix;
+ }
+
+ public int getPosition() {
+ return position;
+ }
+
+ public int getNullType() {
+ return nullType;
+ }
+
+ public void setLength(int i) {
+ length = i;
+ }
+
+ public void setPrecision(int i) {
+ precision = i;
+ }
+
+ public void setScale(int i) {
+ scale = i;
+ }
+
+ public void setRadix(int i) {
+ radix = i;
+ }
+
+ public void setNullType(int i) {
+ nullType = i;
+ }
+
+ public void setPosition(int i) {
+ position = i;
+ }
+
+ public void setRuntimeType(String string) {
+ runtimeType = string;
+ }
+
+ public void setDatatypeUUID(String string) {
+ datatypeUUID = string;
+ }
+
+ public void setDefaultValue(Object object) {
+ defaultValue = object;
+ }
+
+ public DatatypeRecordImpl getDatatype() {
+ return datatype;
+ }
+
+ public void setDatatype(DatatypeRecordImpl datatype) {
+ this.datatype = datatype;
+ }
+
+}
Property changes on: trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/BaseColumn.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/ColumnRecordImpl.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/ColumnRecordImpl.java 2009-07-10 20:48:29 UTC (rev 1119)
+++ trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/ColumnRecordImpl.java 2009-07-11 15:27:48 UTC (rev 1120)
@@ -25,10 +25,9 @@
/**
* ColumnRecordImpl
*/
-public class ColumnRecordImpl extends AbstractMetadataRecord implements Comparable<ColumnRecordImpl> {
+public class ColumnRecordImpl extends BaseColumn implements Comparable<ColumnRecordImpl> {
- private String datatypeUUID;
- private boolean selectable;
+ private boolean selectable = true;
private boolean updatable;
private boolean autoIncrementable;
private boolean caseSensitive;
@@ -37,22 +36,13 @@
private boolean fixedLength;
private boolean tranformationInputParameter;
private int searchType;
- private Object defaultValue;
private Object minValue;
private Object maxValue;
- private int length;
- private int scale;
- private int nullType;
- private String runtimeTypeName;
private String nativeType;
private String format;
- private int precision;
private int charOctetLength;
- private int position;
- private int radix;
- private int distinctValues;
- private int nullValues;
- private DatatypeRecordImpl datatype;
+ private int distinctValues = -1;
+ private int nullValues = -1;
//==================================================================================
// I N T E R F A C E M E T H O D S
@@ -71,34 +61,6 @@
}
/* (non-Javadoc)
- * @see com.metamatrix.modeler.core.metadata.runtime.ColumnRecord#getRuntimeType()
- */
- public String getRuntimeType() {
- return runtimeTypeName;
- }
-
- /* (non-Javadoc)
- * @see com.metamatrix.modeler.core.metadata.runtime.ColumnRecord#getDatatypeUUID()
- */
- public String getDatatypeUUID() {
- return datatypeUUID;
- }
-
- /* (non-Javadoc)
- * @see com.metamatrix.modeler.core.metadata.runtime.ColumnRecord#getDefaultValue()
- */
- public Object getDefaultValue() {
- return defaultValue;
- }
-
- /* (non-Javadoc)
- * @see com.metamatrix.modeler.core.metadata.runtime.ColumnRecord#getLength()
- */
- public int getLength() {
- return length;
- }
-
- /* (non-Javadoc)
* @see com.metamatrix.modeler.core.metadata.runtime.ColumnRecord#getMaxValue()
*/
public Object getMaxValue() {
@@ -113,27 +75,6 @@
}
/* (non-Javadoc)
- * @see com.metamatrix.modeler.core.metadata.runtime.ColumnRecord#getPrecision()
- */
- public int getPrecision() {
- return precision;
- }
-
- /* (non-Javadoc)
- * @see com.metamatrix.modeler.core.metadata.runtime.ColumnRecord#getPosition()
- */
- public int getPosition() {
- return position;
- }
-
- /* (non-Javadoc)
- * @see com.metamatrix.modeler.core.metadata.runtime.ColumnRecord#getScale()
- */
- public int getScale() {
- return scale;
- }
-
- /* (non-Javadoc)
* @see com.metamatrix.modeler.core.metadata.runtime.ColumnRecord#getSearchTye()
*/
public int getSearchType() {
@@ -183,13 +124,6 @@
return tranformationInputParameter;
}
- /**
- * @return
- */
- public int getNullType() {
- return nullType;
- }
-
/* (non-Javadoc)
* @see com.metamatrix.modeler.core.metadata.runtime.ColumnRecord#isSelectable()
*/
@@ -211,13 +145,6 @@
return updatable;
}
- /* (non-Javadoc)
- * @see com.metamatrix.modeler.core.metadata.runtime.ColumnRecord#getRadix()
- */
- public int getRadix() {
- return radix;
- }
-
/**
* @see com.metamatrix.modeler.core.metadata.runtime.ColumnRecord#getNativeType()
* @since 4.2
@@ -275,27 +202,6 @@
}
/**
- * @param string
- */
- public void setRuntimeType(String string) {
- runtimeTypeName = string;
- }
-
- /**
- * @param string
- */
- public void setDatatypeUUID(String string) {
- datatypeUUID = string;
- }
-
- /**
- * @param object
- */
- public void setDefaultValue(Object object) {
- defaultValue = object;
- }
-
- /**
* @param b
*/
public void setFixedLength(boolean b) {
@@ -303,20 +209,6 @@
}
/**
- * @param i
- */
- public void setLength(int i) {
- length = i;
- }
-
- /**
- * @param i
- */
- public void setNullType(int i) {
- nullType = i;
- }
-
- /**
* @param object
*/
public void setMaxValue(Object object) {
@@ -331,27 +223,6 @@
}
/**
- * @param i
- */
- public void setPrecision(int i) {
- precision = i;
- }
-
- /**
- * @param i
- */
- public void setPosition(int i) {
- position = i;
- }
-
- /**
- * @param i
- */
- public void setScale(int i) {
- scale = i;
- }
-
- /**
* @param s
*/
public void setSearchType(int s) {
@@ -380,13 +251,6 @@
}
/**
- * @param i
- */
- public void setRadix(int i) {
- radix = i;
- }
-
- /**
* @param string
*/
public void setFormat(String string) {
@@ -424,14 +288,6 @@
this.tranformationInputParameter = b;
}
- public DatatypeRecordImpl getDatatype() {
- return this.datatype;
- }
-
- public void setDatatype(DatatypeRecordImpl datatype) {
- this.datatype = datatype;
- }
-
public String toString() {
StringBuffer sb = new StringBuffer(100);
sb.append(getClass().getSimpleName());
Modified: trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/ColumnSetRecordImpl.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/ColumnSetRecordImpl.java 2009-07-10 20:48:29 UTC (rev 1119)
+++ trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/ColumnSetRecordImpl.java 2009-07-11 15:27:48 UTC (rev 1120)
@@ -53,29 +53,34 @@
* Retrieves a list of ColumnRecordImpls containing only id and position information (used by System Tables)
*/
public List<ColumnRecordImpl> getColumnIdEntries() {
- if (columns != null) {
- final List<ColumnRecordImpl> entryRecords = new ArrayList<ColumnRecordImpl>(columns.size());
- for (int i = 0, n = columns.size(); i < n; i++) {
- ColumnRecordImpl columnRecordImpl = columns.get(i);
- final int position = i+1;
- ColumnRecordImpl impl = new ColumnRecordImpl();
- entryRecords.add( impl );
- impl.setUUID(columnRecordImpl.getUUID());
- impl.setPosition(position);
- }
- return entryRecords;
- }
- final List<ColumnRecordImpl> entryRecords = new ArrayList<ColumnRecordImpl>(columnIDs.size());
- for (int i = 0, n = columnIDs.size(); i < n; i++) {
- final String uuid = columnIDs.get(i);
- final int position = i+1;
+ int count = getColumnCount();
+ final List<ColumnRecordImpl> entryRecords = new ArrayList<ColumnRecordImpl>(count);
+ for (int i = 0; i < count; i++) {
+ final String uuid = getUUID(i);
ColumnRecordImpl impl = new ColumnRecordImpl();
entryRecords.add( impl );
impl.setUUID(uuid);
- impl.setPosition(position);
+ impl.setPosition(i+1);
}
return entryRecords;
}
+
+ private int getColumnCount() {
+ if (columnIDs != null) {
+ return columnIDs.size();
+ }
+ if (columns != null) {
+ return columns.size();
+ }
+ return 0;
+ }
+
+ private String getUUID(int index) {
+ if (columnIDs != null) {
+ return columnIDs.get(index);
+ }
+ return columns.get(index).getUUID();
+ }
/**
* @see com.metamatrix.modeler.core.metadata.runtime.ColumnSetRecord#getType()
Modified: trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/ConnectorMetadata.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/ConnectorMetadata.java 2009-07-10 20:48:29 UTC (rev 1119)
+++ trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/ConnectorMetadata.java 2009-07-11 15:27:48 UTC (rev 1120)
@@ -1,3 +1,25 @@
+/*
+ * 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.connector.metadata.runtime;
import java.io.Serializable;
@@ -5,14 +27,35 @@
public interface ConnectorMetadata extends Serializable {
+ /**
+ * Get the model that this metadata represents. The model name is treated as
+ * a top level schema for all source metadata.
+ * @return
+ */
ModelRecordImpl getModel();
+ /**
+ * Get the tables defined for this model
+ * @return
+ */
Collection<TableRecordImpl> getTables();
+ /**
+ * Get the procedures defined for this model
+ * @return
+ */
Collection<ProcedureRecordImpl> getProcedures();
+ /**
+ * Get the annotations defined for this model
+ * @return
+ */
Collection<AnnotationRecordImpl> getAnnotations();
+ /**
+ * Get the extension properties defined for this model
+ * @return
+ */
Collection<PropertyRecordImpl> getProperties();
//costing
Modified: trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/MetadataFactory.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/MetadataFactory.java 2009-07-10 20:48:29 UTC (rev 1119)
+++ trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/MetadataFactory.java 2009-07-11 15:27:48 UTC (rev 1120)
@@ -24,12 +24,16 @@
import java.util.ArrayList;
import java.util.Collection;
+import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import org.teiid.connector.DataPlugin;
import org.teiid.connector.api.ConnectorException;
+import org.teiid.connector.api.TypeFacility;
+import org.teiid.connector.metadata.runtime.MetadataConstants.PARAMETER_TYPES;
import org.teiid.connector.metadata.runtime.MetadataConstants.RECORD_TYPE;
import com.metamatrix.core.id.UUIDFactory;
@@ -46,6 +50,8 @@
private Collection<AnnotationRecordImpl> annotations = new ArrayList<AnnotationRecordImpl>();
private Collection<PropertyRecordImpl> properties = new ArrayList<PropertyRecordImpl>();
+ private Set<String> uniqueNames = new HashSet<String>();
+
public MetadataFactory(String modelName, Map<String, DatatypeRecordImpl> dataTypes) {
this.dataTypes = dataTypes;
model = new ModelRecordImpl();
@@ -56,6 +62,7 @@
setUUID(model);
}
+ @Override
public ModelRecordImpl getModel() {
return model;
}
@@ -82,19 +89,26 @@
private void setUUID(AbstractMetadataRecord record) {
record.setUUID(factory.create().toString());
}
-
- private static void setValuesUsingParent(String name,
- AbstractMetadataRecord parent, AbstractMetadataRecord child) {
+
+ private void setValuesUsingParent(String name,
+ AbstractMetadataRecord parent, AbstractMetadataRecord child) throws ConnectorException {
child.setFullName(parent.getFullName() + "." + name); //$NON-NLS-1$
child.setParentUUID(parent.getUUID());
+ if (!uniqueNames.add(child.getRecordType() + "/" + child.getFullName())) { //$NON-NLS-1$
+ throw new ConnectorException(DataPlugin.Util.getString("MetadataFactory.duplicate_name", child)); //$NON-NLS-1$
+ }
}
- public TableRecordImpl addTable(String name) {
+ /**
+ * Add a table with the given name to the model.
+ * @param name
+ * @return
+ * @throws ConnectorException
+ */
+ public TableRecordImpl addTable(String name) throws ConnectorException {
TableRecordImpl table = new TableRecordImpl();
setValuesUsingParent(name, model, table);
table.setRecordType(RECORD_TYPE.TABLE);
- table.setModel(model);
- table.setTableType(MetadataConstants.TABLE_TYPES.TABLE_TYPE);
table.setColumns(new LinkedList<ColumnRecordImpl>());
table.setAccessPatterns(new LinkedList<ColumnSetRecordImpl>());
table.setIndexes(new LinkedList<ColumnSetRecordImpl>());
@@ -106,34 +120,51 @@
return table;
}
- public ColumnRecordImpl addColumn(String name, String type, TableRecordImpl table) throws ConnectorException {
+ /**
+ * Adds a column to the table with the given name and type.
+ * @param name
+ * @param type should be one of {@link TypeFacility.RUNTIME_NAMES}
+ * @param table
+ * @return
+ * @throws ConnectorException
+ */
+ public ColumnRecordImpl addColumn(String name, String type, ColumnSetRecordImpl table) throws ConnectorException {
ColumnRecordImpl column = new ColumnRecordImpl();
setValuesUsingParent(name, table, column);
column.setRecordType(RECORD_TYPE.COLUMN);
table.getColumns().add(column);
- column.setPosition(table.getColumns().size());
- column.setNullValues(-1);
- column.setDistinctValues(-1);
+ column.setPosition(table.getColumns().size()); //1 based indexing
+ DatatypeRecordImpl datatype = setColumnType(type, column);
+ column.setCaseSensitive(datatype.isCaseSensitive());
+ column.setAutoIncrementable(datatype.isAutoIncrement());
+ column.setSigned(datatype.isSigned());
+ column.setExtensionProperties(new LinkedList<PropertyRecordImpl>());
+ setUUID(column);
+ return column;
+ }
+
+ private DatatypeRecordImpl setColumnType(String type,
+ BaseColumn column) throws ConnectorException {
DatatypeRecordImpl datatype = dataTypes.get(type);
if (datatype == null) {
throw new ConnectorException(DataPlugin.Util.getString("MetadataFactory.unknown_datatype", type)); //$NON-NLS-1$
}
column.setDatatype(datatype);
- column.setCaseSensitive(datatype.isCaseSensitive());
- column.setAutoIncrementable(datatype.isAutoIncrement());
column.setDatatypeUUID(datatype.getUUID());
column.setLength(datatype.getLength());
column.setNullType(datatype.getNullType());
column.setPrecision(datatype.getPrecisionLength());
column.setRadix(datatype.getRadix());
column.setRuntimeType(datatype.getRuntimeTypeName());
- column.setSelectable(true);
- column.setSigned(datatype.isSigned());
- column.setExtensionProperties(new LinkedList<PropertyRecordImpl>());
- setUUID(column);
- return column;
+ return datatype;
}
+ /**
+ * Add an annotation of description to a record. Only one annotation should be added per record.
+ * @param annotation
+ * @param record
+ * @return
+ */
public AnnotationRecordImpl addAnnotation(String annotation, AbstractMetadataRecord record) {
AnnotationRecordImpl annotationRecordImpl = new AnnotationRecordImpl();
annotationRecordImpl.setRecordType(RECORD_TYPE.ANNOTATION);
@@ -145,24 +176,41 @@
return annotationRecordImpl;
}
+ /**
+ * Adds a primary key to the given table. The column names should be in key order.
+ * @param name
+ * @param columnNames
+ * @param table
+ * @return
+ * @throws ConnectorException
+ */
public ColumnSetRecordImpl addPrimaryKey(String name, List<String> columnNames, TableRecordImpl table) throws ConnectorException {
ColumnSetRecordImpl primaryKey = new ColumnSetRecordImpl(MetadataConstants.KEY_TYPES.PRIMARY_KEY);
primaryKey.setColumns(new ArrayList<ColumnRecordImpl>(columnNames.size()));
primaryKey.setRecordType(RECORD_TYPE.PRIMARY_KEY);
+ setValuesUsingParent(name, table, primaryKey);
setUUID(primaryKey);
- setValuesUsingParent(name, table, primaryKey);
assignColumns(columnNames, table, primaryKey);
table.setPrimaryKey(primaryKey);
table.setPrimaryKeyID(primaryKey.getUUID());
return primaryKey;
}
+ /**
+ * Adds an index or unique key constraint to the given table.
+ * @param name
+ * @param nonUnique true indicates that an index is being added.
+ * @param columnNames
+ * @param table
+ * @return
+ * @throws ConnectorException
+ */
public ColumnSetRecordImpl addIndex(String name, boolean nonUnique, List<String> columnNames, TableRecordImpl table) throws ConnectorException {
ColumnSetRecordImpl index = new ColumnSetRecordImpl(nonUnique?MetadataConstants.KEY_TYPES.INDEX:MetadataConstants.KEY_TYPES.UNIQUE_KEY);
index.setColumns(new ArrayList<ColumnRecordImpl>(columnNames.size()));
index.setRecordType(nonUnique?MetadataConstants.RECORD_TYPE.INDEX:MetadataConstants.RECORD_TYPE.UNIQUE_KEY);
+ setValuesUsingParent(name, table, index);
setUUID(index);
- setValuesUsingParent(name, table, index);
assignColumns(columnNames, table, index);
if (nonUnique) {
table.getIndexes().add(index);
@@ -172,12 +220,21 @@
return index;
}
+ /**
+ * Adds a foreign key to the given table. The column names should be in key order.
+ * @param name
+ * @param columnNames
+ * @param pkTable
+ * @param table
+ * @return
+ * @throws ConnectorException
+ */
public ForeignKeyRecordImpl addForiegnKey(String name, List<String> columnNames, TableRecordImpl pkTable, TableRecordImpl table) throws ConnectorException {
ForeignKeyRecordImpl foreignKey = new ForeignKeyRecordImpl();
foreignKey.setColumns(new ArrayList<ColumnRecordImpl>(columnNames.size()));
foreignKey.setRecordType(RECORD_TYPE.FOREIGN_KEY);
+ setValuesUsingParent(name, table, foreignKey);
setUUID(foreignKey);
- setValuesUsingParent(name, table, foreignKey);
foreignKey.setPrimaryKey(pkTable.getPrimaryKey());
foreignKey.setUniqueKeyID(pkTable.getPrimaryKeyID());
assignColumns(columnNames, table, foreignKey);
@@ -185,11 +242,19 @@
return foreignKey;
}
- public PropertyRecordImpl addExtensionProperty(String name, String value, AbstractMetadataRecord record) {
+ /**
+ * Adds an extension property to the given record.
+ * @param name
+ * @param value
+ * @param record
+ * @return
+ * @throws ConnectorException
+ */
+ public PropertyRecordImpl addExtensionProperty(String name, String value, AbstractMetadataRecord record) throws ConnectorException {
PropertyRecordImpl property = new PropertyRecordImpl();
property.setRecordType(RECORD_TYPE.PROPERTY);
+ setValuesUsingParent(name, record, property);
setUUID(property);
- setValuesUsingParent(name, record, property);
property.setPropertyName(name);
property.setPropertyValue(value);
properties.add(property);
@@ -199,6 +264,63 @@
record.getExtensionProperties().add(property);
return property;
}
+
+ /**
+ * Add a procedure with the given name to the model.
+ * @param name
+ * @return
+ * @throws ConnectorException
+ */
+ public ProcedureRecordImpl addProcedure(String name) throws ConnectorException {
+ ProcedureRecordImpl procedure = new ProcedureRecordImpl();
+ procedure.setRecordType(RECORD_TYPE.CALLABLE);
+ setValuesUsingParent(name, this.model, procedure);
+ setUUID(procedure);
+ procedure.setParameters(new LinkedList<ProcedureParameterRecordImpl>());
+ this.procedures.add(procedure);
+ return procedure;
+ }
+
+ /**
+ *
+ * @param name
+ * @param type should be one of {@link PARAMETER_TYPES}
+ * @param parameterType should be one of {@link TypeFacility.RUNTIME_NAMES}
+ * @param procedure
+ * @return
+ * @throws ConnectorException
+ */
+ public ProcedureParameterRecordImpl addProcedureParameter(String name, String type, short parameterType, ProcedureRecordImpl procedure) throws ConnectorException {
+ ProcedureParameterRecordImpl param = new ProcedureParameterRecordImpl();
+ param.setRecordType(RECORD_TYPE.CALLABLE_PARAMETER);
+ setValuesUsingParent(name, procedure, param);
+ setUUID(param);
+ param.setType(parameterType);
+ setColumnType(type, param);
+ procedure.getParameters().add(param);
+ param.setPosition(procedure.getParameters().size()); //1 based indexing
+ return param;
+ }
+
+ /**
+ *
+ * @param name
+ * @param type should be one of {@link TypeFacility.RUNTIME_NAMES}
+ * @param procedure
+ * @return
+ * @throws ConnectorException
+ */
+ public ColumnRecordImpl addProcedureResultSetColumn(String name, String type, ProcedureRecordImpl procedure) throws ConnectorException {
+ if (procedure.getResultSet() == null) {
+ ColumnSetRecordImpl resultSet = new ColumnSetRecordImpl((short)-1);
+ resultSet.setRecordType(RECORD_TYPE.RESULT_SET);
+ setValuesUsingParent("RESULT_SET", procedure, resultSet); //$NON-NLS-1$
+ setUUID(resultSet);
+ procedure.setResultSet(resultSet);
+ procedure.setResultSetID(resultSet.getUUID());
+ }
+ return addColumn(name, type, procedure.getResultSet());
+ }
private void assignColumns(List<String> columnNames, TableRecordImpl table,
ColumnSetRecordImpl columns) throws ConnectorException {
@@ -212,7 +334,7 @@
}
}
if (!match) {
- throw new ConnectorException("No column found with name " + columnName);
+ throw new ConnectorException(DataPlugin.Util.getString("MetadataFactory.no_column_found", columnName)); //$NON-NLS-1$
}
}
}
Modified: trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/ProcedureParameterRecordImpl.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/ProcedureParameterRecordImpl.java 2009-07-10 20:48:29 UTC (rev 1119)
+++ trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/ProcedureParameterRecordImpl.java 2009-07-11 15:27:48 UTC (rev 1120)
@@ -25,180 +25,25 @@
/**
* ProcedureParameterRecordImpl
*/
-public class ProcedureParameterRecordImpl extends AbstractMetadataRecord {
+public class ProcedureParameterRecordImpl extends BaseColumn {
- private String datatypeUUID;
- private String runtimeType;
- private Object defaultValue;
- private int type;
- private int length;
- private int scale;
- private int radix;
- private int precision;
- private int nullType;
- private int position;
- private boolean optional;
- private DatatypeRecordImpl datatype;
-
- /*
- * @see com.metamatrix.modeler.core.metadata.runtime.ProcedureParameterRecord#getDefaultValue()
- */
- public Object getDefaultValue() {
- return defaultValue;
- }
-
- /*
- * @see com.metamatrix.modeler.core.metadata.runtime.ProcedureParameterRecord#getType()
- */
- public short getType() {
- return (short)type;
- }
-
- /*
- * @see com.metamatrix.modeler.core.metadata.runtime.ProcedureParameterRecord#getDatatypeUUID()
- */
- public String getDatatypeUUID() {
- return datatypeUUID;
- }
-
- /*
- * @see com.metamatrix.modeler.core.metadata.runtime.ProcedureParameterRecord#getRuntimeType()
- */
- public String getRuntimeType() {
- return runtimeType;
- }
-
- /**
- * @return
- */
- public int getLength() {
- return length;
- }
-
- /**
- * @return
- */
- public int getPrecision() {
- return precision;
- }
-
- /**
- * @return
- */
- public int getScale() {
- return scale;
- }
-
- /**
- * @return
- */
- public int getRadix() {
- return radix;
- }
-
- /**
- * @return
- */
- public int getPosition() {
- return position;
- }
-
- /**
- * @return
- */
- public int getNullType() {
- return nullType;
- }
-
- /*
- * @see com.metamatrix.modeler.core.metadata.runtime.ProcedureParameterRecord#isOptional()
- */
- public boolean isOptional() {
- return optional;
+ private short type;
+ private boolean optional;
+
+ public void setType(short type) {
+ this.type = type;
}
-
- /**
- * @param i
- */
- public void setLength(int i) {
- length = i;
+
+ public short getType() {
+ return type;
}
-
- /**
- * @param i
- */
- public void setPrecision(int i) {
- precision = i;
+
+ public void setOptional(boolean optional) {
+ this.optional = optional;
}
-
- /**
- * @param i
- */
- public void setScale(int i) {
- scale = i;
+
+ public boolean isOptional() {
+ return optional;
}
-
- /**
- * @param i
- */
- public void setRadix(int i) {
- radix = i;
- }
-
- /**
- * @param i
- */
- public void setNullType(int i) {
- nullType = i;
- }
-
- /**
- * @param i
- */
- public void setPosition(int i) {
- position = i;
- }
-
- /**
- * @param string
- */
- public void setRuntimeType(String string) {
- runtimeType = string;
- }
- /**
- * @param string
- */
- public void setDatatypeUUID(String string) {
- datatypeUUID = string;
- }
-
- /**
- * @param object
- */
- public void setDefaultValue(Object object) {
- defaultValue = object;
- }
-
- /**
- * @param i
- */
- public void setType(int i) {
- type = i;
- }
-
- /**
- * @param b
- */
- public void setOptional(boolean b) {
- optional = b;
- }
- public DatatypeRecordImpl getDatatype() {
- return datatype;
- }
-
- public void setDatatype(DatatypeRecordImpl datatype) {
- this.datatype = datatype;
- }
-
}
\ No newline at end of file
Modified: trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/ProcedureRecordImpl.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/ProcedureRecordImpl.java 2009-07-10 20:48:29 UTC (rev 1119)
+++ trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/ProcedureRecordImpl.java 2009-07-11 15:27:48 UTC (rev 1120)
@@ -30,16 +30,19 @@
*/
public class ProcedureRecordImpl extends AbstractMetadataRecord {
- private List parameterIDs;
+ private List<String> parameterIDs;
private boolean isFunction;
private boolean isVirtual;
private String resultSetID;
- private int updateCount;
+ private int updateCount = 1;
+ private List<ProcedureParameterRecordImpl> parameters;
+ private ColumnSetRecordImpl resultSet;
+ private String queryPlan;
/*
* @see com.metamatrix.modeler.core.metadata.runtime.ProcedureRecord#getParameterIDs()
*/
- public List getParameterIDs() {
+ public List<String> getParameterIDs() {
return parameterIDs;
}
@@ -78,11 +81,27 @@
public int getUpdateCount() {
return this.updateCount;
}
+
+ public List<ProcedureParameterRecordImpl> getParameters() {
+ return parameters;
+ }
+ public void setParameters(List<ProcedureParameterRecordImpl> parameters) {
+ this.parameters = parameters;
+ }
+
+ public String getQueryPlan() {
+ return queryPlan;
+ }
+
+ public void setQueryPlan(String queryPlan) {
+ this.queryPlan = queryPlan;
+ }
+
/**
* @param list
*/
- public void setParameterIDs(List list) {
+ public void setParameterIDs(List<String> list) {
parameterIDs = list;
}
@@ -121,4 +140,12 @@
return MetadataConstants.PROCEDURE_TYPES.STORED_PROCEDURE;
}
+ public void setResultSet(ColumnSetRecordImpl resultSet) {
+ this.resultSet = resultSet;
+ }
+
+ public ColumnSetRecordImpl getResultSet() {
+ return resultSet;
+ }
+
}
\ No newline at end of file
Modified: trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/TableRecordImpl.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/TableRecordImpl.java 2009-07-10 20:48:29 UTC (rev 1119)
+++ trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/TableRecordImpl.java 2009-07-11 15:27:48 UTC (rev 1120)
@@ -38,7 +38,6 @@
private boolean isSystem;
private boolean isMaterialized;
private boolean supportsUpdate;
- private ModelRecordImpl model;
private String insertPlan;
private String updatePlan;
private String deletePlan;
@@ -201,14 +200,6 @@
this.materializedTableID = materializedTableID;
}
- public ModelRecordImpl getModel() {
- return this.model;
- }
-
- public void setModel(ModelRecordImpl model) {
- this.model = model;
- }
-
public String getInsertPlan() {
return insertPlan;
}
Modified: trunk/connector-api/src/main/resources/org/teiid/connector/i18n.properties
===================================================================
--- trunk/connector-api/src/main/resources/org/teiid/connector/i18n.properties 2009-07-10 20:48:29 UTC (rev 1119)
+++ trunk/connector-api/src/main/resources/org/teiid/connector/i18n.properties 2009-07-11 15:27:48 UTC (rev 1120)
@@ -63,4 +63,6 @@
UserIdentityFactory.extraction_error=Unable to extract credentials from command payload or trusted session payload for per-user connection.
UserIdentityFactory.missing_credentials=Payload missing credentials for {0}
-MetadataFactory.unknown_datatype=Unknown datatype {0}
\ No newline at end of file
+MetadataFactory.unknown_datatype=Unknown datatype {0}
+MetadataFactory.no_column_found=No column found with name {0}
+MetadataFactory.duplicate_name="Non-uniquely named record detected ''{0}''
\ No newline at end of file
Modified: trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/JDBCMetdataProcessor.java
===================================================================
--- trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/JDBCMetdataProcessor.java 2009-07-10 20:48:29 UTC (rev 1119)
+++ trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/JDBCMetdataProcessor.java 2009-07-11 15:27:48 UTC (rev 1120)
@@ -34,12 +34,21 @@
import org.teiid.connector.api.ConnectorException;
import org.teiid.connector.api.TypeFacility;
import org.teiid.connector.metadata.runtime.AbstractMetadataRecord;
+import org.teiid.connector.metadata.runtime.BaseColumn;
import org.teiid.connector.metadata.runtime.ColumnRecordImpl;
import org.teiid.connector.metadata.runtime.MetadataFactory;
+import org.teiid.connector.metadata.runtime.ProcedureRecordImpl;
import org.teiid.connector.metadata.runtime.TableRecordImpl;
+import org.teiid.connector.metadata.runtime.MetadataConstants.PARAMETER_TYPES;
+/**
+ * Reads from {@link DatabaseMetaData} and creates metadata through the {@link MetadataFactory}.
+ */
public class JDBCMetdataProcessor {
+ /**
+ * A holder for table records that keeps track of catalog and schema information.
+ */
private static class TableInfo {
private String catalog;
private String schema;
@@ -68,9 +77,81 @@
public void getConnectorMetadata(Connection conn, MetadataFactory metadataFactory)
throws SQLException, ConnectorException {
+ DatabaseMetaData metadata = conn.getMetaData();
- //- retrieve tables
- DatabaseMetaData metadata = conn.getMetaData();
+ Map<String, TableInfo> tableMap = getTables(metadataFactory, metadata);
+
+ if (importKeys) {
+ getPrimaryKeys(metadataFactory, metadata, tableMap);
+
+ getForeignKeys(metadataFactory, metadata, tableMap);
+ }
+
+ if (importIndexes) {
+ getIndexes(metadataFactory, metadata, tableMap);
+ }
+
+ if (importProcedures) {
+ getProcedures(metadataFactory, metadata);
+ }
+ }
+
+ private void getProcedures(MetadataFactory metadataFactory,
+ DatabaseMetaData metadata) throws SQLException, ConnectorException {
+ ResultSet procedures = metadata.getProcedures(catalog, schemaPattern, procedureNamePattern);
+ while (procedures.next()) {
+ String procedureCatalog = procedures.getString(1);
+ String procedureSchema = procedures.getString(2);
+ String procedureName = procedures.getString(3);
+ String fullProcedureName = getTableName(procedureCatalog, procedureSchema, procedureName);
+ ProcedureRecordImpl procedure = metadataFactory.addProcedure(useFullSchemaName?fullProcedureName:procedureName);
+ procedure.setNameInSource(fullProcedureName);
+ ResultSet columns = metadata.getProcedureColumns(catalog, procedureSchema, procedureName, null);
+ while (columns.next()) {
+ String columnName = columns.getString(4);
+ short columnType = columns.getShort(5);
+ int sqlType = columns.getInt(6);
+ if (columnType == DatabaseMetaData.procedureColumnUnknown) {
+ continue; //there's a good chance this won't work
+ }
+ BaseColumn record = null;
+ if (columnType == DatabaseMetaData.procedureColumnResult) {
+ ColumnRecordImpl column = metadataFactory.addProcedureResultSetColumn(columnName, TypeFacility.getDataTypeNameFromSQLType(sqlType), procedure);
+ record = column;
+ column.setNativeType(columns.getString(7));
+ } else {
+ record = metadataFactory.addProcedureParameter(columnName, TypeFacility.getDataTypeNameFromSQLType(sqlType), getParameterType(columnType), procedure);
+ }
+ record.setPrecision(columns.getInt(8));
+ record.setLength(columns.getInt(9));
+ record.setScale(columns.getInt(10));
+ record.setRadix(columns.getInt(11));
+ record.setNullType(columns.getShort(12));
+ String remarks = columns.getString(13);
+ if (remarks != null) {
+ metadataFactory.addAnnotation(remarks, record);
+ }
+ }
+ }
+ procedures.close();
+ }
+
+ private static short getParameterType(short type) {
+ switch (type) {
+ case DatabaseMetaData.procedureColumnIn:
+ return PARAMETER_TYPES.IN_PARM;
+ case DatabaseMetaData.procedureColumnInOut:
+ return PARAMETER_TYPES.INOUT_PARM;
+ case DatabaseMetaData.procedureColumnOut:
+ return PARAMETER_TYPES.OUT_PARM;
+ case DatabaseMetaData.procedureColumnReturn:
+ return PARAMETER_TYPES.RETURN_VALUE;
+ }
+ throw new AssertionError();
+ }
+
+ private Map<String, TableInfo> getTables(MetadataFactory metadataFactory,
+ DatabaseMetaData metadata) throws SQLException, ConnectorException {
ResultSet tables = metadata.getTables(catalog, schemaPattern, tableNamePattern, tableTypes);
Map<String, TableInfo> tableMap = new HashMap<String, TableInfo>();
while (tables.next()) {
@@ -90,22 +171,7 @@
tables.close();
getColumns(metadataFactory, metadata, tableMap);
-
- if (importKeys) {
- getPrimaryKeys(metadataFactory, metadata, tableMap);
-
- getForeignKeys(metadataFactory, metadata, tableMap);
- }
-
- if (importIndexes) {
- getIndexes(metadataFactory, metadata, tableMap);
- }
-
- if (importProcedures) {
- /*ResultSet procedures = metadata.getProcedures(catalog, schemaPattern, procedureNamePattern);
-
- procedures.close();*/
- }
+ return tableMap;
}
private void getColumns(MetadataFactory metadataFactory,
@@ -128,6 +194,7 @@
column.setNativeType(columns.getString(6));
column.setRadix(columns.getInt(10));
column.setNullType(columns.getInt(11));
+ column.setUpdatable(true);
String remarks = columns.getString(12);
if (remarks != null) {
metadataFactory.addAnnotation(remarks, column);
@@ -165,7 +232,7 @@
}
}
- private static void getForeignKeys(MetadataFactory metadataFactory,
+ private void getForeignKeys(MetadataFactory metadataFactory,
DatabaseMetaData metadata, Map<String, TableInfo> tableMap) throws SQLException, ConnectorException {
for (TableInfo tableInfo : tableMap.values()) {
ResultSet fks = metadata.getImportedKeys(tableInfo.catalog, tableInfo.schema, tableInfo.name);
Modified: trunk/engine/src/main/java/com/metamatrix/query/metadata/MetadataStore.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/metadata/MetadataStore.java 2009-07-10 20:48:29 UTC (rev 1119)
+++ trunk/engine/src/main/java/com/metamatrix/query/metadata/MetadataStore.java 2009-07-11 15:27:48 UTC (rev 1120)
@@ -26,7 +26,8 @@
import org.teiid.connector.metadata.runtime.AbstractMetadataRecord;
import org.teiid.connector.metadata.runtime.ColumnRecordImpl;
-import org.teiid.connector.metadata.runtime.DatatypeRecordImpl;
+import org.teiid.connector.metadata.runtime.ModelRecordImpl;
+import org.teiid.connector.metadata.runtime.ProcedureRecordImpl;
import org.teiid.connector.metadata.runtime.PropertyRecordImpl;
import org.teiid.connector.metadata.runtime.TableRecordImpl;
@@ -35,17 +36,30 @@
import com.metamatrix.core.MetaMatrixCoreException;
public interface MetadataStore {
+
+ ModelRecordImpl getModel(String fullName) throws QueryMetadataException, MetaMatrixComponentException;
TableRecordImpl findGroup(String fullName) throws QueryMetadataException, MetaMatrixComponentException;
+ /**
+ * Returns the fully qualified names of groups matching the given partial name.
+ *
+ * @param partialGroupName expected to be in lowercase
+ * @return
+ * @throws MetaMatrixComponentException
+ * @throws QueryMetadataException
+ */
Collection<String> getGroupsForPartialName(final String partialGroupName)
throws MetaMatrixComponentException, QueryMetadataException;
- StoredProcedureInfo getStoredProcedureInfoForProcedure(final String fullyQualifiedProcedureName)
+ ProcedureRecordImpl getStoredProcedure(final String fullyQualifiedProcedureName)
throws MetaMatrixComponentException, QueryMetadataException;
Collection<PropertyRecordImpl> getExtensionProperties(AbstractMetadataRecord record) throws MetaMatrixComponentException;
+ /**
+ * Get the set of model names known to this store.
+ */
Collection<String> getModelNames();
/**
Modified: trunk/metadata/src/main/java/org/teiid/metadata/CompositeMetadataStore.java
===================================================================
--- trunk/metadata/src/main/java/org/teiid/metadata/CompositeMetadataStore.java 2009-07-10 20:48:29 UTC (rev 1119)
+++ trunk/metadata/src/main/java/org/teiid/metadata/CompositeMetadataStore.java 2009-07-11 15:27:48 UTC (rev 1120)
@@ -30,6 +30,8 @@
import org.teiid.connector.metadata.runtime.AbstractMetadataRecord;
import org.teiid.connector.metadata.runtime.ColumnRecordImpl;
+import org.teiid.connector.metadata.runtime.ModelRecordImpl;
+import org.teiid.connector.metadata.runtime.ProcedureRecordImpl;
import org.teiid.connector.metadata.runtime.PropertyRecordImpl;
import org.teiid.connector.metadata.runtime.TableRecordImpl;
@@ -39,7 +41,6 @@
import com.metamatrix.core.util.StringUtil;
import com.metamatrix.metadata.runtime.api.MetadataSource;
import com.metamatrix.query.metadata.MetadataStore;
-import com.metamatrix.query.metadata.StoredProcedureInfo;
public class CompositeMetadataStore implements MetadataStore {
@@ -64,6 +65,12 @@
}
@Override
+ public ModelRecordImpl getModel(String fullName)
+ throws QueryMetadataException, MetaMatrixComponentException {
+ return getMetadataStore(fullName).getModel(fullName);
+ }
+
+ @Override
public ColumnRecordImpl findElement(String fullName)
throws QueryMetadataException, MetaMatrixComponentException {
List<String> tokens = StringUtil.getTokens(fullName, TransformationMetadata.DELIMITER_STRING);
@@ -100,14 +107,14 @@
}
@Override
- public StoredProcedureInfo getStoredProcedureInfoForProcedure(
+ public ProcedureRecordImpl getStoredProcedure(
String fullyQualifiedProcedureName)
throws MetaMatrixComponentException, QueryMetadataException {
List<String> tokens = StringUtil.getTokens(fullyQualifiedProcedureName, TransformationMetadata.DELIMITER_STRING);
if (tokens.size() < 2) {
throw new QueryMetadataException(fullyQualifiedProcedureName+TransformationMetadata.NOT_EXISTS_MESSAGE);
}
- return getMetadataStore(tokens.get(0)).getStoredProcedureInfoForProcedure(fullyQualifiedProcedureName);
+ return getMetadataStore(tokens.get(0)).getStoredProcedure(fullyQualifiedProcedureName);
}
@Override
Modified: trunk/metadata/src/main/java/org/teiid/metadata/ConnectorMetadataStore.java
===================================================================
--- trunk/metadata/src/main/java/org/teiid/metadata/ConnectorMetadataStore.java 2009-07-10 20:48:29 UTC (rev 1119)
+++ trunk/metadata/src/main/java/org/teiid/metadata/ConnectorMetadataStore.java 2009-07-11 15:27:48 UTC (rev 1120)
@@ -34,6 +34,9 @@
import org.teiid.connector.metadata.runtime.ColumnSetRecordImpl;
import org.teiid.connector.metadata.runtime.ConnectorMetadata;
import org.teiid.connector.metadata.runtime.MetadataConstants;
+import org.teiid.connector.metadata.runtime.ModelRecordImpl;
+import org.teiid.connector.metadata.runtime.ProcedureParameterRecordImpl;
+import org.teiid.connector.metadata.runtime.ProcedureRecordImpl;
import org.teiid.connector.metadata.runtime.PropertyRecordImpl;
import org.teiid.connector.metadata.runtime.TableRecordImpl;
import org.teiid.metadata.index.IndexConstants;
@@ -43,7 +46,6 @@
import com.metamatrix.core.MetaMatrixCoreException;
import com.metamatrix.dqp.service.DataService;
import com.metamatrix.query.metadata.MetadataStore;
-import com.metamatrix.query.metadata.StoredProcedureInfo;
import com.metamatrix.vdb.runtime.VDBKey;
public class ConnectorMetadataStore implements MetadataStore {
@@ -57,6 +59,13 @@
}
@Override
+ public ModelRecordImpl getModel(String fullName)
+ throws QueryMetadataException, MetaMatrixComponentException {
+ //there's no need to check the name, the CompositeMetadataStore will have already done that
+ return metadata.getModel();
+ }
+
+ @Override
public ColumnRecordImpl findElement(String fullName)
throws QueryMetadataException, MetaMatrixComponentException {
throw new UnsupportedOperationException();
@@ -91,10 +100,15 @@
}
@Override
- public StoredProcedureInfo getStoredProcedureInfoForProcedure(
+ public ProcedureRecordImpl getStoredProcedure(
String fullyQualifiedProcedureName)
throws MetaMatrixComponentException, QueryMetadataException {
- return null;
+ for (ProcedureRecordImpl procedureRecordImpl : metadata.getProcedures()) {
+ if (procedureRecordImpl.getFullName().equalsIgnoreCase(fullyQualifiedProcedureName)) {
+ return procedureRecordImpl;
+ }
+ }
+ throw new QueryMetadataException(fullyQualifiedProcedureName+TransformationMetadata.NOT_EXISTS_MESSAGE);
}
@Override
@@ -115,12 +129,22 @@
switch (recordType) {
case MetadataConstants.RECORD_TYPE.CALLABLE:
return metadata.getProcedures();
- case MetadataConstants.RECORD_TYPE.CALLABLE_PARAMETER:
- //TODO
- return Collections.emptyList();
- case MetadataConstants.RECORD_TYPE.RESULT_SET:
- //TODO
- return Collections.emptyList();
+ case MetadataConstants.RECORD_TYPE.CALLABLE_PARAMETER: {
+ Collection<ProcedureParameterRecordImpl> results = new ArrayList<ProcedureParameterRecordImpl>();
+ for (ProcedureRecordImpl procedure : metadata.getProcedures()) {
+ results.addAll(procedure.getParameters());
+ }
+ return results;
+ }
+ case MetadataConstants.RECORD_TYPE.RESULT_SET: {
+ Collection<ColumnSetRecordImpl> results = new ArrayList<ColumnSetRecordImpl>();
+ for (ProcedureRecordImpl procedure : metadata.getProcedures()) {
+ if (procedure.getResultSet() != null) {
+ results.add(procedure.getResultSet());
+ }
+ }
+ return results;
+ }
case MetadataConstants.RECORD_TYPE.ACCESS_PATTERN: {
Collection<ColumnSetRecordImpl> results = new ArrayList<ColumnSetRecordImpl>();
for (TableRecordImpl table : metadata.getTables()) {
Modified: trunk/metadata/src/main/java/org/teiid/metadata/TransformationMetadata.java
===================================================================
--- trunk/metadata/src/main/java/org/teiid/metadata/TransformationMetadata.java 2009-07-10 20:48:29 UTC (rev 1119)
+++ trunk/metadata/src/main/java/org/teiid/metadata/TransformationMetadata.java 2009-07-11 15:27:48 UTC (rev 1120)
@@ -51,6 +51,7 @@
import com.metamatrix.api.exception.MetaMatrixComponentException;
import com.metamatrix.api.exception.query.QueryMetadataException;
+import com.metamatrix.common.types.DataTypeManager;
import com.metamatrix.core.util.ArgCheck;
import com.metamatrix.core.util.LRUCache;
import com.metamatrix.core.util.StringUtil;
@@ -63,6 +64,7 @@
import com.metamatrix.query.metadata.BasicQueryMetadata;
import com.metamatrix.query.metadata.StoredProcedureInfo;
import com.metamatrix.query.metadata.SupportConstants;
+import com.metamatrix.query.sql.lang.SPParameter;
/**
* Modelers implementation of QueryMetadataInterface that reads columns, groups, models etc.
@@ -82,10 +84,9 @@
public static final char DELIMITER_CHAR = IndexConstants.NAME_DELIM_CHAR;
public static final String DELIMITER_STRING = StringUtil.Constants.EMPTY_STRING + IndexConstants.NAME_DELIM_CHAR;
- // error message cached to avaid i18n lookup each time
+ // error message cached to avoid i18n lookup each time
public static String NOT_EXISTS_MESSAGE = StringUtil.Constants.SPACE+RuntimeMetadataPlugin.Util.getString("TransformationMetadata.does_not_exist._1"); //$NON-NLS-1$
- // context object all the info needed for metadata lookup
private final CompositeMetadataStore store;
/*
@@ -94,7 +95,8 @@
private final Map<String, Object> metadataCache = Collections.synchronizedMap(new LRUCache<String, Object>(500));
private final Map<String, TableRecordImpl> groupCache = Collections.synchronizedMap(new LRUCache<String, TableRecordImpl>(2000));
private final Map<String, StoredProcedureInfo> procedureCache = Collections.synchronizedMap(new LRUCache<String, StoredProcedureInfo>(200));
- private final Map<String, String> partialNameToFullNameCache = Collections.synchronizedMap(new LRUCache<String, String>(100));
+ private final Map<String, String> partialNameToFullNameCache = Collections.synchronizedMap(new LRUCache<String, String>(1000));
+ private final Map<String, ModelRecordImpl> modelCache = Collections.synchronizedMap(new LRUCache<String, ModelRecordImpl>(100));
/**
* TransformationMetadata constructor
@@ -160,11 +162,25 @@
* @see com.metamatrix.query.metadata.QueryMetadataInterface#getModelID(java.lang.Object)
*/
public Object getModelID(final Object groupOrElementID) throws MetaMatrixComponentException, QueryMetadataException {
- ArgCheck.isInstanceOf(TableRecordImpl.class, groupOrElementID);
+ if (!(groupOrElementID instanceof TableRecordImpl) && !(groupOrElementID instanceof ColumnRecordImpl)) {
+ throw createInvalidRecordTypeException(groupOrElementID);
+ }
- return ((TableRecordImpl)groupOrElementID).getModel();
+ String modelName = ((AbstractMetadataRecord)groupOrElementID).getModelName();
+ return getModel(modelName);
}
+ private Object getModel(String modelName) throws QueryMetadataException,
+ MetaMatrixComponentException {
+ modelName = modelName.toUpperCase();
+ ModelRecordImpl model = modelCache.get(modelName);
+ if (model == null) {
+ model = getMetadataStore().getModel(modelName);
+ modelCache.put(modelName, model);
+ }
+ return model;
+ }
+
/* (non-Javadoc)
* @see com.metamatrix.query.metadata.QueryMetadataInterface#getFullName(java.lang.Object)
*/
@@ -249,14 +265,83 @@
throws MetaMatrixComponentException, QueryMetadataException {
ArgCheck.isNotEmpty(fullyQualifiedProcedureName);
String upperGroupName = fullyQualifiedProcedureName.toUpperCase();
- StoredProcedureInfo result = this.procedureCache.get(upperGroupName);
+ StoredProcedureInfo procInfo = this.procedureCache.get(upperGroupName);
- if (result == null) {
- result = getMetadataStore().getStoredProcedureInfoForProcedure(fullyQualifiedProcedureName);
- this.procedureCache.put(upperGroupName, result);
+ if (procInfo != null) {
+ return procInfo;
}
- return result;
+
+ ProcedureRecordImpl procRecord = getMetadataStore().getStoredProcedure(fullyQualifiedProcedureName);
+
+ String procedureFullName = procRecord.getFullName();
+
+ // create the storedProcedure info object that would hold procedure's metadata
+ procInfo = new StoredProcedureInfo();
+ procInfo.setProcedureCallableName(procRecord.getName());
+ procInfo.setProcedureID(procRecord);
+
+ // modelID for the procedure
+ procInfo.setModelID(getModel(procRecord.getModelName()));
+
+ // get the parameter metadata info
+ for (ProcedureParameterRecordImpl paramRecord : procRecord.getParameters()) {
+ String runtimeType = paramRecord.getRuntimeType();
+ int direction = this.convertParamRecordTypeToStoredProcedureType(paramRecord.getType());
+ // create a parameter and add it to the procedure object
+ SPParameter spParam = new SPParameter(paramRecord.getPosition(), direction, paramRecord.getFullName());
+ spParam.setMetadataID(paramRecord);
+ spParam.setClassType(DataTypeManager.getDataTypeClass(runtimeType));
+ procInfo.addParameter(spParam);
+ }
+
+ // if the procedure returns a resultSet, obtain resultSet metadata
+ if(procRecord.getResultSet() != null) {
+ ColumnSetRecordImpl resultRecord = procRecord.getResultSet();
+ // resultSet is the last parameter in the procedure
+ int lastParamIndex = procInfo.getParameters().size() + 1;
+ SPParameter param = new SPParameter(lastParamIndex, SPParameter.RESULT_SET, resultRecord.getFullName());
+ param.setClassType(java.sql.ResultSet.class);
+ param.setMetadataID(resultRecord);
+
+ for (ColumnRecordImpl columnRecord : resultRecord.getColumns()) {
+ String colType = columnRecord.getRuntimeType();
+ param.addResultSetColumn(columnRecord.getFullName(), DataTypeManager.getDataTypeClass(colType), columnRecord);
+ }
+
+ procInfo.addParameter(param);
+ }
+
+ // if this is a virtual procedure get the procedure plan
+ if(procRecord.isVirtual()) {
+ QueryNode queryNode = new QueryNode(procedureFullName, procRecord.getQueryPlan());
+ procInfo.setQueryPlan(queryNode);
+ }
+
+ //subtract 1, to match up with the server
+ procInfo.setUpdateCount(procRecord.getUpdateCount() -1);
+
+ this.procedureCache.put(upperGroupName, procInfo);
+
+ return procInfo;
}
+
+ /**
+ * Method to convert the parameter type returned from a ProcedureParameterRecord
+ * to the parameter type expected by StoredProcedureInfo
+ * @param parameterType
+ * @return
+ */
+ private int convertParamRecordTypeToStoredProcedureType(final int parameterType) {
+ switch (parameterType) {
+ case MetadataConstants.PARAMETER_TYPES.IN_PARM : return SPParameter.IN;
+ case MetadataConstants.PARAMETER_TYPES.OUT_PARM : return SPParameter.OUT;
+ case MetadataConstants.PARAMETER_TYPES.INOUT_PARM : return SPParameter.INOUT;
+ case MetadataConstants.PARAMETER_TYPES.RETURN_VALUE : return SPParameter.RETURN_VALUE;
+ case MetadataConstants.PARAMETER_TYPES.RESULT_SET : return SPParameter.RESULT_SET;
+ default :
+ return -1;
+ }
+ }
/* (non-Javadoc)
* @see com.metamatrix.query.metadata.QueryMetadataInterface#getElementType(java.lang.Object)
Modified: trunk/metadata/src/main/java/org/teiid/metadata/index/IndexMetadataStore.java
===================================================================
--- trunk/metadata/src/main/java/org/teiid/metadata/index/IndexMetadataStore.java 2009-07-10 20:48:29 UTC (rev 1119)
+++ trunk/metadata/src/main/java/org/teiid/metadata/index/IndexMetadataStore.java 2009-07-11 15:27:48 UTC (rev 1120)
@@ -52,21 +52,21 @@
import com.metamatrix.api.exception.MetaMatrixComponentException;
import com.metamatrix.api.exception.query.QueryMetadataException;
-import com.metamatrix.common.types.DataTypeManager;
import com.metamatrix.core.MetaMatrixCoreException;
import com.metamatrix.core.MetaMatrixRuntimeException;
import com.metamatrix.core.id.UUID;
import com.metamatrix.core.util.ArgCheck;
import com.metamatrix.core.util.StringUtil;
import com.metamatrix.metadata.runtime.api.MetadataSource;
-import com.metamatrix.query.mapping.relational.QueryNode;
import com.metamatrix.query.metadata.MetadataStore;
-import com.metamatrix.query.metadata.StoredProcedureInfo;
-import com.metamatrix.query.sql.lang.SPParameter;
+/**
+ * Loads MetadataRecords from index files.
+ * Only datatypes are directly cached.
+ */
public class IndexMetadataStore implements MetadataStore {
- // size of file being returned by content methods
- private Index[] indexes;
+
+ private Index[] indexes;
private Map<String, DatatypeRecordImpl> datatypeCache;
public IndexMetadataStore(MetadataSource source) throws IOException {
@@ -100,6 +100,10 @@
return result;
}
+ public ModelRecordImpl getModel(String name) throws QueryMetadataException, MetaMatrixComponentException {
+ return (ModelRecordImpl)getRecordByType(name, MetadataConstants.RECORD_TYPE.MODEL);
+ }
+
@Override
public TableRecordImpl findGroup(String groupName) throws QueryMetadataException, MetaMatrixComponentException {
TableRecordImpl tableRecord = (TableRecordImpl)getRecordByType(groupName, MetadataConstants.RECORD_TYPE.TABLE);
@@ -131,7 +135,6 @@
loadColumnSetRecords(primaryKey, uuidColumnMap);
tableRecord.setPrimaryKey(primaryKey);
}
- tableRecord.setModel((ModelRecordImpl)getRecordByType(tableRecord.getModelName(), MetadataConstants.RECORD_TYPE.MODEL));
if (tableRecord.isVirtual()) {
TransformationRecordImpl update = (TransformationRecordImpl)getRecordByType(groupName, MetadataConstants.RECORD_TYPE.UPDATE_TRANSFORM,false);
if (update != null) {
@@ -220,59 +223,27 @@
throw new QueryMetadataException(RuntimeMetadataPlugin.Util.getString("TransformationMetadata.0", entityName)); //$NON-NLS-1$
}
- /* (non-Javadoc)
- * @see com.metamatrix.query.metadata.QueryMetadataInterface#getStoredProcedureInfoForProcedure(java.lang.String)
- */
- public StoredProcedureInfo getStoredProcedureInfoForProcedure(final String fullyQualifiedProcedureName)
- throws MetaMatrixComponentException, QueryMetadataException {
+ @Override
+ public ProcedureRecordImpl getStoredProcedure(
+ String fullyQualifiedProcedureName)
+ throws MetaMatrixComponentException, QueryMetadataException {
+ ProcedureRecordImpl procedureRecord = (ProcedureRecordImpl)getRecordByType(fullyQualifiedProcedureName, MetadataConstants.RECORD_TYPE.CALLABLE);
- ProcedureRecordImpl procRecord = (ProcedureRecordImpl) getRecordByType(fullyQualifiedProcedureName, MetadataConstants.RECORD_TYPE.CALLABLE);
-
- String procedureFullName = procRecord.getFullName();
-
- // create the storedProcedure info object that would hold procedure's metadata
- StoredProcedureInfo procInfo = new StoredProcedureInfo();
- procInfo.setProcedureCallableName(procRecord.getName());
- procInfo.setProcedureID(procRecord);
-
- // modelID for the procedure
- AbstractMetadataRecord modelRecord = getRecordByType(procRecord.getModelName(), MetadataConstants.RECORD_TYPE.MODEL);
- procInfo.setModelID(modelRecord);
-
+ procedureRecord.setParameters(new ArrayList<ProcedureParameterRecordImpl>(procedureRecord.getParameterIDs().size()));
+
// get the parameter metadata info
- for(Iterator paramIter = procRecord.getParameterIDs().iterator();paramIter.hasNext();) {
- String paramID = (String) paramIter.next();
+ for (String paramID : procedureRecord.getParameterIDs()) {
ProcedureParameterRecordImpl paramRecord = (ProcedureParameterRecordImpl) this.getRecordByType(paramID, MetadataConstants.RECORD_TYPE.CALLABLE_PARAMETER);
- String runtimeType = paramRecord.getRuntimeType();
- int direction = this.convertParamRecordTypeToStoredProcedureType(paramRecord.getType());
- // create a parameter and add it to the procedure object
- SPParameter spParam = new SPParameter(paramRecord.getPosition(), direction, paramRecord.getFullName());
- spParam.setMetadataID(paramRecord);
- if (paramRecord.getDatatypeUUID() != null) {
- paramRecord.setDatatype((DatatypeRecordImpl)getRecordByType(paramRecord.getDatatypeUUID(), MetadataConstants.RECORD_TYPE.DATATYPE));
- }
- spParam.setClassType(DataTypeManager.getDataTypeClass(runtimeType));
- procInfo.addParameter(spParam);
+ paramRecord.setDatatype(getDatatypeCache().get(paramRecord.getDatatypeUUID()));
+ procedureRecord.getParameters().add(paramRecord);
}
-
- // if the procedure returns a resultSet, obtain resultSet metadata
- String resultID = procRecord.getResultSetID();
+
+ String resultID = procedureRecord.getResultSetID();
if(resultID != null) {
try {
ColumnSetRecordImpl resultRecord = (ColumnSetRecordImpl) this.getRecordByType(resultID, MetadataConstants.RECORD_TYPE.RESULT_SET);
- // resultSet is the last parameter in the procedure
- int lastParamIndex = procInfo.getParameters().size() + 1;
- SPParameter param = new SPParameter(lastParamIndex, SPParameter.RESULT_SET, resultRecord.getFullName());
- param.setClassType(java.sql.ResultSet.class);
- param.setMetadataID(resultRecord);
-
loadColumnSetRecords(resultRecord, null);
- for (ColumnRecordImpl columnRecord : resultRecord.getColumns()) {
- String colType = columnRecord.getRuntimeType();
- param.addResultSetColumn(columnRecord.getFullName(), DataTypeManager.getDataTypeClass(colType), columnRecord);
- }
-
- procInfo.addParameter(param);
+ procedureRecord.setResultSet(resultRecord);
} catch (QueryMetadataException e) {
//it is ok to fail here. it will happen when a
//virtual stored procedure is created from a
@@ -282,39 +253,16 @@
}
// if this is a virtual procedure get the procedure plan
- if(procRecord.isVirtual()) {
- TransformationRecordImpl transformRecord = (TransformationRecordImpl)getRecordByType(procedureFullName, MetadataConstants.RECORD_TYPE.PROC_TRANSFORM, false);
+ if(procedureRecord.isVirtual()) {
+ TransformationRecordImpl transformRecord = (TransformationRecordImpl)getRecordByType(fullyQualifiedProcedureName, MetadataConstants.RECORD_TYPE.PROC_TRANSFORM, false);
if(transformRecord != null) {
- QueryNode queryNode = new QueryNode(procedureFullName, transformRecord.getTransformation());
- procInfo.setQueryPlan(queryNode);
-
+ procedureRecord.setQueryPlan(transformRecord.getTransformation());
}
}
-
- //subtract 1, to match up with the server
- procInfo.setUpdateCount(procRecord.getUpdateCount() -1);
- return procInfo;
+ return procedureRecord;
}
- /**
- * Method to convert the parameter type returned from a ProcedureParameterRecord
- * to the parameter type expected by StoredProcedureInfo
- * @param parameterType
- * @return
- */
- private int convertParamRecordTypeToStoredProcedureType(final int parameterType) {
- switch (parameterType) {
- case MetadataConstants.PARAMETER_TYPES.IN_PARM : return SPParameter.IN;
- case MetadataConstants.PARAMETER_TYPES.OUT_PARM : return SPParameter.OUT;
- case MetadataConstants.PARAMETER_TYPES.INOUT_PARM : return SPParameter.INOUT;
- case MetadataConstants.PARAMETER_TYPES.RETURN_VALUE : return SPParameter.RETURN_VALUE;
- case MetadataConstants.PARAMETER_TYPES.RESULT_SET : return SPParameter.RESULT_SET;
- default :
- return -1;
- }
- }
-
@Override
public Collection getXMLTempGroups(TableRecordImpl table) throws MetaMatrixComponentException {
// Query the index files
Modified: trunk/metadata/src/main/java/org/teiid/metadata/index/RecordFactory.java
===================================================================
--- trunk/metadata/src/main/java/org/teiid/metadata/index/RecordFactory.java 2009-07-10 20:48:29 UTC (rev 1119)
+++ trunk/metadata/src/main/java/org/teiid/metadata/index/RecordFactory.java 2009-07-11 15:27:48 UTC (rev 1120)
@@ -806,7 +806,7 @@
paramRd.setPosition(Integer.parseInt((String)tokens.get(tokenIndex++)) );
// The next token is parameter type
- paramRd.setType(Integer.parseInt((String)tokens.get(tokenIndex++)));
+ paramRd.setType(Short.parseShort((String)tokens.get(tokenIndex++)));
// The next token is flag for parameter optional prop
char[] flags = ((String)tokens.get(tokenIndex++)).toCharArray();
Modified: trunk/test-integration/src/test/java/com/metamatrix/server/integration/TestVDBLessExecution.java
===================================================================
--- trunk/test-integration/src/test/java/com/metamatrix/server/integration/TestVDBLessExecution.java 2009-07-10 20:48:29 UTC (rev 1119)
+++ trunk/test-integration/src/test/java/com/metamatrix/server/integration/TestVDBLessExecution.java 2009-07-11 15:27:48 UTC (rev 1120)
@@ -46,9 +46,9 @@
"y 2" //$NON-NLS-1$
});
- }
+ }
- @Test public void testExecution1() {
+ @Test public void testIntegrationExecution() {
getConnection(VDB, DQP_PROP_FILE);
executeAndAssertResults("select * from Example, Smalla where notional = intkey", new String[] { //$NON-NLS-1$
"TRADEID[string] NOTIONAL[integer] INTKEY[integer] STRINGKEY[string] INTNUM[integer] STRINGNUM[string] FLOATNUM[float] LONGNUM[long] DOUBLENUM[double] BYTENUM[short] DATEVALUE[date] TIMEVALUE[time] TIMESTAMPVALUE[timestamp] BOOLEANVALUE[short] CHARVALUE[char] SHORTVALUE[short] BIGINTEGERVALUE[long] BIGDECIMALVALUE[bigdecimal] OBJECTVALUE[string]", //$NON-NLS-1$
@@ -57,6 +57,14 @@
});
}
+ /**
+ * We have no results to assert here since derby does not provide procedure resultset columns in their metadata.
+ */
+ @Test public void testProcedureExecution() {
+ getConnection(VDB, DQP_PROP_FILE);
+ execute("exec Derby.SQLUDTS(null, null, null, null, null)"); //$NON-NLS-1$
+ }
+
@Test public void testDatabaseMetaDataTables() throws Exception {
Connection conn = getConnection(VDB, DQP_PROP_FILE);
DatabaseMetaData metadata = conn.getMetaData();
@@ -188,5 +196,31 @@
"null VDBLess Derby.SYSTRIGGERS false null SYSTRIGGERS_INDEX3 0 2 CREATIONTIMESTAMP null 0 1 null", //$NON-NLS-1$
});
}
+
+ @Test public void testDatabaseMetaDataProcedures() throws Exception {
+ Connection conn = getConnection(VDB, DQP_PROP_FILE);
+ DatabaseMetaData metadata = conn.getMetaData();
+ this.internalResultSet = metadata.getProcedures(null, null, "Derby.%JAR"); //$NON-NLS-1$
+ assertResults(new String[] {
+ "PROCEDURE_CAT[string] PROCEDURE_SCHEM[string] PROCEDURE_NAME[string] RESERVED_1[string] RESERVED_2[string] RESERVED_3[string] REMARKS[string] PROCEDURE_TYPE[short]", //$NON-NLS-1$
+ "null VDBLess Derby.INSTALL_JAR null null null null 1", //$NON-NLS-1$
+ "null VDBLess Derby.REMOVE_JAR null null null null 1", //$NON-NLS-1$
+ "null VDBLess Derby.REPLACE_JAR null null null null 1" //$NON-NLS-1$
+ });
+ }
+
+ @Test public void testDatabaseMetaDataProcedureColumns() throws Exception {
+ Connection conn = getConnection(VDB, DQP_PROP_FILE);
+ DatabaseMetaData metadata = conn.getMetaData();
+ this.internalResultSet = metadata.getProcedureColumns(null, null, "Derby.SQLUDTS", null); //$NON-NLS-1$
+ assertResults(new String[] {
+ "PROCEDURE_CAT[string] PROCEDURE_SCHEM[string] PROCEDURE_NAME[string] COLUMN_NAME[string] COLUMN_TYPE[short] DATA_TYPE[integer] TYPE_NAME[string] PRECISION[integer] LENGTH[integer] SCALE[short] RADIX[integer] NULLABLE[integer] REMARKS[string] POSITION[integer]", //$NON-NLS-1$
+ "null VDBLess Derby.SQLUDTS CATALOGNAME 1 12 string 128 256 0 0 1 null 1", //$NON-NLS-1$
+ "null VDBLess Derby.SQLUDTS SCHEMAPATTERN 1 12 string 128 256 0 0 1 null 2", //$NON-NLS-1$
+ "null VDBLess Derby.SQLUDTS TYPENAMEPATTERN 1 12 string 128 256 0 0 1 null 3", //$NON-NLS-1$
+ "null VDBLess Derby.SQLUDTS UDTTYPES 1 12 string 128 256 0 0 1 null 4", //$NON-NLS-1$
+ "null VDBLess Derby.SQLUDTS OPTIONS 1 12 string 4000 8000 0 0 1 null 5", //$NON-NLS-1$
+ });
+ }
}
15 years, 5 months
teiid SVN: r1119 - in trunk: client/src/main/java/com/metamatrix/dqp/embedded and 9 other directories.
by teiid-commits@lists.jboss.org
Author: rareddy
Date: 2009-07-10 16:48:29 -0400 (Fri, 10 Jul 2009)
New Revision: 1119
Added:
trunk/client-jdbc/src/main/java/org/teiid/jdbc/EmbeddedProfile.java
trunk/client-jdbc/src/main/java/org/teiid/jdbc/SocketProfile.java
trunk/client-jdbc/src/test/java/org/teiid/jdbc/TestEmbeddedProfile.java
trunk/client-jdbc/src/test/java/org/teiid/jdbc/TestSocketProfile.java
Modified:
trunk/build/kit-embedded/examples/portfolio/java/JDBCClient.java
trunk/client-jdbc/src/main/java/com/metamatrix/jdbc/BaseDataSource.java
trunk/client-jdbc/src/main/java/com/metamatrix/jdbc/MMConnection.java
trunk/client-jdbc/src/main/java/com/metamatrix/jdbc/MMDatabaseMetaData.java
trunk/client-jdbc/src/main/java/com/metamatrix/jdbc/util/MMJDBCURL.java
trunk/client-jdbc/src/main/java/org/teiid/jdbc/TeiidDataSource.java
trunk/client-jdbc/src/main/java/org/teiid/jdbc/TeiidDriver.java
trunk/client-jdbc/src/test/java/com/metamatrix/jdbc/api/AbstractMMQueryTestCase.java
trunk/client-jdbc/src/test/java/com/metamatrix/jdbc/util/TestMMJDBCURL.java
trunk/client-jdbc/src/test/java/org/teiid/jdbc/TestTeiidDriver.java
trunk/client/src/main/java/com/metamatrix/dqp/embedded/DQPEmbeddedProperties.java
trunk/embedded/src/main/java/org/teiid/transport/LogonImpl.java
trunk/test-integration/src/test/java/com/metamatrix/jdbc/TestCase3473.java
trunk/test-integration/src/test/java/com/metamatrix/jdbc/TestMMDatabaseMetaData.java
trunk/test-integration/src/test/java/com/metamatrix/server/integration/TestXQueryServices.java
Log:
TEIID-701: TeiidDriver has been modified to handle the "embedded" based URL format. So, user can now use the TeiidDriver for connecting to the Server instance though socket of invoke embedded runtime.
Modified: trunk/build/kit-embedded/examples/portfolio/java/JDBCClient.java
===================================================================
--- trunk/build/kit-embedded/examples/portfolio/java/JDBCClient.java 2009-07-10 16:41:23 UTC (rev 1118)
+++ trunk/build/kit-embedded/examples/portfolio/java/JDBCClient.java 2009-07-10 20:48:29 UTC (rev 1119)
@@ -35,18 +35,18 @@
System.exit(-1);
}
- System.out.println("Executing using the EmbeddedDriver");
+ System.out.println("Executing using the TeiidDriver");
execute(getDriverConnection(), args[0]);
System.out.println("");
- System.out.println("Executing using the EmbeddedDataSource");
+ System.out.println("Executing using the TeiidDataSource");
// this is showing how to make a Data Source connection.
execute(getDataSourceConnection(), args[0]);
}
static Connection getDriverConnection() throws Exception {
String url = "jdbc:metamatrix:Portfolio";
- Class.forName("com.metamatrix.jdbc.EmbeddedDriver");
+ Class.forName("org.teiid.jdbc.TeiidDriver");
return DriverManager.getConnection(url);
}
Modified: trunk/client/src/main/java/com/metamatrix/dqp/embedded/DQPEmbeddedProperties.java
===================================================================
--- trunk/client/src/main/java/com/metamatrix/dqp/embedded/DQPEmbeddedProperties.java 2009-07-10 16:41:23 UTC (rev 1118)
+++ trunk/client/src/main/java/com/metamatrix/dqp/embedded/DQPEmbeddedProperties.java 2009-07-10 20:48:29 UTC (rev 1119)
@@ -53,7 +53,7 @@
public static final String BOOTURL = "bootURL"; //$NON-NLS-1$
public static final String ENABLE_SOCKETS = "sockets.enabled"; //$NON-NLS-1$
public static final String HOST_ADDRESS = "hostAddress"; //$NON-NLS-1$
-
+ public static final String DQP_BOOTSTRAP_FILE = "bootstrapFile"; //$NON-NLS-1$
public interface BufferService {
/**
Modified: trunk/client-jdbc/src/main/java/com/metamatrix/jdbc/BaseDataSource.java
===================================================================
--- trunk/client-jdbc/src/main/java/com/metamatrix/jdbc/BaseDataSource.java 2009-07-10 16:41:23 UTC (rev 1118)
+++ trunk/client-jdbc/src/main/java/com/metamatrix/jdbc/BaseDataSource.java 2009-07-10 20:48:29 UTC (rev 1119)
@@ -954,7 +954,7 @@
}
- static String getResourceMessage(String key) {
+ protected static String getResourceMessage(String key) {
ResourceBundle messages = ResourceBundle.getBundle(BUNDLE_NAME);
String messageTemplate = messages.getString(key);
return MessageFormat.format(messageTemplate, (Object[])null);
Modified: trunk/client-jdbc/src/main/java/com/metamatrix/jdbc/MMConnection.java
===================================================================
--- trunk/client-jdbc/src/main/java/com/metamatrix/jdbc/MMConnection.java 2009-07-10 16:41:23 UTC (rev 1118)
+++ trunk/client-jdbc/src/main/java/com/metamatrix/jdbc/MMConnection.java 2009-07-10 20:48:29 UTC (rev 1119)
@@ -517,7 +517,7 @@
checkConnection();
if (dbmm == null) {
- dbmm = MMDatabaseMetaData.newInstance(getBaseDriver(), this);
+ dbmm = new MMDatabaseMetaData(this);
}
return dbmm;
}
@@ -938,13 +938,6 @@
((SocketServerConnection)this.serverConn).selectNewServerInstance(this.getDQP());
}
}
-
- public BaseDriver getBaseDriver() {
- if (this.serverConn instanceof SocketServerConnection) {
- return new TeiidDriver();
- }
- return new EmbeddedDriver();
- }
public boolean isSameProcess(MMConnection conn) throws CommunicationException {
return this.serverConn.isSameInstance(conn.serverConn);
Modified: trunk/client-jdbc/src/main/java/com/metamatrix/jdbc/MMDatabaseMetaData.java
===================================================================
--- trunk/client-jdbc/src/main/java/com/metamatrix/jdbc/MMDatabaseMetaData.java 2009-07-10 16:41:23 UTC (rev 1118)
+++ trunk/client-jdbc/src/main/java/com/metamatrix/jdbc/MMDatabaseMetaData.java 2009-07-10 20:48:29 UTC (rev 1119)
@@ -24,6 +24,7 @@
import java.sql.Connection;
import java.sql.DatabaseMetaData;
+import java.sql.Driver;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
@@ -40,6 +41,8 @@
import java.util.Map;
import java.util.logging.Logger;
+import org.teiid.jdbc.TeiidDriver;
+
import com.metamatrix.api.exception.MetaMatrixComponentException;
import com.metamatrix.api.exception.query.QueryMetadataException;
import com.metamatrix.common.types.DataTypeManager;
@@ -306,21 +309,14 @@
// driver's connection object used in constructin this object.
private MMConnection driverConnection;
- private BaseDriver driver;
- static com.metamatrix.jdbc.api.DatabaseMetaData newInstance(BaseDriver driver, MMConnection connection) throws SQLException {
- return new MMDatabaseMetaData(driver, connection);
- }
-
/**
* <p>Constructor which initializes with the connection object on which metadata
* is sought
* @param driver's connection object.
* @throws SQLException if the connection is already closed.
*/
- MMDatabaseMetaData(BaseDriver driver, MMConnection connection) throws SQLException {
- // set driver's connection object
- this.driver = driver;
+ MMDatabaseMetaData(MMConnection connection) {
this.driverConnection = connection;
}
@@ -830,7 +826,7 @@
* @throws SQLException if a database access error occurs.
*/
public int getDatabaseMinorVersion() throws SQLException {
- return this.driver.getMinorVersion();
+ return TeiidDriver.getInstance().getMinorVersion();
}
/**
@@ -839,7 +835,7 @@
* @throws SQLException if a database access error occurs.
*/
public int getDatabaseMajorVersion() throws SQLException {
- return this.driver.getMajorVersion();
+ return TeiidDriver.getInstance().getMajorVersion();
}
/**
@@ -875,7 +871,7 @@
* @throws SQLException if there is an error accessing product release info.
*/
public String getDatabaseProductVersion() throws SQLException {
- return this.driver.getMajorVersion() + "." + this.driver.getMinorVersion(); //$NON-NLS-1$
+ return TeiidDriver.getInstance().getMajorVersion() + "." + TeiidDriver.getInstance().getMinorVersion(); //$NON-NLS-1$
}
/**
@@ -892,7 +888,7 @@
* @return int representing the driver's major version
*/
public int getDriverMajorVersion() {
- return this.driver.getMajorVersion();
+ return TeiidDriver.getInstance().getMajorVersion();
}
/**
@@ -900,7 +896,7 @@
* @return int representing the driver's minor version
*/
public int getDriverMinorVersion() {
- return this.driver.getMinorVersion();
+ return TeiidDriver.getInstance().getMinorVersion();
}
/**
@@ -909,7 +905,7 @@
* @throws SQLException, if the connection is already closed.
*/
public String getDriverName() throws SQLException {
- return this.driver.getDriverName();
+ return TeiidDriver.getInstance().getDriverName();
}
/**
Modified: trunk/client-jdbc/src/main/java/com/metamatrix/jdbc/util/MMJDBCURL.java
===================================================================
--- trunk/client-jdbc/src/main/java/com/metamatrix/jdbc/util/MMJDBCURL.java 2009-07-10 16:41:23 UTC (rev 1118)
+++ trunk/client-jdbc/src/main/java/com/metamatrix/jdbc/util/MMJDBCURL.java 2009-07-10 20:48:29 UTC (rev 1119)
@@ -43,7 +43,7 @@
private static final String JDBC_PROTOCOL = "jdbc:teiid:"; //$NON-NLS-1$
private static final String OLD_JDBC_PROTOCOL = "jdbc:metamatrix:"; //$NON-NLS-1$
- private static final String[] KNOWN_PROPERTIES = {
+ public static final String[] KNOWN_PROPERTIES = {
BaseDataSource.APP_NAME,
BaseDataSource.VDB_NAME,
BaseDataSource.VERSION,
Added: trunk/client-jdbc/src/main/java/org/teiid/jdbc/EmbeddedProfile.java
===================================================================
--- trunk/client-jdbc/src/main/java/org/teiid/jdbc/EmbeddedProfile.java (rev 0)
+++ trunk/client-jdbc/src/main/java/org/teiid/jdbc/EmbeddedProfile.java 2009-07-10 20:48:29 UTC (rev 1119)
@@ -0,0 +1,437 @@
+/*
+ * 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.jdbc;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Enumeration;
+import java.util.List;
+import java.util.Properties;
+import java.util.ResourceBundle;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import com.metamatrix.common.classloader.PostDelegatingClassLoader;
+import com.metamatrix.common.comm.api.ServerConnection;
+import com.metamatrix.common.comm.api.ServerConnectionFactory;
+import com.metamatrix.common.comm.exception.CommunicationException;
+import com.metamatrix.common.comm.exception.ConnectionException;
+import com.metamatrix.common.protocol.MMURLConnection;
+import com.metamatrix.common.protocol.MetaMatrixURLStreamHandlerFactory;
+import com.metamatrix.common.protocol.URLHelper;
+import com.metamatrix.common.util.PropertiesUtils;
+import com.metamatrix.dqp.embedded.DQPEmbeddedProperties;
+import com.metamatrix.jdbc.BaseDataSource;
+import com.metamatrix.jdbc.JDBCPlugin;
+import com.metamatrix.jdbc.MMConnection;
+import com.metamatrix.jdbc.MMSQLException;
+import com.metamatrix.jdbc.util.MMJDBCURL;
+
+
+final class EmbeddedProfile {
+ /**
+ * Match URL like
+ * - jdbc:metamatrix:BQT@c:/foo.properties;version=1..
+ * - jdbc:metamatrix:BQT@c:\\foo.properties;version=1..
+ * - jdbc:metamatrix:BQT@\\foo.properties;version=1..
+ * - jdbc:metamatrix:BQT@/foo.properties;version=1..
+ * - jdbc:metamatrix:BQT@../foo.properties;version=1..
+ * - jdbc:metamatrix:BQT@./foo.properties;version=1..
+ * - jdbc:metamatrix:BQT@file:///c:/foo.properties;version=1..
+ * - jdbc:metamatrix:BQT
+ * - jdbc:metamatrix:BQT;verson=1
+ */
+ static final String URL_PATTERN = "jdbc:(teiid|metamatrix):(\\w+)@(([^;]*)[;]?)((.*)*)"; //$NON-NLS-1$
+ static final String BASE_PATTERN = "jdbc:(teiid|metamatrix):((\\w+)[;]?)(;([^@])+)*"; //$NON-NLS-1$
+
+ private static Logger logger = Logger.getLogger("org.teiid.jdbc"); //$NON-NLS-1$
+
+ private static EmbeddedTransport currentTransport = null;
+ static Pattern urlPattern = Pattern.compile(URL_PATTERN);
+ static Pattern basePattern = Pattern.compile(BASE_PATTERN);
+
+ /**
+ * This method tries to make a connection to the given URL. This class
+ * will return a null if this is not the right driver to connect to the given URL.
+ * @param The URL used to establish a connection.
+ * @return Connection object created
+ * @throws SQLException if it is unable to establish a connection to the MetaMatrix server.
+ */
+ public static Connection connect(String url, Properties info)
+ throws SQLException {
+ Connection conn = null;
+ // create a properties obj if it is null
+ if (info == null) {
+ info = new Properties();
+ } else {
+ info = PropertiesUtils.clone(info);
+ }
+
+ // parse the URL to add it's properties to properties object
+ parseURL(url, info);
+ conn = createConnection(info);
+
+ // logging
+ String logMsg = JDBCPlugin.Util.getString("JDBCDriver.Connection_sucess"); //$NON-NLS-1$
+ logger.fine(logMsg);
+
+ return conn;
+
+ }
+
+ static Connection createConnection(Properties info) throws SQLException{
+
+ // first validate the properties as this may called from the EmbeddedDataSource
+ // and make sure we have all the properties we need.
+ validateProperties(info);
+
+ URL dqpURL;
+ try {
+ dqpURL = URLHelper.buildURL(info.getProperty(DQPEmbeddedProperties.DQP_BOOTSTRAP_FILE));
+ } catch (MalformedURLException e) {
+ throw MMSQLException.create(e);
+ }
+
+ // now create the connection
+ EmbeddedTransport transport = getDQPTransport(dqpURL, info);
+
+ Connection conn = transport.createConnection(dqpURL, info);
+
+ return conn;
+ }
+
+ /**
+ * Get the DQP transport or build the transport if one not available from the
+ * DQP URL supplied. DQP transport contains all the details about DQP.
+ * @param dqpURL - URL to the DQP.properties file
+ * @return EmbeddedTransport
+ * @throws SQLException
+ * @since 4.4
+ */
+ private synchronized static EmbeddedTransport getDQPTransport(URL dqpURL, Properties info) throws SQLException {
+ EmbeddedTransport transport = currentTransport;
+ if (transport == null || !currentTransport.getURL().equals(dqpURL)) {
+ // shutdown any previous instance; we do encourage single instance in a given VM
+ shutdown();
+ try {
+ transport = new EmbeddedTransport(dqpURL, info);
+ } catch (SQLException e) {
+ logger.log(Level.SEVERE, "Could not start the embedded engine", e); //$NON-NLS-1$
+ throw e;
+ }
+ }
+ currentTransport = transport;
+ return transport;
+ }
+
+ /**
+ * This method parses the URL and adds properties to the the properties object. These include required and any optional
+ * properties specified in the URL.
+ * Expected URL format --
+ * jdbc:metamatrix:local:VDB@<pathToConfigFile>logFile=<logFile.log>; logLevel=<logLevel>;txnAutoWrap=<?>;credentials=mycredentials;
+ *
+ * @param The URL needed to be parsed.
+ * @param The properties object which is to be updated with properties in the URL.
+ * @throws SQLException if the URL is not in the expected format.
+ */
+ static void parseURL(String url, Properties info) throws SQLException {
+ if (url == null || url.trim().length() == 0) {
+ String logMsg = getResourceMessage("EmbeddedDriver.URL_must_be_specified"); //$NON-NLS-1$
+ throw new SQLException(logMsg);
+ }
+
+ try {
+ MMJDBCURL jdbcURL = new MMJDBCURL(url);
+
+ // Set the VDB Name
+ info.setProperty(BaseDataSource.VDB_NAME, jdbcURL.getVDBName());
+
+ // Need to resolve the URL fully, if we are using the default URL like
+ // jdbc:metamatrix:<vdbName>.., where as this fully qualifies to
+ // jdbc:metamatrix:<vdbName>@classpath:<vdbName>/mm.properties;...
+ String connectionURL = jdbcURL.getConnectionURL();
+ if (connectionURL == null) {
+ connectionURL = getDefaultConnectionURL();
+ info.setProperty("vdb.definition", jdbcURL.getVDBName()+".vdb"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ info.setProperty(DQPEmbeddedProperties.DQP_BOOTSTRAP_FILE, connectionURL);
+
+ Properties optionalParams = jdbcURL.getProperties();
+ MMJDBCURL.normalizeProperties(info);
+
+ Enumeration keys = optionalParams.keys();
+ while (keys.hasMoreElements()) {
+ String propName = (String)keys.nextElement();
+ // Don't let the URL properties override the passed-in Properties object.
+ if (!info.containsKey(propName)) {
+ info.setProperty(propName, optionalParams.getProperty(propName));
+ }
+ }
+ // add the property only if it is new because they could have
+ // already been specified either through url or otherwise.
+ if(! info.containsKey(BaseDataSource.VDB_VERSION) && jdbcURL.getVDBVersion() != null) {
+ info.setProperty(BaseDataSource.VDB_VERSION, jdbcURL.getVDBVersion());
+ }
+ if(!info.containsKey(BaseDataSource.APP_NAME)) {
+ info.setProperty(BaseDataSource.APP_NAME, BaseDataSource.DEFAULT_APP_NAME);
+ }
+ } catch (Exception e) {
+ throw new SQLException(e);
+ }
+ }
+
+ /**
+ * Create the default connection URL, if one is not supplied
+ * @param jdbcURL
+ * @return default connection URL
+ */
+ static String getDefaultConnectionURL() {
+ return "classpath:/deploy.properties"; //$NON-NLS-1$
+ }
+
+ /**
+ * validate some required properties
+ * @param info the connection properties to be validated
+ * @throws SQLException
+ * @since 4.3
+ */
+ static void validateProperties(Properties info) throws SQLException {
+ // VDB Name has to be there
+ String value = null;
+ value = info.getProperty(BaseDataSource.VDB_NAME);
+ if (value == null || value.trim().length() == 0) {
+ String logMsg = getResourceMessage("MMDataSource.Virtual_database_name_must_be_specified"); //$NON-NLS-1$
+ throw new SQLException(logMsg);
+ }
+
+ }
+
+ public static boolean acceptsURL(String url) {
+ Matcher m = urlPattern.matcher(url);
+ boolean matched = m.matches();
+ if (matched) {
+ // make sure the group (2) which is the name of the file
+ // does not start with mm:// or mms://
+ String name = m.group(3).toLowerCase();
+ return (!name.startsWith("mm://") && !name.startsWith("mms://") && (name.endsWith(".properties")||name.endsWith(".properties;"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+ }
+
+ // Check if this can match our default one, then allow it.
+ m = basePattern.matcher(url);
+ matched = m.matches();
+ return matched;
+ }
+
+
+ /**
+ * Shutdown the DQP instance which has been started using the given URL
+ * @param dqpURL
+ */
+ public static synchronized void shutdown() {
+ if (currentTransport != null) {
+ currentTransport.shutdown();
+ currentTransport = null;
+ }
+ }
+
+ /**
+ * inner class to hold DQP tansportMap object
+ * @since 4.3
+ */
+ static class EmbeddedTransport {
+ private ServerConnectionFactory connectionFactory;
+ private ClassLoader classLoader;
+ private URL url;
+
+ public EmbeddedTransport(URL dqpURL, Properties info) throws SQLException {
+
+ this.url = dqpURL;
+
+ //Load the properties from dqp.properties file
+ Properties props = loadDQPProperties(dqpURL);
+ props.putAll(info);
+
+ props = PropertiesUtils.resolveNestedProperties(props);
+
+ // a non-delegating class loader will be created from where all third party dependent jars can be loaded
+ ArrayList<URL> runtimeClasspathList = new ArrayList<URL>();
+ String libLocation = props.getProperty(DQPEmbeddedProperties.DQP_LIBDIR, "./lib/"); //$NON-NLS-1$
+ if (!libLocation.endsWith("/")) { //$NON-NLS-1$
+ libLocation = libLocation + "/"; //$NON-NLS-1$
+ }
+
+ // find jars in the "lib" directory; patches is reverse alpaha and not case sensitive so small letters then capitals
+ if (!EmbeddedProfile.getDefaultConnectionURL().equals(dqpURL.toString())) {
+ runtimeClasspathList.addAll(libClassPath(dqpURL, libLocation+"patches/", MMURLConnection.REVERSEALPHA)); //$NON-NLS-1$
+ runtimeClasspathList.addAll(libClassPath(dqpURL, libLocation, MMURLConnection.DATE));
+
+ try {
+ String configLocation = props.getProperty(DQPEmbeddedProperties.VDB_DEFINITION, "./deploy/"); //$NON-NLS-1$
+ if (!configLocation.endsWith("/")) { //$NON-NLS-1$
+ configLocation = configLocation + "/"; //$NON-NLS-1$
+ }
+ runtimeClasspathList.add(URLHelper.buildURL(dqpURL, configLocation));
+ } catch(IOException e) {
+ // ignore..
+ }
+ }
+
+ URL[] dqpClassPath = runtimeClasspathList.toArray(new URL[runtimeClasspathList.size()]);
+ this.classLoader = new PostDelegatingClassLoader(dqpClassPath, this.getClass().getClassLoader(), new MetaMatrixURLStreamHandlerFactory());
+
+ String logMsg = getResourceMessage("EmbeddedDriver.use_classpath"); //$NON-NLS-1$
+ logger.log(Level.FINER, logMsg + " " + Arrays.toString(dqpClassPath)); //$NON-NLS-1$
+
+ // Now using this class loader create the connection factory to the dqp.
+ ClassLoader current = Thread.currentThread().getContextClassLoader();
+ try {
+ Thread.currentThread().setContextClassLoader(this.classLoader);
+ String className = "com.metamatrix.jdbc.EmbeddedConnectionFactoryImpl"; //$NON-NLS-1$
+ Class<?> clazz = this.classLoader.loadClass(className);
+ this.connectionFactory = (ServerConnectionFactory)clazz.newInstance();
+ } catch (Exception e) {
+ throw MMSQLException.create(e, "Could not load the embedded server, please ensure that your classpath is set correctly."); //$NON-NLS-1$
+ } finally {
+ Thread.currentThread().setContextClassLoader(current);
+ }
+ }
+
+ URL getURL() {
+ return this.url;
+ }
+
+ /**
+ * Note that this only works when embedded loaded with "mmfile" protocol in the URL.
+ * @param dqpURL
+ * @return
+ */
+ private List<URL> libClassPath (URL dqpURL, String directory, String sortStyle) {
+ ObjectInputStream in = null;
+ ArrayList<URL> urlList = new ArrayList<URL>();
+ try {
+ urlList.add(URLHelper.buildURL(dqpURL, directory));
+ dqpURL = URLHelper.buildURL(dqpURL, directory+"?action=list&filter=.jar&sort="+sortStyle); //$NON-NLS-1$
+ in = new ObjectInputStream(dqpURL.openStream());
+ String[] urls = (String[])in.readObject();
+ for (int i = 0; i < urls.length; i++) {
+ urlList.add(URLHelper.buildURL(urls[i]));
+ }
+ } catch(IOException e) {
+ //ignore, treat as if lib does not exist
+ } catch(ClassNotFoundException e) {
+ //ignore, treat as if lib does not exist
+ } finally {
+ if (in != null) {
+ try{in.close();}catch(IOException e) {}
+ }
+ }
+ return urlList;
+ }
+
+ /**
+ * Load DQP Properties from the URL supplied.
+ * @param dqpURL - URL to the "dqp.properties" object
+ * @return Properties loaded
+ * @throws SQLException
+ */
+ Properties loadDQPProperties(URL dqpURL) throws SQLException {
+ InputStream in = null;
+ try{
+ in = dqpURL.openStream();
+ Properties props = new Properties();
+ props.load(in);
+
+ String logMsg = getResourceMessage("EmbeddedDriver.use_properties"); //$NON-NLS-1$
+ logger.log(Level.FINER, logMsg + props);
+ return props;
+ }catch(IOException e) {
+ String logMsg = getResourceMessage("EmbeddedTransport.invalid_dqpproperties_path", new Object[] {dqpURL}); //$NON-NLS-1$
+ throw MMSQLException.create(e, logMsg);
+ }finally {
+ if (in != null) {
+ try{in.close();}catch(IOException e) {}
+ }
+ }
+ }
+
+ /**
+ * Shutdown the current transport
+ */
+ void shutdown() {
+ this.connectionFactory.shutdown(false);
+ }
+
+ /**
+ * Create a connection to the DQP defined by this transport object based on
+ * properties supplied
+ * @param info
+ * @return Connection
+ */
+ Connection createConnection(URL url, Properties info) throws SQLException {
+ ClassLoader current = null;
+ try {
+ current = Thread.currentThread().getContextClassLoader();
+ Thread.currentThread().setContextClassLoader(classLoader);
+ try {
+ info.setProperty(DQPEmbeddedProperties.BOOTURL, url.toExternalForm());
+ ServerConnection conn = connectionFactory.createConnection(info);
+ return new MMConnection(conn, info, url.toExternalForm());
+ } catch (CommunicationException e) {
+ throw MMSQLException.create(e);
+ } catch (ConnectionException e) {
+ throw MMSQLException.create(e);
+ }
+ } finally {
+ Thread.currentThread().setContextClassLoader(current);
+ }
+ }
+
+ }
+
+ private static final String BUNDLE_NAME = "com.metamatrix.jdbc.basic_i18n"; //$NON-NLS-1$
+
+
+ static String getResourceMessage(String key, Object[] args) {
+ ResourceBundle messages = ResourceBundle.getBundle(BUNDLE_NAME);
+ String messageTemplate = messages.getString(key);
+ return MessageFormat.format(messageTemplate, args);
+ }
+
+
+ static String getResourceMessage(String key) {
+ ResourceBundle messages = ResourceBundle.getBundle(BUNDLE_NAME);
+ String messageTemplate = messages.getString(key);
+ return MessageFormat.format(messageTemplate, (Object[])null);
+ }
+
+}
Property changes on: trunk/client-jdbc/src/main/java/org/teiid/jdbc/EmbeddedProfile.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/client-jdbc/src/main/java/org/teiid/jdbc/SocketProfile.java
===================================================================
--- trunk/client-jdbc/src/main/java/org/teiid/jdbc/SocketProfile.java (rev 0)
+++ trunk/client-jdbc/src/main/java/org/teiid/jdbc/SocketProfile.java 2009-07-10 20:48:29 UTC (rev 1119)
@@ -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.jdbc;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.DriverPropertyInfo;
+import java.sql.SQLException;
+import java.util.Enumeration;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Properties;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import com.metamatrix.common.api.MMURL;
+import com.metamatrix.common.comm.api.ServerConnection;
+import com.metamatrix.common.comm.exception.CommunicationException;
+import com.metamatrix.common.comm.exception.ConnectionException;
+import com.metamatrix.common.comm.platform.socket.client.SocketServerConnectionFactory;
+import com.metamatrix.common.util.ApplicationInfo;
+import com.metamatrix.common.util.PropertiesUtils;
+import com.metamatrix.core.MetaMatrixCoreException;
+import com.metamatrix.jdbc.BaseDataSource;
+import com.metamatrix.jdbc.BaseDriver;
+import com.metamatrix.jdbc.JDBCPlugin;
+import com.metamatrix.jdbc.MMConnection;
+import com.metamatrix.jdbc.MMSQLException;
+import com.metamatrix.jdbc.api.ConnectionProperties;
+import com.metamatrix.jdbc.util.MMJDBCURL;
+
+/**
+ * <p> The java.sql.DriverManager class uses this class to connect to Teiid Server or Teiid Embedded.
+ * The TeiidDriver class has a static initializer, which
+ * is used to instantiate and register itself with java.sql.DriverManager. The
+ * DriverManager's <code>getConnection</code> method calls <code>connect</code>
+ * method on available registered drivers. </p>
+ */
+
+final class SocketProfile {
+
+ private static Logger logger = Logger.getLogger("org.teiid.jdbc"); //$NON-NLS-1$
+
+ /**
+ * Suports JDBC URLS of format
+ * - jdbc:teiid:BQT@mm://localhost:####;version=1
+ * - jdbc:teiid:BQT@mms://localhost:####;version=1
+ * - jdbc:teiid:BQT@mm(s)://host1:####,host2:####,host3:####;version=1
+ */
+
+ // This host/port pattern allows just a . or a - to be in the host part.
+ static final String HOST_PORT_PATTERN = "[\\p{Alnum}\\.\\-]+:\\d+"; //$NON-NLS-1$
+ static final String URL_PATTERN = "jdbc:(metamatrix|teiid):(\\w+)@((mm[s]?://"+HOST_PORT_PATTERN+"(,"+HOST_PORT_PATTERN+")*)[;]?){1}((.*)*)"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ static Pattern urlPattern = Pattern.compile(URL_PATTERN);
+
+ /**
+ * This method tries to make a connection to the given URL. This class
+ * will return a null if this is not the right driver to connect to the given URL.
+ * @param The URL used to establish a connection.
+ * @return Connection object created
+ * @throws SQLException if it is unable to establish a connection to the server.
+ */
+ public static Connection connect(String url, Properties info) throws SQLException {
+
+ MMConnection myConnection = null;
+ // create a properties obj if it is null
+ if(info == null) {
+ info = new Properties();
+ } else {
+ info = PropertiesUtils.clone(info);
+ }
+
+ try {
+ // parse the URL to add it's properties to properties object
+ parseURL(url, info);
+
+ myConnection = createConnection(url, info);
+ } catch (MetaMatrixCoreException e) {
+ logger.log(Level.SEVERE, "Could not create connection", e); //$NON-NLS-1$
+ throw MMSQLException.create(e, e.getMessage());
+ }
+
+ // logging
+ String logMsg = JDBCPlugin.Util.getString("JDBCDriver.Connection_sucess"); //$NON-NLS-1$
+ logger.fine(logMsg);
+
+ return myConnection;
+ }
+
+ static MMConnection createConnection(String url, Properties info)
+ throws ConnectionException, CommunicationException {
+
+ ServerConnection serverConn = SocketServerConnectionFactory.getInstance().createConnection(info);
+
+ // construct a MMConnection object.
+ MMConnection connection = new MMConnection(serverConn, info, url);
+ return connection;
+ }
+
+ /**
+ * This method parses the URL and adds properties to the the properties object.
+ * These include required and any optional properties specified in the URL.
+ * @param The URL needed to be parsed.
+ * @param The properties object which is to be updated with properties in the URL.
+ * @throws SQLException if the URL is not in the expected format.
+ */
+ protected static void parseURL(String url, Properties info) throws SQLException {
+ if(url == null) {
+ String msg = JDBCPlugin.Util.getString("MMDriver.urlFormat"); //$NON-NLS-1$
+ throw new MMSQLException(msg);
+ }
+ try {
+ MMJDBCURL jdbcURL = new MMJDBCURL(url);
+ info.setProperty(BaseDataSource.VDB_NAME, jdbcURL.getVDBName());
+ info.setProperty(MMURL.CONNECTION.SERVER_URL, jdbcURL.getConnectionURL());
+ Properties optionalParams = jdbcURL.getProperties();
+ MMJDBCURL.normalizeProperties(info);
+ Enumeration keys = optionalParams.keys();
+ while (keys.hasMoreElements()) {
+ String propName = (String)keys.nextElement();
+ // Don't let the URL properties override the passed-in Properties object.
+ if (!info.containsKey(propName)) {
+ info.setProperty(propName, optionalParams.getProperty(propName));
+ }
+ }
+ // add the property only if it is new because they could have
+ // already been specified either through url or otherwise.
+ if(!info.containsKey(BaseDataSource.VDB_VERSION) && jdbcURL.getVDBVersion() != null) {
+ info.setProperty(BaseDataSource.VDB_VERSION, jdbcURL.getVDBVersion());
+ }
+ if(!info.containsKey(BaseDataSource.APP_NAME)) {
+ info.setProperty(BaseDataSource.APP_NAME, BaseDataSource.DEFAULT_APP_NAME);
+ }
+
+ } catch(IllegalArgumentException iae) {
+ throw new MMSQLException(JDBCPlugin.Util.getString("MMDriver.urlFormat")); //$NON-NLS-1$
+ }
+ }
+
+
+ public static boolean acceptsURL(String url) {
+ Matcher m = urlPattern.matcher(url);
+ return m.matches();
+ }
+}
+
+
Property changes on: trunk/client-jdbc/src/main/java/org/teiid/jdbc/SocketProfile.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/client-jdbc/src/main/java/org/teiid/jdbc/TeiidDataSource.java
===================================================================
--- trunk/client-jdbc/src/main/java/org/teiid/jdbc/TeiidDataSource.java 2009-07-10 16:41:23 UTC (rev 1118)
+++ trunk/client-jdbc/src/main/java/org/teiid/jdbc/TeiidDataSource.java 2009-07-10 20:48:29 UTC (rev 1119)
@@ -22,11 +22,14 @@
package org.teiid.jdbc;
+import java.net.URL;
import java.sql.Connection;
+import java.sql.SQLException;
import java.util.Properties;
import com.metamatrix.common.api.MMURL;
-import com.metamatrix.core.MetaMatrixCoreException;
+import com.metamatrix.common.protocol.URLHelper;
+import com.metamatrix.dqp.embedded.DQPEmbeddedProperties;
import com.metamatrix.jdbc.BaseDataSource;
import com.metamatrix.jdbc.JDBCPlugin;
import com.metamatrix.jdbc.MMSQLException;
@@ -97,7 +100,9 @@
*/
private String autoFailover;
- private String discoveryStrategy;
+ private String discoveryStrategy;
+
+ private String bootstrapFile;
/**
* Constructor for MMDataSource.
@@ -112,8 +117,6 @@
protected Properties buildProperties(final String userName, final String password) {
Properties props = super.buildProperties(userName, password);
- props.setProperty(MMURL.CONNECTION.SERVER_URL,this.buildServerURL());
-
if (this.getAutoFailover() != null) {
props.setProperty(MMURL.CONNECTION.AUTO_FAILOVER, this.getAutoFailover());
}
@@ -127,7 +130,15 @@
}
return props;
- }
+ }
+
+ private Properties buildServerProperties(final String userName, final String password) {
+ Properties props = buildProperties(userName, password);
+
+ props.setProperty(MMURL.CONNECTION.SERVER_URL,this.buildServerURL());
+
+ return props;
+ }
protected String buildServerURL() {
if ( this.alternateServers == null ) {
@@ -212,17 +223,42 @@
* @throws java.sql.SQLException if a database-access error occurs
* @see javax.sql.DataSource#getConnection(java.lang.String, java.lang.String)
*/
- public Connection getConnection(String userName, String password) throws java.sql.SQLException {
- try {
- validateProperties(userName,password);
- final Properties props = buildProperties(userName, password);
- final TeiidDriver driver = new TeiidDriver();
- return driver.createConnection(buildURL(), props);
- } catch (MetaMatrixCoreException e) {
- throw MMSQLException.create(e, e.getMessage());
- }
- }
-
+ public Connection getConnection(String userName, String password) throws java.sql.SQLException {
+ final TeiidDriver driver = new TeiidDriver();
+
+ // check if this is embedded connection
+ if (getEmbeddedBootstrapFile() != null) {
+ validateEmbeddedProperties(userName,password);
+ final Properties props = buildEmbeddedProperties(userName, password);
+ String url = new MMJDBCURL(getDatabaseName(), getEmbeddedBootstrapFile(), props).getJDBCURL();
+ return driver.connect(url, props);
+ }
+
+ // if not proceed with socket connection.
+ validateProperties(userName,password);
+ final Properties props = buildServerProperties(userName, password);
+ return driver.connect(buildURL(), props);
+
+ }
+
+ private Properties buildEmbeddedProperties(final String userName, final String password) {
+ Properties props = buildProperties(userName, password);
+
+ if (this.getEmbeddedBootstrapFile().equals(EmbeddedProfile.getDefaultConnectionURL())) {
+ props.put(DQPEmbeddedProperties.VDB_DEFINITION, getDatabaseName() + ".vdb"); //$NON-NLS-1$
+ }
+ props.put(DQPEmbeddedProperties.DQP_BOOTSTRAP_FILE, this.bootstrapFile);
+ return props;
+ }
+
+ private void validateEmbeddedProperties(final String userName, final String password) throws java.sql.SQLException {
+ super.validateProperties(userName, password);
+ String reason = reasonWhyInvalidConfigFile(this.bootstrapFile);
+ if (reason != null) {
+ throw new SQLException(reason);
+ }
+ }
+
/**
* @see java.lang.Object#toString()
*/
@@ -485,6 +521,46 @@
public void setDiscoveryStrategy(String discoveryStrategy) {
this.discoveryStrategy = discoveryStrategy;
}
-
+
+ /**
+ * Returns the path and file name from which embedded DQP configuration information will be read.
+ *
+ * @return the name of the config file for this data source; may be null
+ */
+ public String getEmbeddedBootstrapFile() {
+ return bootstrapFile;
+ }
+
+ /**
+ * Sets file name from which embedded DQP configuration information * will be read.
+ *
+ * @param configFile
+ * The name of the config file name to set
+ */
+ public void setEmbeddedBootstrapFile(final String configFile) {
+ this.bootstrapFile = configFile;
+ }
+
+ /**
+ * Return the reason why the supplied config file may be invalid, or null if it is considered valid.
+ *
+ * @param configFile
+ * a possible value for the property
+ * @return the reason why the property is invalid, or null if it is considered valid
+ * @see #setEmbeddedBootstrapFile(String)
+ */
+ public static String reasonWhyInvalidConfigFile(final String configFile) {
+ if(configFile == null) {
+ return getResourceMessage("EmbeddedDataSource.The_configFile_property_is_null"); //$NON-NLS-1$
+ }
+
+ try {
+ URL url = URLHelper.buildURL(configFile);
+ url.openStream();
+ } catch (Exception e) {
+ return getResourceMessage("EmbeddedDataSource.The_configFile_does_not_exist_or_cant_be_read"); //$NON-NLS-1$
+ }
+ return null;
+ }
}
Modified: trunk/client-jdbc/src/main/java/org/teiid/jdbc/TeiidDriver.java
===================================================================
--- trunk/client-jdbc/src/main/java/org/teiid/jdbc/TeiidDriver.java 2009-07-10 16:41:23 UTC (rev 1118)
+++ trunk/client-jdbc/src/main/java/org/teiid/jdbc/TeiidDriver.java 2009-07-10 20:48:29 UTC (rev 1119)
@@ -23,6 +23,7 @@
package org.teiid.jdbc;
import java.sql.Connection;
+import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.DriverPropertyInfo;
import java.sql.SQLException;
@@ -32,50 +33,32 @@
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
import com.metamatrix.common.api.MMURL;
-import com.metamatrix.common.comm.api.ServerConnection;
-import com.metamatrix.common.comm.exception.CommunicationException;
-import com.metamatrix.common.comm.exception.ConnectionException;
-import com.metamatrix.common.comm.platform.socket.client.SocketServerConnectionFactory;
import com.metamatrix.common.util.ApplicationInfo;
-import com.metamatrix.common.util.PropertiesUtils;
-import com.metamatrix.core.MetaMatrixCoreException;
import com.metamatrix.jdbc.BaseDataSource;
-import com.metamatrix.jdbc.BaseDriver;
import com.metamatrix.jdbc.JDBCPlugin;
-import com.metamatrix.jdbc.MMConnection;
import com.metamatrix.jdbc.MMSQLException;
-import com.metamatrix.jdbc.api.ConnectionProperties;
import com.metamatrix.jdbc.util.MMJDBCURL;
/**
- * <p> The java.sql.DriverManager class uses this class to connect to Teiid Server or Teiid Embedded.
- * The TeiidDriver class has a static initializer, which
- * is used to instantiate and register itself with java.sql.DriverManager. The
- * DriverManager's <code>getConnection</code> method calls <code>connect</code>
- * method on available registered drivers. </p>
+ * JDBC Driver class for Teiid Embedded and Teiid Server. This class automatically registers with the
+ * {@link DriverManager}
+ *
+ * The accepted URL format for the connection
+ * <ul>
+ * <li> Server/socket connection:<b> jdbc:teiid:<vdb-name>@mm[s]://<server-name>:<port>;[user=<user-name>][password=<user-password>][other-properties]*</b>
+ * <li> Embedded connection:<b> jdbc:teiid:<vdb-name>@<file-path-to-deploy.properties>;[user=<user-name>][password=<user-password>][other-properties]*</b>
+ * </ul>
+ * The user, password properties are needed if the user authentication is turned on. All the "other-properties" are simple name value pairs.
+ * Look at {@link MMJDBCURL} KNOWN_PROPERTIES for list of known properties allowed.
*/
-public final class TeiidDriver extends BaseDriver {
+public final class TeiidDriver implements Driver {
+
private static Logger logger = Logger.getLogger("org.teiid.jdbc"); //$NON-NLS-1$
+ static final String DRIVER_NAME = "Teiid JDBC Driver"; //$NON-NLS-1$
- static final String DRIVER_NAME = "Teiid JDBC Driver"; //$NON-NLS-1$
-
- /**
- * Suports JDBC URLS of format
- * - jdbc:teiid:BQT@mm://localhost:####;version=1
- * - jdbc:teiid:BQT@mms://localhost:####;version=1
- * - jdbc:teiid:BQT@mm(s)://host1:####,host2:####,host3:####;version=1
- */
-
- // This host/port pattern allows just a . or a - to be in the host part.
- static final String HOST_PORT_PATTERN = "[\\p{Alnum}\\.\\-]+:\\d+"; //$NON-NLS-1$
- static final String URL_PATTERN = "jdbc:(metamatrix|teiid):(\\w+)@((mm[s]?://"+HOST_PORT_PATTERN+"(,"+HOST_PORT_PATTERN+")*)[;]?){1}((.*)*)"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- static Pattern urlPattern = Pattern.compile(URL_PATTERN);
-
private static TeiidDriver INSTANCE = new TeiidDriver();
// Static initializer
@@ -101,7 +84,7 @@
}
/**
- * This method tries to make a metamatrix connection to the given URL. This class
+ * This method tries to make a connection to the given URL. This class
* will return a null if this is not the right driver to connect to the given URL.
* @param The URL used to establish a connection.
* @return Connection object created
@@ -109,102 +92,26 @@
*/
public Connection connect(String url, Properties info) throws SQLException {
- MMConnection myConnection = null;
- // create a properties obj if it is null
- if(info == null) {
- info = new Properties();
- } else {
- info = PropertiesUtils.clone(info);
- }
-
- // The url provided is in the correct format.
- if (!acceptsURL(url)) {
- return null;
- }
-
- try {
- // parse the URL to add it's properties to properties object
- parseURL(url, info);
-
- myConnection = createConnection(url, info);
- } catch (MetaMatrixCoreException e) {
- logger.log(Level.SEVERE, "Could not create connection", e); //$NON-NLS-1$
- throw MMSQLException.create(e, e.getMessage());
- }
-
- // logging
- String logMsg = JDBCPlugin.Util.getString("JDBCDriver.Connection_sucess"); //$NON-NLS-1$
- logger.fine(logMsg);
-
- return myConnection;
+ if (EmbeddedProfile.acceptsURL(url)) {
+ return EmbeddedProfile.connect(url, info);
+ }
+ else if (SocketProfile.acceptsURL(url)) {
+ return SocketProfile.connect(url, info);
+ }
+ return null;
}
-
- MMConnection createConnection(String url, Properties info)
- throws ConnectionException, CommunicationException {
-
- ServerConnection serverConn = SocketServerConnectionFactory.getInstance().createConnection(info);
-
- // construct a MMConnection object.
- MMConnection connection = new MMConnection(serverConn, info, url);
- return connection;
- }
-
- /**
- * This method parses the URL and adds properties to the the properties object.
- * These include required and any optional properties specified in the URL.
- * Expected URL format -- jdbc:metamatrix:local:VDB@server:port;version=1;user=logon;
- * password=pw;logFile=<logFile.log>;
- * logLevel=<logLevel>;txnAutoWrap=<?>;credentials=mycredentials
- * @param The URL needed to be parsed.
- * @param The properties object which is to be updated with properties in the URL.
- * @throws SQLException if the URL is not in the expected format.
- */
- protected void parseURL(String url, Properties info) throws SQLException {
- if(url == null) {
- String msg = JDBCPlugin.Util.getString("MMDriver.urlFormat"); //$NON-NLS-1$
- throw new MMSQLException(msg);
- }
- try {
- MMJDBCURL jdbcURL = new MMJDBCURL(url);
- info.setProperty(BaseDataSource.VDB_NAME, jdbcURL.getVDBName());
- info.setProperty(MMURL.CONNECTION.SERVER_URL, jdbcURL.getConnectionURL());
- Properties optionalParams = jdbcURL.getProperties();
- MMJDBCURL.normalizeProperties(info);
- Enumeration keys = optionalParams.keys();
- while (keys.hasMoreElements()) {
- String propName = (String)keys.nextElement();
- // Don't let the URL properties override the passed-in Properties object.
- if (!info.containsKey(propName)) {
- info.setProperty(propName, optionalParams.getProperty(propName));
- }
- }
- // add the property only if it is new because they could have
- // already been specified either through url or otherwise.
- if(!info.containsKey(BaseDataSource.VDB_VERSION) && jdbcURL.getVDBVersion() != null) {
- info.setProperty(BaseDataSource.VDB_VERSION, jdbcURL.getVDBVersion());
- }
- if(!info.containsKey(BaseDataSource.APP_NAME)) {
- info.setProperty(BaseDataSource.APP_NAME, BaseDataSource.DEFAULT_APP_NAME);
- }
-
- } catch(IllegalArgumentException iae) {
- throw new MMSQLException(JDBCPlugin.Util.getString("MMDriver.urlFormat")); //$NON-NLS-1$
- }
- }
/**
* Returns true if the driver thinks that it can open a connection to the given URL.
- * Typically drivers will return true if they understand the subprotocol specified
- * in the URL and false if they don't.
- * Expected URL format is
- * jdbc:metamatrix:subprotocol:VDB@server:port;version=1;logFile=<logFile.log>;logLevel=<logLevel>;txnAutoWrap=<?>
+ * Expected URL format for server mode is
+ * jdbc:teiid::VDB@mm://server:port;version=1;user=username;password=password
+ *
* @param The URL used to establish a connection.
* @return A boolean value indicating whether the driver understands the subprotocol.
* @throws SQLException, should never occur
*/
public boolean acceptsURL(String url) throws SQLException {
- Matcher m = urlPattern.matcher(url);
- return m.matches();
+ return EmbeddedProfile.acceptsURL(url) || SocketProfile.acceptsURL(url);
}
/**
@@ -223,27 +130,37 @@
return ApplicationInfo.getInstance().getMinorReleaseVersion();
}
- /**
- * @see com.metamatrix.jdbc.BaseDriver#getDriverName()
- * @since 4.3
- */
public String getDriverName() {
return DRIVER_NAME;
}
- @Override
- protected List<DriverPropertyInfo> getAdditionalPropertyInfo(String url,
- Properties info) {
- List<DriverPropertyInfo> dpis = new LinkedList<DriverPropertyInfo>();
- DriverPropertyInfo dpi = new DriverPropertyInfo(MMURL.CONNECTION.SERVER_URL, info.getProperty(MMURL.CONNECTION.SERVER_URL));
- dpi.required = true;
- dpis.add(dpi);
- dpis.add(new DriverPropertyInfo(BaseDataSource.USER_NAME, info.getProperty(BaseDataSource.USER_NAME)));
- dpis.add(new DriverPropertyInfo(BaseDataSource.PASSWORD, info.getProperty(BaseDataSource.PASSWORD)));
- dpis.add(new DriverPropertyInfo(ConnectionProperties.PROP_CLIENT_SESSION_PAYLOAD, info.getProperty(BaseDataSource.PASSWORD)));
- return dpis;
- }
+ public DriverPropertyInfo[] getPropertyInfo(String url, Properties info) throws SQLException {
+ if(info == null) {
+ info = new Properties();
+ }
+
+ // construct list of driverPropertyInfo objects
+ List<DriverPropertyInfo> driverProps = new LinkedList<DriverPropertyInfo>();
+
+ for (String property: MMJDBCURL.KNOWN_PROPERTIES) {
+ DriverPropertyInfo dpi = new DriverPropertyInfo(property, info.getProperty(property));
+ driverProps.add(dpi);
+ }
+
+ // create an array of DriverPropertyInfo objects
+ DriverPropertyInfo [] propInfo = new DriverPropertyInfo[driverProps.size()];
+
+ // copy the elements from the list to the array
+ return driverProps.toArray(propInfo);
+ }
+ /**
+ * This method returns true if the driver passes jdbc compliance tests.
+ * @return true if the driver is jdbc complaint, else false.
+ */
+ public boolean jdbcCompliant() {
+ return false;
+ }
}
Modified: trunk/client-jdbc/src/test/java/com/metamatrix/jdbc/api/AbstractMMQueryTestCase.java
===================================================================
--- trunk/client-jdbc/src/test/java/com/metamatrix/jdbc/api/AbstractMMQueryTestCase.java 2009-07-10 16:41:23 UTC (rev 1118)
+++ trunk/client-jdbc/src/test/java/com/metamatrix/jdbc/api/AbstractMMQueryTestCase.java 2009-07-10 20:48:29 UTC (rev 1119)
@@ -23,7 +23,9 @@
package com.metamatrix.jdbc.api;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
import java.io.BufferedReader;
import java.io.File;
@@ -40,9 +42,9 @@
import org.junit.After;
import org.teiid.adminapi.Admin;
+import org.teiid.jdbc.TeiidDriver;
import com.metamatrix.core.util.UnitTestUtil;
-import com.metamatrix.jdbc.EmbeddedDriver;
import com.metamatrix.script.io.MetadataReader;
import com.metamatrix.script.io.ResultSetReader;
import com.metamatrix.script.io.StringArrayReader;
@@ -56,7 +58,7 @@
public class AbstractMMQueryTestCase {
static {
- new EmbeddedDriver();
+ new TeiidDriver();
}
protected com.metamatrix.jdbc.api.Connection internalConnection = null;
Modified: trunk/client-jdbc/src/test/java/com/metamatrix/jdbc/util/TestMMJDBCURL.java
===================================================================
--- trunk/client-jdbc/src/test/java/com/metamatrix/jdbc/util/TestMMJDBCURL.java 2009-07-10 16:41:23 UTC (rev 1118)
+++ trunk/client-jdbc/src/test/java/com/metamatrix/jdbc/util/TestMMJDBCURL.java 2009-07-10 20:48:29 UTC (rev 1119)
@@ -23,16 +23,12 @@
package com.metamatrix.jdbc.util;
import java.net.URLEncoder;
-import java.sql.DriverManager;
-import java.sql.SQLException;
import java.util.Properties;
import junit.framework.TestCase;
import com.metamatrix.common.api.MMURL;
import com.metamatrix.jdbc.BaseDataSource;
-import com.metamatrix.jdbc.EmbeddedDriver;
-import com.metamatrix.jdbc.MMDriver;
import com.metamatrix.jdbc.api.ConnectionProperties;
import com.metamatrix.jdbc.api.ExecutionProperties;
@@ -331,4 +327,21 @@
assertEquals("mm://slwxp172:44401,slabc123:12345", result); //$NON-NLS-1$
}
+ public void testBuildEmbeedURL() {
+ MMJDBCURL url = new MMJDBCURL("vdb", "/home/foo/deploy.properties", new Properties()); //$NON-NLS-1$ //$NON-NLS-2$
+ assertEquals("jdbc:teiid:vdb@/home/foo/deploy.properties", url.getJDBCURL()); //$NON-NLS-1$
+
+ Properties p = new Properties();
+ p.setProperty("user", "test"); //$NON-NLS-1$ //$NON-NLS-2$
+ p.setProperty("password", "pass"); //$NON-NLS-1$ //$NON-NLS-2$
+ p.setProperty("autoFailover", "true"); //$NON-NLS-1$ //$NON-NLS-2$
+ p.setProperty("any", "thing"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ url = new MMJDBCURL("vdb", "/home/foo/deploy.properties", p); //$NON-NLS-1$ //$NON-NLS-2$
+ assertTrue(url.getJDBCURL().startsWith("jdbc:teiid:vdb@/home/foo/deploy.properties;user=test;")); //$NON-NLS-1$
+ assertTrue(url.getJDBCURL().indexOf("any=thing")!=-1); //$NON-NLS-1$
+ assertTrue(url.getJDBCURL().indexOf("password=pass")!=-1); //$NON-NLS-1$
+ assertTrue(url.getJDBCURL().indexOf("autoFailover=true")!=-1); //$NON-NLS-1$
+
+ }
}
Added: trunk/client-jdbc/src/test/java/org/teiid/jdbc/TestEmbeddedProfile.java
===================================================================
--- trunk/client-jdbc/src/test/java/org/teiid/jdbc/TestEmbeddedProfile.java (rev 0)
+++ trunk/client-jdbc/src/test/java/org/teiid/jdbc/TestEmbeddedProfile.java 2009-07-10 20:48:29 UTC (rev 1119)
@@ -0,0 +1,158 @@
+/*
+ * 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.jdbc;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.sql.DriverManager;
+import java.sql.SQLException;
+import java.util.Properties;
+
+import org.junit.Test;
+
+import com.metamatrix.dqp.embedded.DQPEmbeddedProperties;
+import com.metamatrix.jdbc.BaseDataSource;
+import com.metamatrix.jdbc.api.ExecutionProperties;
+
+
+public class TestEmbeddedProfile {
+ EmbeddedProfile EmbeddedProfile = new EmbeddedProfile();
+
+ /*
+ * Test method for 'com.metamatrix.jdbc.EmbeddedEmbeddedProfile.acceptsURL(String)'
+ * // (\\w:[\\\\,\\/]|file:\\/\\/|\\/|\\\\|(\\.){1,2}){1}
+ */
+ @Test public void testAcceptsURL() {
+// // Windows Path
+ assertTrue(org.teiid.jdbc.EmbeddedProfile.acceptsURL("jdbc:metamatrix:BQT@c:\\metamatrix\\dqp\\dqp.properties")); //$NON-NLS-1$
+ assertTrue(org.teiid.jdbc.EmbeddedProfile.acceptsURL("jdbc:metamatrix:BQT@c:\\metamatrix\\dqp\\dqp.properties;version=1")); //$NON-NLS-1$
+ assertTrue(org.teiid.jdbc.EmbeddedProfile.acceptsURL("jdbc:metamatrix:BQT@c:\\metamatrix\\dqp\\dqp.properties;version=1;txnAutoWrap=ON;partialResultsMode=YES")); //$NON-NLS-1$
+
+ // Alternative windows path
+ assertTrue(org.teiid.jdbc.EmbeddedProfile.acceptsURL("jdbc:metamatrix:BQT@c:/metamatrix/dqp/dqp.properties")); //$NON-NLS-1$
+ assertTrue(org.teiid.jdbc.EmbeddedProfile.acceptsURL("jdbc:metamatrix:BQT@c:/metamatrix/dqp/dqp.properties;version=1")); //$NON-NLS-1$
+ assertTrue(org.teiid.jdbc.EmbeddedProfile.acceptsURL("jdbc:metamatrix:BQT@c:/metamatrix/dqp/dqp.properties;version=1;txnAutoWrap=ON;partialResultsMode=YES")); //$NON-NLS-1$
+
+ // Abosolute path (Unix or windows)
+ assertTrue(org.teiid.jdbc.EmbeddedProfile.acceptsURL("jdbc:metamatrix:BQT@/metamatrix/dqp/dqp.properties")); //$NON-NLS-1$
+ assertTrue(org.teiid.jdbc.EmbeddedProfile.acceptsURL("jdbc:metamatrix:BQT@/metamatrix/dqp/dqp.properties;version=1")); //$NON-NLS-1$
+ assertTrue(org.teiid.jdbc.EmbeddedProfile.acceptsURL("jdbc:metamatrix:BQT@/metamatrix/dqp/dqp.properties;version=1;txnAutoWrap=ON;partialResultsMode=YES")); //$NON-NLS-1$
+
+ // relative path
+ assertTrue(org.teiid.jdbc.EmbeddedProfile.acceptsURL("jdbc:metamatrix:BQT@../../metamatrix/dqp/dqp.properties")); //$NON-NLS-1$
+ assertTrue(org.teiid.jdbc.EmbeddedProfile.acceptsURL("jdbc:metamatrix:BQT@../../metamatrix/dqp/dqp.properties;version=1")); //$NON-NLS-1$
+ assertTrue(org.teiid.jdbc.EmbeddedProfile.acceptsURL("jdbc:metamatrix:BQT@../../metamatrix/dqp/dqp.properties;version=1;txnAutoWrap=ON;partialResultsMode=YES")); //$NON-NLS-1$
+
+ // File URL should be supported (not sure)
+ assertTrue(org.teiid.jdbc.EmbeddedProfile.acceptsURL("jdbc:metamatrix:BQT@file:///c:/metamatrix/dqp/dqp.properties")); //$NON-NLS-1$
+ assertTrue(org.teiid.jdbc.EmbeddedProfile.acceptsURL("jdbc:metamatrix:BQT@testdata/dqp/dqp.properties;partialResultsMode=true")); //$NON-NLS-1$
+
+ // ClassPath based URL
+ assertTrue(org.teiid.jdbc.EmbeddedProfile.acceptsURL("jdbc:metamatrix:BQT@classpath:/dqp.properties;partialResultsMode=true")); //$NON-NLS-1$
+
+ // These are specific to the MMorg.teiid.jdbc.EmbeddedProfile and should not be suported
+ assertFalse(org.teiid.jdbc.EmbeddedProfile.acceptsURL("jdbc:metamatrix:BQT@mm://host:7001;version=1")); //$NON-NLS-1$
+ assertFalse(org.teiid.jdbc.EmbeddedProfile.acceptsURL("jdbc:metamatrix:BQT@mms://host:7001;version=1")); //$NON-NLS-1$
+ //assertFalse(org.teiid.jdbc.EmbeddedProfile.acceptsURL("jdbc:metamatrix:BQT@http://host:7001;version=1"));
+
+ assertTrue(org.teiid.jdbc.EmbeddedProfile.acceptsURL("jdbc:metamatrix:BQT")); //$NON-NLS-1$
+ assertFalse(org.teiid.jdbc.EmbeddedProfile.acceptsURL("jdbc:metamatrix:BQT!/path/foo.properties")); //$NON-NLS-1$
+ assertTrue(org.teiid.jdbc.EmbeddedProfile.acceptsURL("jdbc:metamatrix:BQT;")); //$NON-NLS-1$
+ assertTrue(org.teiid.jdbc.EmbeddedProfile.acceptsURL("jdbc:metamatrix:BQT;version=1;logFile=foo.txt")); //$NON-NLS-1$
+ }
+
+ @Test public void testParseURL() throws SQLException{
+ Properties p = new Properties();
+ org.teiid.jdbc.EmbeddedProfile.parseURL("jdbc:metamatrix:BQT@c:\\metamatrix\\dqp\\dqp.properties", p); //$NON-NLS-1$
+ assertTrue(p.getProperty(BaseDataSource.VDB_NAME).equals("BQT")); //$NON-NLS-1$
+ assertEquals("c:\\metamatrix\\dqp\\dqp.properties", p.getProperty(DQPEmbeddedProperties.DQP_BOOTSTRAP_FILE)); //$NON-NLS-1$
+ assertEquals(3, p.size());
+ }
+
+ @Test public void testParseURL2() throws SQLException {
+ Properties p = new Properties();
+ org.teiid.jdbc.EmbeddedProfile.parseURL("jdbc:metamatrix:BQT@\\metamatrix\\dqp\\dqp.properties;version=3", p); //$NON-NLS-1$
+ assertTrue(p.getProperty(BaseDataSource.VDB_NAME).equals("BQT")); //$NON-NLS-1$
+ assertEquals("\\metamatrix\\dqp\\dqp.properties", p.getProperty(DQPEmbeddedProperties.DQP_BOOTSTRAP_FILE)); //$NON-NLS-1$
+ assertTrue(p.getProperty(BaseDataSource.VDB_VERSION).equals("3")); //$NON-NLS-1$
+ assertTrue(p.getProperty(BaseDataSource.VERSION).equals("3")); //$NON-NLS-1$
+ assertEquals(5, p.size());
+ }
+
+ @Test public void testParseURL3() throws SQLException{
+ Properties p = new Properties();
+ org.teiid.jdbc.EmbeddedProfile.parseURL("jdbc:metamatrix:BQT@/metamatrix/dqp/dqp.properties;version=4;txnAutoWrap=ON;partialResultsMode=YES;", p); //$NON-NLS-1$
+ assertTrue(p.getProperty(BaseDataSource.VDB_NAME).equals("BQT")); //$NON-NLS-1$
+ assertTrue(p.getProperty(BaseDataSource.VDB_VERSION).equals("4")); //$NON-NLS-1$
+ assertTrue(p.getProperty(BaseDataSource.VERSION).equals("4")); //$NON-NLS-1$
+ assertTrue(p.getProperty(ExecutionProperties.PROP_TXN_AUTO_WRAP).equals("ON")); //$NON-NLS-1$
+ assertTrue(p.getProperty(ExecutionProperties.PROP_PARTIAL_RESULTS_MODE).equals("YES")); //$NON-NLS-1$
+ assertEquals(7, p.size());
+ }
+
+ @Test public void testParseURL4() throws SQLException{
+ Properties p = new Properties();
+ org.teiid.jdbc.EmbeddedProfile.parseURL("jdbc:metamatrix:BQT@testdata/dqp/dqp.properties;partialResultsMode=true", p); //$NON-NLS-1$
+ assertTrue(p.getProperty(BaseDataSource.VDB_NAME).equals("BQT")); //$NON-NLS-1$
+ assertEquals("testdata/dqp/dqp.properties", p.getProperty(DQPEmbeddedProperties.DQP_BOOTSTRAP_FILE)); //$NON-NLS-1$
+ assertTrue(p.getProperty(ExecutionProperties.PROP_PARTIAL_RESULTS_MODE).equals("true")); //$NON-NLS-1$
+ assertEquals(4, p.size());
+ }
+
+ @Test public void testParseURL5() throws SQLException{
+ Properties p = new Properties();
+ org.teiid.jdbc.EmbeddedProfile.parseURL("jdbc:metamatrix:BQT", p); //$NON-NLS-1$
+ assertTrue(p.getProperty(BaseDataSource.VDB_NAME).equals("BQT")); //$NON-NLS-1$
+ assertTrue(p.get(DQPEmbeddedProperties.DQP_BOOTSTRAP_FILE).equals("classpath:/deploy.properties")); //$NON-NLS-1$
+ }
+
+ @Test public void testParseURL55() throws SQLException{
+ Properties p = new Properties();
+ org.teiid.jdbc.EmbeddedProfile.parseURL("jdbc:metamatrix:BQT;", p); //$NON-NLS-1$
+ assertTrue(p.getProperty(BaseDataSource.VDB_NAME).equals("BQT")); //$NON-NLS-1$
+ assertTrue(p.get(DQPEmbeddedProperties.DQP_BOOTSTRAP_FILE).equals("classpath:/deploy.properties")); //$NON-NLS-1$
+ }
+
+ @Test public void testParseURL6() throws SQLException{
+ Properties p = new Properties();
+ org.teiid.jdbc.EmbeddedProfile.parseURL("jdbc:metamatrix:BQT;partialResultsMode=true;version=1", p); //$NON-NLS-1$
+ assertTrue(p.getProperty(BaseDataSource.VDB_NAME).equals("BQT")); //$NON-NLS-1$
+ assertTrue(p.get(DQPEmbeddedProperties.DQP_BOOTSTRAP_FILE).equals("classpath:/deploy.properties")); //$NON-NLS-1$
+ assertTrue(p.getProperty(ExecutionProperties.PROP_PARTIAL_RESULTS_MODE).equals("true")); //$NON-NLS-1$
+ assertTrue(p.getProperty(BaseDataSource.VDB_VERSION).equals("1")); //$NON-NLS-1$
+ assertTrue(p.getProperty("vdb.definition").equals("BQT.vdb")); //$NON-NLS-1$ //$NON-NLS-2$
+ assertEquals(7, p.size());
+
+ }
+
+ @Test public void test() throws Exception {
+ try {
+ Class.forName("org.teiid.jdbc.TeiidDriver"); //$NON-NLS-1$
+ DriverManager.getConnection("jdbc:metamatrix:Parts@invalidConfig.properties;version=1"); //$NON-NLS-1$
+ fail();
+ } catch (SQLException e) {
+ }
+ }
+}
Property changes on: trunk/client-jdbc/src/test/java/org/teiid/jdbc/TestEmbeddedProfile.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/client-jdbc/src/test/java/org/teiid/jdbc/TestSocketProfile.java
===================================================================
--- trunk/client-jdbc/src/test/java/org/teiid/jdbc/TestSocketProfile.java (rev 0)
+++ trunk/client-jdbc/src/test/java/org/teiid/jdbc/TestSocketProfile.java 2009-07-10 20:48:29 UTC (rev 1119)
@@ -0,0 +1,123 @@
+/*
+ * 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.jdbc;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.sql.SQLException;
+import java.util.Properties;
+
+import org.junit.Test;
+
+import com.metamatrix.common.api.MMURL;
+import com.metamatrix.jdbc.BaseDataSource;
+import com.metamatrix.jdbc.api.ExecutionProperties;
+
+public class TestSocketProfile {
+ public String localhost = "localhost"; //$NON-NLS-1$
+
+ /** Valid format of urls*/
+ @Test public void testAcceptsURL1() throws Exception {
+ assertTrue(SocketProfile.acceptsURL("jdbc:teiid:jvdb@mm://localhost:1234")); //$NON-NLS-1$
+ assertTrue(SocketProfile.acceptsURL("jdbc:metamatrix:jvdb@mm://localhost:1234")); //$NON-NLS-1$
+ assertTrue(SocketProfile.acceptsURL("jdbc:teiid:vdb@mm://localhost:1234;version=x")); //$NON-NLS-1$
+ assertTrue(SocketProfile.acceptsURL("jdbc:teiid:vdb@mm://localhost:1234")); //$NON-NLS-1$
+ assertTrue(SocketProfile.acceptsURL("jdbc:teiid:vdb@mm://localhost:1234,localhost2:12342,localhost3:12343")); //$NON-NLS-1$
+ assertTrue(SocketProfile.acceptsURL("jdbc:teiid:vdb@mm://localhost:1234;logFile=D:\\metamatrix\\work\\DQP\\log\\jdbcLogFile.log")); //$NON-NLS-1$
+ assertTrue(SocketProfile.acceptsURL("jdbc:teiid:vdb@mm://localhost:1234,localhost2:12342,localhost3:12343;logFile=D:\\metamatrix\\work\\DQP\\log\\jdbcLogFile.log")); //$NON-NLS-1$
+ assertTrue(SocketProfile.acceptsURL("jdbc:teiid:vdb@mms://localhost:1234;logLevel=1;logFile=D:\\metamatrix\\work\\DQP\\log\\jdbcLogFile.log")); //$NON-NLS-1$
+ assertTrue(!SocketProfile.acceptsURL("jdbc:teiid:@mm://localhost:1234;logLevel=2;logFile=D:\\metamatrix\\work\\DQP\\log\\jdbcLogFile.log")); //$NON-NLS-1$
+ assertTrue(SocketProfile.acceptsURL("jdbc:teiid:vdb@mm://localhost:1234;logLevel=2;logFile=D:\\metamatrix\\work\\DQP\\log\\jdbcLogFile.log;txnAutoWrap=OFF;paritalResultsMode=true")); //$NON-NLS-1$
+ assertTrue(SocketProfile.acceptsURL("jdbc:teiid:jvdb@mms://localhost:1234")); //$NON-NLS-1$
+ assertTrue(SocketProfile.acceptsURL("jdbc:teiid:vdb@mm://localhost:1234;version=x")); //$NON-NLS-1$
+ assertTrue(SocketProfile.acceptsURL("jdbc:teiid:vdb@mm://localhost:1234,localhost2:12342,localhost3:12343")); //$NON-NLS-1$
+ assertTrue(SocketProfile.acceptsURL("jdbc:teiid:vdb@mms://localhost:1234,localhost2:12342,localhost3:12343;logFile=D:\\metamatrix\\work\\DQP\\log\\jdbcLogFile.log")); //$NON-NLS-1$
+ assertTrue(SocketProfile.acceptsURL("jdbc:teiid:vdb@mms://localhost:1234;logLevel=2;logFile=D:\\metamatrix\\work\\DQP\\log\\jdbcLogFile.log;txnAutoWrap=OFF;paritalResultsMode=true")); //$NON-NLS-1$
+ assertTrue(SocketProfile.acceptsURL("jdbc:teiid:vdb@mm://127.0.0.1:1234;logLevel=2")); //$NON-NLS-1$
+ assertTrue(SocketProfile.acceptsURL("jdbc:teiid:vdb@mms://127.0.0.1:1234")); //$NON-NLS-1$
+ assertTrue(SocketProfile.acceptsURL("jdbc:teiid:vdb@mm://127.0.0.1:1234,localhost.mydomain.com:63636;logLevel=2")); //$NON-NLS-1$
+ assertTrue(SocketProfile.acceptsURL("jdbc:teiid:vdb@mm://my-host.mydomain.com:53535,127.0.0.1:1234")); //$NON-NLS-1$
+ assertTrue(SocketProfile.acceptsURL("jdbc:teiid:vdb@mm://123.123.123.123:53535,127.0.0.1:1234")); //$NON-NLS-1$
+
+ assertTrue(!SocketProfile.acceptsURL("jdbc:metamatrix:jvdb@localhost:1234")); //$NON-NLS-1$
+ assertTrue(!SocketProfile.acceptsURL("jdbc:teiid:jvdb@localhost:1234")); //$NON-NLS-1$
+
+ //DQP type
+ assertTrue(!SocketProfile.acceptsURL("jdbc:teiid:jvdb@c:/dqp.properties;version=1")); //$NON-NLS-1$
+ assertTrue(!SocketProfile.acceptsURL("jdbc:teiid:jvdb@/foo/dqp.properties;version=1")); //$NON-NLS-1$
+ assertTrue(!SocketProfile.acceptsURL("jdbc:teiid:jvdb@../foo/dqp.properties;version=1")); //$NON-NLS-1$
+
+ assertTrue(!SocketProfile.acceptsURL("jdbc:teiid:jvdb@mm://localhost:port")); //$NON-NLS-1$
+ assertTrue(!SocketProfile.acceptsURL("jdbc:teiid:vdb@localhost:port;version=x")); //$NON-NLS-1$
+ assertTrue(!SocketProfile.acceptsURL("jdbc:teiid:@localhost:1234")); //$NON-NLS-1$
+ assertTrue(!SocketProfile.acceptsURL("jdbc:teiid:@localhost:1234,localhost2:12342,localhost3:12343")); //$NON-NLS-1$
+ assertTrue(!SocketProfile.acceptsURL("jdbc:teiid:@localhost:1234;logFile=D:\\metamatrix\\work\\DQP\\log\\jdbcLogFile.log")); //$NON-NLS-1$
+ assertTrue(!SocketProfile.acceptsURL("jdbc:teiid:@localhost:1234,localhost2:12342,localhost3:12343;logFile=D:\\metamatrix\\work\\DQP\\log\\jdbcLogFile.log")); //$NON-NLS-1$
+ assertTrue(!SocketProfile.acceptsURL("jdbc:teiid:@localhost:1234;logLevel=1;logFile=D:\\metamatrix\\work\\DQP\\log\\jdbcLogFile.log")); //$NON-NLS-1$
+ assertTrue(!SocketProfile.acceptsURL("jdbc:teiid:@localhost:1234;logLevel=2;logFile=D:\\metamatrix\\work\\DQP\\log\\jdbcLogFile.log")); //$NON-NLS-1$
+ assertTrue(!SocketProfile.acceptsURL("jdbc:teiid:@localhost:1234;logLevel=2;logFile=D:\\metamatrix\\work\\DQP\\log\\jdbcLogFile.log;txnAutoWrap=OFF;paritalResultsMode=true")); //$NON-NLS-1$
+ assertTrue(!SocketProfile.acceptsURL("jdbc:teiid:@localhost:1234;stickyConnections=false;socketsPerVM=4")); //$NON-NLS-1$
+ assertTrue(!SocketProfile.acceptsURL("jdbc:teiid:vdb@mm://my_host.mydomain.com:53535,127.0.0.1:1234")); //$NON-NLS-1$
+ }
+
+ /** Invalid format of urls*/
+ @Test public void testAcceptsURL2() throws Exception {
+ assertTrue(!SocketProfile.acceptsURL("jdbc:matamatrix:test")); //$NON-NLS-1$
+ assertTrue(!SocketProfile.acceptsURL("metamatrix:test")); //$NON-NLS-1$
+ assertTrue(!SocketProfile.acceptsURL("jdbc&matamatrix:test")); //$NON-NLS-1$
+ assertTrue(!SocketProfile.acceptsURL("jdbc;metamatrix:test")); //$NON-NLS-1$
+ }
+
+ @Test public void testParseURL() throws SQLException{
+ Properties p = new Properties();
+ SocketProfile.parseURL("jdbc:teiid:BQT@mm://slwxp157:1234", p); //$NON-NLS-1$
+ assertTrue(p.getProperty(BaseDataSource.VDB_NAME).equals("BQT")); //$NON-NLS-1$
+ assertTrue(p.getProperty(MMURL.CONNECTION.SERVER_URL).equals("mm://slwxp157:1234")); //$NON-NLS-1$
+ assertEquals(3, p.size());
+ }
+
+ @Test public void testParseURL2() throws SQLException {
+ Properties p = new Properties();
+ SocketProfile.parseURL("jdbc:teiid:BQT@mms://slwxp157:1234;version=3", p); //$NON-NLS-1$
+ assertTrue(p.getProperty(BaseDataSource.VDB_NAME).equals("BQT")); //$NON-NLS-1$
+ assertTrue(p.getProperty(BaseDataSource.VDB_VERSION).equals("3")); //$NON-NLS-1$
+ assertTrue(p.getProperty(MMURL.CONNECTION.SERVER_URL).equals("mms://slwxp157:1234")); //$NON-NLS-1$
+ assertTrue(p.getProperty(BaseDataSource.VERSION).equals("3")); //$NON-NLS-1$
+ assertTrue(p.getProperty(BaseDataSource.APP_NAME).equals(BaseDataSource.DEFAULT_APP_NAME));
+ assertEquals(5, p.size());
+ }
+
+ @Test public void testParseURL3() throws SQLException{
+ Properties p = new Properties();
+ SocketProfile.parseURL("jdbc:teiid:BQT@mm://slwxp157:1234,slntmm01:43401,sluxmm09:43302;version=4;txnAutoWrap=ON;partialResultsMode=YES;ApplicationName=Client", p); //$NON-NLS-1$
+ assertTrue(p.getProperty(BaseDataSource.VDB_NAME).equals("BQT")); //$NON-NLS-1$
+ assertTrue(p.getProperty(BaseDataSource.VDB_VERSION).equals("4")); //$NON-NLS-1$
+ assertTrue(p.getProperty(ExecutionProperties.PROP_TXN_AUTO_WRAP).equals("ON")); //$NON-NLS-1$
+ assertTrue(p.getProperty(ExecutionProperties.PROP_PARTIAL_RESULTS_MODE).equals("YES")); //$NON-NLS-1$
+ assertTrue(p.getProperty(MMURL.CONNECTION.SERVER_URL).equals("mm://slwxp157:1234,slntmm01:43401,sluxmm09:43302")); //$NON-NLS-1$
+ assertTrue(p.getProperty(BaseDataSource.VERSION).equals("4")); //$NON-NLS-1$
+ assertTrue(p.getProperty(BaseDataSource.APP_NAME).equals("Client")); //$NON-NLS-1$
+ assertEquals(7, p.size());
+ }
+}
Property changes on: trunk/client-jdbc/src/test/java/org/teiid/jdbc/TestSocketProfile.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/client-jdbc/src/test/java/org/teiid/jdbc/TestTeiidDriver.java
===================================================================
--- trunk/client-jdbc/src/test/java/org/teiid/jdbc/TestTeiidDriver.java 2009-07-10 16:41:23 UTC (rev 1118)
+++ trunk/client-jdbc/src/test/java/org/teiid/jdbc/TestTeiidDriver.java 2009-07-10 20:48:29 UTC (rev 1119)
@@ -22,121 +22,33 @@
package org.teiid.jdbc;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
import java.sql.DriverPropertyInfo;
-import java.sql.SQLException;
-import java.util.Properties;
-import junit.framework.TestCase;
+import org.junit.Test;
-import com.metamatrix.common.api.MMURL;
-import com.metamatrix.jdbc.BaseDataSource;
-import com.metamatrix.jdbc.api.ExecutionProperties;
-
-public class TestTeiidDriver extends TestCase {
+public class TestTeiidDriver {
TeiidDriver drv = new TeiidDriver();
- public String localhost = "localhost"; //$NON-NLS-1$
-
- public TestTeiidDriver(String name) {
- super(name);
-
- }
-
- protected void setUp() throws Exception {
- }
- /** Valid format of urls*/
- public void testAcceptsURL1() throws Exception {
- assertNotNull(drv);
- assertTrue(drv.acceptsURL("jdbc:teiid:jvdb@mm://localhost:1234")); //$NON-NLS-1$
- assertTrue(drv.acceptsURL("jdbc:metamatrix:jvdb@mm://localhost:1234")); //$NON-NLS-1$
- assertTrue(drv.acceptsURL("jdbc:teiid:vdb@mm://localhost:1234;version=x")); //$NON-NLS-1$
- assertTrue(drv.acceptsURL("jdbc:teiid:vdb@mm://localhost:1234")); //$NON-NLS-1$
- assertTrue(drv.acceptsURL("jdbc:teiid:vdb@mm://localhost:1234,localhost2:12342,localhost3:12343")); //$NON-NLS-1$
- assertTrue(drv.acceptsURL("jdbc:teiid:vdb@mm://localhost:1234;logFile=D:\\metamatrix\\work\\DQP\\log\\jdbcLogFile.log")); //$NON-NLS-1$
- assertTrue(drv.acceptsURL("jdbc:teiid:vdb@mm://localhost:1234,localhost2:12342,localhost3:12343;logFile=D:\\metamatrix\\work\\DQP\\log\\jdbcLogFile.log")); //$NON-NLS-1$
- assertTrue(drv.acceptsURL("jdbc:teiid:vdb@mms://localhost:1234;logLevel=1;logFile=D:\\metamatrix\\work\\DQP\\log\\jdbcLogFile.log")); //$NON-NLS-1$
- assertTrue(!drv.acceptsURL("jdbc:teiid:@mm://localhost:1234;logLevel=2;logFile=D:\\metamatrix\\work\\DQP\\log\\jdbcLogFile.log")); //$NON-NLS-1$
- assertTrue(drv.acceptsURL("jdbc:teiid:vdb@mm://localhost:1234;logLevel=2;logFile=D:\\metamatrix\\work\\DQP\\log\\jdbcLogFile.log;txnAutoWrap=OFF;paritalResultsMode=true")); //$NON-NLS-1$
- assertTrue(drv.acceptsURL("jdbc:teiid:jvdb@mms://localhost:1234")); //$NON-NLS-1$
- assertTrue(drv.acceptsURL("jdbc:teiid:vdb@mm://localhost:1234;version=x")); //$NON-NLS-1$
- assertTrue(drv.acceptsURL("jdbc:teiid:vdb@mm://localhost:1234,localhost2:12342,localhost3:12343")); //$NON-NLS-1$
- assertTrue(drv.acceptsURL("jdbc:teiid:vdb@mms://localhost:1234,localhost2:12342,localhost3:12343;logFile=D:\\metamatrix\\work\\DQP\\log\\jdbcLogFile.log")); //$NON-NLS-1$
- assertTrue(drv.acceptsURL("jdbc:teiid:vdb@mms://localhost:1234;logLevel=2;logFile=D:\\metamatrix\\work\\DQP\\log\\jdbcLogFile.log;txnAutoWrap=OFF;paritalResultsMode=true")); //$NON-NLS-1$
- assertTrue(drv.acceptsURL("jdbc:teiid:vdb@mm://127.0.0.1:1234;logLevel=2")); //$NON-NLS-1$
- assertTrue(drv.acceptsURL("jdbc:teiid:vdb@mms://127.0.0.1:1234")); //$NON-NLS-1$
- assertTrue(drv.acceptsURL("jdbc:teiid:vdb@mm://127.0.0.1:1234,localhost.mydomain.com:63636;logLevel=2")); //$NON-NLS-1$
- assertTrue(drv.acceptsURL("jdbc:teiid:vdb@mm://my-host.mydomain.com:53535,127.0.0.1:1234")); //$NON-NLS-1$
- assertTrue(drv.acceptsURL("jdbc:teiid:vdb@mm://123.123.123.123:53535,127.0.0.1:1234")); //$NON-NLS-1$
-
- assertTrue(!drv.acceptsURL("jdbc:metamatrix:jvdb@localhost:1234")); //$NON-NLS-1$
- assertTrue(!drv.acceptsURL("jdbc:teiid:jvdb@localhost:1234")); //$NON-NLS-1$
-
- //DQP type
- assertTrue(!drv.acceptsURL("jdbc:teiid:jvdb@c:/dqp.properties;version=1")); //$NON-NLS-1$
- assertTrue(!drv.acceptsURL("jdbc:teiid:jvdb@/foo/dqp.properties;version=1")); //$NON-NLS-1$
- assertTrue(!drv.acceptsURL("jdbc:teiid:jvdb@../foo/dqp.properties;version=1")); //$NON-NLS-1$
-
- assertTrue(!drv.acceptsURL("jdbc:teiid:jvdb@mm://localhost:port")); //$NON-NLS-1$
- assertTrue(!drv.acceptsURL("jdbc:teiid:vdb@localhost:port;version=x")); //$NON-NLS-1$
- assertTrue(!drv.acceptsURL("jdbc:teiid:@localhost:1234")); //$NON-NLS-1$
- assertTrue(!drv.acceptsURL("jdbc:teiid:@localhost:1234,localhost2:12342,localhost3:12343")); //$NON-NLS-1$
- assertTrue(!drv.acceptsURL("jdbc:teiid:@localhost:1234;logFile=D:\\metamatrix\\work\\DQP\\log\\jdbcLogFile.log")); //$NON-NLS-1$
- assertTrue(!drv.acceptsURL("jdbc:teiid:@localhost:1234,localhost2:12342,localhost3:12343;logFile=D:\\metamatrix\\work\\DQP\\log\\jdbcLogFile.log")); //$NON-NLS-1$
- assertTrue(!drv.acceptsURL("jdbc:teiid:@localhost:1234;logLevel=1;logFile=D:\\metamatrix\\work\\DQP\\log\\jdbcLogFile.log")); //$NON-NLS-1$
- assertTrue(!drv.acceptsURL("jdbc:teiid:@localhost:1234;logLevel=2;logFile=D:\\metamatrix\\work\\DQP\\log\\jdbcLogFile.log")); //$NON-NLS-1$
- assertTrue(!drv.acceptsURL("jdbc:teiid:@localhost:1234;logLevel=2;logFile=D:\\metamatrix\\work\\DQP\\log\\jdbcLogFile.log;txnAutoWrap=OFF;paritalResultsMode=true")); //$NON-NLS-1$
- assertTrue(!drv.acceptsURL("jdbc:teiid:@localhost:1234;stickyConnections=false;socketsPerVM=4")); //$NON-NLS-1$
- assertTrue(!drv.acceptsURL("jdbc:teiid:vdb@mm://my_host.mydomain.com:53535,127.0.0.1:1234")); //$NON-NLS-1$
- }
-
- /** Invalid format of urls*/
- public void testAcceptsURL2() throws Exception {
- assertNotNull(drv);
- assertTrue(!drv.acceptsURL("jdbc:matamatrix:test")); //$NON-NLS-1$
- assertTrue(!drv.acceptsURL("metamatrix:test")); //$NON-NLS-1$
- assertTrue(!drv.acceptsURL("jdbc&matamatrix:test")); //$NON-NLS-1$
- assertTrue(!drv.acceptsURL("jdbc;metamatrix:test")); //$NON-NLS-1$
- }
-
- public void testParseURL() throws SQLException{
- Properties p = new Properties();
- TeiidDriver.getInstance().parseURL("jdbc:teiid:BQT@mm://slwxp157:1234", p); //$NON-NLS-1$
- assertTrue(p.getProperty(BaseDataSource.VDB_NAME).equals("BQT")); //$NON-NLS-1$
- assertTrue(p.getProperty(MMURL.CONNECTION.SERVER_URL).equals("mm://slwxp157:1234")); //$NON-NLS-1$
- assertEquals(3, p.size());
- }
-
- public void testParseURL2() throws SQLException {
- Properties p = new Properties();
- TeiidDriver.getInstance().parseURL("jdbc:teiid:BQT@mms://slwxp157:1234;version=3", p); //$NON-NLS-1$
- assertTrue(p.getProperty(BaseDataSource.VDB_NAME).equals("BQT")); //$NON-NLS-1$
- assertTrue(p.getProperty(BaseDataSource.VDB_VERSION).equals("3")); //$NON-NLS-1$
- assertTrue(p.getProperty(MMURL.CONNECTION.SERVER_URL).equals("mms://slwxp157:1234")); //$NON-NLS-1$
- assertTrue(p.getProperty(BaseDataSource.VERSION).equals("3")); //$NON-NLS-1$
- assertTrue(p.getProperty(BaseDataSource.APP_NAME).equals(BaseDataSource.DEFAULT_APP_NAME));
- assertEquals(5, p.size());
- }
- public void testParseURL3() throws SQLException{
- Properties p = new Properties();
- TeiidDriver.getInstance().parseURL("jdbc:teiid:BQT@mm://slwxp157:1234,slntmm01:43401,sluxmm09:43302;version=4;txnAutoWrap=ON;partialResultsMode=YES;ApplicationName=Client", p); //$NON-NLS-1$
- assertTrue(p.getProperty(BaseDataSource.VDB_NAME).equals("BQT")); //$NON-NLS-1$
- assertTrue(p.getProperty(BaseDataSource.VDB_VERSION).equals("4")); //$NON-NLS-1$
- assertTrue(p.getProperty(ExecutionProperties.PROP_TXN_AUTO_WRAP).equals("ON")); //$NON-NLS-1$
- assertTrue(p.getProperty(ExecutionProperties.PROP_PARTIAL_RESULTS_MODE).equals("YES")); //$NON-NLS-1$
- assertTrue(p.getProperty(MMURL.CONNECTION.SERVER_URL).equals("mm://slwxp157:1234,slntmm01:43401,sluxmm09:43302")); //$NON-NLS-1$
- assertTrue(p.getProperty(BaseDataSource.VERSION).equals("4")); //$NON-NLS-1$
- assertTrue(p.getProperty(BaseDataSource.APP_NAME).equals("Client")); //$NON-NLS-1$
- assertEquals(7, p.size());
- }
-
- public void testGetPropertyInfo1() throws Exception {
+ @Test public void testGetPropertyInfo1() throws Exception {
DriverPropertyInfo info[] = drv.getPropertyInfo("jdbc:teiid:vdb@mm://localhost:12345", null); //$NON-NLS-1$
-
- assertEquals(6, info.length);
- assertEquals(true, info[0].required);
- assertEquals("VirtualDatabaseName", info[0].name); //$NON-NLS-1$
- assertEquals("vdb", info[0].value); //$NON-NLS-1$
+ assertEquals(19, info.length);
}
+ @Test public void testAccepts() throws Exception {
+ assertTrue(drv.acceptsURL("jdbc:teiid:vdb@mm://localhost:12345")); //$NON-NLS-1$
+ assertTrue(drv.acceptsURL("jdbc:teiid:vdb@mm://localhost:12345;user=foo;password=bar")); //$NON-NLS-1$
+ assertTrue(drv.acceptsURL("jdbc:teiid:vdb")); //$NON-NLS-1$
+ assertTrue(drv.acceptsURL("jdbc:teiid:vdb@/foo/blah/deploy.properties")); //$NON-NLS-1$
+
+ assertTrue(drv.acceptsURL("jdbc:metamatrix:vdb@mm://localhost:12345")); //$NON-NLS-1$
+ assertTrue(drv.acceptsURL("jdbc:metamatrix:vdb@mm://localhost:12345;user=foo;password=bar")); //$NON-NLS-1$
+ assertTrue(drv.acceptsURL("jdbc:metamatrix:vdb")); //$NON-NLS-1$
+ assertTrue(drv.acceptsURL("jdbc:metamatrix:vdb@/foo/blah/deploy.properties")); //$NON-NLS-1$
+
+ }
+
}
Modified: trunk/embedded/src/main/java/org/teiid/transport/LogonImpl.java
===================================================================
--- trunk/embedded/src/main/java/org/teiid/transport/LogonImpl.java 2009-07-10 16:41:23 UTC (rev 1118)
+++ trunk/embedded/src/main/java/org/teiid/transport/LogonImpl.java 2009-07-10 20:48:29 UTC (rev 1119)
@@ -40,6 +40,7 @@
import com.metamatrix.common.api.MMURL;
import com.metamatrix.common.log.LogManager;
import com.metamatrix.common.util.LogConstants;
+import com.metamatrix.core.CoreConstants;
import com.metamatrix.dqp.client.ResultsFuture;
import com.metamatrix.dqp.embedded.DQPEmbeddedPlugin;
import com.metamatrix.jdbc.api.ConnectionProperties;
@@ -67,7 +68,7 @@
String applicationName = connProps.getProperty(MMURL.CONNECTION.APP_NAME);
// user may be null if using trustedToken to log on
- String user = connProps.getProperty(MMURL.CONNECTION.USER_NAME);
+ String user = connProps.getProperty(MMURL.CONNECTION.USER_NAME, CoreConstants.DEFAULT_ANON_USERNAME);
// password may be null if using trustedToken to log on
String password = connProps.getProperty(MMURL.CONNECTION.PASSWORD);
Credentials credential = null;
Modified: trunk/test-integration/src/test/java/com/metamatrix/jdbc/TestCase3473.java
===================================================================
--- trunk/test-integration/src/test/java/com/metamatrix/jdbc/TestCase3473.java 2009-07-10 16:41:23 UTC (rev 1118)
+++ trunk/test-integration/src/test/java/com/metamatrix/jdbc/TestCase3473.java 2009-07-10 20:48:29 UTC (rev 1119)
@@ -71,7 +71,7 @@
@Override
protected void setUp() throws Exception {
- Class.forName("com.metamatrix.jdbc.EmbeddedDriver"); //$NON-NLS-1$
+ Class.forName("org.teiid.jdbc.TeiidDriver"); //$NON-NLS-1$
conn = DriverManager.getConnection(serverUrl);
dbmd = (MMDatabaseMetaData)conn.getMetaData();
}
Modified: trunk/test-integration/src/test/java/com/metamatrix/jdbc/TestMMDatabaseMetaData.java
===================================================================
--- trunk/test-integration/src/test/java/com/metamatrix/jdbc/TestMMDatabaseMetaData.java 2009-07-10 16:41:23 UTC (rev 1118)
+++ trunk/test-integration/src/test/java/com/metamatrix/jdbc/TestMMDatabaseMetaData.java 2009-07-10 20:48:29 UTC (rev 1119)
@@ -50,6 +50,7 @@
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
+import org.teiid.jdbc.TeiidDriver;
import com.metamatrix.common.util.ApplicationInfo;
import com.metamatrix.core.util.UnitTestUtil;
@@ -85,7 +86,7 @@
@Before
public void setUp() throws Exception {
- dbmd = new MMDatabaseMetaData((BaseDriver)DriverManager.getDriver(serverUrl), (MMConnection) conn);
+ dbmd = new MMDatabaseMetaData((MMConnection) conn);
}
@AfterClass
@@ -97,7 +98,7 @@
@BeforeClass
public static void oneTimeSetUp() throws Exception {
- Class.forName(EmbeddedDriver.class.getName());
+ Class.forName(TeiidDriver.class.getName());
conn = DriverManager.getConnection(serverUrl);
}
Modified: trunk/test-integration/src/test/java/com/metamatrix/server/integration/TestXQueryServices.java
===================================================================
--- trunk/test-integration/src/test/java/com/metamatrix/server/integration/TestXQueryServices.java 2009-07-10 16:41:23 UTC (rev 1118)
+++ trunk/test-integration/src/test/java/com/metamatrix/server/integration/TestXQueryServices.java 2009-07-10 20:48:29 UTC (rev 1119)
@@ -30,8 +30,9 @@
import junit.framework.TestCase;
+import org.teiid.jdbc.TeiidDriver;
+
import com.metamatrix.core.util.UnitTestUtil;
-import com.metamatrix.jdbc.EmbeddedDriver;
import com.metamatrix.jdbc.MMSQLException;
/**
@@ -47,7 +48,7 @@
* This is then not an effective test of xquery, but shows how a procedure without a resultset should behave.
*/
public void testXQueryCall() throws Exception {
- Class.forName(EmbeddedDriver.class.getName());
+ Class.forName(TeiidDriver.class.getName());
Connection conn = DriverManager.getConnection("jdbc:metamatrix:xq@" + UnitTestUtil.getTestDataPath() + "/xquery/xquery.properties;txnAutoWrap=OFF;user=test" ); //$NON-NLS-1$ //$NON-NLS-2$
CallableStatement cs = conn.prepareCall("{? = call xqs.test}"); //$NON-NLS-1$
assertFalse(cs.execute());
15 years, 5 months
teiid SVN: r1118 - in trunk: common-core/src/main/java/com/metamatrix/core/util and 22 other directories.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2009-07-10 12:41:23 -0400 (Fri, 10 Jul 2009)
New Revision: 1118
Added:
trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/JDBCMetdataProcessor.java
trunk/test-integration/src/test/resources/derby/
trunk/test-integration/src/test/resources/derby/sample.zip
Removed:
trunk/common-internal/src/main/java/com/metamatrix/modeler/
trunk/engine/src/main/java/com/metamatrix/metadata/
trunk/test-integration/src/test/resources/TestMMDatabaseMetaData/testGetTypeInfo_specificType_Integer.expected
Modified:
trunk/common-core/src/main/java/com/metamatrix/core/util/StringUtil.java
trunk/common-core/src/test/java/com/metamatrix/core/util/TestStringUtil.java
trunk/common-internal/src/main/java/com/metamatrix/common/vdb/api/VDBArchive.java
trunk/connector-api/src/main/java/org/teiid/connector/api/TypeFacility.java
trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/ColumnSetRecordImpl.java
trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/ConnectorMetadata.java
trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/MetadataConstants.java
trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/MetadataFactory.java
trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/TableRecordImpl.java
trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/JDBCConnector.java
trunk/connectors/connector-jdbc/src/main/resources/org/teiid/connector/jdbc/i18n.properties
trunk/connectors/connector-text/src/main/java/com/metamatrix/connector/text/TextConnector.java
trunk/connectors/connector-text/src/test/java/com/metamatrix/connector/text/TestTextConnector.java
trunk/metadata/src/main/java/org/teiid/connector/metadata/IndexCriteriaBuilder.java
trunk/metadata/src/main/java/org/teiid/metadata/ConnectorMetadataStore.java
trunk/metadata/src/main/java/org/teiid/metadata/TransformationMetadata.java
trunk/metadata/src/main/java/org/teiid/metadata/index/IndexConstants.java
trunk/metadata/src/main/java/org/teiid/metadata/index/IndexMetadataStore.java
trunk/metadata/src/main/java/org/teiid/metadata/index/RecordFactory.java
trunk/metadata/src/main/java/org/teiid/metadata/index/SimpleIndexUtil.java
trunk/metadata/src/test/java/com/metamatrix/connector/metadata/index/TestIndexCriteriaBuilder.java
trunk/pom.xml
trunk/test-integration/pom.xml
trunk/test-integration/src/test/java/com/metamatrix/jdbc/TestMMDatabaseMetaData.java
trunk/test-integration/src/test/java/com/metamatrix/server/integration/TestVDBLessExecution.java
trunk/test-integration/src/test/resources/ServerConfig.xml
trunk/test-integration/src/test/resources/TestMMDatabaseMetaData/testGetTypeInfo_TotalNumber.expected
trunk/test-integration/src/test/resources/partssupplier/expected/TypeInfo.txt
trunk/test-integration/src/test/resources/vdbless/ConfigurationInfo.def
Log:
TEIID-708 TEIID-713 TEIID-687 TEIID-685 TEIID-684 initial commit of metadata supplied by the jdbc connector. also expanded the metadatafactory to include most of the remaining source metadata constructs (access patterns, and procedures are still missing).
Modified: trunk/common-core/src/main/java/com/metamatrix/core/util/StringUtil.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/util/StringUtil.java 2009-07-10 16:15:38 UTC (rev 1117)
+++ trunk/common-core/src/main/java/com/metamatrix/core/util/StringUtil.java 2009-07-10 16:41:23 UTC (rev 1118)
@@ -14,6 +14,7 @@
import java.io.ByteArrayOutputStream;
import java.io.PrintWriter;
+import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
@@ -1010,6 +1011,14 @@
else if (type.isAssignableFrom(List.class)) {
return (T)new ArrayList<String>(Arrays.asList(value.split(","))); //$NON-NLS-1$
}
+ else if (type.isArray()) {
+ String[] values = value.split(","); //$NON-NLS-1$
+ Object array = Array.newInstance(type.getComponentType(), values.length);
+ for (int i = 0; i < values.length; i++) {
+ Array.set(array, i, valueOf(values[i], type.getComponentType()));
+ }
+ return (T)array;
+ }
else if (type == Void.class) {
return null;
}
Modified: trunk/common-core/src/test/java/com/metamatrix/core/util/TestStringUtil.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/core/util/TestStringUtil.java 2009-07-10 16:15:38 UTC (rev 1117)
+++ trunk/common-core/src/test/java/com/metamatrix/core/util/TestStringUtil.java 2009-07-10 16:41:23 UTC (rev 1118)
@@ -406,6 +406,10 @@
assertTrue(list.contains("foo")); //$NON-NLS-1$
assertTrue(list.contains("x")); //$NON-NLS-1$
+ int[] values = StringUtil.valueOf("1,2,3,4,5", new int[0].getClass()); //$NON-NLS-1$
+ assertEquals(5, values.length);
+ assertEquals(5, values[4]);
+
Map m = StringUtil.valueOf("foo=bar,x=,y=z", Map.class); //$NON-NLS-1$
assertEquals(3, m.size());
assertEquals(m.get("foo"), "bar"); //$NON-NLS-1$ //$NON-NLS-2$
Modified: trunk/common-internal/src/main/java/com/metamatrix/common/vdb/api/VDBArchive.java
===================================================================
--- trunk/common-internal/src/main/java/com/metamatrix/common/vdb/api/VDBArchive.java 2009-07-10 16:15:38 UTC (rev 1117)
+++ trunk/common-internal/src/main/java/com/metamatrix/common/vdb/api/VDBArchive.java 2009-07-10 16:41:23 UTC (rev 1118)
@@ -247,7 +247,9 @@
} else {
appendManifest(this.def);
}
- this.def.setHasWSDLDefined(this.wsdlAvailable);
+ if (this.def != null) {
+ this.def.setHasWSDLDefined(this.wsdlAvailable);
+ }
open = true;
}
Modified: trunk/connector-api/src/main/java/org/teiid/connector/api/TypeFacility.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/connector/api/TypeFacility.java 2009-07-10 16:15:38 UTC (rev 1117)
+++ trunk/connector-api/src/main/java/org/teiid/connector/api/TypeFacility.java 2009-07-10 16:41:23 UTC (rev 1118)
@@ -89,8 +89,12 @@
*/
public static final int getSQLTypeFromRuntimeType(Class<?> type) {
return MMJDBCSQLTypeInfo.getSQLTypeFromRuntimeType(type);
- }
+ }
+ public static final String getDataTypeNameFromSQLType(int sqlType) {
+ return MMJDBCSQLTypeInfo.getTypeName(sqlType);
+ }
+
/**
* Convert the given value to the closest runtime type see {@link RUNTIME_TYPES}
* @param value
Modified: trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/ColumnSetRecordImpl.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/ColumnSetRecordImpl.java 2009-07-10 16:15:38 UTC (rev 1117)
+++ trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/ColumnSetRecordImpl.java 2009-07-10 16:41:23 UTC (rev 1118)
@@ -50,11 +50,20 @@
}
/**
- * @see com.metamatrix.modeler.core.metadata.runtime.ColumnSetRecord#getColumnIdEntries()
+ * Retrieves a list of ColumnRecordImpls containing only id and position information (used by System Tables)
*/
public List<ColumnRecordImpl> getColumnIdEntries() {
- if (this.columns != null) {
- return this.columns;
+ if (columns != null) {
+ final List<ColumnRecordImpl> entryRecords = new ArrayList<ColumnRecordImpl>(columns.size());
+ for (int i = 0, n = columns.size(); i < n; i++) {
+ ColumnRecordImpl columnRecordImpl = columns.get(i);
+ final int position = i+1;
+ ColumnRecordImpl impl = new ColumnRecordImpl();
+ entryRecords.add( impl );
+ impl.setUUID(columnRecordImpl.getUUID());
+ impl.setPosition(position);
+ }
+ return entryRecords;
}
final List<ColumnRecordImpl> entryRecords = new ArrayList<ColumnRecordImpl>(columnIDs.size());
for (int i = 0, n = columnIDs.size(); i < n; i++) {
Modified: trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/ConnectorMetadata.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/ConnectorMetadata.java 2009-07-10 16:15:38 UTC (rev 1117)
+++ trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/ConnectorMetadata.java 2009-07-10 16:41:23 UTC (rev 1118)
@@ -11,6 +11,10 @@
Collection<ProcedureRecordImpl> getProcedures();
+ Collection<AnnotationRecordImpl> getAnnotations();
+
+ Collection<PropertyRecordImpl> getProperties();
+
//costing
}
Modified: trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/MetadataConstants.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/MetadataConstants.java 2009-07-10 16:15:38 UTC (rev 1117)
+++ trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/MetadataConstants.java 2009-07-10 16:41:23 UTC (rev 1118)
@@ -257,7 +257,37 @@
"Nullable", //$NON-NLS-1$
"Unknown" }; //$NON-NLS-1$
}
- public final static String getNullTypeName(short type) {
+ //Record type Constants
+ public static class RECORD_TYPE {
+ public final static char MODEL = 'A';
+ public final static char TABLE = 'B';
+ public final static char RESULT_SET = 'C';
+ public final static char JOIN_DESCRIPTOR = 'D';
+ public final static char CALLABLE = 'E';
+ public final static char CALLABLE_PARAMETER = 'F';
+ public final static char COLUMN = 'G';
+ public final static char ACCESS_PATTERN = 'H';
+ public final static char UNIQUE_KEY = 'I';
+ public final static char FOREIGN_KEY = 'J';
+ public final static char PRIMARY_KEY = 'K';
+ public final static char INDEX = 'L';
+ public final static char DATATYPE = 'M';
+ //public final static char DATATYPE_ELEMENT = 'N';
+ //public final static char DATATYPE_FACET = 'O';
+ public final static char SELECT_TRANSFORM = 'P';
+ public final static char INSERT_TRANSFORM = 'Q';
+ public final static char UPDATE_TRANSFORM = 'R';
+ public final static char DELETE_TRANSFORM = 'S';
+ public final static char PROC_TRANSFORM = 'T';
+ public final static char MAPPING_TRANSFORM = 'U';
+ public final static char VDB_ARCHIVE = 'V';
+ public final static char ANNOTATION = 'W';
+ public final static char PROPERTY = 'X';
+ public final static char FILE = 'Z';
+ public final static char RECORD_CONTINUATION = '&';
+ }
+
+ public final static String getNullTypeName(short type) {
return NULL_TYPES.TYPE_NAMES[type];
}
}
\ No newline at end of file
Modified: trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/MetadataFactory.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/MetadataFactory.java 2009-07-10 16:15:38 UTC (rev 1117)
+++ trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/MetadataFactory.java 2009-07-10 16:41:23 UTC (rev 1118)
@@ -24,10 +24,13 @@
import java.util.ArrayList;
import java.util.Collection;
+import java.util.LinkedList;
+import java.util.List;
import java.util.Map;
import org.teiid.connector.DataPlugin;
import org.teiid.connector.api.ConnectorException;
+import org.teiid.connector.metadata.runtime.MetadataConstants.RECORD_TYPE;
import com.metamatrix.core.id.UUIDFactory;
import com.metamatrix.core.vdb.ModelType;
@@ -40,13 +43,15 @@
private ModelRecordImpl model;
private Collection<TableRecordImpl> tables = new ArrayList<TableRecordImpl>();
private Collection<ProcedureRecordImpl> procedures = new ArrayList<ProcedureRecordImpl>();
+ private Collection<AnnotationRecordImpl> annotations = new ArrayList<AnnotationRecordImpl>();
+ private Collection<PropertyRecordImpl> properties = new ArrayList<PropertyRecordImpl>();
public MetadataFactory(String modelName, Map<String, DatatypeRecordImpl> dataTypes) {
this.dataTypes = dataTypes;
model = new ModelRecordImpl();
model.setFullName(modelName);
model.setModelType(ModelType.PHYSICAL);
- model.setRecordType('A');
+ model.setRecordType(RECORD_TYPE.MODEL);
model.setPrimaryMetamodelUri("http://www.metamatrix.com/metamodels/Relational"); //$NON-NLS-1$
setUUID(model);
}
@@ -55,14 +60,25 @@
return model;
}
+ @Override
public Collection<TableRecordImpl> getTables() {
return tables;
}
+ @Override
public Collection<ProcedureRecordImpl> getProcedures() {
return procedures;
}
+ @Override
+ public Collection<AnnotationRecordImpl> getAnnotations() {
+ return annotations;
+ }
+
+ public Collection<PropertyRecordImpl> getProperties() {
+ return properties;
+ }
+
private void setUUID(AbstractMetadataRecord record) {
record.setUUID(factory.create().toString());
}
@@ -76,10 +92,15 @@
public TableRecordImpl addTable(String name) {
TableRecordImpl table = new TableRecordImpl();
setValuesUsingParent(name, model, table);
- table.setRecordType('B');
- table.setCardinality(-1);
+ table.setRecordType(RECORD_TYPE.TABLE);
table.setModel(model);
table.setTableType(MetadataConstants.TABLE_TYPES.TABLE_TYPE);
+ table.setColumns(new LinkedList<ColumnRecordImpl>());
+ table.setAccessPatterns(new LinkedList<ColumnSetRecordImpl>());
+ table.setIndexes(new LinkedList<ColumnSetRecordImpl>());
+ table.setExtensionProperties(new LinkedList<PropertyRecordImpl>());
+ table.setForiegnKeys(new LinkedList<ForeignKeyRecordImpl>());
+ table.setUniqueKeys(new LinkedList<ColumnSetRecordImpl>());
setUUID(table);
this.tables.add(table);
return table;
@@ -88,10 +109,7 @@
public ColumnRecordImpl addColumn(String name, String type, TableRecordImpl table) throws ConnectorException {
ColumnRecordImpl column = new ColumnRecordImpl();
setValuesUsingParent(name, table, column);
- column.setRecordType('G');
- if (table.getColumns() == null) {
- table.setColumns(new ArrayList<ColumnRecordImpl>());
- }
+ column.setRecordType(RECORD_TYPE.COLUMN);
table.getColumns().add(column);
column.setPosition(table.getColumns().size());
column.setNullValues(-1);
@@ -111,8 +129,92 @@
column.setRuntimeType(datatype.getRuntimeTypeName());
column.setSelectable(true);
column.setSigned(datatype.isSigned());
+ column.setExtensionProperties(new LinkedList<PropertyRecordImpl>());
setUUID(column);
return column;
}
+ public AnnotationRecordImpl addAnnotation(String annotation, AbstractMetadataRecord record) {
+ AnnotationRecordImpl annotationRecordImpl = new AnnotationRecordImpl();
+ annotationRecordImpl.setRecordType(RECORD_TYPE.ANNOTATION);
+ setUUID(annotationRecordImpl);
+ annotationRecordImpl.setParentUUID(record.getUUID());
+ annotationRecordImpl.setDescription(annotation);
+ record.setAnnotation(annotationRecordImpl);
+ annotations.add(annotationRecordImpl);
+ return annotationRecordImpl;
+ }
+
+ public ColumnSetRecordImpl addPrimaryKey(String name, List<String> columnNames, TableRecordImpl table) throws ConnectorException {
+ ColumnSetRecordImpl primaryKey = new ColumnSetRecordImpl(MetadataConstants.KEY_TYPES.PRIMARY_KEY);
+ primaryKey.setColumns(new ArrayList<ColumnRecordImpl>(columnNames.size()));
+ primaryKey.setRecordType(RECORD_TYPE.PRIMARY_KEY);
+ setUUID(primaryKey);
+ setValuesUsingParent(name, table, primaryKey);
+ assignColumns(columnNames, table, primaryKey);
+ table.setPrimaryKey(primaryKey);
+ table.setPrimaryKeyID(primaryKey.getUUID());
+ return primaryKey;
+ }
+
+ public ColumnSetRecordImpl addIndex(String name, boolean nonUnique, List<String> columnNames, TableRecordImpl table) throws ConnectorException {
+ ColumnSetRecordImpl index = new ColumnSetRecordImpl(nonUnique?MetadataConstants.KEY_TYPES.INDEX:MetadataConstants.KEY_TYPES.UNIQUE_KEY);
+ index.setColumns(new ArrayList<ColumnRecordImpl>(columnNames.size()));
+ index.setRecordType(nonUnique?MetadataConstants.RECORD_TYPE.INDEX:MetadataConstants.RECORD_TYPE.UNIQUE_KEY);
+ setUUID(index);
+ setValuesUsingParent(name, table, index);
+ assignColumns(columnNames, table, index);
+ if (nonUnique) {
+ table.getIndexes().add(index);
+ } else {
+ table.getUniqueKeys().add(index);
+ }
+ return index;
+ }
+
+ public ForeignKeyRecordImpl addForiegnKey(String name, List<String> columnNames, TableRecordImpl pkTable, TableRecordImpl table) throws ConnectorException {
+ ForeignKeyRecordImpl foreignKey = new ForeignKeyRecordImpl();
+ foreignKey.setColumns(new ArrayList<ColumnRecordImpl>(columnNames.size()));
+ foreignKey.setRecordType(RECORD_TYPE.FOREIGN_KEY);
+ setUUID(foreignKey);
+ setValuesUsingParent(name, table, foreignKey);
+ foreignKey.setPrimaryKey(pkTable.getPrimaryKey());
+ foreignKey.setUniqueKeyID(pkTable.getPrimaryKeyID());
+ assignColumns(columnNames, table, foreignKey);
+ table.getForeignKeys().add(foreignKey);
+ return foreignKey;
+ }
+
+ public PropertyRecordImpl addExtensionProperty(String name, String value, AbstractMetadataRecord record) {
+ PropertyRecordImpl property = new PropertyRecordImpl();
+ property.setRecordType(RECORD_TYPE.PROPERTY);
+ setUUID(property);
+ setValuesUsingParent(name, record, property);
+ property.setPropertyName(name);
+ property.setPropertyValue(value);
+ properties.add(property);
+ if (record.getExtensionProperties() == null) {
+ record.setExtensionProperties(new LinkedList<PropertyRecordImpl>());
+ }
+ record.getExtensionProperties().add(property);
+ return property;
+ }
+
+ private void assignColumns(List<String> columnNames, TableRecordImpl table,
+ ColumnSetRecordImpl columns) throws ConnectorException {
+ for (String columnName : columnNames) {
+ boolean match = false;
+ for (ColumnRecordImpl column : table.getColumns()) {
+ if (column.getName().equals(columnName)) {
+ match = true;
+ columns.getColumns().add(column);
+ break;
+ }
+ }
+ if (!match) {
+ throw new ConnectorException("No column found with name " + columnName);
+ }
+ }
+ }
+
}
Modified: trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/TableRecordImpl.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/TableRecordImpl.java 2009-07-10 16:15:38 UTC (rev 1117)
+++ trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/TableRecordImpl.java 2009-07-10 16:41:23 UTC (rev 1118)
@@ -29,7 +29,7 @@
*/
public class TableRecordImpl extends ColumnSetRecordImpl {
- private int cardinality;
+ private int cardinality = -1;
private int tableType;
private String primaryKeyID;
private String materializedTableID;
Modified: trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/JDBCConnector.java
===================================================================
--- trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/JDBCConnector.java 2009-07-10 16:15:38 UTC (rev 1117)
+++ trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/JDBCConnector.java 2009-07-10 16:41:23 UTC (rev 1118)
@@ -42,10 +42,12 @@
import org.teiid.connector.api.ConnectorPropertyNames;
import org.teiid.connector.api.ExecutionContext;
import org.teiid.connector.api.MappedUserIdentity;
+import org.teiid.connector.api.MetadataProvider;
import org.teiid.connector.api.SingleIdentity;
import org.teiid.connector.api.ConnectorAnnotations.ConnectionPooling;
import org.teiid.connector.basic.BasicConnector;
import org.teiid.connector.jdbc.translator.Translator;
+import org.teiid.connector.metadata.runtime.MetadataFactory;
import org.teiid.connector.xa.api.TransactionContext;
import org.teiid.connector.xa.api.XAConnection;
import org.teiid.connector.xa.api.XAConnector;
@@ -58,7 +60,7 @@
* JDBC implementation of Connector interface.
*/
@ConnectionPooling
-public class JDBCConnector extends BasicConnector implements XAConnector {
+public class JDBCConnector extends BasicConnector implements XAConnector, MetadataProvider {
public static final String INVALID_AUTHORIZATION_SPECIFICATION_NO_SUBCLASS = "28000"; //$NON-NLS-1$
@@ -159,22 +161,23 @@
* attempt to deregister drivers that may have been implicitly registered
* with the driver manager
*/
- Enumeration drivers = DriverManager.getDrivers();
+ boolean usingCustomClassLoader = PropertiesUtils.getBooleanProperty(this.environment.getProperties(), ConnectorPropertyNames.USING_CUSTOM_CLASSLOADER, false);
- String driverClassname = this.environment.getProperties().getProperty(JDBCPropertyNames.CONNECTION_SOURCE_CLASS);
- boolean usingCustomClassLoader = PropertiesUtils.getBooleanProperty(this.environment.getProperties(), ConnectorPropertyNames.USING_CUSTOM_CLASSLOADER, false);
+ if (!usingCustomClassLoader) {
+ return;
+ }
+
+ Enumeration drivers = DriverManager.getDrivers();
while(drivers.hasMoreElements()){
Driver tempdriver = (Driver)drivers.nextElement();
- if(tempdriver.getClass().getClassLoader() != this.getClass().getClassLoader()) {
+ if(tempdriver.getClass().getClassLoader() != Thread.currentThread().getContextClassLoader()) {
continue;
}
- if(usingCustomClassLoader || tempdriver.getClass().getName().equals(driverClassname)) {
- try {
- DriverManager.deregisterDriver(tempdriver);
- } catch (Throwable e) {
- this.environment.getLogger().logError(e.getMessage());
- }
+ try {
+ DriverManager.deregisterDriver(tempdriver);
+ } catch (Throwable e) {
+ this.environment.getLogger().logError(e.getMessage());
}
}
@@ -334,5 +337,36 @@
sqlConn.setTransactionIsolation(getDefaultTransactionIsolationLevel());
}
}
+
+ @Override
+ public void getConnectorMetadata(MetadataFactory metadataFactory)
+ throws ConnectorException {
+ java.sql.Connection conn = null;
+ javax.sql.XAConnection xaConn = null;
+ try {
+ if (ds != null) {
+ conn = ds.getConnection();
+ } else {
+ xaConn = xaDs.getXAConnection();
+ conn = xaConn.getConnection();
+ }
+ JDBCMetdataProcessor metadataProcessor = new JDBCMetdataProcessor();
+ PropertiesUtils.setBeanProperties(metadataProcessor, this.environment.getProperties(), "importer"); //$NON-NLS-1$
+ metadataProcessor.getConnectorMetadata(conn, metadataFactory);
+ } catch (SQLException e) {
+ throw new ConnectorException(e);
+ } finally {
+ try {
+ if (conn != null) {
+ conn.close();
+ }
+ if (xaConn != null) {
+ xaConn.close();
+ }
+ } catch (SQLException e) {
+
+ }
+ }
+ }
}
Added: trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/JDBCMetdataProcessor.java
===================================================================
--- trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/JDBCMetdataProcessor.java (rev 0)
+++ trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/JDBCMetdataProcessor.java 2009-07-10 16:41:23 UTC (rev 1118)
@@ -0,0 +1,298 @@
+/*
+ * 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.connector.jdbc;
+
+import java.sql.Connection;
+import java.sql.DatabaseMetaData;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.TreeMap;
+
+import org.teiid.connector.api.ConnectorException;
+import org.teiid.connector.api.TypeFacility;
+import org.teiid.connector.metadata.runtime.AbstractMetadataRecord;
+import org.teiid.connector.metadata.runtime.ColumnRecordImpl;
+import org.teiid.connector.metadata.runtime.MetadataFactory;
+import org.teiid.connector.metadata.runtime.TableRecordImpl;
+
+public class JDBCMetdataProcessor {
+
+ private static class TableInfo {
+ private String catalog;
+ private String schema;
+ private String name;
+ private TableRecordImpl table;
+
+ public TableInfo(String catalog, String schema, String name, TableRecordImpl table) {
+ this.catalog = catalog;
+ this.schema = schema;
+ this.name = name;
+ this.table = table;
+ }
+ }
+
+ private String catalog;
+ private String schemaPattern;
+ private String tableNamePattern;
+ private String procedureNamePattern;
+ private String[] tableTypes;
+
+ private boolean useFullSchemaName = true;
+ private boolean importKeys = true;
+ private boolean importIndexes = true;
+ private boolean importApproximateIndexes = true;
+ private boolean importProcedures = true;
+
+ public void getConnectorMetadata(Connection conn, MetadataFactory metadataFactory)
+ throws SQLException, ConnectorException {
+
+ //- retrieve tables
+ DatabaseMetaData metadata = conn.getMetaData();
+ ResultSet tables = metadata.getTables(catalog, schemaPattern, tableNamePattern, tableTypes);
+ Map<String, TableInfo> tableMap = new HashMap<String, TableInfo>();
+ while (tables.next()) {
+ String tableCatalog = tables.getString(1);
+ String tableSchema = tables.getString(2);
+ String tableName = tables.getString(3);
+ String fullName = getTableName(tableCatalog, tableSchema, tableName);
+ TableRecordImpl table = metadataFactory.addTable(useFullSchemaName?fullName:tableName);
+ table.setNameInSource(fullName);
+ table.setSupportsUpdate(true);
+ String remarks = tables.getString(5);
+ if (remarks != null) {
+ metadataFactory.addAnnotation(remarks, table);
+ }
+ tableMap.put(fullName, new TableInfo(tableCatalog, tableSchema, tableName, table));
+ }
+ tables.close();
+
+ getColumns(metadataFactory, metadata, tableMap);
+
+ if (importKeys) {
+ getPrimaryKeys(metadataFactory, metadata, tableMap);
+
+ getForeignKeys(metadataFactory, metadata, tableMap);
+ }
+
+ if (importIndexes) {
+ getIndexes(metadataFactory, metadata, tableMap);
+ }
+
+ if (importProcedures) {
+ /*ResultSet procedures = metadata.getProcedures(catalog, schemaPattern, procedureNamePattern);
+
+ procedures.close();*/
+ }
+ }
+
+ private void getColumns(MetadataFactory metadataFactory,
+ DatabaseMetaData metadata, Map<String, TableInfo> tableMap)
+ throws SQLException, ConnectorException {
+ ResultSet columns = metadata.getColumns(catalog, schemaPattern, tableNamePattern, null);
+ while (columns.next()) {
+ String tableCatalog = columns.getString(1);
+ String tableSchema = columns.getString(2);
+ String tableName = columns.getString(3);
+ String fullTableName = getTableName(tableCatalog, tableSchema, tableName);
+ TableInfo tableInfo = tableMap.get(fullTableName);
+ if (tableInfo == null) {
+ continue;
+ }
+ String columnName = columns.getString(4);
+ int type = columns.getInt(5);
+ //note that the resultset is already ordered by position, so we can rely on just adding columns in order
+ ColumnRecordImpl column = metadataFactory.addColumn(columnName, TypeFacility.getDataTypeNameFromSQLType(type), tableInfo.table);
+ column.setNativeType(columns.getString(6));
+ column.setRadix(columns.getInt(10));
+ column.setNullType(columns.getInt(11));
+ String remarks = columns.getString(12);
+ if (remarks != null) {
+ metadataFactory.addAnnotation(remarks, column);
+ }
+ column.setCharOctetLength(columns.getInt(16));
+ }
+ columns.close();
+ }
+
+ private static void getPrimaryKeys(MetadataFactory metadataFactory,
+ DatabaseMetaData metadata, Map<String, TableInfo> tableMap)
+ throws SQLException, ConnectorException {
+ for (TableInfo tableInfo : tableMap.values()) {
+ ResultSet pks = metadata.getPrimaryKeys(tableInfo.catalog, tableInfo.schema, tableInfo.name);
+ TreeMap<Short, String> keyColumns = null;
+ String pkName = null;
+ while (pks.next()) {
+ String columnName = pks.getString(4);
+ short seqNum = pks.getShort(5);
+ if (keyColumns == null) {
+ keyColumns = new TreeMap<Short, String>();
+ }
+ keyColumns.put(seqNum, columnName);
+ if (pkName == null) {
+ pkName = pks.getString(6);
+ if (pkName == null) {
+ pkName = "PK_" + tableInfo.table.getName().toUpperCase(); //$NON-NLS-1$
+ }
+ }
+ }
+ if (keyColumns != null) {
+ metadataFactory.addPrimaryKey(pkName, new ArrayList<String>(keyColumns.values()), tableInfo.table);
+ }
+ pks.close();
+ }
+ }
+
+ private static void getForeignKeys(MetadataFactory metadataFactory,
+ DatabaseMetaData metadata, Map<String, TableInfo> tableMap) throws SQLException, ConnectorException {
+ for (TableInfo tableInfo : tableMap.values()) {
+ ResultSet fks = metadata.getImportedKeys(tableInfo.catalog, tableInfo.schema, tableInfo.name);
+ TreeMap<Short, String> keyColumns = null;
+ String fkName = null;
+ TableInfo pkTable = null;
+ short savedSeqNum = Short.MAX_VALUE;
+ while (fks.next()) {
+ String columnName = fks.getString(8);
+ short seqNum = fks.getShort(9);
+ if (seqNum <= savedSeqNum) {
+ if (keyColumns != null) {
+ metadataFactory.addForiegnKey(fkName, new ArrayList<String>(keyColumns.values()), pkTable.table, tableInfo.table);
+ }
+ keyColumns = new TreeMap<Short, String>();
+ fkName = null;
+ }
+ savedSeqNum = seqNum;
+ keyColumns.put(seqNum, columnName);
+ if (fkName == null) {
+ String tableCatalog = fks.getString(1);
+ String tableSchema = fks.getString(2);
+ String tableName = fks.getString(3);
+ String fullTableName = getTableName(tableCatalog, tableSchema, tableName);
+ pkTable = tableMap.get(fullTableName);
+ if (pkTable == null) {
+ throw new ConnectorException(JDBCPlugin.Util.getString("JDBCMetadataProcessor.cannot_find_primary", fullTableName)); //$NON-NLS-1$
+ }
+ fkName = fks.getString(12);
+ if (fkName == null) {
+ fkName = "FK_" + tableInfo.table.getName().toUpperCase(); //$NON-NLS-1$
+ }
+ }
+ }
+ if (keyColumns != null) {
+ metadataFactory.addForiegnKey(fkName, new ArrayList<String>(keyColumns.values()), pkTable.table, tableInfo.table);
+ }
+ fks.close();
+ }
+ }
+
+ private void getIndexes(MetadataFactory metadataFactory,
+ DatabaseMetaData metadata, Map<String, TableInfo> tableMap) throws SQLException, ConnectorException {
+ for (TableInfo tableInfo : tableMap.values()) {
+ ResultSet indexInfo = metadata.getIndexInfo(tableInfo.catalog, tableInfo.schema, tableInfo.name, false, importApproximateIndexes);
+ TreeMap<Short, String> indexColumns = null;
+ String indexName = null;
+ short savedOrdinalPosition = Short.MAX_VALUE;
+ boolean nonUnique = false;
+ while (indexInfo.next()) {
+ short type = indexInfo.getShort(7);
+ if (type == DatabaseMetaData.tableIndexStatistic) {
+ tableInfo.table.setCardinality(indexInfo.getInt(11));
+ continue;
+ }
+ short ordinalPosition = indexInfo.getShort(8);
+ if (ordinalPosition <= savedOrdinalPosition) {
+ if (indexColumns != null) {
+ metadataFactory.addIndex(indexName, nonUnique, new ArrayList<String>(indexColumns.values()), tableInfo.table);
+ }
+ indexColumns = new TreeMap<Short, String>();
+ indexName = null;
+ }
+ savedOrdinalPosition = ordinalPosition;
+ String columnName = indexInfo.getString(9);
+ nonUnique = indexInfo.getBoolean(4);
+ indexColumns.put(ordinalPosition, columnName);
+ if (indexName == null) {
+ indexName = indexInfo.getString(6);
+ if (indexName == null) {
+ indexName = "NDX_" + tableInfo.table.getName().toUpperCase(); //$NON-NLS-1$
+ }
+ }
+ }
+ if (indexColumns != null) {
+ metadataFactory.addIndex(indexName, nonUnique, new ArrayList<String>(indexColumns.values()), tableInfo.table);
+ }
+ indexInfo.close();
+ }
+ }
+
+ private static String getTableName(String tableCatalog, String tableSchema,
+ String tableName) {
+ String fullName = tableName;
+ if (tableSchema != null && tableSchema.length() > 0) {
+ fullName = tableSchema + AbstractMetadataRecord.NAME_DELIM_CHAR + fullName;
+ }
+ if (tableCatalog != null && tableCatalog.length() > 0) {
+ fullName = tableCatalog + AbstractMetadataRecord.NAME_DELIM_CHAR + fullName;
+ }
+ return fullName;
+ }
+
+ public void setCatalog(String catalog) {
+ this.catalog = catalog;
+ }
+
+ public void setSchemaPattern(String schemaPattern) {
+ this.schemaPattern = schemaPattern;
+ }
+
+ public void setTableNamePattern(String tableNamePattern) {
+ this.tableNamePattern = tableNamePattern;
+ }
+
+ public void setTableTypes(String[] tableTypes) {
+ this.tableTypes = tableTypes;
+ }
+
+ public void setUseFullSchemaName(boolean useFullSchemaName) {
+ this.useFullSchemaName = useFullSchemaName;
+ }
+
+ public void setProcedureNamePattern(String procedureNamePattern) {
+ this.procedureNamePattern = procedureNamePattern;
+ }
+
+ public void setImportIndexes(boolean importIndexes) {
+ this.importIndexes = importIndexes;
+ }
+
+ public void setImportKeys(boolean importKeys) {
+ this.importKeys = importKeys;
+ }
+
+ public void setImportProcedures(boolean importProcedures) {
+ this.importProcedures = importProcedures;
+ }
+
+}
Property changes on: trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/JDBCMetdataProcessor.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/connectors/connector-jdbc/src/main/resources/org/teiid/connector/jdbc/i18n.properties
===================================================================
--- trunk/connectors/connector-jdbc/src/main/resources/org/teiid/connector/jdbc/i18n.properties 2009-07-10 16:15:38 UTC (rev 1117)
+++ trunk/connectors/connector-jdbc/src/main/resources/org/teiid/connector/jdbc/i18n.properties 2009-07-10 16:41:23 UTC (rev 1118)
@@ -71,3 +71,5 @@
JDBCUserIdentityConnectionFactory.Connection_property_missing=Required connection property "{0}" missing for system "{1}".
BasicResultsTranslator.Couldn__t_parse_property=Could not parse property: {0}
+
+JDBCMetadataProcessor.cannot_find_primary=Cannot find primary key table {0}
Modified: trunk/connectors/connector-text/src/main/java/com/metamatrix/connector/text/TextConnector.java
===================================================================
--- trunk/connectors/connector-text/src/main/java/com/metamatrix/connector/text/TextConnector.java 2009-07-10 16:15:38 UTC (rev 1117)
+++ trunk/connectors/connector-text/src/main/java/com/metamatrix/connector/text/TextConnector.java 2009-07-10 16:41:23 UTC (rev 1118)
@@ -379,6 +379,7 @@
String type = typeNames == null?TypeFacility.RUNTIME_NAMES.STRING:typeNames[i].trim().toLowerCase();
ColumnRecordImpl column = metadataFactory.addColumn(columnNames[i].trim(), type, table);
column.setNameInSource(String.valueOf(i));
+ column.setNativeType(TypeFacility.RUNTIME_NAMES.STRING);
}
}
}
Modified: trunk/connectors/connector-text/src/test/java/com/metamatrix/connector/text/TestTextConnector.java
===================================================================
--- trunk/connectors/connector-text/src/test/java/com/metamatrix/connector/text/TestTextConnector.java 2009-07-10 16:15:38 UTC (rev 1117)
+++ trunk/connectors/connector-text/src/test/java/com/metamatrix/connector/text/TestTextConnector.java 2009-07-10 16:41:23 UTC (rev 1118)
@@ -78,6 +78,7 @@
assertEquals("SummitData.SUMMITDATA", group.getFullName()); //$NON-NLS-1$
assertEquals(14, group.getColumns().size());
assertNotNull(group.getUUID());
+ assertEquals("string", group.getColumns().get(0).getNativeType()); //$NON-NLS-1$
}
Modified: trunk/metadata/src/main/java/org/teiid/connector/metadata/IndexCriteriaBuilder.java
===================================================================
--- trunk/metadata/src/main/java/org/teiid/connector/metadata/IndexCriteriaBuilder.java 2009-07-10 16:15:38 UTC (rev 1117)
+++ trunk/metadata/src/main/java/org/teiid/connector/metadata/IndexCriteriaBuilder.java 2009-07-10 16:41:23 UTC (rev 1118)
@@ -28,6 +28,7 @@
import org.teiid.connector.metadata.runtime.AbstractMetadataRecord;
import org.teiid.connector.metadata.runtime.DatatypeRecordImpl;
+import org.teiid.connector.metadata.runtime.MetadataConstants;
import org.teiid.connector.metadata.runtime.PropertyRecordImpl;
import org.teiid.metadata.index.IndexConstants;
import org.teiid.metadata.index.SimpleIndexUtil;
@@ -223,7 +224,7 @@
String recordTypeCriteria = getValueInCriteria(criteria, AbstractMetadataRecord.MetadataFieldNames.RECORD_TYPE_FIELD);
// if its a model or vdb record only criteria possible is on Name
if(recordTypeCriteria != null &&
- (recordTypeCriteria.equalsIgnoreCase(StringUtil.Constants.EMPTY_STRING+IndexConstants.RECORD_TYPE.MODEL))) {
+ (recordTypeCriteria.equalsIgnoreCase(StringUtil.Constants.EMPTY_STRING+MetadataConstants.RECORD_TYPE.MODEL))) {
appendCriteriaValue(criteria, AbstractMetadataRecord.MetadataFieldNames.NAME_FIELD, sb);
} else {
String modelNameCriteria = getValueInCriteria(criteria, AbstractMetadataRecord.MetadataFieldNames.MODEL_NAME_FIELD);
Modified: trunk/metadata/src/main/java/org/teiid/metadata/ConnectorMetadataStore.java
===================================================================
--- trunk/metadata/src/main/java/org/teiid/metadata/ConnectorMetadataStore.java 2009-07-10 16:15:38 UTC (rev 1117)
+++ trunk/metadata/src/main/java/org/teiid/metadata/ConnectorMetadataStore.java 2009-07-10 16:41:23 UTC (rev 1118)
@@ -33,6 +33,7 @@
import org.teiid.connector.metadata.runtime.ColumnRecordImpl;
import org.teiid.connector.metadata.runtime.ColumnSetRecordImpl;
import org.teiid.connector.metadata.runtime.ConnectorMetadata;
+import org.teiid.connector.metadata.runtime.MetadataConstants;
import org.teiid.connector.metadata.runtime.PropertyRecordImpl;
import org.teiid.connector.metadata.runtime.TableRecordImpl;
import org.teiid.metadata.index.IndexConstants;
@@ -93,7 +94,6 @@
public StoredProcedureInfo getStoredProcedureInfoForProcedure(
String fullyQualifiedProcedureName)
throws MetaMatrixComponentException, QueryMetadataException {
- // TODO Auto-generated method stub
return null;
}
@@ -113,32 +113,29 @@
private Collection<? extends AbstractMetadataRecord> getRecordsByType(
char recordType) {
switch (recordType) {
- case IndexConstants.RECORD_TYPE.CALLABLE:
+ case MetadataConstants.RECORD_TYPE.CALLABLE:
return metadata.getProcedures();
- case IndexConstants.RECORD_TYPE.CALLABLE_PARAMETER:
+ case MetadataConstants.RECORD_TYPE.CALLABLE_PARAMETER:
+ //TODO
return Collections.emptyList();
- case IndexConstants.RECORD_TYPE.RESULT_SET:
+ case MetadataConstants.RECORD_TYPE.RESULT_SET:
+ //TODO
return Collections.emptyList();
-
- case IndexConstants.RECORD_TYPE.ACCESS_PATTERN: {
+ case MetadataConstants.RECORD_TYPE.ACCESS_PATTERN: {
Collection<ColumnSetRecordImpl> results = new ArrayList<ColumnSetRecordImpl>();
for (TableRecordImpl table : metadata.getTables()) {
- if (table.getAccessPatterns() != null) {
- results.addAll(table.getAccessPatterns());
- }
+ results.addAll(table.getAccessPatterns());
}
return results;
}
- case IndexConstants.RECORD_TYPE.UNIQUE_KEY: {
+ case MetadataConstants.RECORD_TYPE.UNIQUE_KEY: {
Collection<ColumnSetRecordImpl> results = new ArrayList<ColumnSetRecordImpl>();
for (TableRecordImpl table : metadata.getTables()) {
- if (table.getUniqueKeys() != null) {
- results.addAll(table.getUniqueKeys());
- }
+ results.addAll(table.getUniqueKeys());
}
return results;
}
- case IndexConstants.RECORD_TYPE.PRIMARY_KEY: {
+ case MetadataConstants.RECORD_TYPE.PRIMARY_KEY: {
Collection<ColumnSetRecordImpl> results = new ArrayList<ColumnSetRecordImpl>();
for (TableRecordImpl table : metadata.getTables()) {
if (table.getPrimaryKey() != null) {
@@ -147,38 +144,38 @@
}
return results;
}
- case IndexConstants.RECORD_TYPE.FOREIGN_KEY: {
+ case MetadataConstants.RECORD_TYPE.FOREIGN_KEY: {
Collection<ColumnSetRecordImpl> results = new ArrayList<ColumnSetRecordImpl>();
for (TableRecordImpl table : metadata.getTables()) {
- if (table.getForeignKeys() != null) {
- results.addAll(table.getForeignKeys());
- }
+ results.addAll(table.getForeignKeys());
}
return results;
}
- case IndexConstants.RECORD_TYPE.INDEX: {
+ case MetadataConstants.RECORD_TYPE.INDEX: {
Collection<ColumnSetRecordImpl> results = new ArrayList<ColumnSetRecordImpl>();
for (TableRecordImpl table : metadata.getTables()) {
- if (table.getIndexes() != null) {
- results.addAll(table.getIndexes());
- }
+ results.addAll(table.getIndexes());
}
return results;
}
- case IndexConstants.RECORD_TYPE.MODEL:
+ case MetadataConstants.RECORD_TYPE.MODEL:
return Arrays.asList(metadata.getModel());
- case IndexConstants.RECORD_TYPE.TABLE:
+ case MetadataConstants.RECORD_TYPE.TABLE:
return metadata.getTables();
- case IndexConstants.RECORD_TYPE.COLUMN: {
+ case MetadataConstants.RECORD_TYPE.COLUMN: {
Collection<ColumnRecordImpl> results = new ArrayList<ColumnRecordImpl>();
for (TableRecordImpl table : metadata.getTables()) {
- if (table.getColumns() != null) {
- results.addAll(table.getColumns());
- }
+ results.addAll(table.getColumns());
}
return results;
}
+ case MetadataConstants.RECORD_TYPE.ANNOTATION: {
+ return metadata.getAnnotations();
}
+ case MetadataConstants.RECORD_TYPE.PROPERTY: {
+ return metadata.getProperties();
+ }
+ }
return Collections.emptyList();
}
@@ -187,26 +184,28 @@
String pattern, boolean isPrefix,
boolean isCaseSensitive) throws MetaMatrixCoreException {
if (indexName.equalsIgnoreCase(IndexConstants.INDEX_NAME.COLUMNS_INDEX)) {
- return getRecordsByType(IndexConstants.RECORD_TYPE.COLUMN);
+ return getRecordsByType(MetadataConstants.RECORD_TYPE.COLUMN);
} else if (indexName.equalsIgnoreCase(IndexConstants.INDEX_NAME.KEYS_INDEX)) {
List<AbstractMetadataRecord> result = new ArrayList<AbstractMetadataRecord>();
- result.addAll(getRecordsByType(IndexConstants.RECORD_TYPE.ACCESS_PATTERN));
- result.addAll(getRecordsByType(IndexConstants.RECORD_TYPE.UNIQUE_KEY));
- result.addAll(getRecordsByType(IndexConstants.RECORD_TYPE.PRIMARY_KEY));
- result.addAll(getRecordsByType(IndexConstants.RECORD_TYPE.FOREIGN_KEY));
- result.addAll(getRecordsByType(IndexConstants.RECORD_TYPE.INDEX));
+ result.addAll(getRecordsByType(MetadataConstants.RECORD_TYPE.ACCESS_PATTERN));
+ result.addAll(getRecordsByType(MetadataConstants.RECORD_TYPE.UNIQUE_KEY));
+ result.addAll(getRecordsByType(MetadataConstants.RECORD_TYPE.PRIMARY_KEY));
+ result.addAll(getRecordsByType(MetadataConstants.RECORD_TYPE.FOREIGN_KEY));
+ result.addAll(getRecordsByType(MetadataConstants.RECORD_TYPE.INDEX));
return result;
} else if (indexName.equalsIgnoreCase(IndexConstants.INDEX_NAME.MODELS_INDEX)) {
- return getRecordsByType(IndexConstants.RECORD_TYPE.MODEL);
+ return getRecordsByType(MetadataConstants.RECORD_TYPE.MODEL);
} else if (indexName.equalsIgnoreCase(IndexConstants.INDEX_NAME.PROCEDURES_INDEX)) {
List<AbstractMetadataRecord> result = new ArrayList<AbstractMetadataRecord>();
- result.addAll(getRecordsByType(IndexConstants.RECORD_TYPE.CALLABLE));
- result.addAll(getRecordsByType(IndexConstants.RECORD_TYPE.CALLABLE_PARAMETER));
- result.addAll(getRecordsByType(IndexConstants.RECORD_TYPE.RESULT_SET));
+ result.addAll(getRecordsByType(MetadataConstants.RECORD_TYPE.CALLABLE));
+ result.addAll(getRecordsByType(MetadataConstants.RECORD_TYPE.CALLABLE_PARAMETER));
+ result.addAll(getRecordsByType(MetadataConstants.RECORD_TYPE.RESULT_SET));
return result;
} else if (indexName.equalsIgnoreCase(IndexConstants.INDEX_NAME.TABLES_INDEX)) {
- return getRecordsByType(IndexConstants.RECORD_TYPE.TABLE);
- }
+ return getRecordsByType(MetadataConstants.RECORD_TYPE.TABLE);
+ } else if (indexName.equalsIgnoreCase(IndexConstants.INDEX_NAME.ANNOTATION_INDEX)) {
+ return getRecordsByType(MetadataConstants.RECORD_TYPE.ANNOTATION);
+ }
return Collections.emptyList();
}
Modified: trunk/metadata/src/main/java/org/teiid/metadata/TransformationMetadata.java
===================================================================
--- trunk/metadata/src/main/java/org/teiid/metadata/TransformationMetadata.java 2009-07-10 16:15:38 UTC (rev 1117)
+++ trunk/metadata/src/main/java/org/teiid/metadata/TransformationMetadata.java 2009-07-10 16:41:23 UTC (rev 1118)
@@ -25,6 +25,7 @@
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.InputStream;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
@@ -531,7 +532,7 @@
ArgCheck.isInstanceOf(TableRecordImpl.class, groupID);
TableRecordImpl tableRecordImpl = (TableRecordImpl)groupID;
if (tableRecordImpl.getPrimaryKey() != null) {
- LinkedList<ColumnSetRecordImpl> result = new LinkedList<ColumnSetRecordImpl>(tableRecordImpl.getUniqueKeys());
+ ArrayList<ColumnSetRecordImpl> result = new ArrayList<ColumnSetRecordImpl>(tableRecordImpl.getUniqueKeys());
result.add(tableRecordImpl.getPrimaryKey());
return result;
}
@@ -655,7 +656,7 @@
// get the transform record for this group
TransformationRecordImpl transformRecord = null;
// Query the index files
- Collection results = getMetadataStore().findMetadataRecords(IndexConstants.RECORD_TYPE.MAPPING_TRANSFORM,groupName,false);
+ Collection results = getMetadataStore().findMetadataRecords(MetadataConstants.RECORD_TYPE.MAPPING_TRANSFORM,groupName,false);
int resultSize = results.size();
if(resultSize == 1) {
// get the columnset record for this result
@@ -732,7 +733,7 @@
TransformationRecordImpl transformRecord = null;
// Query the index files
- Collection results = getMetadataStore().findMetadataRecords(IndexConstants.RECORD_TYPE.MAPPING_TRANSFORM,groupName,false);
+ Collection results = getMetadataStore().findMetadataRecords(MetadataConstants.RECORD_TYPE.MAPPING_TRANSFORM,groupName,false);
int resultSize = results.size();
if(resultSize == 1) {
// get the columnset record for this result
Modified: trunk/metadata/src/main/java/org/teiid/metadata/index/IndexConstants.java
===================================================================
--- trunk/metadata/src/main/java/org/teiid/metadata/index/IndexConstants.java 2009-07-10 16:15:38 UTC (rev 1117)
+++ trunk/metadata/src/main/java/org/teiid/metadata/index/IndexConstants.java 2009-07-10 16:41:23 UTC (rev 1118)
@@ -22,6 +22,8 @@
package org.teiid.metadata.index;
+import org.teiid.connector.metadata.runtime.MetadataConstants;
+
/**
* IndexConstants
*/
@@ -72,37 +74,7 @@
}
}
- //Record type Constants
- public static class RECORD_TYPE {
- public final static char MODEL = 'A';
- public final static char TABLE = 'B';
- public final static char RESULT_SET = 'C';
- public final static char JOIN_DESCRIPTOR = 'D';
- public final static char CALLABLE = 'E';
- public final static char CALLABLE_PARAMETER = 'F';
- public final static char COLUMN = 'G';
- public final static char ACCESS_PATTERN = 'H';
- public final static char UNIQUE_KEY = 'I';
- public final static char FOREIGN_KEY = 'J';
- public final static char PRIMARY_KEY = 'K';
- public final static char INDEX = 'L';
- public final static char DATATYPE = 'M';
- //public final static char DATATYPE_ELEMENT = 'N';
- //public final static char DATATYPE_FACET = 'O';
- public final static char SELECT_TRANSFORM = 'P';
- public final static char INSERT_TRANSFORM = 'Q';
- public final static char UPDATE_TRANSFORM = 'R';
- public final static char DELETE_TRANSFORM = 'S';
- public final static char PROC_TRANSFORM = 'T';
- public final static char MAPPING_TRANSFORM = 'U';
- public final static char VDB_ARCHIVE = 'V';
- public final static char ANNOTATION = 'W';
- public final static char PROPERTY = 'X';
- public final static char FILE = 'Z';
- public final static char RECORD_CONTINUATION = '&';
- }
-
- //Search Record type Constants
+ //Search Record type Constants
public static class SEARCH_RECORD_TYPE {
public final static char RESOURCE = 'A';
public final static char MODEL_IMPORT = 'B';
@@ -130,32 +102,32 @@
};
public static final char[] RECORD_TYPES = new char[]{
- RECORD_TYPE.MODEL,
- RECORD_TYPE.TABLE,
- RECORD_TYPE.RESULT_SET,
- RECORD_TYPE.JOIN_DESCRIPTOR,
- RECORD_TYPE.CALLABLE,
- RECORD_TYPE.CALLABLE_PARAMETER,
- RECORD_TYPE.COLUMN,
- RECORD_TYPE.ACCESS_PATTERN,
- RECORD_TYPE.UNIQUE_KEY,
- RECORD_TYPE.FOREIGN_KEY,
- RECORD_TYPE.PRIMARY_KEY,
- RECORD_TYPE.INDEX,
- RECORD_TYPE.DATATYPE,
+ MetadataConstants.RECORD_TYPE.MODEL,
+ MetadataConstants.RECORD_TYPE.TABLE,
+ MetadataConstants.RECORD_TYPE.RESULT_SET,
+ MetadataConstants.RECORD_TYPE.JOIN_DESCRIPTOR,
+ MetadataConstants.RECORD_TYPE.CALLABLE,
+ MetadataConstants.RECORD_TYPE.CALLABLE_PARAMETER,
+ MetadataConstants.RECORD_TYPE.COLUMN,
+ MetadataConstants.RECORD_TYPE.ACCESS_PATTERN,
+ MetadataConstants.RECORD_TYPE.UNIQUE_KEY,
+ MetadataConstants.RECORD_TYPE.FOREIGN_KEY,
+ MetadataConstants.RECORD_TYPE.PRIMARY_KEY,
+ MetadataConstants.RECORD_TYPE.INDEX,
+ MetadataConstants.RECORD_TYPE.DATATYPE,
//RECORD_TYPE.DATATYPE_ELEMENT,
//RECORD_TYPE.DATATYPE_FACET,
- RECORD_TYPE.SELECT_TRANSFORM,
- RECORD_TYPE.INSERT_TRANSFORM,
- RECORD_TYPE.UPDATE_TRANSFORM,
- RECORD_TYPE.DELETE_TRANSFORM,
- RECORD_TYPE.PROC_TRANSFORM,
- RECORD_TYPE.MAPPING_TRANSFORM,
- RECORD_TYPE.VDB_ARCHIVE,
- RECORD_TYPE.ANNOTATION,
- RECORD_TYPE.PROPERTY,
- RECORD_TYPE.FILE,
- RECORD_TYPE.RECORD_CONTINUATION
+ MetadataConstants.RECORD_TYPE.SELECT_TRANSFORM,
+ MetadataConstants.RECORD_TYPE.INSERT_TRANSFORM,
+ MetadataConstants.RECORD_TYPE.UPDATE_TRANSFORM,
+ MetadataConstants.RECORD_TYPE.DELETE_TRANSFORM,
+ MetadataConstants.RECORD_TYPE.PROC_TRANSFORM,
+ MetadataConstants.RECORD_TYPE.MAPPING_TRANSFORM,
+ MetadataConstants.RECORD_TYPE.VDB_ARCHIVE,
+ MetadataConstants.RECORD_TYPE.ANNOTATION,
+ MetadataConstants.RECORD_TYPE.PROPERTY,
+ MetadataConstants.RECORD_TYPE.FILE,
+ MetadataConstants.RECORD_TYPE.RECORD_CONTINUATION
};
public static class RECORD_STRING {
Modified: trunk/metadata/src/main/java/org/teiid/metadata/index/IndexMetadataStore.java
===================================================================
--- trunk/metadata/src/main/java/org/teiid/metadata/index/IndexMetadataStore.java 2009-07-10 16:15:38 UTC (rev 1117)
+++ trunk/metadata/src/main/java/org/teiid/metadata/index/IndexMetadataStore.java 2009-07-10 16:41:23 UTC (rev 1118)
@@ -89,7 +89,7 @@
public Collection<String> getModelNames() {
Collection<ModelRecordImpl> records;
try {
- records = findMetadataRecords(IndexConstants.RECORD_TYPE.MODEL, null, false);
+ records = findMetadataRecords(MetadataConstants.RECORD_TYPE.MODEL, null, false);
} catch (MetaMatrixComponentException e) {
throw new MetaMatrixRuntimeException(e);
}
@@ -102,14 +102,14 @@
@Override
public TableRecordImpl findGroup(String groupName) throws QueryMetadataException, MetaMatrixComponentException {
- TableRecordImpl tableRecord = (TableRecordImpl)getRecordByType(groupName, IndexConstants.RECORD_TYPE.TABLE);
- List<ColumnRecordImpl> columns = new ArrayList<ColumnRecordImpl>(findChildRecords(tableRecord, IndexConstants.RECORD_TYPE.COLUMN, true));
+ TableRecordImpl tableRecord = (TableRecordImpl)getRecordByType(groupName, MetadataConstants.RECORD_TYPE.TABLE);
+ List<ColumnRecordImpl> columns = new ArrayList<ColumnRecordImpl>(findChildRecords(tableRecord, MetadataConstants.RECORD_TYPE.COLUMN, true));
for (ColumnRecordImpl columnRecordImpl : columns) {
columnRecordImpl.setDatatype(getDatatypeCache().get(columnRecordImpl.getDatatypeUUID()));
}
Collections.sort(columns);
tableRecord.setColumns(columns);
- tableRecord.setAccessPatterns(findChildRecords(tableRecord, IndexConstants.RECORD_TYPE.ACCESS_PATTERN, true));
+ tableRecord.setAccessPatterns(findChildRecords(tableRecord, MetadataConstants.RECORD_TYPE.ACCESS_PATTERN, true));
Map<String, ColumnRecordImpl> uuidColumnMap = new HashMap<String, ColumnRecordImpl>();
for (ColumnRecordImpl columnRecordImpl : columns) {
uuidColumnMap.put(columnRecordImpl.getUUID(), columnRecordImpl);
@@ -117,44 +117,44 @@
for (ColumnSetRecordImpl columnSetRecordImpl : tableRecord.getAccessPatterns()) {
loadColumnSetRecords(columnSetRecordImpl, uuidColumnMap);
}
- tableRecord.setForiegnKeys(findChildRecords(tableRecord, IndexConstants.RECORD_TYPE.FOREIGN_KEY, true));
+ tableRecord.setForiegnKeys(findChildRecords(tableRecord, MetadataConstants.RECORD_TYPE.FOREIGN_KEY, true));
for (ForeignKeyRecordImpl foreignKeyRecord : tableRecord.getForeignKeys()) {
- (foreignKeyRecord).setPrimaryKey((ColumnSetRecordImpl)this.getRecordByType(foreignKeyRecord.getUniqueKeyID(), IndexConstants.RECORD_TYPE.PRIMARY_KEY));
+ (foreignKeyRecord).setPrimaryKey((ColumnSetRecordImpl)this.getRecordByType(foreignKeyRecord.getUniqueKeyID(), MetadataConstants.RECORD_TYPE.PRIMARY_KEY));
loadColumnSetRecords(foreignKeyRecord, uuidColumnMap);
}
- tableRecord.setUniqueKeys(findChildRecords(tableRecord, IndexConstants.RECORD_TYPE.UNIQUE_KEY, true));
+ tableRecord.setUniqueKeys(findChildRecords(tableRecord, MetadataConstants.RECORD_TYPE.UNIQUE_KEY, true));
for (ColumnSetRecordImpl columnSetRecordImpl : tableRecord.getUniqueKeys()) {
loadColumnSetRecords(columnSetRecordImpl, uuidColumnMap);
}
if (tableRecord.getPrimaryKeyID() != null) {
- ColumnSetRecordImpl primaryKey = (ColumnSetRecordImpl)getRecordByType(tableRecord.getPrimaryKeyID(), IndexConstants.RECORD_TYPE.PRIMARY_KEY);
+ ColumnSetRecordImpl primaryKey = (ColumnSetRecordImpl)getRecordByType(tableRecord.getPrimaryKeyID(), MetadataConstants.RECORD_TYPE.PRIMARY_KEY);
loadColumnSetRecords(primaryKey, uuidColumnMap);
tableRecord.setPrimaryKey(primaryKey);
}
- tableRecord.setModel((ModelRecordImpl)getRecordByType(tableRecord.getModelName(), IndexConstants.RECORD_TYPE.MODEL));
+ tableRecord.setModel((ModelRecordImpl)getRecordByType(tableRecord.getModelName(), MetadataConstants.RECORD_TYPE.MODEL));
if (tableRecord.isVirtual()) {
- TransformationRecordImpl update = (TransformationRecordImpl)getRecordByType(groupName, IndexConstants.RECORD_TYPE.UPDATE_TRANSFORM,false);
+ TransformationRecordImpl update = (TransformationRecordImpl)getRecordByType(groupName, MetadataConstants.RECORD_TYPE.UPDATE_TRANSFORM,false);
if (update != null) {
tableRecord.setUpdatePlan(update.getTransformation());
}
- TransformationRecordImpl insert = (TransformationRecordImpl)getRecordByType(groupName, IndexConstants.RECORD_TYPE.INSERT_TRANSFORM,false);
+ TransformationRecordImpl insert = (TransformationRecordImpl)getRecordByType(groupName, MetadataConstants.RECORD_TYPE.INSERT_TRANSFORM,false);
if (insert != null) {
tableRecord.setInsertPlan(insert.getTransformation());
}
- TransformationRecordImpl delete = (TransformationRecordImpl)getRecordByType(groupName, IndexConstants.RECORD_TYPE.DELETE_TRANSFORM,false);
+ TransformationRecordImpl delete = (TransformationRecordImpl)getRecordByType(groupName, MetadataConstants.RECORD_TYPE.DELETE_TRANSFORM,false);
if (delete != null) {
tableRecord.setDeletePlan(delete.getTransformation());
}
- TransformationRecordImpl select = (TransformationRecordImpl)getRecordByType(groupName, IndexConstants.RECORD_TYPE.SELECT_TRANSFORM,false);
+ TransformationRecordImpl select = (TransformationRecordImpl)getRecordByType(groupName, MetadataConstants.RECORD_TYPE.SELECT_TRANSFORM,false);
// this group may be an xml document
if(select == null) {
- select = (TransformationRecordImpl)getRecordByType(groupName, IndexConstants.RECORD_TYPE.MAPPING_TRANSFORM,false);
+ select = (TransformationRecordImpl)getRecordByType(groupName, MetadataConstants.RECORD_TYPE.MAPPING_TRANSFORM,false);
}
tableRecord.setSelectTransformation(select);
}
if (tableRecord.isMaterialized()) {
- tableRecord.setMaterializedStageTableName(getRecordByType(tableRecord.getMaterializedStageTableID(), IndexConstants.RECORD_TYPE.TABLE).getFullName());
- tableRecord.setMaterializedTableName(getRecordByType(tableRecord.getMaterializedTableID(), IndexConstants.RECORD_TYPE.TABLE).getFullName());
+ tableRecord.setMaterializedStageTableName(getRecordByType(tableRecord.getMaterializedStageTableID(), MetadataConstants.RECORD_TYPE.TABLE).getFullName());
+ tableRecord.setMaterializedTableName(getRecordByType(tableRecord.getMaterializedTableID(), MetadataConstants.RECORD_TYPE.TABLE).getFullName());
}
return tableRecord;
}
@@ -162,7 +162,7 @@
private Map<String, DatatypeRecordImpl> getDatatypeCache() throws MetaMatrixComponentException {
if (this.datatypeCache == null) {
this.datatypeCache = new HashMap<String, DatatypeRecordImpl>();
- Collection<DatatypeRecordImpl> dataTypes = findMetadataRecords(IndexConstants.RECORD_TYPE.DATATYPE, null, false);
+ Collection<DatatypeRecordImpl> dataTypes = findMetadataRecords(MetadataConstants.RECORD_TYPE.DATATYPE, null, false);
for (DatatypeRecordImpl datatypeRecordImpl : dataTypes) {
datatypeCache.put(datatypeRecordImpl.getUUID(), datatypeRecordImpl);
}
@@ -176,7 +176,7 @@
@Override
public ColumnRecordImpl findElement(String fullName) throws QueryMetadataException, MetaMatrixComponentException {
- ColumnRecordImpl columnRecord = (ColumnRecordImpl)getRecordByType(fullName, IndexConstants.RECORD_TYPE.COLUMN);
+ ColumnRecordImpl columnRecord = (ColumnRecordImpl)getRecordByType(fullName, MetadataConstants.RECORD_TYPE.COLUMN);
columnRecord.setDatatype(getDatatypeCache().get(columnRecord.getDatatypeUUID()));
return columnRecord;
}
@@ -185,7 +185,7 @@
public Collection<String> getGroupsForPartialName(String partialGroupName)
throws MetaMatrixComponentException, QueryMetadataException {
// Query the index files
- Collection<String> tableRecords = findMetadataRecords(IndexConstants.RECORD_TYPE.TABLE,partialGroupName,true);
+ Collection<String> tableRecords = findMetadataRecords(MetadataConstants.RECORD_TYPE.TABLE,partialGroupName,true);
// Extract the fully qualified names to return
final Collection tableNames = new ArrayList(tableRecords.size());
@@ -226,7 +226,7 @@
public StoredProcedureInfo getStoredProcedureInfoForProcedure(final String fullyQualifiedProcedureName)
throws MetaMatrixComponentException, QueryMetadataException {
- ProcedureRecordImpl procRecord = (ProcedureRecordImpl) getRecordByType(fullyQualifiedProcedureName, IndexConstants.RECORD_TYPE.CALLABLE);
+ ProcedureRecordImpl procRecord = (ProcedureRecordImpl) getRecordByType(fullyQualifiedProcedureName, MetadataConstants.RECORD_TYPE.CALLABLE);
String procedureFullName = procRecord.getFullName();
@@ -236,20 +236,20 @@
procInfo.setProcedureID(procRecord);
// modelID for the procedure
- AbstractMetadataRecord modelRecord = getRecordByType(procRecord.getModelName(), IndexConstants.RECORD_TYPE.MODEL);
+ AbstractMetadataRecord modelRecord = getRecordByType(procRecord.getModelName(), MetadataConstants.RECORD_TYPE.MODEL);
procInfo.setModelID(modelRecord);
// get the parameter metadata info
for(Iterator paramIter = procRecord.getParameterIDs().iterator();paramIter.hasNext();) {
String paramID = (String) paramIter.next();
- ProcedureParameterRecordImpl paramRecord = (ProcedureParameterRecordImpl) this.getRecordByType(paramID, IndexConstants.RECORD_TYPE.CALLABLE_PARAMETER);
+ ProcedureParameterRecordImpl paramRecord = (ProcedureParameterRecordImpl) this.getRecordByType(paramID, MetadataConstants.RECORD_TYPE.CALLABLE_PARAMETER);
String runtimeType = paramRecord.getRuntimeType();
int direction = this.convertParamRecordTypeToStoredProcedureType(paramRecord.getType());
// create a parameter and add it to the procedure object
SPParameter spParam = new SPParameter(paramRecord.getPosition(), direction, paramRecord.getFullName());
spParam.setMetadataID(paramRecord);
if (paramRecord.getDatatypeUUID() != null) {
- paramRecord.setDatatype((DatatypeRecordImpl)getRecordByType(paramRecord.getDatatypeUUID(), IndexConstants.RECORD_TYPE.DATATYPE));
+ paramRecord.setDatatype((DatatypeRecordImpl)getRecordByType(paramRecord.getDatatypeUUID(), MetadataConstants.RECORD_TYPE.DATATYPE));
}
spParam.setClassType(DataTypeManager.getDataTypeClass(runtimeType));
procInfo.addParameter(spParam);
@@ -259,7 +259,7 @@
String resultID = procRecord.getResultSetID();
if(resultID != null) {
try {
- ColumnSetRecordImpl resultRecord = (ColumnSetRecordImpl) this.getRecordByType(resultID, IndexConstants.RECORD_TYPE.RESULT_SET);
+ ColumnSetRecordImpl resultRecord = (ColumnSetRecordImpl) this.getRecordByType(resultID, MetadataConstants.RECORD_TYPE.RESULT_SET);
// resultSet is the last parameter in the procedure
int lastParamIndex = procInfo.getParameters().size() + 1;
SPParameter param = new SPParameter(lastParamIndex, SPParameter.RESULT_SET, resultRecord.getFullName());
@@ -283,7 +283,7 @@
// if this is a virtual procedure get the procedure plan
if(procRecord.isVirtual()) {
- TransformationRecordImpl transformRecord = (TransformationRecordImpl)getRecordByType(procedureFullName, IndexConstants.RECORD_TYPE.PROC_TRANSFORM, false);
+ TransformationRecordImpl transformRecord = (TransformationRecordImpl)getRecordByType(procedureFullName, MetadataConstants.RECORD_TYPE.PROC_TRANSFORM, false);
if(transformRecord != null) {
QueryNode queryNode = new QueryNode(procedureFullName, transformRecord.getTransformation());
procInfo.setQueryPlan(queryNode);
@@ -318,7 +318,7 @@
@Override
public Collection getXMLTempGroups(TableRecordImpl table) throws MetaMatrixComponentException {
// Query the index files
- final Collection results = findChildRecords(table, IndexConstants.RECORD_TYPE.TABLE, false);
+ final Collection results = findChildRecords(table, MetadataConstants.RECORD_TYPE.TABLE, false);
Collection tempGroups = new HashSet(results.size());
for(Iterator resultIter = results.iterator();resultIter.hasNext();) {
TableRecordImpl record = (TableRecordImpl) resultIter.next();
@@ -403,9 +403,9 @@
public Collection<PropertyRecordImpl> getExtensionProperties(AbstractMetadataRecord metadataRecord) throws MetaMatrixComponentException {
// find the entities properties records
String uuid = metadataRecord.getUUID();
- String prefixString = getUUIDPrefixPattern(IndexConstants.RECORD_TYPE.PROPERTY, uuid);
+ String prefixString = getUUIDPrefixPattern(MetadataConstants.RECORD_TYPE.PROPERTY, uuid);
- IEntryResult[] results = queryIndex(IndexConstants.RECORD_TYPE.PROPERTY, prefixString.toCharArray(), true, true, true);
+ IEntryResult[] results = queryIndex(MetadataConstants.RECORD_TYPE.PROPERTY, prefixString.toCharArray(), true, true, true);
return RecordFactory.getMetadataRecord(results);
}
@@ -506,7 +506,7 @@
// Query based on UUID
if (StringUtil.startsWithIgnoreCase(entityName,UUID.PROTOCOL)) {
String patternString = null;
- if (recordType == IndexConstants.RECORD_TYPE.DATATYPE) {
+ if (recordType == MetadataConstants.RECORD_TYPE.DATATYPE) {
patternString = getDatatypeUUIDMatchPattern(entityName);
} else {
patternString = getUUIDMatchPattern(recordType,entityName);
@@ -544,7 +544,7 @@
}
// construct the pattern string
String patternStr = "" //$NON-NLS-1$
- + IndexConstants.RECORD_TYPE.DATATYPE //recordType
+ + MetadataConstants.RECORD_TYPE.DATATYPE //recordType
+ IndexConstants.RECORD_STRING.RECORD_DELIMITER
+ IndexConstants.RECORD_STRING.MATCH_CHAR //datatypeID
+ IndexConstants.RECORD_STRING.RECORD_DELIMITER
Modified: trunk/metadata/src/main/java/org/teiid/metadata/index/RecordFactory.java
===================================================================
--- trunk/metadata/src/main/java/org/teiid/metadata/index/RecordFactory.java 2009-07-10 16:15:38 UTC (rev 1117)
+++ trunk/metadata/src/main/java/org/teiid/metadata/index/RecordFactory.java 2009-07-10 16:41:23 UTC (rev 1118)
@@ -170,28 +170,28 @@
return null;
}
switch (record[0]) {
- case IndexConstants.RECORD_TYPE.MODEL: return createModelRecord(record);
- case IndexConstants.RECORD_TYPE.TABLE: return createTableRecord(record);
- case IndexConstants.RECORD_TYPE.JOIN_DESCRIPTOR: return null;
- case IndexConstants.RECORD_TYPE.CALLABLE: return createProcedureRecord(record);
- case IndexConstants.RECORD_TYPE.CALLABLE_PARAMETER: return createProcedureParameterRecord(record);
- case IndexConstants.RECORD_TYPE.COLUMN: return createColumnRecord(record);
- case IndexConstants.RECORD_TYPE.ACCESS_PATTERN:
- case IndexConstants.RECORD_TYPE.INDEX:
- case IndexConstants.RECORD_TYPE.RESULT_SET:
- case IndexConstants.RECORD_TYPE.UNIQUE_KEY:
- case IndexConstants.RECORD_TYPE.PRIMARY_KEY: return createColumnSetRecord(record);
- case IndexConstants.RECORD_TYPE.FOREIGN_KEY: return createForeignKeyRecord(record);
- case IndexConstants.RECORD_TYPE.DATATYPE: return createDatatypeRecord(record);
- case IndexConstants.RECORD_TYPE.SELECT_TRANSFORM:
- case IndexConstants.RECORD_TYPE.INSERT_TRANSFORM:
- case IndexConstants.RECORD_TYPE.UPDATE_TRANSFORM:
- case IndexConstants.RECORD_TYPE.DELETE_TRANSFORM:
- case IndexConstants.RECORD_TYPE.MAPPING_TRANSFORM:
- case IndexConstants.RECORD_TYPE.PROC_TRANSFORM: return createTransformationRecord(record);
- case IndexConstants.RECORD_TYPE.ANNOTATION: return createAnnotationRecord(record);
- case IndexConstants.RECORD_TYPE.PROPERTY: return createPropertyRecord(record);
- case IndexConstants.RECORD_TYPE.FILE: return createFileRecord(record);
+ case MetadataConstants.RECORD_TYPE.MODEL: return createModelRecord(record);
+ case MetadataConstants.RECORD_TYPE.TABLE: return createTableRecord(record);
+ case MetadataConstants.RECORD_TYPE.JOIN_DESCRIPTOR: return null;
+ case MetadataConstants.RECORD_TYPE.CALLABLE: return createProcedureRecord(record);
+ case MetadataConstants.RECORD_TYPE.CALLABLE_PARAMETER: return createProcedureParameterRecord(record);
+ case MetadataConstants.RECORD_TYPE.COLUMN: return createColumnRecord(record);
+ case MetadataConstants.RECORD_TYPE.ACCESS_PATTERN:
+ case MetadataConstants.RECORD_TYPE.INDEX:
+ case MetadataConstants.RECORD_TYPE.RESULT_SET:
+ case MetadataConstants.RECORD_TYPE.UNIQUE_KEY:
+ case MetadataConstants.RECORD_TYPE.PRIMARY_KEY: return createColumnSetRecord(record);
+ case MetadataConstants.RECORD_TYPE.FOREIGN_KEY: return createForeignKeyRecord(record);
+ case MetadataConstants.RECORD_TYPE.DATATYPE: return createDatatypeRecord(record);
+ case MetadataConstants.RECORD_TYPE.SELECT_TRANSFORM:
+ case MetadataConstants.RECORD_TYPE.INSERT_TRANSFORM:
+ case MetadataConstants.RECORD_TYPE.UPDATE_TRANSFORM:
+ case MetadataConstants.RECORD_TYPE.DELETE_TRANSFORM:
+ case MetadataConstants.RECORD_TYPE.MAPPING_TRANSFORM:
+ case MetadataConstants.RECORD_TYPE.PROC_TRANSFORM: return createTransformationRecord(record);
+ case MetadataConstants.RECORD_TYPE.ANNOTATION: return createAnnotationRecord(record);
+ case MetadataConstants.RECORD_TYPE.PROPERTY: return createPropertyRecord(record);
+ case MetadataConstants.RECORD_TYPE.FILE: return createFileRecord(record);
default:
throw new IllegalArgumentException("Invalid record type for creating MetadataRecord "+record[0]); //$NON-NLS-1$
}
@@ -223,7 +223,7 @@
// If the IEntryResult is not continued on another record, return the original
char[] baseResult = result.getWord();
- if (baseResult.length < blockSize || baseResult[blockSize-1] != IndexConstants.RECORD_TYPE.RECORD_CONTINUATION) {
+ if (baseResult.length < blockSize || baseResult[blockSize-1] != MetadataConstants.RECORD_TYPE.RECORD_CONTINUATION) {
return result;
}
@@ -410,12 +410,12 @@
protected static String getTransformTypeForRecordType(final char recordType) {
switch (recordType) {
- case IndexConstants.RECORD_TYPE.SELECT_TRANSFORM: return TransformationRecordImpl.Types.SELECT;
- case IndexConstants.RECORD_TYPE.INSERT_TRANSFORM: return TransformationRecordImpl.Types.INSERT;
- case IndexConstants.RECORD_TYPE.UPDATE_TRANSFORM: return TransformationRecordImpl.Types.UPDATE;
- case IndexConstants.RECORD_TYPE.DELETE_TRANSFORM: return TransformationRecordImpl.Types.DELETE;
- case IndexConstants.RECORD_TYPE.PROC_TRANSFORM: return TransformationRecordImpl.Types.PROCEDURE;
- case IndexConstants.RECORD_TYPE.MAPPING_TRANSFORM: return TransformationRecordImpl.Types.MAPPING;
+ case MetadataConstants.RECORD_TYPE.SELECT_TRANSFORM: return TransformationRecordImpl.Types.SELECT;
+ case MetadataConstants.RECORD_TYPE.INSERT_TRANSFORM: return TransformationRecordImpl.Types.INSERT;
+ case MetadataConstants.RECORD_TYPE.UPDATE_TRANSFORM: return TransformationRecordImpl.Types.UPDATE;
+ case MetadataConstants.RECORD_TYPE.DELETE_TRANSFORM: return TransformationRecordImpl.Types.DELETE;
+ case MetadataConstants.RECORD_TYPE.PROC_TRANSFORM: return TransformationRecordImpl.Types.PROCEDURE;
+ case MetadataConstants.RECORD_TYPE.MAPPING_TRANSFORM: return TransformationRecordImpl.Types.MAPPING;
default:
throw new IllegalArgumentException("Invalid record type, for key " + recordType); //$NON-NLS-1$
}
@@ -423,12 +423,12 @@
protected static short getKeyTypeForRecordType(final char recordType) {
switch (recordType) {
- case IndexConstants.RECORD_TYPE.UNIQUE_KEY: return MetadataConstants.KEY_TYPES.UNIQUE_KEY;
- case IndexConstants.RECORD_TYPE.INDEX: return MetadataConstants.KEY_TYPES.INDEX;
- case IndexConstants.RECORD_TYPE.ACCESS_PATTERN: return MetadataConstants.KEY_TYPES.ACCESS_PATTERN;
- case IndexConstants.RECORD_TYPE.PRIMARY_KEY: return MetadataConstants.KEY_TYPES.PRIMARY_KEY;
- case IndexConstants.RECORD_TYPE.FOREIGN_KEY: return MetadataConstants.KEY_TYPES.FOREIGN_KEY;
- case IndexConstants.RECORD_TYPE.RESULT_SET : return -1;
+ case MetadataConstants.RECORD_TYPE.UNIQUE_KEY: return MetadataConstants.KEY_TYPES.UNIQUE_KEY;
+ case MetadataConstants.RECORD_TYPE.INDEX: return MetadataConstants.KEY_TYPES.INDEX;
+ case MetadataConstants.RECORD_TYPE.ACCESS_PATTERN: return MetadataConstants.KEY_TYPES.ACCESS_PATTERN;
+ case MetadataConstants.RECORD_TYPE.PRIMARY_KEY: return MetadataConstants.KEY_TYPES.PRIMARY_KEY;
+ case MetadataConstants.RECORD_TYPE.FOREIGN_KEY: return MetadataConstants.KEY_TYPES.FOREIGN_KEY;
+ case MetadataConstants.RECORD_TYPE.RESULT_SET : return -1;
default:
throw new IllegalArgumentException("Invalid record type, for key" + recordType); //$NON-NLS-1$
}
@@ -599,7 +599,7 @@
List uuids = getIDs((String)tokens.get(tokenIndex++), indexVersion);
columnSet.setColumnIDs(uuids);
- if (record[0] == IndexConstants.RECORD_TYPE.UNIQUE_KEY || record[0] == IndexConstants.RECORD_TYPE.PRIMARY_KEY) {
+ if (record[0] == MetadataConstants.RECORD_TYPE.UNIQUE_KEY || record[0] == MetadataConstants.RECORD_TYPE.PRIMARY_KEY) {
//read the values from the index to update the tokenindex, but we don't actually use them.
getIDs((String)tokens.get(tokenIndex++), indexVersion);
}
Modified: trunk/metadata/src/main/java/org/teiid/metadata/index/SimpleIndexUtil.java
===================================================================
--- trunk/metadata/src/main/java/org/teiid/metadata/index/SimpleIndexUtil.java 2009-07-10 16:15:38 UTC (rev 1117)
+++ trunk/metadata/src/main/java/org/teiid/metadata/index/SimpleIndexUtil.java 2009-07-10 16:41:23 UTC (rev 1118)
@@ -30,6 +30,7 @@
import java.util.Iterator;
import java.util.List;
+import org.teiid.connector.metadata.runtime.MetadataConstants;
import org.teiid.core.index.IEntryResult;
import org.teiid.internal.core.index.BlocksIndexInput;
import org.teiid.internal.core.index.Index;
@@ -246,7 +247,7 @@
// filter out any continuation records, they should already appended
// to index record thet is continued
IEntryResult result = partialResults[j];
- if(result != null && result.getWord()[0] != IndexConstants.RECORD_TYPE.RECORD_CONTINUATION) {
+ if(result != null && result.getWord()[0] != MetadataConstants.RECORD_TYPE.RECORD_CONTINUATION) {
queryResult.add(partialResults[j]);
}
}
@@ -325,7 +326,7 @@
char[] recordWord = partialResults[j].getWord();
// filter out any continuation records, they should already appended
// to index record thet is continued
- if(recordWord[0] != IndexConstants.RECORD_TYPE.RECORD_CONTINUATION) {
+ if(recordWord[0] != MetadataConstants.RECORD_TYPE.RECORD_CONTINUATION) {
if (!isPrefix) {
// filter results that do not match after tokenizing the record
if(entryMatches(recordWord,pattern,IndexConstants.RECORD_STRING.RECORD_DELIMITER) ) {
@@ -371,13 +372,13 @@
char[] word = partialResult.getWord();
// If this IEntryResult is not continued on another record then skip to the next result
- if (word.length < blockSize || word[blockSize-1] != IndexConstants.RECORD_TYPE.RECORD_CONTINUATION) {
+ if (word.length < blockSize || word[blockSize-1] != MetadataConstants.RECORD_TYPE.RECORD_CONTINUATION) {
continue;
}
// Extract the UUID from the IEntryResult to use when creating the prefix string
String objectID = RecordFactory.extractUUIDString(partialResult);
String patternStr = "" //$NON-NLS-1$
- + IndexConstants.RECORD_TYPE.RECORD_CONTINUATION
+ + MetadataConstants.RECORD_TYPE.RECORD_CONTINUATION
+ word[0]
+ IndexConstants.RECORD_STRING.RECORD_DELIMITER
+ objectID
@@ -492,31 +493,31 @@
*/
public static String getIndexFileNameForRecordType(final char recordType) {
switch (recordType) {
- case IndexConstants.RECORD_TYPE.COLUMN: return IndexConstants.INDEX_NAME.COLUMNS_INDEX;
- case IndexConstants.RECORD_TYPE.TABLE: return IndexConstants.INDEX_NAME.TABLES_INDEX;
- case IndexConstants.RECORD_TYPE.MODEL: return IndexConstants.INDEX_NAME.MODELS_INDEX;
- case IndexConstants.RECORD_TYPE.CALLABLE:
- case IndexConstants.RECORD_TYPE.CALLABLE_PARAMETER:
- case IndexConstants.RECORD_TYPE.RESULT_SET: return IndexConstants.INDEX_NAME.PROCEDURES_INDEX;
- case IndexConstants.RECORD_TYPE.INDEX:
- case IndexConstants.RECORD_TYPE.ACCESS_PATTERN:
- case IndexConstants.RECORD_TYPE.PRIMARY_KEY:
- case IndexConstants.RECORD_TYPE.FOREIGN_KEY:
- case IndexConstants.RECORD_TYPE.UNIQUE_KEY: return IndexConstants.INDEX_NAME.KEYS_INDEX;
- case IndexConstants.RECORD_TYPE.SELECT_TRANSFORM: return IndexConstants.INDEX_NAME.SELECT_TRANSFORM_INDEX;
- case IndexConstants.RECORD_TYPE.INSERT_TRANSFORM: return IndexConstants.INDEX_NAME.INSERT_TRANSFORM_INDEX;
- case IndexConstants.RECORD_TYPE.UPDATE_TRANSFORM: return IndexConstants.INDEX_NAME.UPDATE_TRANSFORM_INDEX;
- case IndexConstants.RECORD_TYPE.DELETE_TRANSFORM: return IndexConstants.INDEX_NAME.DELETE_TRANSFORM_INDEX;
- case IndexConstants.RECORD_TYPE.PROC_TRANSFORM: return IndexConstants.INDEX_NAME.PROC_TRANSFORM_INDEX;
- case IndexConstants.RECORD_TYPE.MAPPING_TRANSFORM: return IndexConstants.INDEX_NAME.MAPPING_TRANSFORM_INDEX;
- case IndexConstants.RECORD_TYPE.DATATYPE: return IndexConstants.INDEX_NAME.DATATYPES_INDEX;
+ case MetadataConstants.RECORD_TYPE.COLUMN: return IndexConstants.INDEX_NAME.COLUMNS_INDEX;
+ case MetadataConstants.RECORD_TYPE.TABLE: return IndexConstants.INDEX_NAME.TABLES_INDEX;
+ case MetadataConstants.RECORD_TYPE.MODEL: return IndexConstants.INDEX_NAME.MODELS_INDEX;
+ case MetadataConstants.RECORD_TYPE.CALLABLE:
+ case MetadataConstants.RECORD_TYPE.CALLABLE_PARAMETER:
+ case MetadataConstants.RECORD_TYPE.RESULT_SET: return IndexConstants.INDEX_NAME.PROCEDURES_INDEX;
+ case MetadataConstants.RECORD_TYPE.INDEX:
+ case MetadataConstants.RECORD_TYPE.ACCESS_PATTERN:
+ case MetadataConstants.RECORD_TYPE.PRIMARY_KEY:
+ case MetadataConstants.RECORD_TYPE.FOREIGN_KEY:
+ case MetadataConstants.RECORD_TYPE.UNIQUE_KEY: return IndexConstants.INDEX_NAME.KEYS_INDEX;
+ case MetadataConstants.RECORD_TYPE.SELECT_TRANSFORM: return IndexConstants.INDEX_NAME.SELECT_TRANSFORM_INDEX;
+ case MetadataConstants.RECORD_TYPE.INSERT_TRANSFORM: return IndexConstants.INDEX_NAME.INSERT_TRANSFORM_INDEX;
+ case MetadataConstants.RECORD_TYPE.UPDATE_TRANSFORM: return IndexConstants.INDEX_NAME.UPDATE_TRANSFORM_INDEX;
+ case MetadataConstants.RECORD_TYPE.DELETE_TRANSFORM: return IndexConstants.INDEX_NAME.DELETE_TRANSFORM_INDEX;
+ case MetadataConstants.RECORD_TYPE.PROC_TRANSFORM: return IndexConstants.INDEX_NAME.PROC_TRANSFORM_INDEX;
+ case MetadataConstants.RECORD_TYPE.MAPPING_TRANSFORM: return IndexConstants.INDEX_NAME.MAPPING_TRANSFORM_INDEX;
+ case MetadataConstants.RECORD_TYPE.DATATYPE: return IndexConstants.INDEX_NAME.DATATYPES_INDEX;
//case IndexConstants.RECORD_TYPE.DATATYPE_ELEMENT:
//case IndexConstants.RECORD_TYPE.DATATYPE_FACET:
- case IndexConstants.RECORD_TYPE.VDB_ARCHIVE: return IndexConstants.INDEX_NAME.VDBS_INDEX;
- case IndexConstants.RECORD_TYPE.ANNOTATION: return IndexConstants.INDEX_NAME.ANNOTATION_INDEX;
- case IndexConstants.RECORD_TYPE.PROPERTY: return IndexConstants.INDEX_NAME.PROPERTIES_INDEX;
+ case MetadataConstants.RECORD_TYPE.VDB_ARCHIVE: return IndexConstants.INDEX_NAME.VDBS_INDEX;
+ case MetadataConstants.RECORD_TYPE.ANNOTATION: return IndexConstants.INDEX_NAME.ANNOTATION_INDEX;
+ case MetadataConstants.RECORD_TYPE.PROPERTY: return IndexConstants.INDEX_NAME.PROPERTIES_INDEX;
//case IndexConstants.RECORD_TYPE.JOIN_DESCRIPTOR: return null;
- case IndexConstants.RECORD_TYPE.FILE: return IndexConstants.INDEX_NAME.FILES_INDEX;
+ case MetadataConstants.RECORD_TYPE.FILE: return IndexConstants.INDEX_NAME.FILES_INDEX;
}
throw new IllegalArgumentException("Unkown record type " + recordType);
}
@@ -530,33 +531,33 @@
public static String getRecordTypeForIndexFileName(final String indexName) {
char recordType;
if(indexName.equalsIgnoreCase(IndexConstants.INDEX_NAME.COLUMNS_INDEX)) {
- recordType = IndexConstants.RECORD_TYPE.COLUMN;
+ recordType = MetadataConstants.RECORD_TYPE.COLUMN;
} else if(indexName.equalsIgnoreCase(IndexConstants.INDEX_NAME.TABLES_INDEX)) {
- recordType = IndexConstants.RECORD_TYPE.TABLE;
+ recordType = MetadataConstants.RECORD_TYPE.TABLE;
} else if(indexName.equalsIgnoreCase(IndexConstants.INDEX_NAME.MODELS_INDEX)) {
- recordType = IndexConstants.RECORD_TYPE.MODEL;
+ recordType = MetadataConstants.RECORD_TYPE.MODEL;
} else if(indexName.equalsIgnoreCase(IndexConstants.INDEX_NAME.DATATYPES_INDEX)) {
- recordType = IndexConstants.RECORD_TYPE.DATATYPE;
+ recordType = MetadataConstants.RECORD_TYPE.DATATYPE;
} else if(indexName.equalsIgnoreCase(IndexConstants.INDEX_NAME.VDBS_INDEX)) {
- recordType = IndexConstants.RECORD_TYPE.VDB_ARCHIVE;
+ recordType = MetadataConstants.RECORD_TYPE.VDB_ARCHIVE;
} else if(indexName.equalsIgnoreCase(IndexConstants.INDEX_NAME.ANNOTATION_INDEX)) {
- recordType = IndexConstants.RECORD_TYPE.ANNOTATION;
+ recordType = MetadataConstants.RECORD_TYPE.ANNOTATION;
} else if(indexName.equalsIgnoreCase(IndexConstants.INDEX_NAME.PROPERTIES_INDEX)) {
- recordType = IndexConstants.RECORD_TYPE.PROPERTY;
+ recordType = MetadataConstants.RECORD_TYPE.PROPERTY;
} else if(indexName.equalsIgnoreCase(IndexConstants.INDEX_NAME.SELECT_TRANSFORM_INDEX)) {
- recordType = IndexConstants.RECORD_TYPE.SELECT_TRANSFORM;
+ recordType = MetadataConstants.RECORD_TYPE.SELECT_TRANSFORM;
} else if(indexName.equalsIgnoreCase(IndexConstants.INDEX_NAME.INSERT_TRANSFORM_INDEX)) {
- recordType = IndexConstants.RECORD_TYPE.INSERT_TRANSFORM;
+ recordType = MetadataConstants.RECORD_TYPE.INSERT_TRANSFORM;
} else if(indexName.equalsIgnoreCase(IndexConstants.INDEX_NAME.UPDATE_TRANSFORM_INDEX)) {
- recordType = IndexConstants.RECORD_TYPE.UPDATE_TRANSFORM;
+ recordType = MetadataConstants.RECORD_TYPE.UPDATE_TRANSFORM;
} else if(indexName.equalsIgnoreCase(IndexConstants.INDEX_NAME.DELETE_TRANSFORM_INDEX)) {
- recordType = IndexConstants.RECORD_TYPE.DELETE_TRANSFORM;
+ recordType = MetadataConstants.RECORD_TYPE.DELETE_TRANSFORM;
} else if(indexName.equalsIgnoreCase(IndexConstants.INDEX_NAME.PROC_TRANSFORM_INDEX)) {
- recordType = IndexConstants.RECORD_TYPE.PROC_TRANSFORM;
+ recordType = MetadataConstants.RECORD_TYPE.PROC_TRANSFORM;
} else if(indexName.equalsIgnoreCase(IndexConstants.INDEX_NAME.MAPPING_TRANSFORM_INDEX)) {
- recordType = IndexConstants.RECORD_TYPE.MAPPING_TRANSFORM;
+ recordType = MetadataConstants.RECORD_TYPE.MAPPING_TRANSFORM;
} else if(indexName.equalsIgnoreCase(IndexConstants.INDEX_NAME.FILES_INDEX)) {
- recordType = IndexConstants.RECORD_TYPE.FILE;
+ recordType = MetadataConstants.RECORD_TYPE.FILE;
} else {
return null;
}
Modified: trunk/metadata/src/test/java/com/metamatrix/connector/metadata/index/TestIndexCriteriaBuilder.java
===================================================================
--- trunk/metadata/src/test/java/com/metamatrix/connector/metadata/index/TestIndexCriteriaBuilder.java 2009-07-10 16:15:38 UTC (rev 1117)
+++ trunk/metadata/src/test/java/com/metamatrix/connector/metadata/index/TestIndexCriteriaBuilder.java 2009-07-10 16:41:23 UTC (rev 1118)
@@ -29,6 +29,7 @@
import org.teiid.connector.metadata.MetadataLiteralCriteria;
import org.teiid.connector.metadata.runtime.AbstractMetadataRecord;
import org.teiid.connector.metadata.runtime.DatatypeRecordImpl;
+import org.teiid.connector.metadata.runtime.MetadataConstants;
import org.teiid.connector.metadata.runtime.PropertyRecordImpl;
import org.teiid.metadata.index.IndexConstants;
@@ -62,7 +63,7 @@
Map criteria = new HashMap();
helpAddToCriteria(criteria, DatatypeRecordImpl.MetadataFieldNames.DATA_TYPE_UUID, "dataTypeUUID"); //$NON-NLS-1$
String matchPrefix = IndexCriteriaBuilder.getMatchPrefix(IndexConstants.INDEX_NAME.DATATYPES_INDEX, criteria);
- String expectedPrefix = ""+IndexConstants.RECORD_TYPE.DATATYPE+//$NON-NLS-1$
+ String expectedPrefix = ""+MetadataConstants.RECORD_TYPE.DATATYPE+//$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"datatypeuuid"+ //$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER;
@@ -100,7 +101,7 @@
helpAddToCriteria(criteria, AbstractMetadataRecord.MetadataFieldNames.UUID_FIELD, "UUID"); //$NON-NLS-1$
helpAddToCriteria(criteria, AbstractMetadataRecord.MetadataFieldNames.NAME_FIELD, "Name"); //$NON-NLS-1$
String matchPattern = IndexCriteriaBuilder.getMatchPattern(IndexConstants.INDEX_NAME.DATATYPES_INDEX, criteria);
- String expectedPattern = ""+IndexConstants.RECORD_TYPE.DATATYPE+//$NON-NLS-1$
+ String expectedPattern = ""+MetadataConstants.RECORD_TYPE.DATATYPE+//$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"dataTypeUUID"+ //$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"baseTypeUUID"+ //$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"Name"+ //$NON-NLS-1$
@@ -122,7 +123,7 @@
helpAddToCriteria(criteria, AbstractMetadataRecord.MetadataFieldNames.UUID_FIELD, "UUID"); //$NON-NLS-1$
helpAddToCriteria(criteria, AbstractMetadataRecord.MetadataFieldNames.NAME_FIELD, "Name"); //$NON-NLS-1$
String matchPattern = IndexCriteriaBuilder.getMatchPattern(IndexConstants.INDEX_NAME.DATATYPES_INDEX, criteria);
- String expectedPattern = ""+IndexConstants.RECORD_TYPE.DATATYPE+//$NON-NLS-1$
+ String expectedPattern = ""+MetadataConstants.RECORD_TYPE.DATATYPE+//$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"*"+ //$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"baseTypeUUID"+ //$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"Name"+ //$NON-NLS-1$
@@ -142,7 +143,7 @@
helpAddToCriteria(criteria, PropertyRecordImpl.MetadataFieldNames.PROPERTY_VALUE_FIELD, "propValue"); //$NON-NLS-1$
helpAddToCriteria(criteria, AbstractMetadataRecord.MetadataFieldNames.UUID_FIELD, "UUID"); //$NON-NLS-1$
String matchPrefix = IndexCriteriaBuilder.getMatchPrefix(IndexConstants.INDEX_NAME.PROPERTIES_INDEX, criteria);
- String expectedPrefix = ""+IndexConstants.RECORD_TYPE.PROPERTY+//$NON-NLS-1$
+ String expectedPrefix = ""+MetadataConstants.RECORD_TYPE.PROPERTY+//$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"uuid"+ //$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER;
@@ -182,7 +183,7 @@
helpAddToCriteria(criteria, PropertyRecordImpl.MetadataFieldNames.PROPERTY_VALUE_FIELD, "propValue"); //$NON-NLS-1$
helpAddToCriteria(criteria, AbstractMetadataRecord.MetadataFieldNames.UUID_FIELD, "UUID"); //$NON-NLS-1$
String matchPattern = IndexCriteriaBuilder.getMatchPattern(IndexConstants.INDEX_NAME.PROPERTIES_INDEX, criteria);
- String expectedPattern = ""+IndexConstants.RECORD_TYPE.PROPERTY+//$NON-NLS-1$
+ String expectedPattern = ""+MetadataConstants.RECORD_TYPE.PROPERTY+//$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"UUID"+ //$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"propName"+ //$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"propValue"+ //$NON-NLS-1$
@@ -196,7 +197,7 @@
helpAddToCriteria(criteria, PropertyRecordImpl.MetadataFieldNames.PROPERTY_NAME_FIELD, "propName"); //$NON-NLS-1$
helpAddToCriteria(criteria, AbstractMetadataRecord.MetadataFieldNames.UUID_FIELD, "UUID"); //$NON-NLS-1$
String matchPattern = IndexCriteriaBuilder.getMatchPattern(IndexConstants.INDEX_NAME.PROPERTIES_INDEX, criteria);
- String expectedPattern = ""+IndexConstants.RECORD_TYPE.PROPERTY+//$NON-NLS-1$
+ String expectedPattern = ""+MetadataConstants.RECORD_TYPE.PROPERTY+//$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"UUID"+ //$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"propName"+ //$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"*"+ //$NON-NLS-1$
@@ -211,7 +212,7 @@
helpAddToCriteria(criteria, AbstractMetadataRecord.MetadataFieldNames.UUID_FIELD, "UUID"); //$NON-NLS-1$
helpAddToCriteria(criteria, AbstractMetadataRecord.MetadataFieldNames.NAME_FIELD, "Name"); //$NON-NLS-1$
String matchPrefix = IndexCriteriaBuilder.getMatchPrefix(IndexConstants.INDEX_NAME.MODELS_INDEX, criteria);
- String expectedPrefix = ""+IndexConstants.RECORD_TYPE.MODEL+//$NON-NLS-1$
+ String expectedPrefix = ""+MetadataConstants.RECORD_TYPE.MODEL+//$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"NAME"+ //$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER;
@@ -253,7 +254,7 @@
helpAddToCriteria(criteria, AbstractMetadataRecord.MetadataFieldNames.UUID_FIELD, "UUID"); //$NON-NLS-1$
helpAddToCriteria(criteria, AbstractMetadataRecord.MetadataFieldNames.NAME_FIELD, "Name"); //$NON-NLS-1$
String matchPattern = IndexCriteriaBuilder.getMatchPattern(IndexConstants.INDEX_NAME.MODELS_INDEX, criteria);
- String expectedPattern = ""+IndexConstants.RECORD_TYPE.MODEL+//$NON-NLS-1$
+ String expectedPattern = ""+MetadataConstants.RECORD_TYPE.MODEL+//$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"*"+ //$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"UUID"+ //$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"MyModel"+ //$NON-NLS-1$
@@ -271,7 +272,7 @@
helpAddToCriteria(criteria, AbstractMetadataRecord.MetadataFieldNames.UUID_FIELD, "UUID"); //$NON-NLS-1$
helpAddToCriteria(criteria, AbstractMetadataRecord.MetadataFieldNames.NAME_FIELD, "MyModel"); //$NON-NLS-1$
String matchPattern = IndexCriteriaBuilder.getMatchPattern(IndexConstants.INDEX_NAME.MODELS_INDEX, criteria);
- String expectedPattern = ""+IndexConstants.RECORD_TYPE.MODEL+//$NON-NLS-1$
+ String expectedPattern = ""+MetadataConstants.RECORD_TYPE.MODEL+//$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"*"+ //$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"UUID"+ //$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"MyModel"+ //$NON-NLS-1$
@@ -289,7 +290,7 @@
helpAddToCriteria(criteria, AbstractMetadataRecord.MetadataFieldNames.UUID_FIELD, "UUID"); //$NON-NLS-1$
helpAddToCriteria(criteria, AbstractMetadataRecord.MetadataFieldNames.NAME_FIELD, "MyModel"); //$NON-NLS-1$
String matchPattern = IndexCriteriaBuilder.getMatchPattern(IndexConstants.INDEX_NAME.MODELS_INDEX, criteria);
- String expectedPattern = ""+IndexConstants.RECORD_TYPE.MODEL+//$NON-NLS-1$
+ String expectedPattern = ""+MetadataConstants.RECORD_TYPE.MODEL+//$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"*"+ //$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"UUID"+ //$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"MyModel"+ //$NON-NLS-1$
@@ -309,7 +310,7 @@
helpAddToCriteria(criteria, AbstractMetadataRecord.MetadataFieldNames.UUID_FIELD, "UUID"); //$NON-NLS-1$
helpAddToCriteria(criteria, AbstractMetadataRecord.MetadataFieldNames.NAME_FIELD, "Name"); //$NON-NLS-1$
String matchPrefix = IndexCriteriaBuilder.getMatchPrefix(IndexConstants.INDEX_NAME.COLUMNS_INDEX, criteria);
- String expectedPrefix = ""+IndexConstants.RECORD_TYPE.COLUMN+//$NON-NLS-1$
+ String expectedPrefix = ""+MetadataConstants.RECORD_TYPE.COLUMN+//$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"MYMODEL.NAME"+ //$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER;
@@ -361,7 +362,7 @@
helpAddToCriteria(criteria, AbstractMetadataRecord.MetadataFieldNames.UUID_FIELD, "UUID"); //$NON-NLS-1$
helpAddToCriteria(criteria, AbstractMetadataRecord.MetadataFieldNames.NAME_FIELD, "Name"); //$NON-NLS-1$
String matchPattern = IndexCriteriaBuilder.getMatchPattern(IndexConstants.INDEX_NAME.COLUMNS_INDEX, criteria);
- String expectedPattern = ""+IndexConstants.RECORD_TYPE.COLUMN+//$NON-NLS-1$
+ String expectedPattern = ""+MetadataConstants.RECORD_TYPE.COLUMN+//$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"*"+ //$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"UUID"+ //$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"MyModel.Name"+ //$NON-NLS-1$
@@ -381,7 +382,7 @@
helpAddToCriteria(criteria, AbstractMetadataRecord.MetadataFieldNames.UUID_FIELD, "UUID"); //$NON-NLS-1$
helpAddToCriteria(criteria, AbstractMetadataRecord.MetadataFieldNames.NAME_FIELD, "Name"); //$NON-NLS-1$
String matchPattern = IndexCriteriaBuilder.getMatchPattern(IndexConstants.INDEX_NAME.COLUMNS_INDEX, criteria);
- String expectedPattern = ""+IndexConstants.RECORD_TYPE.COLUMN+//$NON-NLS-1$
+ String expectedPattern = ""+MetadataConstants.RECORD_TYPE.COLUMN+//$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"*"+ //$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"UUID"+ //$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"MyModel.*.Name"+ //$NON-NLS-1$
@@ -401,7 +402,7 @@
helpAddToCriteria(criteria, AbstractMetadataRecord.MetadataFieldNames.UUID_FIELD, "UUID"); //$NON-NLS-1$
helpAddToCriteria(criteria, AbstractMetadataRecord.MetadataFieldNames.NAME_FIELD, "Name"); //$NON-NLS-1$
String matchPattern = IndexCriteriaBuilder.getMatchPattern(IndexConstants.INDEX_NAME.COLUMNS_INDEX, criteria);
- String expectedPattern = ""+IndexConstants.RECORD_TYPE.COLUMN+//$NON-NLS-1$
+ String expectedPattern = ""+MetadataConstants.RECORD_TYPE.COLUMN+//$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"*"+ //$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"UUID"+ //$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"*.Name"+ //$NON-NLS-1$
@@ -421,7 +422,7 @@
helpAddToCriteria(criteria, AbstractMetadataRecord.MetadataFieldNames.UUID_FIELD, "UUID"); //$NON-NLS-1$
//helpAddToCriteria(criteria, MetadataRecord.MetadataFieldNames.NAME_FIELD, "Name"); //$NON-NLS-1$
String matchPattern = IndexCriteriaBuilder.getMatchPattern(IndexConstants.INDEX_NAME.COLUMNS_INDEX, criteria);
- String expectedPattern = ""+IndexConstants.RECORD_TYPE.COLUMN+//$NON-NLS-1$
+ String expectedPattern = ""+MetadataConstants.RECORD_TYPE.COLUMN+//$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"*"+ //$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"UUID"+ //$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"MyModel.*"+ //$NON-NLS-1$
@@ -441,7 +442,7 @@
helpAddToCriteria(criteria, AbstractMetadataRecord.MetadataFieldNames.UUID_FIELD, "UUID"); //$NON-NLS-1$
//helpAddToCriteria(criteria, MetadataRecord.MetadataFieldNames.NAME_FIELD, "Name"); //$NON-NLS-1$
String matchPattern = IndexCriteriaBuilder.getMatchPattern(IndexConstants.INDEX_NAME.COLUMNS_INDEX, criteria);
- String expectedPattern = ""+IndexConstants.RECORD_TYPE.COLUMN+//$NON-NLS-1$
+ String expectedPattern = ""+MetadataConstants.RECORD_TYPE.COLUMN+//$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"*"+ //$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"UUID"+ //$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"*"+ //$NON-NLS-1$
@@ -455,7 +456,7 @@
public void testNoCriteriaPrefix() {
Map criteria = new HashMap();
String matchPattern = IndexCriteriaBuilder.getMatchPrefix(IndexConstants.INDEX_NAME.COLUMNS_INDEX, criteria);
- String expectedPattern = ""+IndexConstants.RECORD_TYPE.COLUMN+//$NON-NLS-1$
+ String expectedPattern = ""+MetadataConstants.RECORD_TYPE.COLUMN+//$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER;
assertEquals(matchPattern, expectedPattern);
}
@@ -463,7 +464,7 @@
public void testNoCriteriaPattern() {
Map criteria = new HashMap();
String matchPattern = IndexCriteriaBuilder.getMatchPattern(IndexConstants.INDEX_NAME.COLUMNS_INDEX, criteria);
- String expectedPattern = ""+IndexConstants.RECORD_TYPE.COLUMN+//$NON-NLS-1$
+ String expectedPattern = ""+MetadataConstants.RECORD_TYPE.COLUMN+//$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"*"; //$NON-NLS-1$
assertEquals(matchPattern, expectedPattern);
}
@@ -472,7 +473,7 @@
Map criteria = new HashMap();
helpAddToCriteria(criteria, AbstractMetadataRecord.MetadataFieldNames.FULL_NAME_FIELD, null);
String matchPattern = IndexCriteriaBuilder.getMatchPrefix(IndexConstants.INDEX_NAME.COLUMNS_INDEX, criteria);
- String expectedPattern = ""+IndexConstants.RECORD_TYPE.COLUMN+//$NON-NLS-1$
+ String expectedPattern = ""+MetadataConstants.RECORD_TYPE.COLUMN+//$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+IndexConstants.RECORD_STRING.SPACE+
IndexConstants.RECORD_STRING.RECORD_DELIMITER;
assertEquals(matchPattern, expectedPattern);
@@ -482,7 +483,7 @@
Map criteria = new HashMap();
helpAddToCriteria(criteria, AbstractMetadataRecord.MetadataFieldNames.FULL_NAME_FIELD, null);
String matchPattern = IndexCriteriaBuilder.getMatchPattern(IndexConstants.INDEX_NAME.COLUMNS_INDEX, criteria);
- String expectedPattern = ""+IndexConstants.RECORD_TYPE.COLUMN+//$NON-NLS-1$
+ String expectedPattern = ""+MetadataConstants.RECORD_TYPE.COLUMN+//$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"*"+ //$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+"*"+ //$NON-NLS-1$
IndexConstants.RECORD_STRING.RECORD_DELIMITER+IndexConstants.RECORD_STRING.SPACE+
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2009-07-10 16:15:38 UTC (rev 1117)
+++ trunk/pom.xml 2009-07-10 16:41:23 UTC (rev 1118)
@@ -218,7 +218,7 @@
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
- <version>1.3</version>
+ <version>1.5</version>
<scope>test</scope>
</dependency>
</dependencies>
Modified: trunk/test-integration/pom.xml
===================================================================
--- trunk/test-integration/pom.xml 2009-07-10 16:15:38 UTC (rev 1117)
+++ trunk/test-integration/pom.xml 2009-07-10 16:41:23 UTC (rev 1118)
@@ -60,8 +60,8 @@
<artifactId>teiid-engine</artifactId>
<type>test-jar</type>
</dependency>
-
- <!-- internal dependencies that are only used by integration testing -->
+
+ <!-- internal dependencies that are only used by integration testing -->
<dependency>
<groupId>org.jboss.teiid</groupId>
<artifactId>teiid-embedded</artifactId>
@@ -100,5 +100,13 @@
<type>test-jar</type>
<version>${project.version}</version>
</dependency>
+
+ <!-- external dependencies -->
+ <dependency>
+ <groupId>org.apache.derby</groupId>
+ <artifactId>derby</artifactId>
+ <version>10.2.1.6</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
</project>
\ No newline at end of file
Modified: trunk/test-integration/src/test/java/com/metamatrix/jdbc/TestMMDatabaseMetaData.java
===================================================================
--- trunk/test-integration/src/test/java/com/metamatrix/jdbc/TestMMDatabaseMetaData.java 2009-07-10 16:15:38 UTC (rev 1117)
+++ trunk/test-integration/src/test/java/com/metamatrix/jdbc/TestMMDatabaseMetaData.java 2009-07-10 16:41:23 UTC (rev 1118)
@@ -1050,26 +1050,6 @@
closeResultSetTestStreams();
}
}
-
- /** test with integer type */
- @Test
- public void testGetTypeInfo_specificType_Integer() throws Exception {
- initResultSetStreams("testGetTypeInfo_specificType_Integer"); //$NON-NLS-1$
- ResultSet rs = null;
- try {
- DatabaseMetaData dbmd = conn.getMetaData();
- rs = dbmd.getTypeInfo();
- ResultSetUtil.printResultSet(rs, MAX_COL_WIDTH, true, stream);
- assertEquals("Actual data did not match expected", //$NON-NLS-1$
- Collections.EMPTY_LIST,
- ResultSetUtil.getUnequalLines(stream));
- } finally {
- if(rs != null) {
- rs.close();
- }
- closeResultSetTestStreams();
- }
- }
@Test
public void testGetUDTs() throws Exception{
Modified: trunk/test-integration/src/test/java/com/metamatrix/server/integration/TestVDBLessExecution.java
===================================================================
--- trunk/test-integration/src/test/java/com/metamatrix/server/integration/TestVDBLessExecution.java 2009-07-10 16:15:38 UTC (rev 1117)
+++ trunk/test-integration/src/test/java/com/metamatrix/server/integration/TestVDBLessExecution.java 2009-07-10 16:41:23 UTC (rev 1118)
@@ -48,16 +48,40 @@
});
}
+ @Test public void testExecution1() {
+ getConnection(VDB, DQP_PROP_FILE);
+ executeAndAssertResults("select * from Example, Smalla where notional = intkey", new String[] { //$NON-NLS-1$
+ "TRADEID[string] NOTIONAL[integer] INTKEY[integer] STRINGKEY[string] INTNUM[integer] STRINGNUM[string] FLOATNUM[float] LONGNUM[long] DOUBLENUM[double] BYTENUM[short] DATEVALUE[date] TIMEVALUE[time] TIMESTAMPVALUE[timestamp] BOOLEANVALUE[short] CHARVALUE[char] SHORTVALUE[short] BIGINTEGERVALUE[long] BIGDECIMALVALUE[bigdecimal] OBJECTVALUE[string]", //$NON-NLS-1$
+ "x 1 1 1 -23 null -23.0 -23 -23.0 -127 2000-01-02 01:00:00 2000-01-01 00:00:01.0 1 0 -32767 -23 -23 -23", //$NON-NLS-1$
+ "y 2 2 2 -22 -22 null -22 -22.0 -126 2000-01-03 02:00:00 2000-01-01 00:00:02.0 0 1 -32766 -22 -22 -22", //$NON-NLS-1$
+ });
+ }
+
@Test public void testDatabaseMetaDataTables() throws Exception {
Connection conn = getConnection(VDB, DQP_PROP_FILE);
DatabaseMetaData metadata = conn.getMetaData();
- this.internalResultSet = metadata.getTables(null, null, "%", new String[] {"TABLE"}); //$NON-NLS-1$ //$NON-NLS-2$
+ this.internalResultSet = metadata.getTables(null, null, "SummitData%", new String[] {"TABLE"}); //$NON-NLS-1$ //$NON-NLS-2$
assertResults(new String[] {
"TABLE_CAT[string] TABLE_SCHEM[string] TABLE_NAME[string] TABLE_TYPE[string] REMARKS[string] TYPE_CAT[string] TYPE_SCHEM[string] TYPE_NAME[string] SELF_REFERENCING_COL_NAME[string] REF_GENERATION[string] ISPHYSICAL[boolean]", //$NON-NLS-1$
"null VDBLess SummitData.EXAMPLE TABLE null null null null null null true" //$NON-NLS-1$
});
}
+ /**
+ * Ensures that system tables are still visible
+ */
+ @Test public void testDatabaseMetaDataTables1() throws Exception {
+ Connection conn = getConnection(VDB, DQP_PROP_FILE);
+ DatabaseMetaData metadata = conn.getMetaData();
+ this.internalResultSet = metadata.getTables(null, null, "%ElementProperties", null); //$NON-NLS-1$
+ assertResults(new String[] {
+ "TABLE_CAT[string] TABLE_SCHEM[string] TABLE_NAME[string] TABLE_TYPE[string] REMARKS[string] TYPE_CAT[string] TYPE_SCHEM[string] TYPE_NAME[string] SELF_REFERENCING_COL_NAME[string] REF_GENERATION[string] ISPHYSICAL[boolean]", //$NON-NLS-1$
+ "null VDBLess System.DataTypeElementProperties SYSTEM TABLE null null null null null null false", //$NON-NLS-1$
+ "null VDBLess System.ElementProperties SYSTEM TABLE null null null null null null false" //$NON-NLS-1$
+
+ });
+ }
+
@Test public void testDatabaseMetaDataColumns() throws Exception {
Connection conn = getConnection(VDB, DQP_PROP_FILE);
DatabaseMetaData metadata = conn.getMetaData();
@@ -68,5 +92,101 @@
"null VDBLess SummitData.EXAMPLE NOTIONAL 4 integer 10 null 0 0 0 null null null null 0 2 YES" //$NON-NLS-1$
});
}
+
+ @Test public void testDatabaseMetaDataColumns1() throws Exception {
+ Connection conn = getConnection(VDB, DQP_PROP_FILE);
+ DatabaseMetaData metadata = conn.getMetaData();
+ this.internalResultSet = metadata.getColumns(null, null, "%smalla", "%"); //$NON-NLS-1$ //$NON-NLS-2$
+ assertResults(new String[] {
+ "TABLE_CAT[string] TABLE_SCHEM[string] TABLE_NAME[string] COLUMN_NAME[string] DATA_TYPE[short] TYPE_NAME[string] COLUMN_SIZE[integer] BUFFER_LENGTH[string] DECIMAL_DIGITS[integer] NUM_PREC_RADIX[integer] NULLABLE[integer] REMARKS[string] COLUMN_DEF[string] SQL_DATA_TYPE[string] SQL_DATETIME_SUB[string] CHAR_OCTET_LENGTH[integer] ORDINAL_POSITION[integer] IS_NULLABLE[string]", //$NON-NLS-1$
+ "null VDBLess Derby.SMALLA INTKEY 4 integer 10 null 0 10 0 null null null null 0 1 YES", //$NON-NLS-1$
+ "null VDBLess Derby.SMALLA STRINGKEY 12 string 4000 null 0 0 0 null null null null 20 2 YES", //$NON-NLS-1$
+ "null VDBLess Derby.SMALLA INTNUM 4 integer 10 null 0 10 1 null null null null 0 3 NO", //$NON-NLS-1$
+ "null VDBLess Derby.SMALLA STRINGNUM 12 string 4000 null 0 0 1 null null null null 20 4 NO", //$NON-NLS-1$
+ "null VDBLess Derby.SMALLA FLOATNUM 7 float 20 null 0 2 1 null null null null 0 5 NO", //$NON-NLS-1$
+ "null VDBLess Derby.SMALLA LONGNUM -5 long 19 null 0 10 1 null null null null 0 6 NO", //$NON-NLS-1$
+ "null VDBLess Derby.SMALLA DOUBLENUM 8 double 20 null 0 2 1 null null null null 0 7 NO", //$NON-NLS-1$
+ "null VDBLess Derby.SMALLA BYTENUM 5 short 5 null 0 10 1 null null null null 0 8 NO", //$NON-NLS-1$
+ "null VDBLess Derby.SMALLA DATEVALUE 91 date 10 null 0 10 1 null null null null 0 9 NO", //$NON-NLS-1$
+ "null VDBLess Derby.SMALLA TIMEVALUE 92 time 8 null 0 10 1 null null null null 0 10 NO", //$NON-NLS-1$
+ "null VDBLess Derby.SMALLA TIMESTAMPVALUE 93 timestamp 29 null 0 10 1 null null null null 0 11 NO", //$NON-NLS-1$
+ "null VDBLess Derby.SMALLA BOOLEANVALUE 5 short 5 null 0 10 1 null null null null 0 12 NO", //$NON-NLS-1$
+ "null VDBLess Derby.SMALLA CHARVALUE 1 char 1 null 0 0 1 null null null null 2 13 NO", //$NON-NLS-1$
+ "null VDBLess Derby.SMALLA SHORTVALUE 5 short 5 null 0 10 1 null null null null 0 14 NO", //$NON-NLS-1$
+ "null VDBLess Derby.SMALLA BIGINTEGERVALUE -5 long 19 null 0 10 1 null null null null 0 15 NO", //$NON-NLS-1$
+ "null VDBLess Derby.SMALLA BIGDECIMALVALUE 2 bigdecimal 20 null 0 10 1 null null null null 0 16 NO", //$NON-NLS-1$
+ "null VDBLess Derby.SMALLA OBJECTVALUE 12 string 4000 null 0 0 1 null null null null 4096 17 NO" //$NON-NLS-1$
+ });
+ }
+
+ @Test public void testDatabaseMetaDataPrimaryKeys() throws Exception {
+ Connection conn = getConnection(VDB, DQP_PROP_FILE);
+ DatabaseMetaData metadata = conn.getMetaData();
+ //note - the use of null for the table name is a little against spec
+ this.internalResultSet = metadata.getPrimaryKeys(null, null, null);
+ assertResults(new String[] {
+ "TABLE_CAT[string] TABLE_SCHEM[string] TABLE_NAME[string] COLUMN_NAME[string] KEY_SEQ[short] PK_NAME[string]", //$NON-NLS-1$
+ "null VDBLess Derby.FLIGHTS FLIGHT_ID 1 SQL090709161814150", //$NON-NLS-1$
+ "null VDBLess Derby.FLTAVAIL FLIGHT_ID 1 FLTAVAIL_PK", //$NON-NLS-1$
+ "null VDBLess Derby.SMALLA INTKEY 1 SQL060110103634070", //$NON-NLS-1$
+ "null VDBLess Derby.SMALLB INTKEY 1 SQL060110103635170", //$NON-NLS-1$
+ "null VDBLess Derby.FLIGHTS SEGMENT_NUMBER 2 SQL090709161814150", //$NON-NLS-1$
+ "null VDBLess Derby.FLTAVAIL SEGMENT_NUMBER 2 FLTAVAIL_PK", //$NON-NLS-1$
+ });
+ }
+
+ @Test public void testDatabaseMetaDataExportedKeys() throws Exception {
+ Connection conn = getConnection(VDB, DQP_PROP_FILE);
+ DatabaseMetaData metadata = conn.getMetaData();
+ this.internalResultSet = metadata.getExportedKeys(null, "VDBLess", "Derby.FLIGHTS"); //$NON-NLS-1$ //$NON-NLS-2$
+ assertResults(new String[] {
+ "PKTABLE_CAT[string] PKTABLE_SCHEM[string] PKTABLE_NAME[string] PKCOLUMN_NAME[string] FKTABLE_CAT[string] FKTABLE_SCHEM[string] FKTABLE_NAME[string] FKCOLUMN_NAME[string] KEY_SEQ[short] UPDATE_RULE[integer] DELETE_RULE[integer] FK_NAME[string] PK_NAME[string] DEFERRABILITY[integer]", //$NON-NLS-1$
+ "null VDBLess Derby.FLIGHTS FLIGHT_ID null VDBLess Derby.FLTAVAIL FLIGHT_ID 1 3 3 FLTS_FK SQL090709161814150 5", //$NON-NLS-1$
+ "null VDBLess Derby.FLIGHTS SEGMENT_NUMBER null VDBLess Derby.FLTAVAIL SEGMENT_NUMBER 2 3 3 FLTS_FK SQL090709161814150 5" //$NON-NLS-1$
+ });
+ }
+
+ @Test public void testDatabaseMetaDataImportedKeys() throws Exception {
+ Connection conn = getConnection(VDB, DQP_PROP_FILE);
+ DatabaseMetaData metadata = conn.getMetaData();
+ this.internalResultSet = metadata.getImportedKeys(null, "VDBLess", "Derby.FLTAVAIL"); //$NON-NLS-1$ //$NON-NLS-2$
+ assertResults(new String[] {
+ "PKTABLE_CAT[string] PKTABLE_SCHEM[string] PKTABLE_NAME[string] PKCOLUMN_NAME[string] FKTABLE_CAT[string] FKTABLE_SCHEM[string] FKTABLE_NAME[string] FKCOLUMN_NAME[string] KEY_SEQ[short] UPDATE_RULE[integer] DELETE_RULE[integer] FK_NAME[string] PK_NAME[string] DEFERRABILITY[integer]", //$NON-NLS-1$
+ "null VDBLess Derby.FLIGHTS FLIGHT_ID null VDBLess Derby.FLTAVAIL FLIGHT_ID 1 3 3 FLTS_FK SQL090709161814150 5", //$NON-NLS-1$
+ "null VDBLess Derby.FLIGHTS SEGMENT_NUMBER null VDBLess Derby.FLTAVAIL SEGMENT_NUMBER 2 3 3 FLTS_FK SQL090709161814150 5" //$NON-NLS-1$
+ });
+ this.internalResultSet = metadata.getImportedKeys(null, null, "Derby.SMALLBRIDGE"); //$NON-NLS-1$
+ assertResults(new String[] {
+ "PKTABLE_CAT[string] PKTABLE_SCHEM[string] PKTABLE_NAME[string] PKCOLUMN_NAME[string] FKTABLE_CAT[string] FKTABLE_SCHEM[string] FKTABLE_NAME[string] FKCOLUMN_NAME[string] KEY_SEQ[short] UPDATE_RULE[integer] DELETE_RULE[integer] FK_NAME[string] PK_NAME[string] DEFERRABILITY[integer]", //$NON-NLS-1$
+ "null VDBLess Derby.SMALLA INTKEY null VDBLess Derby.SMALLBRIDGE AKEY 1 3 3 SMLA_FK SQL060110103634070 5", //$NON-NLS-1$
+ "null VDBLess Derby.SMALLB INTKEY null VDBLess Derby.SMALLBRIDGE BKEY 1 3 3 SMLB_FK SQL060110103635170 5", //$NON-NLS-1$
+ });
+ }
+
+ @Test public void testDatabaseMetaDataIndexInfo() throws Exception {
+ Connection conn = getConnection(VDB, DQP_PROP_FILE);
+ DatabaseMetaData metadata = conn.getMetaData();
+ //note - the use of null for the table name is a little against spec
+ this.internalResultSet = metadata.getIndexInfo(null, null, null, false, true);
+ assertResults(new String[] {
+ "TABLE_CAT[string] TABLE_SCHEM[string] TABLE_NAME[string] NON_UNIQUE[boolean] INDEX_QUALIFIER[string] INDEX_NAME[string] TYPE[integer] ORDINAL_POSITION[short] COLUMN_NAME[string] ASC_OR_DESC[string] CARDINALITY[integer] PAGES[integer] FILTER_CONDITION[string]", //$NON-NLS-1$
+ "null VDBLess Derby.FLIGHTS false null ORIGINDEX 0 1 ORIG_AIRPORT null 0 1 null", //$NON-NLS-1$
+ "null VDBLess Derby.FLTAVAIL false null SQL090709161840271 0 1 FLIGHT_ID null 0 1 null", //$NON-NLS-1$
+ "null VDBLess Derby.FLTAVAIL false null SQL090709161840271 0 2 SEGMENT_NUMBER null 0 1 null", //$NON-NLS-1$
+ "null VDBLess Derby.SMALLBRIDGE false null SQL090710102514590 0 1 AKEY null 0 1 null", //$NON-NLS-1$
+ "null VDBLess Derby.SMALLBRIDGE false null SQL090710102514591 0 1 BKEY null 0 1 null", //$NON-NLS-1$
+ "null VDBLess Derby.SYSCOLUMNS false null SYSCOLUMNS_INDEX2 0 1 COLUMNDEFAULTID null 0 1 null", //$NON-NLS-1$
+ "null VDBLess Derby.SYSCONGLOMERATES false null SYSCONGLOMERATES_INDEX1 0 1 CONGLOMERATEID null 0 1 null", //$NON-NLS-1$
+ "null VDBLess Derby.SYSCONGLOMERATES false null SYSCONGLOMERATES_INDEX3 0 1 TABLEID null 0 1 null", //$NON-NLS-1$
+ "null VDBLess Derby.SYSCONSTRAINTS false null SYSCONSTRAINTS_INDEX3 0 1 TABLEID null 0 1 null", //$NON-NLS-1$
+ "null VDBLess Derby.SYSDEPENDS false null SYSDEPENDS_INDEX1 0 1 DEPENDENTID null 0 1 null", //$NON-NLS-1$
+ "null VDBLess Derby.SYSDEPENDS false null SYSDEPENDS_INDEX2 0 1 PROVIDERID null 0 1 null", //$NON-NLS-1$
+ "null VDBLess Derby.SYSFOREIGNKEYS false null SYSFOREIGNKEYS_INDEX2 0 1 KEYCONSTRAINTID null 0 1 null", //$NON-NLS-1$
+ "null VDBLess Derby.SYSSTATISTICS false null SYSSTATISTICS_INDEX1 0 1 TABLEID null 0 1 null", //$NON-NLS-1$
+ "null VDBLess Derby.SYSSTATISTICS false null SYSSTATISTICS_INDEX1 0 2 REFERENCEID null 0 1 null", //$NON-NLS-1$
+ "null VDBLess Derby.SYSTRIGGERS false null SYSTRIGGERS_INDEX3 0 1 TABLEID null 0 1 null", //$NON-NLS-1$
+ "null VDBLess Derby.SYSTRIGGERS false null SYSTRIGGERS_INDEX3 0 2 CREATIONTIMESTAMP null 0 1 null", //$NON-NLS-1$
+ });
+ }
}
Modified: trunk/test-integration/src/test/resources/ServerConfig.xml
===================================================================
--- trunk/test-integration/src/test/resources/ServerConfig.xml 2009-07-10 16:15:38 UTC (rev 1117)
+++ trunk/test-integration/src/test/resources/ServerConfig.xml 2009-07-10 16:41:23 UTC (rev 1118)
@@ -1,2366 +1,460 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- 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.
-
--->
-
<ConfigurationDocument>
- <Header>
- <ApplicationCreatedBy>ConfigurationAdministration</ApplicationCreatedBy>
- <ApplicationVersionCreatedBy>4.2</ApplicationVersionCreatedBy>
- <UserCreatedBy>Configuration</UserCreatedBy>
- <ConfigurationVersion>4.2</ConfigurationVersion>
- <MetaMatrixSystemVersion>4.2</MetaMatrixSystemVersion>
- <Time>2004-06-30T12:23:53.919-06:00</Time>
- </Header>
- <Configuration Name="Next Startup" ComponentType="Configuration" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <Properties>
- <Property Name="metamatrix.firewall.address"></Property>
- <Property Name="metamatrix.firewall.rmiport"></Property>
- <Property Name="metamatrix.firewall.address.enabled">false</Property>
- <Property Name="metamatrix.message.bus.type">(vm.message.bus)</Property>
- <Property Name="metamatrix.server.metadata.systemURL">extensionjar:System.vdb</Property>
- <Property Name="metamatrix.server.extensionTypesToCache">JAR File</Property>
- <Property Name="metamatrix.server.procDebug">false</Property>
- <Property Name="metamatrix.server.cacheConnectorClassLoaders">true</Property>
- <Property Name="metamatrix.server.streamingBatchSize">100</Property>
- <Property Name="metamatrix.server.serviceMonitorInterval">60</Property>
- <Property Name="metamatrix.session.max.connections">0</Property>
- <Property Name="metamatrix.session.time.limit">0</Property>
- <Property Name="metamatrix.session.sessionMonitor.ActivityInterval">5</Property>
- <Property Name="metamatrix.audit.jdbcTable">AuditEntries</Property>
- <Property Name="metamatrix.audit.threadTTL">600000</Property>
- <Property Name="metamatrix.audit.maxThreads">1</Property>
- <Property Name="metamatrix.audit.fileFormat">com.metamatrix.platform.security.audit.format.DelimitedAuditMessageFormat</Property>
- <Property Name="metamatrix.audit.jdbcResourceDelim">;</Property>
- <Property Name="metamatrix.audit.jdbcDatabase">false</Property>
- <Property Name="metamatrix.audit.console">false</Property>
- <Property Name="metamatrix.audit.jdbcMaxContextLength">64</Property>
- <Property Name="metamatrix.audit.fileAppend">false</Property>
- <Property Name="metamatrix.audit.enabled">false</Property>
- <Property Name="metamatrix.audit.consoleFormat">com.metamatrix.platform.security.audit.format.ReadableAuditMessageFormat</Property>
- <Property Name="metamatrix.audit.jdbcMaxResourceLength">4000</Property>
- <Property Name="metamatrix.authorization.dataaccess.CheckingEnabled">false</Property>
- <Property Name="metamatrix.authorization.metabase.CheckingEnabled">false</Property>
- <Property Name="metamatrix.deployment.platform">(mm.deployment)</Property>
- <Property Name="metamatrix.encryption.client">true</Property>
- <Property Name="metamatrix.encryption.jce.provider">(jce.provider)</Property>
- <Property Name="metamatrix.encryption.secure.sockets">false</Property>
- <Property Name="metamatrix.log.consoleFormat">com.metamatrix.common.log.format.ReadableLogMessageFormat</Property>
- <Property Name="metamatrix.log.console">true</Property>
- <Property Name="metamatrix.log.jdbcTable">LogEntries</Property>
- <Property Name="metamatrix.log.jdbcMaxContextLength">64</Property>
- <Property Name="metamatrix.log.threadTTL">600000</Property>
- <Property Name="metamatrix.log.jdbcMaxExceptionLength">4000</Property>
- <Property Name="metamatrix.log.jdbcMaxLength">2000</Property>
- <Property Name="metamatrix.log.maxThreads">1</Property>
- <Property Name="metamatrix.log.maxRows">2500</Property>
- <Property Name="metamatrix.log.size.limit.kbs">1000</Property>
- <Property Name="metamatrix.log.size.monitor.mins">60</Property>
- <Property Name="metamatrix.log">4</Property>
- <Property Name="metamatrix.log.jdbcDatabase.enabled">true</Property>
- <Property Name="metamatrix.buffer.memoryAvailable">500</Property>
- <Property Name="metamatrix.buffer.activeMemoryThreshold">90</Property>
- <Property Name="metamatrix.buffer.managementInterval">1000</Property>
- <Property Name="metamatrix.buffer.connectorBatchSize">1000</Property>
- <Property Name="metamatrix.buffer.processorBatchSize">500</Property>
- <Property Name="metamatrix.buffer.relative.storageDirectory">(buffer.dir)</Property>
- <Property Name="metamatrix.buffer.maxOpenFiles">10</Property>
- <Property Name="metamatrix.buffer.maxFileSize">2048</Property>
- <Property Name="metamatrix.buffer.logStatsInterval">0</Property>
- <Property Name="metamatrix.transaction.log.storeTXN">false</Property>
- <Property Name="metamatrix.transaction.log.storeMMCMD">false</Property>
- <Property Name="metamatrix.transaction.log.storeSRCCMD">false</Property>
- <Property Name="vm.starter.maxHeapSize">1024</Property>
- <Property Name="vm.starter.minHeapSize">256</Property>
- <Property Name="vm.starter.maxThreads">1</Property>
- <Property Name="vm.starter.timetolive">30000</Property>
- <Property Name="vm.starter.command">(vm.starter.command)</Property>
- </Properties>
- <Host Name="(host.name)" ComponentType="Host" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup">
- <Properties>
- <Property Name="hostControllerPortNumber">(host.controller.port)</Property>
- <Property Name="metamatrix.installationDir">(install.directory)</Property>
- <Property Name="metamatrix.log.dir">(host.log.dir)</Property>
- <Property Name="metamatrix.data.dir">(host.data.dir)</Property>
- <Property Name="metamatrix.system.dir">(system.dir)</Property>
- <Property Name="metamatrix.host.dir">(host.dir)</Property>
- </Properties>
- <Process Name="MetaMatrixProcess" ComponentType="VM" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup">
- <Properties>
- <Property Name="vm.starter.maxHeapSize">1024</Property>
- <Property Name="vm.starter.minHeapSize">256</Property>
- <Property Name="vm.socketPort">(vm.port)</Property>
- <Property Name="vm.maxThreads">64</Property>
- <Property Name="vm.timetolive">30000</Property>
- <Property Name="vm.minPort">0</Property>
- <Property Name="vm.inputBufferSize">102400</Property>
- <Property Name="vm.outputBufferSize">102400</Property>
- <Property Name="vm.enabled">true</Property>
- <Property Name="vm.forced.shutdown.time">30</Property>
- </Properties>
- <PSC Name="PlatformStandard" ComponentType="Platform" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup">
- <Service Name="MembershipService" ComponentType="MembershipService" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" />
- <Service Name="SessionService" ComponentType="SessionService" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" />
- <Service Name="AuthorizationService" ComponentType="AuthorizationService" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" />
- <Service Name="ConfigurationService" ComponentType="ConfigurationService" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" />
- </PSC>
- <PSC Name="QueryEngine" ComponentType="MetaMatrix Server" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <Service Name="QueryService" ComponentType="QueryService" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" />
- <Service Name="RuntimeMetadataService" ComponentType="RuntimeMetadataService" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" />
- </PSC>
- </Process>
- </Host>
- </Configuration>
- <Services>
- <Service Name="RuntimeMetadataService" ComponentType="RuntimeMetadataService" QueuedService="false" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <Properties>
- <Property Name="ConnectorClass">com.metamatrix.connector.metadata.IndexConnector</Property>
- <Property Name="ServiceClassName">com.metamatrix.server.connector.service.ConnectorService</Property>
- <Property Name="metamatrix.service.essentialservice">true</Property>
- <Property Name="ConnectorMaxThreads" DisplayName="Connector Maximum Thread Count">20</Property>
- <Property Name="ConnectorThreadTTL">120000</Property>
- <Property Name="MaxResultRows">0</Property>
- <Property Name="ExceptionOnMaxRows">true</Property>
- <Property Name="ConnectorClassPath">extensionjar:metadataconn.jar</Property>
- </Properties>
- </Service>
- <Service Name="MembershipService" ComponentType="MembershipService" QueuedService="false" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <Properties>
- <Property Name="security.membership.connection.JDBCInternalDomain.SupportsUpdates">true</Property>
- <Property Name="security.membership.connection.JDBCInternalDomain.GroupHome">GroupView</Property>
- <Property Name="metamatrix.service.essentialservice">true</Property>
- <Property Name="security.membership.DomainOrder">JDBCInternalDomain</Property>
- <Property Name="ServiceClassName">com.metamatrix.platform.security.membership.service.MembershipServiceImpl</Property>
- <Property Name="security.membership.connection.JDBCInternalDomain.UserHome">UserView</Property>
- <Property Name="security.membership.connection.JDBCInternalDomain.Retries">4</Property>
- <Property Name="security.membership.connection.LDAPDomain.Retries">4</Property>
- <Property Name="security.membership.connection.LDAPDomain.Factory">com.metamatrix.platform.security.membership.spi.ldap.LDAPMembershipSourceFactory</Property>
- <Property Name="security.membership.connection.LDAPDomain.Driver">com.sun.jndi.ldap.LdapCtxFactory</Property>
- <Property Name="security.membership.connection.LDAPDomain.LDAP_GroupByAttribute">false</Property>
- <Property Name="security.membership.connection.LDAPDomain.LDAP_GroupByHierarchical">true</Property>
- <Property Name="security.membership.connection.LDAPDomain.LDAP_GroupAttribute">cn</Property>
- <Property Name="security.membership.connection.LDAPDomain.LDAP_MembershipAttribute">uniquemember</Property>
- <Property Name="security.membership.connection.LDAPDomain.LDAP_UserAttribute">uid</Property>
- <Property Name="security.membership.connection.LDAPDomain.SupportsUpdates">false</Property>
- <Property Name="security.membership.connection.LDAPDomain.MaximumAge">600000</Property>
- <Property Name="security.membership.connection.LDAPDomain.MaximumConcurrentReaders">10</Property>
- </Properties>
- </Service>
- <Service Name="ODBCService" ComponentType="ODBCService" QueuedService="false" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <Properties>
- <Property Name="metamatrix.service.essentialservice">false</Property>
- <Property Name="ServiceClassName">com.metamatrix.odbc.ODBCServiceImpl</Property>
- <Property Name="Openrdaloc">(odbc.ini.loc)</Property>
- <Property Name="ServerKey">(odbc.license.key)</Property>
- <Property Name="WaitForProcessEnd">5000</Property>
- </Properties>
- </Service>
- <Service Name="ConfigurationService" ComponentType="ConfigurationService" QueuedService="false" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <Properties>
- <Property Name="metamatrix.service.essentialservice">true</Property>
- <Property Name="ServiceClassName">com.metamatrix.platform.config.service.ConfigurationServiceImpl</Property>
- </Properties>
- </Service>
- <Service Name="AuthorizationService" ComponentType="AuthorizationService" QueuedService="false" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <Properties>
- <Property Name="metamatrix.service.essentialservice">true</Property>
- <Property Name="security.authorization.connection.Retries">4</Property>
- <Property Name="ServiceClassName">com.metamatrix.platform.security.authorization.service.AuthorizationServiceImpl</Property>
- </Properties>
- </Service>
- <Service Name="SessionService" ComponentType="SessionService" QueuedService="false" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <Properties>
- <Property Name="security.session.terminationHandlers">com.metamatrix.server.util.DataServerSessionTerminationHandler</Property>
- <Property Name="metamatrix.service.essentialservice">true</Property>
- <Property Name="ServiceClassName">com.metamatrix.platform.security.session.service.SessionServiceImpl</Property>
- <Property Name="security.session.connection.Retries">4</Property>
- <Property Name="security.session.clientMonitor.enabled">true</Property>
- <Property Name="security.session.clientMonitor.PingInterval">5</Property>
- <Property Name="security.session.clientMonitor.ActivityInterval">20</Property>
- <Property Name="security.session.clientMonitor.ExpireInterval">30</Property>
- </Properties>
- </Service>
- <Service Name="QueryService" ComponentType="QueryService" QueuedService="false" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <Properties>
- <Property Name="metamatrix.service.essentialservice">true</Property>
- <Property Name="ProcessPoolMaxThreads">64</Property>
- <Property Name="ProcessPoolThreadTTL">120000</Property>
- <Property Name="ServiceClassName">com.metamatrix.server.query.service.QueryService</Property>
- <Property Name="ProcessorTimeslice">2000</Property>
- <Property Name="MaxCodeTables">50</Property>
- <Property Name="MaxCodeTableRecords">10000</Property>
- <Property Name="MinFetchSize">100</Property>
- <Property Name="MaxFetchSize">20000</Property>
- <Property Name="ResultSetCacheEnabled">0</Property>
- <Property Name="ResultSetCacheMaxSize">0</Property>
- <Property Name="ResultSetCacheMaxAge">0</Property>
- <Property Name="ResultSetCacheScope">vdb</Property>
- <Property Name="MaxPlanCacheSize">100</Property>
- </Properties>
- </Service>
- </Services>
- <ProductTypes>
- <ProductType Name="MetaMatrix Server" ComponentTypeCode="3" Deployable="false" Deprecated="false" Monitorable="false" SuperComponentType="Product" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeID Name="RuntimeMetadataService"/>
- <ComponentTypeID Name="ODBCService"/>
- </ProductType>
- <ProductType Name="Platform" ComponentTypeCode="3" Deployable="false" Deprecated="false" Monitorable="false" SuperComponentType="Product" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeID Name="MembershipService"/>
- <ComponentTypeID Name="ConfigurationService"/>
- <ComponentTypeID Name="SessionService"/>
- </ProductType>
- <ProductType Name="Connectors" ComponentTypeCode="3" Deployable="false" Deprecated="false" Monitorable="false" SuperComponentType="Product" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeID Name="Oracle ANSI JDBC Connector"/>
- <ComponentTypeID Name="Oracle ANSI JDBC XA Connector"/>
- <ComponentTypeID Name="Oracle 8 JDBC Connector"/>
- <ComponentTypeID Name="Oracle 8 JDBC XA Connector"/>
- <ComponentTypeID Name="DB2 JDBC Connector"/>
- <ComponentTypeID Name="DB2 JDBC XA Connector"/>
- <ComponentTypeID Name="Sybase ANSI JDBC Connector"/>
- <ComponentTypeID Name="Sybase ANSI JDBC XA Connector"/>
- <ComponentTypeID Name="Sybase 11 JDBC Connector"/>
- <ComponentTypeID Name="Sybase 11 JDBC XA Connector"/>
- <ComponentTypeID Name="SQL Server JDBC Connector"/>
- <ComponentTypeID Name="SQL Server JDBC XA Connector"/>
- <ComponentTypeID Name="Informix JDBC Connector"/>
- <ComponentTypeID Name="JDBC Connector"/>
- <ComponentTypeID Name="MS Access Connector"/>
- <ComponentTypeID Name="JDBC ODBC Connector"/>
- <ComponentTypeID Name="Text File Connector"/>
- </ProductType>
- </ProductTypes>
- <ProductServiceConfigs>
- <PSC Name="PlatformStandard" ComponentType="Platform" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <Properties/>
- <Service Name="ConfigurationService" IsEnabled="true"/>
- <Service Name="AuthorizationService" IsEnabled="true"/>
- <Service Name="MembershipService" IsEnabled="true"/>
- <Service Name="SessionService" IsEnabled="true"/>
- </PSC>
- <PSC Name="QueryEngine" ComponentType="MetaMatrix Server" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <Properties/>
- <Service Name="QueryService" IsEnabled="true"/>
- <Service Name="RuntimeMetadataService" IsEnabled="true"/>
- </PSC>
- <PSC Name="MetaMatrixServerFull" ComponentType="MetaMatrix Server" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <Properties/>
- <Service Name="QueryService" IsEnabled="true"/>
- <Service Name="RuntimeMetadataService" IsEnabled="true"/>
- <Service Name="ODBCService" IsEnabled="false"/>
- </PSC>
- <PSC Name="ODBCService" ComponentType="MetaMatrix Server" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <Properties/>
- <Service Name="ODBCService" IsEnabled="false"/>
- </PSC>
- </ProductServiceConfigs>
- <ComponentTypes>
- <ComponentType Name="IndexingService" ComponentTypeCode="1" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="Service" ParentComponentType="MetaBase Server" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.service.essentialservice" DisplayName="Essential Service" ShortDescription="Indicates if the service is essential to operation of the MetaMatrix Server" DefaultValue="false" IsRequired="true" PropertyType="Boolean" IsExpert="true" IsHidden="true" IsMasked="false" IsModifiable="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ServiceClassName" DisplayName="Service Class Name" ShortDescription="" DefaultValue="com.metamatrix.metamodels.db.model.service.IndexingService" IsRequired="true" PropertyType="String" IsExpert="false" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="StatementWorkerKeepAlive" DisplayName="DBMS Statement Worker Time-To-Live (TTL)" ShortDescription="The maximum time (in milliseconds) that a thread is allowed to live" DefaultValue="300000" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ModelWorkerKeepAlive" DisplayName="Model Queue WorkerTime-To-Live (TTL)" ShortDescription="The maximum time (in milliseconds) that a thread is allowed to live" DefaultValue="300000" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="StatementWorkerPoolSize" DisplayName="DBMS Statement Worker Pool Size" ShortDescription="Set the maximum number of workers which should be available in the pool" DefaultValue="5" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ModelWorkerPoolSize" DisplayName="Model Queue Worker Pool Size" ShortDescription="Set the maximum number of workers which should be available in the pool" DefaultValue="5" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="StatementBatchingSize" DisplayName="Statement Batching Size" ShortDescription="The batch size which SQL statements will be submitted in if the Repository JDBC driver supports batching." DefaultValue="200" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- </ComponentType>
- <ComponentType Name="Oracle ANSI JDBC Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="MaxSQLLength" DisplayName="Max SQL String Length" ShortDescription="" DefaultValue="16384" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="User" DisplayName="User Name" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="Driver" DisplayName="Driver Class" ShortDescription="" DefaultValue="com.metamatrix.jdbc.oracle.OracleDriver" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClass" DisplayName="Connector Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.JDBCConnector" IsRequired="true" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="URL" DisplayName="JDBC URL" ShortDescription="" DefaultValue="jdbc:mmx:oracle://<host>:1521;SID=<sid>" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="Password" DisplayName="Password" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="true" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="SetCriteriaBatchSize" DisplayName="SetCriteria Batch Size" ShortDescription="Max number of values in a SetCriteria before batching into multiple queries. A value <= 0 indicates batching is OFF." DefaultValue="0" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="TrimStrings" DisplayName="Trim string flag" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="TransactionIsolationLevel" DisplayName="Transaction Isolation Level" ShortDescription="Set the data source transaction isolation level" DefaultValue="" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClassPath" DisplayName="Class Path" ShortDescription="" DefaultValue="extensionjar:MJjdbc.jar;extensionjar:jdbcconn.jar" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.max_connections" DisplayName="Pool Maximum Connections" ShortDescription="Set the maximum number of connections for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.max_connections_for_each_id" DisplayName="Pool Maximum Connections for Each ID" ShortDescription="Set the maximum number of connections for each connector ID for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.live_and_unused_time" DisplayName="Pool Connection Idle Time" ShortDescription="Set the idle time of the connection before it should be closed if pool shrinking is enabled" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.wait_for_source_time" DisplayName="Pool Connection Waiting Time" ShortDescription="Set the time to wait if the connection is not available" DefaultValue="120000" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.cleaning_interval" DisplayName="Pool cleaning Interval" ShortDescription="Set the interval to cleaning the pool" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.enable_shrinking" DisplayName="Pool Shrinking Enabled" ShortDescription="Set whether to enable the pool shrinking" DefaultValue="true" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionCapabilityClass" DisplayName="Extension Capability Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.oracle.OracleCapabilities" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionSQLTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.oracle.OracleSQLTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionResultsTranslationClass" DisplayName="Extension Results Translation Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.oracle.OracleResultsTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionConnectionFactoryClass" DisplayName="Extension Connection Factory Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.oracle.OracleSingleIdentityConnectionFactory" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="DatabaseTimeZone" DisplayName="Database time zone" ShortDescription="Time zone of the database, if different than MetaMatrix Server" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheEnabled" DisplayName="ResultSet Cache Enabled" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheMaxSize" DisplayName="ResultSet Cache Maximum Size" ShortDescription="" DefaultValue="0" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheMaxAge" DisplayName="ResultSet Cache Maximum Age" ShortDescription="" DefaultValue="0" PropertyType="Long" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheScope" DisplayName="ResultSet Cache Scope" ShortDescription="" DefaultValue="vdb" PropertyType="String" IsExpert="false" IsMasked="false" >
- <AllowedValue>vdb</AllowedValue>
- <AllowedValue>session</AllowedValue>
- </PropertyDefinition>
- </ComponentTypeDefn>
- </ComponentType>
- <ComponentType Name="Oracle ANSI JDBC XA Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="MaxSQLLength" DisplayName="Max SQL String Length" ShortDescription="" DefaultValue="16384" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="user" DisplayName="User Name" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="Driver" DisplayName="DataSource Class" ShortDescription="" DefaultValue="com.metamatrix.jdbcx.oracle.OracleDataSource" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClass" DisplayName="Connector Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.xa.JDBCXAConnector" IsRequired="true" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="URL" DisplayName="JDBC URL" ShortDescription="" DefaultValue="jdbc:mmx:oracle://<host>:1521;SID=<sid>;databasename=<databasename>" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="password" DisplayName="Password" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="true" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="SetCriteriaBatchSize" DisplayName="SetCriteria Batch Size" ShortDescription="Max number of values in a SetCriteria before batching into multiple queries. A value <= 0 indicates batching is OFF." DefaultValue="0" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="TrimStrings" DisplayName="Trim string flag" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="TransactionIsolationLevel" DisplayName="Transaction Isolation Level" ShortDescription="Set the data source transaction isolation level" DefaultValue="" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClassPath" DisplayName="Class Path" ShortDescription="" DefaultValue="extensionjar:MJjdbc.jar;extensionjar:jdbcconn.jar" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.max_connections" DisplayName="Pool Maximum Connections" ShortDescription="Set the maximum number of connections for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.max_connections_for_each_id" DisplayName="Pool Maximum Connections for Each ID" ShortDescription="Set the maximum number of connections for each connector ID for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.live_and_unused_time" DisplayName="Pool Connection Idle Time" ShortDescription="Set the idle time of the connection before it should be closed if pool shrinking is enabled" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.wait_for_source_time" DisplayName="Pool Connection Waiting Time" ShortDescription="Set the time to wait if the connection is not available" DefaultValue="120000" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.cleaning_interval" DisplayName="Pool cleaning Interval" ShortDescription="Set the interval to cleaning the pool" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.enable_shrinking" DisplayName="Pool Shrinking Enabled" ShortDescription="Set whether to enable the pool shrinking" DefaultValue="true" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionCapabilityClass" DisplayName="Extension Capability Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.xa.oracle.OracleXACapabilities" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionSQLTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.oracle.OracleSQLTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionResultsTranslationClass" DisplayName="Extension Results Translation Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.oracle.OracleResultsTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionConnectionFactoryClass" DisplayName="Extension Connection Factory Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.xa.oracle.OracleSingleIdentityDSConnectionFactory" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="spyAttributes" DisplayName="Spy attributes" ShortDescription="The attribute string for internal debugging." PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="DatabaseTimeZone" DisplayName="Database time zone" ShortDescription="Time zone of the database, if different than MetaMatrix Server" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheEnabled" DisplayName="ResultSet Cache Enabled" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheMaxSize" DisplayName="ResultSet Cache Maximum Size" ShortDescription="" DefaultValue="0" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheMaxAge" DisplayName="ResultSet Cache Maximum Age" ShortDescription="" DefaultValue="0" PropertyType="Long" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheScope" DisplayName="ResultSet Cache Scope" ShortDescription="" DefaultValue="vdb" PropertyType="String" IsExpert="false" IsMasked="false" >
- <AllowedValue>vdb</AllowedValue>
- <AllowedValue>session</AllowedValue>
- </PropertyDefinition>
- </ComponentTypeDefn>
- </ComponentType>
- <ComponentType Name="Oracle 8 JDBC Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="MaxSQLLength" DisplayName="Max SQL String Length" ShortDescription="" DefaultValue="16384" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="User" DisplayName="User Name" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="Driver" DisplayName="Driver Class" ShortDescription="" DefaultValue="com.metamatrix.jdbc.oracle.OracleDriver" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClass" DisplayName="Connector Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.JDBCConnector" IsRequired="true" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="URL" DisplayName="JDBC URL" ShortDescription="" DefaultValue="jdbc:mmx:oracle://<host>:1521;SID=<sid>" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="Password" DisplayName="Password" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="true" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="SetCriteriaBatchSize" DisplayName="SetCriteria Batch Size" ShortDescription="Max number of values in a SetCriteria before batching into multiple queries. A value <= 0 indicates batching is OFF." DefaultValue="0" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="TrimStrings" DisplayName="Trim string flag" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="TransactionIsolationLevel" DisplayName="Transaction Isolation Level" ShortDescription="Set the data source transaction isolation level" DefaultValue="" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClassPath" DisplayName="Class Path" ShortDescription="" DefaultValue="extensionjar:MJjdbc.jar;extensionjar:jdbcconn.jar" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.max_connections" DisplayName="Pool Maximum Connections" ShortDescription="Set the maximum number of connections for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.max_connections_for_each_id" DisplayName="Pool Maximum Connections for Each ID" ShortDescription="Set the maximum number of connections for each connector ID for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.live_and_unused_time" DisplayName="Pool Connection Idle Time" ShortDescription="Set the idle time of the connection before it should be closed if pool shrinking is enabled" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.wait_for_source_time" DisplayName="Pool Connection Waiting Time" ShortDescription="Set the time to wait if the connection is not available" DefaultValue="120000" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.cleaning_interval" DisplayName="Pool cleaning Interval" ShortDescription="Set the interval to cleaning the pool" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.enable_shrinking" DisplayName="Pool Shrinking Enabled" ShortDescription="Set whether to enable the pool shrinking" DefaultValue="true" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionCapabilityClass" DisplayName="Extension Capability Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.oracle.Oracle8Capabilities" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionSQLTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.oracle.Oracle8SQLTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionResultsTranslationClass" DisplayName="Extension Results Translation Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.oracle.Oracle8ResultsTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionConnectionFactoryClass" DisplayName="Extension Connection Factory Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.oracle.OracleSingleIdentityConnectionFactory" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="DatabaseTimeZone" DisplayName="Database time zone" ShortDescription="Time zone of the database, if different than MetaMatrix Server" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheEnabled" DisplayName="ResultSet Cache Enabled" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheMaxSize" DisplayName="ResultSet Cache Maximum Size" ShortDescription="" DefaultValue="0" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheMaxAge" DisplayName="ResultSet Cache Maximum Age" ShortDescription="" DefaultValue="0" PropertyType="Long" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheScope" DisplayName="ResultSet Cache Scope" ShortDescription="" DefaultValue="vdb" PropertyType="String" IsExpert="false" IsMasked="false" >
- <AllowedValue>vdb</AllowedValue>
- <AllowedValue>session</AllowedValue>
- </PropertyDefinition>
- </ComponentTypeDefn>
- </ComponentType>
- <ComponentType Name="Oracle 8 JDBC XA Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="MaxSQLLength" DisplayName="Max SQL String Length" ShortDescription="" DefaultValue="16384" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="user" DisplayName="User Name" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="Driver" DisplayName="DataSource Class" ShortDescription="" DefaultValue="com.metamatrix.jdbcx.oracle.OracleDataSource" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClass" DisplayName="Connector Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.xa.JDBCXAConnector" IsRequired="true" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="URL" DisplayName="JDBC URL" ShortDescription="" DefaultValue="jdbc:mmx:oracle://<host>:1521;SID=<sid>;databasename=<databasename>" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="password" DisplayName="Password" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="true" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="SetCriteriaBatchSize" DisplayName="SetCriteria Batch Size" ShortDescription="Max number of values in a SetCriteria before batching into multiple queries. A value <= 0 indicates batching is OFF." DefaultValue="0" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="TrimStrings" DisplayName="Trim string flag" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="TransactionIsolationLevel" DisplayName="Transaction Isolation Level" ShortDescription="Set the data source transaction isolation level" DefaultValue="" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClassPath" DisplayName="Class Path" ShortDescription="" DefaultValue="extensionjar:MJjdbc.jar;extensionjar:jdbcconn.jar" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.max_connections" DisplayName="Pool Maximum Connections" ShortDescription="Set the maximum number of connections for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.max_connections_for_each_id" DisplayName="Pool Maximum Connections for Each ID" ShortDescription="Set the maximum number of connections for each connector ID for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.live_and_unused_time" DisplayName="Pool Connection Idle Time" ShortDescription="Set the idle time of the connection before it should be closed if pool shrinking is enabled" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.wait_for_source_time" DisplayName="Pool Connection Waiting Time" ShortDescription="Set the time to wait if the connection is not available" DefaultValue="120000" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.cleaning_interval" DisplayName="Pool cleaning Interval" ShortDescription="Set the interval to cleaning the pool" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.enable_shrinking" DisplayName="Pool Shrinking Enabled" ShortDescription="Set whether to enable the pool shrinking" DefaultValue="true" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionCapabilityClass" DisplayName="Extension Capability Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.xa.oracle.OracleXACapabilities" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionSQLTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.oracle.Oracle8SQLTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionResultsTranslationClass" DisplayName="Extension Results Translation Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.oracle.Oracle8ResultsTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionConnectionFactoryClass" DisplayName="Extension Connection Factory Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.xa.oracle.OracleSingleIdentityDSConnectionFactory" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="spyAttributes" DisplayName="Spy attributes" ShortDescription="The attribute string for internal debugging." PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="DatabaseTimeZone" DisplayName="Database time zone" ShortDescription="Time zone of the database, if different than MetaMatrix Server" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheEnabled" DisplayName="ResultSet Cache Enabled" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheMaxSize" DisplayName="ResultSet Cache Maximum Size" ShortDescription="" DefaultValue="0" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheMaxAge" DisplayName="ResultSet Cache Maximum Age" ShortDescription="" DefaultValue="0" PropertyType="Long" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheScope" DisplayName="ResultSet Cache Scope" ShortDescription="" DefaultValue="vdb" PropertyType="String" IsExpert="false" IsMasked="false" >
- <AllowedValue>vdb</AllowedValue>
- <AllowedValue>session</AllowedValue>
- </PropertyDefinition>
- </ComponentTypeDefn>
- </ComponentType>
- <ComponentType Name="DB2 JDBC Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="MaxSQLLength" DisplayName="Max SQL String Length" ShortDescription="" DefaultValue="16384" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="User" DisplayName="User Name" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="Driver" DisplayName="Driver Class" ShortDescription="" DefaultValue="com.metamatrix.jdbc.db2.DB2Driver" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClass" DisplayName="Connector Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.JDBCConnector" IsRequired="true" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="URL" DisplayName="JDBC URL" ShortDescription="" DefaultValue="jdbc:mmx:db2://<host>:<port>;DatabaseName=<databasename>;CollectionID=<collectionid>;PackageName=<packagename>" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="Password" DisplayName="Password" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="true" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="SetCriteriaBatchSize" DisplayName="SetCriteria Batch Size" ShortDescription="Max number of values in a SetCriteria before batching into multiple queries. A value <= 0 indicates batching is OFF." DefaultValue="0" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="TrimStrings" DisplayName="Trim string flag" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="TransactionIsolationLevel" DisplayName="Transaction Isolation Level" ShortDescription="Set the data source transaction isolation level" DefaultValue="" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClassPath" DisplayName="Class Path" ShortDescription="" DefaultValue="extensionjar:MJjdbc.jar;extensionjar:jdbcconn.jar" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.max_connections" DisplayName="Pool Maximum Connections" ShortDescription="Set the maximum number of connections for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.max_connections_for_each_id" DisplayName="Pool Maximum Connections for Each ID" ShortDescription="Set the maximum number of connections for each connector ID for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.live_and_unused_time" DisplayName="Pool Connection Idle Time" ShortDescription="Set the idle time of the connection before it should be closed if pool shrinking is enabled" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.wait_for_source_time" DisplayName="Pool Connection Waiting Time" ShortDescription="Set the time to wait if the connection is not available" DefaultValue="120000" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.cleaning_interval" DisplayName="Pool cleaning Interval" ShortDescription="Set the interval to cleaning the pool" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.enable_shrinking" DisplayName="Enable Pool Shrinking" ShortDescription="Set whether to enable the pool shrinking" DefaultValue="true" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionCapabilityClass" DisplayName="Extension Capability Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.db2.DB2Capabilities" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionSQLTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.db2.DB2SQLTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionResultsTranslationClass" DisplayName="Extension Results Translation Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.db2.DB2ResultsTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionConnectionFactoryClass" DisplayName="Extension Connection Factory Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.db2.DB2SingleIdentityConnectionFactory" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="DatabaseTimeZone" DisplayName="Database time zone" ShortDescription="Time zone of the database, if different than MetaMatrix Server" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheEnabled" DisplayName="ResultSet Cache Enabled" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheMaxSize" DisplayName="ResultSet Cache Maximum Size" ShortDescription="" DefaultValue="0" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheMaxAge" DisplayName="ResultSet Cache Maximum Age" ShortDescription="" DefaultValue="0" PropertyType="Long" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheScope" DisplayName="ResultSet Cache Scope" ShortDescription="" DefaultValue="vdb" PropertyType="String" IsExpert="false" IsMasked="false" >
- <AllowedValue>vdb</AllowedValue>
- <AllowedValue>session</AllowedValue>
- </PropertyDefinition>
- </ComponentTypeDefn>
- </ComponentType>
- <ComponentType Name="DB2 JDBC XA Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="MaxSQLLength" DisplayName="Max SQL String Length" ShortDescription="" DefaultValue="16384" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="user" DisplayName="User Name" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="Driver" DisplayName="DataSource Class" ShortDescription="" DefaultValue="com.metamatrix.jdbcx.db2.DB2DataSource" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClass" DisplayName="Connector Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.xa.JDBCXAConnector" IsRequired="true" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="URL" DisplayName="JDBC URL" ShortDescription="" DefaultValue="jdbc:mmx:db2://<host>:<port>;DatabaseName=<databasename>;CollectionID=<collectionid>;PackageName=<packagename>" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="password" DisplayName="Password" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="true" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="SetCriteriaBatchSize" DisplayName="SetCriteria Batch Size" ShortDescription="Max number of values in a SetCriteria before batching into multiple queries. A value <= 0 indicates batching is OFF." DefaultValue="0" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="TrimStrings" DisplayName="Trim string flag" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="TransactionIsolationLevel" DisplayName="Transaction Isolation Level" ShortDescription="Set the data source transaction isolation level" DefaultValue="" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClassPath" DisplayName="Class Path" ShortDescription="" DefaultValue="extensionjar:MJjdbc.jar;extensionjar:jdbcconn.jar" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.max_connections" DisplayName="Pool Maximum Connections" ShortDescription="Set the maximum number of connections for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.max_connections_for_each_id" DisplayName="Pool Maximum Connections for Each ID" ShortDescription="Set the maximum number of connections for each connector ID for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.live_and_unused_time" DisplayName="Pool Connection Idle Time" ShortDescription="Set the idle time of the connection before it should be closed if pool shrinking is enabled" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.wait_for_source_time" DisplayName="Pool Connection Waiting Time" ShortDescription="Set the time to wait if the connection is not available" DefaultValue="120000" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.cleaning_interval" DisplayName="Pool cleaning Interval" ShortDescription="Set the interval to cleaning the pool" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.enable_shrinking" DisplayName="Enable Pool Shrinking" ShortDescription="Set whether to enable the pool shrinking" DefaultValue="true" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionCapabilityClass" DisplayName="Extension Capability Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.xa.db2.DB2XACapabilities" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionSQLTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.db2.DB2SQLTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionResultsTranslationClass" DisplayName="Extension Results Translation Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.db2.DB2ResultsTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionConnectionFactoryClass" DisplayName="Extension Connection Factory Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.xa.db2.DB2SingleIdentityDSConnectionFactory" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="spyAttributes" DisplayName="Spy attributes" ShortDescription="The attribute string for internal debugging." PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="DatabaseTimeZone" DisplayName="Database time zone" ShortDescription="Time zone of the database, if different than MetaMatrix Server" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheEnabled" DisplayName="ResultSet Cache Enabled" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheMaxSize" DisplayName="ResultSet Cache Maximum Size" ShortDescription="" DefaultValue="0" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheMaxAge" DisplayName="ResultSet Cache Maximum Age" ShortDescription="" DefaultValue="0" PropertyType="Long" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheScope" DisplayName="ResultSet Cache Scope" ShortDescription="" DefaultValue="vdb" PropertyType="String" IsExpert="false" IsMasked="false" >
- <AllowedValue>vdb</AllowedValue>
- <AllowedValue>session</AllowedValue>
- </PropertyDefinition>
- </ComponentTypeDefn>
- </ComponentType>
- <ComponentType Name="Sybase ANSI JDBC Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="MaxSQLLength" DisplayName="Max SQL String Length" ShortDescription="" DefaultValue="16384" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="User" DisplayName="User Name" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="Driver" DisplayName="Driver Class" ShortDescription="" DefaultValue="com.metamatrix.jdbc.sybase.SybaseDriver" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClass" DisplayName="Connector Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.JDBCConnector" IsRequired="true" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="URL" DisplayName="JDBC URL" ShortDescription="" DefaultValue="jdbc:mmx:sybase://<host>:<port5000>;DatabaseName=<databasename>" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="Password" DisplayName="Password" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="true" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="SetCriteriaBatchSize" DisplayName="SetCriteria Batch Size" ShortDescription="Max number of values in a SetCriteria before batching into multiple queries. A value <= 0 indicates batching is OFF." DefaultValue="0" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="TrimStrings" DisplayName="Trim string flag" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="TransactionIsolationLevel" DisplayName="Transaction Isolation Level" ShortDescription="Set the data source transaction isolation level" DefaultValue="" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClassPath" DisplayName="Class Path" ShortDescription="" DefaultValue="extensionjar:MJjdbc.jar;extensionjar:jdbcconn.jar" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.max_connections" DisplayName="Pool Maximum Connections" ShortDescription="Set the maximum number of connections for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.max_connections_for_each_id" DisplayName="Pool Maximum Connections for Each ID" ShortDescription="Set the maximum number of connections for each connector ID for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.live_and_unused_time" DisplayName="Pool Connection Idle Time" ShortDescription="Set the idle time of the connection before it should be closed if pool shrinking is enabled" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.wait_for_source_time" DisplayName="Pool Connection Waiting Time" ShortDescription="Set the time to wait if the connection is not available" DefaultValue="120000" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.cleaning_interval" DisplayName="Pool cleaning Interval" ShortDescription="Set the interval to cleaning the pool" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.enable_shrinking" DisplayName="Enable Pool Shrinking" ShortDescription="Set whether to enable the pool shrinking" DefaultValue="true" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionCapabilityClass" DisplayName="Extension Capability Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.sybase.SybaseCapabilities" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionSQLTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.sybase.SybaseSQLTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionResultsTranslationClass" DisplayName="Extension Results Translation Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.sybase.SybaseResultsTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionConnectionFactoryClass" DisplayName="Extension Connection Factory Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.sybase.SybaseSingleIdentityConnectionFactory" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="DatabaseTimeZone" DisplayName="Database time zone" ShortDescription="Time zone of the database, if different than MetaMatrix Server" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheEnabled" DisplayName="ResultSet Cache Enabled" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheMaxSize" DisplayName="ResultSet Cache Maximum Size" ShortDescription="" DefaultValue="0" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheMaxAge" DisplayName="ResultSet Cache Maximum Age" ShortDescription="" DefaultValue="0" PropertyType="Long" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheScope" DisplayName="ResultSet Cache Scope" ShortDescription="" DefaultValue="vdb" PropertyType="String" IsExpert="false" IsMasked="false" >
- <AllowedValue>vdb</AllowedValue>
- <AllowedValue>session</AllowedValue>
- </PropertyDefinition>
- </ComponentTypeDefn>
- </ComponentType>
- <ComponentType Name="Sybase ANSI JDBC XA Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="MaxSQLLength" DisplayName="Max SQL String Length" ShortDescription="" DefaultValue="16384" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="user" DisplayName="User Name" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="Driver" DisplayName="DataSource Class" ShortDescription="" DefaultValue="com.metamatrix.jdbcx.sybase.SybaseDataSource" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClass" DisplayName="Connector Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.xa.JDBCXAConnector" IsRequired="true" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="URL" DisplayName="JDBC URL" ShortDescription="" DefaultValue="jdbc:mmx:sybase://<host>:<port5000>;DatabaseName=<databasename>" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="password" DisplayName="Password" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="true" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="SetCriteriaBatchSize" DisplayName="SetCriteria Batch Size" ShortDescription="Max number of values in a SetCriteria before batching into multiple queries. A value <= 0 indicates batching is OFF." DefaultValue="0" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="TrimStrings" DisplayName="Trim string flag" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="TransactionIsolationLevel" DisplayName="Transaction Isolation Level" ShortDescription="Set the data source transaction isolation level" DefaultValue="" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClassPath" DisplayName="Class Path" ShortDescription="" DefaultValue="extensionjar:MJjdbc.jar;extensionjar:jdbcconn.jar" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.max_connections" DisplayName="Pool Maximum Connections" ShortDescription="Set the maximum number of connections for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.max_connections_for_each_id" DisplayName="Pool Maximum Connections for Each ID" ShortDescription="Set the maximum number of connections for each connector ID for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.live_and_unused_time" DisplayName="Pool Connection Idle Time" ShortDescription="Set the idle time of the connection before it should be closed if pool shrinking is enabled" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.wait_for_source_time" DisplayName="Pool Connection Waiting Time" ShortDescription="Set the time to wait if the connection is not available" DefaultValue="120000" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.cleaning_interval" DisplayName="Pool cleaning Interval" ShortDescription="Set the interval to cleaning the pool" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.enable_shrinking" DisplayName="Enable Pool Shrinking" ShortDescription="Set whether to enable the pool shrinking" DefaultValue="false" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionCapabilityClass" DisplayName="Extension Capability Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.xa.sybase.SybaseXACapabilities" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionSQLTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.sybase.SybaseSQLTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionResultsTranslationClass" DisplayName="Extension Results Translation Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.sybase.SybaseResultsTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionConnectionFactoryClass" DisplayName="Extension Connection Factory Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.xa.sybase.SybaseSingleIdentityDSConnectionFactory" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="spyAttributes" DisplayName="Spy attributes" ShortDescription="The attribute string for internal debugging." PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="DatabaseTimeZone" DisplayName="Database time zone" ShortDescription="Time zone of the database, if different than MetaMatrix Server" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheEnabled" DisplayName="ResultSet Cache Enabled" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheMaxSize" DisplayName="ResultSet Cache Maximum Size" ShortDescription="" DefaultValue="0" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheMaxAge" DisplayName="ResultSet Cache Maximum Age" ShortDescription="" DefaultValue="0" PropertyType="Long" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheScope" DisplayName="ResultSet Cache Scope" ShortDescription="" DefaultValue="vdb" PropertyType="String" IsExpert="false" IsMasked="false" >
- <AllowedValue>vdb</AllowedValue>
- <AllowedValue>session</AllowedValue>
- </PropertyDefinition>
- </ComponentTypeDefn>
- </ComponentType>
- <ComponentType Name="Sybase 11 JDBC Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="MaxSQLLength" DisplayName="Max SQL String Length" ShortDescription="" DefaultValue="16384" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="User" DisplayName="User Name" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="Driver" DisplayName="Driver Class" ShortDescription="" DefaultValue="com.metamatrix.jdbc.sybase.SybaseDriver" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClass" DisplayName="Connector Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.JDBCConnector" IsRequired="true" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="URL" DisplayName="JDBC URL" ShortDescription="" DefaultValue="jdbc:mmx:sybase://<host>:<port5000>;DatabaseName=<databasename>" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="Password" DisplayName="Password" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="true" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="SetCriteriaBatchSize" DisplayName="SetCriteria Batch Size" ShortDescription="Max number of values in a SetCriteria before batching into multiple queries. A value <= 0 indicates batching is OFF." DefaultValue="0" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="TrimStrings" DisplayName="Trim string flag" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="TransactionIsolationLevel" DisplayName="Transaction Isolation Level" ShortDescription="Set the data source transaction isolation level" DefaultValue="" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClassPath" DisplayName="Class Path" ShortDescription="" DefaultValue="extensionjar:MJjdbc.jar;extensionjar:jdbcconn.jar" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.max_connections" DisplayName="Pool Maximum Connections" ShortDescription="Set the maximum number of connections for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.max_connections_for_each_id" DisplayName="Pool Maximum Connections for Each ID" ShortDescription="Set the maximum number of connections for each connector ID for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.live_and_unused_time" DisplayName="Pool Connection Idle Time" ShortDescription="Set the idle time of the connection before it should be closed if pool shrinking is enabled" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.wait_for_source_time" DisplayName="Pool Connection Waiting Time" ShortDescription="Set the time to wait if the connection is not available" DefaultValue="120000" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.cleaning_interval" DisplayName="Pool cleaning Interval" ShortDescription="Set the interval to cleaning the pool" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.enable_shrinking" DisplayName="Enable Pool Shrinking" ShortDescription="Set whether to enable the pool shrinking" DefaultValue="false" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionCapabilityClass" DisplayName="Extension Capability Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.sybase.Sybase11Capabilities" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionSQLTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.sybase.Sybase11SQLTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionResultsTranslationClass" DisplayName="Extension Results Translation Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.sybase.Sybase11ResultsTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionConnectionFactoryClass" DisplayName="Extension Connection Factory Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.sybase.SybaseSingleIdentityConnectionFactory" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="DatabaseTimeZone" DisplayName="Database time zone" ShortDescription="Time zone of the database, if different than MetaMatrix Server" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheEnabled" DisplayName="ResultSet Cache Enabled" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheMaxSize" DisplayName="ResultSet Cache Maximum Size" ShortDescription="" DefaultValue="0" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheMaxAge" DisplayName="ResultSet Cache Maximum Age" ShortDescription="" DefaultValue="0" PropertyType="Long" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheScope" DisplayName="ResultSet Cache Scope" ShortDescription="" DefaultValue="vdb" PropertyType="String" IsExpert="false" IsMasked="false" >
- <AllowedValue>vdb</AllowedValue>
- <AllowedValue>session</AllowedValue>
- </PropertyDefinition>
- </ComponentTypeDefn>
- </ComponentType>
- <ComponentType Name="Sybase 11 JDBC XA Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="MaxSQLLength" DisplayName="Max SQL String Length" ShortDescription="" DefaultValue="16384" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="user" DisplayName="User Name" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="Driver" DisplayName="DataSource Class" ShortDescription="" DefaultValue="com.metamatrix.jdbcx.sybase.SybaseDataSource" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClass" DisplayName="Connector Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.xa.JDBCXAConnector" IsRequired="true" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="URL" DisplayName="JDBC URL" ShortDescription="" DefaultValue="jdbc:mmx:sybase://<host>:<port5000>;DatabaseName=<databasename>" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="password" DisplayName="Password" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="true" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="SetCriteriaBatchSize" DisplayName="SetCriteria Batch Size" ShortDescription="Max number of values in a SetCriteria before batching into multiple queries. A value <= 0 indicates batching is OFF." DefaultValue="0" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="TrimStrings" DisplayName="Trim string flag" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="TransactionIsolationLevel" DisplayName="Transaction Isolation Level" ShortDescription="Set the data source transaction isolation level" DefaultValue="" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClassPath" DisplayName="Class Path" ShortDescription="" DefaultValue="extensionjar:MJjdbc.jar;extensionjar:jdbcconn.jar" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.max_connections" DisplayName="Pool Maximum Connections" ShortDescription="Set the maximum number of connections for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.max_connections_for_each_id" DisplayName="Pool Maximum Connections for Each ID" ShortDescription="Set the maximum number of connections for each connector ID for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.live_and_unused_time" DisplayName="Pool Connection Idle Time" ShortDescription="Set the idle time of the connection before it should be closed if pool shrinking is enabled" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.wait_for_source_time" DisplayName="Pool Connection Waiting Time" ShortDescription="Set the time to wait if the connection is not available" DefaultValue="120000" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.cleaning_interval" DisplayName="Pool cleaning Interval" ShortDescription="Set the interval to cleaning the pool" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.enable_shrinking" DisplayName="Enable Pool Shrinking" ShortDescription="Set whether to enable the pool shrinking" DefaultValue="true" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionCapabilityClass" DisplayName="Extension Capability Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.xa.sybase.Sybase11XACapabilities" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionSQLTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.sybase.Sybase11SQLTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionResultsTranslationClass" DisplayName="Extension Results Translation Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.sybase.Sybase11ResultsTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionConnectionFactoryClass" DisplayName="Extension Connection Factory Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.xa.sybase.SybaseSingleIdentityDSConnectionFactory" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="spyAttributes" DisplayName="Spy attributes" ShortDescription="The attribute string for internal debugging." PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="DatabaseTimeZone" DisplayName="Database time zone" ShortDescription="Time zone of the database, if different than MetaMatrix Server" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheEnabled" DisplayName="ResultSet Cache Enabled" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheMaxSize" DisplayName="ResultSet Cache Maximum Size" ShortDescription="" DefaultValue="0" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheMaxAge" DisplayName="ResultSet Cache Maximum Age" ShortDescription="" DefaultValue="0" PropertyType="Long" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheScope" DisplayName="ResultSet Cache Scope" ShortDescription="" DefaultValue="vdb" PropertyType="String" IsExpert="false" IsMasked="false" >
- <AllowedValue>vdb</AllowedValue>
- <AllowedValue>session</AllowedValue>
- </PropertyDefinition>
- </ComponentTypeDefn>
- </ComponentType>
- <ComponentType Name="SQL Server JDBC Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="MaxSQLLength" DisplayName="Max SQL String Length" ShortDescription="" DefaultValue="16384" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="User" DisplayName="User Name" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="Driver" DisplayName="Driver Class" ShortDescription="" DefaultValue="com.metamatrix.jdbc.sqlserver.SQLServerDriver" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClass" DisplayName="Connector Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.JDBCConnector" IsRequired="true" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="URL" DisplayName="JDBC URL" ShortDescription="" DefaultValue="jdbc:mmx:sqlserver://<host>:1433;DatabaseName=<databasename>" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="Password" DisplayName="Password" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="true" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="SetCriteriaBatchSize" DisplayName="SetCriteria Batch Size" ShortDescription="Max number of values in a SetCriteria before batching into multiple queries. A value <= 0 indicates batching is OFF." DefaultValue="0" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="TrimStrings" DisplayName="Trim string flag" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="TransactionIsolationLevel" DisplayName="Transaction Isolation Level" ShortDescription="Set the data source transaction isolation level" DefaultValue="" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClassPath" DisplayName="Class Path" ShortDescription="" DefaultValue="extensionjar:MJjdbc.jar;extensionjar:jdbcconn.jar" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.max_connections" DisplayName="Pool Maximum Connections" ShortDescription="Set the maximum number of connections for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.max_connections_for_each_id" DisplayName="Pool Maximum Connections for Each ID" ShortDescription="Set the maximum number of connections for each connector ID for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.live_and_unused_time" DisplayName="Pool Connection Idle Time" ShortDescription="Set the idle time of the connection before it should be closed if pool shrinking is enabled" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.wait_for_source_time" DisplayName="Pool Connection Waiting Time" ShortDescription="Set the time to wait if the connection is not available" DefaultValue="120000" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.cleaning_interval" DisplayName="Pool cleaning Interval" ShortDescription="Set the interval to cleaning the pool" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.enable_shrinking" DisplayName="Enable Pool Shrinking" ShortDescription="Set whether to enable the pool shrinking" DefaultValue="true" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionCapabilityClass" DisplayName="Extension Capability Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.sqlserver.SqlServerCapabilities" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionSQLTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.sqlserver.SqlServerSQLTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionResultsTranslationClass" DisplayName="Extension Results Translation Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.sqlserver.SqlServerResultsTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionConnectionFactoryClass" DisplayName="Extension Connection Factory Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.sqlserver.SqlServerSingleIdentityConnectionFactory" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="DatabaseTimeZone" DisplayName="Database time zone" ShortDescription="Time zone of the database, if different than MetaMatrix Server" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheEnabled" DisplayName="ResultSet Cache Enabled" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheMaxSize" DisplayName="ResultSet Cache Maximum Size" ShortDescription="" DefaultValue="0" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheMaxAge" DisplayName="ResultSet Cache Maximum Age" ShortDescription="" DefaultValue="0" PropertyType="Long" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheScope" DisplayName="ResultSet Cache Scope" ShortDescription="" DefaultValue="vdb" PropertyType="String" IsExpert="false" IsMasked="false" >
- <AllowedValue>vdb</AllowedValue>
- <AllowedValue>session</AllowedValue>
- </PropertyDefinition>
- </ComponentTypeDefn>
- </ComponentType>
- <ComponentType Name="SQL Server JDBC XA Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="MaxSQLLength" DisplayName="Max SQL String Length" ShortDescription="" DefaultValue="16384" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="user" DisplayName="User Name" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="Driver" DisplayName="DataSource Class" ShortDescription="" DefaultValue="com.metamatrix.jdbcx.sqlserver.SQLServerDataSource" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClass" DisplayName="Connector Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.xa.JDBCXAConnector" IsRequired="true" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="URL" DisplayName="JDBC URL" ShortDescription="" DefaultValue="jdbc:mmx:sqlserver://<host>:1433;DatabaseName=<databasename>" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="password" DisplayName="Password" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="true" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="SetCriteriaBatchSize" DisplayName="SetCriteria Batch Size" ShortDescription="Max number of values in a SetCriteria before batching into multiple queries. A value <= 0 indicates batching is OFF." DefaultValue="0" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="TrimStrings" DisplayName="Trim string flag" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="TransactionIsolationLevel" DisplayName="Transaction Isolation Level" ShortDescription="Set the data source transaction isolation level" DefaultValue="" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClassPath" DisplayName="Class Path" ShortDescription="" DefaultValue="extensionjar:MJjdbc.jar;extensionjar:jdbcconn.jar" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.max_connections" DisplayName="Pool Maximum Connections" ShortDescription="Set the maximum number of connections for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.max_connections_for_each_id" DisplayName="Pool Maximum Connections for Each ID" ShortDescription="Set the maximum number of connections for each connector ID for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.live_and_unused_time" DisplayName="Pool Connection Idle Time" ShortDescription="Set the idle time of the connection before it should be closed if pool shrinking is enabled" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.wait_for_source_time" DisplayName="Pool Connection Waiting Time" ShortDescription="Set the time to wait if the connection is not available" DefaultValue="120000" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.cleaning_interval" DisplayName="Pool cleaning Interval" ShortDescription="Set the interval to cleaning the pool" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.enable_shrinking" DisplayName="Enable Pool Shrinking" ShortDescription="Set whether to enable the pool shrinking" DefaultValue="true" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionCapabilityClass" DisplayName="Extension Capability Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.xa.sqlserver.SqlServerXACapabilities" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionSQLTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.sqlserver.SqlServerSQLTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionResultsTranslationClass" DisplayName="Extension Results Translation Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.sqlserver.SqlServerResultsTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionConnectionFactoryClass" DisplayName="Extension Connection Factory Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.xa.sqlserver.SqlServerSingleIdentityDSConnectionFactory" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="spyAttributes" DisplayName="Spy attributes" ShortDescription="The attribute string for internal debugging." PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="DatabaseTimeZone" DisplayName="Database time zone" ShortDescription="Time zone of the database, if different than MetaMatrix Server" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheEnabled" DisplayName="ResultSet Cache Enabled" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheMaxSize" DisplayName="ResultSet Cache Maximum Size" ShortDescription="" DefaultValue="0" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheMaxAge" DisplayName="ResultSet Cache Maximum Age" ShortDescription="" DefaultValue="0" PropertyType="Long" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheScope" DisplayName="ResultSet Cache Scope" ShortDescription="" DefaultValue="vdb" PropertyType="String" IsExpert="false" IsMasked="false" >
- <AllowedValue>vdb</AllowedValue>
- <AllowedValue>session</AllowedValue>
- </PropertyDefinition>
- </ComponentTypeDefn>
- </ComponentType>
- <ComponentType Name="Informix JDBC Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="MaxSQLLength" DisplayName="Max SQL String Length" ShortDescription="" DefaultValue="16384" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="User" DisplayName="User Name" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="Driver" DisplayName="Driver Class" ShortDescription="" DefaultValue="com.metamatrix.jdbc.informix.InformixDriver" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClass" DisplayName="Connector Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.JDBCConnector" IsRequired="true" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="URL" DisplayName="JDBC URL" ShortDescription="" DefaultValue="jdbc:mmx:informix://<host>:<port>;DatabaseName=<databasename>" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="Password" DisplayName="Password" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="true" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="SetCriteriaBatchSize" DisplayName="SetCriteria Batch Size" ShortDescription="Max number of values in a SetCriteria before batching into multiple queries. A value <= 0 indicates batching is OFF." DefaultValue="0" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="TrimStrings" DisplayName="Trim string flag" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="TransactionIsolationLevel" DisplayName="Transaction Isolation Level" ShortDescription="Set the data source transaction isolation level" DefaultValue="" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClassPath" DisplayName="Class Path" ShortDescription="" DefaultValue="extensionjar:MJjdbc.jar;extensionjar:jdbcconn.jar" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.max_connections" DisplayName="Pool Maximum Connections" ShortDescription="Set the maximum number of connections for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.max_connections_for_each_id" DisplayName="Pool Maximum Connections for Each ID" ShortDescription="Set the maximum number of connections for each connector ID for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.live_and_unused_time" DisplayName="Pool Connection Idle Time" ShortDescription="Set the idle time of the connection before it should be closed if pool shrinking is enabled" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.wait_for_source_time" DisplayName="Pool Connection Waiting Time" ShortDescription="Set the time to wait if the connection is not available" DefaultValue="120000" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.cleaning_interval" DisplayName="Pool cleaning Interval" ShortDescription="Set the interval to cleaning the pool" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.enable_shrinking" DisplayName="Enable Pool Shrinking" ShortDescription="Set whether to enable the pool shrinking" DefaultValue="true" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionCapabilityClass" DisplayName="Extension Capability Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.infomix.InfomixCapabilities" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionSQLTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.infomix.InfomixSQLTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionResultsTranslationClass" DisplayName="Extension Results Translation Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.infomix.InfomixResultsTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionConnectionFactoryClass" DisplayName="Extension Connection Factory Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.infomix.InfomixSingleIdentityConnectionFactory" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="DatabaseTimeZone" DisplayName="Database time zone" ShortDescription="Time zone of the database, if different than MetaMatrix Server" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheEnabled" DisplayName="ResultSet Cache Enabled" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheMaxSize" DisplayName="ResultSet Cache Maximum Size" ShortDescription="" DefaultValue="0" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheMaxAge" DisplayName="ResultSet Cache Maximum Age" ShortDescription="" DefaultValue="0" PropertyType="Long" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheScope" DisplayName="ResultSet Cache Scope" ShortDescription="" DefaultValue="vdb" PropertyType="String" IsExpert="false" IsMasked="false" >
- <AllowedValue>vdb</AllowedValue>
- <AllowedValue>session</AllowedValue>
- </PropertyDefinition>
- </ComponentTypeDefn>
- </ComponentType>
- <ComponentType Name="Connector" ComponentTypeCode="2" Deployable="false" Deprecated="false" Monitorable="true" SuperComponentType="Service" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.service.essentialservice" DisplayName="Essential Service" ShortDescription="Indicates if the service is essential to operation of the MetaMatrix Server" DefaultValue="false" IsRequired="true" PropertyType="Boolean" IsExpert="true" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ServiceClassName" DisplayName="Service Class Name" ShortDescription="" DefaultValue="com.metamatrix.server.connector.service.ConnectorService" IsRequired="true" PropertyType="String" IsExpert="false" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorMaxThreads" DisplayName="Connector Maximum Thread Count" ShortDescription="" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorThreadTTL" DisplayName="Thread Time to live (ms)" ShortDescription="" DefaultValue="120000" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClass" DisplayName="Connector Class" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="true" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="MaxResultRows" DisplayName="Maximum Result Rows" ShortDescription="" DefaultValue="10000" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExceptionOnMaxRows" DisplayName="Exception on Exceeding Max Rows" ShortDescription="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" DefaultValue="true" IsRequired="true" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClassPath" DisplayName="Class Path" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ServiceMonitoringEnabled" DisplayName="Data Source Monitoring Enabled" ShortDescription="Whether to monitor the underlying data source to see if it is available." DefaultValue="true" IsRequired="true" PropertyType="Boolean" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.test_connect_interval" DisplayName="Pool Data Source Test Connect Interval (seconds)" ShortDescription="How often (in seconds) to create test connections to the underlying datasource to see if it is available." DefaultValue="600" IsRequired="true" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- </ComponentType>
- <ComponentType Name="DesignTimeCatalog JDBC Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="Connector" ParentComponentType="MetaMatrix Server" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.service.essentialservice" DisplayName="Essential Service" ShortDescription="Indicates if the service is essential to operation of the MetaMatrix Server" DefaultValue="false" IsRequired="true" PropertyType="Boolean" IsExpert="true" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ServiceClassName" DisplayName="Service Class Name" ShortDescription="" DefaultValue="com.metamatrix.server.connector.service.ConnectorService" IsRequired="true" PropertyType="String" IsExpert="false" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorMaxThreads" DisplayName="Connector Maximum Thread Count" ShortDescription="" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorThreadTTL" DisplayName="Thread Time to live" ShortDescription="" DefaultValue="120000" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="MaxResultRows" DisplayName="Maximum Result Rows" ShortDescription="" DefaultValue="0" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExceptionOnMaxRows" DisplayName="Exception on Exceeding Max Rows" ShortDescription="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" DefaultValue="true" IsRequired="true" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="User" DisplayName="User Name" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.live_and_unused_time" DisplayName="Pool Connection Idle Time" ShortDescription="Set the idle time of the connection before it should be closed if pool shrinking is enabled" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="TransactionIsolationLevel" DisplayName="Transaction Isolation Level" ShortDescription="Set the data source transaction isolation level" DefaultValue="" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionResultsTranslationClass" DisplayName="Extension Results Translation Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.oracle.Oracle8ResultsTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="SetCriteriaBatchSize" DisplayName="SetCriteria Batch Size" ShortDescription="Max number of values in a SetCriteria before batching into multiple queries. A value <= 0 indicates batching is OFF." DefaultValue="0" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClass" DisplayName="Connector Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.JDBCConnector" IsRequired="true" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.wait_for_source_time" DisplayName="Pool Connection Waiting Time" ShortDescription="Set the time to wait if the connection is not available" DefaultValue="120000" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionCapabilityClass" DisplayName="Extension Capability Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.oracle.Oracle8Capabilities" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.max_connections_for_each_id" DisplayName="Pool Maximum Connections for Each ID" ShortDescription="Set the maximum number of connections for each connector ID for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionSQLTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.oracle.Oracle8SQLTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="Driver" DisplayName="Driver Class" ShortDescription="" DefaultValue="com.metamatrix.jdbc.oracle.OracleDriver" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="Password" DisplayName="Password" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="true" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="MaxSQLLength" DisplayName="Max SQL String Length" ShortDescription="" DefaultValue="16384" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.cleaning_interval" DisplayName="Pool cleaning Interval" ShortDescription="Set the interval to cleaning the pool" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionConnectionFactoryClass" DisplayName="Extension Connection Factory Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.JDBCSingleIdentityConnectionFactory" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.enable_shrinking" DisplayName="Pool Shrinking Enabled" ShortDescription="Set whether to enable the pool shrinking" DefaultValue="true" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClassPath" DisplayName="Class Path" ShortDescription="" DefaultValue="extensionjar:MJjdbc.jar;extensionjar:jdbcconn.jar" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="URL" DisplayName="JDBC URL" ShortDescription="" DefaultValue="jdbc:mmx:oracle://<host>:1521;SID=<sid>" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.max_connections" DisplayName="Pool Maximum Connections" ShortDescription="Set the maximum number of connections for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="TrimStrings" DisplayName="Trim string flag" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="DatabaseTimeZone" DisplayName="Database time zone" ShortDescription="Time zone of the database, if different than MetaMatrix Server" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
+ <Header>
+ <ApplicationCreatedBy>Teiid</ApplicationCreatedBy>
+ <ApplicationVersionCreatedBy>6.0</ApplicationVersionCreatedBy>
+ <UserCreatedBy>Configuration</UserCreatedBy>
+ <ConfigurationVersion>6.0</ConfigurationVersion>
+ <MetaMatrixSystemVersion>6.0</MetaMatrixSystemVersion>
+ <Time>2009-03-20T12:23:53.919-06:00</Time>
+ </Header>
+ <Configuration Name="Next Startup" ComponentType="Configuration" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup">
+ <Properties />
+ </Configuration>
+ <Services>
+ <Service Name="QueryService" ComponentType="QueryService" QueuedService="false" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup">
+ <Properties>
+ <Property Name="metamatrix.service.essentialservice">false</Property>
+ <Property Name="ProcessPoolMaxThreads">64</Property>
+ <Property Name="ProcessPoolThreadTTL">120000</Property>
+ <Property Name="ServiceClassName">com.metamatrix.server.query.service.QueryService</Property>
+ <Property Name="ProcessorTimeslice">2000</Property>
+ <Property Name="MaxCodeTables">50</Property>
+ <Property Name="MaxCodeTableRecords">10000</Property>
+ <Property Name="MinFetchSize">100</Property>
+ <Property Name="MaxFetchSize">20000</Property>
+ <Property Name="ResultSetCacheEnabled">0</Property>
+ <Property Name="ResultSetCacheMaxSize">0</Property>
+ <Property Name="ResultSetCacheMaxAge">0</Property>
+ <Property Name="ResultSetCacheScope">vdb</Property>
+ <Property Name="MaxPlanCacheSize">100</Property>
+ </Properties>
+ </Service>
+ </Services>
+ <ComponentTypes>
+ <ComponentType Name="Service" ComponentTypeCode="1" Deployable="false" Deprecated="false" Monitorable="false" ParentComponentType="VM" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup">
+ <PropertyDefinition Name="ServiceClassName" DisplayName="Service Class Name" ShortDescription="" PropertyType="String" IsModifiable="false" IsMasked="false" />
+ <PropertyDefinition Name="metamatrix.service.essentialservice" DisplayName="Essential Service" ShortDescription="Indicates if the service is essential to operation of the Integration Server" DefaultValue="false" PropertyType="Boolean" IsModifable="false" IsMasked="false" />
</ComponentType>
- <ComponentType Name="RuntimeMetadataService" ComponentTypeCode="1" Deployable="true" Deprecated="false" Monitorable="true" SuperComponentType="Service" ParentComponentType="MetaMatrix Server" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.service.essentialservice" DisplayName="Essential Service" ShortDescription="Indicates if the service is essential to operation of the MetaMatrix Server" DefaultValue="false" IsRequired="true" PropertyType="Boolean" IsExpert="true" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ServiceClassName" DisplayName="Service Class Name" ShortDescription="" DefaultValue="com.metamatrix.server.connector.service.ConnectorService" IsRequired="true" PropertyType="String" IsExpert="false" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorMaxThreads" DisplayName="Connector Maximum Thread Count" ShortDescription="" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorThreadTTL" DisplayName="Thread Time to live" ShortDescription="" DefaultValue="120000" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClass" DisplayName="Connector Class" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="true" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="MaxResultRows" DisplayName="Maximum Result Rows" ShortDescription="" DefaultValue="0" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExceptionOnMaxRows" DisplayName="Exception on Exceeding Max Rows" ShortDescription="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" DefaultValue="true" IsRequired="true" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClassPath" DisplayName="Class Path" DefaultValue="extensionjar:metadataconn.jar" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="DatabaseTimeZone" DisplayName="Database time zone" ShortDescription="Time zone of the database, if different than MetaMatrix Server" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- </ComponentType>
- <ComponentType Name="Service" ComponentTypeCode="1" Deployable="false" Deprecated="false" Monitorable="false" ParentComponentType="VM" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ServiceClassName" DisplayName="Service Class Name" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.service.essentialservice" DisplayName="Essential Service" ShortDescription="Indicates if the service is essential to operation of the MetaMatrix Server" DefaultValue="false" IsRequired="true" PropertyType="Boolean" IsExpert="true" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- </ComponentType>
- <ComponentType Name="VM" ComponentTypeCode="0" Deployable="true" Deprecated="false" Monitorable="false" ParentComponentType="Host" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="vm.enabled" DisplayName="Start Enabled Flag" ShortDescription="The enabled flag allows for disabling the VM from starting without have to remove it from deployment." IsRequired="true" PropertyType="Boolean" DefaultValue="true" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="vm.forced.shutdown.time" DisplayName="Default VM Forced Shutdown Time (secs)" ShortDescription="The the number of seconds the VM will wait until it will perform a force shutdown." DefaultValue="30" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="LogFile" DisplayName="Process Log File" ShortDescription="The process log file that can be found in the log directory of the installed host." IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" IsModifiable="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="vm.starter.maxHeapSize" DisplayName="Maximum Heap Size (MB)" ShortDescription="The maximum heap size, in megabytes, to be used for this VM. If no value is provided for this property, the default property value from the configuration is used; if no value is specified anywhere, no maxium heap size will be set." DefaultValue="256" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="vm.starter.minHeapSize" DisplayName="Minimum Heap Size (MB)" ShortDescription="The minimum heap size, in megabytes, to be used for this VM. If no value is provided for this property, the default property value from the configuration is used; if no value is specified anywhere, no mimium heap size will be set." DefaultValue="256" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="vm.socketPort" DisplayName="Socket Port" ShortDescription="The port number for the process when socket communications are being used " DefaultValue="31000" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="vm.minPort" DisplayName="Min Port Number" ShortDescription="Min port number" DefaultValue="0" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="vm.timetolive" DisplayName="Socket Worker Thread Time-To-Live (ms)" ShortDescription="Time-to-live (in milliseconds) for threads used to do work on client requests." DefaultValue="30000" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="vm.maxThreads" DisplayName="Max Threads" ShortDescription="Maximum socket listener threads." DefaultValue="64" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="vm.inputBufferSize" DisplayName="Socket Input BufferSize" ShortDescription="The size of socket buffer used when reading." DefaultValue="102400" IsRequired="true" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="vm.outputBufferSize" DisplayName="Socket Output BufferSize" ShortDescription="The size of the socket buffer used when writing." DefaultValue="102400" IsRequired="true" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- </ComponentType>
- <ComponentType Name="Text File Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="DateResultFormats" DisplayName="Date Result Formats" ShortDescription="" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClass" DisplayName="Connector Class" ShortDescription="" DefaultValue="com.metamatrix.connector.text.TextConnector" IsRequired="true" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="DescriptorFile" DisplayName="Text File Descriptor" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="DateResultFormatsDelimiter" DisplayName="Date Result Formats Delimiter" ShortDescription="" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClassPath" DisplayName="Class Path" DefaultValue="extensionjar:textconn.jar" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- </ComponentType>
- <ComponentType Name="Loopback Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="WaitTime" DisplayName="Max Random Wait Time" DefaultValue="0" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="RowCount" DisplayName="Rows Per Query" DefaultValue="1" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="CapabilitiesClass" DisplayName="Capabilities Class" DefaultValue="" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClass" DisplayName="Connector Class" ShortDescription="" DefaultValue="com.metamatrix.connector.loopback.LoopbackConnector" IsRequired="true" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClassPath" DisplayName="Class Path" DefaultValue="extensionjar:loopbackconn.jar;extensionjar:jdbcconn.jar" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- </ComponentType>
- <ComponentType Name="Product" ComponentTypeCode="0" Deployable="false" Deprecated="false" Monitorable="false" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" />
- <ComponentType Name="ResourceType" ComponentTypeCode="0" Deployable="false" Deprecated="false" Monitorable="false" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" />
- <ComponentType Name="Miscellaneous Resource Type" ComponentTypeCode="4" Deployable="false" Deprecated="false" Monitorable="false" SuperComponentType="ResourceType" ParentComponentType="" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" />
- <ComponentType Name="AppServerPoolType" ComponentTypeCode="4" Deployable="false" Deprecated="false" Monitorable="false" SuperComponentType="ResourceType" ParentComponentType="" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="pooling.resource.pool.class.name" DisplayName="Name of Class that manages a specific Pool" ShortDescription="The class name for the implementation of the Connection Pool" DefaultValue="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="pooling.resource.adapter.class.name" DisplayName="Connection Adapter Class Name" ShortDescription="The class name for the implementation of the Connection Adapter" DefaultValue="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- </ComponentType>
- <ComponentType Name="ResourcePoolType" ComponentTypeCode="4" Deployable="false" Deprecated="false" Monitorable="false" SuperComponentType="ResourceType" ParentComponentType="" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="pooling.resource.pool.minimum.size" DisplayName="Min Pool Size" ShortDescription="The minimum number of connections in the pool" DefaultValue="1" IsRequired="true" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="pooling.resource.pool.maximum.size" DisplayName="Max Pool Size" ShortDescription="The maximum number of connections in the pool" DefaultValue="5" IsRequired="true" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="pooling.resource.pool.shrink.period" DisplayName="Shrink Period" ShortDescription="The interval at which the pool will try to remove unneeded connections" DefaultValue="300000" IsRequired="true" PropertyType="Long" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="pooling.resource.pool.allow.shrinking" DisplayName="Enable Shrinking" ShortDescription="Controls if shrinking is performed on the pool" DefaultValue="true" IsRequired="true" PropertyType="Boolean" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="pooling.resource.pool.shrink.increment" DisplayName="Shrink Increment" ShortDescription="Indicates the maximum number of connections that will be removed at one time" DefaultValue="0" IsRequired="true" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="pooling.resource.pool.liveandused.time" DisplayName="Live and Unused Time" ShortDescription="The interval for which a connection has not been used and should be considered for removal" DefaultValue="600000" IsRequired="true" PropertyType="Long" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="pooling.resource.pool.wait.time" DisplayName="Connection Wait Time" ShortDescription="Indicates how long a request for a connection will wait before timing out" DefaultValue="30000" IsRequired="true" PropertyType="Long" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="pooling.resource.extend.maximum.pool.size.mode" DisplayName="Enable Extend Mode" ShortDescription="Enables the connection pool size to grow beyond the maximum pool size setting" DefaultValue="true" IsRequired="true" PropertyType="Boolean" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="pooling.resource.extend.maximum.pool.size.percent" DisplayName="Extend Pool Percent" ShortDescription="The percentage the connection pool will grow beyond the maximum pool size" DefaultValue="100" IsRequired="true" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="pooling.resource.pool.class.name" DisplayName="Connection Pool Class Name" ShortDescription="The class name for the implementation of the Connection Pool" DefaultValue="com.metamatrix.common.pooling.impl.BasicResourcePool" IsRequired="true" PropertyType="String" IsExpert="true" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="pooling.resource.adapter.class.name" DisplayName="Connection Adapter Class Name" ShortDescription="The class name for the implementation of the Connection Adapter" DefaultValue="com.metamatrix.common.pooling.jdbc.JDBCConnectionResourceAdapter" IsRequired="true" PropertyType="String" IsExpert="true" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- </ComponentType>
- <ComponentType Name="JDBC Resource Type" ComponentTypeCode="4" Deployable="false" Deprecated="false" Monitorable="false" SuperComponentType="ResourcePoolType" ParentComponentType="" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.common.pooling.jdbc.Driver" DisplayName="Database Driver" ShortDescription="JDBC Driver" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.common.pooling.jdbc.Protocol" DisplayName="Database Protocol" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.common.pooling.jdbc.User" DisplayName="Database User Name" ShortDescription="User Name" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.common.pooling.jdbc.Database" DisplayName="Database URL" ShortDescription="Database URL" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.common.pooling.jdbc.Password" DisplayName="Database Password" ShortDescription="Database Password" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="true" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.common.pooling.jdbc.autocommit" DisplayName="Autocommit" ShortDescription="Set connection autocommit" IsRequired="true" PropertyType="Boolean" DefaultValue="false" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="sqlTracing" DisplayName="SQL Tracing" ShortDescription="Set sql tracing on" DefaultValue="false" IsRequired="true" PropertyType="Boolean" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- </ComponentType>
- <ComponentType Name="Host" ComponentTypeCode="0" Deployable="true" Deprecated="false" Monitorable="false" ParentComponentType="Configuration" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="hostControllerPortNumber" DisplayName="HostController Port Number" ShortDescription="The host controller port number" DefaultValue="15001" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.installationDir" DisplayName="Installation Directory" ShortDescription="The phyiscal location of the MetaMatrix installation" DefaultValue="" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.log.dir" DisplayName="Log Directory" ShortDescription="The phyiscal location of the Host log files" DefaultValue="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.data.dir" DisplayName="Data Directory" ShortDescription="The phyiscal location of the internal MetaMatrix dynamic data" DefaultValue="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.system.dir" DisplayName="System Directory" ShortDescription="The System directory is where files are shared across all hosts in this installation" DefaultValue="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.host.dir" DisplayName="Host Directory" ShortDescription="The Host directory is where host specific files are located." DefaultValue="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
+ <ComponentType Name="QueryService" ComponentTypeCode="1" Deployable="true" Deprecated="false" Monitorable="true" SuperComponentType="Service" ParentComponentType="Integration Server" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup">
+ </ComponentType>
+ <ComponentType Name="Configuration" ComponentTypeCode="0" Deployable="true" Deprecated="false" Monitorable="false" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup">
+ </ComponentType>
+ <!--
+ *************************************************************************************
+ Connector Type (This section gets filled by build process at kit building time)
+ *************************************************************************************
+ -->
+ <ComponentType Name="Connector" ComponentTypeCode="2" Deployable="false" Deprecated="false" Monitorable="true" SuperComponentType="Service" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" LastChangedDate="2008-10-31T10:26:19.916-06:00" CreatedBy="ConfigurationStartup" CreationDate="2008-10-31T10:26:19.916-06:00">
+ <PropertyDefinition Name="SourceConnectionTestInterval" DisplayName="Data Source Test Connect Interval (seconds)" ShortDescription="How often (in seconds) to create test connections to the underlying datasource to see if it is available." DefaultValue="600" IsRequired="true" PropertyType="Integer" IsExpert="true" />
+ <PropertyDefinition Name="ConnectorClassPath" DisplayName="Class Path" ShortDescription="" />
+ <PropertyDefinition Name="ConnectorTypeClassPath" DisplayName="Connector Type Class Path" ShortDescription="Connector Type classpath (defined by system)" IsExpert="true" IsModifiable="false" />
+ <PropertyDefinition Name="UsePostDelegation" DisplayName="Use Separate Classloader" ShortDescription="Set to true to indicate that the connector classpath and connector type classpath entries should be loaded by a connector specific post-delegation class loader." PropertyType="Boolean" IsRequired="true" IsExpert="true" DefaultValue="false"/>
+ <PropertyDefinition Name="ExceptionOnMaxRows" DisplayName="Exception on Exceeding Max Rows" ShortDescription="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" DefaultValue="true" IsRequired="true" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="metamatrix.service.essentialservice" DisplayName="Essential Service" ShortDescription="Indicates if the service is essential to operation of the Integration Server" DefaultValue="false" IsRequired="true" PropertyType="Boolean" IsExpert="true" IsModifiable="false" />
+ <PropertyDefinition Name="ServiceMonitoringEnabled" DisplayName="Data Source Monitoring Enabled" ShortDescription="Whether to monitor the underlying data source to see if it is available." DefaultValue="true" IsRequired="true" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="Immutable" DisplayName="Is Immutable" ShortDescription="True if the source never changes." DefaultValue="false" IsRequired="true" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="ConnectorMaxConnections" DisplayName="Maximum Concurrent Connections" ShortDescription="" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" />
+ <PropertyDefinition Name="ConnectorClass" DisplayName="Connector Class" ShortDescription="" IsRequired="true" IsExpert="true" IsModifiable="false" />
+ <PropertyDefinition Name="ServiceClassName" DisplayName="Service Class Name" ShortDescription="" DefaultValue="com.metamatrix.server.connector.service.ConnectorService" IsRequired="true" IsModifiable="false" />
+ <PropertyDefinition Name="MaxResultRows" DisplayName="Maximum Result Rows" ShortDescription="" DefaultValue="10000" IsRequired="true" PropertyType="Integer" IsExpert="true" />
+ <PropertyDefinition Name="SynchWorkers" DisplayName="Synchronous Workers" ShortDescription="Whether worker threads will be bound to connections. Asynch connectors should set this value to false." DefaultValue="true" IsRequired="true" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="ResultSetCacheEnabled" DisplayName="ResultSet Cache Enabled" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
+ <PropertyDefinition Name="ResultSetCacheMaxSize" DisplayName="ResultSet Cache Maximum Size (megabytes)" ShortDescription="" DefaultValue="20" PropertyType="Integer" IsExpert="true" />
+ <PropertyDefinition Name="ResultSetCacheMaxAge" DisplayName="ResultSet Cache Maximum Age (milliseconds)" ShortDescription="" DefaultValue="3600000" PropertyType="Long" IsExpert="true" />
+ <PropertyDefinition Name="ResultSetCacheScope" DisplayName="ResultSet Cache Scope" ShortDescription="" DefaultValue="vdb" IsExpert="true">
+ <AllowedValue>vdb</AllowedValue>
+ <AllowedValue>session</AllowedValue>
+ </PropertyDefinition>
+ <PropertyDefinition Name="IsXA" DisplayName="Is XA" ShortDescription="Set to true if this is an XA Connector" DefaultValue="false" IsRequired="true" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
+ <PropertyDefinition Name="ConnectionPoolEnabled" DisplayName="Connection Pool Enabled" ShortDescription="Enable the use of connection pooling with this connector." DefaultValue="true" IsRequired="true" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
+ <PropertyDefinition Name="UseCredentialMap" DisplayName="Requires Credential Map" ShortDescription="Set to true if this connector requires credentials to be passed via a credential map." DefaultValue="false" IsRequired="true" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
+ <PropertyDefinition Name="AdminConnectionsAllowed" DisplayName="Admin Connections Allowed" ShortDescription="Whether admin connections without an execution context are allowed." DefaultValue="true" IsRequired="true" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
+ <PropertyDefinition Name="com.metamatrix.data.pool.max_connections_for_each_id" DisplayName="Pool Maximum Connections for Each ID" ShortDescription="Set the maximum number of connections for each connector ID for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
+ <PropertyDefinition Name="com.metamatrix.data.pool.live_and_unused_time" DisplayName="Pool Connection Idle Time (seconds)" ShortDescription="Set the idle time of the connection before it should be closed if pool shrinking is enabled" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
+ <PropertyDefinition Name="com.metamatrix.data.pool.wait_for_source_time" DisplayName="Pool Connection Waiting Time (milliseconds)" ShortDescription="Set the time to wait if the connection is not available" DefaultValue="120000" PropertyType="Integer" IsExpert="true" IsMasked="false" />
+ <PropertyDefinition Name="com.metamatrix.data.pool.cleaning_interval" DisplayName="Pool cleaning Interval (seconds)" ShortDescription="Set the interval to cleaning the pool" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
+ <PropertyDefinition Name="com.metamatrix.data.pool.enable_shrinking" DisplayName="Enable Pool Shrinking" ShortDescription="Set whether to enable the pool shrinking" DefaultValue="false" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
+ <PropertyDefinition Name="supportsCompareCriteriaEquals" DisplayName="supportsCompareCriteriaEquals" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsCompareCriteriaOrdered" DisplayName="supportsCompareCriteriaOrdered" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsInCriteria" DisplayName="supportsInCriteria" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="getMaxInCriteriaSize" DisplayName="getMaxInCriteriaSize" ShortDescription="" PropertyType="Integer" IsExpert="true" />
+ <PropertyDefinition Name="supportsIsNullCriteria" DisplayName="supportsIsNullCriteria" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsLikeCriteria" DisplayName="supportsLikeCriteria" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsLikeCriteriaEscapeCharacter" DisplayName="supportsLikeCriteriaEscapeCharacter" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsNotCriteria" DisplayName="supportsNotCriteria" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsOrCriteria" DisplayName="supportsOrCriteria" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsBetweenCriteria" DisplayName="supportsBetweenCriteria" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsSelectDistinct" DisplayName="supportsSelectDistinct" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsSelectExpression" DisplayName="supportsSelectExpression" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsInnerJoins" DisplayName="supportsInnerJoins" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsAliasedGroup" DisplayName="supportsAliasedGroup" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsSelfJoins" DisplayName="supportsSelfJoins" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsOuterJoins" DisplayName="supportsOuterJoins" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsFullOuterJoins" DisplayName="supportsFullOuterJoins" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="getMaxFromGroups" DisplayName="getMaxFromGroups" ShortDescription="" PropertyType="Integer" IsExpert="true" />
+ <PropertyDefinition Name="getSupportedJoinCriteria" DisplayName="getSupportedJoinCriteria" ShortDescription="" PropertyType="String" IsExpert="true" >
+ <AllowedValue>ANY</AllowedValue>
+ <AllowedValue>THETA</AllowedValue>
+ <AllowedValue>EQUI</AllowedValue>
+ <AllowedValue>KEY</AllowedValue>
+ </PropertyDefinition>
+ <PropertyDefinition Name="supportsOrderBy" DisplayName="supportsOrderBy" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsGroupBy" DisplayName="supportsGroupBy" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsFunctionsInGroupBy" DisplayName="supportsFunctionsInGroupBy" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsHaving" DisplayName="supportsHaving" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsAggregatesSum" DisplayName="supportsAggregatesSum" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsAggregatesAvg" DisplayName="supportsAggregatesAvg" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsAggregatesMin" DisplayName="supportsAggregatesMin" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsAggregatesMax" DisplayName="supportsAggregatesMax" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsAggregatesCount" DisplayName="supportsAggregatesCount" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsAggregatesCountStar" DisplayName="supportsAggregatesCountStar" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsAggregatesDistinct" DisplayName="supportsAggregatesDistinct" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsInCriteriaSubquery" DisplayName="supportsInCriteriaSubquery" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsExistsCriteria" DisplayName="supportsExistsCriteria" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsQuantifiedCompareCriteriaSome" DisplayName="supportsQuantifiedCompareCriteriaSome" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsQuantifiedCompareCriteriaAll" DisplayName="supportsQuantifiedCompareCriteriaAll" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsScalarSubqueries" DisplayName="supportsScalarSubqueries" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsCorrelatedSubqueries" DisplayName="supportsCorrelatedSubqueries" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsCaseExpressions" DisplayName="supportsCaseExpressions" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsSearchedCaseExpressions" DisplayName="supportsSearchedCaseExpressions" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="getSupportedFunctions" DisplayName="getSupportedFunctions" ShortDescription="" PropertyType="string" IsExpert="true" />
+ <PropertyDefinition Name="supportsInlineViews" DisplayName="supportsInlineViews" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsSetQueryOrderBy" DisplayName="supportsSetQueryOrderBy" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsUnions" DisplayName="supportsUnions" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsIntersect" DisplayName="supportsIntersect" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsExcept" DisplayName="supportsExcept" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="requiresCriteria" DisplayName="requiresCriteria" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="useAnsiJoin" DisplayName="useAnsiJoin" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsBatchedUpdates" DisplayName="supportsBatchedUpdates" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsBulkUpdate" DisplayName="supportsBulkUpdate" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsInsertWithQueryExpression" DisplayName="supportsInsertWithQueryExpression" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsRowLimit" DisplayName="supportsRowLimit" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="supportsRowOffset" DisplayName="supportsRowOffset" ShortDescription="" PropertyType="Boolean" IsExpert="true" />
+ </ComponentType>
+ <ComponentType Name="JDBC Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" LastChangedDate="2008-10-31T10:26:19.952-06:00" CreatedBy="ConfigurationStartup" CreationDate="2008-10-31T10:26:19.952-06:00">
+ <PropertyDefinition Name="User" DisplayName="User Name" ShortDescription="" />
+ <PropertyDefinition Name="Password" DisplayName="Password" ShortDescription="" IsMasked="true" />
+ <PropertyDefinition Name="ConnectorTypeClassPath" DisplayName="Connector Type Class Path" ShortDescription="Connector Type classpath (defined by system, do not modify)" DefaultValue="extensionjar:connector_patch.jar;extensionjar:connector-jdbc-6.1.0-SNAPSHOT.jar;" IsModifiable="false" />
+ <PropertyDefinition Name="UseBindVariables" DisplayName="Use prepared statements and bind variables" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="ExtensionCapabilityClass" DisplayName="Extension Capability Class" ShortDescription="" IsExpert="true" />
+ <PropertyDefinition Name="ConnectorClass" DisplayName="Connector Class" ShortDescription="" DefaultValue="org.teiid.connector.jdbc.JDBCConnector" IsRequired="true" IsExpert="true" />
+ <PropertyDefinition Name="DatabaseTimeZone" DisplayName="Database time zone" ShortDescription="Time zone of the database, if different than Integration Server" IsExpert="true" />
+ <PropertyDefinition Name="TransactionIsolationLevel" DisplayName="Transaction Isolation Level" ShortDescription="Set the data source transaction isolation level" IsExpert="true" >
+ <AllowedValue>TRANSACTION_READ_UNCOMMITTED</AllowedValue>
+ <AllowedValue>TRANSACTION_READ_COMMITTED</AllowedValue>
+ <AllowedValue>TRANSACTION_SERIALIZABLE</AllowedValue>
+ <AllowedValue>TRANSACTION_NONE</AllowedValue>
+ </PropertyDefinition>
+ <PropertyDefinition Name="ExtensionTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="org.teiid.connector.jdbc.translator.Translator" IsExpert="true" />
+ <PropertyDefinition Name="ConnectionSource" DisplayName="Connection Source Class" ShortDescription="Driver, DataSource, or XADataSource class name" IsRequired="true" />
+ <PropertyDefinition Name="TrimStrings" DisplayName="Trim string flag" ShortDescription="Right Trim fixed character types returned as Strings" DefaultValue="false" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="UseCommentsInSourceQuery" DisplayName="Use informational comments in Source Queries" ShortDescription="This will embed /*comment*/ style comment with session/request id in source SQL query for informational purposes" DefaultValue="false" PropertyType="Boolean" IsExpert="true"/>
+ </ComponentType>
+ <ComponentType Name="Oracle Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="JDBC Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup">
+ <PropertyDefinition Name="ConnectionSource" DisplayName="Connection Source Class" ShortDescription="Driver, DataSource, or XADataSource class name" DefaultValue="oracle.jdbc.driver.OracleDriver" IsRequired="true" />
+ <PropertyDefinition Name="URL" DisplayName="JDBC URL" ShortDescription="" DefaultValue="jdbc:oracle:thin:@<host>:1521:<sid>" IsRequired="true" PropertyType="String" IsMasked="false" />
+ <PropertyDefinition Name="ExtensionTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="org.teiid.connector.jdbc.oracle.OracleSQLTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
+ </ComponentType>
+ <ComponentType Name="Oracle XA Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="JDBC Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup">
+ <PropertyDefinition Name="ConnectionSource" DisplayName="Connection Source Class" ShortDescription="Driver, DataSource, or XADataSource class name" DefaultValue="oracle.jdbc.xa.client.OracleXADataSource" IsRequired="true" />
+ <PropertyDefinition Name="URL" DisplayName="JDBC URL" ShortDescription="" DefaultValue="jdbc:oracle:thin:@<host>:1521:<sid>" IsRequired="true" PropertyType="String" IsMasked="false" />
+ <PropertyDefinition Name="ExtensionTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="org.teiid.connector.jdbc.oracle.OracleSQLTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
+ <PropertyDefinition Name="IsXA" DisplayName="Is XA" ShortDescription="Is XA" DefaultValue="true" IsRequired="true" PropertyType="Boolean" />
+ </ComponentType>
+ <ComponentType Name="DB2 Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="JDBC Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup">
+ <PropertyDefinition Name="ConnectionSource" DisplayName="Connection Source Class" ShortDescription="Driver, DataSource, or XADataSource class name" DefaultValue="com.ibm.db2.jcc.DB2Driver" IsRequired="true" />
+ <PropertyDefinition Name="URL" DisplayName="JDBC URL" ShortDescription="" DefaultValue="jdbc:db2://<server>:50000/<db-name>" IsRequired="true" PropertyType="String" IsMasked="false" />
+ <PropertyDefinition Name="ExtensionTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="org.teiid.connector.jdbc.db2.DB2SQLTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
+ </ComponentType>
+ <ComponentType Name="DB2 XA Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="JDBC Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup">
+ <PropertyDefinition Name="ConnectionSource" DisplayName="Connection Source Class" ShortDescription="Driver, DataSource, or XADataSource class name" DefaultValue="com.ibm.db2.jcc.DB2XADataSource" IsRequired="true" />
+ <PropertyDefinition Name="PortNumber" DisplayName="Port Number" DefaultValue="50000" ShortDescription="" IsRequired="true" PropertyType="Integer" IsMasked="false" />
+ <PropertyDefinition Name="ServerName" DisplayName="Server Name" ShortDescription="" IsRequired="true" PropertyType="String" IsMasked="false" />
+ <PropertyDefinition Name="DatabaseName" DisplayName="Database Name" ShortDescription="" IsRequired="true" PropertyType="String" IsMasked="false" />
+ <PropertyDefinition Name="DriverType" DisplayName="Driver Type" ShortDescription="" DefaultValue="4" IsRequired="true" PropertyType="Integer" IsMasked="false" />
+ <PropertyDefinition Name="ExtensionTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="org.teiid.connector.jdbc.db2.DB2SQLTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
+ <PropertyDefinition Name="IsXA" DisplayName="Is XA" ShortDescription="Is XA" DefaultValue="true" IsRequired="true" PropertyType="Boolean" />
+ </ComponentType>
+ <ComponentType Name="SQL Server Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="JDBC Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup">
+ <PropertyDefinition Name="ConnectionSource" DisplayName="Connection Source Class" ShortDescription="Driver, DataSource, or XADataSource class name" DefaultValue="com.microsoft.sqlserver.jdbc.SQLServerDriver" IsRequired="true" />
+ <PropertyDefinition Name="URL" DisplayName="JDBC URL" ShortDescription="" DefaultValue="jdbc:sqlserver://<host>:1433;databaseName=<db-name>" IsRequired="true" PropertyType="String" IsMasked="false" />
+ <PropertyDefinition Name="ExtensionTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="org.teiid.connector.jdbc.sqlserver.SqlServerSQLTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
+ </ComponentType>
+ <ComponentType Name="SQL Server XA Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="JDBC Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup">
+ <PropertyDefinition Name="ConnectionSource" DisplayName="Connection Source Class" ShortDescription="Driver, DataSource, or XADataSource class name" DefaultValue="com.microsoft.sqlserver.jdbc.SQLServerXADataSource" IsRequired="true" />
+ <PropertyDefinition Name="PortNumber" DisplayName="Port Number" DefaultValue="1433" ShortDescription="" IsRequired="true" PropertyType="Integer" IsMasked="false" />
+ <PropertyDefinition Name="ServerName" DisplayName="Server Name" ShortDescription="" IsRequired="true" PropertyType="String" IsMasked="false" />
+ <PropertyDefinition Name="DatabaseName" DisplayName="Database Name" ShortDescription="" IsRequired="true" PropertyType="String" IsMasked="false" />
+ <PropertyDefinition Name="ExtensionTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="org.teiid.connector.jdbc.sqlserver.SqlServerSQLTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
+ <PropertyDefinition Name="IsXA" DisplayName="Is XA" ShortDescription="Is XA" DefaultValue="true" IsRequired="true" PropertyType="Boolean" />
+ </ComponentType>
+ <ComponentType Name="MySQL JDBC Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="JDBC Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup">
+ <PropertyDefinition Name="ConnectionSource" DisplayName="Connection Source Class" ShortDescription="Driver, DataSource, or XADataSource class name" DefaultValue="com.mysql.jdbc.Driver" IsRequired="true" />
+ <PropertyDefinition Name="URL" DisplayName="JDBC URL" ShortDescription="" DefaultValue="jdbc:mysql://<host>:3306/<databaseName>" IsRequired="true" PropertyType="String" IsMasked="false" />
+ <PropertyDefinition Name="ExtensionTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="org.teiid.connector.jdbc.mysql.MySQLTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
+ </ComponentType>
+ <ComponentType Name="MySQL 5 JDBC Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="JDBC Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup">
+ <PropertyDefinition Name="ConnectionSource" DisplayName="Connection Source Class" ShortDescription="Driver, DataSource, or XADataSource class name" DefaultValue="com.mysql.jdbc.Driver" IsRequired="true" />
+ <PropertyDefinition Name="URL" DisplayName="JDBC URL" ShortDescription="" DefaultValue="jdbc:mysql://<host>:3306/<databaseName>" IsRequired="true" PropertyType="String" IsMasked="false" />
+ <PropertyDefinition Name="ExtensionTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="org.teiid.connector.jdbc.mysql.MySQL5Translator" PropertyType="String" IsExpert="true" IsMasked="false" />
+ </ComponentType>
+ <ComponentType Name="MySQL JDBC XA Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="JDBC Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup">
+ <PropertyDefinition Name="ConnectionSource" DisplayName="Connection Source Class" ShortDescription="Driver, DataSource, or XADataSource class name" DefaultValue="com.mysql.jdbc.jdbc2.optional.MysqlXADataSource" IsRequired="true" />
+ <PropertyDefinition Name="PortNumber" DisplayName="Port Number" DefaultValue="3306" ShortDescription="" IsRequired="true" PropertyType="Integer" IsMasked="false" />
+ <PropertyDefinition Name="ServerName" DisplayName="Server Name" ShortDescription="" IsRequired="true" PropertyType="String" IsMasked="false" />
+ <PropertyDefinition Name="DatabaseName" DisplayName="Database Name" ShortDescription="" IsRequired="true" PropertyType="String" IsMasked="false" />
+ <PropertyDefinition Name="ExtensionTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="org.teiid.connector.jdbc.mysql.MySQLTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
+ <PropertyDefinition Name="IsXA" DisplayName="Is XA" ShortDescription="Is XA" DefaultValue="true" IsRequired="true" PropertyType="Boolean" />
+ </ComponentType>
+ <ComponentType Name="MySQL 5 JDBC XA Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="JDBC Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup">
+ <PropertyDefinition Name="ConnectionSource" DisplayName="Connection Source Class" ShortDescription="Driver, DataSource, or XADataSource class name" DefaultValue="com.mysql.jdbc.jdbc2.optional.MysqlXADataSource" IsRequired="true" />
+ <PropertyDefinition Name="PortNumber" DisplayName="Port Number" DefaultValue="3306" ShortDescription="" IsRequired="true" PropertyType="Integer" IsMasked="false" />
+ <PropertyDefinition Name="ServerName" DisplayName="Server Name" ShortDescription="" IsRequired="true" PropertyType="String" IsMasked="false" />
+ <PropertyDefinition Name="DatabaseName" DisplayName="Database Name" ShortDescription="" IsRequired="true" PropertyType="String" IsMasked="false" />
+ <PropertyDefinition Name="ExtensionTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="org.teiid.connector.jdbc.mysql.MySQL5Translator" PropertyType="String" IsExpert="true" IsMasked="false" />
+ <PropertyDefinition Name="IsXA" DisplayName="Is XA" ShortDescription="Is XA" DefaultValue="true" IsRequired="true" PropertyType="Boolean" />
+ </ComponentType>
+ <ComponentType Name="PostgreSQL JDBC Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="JDBC Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup">
+ <PropertyDefinition Name="ConnectionSource" DisplayName="Connection Source Class" ShortDescription="Driver, DataSource, or XADataSource class name" DefaultValue="org.postgresql.Driver" IsRequired="true" />
+ <PropertyDefinition Name="URL" DisplayName="JDBC URL" ShortDescription="" DefaultValue="jdbc:postgresql://<host>:5432/<databaseName>" IsRequired="true" PropertyType="String" IsMasked="false" />
+ <PropertyDefinition Name="ExtensionTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="org.teiid.connector.jdbc.postgresql.PostgreSQLTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
+ </ComponentType>
+ <ComponentType Name="PostgreSQL XA JDBC Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="JDBC Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup">
+ <PropertyDefinition Name="ConnectionSource" DisplayName="Connection Source Class" ShortDescription="Driver, DataSource, or XADataSource class name" DefaultValue="org.postgresql.xa.PGXADataSource" IsRequired="true" />
+ <PropertyDefinition Name="PortNumber" DisplayName="Port Number" DefaultValue="5432" ShortDescription="" IsRequired="true" PropertyType="Integer" IsMasked="false" />
+ <PropertyDefinition Name="ServerName" DisplayName="Server Name" ShortDescription="" IsRequired="true" PropertyType="String" IsMasked="false" />
+ <PropertyDefinition Name="DatabaseName" DisplayName="Database Name" ShortDescription="" IsRequired="true" PropertyType="String" IsMasked="false" />
+ <PropertyDefinition Name="ExtensionTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="org.teiid.connector.jdbc.postgresql.PostgreSQLTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
+ <PropertyDefinition Name="IsXA" DisplayName="Is XA" ShortDescription="Is XA" DefaultValue="true" IsRequired="true" PropertyType="Boolean" />
+ </ComponentType>
+ <ComponentType Name="Apache Derby Embedded Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="JDBC Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup">
+ <PropertyDefinition Name="ConnectionSource" DisplayName="Connection Source Class" ShortDescription="Driver, DataSource, or XADataSource class name" DefaultValue="org.apache.derby.jdbc.EmbeddedDriver" IsRequired="true" />
+ <PropertyDefinition Name="URL" DisplayName="JDBC URL" ShortDescription="" DefaultValue="jdbc:derby:<databaseName>" IsRequired="true" PropertyType="String" IsMasked="false" />
+ <PropertyDefinition Name="ExtensionTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="org.teiid.connector.jdbc.derby.DerbySQLTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
+ </ComponentType>
+ <ComponentType Name="Apache Derby Network Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="JDBC Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup">
+ <PropertyDefinition Name="ConnectionSource" DisplayName="Connection Source Class" ShortDescription="Driver, DataSource, or XADataSource class name" DefaultValue="org.apache.derby.jdbc.ClientDriver" IsRequired="true" />
+ <PropertyDefinition Name="URL" DisplayName="JDBC URL" ShortDescription="" DefaultValue="jdbc:derby://localhost:1527/<path/to/db>" IsRequired="true" PropertyType="String" IsMasked="false" />
+ <PropertyDefinition Name="ExtensionTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="org.teiid.connector.jdbc.derby.DerbySQLTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
+ </ComponentType>
+ <ComponentType Name="Teiid 6 JDBC Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="JDBC Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup">
+ <PropertyDefinition Name="ConnectionSource" DisplayName="Connection Source Class" ShortDescription="Driver, DataSource, or XADataSource class name" DefaultValue="com.metamatrix.jdbc.MMDriver" IsRequired="true" />
+ <PropertyDefinition Name="URL" DisplayName="JDBC URL" ShortDescription="" DefaultValue="jdbc:metamatrix:<vdbName>@mm://<host>:<port>" IsRequired="true" />
+ </ComponentType>
+ <ComponentType Name="JDBC ODBC Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="JDBC Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup">
+ <PropertyDefinition Name="ConnectionSource" DisplayName="Connection Source Class" ShortDescription="Driver, DataSource, or XADataSource class name" DefaultValue="sun.jdbc.odbc.JdbcOdbcDriver" IsRequired="true" />
+ <PropertyDefinition Name="URL" DisplayName="JDBC URL" ShortDescription="" DefaultValue="jdbc:odbc:<data-source-name>[;UID=<xxx> ;PWD=<xxx>]" IsRequired="true" />
+ </ComponentType>
+ <ComponentType Name="MS Access Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="JDBC Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup">
+ <PropertyDefinition Name="ConnectionSource" DisplayName="Connection Source Class" ShortDescription="Driver, DataSource, or XADataSource class name" DefaultValue="sun.jdbc.odbc.JdbcOdbcDriver" IsRequired="true" />
+ <PropertyDefinition Name="URL" DisplayName="JDBC URL" ShortDescription="" DefaultValue="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ=<data-source-name>" IsRequired="true" />
+ <PropertyDefinition Name="ExtensionTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="org.teiid.connector.jdbc.access.AccessSQLTranslator" IsExpert="true" />
+ </ComponentType>
+ <ComponentType Name="MS Excel Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="JDBC Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" LastChangedDate="2006-02-08T11:02:36.029-06:00" CreatedBy="ConfigurationStartup" CreationDate="2006-02-08T11:02:36.029-06:00">
+ <PropertyDefinition Name="ConnectionSource" DisplayName="Connection Source Class" ShortDescription="Driver, DataSource, or XADataSource class name" DefaultValue="sun.jdbc.odbc.JdbcOdbcDriver" IsRequired="true" />
+ <PropertyDefinition Name="URL" DisplayName="JDBC URL" ShortDescription="" DefaultValue="jdbc:odbc:Driver={MicroSoft Excel Driver (*.xls)};DBQ=<filePathToExcelFile>" IsRequired="true" />
+ </ComponentType>
+ <!--
+ <ComponentType Name="Datadirect DB2 8 Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="JDBC Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" LastChangedDate="2008-10-31T10:26:19.928-06:00" CreatedBy="ConfigurationStartup" CreationDate="2008-10-31T10:26:19.928-06:00">
+ <PropertyDefinition Name="ConnectionSource" DisplayName="Connection Source Class" ShortDescription="Driver, DataSource, or XADataSource class name" DefaultValue="com.metamatrix.jdbcx.db2.DB2DataSource" IsRequired="true" />
+ <PropertyDefinition Name="URL" DisplayName="JDBC URL" ShortDescription="" DefaultValue="jdbc:mmx:db2://<host>:50000;DatabaseName=<databasename>;CollectionID=<collectionid>;PackageName=<packagename>" IsRequired="true" />
+ <PropertyDefinition Name="ExtensionTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="org.teiid.connector.jdbc.db2.DB2SQLTranslator" IsExpert="true" />
+ <PropertyDefinition Name="IsXA" DisplayName="Is XA" ShortDescription="Is XA" DefaultValue="true" IsRequired="true" PropertyType="Boolean" />
+ </ComponentType>
+ <ComponentType Name="Datadirect Oracle 9 Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="JDBC Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" LastChangedDate="2008-10-31T10:26:19.923-06:00" CreatedBy="ConfigurationStartup" CreationDate="2008-10-31T10:26:19.923-06:00">
+ <PropertyDefinition Name="ConnectionSource" DisplayName="Connection Source Class" ShortDescription="Driver, DataSource, or XADataSource class name" DefaultValue="com.metamatrix.jdbcx.oracle.OracleDataSource" IsRequired="true" />
+ <PropertyDefinition Name="URL" DisplayName="JDBC URL" ShortDescription="" DefaultValue="jdbc:mmx:oracle://<host>:1521;SID=<sid>" IsRequired="true" />
+ <PropertyDefinition Name="ExtensionTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="org.teiid.connector.jdbc.oracle.OracleSQLTranslator" IsExpert="true" />
+ <PropertyDefinition Name="IsXA" DisplayName="Is XA" ShortDescription="Is XA" DefaultValue="true" IsRequired="true" PropertyType="Boolean" />
+ </ComponentType>
+ <ComponentType Name="Datadirect SQL Server 2003 Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="JDBC Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" LastChangedDate="2008-10-31T10:26:19.935-06:00" CreatedBy="ConfigurationStartup" CreationDate="2008-10-31T10:26:19.935-06:00">
+ <PropertyDefinition Name="ConnectionSource" DisplayName="Connection Source Class" ShortDescription="Driver, DataSource, or XADataSource class name" DefaultValue="com.metamatrix.jdbcx.sqlserver.SQLServerDataSource" IsRequired="true" />
+ <PropertyDefinition Name="URL" DisplayName="JDBC URL" ShortDescription="" DefaultValue="jdbc:mmx:sqlserver://<host>:1433;DatabaseName=<databasename>" IsRequired="true" />
+ <PropertyDefinition Name="ExtensionTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="org.teiid.connector.jdbc.sqlserver.SqlServerSQLTranslator" IsExpert="true" />
+ <PropertyDefinition Name="IsXA" DisplayName="Is XA" ShortDescription="Is XA" DefaultValue="true" IsRequired="true" PropertyType="Boolean" />
+ </ComponentType>
+ <ComponentType Name="Datadirect Sybase 12 Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="JDBC Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" LastChangedDate="2008-10-31T10:26:19.930-06:00" CreatedBy="ConfigurationStartup" CreationDate="2008-10-31T10:26:19.930-06:00">
+ <PropertyDefinition Name="ConnectionSource" DisplayName="Connection Source Class" ShortDescription="Driver, DataSource, or XADataSource class name" DefaultValue="com.metamatrix.jdbcx.sybase.SybaseDataSource" IsRequired="true" />
+ <PropertyDefinition Name="URL" DisplayName="JDBC URL" ShortDescription="" DefaultValue="jdbc:mmx:sybase://<host>:5000;DatabaseName=<databasename>" IsRequired="true" />
+ <PropertyDefinition Name="ExtensionTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="org.teiid.connector.jdbc.sybase.SybaseSQLTranslator" IsExpert="true" />
+ <PropertyDefinition Name="IsXA" DisplayName="Is XA" ShortDescription="Is XA" DefaultValue="true" IsRequired="true" PropertyType="Boolean" />
+ <PropertyDefinition Name="SetCriteriaBatchSize" DisplayName="Max Values in IN Predicate" ShortDescription="Max number of values in an IN Predicate. Must be >= 0." DefaultValue="250" PropertyType="Integer" IsExpert="true" />
+ </ComponentType>
+ --> <ComponentType Name="LDAP Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" LastChangedDate="2008-10-31T10:26:19.946-06:00" CreatedBy="ConfigurationStartup" CreationDate="2008-10-31T10:26:19.946-06:00">
+ <PropertyDefinition Name="ConnectorTypeClassPath" DisplayName="Connector Type Class Path" ShortDescription="Connector Type classpath (defined by system, do not modify)" DefaultValue="extensionjar:connector_patch.jar;extensionjar:connector-ldap-6.1.0-SNAPSHOT.jar;" IsModifiable="false" />
+ <PropertyDefinition Name="SearchDefaultBaseDN" DisplayName="Default Search Base DN" ShortDescription="Default Base DN for LDAP Searches" IsExpert="true" />
+ <PropertyDefinition Name="LdapAdminUserDN" DisplayName="Ldap Admin User DN" ShortDescription="User DN for the LDAP admin account." DefaultValue="cn=<>,ou=<>,dc=<>" IsRequired="true" />
+ <PropertyDefinition Name="Standard" DisplayName="Standard Type" ShortDescription="Standard Built-in Connector Type" DefaultValue="true" PropertyType="Boolean" IsExpert="true" IsModifiable="false" />
+ <PropertyDefinition Name="ConnectorClass" DisplayName="Connector Class" ShortDescription="" DefaultValue="com.metamatrix.connector.ldap.LDAPConnector" IsRequired="true" IsExpert="true" />
+ <PropertyDefinition Name="LdapAdminUserPassword" DisplayName="Ldap Admin Password" ShortDescription="Password of the LDAP admin user account." IsRequired="true" IsMasked="true" />
+ <PropertyDefinition Name="SearchDefaultScope" DisplayName="Default Search Scope" ShortDescription="Default Scope for LDAP Searches" DefaultValue="SUBTREE_SCOPE" IsRequired="true">
+ <AllowedValue>OBJECT_SCOPE</AllowedValue>
+ <AllowedValue>ONELEVEL_SCOPE</AllowedValue>
+ <AllowedValue>SUBTREE_SCOPE</AllowedValue>
+ </PropertyDefinition>
+ <PropertyDefinition Name="RestrictToObjectClass" DisplayName="Restrict Searches To Named Object Class" ShortDescription="Restrict Searches to objectClass named in the Name field for a table" DefaultValue="false" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="LdapTxnTimeoutInMillis" DisplayName="Ldap Transaction Timeout (ms)" ShortDescription="Timeout value for LDAP searches. Defaults to TCP timeout value." />
+ <PropertyDefinition Name="LdapUrl" DisplayName="Ldap URL" ShortDescription="Ldap URL of the server, including port number." DefaultValue="ldap://<ldapServer>:<389>" IsRequired="true" />
+ </ComponentType>
+ <ComponentType Name="Loopback Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" LastChangedDate="2008-10-31T10:26:19.945-06:00" CreatedBy="ConfigurationStartup" CreationDate="2008-10-31T10:26:19.945-06:00">
+ <PropertyDefinition Name="ConnectorTypeClassPath" DisplayName="Connector Type Class Path" ShortDescription="Connector Type classpath (defined by system, do not modify)" DefaultValue="extensionjar:connector_patch.jar;extensionjar:connector-loopback-6.1.0-SNAPSHOT.jar;" IsModifiable="false" />
+ <PropertyDefinition Name="CapabilitiesClass" DisplayName="Capabilities Class" ShortDescription="" DefaultValue="com.metamatrix.connector.loopback.LoopbackCapabilities" IsRequired="true" IsExpert="true" />
+ <PropertyDefinition Name="WaitTime" DisplayName="Max Random Wait Time" ShortDescription="" DefaultValue="0" IsRequired="true" IsExpert="true" />
+ <PropertyDefinition Name="ConnectorClass" DisplayName="Connector Class" ShortDescription="" DefaultValue="com.metamatrix.connector.loopback.LoopbackConnector" IsRequired="true" IsExpert="true" />
+ <PropertyDefinition Name="RowCount" DisplayName="Rows Per Query" ShortDescription="" DefaultValue="1" IsRequired="true" IsExpert="true" />
+ <PropertyDefinition Name="Standard" DisplayName="Standard Type" ShortDescription="Standard Built-in Connector Type" DefaultValue="true" PropertyType="Boolean" IsExpert="true" IsModifiable="false" />
+ </ComponentType>
+ <ComponentType Name="Salesforce Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="Connector" ParentComponentType="Connectors" LastChangedDate="2008-10-31T10:26:19.916-06:00" CreationDate="2008-10-31T10:26:19.916-06:00">
+ <PropertyDefinition Name="ConnectorTypeClassPath" DisplayName="Connector Type Class Path" ShortDescription="Connector Type classpath (defined by system, do not modify)" DefaultValue="extensionjar:commons-codec-1.2.jar;extensionjar:commons-discovery-0.2.jar;extensionjar:commons-httpclient-3.0.1.jar;extensionjar:xmlsec-1.3.0.jar;extensionjar:axis-1.3.jar;extensionjar:axis-jaxrpc-1.3.jar;extensionjar:axis-saaj-1.2.jar;extensionjar:axis-schema-1.3.jar;extensionjar:commons-discovery-0.2.jar;extensionjar:commons-logging-1.1.jar;extensionjar:jms-1.1.jar;extensionjar:servlet-api-2.5.jar;extensionjar:jaxen-1.1.1.jar;extensionjar:jdom-1.0.jar;extensionjar:log4j-1.2.8.jar;extensionjar:opensaml-1.1b.jar;extensionjar:salesforce-api-6.1.0-SNAPSHOT.jar;extensionjar:wsdl4j-1.5.1.jar;extensionjar:wss4j-1.5.0.jar;extensionjar:xalan-2.7.0.jar;extensionjar:xml-apis-1.0.b2.jar" IsModifiable="false" />
+ <PropertyDefinition Name="UsePostDelegation" DisplayName="Use Separate Classloader" ShortDescription="Set to true to indicate that the connector classpath and connector type classpath entries should be loaded by a connector specific post-delegation class loader." PropertyType="Boolean" IsRequired="true" IsExpert="true" DefaultValue="true"/>
+ <PropertyDefinition Name="username" DisplayName="User Name" ShortDescription="Name value for Salesforce authentication" DefaultValue="" IsRequired="true" />
+ <PropertyDefinition Name="ConnectorStateClass" DisplayName="Connector State Class" ShortDescription="" DefaultValue="com.metamatrix.connector.salesforce.ConnectorState" IsRequired="true" IsExpert="true" />
+ <PropertyDefinition Name="ConnectorClass" DisplayName="Connector Class" ShortDescription="" DefaultValue="com.metamatrix.connector.salesforce.Connector" IsRequired="true" IsExpert="true" />
+ <PropertyDefinition Name="password" DisplayName="Password" ShortDescription="Password value for Salesforce authentication" DefaultValue="" IsRequired="true" IsMasked="true" />
+ <PropertyDefinition Name="URL" DisplayName="Salesforce URL" ShortDescription="URL for connecting to Salesforce" DefaultValue="" IsExpert="true" />
+ <PropertyDefinition Name="ConnectorCapabilities" DisplayName="Connector Capabilities Class" ShortDescription="The class to use to provide the Connector Capabilities" DefaultValue="com.metamatrix.connector.salesforce.SalesforceCapabilities" IsExpert="true" />
+ </ComponentType>
+ <ComponentType Name="Text File Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" LastChangedDate="2008-10-31T10:26:19.945-06:00" CreatedBy="ConfigurationStartup" CreationDate="2008-10-31T10:26:19.945-06:00">
+ <PropertyDefinition Name="ConnectorTypeClassPath" DisplayName="Connector Type Class Path" ShortDescription="Connector Type classpath (defined by system, do not modify)" DefaultValue="extensionjar:connector_patch.jar;extensionjar:connector-text-6.1.0-SNAPSHOT.jar;" IsModifiable="false" />
+ <PropertyDefinition Name="PartialStartupAllowed" DisplayName="Partial Startup Allowed" ShortDescription="" DefaultValue="true" IsRequired="true" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="Standard" DisplayName="Standard Type" ShortDescription="Standard Built-in Connector Type" DefaultValue="true" PropertyType="Boolean" IsExpert="true" IsModifiable="false" />
+ <PropertyDefinition Name="DescriptorFile" DisplayName="Text File Descriptor" ShortDescription="" IsRequired="true" />
+ <PropertyDefinition Name="ConnectorClass" DisplayName="Connector Class" ShortDescription="" DefaultValue="com.metamatrix.connector.text.TextConnector" IsRequired="true" IsExpert="true" />
+ <PropertyDefinition Name="EnforceColumnCount" DisplayName="Enforce Column Count" ShortDescription="This forces the number of columns in text file to match what was modeled" DefaultValue="false" PropertyType="Boolean" />
+ <PropertyDefinition Name="DateResultFormatsDelimiter" DisplayName="Date Result Formats Delimiter" ShortDescription="" IsExpert="true" />
+ <PropertyDefinition Name="DateResultFormats" DisplayName="Date Result Formats" ShortDescription="" IsExpert="true" />
+ </ComponentType>
+ <ComponentType Name="XML Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="Connector" ParentComponentType="Connectors" LastChangedDate="2008-10-31T10:26:19.917-06:00" CreationDate="2008-10-31T10:26:19.917-06:00">
+ <PropertyDefinition Name="ConnectorTypeClassPath" DisplayName="Connector Type Class Path" ShortDescription="Connector Type classpath (defined by system, do not modify)" DefaultValue="extensionjar:commons-codec-1.2.jar;extensionjar:commons-discovery-0.2.jar;extensionjar:commons-httpclient-3.0.1.jar;extensionjar:xmlsec-1.3.0.jar;extensionjar:axis-1.3.jar;extensionjar:axis-jaxrpc-1.3.jar;extensionjar:axis-saaj-1.2.jar;extensionjar:axis-schema-1.3.jar;extensionjar:commons-discovery-0.2.jar;extensionjar:commons-logging-1.1.jar;extensionjar:jms-1.1.jar;extensionjar:servlet-api-2.5.jar;extensionjar:jaxen-1.1.1.jar;extensionjar:jdom-1.0.jar;extensionjar:log4j-1.2.8.jar;extensionjar:opensaml-1.1b.jar;extensionjar:wsdl4j-1.5.1.jar;extensionjar:wss4j-1.5.0.jar;extensionjar:xalan-2.7.0.jar;extensionjar:xml-apis-1.0.b2.jar" IsModifiable="false"/>
+ <PropertyDefinition Name="UsePostDelegation" DisplayName="Use Separate Classloader" ShortDescription="Set to true to indicate that the connector classpath and connector type classpath entries should be loaded by a connector specific post-delegation class loader." PropertyType="Boolean" IsRequired="true" IsExpert="true" DefaultValue="true"/>
+ </ComponentType>
- </ComponentType>
- <ComponentType Name="JDBC Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="MaxSQLLength" DisplayName="Max SQL String Length" ShortDescription="" DefaultValue="16384" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="User" DisplayName="User Name" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="Driver" DisplayName="Driver Class" ShortDescription="" DefaultValue="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClass" DisplayName="Connector Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.JDBCConnector" IsRequired="true" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="URL" DisplayName="JDBC URL" ShortDescription="" DefaultValue="jdbc:<protocol>:<url>" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="Password" DisplayName="Password" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="true" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="SetCriteriaBatchSize" DisplayName="SetCriteria Batch Size" ShortDescription="Max number of values in a SetCriteria before batching into multiple queries. A value <= 0 indicates batching is OFF." DefaultValue="0" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="TrimStrings" DisplayName="Trim string flag" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="TransactionIsolationLevel" DisplayName="Transaction Isolation Level" ShortDescription="Set the data source transaction isolation level" DefaultValue="" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClassPath" DisplayName="Class Path" ShortDescription="" DefaultValue="extensionjar:jdbcconn.jar" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.max_connections" DisplayName="Pool Maximum Connections" ShortDescription="Set the maximum number of connections for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.max_connections_for_each_id" DisplayName="Pool Maximum Connections for Each ID" ShortDescription="Set the maximum number of connections for each connector ID for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.live_and_unused_time" DisplayName="Pool Connection Idle Time" ShortDescription="Set the idle time of the connection before it should be closed if pool shrinking is enabled" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.wait_for_source_time" DisplayName="Pool Connection Waiting Time" ShortDescription="Set the time to wait if the connection is not available" DefaultValue="120000" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.cleaning_interval" DisplayName="Pool cleaning Interval" ShortDescription="Set the interval to cleaning the pool" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.enable_shrinking" DisplayName="Enable Pool Shrinking" ShortDescription="Set whether to enable the pool shrinking" DefaultValue="true" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionCapabilityClass" DisplayName="Extension Capability Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.JDBCCapabilities" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionSQLTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.extension.impl.BasicSQLTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionResultsTranslationClass" DisplayName="Extension Results Translation Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.extension.impl.BasicResultsTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionConnectionFactoryClass" DisplayName="Extension Connection Factory Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.JDBCSingleIdentityConnectionFactory" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="DatabaseTimeZone" DisplayName="Database time zone" ShortDescription="Time zone of the database, if different than MetaMatrix Server" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- </ComponentType>
- <ComponentType Name="JDBC ODBC Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="MaxSQLLength" DisplayName="Max SQL String Length" ShortDescription="" DefaultValue="16384" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="User" DisplayName="User Name" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="Driver" DisplayName="Driver Class" ShortDescription="" DefaultValue="sun.jdbc.odbc.JdbcOdbcDriver" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClass" DisplayName="Connector Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.JDBCConnector" IsRequired="true" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="URL" DisplayName="JDBC URL" ShortDescription="" DefaultValue="jdbc:odbc:<data-source-name>[<attribute-name>=<attribute-value>]*" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="Password" DisplayName="Password" ShortDescription="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="true" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="SetCriteriaBatchSize" DisplayName="SetCriteria Batch Size" ShortDescription="Max number of values in a SetCriteria before batching into multiple queries. A value <= 0 indicates batching is OFF." DefaultValue="0" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="TrimStrings" DisplayName="Trim string flag" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="TransactionIsolationLevel" DisplayName="Transaction Isolation Level" ShortDescription="Set the data source transaction isolation level" DefaultValue="" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClassPath" DisplayName="Class Path" ShortDescription="" DefaultValue="extensionjar:jdbcconn.jar" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.max_connections" DisplayName="Pool Maximum Connections" ShortDescription="Set the maximum number of connections for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.max_connections_for_each_id" DisplayName="Pool Maximum Connections for Each ID" ShortDescription="Set the maximum number of connections for each connector ID for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.live_and_unused_time" DisplayName="Pool Connection Idle Time" ShortDescription="Set the idle time of the connection before it should be closed if pool shrinking is enabled" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.wait_for_source_time" DisplayName="Pool Connection Waiting Time" ShortDescription="Set the time to wait if the connection is not available" DefaultValue="120000" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.cleaning_interval" DisplayName="Pool cleaning Interval" ShortDescription="Set the interval to cleaning the pool" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.enable_shrinking" DisplayName="Enable Pool Shrinking" ShortDescription="Set whether to enable the pool shrinking" DefaultValue="true" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionCapabilityClass" DisplayName="Extension Capability Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.JDBCCapabilities" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionSQLTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.extension.impl.BasicSQLTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionResultsTranslationClass" DisplayName="Extension Results Translation Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.extension.impl.BasicResultsTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionConnectionFactoryClass" DisplayName="Extension Connection Factory Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.JDBCSingleIdentityConnectionFactory" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="DatabaseTimeZone" DisplayName="Database time zone" ShortDescription="Time zone of the database, if different than MetaMatrix Server" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- </ComponentType>
- <ComponentType Name="MS Access Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="Connector" ParentComponentType="Connectors" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="MaxSQLLength" DisplayName="Max SQL String Length" ShortDescription="" DefaultValue="16384" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="User" DisplayName="User Name" ShortDescription="" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="Driver" DisplayName="Driver Class" ShortDescription="" DefaultValue="sun.jdbc.odbc.JdbcOdbcDriver" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClass" DisplayName="Connector Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.JDBCConnector" IsRequired="true" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="URL" DisplayName="JDBC URL" ShortDescription="" DefaultValue="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ=<data-source-name>" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="Password" DisplayName="Password" ShortDescription="" PropertyType="String" IsExpert="false" IsMasked="true" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="SetCriteriaBatchSize" DisplayName="SetCriteria Batch Size" ShortDescription="Max number of values in a SetCriteria before batching into multiple queries. A value <= 0 indicates batching is OFF." DefaultValue="0" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="TrimStrings" DisplayName="Trim string flag" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="TransactionIsolationLevel" DisplayName="Transaction Isolation Level" ShortDescription="Set the data source transaction isolation level" DefaultValue="" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ConnectorClassPath" DisplayName="Class Path" ShortDescription="" DefaultValue="extensionjar:jdbcconn.jar" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.max_connections" DisplayName="Pool Maximum Connections" ShortDescription="Set the maximum number of connections for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.max_connections_for_each_id" DisplayName="Pool Maximum Connections for Each ID" ShortDescription="Set the maximum number of connections for each connector ID for the connection pool" DefaultValue="20" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.live_and_unused_time" DisplayName="Pool Connection Idle Time" ShortDescription="Set the idle time of the connection before it should be closed if pool shrinking is enabled" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.wait_for_source_time" DisplayName="Pool Connection Waiting Time" ShortDescription="Set the time to wait if the connection is not available" DefaultValue="120000" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.cleaning_interval" DisplayName="Pool cleaning Interval" ShortDescription="Set the interval to cleaning the pool" DefaultValue="60" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="com.metamatrix.data.pool.enable_shrinking" DisplayName="Enable Pool Shrinking" ShortDescription="Set whether to enable the pool shrinking" DefaultValue="true" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionCapabilityClass" DisplayName="Extension Capability Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.access.AccessCapabilities" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionSQLTranslationClass" DisplayName="Extension SQL Translation Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.access.AccessSQLTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionResultsTranslationClass" DisplayName="Extension Results Translation Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.extension.impl.BasicResultsTranslator" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ExtensionConnectionFactoryClass" DisplayName="Extension Connection Factory Class" ShortDescription="" DefaultValue="com.metamatrix.connector.jdbc.JDBCSingleIdentityConnectionFactory" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="DatabaseTimeZone" DisplayName="Database time zone" ShortDescription="Time zone of the database, if different than MetaMatrix Server" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- </ComponentType>
- <ComponentType Name="SessionService" ComponentTypeCode="1" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="Service" ParentComponentType="Platform" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.session.connection.Retries" DisplayName="Session proxy maximum retries" ShortDescription="" DefaultValue="4" IsRequired="true" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ServiceClassName" DisplayName="Service Class Name" ShortDescription="" DefaultValue="com.metamatrix.platform.security.session.service.SessionServiceImpl" IsRequired="true" PropertyType="String" IsExpert="false" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.session.terminationHandlers" DisplayName="List of TerminationHandler Class Names" ShortDescription="" DefaultValue="com.metamatrix.server.util.DataServerSessionTerminationHandler" IsRequired="true" PropertyType="String" IsExpert="false" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.service.essentialservice" DisplayName="Essential Service" ShortDescription="Indicates if the service is essential to operation of the MetaMatrix Server" DefaultValue="false" IsRequired="true" PropertyType="Boolean" IsExpert="true" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.session.oldsessionreaper.activityinterval" DisplayName="Session cleanup thread activity interval (hours)" ShortDescription="The amount of time between old non-active session cleanup (in hours)" DefaultValue="1" PropertyType="Long" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.session.oldsessionreaper.oldsessionTTL" DisplayName="Non-active session Time To Live (hours)" ShortDescription="The amount of time old non-active sessions are allowed to remain in the session table (in hours)" DefaultValue="10" PropertyType="Long" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="CachePolicyFactory" DisplayName="Session Cache Policy Factory" ShortDescription="" DefaultValue="com.metamatrix.common.cache.mru.MRUObjectCachePolicyFactory" PropertyType="String" IsExpert="true" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="CacheMaximumAge" DisplayName="Session Cache Object Maximum Age" ShortDescription="The duration of a session in the session cache (in milliseconds)" DefaultValue="86400000" PropertyType="Long" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="CacheHelper" DisplayName="Session Cache Helper" ShortDescription="" DefaultValue="com.metamatrix.common.cache.mru.AgeMRUCacheHelper" PropertyType="String" IsExpert="true" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="CacheMaximumCapacity" DisplayName="Session Cache Maximum Capacity" ShortDescription="" DefaultValue="5000" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="CacheEventPolicyName" DisplayName="Session Cache Event Policy Name" ShortDescription="" DefaultValue="com.metamatrix.platform.security.session.service.SessionCacheEventPolicy" IsRequired="true" PropertyType="String" IsExpert="true" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="CacheEventFactoryName" DisplayName="Session Cache Event Factory Name" ShortDescription="" DefaultValue="com.metamatrix.platform.security.session.service.SessionCacheEventFactory" IsRequired="true" PropertyType="String" IsExpert="true" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="CacheResourceRecaptureMode" DisplayName="Session Cache Resource Recapture Mode" ShortDescription="" DefaultValue="SeparateThread" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="CacheResourceRecaptureInterval" DisplayName="Session Cache Resource Recapture Interval" ShortDescription="" DefaultValue="" PropertyType="Integer" IsExpert="true" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="CacheResourceRecaptureFraction" DisplayName="Session Cache Resource Recapture Fraction" ShortDescription="" DefaultValue="" PropertyType="Float" IsExpert="true" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="CacheStatsLogInterval" DisplayName="Session Cache Statistics Log Interval" ShortDescription="" DefaultValue="" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="CacheResourceRecaptureIntervalIncrement" DisplayName="Session Cache Resource Recapture Interval Increment" ShortDescription="" DefaultValue="" PropertyType="Float" IsExpert="true" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="CacheResourceRecaptureIntervalRate" DisplayName="Session Cache Resource Recapture Interval Rate" ShortDescription="" DefaultValue="" PropertyType="Integer" IsExpert="true" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="CacheResourceRecaptureIntervalCeiling" DisplayName="Session Cache Resource Recapture Interval Ceiling" ShortDescription="" DefaultValue="" PropertyType="Integer" IsExpert="true" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="CacheResourceRecaptureIntervalDecrement" DisplayName="Session Cache Resource Recapture Interval Decrement" ShortDescription="" DefaultValue="" PropertyType="Float" IsExpert="true" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.session.clientMonitor.enabled" DisplayName="Client Monitoring Enabled [Requires Bounce]" ShortDescription="Should the server monitor client session activity? [Requires a bounce or restart of the server to take effect.]" DefaultValue="true" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.session.clientMonitor.PingInterval" DisplayName="Client Session Ping Interval (Mins) [Requires Bounce]" ShortDescription="The interval of time, in minutes, the client session is scheduled to ping the server to indicate this session is still valid. When the session is validated, its TTL perior starts over. [Requires a bounce or restart of the server to take effect.]" DefaultValue="5" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.session.clientMonitor.ActivityInterval" DisplayName="Client Monitoring Activity (Mins) [Requires Bounce]" ShortDescription="How often client sessions will be monintored to check for expired sessions and invalidate them. [Requires a bounce or restart of the server to take effect.]" DefaultValue="3" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.session.clientMonitor.ExpireInterval" DisplayName="Client Session TTL (Mins) [Requires Bounce]" ShortDescription="The client session time-to-live period, in minutes, indicates how long a client session will remain valid without being validated with a ping. If no ping is recieved from the session within this period, it's session will become invalid and considered expired. [Requires a bounce or restart of the server to take effect.]" DefaultValue="5" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- </ComponentType>
- <ComponentType Name="QueryService" ComponentTypeCode="1" Deployable="true" Deprecated="false" Monitorable="true" SuperComponentType="Service" ParentComponentType="MetaMatrix Server" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ProcessPoolMaxThreads" DisplayName="Process Pool Maximum Thread Count" ShortDescription="" DefaultValue="64" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="MaxFetchSize" DisplayName="Maximum Fetch Size" ShortDescription="" DefaultValue="20000" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.service.essentialservice" DisplayName="Essential Service" ShortDescription="Indicates if the service is essential to operation of the MetaMatrix Server" DefaultValue="false" IsRequired="true" PropertyType="Boolean" IsExpert="true" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="MinFetchSize" DisplayName="Minimum Fetch Size" ShortDescription="" DefaultValue="100" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ProcessPoolThreadTTL" DisplayName="Process Pool Thread Time-To-Live" ShortDescription="" DefaultValue="120000" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ServiceClassName" DisplayName="Service Class Name" ShortDescription="" DefaultValue="com.metamatrix.server.query.service.QueryService" IsRequired="true" PropertyType="String" IsExpert="true" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ProcessorTimeslice" DisplayName="Query Processor Timeslice" ShortDescription="" DefaultValue="2000" IsRequired="true" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="MaxCodeTables" DisplayName="Max Code Tables" ShortDescription="Max Number of Code Tables" DefaultValue="50" IsRequired="true" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="MaxCodeTableRecords" DisplayName="Max Code Table Records" ShortDescription="Max Number of Records Per Code Table" DefaultValue="10000" IsRequired="true" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheEnabled" DisplayName="ResultSet Cache Enabled" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheMaxSize" DisplayName="ResultSet Cache Maximum Size" ShortDescription="" DefaultValue="0" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheMaxAge" DisplayName="ResultSet Cache Maximum Age" ShortDescription="" DefaultValue="0" PropertyType="Long" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ResultSetCacheScope" DisplayName="ResultSet Cache Scope" ShortDescription="" DefaultValue="vdb" PropertyType="String" IsExpert="false" IsMasked="false" >
- <AllowedValue>vdb</AllowedValue>
- <AllowedValue>session</AllowedValue>
- </PropertyDefinition>
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="MaxPlanCacheSize" DisplayName="Maximum Plan Cache" ShortDescription="" DefaultValue="100" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- </ComponentType>
- <ComponentType Name="AuthorizationService" ComponentTypeCode="1" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="Service" ParentComponentType="Platform" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ServiceClassName" DisplayName="Service Class Name" ShortDescription="" DefaultValue="com.metamatrix.platform.security.authorization.service.AuthorizationServiceImpl" IsRequired="true" PropertyType="String" IsExpert="false" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.service.essentialservice" DisplayName="Essential Service" ShortDescription="Indicates if the service is essential to operation of the MetaMatrix Server" DefaultValue="false" IsRequired="true" PropertyType="Boolean" IsExpert="true" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.authorization.connection.MaximumAge" DisplayName="Maximum connection time" ShortDescription="" DefaultValue="600000" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.authorization.connection.Retries" DisplayName="Authorization proxy maximum retries" ShortDescription="" DefaultValue="4" IsRequired="true" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.authorization.connection.MaximumConcurrentReaders" DisplayName="Maximum allowed concurrent users" ShortDescription="" DefaultValue="1" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- </ComponentType>
- <ComponentType Name="DirectoryService" ComponentTypeCode="1" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="Service" ParentComponentType="MetaBase Server" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.metadata.directory.connection.MaximumAge" DisplayName="Maximum Age" ShortDescription="" DefaultValue="600000" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.service.essentialservice" DisplayName="Essential Service" ShortDescription="Indicates if the service is essential to operation of the MetaMatrix Server" DefaultValue="false" IsRequired="true" PropertyType="Boolean" IsExpert="true" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.metadata.directory.connection.MaximumConcurrentReaders" DisplayName="Maximum Concurrent Readers" ShortDescription="" DefaultValue="1" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ServiceClassName" DisplayName="Service Class Name" ShortDescription="" DefaultValue="com.metamatrix.metabase.internal.platform.DirectoryServiceImpl" IsRequired="true" PropertyType="String" IsExpert="false" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- </ComponentType>
- <ComponentType Name="ODBCService" ComponentTypeCode="1" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="Service" ParentComponentType="MetaMatrix Server" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.service.essentialservice" DisplayName="Essential Service" ShortDescription="Indicates if the service is essential to operation of the MetaMatrix Server" DefaultValue="false" IsRequired="true" PropertyType="Boolean" IsExpert="true" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ServiceClassName" DisplayName="Service Class Name" ShortDescription="" DefaultValue="com.metamatrix.odbc.ODBCServiceImpl" IsRequired="true" PropertyType="String" IsExpert="false" IsHidden="true" IsMasked="false" IsModifiable="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="Openrdaloc" DisplayName="MMODBC.ini file location" ShortDescription="The location the MMODBC.ini should be found" DefaultValue="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" IsModifiable="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ServerKey" DisplayName="ODBC Server License File" ShortDescription="The location the ODBC Server license should be found" DefaultValue="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" IsModifiable="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="WaitForProcessEnd" DisplayName="Wait for Process End (milliseconds)" ShortDescription="This property controls how long the Service implementation will wait to see if the ODBC Server will terminate in an error condition." DefaultValue="5000" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- </ComponentType>
- <ComponentType Name="MembershipService" ComponentTypeCode="1" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="Service" ParentComponentType="Platform" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.membership.connection.LDAPDomain.MaximumAge" DisplayName="Maximum LDAP connection time" ShortDescription="" DefaultValue="600000" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.membership.connection.JDBCInternalDomain.UserHome" DisplayName="Account location" ShortDescription="" DefaultValue="UserView" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.membership.connection.LDAPDomain.LDAP_GroupAttribute" DisplayName="LDAP group attribute name" ShortDescription="" DefaultValue="cn" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.membership.connection.LDAPDomain.LDAP_GroupByHierarchical" DisplayName="Group groups hierarchically (by dn)" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.membership.connection.LDAPDomain.LDAP_UserAttribute" DisplayName="LDAP user attribute name" ShortDescription="" DefaultValue="uid" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.membership.connection.JDBCInternalDomain.Factory" DisplayName="Membership Service Internal JDBC SPI Factory" ShortDescription="" DefaultValue="com.metamatrix.platform.security.membership.spi.jdbc.JDBCMembershipSourceFactory" IsRequired="true" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.membership.connection.LDAPDomain.MaximumConcurrentReaders" DisplayName="Maximum allowed LDAP concurrent users" ShortDescription="" DefaultValue="10" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.membership.connection.JDBCInternalDomain.MaximumConcurrentReaders" DisplayName="Maximum allowed JDBC concurrent users" ShortDescription="" DefaultValue="1" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.membership.connection.LDAPDomain.UserHome" DisplayName="User account location (dn)" ShortDescription="" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.membership.connection.LDAPDomain.GroupHome" DisplayName="LDAP group location (dn)" ShortDescription="" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.membership.connection.LDAPDomain.LDAP_GroupByAttribute" DisplayName="Group groups by attribute (by uniquemember attribute)" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.membership.jdbcdomain" DisplayName="JDBC Domain" ShortDescription="" DefaultValue="JDBCInternalDomain" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.membership.connection.LDAPDomain.Password" DisplayName="External LDAP Membership data store principal's password" ShortDescription="" PropertyType="String" IsExpert="false" IsMasked="true" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.membership.connection.LDAPDomain.Principal" DisplayName="External LDAP Membership data store principal (dn)" ShortDescription="" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ServiceClassName" DisplayName="Service Class Name" ShortDescription="" DefaultValue="com.metamatrix.platform.security.membership.service.MembershipServiceImpl" IsRequired="true" PropertyType="String" IsExpert="false" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.membership.connection.LDAPDomain.Database" DisplayName="External LDAP Membership URL" ShortDescription="" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.membership.connection.LDAPDomain.SupportsUpdates" DisplayName="LDAP Domain Supports Updates" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsExpert="true" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.membership.connection.LDAPDomain.Driver" DisplayName="External LDAP Connection Driver" ShortDescription="" DefaultValue="com.sun.jndi.ldap.LdapCtxFactory" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.service.essentialservice" DisplayName="Essential Service" ShortDescription="Indicates if the service is essential to operation of the MetaMatrix Server" DefaultValue="false" IsRequired="true" PropertyType="Boolean" IsExpert="true" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.membership.connection.LDAPDomain.Retries" DisplayName="External LDAP Membership proxy maximum retries" ShortDescription="" DefaultValue="4" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.membership.connection.LDAPDomain.LDAP_MembershipAttribute" DisplayName="LDAP group membership attribute name" ShortDescription="" DefaultValue="uniquemember" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.membership.connection.JDBCInternalDomain.SupportsUpdates" DisplayName="JDBC Domain Supports Updates" ShortDescription="" DefaultValue="false" IsRequired="true" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.membership.connection.JDBCInternalDomain.MaximumAge" DisplayName="Maximum JDBC connection time" ShortDescription="" DefaultValue="600000" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.membership.connection.JDBCInternalDomain.Retries" DisplayName="Membership proxy maximum retries" ShortDescription="" DefaultValue="4" IsRequired="true" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.membership.DomainOrder" DisplayName="Membership Domain Order" ShortDescription="" DefaultValue="JDBCInternalDomain" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.membership.connection.LDAPDomain.Factory" DisplayName="Membership Service External LDAP SPI Factory" ShortDescription="" DefaultValue="com.metamatrix.platform.security.membership.spi.ldap.LDAPMembershipSourceFactory" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="security.membership.connection.JDBCInternalDomain.GroupHome" DisplayName="JDBC group location" ShortDescription="" DefaultValue="GroupView" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- </ComponentType>
- <ComponentType Name="Configuration" ComponentTypeCode="0" Deployable="true" Deprecated="false" Monitorable="false" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.firewall.address" DisplayName="Firewall IP/Hostname Address" ShortDescription="The IP address or Hostname for the firewall to redirect to MetaMatrix Server" DefaultValue="" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.firewall.rmiport" DisplayName="Firewall RMI Port Address" ShortDescription="The RMI port used for firewall access to the MetaMatrix Server" DefaultValue="" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.firewall.address.enabled" DisplayName="Firewall enabled indicator" ShortDescription="Enable when a firewall is used to redirect to the MetaMatrix Service" DefaultValue="false" IsRequired="true" PropertyType="Boolean" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.server.metadata.systemURL" DisplayName="System VDB URL" ShortDescription="The URL identifies the System VDB" DefaultValue="extensionjar:System.vdb" IsRequired="true" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.server.cacheConnectorClassLoaders" DisplayName="Cache ClassLoaders for Connectors" ShortDescription="Determine whether to cache ClassLoaders in memory, for connectors that have the same classpath" DefaultValue="true" IsRequired="true" PropertyType="Boolean" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.server.serviceMonitorInterval" DisplayName="Connector Data Source Monitoring Interval (seconds)" ShortDescription="How often to ask connectors whether the underlying data source is available. Note that underlying connector implementation may not ping the actual data source every time it is asked, for performance reasons." DefaultValue="60" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.session.max.connections" DisplayName="Max Number of Sessions" ShortDescription="Max Number of Sessions allowed to connect to MetaMatrix Server (reject any connection requests beyond that limit, default would be no limit) [Requires Bounce]" DefaultValue="0" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.session.time.limit" DisplayName="Max Session Time Limit (minutes)" ShortDescription="Max connection time limit as a system property, forcibly terminate any connection that exceeds that limit, default would be no limit. [Requires Bounce]" DefaultValue="0" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.session.sessionMonitor.ActivityInterval" DisplayName="Session Monitoring Activity (Mins)" ShortDescription="How often sessions will be monintored to check for over-limit sessions and invalidate them. [Requires a bounce or restart of the server to take effect.]" DefaultValue="5" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.server.extensionTypesToCache" DisplayName="Types of Extension Modules to Cache" ShortDescription="Types of Extension Module files to cache in memory. Separate by commas. Allowed values: (Configuration Model,Function Definition,JAR File,VDB File)" DefaultValue="JAR File" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.server.streamingBatchSize" DisplayName="Streaming Batch Size" ShortDescription="The clob, blob and XML streaming batch size in Kb" DefaultValue="100" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.log.jdbcMaxContextLength" DisplayName="JDBC Logging Destination maximum length for contexts" ShortDescription="The maximum length of all the disregarded log contexts in total" DefaultValue="64" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.server.UDFClasspath" DisplayName="User Defined Functions Classpath" ShortDescription="Semicolon-delimited list of URLs to search for User Defined Functions classes in. Extension module URLs are of the form 'extensionjar:jarfilename.jar'" DefaultValue="" IsRequired="true" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.audit.enabled" DisplayName="Auditing Enabled" ShortDescription="Determines whether auditing will be performed" DefaultValue="false" IsRequired="true" PropertyType="Boolean" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.encryption.secure.sockets" DisplayName="Secure Sockets Enabled" ShortDescription="Determines whether the Secure Sockets are enabled, configuration is done from the SSL Resource" DefaultValue="false" IsRequired="true" PropertyType="Boolean" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.encryption.client" DisplayName="Client Side Password Encryption Enabled" ShortDescription="Determines whether the client side jce provider encryption will be performed" DefaultValue="true" IsRequired="true" PropertyType="Boolean" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.encryption.jce.provider" DisplayName="JCE Encryption Provider" ShortDescription="Indicates the jce encryption provider" DefaultValue="org.bouncycastle.jce.provider.BouncyCastleProvider" IsRequired="true" PropertyType="String" IsExpert="false" IsHidden="true" IsMasked="false" IsModifiable="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.audit.jdbcDatabase" DisplayName="JDBC Destination Enabled" ShortDescription="If auditing enabled, then record to the jdbc destination." DefaultValue="false" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.log.console" DisplayName="Send log messages to standard out" ShortDescription="True if the log messages are to be sent to standard out for a VM" DefaultValue="false" IsRequired="true" PropertyType="Boolean" IsExpert="false" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.service.essentialservice" DisplayName="Essential Service" ShortDescription="Indicates if the service is essential to operation of the MetaMatrix Server" DefaultValue="false" IsRequired="true" PropertyType="Boolean" IsExpert="true" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.log.threadTTL" DisplayName="Logging Thread Time-To-Live (TTL)" ShortDescription="The maximum time (in milliseconds) that a thread is allowed to live" DefaultValue="300000" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.log.jdbcMaxExceptionLength" DisplayName="JDBC Logging Destination maximum length for exception text" ShortDescription="The maximum length of the text that is logged as an exception" DefaultValue="4000" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.log" DisplayName="Logging Level" ShortDescription="The level at which logging will occur" DefaultValue="5" IsRequired="true" PropertyType="String" IsExpert="true" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.log.size.limit.kbs" DisplayName="Log File Size Limit (kbs)" ShortDescription="Max. log file size (kbs) at which it will be swapped." DefaultValue="1000" IsRequired="true" PropertyType="String" IsExpert="true" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.log.size.monitor.mins" DisplayName="Log File Monitoring Interval (mins)" ShortDescription="The time interval in minutes the log file size is monitored" DefaultValue="1000" IsRequired="true" PropertyType="String" IsExpert="true" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.log.jdbcDatabase.enabled" DisplayName="Log JDBC Destination Enabled" ShortDescription="If enabled, then log to the jdbc destination." DefaultValue="true" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="vm.starter.maxHeapSize" DisplayName="Default VM Maximum Heap Size (in megabytes)" ShortDescription="The default maximum heap size to be used when starting a VMController. This value may be overridden by each VM; however, if no value is provided for this property or for the corresponding property in the VM configuration, no maximum heap size will be set." DefaultValue="256" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.log.contexts" DisplayName="Logging Contexts to Exclude" ShortDescription="The contexts for log messages that are NOT to be recorded" PropertyType="String" IsExpert="false" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.audit.contexts" DisplayName="Audit Contexts to Exclude" ShortDescription="The contexts for audit messages that are NOT to be recorded" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="vm.starter.command" DisplayName="MetaMatrix VMController Starter Command" ShortDescription="Command that is used to start the VMController" DefaultValue="" IsRequired="true" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.log.consoleFormat" DisplayName="Format class for console log messages" ShortDescription="The name of the class that is used to format the log messages sent to the console" DefaultValue="com.metamatrix.common.log.format.ReadableLogMessageFormat" PropertyType="String" IsExpert="false" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.audit.console" DisplayName="Standard-Out Audit Destination" ShortDescription="True if the audit messages are to be sent to standard out for a VM" DefaultValue="false" PropertyType="Boolean" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.log.maxThreads" DisplayName="Logging Maximum Thread Count" ShortDescription="The maximum number of logging threads allowed" DefaultValue="4" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.authorization.dataaccess.CheckingEnabled" DisplayName="Data Access Authorization Enabled" ShortDescription="Determines whether authorization (Entitlements) will be checked" DefaultValue="false" IsRequired="true" PropertyType="Boolean" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.authorization.metabase.CheckingEnabled" DisplayName="MetaBase Authorization Enabled" ShortDescription="Determines whether MetaBase authorization (Entitlements) will be checked" DefaultValue="false" IsRequired="true" PropertyType="Boolean" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.log.jdbcTable" DisplayName="JDBC Logging Destination table name" ShortDescription="The table the logging information to be written to" DefaultValue="LogEntries" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.audit.threadTTL" DisplayName="Auditing Thread Time-To-Live (TTL)" ShortDescription="The maximum time (in milliseconds) that a auditing thread is allowed to live" DefaultValue="300000" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.audit.jdbcMaxResourceLength" DisplayName="JDBC Context Destination maximum length for audit text" ShortDescription="The maximum length of the resource name used in audit messages. Required if JDBC audit destination is to be used." DefaultValue="4000" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.log.captureSystemOut" DisplayName="Capture standard out to the logs" ShortDescription="True if the standard out is to be captured as log messages" DefaultValue="false" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.log.captureSystemErr" DisplayName="Capture standard error to the logs" ShortDescription="True if the standard error is to be captured as log messages" DefaultValue="false" PropertyType="Boolean" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.audit.fileFormat" DisplayName="File Auditing Destination format class" ShortDescription="Driver class name for the JDBC auditing destination" DefaultValue="com.metamatrix.security.audit.format.DelimitedAuditMessageFormat" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.audit.consoleFormat" DisplayName="Standard-Out Audit Destination format class" ShortDescription="The name of the class that is used to format the audit messages sent to the console" DefaultValue="com.metamatrix.security.audit.format.ReadableAuditMessageFormat" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.audit.maxThreads" DisplayName="Auditing Maximum Thread Count" ShortDescription="The maximum number of auditing threads allowed" DefaultValue="4" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.audit.file" DisplayName="File Auditing Destination filename" ShortDescription="The name of the file that is the audit message destination. If blank or not provided, audit messages are not sent to a file destination" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.audit.jdbcResourceDelim" DisplayName="JDBC Auditing Destination delimiter for resource names" ShortDescription="The delimiter that is used to separate resource names" DefaultValue="," PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.audit.jdbcMaxContextLength" DisplayName="JDBC Auditing Destination maximum length for contexts" ShortDescription="The maximum length of the list of disregarded audit contexts. Required if JDBC audit destination is to be used." DefaultValue="64" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.audit.fileAppend" DisplayName="File Auditing Destination append" ShortDescription="Determines whether or not the audit destination file will be appended or overwritten" DefaultValue="false" IsRequired="true" PropertyType="Boolean" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.deployment.platform" DisplayName="EJB Platform Type" ShortDescription="This property indicates the EJB server platform which the MetaMatrix Server is running on" DefaultValue="" IsRequired="true" PropertyType="String" IsExpert="true" IsHidden="true" IsMasked="false" IsModifiable="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.audit.jdbcTable" DisplayName="JDBC Auditing Destination table name" ShortDescription="The name of the table that auditing messages are to be written to. Required if JDBC audit destination is to be used" DefaultValue="LogEntries" PropertyType="String" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="vm.starter.minHeapSize" DisplayName="Default VM Minimum Heap Size (in megabytes)" ShortDescription="The default minimum heap size to be used when starting a VMController. This value may be overridden by each VM; however, if no value is provided for this property or for the corresponding property in the VM configuration, no minimum heap size will be set." DefaultValue="256" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.log.jdbcMaxLength" DisplayName="JDBC Logging Destination maximum length for log messages" ShortDescription="The maximum length of the text that is logged" DefaultValue="2000" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.log.maxRows" DisplayName="JDBC Logging maximum number of rows returned" ShortDescription="The maximum number of rows returned" DefaultValue="2500" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.buffer.memoryAvailable" DisplayName="Buffer Memory Available" ShortDescription="Amount of memory, in megabytes, to use as buffer management memory in each process." DefaultValue="500" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.buffer.activeMemoryThreshold" DisplayName="Buffer Active Memory Threshold" ShortDescription="The percentage of buffer management memory that serves as a threshold for active memory management." DefaultValue="90" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.buffer.managementInterval" DisplayName="Buffer Management Interval" ShortDescription="The period between checking whether active memory cleanup should occur." DefaultValue="1000" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.buffer.connectorBatchSize" DisplayName="Connector Batch Size" ShortDescription="The size of a batch sent between connector and query service." DefaultValue="1000" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.buffer.processorBatchSize" DisplayName="Processor Batch Size" ShortDescription="The size of a batch sent within the query processor." DefaultValue="500" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.buffer.relative.storageDirectory" DisplayName="Buffer Storage Directory" ShortDescription="The relative path to Host data directory where temporary files are stored." DefaultValue="/buffer" PropertyType="String" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.buffer.maxOpenFiles" DisplayName="Max open storage files" ShortDescription="The maximum number of open file descriptors used by buffer management temp storage." DefaultValue="10" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.buffer.maxFileSize" DisplayName="Max buffer file size (Megs)" ShortDescription="The maximum size (in Megabytes) that a buffer file is allowed to reach before creating spill files." DefaultValue="2048" PropertyType="Integer" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.buffer.logStatsInterval" DisplayName="Buffer Log Stat Interval" ShortDescription="The period between writing buffer management statistics to the log, used primarily for debugging." DefaultValue="0" PropertyType="Integer" IsExpert="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.transaction.log.storeTXN" DisplayName="Enable Transaction Recording" ShortDescription="Determine whether transaction should be recorded" DefaultValue="false" IsRequired="true" PropertyType="Boolean" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.transaction.log.storeMMCMD" DisplayName="Enable MetaMatrix Command Logging" ShortDescription="Determine whether MetaMatrix command information should be recorded" DefaultValue="false" IsRequired="true" PropertyType="Boolean" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.transaction.log.storeSRCCMD" DisplayName="Enable Data Source Command Logging" ShortDescription="Determine whether source command information should be recorded" DefaultValue="false" IsRequired="true" PropertyType="Boolean" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.server.procDebug" DisplayName="Enable Processor Data Debugging" ShortDescription="Determine whether to dump all data batches to the server log when using OPTION DEBUG" DefaultValue="false" IsRequired="true" PropertyType="Boolean" IsExpert="false" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.message.bus.type" DisplayName="Messaging Bus Type" ShortDescription="Indicates the type of message bus protocol to use" DefaultValue="jgroups.message.bus" IsRequired="true" PropertyType="String" IsExpert="true" IsMasked="false" IsModifiable="false" />
- </ComponentTypeDefn>
- </ComponentType>
- <ComponentType Name="ConfigurationService" ComponentTypeCode="1" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="Service" ParentComponentType="Platform" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup">
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="metamatrix.service.essentialservice" DisplayName="Essential Service" ShortDescription="Indicates if the service is essential to operation of the MetaMatrix Server" DefaultValue="false" IsRequired="true" PropertyType="Boolean" IsExpert="true" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- <ComponentTypeDefn Deprecated="false">
- <PropertyDefinition Name="ServiceClassName" DisplayName="Configuration Service Class Name" ShortDescription="" DefaultValue="com.metamatrix.platform.config.service.ConfigurationServiceImpl" IsRequired="true" PropertyType="String" IsExpert="false" IsHidden="true" IsMasked="false" />
- </ComponentTypeDefn>
- </ComponentType>
- <ComponentType Name="DeployedComponent" ComponentTypeCode="0" Deployable="false" Deprecated="false" Monitorable="false" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" />
- </ComponentTypes>
- <SharedResources>
- <Resource Name="WebServices" ComponentType="Miscellaneous Resource Type" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <Properties>
- <Property Name="metamatrix.webserver.host">(webhost.name)</Property>
- <Property Name="metamatrix.webserver.port">(webhost.port)</Property>
- </Properties>
- </Resource>
- <Resource Name="JGroups" ComponentType="Miscellaneous Resource Type" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <Properties>
- <Property Name="udp.multicast_supported">true</Property>
- <Property Name="udp.mcast_messagebus_port">5555</Property>
- <Property Name="udp.mcast_jndi_port">5556</Property>
- <Property Name="udp.mcast_addr">(multicast.port)</Property>
- <Property Name="ping.gossip_host">localhost</Property>
- <Property Name="ping.gossip_port">5555</Property>
- <Property Name="metamatrix.cluster.name">(cluster.name)</Property>
- </Properties>
- </Resource>
- <Resource Name="SSL" ComponentType="Miscellaneous Resource Type" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <Properties>
- <Property Name="com.metamatrix.ssl.keystore.filename">mmdemo.keystore</Property>
- <Property Name="com.metamatrix.ssl.keystore.Password">pDYafqm77aWAxLwWXBbQarXNbxiYijgOqw8RFnfYFEa32JWrGwhnXSLqC/az+vQX9V/03C4K97LmDylEXT7wpKk/wYBKn8eP/t22jbnkYbrmCCB9PSIVLHutzCWleuRViOX+3mMCPmWvYc3QbDEsecWJszwolTwLnP3yasrjynI=</Property>
- <Property Name="com.metamatrix.ssl.keystoretype">JKS</Property>
- <Property Name="com.metamatrix.ssl.protocol">SSLv3</Property>
- <Property Name="com.metamatrix.ssl.keymanagementalgorithm">SunX509</Property>
- </Properties>
- </Resource>
- <Resource Name="XATransactionManager" ComponentType="Miscellaneous Resource Type" LastChangedBy="ConfigurationStartup" CreatedBy="ConfigurationStartup" >
- <Properties>
- <Property Name="metamatrix.xatxnmgr.naming.factory.initial">(xa.contextfactory)</Property>
- <Property Name="metamatrix.xatxnmgr.log_base_dir">(xa.logdir)</Property>
- <Property Name="metamatrix.xatxnmgr.client_demarcation">true</Property>
- <Property Name="metamatrix.xatxnmgr.trust_client_tm">false</Property>
- <Property Name="metamatrix.xatxnmgr.serial_jta_transactions">false</Property>
- <Property Name="metamatrix.xatxnmgr.checkpoint_interval">500</Property>
- <Property Name="metamatrix.xatxnmgr.max_actives">50</Property>
- <Property Name="metamatrix.xatxnmgr.max_timeout">120000</Property>
- </Properties>
- </Resource>
- </SharedResources>
-</ConfigurationDocument>
+ <ComponentType Name="XML File Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="XML Connector" ParentComponentType="Connectors" LastChangedDate="2008-10-31T10:26:19.917-06:00" CreationDate="2008-10-31T10:26:19.917-06:00">
+ <PropertyDefinition Name="CharacterEncodingScheme" DisplayName="File Encoding Used" ShortDescription="A character-encoding scheme is a mapping between a coded character set and a set of octet (eight-bit byte) sequences. Some samples are UTF-8,ISO-8859-1,UTF-16)" DefaultValue="ISO-8859-1" />
+ <PropertyDefinition Name="ConnectorClass" DisplayName="Connector Class" ShortDescription="" DefaultValue="com.metamatrix.connector.xmlsource.XMLSourceConnector" IsRequired="true" IsExpert="true" />
+ <PropertyDefinition Name="ConnectionType" DisplayName="Type Of XML Connection" ShortDescription="Connection type used to get the XML data" DefaultValue="com.metamatrix.connector.xmlsource.file.FileConnection" IsRequired="true" IsExpert="true" />
+ <PropertyDefinition Name="Standard" DisplayName="Standard Type" ShortDescription="Standard Built-in Connector Type" DefaultValue="true" PropertyType="Boolean" IsExpert="true" IsModifiable="false" />
+ <PropertyDefinition Name="DirectoryLocation" DisplayName="XML File(s) Directory Location" ShortDescription="" DefaultValue="" IsRequired="true" />
+ </ComponentType>
+ <ComponentType Name="XML SOAP Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="XML Connector" ParentComponentType="Connectors" LastChangedDate="2008-10-31T10:26:19.917-06:00" CreationDate="2008-10-31T10:26:19.917-06:00">
+ <PropertyDefinition Name="AuthPassword" DisplayName="Authentication User Password" ShortDescription="Password value for authentication" DefaultValue="" IsExpert="true" IsMasked="true" />
+ <PropertyDefinition Name="SAMLPropertyFile" DisplayName="SAML Property File (only required when SAML profile used)" ShortDescription="SAML Security property file (saml.properties)" DefaultValue="" IsExpert="true" />
+ <PropertyDefinition Name="Standard" DisplayName="Standard Type" ShortDescription="Standard Built-in Connector Type" DefaultValue="true" PropertyType="Boolean" IsExpert="true" IsModifiable="false" />
+ <PropertyDefinition Name="wsdl" DisplayName="WSDL File (URL)" ShortDescription="URL to Web Service Definition File" DefaultValue="" IsRequired="true" />
+ <PropertyDefinition Name="AuthUserName" DisplayName="Authentication User Name" ShortDescription="Name value for authentication" DefaultValue="" IsExpert="true" />
+ <PropertyDefinition Name="WSSecurityType" DisplayName="WS-Security Type(UsernameToken, SAML..)" ShortDescription="Type of WS-Security to be used; Combinations of multiple security types can be used with a space in-between. Allowed types are: (UsernameToken, UsernameToken-Digest, SAMLTokenUnsigned, SAMLTokenSigned, Signature, Timestamp, Encrypt)" DefaultValue="" />
+ <PropertyDefinition Name="ConnectorClass" DisplayName="Connector Class" ShortDescription="" DefaultValue="com.metamatrix.connector.xmlsource.XMLSourceConnector" IsRequired="true" IsExpert="true" />
+ <PropertyDefinition Name="EncryptUserName" DisplayName="Encrypt UserName (only if Encrypt profile used)" ShortDescription="The username to be used in the encryption; if blank uses auth username" DefaultValue="" IsExpert="true" />
+ <PropertyDefinition Name="EndPoint" DisplayName="Alternate End Point" ShortDescription="An alternate service endpoint other than one specified in WSDL, to execute the service" DefaultValue="" />
+ <PropertyDefinition Name="SecurityType" DisplayName="WebService Security Used(None, HTTPBasic, WS-Security)" ShortDescription="Type of Authentication to used with the web service; If WS-Secuirty is being used, then WS-Secuirty type must be defined" DefaultValue="None" IsRequired="true" />
+ <PropertyDefinition Name="CryptoPropertyFile" DisplayName="User Crypto Property File (If SAML or Signature profile used)" ShortDescription="The file defines properties of cryptography;defines the certificates;(crypto.properties)" DefaultValue="" IsExpert="true" />
+ <PropertyDefinition Name="ConnectionType" DisplayName="Type Of XML Connection" ShortDescription="Connection type used to get the XML data" DefaultValue="com.metamatrix.connector.xmlsource.soap.SoapConnection" IsRequired="true" IsExpert="true" />
+ <PropertyDefinition Name="EncryptPropertyFile" DisplayName="Encrypt crypto property file (only if Encrypt profile used)" ShortDescription="The file defines properties of cryptography for encryption of the message;(crypto.properties)" DefaultValue="" IsExpert="true" />
+ <PropertyDefinition Name="TrustType" DisplayName="Trust Type:(DirectReference or IssuerSerial)" ShortDescription="Only required for Signature and Signed SAML; The issuer-serial method presumes that all trusted users of the service are known to the service and have pre-registered their certificate chains before using the service. The direct-reference method presumes that the service operator trusts all users with certificates issued by a trusted CA." DefaultValue="DirectReference" IsExpert="true" />
+ </ComponentType>
+ <ComponentType Name="XML-Relational File Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="XML Connector" ParentComponentType="Connectors" LastChangedDate="2008-10-31T10:26:19.918-06:00" CreationDate="2008-10-31T10:26:19.918-06:00">
+ <PropertyDefinition Name="TextExtractionThreshold" DisplayName="Text Extraction Threshold (in kb)" ShortDescription="extract text sections larger than this size to a file where more efficient access as a CLOB can be effected." DefaultValue="128" PropertyType="Integer" IsExpert="true" />
+ <PropertyDefinition Name="FilePath" DisplayName="File Path" ShortDescription="" IsRequired="true" />
+ <PropertyDefinition Name="Standard" DisplayName="Standard Type" ShortDescription="Standard Built-in Connector Type" DefaultValue="true" PropertyType="Boolean" IsExpert="true" IsModifiable="false" />
+ <PropertyDefinition Name="FileCacheLocation" DisplayName="Location of the File Cache" ShortDescription="" DefaultValue="" />
+ <PropertyDefinition Name="CacheTimeout" DisplayName="Cache Timeout (in seconds)" ShortDescription="" DefaultValue="60" IsRequired="true" PropertyType="Integer" />
+ <PropertyDefinition Name="SaxFilterProviderClass" DisplayName="XML Filter Provider" ShortDescription="The class the provides extended XML Filters" DefaultValue="com.metamatrix.connector.xml.base.NoExtendedFilters" IsExpert="true" />
+ <PropertyDefinition Name="ConnectorClass" DisplayName="Connector Class" ShortDescription="" DefaultValue="com.metamatrix.connector.xml.base.XMLConnector" IsRequired="true" IsExpert="true" />
+ <PropertyDefinition Name="MaxFileCacheSize" DisplayName="Max Size of file cache (in kb)" ShortDescription="" DefaultValue="-1" IsRequired="true" PropertyType="Integer" />
+ <PropertyDefinition Name="ConnectorStateClass" DisplayName="Connector State Class" ShortDescription="" DefaultValue="com.metamatrix.connector.xml.file.FileConnectorState" IsRequired="true" IsExpert="true" />
+ <PropertyDefinition Name="LogRequestResponseDocs" DisplayName="Log XML Request and Response Documents" ShortDescription="Write the request and response documents to the log at Info level" DefaultValue="false" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="InputStreamFilterClass" DisplayName="Input Stream Filter Class" ShortDescription="The class to use to preprocess raw XML input stream" DefaultValue="com.metamatrix.connector.xml.base.PluggableInputStreamFilterImpl" IsExpert="true" />
+ <PropertyDefinition Name="MaxMemoryCacheSize" DisplayName="Max Size of in-memory cache (in kb)" ShortDescription="" DefaultValue="16384" IsRequired="true" PropertyType="Integer" />
+ <PropertyDefinition Name="FileName" DisplayName="File Name" ShortDescription="" DefaultValue="" />
+ <PropertyDefinition Name="QueryPreprocessorClass" DisplayName="Query Preprocessor Class" ShortDescription="The class to use to preprocess the IQuery" DefaultValue="com.metamatrix.connector.xml.base.NoQueryPreprocessing" IsExpert="true" />
+ <PropertyDefinition Name="ConnectorCapabilities" DisplayName="Connector Capabilities Class" ShortDescription="The class to use to provide the Connector Capabilities" DefaultValue="com.metamatrix.connector.xml.base.XMLCapabilities" IsExpert="true" />
+ </ComponentType>
+ <ComponentType Name="XML-Relational HTTP Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="XML Connector" ParentComponentType="Connectors" LastChangedDate="2008-10-31T10:26:19.920-06:00" CreationDate="2008-10-31T10:26:19.921-06:00">
+ <PropertyDefinition Name="TextExtractionThreshold" DisplayName="Text Extraction Threshold (in kb)" ShortDescription="Extract text sections larger than this size to a file where more efficient access as a CLOB can be effected." DefaultValue="128" PropertyType="Integer" IsExpert="true" />
+ <PropertyDefinition Name="FileCacheLocation" DisplayName="Location of the File Cache" ShortDescription="" DefaultValue="" />
+ <PropertyDefinition Name="CacheTimeout" DisplayName="Cache Timeout (in seconds)" ShortDescription="" DefaultValue="60" IsRequired="true" PropertyType="Integer" />
+ <PropertyDefinition Name="SaxFilterProviderClass" DisplayName="XML Filter Provider" ShortDescription="The class the provides extended XML Filters" DefaultValue="com.metamatrix.connector.xml.base.NoExtendedFilters" IsExpert="true" />
+ <PropertyDefinition Name="XMLParmName" DisplayName="XML Parameter Name" ShortDescription="" />
+ <PropertyDefinition Name="RequestTimeout" DisplayName="Request Timeout (in Milliseconds)" ShortDescription="" DefaultValue="10000" IsRequired="true" PropertyType="Integer" />
+ <PropertyDefinition Name="MaxFileCacheSize" DisplayName="Max Size of file cache (in kb)" ShortDescription="" DefaultValue="-1" IsRequired="true" PropertyType="Integer" />
+ <PropertyDefinition Name="Authenticate" DisplayName="Authentication Required" ShortDescription="" DefaultValue="false" PropertyType="Boolean" IsModifiable="true" />
+ <PropertyDefinition Name="ConnectorStateClass" DisplayName="Connector State Class" ShortDescription="" DefaultValue="com.metamatrix.connector.xml.http.HTTPConnectorState" IsRequired="true" IsExpert="true" />
+ <PropertyDefinition Name="HttpBasicAuthPassword" DisplayName="HTTP Basic Authentication Password" ShortDescription="Password value for HTTP basic authentication" DefaultValue="" IsExpert="true" IsMasked="true" />
+ <PropertyDefinition Name="AccessMethod" DisplayName="Access Method" ShortDescription="" DefaultValue="get" IsRequired="true">
+ <AllowedValue>get</AllowedValue>
+ <AllowedValue>post</AllowedValue>
+ </PropertyDefinition>
+ <PropertyDefinition Name="ProxyUri" DisplayName="Proxy Server URI" ShortDescription="The URI of the proxy server" DefaultValue="" />
+ <PropertyDefinition Name="ExceptionOnIntraQueryCacheExpiration" DisplayName="Exception On Intra-Query Cache Expiration" ShortDescription="Throw an exception when a document expires from the cache between executing different parts of a single query (instead of requesting the document again)" DefaultValue="true" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="ConnectorCapabilities" DisplayName="Connector Capabilities Class" ShortDescription="The class to use to provide the Connector Capabilities" DefaultValue="com.metamatrix.connector.xml.base.XMLCapabilities" IsExpert="true" />
+ <PropertyDefinition Name="Standard" DisplayName="Standard Type" ShortDescription="Standard Built-in Connector Type" DefaultValue="true" PropertyType="Boolean" IsExpert="true" IsModifiable="false" />
+ <PropertyDefinition Name="HttpBasicAuthUserName" DisplayName="HTTP Basic Authentication Name" ShortDescription="Name value for HTTP basic authentication" DefaultValue="" IsExpert="true" />
+ <PropertyDefinition Name="ConnectorClass" DisplayName="Connector Class" ShortDescription="" DefaultValue="com.metamatrix.connector.xml.base.XMLConnector" IsRequired="true" IsExpert="true" />
+ <PropertyDefinition Name="Uri" DisplayName="Server URI" ShortDescription="The URI of the HTTP source" IsRequired="true" />
+ <PropertyDefinition Name="UseHttpBasic" DisplayName="Use HTTP Basic authentication" ShortDescription="Use basic HTTP Authentication" DefaultValue="false" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="LogRequestResponseDocs" DisplayName="Log XML Request and Response Documents" ShortDescription="Write the request and response documents to the log at Info level" DefaultValue="false" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="TrustDeserializerClass" DisplayName="Trust Deserializer Class" ShortDescription="The class to use to process trusted payloads and execution payloads" DefaultValue="com.metamatrix.connector.xml.http.DefaultTrustDeserializer" IsExpert="true" />
+ <PropertyDefinition Name="ParameterMethod" DisplayName="Parameter Method" ShortDescription="" DefaultValue="None" IsRequired="true">
+ <AllowedValue>None</AllowedValue>
+ <AllowedValue>Name/Value</AllowedValue>
+ <AllowedValue>XMLRequest</AllowedValue>
+ <AllowedValue>XMLInQueryString</AllowedValue>
+ </PropertyDefinition>
+ <PropertyDefinition Name="MaxMemoryCacheSize" DisplayName="Max Size of in-memory cache (in kb)" ShortDescription="" DefaultValue="16384" IsRequired="true" PropertyType="Integer" />
+ <PropertyDefinition Name="InputStreamFilterClass" DisplayName="Input Stream Filter Class" ShortDescription="The class to use to preprocess raw XML input stream" DefaultValue="com.metamatrix.connector.xml.base.PluggableInputStreamFilterImpl" IsExpert="true" />
+ <PropertyDefinition Name="HostnameVerifier" DisplayName="Hostname Verifier" ShortDescription="Class implementing javax.net.ssl.HostnameVerifier. Used to implement a hostname mismatch workaround." IsExpert="true" />
+ <PropertyDefinition Name="QueryPreprocessorClass" DisplayName="Query Preprocessor Class" ShortDescription="The class to use to preprocess the IQuery" DefaultValue="com.metamatrix.connector.xml.base.NoQueryPreprocessing" IsExpert="true" />
+ </ComponentType>
+ <ComponentType Name="XML-Relational SOAP Connector" ComponentTypeCode="2" Deployable="true" Deprecated="false" Monitorable="false" SuperComponentType="XML Connector" ParentComponentType="Connectors" LastChangedDate="2008-10-31T10:26:19.919-06:00" CreationDate="2008-10-31T10:26:19.919-06:00">
+ <PropertyDefinition Name="TextExtractionThreshold" DisplayName="Text Extraction Threshold (in kb)" ShortDescription="Extract text sections larger than this size to a file where more efficient access as a CLOB can be effected." DefaultValue="128" PropertyType="Integer" IsExpert="true" />
+ <PropertyDefinition Name="AuthPassword" DisplayName="Authentication User Password" ShortDescription="Password value for authentication" DefaultValue="" IsExpert="true" IsMasked="true" />
+ <PropertyDefinition Name="FileCacheLocation" DisplayName="Location of the File Cache" ShortDescription="" DefaultValue="" />
+ <PropertyDefinition Name="SaxFilterProviderClass" DisplayName="XML Filter Provider" ShortDescription="The class the provides extended XML Filters" DefaultValue="com.metamatrix.connector.xml.base.NoExtendedFilters" IsExpert="true" />
+ <PropertyDefinition Name="AuthUserName" DisplayName="Authentication User Name" ShortDescription="Name value for authentication" DefaultValue="" IsExpert="true" />
+ <PropertyDefinition Name="CacheTimeout" DisplayName="Cache Timeout (in seconds)" ShortDescription="" DefaultValue="60" IsRequired="true" PropertyType="Integer" />
+ <PropertyDefinition Name="WSSecurityType" DisplayName="WS-Security Type(UsernameToken, SAML..)" ShortDescription="Type of WS-Security to be used; Combinations of multiple security types can be used with a space in-between. Allowed types are: (UsernameToken, UsernameToken-Digest, SAMLTokenUnsigned, SAMLTokenSigned, Signature, Timestamp, Encrypt)" DefaultValue="" />
+ <PropertyDefinition Name="XMLParmName" DisplayName="XML Parameter Name" ShortDescription="" DefaultValue="" IsModifiable="false" />
+ <PropertyDefinition Name="EncryptUserName" DisplayName="Encrypt UserName (only if Encrypt profile used)" ShortDescription="The username to be used in the encryption; if blank uses auth username" DefaultValue="" IsExpert="true" />
+ <PropertyDefinition Name="ExceptionOnSOAPFault" DisplayName="Exception on SOAP Fault" ShortDescription="Throw connector exception when SOAP fault is returned from source." DefaultValue="true" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="MaxFileCacheSize" DisplayName="Max Size of file cache (in kb)" ShortDescription="" DefaultValue="-1" IsRequired="true" PropertyType="Integer" />
+ <PropertyDefinition Name="RequestTimeout" DisplayName="Request Timeout (in Milliseconds)" ShortDescription="" DefaultValue="10000" IsRequired="true" PropertyType="Integer" />
+ <PropertyDefinition Name="CryptoPropertyFile" DisplayName="User Crypto Property File (If SAML or Signature profile used)" ShortDescription="The file defines properties of cryptography;defines the certificates;(crypto.properties)" DefaultValue="" IsExpert="true" />
+ <PropertyDefinition Name="ConnectorStateClass" DisplayName="Connector State Class" ShortDescription="" DefaultValue="com.metamatrix.connector.xml.soap.SOAPConnectorState" IsRequired="true" IsExpert="true" />
+ <PropertyDefinition Name="SOAPAction" DisplayName="SOAP-Action" ShortDescription="Value for SOAP-Action header" DefaultValue="" IsExpert="true" />
+ <PropertyDefinition Name="AccessMethod" DisplayName="Access Method (Get, Post)" ShortDescription="" DefaultValue="post" IsModifiable="false">
+ <AllowedValue>get</AllowedValue>
+ <AllowedValue>post</AllowedValue>
+ </PropertyDefinition>
+ <PropertyDefinition Name="ProxyUri" DisplayName="Proxy Server URI" ShortDescription="The URI of the proxy server" DefaultValue="" />
+ <PropertyDefinition Name="EncryptPropertyFile" DisplayName="Encrypt crypto property file (only if Encrypt profile used)" ShortDescription="The file defines properties of cryptography for encryption of the message;(crypto.properties)" DefaultValue="" IsExpert="true" />
+ <PropertyDefinition Name="ExceptionOnIntraQueryCacheExpiration" DisplayName="Exception On Intra-Query Cache Expiration" ShortDescription="Throw an exception when a document expires from the cache between executing different parts of a single query (instead of requesting the document again)" DefaultValue="true" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="ConnectorCapabilities" DisplayName="Connector Capabilities Class" ShortDescription="The class to use to provide the Connector Capabilities" DefaultValue="com.metamatrix.connector.xml.base.XMLCapabilities" IsExpert="true" />
+ <PropertyDefinition Name="SAMLPropertyFile" DisplayName="SAML Property File (only required when SAML profile used)" ShortDescription="SAML Security property file (saml.properties)" DefaultValue="" IsExpert="true" />
+ <PropertyDefinition Name="Standard" DisplayName="Standard Type" ShortDescription="Standard Built-in Connector Type" DefaultValue="true" PropertyType="Boolean" IsExpert="true" IsModifiable="false" />
+ <PropertyDefinition Name="EncodingStyle" DisplayName="Encoding Style (RPC - Encoded, RPC - Literal, Document - Literal, Document - Encoded)" ShortDescription="Encoding Style" DefaultValue="Document - Literal" IsRequired="true">
+ <AllowedValue>RPC - Encoded</AllowedValue>
+ <AllowedValue>RPC - Literal</AllowedValue>
+ <AllowedValue>Document - Literal</AllowedValue>
+ <AllowedValue>Document - Encoded</AllowedValue>
+ </PropertyDefinition>
+ <PropertyDefinition Name="ConnectorClass" DisplayName="Connector Class" ShortDescription="" DefaultValue="com.metamatrix.connector.xml.base.XMLConnector" IsRequired="true" IsExpert="true" />
+ <PropertyDefinition Name="Uri" DisplayName="Server URI" ShortDescription="The URI of the HTTP source" IsRequired="true" />
+ <PropertyDefinition Name="SecurityType" DisplayName="WebService Security Used(None, HTTPBasic, WS-Security)" ShortDescription="Type of Authentication to used with the web service; If WS-Secuirty is being used, then WS-Secuirty type must be defined" DefaultValue="None" IsRequired="true" />
+ <PropertyDefinition Name="LogRequestResponseDocs" DisplayName="Log XML Request and Response Documents" ShortDescription="Write the request and response documents to the log at Info level" DefaultValue="false" PropertyType="Boolean" IsExpert="true" />
+ <PropertyDefinition Name="TrustDeserializerClass" DisplayName="Trust Deserializer Class" ShortDescription="The class to use to process trusted payloads and execution payloads" DefaultValue="com.metamatrix.connector.xml.soap.DefaultSoapTrustDeserializer" IsExpert="true" />
+ <PropertyDefinition Name="ParameterMethod" DisplayName="Parameter Method (None, Name/Value, XMLRequest, XMLInQueryString)" ShortDescription="" DefaultValue="XMLRequest" IsModifiable="false">
+ <AllowedValue>None</AllowedValue>
+ <AllowedValue>Name/Value</AllowedValue>
+ <AllowedValue>XMLRequest</AllowedValue>
+ <AllowedValue>XMLInQueryString</AllowedValue>
+ </PropertyDefinition>
+ <PropertyDefinition Name="InputStreamFilterClass" DisplayName="Input Stream Filter Class" ShortDescription="The class to use to preprocess raw XML input stream" DefaultValue="com.metamatrix.connector.xml.base.PluggableInputStreamFilterImpl" IsExpert="true" />
+ <PropertyDefinition Name="MaxMemoryCacheSize" DisplayName="Max Size of in-memory cache (in kb)" ShortDescription="" DefaultValue="16384" IsRequired="true" PropertyType="Integer" />
+ <PropertyDefinition Name="HostnameVerifier" DisplayName="Hostname Verifier" ShortDescription="a class implmenting javax.net.ssl.HostnameVerifier. Used to implement a hostname mismatch workaround." IsExpert="true" />
+ <PropertyDefinition Name="TrustType" DisplayName="Trust Type:(DirectReference or IssuerSerial)" ShortDescription="Only required for Signature and Signed SAML; The issuer-serial method presumes that all trusted users of the service are known to the service and have pre-registered their certificate chains before using the service. The direct-reference method presumes that the service operator trusts all users with certificates issued by a trusted CA." DefaultValue="DirectReference" IsExpert="true" />
+ <PropertyDefinition Name="QueryPreprocessorClass" DisplayName="Query Preprocessor Class" ShortDescription="The class to use to preprocess the IQuery" DefaultValue="com.metamatrix.connector.xml.base.NoQueryPreprocessing" IsExpert="true" />
+ </ComponentType>
+
+ </ComponentTypes>
+</ConfigurationDocument>
\ No newline at end of file
Modified: trunk/test-integration/src/test/resources/TestMMDatabaseMetaData/testGetTypeInfo_TotalNumber.expected
===================================================================
--- trunk/test-integration/src/test/resources/TestMMDatabaseMetaData/testGetTypeInfo_TotalNumber.expected 2009-07-10 16:15:38 UTC (rev 1117)
+++ trunk/test-integration/src/test/resources/TestMMDatabaseMetaData/testGetTypeInfo_TotalNumber.expected 2009-07-10 16:41:23 UTC (rev 1118)
@@ -11,7 +11,7 @@
float 7 20 <null> <null> <null> 1 false 3 false false false float 0 255 <null> <null> 10
double 8 20 <null> <null> <null> 1 false 3 false false false double 0 255 <null> <null> 10
string 12 4000 ' ' <null> 1 false 3 true true false string 0 255 <null> <null> 0
-xml 2000 2147483647 <null> <null> <null> 1 false 3 true true false xml 0 255 <null> <null> 0
+xml 2009 2147483647 <null> <null> <null> 1 false 3 true true false xml 0 255 <null> <null> 0
date 91 10 {d' } <null> 1 false 3 true true false date 0 255 <null> <null> 0
time 92 8 {t' } <null> 1 false 3 true true false time 0 255 <null> <null> 0
timestamp 93 29 {ts' } <null> 1 false 3 true true false timestamp 0 255 <null> <null> 0
Deleted: trunk/test-integration/src/test/resources/TestMMDatabaseMetaData/testGetTypeInfo_specificType_Integer.expected
===================================================================
--- trunk/test-integration/src/test/resources/TestMMDatabaseMetaData/testGetTypeInfo_specificType_Integer.expected 2009-07-10 16:15:38 UTC (rev 1117)
+++ trunk/test-integration/src/test/resources/TestMMDatabaseMetaData/testGetTypeInfo_specificType_Integer.expected 2009-07-10 16:41:23 UTC (rev 1118)
@@ -1,40 +0,0 @@
-string integer integer string string string short boolean short boolean boolean boolean string short short integer integer integer
-TYPE_NAME DATA_TYPE PRECISION LITERAL_PREFIX LITERAL_SUFFIX CREATE_PARAMS NULLABLE CASE_SENSITIVE SEARCHABLE UNSIGNED_ATTRIBUTE FIXED_PREC_SCALE AUTO_INCREMENT LOCAL_TYPE_NAME MINIMUM_SCALE MAXIMUM_SCALE SQL_DATA_TYPE SQL_DATETIME_SUB NUM_PREC_RADIX
-boolean -7 1 {b' } <null> 1 false 3 true true false boolean 0 255 <null> <null> 0
-byte -6 3 <null> <null> <null> 1 false 3 true true false byte 0 255 <null> <null> 0
-long -5 19 <null> <null> <null> 1 false 3 false false false long 0 255 <null> <null> 10
-char 1 1 ' ' <null> 1 false 3 true true false char 0 255 <null> <null> 0
-bigdecimal 2 20 <null> <null> <null> 1 false 3 false true false bigdecimal 0 255 <null> <null> 10
-biginteger 2 19 <null> <null> <null> 1 false 3 false false false biginteger 0 255 <null> <null> 10
-integer 4 10 <null> <null> <null> 1 false 3 false false false integer 0 255 <null> <null> 10
-short 5 5 <null> <null> <null> 1 false 3 false false false short 0 255 <null> <null> 10
-float 7 20 <null> <null> <null> 1 false 3 false false false float 0 255 <null> <null> 10
-double 8 20 <null> <null> <null> 1 false 3 false false false double 0 255 <null> <null> 10
-string 12 4000 ' ' <null> 1 false 3 true true false string 0 255 <null> <null> 0
-xml 2000 2147483647 <null> <null> <null> 1 false 3 true true false xml 0 255 <null> <null> 0
-date 91 10 {d' } <null> 1 false 3 true true false date 0 255 <null> <null> 0
-time 92 8 {t' } <null> 1 false 3 true true false time 0 255 <null> <null> 0
-timestamp 93 29 {ts' } <null> 1 false 3 true true false timestamp 0 255 <null> <null> 0
-object 2000 2147483647 <null> <null> <null> 1 false 3 true true false object 0 255 <null> <null> 0
-blob 2004 2147483647 <null> <null> <null> 1 false 3 true true false blob 0 255 <null> <null> 0
-clob 2005 2147483647 <null> <null> <null> 1 false 3 true true false clob 0 255 <null> <null> 0
-Row Count : 18
-getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable isReadOnly isSearchable isSigned isWritable
-TYPE_NAME 12 <null> java.lang.String <null> string QT_Ora9DS System.DataTypes 4000 4000 0 false false false false 0 true true false false
-DATA_TYPE 4 <null> java.lang.Integer <null> integer QT_Ora9DS System.DataTypes 11 10 0 false false false true 1 false true true true
-PRECISION 4 <null> java.lang.Integer <null> integer QT_Ora9DS System.DataTypes 11 10 0 false false false true 1 false true true true
-LITERAL_PREFIX 12 <null> java.lang.String <null> string QT_Ora9DS System.DataTypes 4000 4000 0 false false false true 1 false true true true
-LITERAL_SUFFIX 12 <null> java.lang.String <null> string QT_Ora9DS System.DataTypes 4000 4000 0 false false false true 1 false true true true
-CREATE_PARAMS 12 <null> java.lang.String <null> string QT_Ora9DS System.DataTypes 4000 4000 0 false false false true 1 false true true true
-NULLABLE 5 <null> java.lang.Short <null> short QT_Ora9DS System.DataTypes 6 5 0 false false false true 1 false true true true
-CASE_SENSITIVE -7 <null> java.lang.Boolean <null> boolean QT_Ora9DS System.DataTypes 5 1 0 false true false false 0 true true false false
-SEARCHABLE 5 <null> java.lang.Short <null> short QT_Ora9DS System.DataTypes 6 5 0 false false false true 1 false true true true
-UNSIGNED_ATTRIBUTE -7 <null> java.lang.Boolean <null> boolean QT_Ora9DS System.DataTypes 5 1 0 false false false true 1 false true true true
-FIXED_PREC_SCALE -7 <null> java.lang.Boolean <null> boolean QT_Ora9DS System.DataTypes 5 1 0 false false false true 1 false true true true
-AUTO_INCREMENT -7 <null> java.lang.Boolean <null> boolean QT_Ora9DS System.DataTypes 5 1 0 false true false false 0 true true true false
-LOCAL_TYPE_NAME 12 <null> java.lang.String <null> string QT_Ora9DS System.DataTypes 4000 4000 0 false false false false 0 true true false false
-MINIMUM_SCALE 5 <null> java.lang.Short <null> short QT_Ora9DS System.DataTypes 6 5 0 false false false true 1 false true true true
-MAXIMUM_SCALE 5 <null> java.lang.Short <null> short QT_Ora9DS System.DataTypes 6 5 0 false false false true 1 false true true true
-SQL_DATA_TYPE 4 <null> java.lang.Integer <null> integer QT_Ora9DS System.DataTypes 11 10 0 false false false true 1 false true true true
-SQL_DATETIME_SUB 4 <null> java.lang.Integer <null> integer QT_Ora9DS System.DataTypes 11 10 0 false false false true 1 false true true true
-NUM_PREC_RADIX 4 <null> java.lang.Integer <null> integer QT_Ora9DS System.DataTypes 11 10 0 false false false false 1 true true false false
Added: trunk/test-integration/src/test/resources/derby/sample.zip
===================================================================
(Binary files differ)
Property changes on: trunk/test-integration/src/test/resources/derby/sample.zip
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/test-integration/src/test/resources/partssupplier/expected/TypeInfo.txt
===================================================================
--- trunk/test-integration/src/test/resources/partssupplier/expected/TypeInfo.txt 2009-07-10 16:15:38 UTC (rev 1117)
+++ trunk/test-integration/src/test/resources/partssupplier/expected/TypeInfo.txt 2009-07-10 16:41:23 UTC (rev 1118)
@@ -10,7 +10,7 @@
float 7 20 null null null 1 false 3 false false false float 0 255 null null 10
double 8 20 null null null 1 false 3 false false false double 0 255 null null 10
string 12 4000 ' ' null 1 false 3 true true false string 0 255 null null 0
-xml 2000 2147483647 null null null 1 false 3 true true false xml 0 255 null null 0
+xml 2009 2147483647 null null null 1 false 3 true true false xml 0 255 null null 0
date 91 10 {d' } null 1 false 3 true true false date 0 255 null null 0
time 92 8 {t' } null 1 false 3 true true false time 0 255 null null 0
timestamp 93 29 {ts' } null 1 false 3 true true false timestamp 0 255 null null 0
Modified: trunk/test-integration/src/test/resources/vdbless/ConfigurationInfo.def
===================================================================
--- trunk/test-integration/src/test/resources/vdbless/ConfigurationInfo.def 2009-07-10 16:15:38 UTC (rev 1117)
+++ trunk/test-integration/src/test/resources/vdbless/ConfigurationInfo.def 2009-07-10 16:41:23 UTC (rev 1118)
@@ -2,7 +2,7 @@
<VDB>
<VDBInfo>
<Property Name="Name" Value="VDBLess" />
- <Property Name="Version" Value="4" />
+ <Property Name="Version" Value="3" />
<Property Name="UseConnectorMetadata" Value="true" />
</VDBInfo>
<Model>
@@ -11,6 +11,12 @@
<Connector Name="Text Connector" />
</ConnectorBindings>
</Model>
+ <Model>
+ <Property Name="Name" Value="Derby" />
+ <ConnectorBindings>
+ <Connector Name="Derby Connector" />
+ </ConnectorBindings>
+ </Model>
<ConnectorBindings>
<Connector Name="Text Connector" ComponentType="Text File Connector">
<Properties>
@@ -18,6 +24,15 @@
<Property Name="DescriptorFile">src/test/resources/vdbless/TextDescriptor.txt</Property>
</Properties>
</Connector>
+ <Connector Name="Derby Connector" ComponentType="Apache Derby Embedded Connector">
+ <Properties>
+ <Property Name="Immutable">true</Property>
+ <Property Name="URL">jdbc:derby:jar:(src/test/resources/derby/sample.zip)bqt</Property>
+
+ <!-- import settings -->
+ <Property Name="importer.useFullSchemaName">false</Property>
+ </Properties>
+ </Connector>
</ConnectorBindings>
</VDB>
15 years, 5 months