SLING-8116 - ValueMap - implement default methods using OSGI Converter

* made the Converter initialization lazy
diff --git a/src/main/java/org/apache/sling/api/wrappers/impl/ObjectConverter.java b/src/main/java/org/apache/sling/api/wrappers/impl/ObjectConverter.java
index 69c1dac..9df344c 100644
--- a/src/main/java/org/apache/sling/api/wrappers/impl/ObjectConverter.java
+++ b/src/main/java/org/apache/sling/api/wrappers/impl/ObjectConverter.java
@@ -35,24 +35,26 @@
  */
 public final class ObjectConverter {
 
-    private static final Converter CONVERTER;
+    private static class ConverterHolder {
+        private static final Converter CONVERTER;
 
-    static {
-        CONVERTER = Converters.newConverterBuilder()
-                .rule(new TypeRule<String, Calendar>(String.class, Calendar.class,
-                        ObjectConverter::toCalendar))
-                .rule(new TypeRule<Date, Calendar>(Date.class, Calendar.class,
-                        ObjectConverter::toCalendar))
-                .rule(new TypeRule<String, Date>(String.class, Date.class, ObjectConverter::toDate))
-                .rule(new TypeRule<Calendar, String>(Calendar.class, String.class,
-                        ObjectConverter::toString))
-                .rule(new TypeRule<Date, String>(Date.class, String.class, ObjectConverter::toString))
-                .rule(new TypeRule<Calendar, Date>(Calendar.class, Date.class,
-                        ObjectConverter::toDate))
-                .rule(new TypeRule<>(Calendar.class, ZonedDateTime.class, ObjectConverter::toZonedDateTime))
-                .rule(new TypeRule<ZonedDateTime, Calendar>(ZonedDateTime.class, Calendar.class, ObjectConverter::toCalendar))
-                .rule(new TypeRule<ZonedDateTime, String>(ZonedDateTime.class, String.class, ObjectConverter::toString))
-                .build();
+        static {
+            CONVERTER = Converters.newConverterBuilder()
+                    .rule(new TypeRule<String, Calendar>(String.class, Calendar.class,
+                            ObjectConverter::toCalendar))
+                    .rule(new TypeRule<Date, Calendar>(Date.class, Calendar.class,
+                            ObjectConverter::toCalendar))
+                    .rule(new TypeRule<String, Date>(String.class, Date.class, ObjectConverter::toDate))
+                    .rule(new TypeRule<Calendar, String>(Calendar.class, String.class,
+                            ObjectConverter::toString))
+                    .rule(new TypeRule<Date, String>(Date.class, String.class, ObjectConverter::toString))
+                    .rule(new TypeRule<Calendar, Date>(Calendar.class, Date.class,
+                            ObjectConverter::toDate))
+                    .rule(new TypeRule<>(Calendar.class, ZonedDateTime.class, ObjectConverter::toZonedDateTime))
+                    .rule(new TypeRule<ZonedDateTime, Calendar>(ZonedDateTime.class, Calendar.class, ObjectConverter::toCalendar))
+                    .rule(new TypeRule<ZonedDateTime, String>(ZonedDateTime.class, String.class, ObjectConverter::toString))
+                    .build();
+        }
     }
 
     private ObjectConverter() {}
@@ -114,7 +116,7 @@
             return null;
         }
         try {
-            return CONVERTER.convert(obj).to(type);
+            return ConverterHolder.CONVERTER.convert(obj).to(type);
         } catch (ConversionException ce) {
             return null;
         }