Search in sources :

Example 16 with ConfiguredObjectRecord

use of org.apache.qpid.server.store.ConfiguredObjectRecord in project qpid-broker-j by apache.

the class ManagementModeStoreHandlerTest method openAndGetRecords.

private Collection<ConfiguredObjectRecord> openAndGetRecords() {
    final Collection<ConfiguredObjectRecord> records = new ArrayList<>();
    _handler.openConfigurationStore(new ConfiguredObjectRecordHandler() {

        @Override
        public void handle(final ConfiguredObjectRecord record) {
            records.add(record);
        }
    });
    return records;
}
Also used : ArrayList(java.util.ArrayList) ConfiguredObjectRecord(org.apache.qpid.server.store.ConfiguredObjectRecord) ConfiguredObjectRecordHandler(org.apache.qpid.server.store.handler.ConfiguredObjectRecordHandler)

Example 17 with ConfiguredObjectRecord

use of org.apache.qpid.server.store.ConfiguredObjectRecord in project qpid-broker-j by apache.

the class StoreConfigurationChangeListenerTest method testStateChanged.

public void testStateChanged() {
    notifyBrokerStarted();
    UUID id = UUID.randomUUID();
    ConfiguredObject object = mock(VirtualHost.class);
    when(object.isDurable()).thenReturn(true);
    when(object.getId()).thenReturn(id);
    ConfiguredObjectRecord record = mock(ConfiguredObjectRecord.class);
    when(object.asObjectRecord()).thenReturn(record);
    _listener.stateChanged(object, State.ACTIVE, State.DELETED);
    verify(_store).remove(record);
}
Also used : ConfiguredObject(org.apache.qpid.server.model.ConfiguredObject) ConfiguredObjectRecord(org.apache.qpid.server.store.ConfiguredObjectRecord) UUID(java.util.UUID)

Example 18 with ConfiguredObjectRecord

use of org.apache.qpid.server.store.ConfiguredObjectRecord in project qpid-broker-j by apache.

the class ManagementModeStoreHandler method openConfigurationStore.

@Override
public boolean openConfigurationStore(final ConfiguredObjectRecordHandler recoveryHandler, final ConfiguredObjectRecord... initialRecords) throws StoreException {
    changeState(StoreState.CONFIGURED, StoreState.OPEN);
    _records = new HashMap<UUID, ConfiguredObjectRecord>();
    UnderlyingStoreRecoveringObjectRecordHandler underlyingHandler = new UnderlyingStoreRecoveringObjectRecordHandler();
    boolean isNew = _store.openConfigurationStore(underlyingHandler, initialRecords);
    _quiescedEntriesOriginalState = quiesceEntries(_systemConfig, underlyingHandler.getRecoveredRecords());
    recoverRecords(underlyingHandler.getRecoveredRecords());
    _cliEntries = createPortsFromCommandLineOptions(_systemConfig);
    for (ConfiguredObjectRecord entry : _cliEntries.values()) {
        _records.put(entry.getId(), entry);
    }
    for (ConfiguredObjectRecord record : _records.values()) {
        recoveryHandler.handle(record);
    }
    return isNew;
}
Also used : ConfiguredObjectRecord(org.apache.qpid.server.store.ConfiguredObjectRecord) UUID(java.util.UUID)

Example 19 with ConfiguredObjectRecord

use of org.apache.qpid.server.store.ConfiguredObjectRecord in project qpid-broker-j by apache.

the class ManagementModeStoreHandler method remove.

@Override
public synchronized UUID[] remove(final ConfiguredObjectRecord... records) {
    assertState(StoreState.OPEN);
    synchronized (_store) {
        UUID[] idsToRemove = new UUID[records.length];
        for (int i = 0; i < records.length; i++) {
            idsToRemove[i] = records[i].getId();
        }
        for (UUID id : idsToRemove) {
            if (_cliEntries.containsKey(id)) {
                throw new IllegalConfigurationException("Cannot change configuration for command line entry:" + _cliEntries.get(id));
            }
        }
        UUID[] result = _store.remove(records);
        for (UUID id : idsToRemove) {
            if (_quiescedEntriesOriginalState.containsKey(id)) {
                _quiescedEntriesOriginalState.remove(id);
            }
        }
        for (ConfiguredObjectRecord record : records) {
            _records.remove(record.getId());
        }
        return result;
    }
}
Also used : IllegalConfigurationException(org.apache.qpid.server.configuration.IllegalConfigurationException) ConfiguredObjectRecord(org.apache.qpid.server.store.ConfiguredObjectRecord) UUID(java.util.UUID)

Example 20 with ConfiguredObjectRecord

use of org.apache.qpid.server.store.ConfiguredObjectRecord in project qpid-broker-j by apache.

the class ManagementModeStoreHandler method update.

@Override
public void update(final boolean createIfNecessary, final ConfiguredObjectRecord... records) throws StoreException {
    assertState(StoreState.OPEN);
    synchronized (_store) {
        Collection<ConfiguredObjectRecord> actualUpdates = new ArrayList<ConfiguredObjectRecord>();
        for (ConfiguredObjectRecord record : records) {
            if (_cliEntries.containsKey(record.getId())) {
                throw new IllegalConfigurationException("Cannot save configuration provided as command line argument:" + record);
            } else if (_quiescedEntriesOriginalState.containsKey(record.getId())) {
                // save entry with the original state
                record = createEntryWithState(record, _quiescedEntriesOriginalState.get(record.getId()));
            }
            actualUpdates.add(record);
        }
        _store.update(createIfNecessary, actualUpdates.toArray(new ConfiguredObjectRecord[actualUpdates.size()]));
    }
    for (ConfiguredObjectRecord record : records) {
        _records.put(record.getId(), record);
    }
}
Also used : ArrayList(java.util.ArrayList) IllegalConfigurationException(org.apache.qpid.server.configuration.IllegalConfigurationException) ConfiguredObjectRecord(org.apache.qpid.server.store.ConfiguredObjectRecord)

Aggregations

ConfiguredObjectRecord (org.apache.qpid.server.store.ConfiguredObjectRecord)58 HashMap (java.util.HashMap)27 ConfiguredObject (org.apache.qpid.server.model.ConfiguredObject)25 UUID (java.util.UUID)24 ConfiguredObjectRecordImpl (org.apache.qpid.server.store.ConfiguredObjectRecordImpl)14 IllegalConfigurationException (org.apache.qpid.server.configuration.IllegalConfigurationException)13 ArrayList (java.util.ArrayList)12 ConfiguredObjectRecordHandler (org.apache.qpid.server.store.handler.ConfiguredObjectRecordHandler)8 LinkedHashMap (java.util.LinkedHashMap)6 IOException (java.io.IOException)5 Transaction (com.sleepycat.je.Transaction)4 Map (java.util.Map)4 DurableConfigurationStore (org.apache.qpid.server.store.DurableConfigurationStore)4 StoreException (org.apache.qpid.server.store.StoreException)4 Mockito.doAnswer (org.mockito.Mockito.doAnswer)4 InvocationOnMock (org.mockito.invocation.InvocationOnMock)4 Answer (org.mockito.stubbing.Answer)4 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)3 Connection (java.sql.Connection)3 SQLException (java.sql.SQLException)3