Author: kwright
Date: Mon Aug 20 13:02:46 2012
New Revision: 1375003
URL: http://svn.apache.org/viewvc?rev=1375003&view=rev
Log:
Fix for CONNECTORS-509.
Modified:
manifoldcf/trunk/CHANGES.txt
manifoldcf/trunk/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jdbc/JDBCConnection.java
manifoldcf/trunk/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jdbc/JDBCConnector.java
manifoldcf/trunk/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jdbc/JDBCConstants.java
manifoldcf/trunk/connectors/jdbc/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/jdbc/common_en_US.properties
manifoldcf/trunk/connectors/jdbc/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/jdbc/common_ja_JP.properties
Modified: manifoldcf/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/manifoldcf/trunk/CHANGES.txt?rev=1375003&r1=1375002&r2=1375003&view=diff
==============================================================================
--- manifoldcf/trunk/CHANGES.txt (original)
+++ manifoldcf/trunk/CHANGES.txt Mon Aug 20 13:02:46 2012
@@ -3,6 +3,10 @@ $Id$
======================= 0.7-dev =====================
+CONNECTORS-509: Allow JDBC Connector to choose which column
+access method to use.
+(Shigeki Kobayashi, Karl Wright)
+
CONNECTORS-507: Improve JCIFs Connector documentation.
(Swapna Vuppala)
Modified:
manifoldcf/trunk/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jdbc/JDBCConnection.java
URL:
http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jdbc/JDBCConnection.java?rev=1375003&r1=1375002&r2=1375003&view=diff
==============================================================================
---
manifoldcf/trunk/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jdbc/JDBCConnection.java
(original)
+++
manifoldcf/trunk/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jdbc/JDBCConnection.java
Mon Aug 20 13:02:46 2012
@@ -37,6 +37,7 @@ public class JDBCConnection
public static final String _rcsid = "@(#)$Id: JDBCConnection.java 988245
2010-08-23 18:39:35Z kwright $";
protected String jdbcProvider = null;
+ protected boolean useName;
protected String host = null;
protected String databaseName = null;
protected String userName = null;
@@ -44,9 +45,10 @@ public class JDBCConnection
/** Constructor.
*/
- public JDBCConnection(String jdbcProvider, String host, String databaseName,
String userName, String password)
+ public JDBCConnection(String jdbcProvider, boolean useName, String host,
String databaseName, String userName, String password)
{
this.jdbcProvider = jdbcProvider;
+ this.useName = useName;
this.host = host;
this.databaseName = databaseName;
this.userName = userName;
@@ -308,7 +310,7 @@ public class JDBCConnection
WrappedConnection tempConnection =
JDBCConnectionFactory.getConnection(jdbcProvider,host,databaseName,userName,password);
try
{
- execute(tempConnection.getConnection(),query,params,false,0);
+ execute(tempConnection.getConnection(),query,params,false,0,useName);
}
finally
{
@@ -332,7 +334,7 @@ public class JDBCConnection
* @param maxResults is the maximum number of results to load: -1 if all
* @param params ArrayList if params !=null, use preparedStatement
*/
- protected static IResultSet execute(Connection connection, String query,
ArrayList params, boolean bResults, int maxResults)
+ protected static IResultSet execute(Connection connection, String query,
ArrayList params, boolean bResults, int maxResults, boolean useName)
throws ManifoldCFException, ServiceInterruption
{
@@ -353,7 +355,7 @@ public class JDBCConnection
{
// Suck data from resultset
if (bResults)
- return getData(rs,maxResults);
+ return getData(rs,maxResults,useName);
return null;
}
finally
@@ -380,7 +382,7 @@ public class JDBCConnection
try
{
// Suck data from resultset
- return getData(rs,maxResults);
+ return getData(rs,maxResults,useName);
}
finally
{
@@ -471,7 +473,7 @@ public class JDBCConnection
}
}
- protected static String[] readColumnNames(ResultSetMetaData rsmd)
+ protected static String[] readColumnNames(ResultSetMetaData rsmd, boolean
useName)
throws ManifoldCFException, ServiceInterruption
{
try
@@ -483,7 +485,12 @@ public class JDBCConnection
resultCols = new String[colcount];
for (int i = 0; i < colcount; i++)
{
- resultCols[i] = rsmd.getColumnName(i+1);
+ String name;
+ if (useName)
+ name = rsmd.getColumnName(i+1);
+ else
+ name = rsmd.getColumnLabel(i+1);
+ resultCols[i] = name;
}
}
else
@@ -497,7 +504,7 @@ public class JDBCConnection
}
// Read data from a resultset
- protected static IResultSet getData(ResultSet rs, int maxResults)
+ protected static IResultSet getData(ResultSet rs, int maxResults, boolean
useName)
throws ManifoldCFException, ServiceInterruption
{
try
@@ -510,7 +517,7 @@ public class JDBCConnection
// out of the db and return it in a
// readonly structure
ResultSetMetaData rsmd = rs.getMetaData();
- String[] resultCols = readColumnNames(rsmd);
+ String[] resultCols = readColumnNames(rsmd, useName);
if (resultCols.length == 0)
{
// This is an error situation; if a result with no columns is
@@ -929,7 +936,7 @@ public class JDBCConnection
stmt.execute(query);
rs = stmt.getResultSet();
rsmd = rs.getMetaData();
- resultCols = readColumnNames(rsmd);
+ resultCols = readColumnNames(rsmd,useName);
}
catch (Throwable e)
{
@@ -1207,7 +1214,7 @@ public class JDBCConnection
loadPS(ps, params);
rs = ps.executeQuery();
rsmd = rs.getMetaData();
- resultCols = readColumnNames(rsmd);
+ resultCols = readColumnNames(rsmd,useName);
}
catch (Throwable e)
{
Modified:
manifoldcf/trunk/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jdbc/JDBCConnector.java
URL:
http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jdbc/JDBCConnector.java?rev=1375003&r1=1375002&r2=1375003&view=diff
==============================================================================
---
manifoldcf/trunk/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jdbc/JDBCConnector.java
(original)
+++
manifoldcf/trunk/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jdbc/JDBCConnector.java
Mon Aug 20 13:02:46 2012
@@ -77,6 +77,7 @@ public class JDBCConnector extends org.a
protected JDBCConnection connection = null;
protected String jdbcProvider = null;
+ protected String accessMethod = null;
protected String host = null;
protected String databaseName = null;
protected String userName = null;
@@ -99,7 +100,7 @@ public class JDBCConnector extends org.a
if (host == null || host.length() == 0)
throw new ManifoldCFException("Missing parameter
'"+JDBCConstants.hostParameter+"'");
- connection = new
JDBCConnection(jdbcProvider,host,databaseName,userName,password);
+ connection = new JDBCConnection(jdbcProvider,(accessMethod==null ||
accessMethod.equals("name")),host,databaseName,userName,password);
}
}
@@ -131,6 +132,7 @@ public class JDBCConnector extends org.a
super.connect(configParams);
jdbcProvider = configParams.getParameter(JDBCConstants.providerParameter);
+ accessMethod = configParams.getParameter(JDBCConstants.methodParameter);
host = configParams.getParameter(JDBCConstants.hostParameter);
databaseName =
configParams.getParameter(JDBCConstants.databaseNameParameter);
userName= configParams.getParameter(JDBCConstants.databaseUserName);
@@ -710,6 +712,9 @@ public class JDBCConnector extends org.a
String jdbcProvider =
parameters.getParameter(org.apache.manifoldcf.crawler.connectors.jdbc.JDBCConstants.providerParameter);
if (jdbcProvider == null)
jdbcProvider = "oracle:thin:@";
+ String accessMethod =
parameters.getParameter(org.apache.manifoldcf.crawler.connectors.jdbc.JDBCConstants.methodParameter);
+ if (accessMethod == null)
+ accessMethod = "name";
String host =
parameters.getParameter(org.apache.manifoldcf.crawler.connectors.jdbc.JDBCConstants.hostParameter);
if (host == null)
host = "localhost";
@@ -740,13 +745,23 @@ public class JDBCConnector extends org.a
" </select>\n"+
" </td>\n"+
" </tr>\n"+
+" <tr><td class=\"separator\" colspan=\"2\"><hr/></td></tr>\n"+
+" <tr>\n"+
+" <td class=\"description\"><nobr>" +
Messages.getBodyString(locale,"JDBCConnector.AccessMethod") + "</nobr></td><td
class=\"value\">\n"+
+" <select multiple=\"false\" name=\"accessmethod\" size=\"2\">\n"+
+" <option value=\"name\"
"+(accessMethod.equals("name")?"selected=\"selected\"":"")+">by
name</option>\n"+
+" <option value=\"label\"
"+(accessMethod.equals("label")?"selected=\"selected\"":"")+">by
label</option>\n"+
+" </select>\n"+
+" </td>\n"+
+" </tr>\n"+
"</table>\n"
);
}
else
{
out.print(
-"<input type=\"hidden\" name=\"databasetype\" value=\""+jdbcProvider+"\"/>\n"
+"<input type=\"hidden\" name=\"databasetype\" value=\""+jdbcProvider+"\"/>\n"+
+"<input type=\"hidden\" name=\"accessmethod\" value=\""+accessMethod+"\"/>\n"
);
}
@@ -815,6 +830,10 @@ public class JDBCConnector extends org.a
if (type != null)
parameters.setParameter(org.apache.manifoldcf.crawler.connectors.jdbc.JDBCConstants.providerParameter,type);
+ String accessMethod = variableContext.getParameter("accessmethod");
+ if (accessMethod != null)
+
parameters.setParameter(org.apache.manifoldcf.crawler.connectors.jdbc.JDBCConstants.methodParameter,accessMethod);
+
String host = variableContext.getParameter("databasehost");
if (host != null)
parameters.setParameter(org.apache.manifoldcf.crawler.connectors.jdbc.JDBCConstants.hostParameter,host);
Modified:
manifoldcf/trunk/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jdbc/JDBCConstants.java
URL:
http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jdbc/JDBCConstants.java?rev=1375003&r1=1375002&r2=1375003&view=diff
==============================================================================
---
manifoldcf/trunk/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jdbc/JDBCConstants.java
(original)
+++
manifoldcf/trunk/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jdbc/JDBCConstants.java
Mon Aug 20 13:02:46 2012
@@ -26,6 +26,8 @@ public class JDBCConstants
/** The jdbc provider parameter */
public static String providerParameter = "JDBC Provider";
+ /** The column interrogation method name parameter */
+ public static String methodParameter = "JDBC column access method";
/** The host machine config parameter */
public static String hostParameter = "Host";
/** The database name config parameter */
Modified:
manifoldcf/trunk/connectors/jdbc/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/jdbc/common_en_US.properties
URL:
http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/jdbc/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/jdbc/common_en_US.properties?rev=1375003&r1=1375002&r2=1375003&view=diff
==============================================================================
---
manifoldcf/trunk/connectors/jdbc/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/jdbc/common_en_US.properties
(original)
+++
manifoldcf/trunk/connectors/jdbc/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/jdbc/common_en_US.properties
Mon Aug 20 13:02:46 2012
@@ -14,6 +14,7 @@
# limitations under the License.
JDBCConnector.DatabaseType=Database Type
+JDBCConnector.AccessMethod=Access Method
JDBCConnector.Server=Server
JDBCConnector.Credentials=Credentials
JDBCConnector.DatabaseType2=Database type:
Modified:
manifoldcf/trunk/connectors/jdbc/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/jdbc/common_ja_JP.properties
URL:
http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/jdbc/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/jdbc/common_ja_JP.properties?rev=1375003&r1=1375002&r2=1375003&view=diff
==============================================================================
---
manifoldcf/trunk/connectors/jdbc/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/jdbc/common_ja_JP.properties
(original)
+++
manifoldcf/trunk/connectors/jdbc/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/jdbc/common_ja_JP.properties
Mon Aug 20 13:02:46 2012
@@ -14,6 +14,7 @@
# limitations under the License.
JDBCConnector.DatabaseType=ãã¼ã¿ãã¼ã¹ã¿ã¤ã
+JDBCConnector.AccessMethod=ã¢ã¯ã»ã¹æ¹å¼
JDBCConnector.Server=ãµã¼ã
JDBCConnector.Credentials=è¨¼ææ¸
JDBCConnector.DatabaseType2=ãã¼ã¿ãã¼ã¹ã¿ã¤ãï¼