You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2020/01/21 16:09:28 UTC
[isis] 03/11: ISIS-2264: removes all of WebAppConfiguration state,
just use IsisConfiguration
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
commit 67253f37e5966bf30d0be7f69f9d625657dae39d
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Jan 21 11:29:02 2020 +0000
ISIS-2264: removes all of WebAppConfiguration state, just use IsisConfiguration
WebAppConfiguration remains just as a utility bean to make certain URLs context sensitive
---
.../apache/isis/core/config/IsisConfiguration.java | 2 +
.../config/viewer/wicket/WebAppConfiguration.java | 65 +---------------------
.../menubars/MenuBarsLoaderServiceDefault.java | 42 +++++++-------
.../wicket/ui/components/welcome/WelcomePanel.java | 2 +-
.../ui/components/widgets/favicon/Favicon.java | 2 +-
.../ui/components/widgets/navbar/BrandLogo.java | 6 +-
.../ui/components/widgets/navbar/BrandName.java | 4 +-
.../isis/viewer/wicket/ui/pages/PageAbstract.java | 4 +-
.../accmngt/AccountManagementPageAbstract.java | 4 +-
.../wicket/ui/pages/mmverror/MmvErrorPage.java | 4 +-
10 files changed, 40 insertions(+), 95 deletions(-)
diff --git a/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java b/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java
index 91bd5ac..e4ead26 100644
--- a/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java
+++ b/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java
@@ -2327,6 +2327,7 @@ public class IsisConfiguration {
* Spring by default under <code>static</code> package).
* </p>
*/
+ @javax.validation.constraints.Pattern(regexp="^[^/].*$")
private String css;
// since 2.0
@@ -2346,6 +2347,7 @@ public class IsisConfiguration {
* Spring by default under <code>static</code> package).
* </p>
*/
+ @javax.validation.constraints.Pattern(regexp="^[^/].*$")
private String js;
/**
diff --git a/core/config/src/main/java/org/apache/isis/core/config/viewer/wicket/WebAppConfiguration.java b/core/config/src/main/java/org/apache/isis/core/config/viewer/wicket/WebAppConfiguration.java
index 14b5de9..527f8c5 100644
--- a/core/config/src/main/java/org/apache/isis/core/config/viewer/wicket/WebAppConfiguration.java
+++ b/core/config/src/main/java/org/apache/isis/core/config/viewer/wicket/WebAppConfiguration.java
@@ -18,7 +18,6 @@
*/
package org.apache.isis.core.config.viewer.wicket;
-import javax.annotation.PostConstruct;
import javax.inject.Inject;
import javax.inject.Named;
import javax.inject.Singleton;
@@ -26,16 +25,11 @@ import javax.inject.Singleton;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
-import org.springframework.core.io.AbstractResource;
-import org.springframework.core.io.ClassPathResource;
import org.springframework.stereotype.Service;
import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.isis.core.config.IsisConfiguration;
-import lombok.Getter;
-import lombok.val;
-
/**
* @since 2.0
*/
@@ -47,73 +41,16 @@ import lombok.val;
@Qualifier("Default")
public class WebAppConfiguration {
- private final IsisConfiguration isisConfiguration;
private final WebAppContextPath webAppContextPath;
- @Getter private AbstractResource menubarsLayoutXml;
-
- // URLs *not* sensitive to context path (remove any leading /)
- @Getter private String applicationCss;
- @Getter private String applicationJs;
- @Getter private String welcomeMessage;
-
- // URLs sensitive to context path (add context-path)
- @Getter private String faviconUrl;
- @Getter private String brandLogoHeader;
- @Getter private String brandLogoSignin;
-
@Inject
public WebAppConfiguration(
- final IsisConfiguration isisConfiguration,
final WebAppContextPath webAppContextPath) {
- this.isisConfiguration = isisConfiguration;
this.webAppContextPath = webAppContextPath;
}
- @PostConstruct
- public void init() {
-
- this.menubarsLayoutXml = lookup(getIsisConfiguration().getViewer().getWicket().getApplication().getMenubarsLayoutXml());
-
- this.applicationCss = ignoreLeadingSlash(getIsisConfiguration().getViewer().getWicket().getApplication().getCss());
- this.applicationJs = ignoreLeadingSlash(getIsisConfiguration().getViewer().getWicket().getApplication().getJs());
-
- this.brandLogoHeader = contextPathSensitive(getIsisConfiguration().getViewer().getWicket().getApplication().getBrandLogoHeader());
- this.brandLogoSignin = contextPathSensitive(getIsisConfiguration().getViewer().getWicket().getApplication().getBrandLogoSignin());
- this.faviconUrl = contextPathSensitive(getIsisConfiguration().getViewer().getWicket().getApplication().getFaviconUrl());
-
- val welcome = getIsisConfiguration().getViewer().getWicket().getWelcome();
-
- this.welcomeMessage = ignoreLeadingSlash(welcome.getText());
-
- }
-
- private IsisConfiguration getIsisConfiguration() {
- return isisConfiguration;
- }
-
-
- // -- HELPER
-
- private String contextPathSensitive(String url) {
+ public String contextPathSensitive(String url) {
return webAppContextPath.prependContextPathIfLocal(url);
}
-
- private String ignoreLeadingSlash(String url) {
- if(url==null || url.length()<2) {
- return url;
- }
- return url.startsWith("/")
- ? url.substring(1)
- : url;
- }
-
- private ClassPathResource lookup(String path) {
- if(path == null) {
- return lookup("menubars.layout.xml"); // try lookup default name
- }
- return new ClassPathResource(path);
- }
-
}
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/menubars/MenuBarsLoaderServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/menubars/MenuBarsLoaderServiceDefault.java
index e553226..bffe94e 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/menubars/MenuBarsLoaderServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/menubars/MenuBarsLoaderServiceDefault.java
@@ -23,12 +23,15 @@ import java.util.Optional;
import javax.inject.Inject;
import javax.inject.Named;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.core.io.AbstractResource;
+import org.springframework.core.io.ClassPathResource;
import org.springframework.stereotype.Service;
import org.apache.isis.applib.annotation.OrderPrecedence;
@@ -37,6 +40,7 @@ import org.apache.isis.applib.services.jaxb.JaxbService;
import org.apache.isis.applib.services.menu.MenuBarsLoaderService;
import org.apache.isis.core.commons.internal.base._Strings;
import org.apache.isis.core.commons.internal.environment.IsisSystemEnvironment;
+import org.apache.isis.core.config.IsisConfiguration;
import org.apache.isis.core.config.viewer.wicket.WebAppConfiguration;
import lombok.val;
@@ -50,10 +54,23 @@ import lombok.extern.log4j.Log4j2;
@Log4j2
public class MenuBarsLoaderServiceDefault implements MenuBarsLoaderService {
- @Inject private IsisSystemEnvironment isisSystemEnvironment;
- @Inject private JaxbService jaxbService;
- @Autowired(required = false) private WebAppConfiguration webAppConfigBean;
-
+ private final IsisSystemEnvironment isisSystemEnvironment;
+ private final JaxbService jaxbService;
+
+ private final ClassPathResource menubarsLayoutXmlResource;
+
+ @Inject
+ public MenuBarsLoaderServiceDefault(
+ final IsisSystemEnvironment isisSystemEnvironment,
+ final JaxbService jaxbService,
+ final IsisConfiguration isisConfiguration) {
+ this.isisSystemEnvironment = isisSystemEnvironment;
+ this.jaxbService = jaxbService;
+
+ this.menubarsLayoutXmlResource =
+ new ClassPathResource(isisConfiguration.getViewer().getWicket().getApplication().getMenubarsLayoutXml());
+ }
+
@Override
public boolean supportsReloading() {
return isisSystemEnvironment.isPrototyping();
@@ -62,17 +79,8 @@ public class MenuBarsLoaderServiceDefault implements MenuBarsLoaderService {
@Override
public BS3MenuBars menuBars() {
- val menubarsLayoutResource = Optional.ofNullable(webAppConfigBean)
- .map(WebAppConfiguration::getMenubarsLayoutXml)
- .orElse(null);
-
- if(menubarsLayoutResource==null) {
- warnNotFound();
- return null;
- }
-
- val xmlString = loadMenubarsLayoutResource(menubarsLayoutResource);
- if(xmlString==null) {
+ val xmlString = loadMenubarsLayoutResource(menubarsLayoutXmlResource);
+ if(xmlString == null) {
warnNotFound();
return null;
}
@@ -121,9 +129,5 @@ public class MenuBarsLoaderServiceDefault implements MenuBarsLoaderService {
WebAppConfiguration.class.getName()),
cause);
}
-
-
-
-
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/welcome/WelcomePanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/welcome/WelcomePanel.java
index ae4a15d..40924e8 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/welcome/WelcomePanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/welcome/WelcomePanel.java
@@ -43,7 +43,7 @@ public class WelcomePanel extends PanelAbstract<WelcomeModel> {
public WelcomePanel(final String id, final WelcomeModel model) {
super(id, model);
- String welcomeMessage = webAppConfigBean.getWelcomeMessage();
+ String welcomeMessage = getIsisConfiguration().getViewer().getWicket().getWelcome().getText();
model.setObject(welcomeMessage);
final Label label = new Label(ID_MESSAGE, welcomeMessage);
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/favicon/Favicon.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/favicon/Favicon.java
index 8081f84..036b1af 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/favicon/Favicon.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/favicon/Favicon.java
@@ -43,7 +43,7 @@ public class Favicon extends WebComponent {
public Favicon(String id) {
super(id);
if(webAppConfigBean!=null) {
- url = webAppConfigBean.getFaviconUrl();
+ url = webAppConfigBean.contextPathSensitive(isisConfiguration.getViewer().getWicket().getApplication().getFaviconUrl());
contentType = isisConfiguration.getViewer().getWicket().getApplication().getFaviconContentType();
}
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/navbar/BrandLogo.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/navbar/BrandLogo.java
index 0c02212..1debc11 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/navbar/BrandLogo.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/navbar/BrandLogo.java
@@ -23,6 +23,7 @@ import javax.inject.Inject;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.html.WebComponent;
+import org.apache.isis.core.config.IsisConfiguration;
import org.apache.isis.core.config.viewer.wicket.WebAppConfiguration;
/**
@@ -34,7 +35,8 @@ public class BrandLogo extends WebComponent {
private final Placement placement;
- @Inject private WebAppConfiguration webAppConfigBean;
+ @Inject private transient WebAppConfiguration webAppConfigBean;
+ @Inject private transient IsisConfiguration isisConfiguration;
/**
* Constructor.
@@ -61,7 +63,7 @@ public class BrandLogo extends WebComponent {
}
private String url() {
- String logoHeaderUrl = webAppConfigBean.getBrandLogoHeader();
+ String logoHeaderUrl = webAppConfigBean.contextPathSensitive(isisConfiguration.getViewer().getWicket().getApplication().getBrandLogoHeader()) .getBrandLogoHeader();
String logoSigninUrl = webAppConfigBean.getBrandLogoSignin();
return placement.urlFor(logoHeaderUrl, logoSigninUrl);
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/navbar/BrandName.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/navbar/BrandName.java
index 1e69e77..7b152ef 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/navbar/BrandName.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/navbar/BrandName.java
@@ -54,8 +54,8 @@ public class BrandName extends Label {
if(webAppConfigBean!=null) {
applicationName = isisConfiguration.getViewer().getWicket().getApplication().getName();
- logoHeaderUrl = webAppConfigBean.getBrandLogoHeader();
- logoSigninUrl = webAppConfigBean.getBrandLogoSignin();
+ logoHeaderUrl = webAppConfigBean.contextPathSensitive(isisConfiguration.getViewer().getWicket().getApplication().getBrandLogoHeader());
+ logoSigninUrl = webAppConfigBean.contextPathSensitive(isisConfiguration.getViewer().getWicket().getApplication().getBrandLogoSignin());
}
setDefaultModel(Model.of(applicationName));
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
index a42901e..65e03c5 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
@@ -267,11 +267,11 @@ public abstract class PageAbstract extends WebPageBase implements ActionPromptPr
final JGrowlBehaviour jGrowlBehaviour = new JGrowlBehaviour(getCommonContext());
jGrowlBehaviour.renderFeedbackMessages(response);
- String applicationCss = getWebAppConfigBean().getApplicationCss();
+ String applicationCss = getIsisConfiguration().getViewer().getWicket().getApplication().getCss();
if(applicationCss != null) {
response.render(CssReferenceHeaderItem.forUrl(applicationCss));
}
- String applicationJs = getWebAppConfigBean().getApplicationJs();
+ String applicationJs = getIsisConfiguration().getViewer().getWicket().getApplication().getJs();
if(applicationJs != null) {
response.render(JavaScriptReferenceHeaderItem.forUrl(applicationJs));
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/AccountManagementPageAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/AccountManagementPageAbstract.java
index e25c5ee..d36d53c 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/AccountManagementPageAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/AccountManagementPageAbstract.java
@@ -116,11 +116,11 @@ public class AccountManagementPageAbstract extends WebPageBase {
response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(
BootstrapJavaScriptReference.instance())));
- String applicationCss = getWebAppConfigBean().getApplicationCss();
+ String applicationCss = getIsisConfiguration().getViewer().getWicket().getApplication().getCss();
if(applicationCss != null) {
response.render(CssReferenceHeaderItem.forUrl(applicationCss));
}
- String applicationJs = getWebAppConfigBean().getApplicationJs();
+ String applicationJs = getIsisConfiguration().getViewer().getWicket().getApplication().getJs();
if(applicationJs != null) {
response.render(JavaScriptReferenceHeaderItem.forUrl(applicationJs));
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/mmverror/MmvErrorPage.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/mmverror/MmvErrorPage.java
index 121f5d1..312d000 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/mmverror/MmvErrorPage.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/mmverror/MmvErrorPage.java
@@ -95,11 +95,11 @@ public class MmvErrorPage extends WebPageBase {
response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(Application.get().getJavaScriptLibrarySettings().getJQueryReference())));
response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(BootstrapJavaScriptReference.instance())));
- String applicationCss = getWebAppConfigBean().getApplicationCss();
+ String applicationCss = getIsisConfiguration().getViewer().getWicket().getApplication().getCss();
if(applicationCss != null) {
response.render(CssReferenceHeaderItem.forUrl(applicationCss));
}
- String applicationJs = getWebAppConfigBean().getApplicationJs();
+ String applicationJs = getIsisConfiguration().getViewer().getWicket().getApplication().getJs();
if(applicationJs != null) {
response.render(JavaScriptReferenceHeaderItem.forUrl(applicationJs));
}