You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2018/11/29 22:11:45 UTC

[isis] branch 2039-Redesign_of_Config updated: ISIS-2039: removing the ConfigurationService interface

This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch 2039-Redesign_of_Config
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/2039-Redesign_of_Config by this push:
     new 2d1a9fb  ISIS-2039: removing the ConfigurationService interface
2d1a9fb is described below

commit 2d1a9fb30c3080b119644b534f466aa2680ff47a
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Nov 29 23:11:39 2018 +0100

    ISIS-2039: removing the ConfigurationService interface
    
    use the singleton IsisConfiguration instead
    
    for the UI, the ConfigurationServiceMenu was renamed to
    ConfigurationMenu which uses a ConfigurationViewService for the single
    purpose of displaying config values
    
    Task-Url: https://issues.apache.org/jira/browse/ISIS-2039
---
 .../config/services/view/ConfigurationMenu.java}   |  10 ++++----
 .../services/view}/ConfigurationProperty.java      |   2 +-
 .../view}/ConfigurationProperty.layout.xml         |   0
 .../services/view}/ConfigurationProperty.png       | Bin
 .../services/view/ConfigurationViewService.java}   |  24 ++----------------
 .../view/ConfigurationViewServiceDefault.java}     |  28 ++++-----------------
 .../isis/config/services/view}/package-info.java   |   4 +--
 .../apache/isis/applib/DomainObjectContainer.java  |  23 +++++++++--------
 .../system/session/IsisSessionFactoryBuilder.java  |   6 ++---
 9 files changed, 30 insertions(+), 67 deletions(-)

diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/config/ConfigurationServiceMenu.java b/core/config/src/main/java/org/apache/isis/config/services/view/ConfigurationMenu.java
similarity index 88%
rename from core/applib/src/main/java/org/apache/isis/applib/services/config/ConfigurationServiceMenu.java
rename to core/config/src/main/java/org/apache/isis/config/services/view/ConfigurationMenu.java
index ff15fa0..b2c8a43 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/config/ConfigurationServiceMenu.java
+++ b/core/config/src/main/java/org/apache/isis/config/services/view/ConfigurationMenu.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.applib.services.config;
+package org.apache.isis.config.services.view;
 
 import java.util.Set;
 
@@ -32,16 +32,16 @@ import org.apache.isis.applib.annotation.SemanticsOf;
 
 @DomainService(
         nature = NatureOfService.VIEW_MENU_ONLY,
-        objectType = "isisApplib.ConfigurationServiceMenu"
+        objectType = "isisApplib.ConfigurationMenu"
         )
 @DomainServiceLayout(
         menuBar = DomainServiceLayout.MenuBar.TERTIARY,
         menuOrder = "500.900"
         )
-public class ConfigurationServiceMenu {
+public class ConfigurationMenu {
 
     public static abstract class ActionDomainEvent
-    extends IsisApplibModule.ActionDomainEvent<ConfigurationServiceMenu> {
+    extends IsisApplibModule.ActionDomainEvent<ConfigurationMenu> {
         private static final long serialVersionUID = 1L;
     }
 
@@ -63,6 +63,6 @@ public class ConfigurationServiceMenu {
     }
 
     @javax.inject.Inject
-    private ConfigurationService configurationService;
+    private ConfigurationViewService configurationService;
 
 }
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/config/ConfigurationProperty.java b/core/config/src/main/java/org/apache/isis/config/services/view/ConfigurationProperty.java
similarity index 98%
rename from core/applib/src/main/java/org/apache/isis/applib/services/config/ConfigurationProperty.java
rename to core/config/src/main/java/org/apache/isis/config/services/view/ConfigurationProperty.java
index 74763d1..7467998 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/config/ConfigurationProperty.java
+++ b/core/config/src/main/java/org/apache/isis/config/services/view/ConfigurationProperty.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.applib.services.config;
+package org.apache.isis.config.services.view;
 
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/config/ConfigurationProperty.layout.xml b/core/config/src/main/java/org/apache/isis/config/services/view/ConfigurationProperty.layout.xml
similarity index 100%
rename from core/applib/src/main/java/org/apache/isis/applib/services/config/ConfigurationProperty.layout.xml
rename to core/config/src/main/java/org/apache/isis/config/services/view/ConfigurationProperty.layout.xml
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/config/ConfigurationProperty.png b/core/config/src/main/java/org/apache/isis/config/services/view/ConfigurationProperty.png
similarity index 100%
rename from core/applib/src/main/java/org/apache/isis/applib/services/config/ConfigurationProperty.png
rename to core/config/src/main/java/org/apache/isis/config/services/view/ConfigurationProperty.png
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/config/ConfigurationService.java b/core/config/src/main/java/org/apache/isis/config/services/view/ConfigurationViewService.java
similarity index 65%
rename from core/applib/src/main/java/org/apache/isis/applib/services/config/ConfigurationService.java
rename to core/config/src/main/java/org/apache/isis/config/services/view/ConfigurationViewService.java
index 5a46f43..fff473e 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/config/ConfigurationService.java
+++ b/core/config/src/main/java/org/apache/isis/config/services/view/ConfigurationViewService.java
@@ -17,33 +17,13 @@
  *  under the License.
  */
 
-package org.apache.isis.applib.services.config;
+package org.apache.isis.config.services.view;
 
-import java.util.List;
 import java.util.Set;
 
 import org.apache.isis.applib.annotation.Programmatic;
 
-public interface ConfigurationService {
-
-    /**
-     * Get the configuration property with the specified name.
-     */
-    @Programmatic
-    String getProperty(String name);
-
-    /**
-     * Get the configuration property with the specified name and if it doesn't
-     * exist then return the specified default value.
-     */
-    @Programmatic
-    String getProperty(String name, String defaultValue);
-
-    /**
-     * Get the names of all the available properties.
-     */
-    @Programmatic
-    List<String> getPropertyNames();
+public interface ConfigurationViewService {
 
     /**
      * Returns all properties, each as an instance of {@link ConfigurationProperty} (a view model).
diff --git a/core/config/src/main/java/org/apache/isis/config/service/ConfigurationServiceDefault.java b/core/config/src/main/java/org/apache/isis/config/services/view/ConfigurationViewServiceDefault.java
similarity index 75%
rename from core/config/src/main/java/org/apache/isis/config/service/ConfigurationServiceDefault.java
rename to core/config/src/main/java/org/apache/isis/config/services/view/ConfigurationViewServiceDefault.java
index 74571e5..fb3f6db 100644
--- a/core/config/src/main/java/org/apache/isis/config/service/ConfigurationServiceDefault.java
+++ b/core/config/src/main/java/org/apache/isis/config/services/view/ConfigurationViewServiceDefault.java
@@ -16,49 +16,31 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.config.service;
+package org.apache.isis.config.services.view;
 
-import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.TreeSet;
 
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.NatureOfService;
-import org.apache.isis.applib.services.config.ConfigurationProperty;
-import org.apache.isis.applib.services.config.ConfigurationService;
 import org.apache.isis.commons.internal.base._Lazy;
 import org.apache.isis.commons.internal.context._Context;
 import org.apache.isis.config.ConfigurationConstants;
 import org.apache.isis.config.IsisConfiguration;
 import org.apache.isis.config.internal._Config;
 
-import static org.apache.isis.commons.internal.base._With.mapIfPresentElse;
-
+/**
+ * @since 2.0.0-M2
+ */
 @DomainService(
         nature = NatureOfService.DOMAIN,
         menuOrder = "" + Integer.MAX_VALUE
         )
-public class ConfigurationServiceDefault implements ConfigurationService {
+public class ConfigurationViewServiceDefault implements ConfigurationViewService {
     
     @Override
-    public String getProperty(String name) {
-        return getProperty(name, null);
-    }
-
-    @Override
-    public String getProperty(String name, String defaultValue) {
-        return mapIfPresentElse(config.get().get(name), ConfigurationProperty::getValue, defaultValue);
-    }
-
-    @Override
-    public List<String> getPropertyNames() {
-        return new ArrayList<>(config.get().keySet());
-    }
-
-    @Override
     public Set<ConfigurationProperty> allProperties() {
         return new TreeSet<>(config.get().values());
     }
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/config/package-info.java b/core/config/src/main/java/org/apache/isis/config/services/view/package-info.java
similarity index 87%
rename from core/applib/src/main/java/org/apache/isis/applib/services/config/package-info.java
rename to core/config/src/main/java/org/apache/isis/config/services/view/package-info.java
index 99814d4..f2bb8dc 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/config/package-info.java
+++ b/core/config/src/main/java/org/apache/isis/config/services/view/package-info.java
@@ -18,9 +18,9 @@
  */
 
 /**
- * The {@link org.apache.isis.applib.services.config.ConfigurationService} allows domain objects to read the
+ * The {@link org.apache.isis.config.services.view.ConfigurationViewService} allows domain objects to read the
  * configuration properties aggregated from the various configuration files.
  *
  * @see <a href="http://isis.apache.org/guides/rgsvc/rgsvc.html#_rgsvc_core-domain-api_ConfigurationService">Reference guide</a>
  */
-package org.apache.isis.applib.services.config;
\ No newline at end of file
+package org.apache.isis.config.services.view;
\ No newline at end of file
diff --git a/core/legacy/transition-1-2/src/main/java/org/apache/isis/applib/DomainObjectContainer.java b/core/legacy/transition-1-2/src/main/java/org/apache/isis/applib/DomainObjectContainer.java
index 392e469..7974b76 100644
--- a/core/legacy/transition-1-2/src/main/java/org/apache/isis/applib/DomainObjectContainer.java
+++ b/core/legacy/transition-1-2/src/main/java/org/apache/isis/applib/DomainObjectContainer.java
@@ -18,21 +18,21 @@
  */
 package org.apache.isis.applib;
 
-import static org.apache.isis.commons.internal.collections._Lists.lastElementIfAny;
-
+import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 import java.util.stream.Collectors;
 
 import javax.inject.Inject;
 
+import com.google.common.base.Predicate;
+
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.filter.Filter;
 import org.apache.isis.applib.query.Query;
 import org.apache.isis.applib.security.UserMemento;
-import org.apache.isis.applib.services.config.ConfigurationService;
 import org.apache.isis.applib.services.factory.FactoryService;
 import org.apache.isis.applib.services.i18n.TranslatableString;
 import org.apache.isis.applib.services.jdosupport.IsisJdoSupport;
@@ -43,8 +43,10 @@ import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.applib.services.title.TitleService;
 import org.apache.isis.applib.services.user.UserService;
 import org.apache.isis.applib.services.xactn.TransactionService;
+import org.apache.isis.config.IsisConfiguration;
+import org.apache.isis.config.internal._Config;
 
-import com.google.common.base.Predicate;
+import static org.apache.isis.commons.internal.collections._Lists.lastElementIfAny;
 
 @DomainService(nature=NatureOfService.DOMAIN)
 @Deprecated
@@ -58,7 +60,6 @@ public class DomainObjectContainer {
 	@Inject private TransactionService transactionService;
 	@Inject private ServiceRegistry serviceRegistry;
 	@Inject private MessageService messageService;
-	@Inject private ConfigurationService configurationService;
 	@Inject private UserService userService;
 	
     /**
@@ -414,30 +415,30 @@ public class DomainObjectContainer {
 
 
     /**
-     * @deprecated - use {@link org.apache.isis.applib.services.config.ConfigurationService#getProperty(String)} instead.
+     * @deprecated - use {@link IsisConfiguration#getProperty(String)} instead.
      */
     @Deprecated
     @Programmatic
     public String getProperty(String name) {
-    	return configurationService.getProperty(name);
+    	return _Config.getConfiguration().getString(name);
     }
 
     /**
-     * @deprecated - use {@link org.apache.isis.applib.services.config.ConfigurationService#getProperty(String, String)} instead.
+     * @deprecated - use {@link IsisConfiguration#getProperty(String, String)} instead.
      */
     @Deprecated
     @Programmatic
     public String getProperty(String name, String defaultValue) {
-    	return configurationService.getProperty(name, defaultValue);	
+    	return _Config.getConfiguration().getString(name, defaultValue);
     }
 
     /**
-     * @deprecated - use {@link org.apache.isis.applib.services.config.ConfigurationService#getPropertyNames()} instead.
+     * @deprecated - use {@link IsisConfiguration#asMap()} instead.
      */
     @Deprecated
     @Programmatic
     public List<String> getPropertyNames() {
-    	return configurationService.getPropertyNames();
+        return new ArrayList<>(_Config.getConfiguration().asMap().keySet());
     }
 
     /**
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryBuilder.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryBuilder.java
index 69c8851..4ea1097 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryBuilder.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryBuilder.java
@@ -33,12 +33,12 @@ import org.apache.isis.applib.AppManifest;
 import org.apache.isis.applib.clock.Clock;
 import org.apache.isis.applib.fixtures.FixtureClock;
 import org.apache.isis.applib.fixturescripts.FixtureScripts;
-import org.apache.isis.applib.services.config.ConfigurationService;
 import org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault;
 import org.apache.isis.commons.internal.context._Context;
 import org.apache.isis.config.IsisConfiguration;
 import org.apache.isis.config.internal._Config;
-import org.apache.isis.config.service.ConfigurationServiceDefault;
+import org.apache.isis.config.services.view.ConfigurationViewService;
+import org.apache.isis.config.services.view.ConfigurationViewServiceDefault;
 import org.apache.isis.core.commons.lang.ListExtensions;
 import org.apache.isis.core.metamodel.facetapi.MetaModelRefiner;
 import org.apache.isis.core.metamodel.services.ServicesInjector;
@@ -122,7 +122,7 @@ public class IsisSessionFactoryBuilder {
             final ServicesInjector servicesInjector = componentProvider.provideServiceInjector();
 
             // ConfigurationService
-            servicesInjector.addFallbackIfRequired(ConfigurationService.class, new ConfigurationServiceDefault());
+            servicesInjector.addFallbackIfRequired(ConfigurationViewService.class, new ConfigurationViewServiceDefault());
             
             // fixtureScripts
             servicesInjector.addFallbackIfRequired(FixtureScripts.class, new FixtureScriptsDefault());