Michael Pasternak has uploaded a new change for review.

Change subject: Revert "restapi: Add support for JAXB annotations in JSON"
......................................................................

Revert "restapi: Add support for JAXB annotations in JSON"

same can be done against standard resteasy-jackson-provider
(which we want stick to, cause by using jackson-jaxrs directly, we
lose all resteasy extensions)

This reverts commit e87a70e006b8638b206bad01c02918030b255a0c.

Signed-off-by: Michael pasternak <[email protected]>
Change-Id: I5dfa9732952da951011c859e818daf6166c0436f
---
M backend/manager/modules/restapi/interface/definition/pom.xml
A 
backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resteasy/json/CustomObjectMapper.java
M 
backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resteasy/json/JsonProvider.java
M backend/manager/modules/restapi/webapp/src/main/resources/META-INF/MANIFEST.MF
M backend/manager/modules/vdsbroker/pom.xml
M pom.xml
6 files changed, 72 insertions(+), 49 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/03/20703/1

diff --git a/backend/manager/modules/restapi/interface/definition/pom.xml 
b/backend/manager/modules/restapi/interface/definition/pom.xml
index 411232d..dd570b5 100644
--- a/backend/manager/modules/restapi/interface/definition/pom.xml
+++ b/backend/manager/modules/restapi/interface/definition/pom.xml
@@ -29,16 +29,9 @@
     </dependency>
 
     <dependency>
-      <groupId>org.codehaus.jackson</groupId>
-      <artifactId>jackson-jaxrs</artifactId>
-      <version>${jackson.version}</version>
-      <scope>provided</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>org.codehaus.jackson</groupId>
-      <artifactId>jackson-xc</artifactId>
-      <version>${jackson.version}</version>
+      <groupId>org.jboss.resteasy</groupId>
+      <artifactId>resteasy-jackson-provider</artifactId>
+      <version>${resteasy.version}</version>
       <scope>provided</scope>
     </dependency>
 
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
new file mode 100644
index 0000000..67e7b31
--- /dev/null
+++ 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resteasy/json/CustomObjectMapper.java
@@ -0,0 +1,48 @@
+/*
+* Copyright (c) 2010 Red Hat, Inc.
+*
+* 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.
+*/
+
+package org.ovirt.engine.api.resteasy.json;
+
+import org.codehaus.jackson.map.annotate.JsonSerialize;
+import org.codehaus.jackson.map.ObjectMapper;
+import org.codehaus.jackson.map.SerializationConfig;
+import org.codehaus.jackson.map.ser.CustomSerializerFactory;
+
+public class CustomObjectMapper extends ObjectMapper
+{
+    public static CustomObjectMapper get() {
+        CustomObjectMapper mapper = new CustomObjectMapper();
+        mapper.setSerializer(new 
CustomBeanFactory()).includeDefaults(false).indent(true);
+        return mapper;
+    }
+
+    protected CustomObjectMapper setSerializer(CustomSerializerFactory ser) {
+        setSerializerFactory(ser);
+        getSerializationConfig().setSerializationView(String.class);
+        return this;
+    }
+
+    protected CustomObjectMapper includeDefaults(boolean include) {
+        getSerializationConfig().setSerializationInclusion(
+            include ? JsonSerialize.Inclusion.ALWAYS : 
JsonSerialize.Inclusion.NON_DEFAULT);
+        return this;
+    }
+
+    protected CustomObjectMapper indent(boolean indent) {
+        configure(SerializationConfig.Feature.INDENT_OUTPUT, indent);
+        return this;
+    }
+}
diff --git 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resteasy/json/JsonProvider.java
 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resteasy/json/JsonProvider.java
index 4d422c2..6d8f968 100644
--- 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resteasy/json/JsonProvider.java
+++ 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resteasy/json/JsonProvider.java
@@ -16,50 +16,33 @@
 
 package org.ovirt.engine.api.resteasy.json;
 
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
+
 import javax.ws.rs.Consumes;
 import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.ext.Provider;
 
-import org.codehaus.jackson.jaxrs.JacksonJsonProvider;
-import org.codehaus.jackson.map.DeserializationConfig;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jackson.map.SerializationConfig;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
-import org.codehaus.jackson.xc.JaxbAnnotationIntrospector;
+import org.jboss.resteasy.plugins.providers.jackson.ResteasyJacksonProvider;
 
 @Provider
 @Consumes(MediaType.APPLICATION_JSON)
 @Produces(MediaType.APPLICATION_JSON)
-public class JsonProvider extends JacksonJsonProvider {
+public class JsonProvider extends ResteasyJacksonProvider
+{
     public JsonProvider() {
-        // Note that we can't specify here the use of JAXB annotations as it 
is ignored if the mapper is changed later,
-        // thus we need to call the parent constructor first, without a 
mapper, and then create the mapper and pass it
-        // to the parent class once it is fully configured:
         super();
+        setMapper(CustomObjectMapper.get());
+    }
 
-        // Create a mapper that uses our custom bean factory:
-        ObjectMapper mapper = new ObjectMapper();
-        mapper.setSerializerFactory(new CustomBeanFactory());
+    @Override
+    public boolean isReadable(Class<?> aClass, Type type, Annotation[] 
annotations, MediaType mediaType) {
+        return super.isReadable(aClass, type, annotations, mediaType);
+    }
 
-        // 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 = mapper.getSerializationConfig()
-            .withView(String.class)
-            .withAnnotationIntrospector(introspector)
-            .with(SerializationConfig.Feature.INDENT_OUTPUT)
-            .withSerializationInclusion(JsonSerialize.Inclusion.NON_DEFAULT);
-        mapper.setSerializationConfig(serCfg);
-
-        // Configure the deserializer:
-        DeserializationConfig deserCfg = mapper.getDeserializationConfig()
-            .withAnnotationIntrospector(introspector);
-        mapper.setDeserializationConfig(deserCfg);
-
-        // Pass the configured mapper to the parent class:
-        setMapper(mapper);
+    @Override
+    public boolean isWriteable(Class<?> aClass, Type type, Annotation[] 
annotations, MediaType mediaType) {
+        return super.isWriteable(aClass, type, annotations, mediaType);
     }
 }
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 c7b21c6..24d1ddb 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,4 +1,2 @@
 Manifest-Version: 1.0
-Dependencies: org.codehaus.jackson.jackson-jaxrs,
- org.codehaus.jackson.jackson-xc,
- org.yaml.snakeyaml
+Dependencies: org.yaml.snakeyaml
diff --git a/backend/manager/modules/vdsbroker/pom.xml 
b/backend/manager/modules/vdsbroker/pom.xml
index e5ea9a3..ca41724 100644
--- a/backend/manager/modules/vdsbroker/pom.xml
+++ b/backend/manager/modules/vdsbroker/pom.xml
@@ -62,7 +62,7 @@
     <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-core-asl</artifactId>
-       <version>${jackson.version}</version>
+       <version>${jackson-core-asl.version}</version>
     </dependency>
 
     <dependency>
diff --git a/pom.xml b/pom.xml
index ae75e69..9f12291 100644
--- a/pom.xml
+++ b/pom.xml
@@ -79,7 +79,8 @@
     <javassist.version>3.12.0.GA</javassist.version>
     <javax.mail.version>1.4.4</javax.mail.version>
     <hibernate-validator.version>4.0.2.GA</hibernate-validator.version>
-    <jackson.version>1.9.4</jackson.version>
+    <jackson-core-asl.version>1.9.4</jackson-core-asl.version>
+    <jackson-mapper-asl.version>1.9.4</jackson-mapper-asl.version>
     <commons-configuration.version>1.6</commons-configuration.version>
     <commons-jxpath.version>1.3</commons-jxpath.version>
     <jaxb-impl.version>2.2</jaxb-impl.version>
@@ -248,12 +249,12 @@
       <dependency>
         <groupId>org.codehaus.jackson</groupId>
         <artifactId>jackson-core-asl</artifactId>
-        <version>${jackson.version}</version>
+        <version>${jackson-core-asl.version}</version>
       </dependency>
       <dependency>
         <groupId>org.codehaus.jackson</groupId>
         <artifactId>jackson-mapper-asl</artifactId>
-        <version>${jackson.version}</version>
+        <version>${jackson-mapper-asl.version}</version>
       </dependency>
       <dependency>
         <groupId>log4j</groupId>


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I5dfa9732952da951011c859e818daf6166c0436f
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