Example usage for com.fasterxml.jackson.databind ObjectMapper getTypeFactory

List of usage examples for com.fasterxml.jackson.databind ObjectMapper getTypeFactory

Introduction

In this page you can find the example usage for com.fasterxml.jackson.databind ObjectMapper getTypeFactory.

Prototype

public TypeFactory getTypeFactory() 

Source Link

Document

Accessor for getting currently configured TypeFactory instance.

Usage

From source file:client.DockerSshClient.java

/**
 * If the image reference does not exist, this function will throw a JsonFormatError as the
 * output will not contain the expected objects.
 *
 * @param imageReferences the image references
 *//*from  ww  w  .  j  a v  a2  s .  co  m*/
@Override
public List<ImageInspection> inspectImages(final List<String> imageReferences)
        throws DockerDeploymentClientException {
    if (imageReferences.size() == 0) {
        return Collections.emptyList();
    }

    final ObjectMapper inspectionMapper = new ObjectMapper();

    inspectionMapper.setPropertyNamingStrategy(new PropertyNamingStrategy.PropertyNamingStrategyBase() {
        static final long serialVersionUID = 1L;

        @Override
        public String translate(final String s) {
            // Json produced by docker uses capitalized words for property names.
            return s.substring(0, 1).toUpperCase(Locale.ENGLISH) + s.substring(1);
        }
    });

    final StringBuilder sb = new StringBuilder();
    sb.append(_dockerCmd).append(" inspect ");
    for (final String imageReference : imageReferences) {
        sb.append(imageReference).append(" ");
    }

    final String inspectionJson = sshExecAndGetOutput(sb.toString());

    final List<ImageInspection> inspections;
    try {
        inspections = inspectionMapper.readValue(inspectionJson,
                inspectionMapper.getTypeFactory().constructCollectionType(List.class, ImageInspection.class));
    } catch (final IOException e) {
        throw new DockerDeploymentClient.JsonFormatError("docker inspect output in unexpected format", e);
    }

    return inspections;
}

From source file:capital.scalable.restdocs.jackson.FieldDocumentationGeneratorTest.java

@Test
public void testGenerateDocumentationForExternalSerializer() throws Exception {
    // given/*from   w ww.  j a  v a 2s  .  c o m*/
    ObjectMapper mapper = createMapper();

    JavadocReader javadocReader = mock(JavadocReader.class);
    when(javadocReader.resolveFieldComment(ExternalSerializer.class, "bigDecimal")).thenReturn("A decimal");

    ConstraintReader constraintReader = mock(ConstraintReader.class);

    SimpleModule testModule = new SimpleModule("TestModule");
    testModule.addSerializer(new BigDecimalSerializer());
    mapper.registerModule(testModule);

    FieldDocumentationGenerator generator = new FieldDocumentationGenerator(mapper.writer(), javadocReader,
            constraintReader);
    Type type = ExternalSerializer.class;

    // when
    List<ExtendedFieldDescriptor> fieldDescriptions = cast(
            generator.generateDocumentation(type, mapper.getTypeFactory()));

    // then
    assertThat(fieldDescriptions.size(), is(1));
    assertThat(fieldDescriptions.get(0), is(descriptor("bigDecimal", "Decimal", "A decimal", "true")));
}

From source file:capital.scalable.restdocs.jackson.FieldDocumentationGeneratorTest.java

@Test
public void testGenerateDocumentationForRecursiveTypes() throws Exception {
    // given//  w  w w. ja  va 2  s  . co  m
    ObjectMapper mapper = createMapper();
    JavadocReader javadocReader = mock(JavadocReader.class);
    when(javadocReader.resolveFieldComment(RecursiveType.class, "value")).thenReturn("Type value");
    when(javadocReader.resolveFieldComment(RecursiveType.class, "children")).thenReturn("Child types");
    when(javadocReader.resolveFieldComment(RecursiveType.class, "sibling")).thenReturn("Sibling type");

    ConstraintReader constraintReader = mock(ConstraintReader.class);

    FieldDocumentationGenerator generator = new FieldDocumentationGenerator(mapper.writer(), javadocReader,
            constraintReader);
    Type type = RecursiveType.class;

    // when
    List<ExtendedFieldDescriptor> fieldDescriptions = cast(
            generator.generateDocumentation(type, mapper.getTypeFactory()));

    // then
    assertThat(fieldDescriptions.size(), is(3));
    assertThat(fieldDescriptions.get(0), is(descriptor("value", "String", "Type value", "true")));
    assertThat(fieldDescriptions.get(1), is(descriptor("children", "Array", "Child types", "true")));
    assertThat(fieldDescriptions.get(2), is(descriptor("sibling", "Object", "Sibling type", "true")));
}

From source file:com.sugaronrest.restapicalls.SugarRestClientExt.java

/**
 * Gets all entities limited by MaxResultCount sets in request options.
 *
 *  @param request The request object./*w  ww . j  a  v  a  2  s  .  c o  m*/
 *  @param moduleInfo The entity model info.
 *  @return SugarRestResponse object.
 */
public static SugarRestResponse executeGetAll(SugarRestRequest request, ModuleInfo moduleInfo) {
    SugarRestResponse sugarRestResponse = new SugarRestResponse();
    LoginResponse loginResponse = new LoginResponse();
    ObjectMapper mapper = JsonObjectMapper.getMapper();

    try {
        LoginRequest loginRequest = new LoginRequest(request.getUrl(), request.getUsername(),
                request.getPassword());
        loginResponse = Authentication.login(loginRequest);

        String url = request.getUrl();
        String sessionId = loginResponse.sessionId;
        String moduleName = moduleInfo.name;
        Options options = request.getOptions();

        String query = ModuleInfoExt.getQuery(moduleInfo, options.getQueryPredicates(), options.getQuery());
        ReadEntryListResponse response = GetEntryList.run(url, sessionId, moduleName, options.getSelectFields(),
                query, options.getMaxResult());

        if (response != null) {
            sugarRestResponse.setJsonRawRequest(response.getJsonRawRequest());
            sugarRestResponse.setJsonRawResponse(response.getJsonRawResponse());
            if (response.getStatusCode() == HttpStatus.SC_OK) {
                List<Object> entities = response.getEntities();
                String jsonEnitities = mapper.writeValueAsString(entities);
                sugarRestResponse.setJData(jsonEnitities);
                sugarRestResponse.setStatusCode(response.getStatusCode());

                // Serialize json data to concrete Pojo objects.
                Class moduleClass = moduleInfo.type;
                if (moduleClass != null) {
                    JavaType type = mapper.getTypeFactory().constructCollectionType(ArrayList.class,
                            moduleClass);
                    Object pojoObjList = mapper.readValue(jsonEnitities, type);
                    sugarRestResponse.setData(pojoObjList);
                } else {
                    sugarRestResponse.setData(entities);
                }

            } else {
                sugarRestResponse.setError(response.getError());
                sugarRestResponse.setStatusCode(response.getStatusCode());
                sugarRestResponse.setJData(StringUtils.EMPTY);
                sugarRestResponse.setData(new ArrayList<Object>());
            }
        }

        return sugarRestResponse;
    } catch (Exception exception) {
        sugarRestResponse.setStatusCode(HttpStatus.SC_INTERNAL_SERVER_ERROR);
        sugarRestResponse.setError(ErrorResponse.format(exception, StringUtils.EMPTY));
    } finally {
        Authentication.logout(request.getUrl(), loginResponse.sessionId);
    }

    return sugarRestResponse;
}

From source file:capital.scalable.restdocs.jackson.FieldDocumentationGeneratorTest.java

@Test
public void testGenerateDocumentationForPrimitiveTypes() throws Exception {
    // given/*from w  w w. j  a  v a2s .c om*/
    ObjectMapper mapper = createMapper();
    JavadocReader javadocReader = mock(JavadocReader.class);
    when(javadocReader.resolveFieldComment(PrimitiveTypes.class, "stringField")).thenReturn("A string");
    when(javadocReader.resolveFieldComment(PrimitiveTypes.class, "booleanField")).thenReturn("A boolean");
    when(javadocReader.resolveFieldComment(PrimitiveTypes.class, "numberField1")).thenReturn("An integer");
    when(javadocReader.resolveFieldComment(PrimitiveTypes.class, "numberField2")).thenReturn("A decimal");

    ConstraintReader constraintReader = mock(ConstraintReader.class);

    FieldDocumentationGenerator generator = new FieldDocumentationGenerator(mapper.writer(), javadocReader,
            constraintReader);
    Type type = PrimitiveTypes.class;

    // when
    List<ExtendedFieldDescriptor> fieldDescriptions = cast(
            generator.generateDocumentation(type, mapper.getTypeFactory()));
    // then
    assertThat(fieldDescriptions.size(), is(4));
    assertThat(fieldDescriptions.get(0), is(descriptor("stringField", "String", "A string", "true")));
    assertThat(fieldDescriptions.get(1), is(descriptor("booleanField", "Boolean", "A boolean", "true")));
    assertThat(fieldDescriptions.get(2), is(descriptor("numberField1", "Integer", "An integer", "true")));
    assertThat(fieldDescriptions.get(3), is(descriptor("numberField2", "Decimal", "A decimal", "true")));
}

From source file:capital.scalable.restdocs.jackson.FieldDocumentationGeneratorTest.java

@Test
public void testGenerateDocumentationForJacksonAnnotations() throws Exception {
    // given//from  ww w  . jav a2 s  . c o  m
    ObjectMapper mapper = createMapper();

    JavadocReader javadocReader = mock(JavadocReader.class);
    when(javadocReader.resolveFieldComment(JsonAnnotations.class, "location")).thenReturn("A location");
    when(javadocReader.resolveFieldComment(JsonAnnotations.class, "uri")).thenReturn("A uri");
    when(javadocReader.resolveMethodComment(JsonAnnotations.class, "getParameter")).thenReturn("A parameter");
    when(javadocReader.resolveFieldComment(JsonAnnotations.Meta.class, "headers")).thenReturn("A header map");

    ConstraintReader constraintReader = mock(ConstraintReader.class);

    FieldDocumentationGenerator generator = new FieldDocumentationGenerator(mapper.writer(), javadocReader,
            constraintReader);
    Type type = JsonAnnotations.class;

    // when
    List<ExtendedFieldDescriptor> fieldDescriptions = cast(
            generator.generateDocumentation(type, mapper.getTypeFactory()));

    // then
    assertThat(fieldDescriptions.size(), is(4));
    // @JsonPropertyOrder puts it to first place
    assertThat(fieldDescriptions.get(0), is(descriptor("uri", "String", "A uri", "true")));
    // @JsonProperty
    assertThat(fieldDescriptions.get(1), is(descriptor("path", "String", "A location", "true")));
    // @JsonGetter
    assertThat(fieldDescriptions.get(2), is(descriptor("param", "String", "A parameter", "true")));
    // @JsonUnwrapped
    assertThat(fieldDescriptions.get(3), is(descriptor("headers", "Map", "A header map", "true")));
}

From source file:com.sugaronrest.restapicalls.SugarRestClientExt.java

/**
 * Gets all entities by page. Page options set in request options.
 *
 *  @param request The request object./*  w w w. ja  v  a2  s. c  o  m*/
 *  @param moduleInfo The entity model info.
 *  @return SugarRestResponse object.
 */
public static SugarRestResponse executeGetPaged(SugarRestRequest request, ModuleInfo moduleInfo) {
    SugarRestResponse sugarRestResponse = new SugarRestResponse();
    LoginResponse loginResponse = new LoginResponse();
    ObjectMapper mapper = JsonObjectMapper.getMapper();

    try {
        LoginRequest loginRequest = new LoginRequest(request.getUrl(), request.getUsername(),
                request.getPassword());
        loginResponse = Authentication.login(loginRequest);

        String url = request.getUrl();
        String sessionId = loginResponse.sessionId;
        String moduleName = moduleInfo.name;
        Options options = request.getOptions();

        String query = ModuleInfoExt.getQuery(moduleInfo, options.getQueryPredicates(), options.getQuery());

        ReadEntryListResponse response = GetPagedEntryList.run(url, sessionId, moduleName,
                options.getSelectFields(), query, options.getCurrentPage(), options.getNumberPerPage());

        if (response != null) {
            sugarRestResponse.setJsonRawRequest(response.getJsonRawRequest());
            sugarRestResponse.setJsonRawResponse(response.getJsonRawResponse());
            if (response.getStatusCode() == HttpStatus.SC_OK) {
                List<Object> entities = response.getEntities();
                String jsonEnitities = mapper.writeValueAsString(entities);
                sugarRestResponse.setJData(jsonEnitities);
                sugarRestResponse.setStatusCode(response.getStatusCode());

                // Serialize json data to concrete Pojo objects.
                Class moduleClass = moduleInfo.type;
                if (moduleClass != null) {
                    JavaType type = mapper.getTypeFactory().constructCollectionType(ArrayList.class,
                            moduleClass);
                    Object pojoObjList = mapper.readValue(jsonEnitities, type);
                    sugarRestResponse.setData(pojoObjList);
                } else {
                    sugarRestResponse.setData(entities);
                }
            } else {
                sugarRestResponse.setError(response.getError());
                sugarRestResponse.setStatusCode(response.getStatusCode());
                sugarRestResponse.setJData(StringUtils.EMPTY);
                sugarRestResponse.setData(new ArrayList<Object>());
            }
        }

        return sugarRestResponse;
    } catch (Exception exception) {
        sugarRestResponse.setStatusCode(HttpStatus.SC_INTERNAL_SERVER_ERROR);
        sugarRestResponse.setError(ErrorResponse.format(exception, StringUtils.EMPTY));
    } finally {
        Authentication.logout(request.getUrl(), loginResponse.sessionId);
    }

    return sugarRestResponse;
}

From source file:org.wso2.emm.agent.services.operationMgt.OperationManager.java

/**
 * Monitor currently enforced policy for compliance.
 *
 * @param operation - Operation object.//from   w  w  w  .  j  a  v a 2s  .c  om
 */
public void monitorPolicy(org.wso2.emm.agent.beans.Operation operation) throws AndroidAgentException {
    String payload = Preference.getString(context, Constants.PreferenceFlag.APPLIED_POLICY);
    PolicyOperationsMapper operationsMapper = new PolicyOperationsMapper();
    ObjectMapper mapper = new ObjectMapper();
    mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
    mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);

    PolicyComplianceChecker policyChecker = new PolicyComplianceChecker(context);
    ArrayList<ComplianceFeature> result = new ArrayList<>();

    try {
        if (payload != null) {
            List<org.wso2.emm.agent.beans.Operation> operations = mapper.readValue(payload,
                    mapper.getTypeFactory().constructCollectionType(List.class,
                            org.wso2.emm.agent.beans.Operation.class));
            for (org.wso2.emm.agent.beans.Operation op : operations) {
                op = operationsMapper.getOperation(op);
                result.add(policyChecker.checkPolicyState(op));
            }
            operation.setStatus(resources.getString(R.string.operation_value_completed));
            operation.setPayLoad(mapper.writeValueAsString(result));
            resultBuilder.build(operation);
        }
    } catch (IOException e) {
        operation.setStatus(resources.getString(R.string.operation_value_error));
        resultBuilder.build(operation);
        throw new AndroidAgentException("Error occurred while parsing stream.", e);
    }
}

From source file:org.saiku.web.rest.resources.QueryResource.java

@POST
@Produces({ "application/json" })
@Path("/{queryname}/drillacross")
public SaikuQuery drillacross(@PathParam("queryname") String queryName, @FormParam("position") String position,
        @FormParam("drill") String returns) {
    if (log.isDebugEnabled()) {
        log.debug("TRACK\t" + "\t/query/" + queryName + "/drillacross\tPOST");
    }//from  ww  w  .j  av a 2 s .c o m
    try {
        String[] positions = position.split(":");
        List<Integer> cellPosition = new ArrayList<>();
        for (String p : positions) {
            Integer pInt = Integer.parseInt(p);
            cellPosition.add(pInt);
        }
        ObjectMapper mapper = new ObjectMapper();
        JavaType ct = mapper.getTypeFactory().constructCollectionType(ArrayList.class, String.class);

        JavaType st = mapper.getTypeFactory().uncheckedSimpleType(String.class);
        Map<String, List<String>> levels = mapper.readValue(returns,
                mapper.getTypeFactory().constructMapType(Map.class, st, ct));

        return olapQueryService.drillacross(queryName, cellPosition, levels);
    } catch (Exception e) {
        log.error("Cannot execute query (" + queryName + ")", e);
        String error = ExceptionUtils.getRootCauseMessage(e);
        throw new WebApplicationException(Response.serverError().entity(error).build());
    }
}

From source file:capital.scalable.restdocs.jackson.FieldDocumentationGeneratorTest.java

@Test
public void testGenerateDocumentationForNestedTypes() throws Exception {
    // given//www  . ja v  a  2s. com
    ObjectMapper mapper = createMapper();
    JavadocReader javadocReader = mock(JavadocReader.class);
    when(javadocReader.resolveFieldComment(FirstLevel.class, "second")).thenReturn("2nd level");
    when(javadocReader.resolveFieldComment(SecondLevel.class, "third")).thenReturn("3rd level");
    when(javadocReader.resolveFieldComment(ThirdLevel.class, "fourth")).thenReturn("4th level");
    when(javadocReader.resolveFieldComment(FourthLevel.class, "fifth")).thenReturn("5th level");
    when(javadocReader.resolveFieldComment(FifthLevel.class, "last")).thenReturn("An integer");

    ConstraintReader constraintReader = mock(ConstraintReader.class);

    FieldDocumentationGenerator generator = new FieldDocumentationGenerator(mapper.writer(), javadocReader,
            constraintReader);
    Type type = FirstLevel.class;

    // when
    List<ExtendedFieldDescriptor> fieldDescriptions = cast(
            generator.generateDocumentation(type, mapper.getTypeFactory()));

    // then
    assertThat(fieldDescriptions.size(), is(5));
    assertThat(fieldDescriptions.get(0), is(descriptor("second", "Object", "2nd level", "true")));
    assertThat(fieldDescriptions.get(1), is(descriptor("second.third", "Array", "3rd level", "true")));
    assertThat(fieldDescriptions.get(2),
            is(descriptor("second.third[].fourth", "Object", "4th level", "true")));
    assertThat(fieldDescriptions.get(3),
            is(descriptor("second.third[].fourth.fifth", "Array", "5th level", "true")));
    assertThat(fieldDescriptions.get(4),
            is(descriptor("second.third[].fourth.fifth[].last", "Integer", "An integer", "true")));
}