You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2017/08/22 15:09:07 UTC
[03/16] syncope git commit: [SYNCOPE-938] Switching from
commons-collections to Java 8 features
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/spring/src/main/java/org/apache/syncope/core/spring/security/AuthDataAccessor.java
----------------------------------------------------------------------
diff --git a/core/spring/src/main/java/org/apache/syncope/core/spring/security/AuthDataAccessor.java b/core/spring/src/main/java/org/apache/syncope/core/spring/security/AuthDataAccessor.java
index 63e1cf1..3a5ee7b 100644
--- a/core/spring/src/main/java/org/apache/syncope/core/spring/security/AuthDataAccessor.java
+++ b/core/spring/src/main/java/org/apache/syncope/core/spring/security/AuthDataAccessor.java
@@ -25,11 +25,10 @@ import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import java.util.Set;
+import java.util.stream.Collectors;
import javax.annotation.Resource;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.SetUtils;
-import org.apache.commons.collections4.Transformer;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
@@ -52,16 +51,13 @@ import org.apache.syncope.core.persistence.api.dao.search.SearchCond;
import org.apache.syncope.core.persistence.api.entity.AccessToken;
import org.apache.syncope.core.persistence.api.entity.Domain;
import org.apache.syncope.core.persistence.api.entity.Realm;
-import org.apache.syncope.core.persistence.api.entity.Role;
import org.apache.syncope.core.persistence.api.entity.conf.CPlainAttr;
-import org.apache.syncope.core.persistence.api.entity.group.Group;
import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
import org.apache.syncope.core.persistence.api.entity.user.User;
import org.apache.syncope.core.provisioning.api.AuditManager;
import org.apache.syncope.core.provisioning.api.ConnectorFactory;
import org.apache.syncope.core.provisioning.api.EntitlementsHolder;
import org.apache.syncope.core.provisioning.api.MappingManager;
-import org.apache.syncope.core.provisioning.api.utils.EntityUtils;
import org.apache.syncope.core.spring.ApplicationContextProvider;
import org.identityconnectors.framework.common.objects.Uid;
import org.slf4j.Logger;
@@ -144,11 +140,12 @@ public class AuthDataAccessor {
if (jwtSSOProviders == null) {
jwtSSOProviders = new HashMap<>();
- for (Class<?> clazz : implementationLookup.getJWTSSOProviderClasses()) {
- JWTSSOProvider jwtSSOProvider = (JWTSSOProvider) ApplicationContextProvider.getBeanFactory().
- createBean(clazz, AbstractBeanDefinition.AUTOWIRE_BY_TYPE, true);
- jwtSSOProviders.put(jwtSSOProvider.getIssuer(), jwtSSOProvider);
- }
+ implementationLookup.getJWTSSOProviderClasses().stream().
+ map((clazz) -> (JWTSSOProvider) ApplicationContextProvider.getBeanFactory().
+ createBean(clazz, AbstractBeanDefinition.AUTOWIRE_BY_TYPE, true)).
+ forEachOrdered(jwtSSOProvider -> {
+ jwtSSOProviders.put(jwtSSOProvider.getIssuer(), jwtSSOProvider);
+ });
}
}
@@ -184,10 +181,10 @@ public class AuthDataAccessor {
public Pair<User, Boolean> authenticate(final Authentication authentication) {
User user = null;
- CPlainAttr authAttrs = confDAO.find("authentication.attributes");
- List<String> authAttrValues = authAttrs == null
- ? Collections.singletonList("username")
- : authAttrs.getValuesAsStrings();
+ Optional<? extends CPlainAttr> authAttrs = confDAO.find("authentication.attributes");
+ List<String> authAttrValues = authAttrs.isPresent()
+ ? authAttrs.get().getValuesAsStrings()
+ : Collections.singletonList("username");
for (int i = 0; user == null && i < authAttrValues.size(); i++) {
if ("username".equals(authAttrValues.get(i))) {
user = userDAO.findByUsername(authentication.getName());
@@ -213,8 +210,8 @@ public class AuthDataAccessor {
throw new DisabledException("User " + user.getUsername() + " is suspended");
}
- CPlainAttr authStatuses = confDAO.find("authentication.statuses");
- if (authStatuses != null && !authStatuses.getValuesAsStrings().contains(user.getStatus())) {
+ Optional<? extends CPlainAttr> authStatuses = confDAO.find("authentication.statuses");
+ if (authStatuses.isPresent() && !authStatuses.get().getValuesAsStrings().contains(user.getStatus())) {
throw new DisabledException("User " + user.getUsername() + " not allowed to authenticate");
}
@@ -255,7 +252,7 @@ public class AuthDataAccessor {
String connObjectKey = null;
try {
connObjectKey = mappingManager.getConnObjectKeyValue(
- user, resource.getProvision(anyTypeDAO.findUser()));
+ user, resource.getProvision(anyTypeDAO.findUser()).get()).get();
Uid uid = connFactory.getConnector(resource).authenticate(connObjectKey, password, null);
if (uid != null) {
authenticated = true;
@@ -295,18 +292,13 @@ public class AuthDataAccessor {
}
}
- return SetUtils.emptyIfNull(result);
+ return result == null ? Collections.emptySet() : result;
}
protected Set<SyncopeGrantedAuthority> getAdminAuthorities() {
- return CollectionUtils.collect(EntitlementsHolder.getInstance().getValues(),
- new Transformer<String, SyncopeGrantedAuthority>() {
-
- @Override
- public SyncopeGrantedAuthority transform(final String entitlement) {
- return new SyncopeGrantedAuthority(entitlement, SyncopeConstants.ROOT_REALM);
- }
- }, new HashSet<SyncopeGrantedAuthority>());
+ return EntitlementsHolder.getInstance().getValues().stream().
+ map(entitlement -> new SyncopeGrantedAuthority(entitlement, SyncopeConstants.ROOT_REALM)).
+ collect(Collectors.toSet());
}
protected Set<SyncopeGrantedAuthority> getUserAuthorities(final User user) {
@@ -319,30 +311,23 @@ public class AuthDataAccessor {
// Give entitlements as assigned by roles (with static or dynamic realms, where applicable) - assigned
// either statically and dynamically
- for (Role role : userDAO.findAllRoles(user)) {
- for (String entitlement : role.getEntitlements()) {
+ userDAO.findAllRoles(user).forEach(role -> {
+ role.getEntitlements().forEach(entitlement -> {
Set<String> realms = entForRealms.get(entitlement);
if (realms == null) {
realms = new HashSet<>();
entForRealms.put(entitlement, realms);
}
-
- CollectionUtils.collect(role.getRealms(), new Transformer<Realm, String>() {
-
- @Override
- public String transform(final Realm realm) {
- return realm.getFullPath();
- }
- }, realms);
-
+ realms.addAll(role.getRealms().stream().
+ map(realm -> realm.getFullPath()).collect(Collectors.toSet()));
if (!entitlement.endsWith("_CREATE") && !entitlement.endsWith("_DELETE")) {
- CollectionUtils.collect(role.getDynRealms(), EntityUtils.keyTransformer(), realms);
+ realms.addAll(role.getDynRealms().stream().map(r -> r.getKey()).collect(Collectors.toList()));
}
- }
- }
+ });
+ });
// Give group entitlements for owned groups
- for (Group group : groupDAO.findOwnedByUser(user.getKey())) {
+ groupDAO.findOwnedByUser(user.getKey()).forEach((group) -> {
for (String entitlement : GROUP_OWNER_ENTITLEMENTS) {
Set<String> realms = entForRealms.get(entitlement);
if (realms == null) {
@@ -352,14 +337,14 @@ public class AuthDataAccessor {
realms.add(RealmUtils.getGroupOwnerRealm(group.getRealm().getFullPath(), group.getKey()));
}
- }
+ });
// Finally normalize realms for each given entitlement and generate authorities
- for (Map.Entry<String, Set<String>> entry : entForRealms.entrySet()) {
+ entForRealms.entrySet().stream().map(entry -> {
SyncopeGrantedAuthority authority = new SyncopeGrantedAuthority(entry.getKey());
authority.addRealms(RealmUtils.normalize(entry.getValue()));
- authorities.add(authority);
- }
+ return authority;
+ }).forEachOrdered(authority -> authorities.add(authority));
}
return authorities;
@@ -410,7 +395,7 @@ public class AuthDataAccessor {
User user = resolved.getLeft();
username = user.getUsername();
- authorities = SetUtils.emptyIfNull(resolved.getRight());
+ authorities = resolved.getRight() == null ? Collections.emptySet() : resolved.getRight();
LOG.debug("JWT {} issued by {} resolved to User {} with authorities {}",
authentication.getClaims().getTokenId(),
authentication.getClaims().getIssuer(),
@@ -420,8 +405,8 @@ public class AuthDataAccessor {
throw new DisabledException("User " + username + " is suspended");
}
- CPlainAttr authStatuses = confDAO.find("authentication.statuses");
- if (authStatuses != null && !authStatuses.getValuesAsStrings().contains(user.getStatus())) {
+ Optional<? extends CPlainAttr> authStatuses = confDAO.find("authentication.statuses");
+ if (authStatuses.isPresent() && !authStatuses.get().getValuesAsStrings().contains(user.getStatus())) {
throw new DisabledException("User " + username + " not allowed to authenticate");
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/spring/src/main/java/org/apache/syncope/core/spring/security/MustChangePasswordFilter.java
----------------------------------------------------------------------
diff --git a/core/spring/src/main/java/org/apache/syncope/core/spring/security/MustChangePasswordFilter.java b/core/spring/src/main/java/org/apache/syncope/core/spring/security/MustChangePasswordFilter.java
index f9939dd..c901c0b 100644
--- a/core/spring/src/main/java/org/apache/syncope/core/spring/security/MustChangePasswordFilter.java
+++ b/core/spring/src/main/java/org/apache/syncope/core/spring/security/MustChangePasswordFilter.java
@@ -25,12 +25,9 @@ import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.syncope.common.lib.types.StandardEntitlement;
import org.springframework.security.access.AccessDeniedException;
-import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestWrapper;
@@ -55,15 +52,9 @@ public class MustChangePasswordFilter implements Filter {
throws IOException, ServletException {
if (request instanceof SecurityContextHolderAwareRequestWrapper) {
- boolean isMustChangePassword = IterableUtils.matchesAny(
- SecurityContextHolder.getContext().getAuthentication().getAuthorities(),
- new Predicate<GrantedAuthority>() {
-
- @Override
- public boolean evaluate(final GrantedAuthority authority) {
- return StandardEntitlement.MUST_CHANGE_PASSWORD.equals(authority.getAuthority());
- }
- });
+ boolean isMustChangePassword =
+ SecurityContextHolder.getContext().getAuthentication().getAuthorities().stream().anyMatch(
+ authority -> StandardEntitlement.MUST_CHANGE_PASSWORD.equals(authority.getAuthority()));
SecurityContextHolderAwareRequestWrapper wrapper =
SecurityContextHolderAwareRequestWrapper.class.cast(request);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/spring/src/main/java/org/apache/syncope/core/spring/security/SyncopeGrantedAuthority.java
----------------------------------------------------------------------
diff --git a/core/spring/src/main/java/org/apache/syncope/core/spring/security/SyncopeGrantedAuthority.java b/core/spring/src/main/java/org/apache/syncope/core/spring/security/SyncopeGrantedAuthority.java
index 578dd35..bca6990 100644
--- a/core/spring/src/main/java/org/apache/syncope/core/spring/security/SyncopeGrantedAuthority.java
+++ b/core/spring/src/main/java/org/apache/syncope/core/spring/security/SyncopeGrantedAuthority.java
@@ -23,11 +23,8 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.Collection;
import java.util.Collections;
-import java.util.HashSet;
import java.util.Set;
-import org.apache.commons.collections4.Closure;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.SetUtils;
+import java.util.TreeSet;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
@@ -42,7 +39,7 @@ public class SyncopeGrantedAuthority implements GrantedAuthority {
@JsonProperty
private final String entitlement;
- private final Set<String> realms = SetUtils.orderedSet(new HashSet<String>());
+ private final Set<String> realms = new TreeSet<>();
@JsonCreator
public SyncopeGrantedAuthority(@JsonProperty("entitlement") final String entitlement) {
@@ -59,13 +56,7 @@ public class SyncopeGrantedAuthority implements GrantedAuthority {
}
public void addRealms(final Collection<String> newRealms) {
- IterableUtils.forEach(newRealms, new Closure<String>() {
-
- @Override
- public void execute(final String newRealm) {
- addRealm(newRealm);
- }
- });
+ newRealms.forEach(newRealm -> addRealm(newRealm));
}
public Set<String> getRealms() {
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/ActivitiUserWorkflowAdapter.java
----------------------------------------------------------------------
diff --git a/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/ActivitiUserWorkflowAdapter.java b/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/ActivitiUserWorkflowAdapter.java
index ad8229e..bf5a18f 100644
--- a/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/ActivitiUserWorkflowAdapter.java
+++ b/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/ActivitiUserWorkflowAdapter.java
@@ -31,6 +31,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.stream.Collectors;
import javax.annotation.Resource;
import org.activiti.bpmn.converter.BpmnXMLConverter;
import org.activiti.bpmn.model.BpmnModel;
@@ -41,7 +42,6 @@ import org.activiti.engine.form.FormProperty;
import org.activiti.engine.form.FormType;
import org.activiti.engine.form.TaskFormData;
import org.activiti.engine.history.HistoricActivityInstance;
-import org.activiti.engine.history.HistoricDetail;
import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.persistence.entity.HistoricFormPropertyEntity;
import org.activiti.engine.query.Query;
@@ -50,8 +50,6 @@ import org.activiti.engine.repository.Model;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.ImmutablePair;
@@ -182,11 +180,9 @@ public class ActivitiUserWorkflowAdapter extends AbstractUserWorkflowAdapter {
protected Set<String> getPerformedTasks(final User user) {
final Set<String> result = new HashSet<>();
- for (HistoricActivityInstance task : engine.getHistoryService().createHistoricActivityInstanceQuery().
- executionId(user.getWorkflowId()).list()) {
-
- result.add(task.getActivityId());
- }
+ engine.getHistoryService().createHistoricActivityInstanceQuery().
+ executionId(user.getWorkflowId()).list().
+ forEach(task -> result.add(task.getActivityId()));
return result;
}
@@ -263,8 +259,7 @@ public class ActivitiUserWorkflowAdapter extends AbstractUserWorkflowAdapter {
Set<String> tasks = getPerformedTasks(user);
- return new WorkflowResult<Pair<String, Boolean>>(
- new ImmutablePair<>(user.getKey(), propagateEnable), propByRes, tasks);
+ return new WorkflowResult<>(new ImmutablePair<>(user.getKey(), propagateEnable), propByRes, tasks);
}
protected Set<String> doExecuteTask(final User user, final String task, final Map<String, Object> moreVariables) {
@@ -333,8 +328,7 @@ public class ActivitiUserWorkflowAdapter extends AbstractUserWorkflowAdapter {
Boolean propagateEnable = engine.getRuntimeService().getVariable(
user.getWorkflowId(), PROPAGATE_ENABLE, Boolean.class);
- return new WorkflowResult<Pair<UserPatch, Boolean>>(
- new ImmutablePair<>(updatedPatch, propagateEnable), propByRes, tasks);
+ return new WorkflowResult<>(new ImmutablePair<>(updatedPatch, propagateEnable), propByRes, tasks);
}
@Override
@@ -403,8 +397,7 @@ public class ActivitiUserWorkflowAdapter extends AbstractUserWorkflowAdapter {
Boolean propagateEnable = engine.getRuntimeService().getVariable(
user.getWorkflowId(), PROPAGATE_ENABLE, Boolean.class);
- return new WorkflowResult<Pair<UserPatch, Boolean>>(
- new ImmutablePair<>(updatedPatch, propagateEnable), propByRes, tasks);
+ return new WorkflowResult<>(new ImmutablePair<>(updatedPatch, propagateEnable), propByRes, tasks);
}
@Override
@@ -483,13 +476,9 @@ public class ActivitiUserWorkflowAdapter extends AbstractUserWorkflowAdapter {
protected WorkflowFormTO getFormTO(final HistoricTaskInstance task) {
final List<HistoricFormPropertyEntity> props = new ArrayList<>();
- for (HistoricDetail historicDetail
- : engine.getHistoryService().createHistoricDetailQuery().taskId(task.getId()).list()) {
-
- if (historicDetail instanceof HistoricFormPropertyEntity) {
- props.add((HistoricFormPropertyEntity) historicDetail);
- }
- }
+ engine.getHistoryService().createHistoricDetailQuery().taskId(task.getId()).list().stream().
+ filter(historicDetail -> (historicDetail instanceof HistoricFormPropertyEntity)).
+ forEachOrdered(historicDetail -> props.add((HistoricFormPropertyEntity) historicDetail));
WorkflowFormTO formTO = getHistoricFormTO(
task.getProcessInstanceId(), task.getId(), task.getFormKey(), props);
@@ -527,13 +516,13 @@ public class ActivitiUserWorkflowAdapter extends AbstractUserWorkflowAdapter {
formTO.setUserTO(engine.getRuntimeService().getVariable(processInstanceId, USER_TO, UserTO.class));
formTO.setUserPatch(engine.getRuntimeService().getVariable(processInstanceId, USER_PATCH, UserPatch.class));
- for (HistoricFormPropertyEntity prop : props) {
+ props.stream().map(prop -> {
WorkflowFormPropertyTO propertyTO = new WorkflowFormPropertyTO();
propertyTO.setId(prop.getPropertyId());
propertyTO.setName(prop.getPropertyId());
propertyTO.setValue(prop.getPropertyValue());
- formTO.getProperties().add(propertyTO);
- }
+ return propertyTO;
+ }).forEachOrdered(propertyTO -> formTO.getProperties().add(propertyTO));
return formTO;
}
@@ -559,20 +548,18 @@ public class ActivitiUserWorkflowAdapter extends AbstractUserWorkflowAdapter {
formTO.setUserTO(engine.getRuntimeService().getVariable(processInstanceId, USER_TO, UserTO.class));
formTO.setUserPatch(engine.getRuntimeService().getVariable(processInstanceId, USER_PATCH, UserPatch.class));
- for (FormProperty fProp : properties) {
+ properties.stream().map(fProp -> {
WorkflowFormPropertyTO propertyTO = new WorkflowFormPropertyTO();
BeanUtils.copyProperties(fProp, propertyTO, PROPERTY_IGNORE_PROPS);
propertyTO.setType(fromActivitiFormType(fProp.getType()));
-
if (propertyTO.getType() == WorkflowFormPropertyType.Date) {
propertyTO.setDatePattern((String) fProp.getType().getInformation("datePattern"));
}
if (propertyTO.getType() == WorkflowFormPropertyType.Enum) {
propertyTO.getEnumValues().putAll((Map<String, String>) fProp.getType().getInformation("values"));
}
-
- formTO.getProperties().add(propertyTO);
- }
+ return propertyTO;
+ }).forEachOrdered(propertyTO -> formTO.getProperties().add(propertyTO));
return formTO;
}
@@ -597,9 +584,7 @@ public class ActivitiUserWorkflowAdapter extends AbstractUserWorkflowAdapter {
taskCandidateOrAssigned(user.getKey())));
List<String> candidateGroups = new ArrayList<>();
- for (String groupName : userDAO.findAllGroupNames(user)) {
- candidateGroups.add(groupName);
- }
+ userDAO.findAllGroupNames(user).forEach(groupName -> candidateGroups.add(groupName));
if (!candidateGroups.isEmpty()) {
forms.addAll(getForms(engine.getTaskService().createTaskQuery().
taskVariableValueEquals(TASK_IS_FORM, Boolean.TRUE).
@@ -613,7 +598,7 @@ public class ActivitiUserWorkflowAdapter extends AbstractUserWorkflowAdapter {
protected <T extends Query<?, ?>, U extends Object> List<WorkflowFormTO> getForms(final Query<T, U> query) {
List<WorkflowFormTO> forms = new ArrayList<>();
- for (U obj : query.list()) {
+ query.list().forEach(obj -> {
try {
if (obj instanceof HistoricTaskInstance) {
forms.add(getFormTO((HistoricTaskInstance) obj));
@@ -626,7 +611,7 @@ public class ActivitiUserWorkflowAdapter extends AbstractUserWorkflowAdapter {
} catch (ActivitiException e) {
LOG.debug("No form found for task {}", obj, e);
}
- }
+ });
return forms;
}
@@ -711,11 +696,9 @@ public class ActivitiUserWorkflowAdapter extends AbstractUserWorkflowAdapter {
private Map<String, String> getPropertiesForSubmit(final WorkflowFormTO form) {
Map<String, String> props = new HashMap<>();
- for (WorkflowFormPropertyTO prop : form.getProperties()) {
- if (prop.isWritable()) {
- props.put(prop.getId(), prop.getValue());
- }
- }
+ form.getProperties().stream().
+ filter(prop -> (prop.isWritable())).
+ forEachOrdered(prop -> props.put(prop.getId(), prop.getValue()));
return Collections.unmodifiableMap(props);
}
@@ -794,27 +777,22 @@ public class ActivitiUserWorkflowAdapter extends AbstractUserWorkflowAdapter {
@Override
public List<WorkflowDefinitionTO> getDefinitions() {
try {
- return CollectionUtils.collect(
- engine.getRepositoryService().createProcessDefinitionQuery().latestVersion().list(),
- new Transformer<ProcessDefinition, WorkflowDefinitionTO>() {
-
- @Override
- public WorkflowDefinitionTO transform(final ProcessDefinition procDef) {
- WorkflowDefinitionTO defTO = new WorkflowDefinitionTO();
- defTO.setKey(procDef.getKey());
- defTO.setName(procDef.getName());
-
- try {
- defTO.setModelId(getModel(procDef).getId());
- } catch (NotFoundException e) {
- LOG.warn("No model found for definition {}, ignoring", procDef.getDeploymentId(), e);
- }
-
- defTO.setMain(WF_PROCESS_ID.equals(procDef.getKey()));
-
- return defTO;
- }
- }, new ArrayList<WorkflowDefinitionTO>());
+ return engine.getRepositoryService().createProcessDefinitionQuery().latestVersion().list().stream().
+ map(procDef -> {
+ WorkflowDefinitionTO defTO = new WorkflowDefinitionTO();
+ defTO.setKey(procDef.getKey());
+ defTO.setName(procDef.getName());
+
+ try {
+ defTO.setModelId(getModel(procDef).getId());
+ } catch (NotFoundException e) {
+ LOG.warn("No model found for definition {}, ignoring", procDef.getDeploymentId(), e);
+ }
+
+ defTO.setMain(WF_PROCESS_ID.equals(procDef.getKey()));
+
+ return defTO;
+ }).collect(Collectors.toList());
} catch (ActivitiException e) {
throw new WorkflowException("While listing available process definitions", e);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/ActivitiUtils.java
----------------------------------------------------------------------
diff --git a/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/ActivitiUtils.java b/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/ActivitiUtils.java
index a259bc8..31eb7bc 100644
--- a/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/ActivitiUtils.java
+++ b/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/ActivitiUtils.java
@@ -18,9 +18,6 @@
*/
package org.apache.syncope.core.workflow.activiti;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
-import org.apache.syncope.core.persistence.api.entity.user.UMembership;
import org.apache.syncope.core.persistence.api.entity.user.User;
import org.springframework.transaction.annotation.Transactional;
@@ -28,12 +25,7 @@ public class ActivitiUtils {
@Transactional(readOnly = true)
public boolean isUserIngroup(final User user, final String groupName) {
- return IterableUtils.matchesAny(user.getMemberships(), new Predicate<UMembership>() {
-
- @Override
- public boolean evaluate(final UMembership membership) {
- return groupName != null && groupName.equals(membership.getRightEnd().getName());
- }
- });
+ return user.getMemberships().stream().
+ anyMatch(membership -> groupName != null && groupName.equals(membership.getRightEnd().getName()));
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/SyncopeGroupQueryImpl.java
----------------------------------------------------------------------
diff --git a/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/SyncopeGroupQueryImpl.java b/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/SyncopeGroupQueryImpl.java
index 992e3d1..500ef84 100644
--- a/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/SyncopeGroupQueryImpl.java
+++ b/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/SyncopeGroupQueryImpl.java
@@ -21,12 +21,11 @@ package org.apache.syncope.core.workflow.activiti;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import java.util.stream.Collectors;
import org.activiti.engine.ActivitiException;
import org.activiti.engine.identity.Group;
import org.activiti.engine.identity.GroupQuery;
import org.activiti.engine.impl.persistence.entity.GroupEntity;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
import org.apache.syncope.core.persistence.api.dao.AnyDAO;
import org.apache.syncope.core.persistence.api.dao.GroupDAO;
@@ -114,14 +113,8 @@ public class SyncopeGroupQueryImpl implements GroupQuery {
if (result == null) {
result = new ArrayList<>();
for (int page = 1; page <= (groupDAO.count() / AnyDAO.DEFAULT_PAGE_SIZE) + 1; page++) {
- CollectionUtils.collect(groupDAO.findAll(page, AnyDAO.DEFAULT_PAGE_SIZE),
- new Transformer<org.apache.syncope.core.persistence.api.entity.group.Group, Group>() {
-
- @Override
- public Group transform(final org.apache.syncope.core.persistence.api.entity.group.Group group) {
- return fromSyncopeGroup(group);
- }
- }, result);
+ result.addAll(groupDAO.findAll(page, AnyDAO.DEFAULT_PAGE_SIZE).stream().
+ map(group -> fromSyncopeGroup(group)).collect(Collectors.toList()));
}
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/SyncopeUserQueryImpl.java
----------------------------------------------------------------------
diff --git a/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/SyncopeUserQueryImpl.java b/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/SyncopeUserQueryImpl.java
index b7fa2e9..cb9e541 100644
--- a/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/SyncopeUserQueryImpl.java
+++ b/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/SyncopeUserQueryImpl.java
@@ -21,12 +21,11 @@ package org.apache.syncope.core.workflow.activiti;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import java.util.stream.Collectors;
import org.activiti.engine.ActivitiException;
import org.activiti.engine.identity.User;
import org.activiti.engine.identity.UserQuery;
import org.activiti.engine.impl.persistence.entity.UserEntity;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
import org.apache.syncope.core.persistence.api.dao.AnyDAO;
import org.apache.syncope.core.persistence.api.dao.GroupDAO;
import org.apache.syncope.core.persistence.api.dao.UserDAO;
@@ -147,26 +146,19 @@ public class SyncopeUserQueryImpl implements UserQuery {
} else {
result = new ArrayList<>();
List<UMembership> memberships = groupDAO.findUMemberships(group);
- for (UMembership membership : memberships) {
- User user = fromSyncopeUser(membership.getLeftEnd());
- if (!result.contains(user)) {
- result.add(user);
- }
- }
+ memberships.stream().map(membership -> fromSyncopeUser(membership.getLeftEnd())).
+ filter((user) -> (!result.contains(user))).
+ forEachOrdered((user) -> {
+ result.add(user);
+ });
}
}
// THIS CAN BE *VERY* DANGEROUS
if (result == null) {
result = new ArrayList<>();
for (int page = 1; page <= (userDAO.count() / AnyDAO.DEFAULT_PAGE_SIZE) + 1; page++) {
- CollectionUtils.collect(userDAO.findAll(page, AnyDAO.DEFAULT_PAGE_SIZE),
- new Transformer<org.apache.syncope.core.persistence.api.entity.user.User, User>() {
-
- @Override
- public User transform(final org.apache.syncope.core.persistence.api.entity.user.User user) {
- return fromSyncopeUser(user);
- }
- }, result);
+ result.addAll(userDAO.findAll(page, AnyDAO.DEFAULT_PAGE_SIZE).stream().
+ map(user -> fromSyncopeUser(user)).collect(Collectors.toList()));
}
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/workflow-java/src/main/java/org/apache/syncope/core/workflow/java/DefaultUserWorkflowAdapter.java
----------------------------------------------------------------------
diff --git a/core/workflow-java/src/main/java/org/apache/syncope/core/workflow/java/DefaultUserWorkflowAdapter.java b/core/workflow-java/src/main/java/org/apache/syncope/core/workflow/java/DefaultUserWorkflowAdapter.java
index f4d8a81..c027431 100644
--- a/core/workflow-java/src/main/java/org/apache/syncope/core/workflow/java/DefaultUserWorkflowAdapter.java
+++ b/core/workflow-java/src/main/java/org/apache/syncope/core/workflow/java/DefaultUserWorkflowAdapter.java
@@ -79,8 +79,7 @@ public class DefaultUserWorkflowAdapter extends AbstractUserWorkflowAdapter {
PropagationByResource propByRes = new PropagationByResource();
propByRes.set(ResourceOperation.CREATE, userDAO.findAllResourceKeys(user.getKey()));
- return new WorkflowResult<Pair<String, Boolean>>(
- new ImmutablePair<>(user.getKey(), propagateEnable), propByRes, "create");
+ return new WorkflowResult<>(new ImmutablePair<>(user.getKey(), propagateEnable), propByRes, "create");
}
@Override
@@ -102,8 +101,7 @@ public class DefaultUserWorkflowAdapter extends AbstractUserWorkflowAdapter {
userDAO.save(user);
- return new WorkflowResult<Pair<UserPatch, Boolean>>(
- new ImmutablePair<>(userPatch, !user.isSuspended()), propByRes, "update");
+ return new WorkflowResult<>(new ImmutablePair<>(userPatch, !user.isSuspended()), propByRes, "update");
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/ext/camel/logic/src/main/java/org/apache/syncope/core/logic/CamelRouteLogic.java
----------------------------------------------------------------------
diff --git a/ext/camel/logic/src/main/java/org/apache/syncope/core/logic/CamelRouteLogic.java b/ext/camel/logic/src/main/java/org/apache/syncope/core/logic/CamelRouteLogic.java
index 2856daf..c691a6c 100644
--- a/ext/camel/logic/src/main/java/org/apache/syncope/core/logic/CamelRouteLogic.java
+++ b/ext/camel/logic/src/main/java/org/apache/syncope/core/logic/CamelRouteLogic.java
@@ -27,7 +27,6 @@ import java.util.Comparator;
import java.util.List;
import org.apache.camel.component.metrics.routepolicy.MetricsRegistryService;
import java.util.Map;
-import org.apache.commons.collections4.ComparatorUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.to.CamelMetrics;
@@ -122,14 +121,9 @@ public class CamelRouteLogic extends AbstractTransactionalLogic<CamelRouteTO> {
metrics.getResponseMeanRates().add(meanRate);
}
- Collections.sort(metrics.getResponseMeanRates(), new Comparator<CamelMetrics.MeanRate>() {
-
- @Override
- public int compare(final CamelMetrics.MeanRate o1, final CamelMetrics.MeanRate o2) {
- return ComparatorUtils.reversedComparator(ComparatorUtils.<Double>naturalComparator()).
- compare(o1.getValue(), o2.getValue());
- }
- });
+ Collections.sort(metrics.getResponseMeanRates(),
+ (o1, o2) -> Collections.reverseOrder(Comparator.<Double>naturalOrder()).
+ compare(o1.getValue(), o2.getValue()));
}
return metrics;
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java
----------------------------------------------------------------------
diff --git a/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java b/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java
index ca09718..222f547 100644
--- a/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java
+++ b/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java
@@ -24,14 +24,13 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
+import java.util.stream.Collectors;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Unmarshaller;
import org.apache.camel.component.metrics.routepolicy.MetricsRoutePolicyFactory;
import org.apache.camel.model.Constants;
import org.apache.camel.model.RouteDefinition;
import org.apache.camel.spring.SpringCamelContext;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
import org.apache.commons.io.IOUtils;
import org.apache.syncope.core.spring.ApplicationContextProvider;
import org.apache.syncope.core.persistence.api.dao.CamelRouteDAO;
@@ -71,13 +70,7 @@ public class SyncopeCamelContext {
if (camelContext.getRouteDefinitions().isEmpty()) {
List<CamelRoute> routes = routeDAO.findAll();
LOG.debug("{} route(s) are going to be loaded ", routes.size());
- loadContext(CollectionUtils.collect(routes, new Transformer<CamelRoute, String>() {
-
- @Override
- public String transform(final CamelRoute input) {
- return input.getContent();
- }
- }));
+ loadContext(routes.stream().map(input -> input.getContent()).collect(Collectors.toList()));
try {
camelContext.start();
} catch (Exception e) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/producer/CreateProducer.java
----------------------------------------------------------------------
diff --git a/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/producer/CreateProducer.java b/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/producer/CreateProducer.java
index 612844b..6782330 100644
--- a/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/producer/CreateProducer.java
+++ b/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/producer/CreateProducer.java
@@ -20,6 +20,7 @@ package org.apache.syncope.core.provisioning.camel.producer;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import java.util.Set;
import org.apache.camel.Endpoint;
@@ -72,9 +73,9 @@ public class CreateProducer extends AbstractProducer {
if (actual instanceof GroupTO && isPull()) {
Map<String, String> groupOwnerMap = exchange.getProperty("groupOwnerMap", Map.class);
- AttrTO groupOwner = ((GroupTO) actual).getPlainAttr(StringUtils.EMPTY);
- if (groupOwner != null) {
- groupOwnerMap.put(created.getResult(), groupOwner.getValues().iterator().next());
+ Optional<AttrTO> groupOwner = ((GroupTO) actual).getPlainAttr(StringUtils.EMPTY);
+ if (groupOwner.isPresent()) {
+ groupOwnerMap.put(created.getResult(), groupOwner.get().getValues().iterator().next());
}
List<PropagationTask> tasks = getPropagationManager().getCreateTasks(
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/producer/DeprovisionProducer.java
----------------------------------------------------------------------
diff --git a/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/producer/DeprovisionProducer.java b/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/producer/DeprovisionProducer.java
index 8d99fdb..50f2713 100644
--- a/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/producer/DeprovisionProducer.java
+++ b/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/producer/DeprovisionProducer.java
@@ -19,10 +19,10 @@
package org.apache.syncope.core.provisioning.camel.producer;
import java.util.List;
+import java.util.stream.Collectors;
import org.apache.camel.Endpoint;
import org.apache.camel.Exchange;
-import org.apache.commons.collections4.CollectionUtils;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.common.lib.types.ResourceOperation;
import org.apache.syncope.core.persistence.api.dao.AnyObjectDAO;
@@ -71,7 +71,8 @@ public class DeprovisionProducer extends AbstractProducer {
AnyTypeKind.USER,
key,
propByRes,
- CollectionUtils.removeAll(userDAO.findAllResourceKeys(key), resources));
+ userDAO.findAllResourceKeys(key).stream().
+ filter(resource -> !resources.contains(resource)).collect(Collectors.toList()));
propagationReporter = getPropagationTaskExecutor().execute(tasks, nullPriorityAsync);
exchange.getOut().setBody(propagationReporter.getStatuses());
break;
@@ -82,7 +83,8 @@ public class DeprovisionProducer extends AbstractProducer {
AnyTypeKind.GROUP,
key,
propByRes,
- CollectionUtils.removeAll(groupDAO.findAllResourceKeys(key), resources));
+ groupDAO.findAllResourceKeys(key).stream().
+ filter(resource -> !resources.contains(resource)).collect(Collectors.toList()));
propagationReporter = getPropagationTaskExecutor().execute(tasks, nullPriorityAsync);
exchange.getOut().setBody(propagationReporter.getStatuses());
break;
@@ -93,7 +95,8 @@ public class DeprovisionProducer extends AbstractProducer {
AnyTypeKind.ANY_OBJECT,
key,
propByRes,
- CollectionUtils.removeAll(anyObjectDAO.findAllResourceKeys(key), resources));
+ anyObjectDAO.findAllResourceKeys(key).stream().
+ filter(resource -> !resources.contains(resource)).collect(Collectors.toList()));
propagationReporter = getPropagationTaskExecutor().execute(tasks, nullPriorityAsync);
exchange.getOut().setBody(propagationReporter.getStatuses());
break;
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/producer/ProvisionProducer.java
----------------------------------------------------------------------
diff --git a/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/producer/ProvisionProducer.java b/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/producer/ProvisionProducer.java
index bd58a36..2377d4b 100644
--- a/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/producer/ProvisionProducer.java
+++ b/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/producer/ProvisionProducer.java
@@ -19,11 +19,10 @@
package org.apache.syncope.core.provisioning.camel.producer;
import java.util.List;
+import java.util.stream.Collectors;
import org.apache.camel.Endpoint;
import org.apache.camel.Exchange;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.common.lib.patch.PasswordPatch;
@@ -56,14 +55,9 @@ public class ProvisionProducer extends AbstractProducer {
UserPatch userPatch = new UserPatch();
userPatch.setKey(key);
- userPatch.getResources().addAll(CollectionUtils.collect(resources,
- new Transformer<String, StringPatchItem>() {
-
- @Override
- public StringPatchItem transform(final String resource) {
- return new StringPatchItem.Builder().operation(PatchOperation.ADD_REPLACE).value(resource).build();
- }
- }));
+ userPatch.getResources().addAll(resources.stream().map(resource
+ -> new StringPatchItem.Builder().operation(PatchOperation.ADD_REPLACE).value(resource).build()).
+ collect(Collectors.toList()));
if (changePwd) {
userPatch.setPassword(
@@ -73,7 +67,7 @@ public class ProvisionProducer extends AbstractProducer {
PropagationByResource propByRes = new PropagationByResource();
propByRes.addAll(ResourceOperation.UPDATE, resources);
- WorkflowResult<Pair<UserPatch, Boolean>> wfResult = new WorkflowResult<Pair<UserPatch, Boolean>>(
+ WorkflowResult<Pair<UserPatch, Boolean>> wfResult = new WorkflowResult<>(
ImmutablePair.of(userPatch, (Boolean) null), propByRes, "update");
List<PropagationTask> tasks = getPropagationManager().getUserUpdateTasks(wfResult, changePwd, null);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/ext/elasticsearch/client-elasticsearch/src/main/java/org/apache/syncope/ext/elasticsearch/client/ElasticsearchUtils.java
----------------------------------------------------------------------
diff --git a/ext/elasticsearch/client-elasticsearch/src/main/java/org/apache/syncope/ext/elasticsearch/client/ElasticsearchUtils.java b/ext/elasticsearch/client-elasticsearch/src/main/java/org/apache/syncope/ext/elasticsearch/client/ElasticsearchUtils.java
index 9bcea18..3612c5d 100644
--- a/ext/elasticsearch/client-elasticsearch/src/main/java/org/apache/syncope/ext/elasticsearch/client/ElasticsearchUtils.java
+++ b/ext/elasticsearch/client-elasticsearch/src/main/java/org/apache/syncope/ext/elasticsearch/client/ElasticsearchUtils.java
@@ -23,23 +23,15 @@ import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
import org.apache.syncope.core.persistence.api.dao.AnyObjectDAO;
import org.apache.syncope.core.persistence.api.dao.GroupDAO;
import org.apache.syncope.core.persistence.api.dao.UserDAO;
import org.apache.syncope.core.persistence.api.entity.Any;
import org.apache.syncope.core.persistence.api.entity.PlainAttr;
-import org.apache.syncope.core.persistence.api.entity.PlainAttrValue;
-import org.apache.syncope.core.persistence.api.entity.Role;
-import org.apache.syncope.core.persistence.api.entity.anyobject.AMembership;
-import org.apache.syncope.core.persistence.api.entity.anyobject.ARelationship;
import org.apache.syncope.core.persistence.api.entity.anyobject.AnyObject;
import org.apache.syncope.core.persistence.api.entity.group.Group;
-import org.apache.syncope.core.persistence.api.entity.user.UMembership;
-import org.apache.syncope.core.persistence.api.entity.user.URelationship;
import org.apache.syncope.core.persistence.api.entity.user.User;
-import org.apache.syncope.core.provisioning.api.utils.EntityUtils;
import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.common.xcontent.XContentFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -115,15 +107,18 @@ public class ElasticsearchUtils {
AnyObject anyObject = ((AnyObject) any);
builder = builder.field("name", anyObject.getName());
- List<Object> memberships = new ArrayList<Object>(anyObjectDAO.findAllGroupKeys(anyObject));
+ List<Object> memberships = new ArrayList<>(anyObjectDAO.findAllGroupKeys(anyObject));
builder = builder.field("memberships", memberships);
List<Object> relationships = new ArrayList<>();
List<Object> relationshipTypes = new ArrayList<>();
- for (ARelationship relationship : anyObjectDAO.findAllRelationships(anyObject)) {
- relationships.add(relationship.getRightEnd().getKey());
+ anyObjectDAO.findAllRelationships(anyObject).stream().
+ map(relationship -> {
+ relationships.add(relationship.getRightEnd().getKey());
+ return relationship;
+ }).forEachOrdered(relationship -> {
relationshipTypes.add(relationship.getType().getKey());
- }
+ });
builder = builder.field("relationships", relationships);
builder = builder.field("relationshipTypes", relationshipTypes);
} else if (any instanceof Group) {
@@ -136,23 +131,11 @@ public class ElasticsearchUtils {
builder = builder.field("groupOwner", group.getGroupOwner().getKey());
}
- List<Object> members = CollectionUtils.collect(groupDAO.findUMemberships(group),
- new Transformer<UMembership, Object>() {
-
- @Override
- public Object transform(final UMembership input) {
- return input.getLeftEnd().getKey();
- }
- }, new ArrayList<>());
+ List<Object> members = groupDAO.findUMemberships(group).stream().
+ map(membership -> membership.getLeftEnd().getKey()).collect(Collectors.toList());
members.add(groupDAO.findUDynMembers(group));
- CollectionUtils.collect(groupDAO.findAMemberships(group),
- new Transformer<AMembership, Object>() {
-
- @Override
- public Object transform(final AMembership input) {
- return input.getLeftEnd().getKey();
- }
- }, members);
+ members.addAll(groupDAO.findAMemberships(group).stream().
+ map(membership -> membership.getLeftEnd().getKey()).collect(Collectors.toList()));
members.add(groupDAO.findADynMembers(group));
builder = builder.field("members", members);
} else if (any instanceof User) {
@@ -163,33 +146,30 @@ public class ElasticsearchUtils {
field("lastRecertification", user.getLastRecertification()).
field("lastRecertificator", user.getLastRecertificator());
- List<Object> roles = CollectionUtils.collect(userDAO.findAllRoles(user),
- EntityUtils.<Role>keyTransformer(), new ArrayList<>());
+ List<Object> roles = userDAO.findAllRoles(user).stream().
+ map(r -> r.getKey()).collect(Collectors.toList());
builder = builder.field("roles", roles);
- List<Object> memberships = new ArrayList<Object>(userDAO.findAllGroupKeys(user));
+ List<Object> memberships = new ArrayList<>(userDAO.findAllGroupKeys(user));
builder = builder.field("memberships", memberships);
List<Object> relationships = new ArrayList<>();
Set<Object> relationshipTypes = new HashSet<>();
- for (URelationship relationship : user.getRelationships()) {
+ user.getRelationships().stream().map(relationship -> {
relationships.add(relationship.getRightEnd().getKey());
+ return relationship;
+ }).forEachOrdered(relationship -> {
relationshipTypes.add(relationship.getType().getKey());
- }
+ });
builder = builder.field("relationships", relationships);
builder = builder.field("relationshipTypes", relationshipTypes);
}
if (any.getPlainAttrs() != null) {
for (PlainAttr<?> plainAttr : any.getPlainAttrs()) {
- List<Object> values = CollectionUtils.collect(plainAttr.getValues(),
- new Transformer<PlainAttrValue, Object>() {
-
- @Override
- public Object transform(final PlainAttrValue input) {
- return input.getValue();
- }
- }, new ArrayList<>(plainAttr.getValues().size()));
+ List<Object> values = plainAttr.getValues().stream().
+ map(value -> value.getValue()).collect(Collectors.toList());
+
if (plainAttr.getUniqueValue() != null) {
values.add(plainAttr.getUniqueValue().getValue());
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/ext/elasticsearch/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/ElasticsearchAnySearchDAO.java
----------------------------------------------------------------------
diff --git a/ext/elasticsearch/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/ElasticsearchAnySearchDAO.java b/ext/elasticsearch/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/ElasticsearchAnySearchDAO.java
index 3bcc8ed..b8a2d58 100644
--- a/ext/elasticsearch/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/ElasticsearchAnySearchDAO.java
+++ b/ext/elasticsearch/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/ElasticsearchAnySearchDAO.java
@@ -19,13 +19,11 @@
package org.apache.syncope.core.persistence.jpa.dao;
import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.commons.lang3.tuple.Triple;
import org.apache.syncope.common.lib.SyncopeClientException;
@@ -62,7 +60,6 @@ import org.elasticsearch.index.query.DisMaxQueryBuilder;
import org.elasticsearch.index.query.MatchNoneQueryBuilder;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
-import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.sort.SortOrder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ReflectionUtils;
@@ -84,7 +81,7 @@ public class ElasticsearchAnySearchDAO extends AbstractAnySearchDAO {
DisMaxQueryBuilder builder = QueryBuilders.disMaxQuery();
Set<String> dynRealmKeys = new HashSet<>();
- for (String realmPath : RealmUtils.normalize(adminRealms)) {
+ RealmUtils.normalize(adminRealms).forEach(realmPath -> {
if (realmPath.startsWith("/")) {
Realm realm = realmDAO.findByFullPath(realmPath);
if (realm == null) {
@@ -92,9 +89,9 @@ public class ElasticsearchAnySearchDAO extends AbstractAnySearchDAO {
noRealm.getElements().add("Invalid realm specified: " + realmPath);
throw noRealm;
} else {
- for (Realm descendant : realmDAO.findDescendants(realm)) {
+ realmDAO.findDescendants(realm).forEach(descendant -> {
builder.add(QueryBuilders.termQuery("realm", descendant.getFullPath()));
- }
+ });
}
} else {
DynRealm dynRealm = dynRealmDAO.find(realmPath);
@@ -105,11 +102,11 @@ public class ElasticsearchAnySearchDAO extends AbstractAnySearchDAO {
builder.add(QueryBuilders.termQuery("dynRealm", dynRealm.getKey()));
}
}
- }
+ });
if (!dynRealmKeys.isEmpty()) {
- for (Realm descendant : realmDAO.findAll()) {
+ realmDAO.findAll().forEach(descendant -> {
builder.add(QueryBuilders.termQuery("realm", descendant.getFullPath()));
- }
+ });
}
return Pair.of(builder, dynRealmKeys);
@@ -147,7 +144,7 @@ public class ElasticsearchAnySearchDAO extends AbstractAnySearchDAO {
AnyUtils attrUtils = anyUtilsFactory.getInstance(kind);
- for (OrderByClause clause : orderBy) {
+ orderBy.forEach(clause -> {
String sortName = null;
// Manage difference among external key attribute and internal JPA @Id
@@ -168,7 +165,7 @@ public class ElasticsearchAnySearchDAO extends AbstractAnySearchDAO {
} else {
builder.addSort(sortName, SortOrder.valueOf(clause.getDirection().name()));
}
- }
+ });
}
@Override
@@ -185,15 +182,8 @@ public class ElasticsearchAnySearchDAO extends AbstractAnySearchDAO {
setSize(itemsPerPage < 0 ? elasticsearchUtils.getIndexMaxResultWindow() : itemsPerPage);
addSort(builder, kind, orderBy);
- return buildResult(
- CollectionUtils.collect(Arrays.asList(builder.get().getHits().getHits()),
- new Transformer<SearchHit, Object>() {
-
- @Override
- public Object transform(final SearchHit input) {
- return input.getId();
- }
- }, new ArrayList<>()),
+ return buildResult(Stream.of(builder.get().getHits().getHits()).
+ map(hit -> hit.getId()).collect(Collectors.toList()),
kind);
}
@@ -304,9 +294,9 @@ public class ElasticsearchAnySearchDAO extends AbstractAnySearchDAO {
}
builder.add(QueryBuilders.termQuery("realm", realmDAO.getRoot().getFullPath()));
} else {
- for (Realm current : realmDAO.findDescendants(realm)) {
+ realmDAO.findDescendants(realm).forEach(current -> {
builder.add(QueryBuilders.termQuery("realm", current.getFullPath()));
- }
+ });
}
return builder;
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/ext/saml2sp/common-lib/src/main/java/org/apache/syncope/common/lib/to/SAML2IdPTO.java
----------------------------------------------------------------------
diff --git a/ext/saml2sp/common-lib/src/main/java/org/apache/syncope/common/lib/to/SAML2IdPTO.java b/ext/saml2sp/common-lib/src/main/java/org/apache/syncope/common/lib/to/SAML2IdPTO.java
index 022267d..7b8b241 100644
--- a/ext/saml2sp/common-lib/src/main/java/org/apache/syncope/common/lib/to/SAML2IdPTO.java
+++ b/ext/saml2sp/common-lib/src/main/java/org/apache/syncope/common/lib/to/SAML2IdPTO.java
@@ -28,8 +28,6 @@ import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.common.lib.AbstractBaseBean;
import org.apache.syncope.common.lib.types.SAML2BindingType;
@@ -148,13 +146,7 @@ public class SAML2IdPTO extends AbstractBaseBean implements EntityTO, ItemContai
@Override
public ItemTO getConnObjectKeyItem() {
- return IterableUtils.find(getItems(), new Predicate<ItemTO>() {
-
- @Override
- public boolean evaluate(final ItemTO item) {
- return item.isConnObjectKey();
- }
- });
+ return getItems().stream().filter(item -> item.isConnObjectKey()).findFirst().get();
}
protected boolean addConnObjectKeyItem(final ItemTO connObjectItem) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/ext/saml2sp/common-lib/src/main/java/org/apache/syncope/common/lib/to/SAML2LoginResponseTO.java
----------------------------------------------------------------------
diff --git a/ext/saml2sp/common-lib/src/main/java/org/apache/syncope/common/lib/to/SAML2LoginResponseTO.java b/ext/saml2sp/common-lib/src/main/java/org/apache/syncope/common/lib/to/SAML2LoginResponseTO.java
index 2b02eb4..9eaca74 100644
--- a/ext/saml2sp/common-lib/src/main/java/org/apache/syncope/common/lib/to/SAML2LoginResponseTO.java
+++ b/ext/saml2sp/common-lib/src/main/java/org/apache/syncope/common/lib/to/SAML2LoginResponseTO.java
@@ -22,13 +22,12 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.Date;
import java.util.HashSet;
+import java.util.Optional;
import java.util.Set;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.common.lib.AbstractBaseBean;
@XmlRootElement(name = "saml2LoginResponse")
@@ -128,14 +127,8 @@ public class SAML2LoginResponseTO extends AbstractBaseBean {
}
@JsonIgnore
- public AttrTO getAttr(final String schema) {
- return IterableUtils.find(attrs, new Predicate<AttrTO>() {
-
- @Override
- public boolean evaluate(final AttrTO object) {
- return object.getSchema().equals(schema);
- }
- });
+ public Optional<AttrTO> getAttr(final String schema) {
+ return attrs.stream().filter(attr -> attr.getSchema().equals(schema)).findFirst();
}
@XmlElementWrapper(name = "attrs")
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/ext/saml2sp/logic/src/main/java/org/apache/syncope/core/logic/SAML2IdPLogic.java
----------------------------------------------------------------------
diff --git a/ext/saml2sp/logic/src/main/java/org/apache/syncope/core/logic/SAML2IdPLogic.java b/ext/saml2sp/logic/src/main/java/org/apache/syncope/core/logic/SAML2IdPLogic.java
index ae3f075..170aff9 100644
--- a/ext/saml2sp/logic/src/main/java/org/apache/syncope/core/logic/SAML2IdPLogic.java
+++ b/ext/saml2sp/logic/src/main/java/org/apache/syncope/core/logic/SAML2IdPLogic.java
@@ -27,8 +27,7 @@ import java.util.ArrayList;
import java.util.Base64;
import java.util.List;
import java.util.Set;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.to.ItemTO;
@@ -100,13 +99,7 @@ public class SAML2IdPLogic extends AbstractSAML2Logic<SAML2IdPTO> {
@PreAuthorize("isAuthenticated()")
@Transactional(readOnly = true)
public List<SAML2IdPTO> list() {
- return CollectionUtils.collect(idpDAO.findAll(), new Transformer<SAML2IdP, SAML2IdPTO>() {
-
- @Override
- public SAML2IdPTO transform(final SAML2IdP input) {
- return complete(input, binder.getIdPTO(input));
- }
- }, new ArrayList<SAML2IdPTO>());
+ return idpDAO.findAll().stream().map(idp -> complete(idp, binder.getIdPTO(idp))).collect(Collectors.toList());
}
@PreAuthorize("hasRole('" + SAML2SPEntitlement.IDP_READ + "')")
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/ext/saml2sp/logic/src/main/java/org/apache/syncope/core/logic/SAML2SPLogic.java
----------------------------------------------------------------------
diff --git a/ext/saml2sp/logic/src/main/java/org/apache/syncope/core/logic/SAML2SPLogic.java b/ext/saml2sp/logic/src/main/java/org/apache/syncope/core/logic/SAML2SPLogic.java
index 0da3f45..80a3ce6 100644
--- a/ext/saml2sp/logic/src/main/java/org/apache/syncope/core/logic/SAML2SPLogic.java
+++ b/ext/saml2sp/logic/src/main/java/org/apache/syncope/core/logic/SAML2SPLogic.java
@@ -472,14 +472,8 @@ public class SAML2SPLogic extends AbstractSAML2Logic<AbstractBaseBean> {
if (idp.isCreateUnmatching()) {
LOG.debug("No user matching NameID {}, about to create", nameID.getValue());
- username = AuthContextUtils.execWithAuthContext(
- AuthContextUtils.getDomain(), new AuthContextUtils.Executable<String>() {
-
- @Override
- public String exec() {
- return userManager.create(idp, responseTO, nameIDValue);
- }
- });
+ username = AuthContextUtils.execWithAuthContext(AuthContextUtils.getDomain(), ()
+ -> userManager.create(idp, responseTO, nameIDValue));
} else {
throw new NotFoundException("User matching the provided NameID value " + nameID.getValue());
}
@@ -489,14 +483,8 @@ public class SAML2SPLogic extends AbstractSAML2Logic<AbstractBaseBean> {
if (idp.isUpdateMatching()) {
LOG.debug("About to update {} for NameID {}", matchingUsers.get(0), nameID.getValue());
- username = AuthContextUtils.execWithAuthContext(
- AuthContextUtils.getDomain(), new AuthContextUtils.Executable<String>() {
-
- @Override
- public String exec() {
- return userManager.update(matchingUsers.get(0), idp, responseTO);
- }
- });
+ username = AuthContextUtils.execWithAuthContext(AuthContextUtils.getDomain(), ()
+ -> userManager.update(matchingUsers.get(0), idp, responseTO));
} else {
username = matchingUsers.get(0);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/ext/saml2sp/logic/src/main/java/org/apache/syncope/core/logic/saml2/SAML2UserManager.java
----------------------------------------------------------------------
diff --git a/ext/saml2sp/logic/src/main/java/org/apache/syncope/core/logic/saml2/SAML2UserManager.java b/ext/saml2sp/logic/src/main/java/org/apache/syncope/core/logic/saml2/SAML2UserManager.java
index 0798939..e0001b1 100644
--- a/ext/saml2sp/logic/src/main/java/org/apache/syncope/core/logic/saml2/SAML2UserManager.java
+++ b/ext/saml2sp/logic/src/main/java/org/apache/syncope/core/logic/saml2/SAML2UserManager.java
@@ -21,8 +21,8 @@ package org.apache.syncope.core.logic.saml2;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
+import java.util.Optional;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.SerializationUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.common.lib.AnyOperations;
@@ -137,27 +137,13 @@ public class SAML2UserManager {
}
}
- CollectionUtils.collect(
- userDAO.findByPlainAttrValue(intAttrName.getSchemaName(), value),
- new Transformer<User, String>() {
-
- @Override
- public String transform(final User input) {
- return input.getUsername();
- }
- }, result);
+ result.addAll(userDAO.findByPlainAttrValue(intAttrName.getSchemaName(), value).stream().
+ map(user -> user.getUsername()).collect(Collectors.toList()));
break;
case DERIVED:
- CollectionUtils.collect(
- userDAO.findByDerAttrValue(intAttrName.getSchemaName(), transformed),
- new Transformer<User, String>() {
-
- @Override
- public String transform(final User input) {
- return input.getUsername();
- }
- }, result);
+ result.addAll(userDAO.findByDerAttrValue(intAttrName.getSchemaName(), transformed).stream().
+ map(user -> user.getUsername()).collect(Collectors.toList()));
break;
default:
@@ -170,7 +156,7 @@ public class SAML2UserManager {
private List<SAML2IdPActions> getActions(final SAML2IdPEntity idp) {
List<SAML2IdPActions> actions = new ArrayList<>();
- for (String className : idp.getActionsClassNames()) {
+ idp.getActionsClassNames().forEach((className) -> {
try {
Class<?> actionsClass = Class.forName(className);
SAML2IdPActions idpActions = (SAML2IdPActions) ApplicationContextProvider.getBeanFactory().
@@ -180,7 +166,7 @@ public class SAML2UserManager {
} catch (Exception e) {
LOG.warn("Class '{}' not found", className, e);
}
- }
+ });
return actions;
}
@@ -190,11 +176,11 @@ public class SAML2UserManager {
IntAttrName intAttrName = intAttrNameParser.parse(item.getIntAttrName(), AnyTypeKind.USER);
List<String> values = Collections.emptyList();
- AttrTO samlAttr = responseTO.getAttr(item.getExtAttrName());
- if (samlAttr != null && !samlAttr.getValues().isEmpty()) {
- values = samlAttr.getValues();
+ Optional<AttrTO> samlAttr = responseTO.getAttr(item.getExtAttrName());
+ if (samlAttr.isPresent() && !samlAttr.get().getValues().isEmpty()) {
+ values = samlAttr.get().getValues();
- List<Object> transformed = new ArrayList<Object>(values);
+ List<Object> transformed = new ArrayList<>(values);
for (ItemTransformer transformer : MappingUtils.getItemTransformers(item)) {
transformed = transformer.beforePull(null, userTO, transformed);
}
@@ -218,13 +204,14 @@ public class SAML2UserManager {
} else if (intAttrName.getSchemaType() != null) {
switch (intAttrName.getSchemaType()) {
case PLAIN:
- AttrTO attr = userTO.getPlainAttr(intAttrName.getSchemaName());
- if (attr == null) {
- attr = new AttrTO.Builder().schema(intAttrName.getSchemaName()).build();
- userTO.getPlainAttrs().add(attr);
+ Optional<AttrTO> attr = userTO.getPlainAttr(intAttrName.getSchemaName());
+ if (!attr.isPresent()) {
+ attr = Optional.of(new AttrTO.Builder().schema(intAttrName.getSchemaName()).build());
+ userTO.getPlainAttrs().add(attr.get());
+ } else {
+ attr.get().getValues().clear();
}
- attr.getValues().clear();
- attr.getValues().addAll(values);
+ attr.get().getValues().addAll(values);
break;
default:
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/ext/saml2sp/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/SAML2IdP.java
----------------------------------------------------------------------
diff --git a/ext/saml2sp/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/SAML2IdP.java b/ext/saml2sp/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/SAML2IdP.java
index 5588334..1aa1116 100644
--- a/ext/saml2sp/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/SAML2IdP.java
+++ b/ext/saml2sp/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/SAML2IdP.java
@@ -19,6 +19,7 @@
package org.apache.syncope.core.persistence.api.entity;
import java.util.List;
+import java.util.Optional;
import java.util.Set;
import org.apache.syncope.common.lib.types.SAML2BindingType;
@@ -56,7 +57,7 @@ public interface SAML2IdP extends Entity {
void setUserTemplate(SAML2UserTemplate userTemplate);
- SAML2IdPItem getConnObjectKeyItem();
+ Optional<? extends SAML2IdPItem> getConnObjectKeyItem();
void setConnObjectKeyItem(SAML2IdPItem item);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/ext/saml2sp/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPASAML2IdP.java
----------------------------------------------------------------------
diff --git a/ext/saml2sp/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPASAML2IdP.java b/ext/saml2sp/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPASAML2IdP.java
index d6df04d..8b3943f 100644
--- a/ext/saml2sp/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPASAML2IdP.java
+++ b/ext/saml2sp/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPASAML2IdP.java
@@ -21,6 +21,7 @@ package org.apache.syncope.core.persistence.jpa.entity;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
+import java.util.Optional;
import java.util.Set;
import javax.persistence.Basic;
import javax.persistence.Cacheable;
@@ -37,8 +38,6 @@ import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.syncope.common.lib.types.SAML2BindingType;
import org.apache.syncope.core.persistence.api.entity.SAML2IdP;
@@ -190,14 +189,8 @@ public class JPASAML2IdP extends AbstractGeneratedKeyEntity implements SAML2IdP
}
@Override
- public SAML2IdPItem getConnObjectKeyItem() {
- return IterableUtils.find(getItems(), new Predicate<SAML2IdPItem>() {
-
- @Override
- public boolean evaluate(final SAML2IdPItem item) {
- return item.isConnObjectKey();
- }
- });
+ public Optional<? extends SAML2IdPItem> getConnObjectKeyItem() {
+ return getItems().stream().filter(item -> item.isConnObjectKey()).findFirst();
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/ext/saml2sp/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/SAML2IdPValidator.java
----------------------------------------------------------------------
diff --git a/ext/saml2sp/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/SAML2IdPValidator.java b/ext/saml2sp/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/SAML2IdPValidator.java
index 225c6d1..f3b91e9 100644
--- a/ext/saml2sp/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/SAML2IdPValidator.java
+++ b/ext/saml2sp/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/SAML2IdPValidator.java
@@ -19,8 +19,6 @@
package org.apache.syncope.core.persistence.jpa.validation.entity;
import javax.validation.ConstraintValidatorContext;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.common.lib.types.EntityViolationType;
import org.apache.syncope.core.persistence.api.entity.SAML2IdP;
import org.apache.syncope.core.persistence.api.entity.SAML2IdPItem;
@@ -30,13 +28,7 @@ public class SAML2IdPValidator extends AbstractValidator<SAML2IdPCheck, SAML2IdP
@Override
public boolean isValid(final SAML2IdP value, final ConstraintValidatorContext context) {
- long connObjectKeys = IterableUtils.countMatches(value.getItems(), new Predicate<SAML2IdPItem>() {
-
- @Override
- public boolean evaluate(final SAML2IdPItem item) {
- return item.isConnObjectKey();
- }
- });
+ long connObjectKeys = value.getItems().stream().filter(item -> item.isConnObjectKey()).count();
if (!value.getItems().isEmpty() && connObjectKeys != 1) {
context.buildConstraintViolationWithTemplate(
getTemplate(EntityViolationType.InvalidMapping, "Single ConnObjectKey mapping is required")).
@@ -46,13 +38,7 @@ public class SAML2IdPValidator extends AbstractValidator<SAML2IdPCheck, SAML2IdP
boolean isValid = true;
- long passwords = IterableUtils.countMatches(value.getItems(), new Predicate<SAML2IdPItem>() {
-
- @Override
- public boolean evaluate(final SAML2IdPItem item) {
- return item.isPassword();
- }
- });
+ long passwords = value.getItems().stream().filter(item -> item.isPassword()).count();
if (passwords > 0) {
context.buildConstraintViolationWithTemplate(
getTemplate(EntityViolationType.InvalidMapping, "No password mapping is allowed")).
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/ext/saml2sp/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/SAML2IdPDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/ext/saml2sp/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/SAML2IdPDataBinderImpl.java b/ext/saml2sp/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/SAML2IdPDataBinderImpl.java
index 2f2f9d0..bf7d409 100644
--- a/ext/saml2sp/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/SAML2IdPDataBinderImpl.java
+++ b/ext/saml2sp/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/SAML2IdPDataBinderImpl.java
@@ -18,7 +18,7 @@
*/
package org.apache.syncope.core.provisioning.java.data;
-import org.apache.commons.collections4.CollectionUtils;
+import java.util.stream.Collectors;
import org.apache.syncope.common.lib.SyncopeClientCompositeException;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.to.AnyTypeClassTO;
@@ -32,16 +32,12 @@ import org.apache.syncope.common.lib.types.SchemaType;
import org.apache.syncope.core.persistence.api.dao.AnyTypeDAO;
import org.apache.syncope.core.persistence.api.dao.SAML2IdPDAO;
import org.apache.syncope.core.persistence.api.entity.AnyTypeClass;
-import org.apache.syncope.core.persistence.api.entity.DerSchema;
-import org.apache.syncope.core.persistence.api.entity.PlainSchema;
import org.apache.syncope.core.persistence.api.entity.SAML2EntityFactory;
import org.apache.syncope.core.persistence.api.entity.SAML2IdP;
import org.apache.syncope.core.persistence.api.entity.SAML2IdPItem;
import org.apache.syncope.core.persistence.api.entity.SAML2UserTemplate;
-import org.apache.syncope.core.persistence.api.entity.VirSchema;
import org.apache.syncope.core.provisioning.api.IntAttrName;
import org.apache.syncope.core.provisioning.api.data.SAML2IdPDataBinder;
-import org.apache.syncope.core.provisioning.api.utils.EntityUtils;
import org.apache.syncope.core.provisioning.java.IntAttrNameParser;
import org.apache.syncope.core.provisioning.java.jexl.JexlUtils;
import org.apache.syncope.core.spring.BeanUtils;
@@ -191,15 +187,12 @@ public class SAML2IdPDataBinderImpl implements SAML2IdPDataBinder {
idp.getItems().clear();
AnyTypeClassTO allowedSchemas = new AnyTypeClassTO();
for (AnyTypeClass anyTypeClass : anyTypeDAO.findUser().getClasses()) {
- allowedSchemas.getPlainSchemas().addAll(
- CollectionUtils.collect(anyTypeClass.getPlainSchemas(),
- EntityUtils.<PlainSchema>keyTransformer()));
- allowedSchemas.getDerSchemas().addAll(
- CollectionUtils.collect(anyTypeClass.getDerSchemas(),
- EntityUtils.<DerSchema>keyTransformer()));
- allowedSchemas.getVirSchemas().addAll(
- CollectionUtils.collect(anyTypeClass.getVirSchemas(),
- EntityUtils.<VirSchema>keyTransformer()));
+ allowedSchemas.getPlainSchemas().addAll(anyTypeClass.getPlainSchemas().stream().
+ map(s -> s.getKey()).collect(Collectors.toList()));
+ allowedSchemas.getDerSchemas().addAll(anyTypeClass.getDerSchemas().stream().
+ map(s -> s.getKey()).collect(Collectors.toList()));
+ allowedSchemas.getVirSchemas().addAll(anyTypeClass.getVirSchemas().stream().
+ map(s -> s.getKey()).collect(Collectors.toList()));
}
populateItems(idpTO, idp, allowedSchemas);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/TestPullActions.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/TestPullActions.java b/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/TestPullActions.java
index fb48c9b..a32a1be 100644
--- a/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/TestPullActions.java
+++ b/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/TestPullActions.java
@@ -18,7 +18,7 @@
*/
package org.apache.syncope.fit.core.reference;
-import org.apache.commons.collections4.IterableUtils;
+import java.util.Optional;
import org.apache.syncope.common.lib.patch.AnyPatch;
import org.apache.syncope.common.lib.patch.AttrPatch;
import org.apache.syncope.common.lib.to.AnyTO;
@@ -47,20 +47,14 @@ public class TestPullActions implements PullActions {
if (entity instanceof AnyTO) {
AnyTO any = (AnyTO) entity;
- AttrTO attrTO = null;
- for (int i = 0; i < any.getPlainAttrs().size(); i++) {
- AttrTO plainAttr = IterableUtils.get(any.getPlainAttrs(), i);
- if ("fullname".equals(plainAttr.getSchema())) {
- attrTO = plainAttr;
- }
+ Optional<AttrTO> attrTO = any.getPlainAttr("fullname");
+ if (!attrTO.isPresent()) {
+ attrTO = Optional.of(new AttrTO());
+ attrTO.get().setSchema("fullname");
+ any.getPlainAttrs().add(attrTO.get());
}
- if (attrTO == null) {
- attrTO = new AttrTO();
- attrTO.setSchema("fullname");
- any.getPlainAttrs().add(attrTO);
- }
- attrTO.getValues().clear();
- attrTO.getValues().add(String.valueOf(counter++));
+ attrTO.get().getValues().clear();
+ attrTO.get().getValues().add(String.valueOf(counter++));
}
return delta;
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/fit/core-reference/src/test/java/org/apache/syncope/fit/AbstractITCase.java
----------------------------------------------------------------------
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 9c77fd5..f29786d 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
@@ -24,6 +24,7 @@ import static org.junit.Assert.fail;
import java.io.InputStream;
import java.net.URI;
+import java.util.Arrays;
import java.util.Locale;
import java.util.Properties;
import java.util.UUID;
@@ -37,7 +38,6 @@ import javax.naming.directory.ModificationItem;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.Response;
-import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
@@ -388,7 +388,7 @@ public abstract class AbstractITCase {
notification.setSelfAsRecipient(true);
notification.setRecipientAttrName("email");
if (staticRecipients != null) {
- CollectionUtils.addAll(notification.getStaticRecipients(), staticRecipients);
+ notification.getStaticRecipients().addAll(Arrays.asList(staticRecipients));
}
notification.setSender(sender);
@@ -517,13 +517,13 @@ public abstract class AbstractITCase {
Properties env = new Properties();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
- env.put(Context.PROVIDER_URL, "ldap://" + ldapConn.getConf("host").getValues().get(0)
- + ":" + ldapConn.getConf("port").getValues().get(0) + "/");
+ env.put(Context.PROVIDER_URL, "ldap://" + ldapConn.getConf("host").get().getValues().get(0)
+ + ":" + ldapConn.getConf("port").get().getValues().get(0) + "/");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL,
- bindDn == null ? ldapConn.getConf("principal").getValues().get(0) : bindDn);
+ bindDn == null ? ldapConn.getConf("principal").get().getValues().get(0) : bindDn);
env.put(Context.SECURITY_CREDENTIALS,
- bindPwd == null ? ldapConn.getConf("credentials").getValues().get(0) : bindPwd);
+ bindPwd == null ? ldapConn.getConf("credentials").get().getValues().get(0) : bindPwd);
return new InitialDirContext(env);
}