Example usage for org.springframework.data.gemfire.function.execution GemfireOnServersFunctionTemplate GemfireOnServersFunctionTemplate

List of usage examples for org.springframework.data.gemfire.function.execution GemfireOnServersFunctionTemplate GemfireOnServersFunctionTemplate

Introduction

In this page you can find the example usage for org.springframework.data.gemfire.function.execution GemfireOnServersFunctionTemplate GemfireOnServersFunctionTemplate.

Prototype

public GemfireOnServersFunctionTemplate(String poolName) 

Source Link

Usage

From source file:org.springframework.data.gemfire.client.GemfireDataSourcePostProcessor.java

private void createClientRegions(ConfigurableListableBeanFactory beanFactory) {
    GemfireFunctionOperations functionTemplate = new GemfireOnServersFunctionTemplate(cache);

    Iterable<String> regionNames = functionTemplate.executeAndExtract(new ListRegionsOnServerFunction());

    ClientRegionFactory<?, ?> clientRegionFactory = null;

    if (regionNames != null && regionNames.iterator().hasNext()) {
        clientRegionFactory = cache.createClientRegionFactory(ClientRegionShortcut.PROXY);
    }/*from   w w  w  .  j a  va 2  s. co m*/

    for (String regionName : regionNames) {
        boolean createRegion = true;

        if (beanFactory.containsBean(regionName)) {
            Object existingBean = beanFactory.getBean(regionName);
            Assert.isTrue(existingBean instanceof Region, String.format(
                    "Cannot create a ClientRegion bean named '%1$s'. A bean with this name of type '%2$s' already exists.",
                    regionName, existingBean.getClass().getName()));
            createRegion = false;
        }

        if (createRegion) {
            if (logger.isDebugEnabled()) {
                logger.debug(String.format("Creating Client Region bean with name '%s'...", regionName));
            }
            beanFactory.registerSingleton(regionName, clientRegionFactory.create(regionName));
        } else {
            if (logger.isDebugEnabled()) {
                logger.debug(String.format("A Region named '%s' is already defined.", regionName));
            }
        }
    }
}