List of usage examples for com.fasterxml.jackson.databind ObjectMapper getTypeFactory
public TypeFactory getTypeFactory()
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"))); }