You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ud...@apache.org on 2020/07/02 18:11:01 UTC
[geode] 25/29: GEODE-8294 - Integrate ModuleService into CacheXml.
This is an automated email from the ASF dual-hosted git repository.
udo pushed a commit to branch feature/GEODE-8294
in repository https://gitbox.apache.org/repos/asf/geode.git
commit 1f00f98bb905ff4a2580e99b4173de2798633e40
Author: Patrick Johnson <pj...@pivotal.io>
AuthorDate: Mon Jun 29 17:13:11 2020 -0700
GEODE-8294 - Integrate ModuleService into CacheXml.
---
geode-assembly/build.gradle | 1 +
.../jdbc/internal/TestConfigService.java | 3 +-
.../cli/DestroyDataSourceCommandDUnitTest.java | 7 ++-
...apache.geode.management.cli.GeodeCommandMarker} | 0
.../jdbc/internal/JdbcConnectorServiceTest.java | 3 +-
.../cli/ConnectionsCommandManagerTest.java | 15 ++---
.../mock/AlterMockCacheExtensionFunction.java | 10 +++-
.../mock/AlterMockRegionExtensionFunction.java | 10 +++-
.../mock/CreateMockCacheExtensionFunction.java | 10 +++-
.../mock/CreateMockRegionExtensionFunction.java | 10 +++-
.../mock/DestroyMockCacheExtensionFunction.java | 10 +++-
.../mock/DestroyMockRegionExtensionFunction.java | 11 +++-
.../extension/mock/MockExtensionCommands.java | 23 +++++---
...apache.geode.management.cli.GeodeCommandMarker} | 0
.../cache/execute/CoreFunctionSecurityTest.java | 13 +++--
.../utils/XmlUtilsAddNewNodeJUnitTest.java | 54 +++++++++++-------
.../internal/QueryConfigurationServiceImpl.java | 3 +-
.../InternalConfigurationPersistenceService.java | 10 ++--
.../apache/geode/internal/cache/CacheService.java | 3 +-
.../geode/internal/cache/GemFireCacheImpl.java | 4 +-
.../client/protocol/ClientProtocolService.java | 3 +
.../protocol/ClientProtocolServiceLoader.java | 5 +-
.../geode/internal/cache/xmlcache/CacheXml.java | 40 ++++++++------
.../configuration/domain/CacheElement.java | 6 +-
.../configuration/domain/Configuration.java | 5 +-
.../internal/configuration/domain/XmlEntity.java | 36 ++++++------
.../messages/ConfigurationResponse.java | 5 +-
.../internal/configuration/utils/XmlUtils.java | 39 +++++++------
.../QueryConfigurationServiceImplTest.java | 25 +++++----
...nternalConfigurationPersistenceServiceTest.java | 18 ++++--
.../domain/CacheElementJUnitTest.java | 5 +-
.../configuration/domain/ConfigurationTest.java | 4 +-
.../configuration/utils/XmlUtilsJUnitTest.java | 62 +++++++++++++--------
.../cli/commands/AlterCompressorDUnitTest.java | 3 +-
.../CreateJndiBindingCommandDUnitTest.java | 3 +-
.../commands/CreatePooledJndiBindingDUnitTest.java | 3 +-
.../DestroyJndiBindingCommandDUnitTest.java | 4 +-
.../DestroySecondJndiBindingCommandDUnitTest.java | 4 +-
.../geode/management/cli/CommandService.java | 5 +-
.../geode/management/cli/GeodeCommandMarker.java | 25 +++++++++
.../apache/geode/management/cli/GfshCommand.java | 13 ++++-
.../management/internal/cli/CommandManager.java | 59 ++++++++++++--------
.../geode/management/internal/cli/GfshParser.java | 4 +-
.../cli/commands/AlterRuntimeConfigCommand.java | 2 +-
.../internal/cli/commands/CreateRegionCommand.java | 5 +-
.../commands/DestroyAsyncEventQueueCommand.java | 3 +-
.../cli/commands/DestroyDiskStoreCommand.java | 3 +-
.../cli/commands/DestroyGatewaySenderCommand.java | 3 +-
.../cli/commands/DestroyRegionCommand.java | 3 +-
.../ImportClusterConfigurationCommand.java | 2 +-
.../internal/cli/commands/OfflineGfshCommand.java | 17 +++++-
.../functions/DestroyAsyncEventQueueFunction.java | 13 ++++-
.../cli/functions/DestroyDiskStoreFunction.java | 10 +++-
.../functions/FetchRegionAttributesFunction.java | 12 ++--
.../functions/GatewaySenderDestroyFunction.java | 13 +++--
.../cli/functions/RegionCreateFunction.java | 14 +++--
.../cli/functions/RegionDestroyFunction.java | 14 +++--
.../internal/cli/remote/MemberCommandService.java | 6 +-
.../cli/remote/OnlineCommandProcessor.java | 14 +++--
.../geode/management/internal/cli/shell/Gfsh.java | 2 +-
.../internal/cli/CommandManagerJUnitTest.java | 64 +++++++++++++++++-----
.../commands/CommandAvailabilityIndicatorTest.java | 4 +-
.../DestroyAsyncEventQueueFunctionTest.java | 6 +-
.../GatewaySenderDestroyFunctionTest.java | 3 +-
.../functions/RegionCreateFunctionJUnitTest.java | 3 +-
.../cli/functions/RegionDestroyFunctionTest.java | 3 +-
.../internal/cli/help/HelperUnitTest.java | 4 +-
.../cli/remote/MemberCommandServiceTest.java | 8 ++-
.../cli/remote/OnlineCommandProcessorTest.java | 4 +-
.../cli/shell/GfshExecutionStrategyTest.java | 10 +++-
...apache.geode.management.cli.GeodeCommandMarker} | 0
geode-http-service/build.gradle | 2 +
.../geode/internal/cache/InternalHttpService.java | 3 +-
.../internal/InternalHttpServiceJunitTest.java | 5 +-
geode-junit/build.gradle | 1 +
.../CommandAvailabilityIndicatorTestHelper.java | 6 +-
.../geode/test/junit/rules/GfshParserRule.java | 3 +-
geode-lucene/build.gradle | 1 +
.../internal/LuceneServiceImplIntegrationTest.java | 5 +-
.../lucene/test/LuceneFunctionSecurityTest.java | 3 +-
.../cache/lucene/internal/LuceneServiceImpl.java | 4 +-
.../internal/cli/LuceneCreateIndexCommand.java | 6 +-
.../cli/functions/LuceneCreateIndexFunction.java | 13 ++++-
...apache.geode.management.cli.GeodeCommandMarker} | 0
.../LuceneCreateIndexFunctionJUnitTest.java | 7 ++-
geode-memcached/build.gradle | 1 +
.../internal/memcached/GeodeMemcachedService.java | 3 +-
.../impl/BootstrappingServiceImpl.java | 18 +++---
geode-old-client-support/build.gradle | 2 +
.../gemstone/gemfire/OldClientSupportProvider.java | 3 +-
.../protobuf/v1/ProtobufProtocolService.java | 11 ++--
.../v1/ProtobufProtocolServiceJUnitTest.java | 3 +-
geode-redis/build.gradle | 2 +
.../geode/redis/internal/GeodeRedisService.java | 3 +-
...apache.geode.management.cli.GeodeCommandMarker} | 0
geode-wan/build.gradle | 2 +-
...ipleReceiversDefinedInClusterConfiguration.java | 6 +-
97 files changed, 621 insertions(+), 313 deletions(-)
diff --git a/geode-assembly/build.gradle b/geode-assembly/build.gradle
index b10d5a1..dd4b6a8 100755
--- a/geode-assembly/build.gradle
+++ b/geode-assembly/build.gradle
@@ -186,6 +186,7 @@ dependencies {
javadocOnly project(':extensions:geode-modules-tomcat8')
javadocOnly project(':geode-experimental-driver')
+ testImplementation(project(':geode-common-services'))
testImplementation(project(':geode-core'))
testImplementation(project(':geode-gfsh'))
testImplementation(project(':geode-junit')) {
diff --git a/geode-connectors/src/acceptanceTest/java/org/apache/geode/connectors/jdbc/internal/TestConfigService.java b/geode-connectors/src/acceptanceTest/java/org/apache/geode/connectors/jdbc/internal/TestConfigService.java
index 2f7162f..9649cb5 100644
--- a/geode-connectors/src/acceptanceTest/java/org/apache/geode/connectors/jdbc/internal/TestConfigService.java
+++ b/geode-connectors/src/acceptanceTest/java/org/apache/geode/connectors/jdbc/internal/TestConfigService.java
@@ -24,6 +24,7 @@ import org.apache.geode.connectors.jdbc.internal.configuration.FieldMapping;
import org.apache.geode.connectors.jdbc.internal.configuration.RegionMapping;
import org.apache.geode.internal.cache.InternalCache;
import org.apache.geode.internal.cache.extension.ExtensionPoint;
+import org.apache.geode.services.module.ModuleService;
/**
* Generates fake JdbcConnectorService for tests.
@@ -45,7 +46,7 @@ public class TestConfigService {
throws RegionMappingExistsException {
JdbcConnectorServiceImpl service = new JdbcConnectorServiceImpl();
- service.init(cache);
+ service.init(cache, ModuleService.DEFAULT);
service.createRegionMapping(
createRegionMapping(pdxClassName, ids, catalog, schema, fieldMappings));
return service;
diff --git a/geode-connectors/src/distributedTest/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyDataSourceCommandDUnitTest.java b/geode-connectors/src/distributedTest/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyDataSourceCommandDUnitTest.java
index f1e3855..0801da7 100644
--- a/geode-connectors/src/distributedTest/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyDataSourceCommandDUnitTest.java
+++ b/geode-connectors/src/distributedTest/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyDataSourceCommandDUnitTest.java
@@ -39,6 +39,7 @@ import org.apache.geode.management.internal.configuration.utils.XmlUtils;
import org.apache.geode.pdx.PdxReader;
import org.apache.geode.pdx.PdxSerializable;
import org.apache.geode.pdx.PdxWriter;
+import org.apache.geode.services.module.ModuleService;
import org.apache.geode.test.dunit.rules.ClusterStartupRule;
import org.apache.geode.test.dunit.rules.MemberVM;
import org.apache.geode.test.junit.rules.GfshCommandRule;
@@ -89,7 +90,8 @@ public class DestroyDataSourceCommandDUnitTest {
InternalConfigurationPersistenceService ccService =
internalLocator.getConfigurationPersistenceService();
Configuration configuration = ccService.getConfiguration("cluster");
- Document document = XmlUtils.createDocumentFromXml(configuration.getCacheXmlContent());
+ Document document =
+ XmlUtils.createDocumentFromXml(configuration.getCacheXmlContent(), ModuleService.DEFAULT);
NodeList jndiBindings = document.getElementsByTagName("jndi-binding");
AssertionsForClassTypes.assertThat(jndiBindings.getLength()).isEqualTo(0);
@@ -153,7 +155,8 @@ public class DestroyDataSourceCommandDUnitTest {
InternalConfigurationPersistenceService ccService =
internalLocator.getConfigurationPersistenceService();
Configuration configuration = ccService.getConfiguration("cluster");
- Document document = XmlUtils.createDocumentFromXml(configuration.getCacheXmlContent());
+ Document document =
+ XmlUtils.createDocumentFromXml(configuration.getCacheXmlContent(), ModuleService.DEFAULT);
NodeList jndiBindings = document.getElementsByTagName("jndi-binding");
AssertionsForClassTypes.assertThat(jndiBindings.getLength()).isEqualTo(0);
diff --git a/geode-connectors/src/main/resources/META-INF/services/org.springframework.shell.core.CommandMarker b/geode-connectors/src/main/resources/META-INF/services/org.apache.geode.management.cli.GeodeCommandMarker
similarity index 100%
rename from geode-connectors/src/main/resources/META-INF/services/org.springframework.shell.core.CommandMarker
rename to geode-connectors/src/main/resources/META-INF/services/org.apache.geode.management.cli.GeodeCommandMarker
diff --git a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/JdbcConnectorServiceTest.java b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/JdbcConnectorServiceTest.java
index baf4b58..5c81c29 100644
--- a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/JdbcConnectorServiceTest.java
+++ b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/JdbcConnectorServiceTest.java
@@ -42,6 +42,7 @@ import org.apache.geode.connectors.jdbc.internal.configuration.FieldMapping;
import org.apache.geode.connectors.jdbc.internal.configuration.RegionMapping;
import org.apache.geode.internal.cache.InternalCache;
import org.apache.geode.internal.cache.extension.ExtensionPoint;
+import org.apache.geode.services.module.ModuleService;
public class JdbcConnectorServiceTest {
@@ -89,7 +90,7 @@ public class JdbcConnectorServiceTest {
when(view.isColumnNullable(VALUE_COLUMN_NAME)).thenReturn(true);
service = spy(JdbcConnectorServiceImpl.class);
- service.init(cache);
+ service.init(cache, ModuleService.DEFAULT);
keyColumns.add(KEY_COLUMN_NAME);
allColumns.add(KEY_COLUMN_NAME);
diff --git a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/ConnectionsCommandManagerTest.java b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/ConnectionsCommandManagerTest.java
index af64f55..04a6882 100644
--- a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/ConnectionsCommandManagerTest.java
+++ b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/ConnectionsCommandManagerTest.java
@@ -23,13 +23,14 @@ import java.util.Set;
import org.junit.Before;
import org.junit.Test;
-import org.springframework.shell.core.CommandMarker;
import org.apache.geode.internal.ClassPathLoader;
+import org.apache.geode.management.cli.GeodeCommandMarker;
import org.apache.geode.management.cli.GfshCommand;
import org.apache.geode.management.internal.cli.CommandManager;
import org.apache.geode.management.internal.cli.commands.VersionCommand;
import org.apache.geode.management.internal.util.ClasspathScanLoadHelper;
+import org.apache.geode.services.module.ModuleService;
/**
* CommandManagerTest - Includes tests to check the CommandManager functions
@@ -40,7 +41,7 @@ public class ConnectionsCommandManagerTest {
@Before
public void before() {
- commandManager = new CommandManager();
+ commandManager = new CommandManager(ModuleService.DEFAULT);
}
/**
@@ -53,15 +54,15 @@ public class ConnectionsCommandManagerTest {
packagesToScan.add(VersionCommand.class.getPackage().getName());
ClasspathScanLoadHelper scanner = new ClasspathScanLoadHelper(packagesToScan);
- ServiceLoader<CommandMarker> loader =
- ServiceLoader.load(CommandMarker.class, ClassPathLoader.getLatest().asClassLoader());
+ ServiceLoader<GeodeCommandMarker> loader =
+ ServiceLoader.load(GeodeCommandMarker.class, ClassPathLoader.getLatest().asClassLoader());
loader.reload();
- Iterator<CommandMarker> iterator = loader.iterator();
+ Iterator<GeodeCommandMarker> iterator = loader.iterator();
Set<Class<?>> foundClasses;
// geode's commands
- foundClasses = scanner.scanPackagesForClassesImplementing(CommandMarker.class,
+ foundClasses = scanner.scanPackagesForClassesImplementing(GeodeCommandMarker.class,
GfshCommand.class.getPackage().getName(),
VersionCommand.class.getPackage().getName());
@@ -71,7 +72,7 @@ public class ConnectionsCommandManagerTest {
Set<Class<?>> expectedClasses = new HashSet<>();
- for (CommandMarker commandMarker : commandManager.getCommandMarkers()) {
+ for (GeodeCommandMarker commandMarker : commandManager.getCommandMarkers()) {
expectedClasses.add(commandMarker.getClass());
}
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/extension/mock/AlterMockCacheExtensionFunction.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/extension/mock/AlterMockCacheExtensionFunction.java
index 275e07d..6f2cb61 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/extension/mock/AlterMockCacheExtensionFunction.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/extension/mock/AlterMockCacheExtensionFunction.java
@@ -37,6 +37,7 @@ import org.apache.geode.management.internal.cli.CliUtil;
import org.apache.geode.management.internal.configuration.domain.XmlEntity;
import org.apache.geode.management.internal.functions.CliFunctionResult;
import org.apache.geode.management.internal.i18n.CliStrings;
+import org.apache.geode.services.module.ModuleService;
/**
* Function to create {@link MockCacheExtension} on a {@link Region}.
@@ -48,7 +49,11 @@ public class AlterMockCacheExtensionFunction implements Function, DataSerializab
private static final long serialVersionUID = 1L;
- public static final Function INSTANCE = new AlterMockCacheExtensionFunction();
+ private final ModuleService moduleService;
+
+ public AlterMockCacheExtensionFunction(ModuleService moduleService) {
+ this.moduleService = moduleService;
+ }
@Override
public void execute(FunctionContext context) {
@@ -69,7 +74,8 @@ public class AlterMockCacheExtensionFunction implements Function, DataSerializab
}
final XmlEntity xmlEntity =
- XmlEntity.builder().withType(ELEMENT_CACHE).withNamespace(PREFIX, NAMESPACE).build();
+ XmlEntity.builder().withType(ELEMENT_CACHE).withNamespace(PREFIX, NAMESPACE)
+ .build(moduleService);
final ResultSender<Object> resultSender = context.getResultSender();
final String memberNameOrId =
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/extension/mock/AlterMockRegionExtensionFunction.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/extension/mock/AlterMockRegionExtensionFunction.java
index 74b9edf..ecdfd2f 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/extension/mock/AlterMockRegionExtensionFunction.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/extension/mock/AlterMockRegionExtensionFunction.java
@@ -34,6 +34,7 @@ import org.apache.geode.management.internal.cli.CliUtil;
import org.apache.geode.management.internal.configuration.domain.XmlEntity;
import org.apache.geode.management.internal.functions.CliFunctionResult;
import org.apache.geode.management.internal.i18n.CliStrings;
+import org.apache.geode.services.module.ModuleService;
/**
* Function to alter {@link MockRegionExtension} on a {@link Region}.
@@ -57,7 +58,11 @@ public class AlterMockRegionExtensionFunction implements Function, DataSerializa
private static final long serialVersionUID = 1L;
- public static final Function INSTANCE = new AlterMockRegionExtensionFunction();
+ private final ModuleService moduleService;
+
+ public AlterMockRegionExtensionFunction(ModuleService moduleService) {
+ this.moduleService = moduleService;
+ }
@Override
public void execute(FunctionContext context) {
@@ -78,7 +83,8 @@ public class AlterMockRegionExtensionFunction implements Function, DataSerializa
}
}
- XmlEntity xmlEntity = new XmlEntity(CacheXml.REGION, "name", region.getName());
+ XmlEntity xmlEntity =
+ new XmlEntity(CacheXml.REGION, "name", region.getName(), moduleService);
final ResultSender<Object> resultSender = context.getResultSender();
final String memberNameOrId =
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/extension/mock/CreateMockCacheExtensionFunction.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/extension/mock/CreateMockCacheExtensionFunction.java
index 48149d0..78ef687 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/extension/mock/CreateMockCacheExtensionFunction.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/extension/mock/CreateMockCacheExtensionFunction.java
@@ -36,6 +36,7 @@ import org.apache.geode.management.internal.cli.CliUtil;
import org.apache.geode.management.internal.configuration.domain.XmlEntity;
import org.apache.geode.management.internal.functions.CliFunctionResult;
import org.apache.geode.management.internal.i18n.CliStrings;
+import org.apache.geode.services.module.ModuleService;
/**
* Function to create {@link MockCacheExtension} on a {@link Region}.
@@ -47,7 +48,11 @@ public class CreateMockCacheExtensionFunction implements Function, DataSerializa
private static final long serialVersionUID = 1L;
- public static final Function INSTANCE = new CreateMockCacheExtensionFunction();
+ private final ModuleService moduleService;
+
+ public CreateMockCacheExtensionFunction(ModuleService moduleService) {
+ this.moduleService = moduleService;
+ }
@Override
public void execute(FunctionContext context) {
@@ -66,7 +71,8 @@ public class CreateMockCacheExtensionFunction implements Function, DataSerializa
extension.onCreate(extensible, extensible);
final XmlEntity xmlEntity =
- XmlEntity.builder().withType(ELEMENT_CACHE).withNamespace(PREFIX, NAMESPACE).build();
+ XmlEntity.builder().withType(ELEMENT_CACHE).withNamespace(PREFIX, NAMESPACE)
+ .build(moduleService);
final ResultSender<Object> resultSender = context.getResultSender();
final String memberNameOrId =
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/extension/mock/CreateMockRegionExtensionFunction.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/extension/mock/CreateMockRegionExtensionFunction.java
index 8fe2622..adb31b3 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/extension/mock/CreateMockRegionExtensionFunction.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/extension/mock/CreateMockRegionExtensionFunction.java
@@ -33,6 +33,7 @@ import org.apache.geode.management.internal.cli.CliUtil;
import org.apache.geode.management.internal.configuration.domain.XmlEntity;
import org.apache.geode.management.internal.functions.CliFunctionResult;
import org.apache.geode.management.internal.i18n.CliStrings;
+import org.apache.geode.services.module.ModuleService;
/**
* Function to create {@link MockRegionExtension} on a {@link Region}.
@@ -56,7 +57,11 @@ public class CreateMockRegionExtensionFunction implements Function, DataSerializ
private static final long serialVersionUID = 1L;
- public static final Function INSTANCE = new CreateMockRegionExtensionFunction();
+ private final ModuleService moduleService;
+
+ public CreateMockRegionExtensionFunction(ModuleService moduleService) {
+ this.moduleService = moduleService;
+ }
@Override
public void execute(FunctionContext context) {
@@ -75,7 +80,8 @@ public class CreateMockRegionExtensionFunction implements Function, DataSerializ
extension.beforeCreate(extensible, cache);
extension.onCreate(extensible, extensible);
- XmlEntity xmlEntity = new XmlEntity(CacheXml.REGION, "name", region.getName());
+ XmlEntity xmlEntity =
+ new XmlEntity(CacheXml.REGION, "name", region.getName(), moduleService);
final ResultSender<Object> resultSender = context.getResultSender();
final String memberNameOrId =
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/extension/mock/DestroyMockCacheExtensionFunction.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/extension/mock/DestroyMockCacheExtensionFunction.java
index 2cd12d6..f7acd88 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/extension/mock/DestroyMockCacheExtensionFunction.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/extension/mock/DestroyMockCacheExtensionFunction.java
@@ -37,6 +37,7 @@ import org.apache.geode.management.internal.cli.CliUtil;
import org.apache.geode.management.internal.configuration.domain.XmlEntity;
import org.apache.geode.management.internal.functions.CliFunctionResult;
import org.apache.geode.management.internal.i18n.CliStrings;
+import org.apache.geode.services.module.ModuleService;
/**
* Function to create {@link MockCacheExtension} on a {@link Region}.
@@ -48,7 +49,11 @@ public class DestroyMockCacheExtensionFunction implements Function, DataSerializ
private static final long serialVersionUID = 1L;
- public static final Function INSTANCE = new DestroyMockCacheExtensionFunction();
+ private final ModuleService moduleService;
+
+ public DestroyMockCacheExtensionFunction(ModuleService moduleService) {
+ this.moduleService = moduleService;
+ }
@Override
public void execute(FunctionContext context) {
@@ -68,7 +73,8 @@ public class DestroyMockCacheExtensionFunction implements Function, DataSerializ
}
final XmlEntity xmlEntity =
- XmlEntity.builder().withType(ELEMENT_CACHE).withNamespace(PREFIX, NAMESPACE).build();
+ XmlEntity.builder().withType(ELEMENT_CACHE).withNamespace(PREFIX, NAMESPACE)
+ .build(moduleService);
final ResultSender<Object> resultSender = context.getResultSender();
final String memberNameOrId =
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/extension/mock/DestroyMockRegionExtensionFunction.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/extension/mock/DestroyMockRegionExtensionFunction.java
index 9b25fca..67e2fa2 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/extension/mock/DestroyMockRegionExtensionFunction.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/extension/mock/DestroyMockRegionExtensionFunction.java
@@ -34,6 +34,7 @@ import org.apache.geode.management.internal.cli.CliUtil;
import org.apache.geode.management.internal.configuration.domain.XmlEntity;
import org.apache.geode.management.internal.functions.CliFunctionResult;
import org.apache.geode.management.internal.i18n.CliStrings;
+import org.apache.geode.services.module.ModuleService;
/**
* Function to destroy {@link MockRegionExtension} on a {@link Region}.
@@ -54,7 +55,12 @@ import org.apache.geode.management.internal.i18n.CliStrings;
public class DestroyMockRegionExtensionFunction implements Function, DataSerializable {
private static final long serialVersionUID = 1L;
- public static final Function INSTANCE = new DestroyMockRegionExtensionFunction();
+
+ private final ModuleService moduleService;
+
+ public DestroyMockRegionExtensionFunction(ModuleService moduleService) {
+ this.moduleService = moduleService;
+ }
@Override
public void execute(FunctionContext context) {
@@ -74,7 +80,8 @@ public class DestroyMockRegionExtensionFunction implements Function, DataSeriali
}
}
- XmlEntity xmlEntity = new XmlEntity(CacheXml.REGION, "name", region.getName());
+ XmlEntity xmlEntity =
+ new XmlEntity(CacheXml.REGION, "name", region.getName(), moduleService);
final ResultSender<Object> resultSender = context.getResultSender();
final String memberNameOrId =
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/extension/mock/MockExtensionCommands.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/extension/mock/MockExtensionCommands.java
index 1a32484..8414eb5 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/extension/mock/MockExtensionCommands.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/extension/mock/MockExtensionCommands.java
@@ -18,7 +18,6 @@ package org.apache.geode.internal.cache.extension.mock;
import java.util.List;
import java.util.Set;
-import org.springframework.shell.core.CommandMarker;
import org.springframework.shell.core.annotation.CliCommand;
import org.springframework.shell.core.annotation.CliOption;
@@ -30,6 +29,7 @@ import org.apache.geode.distributed.internal.InternalConfigurationPersistenceSer
import org.apache.geode.distributed.internal.InternalLocator;
import org.apache.geode.internal.cache.GemFireCacheImpl;
import org.apache.geode.internal.cache.InternalCache;
+import org.apache.geode.management.cli.GeodeCommandMarker;
import org.apache.geode.management.cli.Result;
import org.apache.geode.management.internal.cli.result.CommandResult;
import org.apache.geode.management.internal.cli.result.model.ResultModel;
@@ -39,13 +39,14 @@ import org.apache.geode.management.internal.security.ResourceOperation;
import org.apache.geode.management.internal.util.ManagementUtils;
import org.apache.geode.security.ResourcePermission.Operation;
import org.apache.geode.security.ResourcePermission.Resource;
+import org.apache.geode.services.module.ModuleService;
/**
* Mock Extension gfsh commands.
*
* @since GemFire 8.1
*/
-public class MockExtensionCommands implements CommandMarker {
+public class MockExtensionCommands implements GeodeCommandMarker {
public static final String OPTION_VALUE = "value";
@@ -63,6 +64,8 @@ public class MockExtensionCommands implements CommandMarker {
public static final String DESTROY_MOCK_CACHE_EXTENSION = "destroy mock cache extension";
+ private ModuleService moduleService;
+
/**
* Creates a {@link MockRegionExtension} on the given <code>regionName</code>.
*
@@ -77,7 +80,7 @@ public class MockExtensionCommands implements CommandMarker {
@CliOption(key = OPTION_REGION_NAME, mandatory = true) final String regionName,
@CliOption(key = OPTION_VALUE, mandatory = true) final String value) {
return executeFunctionOnAllMembersTabulateResultPersist(
- CreateMockRegionExtensionFunction.INSTANCE, true,
+ new CreateMockRegionExtensionFunction(moduleService), true,
CreateMockRegionExtensionFunction.toArgs(regionName, value));
}
@@ -95,7 +98,7 @@ public class MockExtensionCommands implements CommandMarker {
@CliOption(key = OPTION_REGION_NAME, mandatory = true) final String regionName,
@CliOption(key = OPTION_VALUE, mandatory = true) final String value) {
return executeFunctionOnAllMembersTabulateResultPersist(
- AlterMockRegionExtensionFunction.INSTANCE, true,
+ new AlterMockRegionExtensionFunction(moduleService), true,
AlterMockRegionExtensionFunction.toArgs(regionName, value));
}
@@ -111,7 +114,7 @@ public class MockExtensionCommands implements CommandMarker {
public Result destroyMockRegionExtension(
@CliOption(key = OPTION_REGION_NAME, mandatory = true) final String regionName) {
return executeFunctionOnAllMembersTabulateResultPersist(
- DestroyMockRegionExtensionFunction.INSTANCE, true,
+ new DestroyMockRegionExtensionFunction(moduleService), true,
DestroyMockRegionExtensionFunction.toArgs(regionName));
}
@@ -127,7 +130,7 @@ public class MockExtensionCommands implements CommandMarker {
public Result createMockCacheExtension(
@CliOption(key = OPTION_VALUE, mandatory = true) final String value) {
return executeFunctionOnAllMembersTabulateResultPersist(
- CreateMockCacheExtensionFunction.INSTANCE, true,
+ new CreateMockCacheExtensionFunction(moduleService), true,
CreateMockCacheExtensionFunction.toArgs(value));
}
@@ -143,7 +146,7 @@ public class MockExtensionCommands implements CommandMarker {
public Result alterMockCacheExtension(
@CliOption(key = OPTION_VALUE, mandatory = true) final String value) {
return executeFunctionOnAllMembersTabulateResultPersist(
- AlterMockCacheExtensionFunction.INSTANCE, true,
+ new AlterMockCacheExtensionFunction(moduleService), true,
AlterMockCacheExtensionFunction.toArgs(value));
}
@@ -157,7 +160,7 @@ public class MockExtensionCommands implements CommandMarker {
@ResourceOperation(resource = Resource.CLUSTER, operation = Operation.READ)
public Result destroyMockCacheExtension() {
return executeFunctionOnAllMembersTabulateResultPersist(
- DestroyMockCacheExtensionFunction.INSTANCE, false);
+ new DestroyMockCacheExtensionFunction(moduleService), false);
}
/**
@@ -201,4 +204,8 @@ public class MockExtensionCommands implements CommandMarker {
return new CommandResult(resultModel);
}
+ @Override
+ public void init(ModuleService moduleService) {
+ this.moduleService = moduleService;
+ }
}
diff --git a/geode-core/src/distributedTest/resources/META-INF/services/org.springframework.shell.core.CommandMarker b/geode-core/src/distributedTest/resources/META-INF/services/org.apache.geode.management.cli.GeodeCommandMarker
similarity index 100%
rename from geode-core/src/distributedTest/resources/META-INF/services/org.springframework.shell.core.CommandMarker
rename to geode-core/src/distributedTest/resources/META-INF/services/org.apache.geode.management.cli.GeodeCommandMarker
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/cache/execute/CoreFunctionSecurityTest.java b/geode-core/src/integrationTest/java/org/apache/geode/cache/execute/CoreFunctionSecurityTest.java
index 3b02ee4..20ec143 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/cache/execute/CoreFunctionSecurityTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/cache/execute/CoreFunctionSecurityTest.java
@@ -80,6 +80,7 @@ import org.apache.geode.management.internal.configuration.functions.RecreateCach
import org.apache.geode.management.internal.functions.GetMemberInformationFunction;
import org.apache.geode.management.internal.functions.RebalanceFunction;
import org.apache.geode.management.internal.functions.RestoreRedundancyFunction;
+import org.apache.geode.services.module.ModuleService;
import org.apache.geode.test.junit.rules.ConnectionConfiguration;
import org.apache.geode.test.junit.rules.GfshCommandRule;
import org.apache.geode.test.junit.rules.ServerStarterRule;
@@ -113,18 +114,18 @@ public class CoreFunctionSecurityTest {
functionStringMap.put(new DataCommandFunction(), "*");
functionStringMap.put(new DeployFunction(), "*");
functionStringMap.put(new DescribeDiskStoreFunction(), "*");
- functionStringMap.put(new DestroyAsyncEventQueueFunction(), "*");
- functionStringMap.put(new DestroyDiskStoreFunction(), "*");
+ functionStringMap.put(new DestroyAsyncEventQueueFunction(ModuleService.DEFAULT), "*");
+ functionStringMap.put(new DestroyDiskStoreFunction(ModuleService.DEFAULT), "*");
functionStringMap.put(new DestroyIndexFunction(), "*");
functionStringMap.put(new ExportConfigFunction(), "*");
functionStringMap.put(new ExportDataFunction(), "*");
functionStringMap.put(new ExportLogsFunction(), "*");
- functionStringMap.put(new FetchRegionAttributesFunction(), "*");
+ functionStringMap.put(new FetchRegionAttributesFunction(ModuleService.DEFAULT), "*");
functionStringMap.put(new FetchSharedConfigurationStatusFunction(), "*");
functionStringMap.put(new GarbageCollectionFunction(), "*");
functionStringMap.put(new GatewayReceiverCreateFunction(), "*");
functionStringMap.put(new GatewaySenderCreateFunction(), "*");
- functionStringMap.put(new GatewaySenderDestroyFunction(), "*");
+ functionStringMap.put(new GatewaySenderDestroyFunction(ModuleService.DEFAULT), "*");
functionStringMap.put(new GetClusterConfigurationFunction(), "*");
functionStringMap.put(new GetMemberConfigInformationFunction(), "*");
functionStringMap.put(new GetMemberInformationFunction(), "*");
@@ -143,8 +144,8 @@ public class CoreFunctionSecurityTest {
functionStringMap.put(new RebalanceFunction(), "*");
functionStringMap.put(new RestoreRedundancyFunction(), "*");
functionStringMap.put(new RegionAlterFunction(), "*");
- functionStringMap.put(new RegionCreateFunction(), "*");
- functionStringMap.put(new RegionDestroyFunction(), "*");
+ functionStringMap.put(new RegionCreateFunction(ModuleService.DEFAULT), "*");
+ functionStringMap.put(new RegionDestroyFunction(ModuleService.DEFAULT), "*");
functionStringMap.put(new ShowMissingDiskStoresFunction(), "*");
functionStringMap.put(new ShutDownFunction(), "*");
functionStringMap.put(new SizeExportLogsFunction(), "*");
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/management/internal/configuration/utils/XmlUtilsAddNewNodeJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/management/internal/configuration/utils/XmlUtilsAddNewNodeJUnitTest.java
index f9eb651..7f3655c 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/management/internal/configuration/utils/XmlUtilsAddNewNodeJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/management/internal/configuration/utils/XmlUtilsAddNewNodeJUnitTest.java
@@ -75,7 +75,8 @@ public class XmlUtilsAddNewNodeJUnitTest {
@Before
public void before() throws SAXException, ParserConfigurationException, IOException {
config = XmlUtils.createDocumentFromReader(new InputStreamReader(
- this.getClass().getResourceAsStream("XmlUtilsAddNewNodeJUnitTest.xml")));
+ this.getClass().getResourceAsStream("XmlUtilsAddNewNodeJUnitTest.xml")),
+ ModuleService.DEFAULT);
}
@AfterClass
@@ -99,14 +100,15 @@ public class XmlUtilsAddNewNodeJUnitTest {
assertEquals(0, nodes.getLength());
final Document changes = XmlUtils.createDocumentFromReader(new InputStreamReader(this.getClass()
- .getResourceAsStream("XmlUtilsAddNewNodeJUnitTest.testAddNewNodeNewNamed.xml")));
+ .getResourceAsStream("XmlUtilsAddNewNodeJUnitTest.testAddNewNodeNewNamed.xml")),
+ ModuleService.DEFAULT);
nodes = XmlUtils.query(changes, xPath, xPathContext);
assertEquals(1, nodes.getLength());
Element element = (Element) nodes.item(0);
assertEquals(CacheXml.GEODE_NAMESPACE, element.getNamespaceURI());
final XmlEntity xmlEntity = XmlEntity.builder().withType("region").withAttribute("name", "r3")
- .withConfig(changes).build();
+ .withConfig(changes).build(ModuleService.DEFAULT);
XmlUtils.addNewNode(config, xmlEntity, ModuleService.DEFAULT);
nodes = XmlUtils.query(config, xPath, xPathContext);
@@ -151,14 +153,16 @@ public class XmlUtilsAddNewNodeJUnitTest {
assertEquals(0, nodes.getLength());
final Document changes = XmlUtils.createDocumentFromReader(new InputStreamReader(this.getClass()
- .getResourceAsStream("XmlUtilsAddNewNodeJUnitTest.testAddNewNodeNewUnnamed.xml")));
+ .getResourceAsStream("XmlUtilsAddNewNodeJUnitTest.testAddNewNodeNewUnnamed.xml")),
+ ModuleService.DEFAULT);
nodes = XmlUtils.query(changes, xPath, xPathContext);
assertEquals(1, nodes.getLength());
Element element = (Element) nodes.item(0);
assertEquals(CacheXml.GEODE_NAMESPACE, element.getNamespaceURI());
final XmlEntity xmlEntity =
- XmlEntity.builder().withType("jndi-bindings").withConfig(changes).build();
+ XmlEntity.builder().withType("jndi-bindings").withConfig(changes)
+ .build(ModuleService.DEFAULT);
XmlUtils.addNewNode(config, xmlEntity, ModuleService.DEFAULT);
nodes = XmlUtils.query(config, xPath, xPathContext);
@@ -188,7 +192,8 @@ public class XmlUtilsAddNewNodeJUnitTest {
assertEquals(0, nodes.getLength());
final Document changes = XmlUtils.createDocumentFromReader(new InputStreamReader(this.getClass()
- .getResourceAsStream("XmlUtilsAddNewNodeJUnitTest.testAddNewNodeNewUnnamedExtension.xml")));
+ .getResourceAsStream("XmlUtilsAddNewNodeJUnitTest.testAddNewNodeNewUnnamedExtension.xml")),
+ ModuleService.DEFAULT);
nodes = XmlUtils.query(changes, xPath, xPathContext);
assertEquals(1, nodes.getLength());
Element element = (Element) nodes.item(0);
@@ -196,7 +201,8 @@ public class XmlUtilsAddNewNodeJUnitTest {
assertEquals("test:region", element.getNodeName());
final XmlEntity xmlEntity = XmlEntity.builder().withType("region")
- .withNamespace(TEST_PREFIX, TEST_NAMESPACE).withConfig(changes).build();
+ .withNamespace(TEST_PREFIX, TEST_NAMESPACE).withConfig(changes)
+ .build(ModuleService.DEFAULT);
XmlUtils.addNewNode(config, xmlEntity, ModuleService.DEFAULT);
nodes = XmlUtils.query(config, xPath, xPathContext);
@@ -231,7 +237,8 @@ public class XmlUtilsAddNewNodeJUnitTest {
assertEquals(CacheXml.GEODE_NAMESPACE, element.getNamespaceURI());
final Document changes = XmlUtils.createDocumentFromReader(new InputStreamReader(this.getClass()
- .getResourceAsStream("XmlUtilsAddNewNodeJUnitTest.testAddNewNodeReplaceNamed.xml")));
+ .getResourceAsStream("XmlUtilsAddNewNodeJUnitTest.testAddNewNodeReplaceNamed.xml")),
+ ModuleService.DEFAULT);
nodes = XmlUtils.query(changes, xPath, xPathContext);
assertEquals(1, nodes.getLength());
element = (Element) nodes.item(0);
@@ -239,7 +246,7 @@ public class XmlUtilsAddNewNodeJUnitTest {
assertEquals(CacheXml.GEODE_NAMESPACE, element.getNamespaceURI());
final XmlEntity xmlEntity = XmlEntity.builder().withType("region").withAttribute("name", "r1")
- .withConfig(changes).build();
+ .withConfig(changes).build(ModuleService.DEFAULT);
XmlUtils.addNewNode(config, xmlEntity, ModuleService.DEFAULT);
nodes = XmlUtils.query(config, xPath, xPathContext);
@@ -266,14 +273,16 @@ public class XmlUtilsAddNewNodeJUnitTest {
assertEquals(CacheXml.GEODE_NAMESPACE, element.getNamespaceURI());
final Document changes = XmlUtils.createDocumentFromReader(new InputStreamReader(this.getClass()
- .getResourceAsStream("XmlUtilsAddNewNodeJUnitTest.testAddNewNodeReplaceUnnamed.xml")));
+ .getResourceAsStream("XmlUtilsAddNewNodeJUnitTest.testAddNewNodeReplaceUnnamed.xml")),
+ ModuleService.DEFAULT);
nodes = XmlUtils.query(changes, xPath, xPathContext);
assertEquals(1, nodes.getLength());
element = (Element) nodes.item(0);
assertEquals("bar", XmlUtils.getAttribute(element, "disk-store-name"));
assertEquals(CacheXml.GEODE_NAMESPACE, element.getNamespaceURI());
- final XmlEntity xmlEntity = XmlEntity.builder().withType("pdx").withConfig(changes).build();
+ final XmlEntity xmlEntity =
+ XmlEntity.builder().withType("pdx").withConfig(changes).build(ModuleService.DEFAULT);
XmlUtils.addNewNode(config, xmlEntity, ModuleService.DEFAULT);
nodes = XmlUtils.query(config, xPath, xPathContext);
@@ -302,7 +311,8 @@ public class XmlUtilsAddNewNodeJUnitTest {
final org.w3c.dom.Document changes =
XmlUtils.createDocumentFromReader(new InputStreamReader(this.getClass().getResourceAsStream(
- "XmlUtilsAddNewNodeJUnitTest.testAddNewNodeReplaceUnnamedExtension.xml")));
+ "XmlUtilsAddNewNodeJUnitTest.testAddNewNodeReplaceUnnamedExtension.xml")),
+ ModuleService.DEFAULT);
nodes = XmlUtils.query(changes, xPath, xPathContext);
assertEquals(1, nodes.getLength());
element = (Element) nodes.item(0);
@@ -310,7 +320,8 @@ public class XmlUtilsAddNewNodeJUnitTest {
assertEquals(TEST_NAMESPACE, element.getNamespaceURI());
final XmlEntity xmlEntity = XmlEntity.builder().withType("cache")
- .withNamespace(TEST_PREFIX, TEST_NAMESPACE).withConfig(changes).build();
+ .withNamespace(TEST_PREFIX, TEST_NAMESPACE).withConfig(changes)
+ .build(ModuleService.DEFAULT);
XmlUtils.addNewNode(config, xmlEntity, ModuleService.DEFAULT);
nodes = XmlUtils.query(config, xPath, xPathContext);
@@ -337,12 +348,13 @@ public class XmlUtilsAddNewNodeJUnitTest {
assertEquals(CacheXml.GEODE_NAMESPACE, element.getNamespaceURI());
final Document changes = XmlUtils.createDocumentFromReader(new InputStreamReader(this.getClass()
- .getResourceAsStream("XmlUtilsAddNewNodeJUnitTest.testDeleteNodeNamed.xml")));
+ .getResourceAsStream("XmlUtilsAddNewNodeJUnitTest.testDeleteNodeNamed.xml")),
+ ModuleService.DEFAULT);
nodes = XmlUtils.query(changes, xPath, xPathContext);
assertEquals(0, nodes.getLength());
final XmlEntity xmlEntity = XmlEntity.builder().withType("region").withAttribute("name", "r1")
- .withConfig(changes).build();
+ .withConfig(changes).build(ModuleService.DEFAULT);
XmlUtils.deleteNode(config, xmlEntity);
nodes = XmlUtils.query(config, xPath, xPathContext);
@@ -367,11 +379,13 @@ public class XmlUtilsAddNewNodeJUnitTest {
assertEquals(CacheXml.GEODE_NAMESPACE, element.getNamespaceURI());
final Document changes = XmlUtils.createDocumentFromReader(new InputStreamReader(this.getClass()
- .getResourceAsStream("XmlUtilsAddNewNodeJUnitTest.testDeleteNodeUnnamed.xml")));
+ .getResourceAsStream("XmlUtilsAddNewNodeJUnitTest.testDeleteNodeUnnamed.xml")),
+ ModuleService.DEFAULT);
nodes = XmlUtils.query(changes, xPath, xPathContext);
assertEquals(0, nodes.getLength());
- final XmlEntity xmlEntity = XmlEntity.builder().withType("pdx").withConfig(changes).build();
+ final XmlEntity xmlEntity =
+ XmlEntity.builder().withType("pdx").withConfig(changes).build(ModuleService.DEFAULT);
XmlUtils.deleteNode(config, xmlEntity);
nodes = XmlUtils.query(config, xPath, xPathContext);
@@ -396,12 +410,14 @@ public class XmlUtilsAddNewNodeJUnitTest {
assertEquals(TEST_NAMESPACE, element.getNamespaceURI());
final Document changes = XmlUtils.createDocumentFromReader(new InputStreamReader(this.getClass()
- .getResourceAsStream("XmlUtilsAddNewNodeJUnitTest.testDeleteNodeUnnamedExtension.xml")));
+ .getResourceAsStream("XmlUtilsAddNewNodeJUnitTest.testDeleteNodeUnnamedExtension.xml")),
+ ModuleService.DEFAULT);
nodes = XmlUtils.query(changes, xPath, xPathContext);
assertEquals(0, nodes.getLength());
final XmlEntity xmlEntity = XmlEntity.builder().withType("cache")
- .withNamespace(TEST_PREFIX, TEST_NAMESPACE).withConfig(changes).build();
+ .withNamespace(TEST_PREFIX, TEST_NAMESPACE).withConfig(changes)
+ .build(ModuleService.DEFAULT);
XmlUtils.deleteNode(config, xmlEntity);
nodes = XmlUtils.query(config, xPath, xPathContext);
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/QueryConfigurationServiceImpl.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/QueryConfigurationServiceImpl.java
index 6e769f8..f4d2ec9 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/QueryConfigurationServiceImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/QueryConfigurationServiceImpl.java
@@ -38,6 +38,7 @@ import org.apache.geode.internal.cache.CacheService;
import org.apache.geode.internal.cache.InternalCache;
import org.apache.geode.logging.internal.log4j.api.LogService;
import org.apache.geode.management.internal.beans.CacheServiceMBeanBase;
+import org.apache.geode.services.module.ModuleService;
public class QueryConfigurationServiceImpl implements QueryConfigurationService {
private static final Logger logger = LogService.getLogger();
@@ -84,7 +85,7 @@ public class QueryConfigurationServiceImpl implements QueryConfigurationService
}
@Override
- public boolean init(Cache cache) {
+ public boolean init(Cache cache, ModuleService moduleService) {
if (cache == null) {
throw new IllegalArgumentException(NULL_CACHE_ERROR_MESSAGE);
}
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalConfigurationPersistenceService.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalConfigurationPersistenceService.java
index 8bf1e73..405fb1c 100644
--- a/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalConfigurationPersistenceService.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalConfigurationPersistenceService.java
@@ -180,7 +180,7 @@ public class InternalConfigurationPersistenceService implements ConfigurationPer
xmlContent = generateInitialXmlContent();
}
try {
- final Document doc = XmlUtils.createAndUpgradeDocumentFromXml(xmlContent);
+ final Document doc = XmlUtils.createAndUpgradeDocumentFromXml(xmlContent, moduleService);
XmlUtils.addNewNode(doc, xmlEntity, moduleService);
configuration.setCacheXmlContent(XmlUtils.prettyXml(doc));
configRegion.put(group, configuration);
@@ -211,7 +211,7 @@ public class InternalConfigurationPersistenceService implements ConfigurationPer
String xmlContent = configuration.getCacheXmlContent();
try {
if (xmlContent != null && !xmlContent.isEmpty()) {
- Document doc = XmlUtils.createAndUpgradeDocumentFromXml(xmlContent);
+ Document doc = XmlUtils.createAndUpgradeDocumentFromXml(xmlContent, moduleService);
XmlUtils.deleteNode(doc, xmlEntity);
configuration.setCacheXmlContent(XmlUtils.prettyXml(doc));
configRegion.put(group, configuration);
@@ -249,7 +249,7 @@ public class InternalConfigurationPersistenceService implements ConfigurationPer
xmlContent = sw.toString();
}
try {
- Document doc = XmlUtils.createAndUpgradeDocumentFromXml(xmlContent);
+ Document doc = XmlUtils.createAndUpgradeDocumentFromXml(xmlContent, moduleService);
// Modify the cache attributes
XmlUtils.modifyRootAttributes(doc, xmlEntity);
// Change the xml content of the configuration and put it the config region
@@ -496,7 +496,7 @@ public class InternalConfigurationPersistenceService implements ConfigurationPer
String configurationXml = configuration.getCacheXmlContent();
if (configurationXml != null && !configurationXml.isEmpty()) {
try {
- Document document = XmlUtils.createDocumentFromXml(configurationXml);
+ Document document = XmlUtils.createDocumentFromXml(configurationXml, moduleService);
boolean removedInvalidReceivers = removeInvalidGatewayReceivers(document);
boolean removedDuplicateReceivers = removeDuplicateGatewayReceivers(document);
if (removedInvalidReceivers || removedDuplicateReceivers) {
@@ -820,7 +820,7 @@ public class InternalConfigurationPersistenceService implements ConfigurationPer
File cacheXmlFull = new File(groupConfigDir, configuration.getCacheXmlFileName());
File propertiesFull = new File(groupConfigDir, configuration.getPropertiesFileName());
- configuration.setCacheXmlFile(cacheXmlFull);
+ configuration.setCacheXmlFile(cacheXmlFull, moduleService);
configuration.setPropertiesFile(propertiesFull);
String deployedBy = getDeployedBy();
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 aaea92d..1051722 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
@@ -16,6 +16,7 @@ package org.apache.geode.internal.cache;
import org.apache.geode.cache.Cache;
import org.apache.geode.management.internal.beans.CacheServiceMBeanBase;
+import org.apache.geode.services.module.ModuleService;
/**
* Interface for a service that is linked to a cache.
@@ -33,7 +34,7 @@ public interface CacheService {
* @return a boolean indicating whether the service was successfully initialized. If false, then
* the service will not subsequently be available.
*/
- default boolean init(Cache cache) {
+ default boolean init(Cache cache, ModuleService moduleService) {
return true;
}
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 a2e390a..3cd270c 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
@@ -1697,7 +1697,7 @@ public class GemFireCacheImpl implements InternalCache, InternalClientCache, Has
// log the configuration received from the locator
logger.info("Received cluster configuration from the locator");
- logger.info(response.describeConfig());
+ logger.info(response.describeConfig(moduleService));
Configuration clusterConfig = response.getRequestedConfiguration().get(CLUSTER_CONFIG);
Properties clusterSecProperties =
@@ -1855,7 +1855,7 @@ public class GemFireCacheImpl implements InternalCache, InternalClientCache, Has
if (loadedServices.isSuccessful()) {
for (CacheService service : loadedServices.getMessage()) {
try {
- if (service.init(this)) {
+ if (service.init(this, moduleService)) {
this.services.put(service.getInterface(), service);
logger.info("Initialized cache service {}", service.getClass().getName());
}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/client/protocol/ClientProtocolService.java b/geode-core/src/main/java/org/apache/geode/internal/cache/client/protocol/ClientProtocolService.java
index 855cb09..58bf235 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/client/protocol/ClientProtocolService.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/client/protocol/ClientProtocolService.java
@@ -19,6 +19,7 @@ import org.apache.geode.StatisticsFactory;
import org.apache.geode.distributed.internal.InternalLocator;
import org.apache.geode.internal.cache.InternalCache;
import org.apache.geode.internal.security.SecurityService;
+import org.apache.geode.services.module.ModuleService;
/**
* Provides a convenient location for a client protocol service to be loaded into the system.
@@ -42,4 +43,6 @@ public interface ClientProtocolService {
SecurityService securityService);
int getServiceProtocolVersion();
+
+ void init(ModuleService moduleService);
}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/client/protocol/ClientProtocolServiceLoader.java b/geode-core/src/main/java/org/apache/geode/internal/cache/client/protocol/ClientProtocolServiceLoader.java
index fdaf69c..c5e7beb 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/client/protocol/ClientProtocolServiceLoader.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/client/protocol/ClientProtocolServiceLoader.java
@@ -31,7 +31,10 @@ public class ClientProtocolServiceLoader {
private List<ClientProtocolService> initializeProtocolServices(ModuleService moduleService) {
List<ClientProtocolService> resultList = new LinkedList<>();
moduleService.loadService(ClientProtocolService.class)
- .ifSuccessful(clientProtocolServices -> resultList.addAll(clientProtocolServices));
+ .ifSuccessful(clientProtocolServices -> clientProtocolServices.forEach((service -> {
+ service.init(moduleService);
+ resultList.add(service);
+ })));
return resultList;
}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/xmlcache/CacheXml.java b/geode-core/src/main/java/org/apache/geode/internal/cache/xmlcache/CacheXml.java
index 15cf8b3..5ea0931 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/xmlcache/CacheXml.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/xmlcache/CacheXml.java
@@ -16,7 +16,8 @@ package org.apache.geode.internal.cache.xmlcache;
import java.io.IOException;
import java.io.InputStream;
-import java.util.ServiceLoader;
+import java.util.List;
+import java.util.Set;
import org.xml.sax.Attributes;
import org.xml.sax.ErrorHandler;
@@ -27,8 +28,8 @@ import org.xml.sax.SAXParseException;
import org.apache.geode.cache.CacheXmlException;
import org.apache.geode.distributed.ConfigurationProperties;
-import org.apache.geode.internal.ClassPathLoader;
import org.apache.geode.services.module.ModuleService;
+import org.apache.geode.services.result.ModuleServiceResult;
/**
* The abstract superclass of classes that convert XML into a {@link org.apache.geode.cache.Cache}
@@ -839,15 +840,16 @@ public abstract class CacheXml implements GeodeEntityResolver2, ErrorHandler {
// assume the latest
return resolveEntityByEntityResolvers(name, publicId, baseURI, systemId);
}
- InputSource result;
- InputStream stream = ClassPathLoader.getLatest().getResourceAsStream(getClass(), location);
- if (stream != null) {
- result = new InputSource(stream);
- } else {
- throw new SAXNotRecognizedException(
- String.format("DTD not found: %s", location));
+
+ ModuleServiceResult<List<InputStream>> resourceResult =
+ moduleService.findResourceAsStream(location);
+ if (resourceResult.isSuccessful()) {
+ for (InputStream stream : resourceResult.getMessage()) {
+ return new InputSource(stream);
+ }
}
- return result;
+ throw new SAXNotRecognizedException(
+ String.format("DTD not found: %s", location));
}
/*
@@ -886,14 +888,16 @@ public abstract class CacheXml implements GeodeEntityResolver2, ErrorHandler {
*/
private InputSource resolveEntityByEntityResolvers(String name, String publicId, String baseURI,
String systemId) throws SAXException, IOException {
- final ServiceLoader<GeodeEntityResolver2> entityResolvers =
- ServiceLoader.load(GeodeEntityResolver2.class, ClassPathLoader.getLatest().asClassLoader());
- for (final GeodeEntityResolver2 entityResolver : entityResolvers) {
- entityResolver.init(moduleService);
- final InputSource inputSource =
- entityResolver.resolveEntity(name, publicId, baseURI, systemId);
- if (null != inputSource) {
- return inputSource;
+ ModuleServiceResult<Set<GeodeEntityResolver2>> serviceLoadResult =
+ moduleService.loadService(GeodeEntityResolver2.class);
+ if (serviceLoadResult.isSuccessful()) {
+ for (GeodeEntityResolver2 entityResolver : serviceLoadResult.getMessage()) {
+ entityResolver.init(moduleService);
+ final InputSource inputSource =
+ entityResolver.resolveEntity(name, publicId, baseURI, systemId);
+ if (null != inputSource) {
+ return inputSource;
+ }
}
}
return null;
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/configuration/domain/CacheElement.java b/geode-core/src/main/java/org/apache/geode/management/internal/configuration/domain/CacheElement.java
index e10815a..906d53b 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/configuration/domain/CacheElement.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/configuration/domain/CacheElement.java
@@ -115,7 +115,7 @@ public class CacheElement {
final LinkedHashMap<String, CacheElement> elementMap = new LinkedHashMap<>();
buildElementMapCacheType(elementMap,
- resolveSchema(schemaLocationMap, CacheXml.GEODE_NAMESPACE, moduleService));
+ resolveSchema(schemaLocationMap, CacheXml.GEODE_NAMESPACE, moduleService), moduleService);
// if we are ever concerned with the order of extensions or children process them here.
@@ -163,9 +163,9 @@ public class CacheElement {
* @since GemFire 8.1
*/
private static void buildElementMapCacheType(final LinkedHashMap<String, CacheElement> elementMap,
- final InputSource inputSource)
+ final InputSource inputSource, ModuleService moduleService)
throws SAXException, IOException, ParserConfigurationException, XPathExpressionException {
- final Document doc = XmlUtils.getDocumentBuilder().parse(inputSource);
+ final Document doc = XmlUtils.getDocumentBuilder(moduleService).parse(inputSource);
int rank = 0;
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/configuration/domain/Configuration.java b/geode-core/src/main/java/org/apache/geode/management/internal/configuration/domain/Configuration.java
index 616915b..822f590 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/configuration/domain/Configuration.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/configuration/domain/Configuration.java
@@ -41,6 +41,7 @@ import org.apache.geode.DataSerializer;
import org.apache.geode.internal.serialization.Version;
import org.apache.geode.management.configuration.Deployment;
import org.apache.geode.management.internal.configuration.utils.XmlUtils;
+import org.apache.geode.services.module.ModuleService;
/**
* Domain object for all the configuration related data.
@@ -85,12 +86,12 @@ public class Configuration implements DataSerializable {
this.cacheXmlContent = cacheXmlContent;
}
- public void setCacheXmlFile(File cacheXmlFile) throws IOException {
+ public void setCacheXmlFile(File cacheXmlFile, ModuleService moduleService) throws IOException {
if (cacheXmlFile.length() == 0) {
cacheXmlContent = "";
} else {
try {
- Document doc = XmlUtils.getDocumentBuilder().parse(cacheXmlFile);
+ Document doc = XmlUtils.getDocumentBuilder(moduleService).parse(cacheXmlFile);
cacheXmlContent = XmlUtils.elementToString(doc);
} catch (SAXException | TransformerException | ParserConfigurationException e) {
throw new IOException("Unable to parse existing cluster configuration from file: "
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/configuration/domain/XmlEntity.java b/geode-core/src/main/java/org/apache/geode/management/internal/configuration/domain/XmlEntity.java
index 427aaf6..efd085b 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/configuration/domain/XmlEntity.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/configuration/domain/XmlEntity.java
@@ -51,6 +51,7 @@ import org.apache.geode.internal.serialization.Version;
import org.apache.geode.logging.internal.log4j.api.LogService;
import org.apache.geode.management.internal.configuration.utils.XmlUtils;
import org.apache.geode.management.internal.configuration.utils.XmlUtils.XPathContext;
+import org.apache.geode.services.module.ModuleService;
/**
* Domain class for defining a GemFire entity in XML.
@@ -114,12 +115,13 @@ public class XmlEntity implements VersionedDataSerializable {
* @param key Key of the attribute to match, for example, "name" or "id".
* @param value Value of the attribute to match.
*/
- public XmlEntity(final String type, final String key, final String value) {
+ public XmlEntity(final String type, final String key, final String value,
+ ModuleService moduleService) {
cacheProvider = createDefaultCacheProvider();
this.type = type;
attributes.put(key, value);
- init();
+ init(moduleService);
}
/**
@@ -175,7 +177,7 @@ public class XmlEntity implements VersionedDataSerializable {
public XmlEntity(final CacheProvider cacheProvider, final String parentType,
final String childPrefix, final String childNamespace, final String childType,
- final String key, final String value) {
+ final String key, final String value, ModuleService moduleService) {
this.cacheProvider = cacheProvider;
this.parentType = parentType;
type = childType;
@@ -186,10 +188,10 @@ public class XmlEntity implements VersionedDataSerializable {
attributes.put(key, value);
searchString = "//" + this.parentType + '/' + childPrefix + ':' + type;
- xmlDefinition = parseXmlForDefinition();
+ xmlDefinition = parseXmlForDefinition(moduleService);
}
- private String parseXmlForDefinition() {
+ private String parseXmlForDefinition(ModuleService moduleService) {
final Cache cache = cacheProvider.getCache();
final StringWriter stringWriter = new StringWriter();
@@ -199,7 +201,7 @@ public class XmlEntity implements VersionedDataSerializable {
InputSource inputSource = new InputSource(new StringReader(stringWriter.toString()));
try {
- Document document = XmlUtils.getDocumentBuilder().parse(inputSource);
+ Document document = XmlUtils.getDocumentBuilder(moduleService).parse(inputSource);
Node element = document.getElementsByTagNameNS(childNamespace, type).item(0);
if (null != element) {
return XmlUtils.elementToString(element);
@@ -232,19 +234,20 @@ public class XmlEntity implements VersionedDataSerializable {
}
/**
- * Initialize new instances. Called from {@link #XmlEntity(String, String, String)} and
- * {@link XmlEntityBuilder#build()}.
+ * Initialize new instances. Called from {@link #XmlEntity(String, String, String, ModuleService)}
+ * and
+ * {@link XmlEntityBuilder#build(ModuleService)}.
*
* @since GemFire 8.1
*/
- private void init() {
+ private void init(ModuleService moduleService) {
Assert.assertTrue(StringUtils.isNotBlank(type));
Assert.assertTrue(StringUtils.isNotBlank(prefix));
Assert.assertTrue(StringUtils.isNotBlank(namespace));
Assert.assertTrue(attributes != null);
if (null == xmlDefinition) {
- xmlDefinition = loadXmlDefinition();
+ xmlDefinition = loadXmlDefinition(moduleService);
}
}
@@ -253,7 +256,7 @@ public class XmlEntity implements VersionedDataSerializable {
*
* @return XML string representation of the entity.
*/
- private String loadXmlDefinition() {
+ private String loadXmlDefinition(ModuleService moduleService) {
final Cache cache = cacheProvider.getCache();
final StringWriter stringWriter = new StringWriter();
@@ -261,7 +264,7 @@ public class XmlEntity implements VersionedDataSerializable {
CacheXmlGenerator.generate(cache, printWriter, false, false);
printWriter.close();
- return loadXmlDefinition(stringWriter.toString());
+ return loadXmlDefinition(stringWriter.toString(), moduleService);
}
/**
@@ -271,10 +274,11 @@ public class XmlEntity implements VersionedDataSerializable {
* @return XML for XmlEntity if found, otherwise {@code null}.
* @since GemFire 8.1
*/
- private String loadXmlDefinition(final String xmlDocument) {
+ private String loadXmlDefinition(final String xmlDocument, ModuleService moduleService) {
try {
InputSource inputSource = new InputSource(new StringReader(xmlDocument));
- return loadXmlDefinition(XmlUtils.getDocumentBuilder().parse(inputSource));
+ return loadXmlDefinition(XmlUtils
+ .getDocumentBuilder(moduleService).parse(inputSource));
} catch (IOException | SAXException | ParserConfigurationException | XPathExpressionException
| TransformerFactoryConfigurationError | TransformerException e) {
throw new InternalGemFireError("Could not parse XML when creating XMLEntity", e);
@@ -538,8 +542,8 @@ public class XmlEntity implements VersionedDataSerializable {
* @since GemFire 8.1
*/
@SuppressWarnings("deprecation")
- public XmlEntity build() {
- xmlEntity.init();
+ public XmlEntity build(ModuleService moduleService) {
+ xmlEntity.init(moduleService);
final XmlEntity built = xmlEntity;
xmlEntity = new XmlEntity();
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/configuration/messages/ConfigurationResponse.java b/geode-core/src/main/java/org/apache/geode/management/internal/configuration/messages/ConfigurationResponse.java
index a7dd234..b7179bb 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/configuration/messages/ConfigurationResponse.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/configuration/messages/ConfigurationResponse.java
@@ -40,6 +40,7 @@ import org.apache.geode.internal.serialization.SerializationContext;
import org.apache.geode.internal.serialization.Version;
import org.apache.geode.management.internal.configuration.domain.Configuration;
import org.apache.geode.management.internal.configuration.utils.XmlUtils;
+import org.apache.geode.services.module.ModuleService;
public class ConfigurationResponse implements DataSerializableFixedID {
@@ -90,7 +91,7 @@ public class ConfigurationResponse implements DataSerializableFixedID {
return sb.toString();
}
- public String describeConfig() {
+ public String describeConfig(ModuleService moduleService) {
StringBuffer sb = new StringBuffer();
if (requestedConfiguration.isEmpty()) {
sb.append("Received an empty shared configuration");
@@ -118,7 +119,7 @@ public class ConfigurationResponse implements DataSerializableFixedID {
try {
String cacheXmlContent = config.getCacheXmlContent();
if (StringUtils.isNotBlank(cacheXmlContent)) {
- sb.append("\n" + XmlUtils.prettyXml(cacheXmlContent));
+ sb.append("\n" + XmlUtils.prettyXml(cacheXmlContent, moduleService));
}
} catch (IOException | TransformerFactoryConfigurationError | TransformerException
| SAXException | ParserConfigurationException e) {
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/configuration/utils/XmlUtils.java b/geode-core/src/main/java/org/apache/geode/management/internal/configuration/utils/XmlUtils.java
index e734c9e..f074f0c 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/configuration/utils/XmlUtils.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/configuration/utils/XmlUtils.java
@@ -70,12 +70,12 @@ public class XmlUtils {
* @return {@link Document} if successful, otherwise false.
* @since GemFire 8.1
*/
- public static Document createDocumentFromReader(final Reader reader)
+ public static Document createDocumentFromReader(final Reader reader, ModuleService moduleService)
throws SAXException, ParserConfigurationException, IOException {
Document doc;
InputSource inputSource = new InputSource(reader);
- doc = getDocumentBuilder().parse(inputSource);
+ doc = getDocumentBuilder(moduleService).parse(inputSource);
return doc;
}
@@ -104,12 +104,15 @@ public class XmlUtils {
}
}
- public static DocumentBuilder getDocumentBuilder() throws ParserConfigurationException {
+ public static DocumentBuilder getDocumentBuilder(ModuleService moduleService)
+ throws ParserConfigurationException {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
// the actual builder or parser
DocumentBuilder builder = factory.newDocumentBuilder();
- builder.setEntityResolver(new CacheXmlParser());
+ CacheXmlParser cacheXmlParser = new CacheXmlParser();
+ cacheXmlParser.init(moduleService);
+ builder.setEntityResolver(cacheXmlParser);
return builder;
}
@@ -126,7 +129,7 @@ public class XmlUtils {
final LinkedHashMap<String, CacheElement> elementOrderMap =
CacheElement.buildElementMap(doc, moduleService);
- final Node newNode = createNode(doc, xmlEntity.getXmlDefinition());
+ final Node newNode = createNode(doc, xmlEntity.getXmlDefinition(), moduleService);
final Node root = doc.getDocumentElement();
final int incomingElementOrder =
getElementOrder(elementOrderMap, xmlEntity.getNamespace(), xmlEntity.getType());
@@ -222,10 +225,10 @@ public class XmlUtils {
*
* @return Node representing the xml definition
*/
- private static Node createNode(Document owner, String xmlDefinition)
+ private static Node createNode(Document owner, String xmlDefinition, ModuleService moduleService)
throws SAXException, IOException, ParserConfigurationException {
InputSource inputSource = new InputSource(new StringReader(xmlDefinition));
- Document document = getDocumentBuilder().parse(inputSource);
+ Document document = getDocumentBuilder(moduleService).parse(inputSource);
Node newNode = document.getDocumentElement();
return owner.importNode(newNode, true);
}
@@ -380,10 +383,10 @@ public class XmlUtils {
*
* @return pretty xml string
*/
- public static String prettyXml(String xmlContent)
+ public static String prettyXml(String xmlContent, ModuleService moduleService)
throws IOException, TransformerFactoryConfigurationError, TransformerException, SAXException,
ParserConfigurationException {
- Document doc = createDocumentFromXml(xmlContent);
+ Document doc = createDocumentFromXml(xmlContent, moduleService);
return prettyXml(doc);
}
@@ -391,13 +394,14 @@ public class XmlUtils {
* Create a document from the xml
*
*/
- public static Document createDocumentFromXml(String xmlContent)
+ public static Document createDocumentFromXml(String xmlContent, ModuleService moduleService)
throws SAXException, ParserConfigurationException, IOException {
- return createDocumentFromReader(new StringReader(xmlContent));
+ return createDocumentFromReader(new StringReader(xmlContent), moduleService);
}
/**
- * Create a {@link Document} using {@link XmlUtils#createDocumentFromXml(String)} and if the
+ * Create a {@link Document} using {@link XmlUtils#createDocumentFromXml(String, ModuleService)}
+ * and if the
* version attribute is not equal to the current version then update the XML to the current schema
* and return the document.
*
@@ -405,13 +409,14 @@ public class XmlUtils {
* @return {@link Document} from xmlContent.
* @since GemFire 8.1
*/
- public static Document createAndUpgradeDocumentFromXml(String xmlContent)
+ public static Document createAndUpgradeDocumentFromXml(String xmlContent,
+ ModuleService moduleService)
throws SAXException, ParserConfigurationException, IOException, XPathExpressionException {
- Document doc = XmlUtils.createDocumentFromXml(xmlContent);
+ Document doc = XmlUtils.createDocumentFromXml(xmlContent, moduleService);
if (!CacheXml.VERSION_LATEST.equals(XmlUtils.getAttribute(doc.getDocumentElement(),
CacheXml.VERSION, CacheXml.GEODE_NAMESPACE))) {
doc = upgradeSchema(doc, CacheXml.GEODE_NAMESPACE, CacheXml.LATEST_SCHEMA_LOCATION,
- CacheXml.VERSION_LATEST);
+ CacheXml.VERSION_LATEST, moduleService);
}
return doc;
}
@@ -426,7 +431,7 @@ public class XmlUtils {
* @since GemFire 8.1
*/
public static Document upgradeSchema(Document document, final String namespaceUri,
- final String schemaLocation, String schemaVersion)
+ final String schemaLocation, String schemaVersion, ModuleService moduleService)
throws XPathExpressionException, ParserConfigurationException {
if (StringUtils.isBlank(namespaceUri)) {
throw new IllegalArgumentException("namespaceUri");
@@ -440,7 +445,7 @@ public class XmlUtils {
if (null != document.getDoctype()) {
Node root = document.getDocumentElement();
- Document copiedDocument = getDocumentBuilder().newDocument();
+ Document copiedDocument = getDocumentBuilder(moduleService).newDocument();
Node copiedRoot = copiedDocument.importNode(root, true);
copiedDocument.appendChild(copiedRoot);
document = copiedDocument;
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/internal/QueryConfigurationServiceImplTest.java b/geode-core/src/test/java/org/apache/geode/cache/query/internal/QueryConfigurationServiceImplTest.java
index bcb80b9..e109bbf 100644
--- a/geode-core/src/test/java/org/apache/geode/cache/query/internal/QueryConfigurationServiceImplTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache/query/internal/QueryConfigurationServiceImplTest.java
@@ -52,6 +52,7 @@ import org.apache.geode.cache.query.security.UnrestrictedMethodAuthorizer;
import org.apache.geode.internal.cache.InternalCache;
import org.apache.geode.internal.security.SecurityService;
import org.apache.geode.management.internal.cli.util.TestMethodAuthorizer;
+import org.apache.geode.services.module.ModuleService;
@RunWith(JUnitParamsRunner.class)
public class QueryConfigurationServiceImplTest {
@@ -94,7 +95,7 @@ public class QueryConfigurationServiceImplTest {
@Test
public void initThrowsExceptionWhenCacheIsNull() {
- assertThatThrownBy(() -> configService.init(null))
+ assertThatThrownBy(() -> configService.init(null, ModuleService.DEFAULT))
.isInstanceOf(IllegalArgumentException.class)
.hasMessage(NULL_CACHE_ERROR_MESSAGE);
}
@@ -102,7 +103,7 @@ public class QueryConfigurationServiceImplTest {
@Test
public void initSetsNoOpAuthorizerWhenSecurityDisabled() {
when(mockSecurity.isIntegratedSecurity()).thenReturn(false);
- configService.init(mockCache);
+ configService.init(mockCache, ModuleService.DEFAULT);
assertThat(configService.getMethodAuthorizer())
.isSameAs(QueryConfigurationServiceImpl.getNoOpAuthorizer());
}
@@ -112,7 +113,7 @@ public class QueryConfigurationServiceImplTest {
setAllowUntrustedMethodInvocationSystemProperty();
configService = new QueryConfigurationServiceImpl();
when(mockSecurity.isIntegratedSecurity()).thenReturn(true);
- configService.init(mockCache);
+ configService.init(mockCache, ModuleService.DEFAULT);
assertThat(configService.getMethodAuthorizer())
.isSameAs(QueryConfigurationServiceImpl.getNoOpAuthorizer());
}
@@ -120,14 +121,14 @@ public class QueryConfigurationServiceImplTest {
@Test
public void initSetsRestrictedMethodAuthorizerWhenSecurityIsEnabledAndSystemPropertyIsNotSet() {
when(mockSecurity.isIntegratedSecurity()).thenReturn(true);
- configService.init(mockCache);
+ configService.init(mockCache, ModuleService.DEFAULT);
assertThat(configService.getMethodAuthorizer()).isInstanceOf(RestrictedMethodAuthorizer.class);
}
@Test
public void updateMethodAuthorizerDoesNothingWhenSecurityIsDisabled() {
when(mockSecurity.isIntegratedSecurity()).thenReturn(false);
- configService.init(mockCache);
+ configService.init(mockCache, ModuleService.DEFAULT);
MethodInvocationAuthorizer authorizer = configService.getMethodAuthorizer();
assertThat(authorizer).isSameAs(QueryConfigurationServiceImpl.getNoOpAuthorizer());
@@ -141,7 +142,7 @@ public class QueryConfigurationServiceImplTest {
setAllowUntrustedMethodInvocationSystemProperty();
configService = new QueryConfigurationServiceImpl();
when(mockSecurity.isIntegratedSecurity()).thenReturn(true);
- configService.init(mockCache);
+ configService.init(mockCache, ModuleService.DEFAULT);
MethodInvocationAuthorizer authorizer = configService.getMethodAuthorizer();
assertThat(authorizer).isSameAs(QueryConfigurationServiceImpl.getNoOpAuthorizer());
@@ -183,7 +184,7 @@ public class QueryConfigurationServiceImplTest {
public void updateMethodAuthorizerDoesNotChangeMethodAuthorizerWhenSecurityIsEnabledAndClassNameIsNull() {
when(mockSecurity.isIntegratedSecurity()).thenReturn(true);
- configService.init(mockCache);
+ configService.init(mockCache, ModuleService.DEFAULT);
assertThat(configService.getMethodAuthorizer()).isInstanceOf(RestrictedMethodAuthorizer.class);
assertThatThrownBy(
() -> configService.updateMethodAuthorizer(mockCache, false, null, EMPTY_SET))
@@ -195,7 +196,7 @@ public class QueryConfigurationServiceImplTest {
public void updateMethodAuthorizerDoesNotChangeMethodAuthorizerWhenSecurityIsEnabledAndClassNameIsNotFound() {
when(mockSecurity.isIntegratedSecurity()).thenReturn(true);
- configService.init(mockCache);
+ configService.init(mockCache, ModuleService.DEFAULT);
assertThat(configService.getMethodAuthorizer()).isInstanceOf(RestrictedMethodAuthorizer.class);
String className = "FakeClassName";
assertThatThrownBy(
@@ -208,7 +209,7 @@ public class QueryConfigurationServiceImplTest {
public void updateMethodAuthorizerDoesNotChangeMethodAuthorizerWhenSecurityIsEnabledAndSpecifiedClassDoesNotImplementMethodInvocationAuthorizer() {
when(mockSecurity.isIntegratedSecurity()).thenReturn(true);
- configService.init(mockCache);
+ configService.init(mockCache, ModuleService.DEFAULT);
assertThat(configService.getMethodAuthorizer()).isInstanceOf(RestrictedMethodAuthorizer.class);
String className = this.getClass().getName();
assertThatThrownBy(
@@ -224,7 +225,7 @@ public class QueryConfigurationServiceImplTest {
when(mockSecurity.isIntegratedSecurity()).thenReturn(true);
when(mockCache.isClosed()).thenThrow(new RuntimeException("Test exception"));
- configService.init(mockCache);
+ configService.init(mockCache, ModuleService.DEFAULT);
assertThat(configService.getMethodAuthorizer()).isInstanceOf(RestrictedMethodAuthorizer.class);
assertThatThrownBy(() -> configService.updateMethodAuthorizer(mockCache, false,
TestMethodAuthorizer.class.getName(), EMPTY_SET))
@@ -239,7 +240,7 @@ public class QueryConfigurationServiceImplTest {
Class methodAuthorizerClass) {
when(mockSecurity.isIntegratedSecurity()).thenReturn(true);
doReturn(Collections.singletonList(mock(ServerCQ.class))).when(mockCqService).getAllCqs();
- configService.init(mockCache);
+ configService.init(mockCache, ModuleService.DEFAULT);
assertThat(configService.getMethodAuthorizer()).isInstanceOf(RestrictedMethodAuthorizer.class);
assertThatThrownBy(() -> configService.updateMethodAuthorizer(mockCache, false,
@@ -258,7 +259,7 @@ public class QueryConfigurationServiceImplTest {
ServerCQ serverCQ2 = mock(ServerCQ.class);
when(mockSecurity.isIntegratedSecurity()).thenReturn(true);
doReturn(Arrays.asList(serverCQ1, serverCQ2)).when(mockCqService).getAllCqs();
- configService.init(mockCache);
+ configService.init(mockCache, ModuleService.DEFAULT);
assertThat(configService.getMethodAuthorizer()).isInstanceOf(RestrictedMethodAuthorizer.class);
assertThatCode(() -> configService.updateMethodAuthorizer(mockCache, true,
diff --git a/geode-core/src/test/java/org/apache/geode/distributed/internal/InternalConfigurationPersistenceServiceTest.java b/geode-core/src/test/java/org/apache/geode/distributed/internal/InternalConfigurationPersistenceServiceTest.java
index 8fee460..b8f3d69 100644
--- a/geode-core/src/test/java/org/apache/geode/distributed/internal/InternalConfigurationPersistenceServiceTest.java
+++ b/geode-core/src/test/java/org/apache/geode/distributed/internal/InternalConfigurationPersistenceServiceTest.java
@@ -207,7 +207,8 @@ public class InternalConfigurationPersistenceServiceTest {
@Test
public void removeDuplicateGatewayReceiversWithDefaultProperties() throws Exception {
Document document =
- XmlUtils.createDocumentFromXml(getDuplicateReceiversWithDefaultPropertiesXml());
+ XmlUtils.createDocumentFromXml(getDuplicateReceiversWithDefaultPropertiesXml(),
+ ModuleService.DEFAULT);
System.out.println("Initial document:\n" + XmlUtils.prettyXml(document));
assertThat(document.getElementsByTagName("gateway-receiver").getLength()).isEqualTo(2);
service.removeDuplicateGatewayReceivers(document);
@@ -218,7 +219,8 @@ public class InternalConfigurationPersistenceServiceTest {
@Test
public void removeInvalidGatewayReceiversWithDifferentHostNameForSenders() throws Exception {
Document document =
- XmlUtils.createDocumentFromXml(getDuplicateReceiversWithDifferentHostNameForSendersXml());
+ XmlUtils.createDocumentFromXml(getDuplicateReceiversWithDifferentHostNameForSendersXml(),
+ ModuleService.DEFAULT);
System.out.println("Initial document:\n" + XmlUtils.prettyXml(document));
assertThat(document.getElementsByTagName("gateway-receiver").getLength()).isEqualTo(2);
service.removeInvalidGatewayReceivers(document);
@@ -229,7 +231,8 @@ public class InternalConfigurationPersistenceServiceTest {
@Test
public void removeInvalidGatewayReceiversWithDifferentBindAddresses() throws Exception {
Document document =
- XmlUtils.createDocumentFromXml(getDuplicateReceiversWithDifferentBindAddressesXml());
+ XmlUtils.createDocumentFromXml(getDuplicateReceiversWithDifferentBindAddressesXml(),
+ ModuleService.DEFAULT);
System.out.println("Initial document:\n" + XmlUtils.prettyXml(document));
assertThat(document.getElementsByTagName("gateway-receiver").getLength()).isEqualTo(2);
service.removeInvalidGatewayReceivers(document);
@@ -240,7 +243,8 @@ public class InternalConfigurationPersistenceServiceTest {
@Test
public void keepValidGatewayReceiversWithDefaultBindAddress() throws Exception {
Document document =
- XmlUtils.createDocumentFromXml(getSingleReceiverWithDefaultBindAddressXml());
+ XmlUtils.createDocumentFromXml(getSingleReceiverWithDefaultBindAddressXml(),
+ ModuleService.DEFAULT);
System.out.println("Initial document:\n" + XmlUtils.prettyXml(document));
assertThat(document.getElementsByTagName("gateway-receiver").getLength()).isEqualTo(1);
service.removeInvalidGatewayReceivers(document);
@@ -255,7 +259,8 @@ public class InternalConfigurationPersistenceServiceTest {
Region<String, Configuration> configurationRegion = mock(Region.class);
configuration.setCacheXmlContent(xml);
System.out.println("Initial xml content:\n" + configuration.getCacheXmlContent());
- Document document = XmlUtils.createDocumentFromXml(configuration.getCacheXmlContent());
+ Document document =
+ XmlUtils.createDocumentFromXml(configuration.getCacheXmlContent(), ModuleService.DEFAULT);
assertThat(document.getElementsByTagName("gateway-receiver").getLength())
.isEqualTo(expectedInitialElements);
Set<Map.Entry<String, Configuration>> configurationEntries = new HashSet<>();
@@ -263,7 +268,8 @@ public class InternalConfigurationPersistenceServiceTest {
doReturn(configurationEntries).when(configurationRegion).entrySet();
service.removeInvalidXmlConfigurations(configurationRegion);
System.out.println("Processed xml content:\n" + configuration.getCacheXmlContent());
- document = XmlUtils.createDocumentFromXml(configuration.getCacheXmlContent());
+ document =
+ XmlUtils.createDocumentFromXml(configuration.getCacheXmlContent(), ModuleService.DEFAULT);
assertThat(document.getElementsByTagName("gateway-receiver").getLength())
.isEqualTo(expectFinalElements);
}
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/configuration/domain/CacheElementJUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/configuration/domain/CacheElementJUnitTest.java
index 330c189..6ff51f8 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/configuration/domain/CacheElementJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/configuration/domain/CacheElementJUnitTest.java
@@ -52,7 +52,7 @@ public class CacheElementJUnitTest {
final XMLReader xmlReader = XMLReaderFactory.createXMLReader();
xmlReader.setEntityResolver(entityResolver);
- return XmlUtils.getDocumentBuilder()
+ return XmlUtils.getDocumentBuilder(ModuleService.DEFAULT)
.parse(entityResolver.resolveEntity(null, schemaLocation).getByteStream());
}
@@ -101,7 +101,8 @@ public class CacheElementJUnitTest {
@Test
public void testBuildElementMap() throws Exception {
final Document doc = XmlUtils.createDocumentFromReader(
- new InputStreamReader(this.getClass().getResourceAsStream("CacheElementJUnitTest.xml")));
+ new InputStreamReader(this.getClass().getResourceAsStream("CacheElementJUnitTest.xml")),
+ ModuleService.DEFAULT);
final LinkedHashMap<String, CacheElement> elementMap =
CacheElement.buildElementMap(doc, ModuleService.DEFAULT);
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/configuration/domain/ConfigurationTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/configuration/domain/ConfigurationTest.java
index 23b1f7d..aed6866 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/configuration/domain/ConfigurationTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/configuration/domain/ConfigurationTest.java
@@ -34,6 +34,7 @@ import org.junit.rules.TemporaryFolder;
import org.apache.geode.DataSerializer;
import org.apache.geode.management.configuration.Deployment;
+import org.apache.geode.services.module.ModuleService;
public class ConfigurationTest {
@@ -51,7 +52,8 @@ public class ConfigurationTest {
public void setInvalidCacheXmlFile() throws IOException {
File file = folder.newFile("test.xml");
FileUtils.writeStringToFile(file, "invalid xml content", "UTF-8");
- assertThatThrownBy(() -> configuration.setCacheXmlFile(file)).isInstanceOf(IOException.class)
+ assertThatThrownBy(() -> configuration.setCacheXmlFile(file, ModuleService.DEFAULT))
+ .isInstanceOf(IOException.class)
.hasMessageContaining("Unable to parse");
}
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/configuration/utils/XmlUtilsJUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/configuration/utils/XmlUtilsJUnitTest.java
index 77576fa..23c5718 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/configuration/utils/XmlUtilsJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/configuration/utils/XmlUtilsJUnitTest.java
@@ -42,10 +42,11 @@ import org.w3c.dom.NodeList;
import org.apache.geode.internal.cache.xmlcache.CacheXml;
import org.apache.geode.management.internal.configuration.domain.XmlEntity;
import org.apache.geode.management.internal.configuration.utils.XmlUtils.XPathContext;
+import org.apache.geode.services.module.ModuleService;
/**
* Unit tests for {@link XmlUtils}. See Also {@link XmlUtilsAddNewNodeJUnitTest} for tests related
- * to {@link XmlUtils#addNewNode(Document, XmlEntity)}
+ * to {@link XmlUtils#addNewNode(Document, XmlEntity, ModuleService)}
*
* @since GemFire 8.1
*/
@@ -62,7 +63,8 @@ public class XmlUtilsJUnitTest {
@Test
public void testBuildSchemaLocationMapAttribute() throws Exception {
final Document doc = XmlUtils.createDocumentFromReader(new InputStreamReader(getClass()
- .getResourceAsStream("XmlUtilsJUnitTest.testBuildSchemaLocationMapAttribute.xml")));
+ .getResourceAsStream("XmlUtilsJUnitTest.testBuildSchemaLocationMapAttribute.xml")),
+ ModuleService.DEFAULT);
final String schemaLocationAttribute = XmlUtils.getAttribute(doc.getDocumentElement(),
W3C_XML_SCHEMA_INSTANCE_ATTRIBUTE_SCHEMA_LOCATION, W3C_XML_SCHEMA_INSTANCE_NS_URI);
final Map<String, String> schemaLocationMap =
@@ -88,7 +90,8 @@ public class XmlUtilsJUnitTest {
@Test
public void testBuildSchemaLocationMapNullAttribute() throws Exception {
final Document doc = XmlUtils.createDocumentFromReader(new InputStreamReader(getClass()
- .getResourceAsStream("XmlUtilsJUnitTest.testBuildSchemaLocationMapNullAttribute.xml")));
+ .getResourceAsStream("XmlUtilsJUnitTest.testBuildSchemaLocationMapNullAttribute.xml")),
+ ModuleService.DEFAULT);
final String schemaLocationAttribute = XmlUtils.getAttribute(doc.getDocumentElement(),
W3C_XML_SCHEMA_INSTANCE_ATTRIBUTE_SCHEMA_LOCATION, W3C_XML_SCHEMA_INSTANCE_NS_URI);
assertNull(schemaLocationAttribute);
@@ -103,7 +106,8 @@ public class XmlUtilsJUnitTest {
@Test
public void testBuildSchemaLocationMapEmptyAttribute() throws Exception {
final Document doc = XmlUtils.createDocumentFromReader(new InputStreamReader(getClass()
- .getResourceAsStream("XmlUtilsJUnitTest.testBuildSchemaLocationMapEmptyAttribute.xml")));
+ .getResourceAsStream("XmlUtilsJUnitTest.testBuildSchemaLocationMapEmptyAttribute.xml")),
+ ModuleService.DEFAULT);
final String schemaLocationAttribute = XmlUtils.getAttribute(doc.getDocumentElement(),
W3C_XML_SCHEMA_INSTANCE_ATTRIBUTE_SCHEMA_LOCATION, W3C_XML_SCHEMA_INSTANCE_NS_URI);
assertNotNull(schemaLocationAttribute);
@@ -115,7 +119,8 @@ public class XmlUtilsJUnitTest {
@Test
public void testQuerySingleElement() throws Exception {
final Document doc = XmlUtils.createDocumentFromReader(new InputStreamReader(
- getClass().getResourceAsStream("XmlUtilsJUnitTest.testQuerySingleElement.xml")));
+ getClass().getResourceAsStream("XmlUtilsJUnitTest.testQuerySingleElement.xml")),
+ ModuleService.DEFAULT);
final Element root = doc.getDocumentElement();
final String cacheNamespace = "http://geode.apache.org/schema/cache";
final XPathContext cacheXPathContext = new XPathContext("cache", cacheNamespace);
@@ -159,7 +164,7 @@ public class XmlUtilsJUnitTest {
*/
@Test
public void testChangeNamespaceWithNoRootNamespace() throws Exception {
- Document doc = XmlUtils.getDocumentBuilder().newDocument();
+ Document doc = XmlUtils.getDocumentBuilder(ModuleService.DEFAULT).newDocument();
Element root = doc.createElement("root");
root = (Element) doc.appendChild(root);
final Element child = doc.createElement("child");
@@ -183,7 +188,7 @@ public class XmlUtilsJUnitTest {
@Test
public void testChangeNamespaceWithExistingRootNamespace() throws Exception {
- Document doc = XmlUtils.getDocumentBuilder().newDocument();
+ Document doc = XmlUtils.getDocumentBuilder(ModuleService.DEFAULT).newDocument();
final String ns0 = "urn:namespace0";
Element root = doc.createElementNS(ns0, "root");
@@ -211,7 +216,8 @@ public class XmlUtilsJUnitTest {
@Test
public void testCreateAndUpgradeDocumentFromXml() throws Exception {
Document doc = XmlUtils.createAndUpgradeDocumentFromXml(IOUtils.toString(
- this.getClass().getResourceAsStream("SharedConfigurationJUnitTest.xml"), "UTF-8"));
+ this.getClass().getResourceAsStream("SharedConfigurationJUnitTest.xml"), "UTF-8"),
+ ModuleService.DEFAULT);
String schemaLocation = XmlUtils.getAttribute(doc.getDocumentElement(),
W3C_XML_SCHEMA_INSTANCE_ATTRIBUTE_SCHEMA_LOCATION, W3C_XML_SCHEMA_INSTANCE_NS_URI);
@@ -238,14 +244,15 @@ public class XmlUtilsJUnitTest {
@Test
public void testUpgradeSchemaFromGemfireNamespace() throws Exception {
- Document doc = XmlUtils.createDocumentFromXml(CLUSTER8_XML);
+ Document doc = XmlUtils.createDocumentFromXml(CLUSTER8_XML, ModuleService.DEFAULT);
Element oldRoot = doc.getDocumentElement();
assertThat(oldRoot.getAttribute(CacheXml.VERSION)).isEqualTo("8.1");
assertThat(oldRoot.getNamespaceURI()).isEqualTo(CacheXml.GEMFIRE_NAMESPACE);
assertThat(oldRoot.getAttribute("xsi:schemaLocation")).isEqualTo(GEMFIRE_SCHEMA_LOCATION);
String version = "1.0";
- doc = XmlUtils.upgradeSchema(doc, GEODE_NAMESPACE, LATEST_SCHEMA_LOCATION, version);
+ doc = XmlUtils.upgradeSchema(doc, GEODE_NAMESPACE, LATEST_SCHEMA_LOCATION, version,
+ ModuleService.DEFAULT);
Element root = doc.getDocumentElement();
@@ -260,10 +267,11 @@ public class XmlUtilsJUnitTest {
@Test
public void testUpgradeSchemaFromOtherInvaidNS() throws Exception {
String xml = "<cache version=\"8.1\" xmlns=\"http://test.org/cache\"></cache>";
- Document doc = XmlUtils.createDocumentFromXml(xml);
+ Document doc = XmlUtils.createDocumentFromXml(xml, ModuleService.DEFAULT);
String version = "1.0";
- doc = XmlUtils.upgradeSchema(doc, GEODE_NAMESPACE, LATEST_SCHEMA_LOCATION, version);
+ doc = XmlUtils.upgradeSchema(doc, GEODE_NAMESPACE, LATEST_SCHEMA_LOCATION, version,
+ ModuleService.DEFAULT);
Element root = doc.getDocumentElement();
assertThat(root.getNamespaceURI()).isEqualTo(GEODE_NAMESPACE);
@@ -274,13 +282,14 @@ public class XmlUtilsJUnitTest {
@Test
public void testUpgradeSchemaFromGemfireNamespaceWithNoLocation() throws Exception {
String xml = "<cache version=\"8.1\" xmlns=\"http://schema.pivotal.io/gemfire/cache\"></cache>";
- Document doc = XmlUtils.createDocumentFromXml(xml);
+ Document doc = XmlUtils.createDocumentFromXml(xml, ModuleService.DEFAULT);
Element oldRoot = doc.getDocumentElement();
assertThat(oldRoot.getAttribute(CacheXml.VERSION)).isEqualTo("8.1");
assertThat(oldRoot.getNamespaceURI()).isEqualTo(CacheXml.GEMFIRE_NAMESPACE);
String version = "1.0";
- doc = XmlUtils.upgradeSchema(doc, GEODE_NAMESPACE, LATEST_SCHEMA_LOCATION, version);
+ doc = XmlUtils.upgradeSchema(doc, GEODE_NAMESPACE, LATEST_SCHEMA_LOCATION, version,
+ ModuleService.DEFAULT);
Element root = doc.getDocumentElement();
assertThat(root.getNamespaceURI()).isEqualTo(GEODE_NAMESPACE);
@@ -294,12 +303,13 @@ public class XmlUtilsJUnitTest {
+ " <a:region name=\"one\">\n"
+ " <a:region-attributes scope=\"distributed-ack\" data-policy=\"replicate\"/>\n"
+ " </a:region>\n" + "</a:cache>";
- Document doc = XmlUtils.createDocumentFromXml(xml);
+ Document doc = XmlUtils.createDocumentFromXml(xml, ModuleService.DEFAULT);
Element oldRoot = doc.getDocumentElement();
assertThat(oldRoot.getNamespaceURI()).isEqualTo(CacheXml.GEMFIRE_NAMESPACE);
String version = "1.0";
- doc = XmlUtils.upgradeSchema(doc, GEODE_NAMESPACE, LATEST_SCHEMA_LOCATION, version);
+ doc = XmlUtils.upgradeSchema(doc, GEODE_NAMESPACE, LATEST_SCHEMA_LOCATION, version,
+ ModuleService.DEFAULT);
Element root = doc.getDocumentElement();
@@ -317,10 +327,11 @@ public class XmlUtilsJUnitTest {
+ " <a:region name=\"one\">\n"
+ " <a:region-attributes scope=\"distributed-ack\" data-policy=\"replicate\"/>\n"
+ " </a:region>\n" + "</a:cache>";
- Document doc = XmlUtils.createDocumentFromXml(xml);
+ Document doc = XmlUtils.createDocumentFromXml(xml, ModuleService.DEFAULT);
String schemaLocation2 = "http://geode.apache.org/schema/cache/cache-2.0.xsd";
String version = "2.0";
- doc = XmlUtils.upgradeSchema(doc, GEODE_NAMESPACE, schemaLocation2, version);
+ doc = XmlUtils.upgradeSchema(doc, GEODE_NAMESPACE, schemaLocation2, version,
+ ModuleService.DEFAULT);
Element root = doc.getDocumentElement();
@@ -335,14 +346,15 @@ public class XmlUtilsJUnitTest {
@Test
public void testUpgradeSchemaFromGeodeNamespace() throws Exception {
- Document doc = XmlUtils.createDocumentFromXml(CLUSTER9_XML);
+ Document doc = XmlUtils.createDocumentFromXml(CLUSTER9_XML, ModuleService.DEFAULT);
Element oldRoot = doc.getDocumentElement();
assertThat(oldRoot.getAttribute(CacheXml.VERSION)).isEqualTo("1.0");
assertThat(oldRoot.getNamespaceURI()).isEqualTo(GEODE_NAMESPACE);
assertThat(oldRoot.getAttribute("xsi:schemaLocation")).isEqualTo(GEODE_SCHEMA_LOCATION);
String version = "1.0";
- doc = XmlUtils.upgradeSchema(doc, GEODE_NAMESPACE, LATEST_SCHEMA_LOCATION, version);
+ doc = XmlUtils.upgradeSchema(doc, GEODE_NAMESPACE, LATEST_SCHEMA_LOCATION, version,
+ ModuleService.DEFAULT);
Element root = doc.getDocumentElement();
assertThat(root.getNamespaceURI()).isEqualTo(GEODE_NAMESPACE);
@@ -352,14 +364,15 @@ public class XmlUtilsJUnitTest {
@Test
public void testUpgradeSchemaFromGeodeNamespaceToAnotherVersion() throws Exception {
- Document doc = XmlUtils.createDocumentFromXml(CLUSTER9_XML);
+ Document doc = XmlUtils.createDocumentFromXml(CLUSTER9_XML, ModuleService.DEFAULT);
Element oldRoot = doc.getDocumentElement();
assertThat(oldRoot.getAttribute(CacheXml.VERSION)).isEqualTo("1.0");
assertThat(oldRoot.getNamespaceURI()).isEqualTo(GEODE_NAMESPACE);
assertThat(oldRoot.getAttribute("xsi:schemaLocation")).isEqualTo(GEODE_SCHEMA_LOCATION);
String schemaLocation2 = "http://geode.apache.org/schema/cache/cache-2.0.xsd";
- doc = XmlUtils.upgradeSchema(doc, GEODE_NAMESPACE, schemaLocation2, "2.0");
+ doc =
+ XmlUtils.upgradeSchema(doc, GEODE_NAMESPACE, schemaLocation2, "2.0", ModuleService.DEFAULT);
Element root = doc.getDocumentElement();
assertThat(root.getNamespaceURI()).isEqualTo(GEODE_NAMESPACE);
@@ -375,11 +388,12 @@ public class XmlUtilsJUnitTest {
+ " xmlns:aop=\"http://aop\"\n" + " version=\"8.1\"\n"
+ " xsi:schemaLocation=\"http://cache http://test.org/cache.xsd "
+ " http://aop http://test.org/aop.xsd\">\n" + "</cache>";
- Document doc = XmlUtils.createDocumentFromXml(xml);
+ Document doc = XmlUtils.createDocumentFromXml(xml, ModuleService.DEFAULT);
String version = "1.0";
String namespace = "http://geode.apache.org/schema/cache";
- doc = XmlUtils.upgradeSchema(doc, GEODE_NAMESPACE, LATEST_SCHEMA_LOCATION, "1.0");
+ doc = XmlUtils.upgradeSchema(doc, GEODE_NAMESPACE, LATEST_SCHEMA_LOCATION, "1.0",
+ ModuleService.DEFAULT);
Element root = doc.getDocumentElement();
diff --git a/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/AlterCompressorDUnitTest.java b/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/AlterCompressorDUnitTest.java
index f1d78a1..2de1775 100644
--- a/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/AlterCompressorDUnitTest.java
+++ b/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/AlterCompressorDUnitTest.java
@@ -38,6 +38,7 @@ import org.apache.geode.internal.cache.LocalRegion;
import org.apache.geode.internal.cache.RegionEntry;
import org.apache.geode.management.internal.configuration.domain.Configuration;
import org.apache.geode.management.internal.configuration.utils.XmlUtils;
+import org.apache.geode.services.module.ModuleService;
import org.apache.geode.test.dunit.rules.ClusterStartupRule;
import org.apache.geode.test.dunit.rules.MemberVM;
import org.apache.geode.test.junit.categories.CompressionTest;
@@ -193,7 +194,7 @@ public class AlterCompressorDUnitTest {
}
private static String addCompressor(String cacheXmlContent, String name) throws Exception {
- Document document = XmlUtils.createDocumentFromXml(cacheXmlContent);
+ Document document = XmlUtils.createDocumentFromXml(cacheXmlContent, ModuleService.DEFAULT);
NodeList nodeList = document.getElementsByTagName("region-attributes");
Node compressor = document.createElement("compressor");
Node classname = document.createElement("class-name");
diff --git a/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/CreateJndiBindingCommandDUnitTest.java b/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/CreateJndiBindingCommandDUnitTest.java
index 6622214..fe06fdb 100644
--- a/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/CreateJndiBindingCommandDUnitTest.java
+++ b/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/CreateJndiBindingCommandDUnitTest.java
@@ -31,6 +31,7 @@ import org.apache.geode.internal.jndi.JNDIInvoker;
import org.apache.geode.logging.internal.log4j.api.LogService;
import org.apache.geode.management.internal.configuration.domain.Configuration;
import org.apache.geode.management.internal.configuration.utils.XmlUtils;
+import org.apache.geode.services.module.ModuleService;
import org.apache.geode.test.dunit.IgnoredException;
import org.apache.geode.test.dunit.SerializableRunnableIF;
import org.apache.geode.test.dunit.rules.ClusterStartupRule;
@@ -81,7 +82,7 @@ public class CreateJndiBindingCommandDUnitTest {
Configuration configuration = ccService.getConfiguration("cluster");
String xmlContent = configuration.getCacheXmlContent();
- Document document = XmlUtils.createDocumentFromXml(xmlContent);
+ Document document = XmlUtils.createDocumentFromXml(xmlContent, ModuleService.DEFAULT);
NodeList jndiBindings = document.getElementsByTagName("jndi-binding");
assertThat(jndiBindings.getLength()).isEqualTo(1);
diff --git a/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/CreatePooledJndiBindingDUnitTest.java b/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/CreatePooledJndiBindingDUnitTest.java
index fe957f3..811f605 100644
--- a/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/CreatePooledJndiBindingDUnitTest.java
+++ b/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/CreatePooledJndiBindingDUnitTest.java
@@ -28,6 +28,7 @@ import org.apache.geode.distributed.internal.InternalConfigurationPersistenceSer
import org.apache.geode.internal.jndi.JNDIInvoker;
import org.apache.geode.management.internal.configuration.domain.Configuration;
import org.apache.geode.management.internal.configuration.utils.XmlUtils;
+import org.apache.geode.services.module.ModuleService;
import org.apache.geode.test.dunit.rules.ClusterStartupRule;
import org.apache.geode.test.dunit.rules.MemberVM;
import org.apache.geode.test.junit.categories.GfshTest;
@@ -74,7 +75,7 @@ public class CreatePooledJndiBindingDUnitTest {
Configuration configuration = ccService.getConfiguration("cluster");
String xmlContent = configuration.getCacheXmlContent();
- Document document = XmlUtils.createDocumentFromXml(xmlContent);
+ Document document = XmlUtils.createDocumentFromXml(xmlContent, ModuleService.DEFAULT);
NodeList jndiBindings = document.getElementsByTagName("jndi-binding");
assertThat(jndiBindings.getLength()).isEqualTo(1);
diff --git a/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/DestroyJndiBindingCommandDUnitTest.java b/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/DestroyJndiBindingCommandDUnitTest.java
index 9a351a8..85b17b7 100644
--- a/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/DestroyJndiBindingCommandDUnitTest.java
+++ b/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/DestroyJndiBindingCommandDUnitTest.java
@@ -29,6 +29,7 @@ import org.apache.geode.distributed.internal.InternalLocator;
import org.apache.geode.internal.jndi.JNDIInvoker;
import org.apache.geode.management.internal.configuration.domain.Configuration;
import org.apache.geode.management.internal.configuration.utils.XmlUtils;
+import org.apache.geode.services.module.ModuleService;
import org.apache.geode.test.dunit.rules.ClusterStartupRule;
import org.apache.geode.test.dunit.rules.MemberVM;
import org.apache.geode.test.junit.rules.GfshCommandRule;
@@ -78,7 +79,8 @@ public class DestroyJndiBindingCommandDUnitTest {
InternalConfigurationPersistenceService ccService =
internalLocator.getConfigurationPersistenceService();
Configuration configuration = ccService.getConfiguration("cluster");
- Document document = XmlUtils.createDocumentFromXml(configuration.getCacheXmlContent());
+ Document document =
+ XmlUtils.createDocumentFromXml(configuration.getCacheXmlContent(), ModuleService.DEFAULT);
NodeList jndiBindings = document.getElementsByTagName("jndi-binding");
assertThat(jndiBindings.getLength()).isEqualTo(0);
diff --git a/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/DestroySecondJndiBindingCommandDUnitTest.java b/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/DestroySecondJndiBindingCommandDUnitTest.java
index ba0a9a7..3560ab1 100644
--- a/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/DestroySecondJndiBindingCommandDUnitTest.java
+++ b/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/DestroySecondJndiBindingCommandDUnitTest.java
@@ -33,6 +33,7 @@ import org.apache.geode.distributed.internal.InternalConfigurationPersistenceSer
import org.apache.geode.internal.jndi.JNDIInvoker;
import org.apache.geode.management.internal.configuration.domain.Configuration;
import org.apache.geode.management.internal.configuration.utils.XmlUtils;
+import org.apache.geode.services.module.ModuleService;
import org.apache.geode.test.dunit.rules.ClusterStartupRule;
import org.apache.geode.test.dunit.rules.MemberVM;
import org.apache.geode.test.junit.categories.GfshTest;
@@ -84,7 +85,8 @@ public class DestroySecondJndiBindingCommandDUnitTest {
InternalConfigurationPersistenceService ccService =
ClusterStartupRule.getLocator().getConfigurationPersistenceService();
Configuration configuration = ccService.getConfiguration("cluster");
- Document document = XmlUtils.createDocumentFromXml(configuration.getCacheXmlContent());
+ Document document =
+ XmlUtils.createDocumentFromXml(configuration.getCacheXmlContent(), ModuleService.DEFAULT);
NodeList jndiBindings = document.getElementsByTagName("jndi-binding");
assertThat(jndiBindings.getLength()).isEqualTo(1);
diff --git a/geode-gfsh/src/main/java/org/apache/geode/management/cli/CommandService.java b/geode-gfsh/src/main/java/org/apache/geode/management/cli/CommandService.java
index 2fb1708..18eb274 100644
--- a/geode-gfsh/src/main/java/org/apache/geode/management/cli/CommandService.java
+++ b/geode-gfsh/src/main/java/org/apache/geode/management/cli/CommandService.java
@@ -24,6 +24,7 @@ import org.apache.geode.cache.CacheClosedException;
import org.apache.geode.internal.cache.InternalCache;
import org.apache.geode.management.DependenciesNotFoundException;
import org.apache.geode.management.internal.cli.CliUtil;
+import org.apache.geode.services.module.ModuleService;
/**
* Processes remote GemFire Command Line Interface (CLI) commands. Refer to the vFabric GemFire
@@ -113,7 +114,7 @@ public abstract class CommandService {
* @param cache Underlying <code>Cache</code> instance to be used to create a Command Service.
* @throws CommandServiceException If command service could not be initialized.
*/
- public static CommandService createLocalCommandService(Cache cache)
+ public static CommandService createLocalCommandService(Cache cache, ModuleService moduleService)
throws CommandServiceException {
if (cache == null) {
throw new CacheClosedException("Can not create command service as cache doesn't exist.");
@@ -133,7 +134,7 @@ public abstract class CommandService {
localCommandService =
new org.apache.geode.management.internal.cli.remote.MemberCommandService(
- (InternalCache) cache);
+ (InternalCache) cache, moduleService);
}
return localCommandService;
diff --git a/geode-gfsh/src/main/java/org/apache/geode/management/cli/GeodeCommandMarker.java b/geode-gfsh/src/main/java/org/apache/geode/management/cli/GeodeCommandMarker.java
new file mode 100644
index 0000000..89b7ed1
--- /dev/null
+++ b/geode-gfsh/src/main/java/org/apache/geode/management/cli/GeodeCommandMarker.java
@@ -0,0 +1,25 @@
+/*
+ * 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.management.cli;
+
+import org.springframework.shell.core.CommandMarker;
+
+import org.apache.geode.services.module.ModuleService;
+
+public interface GeodeCommandMarker extends CommandMarker {
+ void init(ModuleService moduleService);
+}
diff --git a/geode-gfsh/src/main/java/org/apache/geode/management/cli/GfshCommand.java b/geode-gfsh/src/main/java/org/apache/geode/management/cli/GfshCommand.java
index 239d505..2235f1c 100644
--- a/geode-gfsh/src/main/java/org/apache/geode/management/cli/GfshCommand.java
+++ b/geode-gfsh/src/main/java/org/apache/geode/management/cli/GfshCommand.java
@@ -21,7 +21,6 @@ import java.util.concurrent.TimeUnit;
import java.util.function.Supplier;
import org.apache.shiro.subject.Subject;
-import org.springframework.shell.core.CommandMarker;
import org.apache.geode.annotations.Experimental;
import org.apache.geode.cache.Cache;
@@ -42,12 +41,22 @@ import org.apache.geode.management.internal.functions.CliFunctionResult;
import org.apache.geode.management.internal.i18n.CliStrings;
import org.apache.geode.management.internal.util.ManagementUtils;
import org.apache.geode.security.ResourcePermission;
+import org.apache.geode.services.module.ModuleService;
@Experimental
-public abstract class GfshCommand implements CommandMarker {
+public abstract class GfshCommand implements GeodeCommandMarker {
public static final String EXPERIMENTAL = "(Experimental) ";
private InternalCache cache;
+ private ModuleService moduleService;
+ protected ModuleService getModuleService() {
+ return moduleService;
+ }
+
+ @Override
+ public void init(ModuleService moduleService) {
+ this.moduleService = moduleService;
+ }
public boolean isOnlineCommandAvailable() {
Gfsh gfsh = Gfsh.getCurrentInstance();
diff --git a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/CommandManager.java b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/CommandManager.java
index c5e6f61..b6f2d47 100644
--- a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/CommandManager.java
+++ b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/CommandManager.java
@@ -29,7 +29,6 @@ import java.util.Set;
import org.springframework.shell.converters.EnumConverter;
import org.springframework.shell.converters.SimpleFileConverter;
-import org.springframework.shell.core.CommandMarker;
import org.springframework.shell.core.Converter;
import org.springframework.shell.core.MethodTarget;
import org.springframework.shell.core.annotation.CliAvailabilityIndicator;
@@ -40,11 +39,13 @@ import org.apache.geode.distributed.ConfigurationProperties;
import org.apache.geode.internal.ClassPathLoader;
import org.apache.geode.internal.cache.InternalCache;
import org.apache.geode.management.cli.Disabled;
+import org.apache.geode.management.cli.GeodeCommandMarker;
import org.apache.geode.management.cli.GfshCommand;
import org.apache.geode.management.internal.cli.commands.VersionCommand;
import org.apache.geode.management.internal.cli.help.Helper;
import org.apache.geode.management.internal.cli.shell.Gfsh;
import org.apache.geode.management.internal.util.ClasspathScanLoadHelper;
+import org.apache.geode.services.module.ModuleService;
import org.apache.geode.util.internal.GeodeGlossary;
/**
@@ -62,7 +63,7 @@ public class CommandManager {
private final Helper helper = new Helper();
private final List<Converter<?>> converters = new ArrayList<>();
- private final List<CommandMarker> commandMarkers = new ArrayList<>();
+ private final List<GeodeCommandMarker> commandMarkers = new ArrayList<>();
private Properties cacheProperties;
private LogWrapper logWrapper;
@@ -72,21 +73,22 @@ public class CommandManager {
* this constructor is used from Gfsh VM. We are getting the user-command-package from system
* environment. used by Gfsh.
*/
- public CommandManager() {
- this(null, null);
+ public CommandManager(ModuleService moduleService) {
+ this(null, null, moduleService);
}
/**
* this is used when getting the instance in a cache server. We are getting the
* user-command-package from distribution properties. used by OnlineCommandProcessor.
*/
- public CommandManager(final Properties cacheProperties, InternalCache cache) {
+ public CommandManager(final Properties cacheProperties, InternalCache cache,
+ ModuleService moduleService) {
if (cacheProperties != null) {
this.cacheProperties = cacheProperties;
}
this.cache = cache;
logWrapper = LogWrapper.getInstance(cache);
- loadCommands();
+ loadCommands(moduleService);
}
private static void raiseExceptionIfEmpty(Set<Class<?>> foundClasses, String errorFor)
@@ -127,18 +129,22 @@ public class CommandManager {
return userCommandPackages;
}
- private void loadUserCommands(ClasspathScanLoadHelper scanner, Set<String> restrictedToPackages) {
+ private void loadUserCommands(ClasspathScanLoadHelper scanner, Set<String> restrictedToPackages,
+ ModuleService moduleService) {
if (restrictedToPackages.size() == 0) {
return;
}
// Load commands found in all of the packages
try {
- Set<Class<?>> foundClasses = scanner.scanPackagesForClassesImplementing(CommandMarker.class,
- restrictedToPackages.toArray(new String[] {}));
+ Set<Class<?>> foundClasses =
+ scanner.scanPackagesForClassesImplementing(GeodeCommandMarker.class,
+ restrictedToPackages.toArray(new String[] {}));
for (Class<?> klass : foundClasses) {
try {
- add((CommandMarker) klass.newInstance());
+ GeodeCommandMarker geodeCommandMarker = (GeodeCommandMarker) klass.newInstance();
+ geodeCommandMarker.init(moduleService);
+ add(geodeCommandMarker);
} catch (Exception e) {
logWrapper.warning("Could not load User Commands from: " + klass + " due to "
+ e.getLocalizedMessage()); // continue
@@ -156,14 +162,16 @@ public class CommandManager {
*
* @since GemFire 8.1
*/
- private void loadPluginCommands() {
- ServiceLoader<CommandMarker> loader =
- ServiceLoader.load(CommandMarker.class, ClassPathLoader.getLatest().asClassLoader());
- Iterator<CommandMarker> iterator = loader.iterator();
+ private void loadPluginCommands(ModuleService moduleService) {
+ ServiceLoader<GeodeCommandMarker> loader =
+ ServiceLoader.load(GeodeCommandMarker.class, ClassPathLoader.getLatest().asClassLoader());
+ Iterator<GeodeCommandMarker> iterator = loader.iterator();
try {
while (iterator.hasNext()) {
try {
- add(iterator.next());
+ GeodeCommandMarker geodeCommandMarker = iterator.next();
+ geodeCommandMarker.init(moduleService);
+ add(geodeCommandMarker);
} catch (Throwable t) {
logWrapper.warning("Could not load plugin command: " + t.getMessage());
}
@@ -173,7 +181,7 @@ public class CommandManager {
}
}
- private void loadCommands() {
+ private void loadCommands(ModuleService moduleService) {
Set<String> userCommandPackages = getUserCommandPackages();
Set<String> packagesToScan = new HashSet<>(userCommandPackages);
packagesToScan.add("org.apache.geode.management.internal.cli.converters");
@@ -183,9 +191,9 @@ public class CommandManager {
// Create one scanner to be used everywhere
try (ClasspathScanLoadHelper scanner = new ClasspathScanLoadHelper(packagesToScan)) {
- loadUserCommands(scanner, userCommandPackages);
- loadPluginCommands();
- loadGeodeCommands(scanner);
+ loadUserCommands(scanner, userCommandPackages, moduleService);
+ loadPluginCommands(moduleService);
+ loadGeodeCommands(scanner, moduleService);
loadConverters(scanner);
}
}
@@ -228,18 +236,21 @@ public class CommandManager {
}
}
- private void loadGeodeCommands(ClasspathScanLoadHelper scanner) {
+ private void loadGeodeCommands(ClasspathScanLoadHelper scanner, ModuleService moduleService) {
// CommandMarkers
Set<Class<?>> foundClasses;
try {
// geode's commands
- foundClasses = scanner.scanPackagesForClassesImplementing(CommandMarker.class,
+ foundClasses = scanner.scanPackagesForClassesImplementing(GeodeCommandMarker.class,
GfshCommand.class.getPackage().getName(),
VersionCommand.class.getPackage().getName());
for (Class<?> klass : foundClasses) {
try {
- add((CommandMarker) klass.newInstance());
+ GeodeCommandMarker geodeCommandMarker = (GeodeCommandMarker) klass.newInstance();
+ geodeCommandMarker.init(moduleService);
+
+ add(geodeCommandMarker);
} catch (Exception e) {
logWrapper.warning(
"Could not load Command from: " + klass + " due to " + e.getLocalizedMessage()); // continue
@@ -268,7 +279,7 @@ public class CommandManager {
return converters;
}
- public List<CommandMarker> getCommandMarkers() {
+ public List<GeodeCommandMarker> getCommandMarkers() {
return commandMarkers;
}
@@ -285,7 +296,7 @@ public class CommandManager {
/**
* Method to add new Commands to the parser
*/
- void add(CommandMarker commandMarker) {
+ void add(GeodeCommandMarker commandMarker) {
Disabled classDisabled = commandMarker.getClass().getAnnotation(Disabled.class);
if (classDisabled != null && (classDisabled.unlessPropertyIsSet().isEmpty()
|| System.getProperty(classDisabled.unlessPropertyIsSet()) == null)) {
diff --git a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/GfshParser.java b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/GfshParser.java
index eed2695..7dc8a33 100755
--- a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/GfshParser.java
+++ b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/GfshParser.java
@@ -21,7 +21,6 @@ import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.springframework.shell.converters.ArrayConverter;
-import org.springframework.shell.core.CommandMarker;
import org.springframework.shell.core.Completion;
import org.springframework.shell.core.Converter;
import org.springframework.shell.core.Parser;
@@ -29,6 +28,7 @@ import org.springframework.shell.core.SimpleParser;
import org.springframework.shell.event.ParseResult;
import org.apache.geode.management.cli.ConverterHint;
+import org.apache.geode.management.cli.GeodeCommandMarker;
import org.apache.geode.management.internal.i18n.CliStrings;
/**
@@ -55,7 +55,7 @@ public class GfshParser extends SimpleParser {
public GfshParser(CommandManager commandManager) {
this.commandManager = commandManager;
- for (CommandMarker command : commandManager.getCommandMarkers()) {
+ for (GeodeCommandMarker command : commandManager.getCommandMarkers()) {
add(command);
}
diff --git a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/commands/AlterRuntimeConfigCommand.java b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/commands/AlterRuntimeConfigCommand.java
index 578683b..7ee733d 100644
--- a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/commands/AlterRuntimeConfigCommand.java
+++ b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/commands/AlterRuntimeConfigCommand.java
@@ -221,7 +221,7 @@ public class AlterRuntimeConfigCommand extends GfshCommand {
successInfo.addLine(successMessageBuilder.toString());
// Set the Cache attributes to be modified
final XmlEntity xmlEntity = XmlEntity.builder().withType(CacheXml.CACHE)
- .withAttributes(rumTimeCacheAttributes).build();
+ .withAttributes(rumTimeCacheAttributes).build(getModuleService());
InternalConfigurationPersistenceService cps = getConfigurationPersistenceService();
if (cps == null) {
successInfo.addLine(CommandExecutor.SERVICE_NOT_RUNNING_CHANGE_NOT_PERSISTED);
diff --git a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/commands/CreateRegionCommand.java b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/commands/CreateRegionCommand.java
index fdb8f0b..b02f4bc 100644
--- a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/commands/CreateRegionCommand.java
+++ b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/commands/CreateRegionCommand.java
@@ -249,7 +249,8 @@ public class CreateRegionCommand extends SingleGfshCommand {
if (!regionAssociatedMembers.isEmpty()) {
List<CliFunctionResult> regionXmlResults = executeAndGetFunctionResult(
- FetchRegionAttributesFunction.INSTANCE, templateRegion, regionAssociatedMembers);
+ new FetchRegionAttributesFunction(getModuleService()), templateRegion,
+ regionAssociatedMembers);
JAXBService jaxbService = new JAXBService(CacheConfig.class);
templateRegionConfigs = regionXmlResults.stream().filter(CliFunctionResult::isSuccessful)
@@ -492,7 +493,7 @@ public class CreateRegionCommand extends SingleGfshCommand {
new CreateRegionFunctionArgs(regionPath, regionConfig, ifNotExists);
List<CliFunctionResult> regionCreateResults = executeAndGetFunctionResult(
- RegionCreateFunction.INSTANCE, functionArgs, membersToCreateRegionOn);
+ new RegionCreateFunction(getModuleService()), functionArgs, membersToCreateRegionOn);
ResultModel resultModel = ResultModel.createMemberStatusResult(regionCreateResults);
InternalConfigurationPersistenceService service = getConfigurationPersistenceService();
diff --git a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/commands/DestroyAsyncEventQueueCommand.java b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/commands/DestroyAsyncEventQueueCommand.java
index baf01a2..c40816a 100644
--- a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/commands/DestroyAsyncEventQueueCommand.java
+++ b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/commands/DestroyAsyncEventQueueCommand.java
@@ -68,7 +68,8 @@ public class DestroyAsyncEventQueueCommand extends GfshCommand {
Set<DistributedMember> members = getMembers(onGroups, null);
List<CliFunctionResult> functionResults = executeAndGetFunctionResult(
- new DestroyAsyncEventQueueFunction(), asyncEventQueueDestoryFunctionArgs, members);
+ new DestroyAsyncEventQueueFunction(getModuleService()), asyncEventQueueDestoryFunctionArgs,
+ members);
ResultModel result = ResultModel.createMemberStatusResult(functionResults);
XmlEntity xmlEntity = getXmlEntity(functionResults);
diff --git a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/commands/DestroyDiskStoreCommand.java b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/commands/DestroyDiskStoreCommand.java
index 9c82b41..9067788 100644
--- a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/commands/DestroyDiskStoreCommand.java
+++ b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/commands/DestroyDiskStoreCommand.java
@@ -58,7 +58,8 @@ public class DestroyDiskStoreCommand extends SingleGfshCommand {
DestroyDiskStoreFunctionArgs functionArgs = new DestroyDiskStoreFunctionArgs(name, ifExist);
List<CliFunctionResult> results =
- executeAndGetFunctionResult(new DestroyDiskStoreFunction(), functionArgs, targetMembers);
+ executeAndGetFunctionResult(new DestroyDiskStoreFunction(getModuleService()), functionArgs,
+ targetMembers);
ResultModel result = ResultModel.createMemberStatusResult(results, ifExist);
result.setConfigObject(name);
diff --git a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/commands/DestroyGatewaySenderCommand.java b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/commands/DestroyGatewaySenderCommand.java
index b213026..8f763f1 100644
--- a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/commands/DestroyGatewaySenderCommand.java
+++ b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/commands/DestroyGatewaySenderCommand.java
@@ -67,7 +67,8 @@ public class DestroyGatewaySenderCommand extends SingleGfshCommand {
Set<DistributedMember> members = getMembers(onGroups, onMember);
List<CliFunctionResult> functionResults = executeAndGetFunctionResult(
- GatewaySenderDestroyFunction.INSTANCE, gatewaySenderDestroyFunctionArgs, members);
+ new GatewaySenderDestroyFunction(getModuleService()), gatewaySenderDestroyFunctionArgs,
+ members);
ResultModel resultModel = ResultModel.createMemberStatusResult(functionResults);
resultModel.setConfigObject(id);
diff --git a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/commands/DestroyRegionCommand.java b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/commands/DestroyRegionCommand.java
index d3c0084..29d4e52 100644
--- a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/commands/DestroyRegionCommand.java
+++ b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/commands/DestroyRegionCommand.java
@@ -75,7 +75,8 @@ public class DestroyRegionCommand extends GfshCommand {
// deem the destroy action successful, since if one member destroy successfully, the subsequent
// destroy on a another member would probably throw RegionDestroyedException
List<CliFunctionResult> resultsList =
- executeAndGetFunctionResult(RegionDestroyFunction.INSTANCE, regionPath, regionMembersList);
+ executeAndGetFunctionResult(new RegionDestroyFunction(getModuleService()), regionPath,
+ regionMembersList);
ResultModel result = ResultModel.createMemberStatusResult(resultsList);
diff --git a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/commands/ImportClusterConfigurationCommand.java b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/commands/ImportClusterConfigurationCommand.java
index d686cbc..84d7cd6 100644
--- a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/commands/ImportClusterConfigurationCommand.java
+++ b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/commands/ImportClusterConfigurationCommand.java
@@ -137,7 +137,7 @@ public class ImportClusterConfigurationCommand extends GfshCommand {
if (configuration == null) {
configuration = new Configuration(group);
}
- configuration.setCacheXmlFile(file);
+ configuration.setCacheXmlFile(file, getModuleService());
ccService.setConfiguration(group, configuration);
logger.info(
configuration.getConfigName() + "xml content: \n" + configuration.getCacheXmlContent());
diff --git a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/commands/OfflineGfshCommand.java b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/commands/OfflineGfshCommand.java
index e3a5e24..e6bc5a9 100644
--- a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/commands/OfflineGfshCommand.java
+++ b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/commands/OfflineGfshCommand.java
@@ -24,15 +24,26 @@ import java.util.Properties;
import javax.management.remote.JMXServiceURL;
-import org.springframework.shell.core.CommandMarker;
-
+import org.apache.geode.management.cli.GeodeCommandMarker;
import org.apache.geode.management.internal.cli.CliUtil;
import org.apache.geode.management.internal.cli.shell.Gfsh;
import org.apache.geode.management.internal.cli.shell.JmxOperationInvoker;
import org.apache.geode.management.internal.cli.shell.OperationInvoker;
import org.apache.geode.management.internal.i18n.CliStrings;
+import org.apache.geode.services.module.ModuleService;
+
+public abstract class OfflineGfshCommand implements GeodeCommandMarker {
+
+ private ModuleService moduleService;
-public abstract class OfflineGfshCommand implements CommandMarker {
+ protected ModuleService getModuleService() {
+ return moduleService;
+ }
+
+ @Override
+ public void init(ModuleService moduleService) {
+ this.moduleService = moduleService;
+ }
public boolean isDebugging() {
return getGfsh() != null && getGfsh().getDebug();
diff --git a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/functions/DestroyAsyncEventQueueFunction.java b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/functions/DestroyAsyncEventQueueFunction.java
index 2789a47..a5d960a 100644
--- a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/functions/DestroyAsyncEventQueueFunction.java
+++ b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/functions/DestroyAsyncEventQueueFunction.java
@@ -21,6 +21,7 @@ import org.apache.geode.internal.cache.xmlcache.CacheXml;
import org.apache.geode.management.internal.cli.commands.DestroyAsyncEventQueueCommand;
import org.apache.geode.management.internal.configuration.domain.XmlEntity;
import org.apache.geode.management.internal.functions.CliFunctionResult;
+import org.apache.geode.services.module.ModuleService;
/**
* Function used by the 'destroy async-event-queue' gfsh command to destroy an asynchronous event
@@ -31,6 +32,12 @@ public class DestroyAsyncEventQueueFunction
private static final long serialVersionUID = -7754359270344102817L;
+ private final ModuleService moduleService;
+
+ public DestroyAsyncEventQueueFunction(ModuleService moduleService) {
+ this.moduleService = moduleService;
+ }
+
@Override
public void execute(FunctionContext<DestroyAsyncEventQueueFunctionArgs> context) {
DestroyAsyncEventQueueFunctionArgs aeqArgs =
@@ -54,7 +61,7 @@ public class DestroyAsyncEventQueueFunction
}
} else {
// this is the XmlEntity that needs to be removed from the cluster config
- XmlEntity xmlEntity = getAEQXmlEntity("id", aeqId);
+ XmlEntity xmlEntity = getAEQXmlEntity("id", aeqId, moduleService);
aeq.stop();
aeq.destroy();
@@ -71,8 +78,8 @@ public class DestroyAsyncEventQueueFunction
}
}
- XmlEntity getAEQXmlEntity(String key, String value) {
- return new XmlEntity(CacheXml.ASYNC_EVENT_QUEUE, key, value);
+ XmlEntity getAEQXmlEntity(String key, String value, ModuleService moduleService) {
+ return new XmlEntity(CacheXml.ASYNC_EVENT_QUEUE, key, value, moduleService);
}
@Override
diff --git a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/functions/DestroyDiskStoreFunction.java b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/functions/DestroyDiskStoreFunction.java
index f73b95d..24fb74d 100644
--- a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/functions/DestroyDiskStoreFunction.java
+++ b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/functions/DestroyDiskStoreFunction.java
@@ -23,6 +23,7 @@ import org.apache.geode.internal.cache.execute.InternalFunction;
import org.apache.geode.internal.cache.xmlcache.CacheXml;
import org.apache.geode.management.internal.configuration.domain.XmlEntity;
import org.apache.geode.management.internal.functions.CliFunctionResult;
+import org.apache.geode.services.module.ModuleService;
/**
* Function used by the 'destroy disk-store' gfsh command to destroy a disk store on each member.
@@ -32,6 +33,12 @@ import org.apache.geode.management.internal.functions.CliFunctionResult;
public class DestroyDiskStoreFunction implements InternalFunction<DestroyDiskStoreFunctionArgs> {
private static final long serialVersionUID = 1L;
+ private final ModuleService moduleService;
+
+ public DestroyDiskStoreFunction(ModuleService moduleService) {
+ this.moduleService = moduleService;
+ }
+
@Override
@SuppressWarnings("deprecation")
public void execute(FunctionContext<DestroyDiskStoreFunctionArgs> context) {
@@ -55,7 +62,8 @@ public class DestroyDiskStoreFunction implements InternalFunction<DestroyDiskSto
CliFunctionResult result;
try {
if (diskStore != null) {
- XmlEntity xmlEntity = new XmlEntity(CacheXml.DISK_STORE, "name", args.getId());
+ XmlEntity xmlEntity =
+ new XmlEntity(CacheXml.DISK_STORE, "name", args.getId(), moduleService);
diskStore.destroy();
result = new CliFunctionResult(memberId, xmlEntity, "Success");
} else {
diff --git a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/functions/FetchRegionAttributesFunction.java b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/functions/FetchRegionAttributesFunction.java
index 2c44255..2209007 100644
--- a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/functions/FetchRegionAttributesFunction.java
+++ b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/functions/FetchRegionAttributesFunction.java
@@ -16,7 +16,6 @@ package org.apache.geode.management.internal.cli.functions;
import org.apache.logging.log4j.Logger;
-import org.apache.geode.annotations.Immutable;
import org.apache.geode.cache.execute.FunctionContext;
import org.apache.geode.internal.cache.xmlcache.CacheXml;
import org.apache.geode.logging.internal.log4j.api.LogService;
@@ -24,6 +23,7 @@ import org.apache.geode.management.cli.CliFunction;
import org.apache.geode.management.internal.configuration.domain.XmlEntity;
import org.apache.geode.management.internal.functions.CliFunctionResult;
import org.apache.geode.management.internal.i18n.CliStrings;
+import org.apache.geode.services.module.ModuleService;
/**
*
@@ -36,8 +36,11 @@ public class FetchRegionAttributesFunction extends CliFunction<String> {
private static final String ID = FetchRegionAttributesFunction.class.getName();
- @Immutable
- public static final FetchRegionAttributesFunction INSTANCE = new FetchRegionAttributesFunction();
+ private final ModuleService moduleService;
+
+ public FetchRegionAttributesFunction(ModuleService moduleService) {
+ this.moduleService = moduleService;
+ }
@Override
public boolean isHA() {
@@ -54,7 +57,8 @@ public class FetchRegionAttributesFunction extends CliFunction<String> {
throw new IllegalArgumentException(
CliStrings.CREATE_REGION__MSG__SPECIFY_VALID_REGION_PATH);
}
- XmlEntity xmlEntity = new XmlEntity(CacheXml.REGION, "name", regionPath.substring(1));
+ XmlEntity xmlEntity =
+ new XmlEntity(CacheXml.REGION, "name", regionPath.substring(1), moduleService);
return new CliFunctionResult(context.getMemberName(), xmlEntity.getXmlDefinition());
}
diff --git a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/functions/GatewaySenderDestroyFunction.java b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/functions/GatewaySenderDestroyFunction.java
index 30b87df..c4b8429 100644
--- a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/functions/GatewaySenderDestroyFunction.java
+++ b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/functions/GatewaySenderDestroyFunction.java
@@ -14,7 +14,6 @@
*/
package org.apache.geode.management.internal.cli.functions;
-import org.apache.geode.annotations.Immutable;
import org.apache.geode.cache.Cache;
import org.apache.geode.cache.execute.FunctionContext;
import org.apache.geode.cache.execute.ResultSender;
@@ -24,13 +23,18 @@ import org.apache.geode.internal.cache.xmlcache.CacheXml;
import org.apache.geode.management.internal.cli.CliUtil;
import org.apache.geode.management.internal.configuration.domain.XmlEntity;
import org.apache.geode.management.internal.functions.CliFunctionResult;
+import org.apache.geode.services.module.ModuleService;
public class GatewaySenderDestroyFunction
implements InternalFunction<GatewaySenderDestroyFunctionArgs> {
private static final long serialVersionUID = 1L;
private static final String ID = GatewaySenderDestroyFunction.class.getName();
- @Immutable
- public static final GatewaySenderDestroyFunction INSTANCE = new GatewaySenderDestroyFunction();
+
+ private final ModuleService moduleService;
+
+ public GatewaySenderDestroyFunction(ModuleService moduleService) {
+ this.moduleService = moduleService;
+ }
@Override
@SuppressWarnings("deprecation")
@@ -61,7 +65,8 @@ public class GatewaySenderDestroyFunction
try {
gatewaySender.stop();
gatewaySender.destroy();
- XmlEntity xmlEntity = new XmlEntity(CacheXml.GATEWAY_SENDER, "id", senderId);
+ XmlEntity xmlEntity =
+ new XmlEntity(CacheXml.GATEWAY_SENDER, "id", senderId, moduleService);
resultSender.lastResult(new CliFunctionResult(memberNameOrId, xmlEntity,
String.format("GatewaySender \"%s\" destroyed on \"%s\"", senderId, memberNameOrId)));
} catch (Exception e) {
diff --git a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/functions/RegionCreateFunction.java b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/functions/RegionCreateFunction.java
index ae89639..b865d48 100644
--- a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/functions/RegionCreateFunction.java
+++ b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/functions/RegionCreateFunction.java
@@ -32,6 +32,7 @@ import org.apache.geode.management.internal.configuration.realizers.RegionConfig
import org.apache.geode.management.internal.functions.CliFunctionResult;
import org.apache.geode.management.internal.i18n.CliStrings;
import org.apache.geode.management.internal.util.RegionPath;
+import org.apache.geode.services.module.ModuleService;
/**
*
@@ -47,11 +48,14 @@ public class RegionCreateFunction implements InternalFunction {
private static final String ID = RegionCreateFunction.class.getName();
@Immutable
- public static final RegionCreateFunction INSTANCE = new RegionCreateFunction();
-
- @Immutable
private static final RegionConfigRealizer realizer = new RegionConfigRealizer();
+ private final ModuleService moduleService;
+
+ public RegionCreateFunction(ModuleService moduleService) {
+ this.moduleService = moduleService;
+ }
+
@Override
public boolean isHA() {
return false;
@@ -71,7 +75,9 @@ public class RegionCreateFunction implements InternalFunction {
try {
RegionPath regionPath = new RegionPath(regionCreateArgs.getRegionPath());
getRealizer().create(regionCreateArgs.getConfig(), regionCreateArgs.getRegionPath(), cache);
- XmlEntity xmlEntity = new XmlEntity(CacheXml.REGION, "name", regionPath.getRootRegionName());
+ XmlEntity xmlEntity =
+ new XmlEntity(CacheXml.REGION, "name", regionPath.getRootRegionName(),
+ moduleService);
resultSender.lastResult(new CliFunctionResult(memberNameOrId, xmlEntity.getXmlDefinition(),
CliStrings.format(CliStrings.CREATE_REGION__MSG__REGION_0_CREATED_ON_1,
regionCreateArgs.getRegionPath(), memberNameOrId)));
diff --git a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/functions/RegionDestroyFunction.java b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/functions/RegionDestroyFunction.java
index 7c419cb..de54b5f 100644
--- a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/functions/RegionDestroyFunction.java
+++ b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/functions/RegionDestroyFunction.java
@@ -16,7 +16,6 @@ package org.apache.geode.management.internal.cli.functions;
import static org.apache.geode.cache.Region.SEPARATOR;
-import org.apache.geode.annotations.Immutable;
import org.apache.geode.cache.Cache;
import org.apache.geode.cache.Region;
import org.apache.geode.cache.RegionDestroyedException;
@@ -27,6 +26,7 @@ import org.apache.geode.internal.cache.xmlcache.CacheXml;
import org.apache.geode.logging.internal.log4j.api.LogService;
import org.apache.geode.management.internal.configuration.domain.XmlEntity;
import org.apache.geode.management.internal.functions.CliFunctionResult;
+import org.apache.geode.services.module.ModuleService;
/**
*
@@ -35,11 +35,14 @@ import org.apache.geode.management.internal.functions.CliFunctionResult;
public class RegionDestroyFunction implements InternalFunction<String> {
private static final long serialVersionUID = 9172773671865750685L;
- @Immutable
- public static final RegionDestroyFunction INSTANCE = new RegionDestroyFunction();
-
private static final String ID = RegionDestroyFunction.class.getName();
+ private final ModuleService moduleService;
+
+ public RegionDestroyFunction(ModuleService moduleService) {
+ this.moduleService = moduleService;
+ }
+
@Override
public boolean hasResult() {
return true;
@@ -73,7 +76,8 @@ public class RegionDestroyFunction implements InternalFunction<String> {
String regionName =
regionPath.startsWith(SEPARATOR) ? regionPath.substring(1) : regionPath;
- XmlEntity xmlEntity = new XmlEntity(CacheXml.REGION, "name", regionName);
+ XmlEntity xmlEntity =
+ new XmlEntity(CacheXml.REGION, "name", regionName, moduleService);
context.getResultSender().lastResult(new CliFunctionResult(memberName, xmlEntity,
String.format("Region '%s' destroyed successfully", regionPath)));
diff --git a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/remote/MemberCommandService.java b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/remote/MemberCommandService.java
index cb4f7ac..8e0f00a 100644
--- a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/remote/MemberCommandService.java
+++ b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/remote/MemberCommandService.java
@@ -22,6 +22,7 @@ import org.apache.geode.management.cli.CommandServiceException;
import org.apache.geode.management.cli.Result;
import org.apache.geode.management.internal.cli.result.CommandResult;
import org.apache.geode.management.internal.cli.result.model.ResultModel;
+import org.apache.geode.services.module.ModuleService;
/**
* @deprecated since 1.3 use OnlineCommandProcessor directly
@@ -33,11 +34,12 @@ public class MemberCommandService extends org.apache.geode.management.cli.Comman
private InternalCache cache;
private CommandProcessor commandProcessor;
- public MemberCommandService(InternalCache cache) throws CommandServiceException {
+ public MemberCommandService(InternalCache cache, ModuleService moduleService)
+ throws CommandServiceException {
this.cache = cache;
try {
this.commandProcessor = cache.getService(CommandProcessor.class);
- this.commandProcessor.init(cache);
+ this.commandProcessor.init(cache, moduleService);
} catch (Exception e) {
throw new CommandServiceException("Could not load commands.", e);
}
diff --git a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/remote/OnlineCommandProcessor.java b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/remote/OnlineCommandProcessor.java
index cbeea88..2b4d417 100644
--- a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/remote/OnlineCommandProcessor.java
+++ b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/remote/OnlineCommandProcessor.java
@@ -40,11 +40,13 @@ import org.apache.geode.management.internal.cli.result.model.ResultModel;
import org.apache.geode.management.internal.cli.util.CommentSkipHelper;
import org.apache.geode.management.internal.security.ResourceOperation;
import org.apache.geode.security.ResourcePermission;
+import org.apache.geode.services.module.ModuleService;
/**
* @since GemFire 7.0
*/
public class OnlineCommandProcessor implements CommandProcessor {
+ private ModuleService moduleService;
protected CommandExecutor executor;
private GfshParser gfshParser;
@@ -59,10 +61,11 @@ public class OnlineCommandProcessor implements CommandProcessor {
@VisibleForTesting
public OnlineCommandProcessor(Properties cacheProperties, SecurityService securityService,
- CommandExecutor commandExecutor, InternalCache cache) {
- this.gfshParser = new GfshParser(new CommandManager(cacheProperties, cache));
+ CommandExecutor commandExecutor, InternalCache cache, ModuleService moduleService) {
+ this.gfshParser = new GfshParser(new CommandManager(cacheProperties, cache, moduleService));
this.executor = commandExecutor;
this.securityService = securityService;
+ this.moduleService = moduleService;
}
protected CommandExecutor getCommandExecutor() {
@@ -134,10 +137,13 @@ public class OnlineCommandProcessor implements CommandProcessor {
}
@Override
- public boolean init(Cache cache) {
+ public boolean init(Cache cache, ModuleService moduleService) {
Properties cacheProperties = cache.getDistributedSystem().getProperties();
+ this.moduleService = moduleService;
this.securityService = ((InternalCache) cache).getSecurityService();
- this.gfshParser = new GfshParser(new CommandManager(cacheProperties, (InternalCache) cache));
+ this.gfshParser =
+ new GfshParser(new CommandManager(cacheProperties, (InternalCache) cache,
+ this.moduleService));
this.executor = new CommandExecutor();
this.cache = (InternalCache) cache;
diff --git a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/shell/Gfsh.java b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/shell/Gfsh.java
index 53d1d54..2dc2015 100755
--- a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/shell/Gfsh.java
+++ b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/shell/Gfsh.java
@@ -207,7 +207,7 @@ public class Gfsh extends JLineShell {
initializeEnvironment();
// 7. Create Roo/SpringShell framework objects
this.executionStrategy = new GfshExecutionStrategy(this);
- this.parser = new GfshParser(new CommandManager());
+ this.parser = new GfshParser(new CommandManager(moduleService));
// 8. Set max History file size
setHistorySize(gfshConfig.getHistorySize());
diff --git a/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/CommandManagerJUnitTest.java b/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/CommandManagerJUnitTest.java
index 899dad1..ecb707e 100644
--- a/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/CommandManagerJUnitTest.java
+++ b/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/CommandManagerJUnitTest.java
@@ -23,7 +23,6 @@ import java.util.Properties;
import com.examples.UserGfshCommand;
import org.junit.Before;
import org.junit.Test;
-import org.springframework.shell.core.CommandMarker;
import org.springframework.shell.core.Completion;
import org.springframework.shell.core.annotation.CliAvailabilityIndicator;
import org.springframework.shell.core.annotation.CliCommand;
@@ -32,11 +31,13 @@ import org.springframework.shell.core.annotation.CliOption;
import org.apache.geode.distributed.ConfigurationProperties;
import org.apache.geode.management.cli.CliMetaData;
import org.apache.geode.management.cli.Disabled;
+import org.apache.geode.management.cli.GeodeCommandMarker;
import org.apache.geode.management.cli.Result;
import org.apache.geode.management.internal.cli.result.CommandResult;
import org.apache.geode.management.internal.security.ResourceOperation;
import org.apache.geode.security.ResourcePermission.Operation;
import org.apache.geode.security.ResourcePermission.Resource;
+import org.apache.geode.services.module.ModuleService;
/**
* CommandManagerTest - Includes tests to check the CommandManager functions
@@ -89,7 +90,7 @@ public class CommandManagerJUnitTest {
@Before
public void before() {
- commandManager = new CommandManager();
+ commandManager = new CommandManager(ModuleService.DEFAULT);
}
/**
@@ -127,7 +128,7 @@ public class CommandManagerJUnitTest {
public void testCommandManagerLoadsUserCommand() throws Exception {
Properties props = new Properties();
props.setProperty(ConfigurationProperties.USER_COMMAND_PACKAGES, "com.examples");
- CommandManager commandManager = new CommandManager(props, null);
+ CommandManager commandManager = new CommandManager(props, null, ModuleService.DEFAULT);
assertThat(
commandManager.getCommandMarkers().stream().anyMatch(c -> c instanceof UserGfshCommand));
@@ -137,10 +138,10 @@ public class CommandManagerJUnitTest {
public void commandManagerDoesNotAddUnsatisfiedFeatureFlaggedCommands() {
System.setProperty("enabled.flag", "true");
try {
- CommandMarker accessibleCommand = new AccessibleCommand();
- CommandMarker enabledCommand = new FeatureFlaggedAndEnabledCommand();
- CommandMarker reachableButDisabledCommand = new FeatureFlaggedReachableCommand();
- CommandMarker unreachableCommand = new FeatureFlaggedUnreachableCommand();
+ GeodeCommandMarker accessibleCommand = new AccessibleCommand();
+ GeodeCommandMarker enabledCommand = new FeatureFlaggedAndEnabledCommand();
+ GeodeCommandMarker reachableButDisabledCommand = new FeatureFlaggedReachableCommand();
+ GeodeCommandMarker unreachableCommand = new FeatureFlaggedUnreachableCommand();
commandManager.add(accessibleCommand);
commandManager.add(enabledCommand);
@@ -158,7 +159,7 @@ public class CommandManagerJUnitTest {
/**
* class that represents dummy commands
*/
- public static class Commands implements CommandMarker {
+ public static class Commands implements GeodeCommandMarker {
@CliCommand(value = {COMMAND1_NAME, COMMAND1_NAME_ALIAS}, help = COMMAND1_HELP)
@CliMetaData(shellOnly = true, relatedTopic = {"relatedTopicOfCommand1"})
@@ -206,26 +207,41 @@ public class CommandManagerJUnitTest {
public boolean isAvailable() {
return true; // always available on server
}
+
+ @Override
+ public void init(ModuleService moduleService) {
+
+ }
}
- public static class MockPluginCommand implements CommandMarker {
+ public static class MockPluginCommand implements GeodeCommandMarker {
@CliCommand(value = "mock plugin command")
@ResourceOperation(resource = Resource.CLUSTER, operation = Operation.READ)
public Result mockPluginCommand() {
return null;
}
+
+ @Override
+ public void init(ModuleService moduleService) {
+
+ }
}
- public static class MockPluginCommandUnlisted implements CommandMarker {
+ public static class MockPluginCommandUnlisted implements GeodeCommandMarker {
@CliCommand(value = "mock plugin command unlisted")
@ResourceOperation(resource = Resource.CLUSTER, operation = Operation.READ)
public Result mockPluginCommandUnlisted() {
return null;
}
+
+ @Override
+ public void init(ModuleService moduleService) {
+
+ }
}
- class AccessibleCommand implements CommandMarker {
+ class AccessibleCommand implements GeodeCommandMarker {
@CliCommand(value = "test-command")
public Result ping() {
return CommandResult.createInfo("pong");
@@ -235,30 +251,50 @@ public class CommandManagerJUnitTest {
public boolean always() {
return true;
}
+
+ @Override
+ public void init(ModuleService moduleService) {
+
+ }
}
@Disabled
- class FeatureFlaggedUnreachableCommand implements CommandMarker {
+ class FeatureFlaggedUnreachableCommand implements GeodeCommandMarker {
@CliCommand(value = "unreachable")
public Result nothing() {
throw new RuntimeException("You reached the body of a feature-flagged command.");
}
+
+ @Override
+ public void init(ModuleService moduleService) {
+
+ }
}
@Disabled(unlessPropertyIsSet = "reachable.flag")
- class FeatureFlaggedReachableCommand implements CommandMarker {
+ class FeatureFlaggedReachableCommand implements GeodeCommandMarker {
@CliCommand(value = "reachable")
public Result nothing() {
throw new RuntimeException("You reached the body of a feature-flagged command.");
}
+
+ @Override
+ public void init(ModuleService moduleService) {
+
+ }
}
@Disabled(unlessPropertyIsSet = "enabled.flag")
- class FeatureFlaggedAndEnabledCommand implements CommandMarker {
+ class FeatureFlaggedAndEnabledCommand implements GeodeCommandMarker {
@CliCommand(value = "reachable")
public Result nothing() {
throw new RuntimeException("You reached the body of a feature-flagged command.");
}
+
+ @Override
+ public void init(ModuleService moduleService) {
+
+ }
}
}
diff --git a/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/commands/CommandAvailabilityIndicatorTest.java b/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/commands/CommandAvailabilityIndicatorTest.java
index 962803f..89c54cd 100644
--- a/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/commands/CommandAvailabilityIndicatorTest.java
+++ b/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/commands/CommandAvailabilityIndicatorTest.java
@@ -20,14 +20,14 @@ package org.apache.geode.management.internal.cli.commands;
import org.junit.Test;
import org.apache.geode.management.internal.cli.CommandManager;
-
+import org.apache.geode.services.module.ModuleService;
public class CommandAvailabilityIndicatorTest {
@Test
public void allOnlineCommandsHaveAvailabilityIndicator() {
- CommandManager manager = new CommandManager();
+ CommandManager manager = new CommandManager(ModuleService.DEFAULT);
CommandAvailabilityIndicatorTestHelper.assertOnlineCommandsHasAvailabilityIndicator(manager);
}
diff --git a/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/functions/DestroyAsyncEventQueueFunctionTest.java b/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/functions/DestroyAsyncEventQueueFunctionTest.java
index 4dbd53c..66eb94c 100644
--- a/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/functions/DestroyAsyncEventQueueFunctionTest.java
+++ b/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/functions/DestroyAsyncEventQueueFunctionTest.java
@@ -15,6 +15,7 @@
package org.apache.geode.management.internal.cli.functions;
import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
@@ -33,6 +34,7 @@ import org.apache.geode.cache.execute.ResultSender;
import org.apache.geode.internal.cache.GemFireCacheImpl;
import org.apache.geode.management.internal.configuration.domain.XmlEntity;
import org.apache.geode.management.internal.functions.CliFunctionResult;
+import org.apache.geode.services.module.ModuleService;
import org.apache.geode.test.fake.Fakes;
public class DestroyAsyncEventQueueFunctionTest {
@@ -53,7 +55,7 @@ public class DestroyAsyncEventQueueFunctionTest {
mockContext = mock(FunctionContext.class);
mockArgs = mock(DestroyAsyncEventQueueFunctionArgs.class);
cache = Fakes.cache();
- function = spy(DestroyAsyncEventQueueFunction.class);
+ function = spy(new DestroyAsyncEventQueueFunction(ModuleService.DEFAULT));
resultSender = mock(ResultSender.class);
when(mockContext.getCache()).thenReturn(cache);
@@ -68,7 +70,7 @@ public class DestroyAsyncEventQueueFunctionTest {
@SuppressWarnings("deprecation")
public void execute_validAeqId_OK() {
XmlEntity xmlEntity = mock(XmlEntity.class);
- doReturn(xmlEntity).when(function).getAEQXmlEntity(anyString(), anyString());
+ doReturn(xmlEntity).when(function).getAEQXmlEntity(anyString(), anyString(), any());
when(cache.getAsyncEventQueue(TEST_AEQ_ID)).thenReturn(mockAEQ);
function.execute(mockContext);
diff --git a/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/functions/GatewaySenderDestroyFunctionTest.java b/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/functions/GatewaySenderDestroyFunctionTest.java
index 24b1ddd..d040544 100644
--- a/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/functions/GatewaySenderDestroyFunctionTest.java
+++ b/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/functions/GatewaySenderDestroyFunctionTest.java
@@ -31,6 +31,7 @@ import org.apache.geode.cache.execute.ResultSender;
import org.apache.geode.distributed.DistributedSystem;
import org.apache.geode.internal.cache.InternalCache;
import org.apache.geode.management.internal.functions.CliFunctionResult;
+import org.apache.geode.services.module.ModuleService;
public class GatewaySenderDestroyFunctionTest {
@@ -45,7 +46,7 @@ public class GatewaySenderDestroyFunctionTest {
@Before
@SuppressWarnings("unchecked")
public void before() {
- function = spy(GatewaySenderDestroyFunction.class);
+ function = spy(new GatewaySenderDestroyFunction(ModuleService.DEFAULT));
context = mock(FunctionContext.class);
cache = mock(InternalCache.class);
args = mock(GatewaySenderDestroyFunctionArgs.class);
diff --git a/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/functions/RegionCreateFunctionJUnitTest.java b/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/functions/RegionCreateFunctionJUnitTest.java
index 17435ec..bbcb207 100644
--- a/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/functions/RegionCreateFunctionJUnitTest.java
+++ b/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/functions/RegionCreateFunctionJUnitTest.java
@@ -38,12 +38,13 @@ import org.apache.geode.internal.cache.InternalCache;
import org.apache.geode.internal.cache.InternalCacheForClientAccess;
import org.apache.geode.management.internal.configuration.realizers.RegionConfigRealizer;
import org.apache.geode.management.internal.functions.CliFunctionResult;
+import org.apache.geode.services.module.ModuleService;
public class RegionCreateFunctionJUnitTest {
@Test
public void testSkipIfExists() {
- RegionCreateFunction function = spy(new RegionCreateFunction());
+ RegionCreateFunction function = spy(new RegionCreateFunction(ModuleService.DEFAULT));
@SuppressWarnings("unchecked")
FunctionContext<CreateRegionFunctionArgs> context = mock(FunctionContext.class);
InternalCache internalCache = mock(InternalCache.class);
diff --git a/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/functions/RegionDestroyFunctionTest.java b/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/functions/RegionDestroyFunctionTest.java
index b7f369d..e04cf27 100644
--- a/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/functions/RegionDestroyFunctionTest.java
+++ b/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/functions/RegionDestroyFunctionTest.java
@@ -34,6 +34,7 @@ import org.apache.geode.cache.execute.ResultSender;
import org.apache.geode.internal.cache.InternalCache;
import org.apache.geode.internal.cache.InternalCacheForClientAccess;
import org.apache.geode.management.internal.functions.CliFunctionResult;
+import org.apache.geode.services.module.ModuleService;
public class RegionDestroyFunctionTest {
@@ -47,7 +48,7 @@ public class RegionDestroyFunctionTest {
@Before
@SuppressWarnings("unchecked")
public void before() {
- function = spy(RegionDestroyFunction.class);
+ function = spy(new RegionDestroyFunction(ModuleService.DEFAULT));
context = mock(FunctionContext.class);
InternalCache cache = mock(InternalCache.class);
filterCache = mock(InternalCacheForClientAccess.class);
diff --git a/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/help/HelperUnitTest.java b/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/help/HelperUnitTest.java
index 8777247..8470832 100644
--- a/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/help/HelperUnitTest.java
+++ b/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/help/HelperUnitTest.java
@@ -25,11 +25,11 @@ import java.lang.reflect.Method;
import org.junit.Before;
import org.junit.Test;
-import org.springframework.shell.core.CommandMarker;
import org.springframework.shell.core.annotation.CliAvailabilityIndicator;
import org.springframework.shell.core.annotation.CliCommand;
import org.springframework.shell.core.annotation.CliOption;
+import org.apache.geode.management.cli.GeodeCommandMarker;
import org.apache.geode.management.internal.cli.commands.DescribeOfflineDiskStoreCommand;
@@ -38,7 +38,7 @@ public class HelperUnitTest {
private CliCommand cliCommand;
private Method method;
private CliAvailabilityIndicator availabilityIndicator;
- private CommandMarker commandMarker;
+ private GeodeCommandMarker commandMarker;
private Annotation[][] annotations;
private CliOption cliOption;
diff --git a/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/remote/MemberCommandServiceTest.java b/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/remote/MemberCommandServiceTest.java
index cd24f2a..bb4014b 100644
--- a/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/remote/MemberCommandServiceTest.java
+++ b/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/remote/MemberCommandServiceTest.java
@@ -29,6 +29,7 @@ import org.apache.geode.distributed.DistributedSystem;
import org.apache.geode.internal.cache.InternalCache;
import org.apache.geode.internal.security.SecurityService;
import org.apache.geode.management.cli.Result;
+import org.apache.geode.services.module.ModuleService;
public class MemberCommandServiceTest {
private InternalCache cache;
@@ -43,14 +44,17 @@ public class MemberCommandServiceTest {
when(cache.getDistributedSystem()).thenReturn(distributedSystem);
when(cache.isClosed()).thenReturn(true);
when(cache.getSecurityService()).thenReturn(securityService);
- when(cache.getService(CommandProcessor.class)).thenReturn(new OnlineCommandProcessor());
+ OnlineCommandProcessor onlineCommandProcessor = new OnlineCommandProcessor();
+ onlineCommandProcessor.init(cache, ModuleService.DEFAULT);
+ when(cache.getService(CommandProcessor.class)).thenReturn(onlineCommandProcessor);
when(distributedSystem.getProperties()).thenReturn(cacheProperties);
}
@Test
public void processCommandError() throws Exception {
@SuppressWarnings("deprecation")
- MemberCommandService memberCommandService = new MemberCommandService(cache);
+ MemberCommandService memberCommandService =
+ new MemberCommandService(cache, ModuleService.DEFAULT);
Result result = memberCommandService.processCommand("fake command");
diff --git a/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/remote/OnlineCommandProcessorTest.java b/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/remote/OnlineCommandProcessorTest.java
index 472f4ca..2b1ae01 100644
--- a/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/remote/OnlineCommandProcessorTest.java
+++ b/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/remote/OnlineCommandProcessorTest.java
@@ -31,6 +31,7 @@ import org.junit.rules.TemporaryFolder;
import org.apache.geode.internal.security.SecurityService;
import org.apache.geode.management.internal.cli.result.model.ResultModel;
import org.apache.geode.security.NotAuthorizedException;
+import org.apache.geode.services.module.ModuleService;
public class OnlineCommandProcessorTest {
@@ -52,7 +53,8 @@ public class OnlineCommandProcessorTest {
when(executor.execute(any())).thenReturn(result);
onlineCommandProcessor =
- new OnlineCommandProcessor(properties, securityService, executor, null);
+ new OnlineCommandProcessor(properties, securityService, executor, null,
+ ModuleService.DEFAULT);
}
@Test
diff --git a/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/shell/GfshExecutionStrategyTest.java b/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/shell/GfshExecutionStrategyTest.java
index 287a462..16c3c4e 100644
--- a/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/shell/GfshExecutionStrategyTest.java
+++ b/geode-gfsh/src/test/java/org/apache/geode/management/internal/cli/shell/GfshExecutionStrategyTest.java
@@ -23,15 +23,16 @@ import static org.mockito.Mockito.when;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
-import org.springframework.shell.core.CommandMarker;
import org.apache.geode.management.cli.CliMetaData;
+import org.apache.geode.management.cli.GeodeCommandMarker;
import org.apache.geode.management.cli.Result;
import org.apache.geode.management.internal.cli.AbstractCliAroundInterceptor;
import org.apache.geode.management.internal.cli.CommandRequest;
import org.apache.geode.management.internal.cli.GfshParseResult;
import org.apache.geode.management.internal.cli.LogWrapper;
import org.apache.geode.management.internal.cli.result.model.ResultModel;
+import org.apache.geode.services.module.ModuleService;
/**
* GfshExecutionStrategyTest - Includes tests to for GfshExecutionStrategyTest
@@ -122,7 +123,7 @@ public class GfshExecutionStrategyTest {
/**
* represents class for dummy methods
*/
- public static class Commands implements CommandMarker {
+ public static class Commands implements GeodeCommandMarker {
@CliMetaData(shellOnly = true)
public ResultModel offlineCommand() {
return ResultModel.createInfo(COMMAND1_SUCCESS);
@@ -143,6 +144,11 @@ public class GfshExecutionStrategyTest {
public ResultModel interceptedCommand() {
return ResultModel.createInfo(COMMAND4_SUCCESS);
}
+
+ @Override
+ public void init(ModuleService moduleService) {
+
+ }
}
/*
diff --git a/geode-gfsh/src/test/resources/META-INF/services/org.springframework.shell.core.CommandMarker b/geode-gfsh/src/test/resources/META-INF/services/org.apache.geode.management.cli.GeodeCommandMarker
similarity index 100%
rename from geode-gfsh/src/test/resources/META-INF/services/org.springframework.shell.core.CommandMarker
rename to geode-gfsh/src/test/resources/META-INF/services/org.apache.geode.management.cli.GeodeCommandMarker
diff --git a/geode-http-service/build.gradle b/geode-http-service/build.gradle
index ec304c1..fc36f73 100755
--- a/geode-http-service/build.gradle
+++ b/geode-http-service/build.gradle
@@ -28,6 +28,8 @@ dependencies {
implementation('org.eclipse.jetty:jetty-server')
implementation('org.apache.commons:commons-lang3')
+ compileOnly(project(':geode-common-services'))
+
compileOnly(project(':geode-core'))
compileOnly(project(':geode-common')) {
exclude module: 'junit'
diff --git a/geode-http-service/src/main/java/org/apache/geode/internal/cache/InternalHttpService.java b/geode-http-service/src/main/java/org/apache/geode/internal/cache/InternalHttpService.java
index d37d645..0c521a3 100644
--- a/geode-http-service/src/main/java/org/apache/geode/internal/cache/InternalHttpService.java
+++ b/geode-http-service/src/main/java/org/apache/geode/internal/cache/InternalHttpService.java
@@ -47,6 +47,7 @@ import org.apache.geode.internal.net.SSLUtil;
import org.apache.geode.internal.security.SecurableCommunicationChannel;
import org.apache.geode.logging.internal.log4j.api.LogService;
import org.apache.geode.management.internal.beans.CacheServiceMBeanBase;
+import org.apache.geode.services.module.ModuleService;
public class InternalHttpService implements HttpService {
@@ -63,7 +64,7 @@ public class InternalHttpService implements HttpService {
private List<WebAppContext> webApps = new ArrayList<>();
@Override
- public boolean init(Cache cache) {
+ public boolean init(Cache cache, ModuleService moduleService) {
InternalDistributedSystem distributedSystem =
(InternalDistributedSystem) cache.getDistributedSystem();
DistributionConfig systemConfig = distributedSystem.getConfig();
diff --git a/geode-http-service/src/test/java/org/apache/geode/management/internal/InternalHttpServiceJunitTest.java b/geode-http-service/src/test/java/org/apache/geode/management/internal/InternalHttpServiceJunitTest.java
index 6100501..437cbdb 100644
--- a/geode-http-service/src/test/java/org/apache/geode/management/internal/InternalHttpServiceJunitTest.java
+++ b/geode-http-service/src/test/java/org/apache/geode/management/internal/InternalHttpServiceJunitTest.java
@@ -29,6 +29,7 @@ import org.apache.geode.distributed.internal.DistributionConfigImpl;
import org.apache.geode.distributed.internal.InternalDistributedSystem;
import org.apache.geode.internal.cache.InternalCache;
import org.apache.geode.internal.cache.InternalHttpService;
+import org.apache.geode.services.module.ModuleService;
/**
* The InternalHttpServiceJunitTest class is a test suite of test cases testing the contract and
@@ -60,7 +61,7 @@ public class InternalHttpServiceJunitTest {
setup("", 8090);
final InternalHttpService jetty = new InternalHttpService();
- boolean didInit = jetty.init(cache);
+ boolean didInit = jetty.init(cache, ModuleService.DEFAULT);
assertThat(didInit).as("Jetty did not initialize").isTrue();
assertThat(jetty.getHttpServer().getConnectors()[0]).isNotNull();
@@ -73,7 +74,7 @@ public class InternalHttpServiceJunitTest {
setup("127.0.0.1", 10480);
final InternalHttpService jetty = new InternalHttpService();
- boolean didInit = jetty.init(cache);
+ boolean didInit = jetty.init(cache, ModuleService.DEFAULT);
assertThat(didInit).as("Jetty did not initialize").isTrue();
assertThat(jetty.getHttpServer().getConnectors()[0]).isNotNull();
diff --git a/geode-junit/build.gradle b/geode-junit/build.gradle
index 1ec83f5..0a91955 100755
--- a/geode-junit/build.gradle
+++ b/geode-junit/build.gradle
@@ -23,6 +23,7 @@ apply from: "${project.projectDir}/../gradle/publish-java.gradle"
dependencies {
compile(platform(project(':boms:geode-all-bom')))
+ compileOnly(project(':geode-common-services'))
compileOnly(project(':geode-core'))
compileOnly(project(':geode-logging'))
compileOnly(project(':geode-serialization'))
diff --git a/geode-junit/src/main/java/org/apache/geode/management/internal/cli/commands/CommandAvailabilityIndicatorTestHelper.java b/geode-junit/src/main/java/org/apache/geode/management/internal/cli/commands/CommandAvailabilityIndicatorTestHelper.java
index 1e846d4..0cdc960 100644
--- a/geode-junit/src/main/java/org/apache/geode/management/internal/cli/commands/CommandAvailabilityIndicatorTestHelper.java
+++ b/geode-junit/src/main/java/org/apache/geode/management/internal/cli/commands/CommandAvailabilityIndicatorTestHelper.java
@@ -20,10 +20,10 @@ import static org.assertj.core.api.Assertions.assertThat;
import java.lang.reflect.Method;
import java.util.List;
-import org.springframework.shell.core.CommandMarker;
import org.springframework.shell.core.annotation.CliCommand;
import org.apache.geode.management.cli.CliMetaData;
+import org.apache.geode.management.cli.GeodeCommandMarker;
import org.apache.geode.management.cli.GfshCommand;
import org.apache.geode.management.internal.cli.CommandManager;
@@ -31,8 +31,8 @@ import org.apache.geode.management.internal.cli.CommandManager;
public class CommandAvailabilityIndicatorTestHelper {
public static void assertOnlineCommandsHasAvailabilityIndicator(CommandManager manager) {
- List<CommandMarker> commandMarkers = manager.getCommandMarkers();
- for (CommandMarker commandMarker : commandMarkers) {
+ List<GeodeCommandMarker> commandMarkers = manager.getCommandMarkers();
+ for (GeodeCommandMarker commandMarker : commandMarkers) {
// ignore all the other commands beside GfshCommand
if (!GfshCommand.class.isAssignableFrom(commandMarker.getClass())) {
continue;
diff --git a/geode-junit/src/main/java/org/apache/geode/test/junit/rules/GfshParserRule.java b/geode-junit/src/main/java/org/apache/geode/test/junit/rules/GfshParserRule.java
index 92f9202..f300102 100644
--- a/geode-junit/src/main/java/org/apache/geode/test/junit/rules/GfshParserRule.java
+++ b/geode-junit/src/main/java/org/apache/geode/test/junit/rules/GfshParserRule.java
@@ -34,6 +34,7 @@ import org.apache.geode.management.internal.cli.GfshParser;
import org.apache.geode.management.internal.cli.remote.CommandExecutor;
import org.apache.geode.management.internal.cli.result.CommandResult;
import org.apache.geode.management.internal.cli.result.model.ResultModel;
+import org.apache.geode.services.module.ModuleService;
import org.apache.geode.test.junit.assertions.CommandResultAssert;
public class GfshParserRule extends ExternalResource {
@@ -44,7 +45,7 @@ public class GfshParserRule extends ExternalResource {
@Override
public void before() {
- commandManager = new CommandManager();
+ commandManager = new CommandManager(ModuleService.DEFAULT);
parser = new GfshParser(commandManager);
commandExecutor = new CommandExecutor();
}
diff --git a/geode-lucene/build.gradle b/geode-lucene/build.gradle
index f463b98..6cd1a09 100644
--- a/geode-lucene/build.gradle
+++ b/geode-lucene/build.gradle
@@ -39,6 +39,7 @@ dependencies {
implementation('org.apache.logging.log4j:log4j-api')
compileOnly(platform(project(':boms:geode-all-bom')))
+ compileOnly(project(':geode-common-services'))
compileOnly('com.fasterxml.jackson.core:jackson-annotations')
runtimeOnly('org.apache.lucene:lucene-analyzers-phonetic')
diff --git a/geode-lucene/src/integrationTest/java/org/apache/geode/cache/lucene/internal/LuceneServiceImplIntegrationTest.java b/geode-lucene/src/integrationTest/java/org/apache/geode/cache/lucene/internal/LuceneServiceImplIntegrationTest.java
index 9c8f7a6..5946d64 100644
--- a/geode-lucene/src/integrationTest/java/org/apache/geode/cache/lucene/internal/LuceneServiceImplIntegrationTest.java
+++ b/geode-lucene/src/integrationTest/java/org/apache/geode/cache/lucene/internal/LuceneServiceImplIntegrationTest.java
@@ -35,6 +35,7 @@ import org.apache.geode.cache.execute.FunctionService;
import org.apache.geode.cache.lucene.LuceneService;
import org.apache.geode.cache.lucene.LuceneServiceProvider;
import org.apache.geode.cache.lucene.internal.distributed.LuceneQueryFunction;
+import org.apache.geode.services.module.ModuleService;
import org.apache.geode.test.junit.categories.LuceneTest;
@Category({LuceneTest.class})
@@ -57,7 +58,7 @@ public class LuceneServiceImplIntegrationTest {
@Test
public void getCacheShouldReturnTheCorrectCache() {
cache = getCache();
- new LuceneServiceImpl().init(cache);
+ new LuceneServiceImpl().init(cache, ModuleService.DEFAULT);
LuceneService service = LuceneServiceProvider.get(cache);
assertTrue(service.getCache().equals(cache));
}
@@ -69,7 +70,7 @@ public class LuceneServiceImplIntegrationTest {
assertNull(function);
cache = getCache();
- new LuceneServiceImpl().init(cache);
+ new LuceneServiceImpl().init(cache, ModuleService.DEFAULT);
function = FunctionService.getFunction(LuceneQueryFunction.ID);
assertNotNull(function);
diff --git a/geode-lucene/src/integrationTest/java/org/apache/geode/cache/lucene/test/LuceneFunctionSecurityTest.java b/geode-lucene/src/integrationTest/java/org/apache/geode/cache/lucene/test/LuceneFunctionSecurityTest.java
index a0448cf..4b66438 100644
--- a/geode-lucene/src/integrationTest/java/org/apache/geode/cache/lucene/test/LuceneFunctionSecurityTest.java
+++ b/geode-lucene/src/integrationTest/java/org/apache/geode/cache/lucene/test/LuceneFunctionSecurityTest.java
@@ -42,6 +42,7 @@ import org.apache.geode.cache.lucene.internal.results.LuceneGetPageFunction;
import org.apache.geode.examples.SimpleSecurityManager;
import org.apache.geode.management.internal.security.ResourcePermissions;
import org.apache.geode.security.ResourcePermission;
+import org.apache.geode.services.module.ModuleService;
import org.apache.geode.test.dunit.IgnoredException;
import org.apache.geode.test.junit.categories.LuceneTest;
import org.apache.geode.test.junit.categories.SecurityTest;
@@ -70,7 +71,7 @@ public class LuceneFunctionSecurityTest {
@BeforeClass
public static void setupFunctions() {
- functions.add(new LuceneCreateIndexFunction());
+ functions.add(new LuceneCreateIndexFunction(ModuleService.DEFAULT));
functions.add(new LuceneDescribeIndexFunction());
functions.add(new LuceneDestroyIndexFunction());
functions.add(new LuceneListIndexFunction());
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneServiceImpl.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneServiceImpl.java
index 2b894af..4b3ff35 100644
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneServiceImpl.java
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneServiceImpl.java
@@ -84,6 +84,7 @@ import org.apache.geode.internal.serialization.DataSerializableFixedID;
import org.apache.geode.internal.serialization.Version;
import org.apache.geode.logging.internal.log4j.api.LogService;
import org.apache.geode.management.internal.beans.CacheServiceMBeanBase;
+import org.apache.geode.services.module.ModuleService;
import org.apache.geode.util.internal.GeodeGlossary;
/**
@@ -119,7 +120,8 @@ public class LuceneServiceImpl implements InternalLuceneService {
}
@Override
- public boolean init(final Cache cache) {
+ public boolean init(final Cache cache,
+ ModuleService moduleService) {
if (cache == null) {
throw new IllegalStateException("cache is null");
}
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/cli/LuceneCreateIndexCommand.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/cli/LuceneCreateIndexCommand.java
index 6b91ea6..7d975ec 100755
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/cli/LuceneCreateIndexCommand.java
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/cli/LuceneCreateIndexCommand.java
@@ -45,9 +45,6 @@ import org.apache.geode.security.ResourcePermission.Resource;
@SuppressWarnings("unused")
public class LuceneCreateIndexCommand extends LuceneCommandBase {
- private static final LuceneCreateIndexFunction createIndexFunction =
- new LuceneCreateIndexFunction();
-
/**
* On the server, we also verify the resource operation permissions CLUSTER:WRITE:DISK
*/
@@ -83,7 +80,8 @@ public class LuceneCreateIndexCommand extends LuceneCommandBase {
new LuceneIndexInfo(indexName, regionPath, trimmedFields, analyzers, serializer);
final ResultCollector<?, ?> rc =
- this.executeFunctionOnAllMembers(createIndexFunction, indexInfo);
+ this.executeFunctionOnAllMembers(new LuceneCreateIndexFunction(getModuleService()),
+ indexInfo);
final List<CliFunctionResult> funcResults = (List<CliFunctionResult>) rc.getResult();
final XmlEntity xmlEntity = funcResults.stream().filter(CliFunctionResult::isSuccessful)
.map(CliFunctionResult::getXmlEntity).filter(Objects::nonNull).findFirst().orElse(null);
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/cli/functions/LuceneCreateIndexFunction.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/cli/functions/LuceneCreateIndexFunction.java
index f05f59f..58b86ec 100644
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/cli/functions/LuceneCreateIndexFunction.java
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/cli/functions/LuceneCreateIndexFunction.java
@@ -42,6 +42,7 @@ import org.apache.geode.management.internal.configuration.domain.XmlEntity;
import org.apache.geode.management.internal.functions.CliFunctionResult;
import org.apache.geode.management.internal.i18n.CliStrings;
import org.apache.geode.management.internal.util.ManagementUtils;
+import org.apache.geode.services.module.ModuleService;
/**
@@ -60,6 +61,12 @@ public class LuceneCreateIndexFunction implements InternalFunction {
private static final long serialVersionUID = 3061443846664615818L;
+ private final ModuleService moduleService;
+
+ public LuceneCreateIndexFunction(ModuleService moduleService) {
+ this.moduleService = moduleService;
+ }
+
@Override
public String getId() {
return LuceneCreateIndexFunction.class.getName();
@@ -107,7 +114,7 @@ public class LuceneCreateIndexFunction implements InternalFunction {
if (LuceneServiceImpl.LUCENE_REINDEX) {
indexFactory.create(indexName, regionPath, true);
if (cache.getRegion(regionPath) != null) {
- xmlEntity = getXmlEntity(regionPath);
+ xmlEntity = getXmlEntity(regionPath, moduleService);
}
} else {
indexFactory.create(indexName, regionPath, false);
@@ -121,9 +128,9 @@ public class LuceneCreateIndexFunction implements InternalFunction {
}
}
- protected XmlEntity getXmlEntity(String regionPath) {
+ protected XmlEntity getXmlEntity(String regionPath, ModuleService moduleService) {
String regionName = StringUtils.stripStart(regionPath, SEPARATOR);
- return new XmlEntity(CacheXml.REGION, "name", regionName);
+ return new XmlEntity(CacheXml.REGION, "name", regionName, moduleService);
}
private LuceneSerializer toSerializer(String serializerName)
diff --git a/geode-lucene/src/main/resources/META-INF/services/org.springframework.shell.core.CommandMarker b/geode-lucene/src/main/resources/META-INF/services/org.apache.geode.management.cli.GeodeCommandMarker
similarity index 100%
rename from geode-lucene/src/main/resources/META-INF/services/org.springframework.shell.core.CommandMarker
rename to geode-lucene/src/main/resources/META-INF/services/org.apache.geode.management.cli.GeodeCommandMarker
diff --git a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/cli/functions/LuceneCreateIndexFunctionJUnitTest.java b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/cli/functions/LuceneCreateIndexFunctionJUnitTest.java
index 0b2f951..fecdcf6 100644
--- a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/cli/functions/LuceneCreateIndexFunctionJUnitTest.java
+++ b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/cli/functions/LuceneCreateIndexFunctionJUnitTest.java
@@ -44,6 +44,7 @@ import org.apache.geode.distributed.DistributedSystem;
import org.apache.geode.internal.cache.GemFireCacheImpl;
import org.apache.geode.management.internal.configuration.domain.XmlEntity;
import org.apache.geode.management.internal.functions.CliFunctionResult;
+import org.apache.geode.services.module.ModuleService;
import org.apache.geode.test.fake.Fakes;
import org.apache.geode.test.junit.categories.LuceneTest;
@@ -91,7 +92,7 @@ public class LuceneCreateIndexFunctionJUnitTest {
new String[] {"field1", "field2", "field3"}, analyzers, null);
when(context.getArguments()).thenReturn(indexInfo);
- LuceneCreateIndexFunction function = new LuceneCreateIndexFunction();
+ LuceneCreateIndexFunction function = new LuceneCreateIndexFunction(ModuleService.DEFAULT);
function.execute(context);
ArgumentCaptor<Map> analyzersCaptor = ArgumentCaptor.forClass(Map.class);
@@ -116,7 +117,7 @@ public class LuceneCreateIndexFunctionJUnitTest {
new LuceneIndexInfo("index1", SEPARATOR + "region1", fields, null, null);
when(context.getArguments()).thenReturn(indexInfo);
- LuceneCreateIndexFunction function = new LuceneCreateIndexFunction();
+ LuceneCreateIndexFunction function = new LuceneCreateIndexFunction(ModuleService.DEFAULT);
function.execute(context);
verify(factory).addField(eq("field1"));
@@ -139,7 +140,7 @@ public class LuceneCreateIndexFunctionJUnitTest {
PrimitiveSerializer.class.getCanonicalName());
when(context.getArguments()).thenReturn(indexInfo);
- LuceneCreateIndexFunction function = new LuceneCreateIndexFunction();
+ LuceneCreateIndexFunction function = new LuceneCreateIndexFunction(ModuleService.DEFAULT);
function.execute(context);
verify(factory).addField(eq("field1"));
diff --git a/geode-memcached/build.gradle b/geode-memcached/build.gradle
index 5a813b2..d06dce3 100644
--- a/geode-memcached/build.gradle
+++ b/geode-memcached/build.gradle
@@ -22,6 +22,7 @@ apply from: "${project.projectDir}/../gradle/publish-java.gradle"
dependencies {
compileOnly(platform(project(':boms:geode-all-bom')))
compileOnly('com.github.stephenc.findbugs:findbugs-annotations')
+ compileOnly(project(':geode-common-services'))
implementation(platform(project(':boms:geode-all-bom')))
implementation(project(':geode-core'))
diff --git a/geode-memcached/src/main/java/org/apache/geode/internal/memcached/GeodeMemcachedService.java b/geode-memcached/src/main/java/org/apache/geode/internal/memcached/GeodeMemcachedService.java
index b878e77..453099b 100644
--- a/geode-memcached/src/main/java/org/apache/geode/internal/memcached/GeodeMemcachedService.java
+++ b/geode-memcached/src/main/java/org/apache/geode/internal/memcached/GeodeMemcachedService.java
@@ -25,6 +25,7 @@ import org.apache.geode.internal.cache.InternalCache;
import org.apache.geode.logging.internal.log4j.api.LogService;
import org.apache.geode.management.internal.beans.CacheServiceMBeanBase;
import org.apache.geode.memcached.GemFireMemcachedServer;
+import org.apache.geode.services.module.ModuleService;
/**
* Service loaded at cache initialization that starts the {@link GemFireMemcachedServer}
@@ -35,7 +36,7 @@ public class GeodeMemcachedService implements CacheService {
private GemFireMemcachedServer memcachedServer;
@Override
- public boolean init(Cache cache) {
+ public boolean init(Cache cache, ModuleService moduleService) {
InternalCache internalCache = (InternalCache) cache;
startMemcachedServer(internalCache);
diff --git a/geode-module-bootstrapping/src/main/java/org/apache/geode/services/bootstrapping/impl/BootstrappingServiceImpl.java b/geode-module-bootstrapping/src/main/java/org/apache/geode/services/bootstrapping/impl/BootstrappingServiceImpl.java
index 0214833..dc694dd 100644
--- a/geode-module-bootstrapping/src/main/java/org/apache/geode/services/bootstrapping/impl/BootstrappingServiceImpl.java
+++ b/geode-module-bootstrapping/src/main/java/org/apache/geode/services/bootstrapping/impl/BootstrappingServiceImpl.java
@@ -35,26 +35,26 @@ public class BootstrappingServiceImpl implements BootstrappingService {
private final String[] projects = new String[] {
"geode-common",
- // "geode-connectors",
+ "geode-connectors",
"geode-core",
- // "geode-cq",
+ "geode-cq",
"geode-gfsh",
"geode-http-service",
"geode-log4j",
"geode-logging",
- // "geode-lucene",
+ "geode-lucene",
"geode-management",
"geode-membership",
- // "geode-memcached",
- // "geode-old-client-support",
- // "geode-protobuf",
- // "geode-protobuf-messages",
+ "geode-memcached",
+ "geode-old-client-support",
+ "geode-protobuf",
+ "geode-protobuf-messages",
"geode-rebalancer",
- // "geode-redis",
+ "geode-redis",
"geode-serialization",
"geode-tcp-server",
"geode-unsafe",
- // "geode-wan",
+ "geode-wan",
"geode-module-management"};
diff --git a/geode-old-client-support/build.gradle b/geode-old-client-support/build.gradle
index 99e826c..13de2aa 100644
--- a/geode-old-client-support/build.gradle
+++ b/geode-old-client-support/build.gradle
@@ -29,6 +29,8 @@ dependencies {
exclude module: 'geode-core'
}
+ compileOnly(project(':geode-common-services'))
+
testImplementation(project(":geode-modules"))
integrationTestImplementation(project(":geode-modules"))
acceptanceTestImplementation(project(":geode-modules"))
diff --git a/geode-old-client-support/src/main/java/com/gemstone/gemfire/OldClientSupportProvider.java b/geode-old-client-support/src/main/java/com/gemstone/gemfire/OldClientSupportProvider.java
index f8dc5b4..2d560b7 100644
--- a/geode-old-client-support/src/main/java/com/gemstone/gemfire/OldClientSupportProvider.java
+++ b/geode-old-client-support/src/main/java/com/gemstone/gemfire/OldClientSupportProvider.java
@@ -27,6 +27,7 @@ import org.apache.geode.internal.cache.tier.sockets.OldClientSupportService;
import org.apache.geode.internal.serialization.Version;
import org.apache.geode.internal.serialization.VersionedDataOutputStream;
import org.apache.geode.management.internal.beans.CacheServiceMBeanBase;
+import org.apache.geode.services.module.ModuleService;
import org.apache.geode.util.internal.GeodeGlossary;
import com.gemstone.gemfire.cache.execute.EmtpyRegionFunctionException;
@@ -54,7 +55,7 @@ public class OldClientSupportProvider implements OldClientSupportService {
}
@Override
- public boolean init(final Cache cache) {
+ public boolean init(final Cache cache, ModuleService moduleService) {
InternalDataSerializer.setOldClientSupportService(this);
return true;
}
diff --git a/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/ProtobufProtocolService.java b/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/ProtobufProtocolService.java
index ed983c4..c31e83f 100644
--- a/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/ProtobufProtocolService.java
+++ b/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/ProtobufProtocolService.java
@@ -28,11 +28,7 @@ import org.apache.geode.services.module.ModuleService;
public class ProtobufProtocolService implements ClientProtocolService {
private volatile ClientStatistics statistics;
- private final ProtobufStreamProcessor protobufStreamProcessor;
-
- public ProtobufProtocolService(ModuleService moduleService) {
- this.protobufStreamProcessor = new ProtobufStreamProcessor(moduleService);;
- }
+ private ProtobufStreamProcessor protobufStreamProcessor;
@Override
public synchronized void initializeStatistics(String statisticsName, StatisticsFactory factory) {
@@ -72,4 +68,9 @@ public class ProtobufProtocolService implements ClientProtocolService {
public int getServiceProtocolVersion() {
return ProtocolVersion.MajorVersions.CURRENT_MAJOR_VERSION_VALUE;
}
+
+ @Override
+ public void init(ModuleService moduleService) {
+ this.protobufStreamProcessor = new ProtobufStreamProcessor(moduleService);
+ }
}
diff --git a/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/ProtobufProtocolServiceJUnitTest.java b/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/ProtobufProtocolServiceJUnitTest.java
index e995f52..9cf2800 100644
--- a/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/ProtobufProtocolServiceJUnitTest.java
+++ b/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/ProtobufProtocolServiceJUnitTest.java
@@ -28,7 +28,8 @@ import org.apache.geode.test.junit.categories.ClientServerTest;
public class ProtobufProtocolServiceJUnitTest {
@Test
public void initializeStatistics() {
- ProtobufProtocolService service = new ProtobufProtocolService(ModuleService.DEFAULT);
+ ProtobufProtocolService service = new ProtobufProtocolService();
+ service.init(ModuleService.DEFAULT);
service.initializeStatistics("first", new DummyStatisticsFactory());
ClientStatistics firstStatistics = service.getStatistics();
service.initializeStatistics("second", new DummyStatisticsFactory());
diff --git a/geode-redis/build.gradle b/geode-redis/build.gradle
index 08562a7..c70fee6 100644
--- a/geode-redis/build.gradle
+++ b/geode-redis/build.gradle
@@ -39,6 +39,8 @@ dependencies {
implementation('org.apache.logging.log4j:log4j-api')
implementation('commons-codec:commons-codec')
+ compileOnly(project(':geode-common-services'))
+
testImplementation(project(":geode-modules"))
integrationTestImplementation(project(":geode-modules"))
acceptanceTestImplementation(project(":geode-modules"))
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
index d1e0716..d1b6e4a 100644
--- 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
@@ -27,6 +27,7 @@ import org.apache.geode.internal.serialization.DataSerializableFixedID;
import org.apache.geode.logging.internal.log4j.api.LogService;
import org.apache.geode.management.internal.beans.CacheServiceMBeanBase;
import org.apache.geode.redis.internal.data.ByteArrayWrapper;
+import org.apache.geode.services.module.ModuleService;
public class GeodeRedisService implements CacheService, ResourceEventsListener {
private static final Logger logger = LogService.getLogger();
@@ -34,7 +35,7 @@ public class GeodeRedisService implements CacheService, ResourceEventsListener {
private InternalCache cache;
@Override
- public boolean init(Cache cache) {
+ public boolean init(Cache cache, ModuleService moduleService) {
this.cache = (InternalCache) cache;
if (!this.cache.getInternalDistributedSystem().getConfig().getRedisEnabled()) {
return false;
diff --git a/geode-redis/src/main/resources/META-INF/services/org.springframework.shell.core.CommandMarker b/geode-redis/src/main/resources/META-INF/services/org.apache.geode.management.cli.GeodeCommandMarker
similarity index 100%
rename from geode-redis/src/main/resources/META-INF/services/org.springframework.shell.core.CommandMarker
rename to geode-redis/src/main/resources/META-INF/services/org.apache.geode.management.cli.GeodeCommandMarker
diff --git a/geode-wan/build.gradle b/geode-wan/build.gradle
index 0a30b22..5f4f764 100644
--- a/geode-wan/build.gradle
+++ b/geode-wan/build.gradle
@@ -61,7 +61,7 @@ dependencies {
distributedTestImplementation('org.assertj:assertj-core')
distributedTestImplementation('pl.pragmatists:JUnitParams')
-
+ upgradeTestImplementation(project(':geode-common-services'))
upgradeTestImplementation(project(':geode-gfsh'))
upgradeTestImplementation(project(':geode-junit'))
upgradeTestImplementation(project(':geode-dunit'))
diff --git a/geode-wan/src/upgradeTest/java/org/apache/geode/cache/wan/WANRollingUpgradeMultipleReceiversDefinedInClusterConfiguration.java b/geode-wan/src/upgradeTest/java/org/apache/geode/cache/wan/WANRollingUpgradeMultipleReceiversDefinedInClusterConfiguration.java
index 130656d..76a2916 100644
--- a/geode-wan/src/upgradeTest/java/org/apache/geode/cache/wan/WANRollingUpgradeMultipleReceiversDefinedInClusterConfiguration.java
+++ b/geode-wan/src/upgradeTest/java/org/apache/geode/cache/wan/WANRollingUpgradeMultipleReceiversDefinedInClusterConfiguration.java
@@ -43,6 +43,7 @@ import org.apache.geode.internal.cache.xmlcache.CacheCreation;
import org.apache.geode.internal.cache.xmlcache.CacheXmlGenerator;
import org.apache.geode.management.internal.configuration.domain.Configuration;
import org.apache.geode.management.internal.configuration.utils.XmlUtils;
+import org.apache.geode.services.module.ModuleService;
import org.apache.geode.test.dunit.DistributedTestUtils;
import org.apache.geode.test.dunit.Host;
import org.apache.geode.test.dunit.NetworkUtils;
@@ -186,7 +187,7 @@ public class WANRollingUpgradeMultipleReceiversDefinedInClusterConfiguration
CacheXmlGenerator.generate(creation, printWriter, true, false, false);
printWriter.close();
String baseXml = stringWriter.toString();
- Document document = XmlUtils.createDocumentFromXml(baseXml);
+ Document document = XmlUtils.createDocumentFromXml(baseXml, ModuleService.DEFAULT);
// Add gateway-receiver for each attribute
for (Attribute attribute : attributes) {
@@ -220,7 +221,8 @@ public class WANRollingUpgradeMultipleReceiversDefinedInClusterConfiguration
configurationRegion.get(ConfigurationPersistenceService.CLUSTER_CONFIG);
// Verify the configuration contains no gateway-receiver elements
- Document document = XmlUtils.createDocumentFromXml(configuration.getCacheXmlContent());
+ Document document =
+ XmlUtils.createDocumentFromXml(configuration.getCacheXmlContent(), ModuleService.DEFAULT);
assertThat(document.getElementsByTagName("gateway-receiver").getLength())
.isEqualTo(expectedReceivers);
}