This is an automated email from the ASF dual-hosted git repository.
ilgrosso pushed a commit to branch 2_0_X
in repository https://gitbox.apache.org/repos/asf/syncope.git
The following commit(s) were added to refs/heads/2_0_X by this push:
new 017248b [SYNCOPE-1564] Fixing YAML support
017248b is described below
commit 017248b223a1b1a7fb14fed46dc1aa99490aa050
Author: Francesco Chicchiriccò <[email protected]>
AuthorDate: Mon May 18 14:01:07 2020 +0200
[SYNCOPE-1564] Fixing YAML support
---
client/lib/pom.xml | 4 ++
.../client/lib/SyncopeClientFactoryBean.java | 44 +++++++++++++++-------
common/lib/pom.xml | 6 +++
.../common/lib/to/AbstractAnnotatedBean.java | 2 +
.../common/lib/to/AbstractStartEndBean.java | 2 +
.../syncope/core/rest/cxf/CheckDomainFilter.java | 38 +++++++++----------
...dObjectMapper.java => SyncopeObjectMapper.java} | 7 ++--
.../syncope/core/rest/cxf/SyncopeYAMLMapper.java | 35 +++++++++++++++++
.../core/rest/cxf/service/AbstractServiceImpl.java | 1 -
.../rest/cxf/service/AnyObjectServiceImpl.java | 1 -
.../rest-cxf/src/main/resources/restCXFContext.xml | 9 +++--
.../src/main/resources/jboss/restCXFContext.xml | 9 +++--
.../org/apache/syncope/fit/AbstractITCase.java | 6 +++
.../apache/syncope/fit/core/DynRealmITCase.java | 5 +--
.../org/apache/syncope/fit/core/SwaggerITCase.java | 3 +-
.../apache/syncope/fit/core/WorkflowITCase.java | 7 ++++
16 files changed, 130 insertions(+), 49 deletions(-)
diff --git a/client/lib/pom.xml b/client/lib/pom.xml
index 7cee6b4..67fcb83 100644
--- a/client/lib/pom.xml
+++ b/client/lib/pom.xml
@@ -51,6 +51,10 @@ under the License.
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-json-provider</artifactId>
</dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.jaxrs</groupId>
+ <artifactId>jackson-jaxrs-yaml-provider</artifactId>
+ </dependency>
<dependency>
<groupId>commons-codec</groupId>
diff --git
a/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClientFactoryBean.java
b/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClientFactoryBean.java
index 32f8708..90eb6f1 100644
---
a/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClientFactoryBean.java
+++
b/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClientFactoryBean.java
@@ -19,18 +19,19 @@
package org.apache.syncope.client.lib;
import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
+import com.fasterxml.jackson.dataformat.yaml.YAMLMapper;
import com.fasterxml.jackson.datatype.joda.JodaModule;
import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider;
-import java.util.ArrayList;
+import com.fasterxml.jackson.jaxrs.yaml.JacksonJaxbYAMLProvider;
+import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import javax.ws.rs.core.MediaType;
import javax.xml.bind.Marshaller;
import org.apache.commons.lang3.StringUtils;
import org.apache.cxf.configuration.jsse.TLSClientParameters;
-import org.apache.cxf.feature.Feature;
import org.apache.cxf.feature.LoggingFeature;
import org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean;
import org.apache.cxf.jaxrs.provider.JAXBElementProvider;
@@ -75,6 +76,8 @@ public class SyncopeClientFactoryBean {
private JAXBElementProvider<?> jaxbProvider;
+ private JacksonJaxbYAMLProvider yamlProvider;
+
private RestClientExceptionMapper exceptionMapper;
private String address;
@@ -92,7 +95,7 @@ public class SyncopeClientFactoryBean {
protected JacksonJaxbJsonProvider defaultJsonProvider() {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.registerModule(new JodaModule());
-
objectMapper.configure(com.fasterxml.jackson.databind.SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,
false);
+ objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,
false);
return new JacksonJaxbJsonProvider(objectMapper,
JacksonJaxbJsonProvider.DEFAULT_ANNOTATIONS);
}
@@ -115,6 +118,13 @@ public class SyncopeClientFactoryBean {
return defaultJAXBProvider;
}
+ protected JacksonJaxbYAMLProvider defaultYamlProvider() {
+ YAMLMapper yamlMapper = new YAMLMapper();
+ yamlMapper.registerModule(new JodaModule());
+ yamlMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,
false);
+ return new JacksonJaxbYAMLProvider(yamlMapper,
JacksonJaxbJsonProvider.DEFAULT_ANNOTATIONS);
+ }
+
protected RestClientExceptionMapper defaultExceptionMapper() {
return new RestClientExceptionMapper();
}
@@ -135,16 +145,14 @@ public class SyncopeClientFactoryBean {
defaultRestClientFactoryBean.setThreadSafe(true);
defaultRestClientFactoryBean.setInheritHeaders(true);
- List<Feature> features = new ArrayList<>();
- features.add(new LoggingFeature());
- defaultRestClientFactoryBean.setFeatures(features);
+ defaultRestClientFactoryBean.setFeatures(Arrays.asList(new
LoggingFeature()));
- List<Object> providers = new ArrayList<>(4);
- providers.add(new DateParamConverterProvider());
- providers.add(getJaxbProvider());
- providers.add(getJsonProvider());
- providers.add(getExceptionMapper());
- defaultRestClientFactoryBean.setProviders(providers);
+ defaultRestClientFactoryBean.setProviders(Arrays.asList(
+ new DateParamConverterProvider(),
+ getJsonProvider(),
+ getJaxbProvider(),
+ getYamlProvider(),
+ getExceptionMapper()));
return defaultRestClientFactoryBean;
}
@@ -170,6 +178,16 @@ public class SyncopeClientFactoryBean {
return this;
}
+ public JacksonJaxbYAMLProvider getYamlProvider() {
+ return yamlProvider == null
+ ? defaultYamlProvider()
+ : yamlProvider;
+ }
+
+ public void setYamlProvider(final JacksonJaxbYAMLProvider yamlProvider) {
+ this.yamlProvider = yamlProvider;
+ }
+
public RestClientExceptionMapper getExceptionMapper() {
return exceptionMapper == null
? defaultExceptionMapper()
diff --git a/common/lib/pom.xml b/common/lib/pom.xml
index 1ae4009..a4495c2 100644
--- a/common/lib/pom.xml
+++ b/common/lib/pom.xml
@@ -67,6 +67,12 @@ under the License.
</dependency>
<dependency>
+ <groupId>com.fasterxml.jackson.dataformat</groupId>
+ <artifactId>jackson-dataformat-yaml</artifactId>
+ <version>${jackson.version}</version>
+ </dependency>
+
+ <dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
diff --git
a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractAnnotatedBean.java
b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractAnnotatedBean.java
index 75e454e..36d7baf 100644
---
a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractAnnotatedBean.java
+++
b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractAnnotatedBean.java
@@ -22,6 +22,7 @@ import org.apache.syncope.common.lib.AbstractBaseBean;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
+import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.bind.annotation.XmlType;
import org.apache.commons.lang3.StringUtils;
@@ -29,6 +30,7 @@ import org.apache.commons.lang3.StringUtils;
* Abstract wrapper for common system information.
*/
@XmlType
+@XmlSeeAlso(AnyTO.class)
public class AbstractAnnotatedBean extends AbstractBaseBean {
private static final long serialVersionUID = -930797879027642457L;
diff --git
a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractStartEndBean.java
b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractStartEndBean.java
index f0a6f1e..92340c7 100644
---
a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractStartEndBean.java
+++
b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractStartEndBean.java
@@ -20,10 +20,12 @@ package org.apache.syncope.common.lib.to;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
+import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.bind.annotation.XmlType;
import org.apache.syncope.common.lib.AbstractBaseBean;
@XmlType
+@XmlSeeAlso({ ExecTO.class, ReportTO.class, TaskTO.class })
public class AbstractStartEndBean extends AbstractBaseBean {
private static final long serialVersionUID = 2399577415544539917L;
diff --git
a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/CheckDomainFilter.java
b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/CheckDomainFilter.java
index f2aabad3..c0bc2f8 100644
---
a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/CheckDomainFilter.java
+++
b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/CheckDomainFilter.java
@@ -53,27 +53,27 @@ public class CheckDomainFilter implements
ContainerRequestFilter {
@Override
public Void exec() {
- if (domainDAO.find(domain) == null) {
- String message = "Domain '" + domain + "' not
available";
+ if (domainDAO.find(domain) == null) {
+ String message = "Domain '" + domain + "' not available";
- ErrorTO error = new ErrorTO();
-
error.setStatus(Response.Status.NOT_FOUND.getStatusCode());
- error.setType(ClientExceptionType.NotFound);
- error.getElements().add(message);
+ ErrorTO error = new ErrorTO();
+ error.setStatus(Response.Status.NOT_FOUND.getStatusCode());
+ error.setType(ClientExceptionType.NotFound);
+ error.getElements().add(message);
-
reqContext.abortWith(Response.status(Response.Status.NOT_FOUND).
- entity(error).
- header(HttpHeaders.CONTENT_TYPE,
-
reqContext.getAcceptableMediaTypes().isEmpty()
- ? MediaType.APPLICATION_JSON
- :
reqContext.getAcceptableMediaTypes().get(0).toString()).
- header(RESTHeaders.ERROR_CODE,
- ClientExceptionType.NotFound.name()).
- header(RESTHeaders.ERROR_INFO,
-
ClientExceptionType.NotFound.getInfoHeaderValue(message)).
- build());
- }
- return null;
+
reqContext.abortWith(Response.status(Response.Status.NOT_FOUND).
+ entity(error).
+ header(HttpHeaders.CONTENT_TYPE,
+
reqContext.getAcceptableMediaTypes().isEmpty()
+ ? MediaType.APPLICATION_JSON
+ :
reqContext.getAcceptableMediaTypes().get(0).toString()).
+ header(RESTHeaders.ERROR_CODE,
+ ClientExceptionType.NotFound.name()).
+ header(RESTHeaders.ERROR_INFO,
+
ClientExceptionType.NotFound.getInfoHeaderValue(message)).
+ build());
+ }
+ return null;
}
});
}
diff --git
a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/UnwrappedObjectMapper.java
b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/SyncopeObjectMapper.java
similarity index 93%
rename from
core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/UnwrappedObjectMapper.java
rename to
core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/SyncopeObjectMapper.java
index 31b1dfd..42d121d 100644
---
a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/UnwrappedObjectMapper.java
+++
b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/SyncopeObjectMapper.java
@@ -21,6 +21,7 @@ package org.apache.syncope.core.rest.cxf;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.joda.JodaModule;
import java.io.File;
import java.io.IOException;
@@ -32,15 +33,15 @@ import java.util.Map;
* Jackson ObjectMapper that unwraps singleton map values and enable default
* typing for handling abstract types serialization.
*/
-public class UnwrappedObjectMapper extends ObjectMapper {
+public class SyncopeObjectMapper extends ObjectMapper {
private static final long serialVersionUID = -317191546835195103L;
- public UnwrappedObjectMapper() {
+ public SyncopeObjectMapper() {
super();
registerModule(new JodaModule());
-
configure(com.fasterxml.jackson.databind.SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,
false);
+ configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
}
/**
diff --git
a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/SyncopeYAMLMapper.java
b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/SyncopeYAMLMapper.java
new file mode 100644
index 0000000..b9f2ba3
--- /dev/null
+++
b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/SyncopeYAMLMapper.java
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.syncope.core.rest.cxf;
+
+import com.fasterxml.jackson.databind.SerializationFeature;
+import com.fasterxml.jackson.dataformat.yaml.YAMLMapper;
+import com.fasterxml.jackson.datatype.joda.JodaModule;
+
+public class SyncopeYAMLMapper extends YAMLMapper {
+
+ private static final long serialVersionUID = 1022020055828974308L;
+
+ public SyncopeYAMLMapper() {
+ super();
+
+ registerModule(new JodaModule());
+ configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
+ }
+}
diff --git
a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/AbstractServiceImpl.java
b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/AbstractServiceImpl.java
index c87d6b7..092cd8c 100644
---
a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/AbstractServiceImpl.java
+++
b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/AbstractServiceImpl.java
@@ -243,5 +243,4 @@ abstract class AbstractServiceImpl implements JAXRSService {
return result;
}
-
}
diff --git
a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/AnyObjectServiceImpl.java
b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/AnyObjectServiceImpl.java
index 3a7d40b..fd2ead6 100644
---
a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/AnyObjectServiceImpl.java
+++
b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/AnyObjectServiceImpl.java
@@ -98,5 +98,4 @@ public class AnyObjectServiceImpl extends
AbstractAnyService<AnyObjectTO, AnyObj
return super.search(anyQuery);
}
-
}
diff --git a/core/rest-cxf/src/main/resources/restCXFContext.xml
b/core/rest-cxf/src/main/resources/restCXFContext.xml
index 2b38266..45fb5cb 100644
--- a/core/rest-cxf/src/main/resources/restCXFContext.xml
+++ b/core/rest-cxf/src/main/resources/restCXFContext.xml
@@ -60,12 +60,15 @@ under the License.
<bean id="dateParamConverterProvider"
class="org.apache.syncope.common.rest.api.DateParamConverterProvider"/>
- <bean id="jacksonObjectMapper"
class="org.apache.syncope.core.rest.cxf.UnwrappedObjectMapper"/>
+ <bean id="syncopeObjectMapper"
class="org.apache.syncope.core.rest.cxf.SyncopeObjectMapper"/>
<bean id="jsonProvider"
class="com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider">
- <property name="mapper" ref="jacksonObjectMapper"/>
+ <property name="mapper" ref="syncopeObjectMapper"/>
</bean>
- <bean id="yamlProvider"
class="com.fasterxml.jackson.jaxrs.yaml.JacksonJaxbYAMLProvider"/>
+ <bean id="syncopeYAMLMapper"
class="org.apache.syncope.core.rest.cxf.SyncopeYAMLMapper"/>
+ <bean id="yamlProvider"
class="com.fasterxml.jackson.jaxrs.yaml.JacksonJaxbYAMLProvider">
+ <property name="mapper" ref="syncopeYAMLMapper"/>
+ </bean>
<bean id="exceptionMapper"
class="org.apache.syncope.core.rest.cxf.RestServiceExceptionMapper"/>
diff --git a/fit/core-reference/src/main/resources/jboss/restCXFContext.xml
b/fit/core-reference/src/main/resources/jboss/restCXFContext.xml
index fdc847d..89fbd19 100644
--- a/fit/core-reference/src/main/resources/jboss/restCXFContext.xml
+++ b/fit/core-reference/src/main/resources/jboss/restCXFContext.xml
@@ -60,12 +60,15 @@ under the License.
<bean id="dateParamConverterProvider"
class="org.apache.syncope.common.rest.api.DateParamConverterProvider"/>
- <bean id="jacksonObjectMapper"
class="org.apache.syncope.core.rest.cxf.UnwrappedObjectMapper"/>
+ <bean id="syncopeObjectMapper"
class="org.apache.syncope.core.rest.cxf.SyncopeObjectMapper"/>
<bean id="jsonProvider"
class="com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider">
- <property name="mapper" ref="jacksonObjectMapper"/>
+ <property name="mapper" ref="syncopeObjectMapper"/>
</bean>
- <bean id="yamlProvider"
class="com.fasterxml.jackson.jaxrs.yaml.JacksonJaxbYAMLProvider"/>
+ <bean id="syncopeYAMLMapper"
class="org.apache.syncope.core.rest.cxf.SyncopeYAMLMapper"/>
+ <bean id="yamlProvider"
class="com.fasterxml.jackson.jaxrs.yaml.JacksonJaxbYAMLProvider">
+ <property name="mapper" ref="syncopeYAMLMapper"/>
+ </bean>
<bean id="exceptionMapper"
class="org.apache.syncope.core.rest.cxf.RestServiceExceptionMapper"/>
diff --git
a/fit/core-reference/src/test/java/org/apache/syncope/fit/AbstractITCase.java
b/fit/core-reference/src/test/java/org/apache/syncope/fit/AbstractITCase.java
index 456c2c0..e31891d 100644
---
a/fit/core-reference/src/test/java/org/apache/syncope/fit/AbstractITCase.java
+++
b/fit/core-reference/src/test/java/org/apache/syncope/fit/AbstractITCase.java
@@ -22,6 +22,8 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.fail;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.dataformat.yaml.YAMLMapper;
import java.io.InputStream;
import java.net.URI;
import java.util.Locale;
@@ -117,6 +119,10 @@ public abstract class AbstractITCase {
protected static final Logger LOG =
LoggerFactory.getLogger(AbstractITCase.class);
+ protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
+
+ protected static final YAMLMapper YAML_MAPPER = new YAMLMapper();
+
protected static final String ADMIN_UNAME = "admin";
protected static final String ADMIN_PWD = "password";
diff --git
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/DynRealmITCase.java
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/DynRealmITCase.java
index a84ac5f..60b8ef1 100644
---
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/DynRealmITCase.java
+++
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/DynRealmITCase.java
@@ -24,7 +24,6 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.MediaType;
@@ -65,8 +64,6 @@ import org.eclipse.jetty.http.HttpStatus;
public class DynRealmITCase extends AbstractITCase {
- private static final ObjectMapper MAPPER = new ObjectMapper();
-
@Test
public void misc() {
DynRealmTO dynRealm = null;
@@ -261,7 +258,7 @@ public class DynRealmITCase extends AbstractITCase {
send();
assertEquals(HttpStatus.OK_200, response.getStatus());
- return (ArrayNode) MAPPER.readTree(response.getContent()).
+ return (ArrayNode) OBJECT_MAPPER.readTree(response.getContent()).
get("hits").get("hits").get(0).get("_source").get("dynRealms");
}
diff --git
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SwaggerITCase.java
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SwaggerITCase.java
index 78c219b..560bd7d 100644
---
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SwaggerITCase.java
+++
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SwaggerITCase.java
@@ -23,7 +23,6 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.io.InputStream;
import javax.ws.rs.core.MediaType;
@@ -41,7 +40,7 @@ public class SwaggerITCase extends AbstractITCase {
Response response = webClient.get();
Assume.assumeTrue(response.getStatus() == 200);
- JsonNode tree = new ObjectMapper().readTree((InputStream)
response.getEntity());
+ JsonNode tree = OBJECT_MAPPER.readTree((InputStream)
response.getEntity());
assertNotNull(tree);
JsonNode info = tree.get("info");
diff --git
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/WorkflowITCase.java
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/WorkflowITCase.java
index a600b06..a15d7ba 100644
---
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/WorkflowITCase.java
+++
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/WorkflowITCase.java
@@ -29,6 +29,7 @@ import javax.ws.rs.core.Response;
import org.apache.commons.collections4.IterableUtils;
import org.apache.commons.collections4.Predicate;
import org.apache.commons.io.IOUtils;
+import org.apache.syncope.client.lib.SyncopeClientFactoryBean;
import org.apache.syncope.common.lib.to.WorkflowDefinitionTO;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.fit.AbstractITCase;
@@ -43,7 +44,9 @@ public class WorkflowITCase extends AbstractITCase {
@BeforeClass
public static void findDefault() {
+ Assume.assumeFalse(clientFactory.getContentType() ==
SyncopeClientFactoryBean.ContentType.YAML);
Assume.assumeTrue(ActivitiDetector.isActivitiEnabledForUsers(syncopeService));
+
WorkflowDefinitionTO found = IterableUtils.find(
workflowService.list(AnyTypeKind.USER.name()), new
Predicate<WorkflowDefinitionTO>() {
@@ -60,7 +63,9 @@ public class WorkflowITCase extends AbstractITCase {
@Test
public void exportUserDefinition() throws IOException {
+ Assume.assumeFalse(clientFactory.getContentType() ==
SyncopeClientFactoryBean.ContentType.YAML);
Assume.assumeTrue(ActivitiDetector.isActivitiEnabledForUsers(syncopeService));
+
Response response = workflowService.get(AnyTypeKind.USER.name(),
defaultUserKey);
assertTrue(response.getMediaType().toString().
startsWith(clientFactory.getContentType().getMediaType().toString()));
@@ -72,7 +77,9 @@ public class WorkflowITCase extends AbstractITCase {
@Test
public void updateUserDefinition() throws IOException {
+ Assume.assumeFalse(clientFactory.getContentType() ==
SyncopeClientFactoryBean.ContentType.YAML);
Assume.assumeTrue(ActivitiDetector.isActivitiEnabledForUsers(syncopeService));
+
Response response = workflowService.get(AnyTypeKind.USER.name(),
defaultUserKey);
String definition = IOUtils.toString((InputStream)
response.getEntity(), StandardCharsets.UTF_8);