summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFiete Ostkamp <Fiete.Ostkamp@telekom.de>2024-10-05 21:17:10 +0200
committerFiete Ostkamp <Fiete.Ostkamp@telekom.de>2024-10-05 21:36:42 +0200
commit6cc66cadc9db495883ce1211c1a0f712e77f8bc7 (patch)
tree07ae41b0d5f3f566db0b2c0965874243ea71b194
parentc3eb0a6d5e4471d0bb2ef618cfafbe26546826d8 (diff)
Make Introspector serializable via Jackson
- annotate Introspector, such that ObjectMapper can serialize it Issue-ID: AAI-4010 Signed-off-by: Fiete Ostkamp <Fiete.Ostkamp@telekom.de> Change-Id: I4896f811fa9db0637c941a11b01f26b734b15a21
-rw-r--r--aai-core/src/main/java/org/onap/aai/introspection/Introspector.java8
-rw-r--r--aai-core/src/test/java/org/onap/aai/introspection/IntrospectorSerializationTest.java58
2 files changed, 66 insertions, 0 deletions
diff --git a/aai-core/src/main/java/org/onap/aai/introspection/Introspector.java b/aai-core/src/main/java/org/onap/aai/introspection/Introspector.java
index 87983d8d..cde99db4 100644
--- a/aai-core/src/main/java/org/onap/aai/introspection/Introspector.java
+++ b/aai-core/src/main/java/org/onap/aai/introspection/Introspector.java
@@ -20,6 +20,8 @@
package org.onap.aai.introspection;
+import com.fasterxml.jackson.annotation.JsonRawValue;
+import com.fasterxml.jackson.annotation.JsonValue;
import com.google.common.base.CaseFormat;
import java.io.UnsupportedEncodingException;
@@ -620,6 +622,12 @@ public abstract class Introspector implements Cloneable {
return marshal(properties);
}
+ @JsonValue
+ @JsonRawValue
+ public String toString() {
+ return marshal(false);
+ }
+
public String makeSingular(String word) {
String result = word;
diff --git a/aai-core/src/test/java/org/onap/aai/introspection/IntrospectorSerializationTest.java b/aai-core/src/test/java/org/onap/aai/introspection/IntrospectorSerializationTest.java
new file mode 100644
index 00000000..51eb0cea
--- /dev/null
+++ b/aai-core/src/test/java/org/onap/aai/introspection/IntrospectorSerializationTest.java
@@ -0,0 +1,58 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2024 Deutsche Telekom. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.aai.introspection;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.aai.AAISetup;
+import org.onap.aai.exceptions.AAIException;
+import org.onap.aai.introspection.Introspector;
+import org.onap.aai.introspection.Loader;
+import org.onap.aai.introspection.exceptions.AAIUnmarshallingException;
+import org.onap.aai.setup.SchemaVersion;
+import org.skyscreamer.jsonassert.JSONAssert;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+public class IntrospectorSerializationTest extends AAISetup {
+
+ ObjectMapper mapper;
+ Loader loader;
+
+ @Before
+ public void setup() {
+ loader = loaderFactory.getMoxyLoaderInstance().get(new SchemaVersion("v14"));
+ }
+
+ @Test
+ public void serializePlain() throws IOException, AAIUnmarshallingException {
+ mapper = new ObjectMapper();
+
+ String pserver = new String(Files.readAllBytes(Path.of("src/test/resources/payloads/templates/pserver.json")));
+ Introspector introspector = loader.unmarshal("pserver", pserver);
+ String result = mapper.writeValueAsString(introspector);
+ JSONAssert.assertEquals(pserver, result, false);
+ }
+}