aboutsummaryrefslogtreecommitdiff
path: root/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui
diff options
context:
space:
mode:
Diffstat (limited to 'connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui')
-rw-r--r--connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/DefaultVelocityGuiBuilderImpl.java (renamed from connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/DefaultVelocityGUIBuilderImpl.java)61
-rw-r--r--connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/GuiBuilderConfigurationFactory.java40
-rw-r--r--connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/SpringMvcGuiFormBuilderImpl.java183
-rw-r--r--connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/StaticGuiBuilderConfiguration.java206
4 files changed, 263 insertions, 227 deletions
diff --git a/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/DefaultVelocityGUIBuilderImpl.java b/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/DefaultVelocityGuiBuilderImpl.java
index 802a22ff..7abc6fcb 100644
--- a/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/DefaultVelocityGUIBuilderImpl.java
+++ b/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/DefaultVelocityGuiBuilderImpl.java
@@ -1,6 +1,6 @@
-/*******************************************************************************
+/*
* Copyright 2018 A-SIT Plus GmbH
- * AT-specific eIDAS Connector has been developed in a cooperation between EGIZ,
+ * AT-specific eIDAS Connector has been developed in a cooperation between EGIZ,
* A-SIT Plus GmbH, A-SIT, and Graz University of Technology.
*
* Licensed under the EUPL, Version 1.2 or - as soon they will be approved by
@@ -19,7 +19,8 @@
* file for details on the various modules and licenses.
* The "NOTICE" text file is part of the distribution. Any derivative works
* that you distribute must include a readable copy of the "NOTICE" text file.
- *******************************************************************************/
+*/
+
package at.asitplus.eidas.specific.connector.gui;
import java.io.InputStream;
@@ -33,31 +34,33 @@ import at.gv.egiz.eaaf.core.exceptions.GuiBuildException;
import at.gv.egiz.eaaf.core.impl.gui.AbstractVelocityGuiFormBuilderImpl;
@Service("DefaultVelocityGUIBuilderImpl")
-public class DefaultVelocityGUIBuilderImpl extends AbstractVelocityGuiFormBuilderImpl {
- private static final Logger log = LoggerFactory.getLogger(DefaultVelocityGUIBuilderImpl.class);
-
- private static final String CLASSPATH_HTMLTEMPLATES_DIR = "templates/";
-
- public DefaultVelocityGUIBuilderImpl() throws GuiBuildException {
- super();
-
- }
-
- @Override
- protected InputStream getInternalTemplate(IVelocityGuiBuilderConfiguration config) throws GuiBuildException {
- String viewName = config.getViewName();
- log.debug("GUI template:" + viewName + " is not found in configuration directory. "
- + " Load template from project library ... ");
- String pathLocation = getInternalClasspathTemplateDir(config, CLASSPATH_HTMLTEMPLATES_DIR) + viewName;
- try {
- InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(pathLocation);
- return is;
-
- } catch (Exception e1) {
- log.error("GUI template:" + pathLocation + " is NOT loadable from classpath!", e1);
- throw new GuiBuildException("GUI template:" + pathLocation + " is NOT loadable from classpath!", e1);
-
- }
- }
+public class DefaultVelocityGuiBuilderImpl extends AbstractVelocityGuiFormBuilderImpl {
+ private static final Logger log = LoggerFactory.getLogger(DefaultVelocityGuiBuilderImpl.class);
+
+ private static final String CLASSPATH_HTMLTEMPLATES_DIR = "templates/";
+
+ public DefaultVelocityGuiBuilderImpl() throws GuiBuildException {
+ super();
+
+ }
+
+ @Override
+ protected InputStream getInternalTemplate(IVelocityGuiBuilderConfiguration config)
+ throws GuiBuildException {
+ final String viewName = config.getViewName();
+ log.debug("GUI template:" + viewName + " is not found in configuration directory. "
+ + " Load template from project library ... ");
+ final String pathLocation = getInternalClasspathTemplateDir(config, CLASSPATH_HTMLTEMPLATES_DIR)
+ + viewName;
+ try {
+ final InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(pathLocation);
+ return is;
+
+ } catch (final Exception e1) {
+ log.error("GUI template:" + pathLocation + " is NOT loadable from classpath!", e1);
+ throw new GuiBuildException("GUI template:" + pathLocation + " is NOT loadable from classpath!", e1);
+
+ }
+ }
}
diff --git a/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/GuiBuilderConfigurationFactory.java b/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/GuiBuilderConfigurationFactory.java
index 14198892..9cef3db3 100644
--- a/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/GuiBuilderConfigurationFactory.java
+++ b/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/GuiBuilderConfigurationFactory.java
@@ -1,6 +1,6 @@
-/*******************************************************************************
+/*
* Copyright 2018 A-SIT Plus GmbH
- * AT-specific eIDAS Connector has been developed in a cooperation between EGIZ,
+ * AT-specific eIDAS Connector has been developed in a cooperation between EGIZ,
* A-SIT Plus GmbH, A-SIT, and Graz University of Technology.
*
* Licensed under the EUPL, Version 1.2 or - as soon they will be approved by
@@ -19,18 +19,18 @@
* file for details on the various modules and licenses.
* The "NOTICE" text file is part of the distribution. Any derivative works
* that you distribute must include a readable copy of the "NOTICE" text file.
- *******************************************************************************/
-/*******************************************************************************
- *******************************************************************************/
+*/
+
package at.asitplus.eidas.specific.connector.gui;
import java.net.MalformedURLException;
import java.net.URI;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.io.ResourceLoader;
import org.springframework.stereotype.Service;
-import at.asitplus.eidas.specific.connector.MSeIDASNodeConstants;
+import at.asitplus.eidas.specific.connector.MsEidasNodeConstants;
import at.gv.egiz.eaaf.core.api.IRequest;
import at.gv.egiz.eaaf.core.api.gui.IGuiBuilderConfiguration;
import at.gv.egiz.eaaf.core.api.gui.IGuiBuilderConfigurationFactory;
@@ -39,17 +39,21 @@ import at.gv.egiz.eaaf.core.api.idp.IConfiguration;
@Service("GUIBuilderConfigurationFactory")
public class GuiBuilderConfigurationFactory implements IGuiBuilderConfigurationFactory {
- @Autowired(required=true) private IConfiguration basicConfig;
-
- @Override
- public IGuiBuilderConfiguration getDefaultErrorGui(String authURL) {
- return new StaticGuiBuilderConfiguration(basicConfig, authURL, MSeIDASNodeConstants.TEMPLATE_HTML_ERROR, null);
- }
-
- @Override
- public IVelocityGuiBuilderConfiguration getSpSpecificSaml2PostConfiguration(IRequest pendingReq, String viewName, URI configRootContextDir)
- throws MalformedURLException {
- return new StaticGuiBuilderConfiguration(basicConfig, pendingReq,MSeIDASNodeConstants.TEMPLATE_HTML_PVP_POSTBINDING , null);
- }
+ @Autowired(required = true) private IConfiguration basicConfig;
+ @Autowired(required = true) private ResourceLoader resourceLoader;
+
+ @Override
+ public IGuiBuilderConfiguration getDefaultErrorGui(String authUrl) {
+ return new StaticGuiBuilderConfiguration(basicConfig, authUrl, MsEidasNodeConstants.TEMPLATE_HTML_ERROR,
+ null, resourceLoader);
+ }
+
+ @Override
+ public IVelocityGuiBuilderConfiguration getSpSpecificSaml2PostConfiguration(IRequest pendingReq,
+ String viewName, URI configRootContextDir)
+ throws MalformedURLException {
+ return new StaticGuiBuilderConfiguration(basicConfig, pendingReq,
+ MsEidasNodeConstants.TEMPLATE_HTML_PVP_POSTBINDING, null, resourceLoader);
+ }
}
diff --git a/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/SpringMvcGuiFormBuilderImpl.java b/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/SpringMvcGuiFormBuilderImpl.java
index 63028db2..70ab73ad 100644
--- a/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/SpringMvcGuiFormBuilderImpl.java
+++ b/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/SpringMvcGuiFormBuilderImpl.java
@@ -11,6 +11,7 @@ import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.View;
@@ -21,90 +22,102 @@ import at.gv.egiz.eaaf.core.api.gui.ISpringMvcGuiFormBuilder;
import at.gv.egiz.eaaf.core.exceptions.GuiBuildException;
public class SpringMvcGuiFormBuilderImpl implements ISpringMvcGuiFormBuilder {
- private static final Logger log = LoggerFactory.getLogger(SpringMvcGuiFormBuilderImpl.class);
-
- private @Autowired(required=false) ViewResolver[] viewResolvers;
- private @Autowired(required=false) LocaleResolver localeResolver;
-
- @Override
- public void build(HttpServletRequest httpReq, HttpServletResponse httpResp, IGuiBuilderConfiguration config,
- String loggerName) throws GuiBuildException {
- build(httpReq, httpResp, config, null, loggerName);
-
- }
-
- @Override
- public void build(HttpServletRequest httpReq, HttpServletResponse httpResp, IGuiBuilderConfiguration config,
- String contentType, String loggerName) throws GuiBuildException {
- try {
- final ModelAndView mav = new ModelAndView(config.getViewName());
- if (config.getViewParameters() != null)
- mav.addAllObjects(config.getViewParameters());
-
- render(mav, httpReq, httpResp);
-
- } catch (final Exception e) {
- log.info("Can NOT generate GUI for illustration", e);
- throw new GuiBuildException(e.getMessage(), e);
-
- }
-
- }
-
- protected void render(ModelAndView mv, HttpServletRequest request, HttpServletResponse response) throws Exception {
- // Determine locale for request and apply it to the response.
- final Locale locale =
- (this.localeResolver != null ? this.localeResolver.resolveLocale(request) : request.getLocale());
- response.setLocale(locale);
-
- View view;
- final String viewName = mv.getViewName();
- if (viewName != null) {
- // We need to resolve the view name.
- view = resolveViewName(viewName, mv.getModelMap(), locale, request);
- if (view == null)
- throw new ServletException("Could not resolve view with name '" + mv.getViewName() + "' ");
-
- } else {
- // No need to lookup: the ModelAndView object contains the actual View object.
- view = mv.getView();
- if (view == null)
- throw new ServletException("ModelAndView [" + mv + "] neither contains a view name nor a " + "View object ");
-
- }
-
- // Delegate to the View object for rendering.
- if (log.isTraceEnabled())
- log.trace("Rendering view [" + view + "] ");
-
- try {
- if (mv.getStatus() != null)
- response.setStatus(mv.getStatus().value());
-
- view.render(mv.getModelMap(), request, response);
-
- } catch (final Exception ex) {
- if (log.isDebugEnabled())
- log.debug("Error rendering view [" + view + "]", ex);
-
- throw ex;
-
- }
-
- }
-
- protected View resolveViewName(String viewName, @Nullable Map<String, Object> model,
- Locale locale, HttpServletRequest request) throws Exception {
- if (viewResolvers != null) {
- for (final ViewResolver viewResolver : this.viewResolvers) {
- final View view = viewResolver.resolveViewName(viewName, locale);
- if (view != null)
- return view;
-
- }
- }
-
- return null;
- }
+ private static final Logger log = LoggerFactory.getLogger(SpringMvcGuiFormBuilderImpl.class);
+
+ private @Autowired(required = false) ViewResolver[] viewResolvers;
+ private @Autowired(required = false) LocaleResolver localeResolver;
+
+ @Override
+ public void build(HttpServletRequest httpReq, HttpServletResponse httpResp, IGuiBuilderConfiguration config,
+ String loggerName) throws GuiBuildException {
+ build(httpReq, httpResp, config, null, loggerName);
+
+ }
+
+ @Override
+ public void build(HttpServletRequest httpReq, HttpServletResponse httpResp, IGuiBuilderConfiguration config,
+ String contentType, String loggerName) throws GuiBuildException {
+ try {
+ final ModelAndView mav = new ModelAndView(config.getViewName());
+ if (config.getViewParameters() != null) {
+ mav.addAllObjects(config.getViewParameters());
+ }
+
+ render(mav, httpReq, httpResp);
+
+ } catch (final Exception e) {
+ log.info("Can NOT generate GUI for illustration", e);
+ throw new GuiBuildException(e.getMessage(), e);
+
+ }
+
+ }
+
+ protected void render(ModelAndView mv, HttpServletRequest request, HttpServletResponse response)
+ throws Exception {
+ // Determine locale for request and apply it to the response.
+ final Locale locale =
+ this.localeResolver != null ? this.localeResolver.resolveLocale(request) : request.getLocale();
+ response.setLocale(locale);
+
+ View view;
+ final String viewName = mv.getViewName();
+ if (viewName != null) {
+ // We need to resolve the view name.
+ view = resolveViewName(viewName, mv.getModelMap(), locale, request);
+ if (view == null) {
+ throw new ServletException("Could not resolve view with name '" + mv.getViewName() + "' ");
+ }
+
+ } else {
+ // No need to lookup: the ModelAndView object contains the actual View object.
+ view = mv.getView();
+ if (view == null) {
+ throw new ServletException("ModelAndView [" + mv + "] neither contains a view name nor a "
+ + "View object ");
+ }
+
+ }
+
+ // Delegate to the View object for rendering.
+ if (log.isTraceEnabled()) {
+ log.trace("Rendering view [{}] ", view);
+
+ }
+
+ try {
+ HttpStatus status = mv.getStatus();
+ if (status != null) {
+ response.setStatus(status.value());
+
+ }
+
+ view.render(mv.getModelMap(), request, response);
+
+ } catch (final Exception ex) {
+ if (log.isDebugEnabled()) {
+ log.debug("Error rendering view [" + view + "]", ex);
+ }
+
+ throw ex;
+
+ }
+
+ }
+
+ protected View resolveViewName(String viewName, @Nullable Map<String, Object> model,
+ Locale locale, HttpServletRequest request) throws Exception {
+ if (viewResolvers != null) {
+ for (final ViewResolver viewResolver : this.viewResolvers) {
+ final View view = viewResolver.resolveViewName(viewName, locale);
+ if (view != null) {
+ return view;
+ }
+
+ }
+ }
+
+ return null;
+ }
}
diff --git a/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/StaticGuiBuilderConfiguration.java b/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/StaticGuiBuilderConfiguration.java
index db35c6e6..65000ffa 100644
--- a/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/StaticGuiBuilderConfiguration.java
+++ b/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/StaticGuiBuilderConfiguration.java
@@ -1,6 +1,6 @@
-/*******************************************************************************
+/*
* Copyright 2018 A-SIT Plus GmbH
- * AT-specific eIDAS Connector has been developed in a cooperation between EGIZ,
+ * AT-specific eIDAS Connector has been developed in a cooperation between EGIZ,
* A-SIT Plus GmbH, A-SIT, and Graz University of Technology.
*
* Licensed under the EUPL, Version 1.2 or - as soon they will be approved by
@@ -19,25 +19,20 @@
* file for details on the various modules and licenses.
* The "NOTICE" text file is part of the distribution. Any derivative works
* that you distribute must include a readable copy of the "NOTICE" text file.
- *******************************************************************************/
-/*******************************************************************************
- *******************************************************************************/
+*/
+
package at.asitplus.eidas.specific.connector.gui;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
+import java.io.IOException;
import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
import org.apache.commons.lang.StringEscapeUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.core.io.Resource;
+import org.springframework.core.io.ResourceLoader;
-import at.asitplus.eidas.specific.connector.MSeIDASNodeConstants;
+import at.asitplus.eidas.specific.connector.MsEidasNodeConstants;
import at.gv.egiz.eaaf.core.api.IRequest;
import at.gv.egiz.eaaf.core.api.gui.GroupDefinition;
import at.gv.egiz.eaaf.core.api.gui.IVelocityGuiBuilderConfiguration;
@@ -46,87 +41,108 @@ import at.gv.egiz.eaaf.core.api.idp.IConfiguration;
import at.gv.egiz.eaaf.core.impl.gui.AbstractGuiFormBuilderConfiguration;
import at.gv.egiz.eaaf.core.impl.utils.FileUtils;
-public class StaticGuiBuilderConfiguration extends AbstractGuiFormBuilderConfiguration implements IVelocityGuiBuilderConfiguration, ModifyableGuiBuilderConfiguration {
- private static final Logger log = LoggerFactory.getLogger(StaticGuiBuilderConfiguration.class);
-
- private IRequest pendingReq = null;
- private IConfiguration basicConfig = null;
-
- public StaticGuiBuilderConfiguration(IConfiguration basicConfig, String authURL, String viewName, String formSubmitEndpoint) {
- super(authURL, viewName, formSubmitEndpoint);
- this.basicConfig = basicConfig;
- }
-
- public StaticGuiBuilderConfiguration(IConfiguration basicConfig, IRequest pendingReq, String viewName, String formSubmitEndpoint) {
- super(pendingReq.getAuthUrl(), viewName, formSubmitEndpoint);
- this.pendingReq = pendingReq;
- this.basicConfig = basicConfig;
-
- }
-
- @Override
- public String getClasspathTemplateDir() {
- return MSeIDASNodeConstants.CLASSPATH_TEMPLATE_DIR;
-
- }
-
- @Override
- public String getDefaultContentType() {
- return null;
-
- }
-
- @Override
- public InputStream getTemplate(String viewName) {
- String templateURL = MSeIDASNodeConstants.FILESYSTEM_TEMPLATE_DIR + viewName;
- try {
- String absURL = FileUtils.makeAbsoluteUrl(templateURL, this.basicConfig.getConfigurationRootDirectory());
- if (!absURL.startsWith("file:")) {
- log.warn("Path to template looks like NOT absolut: " + absURL + ". Template loading FAILED");
-
- } else {
- log.debug("Load template URL for view: " + viewName + " from: " + absURL);
- URI uri = new URL(absURL).toURI();
- return new FileInputStream(new File(uri));
-
- }
-
-
- } catch (MalformedURLException | URISyntaxException | FileNotFoundException e) {
- log.info("Can can build filesytem path to template: " + templateURL
- + " Reason: " + e.getMessage());
-
- }
-
- return null;
- }
-
- @Override
- public void putCustomParameterWithOutEscaption(GroupDefinition group, String key, Object value) {
- log.info("Add GUI-Template parameters WITHOUT escaption ARE NOT supported!!!!!");
-
- }
-
- @Override
- public void putCustomParameter(GroupDefinition group, String key, String value) {
- setViewParameter(getFromGroup(), key, StringEscapeUtils.escapeHtml(value));
-
- }
-
- @Override
- protected void putSpecificViewParameters() {
- if (pendingReq != null) {
- setViewParameter(getFromGroup(), PARAM_PENDINGREQUESTID, StringEscapeUtils.escapeHtml(pendingReq.getPendingRequestId()));
- setViewParameter(getFromGroup(), PARAM_PENDINGREQUESTID_DEPRECATED, StringEscapeUtils.escapeHtml(pendingReq.getPendingRequestId()));
-
- }
-
- }
-
- @Override
- protected GroupDefinition getFromGroup() {
- return null;
-
- }
+public class StaticGuiBuilderConfiguration extends AbstractGuiFormBuilderConfiguration implements
+ IVelocityGuiBuilderConfiguration, ModifyableGuiBuilderConfiguration {
+ private static final Logger log = LoggerFactory.getLogger(StaticGuiBuilderConfiguration.class);
+
+ private IRequest pendingReq = null;
+ private IConfiguration basicConfig = null;
+ private ResourceLoader resourceLoader;
+
+ /**
+ * Static resource configuration for GUI Builder implementations.
+ *
+ * @param basicConfig basicConfig
+ * @param authUrl Public URL of the application
+ * @param viewName Name of the template
+ * @param formSubmitEndpoint Form Submit end-point, if template contains a form.
+ * @param resourceLoader Spring ResourceLoader implementation
+ */
+ public StaticGuiBuilderConfiguration(IConfiguration basicConfig, String authUrl, String viewName,
+ String formSubmitEndpoint, ResourceLoader resourceLoader) {
+ super(authUrl, viewName, formSubmitEndpoint);
+ this.basicConfig = basicConfig;
+ this.resourceLoader = resourceLoader;
+
+ }
+
+ /**
+ * Static resource configuration for GUI Builder implementations.
+ *
+ * @param basicConfig Application configuration
+ * @param pendingReq Current pending request
+ * @param viewName Name of the template
+ * @param formSubmitEndpoint Form Submit end-point, if template contains a form.
+ * @param resourceLoader Spring ResourceLoader implementation
+ */
+ public StaticGuiBuilderConfiguration(IConfiguration basicConfig, IRequest pendingReq, String viewName,
+ String formSubmitEndpoint, ResourceLoader resourceLoader) {
+ super(pendingReq.getAuthUrl(), viewName, formSubmitEndpoint);
+ this.pendingReq = pendingReq;
+ this.basicConfig = basicConfig;
+ this.resourceLoader = resourceLoader;
+
+ }
+
+ @Override
+ public String getClasspathTemplateDir() {
+ return MsEidasNodeConstants.CLASSPATH_TEMPLATE_DIR;
+
+ }
+
+ @Override
+ public String getDefaultContentType() {
+ return null;
+
+ }
+
+ @Override
+ public InputStream getTemplate(String viewName) {
+ final String templateUrl = MsEidasNodeConstants.FILESYSTEM_TEMPLATE_DIR + viewName;
+ try {
+ final String absUrl = FileUtils.makeAbsoluteUrl(templateUrl, this.basicConfig
+ .getConfigurationRootDirectory());
+ log.debug("Load template URL for view: " + viewName + " from: " + absUrl);
+ Resource resource = resourceLoader.getResource(absUrl);
+ return resource.getInputStream();
+
+ } catch (IOException e) {
+ log.info("Can can build filesytem path to template: " + templateUrl
+ + " Reason: " + e.getMessage());
+
+ }
+
+ return null;
+ }
+
+ @Override
+ public void putCustomParameterWithOutEscaption(GroupDefinition group, String key, Object value) {
+ log.info("Add GUI-Template parameters WITHOUT escaption ARE NOT supported!!!!!");
+
+ }
+
+ @Override
+ public void putCustomParameter(GroupDefinition group, String key, String value) {
+ setViewParameter(getFromGroup(), key, StringEscapeUtils.escapeHtml(value));
+
+ }
+
+ @Override
+ protected void putSpecificViewParameters() {
+ if (pendingReq != null) {
+ setViewParameter(getFromGroup(), PARAM_PENDINGREQUESTID, StringEscapeUtils.escapeHtml(pendingReq
+ .getPendingRequestId()));
+ setViewParameter(getFromGroup(), PARAM_PENDINGREQUESTID_DEPRECATED, StringEscapeUtils.escapeHtml(
+ pendingReq.getPendingRequestId()));
+
+ }
+
+ }
+
+ @Override
+ protected GroupDefinition getFromGroup() {
+ return null;
+
+ }
}