From 02851082661a924adc68230615f61a308705ce2b Mon Sep 17 00:00:00 2001 From: Thomas Lenz Date: Tue, 23 Apr 2019 15:00:40 +0200 Subject: integrate Spring ModelAndView into EAAF GUI framework --- .../core/api/gui/IGUIBuilderConfiguration.java | 18 ------ .../api/gui/IGUIBuilderConfigurationFactory.java | 2 +- .../gv/egiz/eaaf/core/api/gui/IGUIFormBuilder.java | 38 +++---------- .../core/api/gui/ISpringMVCGUIFormBuilder.java | 5 ++ .../api/gui/IVelocityGUIBuilderConfiguration.java | 22 ++++++++ .../eaaf/core/api/gui/IVelocityGuiFormBuilder.java | 66 ++++++++++++++++++++++ 6 files changed, 103 insertions(+), 48 deletions(-) create mode 100644 eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/gui/ISpringMVCGUIFormBuilder.java create mode 100644 eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/gui/IVelocityGUIBuilderConfiguration.java create mode 100644 eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/gui/IVelocityGuiFormBuilder.java (limited to 'eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api') diff --git a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/gui/IGUIBuilderConfiguration.java b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/gui/IGUIBuilderConfiguration.java index 483ea6ef..82d82a3a 100644 --- a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/gui/IGUIBuilderConfiguration.java +++ b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/gui/IGUIBuilderConfiguration.java @@ -26,7 +26,6 @@ *******************************************************************************/ package at.gv.egiz.eaaf.core.api.gui; -import java.io.InputStream; import java.util.Map; /** @@ -50,23 +49,6 @@ public interface IGUIBuilderConfiguration { */ public Map getViewParameters(); - - /** - * Get a specific classpath template-directory prefix, which is used - * to load a template from classpath by using ClassLoader.getResourceAsStream(...) - * - * @return Classpath directory, or null if the default directory should be used - */ - public String getClasspathTemplateDir(); - - /** - * Get the GUI template with a specific name - * - * @param viewName Name of the template - * @return Tempate as InputStream, or null if default getTemplate method should be used - */ - public InputStream getTemplate(String viewName); - /** * Get the contentType, which should be set in HTTP response *

diff --git a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/gui/IGUIBuilderConfigurationFactory.java b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/gui/IGUIBuilderConfigurationFactory.java index a569f507..1776a630 100644 --- a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/gui/IGUIBuilderConfigurationFactory.java +++ b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/gui/IGUIBuilderConfigurationFactory.java @@ -48,7 +48,7 @@ public interface IGUIBuilderConfigurationFactory { * @return * @throws MalformedURLException If configRootContextDir is not a valid URI */ - public IGUIBuilderConfiguration getSPSpecificSAML2PostConfiguration(IRequest pendingReq, String viewName, URI configRootContextDir) + public IVelocityGUIBuilderConfiguration getSPSpecificSAML2PostConfiguration(IRequest pendingReq, String viewName, URI configRootContextDir) throws MalformedURLException; } diff --git a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/gui/IGUIFormBuilder.java b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/gui/IGUIFormBuilder.java index aa7fd99b..7730e516 100644 --- a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/gui/IGUIFormBuilder.java +++ b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/gui/IGUIFormBuilder.java @@ -26,12 +26,9 @@ *******************************************************************************/ package at.gv.egiz.eaaf.core.api.gui; -import java.io.InputStream; - +import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.apache.velocity.VelocityContext; - import at.gv.egiz.eaaf.core.exceptions.GUIBuildException; /** @@ -40,55 +37,38 @@ import at.gv.egiz.eaaf.core.exceptions.GUIBuildException; */ public interface IGUIFormBuilder { + + /** * Parse a GUI template, with parameters into a http servlet-response * and use the default http-response content-type. *

* The parser use the VelocityEngine as internal template evaluator. * + * @param httpReq http-request object * @param httpResp http-response object - * @param viewName Name of the template (with suffix), which should be used. - * The template is selected by using the getTemplate(String viewName) method - * @param viewParams Map of parameters, which should be added to template + * @param config Configuration object * @param loggerName String, which should be used from logger * * @throws GUIBuildException */ - public void build(HttpServletResponse httpResp, IGUIBuilderConfiguration config, String loggerName) throws GUIBuildException; + public void build(HttpServletRequest httpReq, HttpServletResponse httpResp, IGUIBuilderConfiguration config, String loggerName) throws GUIBuildException; /** * Parse a GUI template, with parameters into a http servlet-response. *

* The parser use the VelocityEngine as internal template evaluator. * + * @param httpReq http-request object * @param httpResp http-response object - * @param viewName Name of the template (with suffix), which should be used. - * The template is selected by using the getTemplate(String viewName) method - * @param viewParams Map of parameters, which should be added to template + * @param config Configuration object * @param contentType http-response content-type, which should be set * @param loggerName String, which should be used from logger * * @throws GUIBuildException */ - void build(HttpServletResponse httpResp, IGUIBuilderConfiguration config, String contentType, + void build(HttpServletRequest httpReq, HttpServletResponse httpResp, IGUIBuilderConfiguration config, String contentType, String loggerName) throws GUIBuildException; - - /** - * Generate a new {@link VelocityContext} and populate it with MOA-ID GUI parameters - * - * @param config - * @return - */ - public VelocityContext generateVelocityContextFromConfiguration(IGUIBuilderConfiguration config); - - /** - * Load the template from different resources - * - * @param config - * @return An {@link InputStream} but never null. The {@link InputStream} had to be closed be the invoking method - * @throws GUIBuildException - */ - public InputStream getTemplateInputStream(IGUIBuilderConfiguration config) throws GUIBuildException; } diff --git a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/gui/ISpringMVCGUIFormBuilder.java b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/gui/ISpringMVCGUIFormBuilder.java new file mode 100644 index 00000000..e759b253 --- /dev/null +++ b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/gui/ISpringMVCGUIFormBuilder.java @@ -0,0 +1,5 @@ +package at.gv.egiz.eaaf.core.api.gui; + +public interface ISpringMVCGUIFormBuilder extends IGUIFormBuilder{ + +} diff --git a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/gui/IVelocityGUIBuilderConfiguration.java b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/gui/IVelocityGUIBuilderConfiguration.java new file mode 100644 index 00000000..e56bf1af --- /dev/null +++ b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/gui/IVelocityGUIBuilderConfiguration.java @@ -0,0 +1,22 @@ +package at.gv.egiz.eaaf.core.api.gui; + +import java.io.InputStream; + +public interface IVelocityGUIBuilderConfiguration extends IGUIBuilderConfiguration { + /** + * Get a specific classpath template-directory prefix, which is used + * to load a template from classpath by using ClassLoader.getResourceAsStream(...) + * + * @return Classpath directory, or null if the default directory should be used + */ + public String getClasspathTemplateDir(); + + /** + * Get the GUI template with a specific name + * + * @param viewName Name of the template + * @return Tempate as InputStream, or null if default getTemplate method should be used + */ + public InputStream getTemplate(String viewName); + +} diff --git a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/gui/IVelocityGuiFormBuilder.java b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/gui/IVelocityGuiFormBuilder.java new file mode 100644 index 00000000..103b38d9 --- /dev/null +++ b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/gui/IVelocityGuiFormBuilder.java @@ -0,0 +1,66 @@ +package at.gv.egiz.eaaf.core.api.gui; + +import java.io.InputStream; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.velocity.VelocityContext; + +import at.gv.egiz.eaaf.core.exceptions.GUIBuildException; + +public interface IVelocityGuiFormBuilder extends IGUIFormBuilder { + + + /** + * Generate a new {@link VelocityContext} and populate it with MOA-ID GUI parameters + * + * @param config + * @return + */ + public VelocityContext generateVelocityContextFromConfiguration(IVelocityGUIBuilderConfiguration config); + + + /** + * Load the template from different resources + * + * @param config + * @return An {@link InputStream} but never null. The {@link InputStream} had to be closed be the invoking method + * @throws GUIBuildException + */ + public InputStream getTemplateInputStream(IVelocityGUIBuilderConfiguration config) throws GUIBuildException; + + + /** + * Parse a GUI template, with parameters into a http servlet-response + * and use the default http-response content-type. + *

+ * The parser use the VelocityEngine as internal template evaluator. + * + * @param httpReq http-request object + * @param httpResp http-response object + * @param config Configuration object + * @param loggerName String, which should be used from logger + * + * @throws GUIBuildException + */ + void build(HttpServletRequest httpReq, HttpServletResponse httpResp, IVelocityGUIBuilderConfiguration config, String loggerName) + throws GUIBuildException; + + + /** + * Parse a GUI template, with parameters into a http servlet-response. + *

+ * The parser use the VelocityEngine as internal template evaluator. + * + * @param httpReq http-request object + * @param httpResp http-response object + * @param config Configuration object + * @param contentType http-response content-type, which should be set + * @param loggerName String, which should be used from logger + * + * @throws GUIBuildException + */ + void build(HttpServletRequest httpReq, HttpServletResponse httpResp, IVelocityGUIBuilderConfiguration config, String contentType, + String loggerName) throws GUIBuildException; +} -- cgit v1.2.3