You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by or...@apache.org on 2018/03/06 15:12:07 UTC
qpid-broker-j git commit: QPID-8117: [Broker-J] Make sure that table
prefix of JDBC Virtual Host Node is respected by preferences store
Repository: qpid-broker-j
Updated Branches:
refs/heads/master bc46f8b37 -> 192863d31
QPID-8117: [Broker-J] Make sure that table prefix of JDBC Virtual Host Node is respected by preferences store
Project: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/commit/192863d3
Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/192863d3
Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/192863d3
Branch: refs/heads/master
Commit: 192863d3120a99a49a3f41105c201cd5fba03e0b
Parents: bc46f8b
Author: Alex Rudyy <or...@apache.org>
Authored: Tue Mar 6 14:47:22 2018 +0000
Committer: Alex Rudyy <or...@apache.org>
Committed: Tue Mar 6 14:47:22 2018 +0000
----------------------------------------------------------------------
.../store/jdbc/AbstractJDBCPreferenceStore.java | 73 +++++++++++++-------
.../jdbc/GenericJDBCConfigurationStore.java | 3 +-
2 files changed, 50 insertions(+), 26 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/192863d3/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/AbstractJDBCPreferenceStore.java
----------------------------------------------------------------------
diff --git a/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/AbstractJDBCPreferenceStore.java b/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/AbstractJDBCPreferenceStore.java
index 61a63d4..e065649 100644
--- a/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/AbstractJDBCPreferenceStore.java
+++ b/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/AbstractJDBCPreferenceStore.java
@@ -56,22 +56,26 @@ public abstract class AbstractJDBCPreferenceStore implements PreferenceStore
private static final String PREFERENCES_VERSION_TABLE_NAME = "PREFERENCES_VERSION";
private static final String PREFERENCES_TABLE_NAME = "PREFERENCES";
- private static final String CREATE_PREFERENCES_VERSION_TABLE =
- "CREATE TABLE " + PREFERENCES_VERSION_TABLE_NAME + " ( version VARCHAR(20) NOT NULL )";
- private static final String INSERT_INTO_PREFERENCES_VERSION =
- "INSERT INTO " + PREFERENCES_VERSION_TABLE_NAME + " ( version ) VALUES ( ? )";
- private static final String SELECT_FROM_PREFERENCES_VERSION =
- "SELECT version FROM " + PREFERENCES_VERSION_TABLE_NAME;
-
- private static final String INSERT_INTO_PREFERENCES = "INSERT INTO " + PREFERENCES_TABLE_NAME + " ( id, attributes ) VALUES ( ?, ? )";
- private static final String DELETE_FROM_PREFERENCES = "DELETE FROM " + PREFERENCES_TABLE_NAME + " where id = ?";
- private static final String SELECT_FROM_PREFERENCES = "SELECT id, attributes FROM " + PREFERENCES_TABLE_NAME;
- private static final String FIND_PREFERENCE = "SELECT attributes FROM " + PREFERENCES_TABLE_NAME + " WHERE id = ?";
- private static final String UPDATE_PREFERENCES = "UPDATE " + PREFERENCES_TABLE_NAME + " SET attributes = ? WHERE id = ?";
+ private static final String CREATE_PREFERENCES_VERSION_TABLE = "CREATE TABLE %s ( version VARCHAR(20) NOT NULL )";
+ private static final String INSERT_INTO_PREFERENCES_VERSION = "INSERT INTO %s ( version ) VALUES ( ? )";
+ private static final String SELECT_FROM_PREFERENCES_VERSION = "SELECT version FROM %s";
+
+ private static final String INSERT_INTO_PREFERENCES = "INSERT INTO %s ( id, attributes ) VALUES ( ?, ? )";
+ private static final String DELETE_FROM_PREFERENCES = "DELETE FROM %s where id = ?";
+ private static final String SELECT_FROM_PREFERENCES = "SELECT id, attributes FROM %s";
+ private static final String FIND_PREFERENCE = "SELECT attributes FROM %s WHERE id = ?";
+ private static final String UPDATE_PREFERENCES = "UPDATE %s SET attributes = ? WHERE id = ?";
private final AtomicReference<StoreState> _storeState = new AtomicReference<>(StoreState.CLOSED);
private final ReentrantReadWriteLock _useOrCloseRWLock = new ReentrantReadWriteLock(true);
+ private String _tableNamePrefix = "";
+
+ protected void setTableNamePrefix(final String tableNamePrefix)
+ {
+ _tableNamePrefix = tableNamePrefix == null ? "" : tableNamePrefix;
+ }
+
@Override
public Collection<PreferenceRecord> openAndLoad(final PreferenceStoreUpdater updater) throws StoreException
{
@@ -179,7 +183,9 @@ public abstract class AbstractJDBCPreferenceStore implements PreferenceStore
{
for (UUID id : preferenceRecordsToRemove)
{
- try (PreparedStatement deleteStatement = connection.prepareStatement(DELETE_FROM_PREFERENCES))
+ try (PreparedStatement deleteStatement = connection.prepareStatement(String.format(
+ DELETE_FROM_PREFERENCES,
+ getPreferencesTableName())))
{
deleteStatement.setString(1, id.toString());
int deletedCount = deleteStatement.executeUpdate();
@@ -256,8 +262,8 @@ public abstract class AbstractJDBCPreferenceStore implements PreferenceStore
{
try (Statement dropTableStatement = connection.createStatement())
{
- dropTableStatement.execute("DROP TABLE " + PREFERENCES_TABLE_NAME);
- dropTableStatement.execute("DROP TABLE " + PREFERENCES_VERSION_TABLE_NAME);
+ dropTableStatement.execute(String.format("DROP TABLE %s", getPreferencesTableName()));
+ dropTableStatement.execute(String.format("DROP TABLE %s", getPreferencesVersionTableName()));
}
catch (SQLException e)
{
@@ -288,14 +294,16 @@ public abstract class AbstractJDBCPreferenceStore implements PreferenceStore
{
for (PreferenceRecord record : preferenceRecords)
{
- try (PreparedStatement stmt = conn.prepareStatement(FIND_PREFERENCE))
+ try (PreparedStatement stmt = conn.prepareStatement(String.format(FIND_PREFERENCE,
+ getPreferencesTableName())))
{
stmt.setString(1, record.getId().toString());
try (ResultSet rs = stmt.executeQuery())
{
if (rs.next())
{
- try (PreparedStatement updateStatement = conn.prepareStatement(UPDATE_PREFERENCES))
+ try (PreparedStatement updateStatement = conn.prepareStatement(String.format(UPDATE_PREFERENCES,
+ getPreferencesTableName())))
{
setAttributesAsBlob(updateStatement, 1, record.getAttributes());
updateStatement.setString(2, record.getId().toString());
@@ -304,7 +312,9 @@ public abstract class AbstractJDBCPreferenceStore implements PreferenceStore
}
else
{
- try (PreparedStatement insertStatement = conn.prepareStatement(INSERT_INTO_PREFERENCES))
+ try (PreparedStatement insertStatement = conn.prepareStatement(String.format(
+ INSERT_INTO_PREFERENCES,
+ getPreferencesTableName())))
{
insertStatement.setString(1, record.getId().toString());
setAttributesAsBlob(insertStatement, 2, record.getAttributes());
@@ -384,11 +394,11 @@ public abstract class AbstractJDBCPreferenceStore implements PreferenceStore
private void createVersionTable(final Connection conn) throws SQLException
{
- if (!tableExists(PREFERENCES_VERSION_TABLE_NAME, conn))
+ if (!tableExists(getPreferencesVersionTableName(), conn))
{
try (Statement stmt = conn.createStatement())
{
- stmt.execute(CREATE_PREFERENCES_VERSION_TABLE);
+ stmt.execute(String.format(CREATE_PREFERENCES_VERSION_TABLE, getPreferencesVersionTableName()));
}
updateVersion(conn, BrokerModel.MODEL_VERSION);
@@ -397,7 +407,8 @@ public abstract class AbstractJDBCPreferenceStore implements PreferenceStore
private void updateVersion(final Connection conn, final String currentVersion) throws SQLException
{
- try (PreparedStatement pstmt = conn.prepareStatement(INSERT_INTO_PREFERENCES_VERSION))
+ try (PreparedStatement pstmt = conn.prepareStatement(String.format(INSERT_INTO_PREFERENCES_VERSION,
+ getPreferencesVersionTableName())))
{
pstmt.setString(1, currentVersion);
pstmt.execute();
@@ -406,12 +417,12 @@ public abstract class AbstractJDBCPreferenceStore implements PreferenceStore
private void createPreferencesTable(final Connection conn) throws SQLException
{
- if (!tableExists(PREFERENCES_TABLE_NAME, conn))
+ if (!tableExists(getPreferencesTableName(), conn))
{
try (Statement stmt = conn.createStatement())
{
stmt.execute("CREATE TABLE "
- + PREFERENCES_TABLE_NAME
+ + getPreferencesTableName()
+ " ( id VARCHAR(36) not null, attributes "
+ getSqlBlobType()
+ ", PRIMARY KEY (id))");
@@ -424,7 +435,8 @@ public abstract class AbstractJDBCPreferenceStore implements PreferenceStore
ModelVersion storedVersion = null;
try (Statement stmt = conn.createStatement())
{
- try (ResultSet rs = stmt.executeQuery(SELECT_FROM_PREFERENCES_VERSION))
+ try (ResultSet rs = stmt.executeQuery(String.format(SELECT_FROM_PREFERENCES_VERSION,
+ getPreferencesVersionTableName())))
{
while (rs.next())
{
@@ -455,7 +467,8 @@ public abstract class AbstractJDBCPreferenceStore implements PreferenceStore
{
Collection<PreferenceRecord> records = new LinkedHashSet<>();
final ObjectMapper objectMapper = new ObjectMapper();
- try (PreparedStatement stmt = connection.prepareStatement(SELECT_FROM_PREFERENCES))
+ try (PreparedStatement stmt = connection.prepareStatement(String.format(SELECT_FROM_PREFERENCES,
+ getPreferencesTableName())))
{
try (ResultSet rs = stmt.executeQuery())
{
@@ -475,6 +488,16 @@ public abstract class AbstractJDBCPreferenceStore implements PreferenceStore
return records;
}
+ private String getPreferencesTableName()
+ {
+ return _tableNamePrefix + PREFERENCES_TABLE_NAME;
+ }
+
+ private String getPreferencesVersionTableName()
+ {
+ return _tableNamePrefix + PREFERENCES_VERSION_TABLE_NAME;
+ }
+
enum StoreState
{
CLOSED, OPENING, OPENED, CLOSING, ERRORED;
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/192863d3/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/GenericJDBCConfigurationStore.java
----------------------------------------------------------------------
diff --git a/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/GenericJDBCConfigurationStore.java b/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/GenericJDBCConfigurationStore.java
index a5f5fe1..af378e7 100644
--- a/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/GenericJDBCConfigurationStore.java
+++ b/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/GenericJDBCConfigurationStore.java
@@ -51,7 +51,7 @@ public class GenericJDBCConfigurationStore extends AbstractJDBCConfigurationStor
private static final Logger LOGGER = LoggerFactory.getLogger(GenericJDBCConfigurationStore.class);
private final MessageStore _providedMessageStore = new ProvidedMessageStore();
- private final PreferenceStore _providedPreferenceStore = new ProvidedPreferenceStore();
+ private final ProvidedPreferenceStore _providedPreferenceStore = new ProvidedPreferenceStore();
private String _connectionURL;
private ConnectionProvider _connectionProvider;
@@ -77,6 +77,7 @@ public class GenericJDBCConfigurationStore extends AbstractJDBCConfigurationStor
JDBCSettings settings = (JDBCSettings) parent;
super.setTableNamePrefix(settings.getTableNamePrefix());
+ _providedPreferenceStore.setTableNamePrefix(settings.getTableNamePrefix());
_connectionURL = settings.getConnectionUrl();
JDBCDetails details = JDBCDetails.getDetailsForJdbcUrl(_connectionURL, parent);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org