geode-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From upthewatersp...@apache.org
Subject [geode] branch develop updated: GEODE-6503: Moving redis into a separate module
Date Thu, 14 Mar 2019 17:52:55 GMT
This is an automated email from the ASF dual-hosted git repository.

upthewaterspout pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/develop by this push:
     new b32631e  GEODE-6503: Moving redis into a separate module
b32631e is described below

commit b32631eaf587dce3bbc84f7c0cae73bba0eb7061
Author: Dan Smith <upthewaterspout@apache.org>
AuthorDate: Fri Mar 8 13:17:09 2019 -0800

    GEODE-6503: Moving redis into a separate module
    
    * Moving all of the geode redis apapter code to the geode-redis module
    * Moving the redis specific dependencies (netty and geo) to geode-redis
    * Adding a GeodeRedisService to initialize the redis server
    
    The geode distribution will still include redis, and gfsh start server
    will still include redis on it's classpath. However, consumers of
    the geode-core maven module will no longer get the redis module and its
    dependencies unless they explicitly also depend on geode-redis.
    
    This closes #3284
---
 .../src/test/resources/expected-pom.xml            |   5 +
 geode-assembly/build.gradle                        |   3 +
 .../integrationTest/resources/assembly_content.txt |   1 +
 .../resources/dependency_classpath.txt             |   1 +
 geode-core/build.gradle                            |   8 +-
 .../apache/geode/codeAnalysis/excludedClasses.txt  |   9 -
 .../codeAnalysis/sanctionedDataSerializables.txt   |   8 -
 .../geode/distributed/ConfigurationProperties.java |   2 -
 .../internal/DistributionConfigImpl.java           |   1 -
 .../apache/geode/internal/cache/CacheService.java  |   7 +
 .../geode/internal/cache/GemFireCacheImpl.java     |  55 ++----
 .../sanctioned-geode-core-serializables.txt        | 193 ---------------------
 geode-core/src/test/resources/expected-pom.xml     |  11 --
 geode-redis/build.gradle                           |  31 ++++
 .../org/apache/geode/redis/RedisDistDUnitTest.java |   4 +-
 .../java/org/apache/geode/redis/AuthJUnitTest.java |   0
 .../apache/geode/redis/ConcurrentStartTest.java    |   0
 .../java/org/apache/geode/redis/GeoCoderTest.java  |   0
 .../java/org/apache/geode/redis/GeoJUnitTest.java  |   0
 .../org/apache/geode/redis/HashesJUnitTest.java    |   0
 .../org/apache/geode/redis/ListsJUnitTest.java     |   0
 .../geode/redis/RedisServerIntegrationTest.java    |   0
 .../java/org/apache/geode/redis/SetsJUnitTest.java |   0
 .../apache/geode/redis/SortedSetsJUnitTest.java    |   0
 .../org/apache/geode/redis/StringsJunitTest.java   |   0
 .../java/org/apache/geode/internal/hll/Bits.java   |   0
 .../internal/hll/CardinalityMergeException.java    |   0
 .../org/apache/geode/internal/hll/HyperLogLog.java |   0
 .../apache/geode/internal/hll/HyperLogLogPlus.java |   0
 .../org/apache/geode/internal/hll/IBuilder.java    |   0
 .../apache/geode/internal/hll/ICardinality.java    |   0
 .../org/apache/geode/internal/hll/MurmurHash.java  |   0
 .../org/apache/geode/internal/hll/RegisterSet.java |   0
 .../org/apache/geode/redis/GeodeRedisServer.java   |   0
 .../geode/redis/internal/ByteArrayWrapper.java     |   0
 .../geode/redis/internal/ByteToCommandDecoder.java |   0
 .../org/apache/geode/redis/internal/Coder.java     |   0
 .../geode/redis/internal/CoderException.java       |   0
 .../org/apache/geode/redis/internal/Command.java   |   0
 .../apache/geode/redis/internal/DoubleWrapper.java |   0
 .../redis/internal/ExecutionHandlerContext.java    |   0
 .../org/apache/geode/redis/internal/Executor.java  |   0
 .../apache/geode/redis/internal/Extendable.java    |   0
 .../org/apache/geode/redis/internal/GeoCoder.java  |   0
 .../org/apache/geode/redis/internal/GeoCoord.java  |   0
 .../redis/internal/GeoRadiusResponseElement.java   |   0
 .../geode/redis/internal/GeodeRedisService.java    |  79 +++++++++
 .../org/apache/geode/redis/internal/HashArea.java  |   0
 .../apache/geode/redis/internal/HashNeighbors.java |   0
 .../redis/internal/MemberNotFoundException.java    |   0
 .../java/org/apache/geode/redis/internal/Pair.java |   0
 .../internal/RedisCommandParserException.java      |   0
 .../geode/redis/internal/RedisCommandType.java     |   0
 .../geode/redis/internal/RedisConstants.java       |   0
 .../apache/geode/redis/internal/RedisDataType.java |   0
 .../internal/RedisDataTypeMismatchException.java   |   0
 .../redis/internal/RegionCreationException.java    |   0
 .../geode/redis/internal/RegionProvider.java       |   0
 .../redis/internal/executor/AbstractExecutor.java  |   0
 .../internal/executor/AbstractScanExecutor.java    |   0
 .../redis/internal/executor/AuthExecutor.java      |   0
 .../redis/internal/executor/DBSizeExecutor.java    |   0
 .../geode/redis/internal/executor/DelExecutor.java |   0
 .../redis/internal/executor/EchoExecutor.java      |   0
 .../redis/internal/executor/ExistsExecutor.java    |   0
 .../internal/executor/ExpirationExecutor.java      |   0
 .../redis/internal/executor/ExpireAtExecutor.java  |   0
 .../redis/internal/executor/ExpireExecutor.java    |   0
 .../redis/internal/executor/FlushAllExecutor.java  |   0
 .../redis/internal/executor/KeysExecutor.java      |   0
 .../geode/redis/internal/executor/ListQuery.java   |   0
 .../redis/internal/executor/PExpireAtExecutor.java |   0
 .../redis/internal/executor/PExpireExecutor.java   |   0
 .../redis/internal/executor/PTTLExecutor.java      |   0
 .../redis/internal/executor/PersistExecutor.java   |   0
 .../redis/internal/executor/PingExecutor.java      |   0
 .../redis/internal/executor/QuitExecutor.java      |   0
 .../redis/internal/executor/ScanExecutor.java      |   0
 .../redis/internal/executor/ShutDownExecutor.java  |   0
 .../redis/internal/executor/SortedSetQuery.java    |   0
 .../geode/redis/internal/executor/TTLExecutor.java |   0
 .../redis/internal/executor/TimeExecutor.java      |   0
 .../redis/internal/executor/TypeExecutor.java      |   0
 .../redis/internal/executor/UnkownExecutor.java    |   0
 .../redis/internal/executor/hash/HDelExecutor.java |   0
 .../internal/executor/hash/HExistsExecutor.java    |   0
 .../internal/executor/hash/HGetAllExecutor.java    |   0
 .../redis/internal/executor/hash/HGetExecutor.java |   0
 .../internal/executor/hash/HIncrByExecutor.java    |   0
 .../executor/hash/HIncrByFloatExecutor.java        |   0
 .../internal/executor/hash/HKeysExecutor.java      |   0
 .../redis/internal/executor/hash/HLenExecutor.java |   0
 .../internal/executor/hash/HMGetExecutor.java      |   0
 .../internal/executor/hash/HMSetExecutor.java      |   0
 .../internal/executor/hash/HScanExecutor.java      |   0
 .../redis/internal/executor/hash/HSetExecutor.java |   0
 .../internal/executor/hash/HSetNXExecutor.java     |   0
 .../internal/executor/hash/HValsExecutor.java      |   0
 .../redis/internal/executor/hash/HashExecutor.java |   0
 .../redis/internal/executor/hll/HllExecutor.java   |   0
 .../redis/internal/executor/hll/PFAddExecutor.java |   0
 .../internal/executor/hll/PFCountExecutor.java     |   0
 .../internal/executor/hll/PFMergeExecutor.java     |   0
 .../geode/redis/internal/executor/hll/Varint.java  |   0
 .../internal/executor/list/LIndexExecutor.java     |   0
 .../internal/executor/list/LInsertExecutor.java    |   0
 .../redis/internal/executor/list/LLenExecutor.java |   0
 .../redis/internal/executor/list/LPopExecutor.java |   0
 .../internal/executor/list/LPushExecutor.java      |   0
 .../internal/executor/list/LPushXExecutor.java     |   0
 .../internal/executor/list/LRangeExecutor.java     |   0
 .../redis/internal/executor/list/LRemExecutor.java |   0
 .../redis/internal/executor/list/LSetExecutor.java |   0
 .../internal/executor/list/LTrimExecutor.java      |   0
 .../redis/internal/executor/list/ListExecutor.java |   0
 .../redis/internal/executor/list/PopExecutor.java  |   0
 .../redis/internal/executor/list/PushExecutor.java |   0
 .../internal/executor/list/PushXExecutor.java      |   0
 .../redis/internal/executor/list/RPopExecutor.java |   0
 .../internal/executor/list/RPushExecutor.java      |   0
 .../internal/executor/list/RPushXExecutor.java     |   0
 .../redis/internal/executor/set/SAddExecutor.java  |   0
 .../redis/internal/executor/set/SCardExecutor.java |   0
 .../redis/internal/executor/set/SDiffExecutor.java |   0
 .../internal/executor/set/SDiffStoreExecutor.java  |   0
 .../internal/executor/set/SInterExecutor.java      |   0
 .../internal/executor/set/SInterStoreExecutor.java |   0
 .../internal/executor/set/SIsMemberExecutor.java   |   0
 .../internal/executor/set/SMembersExecutor.java    |   0
 .../redis/internal/executor/set/SMoveExecutor.java |   0
 .../redis/internal/executor/set/SPopExecutor.java  |   0
 .../internal/executor/set/SRandMemberExecutor.java |   0
 .../redis/internal/executor/set/SRemExecutor.java  |   0
 .../redis/internal/executor/set/SScanExecutor.java |   0
 .../internal/executor/set/SUnionExecutor.java      |   0
 .../internal/executor/set/SUnionStoreExecutor.java |   0
 .../redis/internal/executor/set/SetExecutor.java   |   0
 .../redis/internal/executor/set/SetOpExecutor.java |   0
 .../executor/sortedset/GeoAddExecutor.java         |   0
 .../executor/sortedset/GeoDistExecutor.java        |   0
 .../executor/sortedset/GeoHashExecutor.java        |   0
 .../executor/sortedset/GeoPosExecutor.java         |   0
 .../sortedset/GeoRadiusByMemberExecutor.java       |   0
 .../executor/sortedset/GeoRadiusExecutor.java      |   0
 .../executor/sortedset/GeoRadiusParameters.java    |   0
 .../executor/sortedset/GeoSortedSetExecutor.java   |   0
 .../executor/sortedset/SortedSetExecutor.java      |   0
 .../internal/executor/sortedset/ZAddExecutor.java  |   0
 .../internal/executor/sortedset/ZCardExecutor.java |   0
 .../executor/sortedset/ZCountExecutor.java         |   0
 .../executor/sortedset/ZIncrByExecutor.java        |   0
 .../executor/sortedset/ZLexCountExecutor.java      |   0
 .../executor/sortedset/ZRangeByLexExecutor.java    |   0
 .../executor/sortedset/ZRangeByScoreExecutor.java  |   0
 .../executor/sortedset/ZRangeExecutor.java         |   0
 .../internal/executor/sortedset/ZRankExecutor.java |   0
 .../internal/executor/sortedset/ZRemExecutor.java  |   0
 .../executor/sortedset/ZRemRangeByLexExecutor.java |   0
 .../sortedset/ZRemRangeByRankExecutor.java         |   0
 .../sortedset/ZRemRangeByScoreExecutor.java        |   0
 .../sortedset/ZRevRangeByScoreExecutor.java        |   0
 .../executor/sortedset/ZRevRangeExecutor.java      |   0
 .../executor/sortedset/ZRevRankExecutor.java       |   0
 .../internal/executor/sortedset/ZScanExecutor.java |   0
 .../executor/sortedset/ZScoreExecutor.java         |   0
 .../internal/executor/string/AppendExecutor.java   |   0
 .../internal/executor/string/BitCountExecutor.java |   0
 .../internal/executor/string/BitOpExecutor.java    |   0
 .../internal/executor/string/BitPosExecutor.java   |   0
 .../internal/executor/string/DecrByExecutor.java   |   0
 .../internal/executor/string/DecrExecutor.java     |   0
 .../internal/executor/string/GetBitExecutor.java   |   0
 .../internal/executor/string/GetExecutor.java      |   0
 .../internal/executor/string/GetRangeExecutor.java |   0
 .../internal/executor/string/GetSetExecutor.java   |   0
 .../internal/executor/string/IncrByExecutor.java   |   0
 .../executor/string/IncrByFloatExecutor.java       |   0
 .../internal/executor/string/IncrExecutor.java     |   0
 .../internal/executor/string/MGetExecutor.java     |   0
 .../internal/executor/string/MSetExecutor.java     |   0
 .../internal/executor/string/MSetNXExecutor.java   |   0
 .../internal/executor/string/PSetEXExecutor.java   |   0
 .../internal/executor/string/SetBitExecutor.java   |   0
 .../internal/executor/string/SetEXExecutor.java    |   0
 .../internal/executor/string/SetExecutor.java      |   0
 .../internal/executor/string/SetNXExecutor.java    |   0
 .../internal/executor/string/SetRangeExecutor.java |   0
 .../internal/executor/string/StringExecutor.java   |   0
 .../internal/executor/string/StrlenExecutor.java   |   0
 .../executor/transactions/DiscardExecutor.java     |   0
 .../executor/transactions/ExecExecutor.java        |   0
 .../executor/transactions/MultiExecutor.java       |   0
 .../executor/transactions/TransactionExecutor.java |   0
 .../executor/transactions/UnwatchExecutor.java     |   0
 .../executor/transactions/WatchExecutor.java       |   0
 .../internal/org/apache/hadoop/fs/GlobPattern.java |   0
 .../org.apache.geode.internal.cache.CacheService   |   1 +
 .../executor/AbstractScanExecutorTest.java         |   0
 geode-redis/src/test/resources/expected-pom.xml    |  65 +++++++
 settings.gradle                                    |   1 +
 200 files changed, 214 insertions(+), 271 deletions(-)

diff --git a/boms/geode-all-bom/src/test/resources/expected-pom.xml b/boms/geode-all-bom/src/test/resources/expected-pom.xml
index a8dcc11..8faf3cf 100644
--- a/boms/geode-all-bom/src/test/resources/expected-pom.xml
+++ b/boms/geode-all-bom/src/test/resources/expected-pom.xml
@@ -709,6 +709,11 @@
       </dependency>
       <dependency>
         <groupId>org.apache.geode</groupId>
+        <artifactId>geode-redis</artifactId>
+        <version>1.10.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.geode</groupId>
         <artifactId>geode-wan</artifactId>
         <version>1.10.0-SNAPSHOT</version>
       </dependency>
diff --git a/geode-assembly/build.gradle b/geode-assembly/build.gradle
index cf718aa..17e37cb 100755
--- a/geode-assembly/build.gradle
+++ b/geode-assembly/build.gradle
@@ -148,6 +148,7 @@ dependencies {
   archives project(':geode-core')
   archives project(':geode-connectors')
   archives project(':geode-lucene')
+  archives project(':geode-redis')
   archives project(':geode-old-client-support')
   archives project(':geode-protobuf')
   archives project(':geode-protobuf-messages')
@@ -484,6 +485,8 @@ distributions {
         from project(':geode-core').configurations.archives.allArtifacts.files
         from project(':geode-lucene').configurations.runtimeClasspath
         from project(':geode-lucene').configurations.archives.allArtifacts.files
+        from project(':geode-redis').configurations.runtimeClasspath
+        from project(':geode-redis').configurations.runtimeClasspath.allArtifacts.files
         from project(':geode-connectors').configurations.runtimeClasspath
         from project(':geode-connectors').configurations.archives.allArtifacts.files
         from project(':geode-old-client-support').configurations.runtimeClasspath
diff --git a/geode-assembly/src/integrationTest/resources/assembly_content.txt b/geode-assembly/src/integrationTest/resources/assembly_content.txt
index 09c988d..6efee5b 100644
--- a/geode-assembly/src/integrationTest/resources/assembly_content.txt
+++ b/geode-assembly/src/integrationTest/resources/assembly_content.txt
@@ -906,6 +906,7 @@ lib/geode-dependencies.jar
 lib/geode-jca-0.0.0.rar
 lib/geode-json-0.0.0.jar
 lib/geode-lucene-0.0.0.jar
+lib/geode-redis-0.0.0.jar
 lib/geode-management-0.0.0.jar
 lib/geode-old-client-support-0.0.0.jar
 lib/geode-protobuf-0.0.0.jar
diff --git a/geode-assembly/src/integrationTest/resources/dependency_classpath.txt b/geode-assembly/src/integrationTest/resources/dependency_classpath.txt
index 92f206e..66ed107 100644
--- a/geode-assembly/src/integrationTest/resources/dependency_classpath.txt
+++ b/geode-assembly/src/integrationTest/resources/dependency_classpath.txt
@@ -20,6 +20,7 @@ geode-core-0.0.0.jar
 geode-cq-0.0.0.jar
 geode-json-0.0.0.jar
 geode-lucene-0.0.0.jar
+geode-redis-0.0.0.jar
 geode-management-0.0.0.jar
 geode-old-client-support-0.0.0.jar
 geode-protobuf-0.0.0.jar
diff --git a/geode-core/build.gradle b/geode-core/build.gradle
index 5b5da3e..91cbcd4 100755
--- a/geode-core/build.gradle
+++ b/geode-core/build.gradle
@@ -195,10 +195,7 @@ dependencies {
     ext.optional = true
   }
   compile('io.micrometer:micrometer-core')
-
-  compile('io.netty:netty-all') {
-    ext.optional = true
-  }
+    
   compile('it.unimi.dsi:fastutil')
   compile('javax.mail:javax.mail-api') {
     ext.optional = true
@@ -219,7 +216,6 @@ dependencies {
 
   compile('org.apache.logging.log4j:log4j-api')
   compile('org.apache.logging.log4j:log4j-core')
-  compile('com.github.davidmoten:geo')
 
   runtimeOnly('org.fusesource.jansi:jansi') {
     ext.optional = true
@@ -311,7 +307,6 @@ dependencies {
     exclude module: 'geode-core'
   }
   integrationTestCompile(project(':geode-concurrency-test'))
-  integrationTestCompile('redis.clients:jedis')
   integrationTestCompile('org.apache.bcel:bcel')
   integrationTestCompile('org.apache.logging.log4j:log4j-core::tests')
   integrationTestCompile('org.apache.logging.log4j:log4j-core::test-sources')
@@ -332,7 +327,6 @@ dependencies {
   distributedTestCompile(project(':geode-dunit')) {
     exclude module: 'geode-core'
   }
-  distributedTestCompile('redis.clients:jedis')
   distributedTestCompile('pl.pragmatists:JUnitParams')
   distributedTestCompile('com.jayway.jsonpath:json-path-assert')
 
diff --git a/geode-core/src/integrationTest/resources/org/apache/geode/codeAnalysis/excludedClasses.txt b/geode-core/src/integrationTest/resources/org/apache/geode/codeAnalysis/excludedClasses.txt
index 23a7c42..1b1eb9f 100644
--- a/geode-core/src/integrationTest/resources/org/apache/geode/codeAnalysis/excludedClasses.txt
+++ b/geode-core/src/integrationTest/resources/org/apache/geode/codeAnalysis/excludedClasses.txt
@@ -40,15 +40,6 @@ org/apache/geode/internal/cache/xmlcache/DiskStoreAttributesCreation
 org/apache/geode/internal/cache/xmlcache/RegionAttributesCreation
 org/apache/geode/internal/datasource/FacetsJCAConnectionManagerImpl
 org/apache/geode/internal/exception/InvalidExecutionContextException
-org/apache/geode/internal/hll/HyperLogLog
-org/apache/geode/internal/hll/HyperLogLog$Builder
-org/apache/geode/internal/hll/HyperLogLog$HyperLogLogMergeException
-org/apache/geode/internal/hll/HyperLogLog$SerializationHolder
-org/apache/geode/internal/hll/HyperLogLogPlus
-org/apache/geode/internal/hll/HyperLogLogPlus$Builder
-org/apache/geode/internal/hll/HyperLogLogPlus$Format
-org/apache/geode/internal/hll/HyperLogLogPlus$HyperLogLogPlusMergeException
-org/apache/geode/internal/hll/HyperLogLogPlus$SerializationHolder
 org/apache/geode/internal/logging/Banner$BannerHeader
 org/apache/geode/internal/logging/LogLevelUpdateOccurs
 org/apache/geode/internal/logging/LogLevelUpdateScope
diff --git a/geode-core/src/integrationTest/resources/org/apache/geode/codeAnalysis/sanctionedDataSerializables.txt b/geode-core/src/integrationTest/resources/org/apache/geode/codeAnalysis/sanctionedDataSerializables.txt
index df4c310..8a91b84 100644
--- a/geode-core/src/integrationTest/resources/org/apache/geode/codeAnalysis/sanctionedDataSerializables.txt
+++ b/geode-core/src/integrationTest/resources/org/apache/geode/codeAnalysis/sanctionedDataSerializables.txt
@@ -2118,11 +2118,3 @@ org/apache/geode/pdx/internal/PdxType,2
 fromData,109
 toData,124
 
-org/apache/geode/redis/internal/ByteArrayWrapper,2
-fromData,20
-toData,9
-
-org/apache/geode/redis/internal/DoubleWrapper,2
-fromData,9
-toData,9
-
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/ConfigurationProperties.java b/geode-core/src/main/java/org/apache/geode/distributed/ConfigurationProperties.java
index 94a555f..46aad82 100644
--- a/geode-core/src/main/java/org/apache/geode/distributed/ConfigurationProperties.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/ConfigurationProperties.java
@@ -15,8 +15,6 @@
 
 package org.apache.geode.distributed;
 
-import org.apache.geode.redis.GeodeRedisServer;
-
 /**
  * This interface defines all the configuration properties that can be used. <U>Since</U>: Geode 1.0
  */
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionConfigImpl.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionConfigImpl.java
index 79742a1..abb1321 100644
--- a/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionConfigImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionConfigImpl.java
@@ -92,7 +92,6 @@ import org.apache.geode.internal.net.SocketCreator;
 import org.apache.geode.internal.process.ProcessLauncherContext;
 import org.apache.geode.internal.security.SecurableCommunicationChannel;
 import org.apache.geode.memcached.GemFireMemcachedServer;
-import org.apache.geode.redis.GeodeRedisServer;
 
 /**
  * Provides an implementation of <code>DistributionConfig</code> that knows how to read the
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/CacheService.java b/geode-core/src/main/java/org/apache/geode/internal/cache/CacheService.java
index ffb4916..a1a935c 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/CacheService.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/CacheService.java
@@ -43,4 +43,11 @@ public interface CacheService {
    * @return the MBean associated with this server
    */
   CacheServiceMBeanBase getMBean();
+
+  /**
+   * Close this service. Called when the cache is shutting down.
+   */
+  default void close() {
+    // do nothing
+  }
 }
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/GemFireCacheImpl.java b/geode-core/src/main/java/org/apache/geode/internal/cache/GemFireCacheImpl.java
index c13b5f7..6a1602e 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/GemFireCacheImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/GemFireCacheImpl.java
@@ -247,7 +247,6 @@ import org.apache.geode.pdx.internal.InternalPdxInstance;
 import org.apache.geode.pdx.internal.PdxInstanceFactoryImpl;
 import org.apache.geode.pdx.internal.PdxInstanceImpl;
 import org.apache.geode.pdx.internal.TypeRegistry;
-import org.apache.geode.redis.GeodeRedisServer;
 
 // TODO: somebody Come up with more reasonable values for {@link #DEFAULT_LOCK_TIMEOUT}, etc.
 /**
@@ -589,11 +588,6 @@ public class GemFireCacheImpl implements InternalCache, InternalClientCache, Has
   private GemFireMemcachedServer memcachedServer;
 
   /**
-   * Redis server is started when {@link DistributionConfig#getRedisPort()} is set
-   */
-  private GeodeRedisServer redisServer;
-
-  /**
    * {@link ExtensionPoint} support.
    *
    * @since GemFire 8.1
@@ -1169,6 +1163,12 @@ public class GemFireCacheImpl implements InternalCache, InternalClientCache, Has
       listener.cacheCreated(this);
     }
 
+    if (isClient()) {
+      initializeClientRegionShortcuts(this);
+    } else {
+      initializeRegionShortcuts(this);
+    }
+
     // set ClassPathLoader and then deploy cluster config jars
     ClassPathLoader.setLatestToDefault(this.system.getConfig().getDeployWorkingDir());
 
@@ -1227,8 +1227,6 @@ public class GemFireCacheImpl implements InternalCache, InternalClientCache, Has
 
     startMemcachedServer();
 
-    startRedisServer();
-
     startRestAgentServer(this);
 
     this.isInitialized = true;
@@ -1298,25 +1296,6 @@ public class GemFireCacheImpl implements InternalCache, InternalClientCache, Has
     }
   }
 
-  private void startRedisServer() {
-    int port = this.system.getConfig().getRedisPort();
-    if (port != 0) {
-      String bindAddress = this.system.getConfig().getRedisBindAddress();
-      assert bindAddress != null;
-      if (bindAddress.equals(DistributionConfig.DEFAULT_REDIS_BIND_ADDRESS)) {
-        getLogger().info(
-            String.format("Starting GeodeRedisServer on port %s",
-                new Object[] {port}));
-      } else {
-        getLogger().info(
-            String.format("Starting GeodeRedisServer on bind address %s on port %s",
-                new Object[] {bindAddress, port}));
-      }
-      this.redisServer = new GeodeRedisServer(bindAddress, port);
-      this.redisServer.start();
-    }
-  }
-
   @Override
   public URL getCacheXmlURL() {
     if (this.getMyId().getVmKind() == ClusterDistributionManager.LOCATOR_DM_TYPE) {
@@ -1390,11 +1369,6 @@ public class GemFireCacheImpl implements InternalCache, InternalClientCache, Has
     URL url = getCacheXmlURL();
     String cacheXmlDescription = this.cacheConfig.getCacheXMLDescription();
     if (url == null && cacheXmlDescription == null) {
-      if (isClient()) {
-        initializeClientRegionShortcuts(this);
-      } else {
-        initializeRegionShortcuts(this);
-      }
       initializePdxRegistry();
       readyDynamicRegionFactory();
       return; // nothing needs to be done
@@ -2204,7 +2178,7 @@ public class GemFireCacheImpl implements InternalCache, InternalClientCache, Has
 
           stopMemcachedServer();
 
-          stopRedisServer();
+          this.stopServices();
 
           httpService.ifPresent(HttpService::stop);
 
@@ -2416,6 +2390,16 @@ public class GemFireCacheImpl implements InternalCache, InternalClientCache, Has
 
   }
 
+  private void stopServices() {
+    for (CacheService service : this.services.values()) {
+      try {
+        service.close();
+      } catch (Throwable t) {
+        logger.warn("Error stopping service " + service, t);
+      }
+    }
+  }
+
   private void closeOffHeapEvictor() {
     OffHeapEvictor evictor = this.offHeapEvictor;
     if (evictor != null) {
@@ -2471,11 +2455,6 @@ public class GemFireCacheImpl implements InternalCache, InternalClientCache, Has
     }
   }
 
-  private void stopRedisServer() {
-    if (this.redisServer != null)
-      this.redisServer.shutdown();
-  }
-
   private void prepareDiskStoresForClose() {
     String pdxDSName = TypeRegistry.getPdxDiskStoreName(this);
     DiskStoreImpl pdxDiskStore = null;
diff --git a/geode-core/src/main/resources/org/apache/geode/internal/sanctioned-geode-core-serializables.txt b/geode-core/src/main/resources/org/apache/geode/internal/sanctioned-geode-core-serializables.txt
index de29bf1..2c94686 100644
--- a/geode-core/src/main/resources/org/apache/geode/internal/sanctioned-geode-core-serializables.txt
+++ b/geode-core/src/main/resources/org/apache/geode/internal/sanctioned-geode-core-serializables.txt
@@ -384,7 +384,6 @@ org/apache/geode/internal/datasource/JCAConnectionManagerImpl,true,5281512854051
 org/apache/geode/internal/datasource/ManagedPoolCacheImpl,true,1064642271736399718,connFactory:javax/resource/spi/ManagedConnectionFactory,connReqInfo:javax/resource/spi/ConnectionRequestInfo,sub:javax/security/auth/Subject
 org/apache/geode/internal/datasource/PoolException,true,-6178632158204356727
 org/apache/geode/internal/datasource/TranxPoolCacheImpl,true,3295652525163658888,m_xads:javax/sql/XADataSource
-org/apache/geode/internal/hll/CardinalityMergeException,false
 org/apache/geode/internal/jta/TransactionManagerImpl,true,5033392316185449821,globalTransactionMap:java/util/Map,gtxSet:java/util/SortedSet,isActive:boolean,transactionMap:java/util/Map
 org/apache/geode/internal/jta/TransactionManagerImpl$GlobalTransactionComparator,false
 org/apache/geode/internal/jta/UserTransactionImpl,true,2994652455204901910,storedTimeOut:int,tm:javax/transaction/TransactionManager
@@ -642,198 +641,6 @@ org/apache/geode/pdx/PdxSerializationException,true,-3843814927034345635
 org/apache/geode/pdx/internal/EnumInfo$PdxInstanceEnumInfo,true,7907582104525106416,ei:org/apache/geode/pdx/internal/EnumInfo,enumId:int
 org/apache/geode/pdx/internal/PdxInputStream,false
 org/apache/geode/pdx/internal/PdxReaderImpl,true,-6094553093860427759,blobType:org/apache/geode/pdx/internal/PdxType,dis:org/apache/geode/pdx/internal/PdxInputStream
-org/apache/geode/redis/internal/CoderException,true,4707944288714910949
-org/apache/geode/redis/internal/MemberNotFoundException,true,4707944288714910949
-org/apache/geode/redis/internal/RedisCommandParserException,true,4707944288714910949
-org/apache/geode/redis/internal/RedisCommandType,false
-org/apache/geode/redis/internal/RedisCommandType$1,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$10,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$100,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$101,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$102,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$103,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$104,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$105,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$106,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$107,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$108,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$109,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$11,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$110,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$111,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$112,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$113,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$114,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$115,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$116,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$117,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$118,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$119,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$12,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$13,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$14,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$15,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$16,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$17,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$18,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$19,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$2,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$20,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$21,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$22,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$23,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$24,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$25,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$26,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$27,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$28,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$29,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$3,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$30,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$31,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$32,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$33,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$34,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$35,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$36,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$37,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$38,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$39,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$4,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$40,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$41,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$42,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$43,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$44,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$45,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$46,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$47,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$48,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$49,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$5,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$50,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$51,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$52,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$53,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$54,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$55,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$56,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$57,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$58,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$59,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$6,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$60,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$61,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$62,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$63,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$64,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$65,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$66,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$67,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$68,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$69,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$7,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$70,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$71,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$72,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$73,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$74,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$75,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$76,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$77,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$78,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$79,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$8,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$80,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$81,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$82,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$83,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$84,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$85,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$86,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$87,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$88,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$89,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$9,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$90,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$91,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$92,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$93,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$94,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$95,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$96,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$97,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$98,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisCommandType$99,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
-org/apache/geode/redis/internal/RedisDataType,false
-org/apache/geode/redis/internal/RedisDataType$1,false
-org/apache/geode/redis/internal/RedisDataType$2,false
-org/apache/geode/redis/internal/RedisDataType$3,false
-org/apache/geode/redis/internal/RedisDataType$4,false
-org/apache/geode/redis/internal/RedisDataType$5,false
-org/apache/geode/redis/internal/RedisDataType$6,false
-org/apache/geode/redis/internal/RedisDataType$7,false
-org/apache/geode/redis/internal/RedisDataType$8,false
-org/apache/geode/redis/internal/RedisDataTypeMismatchException,true,-2451663685348513870
-org/apache/geode/redis/internal/RegionCreationException,true,8416820139078312997
-org/apache/geode/redis/internal/executor/ListQuery,false
-org/apache/geode/redis/internal/executor/ListQuery$1,false
-org/apache/geode/redis/internal/executor/ListQuery$2,false
-org/apache/geode/redis/internal/executor/ListQuery$3,false
-org/apache/geode/redis/internal/executor/ListQuery$4,false
-org/apache/geode/redis/internal/executor/ListQuery$5,false
-org/apache/geode/redis/internal/executor/ListQuery$6,false
-org/apache/geode/redis/internal/executor/ListQuery$7,false
-org/apache/geode/redis/internal/executor/SortedSetQuery,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$1,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$10,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$11,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$12,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$13,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$14,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$15,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$16,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$17,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$18,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$19,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$2,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$20,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$21,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$22,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$23,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$24,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$25,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$26,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$27,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$28,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$29,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$3,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$30,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$31,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$32,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$33,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$34,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$35,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$36,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$37,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$38,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$39,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$4,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$40,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$41,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$42,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$43,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$44,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$45,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$46,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$5,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$6,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$7,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$8,false
-org/apache/geode/redis/internal/executor/SortedSetQuery$9,false
-org/apache/geode/redis/internal/executor/list/ListExecutor$ListDirection,false
-org/apache/geode/redis/internal/executor/sortedset/GeoRadiusParameters$CommandType,false
-org/apache/geode/redis/internal/executor/sortedset/GeoRadiusParameters$SortOrder,false
 org/apache/geode/security/AuthenticationFailedException,true,-8202866472279088879
 org/apache/geode/security/AuthenticationRequiredException,true,4675976651103154919
 org/apache/geode/security/GemFireSecurityException,true,3814254578203076926,cause:java/lang/Throwable
diff --git a/geode-core/src/test/resources/expected-pom.xml b/geode-core/src/test/resources/expected-pom.xml
index 5df710a..5b44b60 100644
--- a/geode-core/src/test/resources/expected-pom.xml
+++ b/geode-core/src/test/resources/expected-pom.xml
@@ -147,12 +147,6 @@
       <scope>compile</scope>
     </dependency>
     <dependency>
-      <groupId>io.netty</groupId>
-      <artifactId>netty-all</artifactId>
-      <scope>compile</scope>
-      <optional>true</optional>
-    </dependency>
-    <dependency>
       <groupId>it.unimi.dsi</groupId>
       <artifactId>fastutil</artifactId>
       <scope>compile</scope>
@@ -207,11 +201,6 @@
       <scope>compile</scope>
     </dependency>
     <dependency>
-      <groupId>com.github.davidmoten</groupId>
-      <artifactId>geo</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
       <groupId>org.eclipse.jetty</groupId>
       <artifactId>jetty-webapp</artifactId>
       <scope>compile</scope>
diff --git a/geode-redis/build.gradle b/geode-redis/build.gradle
new file mode 100644
index 0000000..88eb424
--- /dev/null
+++ b/geode-redis/build.gradle
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
+
+apply from: "${project.projectDir}/../gradle/publish.gradle"
+
+dependencies {
+  compile(platform(project(':boms:geode-all-bom')))
+  compile(project(':geode-core'))
+  compile('com.github.davidmoten:geo')
+  compile('io.netty:netty-all')
+  distributedTestCompile(project(':geode-dunit'))
+  integrationTestCompile('redis.clients:jedis')
+  distributedTestCompile('redis.clients:jedis')
+  testCompile('org.mockito:mockito-core')
+  testCompile(project(':geode-junit'));
+  integrationTestCompile(project(':geode-junit'));
+}
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/redis/RedisDistDUnitTest.java b/geode-redis/src/distributedTest/java/org/apache/geode/redis/RedisDistDUnitTest.java
similarity index 98%
rename from geode-core/src/distributedTest/java/org/apache/geode/redis/RedisDistDUnitTest.java
rename to geode-redis/src/distributedTest/java/org/apache/geode/redis/RedisDistDUnitTest.java
index a820ce5..236b84c 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/redis/RedisDistDUnitTest.java
+++ b/geode-redis/src/distributedTest/java/org/apache/geode/redis/RedisDistDUnitTest.java
@@ -69,7 +69,7 @@ public class RedisDistDUnitTest extends JUnit4DistributedTestCase {
 
   @Override
   public final void postSetUp() throws Exception {
-    disconnectAllFromDS();
+    JUnit4DistributedTestCase.disconnectAllFromDS();
 
     localHost = SocketCreator.getLocalHost().getHostName();
 
@@ -103,7 +103,7 @@ public class RedisDistDUnitTest extends JUnit4DistributedTestCase {
 
   @Override
   public final void preTearDown() throws Exception {
-    disconnectAllFromDS();
+    JUnit4DistributedTestCase.disconnectAllFromDS();
   }
 
   @Test
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/redis/AuthJUnitTest.java b/geode-redis/src/integrationTest/java/org/apache/geode/redis/AuthJUnitTest.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/redis/AuthJUnitTest.java
rename to geode-redis/src/integrationTest/java/org/apache/geode/redis/AuthJUnitTest.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/redis/ConcurrentStartTest.java b/geode-redis/src/integrationTest/java/org/apache/geode/redis/ConcurrentStartTest.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/redis/ConcurrentStartTest.java
rename to geode-redis/src/integrationTest/java/org/apache/geode/redis/ConcurrentStartTest.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/redis/GeoCoderTest.java b/geode-redis/src/integrationTest/java/org/apache/geode/redis/GeoCoderTest.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/redis/GeoCoderTest.java
rename to geode-redis/src/integrationTest/java/org/apache/geode/redis/GeoCoderTest.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/redis/GeoJUnitTest.java b/geode-redis/src/integrationTest/java/org/apache/geode/redis/GeoJUnitTest.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/redis/GeoJUnitTest.java
rename to geode-redis/src/integrationTest/java/org/apache/geode/redis/GeoJUnitTest.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/redis/HashesJUnitTest.java b/geode-redis/src/integrationTest/java/org/apache/geode/redis/HashesJUnitTest.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/redis/HashesJUnitTest.java
rename to geode-redis/src/integrationTest/java/org/apache/geode/redis/HashesJUnitTest.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/redis/ListsJUnitTest.java b/geode-redis/src/integrationTest/java/org/apache/geode/redis/ListsJUnitTest.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/redis/ListsJUnitTest.java
rename to geode-redis/src/integrationTest/java/org/apache/geode/redis/ListsJUnitTest.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/redis/RedisServerIntegrationTest.java b/geode-redis/src/integrationTest/java/org/apache/geode/redis/RedisServerIntegrationTest.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/redis/RedisServerIntegrationTest.java
rename to geode-redis/src/integrationTest/java/org/apache/geode/redis/RedisServerIntegrationTest.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/redis/SetsJUnitTest.java b/geode-redis/src/integrationTest/java/org/apache/geode/redis/SetsJUnitTest.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/redis/SetsJUnitTest.java
rename to geode-redis/src/integrationTest/java/org/apache/geode/redis/SetsJUnitTest.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/redis/SortedSetsJUnitTest.java b/geode-redis/src/integrationTest/java/org/apache/geode/redis/SortedSetsJUnitTest.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/redis/SortedSetsJUnitTest.java
rename to geode-redis/src/integrationTest/java/org/apache/geode/redis/SortedSetsJUnitTest.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/redis/StringsJunitTest.java b/geode-redis/src/integrationTest/java/org/apache/geode/redis/StringsJunitTest.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/redis/StringsJunitTest.java
rename to geode-redis/src/integrationTest/java/org/apache/geode/redis/StringsJunitTest.java
diff --git a/geode-core/src/main/java/org/apache/geode/internal/hll/Bits.java b/geode-redis/src/main/java/org/apache/geode/internal/hll/Bits.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/internal/hll/Bits.java
rename to geode-redis/src/main/java/org/apache/geode/internal/hll/Bits.java
diff --git a/geode-core/src/main/java/org/apache/geode/internal/hll/CardinalityMergeException.java b/geode-redis/src/main/java/org/apache/geode/internal/hll/CardinalityMergeException.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/internal/hll/CardinalityMergeException.java
rename to geode-redis/src/main/java/org/apache/geode/internal/hll/CardinalityMergeException.java
diff --git a/geode-core/src/main/java/org/apache/geode/internal/hll/HyperLogLog.java b/geode-redis/src/main/java/org/apache/geode/internal/hll/HyperLogLog.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/internal/hll/HyperLogLog.java
rename to geode-redis/src/main/java/org/apache/geode/internal/hll/HyperLogLog.java
diff --git a/geode-core/src/main/java/org/apache/geode/internal/hll/HyperLogLogPlus.java b/geode-redis/src/main/java/org/apache/geode/internal/hll/HyperLogLogPlus.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/internal/hll/HyperLogLogPlus.java
rename to geode-redis/src/main/java/org/apache/geode/internal/hll/HyperLogLogPlus.java
diff --git a/geode-core/src/main/java/org/apache/geode/internal/hll/IBuilder.java b/geode-redis/src/main/java/org/apache/geode/internal/hll/IBuilder.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/internal/hll/IBuilder.java
rename to geode-redis/src/main/java/org/apache/geode/internal/hll/IBuilder.java
diff --git a/geode-core/src/main/java/org/apache/geode/internal/hll/ICardinality.java b/geode-redis/src/main/java/org/apache/geode/internal/hll/ICardinality.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/internal/hll/ICardinality.java
rename to geode-redis/src/main/java/org/apache/geode/internal/hll/ICardinality.java
diff --git a/geode-core/src/main/java/org/apache/geode/internal/hll/MurmurHash.java b/geode-redis/src/main/java/org/apache/geode/internal/hll/MurmurHash.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/internal/hll/MurmurHash.java
rename to geode-redis/src/main/java/org/apache/geode/internal/hll/MurmurHash.java
diff --git a/geode-core/src/main/java/org/apache/geode/internal/hll/RegisterSet.java b/geode-redis/src/main/java/org/apache/geode/internal/hll/RegisterSet.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/internal/hll/RegisterSet.java
rename to geode-redis/src/main/java/org/apache/geode/internal/hll/RegisterSet.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/GeodeRedisServer.java b/geode-redis/src/main/java/org/apache/geode/redis/GeodeRedisServer.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/GeodeRedisServer.java
rename to geode-redis/src/main/java/org/apache/geode/redis/GeodeRedisServer.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/ByteArrayWrapper.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/ByteArrayWrapper.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/ByteArrayWrapper.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/ByteArrayWrapper.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/ByteToCommandDecoder.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/ByteToCommandDecoder.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/ByteToCommandDecoder.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/ByteToCommandDecoder.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/Coder.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/Coder.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/Coder.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/Coder.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/CoderException.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/CoderException.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/CoderException.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/CoderException.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/Command.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/Command.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/Command.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/Command.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/DoubleWrapper.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/DoubleWrapper.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/DoubleWrapper.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/DoubleWrapper.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/ExecutionHandlerContext.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/ExecutionHandlerContext.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/ExecutionHandlerContext.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/ExecutionHandlerContext.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/Executor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/Executor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/Executor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/Executor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/Extendable.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/Extendable.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/Extendable.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/Extendable.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/GeoCoder.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/GeoCoder.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/GeoCoder.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/GeoCoder.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/GeoCoord.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/GeoCoord.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/GeoCoord.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/GeoCoord.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/GeoRadiusResponseElement.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/GeoRadiusResponseElement.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/GeoRadiusResponseElement.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/GeoRadiusResponseElement.java
diff --git a/geode-redis/src/main/java/org/apache/geode/redis/internal/GeodeRedisService.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/GeodeRedisService.java
new file mode 100644
index 0000000..e2e7110
--- /dev/null
+++ b/geode-redis/src/main/java/org/apache/geode/redis/internal/GeodeRedisService.java
@@ -0,0 +1,79 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
+ * agreements. See the NOTICE file distributed with this work for additional information regarding
+ * copyright ownership. The ASF licenses this file to You 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 org.apache.geode.redis.internal;
+
+import org.apache.logging.log4j.Logger;
+
+import org.apache.geode.cache.Cache;
+import org.apache.geode.distributed.internal.DistributionConfig;
+import org.apache.geode.distributed.internal.InternalDistributedSystem;
+import org.apache.geode.internal.cache.CacheService;
+import org.apache.geode.internal.cache.InternalCache;
+import org.apache.geode.internal.logging.LogService;
+import org.apache.geode.management.internal.beans.CacheServiceMBeanBase;
+import org.apache.geode.redis.GeodeRedisServer;
+
+public class GeodeRedisService implements CacheService {
+  private static final Logger logger = LogService.getLogger();
+  private GeodeRedisServer redisServer;
+
+  @Override
+  public void init(Cache cache) {
+    InternalCache internalCache = (InternalCache) cache;
+    startRedisServer(internalCache);
+  }
+
+  @Override
+  public void close() {
+    stopRedisServer();
+  }
+
+  private void startRedisServer(InternalCache cache) {
+    InternalDistributedSystem system = cache.getInternalDistributedSystem();
+    int port = system.getConfig().getRedisPort();
+    if (port != 0) {
+      String bindAddress = system.getConfig().getRedisBindAddress();
+      assert bindAddress != null;
+      if (bindAddress.equals(DistributionConfig.DEFAULT_REDIS_BIND_ADDRESS)) {
+        logger.info(
+            String.format("Starting GeodeRedisServer on port %s",
+                new Object[] {port}));
+      } else {
+        logger.info(
+            String.format("Starting GeodeRedisServer on bind address %s on port %s",
+                new Object[] {bindAddress, port}));
+      }
+      this.redisServer = new GeodeRedisServer(bindAddress, port);
+      this.redisServer.start();
+    }
+  }
+
+  private void stopRedisServer() {
+    if (this.redisServer != null)
+      this.redisServer.shutdown();
+  }
+
+
+
+  @Override
+  public Class<? extends CacheService> getInterface() {
+    return GeodeRedisService.class;
+  }
+
+  @Override
+  public CacheServiceMBeanBase getMBean() {
+    return null;
+  }
+}
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/HashArea.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/HashArea.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/HashArea.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/HashArea.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/HashNeighbors.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/HashNeighbors.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/HashNeighbors.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/HashNeighbors.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/MemberNotFoundException.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/MemberNotFoundException.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/MemberNotFoundException.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/MemberNotFoundException.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/Pair.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/Pair.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/Pair.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/Pair.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/RedisCommandParserException.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/RedisCommandParserException.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/RedisCommandParserException.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/RedisCommandParserException.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/RedisCommandType.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/RedisCommandType.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/RedisCommandType.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/RedisCommandType.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/RedisConstants.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/RedisConstants.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/RedisConstants.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/RedisConstants.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/RedisDataType.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/RedisDataType.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/RedisDataType.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/RedisDataType.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/RedisDataTypeMismatchException.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/RedisDataTypeMismatchException.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/RedisDataTypeMismatchException.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/RedisDataTypeMismatchException.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/RegionCreationException.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/RegionCreationException.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/RegionCreationException.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/RegionCreationException.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/RegionProvider.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/RegionProvider.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/RegionProvider.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/RegionProvider.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/AbstractExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/AbstractExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/AbstractExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/AbstractExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/AbstractScanExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/AbstractScanExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/AbstractScanExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/AbstractScanExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/AuthExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/AuthExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/AuthExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/AuthExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/DBSizeExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/DBSizeExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/DBSizeExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/DBSizeExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/DelExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/DelExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/DelExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/DelExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/EchoExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/EchoExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/EchoExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/EchoExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/ExistsExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/ExistsExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/ExistsExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/ExistsExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/ExpirationExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/ExpirationExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/ExpirationExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/ExpirationExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/ExpireAtExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/ExpireAtExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/ExpireAtExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/ExpireAtExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/ExpireExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/ExpireExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/ExpireExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/ExpireExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/FlushAllExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/FlushAllExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/FlushAllExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/FlushAllExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/KeysExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/KeysExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/KeysExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/KeysExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/ListQuery.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/ListQuery.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/ListQuery.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/ListQuery.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/PExpireAtExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/PExpireAtExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/PExpireAtExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/PExpireAtExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/PExpireExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/PExpireExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/PExpireExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/PExpireExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/PTTLExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/PTTLExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/PTTLExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/PTTLExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/PersistExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/PersistExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/PersistExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/PersistExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/PingExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/PingExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/PingExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/PingExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/QuitExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/QuitExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/QuitExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/QuitExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/ScanExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/ScanExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/ScanExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/ScanExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/ShutDownExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/ShutDownExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/ShutDownExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/ShutDownExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/SortedSetQuery.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/SortedSetQuery.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/SortedSetQuery.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/SortedSetQuery.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/TTLExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/TTLExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/TTLExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/TTLExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/TimeExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/TimeExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/TimeExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/TimeExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/TypeExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/TypeExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/TypeExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/TypeExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/UnkownExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/UnkownExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/UnkownExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/UnkownExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/hash/HDelExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hash/HDelExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/hash/HDelExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hash/HDelExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/hash/HExistsExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hash/HExistsExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/hash/HExistsExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hash/HExistsExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/hash/HGetAllExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hash/HGetAllExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/hash/HGetAllExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hash/HGetAllExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/hash/HGetExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hash/HGetExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/hash/HGetExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hash/HGetExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/hash/HIncrByExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hash/HIncrByExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/hash/HIncrByExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hash/HIncrByExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/hash/HIncrByFloatExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hash/HIncrByFloatExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/hash/HIncrByFloatExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hash/HIncrByFloatExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/hash/HKeysExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hash/HKeysExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/hash/HKeysExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hash/HKeysExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/hash/HLenExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hash/HLenExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/hash/HLenExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hash/HLenExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/hash/HMGetExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hash/HMGetExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/hash/HMGetExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hash/HMGetExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/hash/HMSetExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hash/HMSetExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/hash/HMSetExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hash/HMSetExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/hash/HScanExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hash/HScanExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/hash/HScanExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hash/HScanExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/hash/HSetExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hash/HSetExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/hash/HSetExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hash/HSetExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/hash/HSetNXExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hash/HSetNXExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/hash/HSetNXExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hash/HSetNXExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/hash/HValsExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hash/HValsExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/hash/HValsExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hash/HValsExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/hash/HashExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hash/HashExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/hash/HashExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hash/HashExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/hll/HllExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hll/HllExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/hll/HllExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hll/HllExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/hll/PFAddExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hll/PFAddExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/hll/PFAddExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hll/PFAddExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/hll/PFCountExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hll/PFCountExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/hll/PFCountExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hll/PFCountExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/hll/PFMergeExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hll/PFMergeExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/hll/PFMergeExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hll/PFMergeExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/hll/Varint.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hll/Varint.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/hll/Varint.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hll/Varint.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/list/LIndexExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/list/LIndexExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/list/LIndexExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/list/LIndexExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/list/LInsertExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/list/LInsertExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/list/LInsertExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/list/LInsertExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/list/LLenExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/list/LLenExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/list/LLenExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/list/LLenExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/list/LPopExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/list/LPopExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/list/LPopExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/list/LPopExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/list/LPushExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/list/LPushExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/list/LPushExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/list/LPushExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/list/LPushXExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/list/LPushXExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/list/LPushXExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/list/LPushXExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/list/LRangeExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/list/LRangeExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/list/LRangeExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/list/LRangeExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/list/LRemExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/list/LRemExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/list/LRemExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/list/LRemExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/list/LSetExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/list/LSetExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/list/LSetExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/list/LSetExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/list/LTrimExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/list/LTrimExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/list/LTrimExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/list/LTrimExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/list/ListExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/list/ListExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/list/ListExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/list/ListExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/list/PopExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/list/PopExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/list/PopExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/list/PopExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/list/PushExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/list/PushExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/list/PushExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/list/PushExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/list/PushXExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/list/PushXExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/list/PushXExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/list/PushXExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/list/RPopExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/list/RPopExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/list/RPopExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/list/RPopExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/list/RPushExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/list/RPushExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/list/RPushExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/list/RPushExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/list/RPushXExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/list/RPushXExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/list/RPushXExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/list/RPushXExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/set/SAddExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/set/SAddExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/set/SAddExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/set/SAddExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/set/SCardExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/set/SCardExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/set/SCardExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/set/SCardExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/set/SDiffExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/set/SDiffExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/set/SDiffExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/set/SDiffExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/set/SDiffStoreExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/set/SDiffStoreExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/set/SDiffStoreExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/set/SDiffStoreExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/set/SInterExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/set/SInterExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/set/SInterExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/set/SInterExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/set/SInterStoreExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/set/SInterStoreExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/set/SInterStoreExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/set/SInterStoreExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/set/SIsMemberExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/set/SIsMemberExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/set/SIsMemberExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/set/SIsMemberExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/set/SMembersExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/set/SMembersExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/set/SMembersExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/set/SMembersExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/set/SMoveExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/set/SMoveExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/set/SMoveExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/set/SMoveExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/set/SPopExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/set/SPopExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/set/SPopExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/set/SPopExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/set/SRandMemberExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/set/SRandMemberExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/set/SRandMemberExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/set/SRandMemberExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/set/SRemExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/set/SRemExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/set/SRemExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/set/SRemExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/set/SScanExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/set/SScanExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/set/SScanExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/set/SScanExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/set/SUnionExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/set/SUnionExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/set/SUnionExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/set/SUnionExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/set/SUnionStoreExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/set/SUnionStoreExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/set/SUnionStoreExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/set/SUnionStoreExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/set/SetExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/set/SetExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/set/SetExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/set/SetExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/set/SetOpExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/set/SetOpExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/set/SetOpExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/set/SetOpExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/GeoAddExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/GeoAddExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/GeoAddExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/GeoAddExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/GeoDistExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/GeoDistExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/GeoDistExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/GeoDistExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/GeoHashExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/GeoHashExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/GeoHashExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/GeoHashExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/GeoPosExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/GeoPosExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/GeoPosExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/GeoPosExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/GeoRadiusByMemberExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/GeoRadiusByMemberExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/GeoRadiusByMemberExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/GeoRadiusByMemberExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/GeoRadiusExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/GeoRadiusExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/GeoRadiusExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/GeoRadiusExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/GeoRadiusParameters.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/GeoRadiusParameters.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/GeoRadiusParameters.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/GeoRadiusParameters.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/GeoSortedSetExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/GeoSortedSetExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/GeoSortedSetExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/GeoSortedSetExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/SortedSetExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/SortedSetExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/SortedSetExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/SortedSetExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZAddExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZAddExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZAddExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZAddExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZCardExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZCardExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZCardExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZCardExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZCountExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZCountExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZCountExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZCountExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZIncrByExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZIncrByExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZIncrByExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZIncrByExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZLexCountExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZLexCountExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZLexCountExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZLexCountExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRangeByLexExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRangeByLexExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRangeByLexExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRangeByLexExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRangeByScoreExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRangeByScoreExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRangeByScoreExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRangeByScoreExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRangeExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRangeExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRangeExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRangeExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRankExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRankExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRankExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRankExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRemExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRemExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRemExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRemExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRemRangeByLexExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRemRangeByLexExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRemRangeByLexExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRemRangeByLexExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRemRangeByRankExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRemRangeByRankExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRemRangeByRankExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRemRangeByRankExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRemRangeByScoreExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRemRangeByScoreExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRemRangeByScoreExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRemRangeByScoreExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRevRangeByScoreExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRevRangeByScoreExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRevRangeByScoreExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRevRangeByScoreExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRevRangeExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRevRangeExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRevRangeExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRevRangeExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRevRankExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRevRankExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRevRankExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZRevRankExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZScanExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZScanExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZScanExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZScanExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZScoreExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZScoreExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZScoreExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/sortedset/ZScoreExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/AppendExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/AppendExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/AppendExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/AppendExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/BitCountExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/BitCountExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/BitCountExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/BitCountExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/BitOpExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/BitOpExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/BitOpExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/BitOpExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/BitPosExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/BitPosExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/BitPosExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/BitPosExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/DecrByExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/DecrByExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/DecrByExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/DecrByExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/DecrExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/DecrExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/DecrExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/DecrExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/GetBitExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/GetBitExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/GetBitExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/GetBitExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/GetExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/GetExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/GetExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/GetExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/GetRangeExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/GetRangeExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/GetRangeExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/GetRangeExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/GetSetExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/GetSetExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/GetSetExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/GetSetExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/IncrByExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/IncrByExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/IncrByExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/IncrByExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/IncrByFloatExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/IncrByFloatExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/IncrByFloatExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/IncrByFloatExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/IncrExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/IncrExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/IncrExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/IncrExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/MGetExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/MGetExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/MGetExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/MGetExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/MSetExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/MSetExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/MSetExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/MSetExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/MSetNXExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/MSetNXExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/MSetNXExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/MSetNXExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/PSetEXExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/PSetEXExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/PSetEXExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/PSetEXExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/SetBitExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/SetBitExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/SetBitExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/SetBitExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/SetEXExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/SetEXExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/SetEXExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/SetEXExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/SetExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/SetExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/SetExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/SetExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/SetNXExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/SetNXExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/SetNXExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/SetNXExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/SetRangeExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/SetRangeExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/SetRangeExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/SetRangeExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/StringExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/StringExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/StringExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/StringExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/StrlenExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/StrlenExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/string/StrlenExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/StrlenExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/transactions/DiscardExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/transactions/DiscardExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/transactions/DiscardExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/transactions/DiscardExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/transactions/ExecExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/transactions/ExecExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/transactions/ExecExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/transactions/ExecExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/transactions/MultiExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/transactions/MultiExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/transactions/MultiExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/transactions/MultiExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/transactions/TransactionExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/transactions/TransactionExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/transactions/TransactionExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/transactions/TransactionExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/transactions/UnwatchExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/transactions/UnwatchExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/transactions/UnwatchExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/transactions/UnwatchExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/executor/transactions/WatchExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/transactions/WatchExecutor.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/executor/transactions/WatchExecutor.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/executor/transactions/WatchExecutor.java
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/org/apache/hadoop/fs/GlobPattern.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/org/apache/hadoop/fs/GlobPattern.java
similarity index 100%
rename from geode-core/src/main/java/org/apache/geode/redis/internal/org/apache/hadoop/fs/GlobPattern.java
rename to geode-redis/src/main/java/org/apache/geode/redis/internal/org/apache/hadoop/fs/GlobPattern.java
diff --git a/geode-redis/src/main/resources/META-INF/services/org.apache.geode.internal.cache.CacheService b/geode-redis/src/main/resources/META-INF/services/org.apache.geode.internal.cache.CacheService
new file mode 100644
index 0000000..e601c11
--- /dev/null
+++ b/geode-redis/src/main/resources/META-INF/services/org.apache.geode.internal.cache.CacheService
@@ -0,0 +1 @@
+org.apache.geode.redis.internal.GeodeRedisService
diff --git a/geode-core/src/test/java/org/apache/geode/redis/internal/executor/AbstractScanExecutorTest.java b/geode-redis/src/test/java/org/apache/geode/redis/internal/executor/AbstractScanExecutorTest.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/redis/internal/executor/AbstractScanExecutorTest.java
rename to geode-redis/src/test/java/org/apache/geode/redis/internal/executor/AbstractScanExecutorTest.java
diff --git a/geode-redis/src/test/resources/expected-pom.xml b/geode-redis/src/test/resources/expected-pom.xml
new file mode 100644
index 0000000..e9b66ba
--- /dev/null
+++ b/geode-redis/src/test/resources/expected-pom.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You 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.
+  -->
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.geode</groupId>
+  <artifactId>geode-redis</artifactId>
+  <version>1.10.0-SNAPSHOT</version>
+  <name>Apache Geode</name>
+  <description>Apache Geode provides a database-like consistency model, reliable transaction processing and a shared-nothing architecture to maintain very low latency performance with high concurrency processing</description>
+  <url>http://geode.apache.org</url>
+  <licenses>
+    <license>
+      <name>The Apache Software License, Version 2.0</name>
+      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+    </license>
+  </licenses>
+  <scm>
+    <connection>scm:git:https://github.com:apache/geode.git</connection>
+    <developerConnection>scm:git:https://github.com:apache/geode.git</developerConnection>
+    <url>https://github.com/apache/geode</url>
+  </scm>
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-all-bom</artifactId>
+        <version>1.10.0-SNAPSHOT</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.geode</groupId>
+      <artifactId>geode-core</artifactId>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>com.github.davidmoten</groupId>
+      <artifactId>geo</artifactId>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>io.netty</groupId>
+      <artifactId>netty-all</artifactId>
+      <scope>compile</scope>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/settings.gradle b/settings.gradle
index d5ac967..4435e04 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -42,6 +42,7 @@ include 'geode-lucene:geode-lucene-test'
 include 'geode-old-client-support'
 include 'geode-wan'
 include 'geode-cq'
+include 'geode-redis'
 include 'geode-connectors'
 include 'extensions:geode-modules'
 include 'extensions:geode-modules-test'


Mime
View raw message