Author: mrdon Date: Sun Aug 7 11:27:17 2005 New Revision: 230688 URL: http://svn.apache.org/viewcvs?rev=230688&view=rev Log: * Integrated webwork global settings by hiding them behind ti settings * Changing to jdtcore version that ibiblio had * Adding automatic setting of config reloading when in dev mode
Added: struts/sandbox/trunk/ti/src/java/org/apache/ti/processor/chain/webwork/TiConfiguration.java Modified: struts/sandbox/trunk/ti/project.xml struts/sandbox/trunk/ti/src/java/org/apache/ti/config/spring-config-servlet.xml struts/sandbox/trunk/ti/src/java/org/apache/ti/processor/chain/chain-config-servlet.xml struts/sandbox/trunk/ti/src/java/org/apache/ti/processor/chain/webwork/InitWebWork.java Modified: struts/sandbox/trunk/ti/project.xml URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/ti/project.xml?rev=230688&r1=230687&r2=230688&view=diff ============================================================================== --- struts/sandbox/trunk/ti/project.xml (original) +++ struts/sandbox/trunk/ti/project.xml Sun Aug 7 11:27:17 2005 @@ -276,7 +276,7 @@ <dependency> <groupId>eclipse</groupId> <artifactId>jdtcore</artifactId> - <version>3.1.0</version> + <version>3.0.1</version> <properties> <war.bundle>true</war.bundle> </properties> Modified: struts/sandbox/trunk/ti/src/java/org/apache/ti/config/spring-config-servlet.xml URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/ti/src/java/org/apache/ti/config/spring-config-servlet.xml?rev=230688&r1=230687&r2=230688&view=diff ============================================================================== --- struts/sandbox/trunk/ti/src/java/org/apache/ti/config/spring-config-servlet.xml (original) +++ struts/sandbox/trunk/ti/src/java/org/apache/ti/config/spring-config-servlet.xml Sun Aug 7 11:27:17 2005 @@ -50,6 +50,11 @@ <property name="compilingObjectFactory" ref="compilingObjectFactory" /> <property name="devMode"><value>${ti.devMode}</value></property> </bean> + + <bean id="initWebWork" class="org.apache.ti.processor.chain.webwork.InitWebWork"> + <property name="devMode"><value>${ti.devMode}</value></property> + </bean> + <bean id="initControllerContext" class="org.apache.ti.processor.chain.InitControllerContext"> <property name="controllerContext" ref="controllerContext" /> </bean> Modified: struts/sandbox/trunk/ti/src/java/org/apache/ti/processor/chain/chain-config-servlet.xml URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/ti/src/java/org/apache/ti/processor/chain/chain-config-servlet.xml?rev=230688&r1=230687&r2=230688&view=diff ============================================================================== --- struts/sandbox/trunk/ti/src/java/org/apache/ti/processor/chain/chain-config-servlet.xml (original) +++ struts/sandbox/trunk/ti/src/java/org/apache/ti/processor/chain/chain-config-servlet.xml Sun Aug 7 11:27:17 2005 @@ -52,7 +52,7 @@ <chain name="init" > <command name="initXWork" /> - <command name="initWebWork" className="org.apache.ti.processor.chain.webwork.InitWebWork"/> + <command name="initWebWork" /> </chain> <chain name="process-action" className="org.apache.ti.processor.chain.ProcessActionChain"> Modified: struts/sandbox/trunk/ti/src/java/org/apache/ti/processor/chain/webwork/InitWebWork.java URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/ti/src/java/org/apache/ti/processor/chain/webwork/InitWebWork.java?rev=230688&r1=230687&r2=230688&view=diff ============================================================================== --- struts/sandbox/trunk/ti/src/java/org/apache/ti/processor/chain/webwork/InitWebWork.java (original) +++ struts/sandbox/trunk/ti/src/java/org/apache/ti/processor/chain/webwork/InitWebWork.java Sun Aug 7 11:27:17 2005 @@ -38,8 +38,21 @@ private static final Log log = LogFactory.getLog(InitWebWork.class); + private boolean devMode = false; + + public void setDevMode(boolean devMode) { + this.devMode = devMode; + } + public boolean execute(Context origctx) { - log.debug("Initializing webwork"); + log.warn("Initializing webwork"); + + Configuration c = new TiConfiguration(origctx); + Configuration.setConfiguration(c); + + if (devMode) { + c.set("webwork.configuration.xml.reload", "true"); + } LocalizedTextUtil.addDefaultResourceBundle("com/opensymphony/webwork/webwork-messages"); Added: struts/sandbox/trunk/ti/src/java/org/apache/ti/processor/chain/webwork/TiConfiguration.java URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/ti/src/java/org/apache/ti/processor/chain/webwork/TiConfiguration.java?rev=230688&view=auto ============================================================================== --- struts/sandbox/trunk/ti/src/java/org/apache/ti/processor/chain/webwork/TiConfiguration.java (added) +++ struts/sandbox/trunk/ti/src/java/org/apache/ti/processor/chain/webwork/TiConfiguration.java Sun Aug 7 11:27:17 2005 @@ -0,0 +1,172 @@ +/* + * $Id: Init.java 230535 2005-08-06 07:56:40Z mrdon $ + * + * Copyright 2005 The Apache Software Foundation. + * + * Licensed 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.ti.processor.chain.webwork; + +import java.util.*; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import com.opensymphony.webwork.config.Configuration; +import com.opensymphony.webwork.config.*; +import com.opensymphony.xwork.util.LocalizedTextUtil; + +/** + * Initializes by replacing default factories + */ +public class TiConfiguration extends DefaultConfiguration { + + private static final Log log = LogFactory.getLog(TiConfiguration.class); + + private static final String WEBWORK_PREFIX = "webwork."; + private static final String TI_PREFIX = "ti."; + + private Properties props; + private Configuration config; + + public TiConfiguration(Map config) { + props = new Properties(); + Map.Entry entry; + String key, newkey; + for (Iterator i = config.entrySet().iterator(); i.hasNext(); ) { + entry = (Map.Entry)i.next(); + key = (String)entry.getKey(); + if (key.startsWith(TI_PREFIX) && entry.getValue() instanceof String) { + newkey = WEBWORK_PREFIX + key.substring(TI_PREFIX.length()); + props.setProperty(newkey, (String)entry.getValue()); + } + } + init(); + } + + /** + * Creates a new DefaultConfiguration object by loading all property files + * and creating an internal [EMAIL PROTECTED] DelegatingConfiguration} object. All calls to get and set + * in this class will call that configuration object. + */ + private void init() { + // Create default implementations + // Use default properties and webwork.properties + ArrayList list = new ArrayList(); + + try { + list.add(new PropertiesConfiguration("com/opensymphony/webwork/default")); + } catch (Exception e) { + log.error("Could not find com/opensymphony/webwork/default.properties", e); + } + + Configuration[] configList = new Configuration[list.size()]; + config = new DelegatingConfiguration((Configuration[]) list.toArray(configList)); + + // Add list of additional properties configurations + try { + StringTokenizer configFiles = new StringTokenizer((String) config.getImpl("webwork.custom.properties"), ","); + + while (configFiles.hasMoreTokens()) { + String name = configFiles.nextToken(); + + try { + list.add(new PropertiesConfiguration(name)); + } catch (Exception e) { + log.error("Could not find " + name + ".properties. Skipping"); + } + } + + configList = new Configuration[list.size()]; + config = new DelegatingConfiguration((Configuration[]) list.toArray(configList)); + } catch (IllegalArgumentException e) { + } + + // Add addtional list of i18n global resource bundles + try { + StringTokenizer bundleFiles = new StringTokenizer((String) config.getImpl("webwork.custom.i18n.resources"), ", "); + + while (bundleFiles.hasMoreTokens()) { + String name = bundleFiles.nextToken(); + + try { + log.info("Loading global messages from " + name); + LocalizedTextUtil.addDefaultResourceBundle(name); + } catch (Exception e) { + log.error("Could not find " + name + ".properties. Skipping"); + } + } + } catch (IllegalArgumentException e) { + // webwork.custom.i18n.resources wasn't provided + } + } + + //~ Methods //////////////////////////////////////////////////////////////// + + /** + * Sets the given property - delegates to the internal config implementation. + * + * @see #set(String, Object) + */ + public void setImpl(String aName, Object aValue) throws IllegalArgumentException, UnsupportedOperationException { + config.setImpl(aName, aValue); + } + + /** + * Gets the specified property - delegates to the internal config implementation. + * + * @see #get(String) + */ + public Object getImpl(String aName) throws IllegalArgumentException { + // Delegate + String val = props.getProperty(aName); + if (val == null) { + return config.getImpl(aName); + } else { + return val; + } + } + + /** + * Determines whether or not a value has been set - delegates to the internal config implementation. + * + * @see #isSet(String) + */ + public boolean isSetImpl(String aName) { + String val = props.getProperty(aName); + if (val == null) { + return config.isSetImpl(aName); + } else { + return false; + } + } + + /** + * Returns a list of all property names - delegates to the internal config implementation. + * + * @see #list() + */ + public Iterator listImpl() { + ArrayList settingList = new ArrayList(); + Iterator list = config.listImpl(); + + while (list.hasNext()) { + settingList.add(list.next()); + } + list = props.keySet().iterator(); + while (list.hasNext()) { + settingList.add(list.next()); + } + return settingList.iterator(); + } +} --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]