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 2019/01/28 19:36:36 UTC

[isis] branch 2033-IoC updated: ISIS-2033: removes GuiceBeanProvider

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

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


The following commit(s) were added to refs/heads/2033-IoC by this push:
     new d106195  ISIS-2033: removes GuiceBeanProvider
d106195 is described below

commit d1061953cf55c44cd52388dcaecaaafe32da0261
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Jan 28 20:36:29 2019 +0100

    ISIS-2033: removes GuiceBeanProvider
    
    Task-Url: https://issues.apache.org/jira/browse/ISIS-2033
---
 .../applib/services/guice/GuiceBeanProvider.java   | 48 ----------------
 .../isis/applib/services/guice/package-info.java   | 26 ---------
 .../SeamConversationContextSupport.java            |  4 +-
 .../integration/wicket/WebRequestCycleForIsis.java | 21 +++----
 .../settings/WicketViewerSettingsDefault.java      |  1 -
 .../wicket/ui/panels/FormExecutorDefault.java      | 66 ++++++++++++----------
 6 files changed, 47 insertions(+), 119 deletions(-)

diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/guice/GuiceBeanProvider.java b/core/applib/src/main/java/org/apache/isis/applib/services/guice/GuiceBeanProvider.java
deleted file mode 100644
index 0093a68..0000000
--- a/core/applib/src/main/java/org/apache/isis/applib/services/guice/GuiceBeanProvider.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/**
- *  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.isis.applib.services.guice;
-
-import java.lang.annotation.Annotation;
-
-import org.apache.isis.applib.annotation.Programmatic;
-
-/**
- * A domain service acting as a bridge between Isis services and Guice.
- */
-public interface GuiceBeanProvider {
-
-    /**
-     * Looks up a Guice bean by class type
-     *
-     * @param beanType The class type of the Guice bean
-     * @param <T> The type of the Guice bean
-     * @return The resolved bean
-     */
-    @Programmatic
-    <T> T lookup(Class<T> beanType);
-
-    /**
-     * Looks up a Guice bean by class type
-     *
-     * @param beanType The class type of the Guice bean
-     * @param qualifier  An annotation identifying the bean instance
-     * @param <T> The type of the Guice bean
-     * @return The resolved bean
-     */
-    @Programmatic
-    <T> T lookup(Class<T> beanType, final Annotation qualifier);
-}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/guice/package-info.java b/core/applib/src/main/java/org/apache/isis/applib/services/guice/package-info.java
deleted file mode 100644
index 81b6f05..0000000
--- a/core/applib/src/main/java/org/apache/isis/applib/services/guice/package-info.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- *  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.
- */
-
-/**
- * The {@link org.apache.isis.applib.services.guice.GuiceBeanProvider} domain service acts as a bridge between
- * Apache Isis' Wicket viewer internal bootstrapping using Google Guice.
- *
- * @see <a href="http://isis.apache.org/guides/rgsvc/rgsvc.html#_rgsvc_presentation-api_GuiceBeanProvider">Reference guide</a>
- */
-package org.apache.isis.applib.services.guice;
\ No newline at end of file
diff --git a/core/plugins/ioc-weld/src/main/java/org/apache/isis/core/plugins/ioc/weld/scopes/conversation/SeamConversationContextSupport.java b/core/plugins/ioc-weld/src/main/java/org/apache/isis/core/plugins/ioc/weld/scopes/conversation/SeamConversationContextSupport.java
index db5840e..7495541 100644
--- a/core/plugins/ioc-weld/src/main/java/org/apache/isis/core/plugins/ioc/weld/scopes/conversation/SeamConversationContextSupport.java
+++ b/core/plugins/ioc-weld/src/main/java/org/apache/isis/core/plugins/ioc/weld/scopes/conversation/SeamConversationContextSupport.java
@@ -62,8 +62,10 @@ public class SeamConversationContextSupport implements SeamConversationContext<H
 		return this;
 	}
 	
-	// -- STUPID HACK
+	// -- HACK
 	
+	// the existence of this method allows for Wicket to identify this bean as appropriate 
+	// for store type 'HttpServletRequest'
 	protected void doAssociate(HttpServletRequest nop) {
 		
 	}
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/WebRequestCycleForIsis.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/WebRequestCycleForIsis.java
index 30e9876..b0f91f9 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/WebRequestCycleForIsis.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/WebRequestCycleForIsis.java
@@ -29,7 +29,7 @@ import org.apache.isis.applib.services.exceprecog.ExceptionRecognizer;
 import org.apache.isis.applib.services.exceprecog.ExceptionRecognizerComposite;
 import org.apache.isis.applib.services.exceprecog.ExceptionRecognizerForType;
 import org.apache.isis.applib.services.i18n.TranslationService;
-import org.apache.isis.applib.services.inject.ServiceInjector;
+import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.commons.internal.base._Lazy;
 import org.apache.isis.commons.internal.cdi._CDI;
 import org.apache.isis.commons.internal.collections._Lists;
@@ -253,9 +253,9 @@ public class WebRequestCycleForIsis implements IRequestCycleListener {
             }
 
 
-            // handle recognised exceptions gracefully also
+            // handle recognized exceptions gracefully also
             final Stream<ExceptionRecognizer> exceptionRecognizers =
-                    getServicesInjector().streamServices(ExceptionRecognizer.class);
+            		getServiceRegistry().streamServices(ExceptionRecognizer.class);
             String recognizedMessageIfAny = new ExceptionRecognizerComposite(exceptionRecognizers).recognize(ex);
             if(recognizedMessageIfAny != null) {
                 return respondGracefully(cycle);
@@ -334,7 +334,7 @@ public class WebRequestCycleForIsis implements IRequestCycleListener {
         exceptionRecognizers.add(pageExpiredExceptionRecognizer);
 
         if(inIsisSession()) {
-            getServicesInjector().streamServices(ExceptionRecognizer.class)
+            getServiceRegistry().streamServices(ExceptionRecognizer.class)
             .forEach(exceptionRecognizers::add);
         } else {
             val metaModelDeficiencies = IsisContext.getMetaModelDeficienciesIfAny();
@@ -405,12 +405,6 @@ public class WebRequestCycleForIsis implements IRequestCycleListener {
 
     // -- Dependencies (from isis' context)
     
-    
-    
-    protected ServiceInjector getServicesInjector() {
-        return getIsisSessionFactory().getServiceInjector();
-    }
-
     protected IsisTransactionManager getTransactionManager() {
         return getIsisSessionFactory().getCurrentSession().getPersistenceSession().getTransactionManager();
     }
@@ -427,13 +421,16 @@ public class WebRequestCycleForIsis implements IRequestCycleListener {
         return getAuthenticationSession().getMessageBroker();
     }
 
+    protected ServiceRegistry getServiceRegistry() {
+        return IsisContext.getServiceRegistry();
+    }
+        
     IsisSessionFactory getIsisSessionFactory() {
         return IsisContext.getSessionFactory();
     }
 
-
     TranslationService getTranslationService() {
-        return getServicesInjector().lookupService(TranslationService.class).orElse(null);
+        return getServiceRegistry().lookupServiceElseFail(TranslationService.class);
     }
 
     // -- Dependencies (from wicket)
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java
index a5aa504..aa1ec7b 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java
@@ -20,7 +20,6 @@
 package org.apache.isis.viewer.wicket.viewer.settings;
 
 import javax.inject.Singleton;
-import javax.enterprise.context.ApplicationScoped;
 
 import org.apache.isis.applib.annotation.PromptStyle;
 import org.apache.isis.config.IsisConfiguration;
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
index 778069e..49d3eef 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
@@ -21,29 +21,15 @@ import java.util.Objects;
 import java.util.concurrent.Callable;
 import java.util.stream.Stream;
 
-import com.google.common.base.Throwables;
-
-import org.apache.wicket.Component;
-import org.apache.wicket.MarkupContainer;
-import org.apache.wicket.Page;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.request.cycle.RequestCycle;
-import org.apache.wicket.util.visit.IVisit;
-import org.apache.wicket.util.visit.IVisitor;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import org.apache.isis.applib.RecoverableException;
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.command.Command;
 import org.apache.isis.applib.services.command.CommandContext;
 import org.apache.isis.applib.services.exceprecog.ExceptionRecognizer;
 import org.apache.isis.applib.services.exceprecog.ExceptionRecognizerComposite;
-import org.apache.isis.applib.services.guice.GuiceBeanProvider;
 import org.apache.isis.applib.services.hint.HintStore;
-import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.applib.services.message.MessageService;
+import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.concurrency.ConcurrencyChecking;
@@ -69,6 +55,18 @@ import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 import org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib.IsisBlobOrClobPanelAbstract;
 import org.apache.isis.viewer.wicket.ui.errors.JGrowlUtil;
 import org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage;
+import org.apache.wicket.Component;
+import org.apache.wicket.MarkupContainer;
+import org.apache.wicket.Page;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.request.cycle.RequestCycle;
+import org.apache.wicket.util.visit.IVisit;
+import org.apache.wicket.util.visit.IVisitor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.base.Throwables;
 
 public final class FormExecutorDefault<M extends BookmarkableModel<ObjectAdapter> & ParentEntityModelProvider>
 implements FormExecutor {
@@ -87,11 +85,6 @@ implements FormExecutor {
         this.formExecutorStrategy = formExecutorStrategy;
     }
 
-    protected WicketViewerSettings getSettings() {
-        final GuiceBeanProvider guiceBeanProvider = getServicesInjector().lookupServiceElseFail(GuiceBeanProvider.class);
-        return guiceBeanProvider.lookup(WicketViewerSettings.class);
-    }
-
     /**
      *
      * @param page
@@ -128,7 +121,7 @@ implements FormExecutor {
                 return false;
             }
 
-            final CommandContext commandContext = getServicesInjector().lookupService(CommandContext.class).orElse(null);
+            final CommandContext commandContext = getCommandContext();
             if (commandContext != null) {
                 command = commandContext.getCommand();
                 command.internal().setExecutor(Command.Executor.USER);
@@ -210,8 +203,7 @@ implements FormExecutor {
 
             forwardOnConcurrencyException(targetAdapter, ex);
 
-            final MessageService messageService = getServicesInjector().lookupServiceElseFail(MessageService.class);
-            messageService.warnUser(ex.getMessage());
+            getMessageService().warnUser(ex.getMessage());
 
             return false;
 
@@ -324,15 +316,15 @@ implements FormExecutor {
         // this is a bit of a hack... currently the blob/clob panel doesn't correctly redraw itself.
         // we therefore force a re-forward (unless is declared as unchanging).
         final Object hasBlobsOrClobs = page.visitChildren(IsisBlobOrClobPanelAbstract.class,
-                new IVisitor<IsisBlobOrClobPanelAbstract, Object>() {
+                new IVisitor<IsisBlobOrClobPanelAbstract<?>, Object>() {
             @Override
-            public void component(final IsisBlobOrClobPanelAbstract object, final IVisit<Object> visit) {
+            public void component(final IsisBlobOrClobPanelAbstract<?> object, final IVisit<Object> visit) {
                 if (!isUnchanging(object)) {
                     visit.stop(true);
                 }
             }
 
-            private boolean isUnchanging(final IsisBlobOrClobPanelAbstract object) {
+            private boolean isUnchanging(final IsisBlobOrClobPanelAbstract<?> object) {
                 final ScalarModel scalarModel = (ScalarModel) object.getModel();
                 final UnchangingFacet unchangingFacet = scalarModel.getFacet(UnchangingFacet.class);
                 return unchangingFacet != null && unchangingFacet.value();
@@ -475,7 +467,7 @@ implements FormExecutor {
 
         // see if the exception is recognized as being a non-serious error
         // (nb: similar code in WebRequestCycleForIsis, as a fallback)
-        final Stream<ExceptionRecognizer> exceptionRecognizers = getServicesInjector()
+        final Stream<ExceptionRecognizer> exceptionRecognizers = getServiceRegistry()
                 .streamServices(ExceptionRecognizer.class);
         String recognizedErrorIfAny = new ExceptionRecognizerComposite(exceptionRecognizers).recognize(ex);
         if (recognizedErrorIfAny != null) {
@@ -500,7 +492,7 @@ implements FormExecutor {
             targetIfAny.add(feedbackFormIfAny);
             feedbackFormIfAny.error(error);
         } else {
-            final MessageService messageService = getServicesInjector().lookupServiceElseFail(MessageService.class);
+            final MessageService messageService = getServiceRegistry().lookupServiceElseFail(MessageService.class);
             messageService.warnUser(error);
         }
     }
@@ -519,12 +511,12 @@ implements FormExecutor {
         return getCurrentSession().getPersistenceSession();
     }
 
-    protected ServiceInjector getServicesInjector() {
-        return getIsisSessionFactory().getServiceInjector();
+    protected ServiceRegistry getServiceRegistry() {
+        return IsisContext.getServiceRegistry();
     }
 
     protected SpecificationLoader getSpecificationLoader() {
-        return getIsisSessionFactory().getSpecificationLoader();
+        return IsisContext.getSpecificationLoader();
     }
 
     private IsisTransactionManager getTransactionManager() {
@@ -538,7 +530,19 @@ implements FormExecutor {
     protected AuthenticationSession getAuthenticationSession() {
         return getCurrentSession().getAuthenticationSession();
     }
+    
+    private MessageService getMessageService() {
+    	return getServiceRegistry().lookupServiceElseFail(MessageService.class);
+    }
+    
+    protected WicketViewerSettings getSettings() {
+    	return getServiceRegistry().lookupServiceElseFail(WicketViewerSettings.class);
+    }
 
+    private CommandContext getCommandContext() {
+    	return getServiceRegistry().lookupService(CommandContext.class).orElse(null);
+    }
+    
 
     ///////////////////////////////////////////////////////////////////////////////