private void startAsyncEventQueue(Attributes atts) { AsyncEventQueueCreation asyncEventQueueCreation = new AsyncEventQueueCreation(); asyncEventQueueCreation.setId(id); asyncEventQueueCreation.setParallel(GatewaySender.DEFAULT_IS_PARALLEL); } else { asyncEventQueueCreation.setParallel(Boolean.parseBoolean(parallel)); asyncEventQueueCreation.setBatchSize(GatewaySender.DEFAULT_BATCH_SIZE); } else { asyncEventQueueCreation.setBatchSize(Integer.parseInt(batchSize)); asyncEventQueueCreation.setBatchTimeInterval(GatewaySender.DEFAULT_BATCH_TIME_INTERVAL); } else { asyncEventQueueCreation.setBatchTimeInterval(Integer.parseInt(batchTimeInterval)); asyncEventQueueCreation.setBatchConflationEnabled(GatewaySender.DEFAULT_BATCH_CONFLATION); } else { asyncEventQueueCreation.setBatchConflationEnabled(Boolean.parseBoolean(batchConflation)); asyncEventQueueCreation.setMaximumQueueMemory(GatewaySender.DEFAULT_MAXIMUM_QUEUE_MEMORY); } else { asyncEventQueueCreation.setMaximumQueueMemory(Integer.parseInt(maxQueueMemory)); asyncEventQueueCreation.setPersistent(GatewaySender.DEFAULT_PERSISTENCE_ENABLED); } else { asyncEventQueueCreation.setPersistent(Boolean.parseBoolean(persistent)); asyncEventQueueCreation.setDiskStoreName(null);
private void endAsyncEventQueue() { AsyncEventQueueCreation asyncEventChannelCreation = (AsyncEventQueueCreation) stack.peek(); AsyncEventQueueFactory factory = cache.createAsyncEventQueueFactory(); factory.setParallel(asyncEventChannelCreation.isParallel()); factory.setBatchSize(asyncEventChannelCreation.getBatchSize()); factory.setBatchTimeInterval(asyncEventChannelCreation.getBatchTimeInterval()); factory.setBatchConflationEnabled(asyncEventChannelCreation.isBatchConflationEnabled()); factory.setPersistent(asyncEventChannelCreation.isPersistent()); factory.setDiskStoreName(asyncEventChannelCreation.getDiskStoreName()); factory.setDiskSynchronous(asyncEventChannelCreation.isDiskSynchronous()); factory.setMaximumQueueMemory(asyncEventChannelCreation.getMaximumQueueMemory()); factory.setDispatcherThreads(asyncEventChannelCreation.getDispatcherThreads()); factory.setOrderPolicy(asyncEventChannelCreation.getOrderPolicy()); factory.setForwardExpirationDestroy(asyncEventChannelCreation.isForwardExpirationDestroy()); List<GatewayEventFilter> gatewayEventFilters = asyncEventChannelCreation.getGatewayEventFilters(); for (GatewayEventFilter gatewayEventFilter : gatewayEventFilters) { factory.addGatewayEventFilter(gatewayEventFilter); } factory.setGatewayEventSubstitutionListener( asyncEventChannelCreation.getGatewayEventSubstitutionFilter()); AsyncEventQueue asyncEventChannel = factory.create(asyncEventChannelCreation.getId(), asyncEventChannelCreation.getAsyncEventListener()); stack.pop(); }
private void endGatewayEventFilter() { Declarable d = createDeclarable(); if (!(d instanceof GatewayEventFilter)) { throw new CacheXmlException(String.format("A %s is not an instance of a %s", new Object[] {d.getClass().getName(), "GatewayEventFilter"})); } Object obj = stack.peek(); if (obj instanceof GatewaySenderFactory) { GatewaySenderFactory senderFactory = (GatewaySenderFactory) obj; senderFactory.addGatewayEventFilter((GatewayEventFilter) d); } else if (obj instanceof AsyncEventQueueCreation) { AsyncEventQueueCreation asyncEventQueueCreation = (AsyncEventQueueCreation) obj; asyncEventQueueCreation.addGatewayEventFilter((GatewayEventFilter) d); } else { throw new CacheXmlException( String.format( "A %s must be defined in the context of gateway-sender or async-event-queue.", "GatewayEventFilter")); } }
@Override public AsyncEventQueue create(String asyncQueueId, AsyncEventListener listener) { if (listener == null) { throw new IllegalArgumentException( "AsyncEventListener cannot be null"); } AsyncEventQueue asyncEventQueue; if (cache instanceof CacheCreation) { asyncEventQueue = new AsyncEventQueueCreation(asyncQueueId, gatewaySenderAttributes, listener); ((CacheCreation) cache).addAsyncEventQueue(asyncEventQueue); } else { if (logger.isDebugEnabled()) { logger.debug("Creating GatewaySender that underlies the AsyncEventQueue"); } addAsyncEventListener(listener); InternalGatewaySender sender = (InternalGatewaySender) create(getSenderIdFromAsyncEventQueueId(asyncQueueId)); AsyncEventQueueImpl asyncEventQueueImpl = new AsyncEventQueueImpl(sender, listener); asyncEventQueue = asyncEventQueueImpl; cache.addAsyncEventQueue(asyncEventQueueImpl); if (!gatewaySenderAttributes.isManualStart()) { sender.start(); } } if (logger.isDebugEnabled()) { logger.debug("Returning AsyncEventQueue" + asyncEventQueue); } return asyncEventQueue; }