teiid SVN: r1257 - trunk/build/kit-runtime/deploy.
by teiid-commits@lists.jboss.org
Author: rareddy
Date: 2009-08-18 11:08:24 -0400 (Tue, 18 Aug 2009)
New Revision: 1257
Modified:
trunk/build/kit-runtime/deploy/log4j.xml
Log:
TEIID-769: logger element needs the "level" element not the "priority" like "category" element did. correcting it.
Modified: trunk/build/kit-runtime/deploy/log4j.xml
===================================================================
--- trunk/build/kit-runtime/deploy/log4j.xml 2009-08-18 03:04:55 UTC (rev 1256)
+++ trunk/build/kit-runtime/deploy/log4j.xml 2009-08-18 15:08:24 UTC (rev 1257)
@@ -64,38 +64,38 @@
<!-- ================ -->
<logger name="org.jgroups">
- <priority value="WARN"/>
+ <level value="WARN"/>
</logger>
<logger name="com.arjuna">
- <priority value="WARN" />
+ <level value="WARN" />
</logger>
<logger name="org.jboss">
- <priority value="WARN"/>
+ <level value="WARN"/>
</logger>
<logger name="org.teiid">
- <priority value="WARN" />
+ <level value="WARN" />
</logger>
<!-- un-comment to enable COMMAND log
<logger name="org.teiid.COMMAND_LOG" additivity="false">
- <priority value="INFO"/>
+ <level value="INFO"/>
<appender-ref ref="COMMAND"/>
</logger>
-->
<!-- Un-comment to enable AUDIT log
<logger name="org.teiid.AUDIT_LOG" additivity="false">
- <priority value="INFO"/>
+ <level value="INFO"/>
<appender-ref ref="AUDIT"/>
</logger>
-->
<!-- Un-comment to enable Process Info log
<logger name="org.teiid.PROCESS_INFO_LOG" additivity="false">
- <priority value="INFO"/>
+ <level value="INFO"/>
<appender-ref ref="PROCESS_INFO"/>
</logger>
-->
13 years, 9 months
teiid SVN: r1256 - trunk/runtime/src/main/java/org/teiid.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2009-08-17 23:04:55 -0400 (Mon, 17 Aug 2009)
New Revision: 1256
Modified:
trunk/runtime/src/main/java/org/teiid/Server.java
trunk/runtime/src/main/java/org/teiid/Shutdown.java
Log:
TEIID-785 removing duplicate loadproperties method
Modified: trunk/runtime/src/main/java/org/teiid/Server.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/Server.java 2009-08-18 03:01:39 UTC (rev 1255)
+++ trunk/runtime/src/main/java/org/teiid/Server.java 2009-08-18 03:04:55 UTC (rev 1256)
@@ -99,7 +99,7 @@
return true;
}
- private static Properties loadConfiguration(String configFile) {
+ static Properties loadConfiguration(String configFile) {
File f = new File (configFile);
if (!f.exists()) {
System.out.println("Missing the bootstrap properties file, failed to start"); //$NON-NLS-1$
Modified: trunk/runtime/src/main/java/org/teiid/Shutdown.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/Shutdown.java 2009-08-18 03:01:39 UTC (rev 1255)
+++ trunk/runtime/src/main/java/org/teiid/Shutdown.java 2009-08-18 03:04:55 UTC (rev 1256)
@@ -1,13 +1,9 @@
package org.teiid;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.lang.reflect.UndeclaredThrowableException;
-import java.util.ArrayList;
import java.util.Properties;
import javax.management.MBeanServerConnection;
@@ -27,7 +23,7 @@
System.exit(-1);
}
- Properties props = loadConfiguration(args[0]);
+ Properties props = Server.loadConfiguration(args[0]);
JMXUtil jmx = new JMXUtil(props.getProperty(DQPEmbeddedProperties.PROCESSNAME));
@@ -42,31 +38,6 @@
server.shutdown();
}
- private static Properties loadConfiguration(String configFile) {
- File f = new File (configFile);
- if (!f.exists()) {
- System.out.println("Missing the bootstrap properties file, failed to start"); //$NON-NLS-1$
- System.exit(-3);
- }
-
- Properties props = null;
- try {
- FileReader bootProperties = new FileReader(f);
- props = new Properties();
- props.load(bootProperties);
-
- // enable socket communication by default.
- props.setProperty(DQPEmbeddedProperties.ENABLE_SOCKETS, Boolean.TRUE.toString());
- props.setProperty(DQPEmbeddedProperties.BOOTURL, f.getCanonicalPath());
- props.setProperty(DQPEmbeddedProperties.TEIID_HOME,f.getParentFile().getCanonicalPath());
- } catch (IOException e) {
- System.out.println("Failed to load bootstrap properties file."); //$NON-NLS-1$
- e.printStackTrace();
- System.exit(-3);
- }
- return props;
- }
-
/**
* Taken from JBoss AS Shutdown.java class.
*/
@@ -81,13 +52,11 @@
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
String methodName = method.getName();
- Class[] sigTypes = method.getParameterTypes();
- ArrayList sigStrings = new ArrayList();
+ Class<?>[] sigTypes = method.getParameterTypes();
+ String[] sig = new String[sigTypes.length];
for (int s = 0; s < sigTypes.length; s++) {
- sigStrings.add(sigTypes[s].getName());
+ sig[s] = sigTypes[s].getName();
}
- String[] sig = new String[sigTypes.length];
- sigStrings.toArray(sig);
Object value = null;
try {
value = server.invoke(serverName, methodName, args, sig);
13 years, 9 months
teiid SVN: r1255 - in trunk/connectors: connector-jdbc/src/main/java/org/teiid/connector/jdbc/translator and 4 other directories.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2009-08-17 23:01:39 -0400 (Mon, 17 Aug 2009)
New Revision: 1255
Added:
trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/oracle/OracleSpatialFunctionModifier.java
trunk/connectors/connector-jdbc/src/main/resources/OracleSpatialFunctions.xmi
Removed:
trunk/connectors/sandbox/connector-oracle-spatial/
Modified:
trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/oracle/OracleCapabilities.java
trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/oracle/OracleSQLTranslator.java
trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/translator/Translator.java
trunk/connectors/connector-jdbc/src/main/resources/org/teiid/connector/jdbc/i18n.properties
trunk/connectors/connector-jdbc/src/test/java/org/teiid/connector/jdbc/oracle/TestOracleTranslator.java
trunk/connectors/sandbox/pom.xml
Log:
TEIID-787 merging oracle and oracle spatial connectors.
Modified: trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/oracle/OracleCapabilities.java
===================================================================
--- trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/oracle/OracleCapabilities.java 2009-08-17 21:38:58 UTC (rev 1254)
+++ trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/oracle/OracleCapabilities.java 2009-08-18 03:01:39 UTC (rev 1255)
@@ -39,8 +39,8 @@
/**
* @see com.metamatrix.data.ConnectorCapabilities#getSupportedFunctions()
*/
- public List getSupportedFunctions() {
- List supportedFunctions = new ArrayList();
+ public List<String> getSupportedFunctions() {
+ List<String> supportedFunctions = new ArrayList<String>();
supportedFunctions.addAll(super.getSupportedFunctions());
supportedFunctions.add("ABS"); //$NON-NLS-1$
supportedFunctions.add("ACOS"); //$NON-NLS-1$
@@ -104,7 +104,13 @@
supportedFunctions.add("CONVERT"); //$NON-NLS-1$
supportedFunctions.add("IFNULL"); //$NON-NLS-1$
supportedFunctions.add("NVL"); //$NON-NLS-1$
- supportedFunctions.add("COALESCE"); //$NON-NLS-1$
+ supportedFunctions.add("COALESCE"); //$NON-NLS-1$
+
+ supportedFunctions.add(OracleSQLTranslator.RELATE);
+ supportedFunctions.add(OracleSQLTranslator.NEAREST_NEIGHBOR);
+ supportedFunctions.add(OracleSQLTranslator.FILTER);
+ supportedFunctions.add(OracleSQLTranslator.NEAREST_NEIGHBOR_DISTANCE);
+ supportedFunctions.add(OracleSQLTranslator.WITHIN_DISTANCE);
return supportedFunctions;
}
Modified: trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/oracle/OracleSQLTranslator.java
===================================================================
--- trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/oracle/OracleSQLTranslator.java 2009-08-17 21:38:58 UTC (rev 1254)
+++ trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/oracle/OracleSQLTranslator.java 2009-08-18 03:01:39 UTC (rev 1255)
@@ -31,6 +31,7 @@
import java.sql.Statement;
import java.sql.Types;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.List;
import org.teiid.connector.api.ConnectorCapabilities;
@@ -38,27 +39,42 @@
import org.teiid.connector.api.ConnectorException;
import org.teiid.connector.api.ExecutionContext;
import org.teiid.connector.api.SourceSystemFunctions;
+import org.teiid.connector.api.TypeFacility;
import org.teiid.connector.jdbc.JDBCPlugin;
import org.teiid.connector.jdbc.translator.AliasModifier;
import org.teiid.connector.jdbc.translator.ExtractFunctionModifier;
import org.teiid.connector.jdbc.translator.Translator;
import org.teiid.connector.language.ICommand;
+import org.teiid.connector.language.ICriteria;
import org.teiid.connector.language.IElement;
+import org.teiid.connector.language.IFunction;
import org.teiid.connector.language.IGroup;
import org.teiid.connector.language.IInsert;
import org.teiid.connector.language.IInsertExpressionValueSource;
import org.teiid.connector.language.ILimit;
+import org.teiid.connector.language.IQuery;
import org.teiid.connector.language.IQueryCommand;
+import org.teiid.connector.language.ISelect;
import org.teiid.connector.language.ISelectSymbol;
import org.teiid.connector.language.ISetQuery.Operation;
import org.teiid.connector.metadata.runtime.Element;
+import org.teiid.connector.visitor.util.CollectorVisitor;
import org.teiid.connector.visitor.util.SQLReservedWords;
/**
*/
-public class OracleSQLTranslator extends Translator {
+public class OracleSQLTranslator extends Translator {
+ /*
+ * Spatial Functions
+ */
+ public static final String RELATE = "sdo_relate"; //$NON-NLS-1$
+ public static final String NEAREST_NEIGHBOR = "sdo_nn"; //$NON-NLS-1$
+ public static final String FILTER = "sdo_filter"; //$NON-NLS-1$
+ public static final String WITHIN_DISTANCE = "sdo_within_distance"; //$NON-NLS-1$
+ public static final String NEAREST_NEIGHBOR_DISTANCE = "sdo_nn_distance"; //$NON-NLS-1$
+
public final static String HINT_PREFIX = "/*+"; //$NON-NLS-1$
public final static String DUAL = "DUAL"; //$NON-NLS-1$
public final static String ROWNUM = "ROWNUM"; //$NON-NLS-1$
@@ -91,10 +107,45 @@
registerFunctionModifier(SourceSystemFunctions.LEFT, new LeftOrRightFunctionModifier(getLanguageFactory()));
registerFunctionModifier(SourceSystemFunctions.RIGHT, new LeftOrRightFunctionModifier(getLanguageFactory()));
registerFunctionModifier(SourceSystemFunctions.CONCAT, new ConcatFunctionModifier(getLanguageFactory()));
+ registerFunctionModifier(RELATE, new OracleSpatialFunctionModifier());
+ registerFunctionModifier(NEAREST_NEIGHBOR, new OracleSpatialFunctionModifier());
+ registerFunctionModifier(FILTER, new OracleSpatialFunctionModifier());
+ registerFunctionModifier(WITHIN_DISTANCE, new OracleSpatialFunctionModifier());
}
@Override
public ICommand modifyCommand(ICommand command, ExecutionContext context) throws ConnectorException {
+ if (command instanceof IQuery) {
+ IQuery query = (IQuery)command;
+
+ ISelect select = ((IQuery)command).getSelect();
+ List<ISelectSymbol> symbols = select.getSelectSymbols();
+
+ Collection<IFunction> functions = CollectorVisitor.collectObjects(IFunction.class, select);
+ for (IFunction function : functions) {
+ if (function.getName().equalsIgnoreCase("SDO_NN_DISTANCE")) {//$NON-NLS-1$
+ ICriteria criteria = query.getWhere();
+ if(criteria == null || criteria.toString().indexOf("SDO_NN") == -1){ //$NON-NLS-1$
+ throw(new ConnectorException(
+ JDBCPlugin.Util.getString("OracleSpatialSQLTranslator.SDO_NN_DEPENDENCY_ERROR"))); //$NON-NLS-1$
+ }
+ break;
+ }
+ }
+
+ for (int i = 0; i < symbols.size(); i++) {
+ ISelectSymbol symbol = symbols.get(i);
+ if (symbol.getExpression().getType().equals(Object.class)) {
+ String outName = symbol.getOutputName();
+ int lIndx = outName.lastIndexOf("."); //$NON-NLS-1$
+ symbol.setOutputName(outName.substring(lIndx + 1));
+ symbol.setExpression(getLanguageFactory().createLiteral(null, TypeFacility.RUNTIME_TYPES.OBJECT));
+ symbol.setAlias(true);
+ }
+ }
+ return query;
+ }
+
if (!(command instanceof IInsert)) {
return command;
}
@@ -236,6 +287,25 @@
}
}
}
+
+ if (command instanceof IQuery) {
+ //
+ // This simple algorithm determines the hint which will be added to the
+ // query.
+ // Right now, we look through all functions passed in the query
+ // (returned as a collection)
+ // Then we check if any of those functions contain the strings 'sdo' and
+ // 'relate'
+ // If so, the ORDERED hint is added, if not, it isn't
+ Collection<IFunction> col = CollectorVisitor.collectObjects(IFunction.class, command);
+ for (IFunction func : col) {
+ String funcName = func.getName().toUpperCase();
+ int indx1 = funcName.indexOf("SDO"); //$NON-NLS-1$
+ int indx2 = funcName.indexOf("RELATE"); //$NON-NLS-1$
+ if (indx1 >= 0 && indx2 > indx1)
+ return comment + "/*+ ORDERED */ "; //$NON-NLS-1$
+ }
+ }
return comment;
}
Copied: trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/oracle/OracleSpatialFunctionModifier.java (from rev 1253, trunk/connectors/sandbox/connector-oracle-spatial/src/main/java/com/metamatrix/connector/jdbc/oracle/spatial/OracleSpatialFunctionModifier.java)
===================================================================
--- trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/oracle/OracleSpatialFunctionModifier.java (rev 0)
+++ trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/oracle/OracleSpatialFunctionModifier.java 2009-08-18 03:01:39 UTC (rev 1255)
@@ -0,0 +1,67 @@
+/*
+ * 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.oracle;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.teiid.connector.jdbc.translator.BasicFunctionModifier;
+import org.teiid.connector.language.IExpression;
+import org.teiid.connector.language.IFunction;
+import org.teiid.connector.language.ILiteral;
+
+
+public class OracleSpatialFunctionModifier extends BasicFunctionModifier {
+
+ /**
+ * If either of the first two parameters are a Literal String, then we need to put the literal itself in the SQL
+ * to be passed to Oracle, without the tick marks
+ */
+ public List<?> translate(IFunction function) {
+ List<IExpression> params = function.getParameters();
+ List<Object> objs = new ArrayList<Object>();
+ objs.add(function.getName());
+ objs.add("("); //$NON-NLS-1$
+ addParamWithConversion(objs, params.get(0));
+ objs.add(", "); //$NON-NLS-1$
+
+ addParamWithConversion(objs, params.get(1));
+ for (int i = 2; i < params.size(); i++) {
+ objs.add(", "); //$NON-NLS-1$
+ objs.add(params.get(i));
+ }
+ objs.add(")"); //$NON-NLS-1$
+ return objs;
+ }
+
+ protected void addParamWithConversion(List<Object> objs,
+ IExpression expression) {
+ if ((expression instanceof ILiteral)
+ && (((ILiteral) expression).getValue() instanceof String)) {
+ objs.add(((ILiteral) expression).getValue());
+ } else {
+ objs.add(expression);
+ }
+ }
+
+}
\ No newline at end of file
Modified: trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/translator/Translator.java
===================================================================
--- trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/translator/Translator.java 2009-08-17 21:38:58 UTC (rev 1254)
+++ trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/translator/Translator.java 2009-08-18 03:01:39 UTC (rev 1255)
@@ -56,7 +56,6 @@
import org.teiid.connector.language.IParameter;
import org.teiid.connector.language.ISetQuery;
import org.teiid.connector.language.IParameter.Direction;
-import org.teiid.connector.visitor.util.SQLReservedWords;
import com.metamatrix.common.util.PropertiesUtils;
import com.metamatrix.core.util.ReflectionHelper;
Copied: trunk/connectors/connector-jdbc/src/main/resources/OracleSpatialFunctions.xmi (from rev 1253, trunk/connectors/sandbox/connector-oracle-spatial/src/main/resources/OracleSpatialFunctions.xmi)
===================================================================
--- trunk/connectors/connector-jdbc/src/main/resources/OracleSpatialFunctions.xmi (rev 0)
+++ trunk/connectors/connector-jdbc/src/main/resources/OracleSpatialFunctions.xmi 2009-08-18 03:01:39 UTC (rev 1255)
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="ASCII"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:Diagram="http://www.metamatrix.com/metamodels/Diagram" xmlns:mmcore="http://www.metamatrix.com/metamodels/Core" xmlns:mmfunction="http://www.metamatrix.com/metamodels/MetaMatrixFunction">
+ <mmcore:ModelAnnotation xmi:uuid="mmuuid:1339aac0-1cd3-1f76-a60a-ef2ca142dae4" primaryMetamodelUri="http://www.metamatrix.com/metamodels/MetaMatrixFunction"/>
+ <Diagram:DiagramContainer xmi:uuid="mmuuid:141e8c80-1cd3-1f76-a60a-ef2ca142dae4">
+ <diagram xmi:uuid="mmuuid:141e8c81-1cd3-1f76-a60a-ef2ca142dae4" type="packageDiagramType" target="mmuuid/1339aac0-1cd3-1f76-a60a-ef2ca142dae4">
+ <diagramEntity xmi:uuid="mmuuid:141e8c86-1cd3-1f76-a60a-ef2ca142dae4" name="sdo_filter" modelObject="mmuuid/141e8ca5-1cd3-1f76-a60a-ef2ca142dae4" xPosition="394" yPosition="301"/>
+ <diagramEntity xmi:uuid="mmuuid:141e8c82-1cd3-1f76-a60a-ef2ca142dae4" name="sdo_filter" modelObject="mmuuid/141e8cb4-1cd3-1f76-a60a-ef2ca142dae4" xPosition="202" yPosition="148"/>
+ <diagramEntity xmi:uuid="mmuuid:141e8c8a-1cd3-1f76-a60a-ef2ca142dae4" name="sdo_filter" modelObject="mmuuid/141e8c9b-1cd3-1f76-a60a-ef2ca142dae4" xPosition="586" yPosition="394"/>
+ <diagramEntity xmi:uuid="mmuuid:141e8c83-1cd3-1f76-a60a-ef2ca142dae4" name="sdo_nn" modelObject="mmuuid/141e8cbe-1cd3-1f76-a60a-ef2ca142dae4" xPosition="586" yPosition="10"/>
+ <diagramEntity xmi:uuid="mmuuid:141e8c8e-1cd3-1f76-a60a-ef2ca142dae4" modelObject="mmuuid/1512b080-1cd3-1f76-a60a-ef2ca142dae4" xPosition="202" yPosition="286"/>
+ <diagramEntity xmi:uuid="mmuuid:141e8c85-1cd3-1f76-a60a-ef2ca142dae4" modelObject="mmuuid/1512b08b-1cd3-1f76-a60a-ef2ca142dae4" xPosition="394" yPosition="439"/>
+ <diagramEntity xmi:uuid="mmuuid:141e8c8c-1cd3-1f76-a60a-ef2ca142dae4" name="sdo_within_distance" modelObject="mmuuid/141e8cb9-1cd3-1f76-a60a-ef2ca142dae4" xPosition="586" yPosition="256"/>
+ <diagramEntity xmi:uuid="mmuuid:141e8c89-1cd3-1f76-a60a-ef2ca142dae4" name="sdo_within_distance" modelObject="mmuuid/141e8caa-1cd3-1f76-a60a-ef2ca142dae4" xPosition="10" yPosition="286"/>
+ <diagramEntity xmi:uuid="mmuuid:141e8c90-1cd3-1f76-a60a-ef2ca142dae4" name="sdo_within_distance" modelObject="mmuuid/141e8c96-1cd3-1f76-a60a-ef2ca142dae4" xPosition="10" yPosition="10"/>
+ <diagramEntity xmi:uuid="mmuuid:dfa98740-1cee-1f76-a60a-ef2ca142dae4" modelObject="mmuuid/cb37c380-1cee-1f76-a60a-ef2ca142dae4" xPosition="10" yPosition="148"/>
+ <diagramEntity xmi:uuid="mmuuid:a0c900c0-1cf1-1f76-a60a-ef2ca142dae4" modelObject="mmuuid/9955a780-1cf1-1f76-a60a-ef2ca142dae4" xPosition="202" yPosition="10"/>
+ <diagramEntity xmi:uuid="mmuuid:f98ad640-1cf4-1f76-a60a-ef2ca142dae4" modelObject="mmuuid/f2177d00-1cf4-1f76-a60a-ef2ca142dae4" xPosition="394" yPosition="10"/>
+ <diagramEntity xmi:uuid="mmuuid:bd8b5440-abcd-1f7b-8928-e3ec4f4f400f" modelObject="mmuuid/b7f100c0-abcd-1f7b-8928-e3ec4f4f400f" xPosition="586" yPosition="148"/>
+ <diagramEntity xmi:uuid="mmuuid:1747de40-ef9e-1f8f-972f-81dc9991b565" modelObject="mmuuid/0678e3c0-ef9e-1f8f-972f-81dc9991b565" xPosition="202" yPosition="424"/>
+ <diagramEntity xmi:uuid="mmuuid:5ea222c0-efa1-1f8f-972f-81dc9991b565" modelObject="mmuuid/59fbf340-efa1-1f8f-972f-81dc9991b565" xPosition="10" yPosition="424"/>
+ <diagramEntity xmi:uuid="mmuuid:5ea222c1-efa1-1f8f-972f-81dc9991b565" modelObject="mmuuid/59fbf346-efa1-1f8f-972f-81dc9991b565" xPosition="394" yPosition="148"/>
+ <diagramEntity xmi:uuid="mmuuid:a97a7ac0-19d4-1fad-a630-f3ba21f9cca0" modelObject="mmuuid/96d27a80-19d4-1fad-a630-f3ba21f9cca0" xPosition="20" yPosition="20"/>
+ </diagram>
+ </Diagram:DiagramContainer>
+ <mmfunction:ScalarFunction xmi:uuid="mmuuid:141e8c96-1cd3-1f76-a60a-ef2ca142dae4" name="sdo_within_distance" category="Miscellaneous" pushDown="REQUIRED" invocationClass="none" invocationMethod="none">
+ <inputParameters xmi:uuid="mmuuid:141e8c9a-1cd3-1f76-a60a-ef2ca142dae4" name="GEOM1" type="string"/>
+ <inputParameters xmi:uuid="mmuuid:141e8c98-1cd3-1f76-a60a-ef2ca142dae4" name="GEOM2" type="object"/>
+ <inputParameters xmi:uuid="mmuuid:141e8c99-1cd3-1f76-a60a-ef2ca142dae4" name="PARAMS" type="string"/>
+ <returnParameter xmi:uuid="mmuuid:141e8c97-1cd3-1f76-a60a-ef2ca142dae4" type="string"/>
+ </mmfunction:ScalarFunction>
+ <mmfunction:ScalarFunction xmi:uuid="mmuuid:141e8c9b-1cd3-1f76-a60a-ef2ca142dae4" name="sdo_filter" category="Miscellaneous" pushDown="REQUIRED" invocationClass="none" invocationMethod="none">
+ <inputParameters xmi:uuid="mmuuid:141e8c9e-1cd3-1f76-a60a-ef2ca142dae4" name="GEOM1" type="string"/>
+ <inputParameters xmi:uuid="mmuuid:141e8c9c-1cd3-1f76-a60a-ef2ca142dae4" name="GEOM2" type="object"/>
+ <inputParameters xmi:uuid="mmuuid:141e8c9f-1cd3-1f76-a60a-ef2ca142dae4" name="PARAMS" type="string"/>
+ <returnParameter xmi:uuid="mmuuid:141e8c9d-1cd3-1f76-a60a-ef2ca142dae4" type="string"/>
+ </mmfunction:ScalarFunction>
+ <mmfunction:ScalarFunction xmi:uuid="mmuuid:141e8ca5-1cd3-1f76-a60a-ef2ca142dae4" name="sdo_filter" category="Miscellaneous" pushDown="REQUIRED" invocationClass="none" invocationMethod="none">
+ <inputParameters xmi:uuid="mmuuid:141e8ca9-1cd3-1f76-a60a-ef2ca142dae4" name="GEOM1" type="object"/>
+ <inputParameters xmi:uuid="mmuuid:141e8ca8-1cd3-1f76-a60a-ef2ca142dae4" name="GEOM2" type="string"/>
+ <inputParameters xmi:uuid="mmuuid:141e8ca6-1cd3-1f76-a60a-ef2ca142dae4" name="PARAMS" type="string"/>
+ <returnParameter xmi:uuid="mmuuid:141e8ca7-1cd3-1f76-a60a-ef2ca142dae4" type="string"/>
+ </mmfunction:ScalarFunction>
+ <mmfunction:ScalarFunction xmi:uuid="mmuuid:141e8caa-1cd3-1f76-a60a-ef2ca142dae4" name="sdo_within_distance" category="Miscellaneous" pushDown="REQUIRED" invocationClass="none" invocationMethod="none">
+ <inputParameters xmi:uuid="mmuuid:141e8cae-1cd3-1f76-a60a-ef2ca142dae4" name="GEOM1" type="object"/>
+ <inputParameters xmi:uuid="mmuuid:141e8cac-1cd3-1f76-a60a-ef2ca142dae4" name="GEOM2" type="string"/>
+ <inputParameters xmi:uuid="mmuuid:141e8cab-1cd3-1f76-a60a-ef2ca142dae4" name="PARAMS" type="string"/>
+ <returnParameter xmi:uuid="mmuuid:141e8cad-1cd3-1f76-a60a-ef2ca142dae4" type="string"/>
+ </mmfunction:ScalarFunction>
+ <mmfunction:ScalarFunction xmi:uuid="mmuuid:141e8cb4-1cd3-1f76-a60a-ef2ca142dae4" name="sdo_filter" category="Miscellaneous" pushDown="REQUIRED" invocationClass="none" invocationMethod="none">
+ <inputParameters xmi:uuid="mmuuid:141e8cb5-1cd3-1f76-a60a-ef2ca142dae4" name="GEOM1" type="object"/>
+ <inputParameters xmi:uuid="mmuuid:141e8cb7-1cd3-1f76-a60a-ef2ca142dae4" name="GEOM2" type="object"/>
+ <inputParameters xmi:uuid="mmuuid:141e8cb8-1cd3-1f76-a60a-ef2ca142dae4" name="PARAMS" type="string"/>
+ <returnParameter xmi:uuid="mmuuid:141e8cb6-1cd3-1f76-a60a-ef2ca142dae4" type="string"/>
+ </mmfunction:ScalarFunction>
+ <mmfunction:ScalarFunction xmi:uuid="mmuuid:141e8cb9-1cd3-1f76-a60a-ef2ca142dae4" name="sdo_within_distance" category="Miscellaneous" pushDown="REQUIRED" invocationClass="none" invocationMethod="none">
+ <inputParameters xmi:uuid="mmuuid:141e8cbd-1cd3-1f76-a60a-ef2ca142dae4" name="GEOM1" type="object"/>
+ <inputParameters xmi:uuid="mmuuid:141e8cbc-1cd3-1f76-a60a-ef2ca142dae4" name="GEOM2" type="object"/>
+ <inputParameters xmi:uuid="mmuuid:141e8cbb-1cd3-1f76-a60a-ef2ca142dae4" name="PARAMS" type="string"/>
+ <returnParameter xmi:uuid="mmuuid:141e8cba-1cd3-1f76-a60a-ef2ca142dae4" type="string"/>
+ </mmfunction:ScalarFunction>
+ <mmfunction:ScalarFunction xmi:uuid="mmuuid:141e8cbe-1cd3-1f76-a60a-ef2ca142dae4" name="sdo_nn" category="Miscellaneous" pushDown="REQUIRED" invocationClass="none" invocationMethod="none">
+ <inputParameters xmi:uuid="mmuuid:141e8cc2-1cd3-1f76-a60a-ef2ca142dae4" name="GEOM1" type="object"/>
+ <inputParameters xmi:uuid="mmuuid:141e8cc1-1cd3-1f76-a60a-ef2ca142dae4" name="GEOM2" type="object"/>
+ <inputParameters xmi:uuid="mmuuid:141e8cc0-1cd3-1f76-a60a-ef2ca142dae4" name="PARAMS" type="string"/>
+ <returnParameter xmi:uuid="mmuuid:141e8cbf-1cd3-1f76-a60a-ef2ca142dae4" type="string"/>
+ </mmfunction:ScalarFunction>
+ <mmfunction:ScalarFunction xmi:uuid="mmuuid:1512b080-1cd3-1f76-a60a-ef2ca142dae4" name="sdo_nn" category="Miscellaneous" pushDown="REQUIRED" invocationClass="none" invocationMethod="none">
+ <inputParameters xmi:uuid="mmuuid:1512b084-1cd3-1f76-a60a-ef2ca142dae4" name="GEOM1" type="string"/>
+ <inputParameters xmi:uuid="mmuuid:1512b083-1cd3-1f76-a60a-ef2ca142dae4" name="GEOM2" type="object"/>
+ <inputParameters xmi:uuid="mmuuid:1512b082-1cd3-1f76-a60a-ef2ca142dae4" name="PARAMS" type="string"/>
+ <returnParameter xmi:uuid="mmuuid:1512b081-1cd3-1f76-a60a-ef2ca142dae4" type="string"/>
+ </mmfunction:ScalarFunction>
+ <mmfunction:ScalarFunction xmi:uuid="mmuuid:1512b08b-1cd3-1f76-a60a-ef2ca142dae4" name="sdo_nn" category="Miscellaneous" pushDown="REQUIRED" invocationClass="none" invocationMethod="none">
+ <inputParameters xmi:uuid="mmuuid:1512b08c-1cd3-1f76-a60a-ef2ca142dae4" name="GEOM1" type="object"/>
+ <inputParameters xmi:uuid="mmuuid:1512b08e-1cd3-1f76-a60a-ef2ca142dae4" name="GEOM2" type="string"/>
+ <inputParameters xmi:uuid="mmuuid:1512b08f-1cd3-1f76-a60a-ef2ca142dae4" name="PARAMS" type="string"/>
+ <returnParameter xmi:uuid="mmuuid:1512b08d-1cd3-1f76-a60a-ef2ca142dae4" type="string"/>
+ </mmfunction:ScalarFunction>
+ <mmfunction:ScalarFunction xmi:uuid="mmuuid:cb37c380-1cee-1f76-a60a-ef2ca142dae4" name="sdo_relate" category="Miscellaneous" pushDown="REQUIRED" invocationClass="none" invocationMethod="none">
+ <inputParameters xmi:uuid="mmuuid:cb37c384-1cee-1f76-a60a-ef2ca142dae4" name="GEOM1" type="string"/>
+ <inputParameters xmi:uuid="mmuuid:cb37c381-1cee-1f76-a60a-ef2ca142dae4" name="GEOM2" type="object"/>
+ <inputParameters xmi:uuid="mmuuid:cb37c382-1cee-1f76-a60a-ef2ca142dae4" name="PARAMS" type="string"/>
+ <returnParameter xmi:uuid="mmuuid:cb37c383-1cee-1f76-a60a-ef2ca142dae4" type="string"/>
+ </mmfunction:ScalarFunction>
+ <mmfunction:ScalarFunction xmi:uuid="mmuuid:9955a780-1cf1-1f76-a60a-ef2ca142dae4" name="sdo_relate" category="Miscellaneous" pushDown="REQUIRED" invocationClass="none" invocationMethod="none">
+ <inputParameters xmi:uuid="mmuuid:9955a782-1cf1-1f76-a60a-ef2ca142dae4" name="GEOM1" type="object"/>
+ <inputParameters xmi:uuid="mmuuid:9955a783-1cf1-1f76-a60a-ef2ca142dae4" name="GEOM2" type="string"/>
+ <inputParameters xmi:uuid="mmuuid:9955a781-1cf1-1f76-a60a-ef2ca142dae4" name="PARAMS" type="string"/>
+ <returnParameter xmi:uuid="mmuuid:9955a784-1cf1-1f76-a60a-ef2ca142dae4" type="string"/>
+ </mmfunction:ScalarFunction>
+ <mmfunction:ScalarFunction xmi:uuid="mmuuid:96d27a80-19d4-1fad-a630-f3ba21f9cca0" name="sdo_relate" category="Miscellaneous" pushDown="REQUIRED" invocationClass="none" invocationMethod="none">
+ <inputParameters xmi:uuid="mmuuid:96d27a84-19d4-1fad-a630-f3ba21f9cca0" name="GEOM1" type="string"/>
+ <inputParameters xmi:uuid="mmuuid:96d27a83-19d4-1fad-a630-f3ba21f9cca0" name="GEOM2" type="string"/>
+ <inputParameters xmi:uuid="mmuuid:96d27a82-19d4-1fad-a630-f3ba21f9cca0" name="PARAMS" type="string"/>
+ <returnParameter xmi:uuid="mmuuid:96d27a81-19d4-1fad-a630-f3ba21f9cca0" type="string"/>
+ </mmfunction:ScalarFunction>
+ <mmfunction:ScalarFunction xmi:uuid="mmuuid:f2177d00-1cf4-1f76-a60a-ef2ca142dae4" name="sdo_relate" category="Miscellaneous" pushDown="REQUIRED" invocationClass="none" invocationMethod="none">
+ <inputParameters xmi:uuid="mmuuid:f2177d01-1cf4-1f76-a60a-ef2ca142dae4" name="GEOM1" type="object"/>
+ <inputParameters xmi:uuid="mmuuid:f2177d02-1cf4-1f76-a60a-ef2ca142dae4" name="GEOM2" type="object"/>
+ <inputParameters xmi:uuid="mmuuid:f2177d03-1cf4-1f76-a60a-ef2ca142dae4" name="PARAMS" type="string"/>
+ <returnParameter xmi:uuid="mmuuid:f2177d04-1cf4-1f76-a60a-ef2ca142dae4" type="string"/>
+ </mmfunction:ScalarFunction>
+ <mmfunction:ScalarFunction xmi:uuid="mmuuid:b7f100c0-abcd-1f7b-8928-e3ec4f4f400f" name="sdo_nn_distance" category="Miscellaneous" pushDown="REQUIRED" invocationClass="none" invocationMethod="none">
+ <inputParameters xmi:uuid="mmuuid:b7f100c1-abcd-1f7b-8928-e3ec4f4f400f" name="number" type="integer"/>
+ <returnParameter xmi:uuid="mmuuid:b7f100c2-abcd-1f7b-8928-e3ec4f4f400f" type="integer"/>
+ </mmfunction:ScalarFunction>
+ <mmfunction:ScalarFunction xmi:uuid="mmuuid:0678e3c0-ef9e-1f8f-972f-81dc9991b565" name="sdo_nn" category="Miscellaneous" pushDown="REQUIRED" invocationClass="none" invocationMethod="none">
+ <inputParameters xmi:uuid="mmuuid:0678e3c1-ef9e-1f8f-972f-81dc9991b565" name="GEOM1" type="string"/>
+ <inputParameters xmi:uuid="mmuuid:0678e3c3-ef9e-1f8f-972f-81dc9991b565" name="GEOM2" type="object"/>
+ <inputParameters xmi:uuid="mmuuid:0678e3c6-ef9e-1f8f-972f-81dc9991b565" name="PARAMS" type="string"/>
+ <inputParameters xmi:uuid="mmuuid:0678e3c4-ef9e-1f8f-972f-81dc9991b565" name="NUMBER" type="integer"/>
+ <inputParameters xmi:uuid="mmuuid:0678e3c2-ef9e-1f8f-972f-81dc9991b565" name="NUMBER" type="integer"/>
+ <returnParameter xmi:uuid="mmuuid:0678e3c5-ef9e-1f8f-972f-81dc9991b565" type="string"/>
+ </mmfunction:ScalarFunction>
+ <mmfunction:ScalarFunction xmi:uuid="mmuuid:59fbf340-efa1-1f8f-972f-81dc9991b565" name="sdo_nn" category="Miscellaneous" pushDown="REQUIRED" invocationClass="none" invocationMethod="none">
+ <inputParameters xmi:uuid="mmuuid:59fbf344-efa1-1f8f-972f-81dc9991b565" name="GEOM1" type="object"/>
+ <inputParameters xmi:uuid="mmuuid:59fbf345-efa1-1f8f-972f-81dc9991b565" name="GEOM2" type="object"/>
+ <inputParameters xmi:uuid="mmuuid:59fbf342-efa1-1f8f-972f-81dc9991b565" name="PARAMS" type="string"/>
+ <inputParameters xmi:uuid="mmuuid:59fbf343-efa1-1f8f-972f-81dc9991b565" name="NUMBER" type="integer"/>
+ <returnParameter xmi:uuid="mmuuid:59fbf341-efa1-1f8f-972f-81dc9991b565" type="string"/>
+ </mmfunction:ScalarFunction>
+ <mmfunction:ScalarFunction xmi:uuid="mmuuid:59fbf346-efa1-1f8f-972f-81dc9991b565" name="sdo_nn" category="Miscellaneous" pushDown="REQUIRED" invocationClass="none" invocationMethod="none">
+ <inputParameters xmi:uuid="mmuuid:59fbf34b-efa1-1f8f-972f-81dc9991b565" name="GEOM1" type="object"/>
+ <inputParameters xmi:uuid="mmuuid:59fbf347-efa1-1f8f-972f-81dc9991b565" name="GEOM2" type="string"/>
+ <inputParameters xmi:uuid="mmuuid:59fbf349-efa1-1f8f-972f-81dc9991b565" name="PARAMS" type="string"/>
+ <inputParameters xmi:uuid="mmuuid:59fbf348-efa1-1f8f-972f-81dc9991b565" name="NUMBER" type="integer"/>
+ <returnParameter xmi:uuid="mmuuid:59fbf34a-efa1-1f8f-972f-81dc9991b565" type="string"/>
+ </mmfunction:ScalarFunction>
+</xmi:XMI>
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-08-17 21:38:58 UTC (rev 1254)
+++ trunk/connectors/connector-jdbc/src/main/resources/org/teiid/connector/jdbc/i18n.properties 2009-08-18 03:01:39 UTC (rev 1255)
@@ -73,3 +73,5 @@
BasicResultsTranslator.Couldn__t_parse_property=Could not parse property: {0}
JDBCMetadataProcessor.cannot_find_primary=Cannot find primary key table {0}
+
+OracleSpatialSQLTranslator.SDO_NN_DEPENDENCY_ERROR=The SDO_NN_DISTANCE operator can only be used in conjunction with the SDO_NN operator.
Modified: trunk/connectors/connector-jdbc/src/test/java/org/teiid/connector/jdbc/oracle/TestOracleTranslator.java
===================================================================
--- trunk/connectors/connector-jdbc/src/test/java/org/teiid/connector/jdbc/oracle/TestOracleTranslator.java 2009-08-17 21:38:58 UTC (rev 1254)
+++ trunk/connectors/connector-jdbc/src/test/java/org/teiid/connector/jdbc/oracle/TestOracleTranslator.java 2009-08-18 03:01:39 UTC (rev 1255)
@@ -22,8 +22,11 @@
package org.teiid.connector.jdbc.oracle;
+import java.io.File;
+import java.net.URL;
import java.util.Properties;
+import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
@@ -35,6 +38,8 @@
import com.metamatrix.cdk.api.EnvironmentUtility;
import com.metamatrix.cdk.unittest.FakeTranslationFactory;
+import com.metamatrix.query.function.FunctionLibraryManager;
+import com.metamatrix.query.function.UDFSource;
public class TestOracleTranslator {
@@ -43,20 +48,35 @@
*/
private static Translator TRANSLATOR;
+ @BeforeClass public static void oneTimeSetup() throws Exception {
+ TRANSLATOR = new OracleSQLTranslator();
+ TRANSLATOR.initialize(EnvironmentUtility.createEnvironment(new Properties(), false));
+ // Define a UDFSource to hold the reference to our function definitions
+ File udfFile = new File("src/main/resources/OracleSpatialFunctions.xmi"); //$NON-NLS-1$;
+ URL[] urls = new URL[0];
+ UDFSource udfSource = new UDFSource(udfFile.toURI().toURL(), urls);
+ FunctionLibraryManager.deregisterSource(udfSource);
+ FunctionLibraryManager.registerSource(udfSource);
+ }
+
/**
- * Performs setup tasks that should be executed prior to an instance of this
- * class being created. This method should only be executed once and does
+ * Performs cleanup tasks that should be executed after all test methods
+ * have been executed. This method should only be executed once and does
* not protect from multiple executions. It is intended to be executed by
* the JUnit4 test framework.
* <p>
- * This method sets {@link TestOracleTranslator#TRANSLATOR} to an instance
- * of {@link OracleSQLTranslator} and then calls its {@link OracleSQLTranslator#initialize(ConnectorEnvironment)}
- * method.
+ * This method unloads the function definitions supported by the Oracle Spatial
+ * Connector from the global instance of <code>FunctionLibraryManager</code>
+ * so that they are no longer resolvable during query parsing.
+ *
* @throws Exception
*/
- @BeforeClass public static void oneTimeSetup() throws Exception {
- TRANSLATOR = new OracleSQLTranslator();
- TRANSLATOR.initialize(EnvironmentUtility.createEnvironment(new Properties(), false));
+ @AfterClass public static void oneTimeFinished() throws Exception {
+ // Define a UDFSource to hold the reference to our function definitions
+ File udfFile = new File("src/main/resources/OracleSpatialFunctions.xmi"); //$NON-NLS-1$;
+ URL[] urls = new URL[0];
+ UDFSource udfSource = new UDFSource(udfFile.toURI().toURL(), urls);
+ FunctionLibraryManager.deregisterSource(udfSource);
}
private void helpTestVisitor(String input, String expectedOutput) throws ConnectorException {
@@ -289,5 +309,111 @@
input, output,
TRANSLATOR);
}
+
+ /**
+ * Test a query which uses
+ * <code>sdo_relate(Object element, Object element, String literal) in its
+ * criteria into a source specific command.
+ *
+ * @throws Exception
+ */
+ @Test public void testRewrite_sdo_relate() throws Exception {
+ String input = "SELECT a.INTKEY FROM BQT1.SMALLA A, BQT1.SMALLB B WHERE sdo_relate(A.OBJECTVALUE, b.OBJECTVALUE, 'mask=ANYINTERACT') = true"; //$NON-NLS-1$
+ String output = "SELECT /*+ ORDERED */ A.IntKey FROM SmallA A, SmallB B WHERE sdo_relate(A.ObjectValue, B.ObjectValue, 'mask=ANYINTERACT') = 'true'"; //$NON-NLS-1$
+ MetadataFactory.helpTestVisitor(MetadataFactory.BQT_VDB,
+ input, output,
+ TRANSLATOR);
+ }
+
+ /**
+ * Test a query which uses
+ * <code>sdo_within_distance(Object element, String literal, String literal)
+ * in its criteria into a source specific command.
+ *
+ * @throws Exception
+ */
+ @Test public void testRewrite_sdo_within_distance() throws Exception {
+ String input = "SELECT INTKEY FROM BQT1.SMALLA WHERE sdo_within_distance(OBJECTVALUE, 'SDO_GEOMETRY(2001, 8307, MDSYS.SDO_POINT_TYPE(90.0, -45.0, NULL), NULL, NULL)', 'DISTANCE=25.0 UNIT=NAUT_MILE') = true"; //$NON-NLS-1$
+ String output = "SELECT SmallA.IntKey FROM SmallA WHERE sdo_within_distance(SmallA.ObjectValue, SDO_GEOMETRY(2001, 8307, MDSYS.SDO_POINT_TYPE(90.0, -45.0, NULL), NULL, NULL), 'DISTANCE=25.0 UNIT=NAUT_MILE') = 'true'"; //$NON-NLS-1$
+
+ MetadataFactory.helpTestVisitor(MetadataFactory.BQT_VDB,
+ input, output,
+ TRANSLATOR);
+ }
+
+ /**
+ * Test a query which uses
+ * <code>sdo_within_distance(String literal, Object element, String literal)
+ * in its criteria into a source specific command.
+ *
+ * @throws Exception
+ */
+ @Test public void testRewrite_sdo_within_distance2() throws Exception {
+ String input = "SELECT INTKEY FROM BQT1.SMALLA WHERE sdo_within_distance('SDO_GEOMETRY(2001, 8307, MDSYS.SDO_POINT_TYPE(90.0, -45.0, NULL), NULL, NULL)', OBJECTVALUE, 'DISTANCE=25.0 UNIT=NAUT_MILE') = true"; //$NON-NLS-1$
+ String output = "SELECT SmallA.IntKey FROM SmallA WHERE sdo_within_distance(SDO_GEOMETRY(2001, 8307, MDSYS.SDO_POINT_TYPE(90.0, -45.0, NULL), NULL, NULL), SmallA.ObjectValue, 'DISTANCE=25.0 UNIT=NAUT_MILE') = 'true'"; //$NON-NLS-1$
+
+ MetadataFactory.helpTestVisitor(MetadataFactory.BQT_VDB,
+ input, output,
+ TRANSLATOR);
+ }
+
+ /**
+ * Test a query which uses
+ * <code>sdo_within_distance(String element, String literal, String literal)
+ * in its criteria into a source specific command.
+ *
+ * @throws Exception
+ */
+ @Test public void testRewrite_sdo_within_distance3() throws Exception {
+ String input = "SELECT INTKEY FROM BQT1.SMALLA WHERE sdo_within_distance(STRINGKEY, 'SDO_GEOMETRY(2001, 8307, MDSYS.SDO_POINT_TYPE(90.0, -45.0, NULL), NULL, NULL)', 'DISTANCE=25.0 UNIT=NAUT_MILE') = true"; //$NON-NLS-1$
+ // using ? for bind value as rewriter marks the criteria as bindEligible
+ // due to literal of type Object appearing in left side of criteria.
+ // The literal Object is a result of the sdo_within_distance function
+ // signature being sdo_within_distance(string, object, string) : string
+ // as the signature was the best match for this query.
+ String output = "SELECT SmallA.IntKey FROM SmallA WHERE sdo_within_distance(SmallA.StringKey, SDO_GEOMETRY(2001, 8307, MDSYS.SDO_POINT_TYPE(90.0, -45.0, NULL), NULL, NULL), 'DISTANCE=25.0 UNIT=NAUT_MILE') = ?"; //$NON-NLS-1$
+
+ MetadataFactory.helpTestVisitor(MetadataFactory.BQT_VDB,
+ input, output,
+ TRANSLATOR);
+ }
+
+ /**
+ * Test a query which uses
+ * <code>sdo_within_distance(String literal, String literal, String literal)
+ * in its criteria into a source specific command.
+ *
+ * @throws Exception
+ */
+ @Test public void testRewrite_sdo_within_distance4() throws Exception {
+ String input = "SELECT INTKEY FROM BQT1.SMALLA WHERE sdo_within_distance('SDO_GEOMETRY(2001, 8307, MDSYS.SDO_POINT_TYPE(90.0, -45.0, NULL), NULL, NULL)', 'SDO_GEOMETRY(2001, 8307, MDSYS.SDO_POINT_TYPE(90.0, -45.0, NULL), NULL, NULL)', 'DISTANCE=25.0 UNIT=NAUT_MILE') = true"; //$NON-NLS-1$
+ // using ? for bind value as rewriter marks the criteria as bindEligible
+ // due to literal of type Object appearing in left side of criteria.
+ // The literal Object is a result of the sdo_within_distance function
+ // signature being sdo_within_distance(string, object, string) : string
+ // as the signature was the best match for this query.
+ String output = "SELECT SmallA.IntKey FROM SmallA WHERE sdo_within_distance(SDO_GEOMETRY(2001, 8307, MDSYS.SDO_POINT_TYPE(90.0, -45.0, NULL), NULL, NULL), SDO_GEOMETRY(2001, 8307, MDSYS.SDO_POINT_TYPE(90.0, -45.0, NULL), NULL, NULL), 'DISTANCE=25.0 UNIT=NAUT_MILE') = ?"; //$NON-NLS-1$
+
+ MetadataFactory.helpTestVisitor(MetadataFactory.BQT_VDB,
+ input, output,
+ TRANSLATOR);
+ }
+
+ /**
+ * Test a query which uses
+ * <code>sdo_within_distance(Object element, Object element, String literal)
+ * in its criteria into a source specific command.
+ *
+ * @throws Exception
+ */
+ @Test public void testRewrite_sdo_within_distance5() throws Exception {
+ String input = "SELECT a.INTKEY FROM BQT1.SMALLA A, BQT1.SMALLB B WHERE sdo_within_distance(a.OBJECTVALUE, b.OBJECTVALUE, 'DISTANCE=25.0 UNIT=NAUT_MILE') = true"; //$NON-NLS-1$
+ String output = "SELECT A.IntKey FROM SmallA A, SmallB B WHERE sdo_within_distance(A.ObjectValue, B.ObjectValue, 'DISTANCE=25.0 UNIT=NAUT_MILE') = 'true'"; //$NON-NLS-1$
+
+ MetadataFactory.helpTestVisitor(MetadataFactory.BQT_VDB,
+ input, output,
+ TRANSLATOR);
+ }
+
}
Modified: trunk/connectors/sandbox/pom.xml
===================================================================
--- trunk/connectors/sandbox/pom.xml 2009-08-17 21:38:58 UTC (rev 1254)
+++ trunk/connectors/sandbox/pom.xml 2009-08-18 03:01:39 UTC (rev 1255)
@@ -15,6 +15,5 @@
<module>connector-yahoo</module>
<module>connector-exec</module>
<module>connector-object</module>
- <module>connector-oracle-spatial</module>
</modules>
</project>
\ No newline at end of file
13 years, 9 months
teiid SVN: r1254 - in trunk: client/src/main/java/org/teiid/adminapi and 15 other directories.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2009-08-17 17:38:58 -0400 (Mon, 17 Aug 2009)
New Revision: 1254
Removed:
trunk/common-internal/src/main/java/com/metamatrix/common/stats/
Modified:
trunk/client/src/main/java/com/metamatrix/admin/objects/MMAdminObject.java
trunk/client/src/main/java/com/metamatrix/admin/objects/MMConnectionPool.java
trunk/client/src/main/java/org/teiid/adminapi/ConnectionPool.java
trunk/client/src/main/java/org/teiid/adminapi/MonitoringAdmin.java
trunk/common-internal/src/main/java/com/metamatrix/common/config/model/BasicExtensionModule.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/pooling/connector/ConnectionPool.java
trunk/engine/src/main/java/org/teiid/dqp/internal/pooling/connector/PooledConnector.java
trunk/engine/src/test/java/org/teiid/dqp/internal/pooling/connector/TestPooledConnector.java
trunk/runtime/src/main/java/com/metamatrix/dqp/embedded/admin/DQPMonitoringAdminImpl.java
trunk/runtime/src/main/java/com/metamatrix/dqp/embedded/services/EmbeddedDataService.java
trunk/server/src/main/java/com/metamatrix/admin/server/AbstractAdminImpl.java
trunk/server/src/main/java/com/metamatrix/admin/server/ServerConfigAdminImpl.java
trunk/server/src/main/java/com/metamatrix/admin/server/ServerMonitoringAdminImpl.java
trunk/server/src/main/java/com/metamatrix/platform/admin/apiimpl/RuntimeStateAdminAPIHelper.java
trunk/server/src/main/java/com/metamatrix/platform/service/api/ServiceInterface.java
trunk/server/src/main/java/com/metamatrix/platform/service/controller/AbstractService.java
trunk/server/src/main/java/com/metamatrix/server/connector/service/ConnectorService.java
trunk/server/src/main/java/com/metamatrix/server/connector/service/ConnectorServiceInterface.java
trunk/server/src/test/java/com/metamatrix/admin/server/FakeCacheAdmin.java
trunk/server/src/test/java/com/metamatrix/admin/server/FakeConfigurationService.java
trunk/server/src/test/java/com/metamatrix/admin/server/FakeQueryService.java
trunk/server/src/test/java/com/metamatrix/admin/server/FakeServerSessionService.java
trunk/server/src/test/java/com/metamatrix/platform/service/controller/FakeService.java
Log:
TEIID-580 finishing the implementation of connectionpool monitoring for use in embedded and the new server.
Modified: trunk/client/src/main/java/com/metamatrix/admin/objects/MMAdminObject.java
===================================================================
--- trunk/client/src/main/java/com/metamatrix/admin/objects/MMAdminObject.java 2009-08-17 21:28:20 UTC (rev 1253)
+++ trunk/client/src/main/java/com/metamatrix/admin/objects/MMAdminObject.java 2009-08-17 21:38:58 UTC (rev 1254)
@@ -31,6 +31,7 @@
import org.teiid.adminapi.AdminException;
import org.teiid.adminapi.AdminObject;
import org.teiid.adminapi.AdminProcessingException;
+import org.teiid.adminapi.ConnectionPool;
import org.teiid.adminapi.Transaction;
import com.metamatrix.admin.AdminPlugin;
@@ -94,9 +95,10 @@
public static final int OBJECT_TYPE_VDB = 21;
/**Object type code for TRANSACTION*/
public static final int OBJECT_TYPE_TRANSACTION = 22;
+ /**Object type code for CONNECTION_POOL*/
+ public static final int OBJECT_TYPE_CONNECTION_POOL = 23;
-
//map of String (class name) to Integer (object type code)
private static HashMap objectTypeMap = new HashMap();
@@ -124,6 +126,7 @@
objectTypeMap.put(org.teiid.adminapi.User.class.getName(), new Integer(OBJECT_TYPE_USER));
objectTypeMap.put(org.teiid.adminapi.VDB.class.getName(), new Integer(OBJECT_TYPE_VDB));
objectTypeMap.put(Transaction.class.getName(), Integer.valueOf(OBJECT_TYPE_TRANSACTION));
+ objectTypeMap.put(ConnectionPool.class.getName(), Integer.valueOf(OBJECT_TYPE_CONNECTION_POOL));
}
Modified: trunk/client/src/main/java/com/metamatrix/admin/objects/MMConnectionPool.java
===================================================================
--- trunk/client/src/main/java/com/metamatrix/admin/objects/MMConnectionPool.java 2009-08-17 21:28:20 UTC (rev 1253)
+++ trunk/client/src/main/java/com/metamatrix/admin/objects/MMConnectionPool.java 2009-08-17 21:38:58 UTC (rev 1254)
@@ -2,31 +2,15 @@
import org.teiid.adminapi.ConnectionPool;
-public class MMConnectionPool extends MMAdminObject implements ConnectionPool {
+public class MMConnectionPool implements ConnectionPool {
/**
* @since 6.1
*/
private static final long serialVersionUID = -2341549955193216875L;
- /**
- * This will the name of the connector binding
- */
- private String connectorBindingName;
-
-
+ private boolean xa;
/**
- * This will be identifier used in the registry to identify the connector
- * binding and in which host and process that it's running in
- */
- private String connectorBindingIdentifier;
-
-
- private int poolType;
-
-
- // current state
- /**
* Number of connections currently in use by a client
*/
private int connectionInUse;
@@ -39,8 +23,6 @@
*/
private int totalConnections;
-
- // total counts never reset
/**
* Total number of connections that have been destroyed since the inception of the pool
*/
@@ -49,41 +31,26 @@
* Total number of connections that have been created since the inception of the pool
*/
private long connectionsCreated;
-
- public MMConnectionPool() {
- }
-
+ private String connectorBindingIdentifier;
+
public boolean isXAPoolType() {
- return (this.poolType==1?true:false);
+ return xa;
}
- public int getPoolType() {
- return this.poolType;
+ public void setXa(boolean xa) {
+ this.xa = xa;
}
- public void setPoolType(int type) {
- this.poolType = type;
+ @Override
+ public String getConnectorBindingIdentifier() {
+ return connectorBindingIdentifier;
}
-
- public String getConnectorBindingName() {
- return connectorBindingName;
- }
- public void setConnectorBindingName(String bindingName) {
- this.connectorBindingName = bindingName;
+ public void setConnectorBindingIdentifier(String connectorBindingIdentifier) {
+ this.connectorBindingIdentifier = connectorBindingIdentifier;
}
-
- public String getConnectorBindingIdentifier() {
- return connectorBindingIdentifier;
- }
-
- public void setConnectorBindingIdentifier(String identifier) {
- this.connectorBindingIdentifier = identifier;
- }
-
-
public int getConnectionsInuse() {
return this.connectionInUse;
}
@@ -134,7 +101,7 @@
public String toString() {
StringBuffer str = new StringBuffer();
- str.append(this.getIdentifier() + " ConnectionPoolStats:\n"); //$NON-NLS-1$
+ str.append(this.connectorBindingIdentifier + " ConnectionPoolStats:\n"); //$NON-NLS-1$
str.append("\tisXAPoolType = " + isXAPoolType()); //$NON-NLS-1$
str.append("\ttotalConnections = " + this.totalConnections); //$NON-NLS-1$
str.append("\tinUseConnections = " + this.connectionInUse); //$NON-NLS-1$
Modified: trunk/client/src/main/java/org/teiid/adminapi/ConnectionPool.java
===================================================================
--- trunk/client/src/main/java/org/teiid/adminapi/ConnectionPool.java 2009-08-17 21:28:20 UTC (rev 1253)
+++ trunk/client/src/main/java/org/teiid/adminapi/ConnectionPool.java 2009-08-17 21:38:58 UTC (rev 1254)
@@ -22,48 +22,52 @@
package org.teiid.adminapi;
+import java.io.Serializable;
+
/**
- * This object holds the statisics for a ConnectionPool that is being utilized by a Connector.
+ * This object holds the statistics for a ConnectionPool that is being utilized by a Connector.
* As per how many available connections
* processed etc.
- * <p>An identifier for QueueWorkerPool, is nothing but the modules it self, like "DQP",
+ * <p>An identifier for ConnectionPool, is nothing but the modules it self, like "DQP",
* "QueryService" or Connector Binding names etc.</p>
*
* @since 4.3
*/
-public interface ConnectionPool extends AdminObject {
+public interface ConnectionPool extends Serializable {
/**
* @return Returns total number of current connections in the Connection Pool
- * @since 6.1
*/
- public int getTotalConnections();
+ int getTotalConnections();
/**
* @return Returns the number of connections waiting for use in the connection pool.
- * @since 6.1
*/
- public int getConnectionsWaiting();
+ int getConnectionsWaiting();
/**
* @return Returns the number of Connections currently in use by clients.
- *
- * @since 6.1
*/
- public int getConnectionsInuse();
+ int getConnectionsInuse();
/**
* @return Returns the number of Connections created since the Connection Pool was created.
- * @since 6.1
*/
long getConnectionsCreated();
-
/**
* @return The number of Connections destroyed since the Connection Pool was created.
*/
long getConnectionsDestroyed();
-
+ /**
+ * @return true if this represents an XA connection pool
+ */
+ boolean isXAPoolType();
+ /**
+ * @return the identifier of the connector binding this pool is used with
+ */
+ String getConnectorBindingIdentifier();
+
}
Modified: trunk/client/src/main/java/org/teiid/adminapi/MonitoringAdmin.java
===================================================================
--- trunk/client/src/main/java/org/teiid/adminapi/MonitoringAdmin.java 2009-08-17 21:28:20 UTC (rev 1253)
+++ trunk/client/src/main/java/org/teiid/adminapi/MonitoringAdmin.java 2009-08-17 21:38:58 UTC (rev 1254)
@@ -160,7 +160,7 @@
* @throws AdminException if there's a system error.
* @since 6.1
*/
- Collection getConnectionPoolStats(String identifier) throws AdminException;
+ Collection<? extends ConnectionPool> getConnectionPoolStats(String identifier) throws AdminException;
/**
Modified: trunk/common-internal/src/main/java/com/metamatrix/common/config/model/BasicExtensionModule.java
===================================================================
--- trunk/common-internal/src/main/java/com/metamatrix/common/config/model/BasicExtensionModule.java 2009-08-17 21:28:20 UTC (rev 1253)
+++ trunk/common-internal/src/main/java/com/metamatrix/common/config/model/BasicExtensionModule.java 2009-08-17 21:38:58 UTC (rev 1254)
@@ -48,16 +48,8 @@
}
public BasicExtensionModule(String name, String description, byte[] contents) {
- super(new ConfigurationID(name), new ExtensionID(name), new ComponentTypeID(name));
- this.type = sniffType(name);
- this.contents = contents;
- setDescription(description);
-
- if (contents == null ) {
- throw new IllegalArgumentException();
- }
+ this(name, sniffType(name), description, contents);
}
-
protected BasicExtensionModule(BasicExtensionModule component) {
super(component);
Modified: trunk/engine/src/main/java/com/metamatrix/dqp/service/DataService.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/dqp/service/DataService.java 2009-08-17 21:28:20 UTC (rev 1253)
+++ trunk/engine/src/main/java/com/metamatrix/dqp/service/DataService.java 2009-08-17 21:38:58 UTC (rev 1254)
@@ -26,6 +26,7 @@
import java.util.List;
import java.util.Properties;
+import org.teiid.adminapi.ConnectionPool;
import org.teiid.connector.metadata.runtime.ConnectorMetadata;
import org.teiid.dqp.internal.process.DQPWorkContext;
@@ -161,10 +162,10 @@
/**
* Get connection pool statistics for connector binding
* @param connectorBindingName - Name of the connector binding
- * @return a list of {@link com.metamatrix.common.stats.ConnectionPoolStats}
+ * @return a list of {@link com.metamatrix.admin.objects.ConnectionPoolStatsImpl}
* @throws MetaMatrixComponentException
* @since 6.1
*/
- Collection getConnectionPoolStatistics(String connectorBindingName)
+ Collection<? extends ConnectionPool> getConnectionPoolStatistics(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-08-17 21:28:20 UTC (rev 1253)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorManager.java 2009-08-17 21:38:58 UTC (rev 1254)
@@ -60,6 +60,7 @@
import org.teiid.dqp.internal.process.DQPWorkContext;
import org.teiid.dqp.internal.transaction.TransactionProvider;
+import com.metamatrix.admin.objects.MMConnectionPool;
import com.metamatrix.api.exception.MetaMatrixComponentException;
import com.metamatrix.common.application.ApplicationEnvironment;
import com.metamatrix.common.application.ApplicationService;
@@ -70,7 +71,6 @@
import com.metamatrix.common.queue.WorkerPool;
import com.metamatrix.common.queue.WorkerPoolFactory;
import com.metamatrix.common.queue.WorkerPoolStats;
-import com.metamatrix.common.stats.ConnectionPoolStats;
import com.metamatrix.common.util.PropertiesUtils;
import com.metamatrix.core.MetaMatrixCoreException;
import com.metamatrix.core.log.MessageLevel;
@@ -741,7 +741,7 @@
}
}
- public Collection<ConnectionPoolStats> getConnectionPoolStats() {
+ public Collection<MMConnectionPool> getConnectionPoolStats() {
if (connector instanceof PooledConnector) {
PooledConnector pc = (PooledConnector) connector;
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/pooling/connector/ConnectionPool.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/pooling/connector/ConnectionPool.java 2009-08-17 21:28:20 UTC (rev 1253)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/pooling/connector/ConnectionPool.java 2009-08-17 21:38:58 UTC (rev 1254)
@@ -128,19 +128,10 @@
*/
private volatile int totalConnectionCount;
/**
- * Total number of connections that have been created since the inception of this pool
- */
- private volatile int totalCreatedConnections;
- /**
* Total number of connections that have been destroyed since the inception of this pool
*/
private volatile int totalDestroyedConnections;
- /**
- * The number of connections currently in use by a client
- */
- private volatile int totalConnectionsInUse;
-
private volatile boolean shuttingDownPool;
/**
@@ -265,7 +256,6 @@
LogManager.logDetail(CTX_CONNECTOR, new Object[] {"Existing connection leased for", id}); //$NON-NLS-1$
connLists.used.addLast(conn);
success = true;
- this.totalConnectionsInUse++;
return conn;
} catch (ConnectorException e) {
LogManager.logDetail(CTX_CONNECTOR, new Object[] {"Existing connection failed to have identity updated", id}); //$NON-NLS-1$
@@ -287,7 +277,6 @@
}
updateStateWithNewConnection(id, connection, idSize);
- this.totalConnectionsInUse++;
success = true;
return connection;
} catch (InterruptedException err) {
@@ -307,14 +296,14 @@
private void updateStateWithNewConnection(ConnectorIdentity id,
ConnectionWrapper connection,
int idSize) {
- Collection ids = null;
+ Collection<ConnectionsForId> ids = null;
synchronized (this.lock) {
this.reverseIdConnections.put(connection, id);
this.totalConnectionCount++;
if (this.totalConnectionCount > this.maxConnections) {
- ids = new ArrayList(this.idConnections.values());
+ ids = new ArrayList<ConnectionsForId>(this.idConnections.values());
}
// Log warnings if we hit the max connection count or the max count per pool - if both
@@ -330,8 +319,8 @@
//release any unused connection
//TODO: this search is biased and slow
if (ids != null) {
- for (Iterator i = ids.iterator(); i.hasNext() && this.totalConnectionCount > this.maxConnections;) {
- ConnectionsForId connsForId = (ConnectionsForId)i.next();
+ for (Iterator<ConnectionsForId> i = ids.iterator(); i.hasNext() && this.totalConnectionCount > this.maxConnections;) {
+ ConnectionsForId connsForId = i.next();
synchronized (connsForId) {
if (connsForId.unused.isEmpty()) {
continue;
@@ -354,7 +343,6 @@
connection = this.connectionFactory.getActualConnector().getConnection(id);
}
sourceConnection = new ConnectionWrapper(connection, this, testConnectInterval);
- this.totalCreatedConnections++;
LogManager.logTrace(CTX_CONNECTOR, new Object[] {"Connection pool created a connection for", id}); //$NON-NLS-1$
} catch (ConnectorException e) {
@@ -376,7 +364,6 @@
}
synchronized (connLists) {
- totalConnectionsInUse--;
//release it only if there is one.
//If the same connection is to be released twice, just ignore
if ( connLists.used.remove(connection)) {
@@ -416,23 +403,22 @@
}
protected void cleanUp(boolean forceClose) {
- Map values = null;
+ Map<ConnectorIdentity, ConnectionsForId> values = null;
synchronized (this.lock) {
- values = new HashMap(this.idConnections);
+ values = new HashMap<ConnectorIdentity, ConnectionsForId>(this.idConnections);
}
- for (Iterator i = values.entrySet().iterator(); i.hasNext();) {
- Map.Entry entry = (Map.Entry)i.next();
- ConnectionsForId connLists = (ConnectionsForId)entry.getValue();
+ for (Map.Entry<ConnectorIdentity, ConnectionsForId> entry : values.entrySet()) {
+ ConnectionsForId connLists = entry.getValue();
synchronized (connLists) {
- for ( Iterator unusedIter = connLists.unused.iterator(); unusedIter.hasNext(); ) {
- ConnectionWrapper unusedConnection = (ConnectionWrapper) unusedIter.next();
+ for ( Iterator<ConnectionWrapper> unusedIter = connLists.unused.iterator(); unusedIter.hasNext(); ) {
+ ConnectionWrapper unusedConnection = unusedIter.next();
if (forceClose || (enableShrinking && System.currentTimeMillis() - unusedConnection.getTimeReturnedToPool() >= this.liveAndUnusedTime)
|| !unusedConnection.isAlive() ) {
unusedIter.remove();
- closeSourceConnection(unusedConnection, (ConnectorIdentity)entry.getKey());
+ closeSourceConnection(unusedConnection, entry.getKey());
}
}
}
@@ -502,7 +488,7 @@
}
int getTotalCreatedConnectionCount() {
- return this.totalCreatedConnections;
+ return this.totalDestroyedConnections + this.totalConnectionCount;
}
int getTotalDestroyedConnectionCount() {
@@ -510,11 +496,11 @@
}
int getNumberOfConnectionsInUse() {
- return this.totalConnectionsInUse;
+ return maxConnections - this.poolSemaphore.availablePermits();
}
int getNumberOfConnectinsWaiting() {
- return this.totalConnectionCount - this.totalConnectionsInUse;
+ return this.totalConnectionCount - getNumberOfConnectionsInUse();
}
}
\ No newline at end of file
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/pooling/connector/PooledConnector.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/pooling/connector/PooledConnector.java 2009-08-17 21:28:20 UTC (rev 1253)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/pooling/connector/PooledConnector.java 2009-08-17 21:38:58 UTC (rev 1254)
@@ -23,9 +23,9 @@
package org.teiid.dqp.internal.pooling.connector;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import javax.transaction.RollbackException;
@@ -42,7 +42,7 @@
import org.teiid.connector.xa.api.XAConnector;
import org.teiid.dqp.internal.datamgr.impl.ConnectorWrapper;
-import com.metamatrix.common.stats.ConnectionPoolStats;
+import com.metamatrix.admin.objects.MMConnectionPool;
import com.metamatrix.dqp.service.ConnectorStatus;
@@ -91,22 +91,15 @@
private ConnectionPool pool;
private ConnectionPool xaPool;
- private ConnectionPoolStats poolStats=null;
- private ConnectionPoolStats xaPoolStats=null;
-
private Map<String, ConnectionWrapper> idToConnections = Collections.synchronizedMap(new HashMap<String, ConnectionWrapper>());
private ConnectorEnvironment environment;
public PooledConnector(Connector actualConnector) {
super(actualConnector);
pool = new ConnectionPool(this);
- poolStats = new ConnectionPoolStats(ConnectionPoolStats.NON_XA_POOL_TYPE);
- poolStats.setConnectorBindingName(this.getConnectorBindingName());
if (actualConnector instanceof XAConnector) {
xaPool = new ConnectionPool(this);
- xaPoolStats = new ConnectionPoolStats(ConnectionPoolStats.XA_POOL_TYPE);
- xaPoolStats.setConnectorBindingName(this.getConnectorBindingName());
}
}
@@ -178,15 +171,16 @@
return conn;
}
- public Collection<ConnectionPoolStats> getConnectionPoolStats() {
- Collection<ConnectionPoolStats> pools = new ArrayList<ConnectionPoolStats>(2);
+ public List<MMConnectionPool> getConnectionPoolStats() {
+ List<MMConnectionPool> pools = new ArrayList<MMConnectionPool>(2);
- setStats(pool, poolStats);
- pools.add(poolStats);
+ MMConnectionPool stats = getStats(pool);
+ pools.add(stats);
if (xaPool != null) {
- setStats(xaPool, xaPoolStats);
- pools.add(xaPoolStats);
+ stats = getStats(xaPool);
+ stats.setXa(true);
+ pools.add(stats);
}
return pools;
@@ -206,13 +200,14 @@
return super.testConnection();
}
- private void setStats(ConnectionPool connpool, ConnectionPoolStats stats) {
-
+ private MMConnectionPool getStats(ConnectionPool connpool) {
+ MMConnectionPool stats = new MMConnectionPool();
stats.setConnectionsWaiting(connpool.getNumberOfConnectinsWaiting());
stats.setConnectionsCreated(connpool.getTotalCreatedConnectionCount());
stats.setConnectionsDestroyed(connpool.getTotalDestroyedConnectionCount());
stats.setConnectionsInUse(connpool.getNumberOfConnectionsInUse());
stats.setTotalConnections(connpool.getTotalConnectionCount());
+ return stats;
}
}
Modified: trunk/engine/src/test/java/org/teiid/dqp/internal/pooling/connector/TestPooledConnector.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/dqp/internal/pooling/connector/TestPooledConnector.java 2009-08-17 21:28:20 UTC (rev 1253)
+++ trunk/engine/src/test/java/org/teiid/dqp/internal/pooling/connector/TestPooledConnector.java 2009-08-17 21:38:58 UTC (rev 1254)
@@ -22,13 +22,13 @@
package org.teiid.dqp.internal.pooling.connector;
-import java.util.Collection;
+import static org.junit.Assert.*;
+
+import java.util.List;
import java.util.Properties;
import javax.transaction.Transaction;
-import static org.junit.Assert.*;
-
import org.junit.Test;
import org.mockito.Mockito;
import org.teiid.connector.api.ConnectorLogger;
@@ -38,6 +38,7 @@
import org.teiid.connector.xa.api.XAConnector;
import org.teiid.dqp.internal.datamgr.impl.ConnectorEnvironmentImpl;
+import com.metamatrix.admin.objects.MMConnectionPool;
import com.metamatrix.common.application.ApplicationEnvironment;
public class TestPooledConnector {
@@ -54,8 +55,14 @@
XAConnection conn1 = pc.getXAConnection(Mockito.mock(ExecutionContext.class), tc);
assertSame(conn, conn1);
- Collection stats = pc.getConnectionPoolStats();
+ List<MMConnectionPool> stats = pc.getConnectionPoolStats();
assertEquals(2, stats.size());
+ assertEquals(1, stats.get(1).getConnectionsCreated());
+ conn1.close(); //this is still in a txn so it should still be in use
+
+ stats = pc.getConnectionPoolStats();
+ assertEquals(1, stats.get(1).getConnectionsInuse());
+
pc.stop();
}
Modified: trunk/runtime/src/main/java/com/metamatrix/dqp/embedded/admin/DQPMonitoringAdminImpl.java
===================================================================
--- trunk/runtime/src/main/java/com/metamatrix/dqp/embedded/admin/DQPMonitoringAdminImpl.java 2009-08-17 21:28:20 UTC (rev 1253)
+++ trunk/runtime/src/main/java/com/metamatrix/dqp/embedded/admin/DQPMonitoringAdminImpl.java 2009-08-17 21:38:58 UTC (rev 1254)
@@ -35,6 +35,7 @@
import org.teiid.adminapi.AdminException;
import org.teiid.adminapi.AdminObject;
import org.teiid.adminapi.AdminProcessingException;
+import org.teiid.adminapi.ConnectionPool;
import org.teiid.adminapi.ConnectorBinding;
import org.teiid.adminapi.MonitoringAdmin;
import org.teiid.adminapi.ProcessObject;
@@ -359,7 +360,7 @@
}
@Override
- public Collection getConnectionPoolStats(String identifier)
+ public Collection<? extends ConnectionPool> getConnectionPoolStats(String identifier)
throws AdminException {
try {
Modified: trunk/runtime/src/main/java/com/metamatrix/dqp/embedded/services/EmbeddedDataService.java
===================================================================
--- trunk/runtime/src/main/java/com/metamatrix/dqp/embedded/services/EmbeddedDataService.java 2009-08-17 21:28:20 UTC (rev 1253)
+++ trunk/runtime/src/main/java/com/metamatrix/dqp/embedded/services/EmbeddedDataService.java 2009-08-17 21:38:58 UTC (rev 1254)
@@ -31,12 +31,14 @@
import java.util.Properties;
import java.util.concurrent.atomic.AtomicInteger;
+import org.teiid.adminapi.ConnectionPool;
import org.teiid.connector.api.ConnectorException;
import org.teiid.connector.api.ConnectorPropertyNames;
import org.teiid.connector.metadata.runtime.ConnectorMetadata;
import org.teiid.dqp.internal.datamgr.impl.ConnectorManager;
import org.teiid.dqp.internal.process.DQPWorkContext;
+import com.metamatrix.admin.objects.MMConnectionPool;
import com.metamatrix.api.exception.ComponentNotFoundException;
import com.metamatrix.api.exception.MetaMatrixComponentException;
import com.metamatrix.common.application.ApplicationEnvironment;
@@ -227,12 +229,16 @@
* @see com.metamatrix.dqp.service.DataService#getConnectionPoolStatistics(java.lang.String)
* @since 6.1
*/
- public Collection getConnectionPoolStatistics(String connectorBindingName) throws MetaMatrixComponentException {
+ public Collection<? extends ConnectionPool> getConnectionPoolStatistics(String connectorBindingName) throws MetaMatrixComponentException {
ConnectorBinding binding = getConnectorBinding(connectorBindingName);
if (binding != null) {
ConnectorManager mgr = getConnectorManager(binding);
if (mgr != null ) {
- return mgr.getConnectionPoolStats();
+ Collection<MMConnectionPool> result = mgr.getConnectionPoolStats();
+ for (MMConnectionPool mmConnectionPool : result) {
+ mmConnectionPool.setConnectorBindingIdentifier(binding.getDeployedName());
+ }
+ return result;
}
}
throw new ComponentNotFoundException(DQPEmbeddedPlugin.Util.getString("DataService.Unable_to_find_connector_manager_for_{0}_1", new Object[] { connectorBindingName })); //$NON-NLS-1$
Modified: trunk/server/src/main/java/com/metamatrix/admin/server/AbstractAdminImpl.java
===================================================================
--- trunk/server/src/main/java/com/metamatrix/admin/server/AbstractAdminImpl.java 2009-08-17 21:28:20 UTC (rev 1253)
+++ trunk/server/src/main/java/com/metamatrix/admin/server/AbstractAdminImpl.java 2009-08-17 21:38:58 UTC (rev 1254)
@@ -542,7 +542,9 @@
case MMAdminObject.OBJECT_TYPE_VDB:
return parent.getVDBs(identifier);
case MMAdminObject.OBJECT_TYPE_TRANSACTION:
- return parent.getTransactions();
+ return parent.getTransactions();
+ case MMAdminObject.OBJECT_TYPE_CONNECTION_POOL:
+ return parent.getConnectionPoolStats(identifier);
case MMAdminObject.OBJECT_TYPE_ENTITLEMENT:
case MMAdminObject.OBJECT_TYPE_MODEL:
case MMAdminObject.OBJECT_TYPE_PROPERTY_DEFINITION:
Modified: trunk/server/src/main/java/com/metamatrix/admin/server/ServerConfigAdminImpl.java
===================================================================
--- trunk/server/src/main/java/com/metamatrix/admin/server/ServerConfigAdminImpl.java 2009-08-17 21:28:20 UTC (rev 1253)
+++ trunk/server/src/main/java/com/metamatrix/admin/server/ServerConfigAdminImpl.java 2009-08-17 21:38:58 UTC (rev 1254)
@@ -51,7 +51,6 @@
import org.teiid.adminapi.ScriptsContainer;
import org.teiid.adminapi.SystemObject;
import org.teiid.adminapi.VDB;
-import org.teiid.transport.SSLConfiguration;
import com.metamatrix.admin.AdminPlugin;
import com.metamatrix.admin.api.exception.security.InvalidSessionException;
@@ -59,13 +58,10 @@
import com.metamatrix.admin.objects.MMAdminObject;
import com.metamatrix.admin.objects.MMAdminStatus;
import com.metamatrix.admin.objects.MMConnectorBinding;
-import com.metamatrix.admin.objects.MMLogConfiguration;
import com.metamatrix.admin.objects.MMScriptsContainer;
-import com.metamatrix.admin.objects.MMService;
import com.metamatrix.api.exception.MetaMatrixComponentException;
import com.metamatrix.api.exception.MetaMatrixProcessingException;
import com.metamatrix.api.exception.security.AuthorizationException;
-import com.metamatrix.common.actions.ModificationActionQueue;
import com.metamatrix.common.actions.ModificationException;
import com.metamatrix.common.config.CurrentConfiguration;
import com.metamatrix.common.config.api.AuthenticationProvider;
@@ -94,7 +90,6 @@
import com.metamatrix.common.config.model.BasicConnectorArchive;
import com.metamatrix.common.config.model.BasicExtensionModule;
import com.metamatrix.common.config.model.ConfigurationModelContainerAdapter;
-import com.metamatrix.common.config.model.ConfigurationModelContainerImpl;
import com.metamatrix.common.config.util.ConfigObjectsNotResolvableException;
import com.metamatrix.common.config.util.ConfigurationPropertyNames;
import com.metamatrix.common.config.util.InvalidConfigurationElementException;
@@ -103,8 +98,6 @@
import com.metamatrix.common.extensionmodule.exception.DuplicateExtensionModuleException;
import com.metamatrix.common.extensionmodule.exception.ExtensionModuleNotFoundException;
import com.metamatrix.common.extensionmodule.exception.InvalidExtensionModuleTypeException;
-import com.metamatrix.common.log.LogManager;
-import com.metamatrix.common.util.LogContextsUtil;
import com.metamatrix.common.util.PropertiesUtils;
import com.metamatrix.common.util.crypto.CryptoException;
import com.metamatrix.common.util.crypto.CryptoUtil;
@@ -121,7 +114,6 @@
import com.metamatrix.metadata.runtime.api.VirtualDatabaseID;
import com.metamatrix.metadata.runtime.vdb.defn.VDBCreation;
import com.metamatrix.metadata.runtime.vdb.defn.VDBDefnFactory;
-import com.metamatrix.platform.config.spi.xml.XMLConfigurationMgr;
import com.metamatrix.platform.registry.ClusteredRegistryState;
import com.metamatrix.platform.service.api.exception.ServiceException;
import com.metamatrix.server.admin.apiimpl.MaterializationLoadScriptsImpl;
Modified: trunk/server/src/main/java/com/metamatrix/admin/server/ServerMonitoringAdminImpl.java
===================================================================
--- trunk/server/src/main/java/com/metamatrix/admin/server/ServerMonitoringAdminImpl.java 2009-08-17 21:28:20 UTC (rev 1253)
+++ trunk/server/src/main/java/com/metamatrix/admin/server/ServerMonitoringAdminImpl.java 2009-08-17 21:38:58 UTC (rev 1254)
@@ -22,7 +22,7 @@
package com.metamatrix.admin.server;
-import static org.teiid.dqp.internal.process.Util.convertStats;
+import static org.teiid.dqp.internal.process.Util.*;
import java.io.File;
import java.io.IOException;
@@ -46,7 +46,6 @@
import org.teiid.adminapi.AdminObject;
import org.teiid.adminapi.AdminProcessingException;
import org.teiid.adminapi.Model;
-import org.teiid.adminapi.Resource;
import org.teiid.adminapi.Service;
import org.teiid.adminapi.Session;
import org.teiid.adminapi.SystemObject;
@@ -84,7 +83,6 @@
import com.metamatrix.common.extensionmodule.ExtensionModuleDescriptor;
import com.metamatrix.common.extensionmodule.exception.ExtensionModuleNotFoundException;
import com.metamatrix.common.queue.WorkerPoolStats;
-import com.metamatrix.common.stats.ConnectionPoolStats;
import com.metamatrix.core.util.DateUtil;
import com.metamatrix.core.util.FileUtil;
import com.metamatrix.core.util.FileUtils;
@@ -910,31 +908,14 @@
String[] identifierParts = new String[] {binding.getHostName(),
component.getVMComponentDefnID().getName(),
component.getServiceComponentDefnID().getFullName()};
- if (identifierMatches(identifier, identifierParts)) {
-
- Collection statsCollection = getRuntimeStateAdminAPIHelper().getConnectionPoolStats(binding);
- if (statsCollection != null) {
- for (Iterator iter2 = statsCollection.iterator(); iter2.hasNext();) {
- ConnectionPoolStats stats = (ConnectionPoolStats) iter2.next();
-
- MMConnectionPool mmstats = new MMConnectionPool();
-
- mmstats.setConnectorBindingName(component.getServiceComponentDefnID().getFullName());
- mmstats.setConnectorBindingIdentifier(component.getFullName());
-
- mmstats.setConnectionsInUse(stats.getConnectionsInuse());
- mmstats.setConnectionsCreated(stats.getConnectionsCreated());
- mmstats.setConnectionsDestroyed(stats.getConnectionsDestroyed());
- mmstats.setConnectionsWaiting(stats.getConnectionsWaiting());
- mmstats.setTotalConnections(stats.getTotalConnections());
-
- results.add(mmstats);
- }
- }
-
- }
-
-
+ if (identifierMatches(identifier, identifierParts)) {
+
+ Collection<MMConnectionPool> statsCollection = getRuntimeStateAdminAPIHelper().getConnectionPoolStats(binding);
+ for (MMConnectionPool mmConnectionPool : statsCollection) {
+ mmConnectionPool.setConnectorBindingIdentifier(component.getFullName());
+ results.add(mmConnectionPool);
+ }
+ }
}
}
} catch (MetaMatrixComponentException e) {
Modified: trunk/server/src/main/java/com/metamatrix/platform/admin/apiimpl/RuntimeStateAdminAPIHelper.java
===================================================================
--- trunk/server/src/main/java/com/metamatrix/platform/admin/apiimpl/RuntimeStateAdminAPIHelper.java 2009-08-17 21:28:20 UTC (rev 1253)
+++ trunk/server/src/main/java/com/metamatrix/platform/admin/apiimpl/RuntimeStateAdminAPIHelper.java 2009-08-17 21:38:58 UTC (rev 1254)
@@ -34,7 +34,6 @@
import org.teiid.adminapi.AdminException;
-import com.metamatrix.admin.api.exception.security.InvalidSessionException;
import com.metamatrix.api.exception.MetaMatrixComponentException;
import com.metamatrix.api.exception.MultipleException;
import com.metamatrix.api.exception.security.AuthorizationException;
@@ -71,6 +70,7 @@
import com.metamatrix.platform.vm.api.controller.ProcessManagement;
import com.metamatrix.platform.vm.controller.ProcessStatistics;
import com.metamatrix.server.HostManagement;
+import com.metamatrix.server.connector.service.ConnectorServiceInterface;
/**
@@ -215,8 +215,8 @@
*/
public Collection getConnectionPoolStats(ServiceRegistryBinding binding) throws MetaMatrixComponentException {
ServiceInterface service = binding.getService();
- if (service != null) {
- return service.getConnectionPoolStats();
+ if (service instanceof ConnectorServiceInterface) {
+ return ((ConnectorServiceInterface)service).getConnectionPoolStats();
}
return Collections.EMPTY_LIST;
}
Modified: trunk/server/src/main/java/com/metamatrix/platform/service/api/ServiceInterface.java
===================================================================
--- trunk/server/src/main/java/com/metamatrix/platform/service/api/ServiceInterface.java 2009-08-17 21:28:20 UTC (rev 1253)
+++ trunk/server/src/main/java/com/metamatrix/platform/service/api/ServiceInterface.java 2009-08-17 21:38:58 UTC (rev 1254)
@@ -30,7 +30,6 @@
import com.metamatrix.common.comm.ClientServiceRegistry;
import com.metamatrix.common.config.api.DeployedComponentID;
import com.metamatrix.common.queue.WorkerPoolStats;
-import com.metamatrix.common.stats.ConnectionPoolStats;
import com.metamatrix.platform.service.controller.ServiceData;
public interface ServiceInterface {
@@ -122,16 +121,7 @@
*/
WorkerPoolStats getQueueStatistics(String name);
-
/**
- * Returns a list of ConnectionPoolStat objects for the specific
- * ConnectorBinding service
- * If there are no ConnectionPoolStats, null is returned.
- */
- Collection<ConnectionPoolStats> getConnectionPoolStats();
-
-
- /**
* There are reflective based calls on this
*/
void setInitException(Throwable t);
Modified: trunk/server/src/main/java/com/metamatrix/platform/service/controller/AbstractService.java
===================================================================
--- trunk/server/src/main/java/com/metamatrix/platform/service/controller/AbstractService.java 2009-08-17 21:28:20 UTC (rev 1253)
+++ trunk/server/src/main/java/com/metamatrix/platform/service/controller/AbstractService.java 2009-08-17 21:38:58 UTC (rev 1254)
@@ -38,7 +38,6 @@
import com.metamatrix.common.config.api.DeployedComponentID;
import com.metamatrix.common.log.LogManager;
import com.metamatrix.common.queue.WorkerPoolStats;
-import com.metamatrix.common.stats.ConnectionPoolStats;
import com.metamatrix.common.util.LogCommonConstants;
import com.metamatrix.common.util.PasswordMaskUtil;
import com.metamatrix.core.event.EventObjectListener;
@@ -561,10 +560,4 @@
return data;
}
-
- public Collection<ConnectionPoolStats> getConnectionPoolStats() {
- return Collections.EMPTY_LIST;
- }
-
-
}
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-08-17 21:28:20 UTC (rev 1253)
+++ trunk/server/src/main/java/com/metamatrix/server/connector/service/ConnectorService.java 2009-08-17 21:38:58 UTC (rev 1254)
@@ -44,6 +44,7 @@
import org.teiid.dqp.internal.process.DQPCore;
import org.teiid.dqp.internal.process.DQPWorkContext;
+import com.metamatrix.admin.objects.MMConnectionPool;
import com.metamatrix.api.exception.MetaMatrixComponentException;
import com.metamatrix.common.application.ApplicationEnvironment;
import com.metamatrix.common.application.ApplicationService;
@@ -64,7 +65,6 @@
import com.metamatrix.common.log.LogManager;
import com.metamatrix.common.object.PropertyDefinition;
import com.metamatrix.common.queue.WorkerPoolStats;
-import com.metamatrix.common.stats.ConnectionPoolStats;
import com.metamatrix.common.util.LogCommonConstants;
import com.metamatrix.common.util.PropertiesUtils;
import com.metamatrix.common.util.crypto.CryptoException;
@@ -422,9 +422,7 @@
LogManager.logInfo(LogCommonConstants.CTX_CONFIG, ServerPlugin.Util.getString(messageProperty, value));
}
- public Collection<ConnectionPoolStats> getConnectionPoolStats() {
-// return Collections.EMPTY_LIST;
-
+ public Collection<MMConnectionPool> getConnectionPoolStats() {
return this.connectorMgr.getConnectionPoolStats();
}
Modified: trunk/server/src/main/java/com/metamatrix/server/connector/service/ConnectorServiceInterface.java
===================================================================
--- trunk/server/src/main/java/com/metamatrix/server/connector/service/ConnectorServiceInterface.java 2009-08-17 21:28:20 UTC (rev 1253)
+++ trunk/server/src/main/java/com/metamatrix/server/connector/service/ConnectorServiceInterface.java 2009-08-17 21:38:58 UTC (rev 1254)
@@ -27,10 +27,12 @@
package com.metamatrix.server.connector.service;
import java.io.Serializable;
+import java.util.Collection;
import org.teiid.connector.api.ConnectorException;
import org.teiid.dqp.internal.process.DQPWorkContext;
+import com.metamatrix.admin.objects.MMConnectionPool;
import com.metamatrix.api.exception.MetaMatrixComponentException;
import com.metamatrix.common.comm.api.ResultsReceiver;
import com.metamatrix.dqp.internal.datamgr.ConnectorID;
@@ -69,5 +71,7 @@
void closeRequest(AtomicRequestID request) throws MetaMatrixComponentException;
void requestBatch(AtomicRequestID request) throws MetaMatrixComponentException;
+
+ Collection<MMConnectionPool> getConnectionPoolStats();
}
Modified: trunk/server/src/test/java/com/metamatrix/admin/server/FakeCacheAdmin.java
===================================================================
--- trunk/server/src/test/java/com/metamatrix/admin/server/FakeCacheAdmin.java 2009-08-17 21:28:20 UTC (rev 1253)
+++ trunk/server/src/test/java/com/metamatrix/admin/server/FakeCacheAdmin.java 2009-08-17 21:38:58 UTC (rev 1254)
@@ -39,7 +39,6 @@
import com.metamatrix.common.comm.ClientServiceRegistry;
import com.metamatrix.common.config.api.DeployedComponentID;
import com.metamatrix.common.queue.WorkerPoolStats;
-import com.metamatrix.common.stats.ConnectionPoolStats;
import com.metamatrix.platform.service.api.CacheAdmin;
import com.metamatrix.platform.service.api.ServiceID;
import com.metamatrix.platform.service.api.ServiceInterface;
@@ -163,11 +162,4 @@
return null;
}
- @Override
- public Collection<ConnectionPoolStats> getConnectionPoolStats() {
- return null;
- }
-
-
-
}
Modified: trunk/server/src/test/java/com/metamatrix/admin/server/FakeConfigurationService.java
===================================================================
--- trunk/server/src/test/java/com/metamatrix/admin/server/FakeConfigurationService.java 2009-08-17 21:28:20 UTC (rev 1253)
+++ trunk/server/src/test/java/com/metamatrix/admin/server/FakeConfigurationService.java 2009-08-17 21:38:58 UTC (rev 1254)
@@ -22,22 +22,16 @@
package com.metamatrix.admin.server;
-import java.io.File;
-import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
-import org.teiid.adminapi.Resource;
-
import com.metamatrix.common.actions.ActionDefinition;
-import com.metamatrix.common.actions.CreateObject;
import com.metamatrix.common.actions.ModificationException;
import com.metamatrix.common.application.ClassLoaderManager;
import com.metamatrix.common.comm.ClientServiceRegistry;
@@ -56,25 +50,15 @@
import com.metamatrix.common.config.api.DeployedComponentID;
import com.metamatrix.common.config.api.Host;
import com.metamatrix.common.config.api.HostID;
-import com.metamatrix.common.config.api.HostType;
import com.metamatrix.common.config.api.ServiceComponentDefnID;
-import com.metamatrix.common.config.api.SharedResource;
-import com.metamatrix.common.config.api.SharedResourceID;
import com.metamatrix.common.config.api.VMComponentDefn;
import com.metamatrix.common.config.api.VMComponentDefnID;
import com.metamatrix.common.config.api.exceptions.ConfigurationException;
import com.metamatrix.common.config.api.exceptions.InvalidConfigurationException;
-import com.metamatrix.common.config.model.BasicComponentObject;
import com.metamatrix.common.config.model.BasicConfigurationObjectEditor;
-import com.metamatrix.common.config.model.BasicConnectorBindingType;
-import com.metamatrix.common.config.model.BasicHost;
-import com.metamatrix.common.config.model.BasicSharedResource;
-import com.metamatrix.common.config.model.ConfigurationModelContainerImpl;
import com.metamatrix.common.config.xml.XMLConfigurationImportExportUtility;
import com.metamatrix.common.queue.WorkerPoolStats;
-import com.metamatrix.common.stats.ConnectionPoolStats;
import com.metamatrix.common.util.PropertiesUtils;
-import com.metamatrix.core.util.UnitTestUtil;
import com.metamatrix.platform.PlatformPlugin;
import com.metamatrix.platform.config.ConfigUpdateMgr;
import com.metamatrix.platform.config.api.service.ConfigurationServiceInterface;
@@ -868,18 +852,4 @@
return null;
}
-
-
-
-
-
-
-
- @Override
- public Collection<ConnectionPoolStats> getConnectionPoolStats() {
- return null;
- }
-
-
-
}
Modified: trunk/server/src/test/java/com/metamatrix/admin/server/FakeQueryService.java
===================================================================
--- trunk/server/src/test/java/com/metamatrix/admin/server/FakeQueryService.java 2009-08-17 21:28:20 UTC (rev 1253)
+++ trunk/server/src/test/java/com/metamatrix/admin/server/FakeQueryService.java 2009-08-17 21:38:58 UTC (rev 1254)
@@ -45,7 +45,6 @@
import com.metamatrix.common.comm.ClientServiceRegistry;
import com.metamatrix.common.config.api.DeployedComponentID;
import com.metamatrix.common.queue.WorkerPoolStats;
-import com.metamatrix.common.stats.ConnectionPoolStats;
import com.metamatrix.dqp.message.AtomicRequestID;
import com.metamatrix.dqp.message.RequestID;
import com.metamatrix.platform.security.api.MetaMatrixSessionID;
@@ -298,11 +297,4 @@
return null;
}
- @Override
- public Collection<ConnectionPoolStats> getConnectionPoolStats() {
- return null;
- }
-
-
-
}
Modified: trunk/server/src/test/java/com/metamatrix/admin/server/FakeServerSessionService.java
===================================================================
--- trunk/server/src/test/java/com/metamatrix/admin/server/FakeServerSessionService.java 2009-08-17 21:28:20 UTC (rev 1253)
+++ trunk/server/src/test/java/com/metamatrix/admin/server/FakeServerSessionService.java 2009-08-17 21:38:58 UTC (rev 1254)
@@ -39,7 +39,6 @@
import com.metamatrix.common.comm.ClientServiceRegistry;
import com.metamatrix.common.config.api.DeployedComponentID;
import com.metamatrix.common.queue.WorkerPoolStats;
-import com.metamatrix.common.stats.ConnectionPoolStats;
import com.metamatrix.platform.security.api.Credentials;
import com.metamatrix.platform.security.api.MetaMatrixPrincipal;
import com.metamatrix.platform.security.api.MetaMatrixSessionID;
@@ -273,11 +272,4 @@
return null;
}
- @Override
- public Collection<ConnectionPoolStats> getConnectionPoolStats() {
- return null;
- }
-
-
-
}
Modified: trunk/server/src/test/java/com/metamatrix/platform/service/controller/FakeService.java
===================================================================
--- trunk/server/src/test/java/com/metamatrix/platform/service/controller/FakeService.java 2009-08-17 21:28:20 UTC (rev 1253)
+++ trunk/server/src/test/java/com/metamatrix/platform/service/controller/FakeService.java 2009-08-17 21:38:58 UTC (rev 1254)
@@ -32,7 +32,6 @@
import com.metamatrix.common.comm.ClientServiceRegistry;
import com.metamatrix.common.config.api.DeployedComponentID;
import com.metamatrix.common.queue.WorkerPoolStats;
-import com.metamatrix.common.stats.ConnectionPoolStats;
import com.metamatrix.platform.service.api.ServiceID;
public class FakeService implements FakeServiceInterface {
@@ -117,11 +116,5 @@
public ServiceData getServiceData() {
return null;
}
- @Override
- public Collection<ConnectionPoolStats> getConnectionPoolStats() {
- // TODO Auto-generated method stub
- return null;
- }
-
}
13 years, 9 months
teiid SVN: r1253 - trunk/engine/src/main/java/com/metamatrix/query/sql/visitor.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2009-08-17 17:28:20 -0400 (Mon, 17 Aug 2009)
New Revision: 1253
Modified:
trunk/engine/src/main/java/com/metamatrix/query/sql/visitor/SQLStringVisitor.java
Log:
TEIID-786: changing from StringBuffer to StringBuilder
Modified: trunk/engine/src/main/java/com/metamatrix/query/sql/visitor/SQLStringVisitor.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/sql/visitor/SQLStringVisitor.java 2009-08-17 18:41:51 UTC (rev 1252)
+++ trunk/engine/src/main/java/com/metamatrix/query/sql/visitor/SQLStringVisitor.java 2009-08-17 21:28:20 UTC (rev 1253)
@@ -139,12 +139,12 @@
* @return Complete SQL string for the visited nodes
*/
public String getSQLString() {
- StringBuffer output = new StringBuffer();
+ StringBuilder output = new StringBuilder();
getSQLString(this.parts, output);
return output.toString();
}
- public static void getSQLString(List<Object> parts, StringBuffer output) {
+ public static void getSQLString(List<Object> parts, StringBuilder output) {
for (Object object : parts) {
if (object instanceof List) {
getSQLString((List<Object>)object, output);
13 years, 9 months
teiid SVN: r1252 - trunk/build/kit-runtime/deploy.
by teiid-commits@lists.jboss.org
Author: rareddy
Date: 2009-08-17 14:41:51 -0400 (Mon, 17 Aug 2009)
New Revision: 1252
Modified:
trunk/build/kit-runtime/deploy/log4j.xml
Log:
TEIID-769: adding flag "addtivity=false" so that when command, process or audit logging is enabled they will only go the configured appender, not to the parent appender.
Modified: trunk/build/kit-runtime/deploy/log4j.xml
===================================================================
--- trunk/build/kit-runtime/deploy/log4j.xml 2009-08-17 16:50:34 UTC (rev 1251)
+++ trunk/build/kit-runtime/deploy/log4j.xml 2009-08-17 18:41:51 UTC (rev 1252)
@@ -63,41 +63,41 @@
<!-- categories -->
<!-- ================ -->
- <category name="org.jgroups">
+ <logger name="org.jgroups">
<priority value="WARN"/>
- </category>
+ </logger>
- <category name="com.arjuna">
+ <logger name="com.arjuna">
<priority value="WARN" />
- </category>
+ </logger>
- <category name="org.jboss">
+ <logger name="org.jboss">
<priority value="WARN"/>
- </category>
+ </logger>
- <category name="org.teiid">
+ <logger name="org.teiid">
<priority value="WARN" />
- </category>
+ </logger>
<!-- un-comment to enable COMMAND log
- <category name="org.teiid.COMMAND_LOG">
+ <logger name="org.teiid.COMMAND_LOG" additivity="false">
<priority value="INFO"/>
<appender-ref ref="COMMAND"/>
- </category>
+ </logger>
-->
<!-- Un-comment to enable AUDIT log
- <category name="org.teiid.AUDIT_LOG">
+ <logger name="org.teiid.AUDIT_LOG" additivity="false">
<priority value="INFO"/>
<appender-ref ref="AUDIT"/>
- </category>
+ </logger>
-->
<!-- Un-comment to enable Process Info log
- <category name="org.teiid.PROCESS_INFO_LOG">
+ <logger name="org.teiid.PROCESS_INFO_LOG" additivity="false">
<priority value="INFO"/>
<appender-ref ref="PROCESS_INFO"/>
- </category>
+ </logger>
-->
<root>
13 years, 9 months
teiid SVN: r1251 - in trunk/connectors/sandbox/connector-oracle-spatial/src: test/java/org/teiid/connector/jdbc/oracle/spatial and 1 other directory.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2009-08-17 12:50:34 -0400 (Mon, 17 Aug 2009)
New Revision: 1251
Modified:
trunk/connectors/sandbox/connector-oracle-spatial/src/main/java/com/metamatrix/connector/jdbc/oracle/spatial/OracleSpatialSQLTranslator.java
trunk/connectors/sandbox/connector-oracle-spatial/src/test/java/org/teiid/connector/jdbc/oracle/spatial/TestOracleSpatialTranslator.java
Log:
TEIID-757 changing the relate hint to use /*+ instead of /* +
Modified: trunk/connectors/sandbox/connector-oracle-spatial/src/main/java/com/metamatrix/connector/jdbc/oracle/spatial/OracleSpatialSQLTranslator.java
===================================================================
--- trunk/connectors/sandbox/connector-oracle-spatial/src/main/java/com/metamatrix/connector/jdbc/oracle/spatial/OracleSpatialSQLTranslator.java 2009-08-17 16:21:17 UTC (rev 1250)
+++ trunk/connectors/sandbox/connector-oracle-spatial/src/main/java/com/metamatrix/connector/jdbc/oracle/spatial/OracleSpatialSQLTranslator.java 2009-08-17 16:50:34 UTC (rev 1251)
@@ -131,7 +131,7 @@
int indx1 = funcName.indexOf("SDO"); //$NON-NLS-1$
int indx2 = funcName.indexOf("RELATE"); //$NON-NLS-1$
if (indx1 >= 0 && indx2 > indx1)
- return comment + " /* + ORDERED */"; //$NON-NLS-1$
+ return comment + "/*+ ORDERED */ "; //$NON-NLS-1$
}
}
return comment;
Modified: trunk/connectors/sandbox/connector-oracle-spatial/src/test/java/org/teiid/connector/jdbc/oracle/spatial/TestOracleSpatialTranslator.java
===================================================================
--- trunk/connectors/sandbox/connector-oracle-spatial/src/test/java/org/teiid/connector/jdbc/oracle/spatial/TestOracleSpatialTranslator.java 2009-08-17 16:21:17 UTC (rev 1250)
+++ trunk/connectors/sandbox/connector-oracle-spatial/src/test/java/org/teiid/connector/jdbc/oracle/spatial/TestOracleSpatialTranslator.java 2009-08-17 16:50:34 UTC (rev 1251)
@@ -116,9 +116,7 @@
*
* @throws Exception
*/
- @Ignore("TEIID-757: Translator needs fixing so that spacing is valid between hint and query")
@Test public void testRewrite_sdo_relate() throws Exception {
- // TODO TEIID-757: Translator needs fixing so that spacing is valid between hint and query
String input = "SELECT a.INTKEY FROM BQT1.SMALLA A, BQT1.SMALLB B WHERE sdo_relate(A.OBJECTVALUE, b.OBJECTVALUE, 'mask=ANYINTERACT') = true"; //$NON-NLS-1$
String output = "SELECT /*+ ORDERED */ A.IntKey FROM SmallA A, SmallB B WHERE SDO_RELATE(A.ObjectValue, B.ObjectValue, 'mask=ANYINTERACT') = 'true'"; //$NON-NLS-1$
13 years, 9 months
teiid SVN: r1250 - trunk/build/kit-runtime/deploy.
by teiid-commits@lists.jboss.org
Author: rareddy
Date: 2009-08-17 12:21:17 -0400 (Mon, 17 Aug 2009)
New Revision: 1250
Modified:
trunk/build/kit-runtime/deploy/membership-ldap.properties
Log:
TEIID-664: this property either must specify a valid value, or removed to be treated as infinate time value.
Modified: trunk/build/kit-runtime/deploy/membership-ldap.properties
===================================================================
--- trunk/build/kit-runtime/deploy/membership-ldap.properties 2009-08-17 16:10:47 UTC (rev 1249)
+++ trunk/build/kit-runtime/deploy/membership-ldap.properties 2009-08-17 16:21:17 UTC (rev 1250)
@@ -44,8 +44,8 @@
#How far down the directory tree to search each groups root context.
groups.searchScope=SUBTREE_SCOPE
-#Time to wait for LDAP operations to complete.
-txnTimeoutInMillis=
+#Time to wait for LDAP operations to complete.(defaults to unlimited)
+#txnTimeoutInMillis=
#The attribute(s) that contains the members of the group.
groups.groupMember.attribute=
13 years, 9 months
teiid SVN: r1249 - trunk/runtime/src/main/java/org/teiid.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2009-08-17 12:10:47 -0400 (Mon, 17 Aug 2009)
New Revision: 1249
Modified:
trunk/runtime/src/main/java/org/teiid/Server.java
Log:
TEIID-509 changing to fullname since name is just jar
Modified: trunk/runtime/src/main/java/org/teiid/Server.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/Server.java 2009-08-17 15:57:48 UTC (rev 1248)
+++ trunk/runtime/src/main/java/org/teiid/Server.java 2009-08-17 16:10:47 UTC (rev 1249)
@@ -246,7 +246,7 @@
try {
EmbeddedConfigurationService ecs = (EmbeddedConfigurationService)getDQP().getEnvironment().findService(DQPServiceNames.CONFIGURATION_SERVICE);
for (ExtensionModule module : ecs.getExtensionModules()) {
- sb.append("\n == Jar: " + module.getName() + " ===== " ); //$NON-NLS-1$ //$NON-NLS-2$
+ sb.append("\n == Jar: " + module.getFullName() + " ===== " ); //$NON-NLS-1$ //$NON-NLS-2$
File tempArchive = File.createTempFile("teiid", ".jar"); //$NON-NLS-1$ //$NON-NLS-2$
tempArchive.deleteOnExit();
13 years, 9 months
teiid SVN: r1248 - in trunk: connector-api/src/main/java/org/teiid/connector/visitor/util and 3 other directories.
by teiid-commits@lists.jboss.org
Author: rareddy
Date: 2009-08-17 11:57:48 -0400 (Mon, 17 Aug 2009)
New Revision: 1248
Modified:
trunk/build/kit-runtime/deploy/jboss-cache-configuration.xml
trunk/connector-api/src/main/java/org/teiid/connector/visitor/util/SQLStringVisitor.java
trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/translator/SQLConversionVisitor.java
trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorManager.java
trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java
Log:
TEIID-786: increased the eviction thread wake up time, avoid making couple expensive logging calls, converted StringBuffer to StringBuilder to remove heavy use of sychronous append calls
Modified: trunk/build/kit-runtime/deploy/jboss-cache-configuration.xml
===================================================================
--- trunk/build/kit-runtime/deploy/jboss-cache-configuration.xml 2009-08-17 15:46:53 UTC (rev 1247)
+++ trunk/build/kit-runtime/deploy/jboss-cache-configuration.xml 2009-08-17 15:57:48 UTC (rev 1248)
@@ -12,7 +12,7 @@
</loader>
</loaders>
- <eviction wakeUpInterval="3000">
+ <eviction wakeUpInterval="15000">
<default algorithmClass="org.jboss.cache.eviction.LRUAlgorithm" eventQueueSize="100000">
<property name="maxNodes" value="10000" />
<!-- 0 = immediate eviction, -1 = no limit -->
Modified: trunk/connector-api/src/main/java/org/teiid/connector/visitor/util/SQLStringVisitor.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/connector/visitor/util/SQLStringVisitor.java 2009-08-17 15:46:53 UTC (rev 1247)
+++ trunk/connector-api/src/main/java/org/teiid/connector/visitor/util/SQLStringVisitor.java 2009-08-17 15:57:48 UTC (rev 1248)
@@ -92,7 +92,7 @@
protected static final String UNDEFINED = "<undefined>"; //$NON-NLS-1$
protected static final String UNDEFINED_PARAM = "?"; //$NON-NLS-1$
- protected StringBuffer buffer = new StringBuffer();
+ protected StringBuilder buffer = new StringBuilder();
/**
* Gets the name of a group or element from the RuntimeMetadata
Modified: trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/translator/SQLConversionVisitor.java
===================================================================
--- trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/translator/SQLConversionVisitor.java 2009-08-17 15:46:53 UTC (rev 1247)
+++ trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/translator/SQLConversionVisitor.java 2009-08-17 15:57:48 UTC (rev 1248)
@@ -143,7 +143,7 @@
* @param object
* @param valuesbuffer
*/
- private void translateSQLType(Class type, Object obj, StringBuffer valuesbuffer) {
+ private void translateSQLType(Class type, Object obj, StringBuilder valuesbuffer) {
if (obj == null) {
valuesbuffer.append(NULL);
} else {
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-08-17 15:46:53 UTC (rev 1247)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorManager.java 2009-08-17 15:57:48 UTC (rev 1248)
@@ -603,6 +603,9 @@
* @param qr Request that contains the MetaMatrix command information in the transaction.
*/
void logSRCCommand(AtomicRequestMessage qr, ExecutionContext context, short cmdStatus, int finalRowCnt) {
+ if (!LogManager.isMessageToBeRecorded(LogConstants.CTX_COMMANDLOGGING, MessageLevel.INFO)) {
+ return;
+ }
String sqlStr = null;
if(cmdStatus == CommandLogMessage.CMD_STATUS_NEW){
Command cmd = qr.getCommand();
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java 2009-08-17 15:46:53 UTC (rev 1247)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java 2009-08-17 15:57:48 UTC (rev 1248)
@@ -505,6 +505,10 @@
}
void logMMCommand(RequestWorkItem workItem, boolean isBegin, boolean isCancel, int rowCount) {
+ if (!LogManager.isMessageToBeRecorded(LogConstants.CTX_COMMANDLOGGING, MessageLevel.INFO)) {
+ return;
+ }
+
RequestMessage msg = workItem.requestMsg;
DQPWorkContext workContext = DQPWorkContext.getWorkContext();
RequestID rID = new RequestID(workContext.getConnectionID(), msg.getExecutionId());
13 years, 9 months