spring-geode/src/main/java/org/springframework/geode/cache/AsyncInlineCachingRegionConfigurer.java
/**
	 * Constructs a new instance of an {@link AsyncEventQueue} to attach to the target {@link Region} configured for
	 * {@literal Asynchronous Inline Caching}.
	 *
	 * @param peerCache reference to the {@link Cache peer cache}; must not be {@literal null}.
	 * @param regionBeanName {@link String name} of the target {@link Region}; must not be {@literal null}.
	 * @return a new {@link AsyncEventQueue}.
	 * @see org.apache.geode.cache.asyncqueue.AsyncEventQueue
	 * @see org.apache.geode.cache.Cache
	 * @see #generateId(String)
	 * @see #newAsyncEventQueueFactory(Cache)
	 * @see #newAsyncEventQueue(AsyncEventQueueFactory, String, AsyncEventListener)
	 * @see #newRepositoryAsyncEventListener()
	 * @see #postProcess(AsyncEventListener)
	 * @see #postProcess(AsyncEventQueue)
	 * @see #postProcess(AsyncEventQueueFactory)
	 */
Constructs a new instance of an  AsyncEventQueue to attach to the target  Region configured for
Asynchronous Inline Caching.

@param peerCache reference to the  Cache peer cache; must not be  null.
@param regionBeanName  String name of the target  Region; must not be  null.
@return a new  AsyncEventQueue.
Constructs a new instance of an AsyncEventQueue to attach to the target Region configured for Asynchronous Inline Caching . @param peerCache reference to the Cache peer cache ; must not be null . @param regionBeanName String name of the target Region ; must not be null . @return a new AsyncEventQueue .
protected AsyncEventQueue newAsyncEventQueue(@NonNull Cache peerCache, @NonNull String regionBeanName) {
		AsyncEventQueueFactory asyncEventQueueFactory = newAsyncEventQueueFactory(peerCache);
		Optional.ofNullable(this.batchConflationEnabled).ifPresent(asyncEventQueueFactory::setBatchConflationEnabled);
		Optional.ofNullable(this.batchSize).ifPresent(asyncEventQueueFactory::setBatchSize);
		Optional.ofNullable(this.batchTimeInterval).ifPresent(asyncEventQueueFactory::setBatchTimeInterval);
		Optional.ofNullable(this.diskStoreName).filter(StringUtils::hasText).ifPresent(asyncEventQueueFactory::setDiskStoreName);
		Optional.ofNullable(this.diskSynchronous).ifPresent(asyncEventQueueFactory::setDiskSynchronous);
		Optional.ofNullable(this.dispatcherThreads).ifPresent(asyncEventQueueFactory::setDispatcherThreads);
		Optional.ofNullable(this.forwardExpirationDestroy).ifPresent(asyncEventQueueFactory::setForwardExpirationDestroy);
		Optional.ofNullable(this.gatewayEventSubstitutionFilter).ifPresent(asyncEventQueueFactory::setGatewayEventSubstitutionListener);
		Optional.ofNullable(this.maximumQueueMemory).ifPresent(asyncEventQueueFactory::setMaximumQueueMemory);
		Optional.ofNullable(this.orderPolicy).ifPresent(asyncEventQueueFactory::setOrderPolicy);
		Optional.ofNullable(this.parallel).ifPresent(asyncEventQueueFactory::setParallel);
		Optional.ofNullable(this.persistent).ifPresent(asyncEventQueueFactory::setPersistent);
		CollectionUtils.nullSafeList(this.gatewayEventFilters).stream()
			.filter(Objects::nonNull)
			.forEach(asyncEventQueueFactory::addGatewayEventFilter);
		if (Boolean.TRUE.equals(this.pauseEventDispatching)) {
			asyncEventQueueFactory.pauseEventDispatching();
		}
		String asyncEventQueueId = generateId(regionBeanName);
		AsyncEventListener asyncEventListener = newRepositoryAsyncEventListener();
		asyncEventListener = postProcess(asyncEventListener);
		asyncEventQueueFactory = postProcess(asyncEventQueueFactory);
		AsyncEventQueue asyncEventQueue =
			newAsyncEventQueue(asyncEventQueueFactory, asyncEventQueueId, asyncEventListener);
		asyncEventQueue = postProcess(asyncEventQueue);
		return asyncEventQueue;
	}
protected AsyncEventQueue newAsyncEventQueue ( @ NonNull Cache peerCache , @ NonNull String regionBeanName ) { AsyncEventQueueFactory asyncEventQueueFactory = newAsyncEventQueueFactory ( peerCache ) ; Optional . ofNullable ( this . batchConflationEnabled ) . ifPresent ( asyncEventQueueFactory :: setBatchConflationEnabled ) ; Optional . ofNullable ( this . batchSize ) . ifPresent ( asyncEventQueueFactory :: setBatchSize ) ; Optional . ofNullable ( this . batchTimeInterval ) . ifPresent ( asyncEventQueueFactory :: setBatchTimeInterval ) ; Optional . ofNullable ( this . diskStoreName ) . filter ( StringUtils :: hasText ) . ifPresent ( asyncEventQueueFactory :: setDiskStoreName ) ; Optional . ofNullable ( this . diskSynchronous ) . ifPresent ( asyncEventQueueFactory :: setDiskSynchronous ) ; Optional . ofNullable ( this . dispatcherThreads ) . ifPresent ( asyncEventQueueFactory :: setDispatcherThreads ) ; Optional . ofNullable ( this . forwardExpirationDestroy ) . ifPresent ( asyncEventQueueFactory :: setForwardExpirationDestroy ) ; Optional . ofNullable ( this . gatewayEventSubstitutionFilter ) . ifPresent ( asyncEventQueueFactory :: setGatewayEventSubstitutionListener ) ; Optional . ofNullable ( this . maximumQueueMemory ) . ifPresent ( asyncEventQueueFactory :: setMaximumQueueMemory ) ; Optional . ofNullable ( this . orderPolicy ) . ifPresent ( asyncEventQueueFactory :: setOrderPolicy ) ; Optional . ofNullable ( this . parallel ) . ifPresent ( asyncEventQueueFactory :: setParallel ) ; Optional . ofNullable ( this . persistent ) . ifPresent ( asyncEventQueueFactory :: setPersistent ) ; CollectionUtils . nullSafeList ( this . gatewayEventFilters ) . stream ( ) . filter ( Objects :: nonNull ) . forEach ( asyncEventQueueFactory :: addGatewayEventFilter ) ; if ( Boolean . TRUE . equals ( this . pauseEventDispatching ) ) { asyncEventQueueFactory . pauseEventDispatching ( ) ; } String asyncEventQueueId = generateId ( regionBeanName ) ; AsyncEventListener asyncEventListener = newRepositoryAsyncEventListener ( ) ; asyncEventListener = postProcess ( asyncEventListener ) ; asyncEventQueueFactory = postProcess ( asyncEventQueueFactory ) ; AsyncEventQueue asyncEventQueue = newAsyncEventQueue ( asyncEventQueueFactory , asyncEventQueueId , asyncEventListener ) ; asyncEventQueue = postProcess ( asyncEventQueue ) ; return asyncEventQueue ; }
Constructs a new instance of an {@link AsyncEventQueue} to attach to the target {@link Region} configured for
 {@literal Asynchronous Inline Caching}.
Constructs a new instance of an { @link AsyncEventQueue } to attach to the target { @link Region } configured for { @literal Asynchronous Inline Caching } .