You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by pm...@apache.org on 2019/11/14 18:03:15 UTC
[jmeter] branch master updated: JDBC Connection Configuration: Add
connectionProperties
This is an automated email from the ASF dual-hosted git repository.
pmouawad pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jmeter.git
The following commit(s) were added to refs/heads/master by this push:
new 7850afb JDBC Connection Configuration: Add connectionProperties
7850afb is described below
commit 7850afbc573be212b1aed9b852f0cf3e63dd51de
Author: pmouawad <p....@ubik-ingenierie.com>
AuthorDate: Thu Nov 14 19:04:23 2019 +0100
JDBC Connection Configuration: Add connectionProperties
This resolves https://bz.apache.org/bugzilla/show_bug.cgi?id=63926
---
bin/testfiles/JDBC_TESTS.jmx | 3 ++-
.../jmeter/protocol/jdbc/config/DataSourceElement.java | 18 ++++++++++++++++++
.../jdbc/config/DataSourceElementBeanInfo.java | 5 ++++-
.../jdbc/config/DataSourceElementResources.properties | 2 ++
.../config/DataSourceElementResources_fr.properties | 2 ++
xdocs/changes.xml | 1 +
xdocs/usermanual/component_reference.xml | 1 +
7 files changed, 30 insertions(+), 2 deletions(-)
diff --git a/bin/testfiles/JDBC_TESTS.jmx b/bin/testfiles/JDBC_TESTS.jmx
index c99b5e3..af83558 100644
--- a/bin/testfiles/JDBC_TESTS.jmx
+++ b/bin/testfiles/JDBC_TESTS.jmx
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.2-SNAPSHOT.20190723">
+<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.2.1-SNAPSHOT be1e864">
<hashTree>
<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Plan" enabled="true">
<stringProp name="TestPlan.comments"></stringProp>
@@ -27,6 +27,7 @@
<stringProp name="username">SA</stringProp>
<boolProp name="preinit">true</boolProp>
<stringProp name="initQuery"></stringProp>
+ <stringProp name="connectionProperties">ifexists=false</stringProp>
</JDBCDataSource>
<hashTree/>
<SetupThreadGroup guiclass="SetupThreadGroupGui" testclass="SetupThreadGroup" testname="setUp Thread Group" enabled="true">
diff --git a/src/protocol/jdbc/src/main/java/org/apache/jmeter/protocol/jdbc/config/DataSourceElement.java b/src/protocol/jdbc/src/main/java/org/apache/jmeter/protocol/jdbc/config/DataSourceElement.java
index 85912a0..743f032 100644
--- a/src/protocol/jdbc/src/main/java/org/apache/jmeter/protocol/jdbc/config/DataSourceElement.java
+++ b/src/protocol/jdbc/src/main/java/org/apache/jmeter/protocol/jdbc/config/DataSourceElement.java
@@ -52,6 +52,7 @@ public class DataSourceElement extends AbstractTestElement
private transient String username;
private transient String password;
private transient String checkQuery;
+ private transient String connectionProperties;
private transient String initQuery;
private transient String poolMax;
private transient String connectionAge;
@@ -235,6 +236,9 @@ public class DataSourceElement extends AbstractTestElement
} else {
dataSource.setConnectionInitSqls(Collections.emptyList());
}
+ if(StringUtils.isNotEmpty(connectionProperties)) {
+ dataSource.setConnectionProperties(connectionProperties);
+ }
dataSource.setRollbackOnReturn(false);
dataSource.setMaxIdle(poolSize);
dataSource.setMaxTotal(poolSize);
@@ -624,4 +628,18 @@ public class DataSourceElement extends AbstractTestElement
public void setInitQuery(String initQuery) {
this.initQuery = initQuery;
}
+
+ /**
+ * @return the connectionProperties
+ */
+ public String getConnectionProperties() {
+ return connectionProperties;
+ }
+
+ /**
+ * @param connectionProperties the connectionProperties to set
+ */
+ public void setConnectionProperties(String connectionProperties) {
+ this.connectionProperties = connectionProperties;
+ }
}
diff --git a/src/protocol/jdbc/src/main/java/org/apache/jmeter/protocol/jdbc/config/DataSourceElementBeanInfo.java b/src/protocol/jdbc/src/main/java/org/apache/jmeter/protocol/jdbc/config/DataSourceElementBeanInfo.java
index e1b95f3..fe785d3 100644
--- a/src/protocol/jdbc/src/main/java/org/apache/jmeter/protocol/jdbc/config/DataSourceElementBeanInfo.java
+++ b/src/protocol/jdbc/src/main/java/org/apache/jmeter/protocol/jdbc/config/DataSourceElementBeanInfo.java
@@ -55,7 +55,7 @@ public class DataSourceElementBeanInfo extends BeanInfoSupport {
createPropertyGroup("keep-alive", new String[] { "keepAlive", "connectionAge", "checkQuery" });
- createPropertyGroup("database", new String[] { "dbUrl", "driver", "username", "password" });
+ createPropertyGroup("database", new String[] { "dbUrl", "driver", "username", "password", "connectionProperties" });
PropertyDescriptor p = property("dataSource");
p.setValue(NOT_UNDEFINED, Boolean.TRUE);
@@ -108,6 +108,9 @@ public class DataSourceElementBeanInfo extends BeanInfoSupport {
p = property("password", TypeEditor.PasswordEditor);
p.setValue(NOT_UNDEFINED, Boolean.TRUE);
p.setValue(DEFAULT, "");
+ p = property("connectionProperties");
+ p.setValue(NOT_UNDEFINED, Boolean.TRUE);
+ p.setValue(DEFAULT, "");
}
/**
diff --git a/src/protocol/jdbc/src/main/resources/org/apache/jmeter/protocol/jdbc/config/DataSourceElementResources.properties b/src/protocol/jdbc/src/main/resources/org/apache/jmeter/protocol/jdbc/config/DataSourceElementResources.properties
index 16571c0..d7dc8b2 100644
--- a/src/protocol/jdbc/src/main/resources/org/apache/jmeter/protocol/jdbc/config/DataSourceElementResources.properties
+++ b/src/protocol/jdbc/src/main/resources/org/apache/jmeter/protocol/jdbc/config/DataSourceElementResources.properties
@@ -24,6 +24,8 @@ poolMax.displayName=Max Number of Connections
poolMax.shortDescription=Maximum number of connections the pool will open at one time
connectionAge.displayName=Soft Min Evictable Idle Time(ms)
connectionAge.shortDescription=Minimum amount of time a connection may sit idle in the pool before it is eligible for eviction by the idle object evictor, with the extra condition that at least "minIdle" connections remain in the pool.
+connectionProperties.displayName=Connection Properties
+connectionProperties.shortDescription=Connection Properties to set when establishing connection (like internal_logon=sysdba for Oracle for example)
driver.displayName=JDBC Driver class
driver.shortDescription=Full package and class name of the JDBC driver to be used (Must be in JMeter's classpath)
dbUrl.displayName=Database URL
diff --git a/src/protocol/jdbc/src/main/resources/org/apache/jmeter/protocol/jdbc/config/DataSourceElementResources_fr.properties b/src/protocol/jdbc/src/main/resources/org/apache/jmeter/protocol/jdbc/config/DataSourceElementResources_fr.properties
index 0ff2a48..01c87b5 100644
--- a/src/protocol/jdbc/src/main/resources/org/apache/jmeter/protocol/jdbc/config/DataSourceElementResources_fr.properties
+++ b/src/protocol/jdbc/src/main/resources/org/apache/jmeter/protocol/jdbc/config/DataSourceElementResources_fr.properties
@@ -20,6 +20,8 @@ checkQuery.displayName=Requête de validation
checkQuery.shortDescription=Une requête à utiliser pour valider que la connexion fonctionne. Utilisé seulement si le paramétre connexion persistante (keep-alive) est activé (true).
connectionAge.displayName=Durée de vie maximum d'une connexion (ms)
connectionAge.shortDescription=Nombre maximum en millisecondes pendant lequel une connexion disponible est gardée avant d'être fermée.
+connectionProperties.displayName=Propriétés de la connexion
+connectionProperties.shortDescription=Propriétés positionnées pour établir la connexion (exemple: internal_logon=sysdba pour Oracle)
dataSource.displayName=Nom de liaison
dataSource.shortDescription=Nom de la variable JMeter sur laquelle le pool sera lié.
database.displayName=Configuration de connexion à la base de données
diff --git a/xdocs/changes.xml b/xdocs/changes.xml
index 18625df..f660e7a 100644
--- a/xdocs/changes.xml
+++ b/xdocs/changes.xml
@@ -86,6 +86,7 @@ to view the last release notes of version 5.2.
<h3>Other samplers</h3>
<ul>
+ <li><bug>63926</bug>JDBC Connection Configuration: Add ability to set connection properties</li>
</ul>
<h3>Controllers</h3>
diff --git a/xdocs/usermanual/component_reference.xml b/xdocs/usermanual/component_reference.xml
index a106792..fae98ca 100644
--- a/xdocs/usermanual/component_reference.xml
+++ b/xdocs/usermanual/component_reference.xml
@@ -4032,6 +4032,7 @@ instead. (see figures 12 and 13).</p>
</property>
<property name="Username" required="No">Name of user to connect as.</property>
<property name="Password" required="No">Password to connect with. (N.B. this is stored unencrypted in the test plan)</property>
+ <property name="Connection Properties" required="No">Connection Properties to set when establishing connection (like <code>internal_logon=sysdba</code> for Oracle for example)</property>
</properties>
<p>Different databases and JDBC drivers require different JDBC settings.
The Database URL and JDBC Driver class are defined by the provider of the JDBC implementation.</p>