You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by da...@apache.org on 2024/10/10 20:42:44 UTC

(causeway) 02/05: CAUSEWAY-3819: makes HintStore use AutoConfig

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

danhaywood pushed a commit to branch maintenance-branch
in repository https://gitbox.apache.org/repos/asf/causeway.git

commit c9395231878a2341220386207f6af5bddcf2a0d1
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Oct 10 20:35:36 2024 +0200

    CAUSEWAY-3819: makes HintStore use AutoConfig
---
 .../viewer/CausewayModuleViewerWicketViewer.java   |  4 +++-
 .../services/HintStoreUsingWicketSession.java      | 22 +++++++++++++++++-----
 2 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/viewers/wicket/viewer/src/main/java/org/apache/causeway/viewer/wicket/viewer/CausewayModuleViewerWicketViewer.java b/viewers/wicket/viewer/src/main/java/org/apache/causeway/viewer/wicket/viewer/CausewayModuleViewerWicketViewer.java
index 9e2796e81b..d637f34409 100644
--- a/viewers/wicket/viewer/src/main/java/org/apache/causeway/viewer/wicket/viewer/CausewayModuleViewerWicketViewer.java
+++ b/viewers/wicket/viewer/src/main/java/org/apache/causeway/viewer/wicket/viewer/CausewayModuleViewerWicketViewer.java
@@ -63,12 +63,14 @@ import org.apache.causeway.viewer.wicket.viewer.wicketapp.config.WicketViewerCss
         ComponentFactoryRegistryDefault.class,
         DeepLinkServiceWicket.class,
         ImageResourceCacheClassPath.class,
-        HintStoreUsingWicketSession.class,
         PageClassListDefault.class,
         PageClassRegistryDefault.class,
         PageNavigationServiceDefault.class,
         WebModuleWicket.class,
 
+        // autoconfigurations
+        HintStoreUsingWicketSession.AutoConfiguration.class,
+
 })
 public class CausewayModuleViewerWicketViewer {
 
diff --git a/viewers/wicket/viewer/src/main/java/org/apache/causeway/viewer/wicket/viewer/services/HintStoreUsingWicketSession.java b/viewers/wicket/viewer/src/main/java/org/apache/causeway/viewer/wicket/viewer/services/HintStoreUsingWicketSession.java
index b08a0c8af0..34f5a1467b 100644
--- a/viewers/wicket/viewer/src/main/java/org/apache/causeway/viewer/wicket/viewer/services/HintStoreUsingWicketSession.java
+++ b/viewers/wicket/viewer/src/main/java/org/apache/causeway/viewer/wicket/viewer/services/HintStoreUsingWicketSession.java
@@ -27,7 +27,10 @@ import javax.inject.Named;
 import org.apache.wicket.Session;
 
 import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Service;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.annotation.Order;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.services.bookmark.Bookmark;
@@ -42,13 +45,22 @@ import lombok.extern.log4j.Log4j2;
  *
  * @since 2.0 {@index}
  */
-@Service
-@Named("causeway.viewer.wicket.HintStoreUsingWicketSession")
-@javax.annotation.Priority(PriorityPrecedence.EARLY)
-@Qualifier("Wicket")
 @Log4j2
 public class HintStoreUsingWicketSession implements HintStore {
 
+    @Configuration
+    public static class AutoConfiguration {
+
+        @Bean
+        @ConditionalOnMissingBean(HintStore.class)
+        @Named("causeway.viewer.wicket.HintStoreUsingWicketSession")
+        @Order(PriorityPrecedence.EARLY)
+        @Qualifier("Wicket")
+        public HintStoreUsingWicketSession hintStoreUsingWicketSession() {
+            return new HintStoreUsingWicketSession();
+        }
+    }
+
     @Override
     public String get(final Bookmark bookmark, final String key) {
         final Map<String, String> hintsForBookmark = hintsFor(bookmark);