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 );
     }