You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by mr...@apache.org on 2007/01/21 00:59:11 UTC
svn commit: r498215 - in /struts/struts2/trunk/core/src:
main/java/org/apache/struts2/config/ main/java/org/apache/struts2/dispatcher/
main/java/org/apache/struts2/portlet/dispatcher/
test/java/org/apache/struts2/config/ test/java/org/apache/struts2/po...
Author: mrdon
Date: Sat Jan 20 15:59:10 2007
New Revision: 498215
URL: http://svn.apache.org/viewvc?view=rev&rev=498215
Log:
Split properties loading so that struts.properties can override plugin properties
WW-1666
Added:
struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/DefaultPropertiesProvider.java
Modified:
struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/BeanSelectionProvider.java
struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/DefaultSettings.java
struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/LegacyPropertiesConfigurationProvider.java
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
struts/struts2/trunk/core/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java
struts/struts2/trunk/core/src/test/java/org/apache/struts2/config/SettingsTest.java
struts/struts2/trunk/core/src/test/java/org/apache/struts2/portlet/dispatcher/Jsr168DispatcherTest.java
Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/BeanSelectionProvider.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/BeanSelectionProvider.java?view=diff&rev=498215&r1=498214&r2=498215
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/BeanSelectionProvider.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/BeanSelectionProvider.java Sat Jan 20 15:59:10 2007
@@ -162,6 +162,10 @@
if ("true".equalsIgnoreCase(props.getProperty(StrutsConstants.STRUTS_DEVMODE))) {
props.setProperty(StrutsConstants.STRUTS_I18N_RELOAD, "true");
props.setProperty(StrutsConstants.STRUTS_CONFIGURATION_XML_RELOAD, "true");
+ // Convert struts properties into ones that xwork expects
+ props.setProperty("devMode", "true");
+ } else {
+ props.setProperty("devMode", "false");
}
}
Added: struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/DefaultPropertiesProvider.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/DefaultPropertiesProvider.java?view=auto&rev=498215
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/DefaultPropertiesProvider.java (added)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/DefaultPropertiesProvider.java Sat Jan 20 15:59:10 2007
@@ -0,0 +1,52 @@
+/*
+ * $Id: DefaultActionMapper.java 498085 2007-01-20 08:13:11Z mrdon $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.struts2.config;
+
+import com.opensymphony.xwork2.config.Configuration;
+import com.opensymphony.xwork2.config.ConfigurationException;
+import com.opensymphony.xwork2.inject.ContainerBuilder;
+import com.opensymphony.xwork2.util.location.LocatableProperties;
+
+/**
+ * Loads the default properties, separate from the usual struts.properties loading
+ */
+public class DefaultPropertiesProvider extends LegacyPropertiesConfigurationProvider {
+
+ public void destroy() {
+ }
+
+ public void init(Configuration configuration) throws ConfigurationException {
+ }
+
+ public void register(ContainerBuilder builder, LocatableProperties props)
+ throws ConfigurationException {
+
+ Settings defaultSettings = null;
+ try {
+ defaultSettings = new PropertiesSettings("org/apache/struts2/default");
+ } catch (Exception e) {
+ throw new ConfigurationException("Could not find or error in org/apache/struts2/default.properties", e);
+ }
+
+ loadSettings(props, defaultSettings);
+ }
+
+}
Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/DefaultSettings.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/DefaultSettings.java?view=diff&rev=498215&r1=498214&r2=498215
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/DefaultSettings.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/DefaultSettings.java Sat Jan 20 15:59:10 2007
@@ -69,12 +69,6 @@
log.warn("DefaultSettings: Could not find or error in struts.properties", e);
}
- try {
- list.add(new PropertiesSettings("org/apache/struts2/default"));
- } catch (Exception e) {
- log.error("DefaultSettings: Could not find or error in org/apache/struts2/default.properties", e);
- }
-
Settings[] settings = new Settings[list.size()];
delegate = new DelegatingSettings(list.toArray(settings));
Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/LegacyPropertiesConfigurationProvider.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/LegacyPropertiesConfigurationProvider.java?view=diff&rev=498215&r1=498214&r2=498215
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/LegacyPropertiesConfigurationProvider.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/LegacyPropertiesConfigurationProvider.java Sat Jan 20 15:59:10 2007
@@ -66,15 +66,7 @@
final Settings settings = Settings.getInstance();
- for (Iterator i = settings.list(); i.hasNext(); ) {
- String name = (String) i.next();
- props.setProperty(name, settings.get(name), settings.getLocation(name));
-
- // Convert struts properties into ones that xwork expects
- if (StrutsConstants.STRUTS_DEVMODE.equals(name)) {
- props.setProperty("devMode", settings.get(name), settings.getLocation(name));
- }
- }
+ loadSettings(props, settings);
// Set default locale
final Locale locale = settings.getLocale();
@@ -83,5 +75,17 @@
return locale;
}
});
+ }
+
+ /**
+ * @param props
+ * @param settings
+ */
+ protected void loadSettings(LocatableProperties props, final Settings settings) {
+ // We are calling the impl methods to get around the single instance of Settings that is expected
+ for (Iterator i = settings.listImpl(); i.hasNext(); ) {
+ String name = (String) i.next();
+ props.setProperty(name, settings.getImpl(name), settings.getLocationImpl(name));
+ }
}
}
Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java?view=diff&rev=498215&r1=498214&r2=498215
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java Sat Jan 20 15:59:10 2007
@@ -284,6 +284,10 @@
configurationManager = null;
}
+ private void init_DefaultProperties() {
+ configurationManager.addConfigurationProvider(new DefaultPropertiesProvider());
+ }
+
private void init_LegacyStrutsProperties() {
configurationManager.addConfigurationProvider(new LegacyPropertiesConfigurationProvider());
}
@@ -439,13 +443,14 @@
configurationManager = new ConfigurationManager(BeanSelectionProvider.DEFAULT_BEAN_NAME);
}
- init_LegacyStrutsProperties(); // [1]
+ init_DefaultProperties(); // [1]
init_TraditionalXmlConfigurations(); // [2]
- init_ZeroConfiguration(); // [3]
- init_CustomConfigurationProviders(); // [4]
+ init_LegacyStrutsProperties(); // [3]
+ init_ZeroConfiguration(); // [4]
+ init_CustomConfigurationProviders(); // [5]
init_MethodConfigurationProvider();
- init_FilterInitParameters() ; // [5]
- init_AliasStandardObjects() ; // [6]
+ init_FilterInitParameters() ; // [6]
+ init_AliasStandardObjects() ; // [7]
Container container = init_PreloadConfiguration();
init_CheckConfigurationReloading(container);
Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java?view=diff&rev=498215&r1=498214&r2=498215
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java Sat Jan 20 15:59:10 2007
@@ -36,7 +36,6 @@
import javax.portlet.PortletResponse;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
-import javax.servlet.http.HttpServletRequestWrapper;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -595,4 +594,12 @@
dispatcherUtils.cleanup();
}
}
+
+ /**
+ * @param actionMapper the actionMapper to set
+ */
+ public void setActionMapper(ActionMapper actionMapper) {
+ this.actionMapper = actionMapper;
+ }
+
}
Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/config/SettingsTest.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/config/SettingsTest.java?view=diff&rev=498215&r1=498214&r2=498215
==============================================================================
--- struts/struts2/trunk/core/src/test/java/org/apache/struts2/config/SettingsTest.java (original)
+++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/config/SettingsTest.java Sat Jan 20 15:59:10 2007
@@ -36,7 +36,6 @@
public class SettingsTest extends StrutsTestCase {
public void testSettings() {
- assertEquals("get", Settings.get(StrutsConstants.STRUTS_URL_INCLUDEPARAMS));
assertEquals("12345", Settings.get(StrutsConstants.STRUTS_MULTIPART_MAXSIZE));
assertEquals("\temp", Settings.get(StrutsConstants.STRUTS_MULTIPART_SAVEDIR));
@@ -48,7 +47,7 @@
assertEquals("de", locale.getLanguage());
int count = getKeyCount();
- assertEquals(35, count);
+ assertEquals(11, count);
}
public void testDefaultResourceBundlesLoaded() {
Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/portlet/dispatcher/Jsr168DispatcherTest.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/portlet/dispatcher/Jsr168DispatcherTest.java?view=diff&rev=498215&r1=498214&r2=498215
==============================================================================
--- struts/struts2/trunk/core/src/test/java/org/apache/struts2/portlet/dispatcher/Jsr168DispatcherTest.java (original)
+++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/portlet/dispatcher/Jsr168DispatcherTest.java Sat Jan 20 15:59:10 2007
@@ -41,6 +41,8 @@
import junit.textui.TestRunner;
+import org.apache.struts2.StrutsConstants;
+import org.apache.struts2.dispatcher.mapper.ActionMapper;
import org.apache.struts2.portlet.PortletActionConstants;
import org.apache.struts2.portlet.context.ServletContextHolderListener;
import org.jmock.Mock;
@@ -106,6 +108,7 @@
mockActionProxy.stubs().method("getAction").will(returnValue(mockAction.proxy()));
mockActionProxy.expects(once()).method("execute").will(returnValue(result));
mockActionProxy.expects(once()).method("getInvocation").will(returnValue(mockInvocation.proxy()));
+ mockActionProxy.expects(once()).method("setMethod");
mockInvocation.stubs().method("getStack").will(returnValue(stack));
}
@@ -130,6 +133,7 @@
Map initParams = new HashMap();
initParams.put("viewNamespace", "/view");
+ initParams.put(StrutsConstants.STRUTS_ALWAYS_SELECT_FULL_NAMESPACE, "true");
initPortletConfig(initParams, new HashMap());
initRequest(requestParams, new HashMap(), sessionMap, new HashMap(), PortletMode.VIEW, WindowState.NORMAL, false, null);
@@ -162,6 +166,7 @@
requestParams.put(PortletActionConstants.ACTION_PARAM, new String[]{"/view/testAction"});
requestParams.put(PortletActionConstants.MODE_PARAM, new String[]{mode.toString()});
+ initParams.put(StrutsConstants.STRUTS_ALWAYS_SELECT_FULL_NAMESPACE, "true");
initPortletConfig(initParams, new HashMap());
initRequest(requestParams, new HashMap(), new HashMap(), new HashMap(), PortletMode.VIEW, WindowState.NORMAL, true, null);
setupActionFactory("/view", "testAction", "success", ValueStackFactory.getFactory().createValueStack());