@Override protected PrismSerializer<String> getSerializer() { return prismContext.jsonSerializer(); }
@Test public void test360SerializeToJson() throws Exception { System.out.println("===[ test360SerializeToJson ]==="); PrismObject<UserType> jack = getJack(); measure("serialize to JSON", () -> getPrismContext().jsonSerializer().serialize(jack)); }
public static String prettyPrint(RawType raw) { if (raw.getAlreadyParsedValue() != null) { return PrettyPrinter.prettyPrint(raw.getAlreadyParsedValue()); } if (raw.getXnode() != null && raw.getPrismContext() != null) { try { String jsonText = raw.getPrismContext().jsonSerializer().serialize(raw.getRootXNode(new QName("value"))); return CRLF_PATTERN.matcher(jsonText).replaceAll(""); } catch (Throwable t) { LoggingUtils.logException(LOGGER, "Couldn't serialize raw value for pretty printing, using 'toString' instead: {}", t, raw.getXnode()); } } return PrettyPrinter.prettyPrint(raw.getXnode()); }
@Test public void testParseTaskFileToXNode() throws Exception { System.out.println("===[ testParseTaskFileToXNode ]==="); // GIVEN PrismContext prismContext = PrismTestUtil.getPrismContext(); // WHEN RootXNode node = prismContext.parserFor(TASK_FILE).xml().parseToXNode(); // THEN System.out.println("Parsed task (XNode):"); System.out.println(node.debugDump()); System.out.println("XML -> XNode -> JSON:\n" + prismContext.jsonSerializer().serialize(node)); System.out.println("XML -> XNode -> YAML:\n" + prismContext.yamlSerializer().serialize(node)); }
@Test public void testParseTaskFileToXNode() throws Exception { System.out.println("===[ testParseTaskFileToXNode ]==="); // GIVEN PrismContext prismContext = PrismTestUtil.getPrismContext(); // WHEN RootXNode node = prismContext.parserFor(TASK_FILE).xml().parseToXNode(); // THEN System.out.println("Parsed task (XNode):"); System.out.println(node.debugDump()); System.out.println("XML -> XNode -> JSON:\n" + prismContext.jsonSerializer().serialize(node)); System.out.println("XML -> XNode -> YAML:\n" + prismContext.yamlSerializer().serialize(node)); }
@Test public void testParseToXNode() throws Exception { PrismContext prismContext = PrismTestUtil.getPrismContext(); RootXNode node = prismContext.parserFor(getFile()).parseToXNode(); System.out.println("Parsed to XNode:"); System.out.println(node.debugDump()); System.out.println("XML -> XNode -> XML:\n" + prismContext.xmlSerializer().serialize(node)); System.out.println("XML -> XNode -> JSON:\n" + prismContext.jsonSerializer().serialize(node)); System.out.println("XML -> XNode -> YAML:\n" + prismContext.yamlSerializer().serialize(node)); }
@Test public void testParseToXNode() throws Exception { PrismContext prismContext = PrismTestUtil.getPrismContext(); RootXNode node = prismContext.parserFor(getFile()).parseToXNode(); System.out.println("Parsed to XNode:"); System.out.println(node.debugDump()); System.out.println("XML -> XNode -> XML:\n" + prismContext.xmlSerializer().serialize(node)); System.out.println("XML -> XNode -> JSON:\n" + prismContext.jsonSerializer().serialize(node)); System.out.println("XML -> XNode -> YAML:\n" + prismContext.yamlSerializer().serialize(node)); }
@Test public void testParseToXNode() throws Exception { displayTestTitle("testParseToXNode"); System.out.println("\n\n-----------------------------------\n"); String file = MiscUtil.readFile(getFile()); System.out.println("Original text:\n" + file); RootXNode xnode = getPrismContext().parserFor(file).parseToXNode(); System.out.println("XNode:\n" + xnode.debugDump()); System.out.println("source -> XNode -> JSON:\n" + getPrismContext().jsonSerializer().serialize(xnode)); System.out.println("source -> XNode -> YAML:\n" + getPrismContext().yamlSerializer().serialize(xnode)); System.out.println("source -> XNode -> XML:\n" + getPrismContext().xmlSerializer().serialize(xnode)); }
@Test public void test320ParseJson() throws Exception { System.out.println("===[ test320ParseJson ]==="); PrismObject<UserType> jack = getJack(); String string = getPrismContext().jsonSerializer().serialize(jack); measure("parse JSON (" + string.length() + " chars)", () -> getPrismContext().parserFor(string).json().parse()); measure("parse JSON to XNode (" + string.length() + " chars)", () -> getPrismContext().parserFor(string).json().parseToXNode()); }
@Test public void testParseToXNode() throws Exception { displayTestTitle("testParseToXNode"); ItemDefinition sequenceDef = getPrismContext().getSchemaRegistry().findItemDefinitionByElementName(SchemaConstants.S_SEQUENCE); System.out.println("sequence.substitutionHead = " + sequenceDef.getSubstitutionHead()); System.out.println("sequence.heterogeneousListItem = " + sequenceDef.isHeterogeneousListItem()); ComplexTypeDefinition sequenceCtd = getPrismContext().getSchemaRegistry().findComplexTypeDefinitionByType(sequenceDef.getTypeName()); System.out.println("ExpressionSequenceType.list = " + sequenceCtd.isListMarker()); System.out.println("\n\n-----------------------------------\n"); String file = MiscUtil.readFile(getFile()); System.out.println("Original text:\n" + file); RootXNode xnode = getPrismContext().parserFor(file).parseToXNode(); System.out.println("XNode:\n" + xnode.debugDump()); System.out.println("source -> XNode -> JSON:\n" + getPrismContext().jsonSerializer().serialize(xnode)); System.out.println("source -> XNode -> YAML:\n" + getPrismContext().yamlSerializer().serialize(xnode)); System.out.println("source -> XNode -> XML:\n" + getPrismContext().xmlSerializer().serialize(xnode)); }
@Test public void testRoundTrip() throws Exception { displayTestTitle("testRoundTrip"); PrismContext prismContext = getPrismContext(); PrismParser parser = prismContext.parserFor(getFile()); List<PrismObject<?>> objects = parser.parseObjects(); System.out.println("Objects as parsed: " + DebugUtil.debugDump(objects)); assertEquals("Wrong # of objects", 3, objects.size()); assertEquals("Wrong class of object 1", UserType.class, objects.get(0).asObjectable().getClass()); assertEquals("Wrong class of object 2", UserType.class, objects.get(1).asObjectable().getClass()); assertEquals("Wrong class of object 2", RoleType.class, objects.get(2).asObjectable().getClass()); PrismSerializer<String> serializer = prismContext.serializerFor(language); String serializedAsObjects = serializer.serializeObjects(objects, SchemaConstants.C_OBJECTS); System.out.println("Objects as re-serialized (c:objects):\n" + serializedAsObjects); System.out.println("Re-serialized to XML:\n" + prismContext.xmlSerializer().serializeObjects(objects, SchemaConstants.C_OBJECTS)); System.out.println("Re-serialized to JSON:\n" + prismContext.jsonSerializer().serializeObjects(objects, SchemaConstants.C_OBJECTS)); System.out.println("Re-serialized to YAML:\n" + prismContext.yamlSerializer().serializeObjects(objects, SchemaConstants.C_OBJECTS)); List<PrismObject<?>> objectsReparsed = prismContext.parserFor(serializedAsObjects).parseObjects(); assertEquals("Reparsed objects are different from original ones", objects, objectsReparsed); String serializedByDefault = serializer.serializeObjects(objects, null); System.out.println("Objects as re-serialized (default method):\n" + serializedByDefault); System.out.println("Re-serialized to XML (default):\n" + prismContext.xmlSerializer().serializeObjects(objects, null)); System.out.println("Re-serialized to JSON (default):\n" + prismContext.jsonSerializer().serializeObjects(objects, null)); System.out.println("Re-serialized to YAML (default):\n" + prismContext.yamlSerializer().serializeObjects(objects, null)); List<PrismObject<?>> objectsReparsedDefault = prismContext.parserFor(serializedAsObjects).parseObjects(); assertEquals("Reparsed objects are different from original ones", objects, objectsReparsedDefault); }