SLING-8610 sling-mock: Update to Content Parser 2.0.0
diff --git a/core/pom.xml b/core/pom.xml
index 57359b3..4fbc48c 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -134,8 +134,14 @@
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.jcr.contentparser</artifactId>
-            <version>1.2.6</version>
+            <artifactId>org.apache.sling.contentparser.api</artifactId>
+            <version>2.0.0</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.contentparser.json</artifactId>
+            <version>2.0.0</version>
             <scope>compile</scope>
         </dependency>
         <dependency>
diff --git a/core/src/main/java/org/apache/sling/testing/mock/sling/loader/ContentLoader.java b/core/src/main/java/org/apache/sling/testing/mock/sling/loader/ContentLoader.java
index 856a0a5..8f4c403 100644
--- a/core/src/main/java/org/apache/sling/testing/mock/sling/loader/ContentLoader.java
+++ b/core/src/main/java/org/apache/sling/testing/mock/sling/loader/ContentLoader.java
@@ -32,12 +32,11 @@
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.api.resource.ResourceUtil;
 import org.apache.sling.commons.mime.MimeTypeService;
-import org.apache.sling.jcr.contentparser.ContentParser;
-import org.apache.sling.jcr.contentparser.ContentParserFactory;
-import org.apache.sling.jcr.contentparser.ContentType;
-import org.apache.sling.jcr.contentparser.JsonParserFeature;
-import org.apache.sling.jcr.contentparser.ParseException;
-import org.apache.sling.jcr.contentparser.ParserOptions;
+import org.apache.sling.contentparser.api.ContentParser;
+import org.apache.sling.contentparser.api.ParserOptions;
+import org.apache.sling.contentparser.json.JSONParserFeature;
+import org.apache.sling.contentparser.json.JSONParserOptions;
+import org.apache.sling.contentparser.json.internal.JSONContentParser;
 import org.apache.sling.testing.mock.sling.ResourceResolverType;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
@@ -84,6 +83,7 @@
     private final boolean autoCommit;
     private final Set<String> ignoredNames;
     private final ContentParser jsonParser;
+    private final ParserOptions jsonParserOptions;
 
     /**
      * @param resourceResolver Resource resolver
@@ -121,11 +121,13 @@
         this.bundleContext = bundleContext;
         this.autoCommit = autoCommit;
         this.ignoredNames = getIgnoredNamesForResourceResolverType(resourceResolverType);
-        this.jsonParser = ContentParserFactory.create(ContentType.JSON, new ParserOptions()
-                .detectCalendarValues(true)
-                .ignorePropertyNames(this.ignoredNames)
-                .ignoreResourceNames(this.ignoredNames)
-                .jsonParserFeatures(EnumSet.of(JsonParserFeature.COMMENTS, JsonParserFeature.QUOTE_TICK)));
+        this.jsonParserOptions = new JSONParserOptions()
+            .withFeatures(EnumSet.of(JSONParserFeature.COMMENTS, JSONParserFeature.QUOTE_TICK))
+            .detectCalendarValues(true)
+            .ignorePropertyNames(this.ignoredNames)
+            .ignoreResourceNames(this.ignoredNames);
+        // JSONContentParser is an OSGi service - for sake of simplicity in this mock environment instantiate it directly
+        this.jsonParser = new JSONContentParser();
     }
     
     private final Set<String> getIgnoredNamesForResourceResolverType(ResourceResolverType resourceResolverType) {
@@ -220,13 +222,11 @@
             }
 
             LoaderContentHandler contentHandler = new LoaderContentHandler(destPath, resourceResolver);
-            jsonParser.parse(contentHandler, inputStream);
+            jsonParser.parse(contentHandler, inputStream, jsonParserOptions);
             if (autoCommit) {
                 resourceResolver.commit();
             }
             return resourceResolver.getResource(destPath);
-        } catch (ParseException ex) {
-            throw new RuntimeException(ex);
         } catch (IOException ex) {
             throw new RuntimeException(ex);
         }
diff --git a/core/src/main/java/org/apache/sling/testing/mock/sling/loader/LoaderContentHandler.java b/core/src/main/java/org/apache/sling/testing/mock/sling/loader/LoaderContentHandler.java
index 3b44805..4c7c7d4 100644
--- a/core/src/main/java/org/apache/sling/testing/mock/sling/loader/LoaderContentHandler.java
+++ b/core/src/main/java/org/apache/sling/testing/mock/sling/loader/LoaderContentHandler.java
@@ -30,7 +30,7 @@
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.api.resource.ResourceUtil;
-import org.apache.sling.jcr.contentparser.ContentHandler;
+import org.apache.sling.contentparser.api.ContentHandler;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;