You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jspwiki.apache.org by me...@apache.org on 2009/01/29 19:38:58 UTC
svn commit: r738953 - in /incubator/jspwiki/trunk: ChangeLog
src/com/ecyrd/jspwiki/Release.java src/com/ecyrd/jspwiki/VariableManager.java
tests/com/ecyrd/jspwiki/VariableManagerTest.java
Author: metskem
Date: Thu Jan 29 18:38:58 2009
New Revision: 738953
URL: http://svn.apache.org/viewvc?rev=738953&view=rev
Log:
3.0.0-svn-57 JSPWIKI-460 - Add current time stamp to WikiVariables, offering 2
Modified:
incubator/jspwiki/trunk/ChangeLog
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/Release.java
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/VariableManager.java
incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/VariableManagerTest.java
Modified: incubator/jspwiki/trunk/ChangeLog
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/ChangeLog?rev=738953&r1=738952&r2=738953&view=diff
==============================================================================
--- incubator/jspwiki/trunk/ChangeLog (original)
+++ incubator/jspwiki/trunk/ChangeLog Thu Jan 29 18:38:58 2009
@@ -1,3 +1,9 @@
+2009-01-29 Harry Metske <me...@apache.org>
+
+ * 3.0.0-svn-57
+
+ * JSPWIKI-460 - Add current time stamp to WikiVariables, offering 2
+
2009-01-27 Andrew Jaquith <ajaquith AT apache DOT org>
* 3.0.0-svn-56
Modified: incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/Release.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/Release.java?rev=738953&r1=738952&r2=738953&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/Release.java (original)
+++ incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/Release.java Thu Jan 29 18:38:58 2009
@@ -77,7 +77,7 @@
* <p>
* If the build identifier is empty, it is not added.
*/
- public static final String BUILD = "56";
+ public static final String BUILD = "57";
/**
* This is the generic version string you should use
Modified: incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/VariableManager.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/VariableManager.java?rev=738953&r1=738952&r2=738953&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/VariableManager.java (original)
+++ incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/VariableManager.java Thu Jan 29 18:38:58 2009
@@ -36,6 +36,8 @@
import com.ecyrd.jspwiki.filters.PageFilter;
import com.ecyrd.jspwiki.i18n.InternationalizationManager;
import com.ecyrd.jspwiki.modules.InternalModule;
+import com.ecyrd.jspwiki.preferences.Preferences;
+import com.ecyrd.jspwiki.preferences.Preferences.TimeFormat;
/**
* Manages variables. Variables are case-insensitive. A list of all
@@ -336,32 +338,42 @@
}
//
- // handle the timestamp variable ( example: timestamp=yyyy-MM-dd)
+ // handle the timestamp variable ( example: $timestamp format=yyyy-MM-dd)
//
- if( varName.startsWith( "timeStamp" ) )
+ if( varName.toLowerCase().startsWith( "timestamp" ) )
{
- StringTokenizer tok = new StringTokenizer( varName, "=" );
+ StringTokenizer tok= new StringTokenizer( varName, " " );
int numTokens = tok.countTokens();
- if( numTokens != 2 )
+ if( numTokens == 1 )
{
- return context.getBundle( InternationalizationManager.CORE_BUNDLE ).getString( "varmgr.dateformat.noformat" );
+ // no (format) param was given, return the user default
+ return Preferences.getDateFormat( context, TimeFormat.DATETIME ).format( new Date() );
}
- @SuppressWarnings( "unused" )
- String ignoreFirstToken = tok.nextToken();
- String dateFormatString = tok.nextToken();
-
- SimpleDateFormat dateFormat = null;
- try
- {
- dateFormat = new SimpleDateFormat( dateFormatString );
- return dateFormat.format( new Date( System.currentTimeMillis() ) );
- }
- catch( RuntimeException e )
+ if( numTokens >= 2 )
{
- return context.getBundle( InternationalizationManager.CORE_BUNDLE ).getString( "varmgr.dateformat.invalid" )
- + dateFormatString;
+ @SuppressWarnings( "unused" )
+ String ignoreFirstToken = tok.nextToken();
+ String parm1 = tok.nextToken( "=" ).trim();
+ if( !parm1.startsWith( "format" ) )
+ {
+ return context.getBundle( InternationalizationManager.CORE_BUNDLE )
+ .getString( "varmgr.dateformat.invalid.parm" ) + parm1;
+ }
+
+ String dateFormatString = tok.nextToken();
+ SimpleDateFormat dateFormat = null;
+ try
+ {
+ dateFormat = new SimpleDateFormat( dateFormatString );
+ return dateFormat.format( new Date( ) );
+ }
+ catch( RuntimeException e )
+ {
+ return context.getBundle( InternationalizationManager.CORE_BUNDLE ).getString( "varmgr.dateformat.invalid.format" )
+ + dateFormatString;
+ }
}
}
Modified: incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/VariableManagerTest.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/VariableManagerTest.java?rev=738953&r1=738952&r2=738953&view=diff
==============================================================================
--- incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/VariableManagerTest.java (original)
+++ incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/VariableManagerTest.java Thu Jan 29 18:38:58 2009
@@ -31,6 +31,8 @@
import junit.framework.TestSuite;
import com.ecyrd.jspwiki.content.WikiName;
+import com.ecyrd.jspwiki.preferences.Preferences;
+import com.ecyrd.jspwiki.preferences.Preferences.TimeFormat;
public class VariableManagerTest extends TestCase
{
@@ -192,21 +194,42 @@
assertEquals( "Testing {}, {{{}", res );
}
- public void testTimeStamp() throws Exception
+ public void testTimeStamp1() throws Exception
{
// Yes I know there is a tiny chance that this fails if the minute
- // passes by between here and the "new Date" in VariableManager
+ // passes by between here and the "new Date()" in VariableManager
+ //
String format = "dd.MM.yyyy HH:mm";
SimpleDateFormat df = new SimpleDateFormat( format );
String dateString = df.format( new Date() );
-
- String res = m_variableManager.expandVariables( m_context, ">>>>>{$timeStamp=" + format + "}<<<<<" );
+ String res = m_variableManager.expandVariables( m_context, ">>>>>{$timestamp format=" + format + "}<<<<<" );
assertEquals( ">>>>>" + dateString + "<<<<<", res );
+ }
+
+ public void testTimeStamp2() throws Exception
+ {
+ // test for default dateformat
+ //
+ String defaultDateFormat = Preferences.getDateFormat( m_context, TimeFormat.DATETIME ).format( new Date() );
+
+ String res = m_variableManager.expandVariables( m_context, ">>>>>{$timestamp}<<<<<" );
+ assertEquals( ">>>>>" + defaultDateFormat + "<<<<<", res );
+ }
- res = m_variableManager.expandVariables( m_context, ">>>>>{$timeStamp}<<<<<" );
- assertEquals( ">>>>>No dateformat was provided. <<<<<", res );
+ public void testTimeStamp3() throws Exception
+ {
+ // test with a wrong named parm
+ //
+ String res = m_variableManager.expandVariables( m_context, ">>>>>{$timestamp wrongparm=bla}<<<<<" );
+ assertEquals( ">>>>>Unrecognized parameter: wrongparm<<<<<", res );
+ }
- res = m_variableManager.expandVariables( m_context, ">>>>>{$timeStamp=" + format + "INVALIDFORMAT}<<<<<" );
+ public void testTimeStamp4() throws Exception
+ {
+ // tests with an invalid date format
+ //
+ String format = "dd.MM.yyyy HH:mm";
+ String res = m_variableManager.expandVariables( m_context, ">>>>>{$timestamp format=" + format + "INVALIDFORMAT}<<<<<" );
assertEquals( ">>>>>No valid dateformat was provided: dd.MM.yyyy HH:mmINVALIDFORMAT<<<<<", res );
}