use of org.apache.qpid.server.protocol.v1_0.type.messaging.Target in project qpid-broker-j by apache.
the class BDBLinkStore method doSaveLink.
@Override
protected void doSaveLink(final LinkDefinition<Source, Target> link) {
try {
Database linksDatabase = getEnvironmentFacade().openDatabase(LINKS_DB_NAME, DEFAULT_DATABASE_CONFIG);
save(linksDatabase, null, link);
} catch (RuntimeException e) {
throw getEnvironmentFacade().handleDatabaseException(String.format("Failed saving of link '%s'", new LinkKey(link)), e);
}
}
use of org.apache.qpid.server.protocol.v1_0.type.messaging.Target in project qpid-broker-j by apache.
the class BDBLinkStore method doDeleteLink.
@Override
protected void doDeleteLink(final LinkDefinition<Source, Target> linkDefinition) {
LinkKey linkKey = new LinkKey(linkDefinition);
try {
Database linksDatabase = getEnvironmentFacade().openDatabase(LINKS_DB_NAME, DEFAULT_DATABASE_CONFIG);
final DatabaseEntry databaseEntry = new DatabaseEntry();
LinkKeyEntryBinding.getInstance().objectToEntry(linkKey, databaseEntry);
OperationStatus status = linksDatabase.delete(null, databaseEntry);
if (status != OperationStatus.SUCCESS) {
LOGGER.debug(String.format("Unexpected status '%s' for deletion of '%s'", status, linkKey));
}
} catch (RuntimeException e) {
throw getEnvironmentFacade().handleDatabaseException(String.format("Failed deletion of link '%s'", linkKey), e);
}
}
use of org.apache.qpid.server.protocol.v1_0.type.messaging.Target in project qpid-broker-j by apache.
the class JDBCLinkStore method insert.
private void insert(final Connection connection, final String linkKey, final LinkDefinition<? extends BaseSource, ? extends BaseTarget> linkDefinition) throws SQLException {
try (PreparedStatement statement = connection.prepareStatement(String.format("INSERT INTO %s (link_key, remote_container_id, link_name, link_role, source, target) VALUES (?,?,?,?,?,?)", getLinksTableName()))) {
statement.setString(1, linkKey);
saveStringAsBlob(statement, 2, linkDefinition.getRemoteContainerId());
saveStringAsBlob(statement, 3, linkDefinition.getName());
statement.setInt(4, linkDefinition.getRole().getValue() ? 1 : 0);
saveObjectAsBlob(statement, 5, linkDefinition.getSource());
saveObjectAsBlob(statement, 6, linkDefinition.getTarget());
if (statement.executeUpdate() != 1) {
throw new StoreException(String.format("Cannot save link %s", new LinkKey(linkDefinition)));
}
}
}
use of org.apache.qpid.server.protocol.v1_0.type.messaging.Target in project qpid-broker-j by apache.
the class LinkRegistryImpl method open.
@Override
public void open() {
Collection<LinkDefinition<Source, Target>> links = _linkStore.openAndLoad(new LinkStoreUpdaterImpl());
for (LinkDefinition<? extends BaseSource, ? extends BaseTarget> link : links) {
ConcurrentMap<LinkKey, Link_1_0<? extends BaseSource, ? extends BaseTarget>> linkRegistry = getLinkRegistry(link.getRole());
linkRegistry.put(new LinkKey(link), new LinkImpl<>(link, this));
}
}
use of org.apache.qpid.server.protocol.v1_0.type.messaging.Target in project qpid-broker-j by apache.
the class BDBLinkStore method save.
private void save(Database database, Transaction txn, final LinkDefinition<Source, Target> link) {
DatabaseEntry key = new DatabaseEntry();
DatabaseEntry value = new DatabaseEntry();
LinkKey linkKey = new LinkKey(link);
LinkKeyEntryBinding.getInstance().objectToEntry(linkKey, key);
LinkValueEntryBinding.getInstance().objectToEntry(new LinkValue(link), value);
// TODO: create transaction
OperationStatus status = database.put(txn, key, value);
if (status != OperationStatus.SUCCESS) {
throw new StoreException(String.format("Cannot save link %s", linkKey));
}
}
Aggregations