You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Piet Blok (JIRA)" <de...@db.apache.org> on 2005/08/30 17:12:04 UTC
[jira] Created: (DERBY-546) In contrast to EmbeddedDriver, ClientDriver fails to report all DriverPropertyInfo's
In contrast to EmbeddedDriver, ClientDriver fails to report all DriverPropertyInfo's
------------------------------------------------------------------------------------
Key: DERBY-546
URL: http://issues.apache.org/jira/browse/DERBY-546
Project: Derby
Type: Bug
Components: Network Client
Versions: 10.1.1.0
Environment: Windows XP professional, JRE 1.5.0_04
Reporter: Piet Blok
The Client Driver, in contrast to Embedded Driver, fails to report all DriverPropertyInfo's. It seems that it not only ignores the Properties object (see Jira DERBY_530), but it also ignores connection attributes appended to the connection url.
See below a piece of code that demonstrates this behaviour:
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.DriverPropertyInfo;
import java.sql.SQLException;
import java.util.Enumeration;
import java.util.Properties;
import org.apache.derby.jdbc.ClientDriver;
import org.apache.derby.jdbc.EmbeddedDriver;
public class DerbyConnector {
private static final String DERBY_CONNECTION_PREFIX = "jdbc:derby:";
private static final String MY_DATABASE = "MyDatabase";
private static final String MY_HOST = "//127.0.0.1:1527/";
static {
new ClientDriver();
new EmbeddedDriver();
}
public static void main(String[] args) {
DerbyConnector connector = new DerbyConnector();
try {
Properties connectionProperties = new Properties();
connectionProperties.setProperty("create", "true");
connectionProperties.setProperty("dataEncryption", "true");
connector.printInfo(MY_HOST + MY_DATABASE, connectionProperties);
connector.printInfo(MY_DATABASE, connectionProperties);
} catch (SQLException e) {
e.printStackTrace();
}
}
public Connection connect(String url) throws SQLException {
return DriverManager.getConnection(DERBY_CONNECTION_PREFIX + url);
}
public Connection connect(String url, Properties connectionProperties)
throws SQLException {
return connect(DERBY_CONNECTION_PREFIX + url
+ connectionPropertiesString(connectionProperties));
}
public DriverPropertyInfo[] getPropertyInfos(String url, Properties props)
throws SQLException {
String connectionString = DERBY_CONNECTION_PREFIX + url
+ connectionPropertiesString(props);
System.out.println("ConnectionString = " + connectionString);
Driver driver = DriverManager.getDriver(connectionString);
return driver.getPropertyInfo(connectionString, props);
}
private String connectionPropertiesString(Properties connectionProperties) {
StringBuffer sb = new StringBuffer();
for (Enumeration enumeration = connectionProperties.propertyNames(); enumeration
.hasMoreElements();) {
String key = (String) enumeration.nextElement();
sb.append(';');
sb.append(key);
sb.append('=');
sb.append(connectionProperties.getProperty(key));
}
return sb.toString();
}
private void printInfo(String url, Properties connectionProperties)
throws SQLException {
System.out.println("========= " + url + " =========");
DriverPropertyInfo[] infos = getPropertyInfos(url, connectionProperties);
for (int i = 0; i < infos.length; i++) {
System.out.println("DriverPropertyInfo " + i);
System.out.println(" description: " + infos[i].description);
System.out.println(" " + infos[i].name + " = " + infos[i].value);
System.out.println(" required = " + infos[i].required);
if (infos[i].choices != null) {
for (int j = 0; j < infos[i].choices.length; j++) {
System.out.println(" choice " + j + ": "
+ infos[i].choices[j]);
}
}
}
}
}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
[jira] Updated: (DERBY-546) In contrast to EmbeddedDriver,
ClientDriver fails to report all DriverPropertyInfo's
Posted by "Mike Matrigali (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/DERBY-546?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mike Matrigali updated DERBY-546:
---------------------------------
Urgency: Normal
Triaged July 10, 2009: assigned normal urgency.
> In contrast to EmbeddedDriver, ClientDriver fails to report all DriverPropertyInfo's
> ------------------------------------------------------------------------------------
>
> Key: DERBY-546
> URL: https://issues.apache.org/jira/browse/DERBY-546
> Project: Derby
> Issue Type: Bug
> Components: Network Client
> Affects Versions: 10.1.1.0
> Environment: Windows XP professional, JRE 1.5.0_04
> Reporter: Piet Blok
>
> The Client Driver, in contrast to Embedded Driver, fails to report all DriverPropertyInfo's. It seems that it not only ignores the Properties object (see Jira DERBY_530), but it also ignores connection attributes appended to the connection url.
>
> See below a piece of code that demonstrates this behaviour:
>
>
>
> import java.sql.Connection;
> import java.sql.Driver;
> import java.sql.DriverManager;
> import java.sql.DriverPropertyInfo;
> import java.sql.SQLException;
> import java.util.Enumeration;
> import java.util.Properties;
>
> import org.apache.derby.jdbc.ClientDriver;
> import org.apache.derby.jdbc.EmbeddedDriver;
>
> public class DerbyConnector {
>
> private static final String DERBY_CONNECTION_PREFIX = "jdbc:derby:";
>
> private static final String MY_DATABASE = "MyDatabase";
>
> private static final String MY_HOST = "//127.0.0.1:1527/";
>
> static {
> new ClientDriver();
> new EmbeddedDriver();
> }
>
> public static void main(String[] args) {
> DerbyConnector connector = new DerbyConnector();
> try {
> Properties connectionProperties = new Properties();
> connectionProperties.setProperty("create", "true");
> connectionProperties.setProperty("dataEncryption", "true");
> connector.printInfo(MY_HOST + MY_DATABASE, connectionProperties);
> connector.printInfo(MY_DATABASE, connectionProperties);
> } catch (SQLException e) {
> e.printStackTrace();
> }
> }
>
> public Connection connect(String url) throws SQLException {
> return DriverManager.getConnection(DERBY_CONNECTION_PREFIX + url);
> }
>
> public Connection connect(String url, Properties connectionProperties)
> throws SQLException {
> return connect(DERBY_CONNECTION_PREFIX + url
> + connectionPropertiesString(connectionProperties));
> }
>
> public DriverPropertyInfo[] getPropertyInfos(String url, Properties props)
> throws SQLException {
> String connectionString = DERBY_CONNECTION_PREFIX + url
> + connectionPropertiesString(props);
> System.out.println("ConnectionString = " + connectionString);
> Driver driver = DriverManager.getDriver(connectionString);
> return driver.getPropertyInfo(connectionString, props);
> }
>
> private String connectionPropertiesString(Properties connectionProperties) {
> StringBuffer sb = new StringBuffer();
> for (Enumeration enumeration = connectionProperties.propertyNames(); enumeration
> .hasMoreElements();) {
> String key = (String) enumeration.nextElement();
> sb.append(';');
> sb.append(key);
> sb.append('=');
> sb.append(connectionProperties.getProperty(key));
> }
> return sb.toString();
>
> }
>
> private void printInfo(String url, Properties connectionProperties)
> throws SQLException {
> System.out.println("========= " + url + " =========");
> DriverPropertyInfo[] infos = getPropertyInfos(url, connectionProperties);
> for (int i = 0; i < infos.length; i++) {
> System.out.println("DriverPropertyInfo " + i);
> System.out.println(" description: " + infos[i].description);
> System.out.println(" " + infos[i].name + " = " + infos[i].value);
> System.out.println(" required = " + infos[i].required);
> if (infos[i].choices != null) {
> for (int j = 0; j < infos[i].choices.length; j++) {
> System.out.println(" choice " + j + ": "
> + infos[i].choices[j]);
> }
> }
> }
> }
>
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (DERBY-546) In contrast to EmbeddedDriver,
ClientDriver fails to report all DriverPropertyInfo's
Posted by "Daniel John Debrunner (JIRA)" <de...@db.apache.org>.
[ http://issues.apache.org/jira/browse/DERBY-546?page=comments#action_12361996 ]
Daniel John Debrunner commented on DERBY-546:
---------------------------------------------
I'm not sure that embedded is behaving correctly with DriverPropertyInfo. The api is defined that the driver return options for properties that have not yet been set, I think embedded just returns all. This was from a code inspection, not actually trying it out. I do know that at some time in the past (pre-open sourcing) embedded did work correctly, as-per the JDBC spec/javadoc. I think it was incorrectly broken at some time.
> In contrast to EmbeddedDriver, ClientDriver fails to report all DriverPropertyInfo's
> ------------------------------------------------------------------------------------
>
> Key: DERBY-546
> URL: http://issues.apache.org/jira/browse/DERBY-546
> Project: Derby
> Type: Bug
> Components: Network Client
> Versions: 10.1.1.0
> Environment: Windows XP professional, JRE 1.5.0_04
> Reporter: Piet Blok
>
> The Client Driver, in contrast to Embedded Driver, fails to report all DriverPropertyInfo's. It seems that it not only ignores the Properties object (see Jira DERBY_530), but it also ignores connection attributes appended to the connection url.
>
> See below a piece of code that demonstrates this behaviour:
>
>
>
> import java.sql.Connection;
> import java.sql.Driver;
> import java.sql.DriverManager;
> import java.sql.DriverPropertyInfo;
> import java.sql.SQLException;
> import java.util.Enumeration;
> import java.util.Properties;
>
> import org.apache.derby.jdbc.ClientDriver;
> import org.apache.derby.jdbc.EmbeddedDriver;
>
> public class DerbyConnector {
>
> private static final String DERBY_CONNECTION_PREFIX = "jdbc:derby:";
>
> private static final String MY_DATABASE = "MyDatabase";
>
> private static final String MY_HOST = "//127.0.0.1:1527/";
>
> static {
> new ClientDriver();
> new EmbeddedDriver();
> }
>
> public static void main(String[] args) {
> DerbyConnector connector = new DerbyConnector();
> try {
> Properties connectionProperties = new Properties();
> connectionProperties.setProperty("create", "true");
> connectionProperties.setProperty("dataEncryption", "true");
> connector.printInfo(MY_HOST + MY_DATABASE, connectionProperties);
> connector.printInfo(MY_DATABASE, connectionProperties);
> } catch (SQLException e) {
> e.printStackTrace();
> }
> }
>
> public Connection connect(String url) throws SQLException {
> return DriverManager.getConnection(DERBY_CONNECTION_PREFIX + url);
> }
>
> public Connection connect(String url, Properties connectionProperties)
> throws SQLException {
> return connect(DERBY_CONNECTION_PREFIX + url
> + connectionPropertiesString(connectionProperties));
> }
>
> public DriverPropertyInfo[] getPropertyInfos(String url, Properties props)
> throws SQLException {
> String connectionString = DERBY_CONNECTION_PREFIX + url
> + connectionPropertiesString(props);
> System.out.println("ConnectionString = " + connectionString);
> Driver driver = DriverManager.getDriver(connectionString);
> return driver.getPropertyInfo(connectionString, props);
> }
>
> private String connectionPropertiesString(Properties connectionProperties) {
> StringBuffer sb = new StringBuffer();
> for (Enumeration enumeration = connectionProperties.propertyNames(); enumeration
> .hasMoreElements();) {
> String key = (String) enumeration.nextElement();
> sb.append(';');
> sb.append(key);
> sb.append('=');
> sb.append(connectionProperties.getProperty(key));
> }
> return sb.toString();
>
> }
>
> private void printInfo(String url, Properties connectionProperties)
> throws SQLException {
> System.out.println("========= " + url + " =========");
> DriverPropertyInfo[] infos = getPropertyInfos(url, connectionProperties);
> for (int i = 0; i < infos.length; i++) {
> System.out.println("DriverPropertyInfo " + i);
> System.out.println(" description: " + infos[i].description);
> System.out.println(" " + infos[i].name + " = " + infos[i].value);
> System.out.println(" required = " + infos[i].required);
> if (infos[i].choices != null) {
> for (int j = 0; j < infos[i].choices.length; j++) {
> System.out.println(" choice " + j + ": "
> + infos[i].choices[j]);
> }
> }
> }
> }
>
> }
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
[jira] Updated: (DERBY-546) In contrast to EmbeddedDriver,
ClientDriver fails to report all DriverPropertyInfo's
Posted by "Kathey Marsden (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/DERBY-546?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Kathey Marsden updated DERBY-546:
---------------------------------
Derby Categories: [Embedded/Client difference]
> In contrast to EmbeddedDriver, ClientDriver fails to report all DriverPropertyInfo's
> ------------------------------------------------------------------------------------
>
> Key: DERBY-546
> URL: https://issues.apache.org/jira/browse/DERBY-546
> Project: Derby
> Issue Type: Bug
> Components: Network Client
> Affects Versions: 10.1.1.0
> Environment: Windows XP professional, JRE 1.5.0_04
> Reporter: Piet Blok
>
> The Client Driver, in contrast to Embedded Driver, fails to report all DriverPropertyInfo's. It seems that it not only ignores the Properties object (see Jira DERBY_530), but it also ignores connection attributes appended to the connection url.
>
> See below a piece of code that demonstrates this behaviour:
>
>
>
> import java.sql.Connection;
> import java.sql.Driver;
> import java.sql.DriverManager;
> import java.sql.DriverPropertyInfo;
> import java.sql.SQLException;
> import java.util.Enumeration;
> import java.util.Properties;
>
> import org.apache.derby.jdbc.ClientDriver;
> import org.apache.derby.jdbc.EmbeddedDriver;
>
> public class DerbyConnector {
>
> private static final String DERBY_CONNECTION_PREFIX = "jdbc:derby:";
>
> private static final String MY_DATABASE = "MyDatabase";
>
> private static final String MY_HOST = "//127.0.0.1:1527/";
>
> static {
> new ClientDriver();
> new EmbeddedDriver();
> }
>
> public static void main(String[] args) {
> DerbyConnector connector = new DerbyConnector();
> try {
> Properties connectionProperties = new Properties();
> connectionProperties.setProperty("create", "true");
> connectionProperties.setProperty("dataEncryption", "true");
> connector.printInfo(MY_HOST + MY_DATABASE, connectionProperties);
> connector.printInfo(MY_DATABASE, connectionProperties);
> } catch (SQLException e) {
> e.printStackTrace();
> }
> }
>
> public Connection connect(String url) throws SQLException {
> return DriverManager.getConnection(DERBY_CONNECTION_PREFIX + url);
> }
>
> public Connection connect(String url, Properties connectionProperties)
> throws SQLException {
> return connect(DERBY_CONNECTION_PREFIX + url
> + connectionPropertiesString(connectionProperties));
> }
>
> public DriverPropertyInfo[] getPropertyInfos(String url, Properties props)
> throws SQLException {
> String connectionString = DERBY_CONNECTION_PREFIX + url
> + connectionPropertiesString(props);
> System.out.println("ConnectionString = " + connectionString);
> Driver driver = DriverManager.getDriver(connectionString);
> return driver.getPropertyInfo(connectionString, props);
> }
>
> private String connectionPropertiesString(Properties connectionProperties) {
> StringBuffer sb = new StringBuffer();
> for (Enumeration enumeration = connectionProperties.propertyNames(); enumeration
> .hasMoreElements();) {
> String key = (String) enumeration.nextElement();
> sb.append(';');
> sb.append(key);
> sb.append('=');
> sb.append(connectionProperties.getProperty(key));
> }
> return sb.toString();
>
> }
>
> private void printInfo(String url, Properties connectionProperties)
> throws SQLException {
> System.out.println("========= " + url + " =========");
> DriverPropertyInfo[] infos = getPropertyInfos(url, connectionProperties);
> for (int i = 0; i < infos.length; i++) {
> System.out.println("DriverPropertyInfo " + i);
> System.out.println(" description: " + infos[i].description);
> System.out.println(" " + infos[i].name + " = " + infos[i].value);
> System.out.println(" required = " + infos[i].required);
> if (infos[i].choices != null) {
> for (int j = 0; j < infos[i].choices.length; j++) {
> System.out.println(" choice " + j + ": "
> + infos[i].choices[j]);
> }
> }
> }
> }
>
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.