From 16f8a69131773754699d24202c81da6cb13b1d45 Mon Sep 17 00:00:00 2001 From: Jens Pelzetter Date: Sat, 31 Jul 2021 17:59:25 +0200 Subject: [PATCH] * Update to Wildfly 24.0.1 * Fixed problem with Themes when not default site is available --- .../java/org/libreccm/core/CoreConstants.java | 2 ++ .../org/libreccm/theming/mvc/ThemesMvc.java | 29 +++++++++++++++---- pom.xml | 4 +-- 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/ccm-core/src/main/java/org/libreccm/core/CoreConstants.java b/ccm-core/src/main/java/org/libreccm/core/CoreConstants.java index ec5511101..2800b53b5 100644 --- a/ccm-core/src/main/java/org/libreccm/core/CoreConstants.java +++ b/ccm-core/src/main/java/org/libreccm/core/CoreConstants.java @@ -25,6 +25,8 @@ package org.libreccm.core; */ public final class CoreConstants { + public static final String BUILDIN_DEFAULT_THEME = "ccm-freemarker"; + /** * XML namespace used for XML created by and from classes in the ccm-core * module. diff --git a/ccm-core/src/main/java/org/libreccm/theming/mvc/ThemesMvc.java b/ccm-core/src/main/java/org/libreccm/theming/mvc/ThemesMvc.java index 70809320e..51915d464 100644 --- a/ccm-core/src/main/java/org/libreccm/theming/mvc/ThemesMvc.java +++ b/ccm-core/src/main/java/org/libreccm/theming/mvc/ThemesMvc.java @@ -18,6 +18,7 @@ */ package org.libreccm.theming.mvc; +import org.libreccm.core.CoreConstants; import org.libreccm.sites.Site; import org.libreccm.sites.SiteRepository; import org.libreccm.theming.ThemeInfo; @@ -34,6 +35,7 @@ import javax.enterprise.context.RequestScoped; import javax.inject.Inject; import javax.mvc.Models; import javax.servlet.ServletContext; +import javax.ws.rs.InternalServerErrorException; import javax.ws.rs.NotFoundException; import javax.ws.rs.WebApplicationException; import javax.ws.rs.core.Response; @@ -74,14 +76,28 @@ public class ThemesMvc { final String application, final String view ) { - final Site site = getSite(uriInfo); + final ThemeInfo themeInfo; + final ThemeVersion themeVersion; + if (siteRepo.findAll().isEmpty()) { + themeVersion = ThemeVersion.LIVE; + themeInfo = themes + .getTheme(CoreConstants.BUILDIN_DEFAULT_THEME, themeVersion) + .orElseThrow( + () -> new InternalServerErrorException( + "Build-in default theme not available." + ) + ); + } else { + final Site site = getSite(uriInfo); final String theme = parseThemeParam(uriInfo); - final ThemeVersion themeVersion = parsePreviewParam(uriInfo); - final ThemeInfo themeInfo = getTheme( + themeVersion = parsePreviewParam(uriInfo); + themeInfo = getTheme( site, theme, themeVersion ); + } + final ThemeManifest manifest = themeInfo.getManifest(); final Map views = manifest.getViewsOfApplication( application @@ -163,8 +179,11 @@ public class ThemesMvc { } else { site = siteRepo .findDefaultSite() - .orElseThrow(() -> new NotFoundException( - "No matching Site and no default Site.")); + .orElseThrow( + () -> new NotFoundException( + "No matching Site and no default Site." + ) + ); } return site; diff --git a/pom.xml b/pom.xml index bffe041db..e127a0c6b 100644 --- a/pom.xml +++ b/pom.xml @@ -340,7 +340,7 @@ 2.1.0.Beta1 true - 24.0.0.Final + 24.0.1.Final @@ -976,4 +976,4 @@ - \ No newline at end of file +