svn commit: r1436866 - /struts/struts2/trunk/apps/mailreader/src/main/resources/log4j.properties
Author: lukaszlenart Date: Tue Jan 22 12:27:12 2013 New Revision: 1436866 URL: http://svn.apache.org/viewvc?rev=1436866&view=rev Log: Reduces log level to info Modified: struts/struts2/trunk/apps/mailreader/src/main/resources/log4j.properties Modified: struts/struts2/trunk/apps/mailreader/src/main/resources/log4j.properties URL: http://svn.apache.org/viewvc/struts/struts2/trunk/apps/mailreader/src/main/resources/log4j.properties?rev=1436866&r1=1436865&r2=1436866&view=diff == --- struts/struts2/trunk/apps/mailreader/src/main/resources/log4j.properties (original) +++ struts/struts2/trunk/apps/mailreader/src/main/resources/log4j.properties Tue Jan 22 12:27:12 2013 @@ -11,7 +11,7 @@ # Set root logger level to WARN and append to stdout -log4j.rootLogger=DEBUG, stdout +log4j.rootLogger=INFO, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
svn commit: r1436878 - in /struts/struts2/trunk: core/src/main/java/org/apache/struts2/dispatcher/ core/src/test/java/org/apache/struts2/dispatcher/ core/src/test/java/org/apache/struts2/views/jsp/ui/
Author: lukaszlenart Date: Tue Jan 22 12:44:45 2013 New Revision: 1436878 URL: http://svn.apache.org/viewvc?rev=1436878&view=rev Log: WW-3971 adds ContainerHolder to reduce numbers of calls to getConfiguration() and optimize RuntimeConfiguration class to more thread friendly Added: struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ContainerHolder.java Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/DispatcherTest.java struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/FormTagTest.java struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/impl/DefaultConfiguration.java Added: struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ContainerHolder.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ContainerHolder.java?rev=1436878&view=auto == --- struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ContainerHolder.java (added) +++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ContainerHolder.java Tue Jan 22 12:44:45 2013 @@ -0,0 +1,33 @@ +package org.apache.struts2.dispatcher; + +import com.opensymphony.xwork2.inject.Container; +import org.apache.struts2.StrutsConstants; + +/** + * Simple class to hold Container instance per thread to minimise number of attempts + * to read configuration and build each time a new configuration. + * + * Thus depends on {@link StrutsConstants#STRUTS_CONFIGURATION_XML_RELOAD} flag, + * if set to false just use stored container, configuration will do not change. + */ +class ContainerHolder { + +private static ThreadLocal instance = new ThreadLocal(); + +public static void store(Container instance) { +boolean reloadConfigs = Boolean.valueOf(instance.getInstance(String.class, StrutsConstants.STRUTS_CONFIGURATION_XML_RELOAD)); +if (!reloadConfigs) { +// reloadConfigs is false, configuration will do not change, just keep it +ContainerHolder.instance.set(instance); +} +} + +public static Container get() { +return ContainerHolder.instance.get(); +} + +public static void clear() { +ContainerHolder.instance.set(null); +} + +} 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?rev=1436878&r1=1436877&r2=1436878&view=diff == --- 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 Tue Jan 22 12:44:45 2013 @@ -432,6 +432,8 @@ public class Dispatcher { boolean reloadi18n = Boolean.valueOf(container.getInstance(String.class, StrutsConstants.STRUTS_I18N_RELOAD)); LocalizedTextUtil.setReloadBundles(reloadi18n); +ContainerHolder.store(container); + return container; } @@ -908,8 +910,10 @@ public class Dispatcher { * Modify the ConfigurationManager instance * * @param mgr The configuration manager + * @deprecated should be removed as is used only in tests */ public void setConfigurationManager(ConfigurationManager mgr) { +ContainerHolder.clear(); this.configurationManager = mgr; } @@ -918,6 +922,9 @@ public class Dispatcher { * @return Our dependency injection container */ public Container getContainer() { +if (ContainerHolder.get() != null) { +return ContainerHolder.get(); +} ConfigurationManager mgr = getConfigurationManager(); if (mgr == null) { throw new IllegalStateException("The configuration manager shouldn't be null"); @@ -926,8 +933,11 @@ public class Dispatcher { if (config == null) { throw new IllegalStateException("Unable to load configuration"); } else { -return config.getContainer(); +Container container = config.getContainer(); +ContainerHolder.store(container); +return container; } } } + } Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/DispatcherTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/DispatcherTest.java?rev=1436878&r1=1436877&r2=1436878&view=diff == --- struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispat
svn commit: r1436940 - /struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/UIBean.java
Author: lukaszlenart Date: Tue Jan 22 14:13:07 2013 New Revision: 1436940 URL: http://svn.apache.org/viewvc?rev=1436940&view=rev Log: WW-3845 improves code to avoid empty HashSet Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/UIBean.java Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/UIBean.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/UIBean.java?rev=1436940&r1=1436939&r2=1436940&view=diff == --- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/UIBean.java (original) +++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/UIBean.java Tue Jan 22 14:13:07 2013 @@ -1243,7 +1243,6 @@ public abstract class UIBean extends Com Set standardAttributes = standardAttributesMap.get(clz); if (standardAttributes == null) { standardAttributes = new HashSet(); -standardAttributesMap.put(clz, standardAttributes); while (clz != null) { for (Field f : clz.getDeclaredFields()) { if (Modifier.isProtected(f.getModifiers()) @@ -1257,6 +1256,7 @@ public abstract class UIBean extends Com clz = clz.getSuperclass(); } } +standardAttributesMap.put(clz, standardAttributes); } return standardAttributes; }
svn commit: r1436951 - in /struts/struts2/trunk: core/src/main/java/org/apache/struts2/components/UIBean.java xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlUtil.java xwork-core/src/main/ja
Author: lukaszlenart Date: Tue Jan 22 14:28:15 2013 New Revision: 1436951 URL: http://svn.apache.org/viewvc?rev=1436951&view=rev Log: WW-3845 adds usage of putIfAbsent to improve atomicity Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/UIBean.java struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlUtil.java struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/LocalizedTextUtil.java Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/UIBean.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/UIBean.java?rev=1436951&r1=1436950&r2=1436951&view=diff == --- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/UIBean.java (original) +++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/UIBean.java Tue Jan 22 14:28:15 2013 @@ -49,6 +49,7 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; /** * UIBean is the standard superclass of all Struts UI components. @@ -502,7 +503,7 @@ public abstract class UIBean extends Com protected TemplateEngineManager templateEngineManager; // dynamic attributes support for tags used with FreeMarker templates -protected static Map> standardAttributesMap = new ConcurrentHashMap>(); +protected static ConcurrentMap> standardAttributesMap = new ConcurrentHashMap>(); @Inject(StrutsConstants.STRUTS_UI_TEMPLATEDIR) public void setDefaultTemplateDir(String dir) { @@ -1256,7 +1257,7 @@ public abstract class UIBean extends Com clz = clz.getSuperclass(); } } -standardAttributesMap.put(clz, standardAttributes); +standardAttributesMap.putIfAbsent(clz, standardAttributes); } return standardAttributes; } Modified: struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlUtil.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlUtil.java?rev=1436951&r1=1436950&r2=1436951&view=diff == --- struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlUtil.java (original) +++ struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlUtil.java Tue Jan 22 14:28:15 2013 @@ -22,7 +22,12 @@ import com.opensymphony.xwork2.util.Comp import com.opensymphony.xwork2.util.logging.Logger; import com.opensymphony.xwork2.util.logging.LoggerFactory; import com.opensymphony.xwork2.util.reflection.ReflectionException; -import ognl.*; +import ognl.Ognl; +import ognl.OgnlContext; +import ognl.OgnlException; +import ognl.OgnlRuntime; +import ognl.SimpleNode; +import ognl.TypeConverter; import java.beans.BeanInfo; import java.beans.IntrospectionException; @@ -33,6 +38,7 @@ import java.util.Collection; import java.util.HashMap; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; /** @@ -44,8 +50,8 @@ import java.util.concurrent.ConcurrentHa public class OgnlUtil { private static final Logger LOG = LoggerFactory.getLogger(OgnlUtil.class); -private ConcurrentHashMap expressions = new ConcurrentHashMap(); -private final ConcurrentHashMap beanInfoCache = new ConcurrentHashMap(); +private ConcurrentMap expressions = new ConcurrentHashMap(); +private final ConcurrentMap beanInfoCache = new ConcurrentHashMap(); private TypeConverter defaultConverter; static boolean devMode = false; @@ -240,7 +246,7 @@ public class OgnlUtil { Object o = expressions.get(expression); if (o == null) { o = Ognl.parseExpression(expression); -expressions.put(expression, o); +expressions.putIfAbsent(expression, o); } return o; } else @@ -416,7 +422,7 @@ public class OgnlUtil { beanInfo = beanInfoCache.get(clazz); if (beanInfo == null) { beanInfo = Introspector.getBeanInfo(clazz, Object.class); -beanInfoCache.put(clazz, beanInfo); +beanInfoCache.putIfAbsent(clazz, beanInfo); } return beanInfo; } Modified: struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/LocalizedTextUtil.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/LocalizedTextUtil.java?rev=1436951&r1=1436950&r2=1436951&view=diff == --- struts/str
svn commit: r1436984 - in /struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/logging: Logger.java LoggerUtils.java commons/CommonsLogger.java jdk/JdkLogger.java slf4j/Slf4jLog
Author: lukaszlenart Date: Tue Jan 22 14:55:59 2013 New Revision: 1436984 URL: http://svn.apache.org/viewvc?rev=1436984&view=rev Log: Adds support for debug(String, Object...) Modified: struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/logging/Logger.java struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/logging/LoggerUtils.java struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/logging/commons/CommonsLogger.java struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/logging/jdk/JdkLogger.java struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/logging/slf4j/Slf4jLogger.java Modified: struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/logging/Logger.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/logging/Logger.java?rev=1436984&r1=1436983&r2=1436984&view=diff == --- struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/logging/Logger.java (original) +++ struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/logging/Logger.java Tue Jan 22 14:55:59 2013 @@ -20,26 +20,40 @@ package com.opensymphony.xwork2.util.log */ public interface Logger { void trace(String msg, String... args); + void trace(String msg, Throwable ex, String... args); + boolean isTraceEnabled(); - + void debug(String msg, String... args); + +void debug(String msg, Object... args); + void debug(String msg, Throwable ex, String... args); + boolean isDebugEnabled(); - + void info(String msg, String... args); + void info(String msg, Throwable ex, String... args); + boolean isInfoEnabled(); - + void warn(String msg, String... args); + void warn(String msg, Throwable ex, String... args); + boolean isWarnEnabled(); - + void error(String msg, String... args); + void error(String msg, Throwable ex, String... args); + boolean isErrorEnabled(); - + void fatal(String msg, String... args); + void fatal(String msg, Throwable ex, String... args); + boolean isFatalEnabled(); } Modified: struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/logging/LoggerUtils.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/logging/LoggerUtils.java?rev=1436984&r1=1436983&r2=1436984&view=diff == --- struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/logging/LoggerUtils.java (original) +++ struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/logging/LoggerUtils.java Tue Jan 22 14:55:59 2013 @@ -15,6 +15,9 @@ */ package com.opensymphony.xwork2.util.logging; +import java.util.LinkedList; +import java.util.List; + /** * Logging utility methods */ @@ -69,4 +72,12 @@ public class LoggerUtils { } +public static String format(String msg, Object[] args) { +List strArgs = new LinkedList(); +for (Object arg : args) { +strArgs.add(arg != null ? arg.toString() : "(null)"); +} +return format(msg, strArgs.toArray(new String[strArgs.size()])); +} + } Modified: struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/logging/commons/CommonsLogger.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/logging/commons/CommonsLogger.java?rev=1436984&r1=1436983&r2=1436984&view=diff == --- struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/logging/commons/CommonsLogger.java (original) +++ struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/logging/commons/CommonsLogger.java Tue Jan 22 14:55:59 2013 @@ -68,6 +68,10 @@ public class CommonsLogger implements Lo log.debug(LoggerUtils.format(msg, args)); } +public void debug(String msg, Object... args) { +log.debug(LoggerUtils.format(msg, args)); +} + public void debug(String msg, Throwable ex, String... args) { log.debug(LoggerUtils.format(msg, args), ex); } Modified: struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/logging/jdk/JdkLogger.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/logging/jdk/JdkLogger.java?rev=1436984&r1=1436983&r2=1436984&view=diff == --- struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/logging/jdk/JdkLogger.java (original)
[CONF] Confluence Changes in the last 24 hours
This is a daily summary of all recent changes in Confluence. - Updated Spaces: - Apache Camel (https://cwiki.apache.org/confluence/display/CAMEL) Pages - UrlRewrite edited by sdanig (09:52 PM) https://cwiki.apache.org/confluence/display/CAMEL/UrlRewrite HTTP4 edited by muellerc (04:48 PM) https://cwiki.apache.org/confluence/display/CAMEL/HTTP4 Team edited by bibryam (12:28 PM) https://cwiki.apache.org/confluence/display/CAMEL/Team ControlBus Component edited by davsclaus (02:31 AM) https://cwiki.apache.org/confluence/display/CAMEL/ControlBus+Component Apache Cloudstack (https://cwiki.apache.org/confluence/display/CLOUDSTACK) Pages - Isolation based on Security Groups in Advance zone Test Plan edited by angelines (09:37 PM) https://cwiki.apache.org/confluence/display/CLOUDSTACK/Isolation+based+on+Security+Groups+in+Advance+zone+Test+Plan Test created by sangeethah (06:20 PM) https://cwiki.apache.org/confluence/display/CLOUDSTACK/Test Minutes 22nd Jan 2013 created by sudhap (02:26 PM) https://cwiki.apache.org/confluence/display/CLOUDSTACK/Minutes+22nd+Jan+2013 DevCloud edited by chip.child...@gmail.com (02:30 PM) https://cwiki.apache.org/confluence/display/CLOUDSTACK/DevCloud Configurable setting to use linked clones or not on VMware edited by hari.kan...@citrix.com (01:58 PM) https://cwiki.apache.org/confluence/display/CLOUDSTACK/Configurable+setting+to+use+linked+clones+or+not+on+VMware Setting up a CloudStack dev environment on Windows edited by animeshc (01:33 PM) https://cwiki.apache.org/confluence/display/CLOUDSTACK/Setting+up+a+CloudStack+dev+environment+on+Windows IPv6 support edited by yasker (01:04 PM) https://cwiki.apache.org/confluence/display/CLOUDSTACK/IPv6+support Hyper-V 2012 (3.0) Support - Phase 1 created by dlafferty (10:15 AM) https://cwiki.apache.org/confluence/display/CLOUDSTACK/Hyper-V+2012+%283.0%29+Support++-+Phase+1 Storage subsystem 2.0 edited by dlafferty (09:33 AM) https://cwiki.apache.org/confluence/display/CLOUDSTACK/Storage+subsystem+2.0 CloudStack 4.1 Release edited by radhikap (07:44 AM) https://cwiki.apache.org/confluence/display/CLOUDSTACK/CloudStack+4.1+Release CloudStack 4.1 QA Plan edited by radhikap (07:39 AM) https://cwiki.apache.org/confluence/display/CLOUDSTACK/CloudStack+4.1+QA+Plan Apache CloudStack v 4.1 Documentation Plan created by radhikap (12:19 AM) https://cwiki.apache.org/confluence/display/CLOUDSTACK/Apache+CloudStack+v+4.1+Documentation+Plan John Rasu created by colennoesher (07:24 AM) https://cwiki.apache.org/confluence/display/CLOUDSTACK/John+Rasu Anxiety Medication created by colennoesher (07:12 AM) https://cwiki.apache.org/confluence/display/CLOUDSTACK/Anxiety+Medication AWS-Style Regions Functional Spec edited by kis...@cloud.com (06:17 AM) https://cwiki.apache.org/confluence/display/CLOUDSTACK/AWS-Style+Regions+Functional+Spec EC2 Query API Support created by sailajam (05:49 AM) https://cwiki.apache.org/confluence/display/CLOUDSTACK/EC2+Query+API+Support Accounts, Domains, and Admin explained edited by nitin.me...@citrix.com (05:33 AM) https://cwiki.apache.org/confluence/display/CLOUDSTACK/Accounts%2C+Domains%2C+and+Admin+explained FS - IP Range Reservation within a Network edited by saksham (05:27 AM) https://cwiki.apache.org/confluence/display/CLOUDSTACK/FS+-+IP+Range+Reservation+within+a+Network Base Image Updation facility edited by harikrishna.patn...@citrix.com (04:56 AM) https://cwiki.apache.org/confluence/display/CLOUDSTACK/Base+Image+Updation+facility Multiple IP address per NIC edited by jayapal (04:10 AM) https://cwiki.apache.org/confluence/display/CLOUDSTACK/Multiple+IP+address+per+NIC Limit Resources to domains and accounts edited by sanjay.tripa...@citrix.com (03:19 AM) https://cwiki.apache.org/confluence/display/CLOUDSTACK/Limit+Resources+to+domains+and+accounts nTier Apps 2.0 Functional Spec edited by kis...@cloud.com (03:00 AM) https://cwiki.apache.org/confluence/display/CLOUDSTACK/nTier+Apps+2.0+Functional+Spec Comments https://cwiki.apache.org/confluence/display/CLOUDSTACK/AWS-Style+Regions+Functional+Spec (2) Apache cTAKES (https://cwiki.apache.org/confluence/display/CTAKES) Pages - cTAKES 3.0 User Guide edited by bleeker (06:15 PM) https://cwiki.apache.org/confluence/display/CTAKES/cTAKES+3.0+User+Guide cTAKES 3.0 Developer Guide edited by bleeker (04:08 PM) https://cwiki.apache.org/confluence/display/CTAKES/cTAKES+3.0+Developer+Guide Apache CXF Documentation (https://cwiki.apache.org/confluence/display/CXF20DOC) Pages - SOAP 1.1 edited by