diff --git a/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java b/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java index 4a753631e..51d1b60af 100644 --- a/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java +++ b/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java @@ -90,7 +90,7 @@ public class Dispatcher { new ArrayList(); private ConfigurationManager configurationManager; - private boolean portletSupportActive; + private static boolean portletSupportActive; private boolean devMode = false; // used to get WebLogic to play nice @@ -250,17 +250,6 @@ public class Dispatcher { LOG.debug("Parameter access work-around disabled."); } - // Check whether portlet support is active or not by trying to get "javax.portlet.PortletRequest" - try { - ClassLoaderUtil.loadClass("javax.portlet.PortletRequest", Dispatcher.class); - portletSupportActive = true; - if (LOG.isInfoEnabled()) { - LOG.info("Found portlet-api. Activating Struts's portlet support"); - } - } catch (ClassNotFoundException e) { - LOG.debug("Unable to locate the portlet libraries. Disabling portlet support."); - } - configurationManager = new ConfigurationManager(); // Load old xwork files @@ -610,7 +599,15 @@ public class Dispatcher { public boolean isPortletSupportActive() { return portletSupportActive; } - + + /** + * Set the flag that portlet support is active or not. + * @param portletSupportActive true or false + */ + public static void setPortletSupportActive(boolean portletSupportActive) { + Dispatcher.portletSupportActive = portletSupportActive; + } + /** Simple accessor for a static method */ public class Locator { public Location getLocation(Object obj) { diff --git a/core/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java b/core/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java index c1da834a3..3ca7a317b 100644 --- a/core/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java +++ b/core/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java @@ -60,6 +60,7 @@ import com.opensymphony.xwork2.ActionProxy; import com.opensymphony.xwork2.ActionProxyFactory; import com.opensymphony.xwork2.ObjectFactory; import com.opensymphony.xwork2.config.ConfigurationException; +import com.opensymphony.xwork2.config.Configuration; import com.opensymphony.xwork2.util.LocalizedTextUtil; import com.opensymphony.xwork2.util.OgnlValueStack; @@ -168,6 +169,8 @@ public class Jsr168Dispatcher extends GenericPortlet implements StrutsStatics, private Dispatcher dispatcherUtils; + private boolean devMode = false; + /** * Initialize the portlet with the init parameters from portlet.xml */ @@ -208,6 +211,12 @@ public class Jsr168Dispatcher extends GenericPortlet implements StrutsStatics, FileManager.setReloadingConfigs(true); } + if ("true".equalsIgnoreCase(Settings.get(StrutsConstants.STRUTS_DEVMODE))) { + devMode = true; + Settings.set(StrutsConstants.STRUTS_I18N_RELOAD, "true"); + Settings.set(StrutsConstants.STRUTS_CONFIGURATION_XML_RELOAD, "true"); + } + if (Settings.isSet(StrutsConstants.STRUTS_OBJECTFACTORY)) { String className = (String) Settings .get(StrutsConstants.STRUTS_OBJECTFACTORY); @@ -237,7 +246,7 @@ public class Jsr168Dispatcher extends GenericPortlet implements StrutsStatics, + ". Using default ObjectFactory.", e); } } - + Dispatcher.setPortletSupportActive(true); dispatcherUtils = new Dispatcher(ServletContextHolderListener.getServletContext()); }