@@ -1,78 +0,0 @@
|
||||
/*
|
||||
* Copyright 2012-2022 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
|
||||
*
|
||||
* https://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 org.springframework.data.gemfire.config.annotation;
|
||||
|
||||
import java.lang.annotation.Annotation;
|
||||
import java.lang.annotation.Documented;
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Inherited;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Import;
|
||||
|
||||
/**
|
||||
* The {@link EnableRedisServer} annotation marks a Spring {@link Configuration @Configuration} annotated {@link Class}
|
||||
* to embed the Redis service in this cluster member.
|
||||
*
|
||||
* The Redis service implements the Redis server protocol enabling Redis clients to connect to and inter-operate with
|
||||
* Pivotal GemFire or Apache Geode.
|
||||
*
|
||||
* However, the embedded Pivotal GemFire/Apache Geode Redis Service can be enabled/disabled externally
|
||||
* in {@literal application.properties} by using the {@literal spring.data.gemfire.service.redis.enabled} property
|
||||
* even when this {@link Annotation} is present, thereby serving as a toggle.
|
||||
*
|
||||
* @author John Blum
|
||||
* @see java.lang.annotation.Annotation
|
||||
* @see org.springframework.context.annotation.Import
|
||||
* @see org.springframework.data.gemfire.config.annotation.MemcachedServerConfiguration
|
||||
* @since 1.9.0
|
||||
* @deprecated Support for the Redis Server protocol in Apache Geode to service Redis clients is targeted
|
||||
* to be removed in the Apache Geode project as of Apache Geode 1.15.
|
||||
*/
|
||||
@Target(ElementType.TYPE)
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Documented
|
||||
@Inherited
|
||||
@Deprecated
|
||||
@Import(RedisServerConfiguration.class)
|
||||
@UsesGemFireProperties
|
||||
@SuppressWarnings("unused")
|
||||
public @interface EnableRedisServer {
|
||||
|
||||
/**
|
||||
* Configures the Network bind-address on which the Redis server will accept connections.
|
||||
*
|
||||
* Defaults to {@literal localhost}.
|
||||
*
|
||||
* Use the {@literal spring.data.gemfire.service.redis.bind-address} property in {@literal application.properties}.
|
||||
*/
|
||||
String bindAddress() default "";
|
||||
|
||||
/**
|
||||
* Configures the Network port on which the Redis server will listen for Redis client connections.
|
||||
*
|
||||
* Defaults to {@literal 6379}.
|
||||
*
|
||||
* Use the {@literal spring.data.gemfire.service.redis.port} property in {@literal application.properties}.
|
||||
*/
|
||||
int port() default RedisServerConfiguration.DEFAULT_REDIS_PORT;
|
||||
|
||||
}
|
||||
@@ -1,75 +0,0 @@
|
||||
/*
|
||||
* Copyright 2012-2022 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
|
||||
*
|
||||
* https://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 org.springframework.data.gemfire.config.annotation;
|
||||
|
||||
import java.lang.annotation.Annotation;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.Properties;
|
||||
|
||||
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
|
||||
import org.springframework.data.gemfire.config.annotation.support.EmbeddedServiceConfigurationSupport;
|
||||
import org.springframework.data.gemfire.util.PropertiesBuilder;
|
||||
|
||||
/**
|
||||
* The {@link RedisServerConfiguration} class is a Spring {@link ImportBeanDefinitionRegistrar} that applies
|
||||
* additional configuration using Pivotal GemFire/Apache Geode {@link Properties} to configure
|
||||
* an embedded Redis server.
|
||||
*
|
||||
* @author John Blum
|
||||
* @see org.springframework.context.annotation.ImportBeanDefinitionRegistrar
|
||||
* @see org.springframework.data.gemfire.config.annotation.EnableRedisServer
|
||||
* @see org.springframework.data.gemfire.config.annotation.support.EmbeddedServiceConfigurationSupport
|
||||
* @since 1.9.0
|
||||
* @deprecated Support for the Redis Server protocol in Apache Geode to service Redis clients is targeted
|
||||
* to be removed in the Apache Geode project as of Apache Geode 1.15.
|
||||
*/
|
||||
@Deprecated
|
||||
public class RedisServerConfiguration extends EmbeddedServiceConfigurationSupport {
|
||||
|
||||
protected static final int DEFAULT_REDIS_PORT = 6379;
|
||||
|
||||
/**
|
||||
* Returns the {@link EnableRedisServer} {@link java.lang.annotation.Annotation} {@link Class} type.
|
||||
*
|
||||
* @return the {@link EnableRedisServer} {@link java.lang.annotation.Annotation} {@link Class} type.
|
||||
* @see org.springframework.data.gemfire.config.annotation.EnableRedisServer
|
||||
*/
|
||||
@Override
|
||||
protected Class<? extends Annotation> getAnnotationType() {
|
||||
return EnableRedisServer.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Properties toGemFireProperties(Map<String, Object> annotationAttributes) {
|
||||
|
||||
return Optional.ofNullable(resolveProperty(redisServiceProperty("enabled"), Boolean.TRUE))
|
||||
.filter(Boolean.TRUE::equals)
|
||||
.map(enabled ->
|
||||
|
||||
PropertiesBuilder.create()
|
||||
.setProperty("redis-bind-address",
|
||||
resolveProperty(redisServiceProperty("bind-address"),
|
||||
(String) annotationAttributes.get("bindAddress")))
|
||||
.setProperty("redis-port",
|
||||
resolvePort(resolveProperty(redisServiceProperty("port"),
|
||||
(Integer) annotationAttributes.get("port")), DEFAULT_REDIS_PORT))
|
||||
.build()
|
||||
|
||||
).orElseGet(Properties::new);
|
||||
}
|
||||
}
|
||||
@@ -805,10 +805,6 @@ public abstract class AbstractAnnotationConfigSupport
|
||||
return String.format("%1$s%2$s", propertyName("service."), propertyNameSuffix);
|
||||
}
|
||||
|
||||
protected String redisServiceProperty(String propertyNameSuffix) {
|
||||
return String.format("%1$s%2$s", serviceProperty("redis."), propertyNameSuffix);
|
||||
}
|
||||
|
||||
protected String memcachedServiceProperty(String propertyNameSuffix) {
|
||||
return String.format("%1$s%2$s", serviceProperty("memcached."), propertyNameSuffix);
|
||||
}
|
||||
|
||||
@@ -39,10 +39,9 @@ import org.springframework.mock.env.MockPropertySource;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
/**
|
||||
* Integration tests for {@link EnableAuth}, {@link EnableGemFireProperties}, {@link EnableHttpService},
|
||||
* Integration Tests for {@link EnableAuth}, {@link EnableGemFireProperties}, {@link EnableHttpService},
|
||||
* {@link EnableLocator}, {@link EnableLogging}, {@link EnableManager}, {@link EnableMemcachedServer},
|
||||
* {@link EnableOffHeap}, {@link EnableRedisServer}, {@link EnableSecurity}, {@link EnableSsl},
|
||||
* {@link EnableStatistics}.
|
||||
* {@link EnableOffHeap}, {@link EnableSecurity}, {@link EnableSsl}, {@link EnableStatistics}.
|
||||
*
|
||||
* @author John Blum
|
||||
* @see java.util.Properties
|
||||
@@ -330,29 +329,6 @@ public class EnableGemFirePropertiesIntegrationTests extends SpringApplicationCo
|
||||
assertThat(gemfireCache.getPdxSerializer()).isEqualTo(mockPdxSerializer);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void redisServerGemFirePropertiesConfiguration() {
|
||||
|
||||
PropertySource testPropertySource = new MockPropertySource("TestPropertySource")
|
||||
.withProperty("spring.data.gemfire.service.redis.bind-address", "10.16.8.4")
|
||||
.withProperty("spring.data.gemfire.service.redis.port", "13579");
|
||||
|
||||
newApplicationContext(testPropertySource, TestRedisServerGemFirePropertiesConfiguration.class);
|
||||
|
||||
assertThat(containsBean("gemfireCache")).isTrue();
|
||||
|
||||
GemFireCache gemfireCache = getBean("gemfireCache", GemFireCache.class);
|
||||
|
||||
assertThat(gemfireCache).isNotNull();
|
||||
assertThat(gemfireCache.getDistributedSystem()).isNotNull();
|
||||
|
||||
Properties gemfireProperties = gemfireCache.getDistributedSystem().getProperties();
|
||||
|
||||
assertThat(gemfireProperties).isNotNull();
|
||||
assertThat(gemfireProperties.getProperty("redis-bind-address")).isEqualTo("10.16.8.4");
|
||||
assertThat(gemfireProperties.getProperty("redis-port")).isEqualTo("13579");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void securityGemFirePropertiesConfiguration() {
|
||||
|
||||
@@ -536,12 +512,6 @@ public class EnableGemFirePropertiesIntegrationTests extends SpringApplicationCo
|
||||
}
|
||||
}
|
||||
|
||||
@EnableGemFireMockObjects
|
||||
@PeerCacheApplication
|
||||
@EnableGemFireProperties
|
||||
@EnableRedisServer
|
||||
static class TestRedisServerGemFirePropertiesConfiguration { }
|
||||
|
||||
@EnableGemFireMockObjects
|
||||
@PeerCacheApplication
|
||||
@EnableGemFireProperties
|
||||
|
||||
@@ -157,34 +157,6 @@ See {sdg-javadoc}/org/springframework/data/gemfire/config/annotation/EnableMemca
|
||||
|
||||
See <<bootstrap-annotation-config-embedded-services-memcached>> for more details.
|
||||
|
||||
[[bootstap-annotations-quickstart-redisserver]]
|
||||
== Configure the Embedded Redis Server
|
||||
|
||||
Annotate your Spring `@PeerCacheApplication` or `@CacheServerApplication` class with `@EnableRedisServer` to start
|
||||
the embedded Redis server listening on port `6379`, as follows:
|
||||
|
||||
[source,java]
|
||||
----
|
||||
@SpringBootApplication
|
||||
@CacheServerApplication
|
||||
@EnableRedisServer
|
||||
public class ServerApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(ServerApplication.class, args);
|
||||
}
|
||||
}
|
||||
----
|
||||
|
||||
NOTE: `@EnableRedisServer` can only be used with {data-store-name} server applications.
|
||||
|
||||
WARNING: You must explicitly declare the `org.apache.geode:geode-redis` module on your Spring [Boot] application
|
||||
classpath.
|
||||
|
||||
See {sdg-javadoc}/org/springframework/data/gemfire/config/annotation/EnableRedisServer.html[`@EnableRedisServer` Javadoc].
|
||||
|
||||
See <<bootstrap-annotation-config-embedded-services-redis>> for more details.
|
||||
|
||||
[[bootstap-annotations-quickstart-logging]]
|
||||
== Configure Logging
|
||||
|
||||
|
||||
@@ -774,31 +774,6 @@ public class ServerApplication { .. }
|
||||
More details on {data-store-name}'s Memcached service (called "Gemcached") can be found
|
||||
{x-data-store-docs}/tools_modules/gemcached/chapter_overview.html[here].
|
||||
|
||||
[[bootstrap-annotation-config-embedded-services-redis]]
|
||||
=== Configuring the Embedded Redis Server
|
||||
|
||||
{data-store-name} also implements the Redis server protocol, which enables Redis clients to connect to and communicate
|
||||
with a cluster of {data-store-name} servers to issue Redis commands. As of this writing, the Redis server protocol
|
||||
support in {data-store-name} is still experimental.
|
||||
|
||||
To enable the embedded Redis service, add the `@EnableRedisServer` annotation to any `@PeerCacheApplication`
|
||||
or `@CacheServerApplication` annotated class, as follows:
|
||||
|
||||
.Spring `CacheServer` application running an embedded Redis server
|
||||
[source, java]
|
||||
----
|
||||
@SpringBootApplication
|
||||
@CacheServerApplication
|
||||
@EnableRedisServer
|
||||
public class ServerApplication { .. }
|
||||
----
|
||||
|
||||
WARNING: You must explicitly declare the `org.apache.geode:geode-redis` module on your Spring [Boot] application
|
||||
classpath.
|
||||
|
||||
More details on {data-store-name}'s Redis adapter can be found
|
||||
{x-data-store-docs}/tools_modules/redis_adapter.html[here].
|
||||
|
||||
[[bootstrap-annotation-config-logging]]
|
||||
== Configuring Logging
|
||||
|
||||
|
||||
Reference in New Issue
Block a user