Example usage for org.springframework.jdbc.core JdbcTemplate update

List of usage examples for org.springframework.jdbc.core JdbcTemplate update

Introduction

In this page you can find the example usage for org.springframework.jdbc.core JdbcTemplate update.

Prototype

@Override
    public int update(String sql, @Nullable Object... args) throws DataAccessException 

Source Link

Usage

From source file:org.apache.syncope.core.persistence.jpa.content.ContentLoaderHandler.java

@Override
public void startElement(final String uri, final String localName, final String qName, final Attributes atts)
        throws SAXException {

    // skip root element
    if (rootElement.equals(qName)) {
        return;/*from w  ww.  j  av  a  2s .  c o m*/
    }

    StringBuilder query = new StringBuilder("INSERT INTO ").append(qName).append('(');

    StringBuilder values = new StringBuilder();

    for (int i = 0; i < atts.getLength(); i++) {
        query.append(atts.getQName(i));
        values.append('?');
        if (i < atts.getLength() - 1) {
            query.append(',');
            values.append(',');
        }
    }
    query.append(") VALUES (").append(values).append(')');

    JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
    try {
        jdbcTemplate.update(query.toString(), getParameters(qName, atts));
    } catch (DataAccessException e) {
        LOG.error("While trying to perform {}", query, e);
        if (!continueOnError) {
            throw e;
        }
    }
}

From source file:org.apache.syncope.core.rest.VirAttrTestITCase.java

@Test
public void virAttrCache() {
    UserTO userTO = UserTestITCase.getUniqueSampleTO("virattrcache@apache.org");
    userTO.getVirAttrs().clear();// ww w .jav a 2s  .  co  m

    AttributeTO virAttrTO = new AttributeTO();
    virAttrTO.setSchema("virtualdata");
    virAttrTO.getValues().add("virattrcache");
    userTO.getVirAttrs().add(virAttrTO);

    userTO.getMemberships().clear();
    userTO.getResources().clear();
    userTO.getResources().add(RESOURCE_NAME_DBVIRATTR);

    // 1. create user
    UserTO actual = createUser(userTO);
    assertNotNull(actual);

    // 2. check for virtual attribute value
    actual = userService.read(actual.getId());
    assertEquals("virattrcache", actual.getVirAttrMap().get("virtualdata").getValues().get(0));

    // 3. update virtual attribute directly
    final JdbcTemplate jdbcTemplate = new JdbcTemplate(testDataSource);

    String value = jdbcTemplate.queryForObject("SELECT USERNAME FROM testsync WHERE ID=?", String.class,
            actual.getId());
    assertEquals("virattrcache", value);

    jdbcTemplate.update("UPDATE testsync set USERNAME='virattrcache2' WHERE ID=?", actual.getId());

    value = jdbcTemplate.queryForObject("SELECT USERNAME FROM testsync WHERE ID=?", String.class,
            actual.getId());
    assertEquals("virattrcache2", value);

    // 4. check for cached attribute value
    actual = userService.read(actual.getId());
    assertEquals("virattrcache", actual.getVirAttrMap().get("virtualdata").getValues().get(0));

    UserMod userMod = new UserMod();
    userMod.setId(actual.getId());

    AttributeMod virtualdata = new AttributeMod();
    virtualdata.setSchema("virtualdata");
    virtualdata.getValuesToBeAdded().add("virtualupdated");

    userMod.getVirAttrsToRemove().add("virtualdata");
    userMod.getVirAttrsToUpdate().add(virtualdata);

    // 5. update virtual attribute
    actual = updateUser(userMod);
    assertNotNull(actual);

    // 6. check for virtual attribute value
    actual = userService.read(actual.getId());
    assertNotNull(actual);
    assertEquals("virtualupdated", actual.getVirAttrMap().get("virtualdata").getValues().get(0));
}

From source file:org.apache.syncope.core.rest.VirAttrTestITCase.java

@Test
public void issueSYNCOPE442() {
    UserTO userTO = UserTestITCase.getUniqueSampleTO("syncope442@apache.org");
    userTO.getVirAttrs().clear();//  w w  w . j  a va 2s.  c o  m

    AttributeTO virAttrTO = new AttributeTO();
    virAttrTO.setSchema("virtualdata");
    virAttrTO.getValues().add("virattrcache");
    userTO.getVirAttrs().add(virAttrTO);

    userTO.getMemberships().clear();
    userTO.getResources().clear();
    userTO.getResources().add(RESOURCE_NAME_DBVIRATTR);

    // 1. create user
    UserTO actual = createUser(userTO);
    assertNotNull(actual);

    // 2. check for virtual attribute value
    actual = userService.read(actual.getId());
    assertEquals("virattrcache", actual.getVirAttrMap().get("virtualdata").getValues().get(0));

    // ----------------------------------------
    // 3. force cache expiring without any modification
    // ----------------------------------------
    String jdbcURL = null;
    ConnInstanceTO connInstanceBean = connectorService.readByResource(RESOURCE_NAME_DBVIRATTR);
    for (ConnConfProperty prop : connInstanceBean.getConfiguration()) {
        if ("jdbcUrlTemplate".equals(prop.getSchema().getName())) {
            jdbcURL = prop.getValues().iterator().next().toString();
            prop.getValues().clear();
            prop.getValues().add("jdbc:h2:tcp://localhost:9092/xxx");
        }
    }

    connectorService.update(connInstanceBean.getId(), connInstanceBean);

    UserMod userMod = new UserMod();
    userMod.setId(actual.getId());

    AttributeMod virtualdata = new AttributeMod();
    virtualdata.setSchema("virtualdata");
    virtualdata.getValuesToBeAdded().add("virtualupdated");

    userMod.getVirAttrsToRemove().add("virtualdata");
    userMod.getVirAttrsToUpdate().add(virtualdata);

    actual = updateUser(userMod);
    assertNotNull(actual);
    // ----------------------------------------

    // ----------------------------------------
    // 4. update virtual attribute
    // ----------------------------------------
    final JdbcTemplate jdbcTemplate = new JdbcTemplate(testDataSource);

    String value = jdbcTemplate.queryForObject("SELECT USERNAME FROM testsync WHERE ID=?", String.class,
            actual.getId());
    assertEquals("virattrcache", value);

    jdbcTemplate.update("UPDATE testsync set USERNAME='virattrcache2' WHERE ID=?", actual.getId());

    value = jdbcTemplate.queryForObject("SELECT USERNAME FROM testsync WHERE ID=?", String.class,
            actual.getId());
    assertEquals("virattrcache2", value);
    // ----------------------------------------

    actual = userService.read(actual.getId());
    assertEquals("virattrcache", actual.getVirAttrMap().get("virtualdata").getValues().get(0));

    // ----------------------------------------
    // 5. restore connector
    // ----------------------------------------
    for (ConnConfProperty prop : connInstanceBean.getConfiguration()) {
        if ("jdbcUrlTemplate".equals(prop.getSchema().getName())) {
            prop.getValues().clear();
            prop.getValues().add(jdbcURL);
        }
    }

    connectorService.update(connInstanceBean.getId(), connInstanceBean);
    // ----------------------------------------

    actual = userService.read(actual.getId());
    assertEquals("virattrcache2", actual.getVirAttrMap().get("virtualdata").getValues().get(0));
}

From source file:org.apache.syncope.core.rest.VirAttrTestITCase.java

@Test
public void issueSYNCOPE458() {
    // -------------------------------------------
    // Create a role ad-hoc
    // -------------------------------------------
    final String roleName = "issueSYNCOPE458-Role-" + getUUIDString();
    RoleTO roleTO = new RoleTO();
    roleTO.setName(roleName);// www. j ava2 s .c  o m
    roleTO.setParent(2L);
    roleTO.setInheritTemplates(true);
    roleTO = createRole(roleTO);
    // -------------------------------------------

    // -------------------------------------------
    // Update resource-db-virattr mapping adding new membership virtual schema mapping
    // -------------------------------------------
    ResourceTO resourceDBVirAttr = resourceService.read(RESOURCE_NAME_DBVIRATTR);
    assertNotNull(resourceDBVirAttr);

    final MappingTO resourceUMapping = resourceDBVirAttr.getUmapping();

    MappingItemTO item = new MappingItemTO();
    item.setIntAttrName("mvirtualdata");
    item.setIntMappingType(IntMappingType.MembershipVirtualSchema);
    item.setExtAttrName("EMAIL");
    item.setPurpose(MappingPurpose.BOTH);

    resourceUMapping.addItem(item);

    resourceDBVirAttr.setUmapping(resourceUMapping);

    resourceService.update(RESOURCE_NAME_DBVIRATTR, resourceDBVirAttr);
    // -------------------------------------------

    // -------------------------------------------
    // Create new user
    // -------------------------------------------
    UserTO userTO = UserTestITCase.getUniqueSampleTO("syncope458@syncope.apache.org");
    userTO.getResources().clear();
    userTO.getResources().add(RESOURCE_NAME_DBVIRATTR);
    userTO.getVirAttrs().clear();
    userTO.getDerAttrs().clear();
    userTO.getMemberships().clear();

    // add membership, with virtual attribute populated, to user
    MembershipTO membership = new MembershipTO();
    membership.setRoleId(roleTO.getId());
    membership.getVirAttrs().add(attributeTO("mvirtualdata", "syncope458@syncope.apache.org"));
    userTO.getMemberships().add(membership);

    //propagate user
    userTO = createUser(userTO);
    assertEquals(1, userTO.getPropagationStatusTOs().size());
    assertTrue(userTO.getPropagationStatusTOs().get(0).getStatus().isSuccessful());
    // -------------------------------------------

    // 1. check if membership has virtual attribute populated
    assertNotNull(userTO.getMemberships().get(0).getVirAttrMap().get("mvirtualdata"));
    assertEquals("syncope458@syncope.apache.org",
            userTO.getMemberships().get(0).getVirAttrMap().get("mvirtualdata").getValues().get(0));
    // -------------------------------------------

    // 2. update membership virtual attribute
    MembershipMod membershipMod = new MembershipMod();
    membershipMod.setRole(roleTO.getId());
    membershipMod.getVirAttrsToUpdate().add(attributeMod("mvirtualdata", "syncope458_NEW@syncope.apache.org"));

    UserMod userMod = new UserMod();
    userMod.setId(userTO.getId());
    userMod.getMembershipsToAdd().add(membershipMod);
    userMod.getMembershipsToRemove().add(userTO.getMemberships().iterator().next().getId());

    userTO = updateUser(userMod);
    assertNotNull(userTO);
    // 3. check again after update if membership has virtual attribute populated with new value
    assertNotNull(userTO.getMemberships().get(0).getVirAttrMap().get("mvirtualdata"));
    assertEquals("syncope458_NEW@syncope.apache.org",
            userTO.getMemberships().get(0).getVirAttrMap().get("mvirtualdata").getValues().get(0));

    // ----------------------------------------
    // force cache expiring without any modification
    // ----------------------------------------
    String jdbcURL = null;
    ConnInstanceTO connInstanceBean = connectorService.readByResource(RESOURCE_NAME_DBVIRATTR);
    for (ConnConfProperty prop : connInstanceBean.getConfiguration()) {
        if ("jdbcUrlTemplate".equals(prop.getSchema().getName())) {
            jdbcURL = prop.getValues().iterator().next().toString();
            prop.getValues().clear();
            prop.getValues().add("jdbc:h2:tcp://localhost:9092/xxx");
        }
    }

    connectorService.update(connInstanceBean.getId(), connInstanceBean);

    membershipMod = new MembershipMod();
    membershipMod.setRole(roleTO.getId());
    membershipMod.getVirAttrsToUpdate()
            .add(attributeMod("mvirtualdata", "syncope458_updated@syncope.apache.org"));

    userMod = new UserMod();
    userMod.setId(userTO.getId());
    userMod.getMembershipsToAdd().add(membershipMod);
    userMod.getMembershipsToRemove().add(userTO.getMemberships().iterator().next().getId());

    userTO = updateUser(userMod);
    assertNotNull(userTO);
    // ----------------------------------

    // change attribute value directly on resource
    final JdbcTemplate jdbcTemplate = new JdbcTemplate(testDataSource);

    String value = jdbcTemplate.queryForObject("SELECT EMAIL FROM testsync WHERE ID=?", String.class,
            userTO.getId());
    assertEquals("syncope458_NEW@syncope.apache.org", value);

    jdbcTemplate.update("UPDATE testsync set EMAIL='syncope458_NEW_TWO@syncope.apache.org' WHERE ID=?",
            userTO.getId());

    value = jdbcTemplate.queryForObject("SELECT EMAIL FROM testsync WHERE ID=?", String.class, userTO.getId());
    assertEquals("syncope458_NEW_TWO@syncope.apache.org", value);
    // ----------------------------------------

    // ----------------------------------------
    // restore connector
    // ----------------------------------------
    for (ConnConfProperty prop : connInstanceBean.getConfiguration()) {
        if ("jdbcUrlTemplate".equals(prop.getSchema().getName())) {
            prop.getValues().clear();
            prop.getValues().add(jdbcURL);
        }
    }
    connectorService.update(connInstanceBean.getId(), connInstanceBean);
    // ----------------------------------------

    userTO = userService.read(userTO.getId());
    assertNotNull(userTO);
    // 4. check virtual attribute synchronization after direct update on resource
    assertEquals("syncope458_NEW_TWO@syncope.apache.org",
            userTO.getMemberships().get(0).getVirAttrMap().get("mvirtualdata").getValues().get(0));

    // 5. remove membership virtual attribute
    membershipMod = new MembershipMod();
    membershipMod.setRole(roleTO.getId());
    membershipMod.getVirAttrsToRemove().add("mvirtualdata");

    userMod = new UserMod();
    userMod.setId(userTO.getId());
    userMod.getMembershipsToAdd().add(membershipMod);
    userMod.getMembershipsToRemove().add(userTO.getMemberships().iterator().next().getId());

    userTO = updateUser(userMod);
    assertNotNull(userTO);
    // check again after update if membership hasn't any virtual attribute
    assertTrue(userTO.getMemberships().get(0).getVirAttrMap().isEmpty());

    // -------------------------------------------
    // Delete role ad-hoc and restore resource mapping
    // -------------------------------------------
    roleService.delete(roleTO.getId());

    resourceUMapping.removeItem(item);
    resourceDBVirAttr.setUmapping(resourceUMapping);
    resourceService.update(RESOURCE_NAME_DBVIRATTR, resourceDBVirAttr);
    // -------------------------------------------
}

From source file:org.apache.syncope.fit.core.reference.VirAttrITCase.java

@Test
public void virAttrCache() {
    UserTO userTO = UserITCase.getUniqueSampleTO("virattrcache@apache.org");
    userTO.getVirAttrs().clear();//w ww  . j  a v  a  2  s.  c o  m

    AttrTO virAttrTO = new AttrTO();
    virAttrTO.setSchema("virtualdata");
    virAttrTO.getValues().add("virattrcache");
    userTO.getVirAttrs().add(virAttrTO);

    userTO.getMemberships().clear();
    userTO.getResources().clear();
    userTO.getResources().add(RESOURCE_NAME_DBVIRATTR);

    // 1. create user
    UserTO actual = createUser(userTO);
    assertNotNull(actual);

    // 2. check for virtual attribute value
    actual = userService.read(actual.getKey());
    assertEquals("virattrcache", actual.getVirAttrMap().get("virtualdata").getValues().get(0));

    // 3. update virtual attribute directly
    JdbcTemplate jdbcTemplate = new JdbcTemplate(testDataSource);

    String value = jdbcTemplate.queryForObject("SELECT USERNAME FROM testsync WHERE ID=?", String.class,
            actual.getKey());
    assertEquals("virattrcache", value);

    jdbcTemplate.update("UPDATE testsync set USERNAME='virattrcache2' WHERE ID=?", actual.getKey());

    value = jdbcTemplate.queryForObject("SELECT USERNAME FROM testsync WHERE ID=?", String.class,
            actual.getKey());
    assertEquals("virattrcache2", value);

    // 4. check for cached attribute value
    actual = userService.read(actual.getKey());
    assertEquals("virattrcache", actual.getVirAttrMap().get("virtualdata").getValues().get(0));

    UserMod userMod = new UserMod();
    userMod.setKey(actual.getKey());

    AttrMod virtualdata = new AttrMod();
    virtualdata.setSchema("virtualdata");
    virtualdata.getValuesToBeAdded().add("virtualupdated");

    userMod.getVirAttrsToRemove().add("virtualdata");
    userMod.getVirAttrsToUpdate().add(virtualdata);

    // 5. update virtual attribute
    actual = updateUser(userMod);
    assertNotNull(actual);

    // 6. check for virtual attribute value
    actual = userService.read(actual.getKey());
    assertNotNull(actual);
    assertEquals("virtualupdated", actual.getVirAttrMap().get("virtualdata").getValues().get(0));
}

From source file:org.apache.syncope.fit.core.reference.VirAttrITCase.java

@Test
public void issueSYNCOPE442() {
    UserTO userTO = UserITCase.getUniqueSampleTO("syncope442@apache.org");
    userTO.getVirAttrs().clear();/*from   w  w  w  .  j av  a2  s .  c om*/

    AttrTO virAttrTO = new AttrTO();
    virAttrTO.setSchema("virtualdata");
    virAttrTO.getValues().add("virattrcache");
    userTO.getVirAttrs().add(virAttrTO);

    userTO.getMemberships().clear();
    userTO.getResources().clear();
    userTO.getResources().add(RESOURCE_NAME_DBVIRATTR);

    // 1. create user
    UserTO actual = createUser(userTO);
    assertNotNull(actual);

    // 2. check for virtual attribute value
    actual = userService.read(actual.getKey());
    assertEquals("virattrcache", actual.getVirAttrMap().get("virtualdata").getValues().get(0));

    // ----------------------------------------
    // 3. force cache expiring without any modification
    // ----------------------------------------
    String jdbcURL = null;
    ConnInstanceTO connInstanceBean = connectorService.readByResource(RESOURCE_NAME_DBVIRATTR);
    for (ConnConfProperty prop : connInstanceBean.getConfiguration()) {
        if ("jdbcUrlTemplate".equals(prop.getSchema().getName())) {
            jdbcURL = prop.getValues().iterator().next().toString();
            prop.getValues().clear();
            prop.getValues().add("jdbc:h2:tcp://localhost:9092/xxx");
        }
    }

    connectorService.update(connInstanceBean);

    UserMod userMod = new UserMod();
    userMod.setKey(actual.getKey());

    AttrMod virtualdata = new AttrMod();
    virtualdata.setSchema("virtualdata");
    virtualdata.getValuesToBeAdded().add("virtualupdated");

    userMod.getVirAttrsToRemove().add("virtualdata");
    userMod.getVirAttrsToUpdate().add(virtualdata);

    actual = updateUser(userMod);
    assertNotNull(actual);
    // ----------------------------------------

    // ----------------------------------------
    // 4. update virtual attribute
    // ----------------------------------------
    final JdbcTemplate jdbcTemplate = new JdbcTemplate(testDataSource);

    String value = jdbcTemplate.queryForObject("SELECT USERNAME FROM testsync WHERE ID=?", String.class,
            actual.getKey());
    assertEquals("virattrcache", value);

    jdbcTemplate.update("UPDATE testsync set USERNAME='virattrcache2' WHERE ID=?", actual.getKey());

    value = jdbcTemplate.queryForObject("SELECT USERNAME FROM testsync WHERE ID=?", String.class,
            actual.getKey());
    assertEquals("virattrcache2", value);
    // ----------------------------------------

    actual = userService.read(actual.getKey());
    assertEquals("virattrcache", actual.getVirAttrMap().get("virtualdata").getValues().get(0));

    // ----------------------------------------
    // 5. restore connector
    // ----------------------------------------
    for (ConnConfProperty prop : connInstanceBean.getConfiguration()) {
        if ("jdbcUrlTemplate".equals(prop.getSchema().getName())) {
            prop.getValues().clear();
            prop.getValues().add(jdbcURL);
        }
    }

    connectorService.update(connInstanceBean);
    // ----------------------------------------

    actual = userService.read(actual.getKey());
    assertEquals("virattrcache2", actual.getVirAttrMap().get("virtualdata").getValues().get(0));
}

From source file:org.apache.syncope.fit.core.VirAttrITCase.java

@Test
public void virAttrCache() {
    UserTO userTO = UserITCase.getUniqueSampleTO("virattrcache@apache.org");
    userTO.getVirAttrs().clear();//w ww.ja v  a  2  s  .  c  om

    AttrTO virAttrTO = new AttrTO();
    virAttrTO.setSchema("virtualdata");
    virAttrTO.getValues().add("virattrcache");
    userTO.getVirAttrs().add(virAttrTO);

    userTO.getMemberships().clear();
    userTO.getResources().clear();
    userTO.getResources().add(RESOURCE_NAME_DBVIRATTR);

    // 1. create user
    UserTO actual = createUser(userTO).getEntity();
    assertNotNull(actual);

    // 2. check for virtual attribute value
    actual = userService.read(actual.getKey());
    assertEquals("virattrcache", actual.getVirAttr("virtualdata").get().getValues().get(0));

    // 3. update virtual attribute directly
    JdbcTemplate jdbcTemplate = new JdbcTemplate(testDataSource);
    String value = queryForObject(jdbcTemplate, 50, "SELECT USERNAME FROM testpull WHERE ID=?", String.class,
            actual.getKey());
    assertEquals("virattrcache", value);

    jdbcTemplate.update("UPDATE testpull set USERNAME='virattrcache2' WHERE ID=?", actual.getKey());

    value = queryForObject(jdbcTemplate, 50, "SELECT USERNAME FROM testpull WHERE ID=?", String.class,
            actual.getKey());
    assertEquals("virattrcache2", value);

    // 4. check for cached attribute value
    actual = userService.read(actual.getKey());
    assertEquals("virattrcache", actual.getVirAttr("virtualdata").get().getValues().get(0));

    UserPatch userPatch = new UserPatch();
    userPatch.setKey(actual.getKey());
    userPatch.getVirAttrs().add(attrTO("virtualdata", "virtualupdated"));

    // 5. update virtual attribute
    actual = updateUser(userPatch).getEntity();
    assertNotNull(actual);

    // 6. check for virtual attribute value
    actual = userService.read(actual.getKey());
    assertNotNull(actual);
    assertEquals("virtualupdated", actual.getVirAttr("virtualdata").get().getValues().get(0));
}

From source file:org.apache.syncope.fit.core.VirAttrITCase.java

@Test
public void issueSYNCOPE442() {
    UserTO userTO = UserITCase.getUniqueSampleTO("syncope442@apache.org");
    userTO.getVirAttrs().clear();/*ww  w  .ja  v a2s .  c o  m*/

    AttrTO virAttrTO = new AttrTO();
    virAttrTO.setSchema("virtualdata");
    virAttrTO.getValues().add("virattrcache");
    userTO.getVirAttrs().add(virAttrTO);

    userTO.getMemberships().clear();
    userTO.getResources().clear();
    userTO.getResources().add(RESOURCE_NAME_DBVIRATTR);

    // 1. create user
    userTO = createUser(userTO).getEntity();
    assertNotNull(userTO);

    // 2. check for virtual attribute value
    userTO = userService.read(userTO.getKey());
    assertEquals("virattrcache", userTO.getVirAttr("virtualdata").get().getValues().get(0));

    // ----------------------------------------
    // 3. change connector URL so that we are sure that any provided value will come from virtual cache
    // ----------------------------------------
    String jdbcURL = null;
    ConnInstanceTO connInstanceTO = connectorService.readByResource(RESOURCE_NAME_DBVIRATTR,
            Locale.ENGLISH.getLanguage());
    for (ConnConfProperty prop : connInstanceTO.getConf()) {
        if ("jdbcUrlTemplate".equals(prop.getSchema().getName())) {
            jdbcURL = prop.getValues().iterator().next().toString();
            prop.getValues().clear();
            prop.getValues().add("jdbc:h2:tcp://localhost:9092/xxx");
        }
    }

    connectorService.update(connInstanceTO);
    // ----------------------------------------

    // ----------------------------------------
    // 4. update value on external resource
    // ----------------------------------------
    JdbcTemplate jdbcTemplate = new JdbcTemplate(testDataSource);
    String value = queryForObject(jdbcTemplate, 50, "SELECT USERNAME FROM testpull WHERE ID=?", String.class,
            userTO.getKey());
    assertEquals("virattrcache", value);

    jdbcTemplate.update("UPDATE testpull set USERNAME='virattrcache2' WHERE ID=?", userTO.getKey());

    value = queryForObject(jdbcTemplate, 50, "SELECT USERNAME FROM testpull WHERE ID=?", String.class,
            userTO.getKey());
    assertEquals("virattrcache2", value);
    // ----------------------------------------

    userTO = userService.read(userTO.getKey());
    assertEquals("virattrcache", userTO.getVirAttr("virtualdata").get().getValues().get(0));

    // ----------------------------------------
    // 5. restore connector URL, values can be read again from external resource
    // ----------------------------------------
    for (ConnConfProperty prop : connInstanceTO.getConf()) {
        if ("jdbcUrlTemplate".equals(prop.getSchema().getName())) {
            prop.getValues().clear();
            prop.getValues().add(jdbcURL);
        }
    }

    connectorService.update(connInstanceTO);
    // ----------------------------------------

    // cached value still in place...
    userTO = userService.read(userTO.getKey());
    assertEquals("virattrcache", userTO.getVirAttr("virtualdata").get().getValues().get(0));

    // force cache update by adding a resource which has virtualdata mapped for propagation
    UserPatch userPatch = new UserPatch();
    userPatch.setKey(userTO.getKey());
    userPatch.getResources().add(new StringPatchItem.Builder().operation(PatchOperation.ADD_REPLACE)
            .value(RESOURCE_NAME_WS2).build());
    userTO = updateUser(userPatch).getEntity();
    assertNotNull(userTO);

    userTO = userService.read(userTO.getKey());
    assertEquals("virattrcache2", userTO.getVirAttr("virtualdata").get().getValues().get(0));
}

From source file:org.cloudfoundry.identity.uaa.db.StoreSubDomainAsLowerCase_V2_7_3.java

private IdentityZone updateIdentityZone(IdentityZone identityZone, JdbcTemplate jdbcTemplate) {
    String ID_ZONE_UPDATE_FIELDS = "version,lastmodified,name,subdomain,description".replace(",", "=?,") + "=?";
    String UPDATE_IDENTITY_ZONE_SQL = "update identity_zone set " + ID_ZONE_UPDATE_FIELDS + " where id=?";

    try {//from   ww w  . j  a  v a 2 s  .  c  om
        jdbcTemplate.update(UPDATE_IDENTITY_ZONE_SQL, new PreparedStatementSetter() {
            @Override
            public void setValues(PreparedStatement ps) throws SQLException {
                ps.setInt(1, identityZone.getVersion() + 1);
                ps.setTimestamp(2, new Timestamp(new Date().getTime()));
                ps.setString(3, identityZone.getName());
                ps.setString(4, identityZone.getSubdomain().toLowerCase());
                ps.setString(5, identityZone.getDescription());
                ps.setString(6, identityZone.getId().trim());
            }
        });
    } catch (DuplicateKeyException e) {
        //duplicate subdomain
        throw new ZoneAlreadyExistsException(e.getMostSpecificCause().getMessage(), e);
    }
    return retrieveIdentityZone(identityZone.getId(), jdbcTemplate);
}

From source file:org.cloudfoundry.identity.uaa.mock.providers.IdentityProviderEndpointsMockMvcTests.java

protected void addScopeToIdentityClient(String scope) throws Exception {
    JdbcTemplate template = getWebApplicationContext().getBean(JdbcTemplate.class);
    String scopes = template.queryForObject(
            "select scope from oauth_client_details where identity_zone_id='uaa' and client_id='identity'",
            String.class);
    boolean update = false;
    if (!StringUtils.hasText(scopes)) {
        scopes = scope;/*from  ww  w  .ja  va 2s  .co m*/
        update = true;
    } else if (!scopes.contains(scope)) {
        scopes = scopes + "," + scope;
        update = true;
    }
    if (update) {
        assertEquals(1, template.update(
                "UPDATE oauth_client_details SET scope=? WHERE identity_zone_id='uaa' AND client_id='identity'",
                scopes));
    }
}