Michael Pasternak has uploaded a new change for review.

Change subject: restapi: restapi: Add support for JAXB annotations in JSON 
#652883
......................................................................

restapi: restapi: Add support for JAXB annotations in JSON #652883

Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=652883
Change-Id: Ifd4dd0681df72a37e3090ea00509c0f5ec206b14
Signed-off-by: Michael pasternak <[email protected]>
---
M backend/manager/modules/restapi/interface/definition/pom.xml
M 
backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resteasy/json/CustomObjectMapper.java
M backend/manager/modules/restapi/webapp/src/main/resources/META-INF/MANIFEST.MF
3 files changed, 34 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/04/20704/1

diff --git a/backend/manager/modules/restapi/interface/definition/pom.xml 
b/backend/manager/modules/restapi/interface/definition/pom.xml
index dd570b5..71b60a7 100644
--- a/backend/manager/modules/restapi/interface/definition/pom.xml
+++ b/backend/manager/modules/restapi/interface/definition/pom.xml
@@ -36,6 +36,13 @@
     </dependency>
 
     <dependency>
+      <groupId>org.codehaus.jackson</groupId>
+      <artifactId>jackson-xc</artifactId>
+      <version>${jackson-core-asl.version}</version>
+      <scope>provided</scope>
+    </dependency>
+
+    <dependency>
       <groupId>org.ovirt.engine.core</groupId>
       <artifactId>common</artifactId>
       <version>${engine.version}</version>
diff --git 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resteasy/json/CustomObjectMapper.java
 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resteasy/json/CustomObjectMapper.java
index 67e7b31..6431526 100644
--- 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resteasy/json/CustomObjectMapper.java
+++ 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resteasy/json/CustomObjectMapper.java
@@ -17,15 +17,20 @@
 package org.ovirt.engine.api.resteasy.json;
 
 import org.codehaus.jackson.map.annotate.JsonSerialize;
+import org.codehaus.jackson.map.DeserializationConfig;
 import org.codehaus.jackson.map.ObjectMapper;
 import org.codehaus.jackson.map.SerializationConfig;
 import org.codehaus.jackson.map.ser.CustomSerializerFactory;
+import org.codehaus.jackson.xc.JaxbAnnotationIntrospector;
 
 public class CustomObjectMapper extends ObjectMapper
 {
     public static CustomObjectMapper get() {
         CustomObjectMapper mapper = new CustomObjectMapper();
-        mapper.setSerializer(new 
CustomBeanFactory()).includeDefaults(false).indent(true);
+        mapper.setSerializer(new CustomBeanFactory())
+                .includeDefaults(false)
+                .indent(true)
+                .addSerializationConfig();
         return mapper;
     }
 
@@ -45,4 +50,23 @@
         configure(SerializationConfig.Feature.INDENT_OUTPUT, indent);
         return this;
     }
+
+    protected CustomObjectMapper addSerializationConfig() {
+        // We need the instrospector that takes into account the JAXB 
annotations,
+        // both for the serializer and for the deserializer:
+        JaxbAnnotationIntrospector introspector = new 
JaxbAnnotationIntrospector();
+
+        // Configure the serializer:
+        SerializationConfig serCfg = getSerializationConfig()
+                .withAnnotationIntrospector(introspector);
+        setSerializationConfig(serCfg);
+
+        // Configure the deserializer:
+        DeserializationConfig deserCfg = getDeserializationConfig()
+                .withAnnotationIntrospector(introspector);
+        setDeserializationConfig(deserCfg);
+
+        return this;
+    }
+
 }
diff --git 
a/backend/manager/modules/restapi/webapp/src/main/resources/META-INF/MANIFEST.MF
 
b/backend/manager/modules/restapi/webapp/src/main/resources/META-INF/MANIFEST.MF
index 24d1ddb..6856a8a 100644
--- 
a/backend/manager/modules/restapi/webapp/src/main/resources/META-INF/MANIFEST.MF
+++ 
b/backend/manager/modules/restapi/webapp/src/main/resources/META-INF/MANIFEST.MF
@@ -1,2 +1,3 @@
 Manifest-Version: 1.0
-Dependencies: org.yaml.snakeyaml
+Dependencies: org.codehaus.jackson.jackson-xc,org.yaml.snakeyaml
+


-- 
To view, visit http://gerrit.ovirt.org/20704
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ifd4dd0681df72a37e3090ea00509c0f5ec206b14
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Michael Pasternak <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to