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

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

Introduction

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

Prototype

public ObjectWriter writer() 

Source Link

Document

Convenience method for constructing ObjectWriter with default settings.

Usage

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

@Test
public void testGenerateDocumentationForComposedTypes() throws Exception {
    // given// w w w .j  a  va2s. c o m
    ObjectMapper mapper = createMapper();
    JavadocReader javadocReader = mock(JavadocReader.class);
    when(javadocReader.resolveFieldComment(ComposedTypes.class, "objectField")).thenReturn("An object");
    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");
    when(javadocReader.resolveFieldComment(ComposedTypes.class, "arrayField")).thenReturn("An array");

    ConstraintReader constraintReader = mock(ConstraintReader.class);

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

    // when
    List<ExtendedFieldDescriptor> fieldDescriptions = cast(
            generator.generateDocumentation(type, mapper.getTypeFactory()));
    // then
    assertThat(fieldDescriptions.size(), is(10));
    assertThat(fieldDescriptions.get(0), is(descriptor("objectField", "Object", "An object", "true")));
    assertThat(fieldDescriptions.get(1),
            is(descriptor("objectField.stringField", "String", "A string", "true")));
    assertThat(fieldDescriptions.get(2),
            is(descriptor("objectField.booleanField", "Boolean", "A boolean", "true")));
    assertThat(fieldDescriptions.get(3),
            is(descriptor("objectField.numberField1", "Integer", "An integer", "true")));
    assertThat(fieldDescriptions.get(4),
            is(descriptor("objectField.numberField2", "Decimal", "A decimal", "true")));
    assertThat(fieldDescriptions.get(5), is(descriptor("arrayField", "Array", "An array", "true")));
    assertThat(fieldDescriptions.get(6),
            is(descriptor("arrayField[].stringField", "String", "A string", "true")));
    assertThat(fieldDescriptions.get(7),
            is(descriptor("arrayField[].booleanField", "Boolean", "A boolean", "true")));
    assertThat(fieldDescriptions.get(8),
            is(descriptor("arrayField[].numberField1", "Integer", "An integer", "true")));
    assertThat(fieldDescriptions.get(9),
            is(descriptor("arrayField[].numberField2", "Decimal", "A decimal", "true")));
}

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

@Test
public void testGenerateDocumentationForFieldResolution() throws Exception {
    // given//from  ww w. j a v a2  s  .co  m
    // different mapper for custom field resolution
    ObjectMapper mapper = new ObjectMapper();
    mapper.setVisibility(mapper.getSerializationConfig().getDefaultVisibilityChecker()
            .withFieldVisibility(JsonAutoDetect.Visibility.PUBLIC_ONLY));

    ConstraintReader constraintReader = mock(ConstraintReader.class);

    JavadocReader javadocReader = mock(JavadocReader.class);
    // comment on field directly
    when(javadocReader.resolveFieldComment(FieldCommentResolution.class, "location")).thenReturn("A location");
    // comment on getter instead of field
    when(javadocReader.resolveMethodComment(FieldCommentResolution.class, "getType")).thenReturn("A type");
    // comment on field instead of getter
    when(javadocReader.resolveFieldComment(FieldCommentResolution.class, "uri")).thenReturn("A uri");
    when(javadocReader.resolveFieldComment(FieldCommentResolution.class, "secured"))
            .thenReturn("A secured flag");

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

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

    // then
    assertThat(fieldDescriptions.size(), is(4));
    // field comment
    assertThat(fieldDescriptions.get(0), is(descriptor("location", "String", "A location", "true")));
    // getter comment
    assertThat(fieldDescriptions.get(1), is(descriptor("type", "String", "A type", "true")));
    // field comment
    assertThat(fieldDescriptions.get(2), is(descriptor("uri", "String", "A uri", "true")));
    assertThat(fieldDescriptions.get(3), is(descriptor("secured", "Boolean", "A secured flag", "true")));
}

From source file:com.acentera.utils.ProjectsHelpers.java

public String getUserWithRolesAsJson(UserProjects uproject, User currentUser) {

    //TODO: Does currentUser have access to read this user information for this project ?

    //String projectAsJson = g.toJson(p);
    JSONObject jso = new JSONObject();

    ObjectMapper mapper = new ObjectMapper();
    mapper.configure(SerializationFeature.WRAP_ROOT_VALUE, false);
    mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
    ObjectWriter ow = mapper.writer();

    try {/* w ww. j a  va  2 s .  c  o m*/
        Set<ProjectTags> projectTags = new HashSet<ProjectTags>();
        projectTags = ProjectImpl.getProjectTags(uproject);

        //jsoProject.put("user", lstUsers);
        JSONArray jsoProjectUserArray = new JSONArray();
        JSONArray jsoUserArray = new JSONArray();
        Project p = uproject.getProject();

        JSONArray jsoProjectIdArray = new JSONArray();
        jsoProjectIdArray.add(p.getId());

        User projectUser = uproject.getUser();
        jsoProjectUserArray.add(projectUser.getId());
        JSONObject jsoUser = JSONObject.fromObject(mapper.writeValueAsString(projectUser));

        jsoUser.put("projects", jsoProjectIdArray);
        jsoUser.put("project_id", p.getId());

        //Get the User Roles infos
        JSONArray jsRolesArray = new JSONArray();
        Set<ProjectTags> roles = ProjectImpl.getUserProjectRoles(uproject);
        Iterator<ProjectTags> itrRoles = roles.iterator();
        while (itrRoles.hasNext()) {
            ProjectTags userProjectRole = itrRoles.next();
            JSONObject role = JSONObject.fromObject(ow.writeValueAsString(userProjectRole));
            jsRolesArray.add(role);
        }

        jsoUser.put("roles", jsRolesArray);

        jsoUserArray.add(jsoUser);

        jso.put("users", jsoUserArray);

        Set<ProjectQuota> s = p.getQuotas();
        if ((s != null) && (s.size() > 0)) {
            jso.put("quotas", mapper.writeValueAsString(s));
        }

        Set<ProjectProviders> lstProviders = p.getProviders();
        if ((lstProviders != null) && (lstProviders.size() > 0)) {

            Set<ProjectProviders> userAccessProviders = new HashSet<ProjectProviders>();
            Iterator<ProjectProviders> itrProjectProviders = lstProviders.iterator();
            while (itrProjectProviders.hasNext()) {
                ProjectProviders pr = itrProjectProviders.next();
                if (SecurityController.isPermitted(p, pr)) {
                    userAccessProviders.add(pr);
                }
            }

            jso.put("providers", mapper.writeValueAsString(userAccessProviders));
        }

        Set<ProjectSshKey> lstKeys = p.getSshKeys();
        if ((lstKeys != null) && (lstKeys.size() > 0)) {
            Iterator<ProjectSshKey> itrKeys = lstKeys.iterator();
            JSONArray jsoKeys = new JSONArray();
            while (itrKeys.hasNext()) {
                ProjectSshKey sshKey = itrKeys.next();

                if (SecurityController.isPermitted(p, sshKey)) {
                    jsoKeys.add(mapper.writeValueAsString(sshKey));
                }

            }
            jso.put("sshkeys", jsoKeys);
        }

        jsoUser.put("tags", mapper.writeValueAsString(projectTags));

    } catch (Exception e) {
        e.printStackTrace();
    }

    return jso.toString();
}

From source file:com.acentera.utils.ProjectsHelpers.java

public String getUserProjectWithRolesAsJson(Project p, User u) {

    SecurityController.getSubject().checkPermission("project:" + p.getId() + ":view");

    //String projectAsJson = g.toJson(p);
    JSONObject jso = new JSONObject();

    UserProjects uproject = ProjectImpl.getUserProject(p.getId(), u);

    List<UserProjects> lstUsers = ProjectImpl.getUsersForProject(p);

    ObjectMapper mapper = new ObjectMapper();
    mapper.configure(SerializationFeature.WRAP_ROOT_VALUE, false);
    mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
    ObjectWriter ow = mapper.writer();

    try {//from  w  ww  .ja v a 2  s .c o m
        jso.put("project", ow.writeValueAsString(p));
        JSONObject jsoProject = jso.getJSONObject("project");
        jsoProject.put("invitetoken", uproject.getInviteToken());

        //Get the current user roles for this project...
        JSONArray jsRolesArray = new JSONArray();
        Set<ProjectTags> roles = ProjectImpl.getUserProjectRoles(uproject);
        Logger.debug("GOR ROLES : " + roles);
        Iterator<ProjectTags> itrRoles = roles.iterator();
        while (itrRoles.hasNext()) {
            ProjectTags userProjectRole = itrRoles.next();
            JSONObject role = JSONObject.fromObject(ow.writeValueAsString(userProjectRole));
            jsRolesArray.add(role);
            jsoProject.put(userProjectRole.getName(), 1);
        }

        //jsoProject.put("user", lstUsers);
        JSONArray jsoProjectUserArray = new JSONArray();
        JSONArray jsoUserArray = new JSONArray();
        Iterator<UserProjects> up = lstUsers.iterator();
        JSONArray jsoProjectIdArray = new JSONArray();
        jsoProjectIdArray.add(p.getId());

        Set<User> proessedUsers = new HashSet<User>();

        Logger.debug("ALL USERS : " + lstUsers);

        Set<ProjectTags> projectTags = new HashSet<ProjectTags>();
        projectTags = ProjectImpl.getProjectTags(uproject);

        if (SecurityController.getSubject().isPermitted("project:" + p.getId() + ":user:view")) {
            while (up.hasNext()) {
                UserProjects userProject = up.next();
                if (SecurityController.getSubject()
                        .isPermitted("project:" + p.getId() + ":user:view:" + userProject.getId())) {

                    //TOOD: If user can view this user otherwise continue.. (we must make sure project.users : [ ID's match only the one we can view ]

                    User projectUser = userProject.getUser();
                    Logger.debug("WILL INSERT.. " + projectUser.getEmail());

                    jsoProjectUserArray.add(projectUser.getId());
                    JSONObject jsoUser = JSONObject.fromObject(mapper.writeValueAsString(projectUser));

                    if (!proessedUsers.contains(projectUser)) {

                        //jsoUser.put("projects", jsoProjectIdArray);
                        jsoUser.put("project_id", p.getId());

                        //get current user Tag only..
                        //Other tags will be gathered if end-user click on them..
                        if (projectUser.equals(u)) {
                            List<ProjectUserTags> tags = ProjectImpl.getUserProjectTags(uproject);
                            JSONArray jsoTagsArr = new JSONArray();
                            for (int i = 0; i < tags.size(); i++) {
                                jsoTagsArr.add(JSONObject.fromObject(mapper.writeValueAsString(tags.get(i))));
                            }

                            //jsoUser.put("tags", mapper.writeValueAsString(userProject.getTags()));
                            jsoUser.put("tags", jsoTagsArr);
                        }

                        //jsoUser.put("tags", mapper.writeValueAsString(userProject.getTags()));

                    }
                    jsoUserArray.add(jsoUser);
                    proessedUsers.add(projectUser);
                }
            }
        }

        jso.put("users", jsoUserArray);
        jsoProject.put("users", jsoProjectUserArray);

        jso.put("tags", mapper.writeValueAsString(projectTags));

        Set<ProjectQuota> s = p.getQuotas();
        if ((s != null) && (s.size() > 0)) {
            jso.put("quotas", mapper.writeValueAsString(s));
        }

        Set<ProjectRegions> projectRegionsSet = new HashSet<ProjectRegions>();
        Set<ProjectProviders> lstProviders = p.getProviders();
        if ((lstProviders != null) && (lstProviders.size() > 0)) {

            Iterator<ProjectProviders> itrProjectProviders = lstProviders.iterator();
            Set<ProjectProviders> userAccessProviders = new HashSet<ProjectProviders>();
            while (itrProjectProviders.hasNext()) {
                ProjectProviders pr = itrProjectProviders.next();

                if (SecurityController.isTagPermitted(p.getId(), pr)) {
                    userAccessProviders.add(pr);
                    try {
                        if (pr.getRegions() != null) {
                            Iterator<ProjectProvidersRegions> itrRegions = pr.getRegions().iterator();
                            while (itrRegions.hasNext()) {
                                ProjectProvidersRegions ppr = itrRegions.next();
                                projectRegionsSet.add(ppr.getProjectRegions());
                            }
                        }
                    } catch (Exception ee) {

                    }
                }
            }

            jso.put("regions", mapper.writeValueAsString(projectRegionsSet));

            jso.put("providers", mapper.writeValueAsString(userAccessProviders));

            Set<ProjectSshKey> lstKeys = p.getSshKeys();
            if ((lstKeys != null) && (lstKeys.size() > 0)) {
                Iterator<ProjectSshKey> itrKeys = lstKeys.iterator();
                JSONArray jsoKeys = new JSONArray();
                while (itrKeys.hasNext()) {
                    ProjectSshKey sshKey = itrKeys.next();

                    if (SecurityController.isPermitted(p, sshKey)) {
                        jsoKeys.add(mapper.writeValueAsString(sshKey));
                    }

                }
                jso.put("sshkeys", jsoKeys);
            }

        }

        jsoProject.put("roles", jsRolesArray);

    } catch (Exception e) {
        e.printStackTrace();
    }

    return jso.toString();
}

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

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

    JavadocReader javadocReader = mock(JavadocReader.class);

    ConstraintReader constraintReader = mock(ConstraintReader.class);
    when(constraintReader.isMandatory(NotNull.class)).thenReturn(true);
    when(constraintReader.isMandatory(NotEmpty.class)).thenReturn(true);
    when(constraintReader.isMandatory(NotBlank.class)).thenReturn(true);

    when(constraintReader.getConstraintMessages(ConstraintResolution.class, "location"))
            .thenReturn(singletonList("A constraint for location"));
    when(constraintReader.getConstraintMessages(ConstraintResolution.class, "type"))
            .thenReturn(singletonList("A constraint for type"));
    when(constraintReader.getOptionalMessages(ConstraintResolution.class, "type"))
            .thenReturn(singletonList("false"));
    when(constraintReader.getOptionalMessages(ConstraintResolution.class, "params"))
            .thenReturn(singletonList("false"));
    when(constraintReader.getConstraintMessages(ConstraintField.class, "value"))
            .thenReturn(asList("A constraint1 for value", "A constraint2 for value"));
    when(constraintReader.getOptionalMessages(ConstraintField.class, "value"))
            .thenReturn(singletonList("false"));

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

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

    // then
    assertThat(fieldDescriptions.size(), is(5));
    assertThat(fieldDescriptions.get(0),
            is(descriptor("location", "String", null, "true", "A constraint for location")));
    assertThat(fieldDescriptions.get(1),
            is(descriptor("type", "Integer", null, "false", "A constraint for type")));
    assertThat(fieldDescriptions.get(2), is(descriptor("params", "Array", null, "false")));
    assertThat(fieldDescriptions.get(3), is(descriptor("params[].value", "String", null, "false",
            "A constraint1 for value", "A constraint2 for value")));
    assertThat(fieldDescriptions.get(4), is(descriptor("flags", "Array", null, "true")));
}

From source file:org.apache.druid.query.aggregation.AggregationTestHelper.java

public QueryRunner<Row> makeStringSerdeQueryRunner(final ObjectMapper mapper, final QueryToolChest toolChest,
        final QueryRunner<Row> baseRunner) {
    return new QueryRunner<Row>() {
        @Override/*  w  w w.  ja va2 s  . com*/
        public Sequence<Row> run(QueryPlus<Row> queryPlus, Map<String, Object> map) {
            try {
                Sequence<Row> resultSeq = baseRunner.run(queryPlus, Maps.newHashMap());
                final Yielder yielder = resultSeq.toYielder(null, new YieldingAccumulator() {
                    @Override
                    public Object accumulate(Object accumulated, Object in) {
                        yield();
                        return in;
                    }
                });
                String resultStr = mapper.writer().writeValueAsString(yielder);

                List resultRows = Lists.transform(readQueryResultArrayFromString(resultStr),
                        toolChest.makePreComputeManipulatorFn(queryPlus.getQuery(),
                                MetricManipulatorFns.deserializing()));
                return Sequences.simple(resultRows);
            } catch (Exception ex) {
                throw Throwables.propagate(ex);
            }
        }
    };
}

From source file:org.apache.james.jmap.methods.GetMessagesMethodTest.java

@Test
public void processShouldReturnPropertyFilterWhenFilteringHeadersRequested() throws Exception {
    MessageManager inbox = mailboxManager.getMailbox(inboxPath, session);
    Date now = new Date();
    ByteArrayInputStream message1Content = new ByteArrayInputStream(
            ("From: user@domain.tld\r\n" + "header1: Header1Content\r\n" + "HEADer2: Header2Content\r\n"
                    + "Subject: message 1 subject\r\n\r\nmy message").getBytes(Charsets.UTF_8));
    long message1Uid = inbox.appendMessage(message1Content, now, session, false, null);

    GetMessagesRequest request = GetMessagesRequest.builder()
            .ids(ImmutableList.of(new MessageId(ROBERT, inboxPath, message1Uid)))
            .properties(ImmutableList.of("headers.from", "headers.heADER2")).build();

    List<JmapResponse> result = testee.process(request, clientId, session).collect(Collectors.toList());

    assertThat(result).hasSize(1).extracting(JmapResponse::getFilterProvider)
            .are(new Condition<>(Optional::isPresent, "present"));
    SimpleFilterProvider actualFilterProvider = result.get(0).getFilterProvider().get();
    ObjectMapper objectMapper = new ObjectMapper();
    objectMapper/*from  www.j a  va2  s  .c  o m*/
            .setFilterProvider(actualFilterProvider.setDefaultFilter(SimpleBeanPropertyFilter.serializeAll()));
    String response = objectMapper.writer().writeValueAsString(result.get(0));
    assertThat(JsonPath.parse(response).<Map<String, String>>read("$.response.list[0].headers")).containsOnly(
            MapEntry.entry("From", "user@domain.tld"), MapEntry.entry("HEADer2", "Header2Content"));
}

From source file:org.apereo.openlrs.utils.JsonUtils.java

/**
 * Creates a JSON string from the given map
 * //from w w w. j a  v  a 2 s.c  o m
 * @param jsonMap the map holding the objects to be converted to JSON the JSON string representing the map
 * @return
 */
public static String parseJsonMapToString(Map<String, ?> jsonMap) {
    assert jsonMap != null;

    ObjectMapper om = new ObjectMapper();
    String rawJson = null;
    try {
        rawJson = om.writer().writeValueAsString(jsonMap);
    } catch (JsonProcessingException e) {
        log.error(e.getMessage(), e);
    }
    return rawJson;
}