[geode] 04/04: GEODE-8137 - Implement loadService. (#5136)
This is an automated email from the ASF dual-hosted git repository. udo pushed a commit to branch feature/GEODE-8067 in repository https://gitbox.apache.org/repos/asf/geode.git commit e98d2a0f2ab3794c3e770bda0ad446e5ac4d8bd6 Author: Patrick Johnson AuthorDate: Fri May 22 07:31:59 2020 -0700 GEODE-8137 - Implement loadService. (#5136) --- .../integrationTest/resources/assembly_content.txt | 2 +- .../geode/services/module/ModuleService.java | 18 geode-modules/build.gradle | 3 + .../services/module/impl/GeodeModuleLoader.java| 2 +- ...uleService.java => JBossModuleServiceImpl.java} | 57 +++-- .../java/org/apache/geode/InvalidService.java} | 2 +- .../java/org/apache/geode/TestService.java}| 3 +- ...ceTest.java => JBossModuleServiceImplTest.java} | 95 +- .../module1/java/org/apache/geode/Module1.java | 6 +- .../META-INF/services/org.apache.geode.TestService | 1 + .../apache/geode}/Module2.java | 6 +- .../META-INF/services/org.apache.geode.TestService | 1 + 12 files changed, 182 insertions(+), 14 deletions(-) diff --git a/geode-assembly/src/integrationTest/resources/assembly_content.txt b/geode-assembly/src/integrationTest/resources/assembly_content.txt index f03ab5b..08d0a20 100644 --- a/geode-assembly/src/integrationTest/resources/assembly_content.txt +++ b/geode-assembly/src/integrationTest/resources/assembly_content.txt @@ -969,7 +969,7 @@ javadoc/org/apache/geode/services/module/ModuleDescriptor.Builder.html javadoc/org/apache/geode/services/module/ModuleDescriptor.html javadoc/org/apache/geode/services/module/ModuleService.html javadoc/org/apache/geode/services/module/impl/GeodeModuleLoader.html -javadoc/org/apache/geode/services/module/impl/JBossModuleService.html +javadoc/org/apache/geode/services/module/impl/JBossModuleServiceImpl.html javadoc/org/apache/geode/services/module/impl/package-frame.html javadoc/org/apache/geode/services/module/impl/package-summary.html javadoc/org/apache/geode/services/module/impl/package-tree.html diff --git a/geode-common-services/src/main/java/org/apache/geode/services/module/ModuleService.java b/geode-common-services/src/main/java/org/apache/geode/services/module/ModuleService.java index cd295c0..81361be 100644 --- a/geode-common-services/src/main/java/org/apache/geode/services/module/ModuleService.java +++ b/geode-common-services/src/main/java/org/apache/geode/services/module/ModuleService.java @@ -15,6 +15,8 @@ package org.apache.geode.services.module; +import java.util.List; + import org.apache.geode.annotations.Experimental; /** @@ -33,4 +35,20 @@ public interface ModuleService { * @return true on success, false if the module could not be loaded. */ boolean loadModule(ModuleDescriptor moduleDescriptor); + + /** + * Unloads a previously loaded module. + * + * @param moduleName name of the module to be unloaded. + * @return true on success, false if the module could not be unloaded. + */ + boolean unloadModule(String moduleName); + + /** + * Loads and returns a service instance for an interface. + * + * @param service interface type to load and instantiate an implementation of. + * @return An instance of an implementation of service + */ + List loadService(Class service); } diff --git a/geode-modules/build.gradle b/geode-modules/build.gradle index 319c0bd..17572a8 100644 --- a/geode-modules/build.gradle +++ b/geode-modules/build.gradle @@ -94,4 +94,7 @@ dependencies { implementation('org.apache.logging.log4j:log4j-core') compile('org.jboss.modules:jboss-modules') + +module1Compile(sourceSets.test.output) +module2Compile(sourceSets.test.output) } diff --git a/geode-modules/src/main/java/org/apache/geode/services/module/impl/GeodeModuleLoader.java b/geode-modules/src/main/java/org/apache/geode/services/module/impl/GeodeModuleLoader.java index 913df0c..a9d65c9 100644 --- a/geode-modules/src/main/java/org/apache/geode/services/module/impl/GeodeModuleLoader.java +++ b/geode-modules/src/main/java/org/apache/geode/services/module/impl/GeodeModuleLoader.java @@ -27,7 +27,7 @@ import org.jboss.modules.ModuleSpec; import org.apache.geode.annotations.Experimental; /** - * {@link ModuleLoader} for use by {@link JBossModuleService}. + * {@link ModuleLoader} for use by {@link JBossModuleServiceImpl}. */ @Experimental public class GeodeModuleLoader extends DelegatingModuleLoader { diff --git a/geode-modules/src/main/java/org/apache/geode/services/module/impl/JBossModuleService.java b/geode-modules/src/main/java/org/apache/geode/services/module/impl/JBossModuleServiceImpl.java similarity index 68% rename from geode-modules/src/main/java/org/apache/geode/services/module/impl/JBossModuleService.java rename to geode-modules/src/main/java/org/apache/geode/services/module/impl/JBossModuleServiceImpl.java index 9715709..c7be4c5 100644 --- a/geode-modules/src/m
[geode] 04/04: GEODE-8137 - Implement loadService. (#5136)
This is an automated email from the ASF dual-hosted git repository. udo pushed a commit to branch feature/GEODE-8067 in repository https://gitbox.apache.org/repos/asf/geode.git commit e98d2a0f2ab3794c3e770bda0ad446e5ac4d8bd6 Author: Patrick Johnson AuthorDate: Fri May 22 07:31:59 2020 -0700 GEODE-8137 - Implement loadService. (#5136) --- .../integrationTest/resources/assembly_content.txt | 2 +- .../geode/services/module/ModuleService.java | 18 geode-modules/build.gradle | 3 + .../services/module/impl/GeodeModuleLoader.java| 2 +- ...uleService.java => JBossModuleServiceImpl.java} | 57 +++-- .../java/org/apache/geode/InvalidService.java} | 2 +- .../java/org/apache/geode/TestService.java}| 3 +- ...ceTest.java => JBossModuleServiceImplTest.java} | 95 +- .../module1/java/org/apache/geode/Module1.java | 6 +- .../META-INF/services/org.apache.geode.TestService | 1 + .../apache/geode}/Module2.java | 6 +- .../META-INF/services/org.apache.geode.TestService | 1 + 12 files changed, 182 insertions(+), 14 deletions(-) diff --git a/geode-assembly/src/integrationTest/resources/assembly_content.txt b/geode-assembly/src/integrationTest/resources/assembly_content.txt index f03ab5b..08d0a20 100644 --- a/geode-assembly/src/integrationTest/resources/assembly_content.txt +++ b/geode-assembly/src/integrationTest/resources/assembly_content.txt @@ -969,7 +969,7 @@ javadoc/org/apache/geode/services/module/ModuleDescriptor.Builder.html javadoc/org/apache/geode/services/module/ModuleDescriptor.html javadoc/org/apache/geode/services/module/ModuleService.html javadoc/org/apache/geode/services/module/impl/GeodeModuleLoader.html -javadoc/org/apache/geode/services/module/impl/JBossModuleService.html +javadoc/org/apache/geode/services/module/impl/JBossModuleServiceImpl.html javadoc/org/apache/geode/services/module/impl/package-frame.html javadoc/org/apache/geode/services/module/impl/package-summary.html javadoc/org/apache/geode/services/module/impl/package-tree.html diff --git a/geode-common-services/src/main/java/org/apache/geode/services/module/ModuleService.java b/geode-common-services/src/main/java/org/apache/geode/services/module/ModuleService.java index cd295c0..81361be 100644 --- a/geode-common-services/src/main/java/org/apache/geode/services/module/ModuleService.java +++ b/geode-common-services/src/main/java/org/apache/geode/services/module/ModuleService.java @@ -15,6 +15,8 @@ package org.apache.geode.services.module; +import java.util.List; + import org.apache.geode.annotations.Experimental; /** @@ -33,4 +35,20 @@ public interface ModuleService { * @return true on success, false if the module could not be loaded. */ boolean loadModule(ModuleDescriptor moduleDescriptor); + + /** + * Unloads a previously loaded module. + * + * @param moduleName name of the module to be unloaded. + * @return true on success, false if the module could not be unloaded. + */ + boolean unloadModule(String moduleName); + + /** + * Loads and returns a service instance for an interface. + * + * @param service interface type to load and instantiate an implementation of. + * @return An instance of an implementation of service + */ + List loadService(Class service); } diff --git a/geode-modules/build.gradle b/geode-modules/build.gradle index 319c0bd..17572a8 100644 --- a/geode-modules/build.gradle +++ b/geode-modules/build.gradle @@ -94,4 +94,7 @@ dependencies { implementation('org.apache.logging.log4j:log4j-core') compile('org.jboss.modules:jboss-modules') + +module1Compile(sourceSets.test.output) +module2Compile(sourceSets.test.output) } diff --git a/geode-modules/src/main/java/org/apache/geode/services/module/impl/GeodeModuleLoader.java b/geode-modules/src/main/java/org/apache/geode/services/module/impl/GeodeModuleLoader.java index 913df0c..a9d65c9 100644 --- a/geode-modules/src/main/java/org/apache/geode/services/module/impl/GeodeModuleLoader.java +++ b/geode-modules/src/main/java/org/apache/geode/services/module/impl/GeodeModuleLoader.java @@ -27,7 +27,7 @@ import org.jboss.modules.ModuleSpec; import org.apache.geode.annotations.Experimental; /** - * {@link ModuleLoader} for use by {@link JBossModuleService}. + * {@link ModuleLoader} for use by {@link JBossModuleServiceImpl}. */ @Experimental public class GeodeModuleLoader extends DelegatingModuleLoader { diff --git a/geode-modules/src/main/java/org/apache/geode/services/module/impl/JBossModuleService.java b/geode-modules/src/main/java/org/apache/geode/services/module/impl/JBossModuleServiceImpl.java similarity index 68% rename from geode-modules/src/main/java/org/apache/geode/services/module/impl/JBossModuleService.java rename to geode-modules/src/main/java/org/apache/geode/services/module/impl/JBossModuleServiceImpl.java index 9715709..c7be4c5 100644 --- a/geode-modules/src/m