From 7bea03f19cac3c841c7fdcab73bf2a3eb025a98d Mon Sep 17 00:00:00 2001 From: John Blum Date: Fri, 22 Jun 2018 13:33:59 -0700 Subject: [PATCH] Add docs example demonstrating a Spring Boot, Apache Geode CacheServer application that can be run standalone, as a loner, or as part of a cluster. --- ...BootApacheGeodeCacheServerApplication.java | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 spring-geode-docs/src/main/java/example/app/server/SpringBootApacheGeodeCacheServerApplication.java diff --git a/spring-geode-docs/src/main/java/example/app/server/SpringBootApacheGeodeCacheServerApplication.java b/spring-geode-docs/src/main/java/example/app/server/SpringBootApacheGeodeCacheServerApplication.java new file mode 100644 index 00000000..078ab2c6 --- /dev/null +++ b/spring-geode-docs/src/main/java/example/app/server/SpringBootApacheGeodeCacheServerApplication.java @@ -0,0 +1,68 @@ +/* + * Copyright 2018 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package example.app.server; + +import org.apache.geode.cache.Cache; +import org.apache.geode.cache.server.CacheServer; +import org.apache.geode.distributed.Locator; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Profile; +import org.springframework.data.gemfire.config.annotation.CacheServerApplication; +import org.springframework.data.gemfire.config.annotation.EnableLocator; +import org.springframework.data.gemfire.config.annotation.EnableManager; +import org.springframework.geode.config.annotation.UseLocators; + +/** + * Example Spring Boot configured and bootstrapped Apache Geode/Pivotal GemFire peer {@link Cache}, {@link CacheServer} + * application, running an embedded {@link Locator} and {@literal Manager} service. + * + * @author John Blum + * @see org.apache.geode.cache.Cache + * @see org.apache.geode.cache.server.CacheServer + * @see org.apache.geode.distributed.Locator + * @see org.springframework.boot.SpringApplication + * @see org.springframework.boot.autoconfigure.SpringBootApplication + * @see org.springframework.context.annotation.Configuration + * @see org.springframework.data.gemfire.config.annotation.CacheServerApplication + * @see org.springframework.data.gemfire.config.annotation.EnableLocator + * @see org.springframework.data.gemfire.config.annotation.EnableManager + * @see org.springframework.geode.config.annotation.UseLocators + * @since 1.0.0 + */ +@SpringBootApplication +@CacheServerApplication(name = "SpringBootApacheGeodeCacheServerApplication") +@SuppressWarnings("unused") +public class SpringBootApacheGeodeCacheServerApplication { + + public static void main(String[] args) { + SpringApplication.run(SpringBootApacheGeodeCacheServerApplication.class, args); + } + + @Configuration + @UseLocators + @Profile("clustered") + static class ClusteredConfiguration { } + + @Configuration + @EnableLocator + @EnableManager(start = true) + @Profile("!clustered") + static class LonerConfiguration { } + +}