You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2009/09/23 06:48:54 UTC
svn commit: r817962 - in /myfaces/core/trunk/impl/src:
main/java/org/apache/myfaces/application/ApplicationImpl.java
test/java/org/apache/myfaces/application/ApplicationImplAnnotationTest.java
Author: lu4242
Date: Wed Sep 23 04:48:54 2009
New Revision: 817962
URL: http://svn.apache.org/viewvc?rev=817962&view=rev
Log:
MYFACES-2032 Implement javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE config param (Thanks to Jakob Korherr for provide this patch)
Modified:
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java
myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/application/ApplicationImplAnnotationTest.java
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java?rev=817962&r1=817961&r2=817962&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java Wed Sep 23 04:48:54 2009
@@ -29,6 +29,7 @@
import java.util.Locale;
import java.util.Map;
import java.util.MissingResourceException;
+import java.util.TimeZone;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArrayList;
@@ -57,6 +58,7 @@
import javax.faces.component.behavior.Behavior;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
+import javax.faces.convert.DateTimeConverter;
import javax.faces.el.MethodBinding;
import javax.faces.el.PropertyResolver;
import javax.faces.el.ReferenceSyntaxException;
@@ -118,6 +120,9 @@
// MyFaces specific System Property to set the ProjectStage, if not present via the standard way
public final static String MYFACES_PROJECT_STAGE_SYSTEM_PROPERTY_NAME = "org.apache.myfaces.PROJECT_STAGE";
+
+ public final static String DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE_PARAM_NAME
+ = "javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE";
// ~ Instance fields
// --------------------------------------------------------------------------
@@ -1346,6 +1351,17 @@
{
final org.apache.myfaces.config.impl.digester.elements.Converter converterConfig = _converterClassNameToConfigurationMap
.get(converterClass.getName());
+
+ // if the converter is a DataTimeConverter, check the init param for the default timezone (since 2.0)
+ if (converter instanceof DateTimeConverter)
+ {
+ String configParam = getFaceContext().getExternalContext()
+ .getInitParameter(DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE_PARAM_NAME);
+ if (configParam != null && configParam.toLowerCase().equals("true"))
+ {
+ ((DateTimeConverter) converter).setTimeZone(TimeZone.getDefault());
+ }
+ }
if (converterConfig != null)
{
Modified: myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/application/ApplicationImplAnnotationTest.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/application/ApplicationImplAnnotationTest.java?rev=817962&r1=817961&r2=817962&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/application/ApplicationImplAnnotationTest.java (original)
+++ myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/application/ApplicationImplAnnotationTest.java Wed Sep 23 04:48:54 2009
@@ -22,6 +22,7 @@
import java.net.URLClassLoader;
import java.util.List;
import java.util.Map;
+import java.util.TimeZone;
import javax.el.ValueExpression;
import javax.faces.FactoryFinder;
@@ -32,6 +33,8 @@
import javax.faces.component.UIOutput;
import javax.faces.component.UIPanel;
import javax.faces.component.UIViewRoot;
+import javax.faces.convert.Converter;
+import javax.faces.convert.DateTimeConverter;
import javax.faces.event.ListenerFor;
import javax.faces.event.PostAddToViewEvent;
import javax.faces.lifecycle.LifecycleFactory;
@@ -118,6 +121,8 @@
"org.apache.shale.test.mock.lifecycle.MockLifecycleFactory");
FactoryFinder.setFactory(FactoryFinder.RENDER_KIT_FACTORY,
"org.apache.shale.test.mock.MockRenderKitFactory");
+ FactoryFinder.setFactory(FactoryFinder.VIEW_DECLARATION_LANGUAGE_FACTORY,
+ "org.apache.myfaces.view.ViewDeclarationLanguageFactoryImpl");
lifecycleFactory = (MockLifecycleFactory)
FactoryFinder.getFactory(FactoryFinder.LIFECYCLE_FACTORY);
@@ -395,5 +400,13 @@
}
}
-
+ public void testDatetimeconverterDefaultTimezoneIsSystemTimezoneInitParameter()
+ {
+ servletContext.addInitParameter(
+ "javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE", "true");
+ application.addConverter(java.util.Date.class, "javax.faces.convert.DateTimeConverter");
+ Converter converter = application.createConverter(java.util.Date.class);
+ assertEquals(((DateTimeConverter) converter).getTimeZone(), TimeZone.getDefault());
+ }
+
}