Search in sources :

Example 1 with Declarable2

use of org.apache.geode.internal.cache.xmlcache.Declarable2 in project geode by apache.

the class ListAsyncEventQueuesFunction method execute.

@Override
public void execute(final FunctionContext context) {
    // Declared here so that it's available when returning a Throwable
    String memberId = "";
    try {
        Cache cache = CacheFactory.getAnyInstance();
        DistributedMember member = cache.getDistributedSystem().getDistributedMember();
        memberId = member.getId();
        // If they set a name use it instead
        if (!member.getName().equals("")) {
            memberId = member.getName();
        }
        Set<AsyncEventQueue> asyncEventQueues = cache.getAsyncEventQueues();
        AsyncEventQueueDetails[] asyncEventQueueDetails = new AsyncEventQueueDetails[asyncEventQueues.size()];
        int i = 0;
        for (AsyncEventQueue queue : asyncEventQueues) {
            AsyncEventListener listener = queue.getAsyncEventListener();
            Properties listenerProperties = new Properties();
            if (listener instanceof Declarable2) {
                listenerProperties = ((Declarable2) listener).getConfig();
            }
            asyncEventQueueDetails[i++] = new AsyncEventQueueDetails(queue.getId(), queue.getBatchSize(), queue.isPersistent(), queue.getDiskStoreName(), queue.getMaximumQueueMemory(), listener.getClass().getName(), listenerProperties);
        }
        CliFunctionResult result = new CliFunctionResult(memberId, asyncEventQueueDetails);
        context.getResultSender().lastResult(result);
    } catch (CacheClosedException cce) {
        CliFunctionResult result = new CliFunctionResult(memberId, false, null);
        context.getResultSender().lastResult(result);
    } catch (VirtualMachineError e) {
        SystemFailure.initiateFailure(e);
        throw e;
    } catch (Throwable th) {
        SystemFailure.checkFailure();
        logger.error("Could not list async event queues: {}", th.getMessage(), th);
        CliFunctionResult result = new CliFunctionResult(memberId, th, null);
        context.getResultSender().lastResult(result);
    }
}
Also used : AsyncEventQueueDetails(org.apache.geode.management.internal.cli.domain.AsyncEventQueueDetails) Declarable2(org.apache.geode.internal.cache.xmlcache.Declarable2) CacheClosedException(org.apache.geode.cache.CacheClosedException) Properties(java.util.Properties) AsyncEventQueue(org.apache.geode.cache.asyncqueue.AsyncEventQueue) DistributedMember(org.apache.geode.distributed.DistributedMember) Cache(org.apache.geode.cache.Cache) AsyncEventListener(org.apache.geode.cache.asyncqueue.AsyncEventListener)

Aggregations

Properties (java.util.Properties)1 Cache (org.apache.geode.cache.Cache)1 CacheClosedException (org.apache.geode.cache.CacheClosedException)1 AsyncEventListener (org.apache.geode.cache.asyncqueue.AsyncEventListener)1 AsyncEventQueue (org.apache.geode.cache.asyncqueue.AsyncEventQueue)1 DistributedMember (org.apache.geode.distributed.DistributedMember)1 Declarable2 (org.apache.geode.internal.cache.xmlcache.Declarable2)1 AsyncEventQueueDetails (org.apache.geode.management.internal.cli.domain.AsyncEventQueueDetails)1