From e0ee5a8594416e68261fe57b4267385f141de947 Mon Sep 17 00:00:00 2001 From: GedMarc Date: Sun, 2 Jun 2024 00:30:41 +0200 Subject: [PATCH] Build Updates --- src/main/java/com/jwebmp/core/Page.java | 6 +- .../page/CSSLinksInsertPageConfigurator.java | 162 ++++++------- .../page/ScriptsDynamicPageConfigurator.java | 7 +- .../page/ScriptsInsertPageConfigurator.java | 217 +++++++++--------- .../InstanceManagementPageTest.java | 10 +- 5 files changed, 196 insertions(+), 206 deletions(-) diff --git a/src/main/java/com/jwebmp/core/Page.java b/src/main/java/com/jwebmp/core/Page.java index d8b9f7a6..9e2deeaa 100644 --- a/src/main/java/com/jwebmp/core/Page.java +++ b/src/main/java/com/jwebmp/core/Page.java @@ -41,12 +41,11 @@ import net.sf.uadetector.ReadableUserAgent; import java.util.EnumSet; -import java.util.LinkedHashSet; +import java.util.ServiceLoader; import java.util.Set; import java.util.logging.Level; import static com.guicedee.services.jsonrepresentation.json.StaticStrings.STRING_SEMICOLON; -import static com.jwebmp.core.implementations.JWebMPServicesBindings.IPageConfiguratorsKey; /** * Top level of any HTML page. @@ -531,7 +530,8 @@ private boolean isHeadEmpty() private void configurePage() { @SuppressWarnings("rawtypes") - Set sortedConfigurators = new LinkedHashSet<>(IGuiceContext.get(IPageConfiguratorsKey)); + Set sortedConfigurators = IGuiceContext.loaderToSetNoInjection(ServiceLoader.load(IPageConfigurator.class)); + //new LinkedHashSet<>(IGuiceContext.get(IPageConfiguratorsKey)); sortedConfigurators.removeIf(a -> !a.enabled()); for (IPageConfigurator sortedConfigurator : sortedConfigurators) { diff --git a/src/main/java/com/jwebmp/core/base/page/CSSLinksInsertPageConfigurator.java b/src/main/java/com/jwebmp/core/base/page/CSSLinksInsertPageConfigurator.java index 664be54c..1e3a8c46 100644 --- a/src/main/java/com/jwebmp/core/base/page/CSSLinksInsertPageConfigurator.java +++ b/src/main/java/com/jwebmp/core/base/page/CSSLinksInsertPageConfigurator.java @@ -1,101 +1,101 @@ package com.jwebmp.core.base.page; -import com.guicedee.client.*; +import com.guicedee.client.IGuiceContext; import com.jwebmp.core.Page; import com.jwebmp.core.base.ComponentHierarchyBase; import com.jwebmp.core.base.html.Paragraph; import com.jwebmp.core.base.servlets.enumarations.RequirementsPriority; -import com.jwebmp.core.services.*; - - +import com.jwebmp.core.services.IPage; +import com.jwebmp.core.services.RenderAfterLinks; +import com.jwebmp.core.services.RenderBeforeLinks; import jakarta.validation.constraints.NotNull; -import java.util.Set; -import static com.jwebmp.core.implementations.JWebMPServicesBindings.*; +import java.util.ServiceLoader; +import java.util.Set; /** * Inserts the CSS Links into the page */ @SuppressWarnings("unused") public class CSSLinksInsertPageConfigurator - extends RequirementsPriorityAbstractInsertPageConfigurator + extends RequirementsPriorityAbstractInsertPageConfigurator { - /** - * Constructor CSSLinksInsertPageConfigurator creates a new CSSLinksInsertPageConfigurator instance. - */ - public CSSLinksInsertPageConfigurator() - { - //No config required - } + /** + * Constructor CSSLinksInsertPageConfigurator creates a new CSSLinksInsertPageConfigurator instance. + */ + public CSSLinksInsertPageConfigurator() + { + //No config required + } - @NotNull - @Override - public Page configure(IPage pager) - { - Page page = (Page)pager; - if (!page.isConfigured() && enabled()) - { - renderBeforeLinks(page); - for (RequirementsPriority requirementsPriority : RequirementsPriority.values()) - { - page.getHead() - .getChildren() - .addAll(getAllCssLinks(page, requirementsPriority)); - } - for (Object o : page.getHead() - .getChildren()) - { - ComponentHierarchyBase headObject = (ComponentHierarchyBase) o; - headObject.preConfigure(); - } - renderAfterLinks(page); - } - return page; - } + @NotNull + @Override + public Page configure(IPage pager) + { + Page page = (Page) pager; + if (!page.isConfigured() && enabled()) + { + renderBeforeLinks(page); + for (RequirementsPriority requirementsPriority : RequirementsPriority.values()) + { + page.getHead() + .getChildren() + .addAll(getAllCssLinks(page, requirementsPriority)); + } + for (Object o : page.getHead() + .getChildren()) + { + ComponentHierarchyBase headObject = (ComponentHierarchyBase) o; + headObject.preConfigure(); + } + renderAfterLinks(page); + } + return page; + } - private void renderBeforeLinks(Page page) - { - Set renderB = IGuiceContext.get(RenderBeforeLinksKey); - Paragraph before = new Paragraph<>().setTextOnly(true); - for (RenderBeforeLinks render : renderB) - { - before.setText(before.getText(0) - .toString() + render.render(page) - .toString()); - } - if (before.getText(0) - .toString() - .trim() - .length() > 0) - { - page.getHead() - .add(before); - } - } + private void renderBeforeLinks(Page page) + { + Set renderB = IGuiceContext.loaderToSetNoInjection(ServiceLoader.load(RenderBeforeLinks.class));//.get(RenderBeforeLinksKey); + Paragraph before = new Paragraph<>().setTextOnly(true); + for (RenderBeforeLinks render : renderB) + { + before.setText(before.getText(0) + .toString() + render.render(page) + .toString()); + } + if (before.getText(0) + .toString() + .trim() + .length() > 0) + { + page.getHead() + .add(before); + } + } - private void renderAfterLinks(Page page) - { - Set renderA = IGuiceContext.get(RenderAfterLinksKey); - Paragraph after = new Paragraph<>().setTextOnly(true); - for (RenderAfterLinks render : renderA) - { - after.setText(after.getText(0) - .toString() + render.render(page) - .toString()); - } - if (after.getText(0) - .toString() - .trim() - .length() > 0) - { - page.getHead() - .add(after); - } - } + private void renderAfterLinks(Page page) + { + Set renderA = IGuiceContext.loaderToSetNoInjection(ServiceLoader.load(RenderAfterLinks.class));//.get(RenderAfterLinksKey); + Paragraph after = new Paragraph<>().setTextOnly(true); + for (RenderAfterLinks render : renderA) + { + after.setText(after.getText(0) + .toString() + render.render(page) + .toString()); + } + if (after.getText(0) + .toString() + .trim() + .length() > 0) + { + page.getHead() + .add(after); + } + } - @Override - public Integer sortOrder() - { - return Integer.MAX_VALUE - 10; - } + @Override + public Integer sortOrder() + { + return Integer.MAX_VALUE - 10; + } } diff --git a/src/main/java/com/jwebmp/core/base/page/ScriptsDynamicPageConfigurator.java b/src/main/java/com/jwebmp/core/base/page/ScriptsDynamicPageConfigurator.java index 953efc1e..c68d03cb 100644 --- a/src/main/java/com/jwebmp/core/base/page/ScriptsDynamicPageConfigurator.java +++ b/src/main/java/com/jwebmp/core/base/page/ScriptsDynamicPageConfigurator.java @@ -16,9 +16,6 @@ import java.util.ServiceLoader; import java.util.Set; -import static com.jwebmp.core.implementations.JWebMPServicesBindings.RenderAfterDynamicScriptsKey; -import static com.jwebmp.core.implementations.JWebMPServicesBindings.RenderBeforeDynamicScriptsKey; - /** * Configures the dynamic script insertions that run last into the page * @@ -83,7 +80,7 @@ public Page configure(IPage pager) //Render Before Dynamic Scripts Paragraph beforeText = new Paragraph().setTextOnly(true); StringBuilder sbBeforeText = new StringBuilder(); - Set beforeLoader = IGuiceContext.get(RenderBeforeDynamicScriptsKey); + Set beforeLoader = IGuiceContext.loaderToSetNoInjection(ServiceLoader.load(RenderBeforeDynamicScripts.class));// get(RenderBeforeDynamicScriptsKey); for (RenderBeforeDynamicScripts renderAfterDynamicScripts : beforeLoader) { sbBeforeText.append(IGuiceContext.get(renderAfterDynamicScripts.getClass()) @@ -155,7 +152,7 @@ public Page configure(IPage pager) //Render After Dynamic Scripts Paragraph afterText = new Paragraph().setTextOnly(true); StringBuilder sbAfterText = new StringBuilder(); - Set afterLoader = IGuiceContext.get(RenderAfterDynamicScriptsKey); + Set afterLoader = IGuiceContext.loaderToSetNoInjection(ServiceLoader.load(RenderAfterDynamicScripts.class));//.get(RenderAfterDynamicScriptsKey); for (RenderAfterDynamicScripts renderAfterDynamicScripts : afterLoader) { sbAfterText.append(IGuiceContext diff --git a/src/main/java/com/jwebmp/core/base/page/ScriptsInsertPageConfigurator.java b/src/main/java/com/jwebmp/core/base/page/ScriptsInsertPageConfigurator.java index b9d88359..2877ac49 100644 --- a/src/main/java/com/jwebmp/core/base/page/ScriptsInsertPageConfigurator.java +++ b/src/main/java/com/jwebmp/core/base/page/ScriptsInsertPageConfigurator.java @@ -18,130 +18,125 @@ package com.jwebmp.core.base.page; -import com.guicedee.client.*; +import com.guicedee.client.IGuiceContext; import com.jwebmp.core.Page; import com.jwebmp.core.base.html.Paragraph; import com.jwebmp.core.base.html.interfaces.GlobalChildren; import com.jwebmp.core.base.interfaces.IComponentHierarchyBase; import com.jwebmp.core.base.servlets.enumarations.RequirementsPriority; -import com.jwebmp.core.services.*; +import com.jwebmp.core.services.IPage; +import com.jwebmp.core.services.RenderAfterScripts; +import com.jwebmp.core.services.RenderBeforeScripts; import jakarta.validation.constraints.NotNull; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Set; - -import static com.jwebmp.core.implementations.JWebMPServicesBindings.RenderAfterScriptsKey; -import static com.jwebmp.core.implementations.JWebMPServicesBindings.RenderBeforeScriptsKey; +import java.util.*; public class ScriptsInsertPageConfigurator - extends RequirementsPriorityAbstractInsertPageConfigurator + extends RequirementsPriorityAbstractInsertPageConfigurator { - public ScriptsInsertPageConfigurator() - { - //No config required - } + public ScriptsInsertPageConfigurator() + { + //No config required + } + + @NotNull + @Override + public Page configure(IPage pager) + { + Page page = (Page) pager; + if (!page.isConfigured() && enabled()) + { + IComponentHierarchyBase addable; + if (page.getOptions() + .isScriptsInHead()) + { + addable = page.getHead(); + } + else + { + addable = page.getBody(); + } + + //noinspection unchecked + getScripts(page, (IComponentHierarchyBase) addable); + for (Object o : page.getHead() + .getChildren()) + { + IComponentHierarchyBase headObject = (IComponentHierarchyBase) o; + headObject.preConfigure(); + } + } + return page; + } + + private void getScripts(Page page, IComponentHierarchyBase scriptAddTo) + { + renderBeforeScripts(scriptAddTo); + addScriptsTo(page, scriptAddTo); + renderAfterScripts(scriptAddTo); + } - @NotNull - @Override - public Page configure(IPage pager) - { - Page page = (Page)pager; - if (!page.isConfigured() && enabled()) - { - IComponentHierarchyBase addable; - if (page.getOptions() - .isScriptsInHead()) - { - addable = page.getHead(); - } - else - { - addable = page.getBody(); - } - - //noinspection unchecked - getScripts(page, (IComponentHierarchyBase) addable); - for (Object o : page.getHead() - .getChildren()) - { - IComponentHierarchyBase headObject = (IComponentHierarchyBase) o; - headObject.preConfigure(); - } - } - return page; - } + private void renderBeforeScripts(IComponentHierarchyBase scriptAddTo) + { + Set renderB = IGuiceContext.loaderToSetNoInjection(ServiceLoader.load(RenderBeforeScripts.class));//.get(RenderBeforeScriptsKey); + Paragraph before = new Paragraph<>().setTextOnly(true); + renderB.forEach(render -> before.setText(before.getText(0) + .toString() + render.render(scriptAddTo.getPage()) + .toString())); + if (before.getText(0) + .toString() + .trim() + .length() > 0) + { + scriptAddTo.add(before); + } + } - private void getScripts(Page page, IComponentHierarchyBase scriptAddTo) - { - renderBeforeScripts(scriptAddTo); - addScriptsTo(page, scriptAddTo); - renderAfterScripts(scriptAddTo); - } - - private void renderBeforeScripts(IComponentHierarchyBase scriptAddTo) - { - Set renderB = IGuiceContext.get(RenderBeforeScriptsKey); - Paragraph before = new Paragraph<>().setTextOnly(true); - renderB.forEach(render -> before.setText(before.getText(0) - .toString() + render.render(scriptAddTo.getPage()) - .toString())); - if (before.getText(0) - .toString() - .trim() - .length() > 0) - { - scriptAddTo.add(before); - } - } + /** + * Adds scripts to a component, ordered by priority and sort order. + *

+ * Does not do top shelf + * + * @param component The component to add scripts to + */ + private void addScriptsTo(Page page, IComponentHierarchyBase component) + { + List> requirements = new ArrayList<>(); - /** - * Adds scripts to a component, ordered by priority and sort order. - *

- * Does not do top shelf - * - * @param component - * The component to add scripts to - */ - private void addScriptsTo(Page page, IComponentHierarchyBase component) - { - List> requirements = new ArrayList<>(); + List arrs = new ArrayList<>(Arrays.asList(RequirementsPriority.values())); + for (RequirementsPriority priority : arrs) + { + if (priority.equals(RequirementsPriority.Top_Shelf)) + { + continue; + } + List> alls = getPriorityRequirements(page, priority, requirements, false, true); + alls.forEach(component::add); + } + } - List arrs = new ArrayList<>(Arrays.asList(RequirementsPriority.values())); - for (RequirementsPriority priority : arrs) - { - if (priority.equals(RequirementsPriority.Top_Shelf)) - { - continue; - } - List> alls = getPriorityRequirements(page, priority, requirements, false, true); - alls.forEach(component::add); - } - } - - private void renderAfterScripts(IComponentHierarchyBase scriptAddTo) - { - Set renderA = IGuiceContext.get(RenderAfterScriptsKey); - Paragraph after = new Paragraph<>().setTextOnly(true); - for (RenderAfterScripts render : renderA) - { - after.setText(after.getText(0) - .toString() + render.render(scriptAddTo.getPage()) - .toString()); - } - if (after.getText(0) - .toString() - .trim() - .length() > 0) - { - scriptAddTo.add(after); - } - } + private void renderAfterScripts(IComponentHierarchyBase scriptAddTo) + { + Set renderA = IGuiceContext.loaderToSetNoInjection(ServiceLoader.load(RenderAfterScripts.class));//.get(RenderAfterScriptsKey); + Paragraph after = new Paragraph<>().setTextOnly(true); + for (RenderAfterScripts render : renderA) + { + after.setText(after.getText(0) + .toString() + render.render(scriptAddTo.getPage()) + .toString()); + } + if (after.getText(0) + .toString() + .trim() + .length() > 0) + { + scriptAddTo.add(after); + } + } - @Override - public Integer sortOrder() - { - return Integer.MAX_VALUE - 8; - } + @Override + public Integer sortOrder() + { + return Integer.MAX_VALUE - 8; + } } diff --git a/src/test/java/com/jwebmp/implementations/InstanceManagementPageTest.java b/src/test/java/com/jwebmp/implementations/InstanceManagementPageTest.java index 231a34c1..19ea84b9 100644 --- a/src/test/java/com/jwebmp/implementations/InstanceManagementPageTest.java +++ b/src/test/java/com/jwebmp/implementations/InstanceManagementPageTest.java @@ -1,8 +1,6 @@ package com.jwebmp.implementations; -import com.guicedee.client.IGuiceContext; -import com.jwebmp.BaseTestClass; import com.jwebmp.testing.BaseTest; import com.jwebmp.testing.services.ITestInstanceDestroyService; import com.jwebmp.testing.services.ITestInstanceInitializerService; @@ -21,21 +19,21 @@ public void reset(BaseTest testInstance) @Override public void destroy(BaseTest testInstance) { - if (BaseTestClass.class.isAssignableFrom(testInstance.getClass())) + /* if (BaseTestClass.class.isAssignableFrom(testInstance.getClass())) { ((BaseTestClass) testInstance) .getInstance() .destroy(); } IGuiceContext.instance() - .destroy(); + .destroy();*/ } @Override public void initialize(BaseTest testInstance) { - IGuiceContext.instance() - .inject(); + // IGuiceContext.instance() + // .inject(); } @Override