You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by md...@apache.org on 2013/10/30 12:29:21 UTC

svn commit: r1537049 - in /jackrabbit/oak/trunk: oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/ oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/value/ oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/

Author: mduerig
Date: Wed Oct 30 11:29:20 2013
New Revision: 1537049

URL: http://svn.apache.org/r1537049
Log:
OAK-1111: Node#setProperty(String, Calendar) doesn't take time zone in account
Proper date conversion to ISO8601 format instead of to generic string representation

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MultiPropertyState.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/SinglePropertyState.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/value/Conversions.java
    jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MultiPropertyState.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MultiPropertyState.java?rev=1537049&r1=1537048&r2=1537049&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MultiPropertyState.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MultiPropertyState.java Wed Oct 30 11:29:20 2013
@@ -18,6 +18,8 @@
  */
 package org.apache.jackrabbit.oak.plugins.memory;
 
+import static com.google.common.base.Preconditions.checkArgument;
+
 import java.math.BigDecimal;
 import java.util.List;
 
@@ -31,8 +33,6 @@ import org.apache.jackrabbit.oak.api.Blo
 import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.plugins.value.Conversions.Converter;
 
-import static com.google.common.base.Preconditions.checkArgument;
-
 /**
  * Abstract base class for multi valued {@code PropertyState} implementations.
  */
@@ -92,7 +92,7 @@ abstract class MultiPropertyState<T> ext
                 return (S) Iterables.transform(values, new Function<T, String>() {
                     @Override
                     public String apply(T value) {
-                        return getConverter(value).toString();
+                        return getConverter(value).toDate();
                     }
                 });
             case PropertyType.BOOLEAN:

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/SinglePropertyState.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/SinglePropertyState.java?rev=1537049&r1=1537048&r2=1537049&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/SinglePropertyState.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/SinglePropertyState.java Wed Oct 30 11:29:20 2013
@@ -18,15 +18,15 @@
  */
 package org.apache.jackrabbit.oak.plugins.memory;
 
+import static com.google.common.base.Preconditions.checkArgument;
+import static java.util.Collections.singleton;
+
 import javax.annotation.Nonnull;
 import javax.jcr.PropertyType;
 
 import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.plugins.value.Conversions.Converter;
 
-import static com.google.common.base.Preconditions.checkArgument;
-import static java.util.Collections.singleton;
-
 /**
  * Abstract base class for single valued {@code PropertyState} implementations.
  */
@@ -61,7 +61,7 @@ abstract class SinglePropertyState<T> ex
             case PropertyType.BINARY: return (S) getConverter().toBinary();
             case PropertyType.LONG: return (S) (Long) getConverter().toLong();
             case PropertyType.DOUBLE: return (S) (Double) getConverter().toDouble();
-            case PropertyType.DATE: return (S) getConverter().toString();
+            case PropertyType.DATE: return (S) getConverter().toDate();
             case PropertyType.BOOLEAN: return (S) (Boolean) getConverter().toBoolean();
             case PropertyType.NAME: return (S) getConverter().toString();
             case PropertyType.PATH: return (S) getConverter().toString();

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/value/Conversions.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/value/Conversions.java?rev=1537049&r1=1537048&r2=1537049&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/value/Conversions.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/value/Conversions.java Wed Oct 30 11:29:20 2013
@@ -103,6 +103,16 @@ public final class Conversions {
         }
 
         /**
+         * Convert to date. This default implementation delegates to {@link #toCalendar()}
+         * and returns the {@code ISO8601.format(Calendar)} value of the calendar.
+         * @return  date representation of the converted value
+         * @throws IllegalArgumentException  if the string cannot be parsed into a date
+         */
+        public String toDate() {
+            return ISO8601.format(toCalendar());
+        }
+
+        /**
          * Convert to boolean. This default implementation is based on {@code Boolean.parseBoolean(String)}.
          * @return  boolean representation of the converted value
          */

Modified: jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java?rev=1537049&r1=1537048&r2=1537049&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java Wed Oct 30 11:29:20 2013
@@ -1154,7 +1154,6 @@ public class RepositoryTest extends Abst
     }
 
     @Test
-    @Ignore("OAK-1111")  // FIXME OAK-1111
     public void setPropertyWithConversion() throws RepositoryException {
         Node n = getNode(TEST_PATH);
         Node file = n.addNode("file", "nt:file");