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:05 UTC
[01/16] syncope git commit: [SYNCOPE-938] Switching from
commons-collections to Java 8 features
Repository: syncope
Updated Branches:
refs/heads/master fa093b39c -> 74ee038a4
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RealmITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RealmITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RealmITCase.java
index bbe9ac5..cdf8ffc 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RealmITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RealmITCase.java
@@ -26,10 +26,9 @@ import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.util.List;
+import java.util.Optional;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.Response;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.common.lib.policy.AccountPolicyTO;
@@ -44,14 +43,8 @@ import org.junit.Test;
public class RealmITCase extends AbstractITCase {
- private RealmTO getRealm(final String fullPath) {
- return IterableUtils.find(realmService.list(fullPath), new Predicate<RealmTO>() {
-
- @Override
- public boolean evaluate(final RealmTO object) {
- return fullPath.equals(object.getFullPath());
- }
- });
+ private Optional<RealmTO> getRealm(final String fullPath) {
+ return realmService.list(fullPath).stream().filter(realm -> fullPath.equals(realm.getFullPath())).findFirst();
}
@Test
@@ -59,9 +52,9 @@ public class RealmITCase extends AbstractITCase {
List<RealmTO> realms = realmService.list();
assertNotNull(realms);
assertFalse(realms.isEmpty());
- for (RealmTO realm : realms) {
+ realms.forEach(realm -> {
assertNotNull(realm);
- }
+ });
try {
realmService.list("a name");
@@ -85,7 +78,7 @@ public class RealmITCase extends AbstractITCase {
assertNotNull(actual.getKey());
assertEquals("last", actual.getName());
assertEquals("/even/two/last", actual.getFullPath());
- assertEquals(actual.getParent(), getRealm("/even/two").getKey());
+ assertEquals(actual.getParent(), getRealm("/even/two").get().getKey());
assertNull(realm.getAccountPolicy());
assertNull(realm.getPasswordPolicy());
@@ -94,25 +87,20 @@ public class RealmITCase extends AbstractITCase {
actual.setPasswordPolicy("986d1236-3ac5-4a19-810c-5ab21d79cba1");
realmService.update(actual);
- actual = getRealm(actual.getFullPath());
+ actual = getRealm(actual.getFullPath()).get();
assertNotNull(actual.getAccountPolicy());
assertNotNull(actual.getPasswordPolicy());
// 3. update changing parent
- actual.setParent(getRealm("/odd").getKey());
+ actual.setParent(getRealm("/odd").get().getKey());
realmService.update(actual);
- actual = getRealm("/odd/last");
+ actual = getRealm("/odd/last").get();
assertNotNull(actual);
assertEquals("/odd/last", actual.getFullPath());
- assertEquals(1, IterableUtils.countMatches(realmService.list(), new Predicate<RealmTO>() {
-
- @Override
- public boolean evaluate(final RealmTO object) {
- return realm.getName().equals(object.getName());
- }
- }));
+ assertEquals(1, realmService.list().stream().
+ filter(object -> realm.getName().equals(object.getName())).count());
// 4. create under invalid path
try {
@@ -161,7 +149,7 @@ public class RealmITCase extends AbstractITCase {
policyService.delete(policy.getKey());
// 4. verify
- actual = getRealm(actual.getFullPath());
+ actual = getRealm(actual.getFullPath()).get();
assertNull(actual.getAccountPolicy());
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ResourceITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ResourceITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ResourceITCase.java
index bfa5d80..1537553 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ResourceITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ResourceITCase.java
@@ -31,16 +31,15 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
+import java.util.Optional;
import java.util.Set;
+import java.util.stream.Collectors;
import javax.ws.rs.core.Response;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
import org.apache.commons.lang3.SerializationUtils;
import org.apache.syncope.client.console.commons.ConnIdSpecialName;
import org.apache.syncope.client.lib.SyncopeClient;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.to.AnyObjectTO;
-import org.apache.syncope.common.lib.to.ConnObjectTO;
import org.apache.syncope.common.lib.to.GroupTO;
import org.apache.syncope.common.lib.to.ItemTO;
import org.apache.syncope.common.lib.to.MappingTO;
@@ -218,14 +217,14 @@ public class ResourceITCase extends AbstractITCase {
ResourceTO actual = getObject(response.getLocation(), ResourceService.class, ResourceTO.class);
assertNotNull(actual);
- assertNotNull(actual.getProvision(AnyTypeKind.USER.name()).getMapping());
- assertNotNull(actual.getProvision(AnyTypeKind.USER.name()).getMapping().getItems());
- assertNotNull(actual.getProvision(AnyTypeKind.GROUP.name()).getMapping());
- assertNotNull(actual.getProvision(AnyTypeKind.GROUP.name()).getMapping().getItems());
+ assertNotNull(actual.getProvision(AnyTypeKind.USER.name()).get().getMapping());
+ assertNotNull(actual.getProvision(AnyTypeKind.USER.name()).get().getMapping().getItems());
+ assertNotNull(actual.getProvision(AnyTypeKind.GROUP.name()).get().getMapping());
+ assertNotNull(actual.getProvision(AnyTypeKind.GROUP.name()).get().getMapping().getItems());
assertEquals(MappingPurpose.PULL,
- actual.getProvision(AnyTypeKind.GROUP.name()).getMapping().getConnObjectKeyItem().getPurpose());
+ actual.getProvision(AnyTypeKind.GROUP.name()).get().getMapping().getConnObjectKeyItem().getPurpose());
assertEquals(MappingPurpose.PROPAGATION,
- actual.getProvision(AnyTypeKind.USER.name()).getMapping().getConnObjectKeyItem().getPurpose());
+ actual.getProvision(AnyTypeKind.USER.name()).get().getMapping().getConnObjectKeyItem().getPurpose());
}
@Test
@@ -382,7 +381,7 @@ public class ResourceITCase extends AbstractITCase {
assertNotNull(actual);
// check for existence
- Collection<ItemTO> mapItems = actual.getProvision(AnyTypeKind.USER.name()).getMapping().getItems();
+ Collection<ItemTO> mapItems = actual.getProvision(AnyTypeKind.USER.name()).get().getMapping().getItems();
assertNotNull(mapItems);
assertEquals(4, mapItems.size());
}
@@ -408,7 +407,7 @@ public class ResourceITCase extends AbstractITCase {
try {
// create a new resource
resource = createResource(resource);
- assertNull(resource.getProvision("PRINTER").getSyncToken());
+ assertNull(resource.getProvision("PRINTER").get().getSyncToken());
// create some object on the new resource
anyObject = createAnyObject(anyObject).getEntity();
@@ -417,13 +416,13 @@ public class ResourceITCase extends AbstractITCase {
resourceService.setLatestSyncToken(resource.getKey(), "PRINTER");
resource = resourceService.read(resource.getKey());
- assertNotNull(resource.getProvision("PRINTER").getSyncToken());
+ assertNotNull(resource.getProvision("PRINTER").get().getSyncToken());
// remove sync token
resourceService.removeSyncToken(resource.getKey(), "PRINTER");
resource = resourceService.read(resource.getKey());
- assertNull(resource.getProvision("PRINTER").getSyncToken());
+ assertNull(resource.getProvision("PRINTER").get().getSyncToken());
} finally {
if (anyObject.getKey() != null) {
anyObjectService.delete(anyObject.getKey());
@@ -495,9 +494,7 @@ public class ResourceITCase extends AbstractITCase {
List<ResourceTO> actuals = resourceService.list();
assertNotNull(actuals);
assertFalse(actuals.isEmpty());
- for (ResourceTO resourceTO : actuals) {
- assertNotNull(resourceTO);
- }
+ actuals.forEach(resourceTO -> assertNotNull(resourceTO));
}
@Test
@@ -505,10 +502,10 @@ public class ResourceITCase extends AbstractITCase {
ResourceTO resource = resourceService.read(RESOURCE_NAME_DBVIRATTR);
assertNotNull(resource);
- ProvisionTO provision = resource.getProvision(AnyTypeKind.USER.name());
- assertNotNull(provision);
- assertFalse(provision.getMapping().getItems().isEmpty());
- assertFalse(provision.getMapping().getLinkingItems().isEmpty());
+ Optional<ProvisionTO> provision = resource.getProvision(AnyTypeKind.USER.name());
+ assertTrue(provision.isPresent());
+ assertFalse(provision.get().getMapping().getItems().isEmpty());
+ assertFalse(provision.get().getMapping().getLinkingItems().isEmpty());
}
@Test
@@ -545,13 +542,9 @@ public class ResourceITCase extends AbstractITCase {
assertNotNull(list);
totalRead += list.getResult().size();
- CollectionUtils.collect(list.getResult(), new Transformer<ConnObjectTO, String>() {
-
- @Override
- public String transform(final ConnObjectTO input) {
- return input.getAttr(ConnIdSpecialName.NAME).getValues().get(0);
- }
- }, read);
+ read.addAll(list.getResult().stream().
+ map(input -> input.getAttr(ConnIdSpecialName.NAME).get().getValues().get(0)).
+ collect(Collectors.toList()));
if (list.getPagedResultsCookie() != null) {
builder.pagedResultsCookie(list.getPagedResultsCookie());
@@ -561,9 +554,9 @@ public class ResourceITCase extends AbstractITCase {
assertEquals(totalRead, read.size());
assertTrue(totalRead >= 10);
} finally {
- for (String key : groupKeys) {
+ groupKeys.forEach(key -> {
groupService.delete(key);
- }
+ });
}
}
@@ -576,20 +569,20 @@ public class ResourceITCase extends AbstractITCase {
ResourceTO ldap = resourceService.read(RESOURCE_NAME_LDAP);
TraceLevel originalTraceLevel = SerializationUtils.clone(ldap.getUpdateTraceLevel());
assertEquals(TraceLevel.ALL, originalTraceLevel);
- ProvisionTO originalProvision = SerializationUtils.clone(ldap.getProvision(AnyTypeKind.USER.name()));
+ ProvisionTO originalProvision = SerializationUtils.clone(ldap.getProvision(AnyTypeKind.USER.name()).get());
assertEquals(ObjectClass.ACCOUNT_NAME, originalProvision.getObjectClass());
boolean originalFlag = ldap.isRandomPwdIfNotProvided();
assertTrue(originalFlag);
ldap.setUpdateTraceLevel(TraceLevel.FAILURES);
- ldap.getProvision(AnyTypeKind.USER.name()).setObjectClass("ANOTHER");
+ ldap.getProvision(AnyTypeKind.USER.name()).get().setObjectClass("ANOTHER");
ldap.setRandomPwdIfNotProvided(false);
resourceService.update(ldap);
ldap = resourceService.read(RESOURCE_NAME_LDAP);
assertNotEquals(originalTraceLevel, ldap.getUpdateTraceLevel());
assertNotEquals(
- originalProvision.getObjectClass(), ldap.getProvision(AnyTypeKind.USER.name()).getObjectClass());
+ originalProvision.getObjectClass(), ldap.getProvision(AnyTypeKind.USER.name()).get().getObjectClass());
assertNotEquals(originalFlag, ldap.isRandomPwdIfNotProvided());
history = resourceHistoryService.list(RESOURCE_NAME_LDAP);
@@ -599,7 +592,9 @@ public class ResourceITCase extends AbstractITCase {
ldap = resourceService.read(RESOURCE_NAME_LDAP);
assertEquals(originalTraceLevel, ldap.getUpdateTraceLevel());
- assertEquals(originalProvision.getObjectClass(), ldap.getProvision(AnyTypeKind.USER.name()).getObjectClass());
+ assertEquals(
+ originalProvision.getObjectClass(),
+ ldap.getProvision(AnyTypeKind.USER.name()).get().getObjectClass());
assertEquals(originalFlag, ldap.isRandomPwdIfNotProvided());
}
@@ -663,14 +658,14 @@ public class ResourceITCase extends AbstractITCase {
ResourceTO resource = resourceService.read(name);
assertNotNull(resource);
- assertNotNull(resource.getProvision(AnyTypeKind.USER.name()).getMapping());
+ assertNotNull(resource.getProvision(AnyTypeKind.USER.name()).get().getMapping());
- resource.getProvision(AnyTypeKind.USER.name()).setMapping(null);
+ resource.getProvision(AnyTypeKind.USER.name()).get().setMapping(null);
resourceService.update(resource);
resource = resourceService.read(name);
assertNotNull(resource);
- assertNull(resource.getProvision(AnyTypeKind.USER.name()).getMapping());
+ assertNull(resource.getProvision(AnyTypeKind.USER.name()).get().getMapping());
}
@Test
@@ -704,7 +699,7 @@ public class ResourceITCase extends AbstractITCase {
resourceTO = createResource(resourceTO);
assertNotNull(resourceTO);
- assertEquals(2, resourceTO.getProvision(AnyTypeKind.GROUP.name()).getMapping().getItems().size());
+ assertEquals(2, resourceTO.getProvision(AnyTypeKind.GROUP.name()).get().getMapping().getItems().size());
}
@Test
@@ -753,15 +748,13 @@ public class ResourceITCase extends AbstractITCase {
ResourceTO actual = getObject(response.getLocation(), ResourceService.class, ResourceTO.class);
assertNotNull(actual);
- assertNotNull(actual.getProvision(AnyTypeKind.USER.name()).getMapping());
- assertNotNull(actual.getProvision(AnyTypeKind.USER.name()).getMapping().getItems());
+ assertNotNull(actual.getProvision(AnyTypeKind.USER.name()).get().getMapping());
+ assertNotNull(actual.getProvision(AnyTypeKind.USER.name()).get().getMapping().getItems());
assertEquals(MappingPurpose.PROPAGATION,
- actual.getProvision(AnyTypeKind.USER.name()).getMapping().getConnObjectKeyItem().getPurpose());
- for (ItemTO itemTO : actual.getProvision(AnyTypeKind.USER.name()).getMapping().getItems()) {
- if ("gender".equals(itemTO.getIntAttrName())) {
- assertEquals(MappingPurpose.NONE, itemTO.getPurpose());
- }
- }
+ actual.getProvision(AnyTypeKind.USER.name()).get().getMapping().getConnObjectKeyItem().getPurpose());
+ actual.getProvision(AnyTypeKind.USER.name()).get().getMapping().getItems().stream().
+ filter(itemTO -> ("gender".equals(itemTO.getIntAttrName()))).
+ forEach(itemTO -> assertEquals(MappingPurpose.NONE, itemTO.getPurpose()));
}
public void issueSYNCOPE645() {
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SchedTaskITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SchedTaskITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SchedTaskITCase.java
index c155831..88e6c27 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SchedTaskITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SchedTaskITCase.java
@@ -28,11 +28,9 @@ import static org.junit.Assert.fail;
import java.util.Date;
import java.util.List;
import java.util.Set;
+import java.util.stream.Collectors;
import javax.ws.rs.core.Response;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.commons.lang3.time.DateUtils;
-import org.apache.syncope.common.lib.to.AbstractTaskTO;
import org.apache.syncope.common.lib.to.JobTO;
import org.apache.syncope.common.lib.to.PagedResult;
import org.apache.syncope.common.lib.to.PushTaskTO;
@@ -62,11 +60,11 @@ public class SchedTaskITCase extends AbstractTaskITCase {
PagedResult<SchedTaskTO> tasks =
taskService.list(new TaskQuery.Builder(TaskType.SCHEDULED).build());
assertFalse(tasks.getResult().isEmpty());
- for (AbstractTaskTO task : tasks.getResult()) {
- if (!(task instanceof SchedTaskTO) || task instanceof PullTaskTO || task instanceof PushTaskTO) {
- fail();
- }
- }
+ tasks.getResult().stream().filter(
+ task -> !(task instanceof SchedTaskTO) || task instanceof PullTaskTO || task instanceof PushTaskTO).
+ forEachOrdered(item -> {
+ fail();
+ });
}
@Test
@@ -183,14 +181,7 @@ public class SchedTaskITCase extends AbstractTaskITCase {
// ignore
}
- jobs = taskService.listJobs();
- CollectionUtils.filter(jobs, new Predicate<JobTO>() {
-
- @Override
- public boolean evaluate(final JobTO job) {
- return job.isRunning();
- }
- });
+ jobs = taskService.listJobs().stream().filter(job -> job.isRunning()).collect(Collectors.toList());
i++;
} while (jobs.size() < 1 && i < maxit);
@@ -208,14 +199,7 @@ public class SchedTaskITCase extends AbstractTaskITCase {
// ignore
}
- jobs = taskService.listJobs();
- CollectionUtils.filter(jobs, new Predicate<JobTO>() {
-
- @Override
- public boolean evaluate(final JobTO job) {
- return job.isRunning();
- }
- });
+ jobs = taskService.listJobs().stream().filter(job -> job.isRunning()).collect(Collectors.toList());
i++;
} while (jobs.size() >= 1 && i < maxit);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SearchITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SearchITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SearchITCase.java
index a0a37b2..e565362 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SearchITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SearchITCase.java
@@ -24,11 +24,7 @@ import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
-import java.util.Collection;
import javax.ws.rs.core.Response;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.client.lib.SyncopeClient;
import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.common.lib.patch.AnyObjectPatch;
@@ -69,15 +65,10 @@ public class SearchITCase extends AbstractITCase {
assertNotNull(matchingUsers);
assertFalse(matchingUsers.getResult().isEmpty());
- Collection<UserTO> found = CollectionUtils.select(matchingUsers.getResult(), new Predicate<UserTO>() {
-
- @Override
- public boolean evaluate(final UserTO user) {
- return "74cd8ece-715a-44a4-a736-e17b46c4e7e6".equals(user.getKey())
- || "b3cbc78d-32e6-4bd4-92e0-bbe07566a2ee".equals(user.getKey());
- }
- });
- assertEquals(2, found.size());
+ assertEquals(2, matchingUsers.getResult().stream().filter(user -> {
+ return "74cd8ece-715a-44a4-a736-e17b46c4e7e6".equals(user.getKey())
+ || "b3cbc78d-32e6-4bd4-92e0-bbe07566a2ee".equals(user.getKey());
+ }).count());
}
@Test
@@ -133,13 +124,8 @@ public class SearchITCase extends AbstractITCase {
assertNotNull(matchingUsers);
assertFalse(matchingUsers.getResult().isEmpty());
- assertTrue(IterableUtils.matchesAny(matchingUsers.getResult(), new Predicate<UserTO>() {
-
- @Override
- public boolean evaluate(final UserTO user) {
- return "1417acbe-cbf6-4277-9372-e75e04f97000".equals(user.getKey());
- }
- }));
+ assertTrue(matchingUsers.getResult().stream().
+ anyMatch(user -> "1417acbe-cbf6-4277-9372-e75e04f97000".equals(user.getKey())));
}
@Test
@@ -164,13 +150,8 @@ public class SearchITCase extends AbstractITCase {
assertNotNull(matchingUsers);
assertFalse(matchingUsers.getResult().isEmpty());
- assertTrue(IterableUtils.matchesAny(matchingUsers.getResult(), new Predicate<UserTO>() {
-
- @Override
- public boolean evaluate(final UserTO user) {
- return "c9b2dec2-00a7-4855-97c0-d854842b4b24".equals(user.getKey());
- }
- }));
+ assertTrue(matchingUsers.getResult().stream().
+ anyMatch(user -> "c9b2dec2-00a7-4855-97c0-d854842b4b24".equals(user.getKey())));
}
@Test
@@ -182,13 +163,8 @@ public class SearchITCase extends AbstractITCase {
assertNotNull(matchingUsers);
assertFalse(matchingUsers.getResult().isEmpty());
- assertTrue(IterableUtils.matchesAny(matchingUsers.getResult(), new Predicate<UserTO>() {
-
- @Override
- public boolean evaluate(final UserTO user) {
- return "1417acbe-cbf6-4277-9372-e75e04f97000".equals(user.getKey());
- }
- }));
+ assertTrue(matchingUsers.getResult().stream().
+ anyMatch(user -> "1417acbe-cbf6-4277-9372-e75e04f97000".equals(user.getKey())));
}
@Test
@@ -214,13 +190,8 @@ public class SearchITCase extends AbstractITCase {
assertNotNull(matchingUsers);
assertFalse(matchingUsers.getResult().isEmpty());
- assertTrue(IterableUtils.matchesAny(matchingUsers.getResult(), new Predicate<UserTO>() {
-
- @Override
- public boolean evaluate(final UserTO user) {
- return "c9b2dec2-00a7-4855-97c0-d854842b4b24".equals(user.getKey());
- }
- }));
+ assertTrue(matchingUsers.getResult().stream().
+ anyMatch(user -> "c9b2dec2-00a7-4855-97c0-d854842b4b24".equals(user.getKey())));
}
@Test
@@ -232,13 +203,8 @@ public class SearchITCase extends AbstractITCase {
assertNotNull(matchingUsers);
assertFalse(matchingUsers.getResult().isEmpty());
- assertTrue(IterableUtils.matchesAny(matchingUsers.getResult(), new Predicate<UserTO>() {
-
- @Override
- public boolean evaluate(final UserTO user) {
- return "74cd8ece-715a-44a4-a736-e17b46c4e7e6".equals(user.getKey());
- }
- }));
+ assertTrue(matchingUsers.getResult().stream().
+ anyMatch(user -> "74cd8ece-715a-44a4-a736-e17b46c4e7e6".equals(user.getKey())));
}
@Test
@@ -315,9 +281,9 @@ public class SearchITCase extends AbstractITCase {
assertNotNull(matchingUsers);
assertFalse(matchingUsers.getResult().isEmpty());
- for (UserTO user : matchingUsers.getResult()) {
+ matchingUsers.getResult().forEach(user -> {
assertNotNull(user);
- }
+ });
}
@Test
@@ -347,25 +313,15 @@ public class SearchITCase extends AbstractITCase {
inRelationships("Canon MF 8030cn").query()).
build());
assertNotNull(anyObjects);
- assertTrue(IterableUtils.matchesAny(anyObjects.getResult(), new Predicate<AnyObjectTO>() {
-
- @Override
- public boolean evaluate(final AnyObjectTO anyObject) {
- return "fc6dbc3a-6c07-4965-8781-921e7401a4a5".equals(anyObject.getKey());
- }
- }));
+ assertTrue(anyObjects.getResult().stream().
+ anyMatch(anyObject -> "fc6dbc3a-6c07-4965-8781-921e7401a4a5".equals(anyObject.getKey())));
PagedResult<UserTO> users = userService.search(new AnyQuery.Builder().realm(SyncopeConstants.ROOT_REALM).
fiql(SyncopeClient.getUserSearchConditionBuilder().inRelationships("HP LJ 1300n").query()).
build());
assertNotNull(users);
- assertTrue(IterableUtils.matchesAny(users.getResult(), new Predicate<UserTO>() {
-
- @Override
- public boolean evaluate(final UserTO user) {
- return "c9b2dec2-00a7-4855-97c0-d854842b4b24".equals(user.getKey());
- }
- }));
+ assertTrue(users.getResult().stream().
+ anyMatch(user -> "c9b2dec2-00a7-4855-97c0-d854842b4b24".equals(user.getKey())));
}
@Test
@@ -376,32 +332,17 @@ public class SearchITCase extends AbstractITCase {
inRelationshipTypes("neighborhood").query()).
build());
assertNotNull(anyObjects);
- assertTrue(IterableUtils.matchesAny(anyObjects.getResult(), new Predicate<AnyObjectTO>() {
-
- @Override
- public boolean evaluate(final AnyObjectTO anyObject) {
- return "fc6dbc3a-6c07-4965-8781-921e7401a4a5".equals(anyObject.getKey());
- }
- }));
- assertTrue(IterableUtils.matchesAny(anyObjects.getResult(), new Predicate<AnyObjectTO>() {
-
- @Override
- public boolean evaluate(final AnyObjectTO anyObject) {
- return "8559d14d-58c2-46eb-a2d4-a7d35161e8f8".equals(anyObject.getKey());
- }
- }));
+ assertTrue(anyObjects.getResult().stream().
+ anyMatch(anyObject -> "fc6dbc3a-6c07-4965-8781-921e7401a4a5".equals(anyObject.getKey())));
+ assertTrue(anyObjects.getResult().stream().
+ anyMatch(anyObject -> "8559d14d-58c2-46eb-a2d4-a7d35161e8f8".equals(anyObject.getKey())));
PagedResult<UserTO> users = userService.search(new AnyQuery.Builder().realm(SyncopeConstants.ROOT_REALM).
fiql(SyncopeClient.getUserSearchConditionBuilder().inRelationshipTypes("neighborhood").query()).
build());
assertNotNull(users);
- assertTrue(IterableUtils.matchesAny(users.getResult(), new Predicate<UserTO>() {
-
- @Override
- public boolean evaluate(final UserTO user) {
- return "c9b2dec2-00a7-4855-97c0-d854842b4b24".equals(user.getKey());
- }
- }));
+ assertTrue(users.getResult().stream().
+ anyMatch(user -> "c9b2dec2-00a7-4855-97c0-d854842b4b24".equals(user.getKey())));
}
@Test
@@ -411,33 +352,18 @@ public class SearchITCase extends AbstractITCase {
and("name").equalTo("*").query()).
build());
assertNotNull(groups);
- assertTrue(IterableUtils.matchesAny(groups.getResult(), new Predicate<GroupTO>() {
-
- @Override
- public boolean evaluate(final GroupTO group) {
- return "034740a9-fa10-453b-af37-dc7897e98fb1".equals(group.getKey());
- }
- }));
- assertFalse(IterableUtils.matchesAny(groups.getResult(), new Predicate<GroupTO>() {
-
- @Override
- public boolean evaluate(final GroupTO group) {
- return "e7ff94e8-19c9-4f0a-b8b7-28327edbf6ed".equals(group.getKey());
- }
- }));
+ assertTrue(groups.getResult().stream().
+ anyMatch(group -> "034740a9-fa10-453b-af37-dc7897e98fb1".equals(group.getKey())));
+ assertFalse(groups.getResult().stream().
+ anyMatch(group -> "e7ff94e8-19c9-4f0a-b8b7-28327edbf6ed".equals(group.getKey())));
PagedResult<AnyObjectTO> anyObjects = anyObjectService.search(new AnyQuery.Builder().realm("/odd").
fiql(SyncopeClient.getAnyObjectSearchConditionBuilder("PRINTER").isAssignable().
and("name").equalTo("*").query()).
build());
assertNotNull(anyObjects);
- assertFalse(IterableUtils.matchesAny(anyObjects.getResult(), new Predicate<AnyObjectTO>() {
-
- @Override
- public boolean evaluate(final AnyObjectTO anyObject) {
- return "9e1d130c-d6a3-48b1-98b3-182477ed0688".equals(anyObject.getKey());
- }
- }));
+ assertFalse(anyObjects.getResult().stream().
+ anyMatch(anyObject -> "9e1d130c-d6a3-48b1-98b3-182477ed0688".equals(anyObject.getKey())));
}
@Test
@@ -447,20 +373,8 @@ public class SearchITCase extends AbstractITCase {
build());
assertNotNull(groups);
- assertTrue(IterableUtils.matchesAny(groups.getResult(), new Predicate<GroupTO>() {
-
- @Override
- public boolean evaluate(final GroupTO group) {
- return "root".equals(group.getName());
- }
- }));
- assertTrue(IterableUtils.matchesAny(groups.getResult(), new Predicate<GroupTO>() {
-
- @Override
- public boolean evaluate(final GroupTO group) {
- return "otherchild".equals(group.getName());
- }
- }));
+ assertTrue(groups.getResult().stream().anyMatch(group -> "root".equals(group.getName())));
+ assertTrue(groups.getResult().stream().anyMatch(group -> "otherchild".equals(group.getName())));
}
@Test
@@ -505,9 +419,9 @@ public class SearchITCase extends AbstractITCase {
assertNotNull(matchingUsers);
assertFalse(matchingUsers.getResult().isEmpty());
- for (UserTO user : matchingUsers.getResult()) {
+ matchingUsers.getResult().forEach(user -> {
assertTrue(user.getUsername().startsWith("bellini"));
- }
+ });
}
@Test
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java
index 3b2aa3b..f10e60c 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java
@@ -36,8 +36,6 @@ import java.util.UUID;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
-import org.apache.commons.collections4.MapUtils;
-import org.apache.commons.collections4.Transformer;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.cxf.jaxrs.client.WebClient;
@@ -91,7 +89,7 @@ import org.junit.Test;
public class UserITCase extends AbstractITCase {
private boolean getBooleanAttribute(final ConnObjectTO connObjectTO, final String attrName) {
- return Boolean.parseBoolean(connObjectTO.getAttr(attrName).getValues().get(0));
+ return Boolean.parseBoolean(connObjectTO.getAttr(attrName).get().getValues().get(0));
}
public static UserTO getUniqueSampleTO(final String email) {
@@ -333,7 +331,7 @@ public class UserITCase extends AbstractITCase {
// 4. try (and fail) to create another user with same (unique) values
userTO = getSampleTO(userTO.getUsername());
- AttrTO userIdAttr = userTO.getPlainAttr("userId");
+ AttrTO userIdAttr = userTO.getPlainAttr("userId").get();
userIdAttr.getValues().clear();
userIdAttr.getValues().add("a.b@c.com");
@@ -349,7 +347,7 @@ public class UserITCase extends AbstractITCase {
public void createWithRequiredValueMissing() {
UserTO userTO = getUniqueSampleTO("a.b@c.it");
- AttrTO type = userTO.getPlainAttr("ctype");
+ AttrTO type = userTO.getPlainAttr("ctype").get();
userTO.getPlainAttrs().remove(type);
userTO.getMemberships().add(new MembershipTO.Builder().
@@ -365,7 +363,7 @@ public class UserITCase extends AbstractITCase {
userTO.getPlainAttrs().add(attrTO("ctype", "F"));
- AttrTO surname = userTO.getPlainAttr("surname");
+ AttrTO surname = userTO.getPlainAttr("surname").get();
userTO.getPlainAttrs().remove(surname);
// 2. create user without surname (mandatory when type == 'F')
@@ -491,7 +489,7 @@ public class UserITCase extends AbstractITCase {
userTO = updateUser(userPatch).getEntity();
assertNotNull(userTO);
- assertNull(userTO.getPlainAttr("ctype"));
+ assertFalse(userTO.getPlainAttr("ctype").isPresent());
}
@Test(expected = SyncopeClientException.class)
@@ -563,10 +561,10 @@ public class UserITCase extends AbstractITCase {
assertEquals(1, userTO.getMemberships().size());
assertFalse(userTO.getDerAttrs().isEmpty());
- AttrTO userIdAttr = userTO.getPlainAttr("userId");
+ AttrTO userIdAttr = userTO.getPlainAttr("userId").get();
assertEquals(Collections.singletonList(newUserId), userIdAttr.getValues());
- AttrTO fullNameAttr = userTO.getPlainAttr("fullname");
+ AttrTO fullNameAttr = userTO.getPlainAttr("fullname").get();
assertEquals(Collections.singletonList(newFullName), fullNameAttr.getValues());
// update by username
@@ -825,7 +823,7 @@ public class UserITCase extends AbstractITCase {
userTO = createUser(userTO).getEntity();
assertNotNull(userTO);
- AttrTO loginDate = userTO.getPlainAttr("loginDate");
+ AttrTO loginDate = userTO.getPlainAttr("loginDate").get();
assertNotNull(loginDate);
assertEquals(1, loginDate.getValues().size());
@@ -839,7 +837,7 @@ public class UserITCase extends AbstractITCase {
userTO = updateUser(userPatch).getEntity();
assertNotNull(userTO);
- loginDate = userTO.getPlainAttr("loginDate");
+ loginDate = userTO.getPlainAttr("loginDate").get();
assertNotNull(loginDate);
assertEquals(2, loginDate.getValues().size());
}
@@ -848,12 +846,8 @@ public class UserITCase extends AbstractITCase {
assertEquals(3, statuses.size());
Map<String, PropagationStatus> byResource = new HashMap<>(3);
- MapUtils.populateMap(byResource, statuses, new Transformer<PropagationStatus, String>() {
-
- @Override
- public String transform(final PropagationStatus status) {
- return status.getResource();
- }
+ statuses.forEach(status -> {
+ byResource.put(status.getResource(), status);
});
assertEquals(PropagationTaskExecStatus.SUCCESS, byResource.get(RESOURCE_NAME_LDAP).getStatus());
assertTrue(byResource.get(RESOURCE_NAME_TESTDB).getStatus() == PropagationTaskExecStatus.CREATED
@@ -918,7 +912,7 @@ public class UserITCase extends AbstractITCase {
ConnObjectTO connObjectTO =
resourceService.readConnObject(RESOURCE_NAME_CSV, AnyTypeKind.USER.name(), actual.getKey());
assertNotNull(connObjectTO);
- assertEquals("sx-dx", connObjectTO.getAttr("THEIRGROUP").getValues().get(0));
+ assertEquals("sx-dx", connObjectTO.getAttr("THEIRGROUP").get().getValues().get(0));
}
@Test
@@ -994,7 +988,7 @@ public class UserITCase extends AbstractITCase {
ConnObjectTO connObjectTO =
resourceService.readConnObject(RESOURCE_NAME_CSV, AnyTypeKind.USER.name(), userTO.getKey());
- assertNull(connObjectTO.getAttr("email"));
+ assertFalse(connObjectTO.getAttr("email").isPresent());
}
@Test
@@ -1288,7 +1282,7 @@ public class UserITCase extends AbstractITCase {
assertEquals(1, result.getPropagationStatuses().size());
assertEquals(PropagationTaskExecStatus.SUCCESS, result.getPropagationStatuses().get(0).getStatus());
assertEquals("rest-target-resource", result.getPropagationStatuses().get(0).getResource());
- assertEquals("surname", userTO.getPlainAttr("surname").getValues().get(0));
+ assertEquals("surname", userTO.getPlainAttr("surname").get().getValues().get(0));
// verify user exists on the backend REST service
WebClient webClient = WebClient.create(
@@ -1308,7 +1302,7 @@ public class UserITCase extends AbstractITCase {
assertEquals(1, result.getPropagationStatuses().size());
assertEquals(PropagationTaskExecStatus.SUCCESS, result.getPropagationStatuses().get(0).getStatus());
assertEquals("rest-target-resource", result.getPropagationStatuses().get(0).getResource());
- assertEquals("surname2", result.getEntity().getPlainAttr("surname").getValues().get(0));
+ assertEquals("surname2", result.getEntity().getPlainAttr("surname").get().getValues().get(0));
// verify user still exists on the backend REST service
response = webClient.get();
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java
index f60c4a6..4a1c445 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java
@@ -405,7 +405,7 @@ public class UserIssuesITCase extends AbstractITCase {
ConnObjectTO connObjectTO =
resourceService.readConnObject(RESOURCE_NAME_DBVIRATTR, AnyTypeKind.USER.name(), userTO.getKey());
assertNotNull(connObjectTO);
- assertEquals("virtualvalue", connObjectTO.getAttr("USERNAME").getValues().get(0));
+ assertEquals("virtualvalue", connObjectTO.getAttr("USERNAME").get().getValues().get(0));
// ----------------------------------
userTO = userService.read(userTO.getKey());
@@ -463,7 +463,7 @@ public class UserIssuesITCase extends AbstractITCase {
ConnObjectTO userOnDb = resourceService.readConnObject(
RESOURCE_NAME_TESTDB, AnyTypeKind.USER.name(), userTO.getKey());
- final AttrTO pwdOnTestDbAttr = userOnDb.getAttr(OperationalAttributes.PASSWORD_NAME);
+ final AttrTO pwdOnTestDbAttr = userOnDb.getAttr(OperationalAttributes.PASSWORD_NAME).get();
assertNotNull(pwdOnTestDbAttr);
assertNotNull(pwdOnTestDbAttr.getValues());
assertFalse(pwdOnTestDbAttr.getValues().isEmpty());
@@ -471,7 +471,7 @@ public class UserIssuesITCase extends AbstractITCase {
ConnObjectTO userOnDb2 = resourceService.readConnObject(
RESOURCE_NAME_TESTDB2, AnyTypeKind.USER.name(), userTO.getKey());
- final AttrTO pwdOnTestDb2Attr = userOnDb2.getAttr(OperationalAttributes.PASSWORD_NAME);
+ final AttrTO pwdOnTestDb2Attr = userOnDb2.getAttr(OperationalAttributes.PASSWORD_NAME).get();
assertNotNull(pwdOnTestDb2Attr);
assertNotNull(pwdOnTestDb2Attr.getValues());
assertFalse(pwdOnTestDb2Attr.getValues().isEmpty());
@@ -496,7 +496,7 @@ public class UserIssuesITCase extends AbstractITCase {
// 3c. verify that password *has* changed on testdb
userOnDb = resourceService.readConnObject(RESOURCE_NAME_TESTDB, AnyTypeKind.USER.name(), userTO.getKey());
- final AttrTO pwdOnTestDbAttrAfter = userOnDb.getAttr(OperationalAttributes.PASSWORD_NAME);
+ final AttrTO pwdOnTestDbAttrAfter = userOnDb.getAttr(OperationalAttributes.PASSWORD_NAME).get();
assertNotNull(pwdOnTestDbAttrAfter);
assertNotNull(pwdOnTestDbAttrAfter.getValues());
assertFalse(pwdOnTestDbAttrAfter.getValues().isEmpty());
@@ -504,7 +504,7 @@ public class UserIssuesITCase extends AbstractITCase {
// 3d. verify that password hasn't changed on testdb2
userOnDb2 = resourceService.readConnObject(RESOURCE_NAME_TESTDB2, AnyTypeKind.USER.name(), userTO.getKey());
- final AttrTO pwdOnTestDb2AttrAfter = userOnDb2.getAttr(OperationalAttributes.PASSWORD_NAME);
+ final AttrTO pwdOnTestDb2AttrAfter = userOnDb2.getAttr(OperationalAttributes.PASSWORD_NAME).get();
assertNotNull(pwdOnTestDb2AttrAfter);
assertNotNull(pwdOnTestDb2AttrAfter.getValues());
assertFalse(pwdOnTestDb2AttrAfter.getValues().isEmpty());
@@ -603,7 +603,7 @@ public class UserIssuesITCase extends AbstractITCase {
userPatch.setKey(userKey);
userPatch.getPlainAttrs().add(attrAddReplacePatch("ctype", "a type"));
UserTO userTO = updateUser(userPatch).getEntity();
- assertEquals("a type", userTO.getPlainAttr("ctype").getValues().get(0));
+ assertEquals("a type", userTO.getPlainAttr("ctype").get().getValues().get(0));
}
}
@@ -611,7 +611,7 @@ public class UserIssuesITCase extends AbstractITCase {
public void issueSYNCOPE354() {
// change resource-ldap group mapping for including uniqueMember (need for assertions below)
ResourceTO ldap = resourceService.read(RESOURCE_NAME_LDAP);
- for (ItemTO item : ldap.getProvision(AnyTypeKind.GROUP.name()).getMapping().getItems()) {
+ for (ItemTO item : ldap.getProvision(AnyTypeKind.GROUP.name()).get().getMapping().getItems()) {
if ("description".equals(item.getExtAttrName())) {
item.setExtAttrName("uniqueMember");
}
@@ -639,7 +639,7 @@ public class UserIssuesITCase extends AbstractITCase {
ConnObjectTO connObj = resourceService.readConnObject(
RESOURCE_NAME_LDAP, AnyTypeKind.GROUP.name(), groupTO.getKey());
assertNotNull(connObj);
- assertTrue(connObj.getAttr("uniqueMember").getValues().
+ assertTrue(connObj.getAttr("uniqueMember").get().getValues().
contains("uid=" + userTO.getUsername() + ",ou=people,o=isp"));
// 4. remove membership
@@ -654,11 +654,11 @@ public class UserIssuesITCase extends AbstractITCase {
// 5. read group on resource, check that user DN was removed from uniqueMember
connObj = resourceService.readConnObject(RESOURCE_NAME_LDAP, AnyTypeKind.GROUP.name(), groupTO.getKey());
assertNotNull(connObj);
- assertFalse(connObj.getAttr("uniqueMember").getValues().
+ assertFalse(connObj.getAttr("uniqueMember").get().getValues().
contains("uid=" + userTO.getUsername() + ",ou=people,o=isp"));
// 6. restore original resource-ldap group mapping
- for (ItemTO item : ldap.getProvision(AnyTypeKind.GROUP.name()).getMapping().getItems()) {
+ for (ItemTO item : ldap.getProvision(AnyTypeKind.GROUP.name()).get().getMapping().getItems()) {
if ("uniqueMember".equals(item.getExtAttrName())) {
item.setExtAttrName("description");
}
@@ -693,12 +693,12 @@ public class UserIssuesITCase extends AbstractITCase {
ConnObjectTO connObj = resourceService.readConnObject(
RESOURCE_NAME_LDAP, AnyTypeKind.USER.name(), userTO.getKey());
assertNotNull(connObj);
- AttrTO registeredAddress = connObj.getAttr("registeredAddress");
+ AttrTO registeredAddress = connObj.getAttr("registeredAddress").get();
assertNotNull(registeredAddress);
- assertEquals(userTO.getPlainAttr("obscure").getValues(), registeredAddress.getValues());
- AttrTO jpegPhoto = connObj.getAttr("jpegPhoto");
+ assertEquals(userTO.getPlainAttr("obscure").get().getValues(), registeredAddress.getValues());
+ AttrTO jpegPhoto = connObj.getAttr("jpegPhoto").get();
assertNotNull(jpegPhoto);
- assertEquals(userTO.getPlainAttr("photo").getValues(), jpegPhoto.getValues());
+ assertEquals(userTO.getPlainAttr("photo").get().getValues(), jpegPhoto.getValues());
// 4. remove group
groupService.delete(groupTO.getKey());
@@ -802,14 +802,14 @@ public class UserIssuesITCase extends AbstractITCase {
userTO.getPlainAttrs().add(attrTO("makeItDouble", "3"));
userTO = createUser(userTO).getEntity();
- assertEquals("6", userTO.getPlainAttr("makeItDouble").getValues().get(0));
+ assertEquals("6", userTO.getPlainAttr("makeItDouble").get().getValues().get(0));
UserPatch userPatch = new UserPatch();
userPatch.setKey(userTO.getKey());
userPatch.getPlainAttrs().add(attrAddReplacePatch("makeItDouble", "7"));
userTO = updateUser(userPatch).getEntity();
- assertEquals("14", userTO.getPlainAttr("makeItDouble").getValues().get(0));
+ assertEquals("14", userTO.getPlainAttr("makeItDouble").get().getValues().get(0));
}
@Test
@@ -863,9 +863,9 @@ public class UserIssuesITCase extends AbstractITCase {
// 3. try (and succeed) to perform simple LDAP binding with provided password ('password123')
assertNotNull(getLdapRemoteObject(
- connObject.getAttr(Name.NAME).getValues().get(0),
+ connObject.getAttr(Name.NAME).get().getValues().get(0),
"password123",
- connObject.getAttr(Name.NAME).getValues().get(0)));
+ connObject.getAttr(Name.NAME).get().getValues().get(0)));
// 4. update user without any password change request
UserPatch userPatch = new UserPatch();
@@ -877,9 +877,9 @@ public class UserIssuesITCase extends AbstractITCase {
// 5. try (and succeed again) to perform simple LDAP binding: password has not changed
assertNotNull(getLdapRemoteObject(
- connObject.getAttr(Name.NAME).getValues().get(0),
+ connObject.getAttr(Name.NAME).get().getValues().get(0),
"password123",
- connObject.getAttr(Name.NAME).getValues().get(0)));
+ connObject.getAttr(Name.NAME).get().getValues().get(0)));
}
@Test
@@ -897,13 +897,13 @@ public class UserIssuesITCase extends AbstractITCase {
resourceService.readConnObject(RESOURCE_NAME_WS1, AnyTypeKind.USER.name(), userTO.getKey());
assertNotNull(actual);
// check if mapping attribute with purpose NONE really hasn't been propagated
- assertNull(actual.getAttr("NAME"));
+ assertFalse(actual.getAttr("NAME").isPresent());
// 2. update resource ws-target-resource-1
ResourceTO ws1 = resourceService.read(RESOURCE_NAME_WS1);
assertNotNull(ws1);
- MappingTO ws1NewUMapping = ws1.getProvision(AnyTypeKind.USER.name()).getMapping();
+ MappingTO ws1NewUMapping = ws1.getProvision(AnyTypeKind.USER.name()).get().getMapping();
// change purpose from NONE to BOTH
for (ItemTO itemTO : ws1NewUMapping.getItems()) {
if ("firstname".equals(itemTO.getIntAttrName())) {
@@ -911,14 +911,14 @@ public class UserIssuesITCase extends AbstractITCase {
}
}
- ws1.getProvision(AnyTypeKind.USER.name()).setMapping(ws1NewUMapping);
+ ws1.getProvision(AnyTypeKind.USER.name()).get().setMapping(ws1NewUMapping);
resourceService.update(ws1);
ResourceTO newWs1 = resourceService.read(ws1.getKey());
assertNotNull(newWs1);
// check for existence
- Collection<ItemTO> mapItems = newWs1.getProvision(AnyTypeKind.USER.name()).getMapping().getItems();
+ Collection<ItemTO> mapItems = newWs1.getProvision(AnyTypeKind.USER.name()).get().getMapping().getItems();
assertNotNull(mapItems);
assertEquals(7, mapItems.size());
@@ -938,10 +938,10 @@ public class UserIssuesITCase extends AbstractITCase {
resourceService.readConnObject(RESOURCE_NAME_WS1, AnyTypeKind.USER.name(), userTO.getKey());
assertNotNull(newUser.getAttr("NAME"));
- assertEquals("firstnameNew", newUser.getAttr("NAME").getValues().get(0));
+ assertEquals("firstnameNew", newUser.getAttr("NAME").get().getValues().get(0));
// 4. restore resource ws-target-resource-1 mapping
- ws1NewUMapping = newWs1.getProvision(AnyTypeKind.USER.name()).getMapping();
+ ws1NewUMapping = newWs1.getProvision(AnyTypeKind.USER.name()).get().getMapping();
// restore purpose from BOTH to NONE
for (ItemTO itemTO : ws1NewUMapping.getItems()) {
if ("firstname".equals(itemTO.getIntAttrName())) {
@@ -949,7 +949,7 @@ public class UserIssuesITCase extends AbstractITCase {
}
}
- newWs1.getProvision(AnyTypeKind.USER.name()).setMapping(ws1NewUMapping);
+ newWs1.getProvision(AnyTypeKind.USER.name()).get().setMapping(ws1NewUMapping);
resourceService.update(newWs1);
}
@@ -1027,9 +1027,9 @@ public class UserIssuesITCase extends AbstractITCase {
resourceService.readConnObject(RESOURCE_NAME_LDAP, AnyTypeKind.USER.name(), user.getKey());
assertNotNull(getLdapRemoteObject(
- connObject.getAttr(Name.NAME).getValues().get(0),
+ connObject.getAttr(Name.NAME).get().getValues().get(0),
"security123",
- connObject.getAttr(Name.NAME).getValues().get(0)));
+ connObject.getAttr(Name.NAME).get().getValues().get(0)));
// 5. Remove LDAPPasswordPropagationActions
resourceTO = resourceService.read(RESOURCE_NAME_LDAP);
@@ -1071,7 +1071,7 @@ public class UserIssuesITCase extends AbstractITCase {
assertNotNull(connObjectTO);
// check if password has not changed
- assertEquals("password0", connObjectTO.getAttr(OperationalAttributes.PASSWORD_NAME).getValues().get(0));
+ assertEquals("password0", connObjectTO.getAttr(OperationalAttributes.PASSWORD_NAME).get().getValues().get(0));
assertNull(userTO.getPassword());
// 3. create user with not null password and propagate onto resource-csv, specify not to save password on
@@ -1090,7 +1090,9 @@ public class UserIssuesITCase extends AbstractITCase {
assertNotNull(connObjectTO);
// check if password has been propagated and that saved userTO's password is null
- assertEquals("passwordTESTNULL1", connObjectTO.getAttr(OperationalAttributes.PASSWORD_NAME).getValues().get(0));
+ assertEquals(
+ "passwordTESTNULL1",
+ connObjectTO.getAttr(OperationalAttributes.PASSWORD_NAME).get().getValues().get(0));
assertNull(userTO.getPassword());
// 4. create user and propagate password on resource-csv and on Syncope local storage
@@ -1108,7 +1110,9 @@ public class UserIssuesITCase extends AbstractITCase {
assertNotNull(connObjectTO);
// check if password has been correctly propagated on Syncope and resource-csv as usual
- assertEquals("passwordTESTNULL1", connObjectTO.getAttr(OperationalAttributes.PASSWORD_NAME).getValues().get(0));
+ assertEquals(
+ "passwordTESTNULL1",
+ connObjectTO.getAttr(OperationalAttributes.PASSWORD_NAME).get().getValues().get(0));
Pair<Map<String, Set<String>>, UserTO> self =
clientFactory.create(userTO.getUsername(), "passwordTESTNULL1").self();
assertNotNull(self);
@@ -1160,7 +1164,7 @@ public class UserIssuesITCase extends AbstractITCase {
ConnObjectTO connObjectTO =
resourceService.readConnObject(RESOURCE_NAME_LDAP, AnyTypeKind.USER.name(), actual.getKey());
assertNotNull(connObjectTO);
- assertEquals("postalAddress", connObjectTO.getAttr("postalAddress").getValues().get(0));
+ assertEquals("postalAddress", connObjectTO.getAttr("postalAddress").get().getValues().get(0));
UserPatch userPatch = new UserPatch();
userPatch.setKey(actual.getKey());
@@ -1170,7 +1174,7 @@ public class UserIssuesITCase extends AbstractITCase {
connObjectTO = resourceService.readConnObject(RESOURCE_NAME_LDAP, AnyTypeKind.USER.name(), actual.getKey());
assertNotNull(connObjectTO);
- assertEquals("newPostalAddress", connObjectTO.getAttr("postalAddress").getValues().get(0));
+ assertEquals("newPostalAddress", connObjectTO.getAttr("postalAddress").get().getValues().get(0));
}
@Test
@@ -1317,7 +1321,7 @@ public class UserIssuesITCase extends AbstractITCase {
ConnObjectTO connObject =
resourceService.readConnObject(RESOURCE_NAME_LDAP, AnyTypeKind.USER.name(), user.getKey());
assertNotNull(connObject);
- AttrTO userDn = connObject.getAttr(Name.NAME);
+ AttrTO userDn = connObject.getAttr(Name.NAME).get();
assertNotNull(userDn);
assertEquals(1, userDn.getValues().size());
assertNotNull(getLdapRemoteObject(RESOURCE_LDAP_ADMIN_DN, RESOURCE_LDAP_ADMIN_PWD, userDn.getValues().get(0)));
@@ -1342,7 +1346,7 @@ public class UserIssuesITCase extends AbstractITCase {
// 2. create user matching the condition above
UserTO user = UserITCase.getUniqueSampleTO("syncope1099U@apache.org");
- user.getPlainAttr("firstname").getValues().set(0, "issueSYNCOPE1099");
+ user.getPlainAttr("firstname").get().getValues().set(0, "issueSYNCOPE1099");
ProvisioningResult<UserTO> created = createUser(user);
assertNotNull(created);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserSelfITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserSelfITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserSelfITCase.java
index aba92ef..425ec7a 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserSelfITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserSelfITCase.java
@@ -126,7 +126,7 @@ public class UserSelfITCase extends AbstractITCase {
// now approve and verify that propagation has happened
WorkflowFormTO form = userWorkflowService.getFormForUser(userTO.getKey());
form = userWorkflowService.claimForm(form.getTaskId());
- form.getProperty("approve").setValue(Boolean.TRUE.toString());
+ form.getProperty("approve").get().setValue(Boolean.TRUE.toString());
userTO = userWorkflowService.submitForm(form);
assertNotNull(userTO);
assertEquals("active", userTO.getStatus());
@@ -152,7 +152,7 @@ public class UserSelfITCase extends AbstractITCase {
public void authenticateByPlainAttribute() {
UserTO rossini = userService.read("rossini");
assertNotNull(rossini);
- String userId = rossini.getPlainAttr("userId").getValues().get(0);
+ String userId = rossini.getPlainAttr("userId").get().getValues().get(0);
assertNotNull(userId);
Pair<Map<String, Set<String>>, UserTO> self = clientFactory.create(userId, ADMIN_PWD).self();
@@ -224,7 +224,7 @@ public class UserSelfITCase extends AbstractITCase {
// 3. approve self-update as admin
WorkflowFormTO form = userWorkflowService.getFormForUser(updated.getKey());
form = userWorkflowService.claimForm(form.getTaskId());
- form.getProperty("approve").setValue(Boolean.TRUE.toString());
+ form.getProperty("approve").get().setValue(Boolean.TRUE.toString());
updated = userWorkflowService.submitForm(form);
assertNotNull(updated);
assertEquals("active", updated.getStatus());
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserWorkflowITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserWorkflowITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserWorkflowITCase.java
index e21929e..4d20d2a 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserWorkflowITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserWorkflowITCase.java
@@ -118,8 +118,8 @@ public class UserWorkflowITCase extends AbstractITCase {
assertNotNull(form.getOwner());
// 5. reject user
- form.getProperty("approve").setValue(Boolean.FALSE.toString());
- form.getProperty("rejectReason").setValue("I don't like him.");
+ form.getProperty("approve").get().setValue(Boolean.FALSE.toString());
+ form.getProperty("rejectReason").get().setValue("I don't like him.");
userTO = userService3.submitForm(form);
assertNotNull(userTO);
assertEquals("rejected", userTO.getStatus());
@@ -191,7 +191,7 @@ public class UserWorkflowITCase extends AbstractITCase {
assertNotNull(form.getOwner());
// 5. approve user (and verify that propagation occurred)
- form.getProperty("approve").setValue(Boolean.TRUE.toString());
+ form.getProperty("approve").get().setValue(Boolean.TRUE.toString());
userTO = userWorkflowService.submitForm(form);
assertNotNull(userTO);
assertEquals("active", userTO.getStatus());
@@ -292,7 +292,7 @@ public class UserWorkflowITCase extends AbstractITCase {
assertNotNull(form);
// 5. approve user
- form.getProperty("approve").setValue(Boolean.TRUE.toString());
+ form.getProperty("approve").get().setValue(Boolean.TRUE.toString());
// 6. submit approve
userTO = userWorkflowService.submitForm(form);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/VirAttrITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/VirAttrITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/VirAttrITCase.java
index 5297257..452fc11 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/VirAttrITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/VirAttrITCase.java
@@ -23,13 +23,14 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
+import java.util.List;
import java.util.Locale;
import java.util.Map;
+import java.util.Optional;
+import java.util.stream.Collectors;
import javax.sql.DataSource;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.Response;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.commons.lang3.SerializationUtils;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.patch.PasswordPatch;
@@ -89,7 +90,7 @@ public class VirAttrITCase extends AbstractITCase {
// 2. check for virtual attribute value
userTO = userService.read(userTO.getKey());
assertNotNull(userTO);
- assertEquals("virtualvalue", userTO.getVirAttr("virtualdata").getValues().get(0));
+ assertEquals("virtualvalue", userTO.getVirAttr("virtualdata").get().getValues().get(0));
UserPatch userPatch = new UserPatch();
userPatch.setKey(userTO.getKey());
@@ -102,14 +103,14 @@ public class VirAttrITCase extends AbstractITCase {
// 4. check for virtual attribute value
userTO = userService.read(userTO.getKey());
assertNotNull(userTO);
- assertEquals("virtualupdated", userTO.getVirAttr("virtualdata").getValues().get(0));
+ assertEquals("virtualupdated", userTO.getVirAttr("virtualdata").get().getValues().get(0));
}
@Test
public void issueSYNCOPE260() {
// create new virtual schema for the resource below
ResourceTO ws2 = resourceService.read(RESOURCE_NAME_WS2);
- ProvisionTO provision = ws2.getProvision(AnyTypeKind.USER.name());
+ ProvisionTO provision = ws2.getProvision(AnyTypeKind.USER.name()).get();
assertNotNull(provision);
VirSchemaTO virSchema = new VirSchemaTO();
@@ -144,7 +145,7 @@ public class VirAttrITCase extends AbstractITCase {
ConnObjectTO connObjectTO =
resourceService.readConnObject(RESOURCE_NAME_WS2, AnyTypeKind.USER.name(), userTO.getKey());
- assertEquals("virtualvalue", connObjectTO.getAttr("COMPANYNAME").getValues().get(0));
+ assertEquals("virtualvalue", connObjectTO.getAttr("COMPANYNAME").get().getValues().get(0));
// ----------------------------------
// ----------------------------------
@@ -162,7 +163,7 @@ public class VirAttrITCase extends AbstractITCase {
userTO = result.getEntity();
connObjectTO = resourceService.readConnObject(RESOURCE_NAME_WS2, AnyTypeKind.USER.name(), userTO.getKey());
- assertEquals("virtualvalue2", connObjectTO.getAttr("COMPANYNAME").getValues().get(0));
+ assertEquals("virtualvalue2", connObjectTO.getAttr("COMPANYNAME").get().getValues().get(0));
// ----------------------------------
// ----------------------------------
@@ -176,7 +177,7 @@ public class VirAttrITCase extends AbstractITCase {
assertEquals("suspended", userTO.getStatus());
connObjectTO = resourceService.readConnObject(RESOURCE_NAME_WS2, AnyTypeKind.USER.name(), userTO.getKey());
- assertEquals("virtualvalue2", connObjectTO.getAttr("COMPANYNAME").getValues().get(0));
+ assertEquals("virtualvalue2", connObjectTO.getAttr("COMPANYNAME").get().getValues().get(0));
statusPatch = new StatusPatch();
statusPatch.setKey(userTO.getKey());
@@ -186,7 +187,7 @@ public class VirAttrITCase extends AbstractITCase {
assertEquals("active", userTO.getStatus());
connObjectTO = resourceService.readConnObject(RESOURCE_NAME_WS2, AnyTypeKind.USER.name(), userTO.getKey());
- assertEquals("virtualvalue2", connObjectTO.getAttr("COMPANYNAME").getValues().get(0));
+ assertEquals("virtualvalue2", connObjectTO.getAttr("COMPANYNAME").get().getValues().get(0));
// ----------------------------------
// ----------------------------------
@@ -204,11 +205,11 @@ public class VirAttrITCase extends AbstractITCase {
userTO = result.getEntity();
connObjectTO = resourceService.readConnObject(RESOURCE_NAME_WS2, AnyTypeKind.USER.name(), userTO.getKey());
- assertEquals("Surname2", connObjectTO.getAttr("SURNAME").getValues().get(0));
+ assertEquals("Surname2", connObjectTO.getAttr("SURNAME").get().getValues().get(0));
// virtual attribute value did not change
- assertFalse(connObjectTO.getAttr("COMPANYNAME").getValues().isEmpty());
- assertEquals("virtualvalue2", connObjectTO.getAttr("COMPANYNAME").getValues().get(0));
+ assertFalse(connObjectTO.getAttr("COMPANYNAME").get().getValues().isEmpty());
+ assertEquals("virtualvalue2", connObjectTO.getAttr("COMPANYNAME").get().getValues().get(0));
// ----------------------------------
}
@@ -232,7 +233,7 @@ public class VirAttrITCase extends AbstractITCase {
// 2. check for virtual attribute value
actual = userService.read(actual.getKey());
- assertEquals("virattrcache", actual.getVirAttr("virtualdata").getValues().get(0));
+ assertEquals("virattrcache", actual.getVirAttr("virtualdata").get().getValues().get(0));
// 3. update virtual attribute directly
JdbcTemplate jdbcTemplate = new JdbcTemplate(testDataSource);
@@ -248,7 +249,7 @@ public class VirAttrITCase extends AbstractITCase {
// 4. check for cached attribute value
actual = userService.read(actual.getKey());
- assertEquals("virattrcache", actual.getVirAttr("virtualdata").getValues().get(0));
+ assertEquals("virattrcache", actual.getVirAttr("virtualdata").get().getValues().get(0));
UserPatch userPatch = new UserPatch();
userPatch.setKey(actual.getKey());
@@ -261,7 +262,7 @@ public class VirAttrITCase extends AbstractITCase {
// 6. check for virtual attribute value
actual = userService.read(actual.getKey());
assertNotNull(actual);
- assertEquals("virtualupdated", actual.getVirAttr("virtualdata").getValues().get(0));
+ assertEquals("virtualupdated", actual.getVirAttr("virtualdata").get().getValues().get(0));
}
@Test
@@ -272,21 +273,18 @@ public class VirAttrITCase extends AbstractITCase {
MappingTO origMapping = SerializationUtils.clone(csv.getProvisions().get(0).getMapping());
try {
// remove this mapping
- CollectionUtils.filterInverse(csv.getProvisions().get(0).getMapping().getItems(),
- new Predicate<ItemTO>() {
-
- @Override
- public boolean evaluate(final ItemTO item) {
- return "email".equals(item.getIntAttrName());
- }
- });
+ Optional<ItemTO> email = csv.getProvisions().get(0).getMapping().getItems().stream().
+ filter(item -> "email".equals(item.getIntAttrName())).findFirst();
+ if (email.isPresent()) {
+ csv.getProvisions().get(0).getMapping().getItems().remove(email.get());
+ }
resourceService.update(csv);
csv = resourceService.read(RESOURCE_NAME_CSV);
assertNotNull(csv.getProvisions().get(0).getMapping());
// create new virtual schema for the resource below
- ProvisionTO provision = csv.getProvision(AnyTypeKind.USER.name());
+ ProvisionTO provision = csv.getProvision(AnyTypeKind.USER.name()).get();
assertNotNull(provision);
VirSchemaTO virSchema = new VirSchemaTO();
@@ -373,7 +371,7 @@ public class VirAttrITCase extends AbstractITCase {
// 2. check for virtual attribute value
userTO = userService.read(userTO.getKey());
- assertEquals("virattrcache", userTO.getVirAttr("virtualdata").getValues().get(0));
+ 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
@@ -408,7 +406,7 @@ public class VirAttrITCase extends AbstractITCase {
// ----------------------------------------
userTO = userService.read(userTO.getKey());
- assertEquals("virattrcache", userTO.getVirAttr("virtualdata").getValues().get(0));
+ assertEquals("virattrcache", userTO.getVirAttr("virtualdata").get().getValues().get(0));
// ----------------------------------------
// 5. restore connector URL, values can be read again from external resource
@@ -425,7 +423,7 @@ public class VirAttrITCase extends AbstractITCase {
// cached value still in place...
userTO = userService.read(userTO.getKey());
- assertEquals("virattrcache", userTO.getVirAttr("virtualdata").getValues().get(0));
+ 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();
@@ -436,7 +434,7 @@ public class VirAttrITCase extends AbstractITCase {
assertNotNull(userTO);
userTO = userService.read(userTO.getKey());
- assertEquals("virattrcache2", userTO.getVirAttr("virtualdata").getValues().get(0));
+ assertEquals("virattrcache2", userTO.getVirAttr("virtualdata").get().getValues().get(0));
}
@Test
@@ -448,7 +446,7 @@ public class VirAttrITCase extends AbstractITCase {
userTO.getVirAttrs().add(attrTO("virtualReadOnly", "readOnly"));
userTO = createUser(userTO).getEntity();
// finding no values because the virtual attribute is readonly
- assertTrue(userTO.getVirAttr("virtualReadOnly").getValues().isEmpty());
+ assertTrue(userTO.getVirAttr("virtualReadOnly").get().getValues().isEmpty());
}
@Test
@@ -560,9 +558,9 @@ public class VirAttrITCase extends AbstractITCase {
Map<String, Object> actuals = jdbcTemplate.queryForMap(
"SELECT id, surname, email FROM testpull WHERE id=?",
- new Object[] { userTO.getPlainAttr("fullname").getValues().get(0) });
+ new Object[] { userTO.getPlainAttr("fullname").get().getValues().get(0) });
- assertEquals(userTO.getPlainAttr("fullname").getValues().get(0), actuals.get("id").toString());
+ assertEquals(userTO.getPlainAttr("fullname").get().getValues().get(0), actuals.get("id").toString());
assertEquals("ml@group.it", actuals.get("email"));
// -------------------------------------------
} catch (Exception e) {
@@ -608,7 +606,7 @@ public class VirAttrITCase extends AbstractITCase {
userTO = createUser(userTO).getEntity();
assertNotNull(userTO.getVirAttr("virtualdata"));
- assertEquals("syncope501@apache.org", userTO.getVirAttr("virtualdata").getValues().get(0));
+ assertEquals("syncope501@apache.org", userTO.getVirAttr("virtualdata").get().getValues().get(0));
// 2. update virtual attribute
UserPatch userPatch = new UserPatch();
@@ -620,23 +618,19 @@ public class VirAttrITCase extends AbstractITCase {
assertNotNull(userTO);
// 3. check that user virtual attribute has really been updated
- assertFalse(userTO.getVirAttr("virtualdata").getValues().isEmpty());
- assertEquals("syncope501_updated@apache.org", userTO.getVirAttr("virtualdata").getValues().get(0));
+ assertFalse(userTO.getVirAttr("virtualdata").get().getValues().isEmpty());
+ assertEquals("syncope501_updated@apache.org", userTO.getVirAttr("virtualdata").get().getValues().get(0));
}
@Test
public void issueSYNCOPE691() {
ResourceTO ldap = resourceService.read(RESOURCE_NAME_LDAP);
try {
- ProvisionTO provision = ldap.getProvision(AnyTypeKind.USER.name());
+ ProvisionTO provision = ldap.getProvision(AnyTypeKind.USER.name()).orElse(null);
assertNotNull(provision);
- CollectionUtils.filterInverse(provision.getMapping().getItems(), new Predicate<ItemTO>() {
-
- @Override
- public boolean evaluate(final ItemTO item) {
- return "mail".equals(item.getExtAttrName());
- }
- });
+ List<ItemTO> mail = provision.getMapping().getItems().stream().
+ filter(item -> "mail".equals(item.getExtAttrName())).collect(Collectors.toList());
+ provision.getMapping().getItems().removeAll(mail);
provision.getVirSchemas().clear();
ldap.getProvisions().clear();
@@ -645,7 +639,7 @@ public class VirAttrITCase extends AbstractITCase {
resourceService.create(ldap);
ldap = resourceService.read(ldap.getKey());
- provision = ldap.getProvision(AnyTypeKind.USER.name());
+ provision = ldap.getProvision(AnyTypeKind.USER.name()).get();
assertNotNull(provision);
// create new virtual schema for the resource below
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/WorkflowITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/WorkflowITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/WorkflowITCase.java
index a600b06..1817c24 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/WorkflowITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/WorkflowITCase.java
@@ -25,9 +25,8 @@ import static org.junit.Assert.assertFalse;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
+import java.util.Optional;
import javax.ws.rs.core.Response;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.commons.io.IOUtils;
import org.apache.syncope.common.lib.to.WorkflowDefinitionTO;
import org.apache.syncope.common.lib.types.AnyTypeKind;
@@ -44,16 +43,10 @@ public class WorkflowITCase extends AbstractITCase {
@BeforeClass
public static void findDefault() {
Assume.assumeTrue(ActivitiDetector.isActivitiEnabledForUsers(syncopeService));
- WorkflowDefinitionTO found = IterableUtils.find(
- workflowService.list(AnyTypeKind.USER.name()), new Predicate<WorkflowDefinitionTO>() {
-
- @Override
- public boolean evaluate(final WorkflowDefinitionTO object) {
- return object.isMain();
- }
- });
- if (found != null) {
- defaultUserKey = found.getKey();
+ Optional<WorkflowDefinitionTO> found = workflowService.list(AnyTypeKind.USER.name()).stream().
+ filter(object -> object.isMain()).findAny();
+ if (found.isPresent()) {
+ defaultUserKey = found.get().getKey();
}
assertNotNull(defaultUserKey);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/ide/pom.xml
----------------------------------------------------------------------
diff --git a/ide/pom.xml b/ide/pom.xml
index 37eb9b7..d301f0d 100644
--- a/ide/pom.xml
+++ b/ide/pom.xml
@@ -36,7 +36,7 @@ under the License.
</properties>
<modules>
- <module>eclipse</module>
+ <!--<module>eclipse</module>-->
<module>netbeans</module>
</modules>
@@ -104,4 +104,4 @@ under the License.
</build>
</profile>
</profiles>
-</project>
\ No newline at end of file
+</project>
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 0474eed..df9e4f5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -401,7 +401,6 @@ under the License.
<commons-jexl.version>3.1</commons-jexl.version>
<commons-lang.version>3.6</commons-lang.version>
<commons-text.version>1.1</commons-text.version>
- <commons-collection.version>4.1</commons-collection.version>
<commons-logging.version>1.1.3</commons-logging.version>
<joda.version>2.9.9</joda.version>
@@ -970,11 +969,6 @@ under the License.
<artifactId>commons-text</artifactId>
<version>${commons-text.version}</version>
</dependency>
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-collections4</artifactId>
- <version>${commons-collection.version}</version>
- </dependency>
<dependency>
<groupId>net.tirasa.connid</groupId>
@@ -2182,7 +2176,6 @@ under the License.
<link>https://commons.apache.org/proper/commons-lang/javadocs/api-release/</link>
<link>https://commons.apache.org/proper/commons-io/javadocs/api-2.5/</link>
<link>https://commons.apache.org/proper/commons-jexl/apidocs/</link>
- <link>https://commons.apache.org/proper/commons-collections/javadocs/api-release/</link>
<link>http://docs.spring.io/spring/docs/4.3.x/javadoc-api/</link>
<link>http://docs.spring.io/spring-security/site/docs/4.2.x/apidocs/</link>
<link>http://activiti.org/javadocs/</link>
[13/16] syncope git commit: [SYNCOPE-938] Switching from
commons-collections to Java 8 features
Posted by il...@apache.org.
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/PlainAttrs.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/PlainAttrs.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/PlainAttrs.java
index 9348589..d776b65 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/PlainAttrs.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/PlainAttrs.java
@@ -20,11 +20,9 @@ package org.apache.syncope.client.console.wizards.any;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.Date;
import java.util.List;
import java.util.Map;
import org.apache.commons.collections4.ListUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.client.console.commons.SchemaUtils;
import org.apache.syncope.client.console.wicket.ajax.markup.html.LabelInfo;
@@ -170,10 +168,9 @@ public class PlainAttrs extends AbstractAttrs<PlainSchemaTO> {
Map<String, AttrTO> attrMap = EntityTOUtils.buildAttrMap(anyTO.getPlainAttrs());
- for (PlainSchemaTO schema : schemas.values()) {
+ schemas.values().stream().map(schema -> {
AttrTO attrTO = new AttrTO();
attrTO.setSchema(schema.getKey());
-
if (attrMap.get(schema.getKey()) == null || attrMap.get(schema.getKey()).getValues().isEmpty()) {
attrTO.getValues().add("");
@@ -182,8 +179,10 @@ public class PlainAttrs extends AbstractAttrs<PlainSchemaTO> {
} else {
attrTO.getValues().addAll(attrMap.get(schema.getKey()).getValues());
}
+ return attrTO;
+ }).forEachOrdered(attrTO -> {
attrs.add(attrTO);
- }
+ });
anyTO.getPlainAttrs().clear();
anyTO.getPlainAttrs().addAll(attrs);
@@ -195,20 +194,22 @@ public class PlainAttrs extends AbstractAttrs<PlainSchemaTO> {
Map<String, AttrTO> attrMap = EntityTOUtils.buildAttrMap(membershipTO.getPlainAttrs());
- for (PlainSchemaTO schema : membershipSchemas.get(membershipTO.getGroupKey()).values()) {
- AttrTO attrTO = new AttrTO();
- attrTO.setSchema(schema.getKey());
+ membershipSchemas.get(membershipTO.getGroupKey()).values().stream().
+ map(schema -> {
+ AttrTO attrTO = new AttrTO();
+ attrTO.setSchema(schema.getKey());
+ if (attrMap.get(schema.getKey()) == null || attrMap.get(schema.getKey()).getValues().isEmpty()) {
+ attrTO.getValues().add("");
- if (attrMap.get(schema.getKey()) == null || attrMap.get(schema.getKey()).getValues().isEmpty()) {
- attrTO.getValues().add("");
-
- // is important to set the schema info only after values setting
- attrTO.setSchemaInfo(schema);
- } else {
- attrTO.getValues().addAll(attrMap.get(schema.getKey()).getValues());
- }
+ // is important to set the schema info only after values setting
+ attrTO.setSchemaInfo(schema);
+ } else {
+ attrTO.getValues().addAll(attrMap.get(schema.getKey()).getValues());
+ }
+ return attrTO;
+ }).forEachOrdered(attrTO -> {
attrs.add(attrTO);
- }
+ });
membershipTO.getPlainAttrs().clear();
membershipTO.getPlainAttrs().addAll(attrs);
@@ -237,7 +238,7 @@ public class PlainAttrs extends AbstractAttrs<PlainSchemaTO> {
FieldPanel panel;
switch (type) {
case Boolean:
- panel = new AjaxCheckBoxPanel("panel", schemaTO.getKey(), new Model<Boolean>(), true);
+ panel = new AjaxCheckBoxPanel("panel", schemaTO.getKey(), new Model<>(), true);
panel.setRequired(required);
break;
@@ -247,9 +248,9 @@ public class PlainAttrs extends AbstractAttrs<PlainSchemaTO> {
: schemaTO.getConversionPattern();
if (dataPattern.contains("H")) {
- panel = new AjaxDateTimeFieldPanel("panel", schemaTO.getKey(), new Model<Date>(), dataPattern);
+ panel = new AjaxDateTimeFieldPanel("panel", schemaTO.getKey(), new Model<>(), dataPattern);
} else {
- panel = new AjaxDateFieldPanel("panel", schemaTO.getKey(), new Model<Date>(), dataPattern);
+ panel = new AjaxDateFieldPanel("panel", schemaTO.getKey(), new Model<>(), dataPattern);
}
if (required) {
@@ -311,7 +312,7 @@ public class PlainAttrs extends AbstractAttrs<PlainSchemaTO> {
break;
case Binary:
- panel = new BinaryFieldPanel("panel", schemaTO.getKey(), new Model<String>(), schemaTO.getMimeType(),
+ panel = new BinaryFieldPanel("panel", schemaTO.getKey(), new Model<>(), schemaTO.getMimeType(),
fileKey);
if (required) {
@@ -320,7 +321,7 @@ public class PlainAttrs extends AbstractAttrs<PlainSchemaTO> {
break;
case Encrypted:
- panel = new EncryptedFieldPanel("panel", schemaTO.getKey(), new Model<String>(), true);
+ panel = new EncryptedFieldPanel("panel", schemaTO.getKey(), new Model<>(), true);
if (required) {
panel.addRequiredLabel();
@@ -328,7 +329,7 @@ public class PlainAttrs extends AbstractAttrs<PlainSchemaTO> {
break;
default:
- panel = new AjaxTextFieldPanel("panel", schemaTO.getKey(), new Model<String>(), true);
+ panel = new AjaxTextFieldPanel("panel", schemaTO.getKey(), new Model<>(), true);
if (jexlHelp) {
AjaxTextFieldPanel.class.cast(panel).enableJexlHelp();
@@ -369,7 +370,7 @@ public class PlainAttrs extends AbstractAttrs<PlainSchemaTO> {
FieldPanel.class.cast(panel).setNewModel(attrTO.getValues());
} else {
panel = new MultiFieldPanel.Builder<>(
- new PropertyModel<List<String>>(attrTO, "values")).build(
+ new PropertyModel<>(attrTO, "values")).build(
"panel",
attrTO.getSchema(),
FieldPanel.class.cast(panel));
@@ -379,24 +380,13 @@ public class PlainAttrs extends AbstractAttrs<PlainSchemaTO> {
if (previousObject != null
&& (previousObject.getPlainAttr(attrTO.getSchema()) == null
|| !ListUtils.isEqualList(
- ListUtils.select(previousObject.getPlainAttr(attrTO.getSchema()).getValues(),
- new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String object) {
- return StringUtils.isNotEmpty(object);
- }
- }), ListUtils.select(attrTO.getValues(),
- new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String object) {
- return StringUtils.isNotEmpty(object);
- }
- })))) {
+ ListUtils.select(previousObject.getPlainAttr(attrTO.getSchema()).get().getValues(),
+ object -> StringUtils.isNotEmpty(object)),
+ ListUtils.select(attrTO.getValues(), object -> StringUtils.isNotEmpty(object))))) {
+
List<String> oldValues = previousObject.getPlainAttr(attrTO.getSchema()) == null
? Collections.<String>emptyList()
- : previousObject.getPlainAttr(attrTO.getSchema()).getValues();
+ : previousObject.getPlainAttr(attrTO.getSchema()).get().getValues();
panel.showExternAction(new LabelInfo("externalAction", oldValues));
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Relationships.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Relationships.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Relationships.java
index 115da51..9da914b 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Relationships.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Relationships.java
@@ -18,27 +18,22 @@
*/
package org.apache.syncope.client.console.wizards.any;
-
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
+import java.util.stream.Collectors;
import org.apache.commons.collections4.ListUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.client.console.commons.Constants;
-import org.apache.syncope.client.console.commons.SerializableTransformer;
import org.apache.syncope.client.console.panels.AnyDirectoryPanel;
import org.apache.syncope.client.console.panels.ListViewPanel;
import org.apache.syncope.client.console.panels.ListViewPanel.ListViewReload;
import org.apache.syncope.client.console.panels.search.AnyObjectSearchPanel;
import org.apache.syncope.client.console.panels.search.AnyObjectSelectionDirectoryPanel;
import org.apache.syncope.client.console.panels.search.AnySelectionDirectoryPanel;
-import org.apache.syncope.client.console.panels.search.SearchClause;
import org.apache.syncope.client.console.panels.search.SearchClausePanel;
import org.apache.syncope.client.console.panels.search.SearchUtils;
import org.apache.syncope.client.console.rest.AnyTypeClassRestClient;
@@ -53,13 +48,12 @@ import org.apache.syncope.client.console.wicket.markup.html.form.ActionsPanel;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDropDownChoicePanel;
import org.apache.syncope.client.console.wizards.WizardMgtPanel;
import org.apache.syncope.client.lib.SyncopeClient;
-import org.apache.syncope.common.lib.EntityTOUtils;
import org.apache.syncope.common.lib.to.AnyObjectTO;
import org.apache.syncope.common.lib.to.AnyTO;
import org.apache.syncope.common.lib.to.AnyTypeTO;
+import org.apache.syncope.common.lib.to.EntityTO;
import org.apache.syncope.common.lib.to.GroupableRelatableTO;
import org.apache.syncope.common.lib.to.RelationshipTO;
-import org.apache.syncope.common.lib.to.RelationshipTypeTO;
import org.apache.syncope.common.lib.types.AnyEntitlement;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.wicket.Component;
@@ -68,7 +62,6 @@ import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.event.Broadcast;
import org.apache.wicket.event.IEvent;
import org.apache.wicket.extensions.markup.html.tabs.AbstractTab;
-import org.apache.wicket.extensions.markup.html.tabs.ITab;
import org.apache.wicket.extensions.wizard.IWizard;
import org.apache.wicket.extensions.wizard.WizardModel;
import org.apache.wicket.extensions.wizard.WizardStep;
@@ -95,7 +88,7 @@ public class Relationships extends WizardStep implements WizardModel.ICondition
private final AnyTypeClassRestClient anyTypeClassRestClient = new AnyTypeClassRestClient();
private final AnyTO anyTO;
-
+
private final RelationshipTypeRestClient relationshipTypeRestClient = new RelationshipTypeRestClient();
public Relationships(final AnyWrapper<?> modelObject, final PageReference pageRef) {
@@ -134,38 +127,31 @@ public class Relationships extends WizardStep implements WizardModel.ICondition
final Fragment viewFragment = new Fragment("relationships", "viewFragment", this);
viewFragment.setOutputMarkupId(true);
- viewFragment.add(new Accordion("relationships",
- CollectionUtils.collect(relationships.keySet(), new SerializableTransformer<String, ITab>() {
-
- private static final long serialVersionUID = 3514912643300593122L;
-
- @Override
- public ITab transform(final String input) {
- return new AbstractTab(new ResourceModel("relationship", input)) {
+ viewFragment.add(new Accordion("relationships", relationships.keySet().stream().map(relationship -> {
+ return new AbstractTab(new ResourceModel("relationship", relationship)) {
- private static final long serialVersionUID = 1037272333056449378L;
+ private static final long serialVersionUID = 1037272333056449378L;
- @Override
- public Panel getPanel(final String panelId) {
- return new ListViewPanel.Builder<>(RelationshipTO.class, pageRef).
- setItems(relationships.get(input)).
- includes("rightType", "rightKey").
- addAction(new ActionLink<RelationshipTO>() {
-
- private static final long serialVersionUID = -6847033126124401556L;
-
- @Override
- public void onClick(
- final AjaxRequestTarget target, final RelationshipTO modelObject) {
- removeRelationships(relationships, modelObject);
- send(Relationships.this, Broadcast.DEPTH, new ListViewReload<>(target));
- }
- }, ActionType.DELETE, AnyEntitlement.UPDATE.getFor(anyTO.getType()), true).
- build(panelId);
- }
- };
- }
- }, new ArrayList<ITab>())) {
+ @Override
+ public Panel getPanel(final String panelId) {
+ return new ListViewPanel.Builder<>(RelationshipTO.class, pageRef).
+ setItems(relationships.get(relationship)).
+ includes("rightType", "rightKey").
+ addAction(new ActionLink<RelationshipTO>() {
+
+ private static final long serialVersionUID = -6847033126124401556L;
+
+ @Override
+ public void onClick(
+ final AjaxRequestTarget target, final RelationshipTO modelObject) {
+ removeRelationships(relationships, modelObject);
+ send(Relationships.this, Broadcast.DEPTH, new ListViewReload<>(target));
+ }
+ }, ActionType.DELETE, AnyEntitlement.UPDATE.getFor(anyTO.getType()), true).
+ build(panelId);
+ }
+ };
+ }).collect(Collectors.toList())) {
private static final long serialVersionUID = 1037272333056449379L;
@@ -257,23 +243,17 @@ public class Relationships extends WizardStep implements WizardModel.ICondition
super("specification");
rel = new RelationshipTO();
- final ArrayList<String> availableRels = CollectionUtils.collect(
- relationshipTypeRestClient.list(),
- EntityTOUtils.<RelationshipTypeTO>keyTransformer(), new ArrayList<String>());
+ final List<String> availableRels = relationshipTypeRestClient.list().stream().
+ map(EntityTO::getKey).collect(Collectors.toList());
final AjaxDropDownChoicePanel<String> type = new AjaxDropDownChoicePanel<>(
- "type", "type", new PropertyModel<String>(rel, "type"));
+ "type", "type", new PropertyModel<>(rel, "type"));
type.setChoices(availableRels);
add(type.setRenderBodyOnly(true));
- final List<AnyTypeTO> availableTypes = ListUtils.select(anyTypeRestClient.listAnyTypes(),
- new Predicate<AnyTypeTO>() {
-
- @Override
- public boolean evaluate(final AnyTypeTO object) {
- return object.getKind() != AnyTypeKind.GROUP && object.getKind() != AnyTypeKind.USER;
- }
- });
+ final List<AnyTypeTO> availableTypes = anyTypeRestClient.listAnyTypes().stream().
+ filter(anyType -> anyType.getKind() != AnyTypeKind.GROUP
+ && anyType.getKind() != AnyTypeKind.USER).collect(Collectors.toList());
final AjaxDropDownChoicePanel<AnyTypeTO> rightType = new AjaxDropDownChoicePanel<>(
"rightType", "rightType", new PropertyModel<AnyTypeTO>(rel, "rightType") {
@@ -312,13 +292,8 @@ public class Relationships extends WizardStep implements WizardModel.ICondition
@Override
public AnyTypeTO getObject(final String id, final IModel<? extends List<? extends AnyTypeTO>> choices) {
- return IterableUtils.find(choices.getObject(), new Predicate<AnyTypeTO>() {
-
- @Override
- public boolean evaluate(final AnyTypeTO object) {
- return id.equals(object.getKey());
- }
- });
+ return choices.getObject().stream().
+ filter(anyTypeTO -> id.equals(anyTypeTO.getKey())).findAny().orElse(null);
}
});
// enable "rightType" dropdown only if "type" option is selected - SYNCOPE-1140
@@ -364,7 +339,7 @@ public class Relationships extends WizardStep implements WizardModel.ICondition
anyObjectSearchPanel = new AnyObjectSearchPanel.Builder(
anyType.getKey(),
- new ListModel<>(new ArrayList<SearchClause>())).
+ new ListModel<>(new ArrayList<>())).
enableSearch(Specification.this).
build("searchPanel");
fragment.add(anyObjectSearchPanel.setRenderBodyOnly(true));
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Resources.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Resources.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Resources.java
index 2ace1c7..806b87c 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Resources.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Resources.java
@@ -21,16 +21,14 @@ package org.apache.syncope.client.console.wizards.any;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.ListUtils;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.client.console.SyncopeConsoleApplication;
import org.apache.syncope.client.console.rest.ResourceRestClient;
import org.apache.syncope.client.console.wicket.ajax.markup.html.LabelInfo;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxPalettePanel;
-import org.apache.syncope.common.lib.EntityTOUtils;
import org.apache.syncope.common.lib.to.AnyTO;
-import org.apache.syncope.common.lib.to.ResourceTO;
+import org.apache.syncope.common.lib.to.EntityTO;
import org.apache.syncope.common.lib.types.StandardEntitlement;
import org.apache.wicket.authroles.authorization.strategies.role.metadata.ActionPermissions;
import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
@@ -51,9 +49,9 @@ public class Resources extends WizardStep implements WizardModel.ICondition {
if (modelObject instanceof UserWrapper
&& UserWrapper.class.cast(modelObject).getPreviousUserTO() != null
- && !ListUtils.isEqualList(
- modelObject.getInnerObject().getResources(),
+ && !modelObject.getInnerObject().getResources().equals(
UserWrapper.class.cast(modelObject).getPreviousUserTO().getResources())) {
+
add(new LabelInfo("changed", StringUtils.EMPTY));
} else {
add(new Label("changed", StringUtils.EMPTY));
@@ -93,9 +91,9 @@ public class Resources extends WizardStep implements WizardModel.ICondition {
public boolean evaluate() {
if (SyncopeConsoleApplication.get().getSecuritySettings().getAuthorizationStrategy().
isActionAuthorized(this, RENDER)) {
- available.setObject(CollectionUtils.collect(new ResourceRestClient().list(),
- EntityTOUtils.<ResourceTO>keyTransformer(), new ArrayList<String>()));
- return CollectionUtils.isNotEmpty(available.getObject());
+ available.setObject(new ResourceRestClient().list().stream().
+ map(EntityTO::getKey).collect(Collectors.toList()));
+ return !available.getObject().isEmpty();
} else {
return false;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Roles.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Roles.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Roles.java
index 07d8275..974d7e9 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Roles.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Roles.java
@@ -18,9 +18,9 @@
*/
package org.apache.syncope.client.console.wizards.any;
-import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import java.util.stream.Collectors;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.ListUtils;
import org.apache.commons.lang3.StringUtils;
@@ -28,9 +28,8 @@ import org.apache.syncope.client.console.SyncopeConsoleApplication;
import org.apache.syncope.client.console.rest.RoleRestClient;
import org.apache.syncope.client.console.wicket.ajax.markup.html.LabelInfo;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxPalettePanel;
-import org.apache.syncope.common.lib.EntityTOUtils;
import org.apache.syncope.common.lib.to.AnyTO;
-import org.apache.syncope.common.lib.to.RoleTO;
+import org.apache.syncope.common.lib.to.EntityTO;
import org.apache.syncope.common.lib.to.UserTO;
import org.apache.syncope.common.lib.types.StandardEntitlement;
import org.apache.wicket.authroles.authorization.strategies.role.metadata.ActionPermissions;
@@ -75,8 +74,9 @@ public class Roles extends WizardStep implements ICondition {
this.setOutputMarkupId(true);
allRoles = SyncopeConsoleApplication.get().getSecuritySettings().getAuthorizationStrategy().
- isActionAuthorized(this, RENDER) ? CollectionUtils.collect(new RoleRestClient().list(),
- EntityTOUtils.<RoleTO>keyTransformer(), new ArrayList<String>()) : Collections.<String>emptyList();
+ isActionAuthorized(this, RENDER)
+ ? new RoleRestClient().list().stream().map(EntityTO::getKey).collect(Collectors.toList())
+ : Collections.<String>emptyList();
Collections.sort(allRoles);
add(new AjaxPalettePanel.Builder<String>().build("roles",
@@ -92,6 +92,6 @@ public class Roles extends WizardStep implements ICondition {
public final boolean evaluate() {
return CollectionUtils.isNotEmpty(allRoles)
&& SyncopeConsoleApplication.get().getSecuritySettings().getAuthorizationStrategy().
- isActionAuthorized(this, RENDER);
+ isActionAuthorized(this, RENDER);
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/StatusPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/StatusPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/StatusPanel.java
index cc1a2cc..cac7b38 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/StatusPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/StatusPanel.java
@@ -22,10 +22,10 @@ import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import org.apache.commons.collections4.CollectionUtils;
+import java.util.stream.Collectors;
+import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.client.console.commons.Constants;
-import org.apache.syncope.client.console.commons.SerializableTransformer;
import org.apache.syncope.client.console.commons.status.ConnObjectWrapper;
import org.apache.syncope.client.console.commons.status.Status;
import org.apache.syncope.client.console.commons.status.StatusBean;
@@ -64,20 +64,12 @@ public class StatusPanel extends Panel {
final T any,
final IModel<List<StatusBean>> model,
final PageReference pageRef) {
+
super(id);
statusUtils = new StatusUtils();
- init(any, model,
- CollectionUtils.collect(statusUtils.getConnectorObjects(any),
- new SerializableTransformer<ConnObjectWrapper, Pair<ConnObjectTO, ConnObjectWrapper>>() {
-
- private static final long serialVersionUID = 2658691884036294287L;
-
- @Override
- public Pair<ConnObjectTO, ConnObjectWrapper> transform(final ConnObjectWrapper input) {
- return Pair.of(null, input);
- }
-
- }, new ArrayList<Pair<ConnObjectTO, ConnObjectWrapper>>()), pageRef, false);
+ init(any, model, statusUtils.getConnectorObjects(any).stream().
+ map(input -> new ImmutablePair<ConnObjectTO, ConnObjectWrapper>(null, input)).
+ collect(Collectors.toList()), pageRef, false);
}
public <T extends AnyTO> StatusPanel(
@@ -123,7 +115,7 @@ public class StatusPanel extends Panel {
statusBeans.add(syncope);
initialStatusBeanMap.put(syncope.getResource(), syncope);
- for (Pair<ConnObjectTO, ConnObjectWrapper> pair : connObjects) {
+ connObjects.forEach(pair -> {
ConnObjectWrapper entry = pair.getRight();
final StatusBean statusBean = statusUtils.getStatusBean(entry.getAny(),
entry.getResourceName(),
@@ -132,7 +124,7 @@ public class StatusPanel extends Panel {
initialStatusBeanMap.put(entry.getResourceName(), statusBean);
statusBeans.add(statusBean);
- }
+ });
final MultilevelPanel mlp = new MultilevelPanel("resources");
add(mlp);
@@ -163,8 +155,8 @@ public class StatusPanel extends Panel {
@Override
protected boolean statusCondition(final StatusBean bean) {
- final Pair<ConnObjectTO, ConnObjectTO> pair
- = getConnObjectTO(bean.getKey(), bean.getResource(), connObjects);
+ final Pair<ConnObjectTO, ConnObjectTO> pair =
+ getConnObjectTO(bean.getKey(), bean.getResource(), connObjects);
return pair != null && pair.getRight() != null;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/TypeExtensionWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/TypeExtensionWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/TypeExtensionWizardBuilder.java
index 35af482..2e5f725 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/TypeExtensionWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/TypeExtensionWizardBuilder.java
@@ -19,18 +19,15 @@
package org.apache.syncope.client.console.wizards.any;
import java.io.Serializable;
-import java.util.ArrayList;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.ListUtils;
-import org.apache.commons.collections4.Predicate;
+import java.util.stream.Collectors;
import org.apache.syncope.client.console.rest.AnyTypeClassRestClient;
import org.apache.syncope.client.console.rest.AnyTypeRestClient;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDropDownChoicePanel;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxPalettePanel;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
import org.apache.syncope.client.console.wizards.AjaxWizardBuilder;
-import org.apache.syncope.common.lib.EntityTOUtils;
+import org.apache.syncope.common.lib.to.EntityTO;
import org.apache.syncope.common.lib.to.GroupTO;
import org.apache.syncope.common.lib.to.TypeExtensionTO;
import org.apache.syncope.common.lib.types.AnyTypeKind;
@@ -73,14 +70,8 @@ public class TypeExtensionWizardBuilder extends AjaxWizardBuilder<TypeExtensionT
@Override
protected Serializable onApplyInternal(final TypeExtensionTO modelObject) {
- final List<TypeExtensionTO> typeExtensions =
- ListUtils.select(groupTO.getTypeExtensions(), new Predicate<TypeExtensionTO>() {
-
- @Override
- public boolean evaluate(final TypeExtensionTO object) {
- return !object.getAnyType().equals(modelObject.getAnyType());
- }
- });
+ List<TypeExtensionTO> typeExtensions = groupTO.getTypeExtensions().stream().
+ filter(typeExt -> !typeExt.getAnyType().equals(modelObject.getAnyType())).collect(Collectors.toList());
typeExtensions.add(modelObject);
groupTO.getTypeExtensions().clear();
groupTO.getTypeExtensions().addAll(typeExtensions);
@@ -100,30 +91,25 @@ public class TypeExtensionWizardBuilder extends AjaxWizardBuilder<TypeExtensionT
if (typeExtensionTO.getAnyType() == null) {
List<String> anyTypes = new AnyTypeRestClient().list();
anyTypes.remove(AnyTypeKind.GROUP.name());
- CollectionUtils.filter(anyTypes, new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String anyType) {
- return groupTO.getTypeExtension(anyType) == null;
- }
- });
+ anyTypes.removeAll(anyTypes.stream().
+ filter(anyType -> groupTO.getTypeExtension(anyType).isPresent()).collect(Collectors.toList()));
AjaxDropDownChoicePanel<String> anyTypeComponent = new AjaxDropDownChoicePanel<>(
- "anyType.component", "anyType", new PropertyModel<String>(typeExtensionTO, "anyType"));
+ "anyType.component", "anyType", new PropertyModel<>(typeExtensionTO, "anyType"));
anyTypeComponent.setChoices(anyTypes);
anyTypeComponent.addRequiredLabel();
add(anyTypeComponent.hideLabel().setOutputMarkupId(true));
} else {
AjaxTextFieldPanel anyTypeComponent = new AjaxTextFieldPanel(
- "anyType.component", "anyType", new PropertyModel<String>(typeExtensionTO, "anyType"));
+ "anyType.component", "anyType", new PropertyModel<>(typeExtensionTO, "anyType"));
anyTypeComponent.setEnabled(false);
add(anyTypeComponent.hideLabel());
}
add(new Label("auxClasses.label", auxClassesLabel));
- List<String> anyTypeClasses = CollectionUtils.collect(new AnyTypeClassRestClient().list(),
- EntityTOUtils.keyTransformer(), new ArrayList<String>());
+ List<String> anyTypeClasses = new AnyTypeClassRestClient().list().stream().
+ map(EntityTO::getKey).collect(Collectors.toList());
AjaxPalettePanel<String> auxClassesPalette = new AjaxPalettePanel.Builder<String>().build(
"auxClasses.palette",
new PropertyModel<List<String>>(typeExtensionTO, "auxClasses"),
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/AbstractConnConfPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/AbstractConnConfPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/AbstractConnConfPanel.java
index c1c73f4..3746443 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/AbstractConnConfPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/AbstractConnConfPanel.java
@@ -19,7 +19,6 @@
package org.apache.syncope.client.console.wizards.resources;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.client.console.commons.Constants;
@@ -90,6 +89,6 @@ public abstract class AbstractConnConfPanel<T extends AbstractBaseBean>
@Override
public boolean evaluate() {
- return model != null && CollectionUtils.isNotEmpty(model.getObject());
+ return model != null && model.getObject() != null && !model.getObject().isEmpty();
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ConnectorConfPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ConnectorConfPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ConnectorConfPanel.java
index 580e2c8..f2a3a1e 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ConnectorConfPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ConnectorConfPanel.java
@@ -18,15 +18,12 @@
*/
package org.apache.syncope.client.console.wizards.resources;
-import java.util.ArrayList;
import java.util.Collections;
-import java.util.Comparator;
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.syncope.common.lib.to.ConnBundleTO;
import org.apache.syncope.common.lib.to.ConnInstanceTO;
-import org.apache.syncope.common.lib.types.ConnConfPropSchema;
import org.apache.syncope.common.lib.types.ConnConfProperty;
import org.apache.wicket.model.LoadableDetachableModel;
@@ -50,15 +47,11 @@ public abstract class ConnectorConfPanel extends AbstractConnConfPanel<ConnInsta
ConnectorConfPanel.this.modelObject.getConf().clear();
// re-order properties
- Collections.sort(properties, new Comparator<ConnConfProperty>() {
-
- @Override
- public int compare(final ConnConfProperty left, final ConnConfProperty right) {
- if (left == null) {
- return -1;
- } else {
- return left.compareTo(right);
- }
+ Collections.sort(properties, (o1, o2) -> {
+ if (o1 == null) {
+ return -1;
+ } else {
+ return o1.compareTo(o2);
}
});
@@ -78,25 +71,21 @@ public abstract class ConnectorConfPanel extends AbstractConnConfPanel<ConnInsta
*/
@Override
protected final List<ConnConfProperty> getConnProperties(final ConnInstanceTO instance) {
- return CollectionUtils.collect(
- ConnectorWizardBuilder.getBundle(instance, bundles).getProperties(),
- new Transformer<ConnConfPropSchema, ConnConfProperty>() {
-
- @Override
- public ConnConfProperty transform(final ConnConfPropSchema key) {
- final ConnConfProperty property = new ConnConfProperty();
- property.setSchema(key);
-
- if (instance.getConf(key.getName()) != null && instance.getConf(key.getName()).getValues() != null) {
- property.getValues().addAll(instance.getConf(key.getName()).getValues());
- property.setOverridable(instance.getConf(key.getName()).isOverridable());
- }
+ return ConnectorWizardBuilder.getBundle(instance, bundles).getProperties().stream().
+ map(key -> {
+ ConnConfProperty property = new ConnConfProperty();
+ property.setSchema(key);
+
+ Optional<ConnConfProperty> conf = instance.getConf(key.getName());
+ if (conf.isPresent() && conf.get().getValues() != null) {
+ property.getValues().addAll(conf.get().getValues());
+ property.setOverridable(conf.get().isOverridable());
+ }
- if (property.getValues().isEmpty() && !key.getDefaultValues().isEmpty()) {
- property.getValues().addAll(key.getDefaultValues());
- }
- return property;
- }
- }, new ArrayList<ConnConfProperty>());
+ if (property.getValues().isEmpty() && !key.getDefaultValues().isEmpty()) {
+ property.getValues().addAll(key.getDefaultValues());
+ }
+ return property;
+ }).collect(Collectors.toList());
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ConnectorDetailsPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ConnectorDetailsPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ConnectorDetailsPanel.java
index 80a7a85..1a5f9a7 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ConnectorDetailsPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ConnectorDetailsPanel.java
@@ -20,12 +20,8 @@ package org.apache.syncope.client.console.wizards.resources;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.HashSet;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.client.console.commons.Constants;
import org.apache.syncope.client.console.rest.RealmRestClient;
@@ -61,47 +57,31 @@ public class ConnectorDetailsPanel extends WizardStep {
@Override
protected List<String> load() {
List<RealmTO> allRealms = new RealmRestClient().list();
- CollectionUtils.filter(allRealms, new Predicate<RealmTO>() {
-
- @Override
- public boolean evaluate(final RealmTO realm) {
- return IterableUtils.matchesAny(authRealms, new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String fullpath) {
- return realm.getFullPath().startsWith(fullpath);
- }
- });
- }
- });
-
- List<String> result = CollectionUtils.collect(allRealms, new Transformer<RealmTO, String>() {
+ allRealms.removeAll(allRealms.stream().filter(realm
+ -> authRealms.stream().anyMatch(fullpath -> realm.getFullPath().startsWith(fullpath))).
+ collect(Collectors.toList()));
- @Override
- public String transform(final RealmTO realm) {
- return realm.getFullPath();
- }
- }, new ArrayList<String>());
+ List<String> result = allRealms.stream().map(RealmTO::getFullPath).collect(Collectors.toList());
Collections.sort(result);
return result;
}
};
AjaxDropDownChoicePanel<String> realm = new AjaxDropDownChoicePanel<>(
- "adminRealm", "adminRealm", new PropertyModel<String>(connInstanceTO, "adminRealm"), false);
+ "adminRealm", "adminRealm", new PropertyModel<>(connInstanceTO, "adminRealm"), false);
realm.setChoices(realms);
realm.setOutputMarkupId(true);
realm.addRequiredLabel();
add(realm);
AjaxTextFieldPanel displayName = new AjaxTextFieldPanel(
- "displayName", "displayName", new PropertyModel<String>(connInstanceTO, "displayName"), false);
+ "displayName", "displayName", new PropertyModel<>(connInstanceTO, "displayName"), false);
displayName.setOutputMarkupId(true);
displayName.addRequiredLabel();
add(displayName);
AjaxTextFieldPanel location = new AjaxTextFieldPanel(
- "location", "location", new PropertyModel<String>(connInstanceTO, "location"), false);
+ "location", "location", new PropertyModel<>(connInstanceTO, "location"), false);
location.addRequiredLabel();
location.setOutputMarkupId(true);
location.setEnabled(false);
@@ -110,15 +90,15 @@ public class ConnectorDetailsPanel extends WizardStep {
final AjaxDropDownChoicePanel<String> bundleName = new AjaxDropDownChoicePanel<>(
"bundleName",
"bundleName",
- new PropertyModel<String>(connInstanceTO, "bundleName"), false);
+ new PropertyModel<>(connInstanceTO, "bundleName"), false);
((DropDownChoice<String>) bundleName.getField()).setNullValid(true);
List<String> bundleNames = new ArrayList<>();
- for (ConnBundleTO bundle : bundles) {
- if (!bundleNames.contains(bundle.getBundleName())) {
- bundleNames.add(bundle.getBundleName());
- }
- }
+ bundles.stream().
+ filter(bundle -> (!bundleNames.contains(bundle.getBundleName()))).
+ forEachOrdered(bundle -> {
+ bundleNames.add(bundle.getBundleName());
+ });
bundleName.setChoices(bundleNames);
bundleName.addRequiredLabel();
@@ -128,7 +108,7 @@ public class ConnectorDetailsPanel extends WizardStep {
add(bundleName);
final AjaxDropDownChoicePanel<String> version = new AjaxDropDownChoicePanel<>(
- "version", "version", new PropertyModel<String>(connInstanceTO, "version"), false);
+ "version", "version", new PropertyModel<>(connInstanceTO, "version"), false);
version.setChoices(getVersions(connInstanceTO, bundles));
version.addRequiredLabel();
version.setEnabled(connInstanceTO.getBundleName() != null);
@@ -186,20 +166,9 @@ public class ConnectorDetailsPanel extends WizardStep {
}
private List<String> getVersions(final ConnInstanceTO connInstanceTO, final List<ConnBundleTO> bundles) {
- return new ArrayList<>(CollectionUtils.collect(
- CollectionUtils.select(bundles, new Predicate<ConnBundleTO>() {
-
- @Override
- public boolean evaluate(final ConnBundleTO object) {
- return object.getLocation().equals(connInstanceTO.getLocation())
- && object.getBundleName().equals(connInstanceTO.getBundleName());
- }
- }), new Transformer<ConnBundleTO, String>() {
-
- @Override
- public String transform(final ConnBundleTO input) {
- return input.getVersion();
- }
- }, new HashSet<String>()));
+ return bundles.stream().filter(object
+ -> object.getLocation().equals(connInstanceTO.getLocation())
+ && object.getBundleName().equals(connInstanceTO.getBundleName())).
+ map(ConnBundleTO::getVersion).collect(Collectors.toList());
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ConnectorWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ConnectorWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ConnectorWizardBuilder.java
index 20037d8..7fcd82c 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ConnectorWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ConnectorWizardBuilder.java
@@ -20,18 +20,14 @@ package org.apache.syncope.client.console.wizards.resources;
import java.io.Serializable;
import java.net.URI;
-import java.util.ArrayList;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.client.console.rest.ConnectorRestClient;
import org.apache.syncope.client.console.topology.TopologyNode;
import org.apache.syncope.client.console.wizards.AjaxWizard;
import org.apache.syncope.common.lib.to.ConnBundleTO;
import org.apache.syncope.common.lib.to.ConnInstanceTO;
-import org.apache.syncope.common.lib.types.ConnectorCapability;
import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.wizard.WizardModel;
@@ -51,13 +47,8 @@ public class ConnectorWizardBuilder extends AbstractResourceWizardBuilder<ConnIn
public ConnectorWizardBuilder(final ConnInstanceTO defaultItem, final PageReference pageRef) {
super(defaultItem, pageRef);
- this.bundles = CollectionUtils.select(connectorRestClient.getAllBundles(), new Predicate<ConnBundleTO>() {
-
- @Override
- public boolean evaluate(final ConnBundleTO object) {
- return object.getLocation().equals(defaultItem.getLocation());
- }
- }, new ArrayList<ConnBundleTO>());
+ this.bundles = connectorRestClient.getAllBundles().stream().
+ filter(object -> object.getLocation().equals(defaultItem.getLocation())).collect(Collectors.toList());
}
@Override
@@ -86,8 +77,7 @@ public class ConnectorWizardBuilder extends AbstractResourceWizardBuilder<ConnIn
}
});
- wizardModel.add(new ConnCapabilitiesPanel(
- new PropertyModel<List<ConnectorCapability>>(connInstanceTO, "capabilities")));
+ wizardModel.add(new ConnCapabilitiesPanel(new PropertyModel<>(connInstanceTO, "capabilities")));
return wizardModel;
}
@@ -134,13 +124,9 @@ public class ConnectorWizardBuilder extends AbstractResourceWizardBuilder<ConnIn
}
protected static ConnBundleTO getBundle(final ConnInstanceTO connInstanceTO, final List<ConnBundleTO> bundles) {
- return IterableUtils.find(bundles, new Predicate<ConnBundleTO>() {
-
- @Override
- public boolean evaluate(final ConnBundleTO bundle) {
- return bundle.getBundleName().equals(connInstanceTO.getBundleName())
- && bundle.getVersion().equals(connInstanceTO.getVersion());
- }
- });
+ return bundles.stream().filter(bundle
+ -> bundle.getBundleName().equals(connInstanceTO.getBundleName())
+ && bundle.getVersion().equals(connInstanceTO.getVersion())).
+ findFirst().orElse(null);
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ProvisionWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ProvisionWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ProvisionWizardBuilder.java
index 2ade6cf..4ebbfb3 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ProvisionWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ProvisionWizardBuilder.java
@@ -20,8 +20,7 @@ package org.apache.syncope.client.console.wizards.resources;
import java.io.Serializable;
import java.util.List;
-import org.apache.commons.collections4.ListUtils;
-import org.apache.commons.collections4.Predicate;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.client.console.commons.ConnIdSpecialName;
import org.apache.syncope.client.console.commons.Constants;
@@ -71,7 +70,7 @@ public class ProvisionWizardBuilder extends AjaxWizardBuilder<ResourceProvision>
add(container);
clazz = new AjaxTextFieldPanel(
- "clazz", "clazz", new PropertyModel<String>(item, "objectClass"));
+ "clazz", "clazz", new PropertyModel<>(item, "objectClass"));
clazz.setRequired(true);
clazz.setChoices(connectorRestClient.getObjectClasses(resourceTO.getConnector()));
container.add(clazz);
@@ -158,7 +157,7 @@ public class ProvisionWizardBuilder extends AjaxWizardBuilder<ResourceProvision>
final AjaxTextFieldPanel connObjectLink = new AjaxTextFieldPanel(
"connObjectLink",
new ResourceModel("connObjectLink", "connObjectLink").getObject(),
- new PropertyModel<String>(item, "connObjectLink"),
+ new PropertyModel<>(item, "connObjectLink"),
false);
connObjectLink.enableJexlHelp();
connObjectLink.setEnabled(connObjectLinkEnabled);
@@ -224,21 +223,13 @@ public class ProvisionWizardBuilder extends AjaxWizardBuilder<ResourceProvision>
} else if (modelObject.getProvisionTO() != null) {
final List<ProvisionTO> provisions;
if (modelObject.getKey() == null) {
- provisions = ListUtils.select(this.resourceTO.getProvisions(), new Predicate<ProvisionTO>() {
-
- @Override
- public boolean evaluate(final ProvisionTO object) {
- return !modelObject.getAnyType().equals(object.getAnyType());
- }
- });
+ provisions = this.resourceTO.getProvisions().stream().
+ filter(object -> !modelObject.getAnyType().equals(object.getAnyType())).
+ collect(Collectors.toList());
} else {
- provisions = ListUtils.select(this.resourceTO.getProvisions(), new Predicate<ProvisionTO>() {
-
- @Override
- public boolean evaluate(final ProvisionTO object) {
- return !modelObject.getKey().equals(object.getKey());
- }
- });
+ provisions = this.resourceTO.getProvisions().stream().
+ filter(object -> !modelObject.getKey().equals(object.getKey())).
+ collect(Collectors.toList());
}
ProvisionTO provisionTO = modelObject.getProvisionTO();
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel.java
index f9fea37..ac7ccc3 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel.java
@@ -21,14 +21,8 @@ package org.apache.syncope.client.console.wizards.resources;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.Comparator;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.IteratorUtils;
-import org.apache.commons.collections4.ListUtils;
-import org.apache.commons.collections4.Predicate;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.client.console.commons.Constants;
@@ -105,16 +99,11 @@ public class ResourceProvisionPanel extends AbstractModalPanel<Serializable> {
return item == null
? null
- : IteratorUtils.find(list.iterator(), new Predicate<ResourceProvision>() {
-
- @Override
- public boolean evaluate(final ResourceProvision in) {
- return ((item.getKey() == null && in.getKey() == null)
- || (in.getKey() != null && in.getKey().equals(item.getKey())))
- && ((item.getAnyType() == null && in.getAnyType() == null)
- || (in.getAnyType() != null && in.getAnyType().equals(item.getAnyType())));
- }
- });
+ : list.stream().filter(in -> ((item.getKey() == null && in.getKey() == null)
+ || (in.getKey() != null && in.getKey().equals(item.getKey())))
+ && ((item.getAnyType() == null && in.getAnyType() == null)
+ || (in.getAnyType() != null && in.getAnyType().equals(item.getAnyType())))).
+ findAny().orElse(null);
}
@Override
@@ -150,9 +139,9 @@ public class ResourceProvisionPanel extends AbstractModalPanel<Serializable> {
if (resourceTO.getOrgUnit() != null) {
provisions.add(new ResourceProvision(resourceTO.getOrgUnit()));
}
- for (ProvisionTO provision : resourceTO.getProvisions()) {
+ resourceTO.getProvisions().forEach(provision -> {
provisions.add(new ResourceProvision(provision));
- }
+ });
// keep list ordered - SYNCOPE-1154
sortProvisions();
@@ -279,13 +268,7 @@ public class ResourceProvisionPanel extends AbstractModalPanel<Serializable> {
}
private void checkConnObjectKeyCount(final String anyType, final List<ItemTO> items) {
- long connObjectKeyCount = IterableUtils.countMatches(items, new Predicate<ItemTO>() {
-
- @Override
- public boolean evaluate(final ItemTO item) {
- return item.isConnObjectKey();
- }
- });
+ long connObjectKeyCount = items.stream().filter(ItemTO::isConnObjectKey).count();
if (connObjectKeyCount != 1) {
throw new IllegalArgumentException(anyType + ": "
@@ -300,15 +283,15 @@ public class ResourceProvisionPanel extends AbstractModalPanel<Serializable> {
checkConnObjectKeyCount(SyncopeConstants.REALM_ANYTYPE, resourceTO.getOrgUnit().getItems());
}
- for (ProvisionTO provision : new ArrayList<>(resourceTO.getProvisions())) {
- if (provision != null) {
- if (provision.getMapping() == null || provision.getMapping().getItems().isEmpty()) {
- resourceTO.getProvisions().remove(provision);
- } else {
- checkConnObjectKeyCount(provision.getAnyType(), provision.getMapping().getItems());
- }
- }
- }
+ new ArrayList<>(resourceTO.getProvisions()).stream().
+ filter(provision -> provision != null).
+ forEachOrdered(provision -> {
+ if (provision.getMapping() == null || provision.getMapping().getItems().isEmpty()) {
+ resourceTO.getProvisions().remove(provision);
+ } else {
+ checkConnObjectKeyCount(provision.getAnyType(), provision.getMapping().getItems());
+ }
+ });
resourceRestClient.update(resourceTO);
SyncopeConsoleSession.get().info(getString(Constants.OPERATION_SUCCEEDED));
@@ -322,13 +305,8 @@ public class ResourceProvisionPanel extends AbstractModalPanel<Serializable> {
}
private void sortProvisions() {
- Collections.sort(provisions, new Comparator<ResourceProvision>() {
-
- @Override
- public int compare(final ResourceProvision o1, final ResourceProvision o2) {
- return new AnyTypeRestClient.AnyTypeKeyComparator().compare(o1.getAnyType(), o2.getAnyType());
- }
- });
+ Collections.sort(provisions, (o1, o2)
+ -> new AnyTypeRestClient.AnyTypeKeyComparator().compare(o1.getAnyType(), o2.getAnyType()));
}
private LoadableDetachableModel<List<String>> getAnyTypes() {
@@ -340,21 +318,11 @@ public class ResourceProvisionPanel extends AbstractModalPanel<Serializable> {
protected List<String> load() {
final List<String> currentlyAdded = new ArrayList<>();
- CollectionUtils.collect(resourceTO.getProvisions(), new Transformer<ProvisionTO, String>() {
-
- @Override
- public String transform(final ProvisionTO provisionTO) {
- return provisionTO.getAnyType();
- }
- }, currentlyAdded);
-
- return ListUtils.select(new AnyTypeRestClient().list(), new Predicate<String>() {
+ currentlyAdded.addAll(resourceTO.getProvisions().stream().
+ map(ProvisionTO::getAnyType).collect(Collectors.toList()));
- @Override
- public boolean evaluate(final String key) {
- return !currentlyAdded.contains(key);
- }
- });
+ return new AnyTypeRestClient().list().stream().
+ filter(anyType -> !currentlyAdded.contains(anyType)).collect(Collectors.toList());
}
};
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/wizards/role/RoleWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/role/RoleWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/role/RoleWizardBuilder.java
index 4f60fa5..8ea6aa2 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/role/RoleWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/role/RoleWizardBuilder.java
@@ -22,10 +22,8 @@ import java.io.Serializable;
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.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
-import org.apache.syncope.client.console.panels.search.SearchClause;
import org.apache.syncope.client.console.panels.search.UserSearchPanel;
import org.apache.syncope.client.console.rest.DynRealmRestClient;
import org.apache.syncope.client.console.rest.RealmRestClient;
@@ -34,7 +32,7 @@ import org.apache.syncope.client.console.wicket.markup.html.bootstrap.tabs.Accor
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxPalettePanel;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
import org.apache.syncope.client.console.wizards.AjaxWizardBuilder;
-import org.apache.syncope.common.lib.EntityTOUtils;
+import org.apache.syncope.common.lib.to.EntityTO;
import org.apache.syncope.common.lib.to.RealmTO;
import org.apache.syncope.common.lib.to.RoleTO;
import org.apache.wicket.PageReference;
@@ -105,7 +103,7 @@ public class RoleWizardBuilder extends AjaxWizardBuilder<RoleWrapper> {
public Details(final RoleWrapper modelObject) {
add(new AjaxTextFieldPanel(
- "key", "key", new PropertyModel<String>(modelObject.getInnerObject(), "key"), false).
+ "key", "key", new PropertyModel<>(modelObject.getInnerObject(), "key"), false).
setEnabled(StringUtils.isEmpty(modelObject.getInnerObject().getKey())));
// ------------------------
@@ -119,7 +117,7 @@ public class RoleWizardBuilder extends AjaxWizardBuilder<RoleWrapper> {
@Override
public Panel getPanel(final String panelId) {
return new UserSearchPanel.Builder(
- new PropertyModel<List<SearchClause>>(modelObject, "dynClauses")).
+ new PropertyModel<>(modelObject, "dynClauses")).
required(true).build(panelId);
}
}), Model.of(StringUtils.isBlank(modelObject.getDynMembershipCond()) ? -1 : 0)).setOutputMarkupId(true));
@@ -159,16 +157,11 @@ public class RoleWizardBuilder extends AjaxWizardBuilder<RoleWrapper> {
public Realms(final RoleTO modelObject) {
setTitleModel(new ResourceModel("realms"));
- add(new AjaxPalettePanel.Builder<String>().build("realms",
- new PropertyModel<List<String>>(modelObject, "realms"),
- new ListModel<>(
- CollectionUtils.collect(new RealmRestClient().list(), new Transformer<RealmTO, String>() {
-
- @Override
- public String transform(final RealmTO input) {
- return input.getFullPath();
- }
- }, new ArrayList<String>()))).hideLabel().setOutputMarkupId(true));
+ add(new AjaxPalettePanel.Builder<>().build("realms",
+ new PropertyModel<>(modelObject, "realms"),
+ new ListModel<>(new RealmRestClient().list().stream().
+ map(RealmTO::getFullPath).collect(Collectors.toList()))).
+ hideLabel().setOutputMarkupId(true));
}
}
@@ -178,12 +171,11 @@ public class RoleWizardBuilder extends AjaxWizardBuilder<RoleWrapper> {
public DynRealms(final RoleTO modelObject) {
setTitleModel(new ResourceModel("dynRealms"));
- add(new AjaxPalettePanel.Builder<String>().build("dynRealms",
- new PropertyModel<List<String>>(modelObject, "dynRealms"),
- new ListModel<>(
- CollectionUtils.collect(new DynRealmRestClient().list(),
- EntityTOUtils.keyTransformer(),
- new ArrayList<String>()))).hideLabel().setOutputMarkupId(true));
+ add(new AjaxPalettePanel.Builder<>().build("dynRealms",
+ new PropertyModel<>(modelObject, "dynRealms"),
+ new ListModel<>(new DynRealmRestClient().list().stream().
+ map(EntityTO::getKey).collect(Collectors.toList()))).
+ hideLabel().setOutputMarkupId(true));
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/enduser/src/test/java/org/apache/syncope/client/enduser/util/UserRequestValidatorTest.java
----------------------------------------------------------------------
diff --git a/client/enduser/src/test/java/org/apache/syncope/client/enduser/util/UserRequestValidatorTest.java b/client/enduser/src/test/java/org/apache/syncope/client/enduser/util/UserRequestValidatorTest.java
index d8c021a..21c8218 100644
--- a/client/enduser/src/test/java/org/apache/syncope/client/enduser/util/UserRequestValidatorTest.java
+++ b/client/enduser/src/test/java/org/apache/syncope/client/enduser/util/UserRequestValidatorTest.java
@@ -61,11 +61,11 @@ public class UserRequestValidatorTest {
assertTrue(UserRequestValidator.compliant(userTO, customForm, true));
// firstname must have only one defaultValue
- userTO.getPlainAttr("firstname").getValues().add("notAllowedFirstnameValue");
+ userTO.getPlainAttr("firstname").get().getValues().add("notAllowedFirstnameValue");
assertFalse(UserRequestValidator.compliant(userTO, customForm, true));
assertTrue(UserRequestValidator.compliant(userTO, customForm, false));
// clean
- userTO.getPlainAttr("firstname").getValues().remove("notAllowedFirstnameValue");
+ userTO.getPlainAttr("firstname").get().getValues().remove("notAllowedFirstnameValue");
// derived must not be present
AttrTO derivedNotAllowed = attrTO("derivedNotAllowed");
@@ -80,7 +80,7 @@ public class UserRequestValidatorTest {
assertTrue(UserRequestValidator.compliant(userTO, customForm, true));
// with empty form is compliant by definition
- assertTrue(UserRequestValidator.compliant(userTO, new HashMap<String, CustomAttributesInfo>(), true));
+ assertTrue(UserRequestValidator.compliant(userTO, new HashMap<>(), true));
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/lib/src/main/java/org/apache/syncope/client/lib/RestClientExceptionMapper.java
----------------------------------------------------------------------
diff --git a/client/lib/src/main/java/org/apache/syncope/client/lib/RestClientExceptionMapper.java b/client/lib/src/main/java/org/apache/syncope/client/lib/RestClientExceptionMapper.java
index 2818c7b..29fae09 100644
--- a/client/lib/src/main/java/org/apache/syncope/client/lib/RestClientExceptionMapper.java
+++ b/client/lib/src/main/java/org/apache/syncope/client/lib/RestClientExceptionMapper.java
@@ -112,7 +112,7 @@ public class RestClientExceptionMapper implements ResponseExceptionMapper<Except
List<String> exInfos = response.getStringHeaders().get(RESTHeaders.ERROR_INFO);
Set<String> handledExceptions = new HashSet<>();
- for (String exTypeAsString : exTypesInHeaders) {
+ exTypesInHeaders.forEach(exTypeAsString -> {
ClientExceptionType exceptionType = null;
try {
exceptionType = ClientExceptionType.fromHeaderValue(exTypeAsString);
@@ -132,7 +132,7 @@ public class RestClientExceptionMapper implements ResponseExceptionMapper<Except
}
compException.addException(clientException);
}
- }
+ });
exTypesInHeaders.removeAll(handledExceptions);
if (!exTypesInHeaders.isEmpty()) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClient.java
----------------------------------------------------------------------
diff --git a/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClient.java b/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClient.java
index c13fa77..a3f959d 100644
--- a/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClient.java
+++ b/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClient.java
@@ -76,7 +76,7 @@ public class SyncopeClient {
this.mediaType = mediaType;
this.restClientFactory = restClientFactory;
if (this.restClientFactory.getHeaders() == null) {
- this.restClientFactory.setHeaders(new HashMap<String, String>());
+ this.restClientFactory.setHeaders(new HashMap<>());
}
this.exceptionMapper = exceptionMapper;
init(handler);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClientFactoryBean.java
----------------------------------------------------------------------
diff --git a/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClientFactoryBean.java b/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClientFactoryBean.java
index eba161d..c4105e8 100644
--- a/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClientFactoryBean.java
+++ b/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClientFactoryBean.java
@@ -114,7 +114,7 @@ public class SyncopeClientFactoryBean {
protected JAXRSClientFactoryBean defaultRestClientFactoryBean() {
JAXRSClientFactoryBean defaultRestClientFactoryBean = new JAXRSClientFactoryBean();
- defaultRestClientFactoryBean.setHeaders(new HashMap<String, String>());
+ defaultRestClientFactoryBean.setHeaders(new HashMap<>());
if (StringUtils.isBlank(address)) {
throw new IllegalArgumentException("Property 'address' is missing");
@@ -263,7 +263,7 @@ public class SyncopeClientFactoryBean {
*
* @param jwt value received after login, in the {@link RESTHeaders#TOKEN} response header
* @return client instance which will be passing the provided value in the
- * {@link javax.ws.rs.core.HttpHeaders#AUTHORIZATION}
+ * {@link javax.ws.rs.core.HttpHeaders#AUTHORIZATION}
* request header
*/
public SyncopeClient create(final String jwt) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/common/lib/pom.xml
----------------------------------------------------------------------
diff --git a/common/lib/pom.xml b/common/lib/pom.xml
index 810f45f..18cd8b8 100644
--- a/common/lib/pom.xml
+++ b/common/lib/pom.xml
@@ -61,10 +61,6 @@ under the License.
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
</dependency>
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-collections4</artifactId>
- </dependency>
<dependency>
<groupId>org.slf4j</groupId>
[03/16] syncope git commit: [SYNCOPE-938] Switching from
commons-collections to Java 8 features
Posted by il...@apache.org.
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);
}
[02/16] syncope git commit: [SYNCOPE-938] Switching from
commons-collections to Java 8 features
Posted by il...@apache.org.
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/fit/core-reference/src/test/java/org/apache/syncope/fit/cli/CLIITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/cli/CLIITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/cli/CLIITCase.java
index 4f19f5a..c902481 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/cli/CLIITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/cli/CLIITCase.java
@@ -27,11 +27,9 @@ import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import java.util.Properties;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.SystemUtils;
import org.apache.syncope.client.cli.Command;
@@ -96,7 +94,7 @@ public class CLIITCase extends AbstractITCase {
command.add(SCRIPT_FILENAME + ".sh");
}
- CollectionUtils.addAll(command, arguments);
+ command.addAll(Arrays.asList(arguments));
return command.toArray(new String[command.size()]);
}
@@ -137,15 +135,8 @@ public class CLIITCase extends AbstractITCase {
EntitlementCommand.EntitlementOptions.LIST.getOptionName()));
process = PROCESS_BUILDER.start();
- long entitlements = IterableUtils.countMatches(
- IOUtils.readLines(process.getInputStream(), StandardCharsets.UTF_8),
- new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String line) {
- return line.startsWith("-");
- }
- });
+ long entitlements = IOUtils.readLines(process.getInputStream(), StandardCharsets.UTF_8).
+ stream().filter(line -> line.startsWith("-")).count();
assertEquals(syncopeService.platform().getEntitlements().size(), entitlements);
} catch (IOException e) {
fail(e.getMessage());
@@ -165,15 +156,8 @@ public class CLIITCase extends AbstractITCase {
ConnectorCommand.ConnectorOptions.LIST_BUNDLES.getOptionName()));
process = PROCESS_BUILDER.start();
- long bundles = IterableUtils.countMatches(
- IOUtils.readLines(process.getInputStream(), StandardCharsets.UTF_8),
- new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String line) {
- return line.startsWith(" > BUNDLE NAME:");
- }
- });
+ long bundles = IOUtils.readLines(process.getInputStream(), StandardCharsets.UTF_8).
+ stream().filter(line -> line.startsWith(" > BUNDLE NAME:")).count();
assertEquals(connectorService.getBundles(null).size(), bundles);
} catch (IOException e) {
fail(e.getMessage());
@@ -209,15 +193,8 @@ public class CLIITCase extends AbstractITCase {
String.valueOf(userKey1), String.valueOf(userKey2),
String.valueOf(userKey3), String.valueOf(userKey4), String.valueOf(userKey5)));
process2 = PROCESS_BUILDER.start();
- long users = IterableUtils.countMatches(
- IOUtils.readLines(process2.getInputStream(), StandardCharsets.UTF_8),
- new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String line) {
- return line.startsWith(" > USER KEY:");
- }
- });
+ long users = IOUtils.readLines(process2.getInputStream(), StandardCharsets.UTF_8).
+ stream().filter(line -> line.startsWith(" > USER KEY:")).count();
assertEquals(5, users);
PROCESS_BUILDER.command(getCommand(
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AnyObjectITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AnyObjectITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AnyObjectITCase.java
index a3251fe..31e7f1b 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AnyObjectITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AnyObjectITCase.java
@@ -69,8 +69,8 @@ public class AnyObjectITCase extends AbstractITCase {
assertNotNull(connObjectTO);
assertNotNull(connObjectTO.getAttr("LOCATION"));
assertEquals(
- anyObjectTO.getPlainAttr("location").getValues(),
- connObjectTO.getAttr("LOCATION").getValues());
+ anyObjectTO.getPlainAttr("location").get().getValues(),
+ connObjectTO.getAttr("LOCATION").get().getValues());
}
@Test
@@ -127,9 +127,7 @@ public class AnyObjectITCase extends AbstractITCase {
build());
assertNotNull(anyObjectTOs);
assertTrue(anyObjectTOs.getResult().size() >= 2);
- for (AnyObjectTO anyObjectTO : anyObjectTOs.getResult()) {
- assertNotNull(anyObjectTO);
- }
+ anyObjectTOs.getResult().forEach(anyObjectTO -> assertNotNull(anyObjectTO));
}
@Test
@@ -154,7 +152,7 @@ public class AnyObjectITCase extends AbstractITCase {
anyObjectTO = updateAnyObject(anyObjectPatch).getEntity();
- assertEquals(newLocation, anyObjectTO.getPlainAttr("location").getValues().get(0));
+ assertEquals(newLocation, anyObjectTO.getPlainAttr("location").get().getValues().get(0));
}
@Test
@@ -167,7 +165,7 @@ public class AnyObjectITCase extends AbstractITCase {
assertEquals(anyObjectTO.getPlainAttrs(), attrs);
AttrTO location = anyObjectService.read(anyObjectTO.getKey(), SchemaType.PLAIN, "location");
- assertEquals(anyObjectTO.getPlainAttr("location"), location);
+ assertEquals(anyObjectTO.getPlainAttr("location").get(), location);
}
@Test
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuthenticationITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuthenticationITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuthenticationITCase.java
index ddabfac..a2cad27 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuthenticationITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuthenticationITCase.java
@@ -25,21 +25,17 @@ import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.security.AccessControlException;
-import java.util.HashSet;
import java.util.Map;
import java.util.Set;
+import java.util.stream.Collectors;
import javax.sql.DataSource;
import javax.ws.rs.ForbiddenException;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.Response;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.client.lib.AnonymousAuthenticationHandler;
import org.apache.syncope.client.lib.BasicAuthenticationHandler;
import org.apache.syncope.client.lib.SyncopeClient;
-import org.apache.syncope.common.lib.EntityTOUtils;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.common.lib.patch.DeassociationPatch;
@@ -210,8 +206,8 @@ public class AuthenticationITCase extends AbstractITCase {
fiql(SyncopeClient.getUserSearchConditionBuilder().isNotNull("key").query()).build());
assertNotNull(matchingUsers);
assertFalse(matchingUsers.getResult().isEmpty());
- Set<String> matchingUserKeys = CollectionUtils.collect(matchingUsers.getResult(),
- EntityTOUtils.<UserTO>keyTransformer(), new HashSet<String>());
+ Set<String> matchingUserKeys = matchingUsers.getResult().stream().
+ map(user -> user.getKey()).collect(Collectors.toSet());
assertTrue(matchingUserKeys.contains("1417acbe-cbf6-4277-9372-e75e04f97000"));
assertFalse(matchingUserKeys.contains("74cd8ece-715a-44a4-a736-e17b46c4e7e6"));
assertFalse(matchingUserKeys.contains("823074dc-d280-436d-a7dd-07399fae48ec"));
@@ -222,13 +218,7 @@ public class AuthenticationITCase extends AbstractITCase {
matchingUsers = userService3.search(new AnyQuery.Builder().realm("/even/two").
fiql(SyncopeClient.getUserSearchConditionBuilder().isNotNull("loginDate").query()).build());
assertNotNull(matchingUsers);
- assertTrue(IterableUtils.matchesAll(matchingUsers.getResult(), new Predicate<UserTO>() {
-
- @Override
- public boolean evaluate(final UserTO matched) {
- return "/even/two".equals(matched.getRealm());
- }
- }));
+ assertTrue(matchingUsers.getResult().stream().allMatch(matching -> "/even/two".equals(matching.getRealm())));
}
@Test
@@ -276,7 +266,7 @@ public class AuthenticationITCase extends AbstractITCase {
user = response.readEntity(new GenericType<ProvisioningResult<UserTO>>() {
}).getEntity();
- assertEquals("surname", user.getPlainAttr("surname").getValues().get(0));
+ assertEquals("surname", user.getPlainAttr("surname").get().getValues().get(0));
// 5. as delegated, update user attempting to move under realm / -> fail
UserPatch userPatch = new UserPatch();
@@ -299,7 +289,7 @@ public class AuthenticationITCase extends AbstractITCase {
user = response.readEntity(new GenericType<ProvisioningResult<UserTO>>() {
}).getEntity();
- assertEquals("surname2", user.getPlainAttr("surname").getValues().get(0));
+ assertEquals("surname2", user.getPlainAttr("surname").get().getValues().get(0));
// 7. as delegated, delete user
delegatedUserService.delete(user.getKey());
@@ -426,13 +416,8 @@ public class AuthenticationITCase extends AbstractITCase {
final String anyTypeKey = "FOLDER " + getUUIDString();
// 1. no entitlement exists (yet) for the any type to be created
- assertFalse(IterableUtils.matchesAny(syncopeService.platform().getEntitlements(), new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String entitlement) {
- return entitlement.contains(anyTypeKey);
- }
- }));
+ assertFalse(syncopeService.platform().getEntitlements().stream().
+ anyMatch(entitlement -> entitlement.contains(anyTypeKey)));
// 2. create plain schema, any type class and any type
PlainSchemaTO path = new PlainSchemaTO();
@@ -452,13 +437,8 @@ public class AuthenticationITCase extends AbstractITCase {
anyTypeService.create(anyTypeTO);
// 2. now entitlement exists for the any type just created
- assertTrue(IterableUtils.matchesAny(syncopeService.platform().getEntitlements(), new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String entitlement) {
- return entitlement.contains(anyTypeKey);
- }
- }));
+ assertTrue(syncopeService.platform().getEntitlements().stream().
+ anyMatch(entitlement -> entitlement.contains(anyTypeKey)));
// 3. attempt to create an instance of the type above: fail because no entitlement was assigned
AnyObjectTO folder = new AnyObjectTO();
@@ -522,7 +502,7 @@ public class AuthenticationITCase extends AbstractITCase {
// 3. approve user
WorkflowFormTO form = userWorkflowService.getFormForUser(userTO.getKey());
form = userWorkflowService.claimForm(form.getTaskId());
- form.getProperty("approve").setValue(Boolean.TRUE.toString());
+ form.getProperty("approve").get().setValue(Boolean.TRUE.toString());
userTO = userWorkflowService.submitForm(form);
assertNotNull(userTO);
assertEquals("active", userTO.getStatus());
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/CamelRouteITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/CamelRouteITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/CamelRouteITCase.java
index 4f4f475..f3b9693 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/CamelRouteITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/CamelRouteITCase.java
@@ -46,9 +46,7 @@ public class CamelRouteITCase extends AbstractITCase {
List<CamelRouteTO> userRoutes = camelRouteService.list(AnyTypeKind.USER);
assertNotNull(userRoutes);
assertEquals(16, userRoutes.size());
- for (CamelRouteTO route : userRoutes) {
- assertNotNull(route.getContent());
- }
+ userRoutes.forEach(route -> assertNotNull(route.getContent()));
}
@Test
@@ -58,9 +56,7 @@ public class CamelRouteITCase extends AbstractITCase {
List<CamelRouteTO> groupRoutes = camelRouteService.list(AnyTypeKind.GROUP);
assertNotNull(groupRoutes);
assertEquals(8, groupRoutes.size());
- for (CamelRouteTO route : groupRoutes) {
- assertNotNull(route.getContent());
- }
+ groupRoutes.forEach(route -> assertNotNull(route.getContent()));
}
private CamelRouteTO doUpdate(final String key, final String content) {
@@ -120,7 +116,7 @@ public class CamelRouteITCase extends AbstractITCase {
+ " </setProperty>\n"
+ " <setBody>\n"
+ " <groovy>\n"
- + "request.body.getPlainAttr(\"camelAttribute\").getValues().set(0,\"true\")\n"
+ + "request.body.getPlainAttr(\"camelAttribute\").get().getValues().set(0,\"true\")\n"
+ " return request.body\n"
+ " </groovy>\n"
+ " </setBody>\n"
@@ -165,7 +161,7 @@ public class CamelRouteITCase extends AbstractITCase {
userTO = createUser(userTO).getEntity();
assertNotNull(userTO);
- assertEquals("true", userTO.getPlainAttr("camelAttribute").getValues().get(0));
+ assertEquals("true", userTO.getPlainAttr("camelAttribute").get().getValues().get(0));
} finally {
doUpdate(oldRoute.getKey(), oldRoute.getContent());
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ConnectorITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ConnectorITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ConnectorITCase.java
index 09a2653..5f01974 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ConnectorITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ConnectorITCase.java
@@ -36,11 +36,8 @@ import java.util.Locale;
import java.util.Properties;
import java.util.Set;
import java.util.UUID;
+import java.util.stream.Collectors;
import javax.ws.rs.core.Response;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
-import org.apache.commons.collections4.Transformer;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.SerializationUtils;
import org.apache.commons.lang3.exception.ExceptionUtils;
@@ -295,9 +292,7 @@ public class ConnectorITCase extends AbstractITCase {
List<ConnInstanceTO> connectorInstanceTOs = connectorService.list(null);
assertNotNull(connectorInstanceTOs);
assertFalse(connectorInstanceTOs.isEmpty());
- for (ConnInstanceTO instance : connectorInstanceTOs) {
- assertNotNull(instance);
- }
+ connectorInstanceTOs.forEach(instance -> assertNotNull(instance));
}
@Test
@@ -312,9 +307,7 @@ public class ConnectorITCase extends AbstractITCase {
List<ConnBundleTO> bundles = connectorService.getBundles(Locale.ENGLISH.getLanguage());
assertNotNull(bundles);
assertFalse(bundles.isEmpty());
- for (ConnBundleTO bundle : bundles) {
- assertNotNull(bundle);
- }
+ bundles.forEach(bundle -> assertNotNull(bundle));
}
@Test
@@ -347,7 +340,7 @@ public class ConnectorITCase extends AbstractITCase {
for (ConnInstanceTO instance : connectorInstanceTOs) {
if ("net.tirasa.connid.bundles.db.table".equals(instance.getBundleName())) {
- assertEquals("Utente", instance.getConf("user").getSchema().getDisplayName());
+ assertEquals("Utente", instance.getConf("user").get().getSchema().getDisplayName());
}
}
@@ -356,7 +349,7 @@ public class ConnectorITCase extends AbstractITCase {
for (ConnInstanceTO instance : connectorInstanceTOs) {
if ("net.tirasa.connid.bundles.db.table".equals(instance.getBundleName())) {
- assertEquals("User", instance.getConf("user").getSchema().getDisplayName());
+ assertEquals("User", instance.getConf("user").get().getSchema().getDisplayName());
}
}
}
@@ -478,15 +471,8 @@ public class ConnectorITCase extends AbstractITCase {
objectClassInfo = connectorService.buildObjectClassInfo(ldap, true);
assertNotNull(objectClassInfo);
- Collection<String> objectClasses = CollectionUtils.collect(objectClassInfo,
- new Transformer<ConnIdObjectClassTO, String>() {
-
- @Override
- public String transform(final ConnIdObjectClassTO info) {
- return info.getType();
- }
-
- });
+ Collection<String> objectClasses = objectClassInfo.stream().
+ map(info -> info.getType()).collect(Collectors.toSet());
assertTrue(objectClasses.contains(ObjectClass.ACCOUNT_NAME));
assertTrue(objectClasses.contains(ObjectClass.GROUP_NAME));
}
@@ -500,13 +486,14 @@ public class ConnectorITCase extends AbstractITCase {
ConnInstanceTO ldapConn = connectorService.read("74141a3b-0762-4720-a4aa-fc3e374ef3ef", null);
String originalDisplayName = ldapConn.getDisplayName();
Set<ConnectorCapability> originalCapabilities = new HashSet<>(ldapConn.getCapabilities());
- ConnConfProperty originalConfProp = SerializationUtils.clone(ldapConn.getConf("maintainPosixGroupMembership"));
+ ConnConfProperty originalConfProp = SerializationUtils.clone(
+ ldapConn.getConf("maintainPosixGroupMembership").get());
assertEquals(1, originalConfProp.getValues().size());
assertEquals("false", originalConfProp.getValues().get(0));
ldapConn.setDisplayName(originalDisplayName + " modified");
ldapConn.getCapabilities().clear();
- ldapConn.getConf("maintainPosixGroupMembership").getValues().set(0, "true");
+ ldapConn.getConf("maintainPosixGroupMembership").get().getValues().set(0, "true");
connectorService.update(ldapConn);
ldapConn = connectorService.read("74141a3b-0762-4720-a4aa-fc3e374ef3ef", null);
@@ -522,7 +509,7 @@ public class ConnectorITCase extends AbstractITCase {
ldapConn = connectorService.read("74141a3b-0762-4720-a4aa-fc3e374ef3ef", null);
assertEquals(originalDisplayName, ldapConn.getDisplayName());
assertEquals(originalCapabilities, ldapConn.getCapabilities());
- assertEquals(originalConfProp, ldapConn.getConf("maintainPosixGroupMembership"));
+ assertEquals(originalConfProp, ldapConn.getConf("maintainPosixGroupMembership").get());
}
@Test
@@ -534,14 +521,9 @@ public class ConnectorITCase extends AbstractITCase {
List<ConnInstanceTO> connInstances = pcs.list(null);
assertEquals(2, connInstances.size());
- assertTrue(IterableUtils.matchesAll(connInstances, new Predicate<ConnInstanceTO>() {
-
- @Override
- public boolean evaluate(final ConnInstanceTO object) {
- return "a6d017fd-a705-4507-bb7c-6ab6a6745997".equals(object.getKey())
- || "44c02549-19c3-483c-8025-4919c3283c37".equals(object.getKey());
- }
- }));
+ assertTrue(connInstances.stream().allMatch(connInstance
+ -> "a6d017fd-a705-4507-bb7c-6ab6a6745997".equals(connInstance.getKey())
+ || "44c02549-19c3-483c-8025-4919c3283c37".equals(connInstance.getKey())));
// 2. attempt to read a connector with a different admin realm: fail
try {
@@ -554,18 +536,18 @@ public class ConnectorITCase extends AbstractITCase {
// 3. read and upate a connector in the realm for which entitlements are owned: succeed
try {
ConnInstanceTO scriptedsql = pcs.read("a6d017fd-a705-4507-bb7c-6ab6a6745997", null);
- ConnConfProperty reloadScriptOnExecution = scriptedsql.getConf("reloadScriptOnExecution");
+ ConnConfProperty reloadScriptOnExecution = scriptedsql.getConf("reloadScriptOnExecution").get();
assertEquals("true", reloadScriptOnExecution.getValues().get(0).toString());
reloadScriptOnExecution.getValues().set(0, "false");
pcs.update(scriptedsql);
scriptedsql = pcs.read(scriptedsql.getKey(), null);
- reloadScriptOnExecution = scriptedsql.getConf("reloadScriptOnExecution");
+ reloadScriptOnExecution = scriptedsql.getConf("reloadScriptOnExecution").get();
assertEquals("false", reloadScriptOnExecution.getValues().get(0).toString());
} finally {
ConnInstanceTO scriptedsql = connectorService.read("a6d017fd-a705-4507-bb7c-6ab6a6745997", null);
- ConnConfProperty reloadScriptOnExecution = scriptedsql.getConf("reloadScriptOnExecution");
+ ConnConfProperty reloadScriptOnExecution = scriptedsql.getConf("reloadScriptOnExecution").get();
reloadScriptOnExecution.getValues().set(0, "true");
connectorService.update(scriptedsql);
}
@@ -582,17 +564,13 @@ public class ConnectorITCase extends AbstractITCase {
assertNotNull(connInstanceTO);
// check for resource
- Collection<ResourceTO> resources = CollectionUtils.select(resourceService.list(), new Predicate<ResourceTO>() {
-
- @Override
- public boolean evaluate(final ResourceTO object) {
- return "fcf9f2b0-f7d6-42c9-84a6-61b28255a42b".equals(object.getConnector());
- }
- });
+ List<ResourceTO> resources = resourceService.list().stream().
+ filter(resource -> "fcf9f2b0-f7d6-42c9-84a6-61b28255a42b".equals(resource.getConnector())).
+ collect(Collectors.toList());
assertEquals(4, resources.size());
// Retrieve a resource TO template.
- ResourceTO resourceTO = resources.iterator().next();
+ ResourceTO resourceTO = resources.get(0);
// Make it new.
resourceTO.setKey("newAbout103" + getUUIDString());
@@ -628,13 +606,8 @@ public class ConnectorITCase extends AbstractITCase {
assertNotNull(resourceTO);
- resources = CollectionUtils.select(resourceService.list(), new Predicate<ResourceTO>() {
-
- @Override
- public boolean evaluate(final ResourceTO object) {
- return connKey.equals(object.getConnector());
- }
- });
+ resources = resourceService.list().stream().
+ filter(resource -> connKey.equals(resource.getConnector())).collect(Collectors.toList());
assertEquals(1, resources.size());
// ----------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/DynRealmITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/DynRealmITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/DynRealmITCase.java
index 7d745a7..3506b8d 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/DynRealmITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/DynRealmITCase.java
@@ -26,8 +26,6 @@ import static org.junit.Assert.fail;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.Response;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.client.lib.SyncopeClient;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.patch.AttrPatch;
@@ -141,22 +139,11 @@ public class DynRealmITCase extends AbstractITCase {
// 5. verify that the new user and group are found when searching by dynamic realm
PagedResult<UserTO> matchingUsers = userService.search(new AnyQuery.Builder().realm("/").fiql(
SyncopeClient.getUserSearchConditionBuilder().inDynRealms(dynRealm.getKey()).query()).build());
- assertTrue(IterableUtils.matchesAny(matchingUsers.getResult(), new Predicate<UserTO>() {
+ assertTrue(matchingUsers.getResult().stream().anyMatch(object -> object.getKey().equals(userKey)));
- @Override
- public boolean evaluate(final UserTO object) {
- return object.getKey().equals(userKey);
- }
- }));
PagedResult<GroupTO> matchingGroups = groupService.search(new AnyQuery.Builder().realm("/").fiql(
SyncopeClient.getGroupSearchConditionBuilder().inDynRealms(dynRealm.getKey()).query()).build());
- assertTrue(IterableUtils.matchesAny(matchingGroups.getResult(), new Predicate<GroupTO>() {
-
- @Override
- public boolean evaluate(final GroupTO object) {
- return object.getKey().equals(groupKey);
- }
- }));
+ assertTrue(matchingGroups.getResult().stream().anyMatch(object -> object.getKey().equals(groupKey)));
// 6. prepare to act as delegated admin
SyncopeClient delegatedClient = clientFactory.create(dynRealmAdmin.getUsername(), "password123");
@@ -172,13 +159,7 @@ public class DynRealmITCase extends AbstractITCase {
// USER_SEARCH
matchingUsers = delegatedUserService.search(new AnyQuery.Builder().realm("/").build());
- assertTrue(IterableUtils.matchesAny(matchingUsers.getResult(), new Predicate<UserTO>() {
-
- @Override
- public boolean evaluate(final UserTO object) {
- return object.getKey().equals(userKey);
- }
- }));
+ assertTrue(matchingUsers.getResult().stream().anyMatch(object -> object.getKey().equals(userKey)));
// USER_UPDATE
UserPatch userPatch = new UserPatch();
@@ -209,7 +190,7 @@ public class DynRealmITCase extends AbstractITCase {
readEntity(new GenericType<ProvisioningResult<GroupTO>>() {
}).getEntity();
assertNotNull(group);
- assertEquals("modified", group.getPlainAttr("icon").getValues().get(0));
+ assertEquals("modified", group.getPlainAttr("icon").get().getValues().get(0));
} finally {
if (role != null) {
roleService.delete(role.getKey());
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/GroupITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/GroupITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/GroupITCase.java
index 9d833cc..817d8e4 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/GroupITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/GroupITCase.java
@@ -38,8 +38,6 @@ import javax.naming.directory.SearchResult;
import javax.ws.rs.ForbiddenException;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.Response;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.commons.lang3.SerializationUtils;
import org.apache.syncope.client.lib.AnonymousAuthenticationHandler;
import org.apache.syncope.client.lib.SyncopeClient;
@@ -121,9 +119,9 @@ public class GroupITCase extends AbstractITCase {
groupTO = createGroup(groupTO).getEntity();
assertNotNull(groupTO);
- assertNotNull(groupTO.getVirAttr("rvirtualdata").getValues());
- assertFalse(groupTO.getVirAttr("rvirtualdata").getValues().isEmpty());
- assertEquals("rvirtualvalue", groupTO.getVirAttr("rvirtualdata").getValues().get(0));
+ assertNotNull(groupTO.getVirAttr("rvirtualdata").get().getValues());
+ assertFalse(groupTO.getVirAttr("rvirtualdata").get().getValues().isEmpty());
+ assertEquals("rvirtualvalue", groupTO.getVirAttr("rvirtualdata").get().getValues().get(0));
assertTrue(groupTO.getResources().contains(RESOURCE_NAME_LDAP));
@@ -181,9 +179,7 @@ public class GroupITCase extends AbstractITCase {
groupService.search(new AnyQuery.Builder().realm(SyncopeConstants.ROOT_REALM).build());
assertNotNull(groupTOs);
assertTrue(groupTOs.getResult().size() >= 8);
- for (GroupTO groupTO : groupTOs.getResult()) {
- assertNotNull(groupTO);
- }
+ groupTOs.getResult().forEach(groupTO -> assertNotNull(groupTO));
}
@Test
@@ -200,8 +196,8 @@ public class GroupITCase extends AbstractITCase {
UserTO userTO = userService.read("1417acbe-cbf6-4277-9372-e75e04f97000");
assertNotNull(userTO);
- assertNotNull(userTO.getMembership("37d15e4c-cdc1-460b-a591-8505c8133806"));
- assertNull(userTO.getMembership("29f96485-729e-4d31-88a1-6fc60e4677f3"));
+ assertTrue(userTO.getMembership("37d15e4c-cdc1-460b-a591-8505c8133806").isPresent());
+ assertFalse(userTO.getMembership("29f96485-729e-4d31-88a1-6fc60e4677f3").isPresent());
GroupService groupService2 = clientFactory.create("rossini", ADMIN_PWD).getService(GroupService.class);
@@ -214,13 +210,7 @@ public class GroupITCase extends AbstractITCase {
List<GroupTO> groups = groupService2.own();
assertNotNull(groups);
- assertTrue(IterableUtils.matchesAny(groups, new Predicate<GroupTO>() {
-
- @Override
- public boolean evaluate(final GroupTO group) {
- return "37d15e4c-cdc1-460b-a591-8505c8133806".equals(group.getKey());
- }
- }));
+ assertTrue(groups.stream().anyMatch(group -> "37d15e4c-cdc1-460b-a591-8505c8133806".equals(group.getKey())));
}
@Test
@@ -241,12 +231,12 @@ public class GroupITCase extends AbstractITCase {
assertEquals(modName, groupTO.getName());
assertEquals(2, groupTO.getPlainAttrs().size());
- groupTO.getPlainAttr("show").getValues().clear();
+ groupTO.getPlainAttr("show").get().getValues().clear();
groupTO = groupService.update(groupTO).readEntity(new GenericType<ProvisioningResult<GroupTO>>() {
}).getEntity();
- assertNull(groupTO.getPlainAttr("show"));
+ assertFalse(groupTO.getPlainAttr("show").isPresent());
}
@Test
@@ -575,10 +565,10 @@ public class GroupITCase extends AbstractITCase {
// 2. create a group *without* an attribute for that schema: it works
GroupTO groupTO = getSampleTO("lastGroup");
- assertNull(groupTO.getPlainAttr(badge.getKey()));
+ assertFalse(groupTO.getPlainAttr(badge.getKey()).isPresent());
groupTO = createGroup(groupTO).getEntity();
assertNotNull(groupTO);
- assertNull(groupTO.getPlainAttr(badge.getKey()));
+ assertFalse(groupTO.getPlainAttr(badge.getKey()).isPresent());
// 3. add the new mandatory schema to the default group type
AnyTypeTO type = anyTypeService.read(AnyTypeKind.GROUP.name());
@@ -651,7 +641,7 @@ public class GroupITCase extends AbstractITCase {
final String groupKey = group.getKey();
List<MembershipTO> memberships = userService.read(
- "c9b2dec2-00a7-4855-97c0-d854842b4b24").getDynMemberships();
+ "c9b2dec2-00a7-4855-97c0-d854842b4b24").getDynMemberships();
assertTrue(memberships.stream().anyMatch(m -> m.getGroupKey().equals(groupKey)));
GroupPatch patch = new GroupPatch();
@@ -682,11 +672,11 @@ public class GroupITCase extends AbstractITCase {
newAny = createAnyObject(newAny).getEntity();
assertNotNull(newAny.getPlainAttr("location"));
List<MembershipTO> memberships = anyObjectService.read(
- "fc6dbc3a-6c07-4965-8781-921e7401a4a5").getDynMemberships();
+ "fc6dbc3a-6c07-4965-8781-921e7401a4a5").getDynMemberships();
assertTrue(memberships.stream().anyMatch(m -> m.getGroupKey().equals(groupKey)));
memberships = anyObjectService.read(
- "8559d14d-58c2-46eb-a2d4-a7d35161e8f8").getDynMemberships();
+ "8559d14d-58c2-46eb-a2d4-a7d35161e8f8").getDynMemberships();
assertTrue(memberships.stream().anyMatch(m -> m.getGroupKey().equals(groupKey)));
memberships = anyObjectService.read(newAny.getKey()).getDynMemberships();
@@ -713,13 +703,13 @@ public class GroupITCase extends AbstractITCase {
attrTO(new AttrTO.Builder().schema("location").build()).
build());
newAny = updateAnyObject(anyPatch).getEntity();
- assertNull(newAny.getPlainAttr("location"));
+ assertFalse(newAny.getPlainAttr("location").isPresent());
memberships = anyObjectService.read(
- "fc6dbc3a-6c07-4965-8781-921e7401a4a5").getDynMemberships();
+ "fc6dbc3a-6c07-4965-8781-921e7401a4a5").getDynMemberships();
assertFalse(memberships.stream().anyMatch(m -> m.getGroupKey().equals(groupKey)));
memberships = anyObjectService.read(
- "8559d14d-58c2-46eb-a2d4-a7d35161e8f8").getDynMemberships();
+ "8559d14d-58c2-46eb-a2d4-a7d35161e8f8").getDynMemberships();
assertFalse(memberships.stream().anyMatch(m -> m.getGroupKey().equals(groupKey)));
memberships = anyObjectService.read(newAny.getKey()).getDynMemberships();
assertTrue(memberships.stream().anyMatch(m -> m.getGroupKey().equals(groupKey)));
@@ -826,8 +816,8 @@ public class GroupITCase extends AbstractITCase {
groupTO = createGroup(groupTO).getEntity();
assertNotNull(groupTO);
assertEquals(1, groupTO.getTypeExtensions().size());
- assertEquals(1, groupTO.getTypeExtension(AnyTypeKind.USER.name()).getAuxClasses().size());
- assertTrue(groupTO.getTypeExtension(AnyTypeKind.USER.name()).getAuxClasses().contains("csv"));
+ assertEquals(1, groupTO.getTypeExtension(AnyTypeKind.USER.name()).get().getAuxClasses().size());
+ assertTrue(groupTO.getTypeExtension(AnyTypeKind.USER.name()).get().getAuxClasses().contains("csv"));
typeExtension = new TypeExtensionTO();
typeExtension.setAnyType(AnyTypeKind.USER.name());
@@ -841,9 +831,9 @@ public class GroupITCase extends AbstractITCase {
groupTO = updateGroup(groupPatch).getEntity();
assertNotNull(groupTO);
assertEquals(1, groupTO.getTypeExtensions().size());
- assertEquals(2, groupTO.getTypeExtension(AnyTypeKind.USER.name()).getAuxClasses().size());
- assertTrue(groupTO.getTypeExtension(AnyTypeKind.USER.name()).getAuxClasses().contains("csv"));
- assertTrue(groupTO.getTypeExtension(AnyTypeKind.USER.name()).getAuxClasses().contains("other"));
+ assertEquals(2, groupTO.getTypeExtension(AnyTypeKind.USER.name()).get().getAuxClasses().size());
+ assertTrue(groupTO.getTypeExtension(AnyTypeKind.USER.name()).get().getAuxClasses().contains("csv"));
+ assertTrue(groupTO.getTypeExtension(AnyTypeKind.USER.name()).get().getAuxClasses().contains("other"));
}
@Test
@@ -958,7 +948,7 @@ public class GroupITCase extends AbstractITCase {
provision.getVirSchemas().clear();
}
- MappingTO mapping = newLDAP.getProvision(AnyTypeKind.GROUP.name()).getMapping();
+ MappingTO mapping = newLDAP.getProvision(AnyTypeKind.GROUP.name()).get().getMapping();
ItemTO connObjectKey = mapping.getConnObjectKeyItem();
connObjectKey.setIntAttrName("displayProperty");
@@ -1055,7 +1045,7 @@ public class GroupITCase extends AbstractITCase {
groupTO = createGroup(groupTO).getEntity();
assertNotNull(groupTO);
- assertEquals("11.23", groupTO.getPlainAttr(doubleSchemaName).getValues().get(0));
+ assertEquals("11.23", groupTO.getPlainAttr(doubleSchemaName).get().getValues().get(0));
// 3. update schema, set conversion pattern
schema = schemaService.read(SchemaType.PLAIN, schema.getKey());
@@ -1065,7 +1055,7 @@ public class GroupITCase extends AbstractITCase {
// 4. re-read group, verify that pattern was applied
groupTO = groupService.read(groupTO.getKey());
assertNotNull(groupTO);
- assertEquals("11.230", groupTO.getPlainAttr(doubleSchemaName).getValues().get(0));
+ assertEquals("11.230", groupTO.getPlainAttr(doubleSchemaName).get().getValues().get(0));
// 5. modify group with new double value
GroupPatch patch = new GroupPatch();
@@ -1074,7 +1064,7 @@ public class GroupITCase extends AbstractITCase {
groupTO = updateGroup(patch).getEntity();
assertNotNull(groupTO);
- assertEquals("11.257", groupTO.getPlainAttr(doubleSchemaName).getValues().get(0));
+ assertEquals("11.257", groupTO.getPlainAttr(doubleSchemaName).get().getValues().get(0));
// 6. update schema, unset conversion pattern
schema.setConversionPattern(null);
@@ -1087,6 +1077,6 @@ public class GroupITCase extends AbstractITCase {
groupTO = updateGroup(patch).getEntity();
assertNotNull(groupTO);
- assertEquals("11.23", groupTO.getPlainAttr(doubleSchemaName).getValues().get(0));
+ assertEquals("11.23", groupTO.getPlainAttr(doubleSchemaName).get().getValues().get(0));
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/IdentityRecertificationITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/IdentityRecertificationITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/IdentityRecertificationITCase.java
index 3a9ee36..00f8fdb 100755
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/IdentityRecertificationITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/IdentityRecertificationITCase.java
@@ -39,7 +39,7 @@ public class IdentityRecertificationITCase extends AbstractTaskITCase {
assertFalse(forms.isEmpty());
for (WorkflowFormTO form : forms) {
userWorkflowService.claimForm(form.getTaskId());
- WorkflowFormPropertyTO approve = form.getProperty("approve");
+ WorkflowFormPropertyTO approve = form.getProperty("approve").get();
approve.setValue("true");
userWorkflowService.submitForm(form);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/LoggerITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/LoggerITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/LoggerITCase.java
index 0f7253e..e90e9d2 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/LoggerITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/LoggerITCase.java
@@ -33,8 +33,6 @@ import java.util.List;
import java.util.Properties;
import javax.ws.rs.core.Response;
import javax.xml.ws.WebServiceException;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
@@ -69,10 +67,10 @@ public class LoggerITCase extends AbstractITCase {
List<LogAppender> memoryAppenders = loggerService.memoryAppenders();
assertNotNull(memoryAppenders);
assertFalse(memoryAppenders.isEmpty());
- for (LogAppender appender : memoryAppenders) {
+ memoryAppenders.forEach(appender -> {
assertNotNull(appender);
assertNotNull(appender.getName());
- }
+ });
}
@Test
@@ -94,9 +92,9 @@ public class LoggerITCase extends AbstractITCase {
List<LoggerTO> loggers = loggerService.list(LoggerType.LOG);
assertNotNull(loggers);
assertFalse(loggers.isEmpty());
- for (LoggerTO logger : loggers) {
+ loggers.forEach(logger -> {
assertNotNull(logger);
- }
+ });
}
@Test
@@ -354,14 +352,9 @@ public class LoggerITCase extends AbstractITCase {
List<EventCategoryTO> events = loggerService.events();
assertNotNull(events);
- EventCategoryTO userLogic = IterableUtils.find(events, new Predicate<EventCategoryTO>() {
-
- @Override
- public boolean evaluate(final EventCategoryTO object) {
- return "UserLogic".equals(object.getCategory());
- }
- });
+ EventCategoryTO userLogic = events.stream().
+ filter(object -> "UserLogic".equals(object.getCategory())).findAny().get();
assertNotNull(userLogic);
- assertEquals(1, IterableUtils.frequency(userLogic.getEvents(), "create"));
+ assertEquals(1, userLogic.getEvents().stream().filter(event -> "create".equals(event)).count());
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MembershipITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MembershipITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MembershipITCase.java
index 6a4abd1..3511552 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MembershipITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MembershipITCase.java
@@ -21,15 +21,11 @@ package org.apache.syncope.fit.core;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import javax.sql.DataSource;
import javax.ws.rs.core.Response;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.client.lib.SyncopeClient;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.patch.AttrPatch;
@@ -75,7 +71,7 @@ public class MembershipITCase extends AbstractITCase {
UserTO user = UserITCase.getUniqueSampleTO("memb@apache.org");
user.setRealm("/even/two");
user.getPlainAttrs().add(new AttrTO.Builder().schema("aLong").value("1976").build());
- user.getPlainAttrs().remove(user.getPlainAttr("ctype"));
+ user.getPlainAttrs().remove(user.getPlainAttr("ctype").get());
// the group 034740a9-fa10-453b-af37-dc7897e98fb1 has USER type extensions for 'csv' and 'other'
// any type classes
@@ -97,30 +93,24 @@ public class MembershipITCase extends AbstractITCase {
}
// remove fullname and try again
- CollectionUtils.filterInverse(membership.getPlainAttrs(), new Predicate<AttrTO>() {
-
- @Override
- public boolean evaluate(final AttrTO object) {
- return "fullname".equals(object.getSchema());
- }
- });
+ membership.getPlainAttrs().remove(membership.getPlainAttr("fullname").get());
try {
user = createUser(user).getEntity();
// 1. verify that 'aLong' is correctly populated for user
- assertEquals(1, user.getPlainAttr("aLong").getValues().size());
- assertEquals("1976", user.getPlainAttr("aLong").getValues().get(0));
+ assertEquals(1, user.getPlainAttr("aLong").get().getValues().size());
+ assertEquals("1976", user.getPlainAttr("aLong").get().getValues().get(0));
// 2. verify that 'aLong' is correctly populated for user's membership
assertEquals(1, user.getMemberships().size());
- membership = user.getMembership("034740a9-fa10-453b-af37-dc7897e98fb1");
+ membership = user.getMembership("034740a9-fa10-453b-af37-dc7897e98fb1").get();
assertNotNull(membership);
- assertEquals(1, membership.getPlainAttr("aLong").getValues().size());
- assertEquals("1977", membership.getPlainAttr("aLong").getValues().get(0));
+ assertEquals(1, membership.getPlainAttr("aLong").get().getValues().size());
+ assertEquals("1977", membership.getPlainAttr("aLong").get().getValues().get(0));
// 3. verify that derived attrbutes from 'csv' and 'other' are also populated for user's membership
- assertFalse(membership.getDerAttr("csvuserid").getValues().isEmpty());
- assertFalse(membership.getDerAttr("noschema").getValues().isEmpty());
+ assertFalse(membership.getDerAttr("csvuserid").get().getValues().isEmpty());
+ assertFalse(membership.getDerAttr("noschema").get().getValues().isEmpty());
// update user - change some values and add new membership attribute
UserPatch userPatch = new UserPatch();
@@ -139,19 +129,19 @@ public class MembershipITCase extends AbstractITCase {
user = updateUser(userPatch).getEntity();
// 4. verify that 'aLong' is correctly populated for user
- assertEquals(1, user.getPlainAttr("aLong").getValues().size());
- assertEquals("1977", user.getPlainAttr("aLong").getValues().get(0));
- assertNull(user.getPlainAttr("ctype"));
+ assertEquals(1, user.getPlainAttr("aLong").get().getValues().size());
+ assertEquals("1977", user.getPlainAttr("aLong").get().getValues().get(0));
+ assertFalse(user.getPlainAttr("ctype").isPresent());
// 5. verify that 'aLong' is correctly populated for user's membership
assertEquals(1, user.getMemberships().size());
- membership = user.getMembership("034740a9-fa10-453b-af37-dc7897e98fb1");
+ membership = user.getMembership("034740a9-fa10-453b-af37-dc7897e98fb1").get();
assertNotNull(membership);
- assertEquals(1, membership.getPlainAttr("aLong").getValues().size());
- assertEquals("1976", membership.getPlainAttr("aLong").getValues().get(0));
+ assertEquals(1, membership.getPlainAttr("aLong").get().getValues().size());
+ assertEquals("1976", membership.getPlainAttr("aLong").get().getValues().get(0));
// 6. verify that 'ctype' is correctly populated for user's membership
- assertEquals("membership type", membership.getPlainAttr("ctype").getValues().get(0));
+ assertEquals("membership type", membership.getPlainAttr("ctype").get().getValues().get(0));
// finally remove membership
userPatch = new UserPatch();
@@ -211,14 +201,14 @@ public class MembershipITCase extends AbstractITCase {
// verify that 'aLong' is correctly populated for user's membership
assertEquals(1, user.getMemberships().size());
- membership = user.getMembership(groupTO.getKey());
+ membership = user.getMembership(groupTO.getKey()).get();
assertNotNull(membership);
- assertEquals(1, membership.getPlainAttr("aLong").getValues().size());
- assertEquals("1454", membership.getPlainAttr("aLong").getValues().get(0));
+ assertEquals(1, membership.getPlainAttr("aLong").get().getValues().size());
+ assertEquals("1454", membership.getPlainAttr("aLong").get().getValues().get(0));
// verify that derived attrbutes from 'csv' and 'other' are also populated for user's membership
- assertFalse(membership.getDerAttr("csvuserid").getValues().isEmpty());
- assertFalse(membership.getDerAttr("noschema").getValues().isEmpty());
+ assertFalse(membership.getDerAttr("csvuserid").get().getValues().isEmpty());
+ assertFalse(membership.getDerAttr("noschema").get().getValues().isEmpty());
// now remove the group -> all related memberships should have been removed as well
groupService.delete(groupTO.getKey());
@@ -234,27 +224,15 @@ public class MembershipITCase extends AbstractITCase {
ResourceTO newResource = resourceService.read(RESOURCE_NAME_DBPULL);
newResource.setKey(getUUIDString());
- ItemTO item = IterableUtils.find(newResource.getProvision("USER").getMapping().getItems(),
- new Predicate<ItemTO>() {
-
- @Override
- public boolean evaluate(final ItemTO object) {
- return "firstname".equals(object.getIntAttrName());
- }
- });
+ ItemTO item = newResource.getProvision("USER").get().getMapping().getItems().stream().
+ filter(object -> "firstname".equals(object.getIntAttrName())).findFirst().get();
assertNotNull(item);
assertEquals("ID", item.getExtAttrName());
item.setIntAttrName("memberships[additional].aLong");
item.setPurpose(MappingPurpose.BOTH);
- item = IterableUtils.find(newResource.getProvision("USER").getMapping().getItems(),
- new Predicate<ItemTO>() {
-
- @Override
- public boolean evaluate(final ItemTO object) {
- return "fullname".equals(object.getIntAttrName());
- }
- });
+ item = newResource.getProvision("USER").get().getMapping().getItems().stream().
+ filter(object -> "fullname".equals(object.getIntAttrName())).findFirst().get();
item.setPurpose(MappingPurpose.PULL);
PullTaskTO newTask = null;
@@ -265,7 +243,7 @@ public class MembershipITCase extends AbstractITCase {
// 1. create user with new resource assigned
UserTO user = UserITCase.getUniqueSampleTO("memb@apache.org");
user.setRealm("/even/two");
- user.getPlainAttrs().remove(user.getPlainAttr("ctype"));
+ user.getPlainAttrs().remove(user.getPlainAttr("ctype").get());
user.getResources().clear();
user.getResources().add(newResource.getKey());
@@ -311,7 +289,7 @@ public class MembershipITCase extends AbstractITCase {
assertEquals(1, users.getTotalCount());
assertEquals(1, users.getResult().get(0).getMemberships().size());
assertEquals("5432", users.getResult().get(0).getMemberships().get(0).
- getPlainAttr("aLong").getValues().get(0));
+ getPlainAttr("aLong").get().getValues().get(0));
} catch (Exception e) {
LOG.error("Unexpected error", e);
fail(e.getMessage());
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MigrationITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MigrationITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MigrationITCase.java
index 7600340..40e878a 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MigrationITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MigrationITCase.java
@@ -27,12 +27,9 @@ import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import javax.ws.rs.core.Response;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.commons.io.IOUtils;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.SyncopeConstants;
-import org.apache.syncope.common.lib.to.AbstractTaskTO;
import org.apache.syncope.common.lib.to.AnyTypeClassTO;
import org.apache.syncope.common.lib.to.AttrTO;
import org.apache.syncope.common.lib.to.BulkAction;
@@ -40,7 +37,6 @@ import org.apache.syncope.common.lib.to.ConnInstanceTO;
import org.apache.syncope.common.lib.to.GroupTO;
import org.apache.syncope.common.lib.to.ItemTO;
import org.apache.syncope.common.lib.to.MappingTO;
-import org.apache.syncope.common.lib.to.MembershipTO;
import org.apache.syncope.common.lib.to.PlainSchemaTO;
import org.apache.syncope.common.lib.to.ProvisionTO;
import org.apache.syncope.common.lib.to.PullTaskTO;
@@ -428,13 +424,12 @@ public class MigrationITCase extends AbstractTaskITCase {
public void migrateFromSyncope12() throws InterruptedException {
// 1. cleanup
try {
- for (AbstractTaskTO task : taskService.list(
- new TaskQuery.Builder(TaskType.PULL).resource(RESOURCE_KEY).build()).getResult()) {
-
- if (PULL_TASK_NAME.equals(PullTaskTO.class.cast(task).getName())) {
- taskService.delete(task.getKey());
- }
- }
+ taskService.list(
+ new TaskQuery.Builder(TaskType.PULL).resource(RESOURCE_KEY).build()).getResult().stream().
+ filter(task -> PULL_TASK_NAME.equals(PullTaskTO.class.cast(task).getName())).
+ forEachOrdered(task -> {
+ taskService.delete(task.getKey());
+ });
} catch (Exception e) {
// ignore
}
@@ -444,11 +439,11 @@ public class MigrationITCase extends AbstractTaskITCase {
// ignore
}
try {
- for (ConnInstanceTO connInstance : connectorService.list(null)) {
- if (CONNINSTANCE_DISPLAY_NAME.equals(connInstance.getDisplayName())) {
- connectorService.delete(connInstance.getKey());
- }
- }
+ connectorService.list(null).stream().
+ filter(connInstance -> CONNINSTANCE_DISPLAY_NAME.equals(connInstance.getDisplayName())).
+ forEachOrdered(connInstance -> {
+ connectorService.delete(connInstance.getKey());
+ });
} catch (Exception e) {
// ignore
}
@@ -464,15 +459,17 @@ public class MigrationITCase extends AbstractTaskITCase {
BulkAction bulkAction = new BulkAction();
bulkAction.setType(BulkAction.Type.DELETE);
- for (UserTO user : userService.search(new AnyQuery.Builder().fiql("username==*12").build()).getResult()) {
- bulkAction.getTargets().add(user.getKey());
- }
+ userService.search(new AnyQuery.Builder().fiql("username==*12").build()).getResult().
+ forEach(user -> {
+ bulkAction.getTargets().add(user.getKey());
+ });
userService.bulk(bulkAction);
bulkAction.getTargets().clear();
- for (GroupTO group : groupService.search(new AnyQuery.Builder().fiql("name==*12").build()).getResult()) {
- bulkAction.getTargets().add(group.getKey());
- }
+ groupService.search(new AnyQuery.Builder().fiql("name==*12").build()).getResult().
+ forEach(group -> {
+ bulkAction.getTargets().add(group.getKey());
+ });
groupService.bulk(bulkAction);
// 2. setup
@@ -498,13 +495,8 @@ public class MigrationITCase extends AbstractTaskITCase {
user = userService.read("rossini12");
assertNotNull(user);
- membershipFound = IterableUtils.matchesAny(user.getMemberships(), new Predicate<MembershipTO>() {
-
- @Override
- public boolean evaluate(final MembershipTO object) {
- return "1 root12".equals(object.getGroupName());
- }
- });
+ membershipFound = user.getMemberships().stream().
+ anyMatch(object -> "1 root12".equals(object.getGroupName()));
} catch (Exception e) {
// ignore
}
@@ -520,8 +512,8 @@ public class MigrationITCase extends AbstractTaskITCase {
assertEquals("/" + MIGRATION_REALM, group.getRealm());
// 4a. user plain attrs
- assertEquals("Gioacchino", user.getPlainAttr("firstname").getValues().get(0));
- assertEquals("Rossini", user.getPlainAttr("surname").getValues().get(0));
+ assertEquals("Gioacchino", user.getPlainAttr("firstname").get().getValues().get(0));
+ assertEquals("Rossini", user.getPlainAttr("surname").get().getValues().get(0));
// 4b. user resources
assertTrue(user.getResources().contains(RESOURCE_NAME_TESTDB2));
@@ -530,7 +522,7 @@ public class MigrationITCase extends AbstractTaskITCase {
assertNotNull(clientFactory.create("bellini12", ADMIN_PWD).self());
// 4d. group plain attrs
- assertEquals("r12", group.getPlainAttr("title").getValues().get(0));
+ assertEquals("r12", group.getPlainAttr("title").get().getValues().get(0));
// 4e. group resources
assertTrue(group.getResources().contains(RESOURCE_NAME_CSV));
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PlainSchemaITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PlainSchemaITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PlainSchemaITCase.java
index 8841851..152fcdd 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PlainSchemaITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PlainSchemaITCase.java
@@ -28,8 +28,6 @@ import static org.junit.Assert.fail;
import java.util.List;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.Response;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.commons.lang3.SerializationUtils;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.to.AnyTypeClassTO;
@@ -163,9 +161,9 @@ public class PlainSchemaITCase extends AbstractITCase {
public void list() {
List<PlainSchemaTO> schemas = schemaService.list(new SchemaQuery.Builder().type(SchemaType.PLAIN).build());
assertFalse(schemas.isEmpty());
- for (PlainSchemaTO schemaTO : schemas) {
+ schemas.forEach(schemaTO -> {
assertNotNull(schemaTO);
- }
+ });
}
@Test
@@ -173,24 +171,14 @@ public class PlainSchemaITCase extends AbstractITCase {
List<PlainSchemaTO> userSchemas = schemaService.list(
new SchemaQuery.Builder().type(SchemaType.PLAIN).anyTypeClass("minimal user").build());
- assertTrue(IterableUtils.matchesAny(userSchemas, new Predicate<PlainSchemaTO>() {
-
- @Override
- public boolean evaluate(final PlainSchemaTO object) {
- return "fullname".equals(object.getKey());
- }
- }));
-
- assertFalse(IterableUtils.matchesAny(userSchemas, new Predicate<PlainSchemaTO>() {
+ assertTrue(userSchemas.stream().anyMatch(object -> "fullname".equals(object.getKey())));
- @Override
- public boolean evaluate(final PlainSchemaTO object) {
- return "password.cipher.algorithm".equals(object.getKey())
- || "rderived_dx".equals(object.getKey())
- || "icon".equals(object.getKey())
- || "mderived_sx".equals(object.getKey())
- || "self.membership.layout".equals(object.getKey());
- }
+ assertFalse(userSchemas.stream().anyMatch(object -> {
+ return "password.cipher.algorithm".equals(object.getKey())
+ || "rderived_dx".equals(object.getKey())
+ || "icon".equals(object.getKey())
+ || "mderived_sx".equals(object.getKey())
+ || "self.membership.layout".equals(object.getKey());
}));
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PropagationTaskITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PropagationTaskITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PropagationTaskITCase.java
index f4aa9bf..20b61ac 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PropagationTaskITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PropagationTaskITCase.java
@@ -25,8 +25,7 @@ import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
import java.util.List;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
+import java.util.Optional;
import org.apache.commons.lang3.SerializationUtils;
import org.apache.syncope.common.lib.to.AbstractTaskTO;
import org.apache.syncope.common.lib.to.AnyObjectTO;
@@ -98,9 +97,7 @@ public class PropagationTaskITCase extends AbstractTaskITCase {
BulkAction bulkAction = new BulkAction();
bulkAction.setType(BulkAction.Type.DELETE);
- for (PropagationTaskTO taskTO : tasks) {
- bulkAction.getTargets().add(taskTO.getKey());
- }
+ tasks.forEach(taskTO -> bulkAction.getTargets().add(taskTO.getKey()));
taskService.bulk(bulkAction);
@@ -113,29 +110,23 @@ public class PropagationTaskITCase extends AbstractTaskITCase {
// 0. Set propagation JEXL MappingItemTransformer
ResourceTO resource = resourceService.read(RESOURCE_NAME_DBSCRIPTED);
ResourceTO originalResource = SerializationUtils.clone(resource);
- ProvisionTO provision = resource.getProvision("PRINTER");
+ ProvisionTO provision = resource.getProvision("PRINTER").get();
assertNotNull(provision);
- ItemTO mappingItem = IterableUtils.find(
- provision.getMapping().getItems(), new Predicate<ItemTO>() {
-
- @Override
- public boolean evaluate(final ItemTO object) {
- return "location".equals(object.getIntAttrName());
- }
- });
- assertNotNull(mappingItem);
- assertTrue(mappingItem.getTransformerClassNames().isEmpty());
+ Optional<ItemTO> mappingItem = provision.getMapping().getItems().stream().
+ filter(item -> "location".equals(item.getIntAttrName())).findFirst();
+ assertTrue(mappingItem.isPresent());
+ assertTrue(mappingItem.get().getTransformerClassNames().isEmpty());
String suffix = getUUIDString();
- mappingItem.setPropagationJEXLTransformer("value + '" + suffix + "'");
+ mappingItem.get().setPropagationJEXLTransformer("value + '" + suffix + "'");
try {
resourceService.update(resource);
// 1. create printer on external resource
AnyObjectTO anyObjectTO = AnyObjectITCase.getSampleTO("propagationJEXLTransformer");
- String originalLocation = anyObjectTO.getPlainAttr("location").getValues().get(0);
+ String originalLocation = anyObjectTO.getPlainAttr("location").get().getValues().get(0);
assertFalse(originalLocation.endsWith(suffix));
anyObjectTO = createAnyObject(anyObjectTO).getEntity();
@@ -145,8 +136,8 @@ public class PropagationTaskITCase extends AbstractTaskITCase {
// (location ends with given suffix on external resource)
ConnObjectTO connObjectTO = resourceService.
readConnObject(RESOURCE_NAME_DBSCRIPTED, anyObjectTO.getType(), anyObjectTO.getKey());
- assertFalse(anyObjectTO.getPlainAttr("location").getValues().get(0).endsWith(suffix));
- assertTrue(connObjectTO.getAttr("LOCATION").getValues().get(0).endsWith(suffix));
+ assertFalse(anyObjectTO.getPlainAttr("location").get().getValues().get(0).endsWith(suffix));
+ assertTrue(connObjectTO.getAttr("LOCATION").get().getValues().get(0).endsWith(suffix));
} finally {
resourceService.update(originalResource);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java
index c0ac469..9427672 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java
@@ -39,8 +39,6 @@ import java.util.Set;
import java.util.UUID;
import javax.sql.DataSource;
import javax.ws.rs.core.Response;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.SerializationUtils;
import org.apache.commons.lang3.tuple.Pair;
@@ -121,11 +119,9 @@ public class PullTaskITCase extends AbstractTaskITCase {
public void list() {
PagedResult<PullTaskTO> tasks = taskService.list(new TaskQuery.Builder(TaskType.PULL).build());
assertFalse(tasks.getResult().isEmpty());
- for (AbstractTaskTO task : tasks.getResult()) {
- if (!(task instanceof PullTaskTO)) {
- fail();
- }
- }
+ tasks.getResult().stream().
+ filter(task -> (!(task instanceof PullTaskTO))).
+ forEach(item -> fail());
}
@Test
@@ -228,9 +224,9 @@ public class PullTaskITCase extends AbstractTaskITCase {
assertEquals(userName, userTO.getUsername());
assertEquals(ActivitiDetector.isActivitiEnabledForUsers(syncopeService)
? "active" : "created", userTO.getStatus());
- assertEquals("test9@syncope.apache.org", userTO.getPlainAttr("email").getValues().get(0));
- assertEquals("test9@syncope.apache.org", userTO.getPlainAttr("userId").getValues().get(0));
- assertTrue(Integer.valueOf(userTO.getPlainAttr("fullname").getValues().get(0)) <= 10);
+ assertEquals("test9@syncope.apache.org", userTO.getPlainAttr("email").get().getValues().get(0));
+ assertEquals("test9@syncope.apache.org", userTO.getPlainAttr("userId").get().getValues().get(0));
+ assertTrue(Integer.valueOf(userTO.getPlainAttr("fullname").get().getValues().get(0)) <= 10);
assertTrue(userTO.getResources().contains(RESOURCE_NAME_TESTDB));
assertTrue(userTO.getResources().contains(RESOURCE_NAME_WS2));
@@ -240,7 +236,7 @@ public class PullTaskITCase extends AbstractTaskITCase {
// check for user template
userTO = userService.read("test7");
assertNotNull(userTO);
- assertEquals("TYPE_OTHER", userTO.getPlainAttr("ctype").getValues().get(0));
+ assertEquals("TYPE_OTHER", userTO.getPlainAttr("ctype").get().getValues().get(0));
assertEquals(3, userTO.getResources().size());
assertTrue(userTO.getResources().contains(RESOURCE_NAME_TESTDB));
assertTrue(userTO.getResources().contains(RESOURCE_NAME_WS2));
@@ -249,17 +245,12 @@ public class PullTaskITCase extends AbstractTaskITCase {
// Unmatching --> Assign (link) - SYNCOPE-658
assertTrue(userTO.getResources().contains(RESOURCE_NAME_CSV));
- assertEquals(1, IterableUtils.countMatches(userTO.getDerAttrs(), new Predicate<AttrTO>() {
-
- @Override
- public boolean evaluate(final AttrTO attrTO) {
- return "csvuserid".equals(attrTO.getSchema());
- }
- }));
+ assertEquals(1, userTO.getDerAttrs().stream().
+ filter(attrTO -> "csvuserid".equals(attrTO.getSchema())).count());
userTO = userService.read("test8");
assertNotNull(userTO);
- assertEquals("TYPE_8", userTO.getPlainAttr("ctype").getValues().get(0));
+ assertEquals("TYPE_8", userTO.getPlainAttr("ctype").get().getValues().get(0));
// Check for ignored user - SYNCOPE-663
try {
@@ -312,7 +303,7 @@ public class PullTaskITCase extends AbstractTaskITCase {
userTO = userService.read("testuser1");
assertNotNull(userTO);
- assertEquals("reconciled@syncope.apache.org", userTO.getPlainAttr("userId").getValues().get(0));
+ assertEquals("reconciled@syncope.apache.org", userTO.getPlainAttr("userId").get().getValues().get(0));
assertEquals("suspended", userTO.getStatus());
// enable user on external resource
@@ -370,7 +361,7 @@ public class PullTaskITCase extends AbstractTaskITCase {
// Check for SYNCOPE-436
assertEquals("pullFromLDAP",
- matchingUsers.getResult().get(0).getVirAttr("virtualReadOnly").getValues().get(0));
+ matchingUsers.getResult().get(0).getVirAttr("virtualReadOnly").get().getValues().get(0));
// Check for SYNCOPE-270
assertNotNull(matchingUsers.getResult().get(0).getPlainAttr("obscure"));
// Check for SYNCOPE-123
@@ -379,7 +370,7 @@ public class PullTaskITCase extends AbstractTaskITCase {
GroupTO groupTO = matchingGroups.getResult().iterator().next();
assertNotNull(groupTO);
assertEquals("testLDAPGroup", groupTO.getName());
- assertEquals("true", groupTO.getPlainAttr("show").getValues().get(0));
+ assertEquals("true", groupTO.getPlainAttr("show").get().getValues().get(0));
assertEquals(matchingUsers.getResult().iterator().next().getKey(), groupTO.getUserOwner());
assertNull(groupTO.getGroupOwner());
@@ -414,16 +405,11 @@ public class PullTaskITCase extends AbstractTaskITCase {
// 0. reset sync token and set MappingItemTransformer
ResourceTO resource = resourceService.read(RESOURCE_NAME_DBSCRIPTED);
ResourceTO originalResource = SerializationUtils.clone(resource);
- ProvisionTO provision = resource.getProvision("PRINTER");
+ ProvisionTO provision = resource.getProvision("PRINTER").get();
assertNotNull(provision);
- ItemTO mappingItem = IterableUtils.find(provision.getMapping().getItems(), new Predicate<ItemTO>() {
-
- @Override
- public boolean evaluate(final ItemTO object) {
- return "location".equals(object.getIntAttrName());
- }
- });
+ ItemTO mappingItem = provision.getMapping().getItems().stream().
+ filter(object -> "location".equals(object.getIntAttrName())).findFirst().get();
assertNotNull(mappingItem);
mappingItem.getTransformerClassNames().clear();
mappingItem.getTransformerClassNames().add(PrefixItemTransformer.class.getName());
@@ -441,7 +427,7 @@ public class PullTaskITCase extends AbstractTaskITCase {
// 1. create printer on external resource
AnyObjectTO anyObjectTO = AnyObjectITCase.getSampleTO("pull");
- String originalLocation = anyObjectTO.getPlainAttr("location").getValues().get(0);
+ String originalLocation = anyObjectTO.getPlainAttr("location").get().getValues().get(0);
assertFalse(originalLocation.startsWith(PrefixItemTransformer.PREFIX));
anyObjectTO = createAnyObject(anyObjectTO).getEntity();
@@ -451,9 +437,9 @@ public class PullTaskITCase extends AbstractTaskITCase {
// (location starts with given prefix on external resource)
ConnObjectTO connObjectTO = resourceService.
readConnObject(RESOURCE_NAME_DBSCRIPTED, anyObjectTO.getType(), anyObjectTO.getKey());
- assertFalse(anyObjectTO.getPlainAttr("location").getValues().get(0).
+ assertFalse(anyObjectTO.getPlainAttr("location").get().getValues().get(0).
startsWith(PrefixItemTransformer.PREFIX));
- assertTrue(connObjectTO.getAttr("LOCATION").getValues().get(0).
+ assertTrue(connObjectTO.getAttr("LOCATION").get().getValues().get(0).
startsWith(PrefixItemTransformer.PREFIX));
// 3. unlink any existing printer and delete from Syncope (printer is now only on external resource)
@@ -487,8 +473,8 @@ public class PullTaskITCase extends AbstractTaskITCase {
assertTrue(matchingPrinters.getSize() > 0);
// 6. verify that synctoken was updated
- assertNotNull(
- resourceService.read(RESOURCE_NAME_DBSCRIPTED).getProvision(anyObjectTO.getType()).getSyncToken());
+ assertNotNull(resourceService.read(RESOURCE_NAME_DBSCRIPTED).
+ getProvision(anyObjectTO.getType()).get().getSyncToken());
} finally {
resourceService.update(originalResource);
}
@@ -562,7 +548,7 @@ public class PullTaskITCase extends AbstractTaskITCase {
try {
connForTest.getCapabilities().add(ConnectorCapability.SYNC);
- ConnConfProperty changeLogColumn = connForTest.getConf("changeLogColumn");
+ ConnConfProperty changeLogColumn = connForTest.getConf("changeLogColumn").get();
assertNotNull(changeLogColumn);
assertTrue(changeLogColumn.getValues().isEmpty());
changeLogColumn.getValues().add("lastModification");
@@ -607,7 +593,7 @@ public class PullTaskITCase extends AbstractTaskITCase {
assertEquals(PropagationTaskExecStatus.SUCCESS, PropagationTaskExecStatus.valueOf(exec.getStatus()));
resForTest = resourceService.read(resForTest.getKey());
- assertTrue(resForTest.getProvision(AnyTypeKind.USER.name()).getSyncToken().contains("2014-05-23"));
+ assertTrue(resForTest.getProvision(AnyTypeKind.USER.name()).get().getSyncToken().contains("2014-05-23"));
jdbcTemplate.execute("UPDATE testpull "
+ "SET email='syncTokenWithErrors2@syncope.apache.org', lastModification='2016-05-23 13:53:24.293' "
@@ -617,7 +603,7 @@ public class PullTaskITCase extends AbstractTaskITCase {
assertEquals(PropagationTaskExecStatus.SUCCESS, PropagationTaskExecStatus.valueOf(exec.getStatus()));
resForTest = resourceService.read(resForTest.getKey());
- assertTrue(resForTest.getProvision(AnyTypeKind.USER.name()).getSyncToken().contains("2016-05-23"));
+ assertTrue(resForTest.getProvision(AnyTypeKind.USER.name()).get().getSyncToken().contains("2016-05-23"));
} finally {
if (resForTest.getConnector() != null) {
resourceService.delete(resForTest.getKey());
@@ -689,7 +675,7 @@ public class PullTaskITCase extends AbstractTaskITCase {
userTO = userService.read("testuser2");
assertNotNull(userTO);
- assertEquals("testuser2@syncope.apache.org", userTO.getPlainAttr("userId").getValues().get(0));
+ assertEquals("testuser2@syncope.apache.org", userTO.getPlainAttr("userId").get().getValues().get(0));
assertEquals(2, userTO.getMemberships().size());
assertEquals(4, userTO.getResources().size());
} finally {
@@ -714,7 +700,7 @@ public class PullTaskITCase extends AbstractTaskITCase {
// 3. read e-mail address for user created by the PullTask first execution
UserTO userTO = userService.read("issuesyncope230");
assertNotNull(userTO);
- String email = userTO.getPlainAttr("email").getValues().iterator().next();
+ String email = userTO.getPlainAttr("email").get().getValues().iterator().next();
assertNotNull(email);
// 4. update TESTPULL on external H2 by changing e-mail address
@@ -726,7 +712,7 @@ public class PullTaskITCase extends AbstractTaskITCase {
// 6. verify that the e-mail was updated
userTO = userService.read("issuesyncope230");
assertNotNull(userTO);
- email = userTO.getPlainAttr("email").getValues().iterator().next();
+ email = userTO.getPlainAttr("email").get().getValues().iterator().next();
assertNotNull(email);
assertEquals("updatedSYNCOPE230@syncope.apache.org", email);
}
@@ -806,7 +792,7 @@ public class PullTaskITCase extends AbstractTaskITCase {
userTO = userService.read(userTO.getKey());
assertNotNull(userTO);
- assertNotNull(userTO.getPlainAttr("firstname").getValues().get(0));
+ assertNotNull(userTO.getPlainAttr("firstname").get().getValues().get(0));
} finally {
removeTestUsers();
}
@@ -816,8 +802,8 @@ public class PullTaskITCase extends AbstractTaskITCase {
public void issueSYNCOPE307() {
UserTO userTO = UserITCase.getUniqueSampleTO("s307@apache.org");
userTO.setUsername("test0");
- userTO.getPlainAttr("firstname").getValues().clear();
- userTO.getPlainAttr("firstname").getValues().add("nome0");
+ userTO.getPlainAttr("firstname").get().getValues().clear();
+ userTO.getPlainAttr("firstname").get().getValues().add("nome0");
userTO.getAuxClasses().add("csv");
userTO.getResources().clear();
@@ -847,7 +833,7 @@ public class PullTaskITCase extends AbstractTaskITCase {
// check that template was successfully applied...
userTO = userService.read(userTO.getKey());
- assertEquals("virtualvalue", userTO.getVirAttr("virtualdata").getValues().get(0));
+ assertEquals("virtualvalue", userTO.getVirAttr("virtualdata").get().getValues().get(0));
// ...and that propagation to db succeeded
JdbcTemplate jdbcTemplate = new JdbcTemplate(testDataSource);
@@ -944,15 +930,15 @@ public class PullTaskITCase extends AbstractTaskITCase {
ConnObjectTO connObject =
resourceService.readConnObject(RESOURCE_NAME_LDAP, AnyTypeKind.USER.name(), user.getKey());
assertNotNull(getLdapRemoteObject(
- connObject.getAttr(Name.NAME).getValues().get(0),
+ connObject.getAttr(Name.NAME).get().getValues().get(0),
oldCleanPassword,
- connObject.getAttr(Name.NAME).getValues().get(0)));
+ connObject.getAttr(Name.NAME).get().getValues().get(0)));
// 5. Update the LDAP Connector to retrieve passwords
ResourceTO ldapResource = resourceService.read(RESOURCE_NAME_LDAP);
resourceConnector = connectorService.read(
ldapResource.getConnector(), Locale.ENGLISH.getLanguage());
- property = resourceConnector.getConf("retrievePasswordsWithSearch");
+ property = resourceConnector.getConf("retrievePasswordsWithSearch").get();
property.getValues().clear();
property.getValues().add(Boolean.TRUE);
connectorService.update(resourceConnector);
@@ -1038,7 +1024,7 @@ public class PullTaskITCase extends AbstractTaskITCase {
// the user is successfully pulled...
user = userService.read("pullFromLDAP");
assertNotNull(user);
- assertEquals("pullFromLDAP@syncope.apache.org", user.getPlainAttr("email").getValues().get(0));
+ assertEquals("pullFromLDAP@syncope.apache.org", user.getPlainAttr("email").get().getValues().get(0));
group = groupService.read("testLDAPGroup");
assertNotNull(group);
@@ -1046,8 +1032,8 @@ public class PullTaskITCase extends AbstractTaskITCase {
ConnObjectTO connObject =
resourceService.readConnObject(RESOURCE_NAME_LDAP, AnyTypeKind.USER.name(), user.getKey());
assertNotNull(connObject);
- assertEquals("pullFromLDAP@syncope.apache.org", connObject.getAttr("mail").getValues().get(0));
- AttrTO userDn = connObject.getAttr(Name.NAME);
+ assertEquals("pullFromLDAP@syncope.apache.org", connObject.getAttr("mail").get().getValues().get(0));
+ AttrTO userDn = connObject.getAttr(Name.NAME).get();
assertNotNull(userDn);
assertEquals(1, userDn.getValues().size());
assertNotNull(
@@ -1065,7 +1051,7 @@ public class PullTaskITCase extends AbstractTaskITCase {
connObject = resourceService.readConnObject(RESOURCE_NAME_LDAP, AnyTypeKind.USER.name(), user.getKey());
assertNotNull(connObject);
- assertEquals("pullFromLDAP2@syncope.apache.org", connObject.getAttr("mail").getValues().get(0));
+ assertEquals("pullFromLDAP2@syncope.apache.org", connObject.getAttr("mail").get().getValues().get(0));
// 5. exec the pull task again
execution = execProvisioningTask(taskService, pullTask.getKey(), 50, false);
@@ -1074,7 +1060,7 @@ public class PullTaskITCase extends AbstractTaskITCase {
// the internal is updated...
user = userService.read("pullFromLDAP");
assertNotNull(user);
- assertEquals("pullFromLDAP2@syncope.apache.org", user.getPlainAttr("email").getValues().get(0));
+ assertEquals("pullFromLDAP2@syncope.apache.org", user.getPlainAttr("email").get().getValues().get(0));
// ...and propagated
propagationTasks = taskService.list(new TaskQuery.Builder(TaskType.PROPAGATION).
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PushTaskITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PushTaskITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PushTaskITCase.java
index fe62261..368acde 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PushTaskITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PushTaskITCase.java
@@ -31,7 +31,6 @@ import javax.sql.DataSource;
import javax.ws.rs.core.Response;
import org.apache.syncope.client.lib.SyncopeClient;
import org.apache.syncope.common.lib.SyncopeConstants;
-import org.apache.syncope.common.lib.to.AbstractTaskTO;
import org.apache.syncope.common.lib.to.AnyTypeClassTO;
import org.apache.syncope.common.lib.to.PagedResult;
import org.apache.syncope.common.lib.to.PushTaskTO;
@@ -90,11 +89,9 @@ public class PushTaskITCase extends AbstractTaskITCase {
public void list() {
PagedResult<PushTaskTO> tasks = taskService.list(new TaskQuery.Builder(TaskType.PUSH).build());
assertFalse(tasks.getResult().isEmpty());
- for (AbstractTaskTO task : tasks.getResult()) {
- if (!(task instanceof PushTaskTO)) {
- fail();
- }
- }
+ tasks.getResult().stream().
+ filter((task) -> (!(task instanceof PushTaskTO))).
+ forEach(item -> fail());
}
@Test
@@ -358,8 +355,8 @@ public class PushTaskITCase extends AbstractTaskITCase {
Response response = resourceService.create(resourceTO);
newResourceTO = getObject(response.getLocation(), ResourceService.class, ResourceTO.class);
assertNotNull(newResourceTO);
- assertNull(newResourceTO.getProvision(AnyTypeKind.USER.name()));
- assertNotNull(newResourceTO.getProvision(AnyTypeKind.GROUP.name()).getMapping());
+ assertFalse(newResourceTO.getProvision(AnyTypeKind.USER.name()).isPresent());
+ assertNotNull(newResourceTO.getProvision(AnyTypeKind.GROUP.name()).get().getMapping());
// create push task ad-hoc
PushTaskTO task = new PushTaskTO();
[11/16] syncope git commit: [SYNCOPE-938] Switching from
commons-collections to Java 8 features
Posted by il...@apache.org.
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowFormTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowFormTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowFormTO.java
index 0e80be6..2f99b65 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowFormTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowFormTO.java
@@ -23,12 +23,11 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import java.util.Optional;
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.patch.UserPatch;
@@ -135,14 +134,8 @@ public class WorkflowFormTO extends AbstractBaseBean {
}
@JsonIgnore
- public WorkflowFormPropertyTO getProperty(final String id) {
- return IterableUtils.find(properties, new Predicate<WorkflowFormPropertyTO>() {
-
- @Override
- public boolean evaluate(final WorkflowFormPropertyTO object) {
- return id.equals(object.getId());
- }
- });
+ public Optional<WorkflowFormPropertyTO> getProperty(final String id) {
+ return properties.stream().filter(property -> id.equals(property.getId())).findFirst();
}
@XmlElementWrapper(name = "workflowFormProperties")
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/logic/src/main/java/org/apache/syncope/core/logic/AbstractAnyLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/AbstractAnyLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/AbstractAnyLogic.java
index fd7e5f2..ad43e0e 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/AbstractAnyLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/AbstractAnyLogic.java
@@ -22,9 +22,6 @@ 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.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.common.lib.SyncopeClientException;
@@ -77,7 +74,7 @@ public abstract class AbstractAnyLogic<TO extends AnyTO, P extends AnyPatch> ext
private List<LogicActions> getActions(final Realm realm) {
List<LogicActions> actions = new ArrayList<>();
- for (String className : realm.getActionsClassNames()) {
+ realm.getActionsClassNames().forEach(className -> {
try {
Class<?> actionsClass = Class.forName(className);
LogicActions logicActions = (LogicActions) ApplicationContextProvider.getBeanFactory().
@@ -87,7 +84,7 @@ public abstract class AbstractAnyLogic<TO extends AnyTO, P extends AnyPatch> ext
} catch (Exception e) {
LOG.warn("Class '{}' not found", className, e);
}
- }
+ });
return actions;
}
@@ -229,20 +226,15 @@ public abstract class AbstractAnyLogic<TO extends AnyTO, P extends AnyPatch> ext
}
protected boolean securityChecks(final Set<String> effectiveRealms, final String realm, final String key) {
- boolean authorized = IterableUtils.matchesAny(effectiveRealms, new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String ownedRealm) {
- return realm.startsWith(ownedRealm);
- }
- });
+ boolean authorized = effectiveRealms.stream().anyMatch(ownedRealm -> realm.startsWith(ownedRealm));
if (!authorized) {
AnyDAO<?> anyDAO = this instanceof UserLogic
? userDAO
: this instanceof GroupLogic
? groupDAO
: anyObjectDAO;
- authorized = !CollectionUtils.intersection(anyDAO.findDynRealms(key), effectiveRealms).isEmpty();
+ authorized = anyDAO.findDynRealms(key).stream().
+ filter(dynRealm -> effectiveRealms.contains(dynRealm)).findFirst().isPresent();
}
if (!authorized) {
throw new DelegatedAdministrationException(
@@ -255,7 +247,7 @@ public abstract class AbstractAnyLogic<TO extends AnyTO, P extends AnyPatch> ext
key);
}
- return IterableUtils.matchesAny(effectiveRealms, new RealmUtils.DynRealmsPredicate());
+ return effectiveRealms.stream().anyMatch(new RealmUtils.DynRealmsPredicate());
}
public abstract TO read(String key);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/logic/src/main/java/org/apache/syncope/core/logic/AccessTokenLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/AccessTokenLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/AccessTokenLogic.java
index f1a39c1..ee3877f 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/AccessTokenLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/AccessTokenLogic.java
@@ -21,13 +21,11 @@ package org.apache.syncope.core.logic;
import static org.apache.syncope.core.logic.AbstractLogic.LOG;
import java.lang.reflect.Method;
-import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
+import java.util.stream.Collectors;
import javax.annotation.Resource;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.common.lib.to.AccessTokenTO;
import org.apache.syncope.common.lib.types.CipherAlgorithm;
@@ -115,14 +113,8 @@ public class AccessTokenLogic extends AbstractTransactionalLogic<AccessTokenTO>
final int size,
final List<OrderByClause> orderByClauses) {
- return CollectionUtils.collect(accessTokenDAO.findAll(page, size, orderByClauses),
- new Transformer<AccessToken, AccessTokenTO>() {
-
- @Override
- public AccessTokenTO transform(final AccessToken input) {
- return binder.getAccessTokenTO(input);
- }
- }, new ArrayList<AccessTokenTO>());
+ return accessTokenDAO.findAll(page, size, orderByClauses).stream().
+ map(accessToken -> binder.getAccessTokenTO(accessToken)).collect(Collectors.toList());
}
@PreAuthorize("hasRole('" + StandardEntitlement.ACCESS_TOKEN_DELETE + "')")
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/logic/src/main/java/org/apache/syncope/core/logic/AnyObjectLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/AnyObjectLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/AnyObjectLogic.java
index e5621be..a067ab7 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/AnyObjectLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/AnyObjectLogic.java
@@ -19,13 +19,11 @@
package org.apache.syncope.core.logic;
import java.lang.reflect.Method;
-import java.util.ArrayList;
import java.util.Collection;
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.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
@@ -95,14 +93,8 @@ public class AnyObjectLogic extends AbstractAnyLogic<AnyObjectTO, AnyObjectPatch
List<AnyObject> matching = searchDAO.search(
effectiveRealms, searchCond, page, size, orderBy, AnyTypeKind.ANY_OBJECT);
- List<AnyObjectTO> result = CollectionUtils.collect(matching, new Transformer<AnyObject, AnyObjectTO>() {
-
- @Transactional(readOnly = true)
- @Override
- public AnyObjectTO transform(final AnyObject input) {
- return binder.getAnyObjectTO(input, details);
- }
- }, new ArrayList<AnyObjectTO>());
+ List<AnyObjectTO> result = matching.stream().
+ map(anyObject -> binder.getAnyObjectTO(anyObject, details)).collect(Collectors.toList());
return Pair.of(count, result);
}
@@ -184,13 +176,9 @@ public class AnyObjectLogic extends AbstractAnyLogic<AnyObjectTO, AnyObjectPatch
AnyObjectPatch patch = new AnyObjectPatch();
patch.setKey(key);
- patch.getResources().addAll(CollectionUtils.collect(resources, new Transformer<String, StringPatchItem>() {
-
- @Override
- public StringPatchItem transform(final String resource) {
- return new StringPatchItem.Builder().operation(PatchOperation.DELETE).value(resource).build();
- }
- }));
+ patch.getResources().addAll(resources.stream().map(resource
+ -> new StringPatchItem.Builder().operation(PatchOperation.DELETE).value(resource).build()).
+ collect(Collectors.toList()));
return binder.getAnyObjectTO(provisioningManager.unlink(patch));
}
@@ -206,13 +194,9 @@ public class AnyObjectLogic extends AbstractAnyLogic<AnyObjectTO, AnyObjectPatch
AnyObjectPatch patch = new AnyObjectPatch();
patch.setKey(key);
- patch.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();
- }
- }));
+ patch.getResources().addAll(resources.stream().map(resource
+ -> new StringPatchItem.Builder().operation(PatchOperation.ADD_REPLACE).value(resource).build()).
+ collect(Collectors.toList()));
return binder.getAnyObjectTO(provisioningManager.link(patch));
}
@@ -230,13 +214,9 @@ public class AnyObjectLogic extends AbstractAnyLogic<AnyObjectTO, AnyObjectPatch
AnyObjectPatch patch = new AnyObjectPatch();
patch.setKey(key);
- patch.getResources().addAll(CollectionUtils.collect(resources, new Transformer<String, StringPatchItem>() {
-
- @Override
- public StringPatchItem transform(final String resource) {
- return new StringPatchItem.Builder().operation(PatchOperation.DELETE).value(resource).build();
- }
- }));
+ patch.getResources().addAll(resources.stream().map(resource
+ -> new StringPatchItem.Builder().operation(PatchOperation.DELETE).value(resource).build()).
+ collect(Collectors.toList()));
return update(patch, nullPriorityAsync);
}
@@ -258,13 +238,9 @@ public class AnyObjectLogic extends AbstractAnyLogic<AnyObjectTO, AnyObjectPatch
AnyObjectPatch patch = new AnyObjectPatch();
patch.setKey(key);
- patch.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();
- }
- }));
+ patch.getResources().addAll(resources.stream().map(resource
+ -> new StringPatchItem.Builder().operation(PatchOperation.ADD_REPLACE).value(resource).build()).
+ collect(Collectors.toList()));
return update(patch, nullPriorityAsync);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/logic/src/main/java/org/apache/syncope/core/logic/AnyTypeClassLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/AnyTypeClassLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/AnyTypeClassLogic.java
index babe255..03f6909 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/AnyTypeClassLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/AnyTypeClassLogic.java
@@ -19,10 +19,8 @@
package org.apache.syncope.core.logic;
import java.lang.reflect.Method;
-import java.util.ArrayList;
import java.util.List;
-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.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.SyncopeClientException;
@@ -64,13 +62,8 @@ public class AnyTypeClassLogic extends AbstractTransactionalLogic<AnyTypeClassTO
@PreAuthorize("hasRole('" + StandardEntitlement.ANYTYPECLASS_LIST + "')")
@Transactional(readOnly = true)
public List<AnyTypeClassTO> list() {
- return CollectionUtils.collect(anyTypeClassDAO.findAll(), new Transformer<AnyTypeClass, AnyTypeClassTO>() {
-
- @Override
- public AnyTypeClassTO transform(final AnyTypeClass input) {
- return binder.getAnyTypeClassTO(input);
- }
- }, new ArrayList<AnyTypeClassTO>());
+ return anyTypeClassDAO.findAll().stream().
+ map(anyTypeClass -> binder.getAnyTypeClassTO(anyTypeClass)).collect(Collectors.toList());
}
@PreAuthorize("hasRole('" + StandardEntitlement.ANYTYPECLASS_CREATE + "')")
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/logic/src/main/java/org/apache/syncope/core/logic/AnyTypeLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/AnyTypeLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/AnyTypeLogic.java
index f967da8..783d356 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/AnyTypeLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/AnyTypeLogic.java
@@ -19,10 +19,8 @@
package org.apache.syncope.core.logic;
import java.lang.reflect.Method;
-import java.util.ArrayList;
import java.util.List;
-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.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.SyncopeClientException;
@@ -64,13 +62,7 @@ public class AnyTypeLogic extends AbstractTransactionalLogic<AnyTypeTO> {
@PreAuthorize("hasRole('" + StandardEntitlement.ANYTYPE_LIST + "')")
@Transactional(readOnly = true)
public List<AnyTypeTO> list() {
- return CollectionUtils.collect(anyTypeDAO.findAll(), new Transformer<AnyType, AnyTypeTO>() {
-
- @Override
- public AnyTypeTO transform(final AnyType input) {
- return binder.getAnyTypeTO(input);
- }
- }, new ArrayList<AnyTypeTO>());
+ return anyTypeDAO.findAll().stream().map(anyType -> binder.getAnyTypeTO(anyType)).collect(Collectors.toList());
}
@PreAuthorize("hasRole('" + StandardEntitlement.ANYTYPE_CREATE + "')")
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/logic/src/main/java/org/apache/syncope/core/logic/ConfigurationLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/ConfigurationLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/ConfigurationLogic.java
index eea22ad..cc7a4bd 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/ConfigurationLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/ConfigurationLogic.java
@@ -21,6 +21,7 @@ package org.apache.syncope.core.logic;
import java.io.OutputStream;
import java.lang.reflect.Method;
import java.util.List;
+import java.util.Optional;
import org.apache.syncope.common.lib.to.AttrTO;
import org.apache.syncope.common.lib.types.StandardEntitlement;
import org.apache.syncope.core.spring.security.AuthContextUtils;
@@ -65,8 +66,8 @@ public class ConfigurationLogic extends AbstractTransactionalLogic<AttrTO> {
@PreAuthorize("hasRole('" + StandardEntitlement.CONFIGURATION_DELETE + "')")
public void delete(final String schema) {
- CPlainAttr conf = confDAO.find(schema);
- if (conf == null) {
+ Optional<? extends CPlainAttr> conf = confDAO.find(schema);
+ if (!conf.isPresent()) {
PlainSchema plainSchema = plainSchemaDAO.find(schema);
if (plainSchema == null) {
throw new NotFoundException("Configuration schema " + schema);
@@ -86,8 +87,10 @@ public class ConfigurationLogic extends AbstractTransactionalLogic<AttrTO> {
public AttrTO get(final String schema) {
AttrTO result;
- CPlainAttr conf = confDAO.find(schema);
- if (conf == null) {
+ Optional<? extends CPlainAttr> conf = confDAO.find(schema);
+ if (conf.isPresent()) {
+ result = binder.getAttrTO(conf.get());
+ } else {
PlainSchema plainSchema = plainSchemaDAO.find(schema);
if (plainSchema == null) {
throw new NotFoundException("Configuration schema " + schema);
@@ -95,8 +98,6 @@ public class ConfigurationLogic extends AbstractTransactionalLogic<AttrTO> {
result = new AttrTO();
result.setSchema(schema);
- } else {
- result = binder.getAttrTO(conf);
}
return result;
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/logic/src/main/java/org/apache/syncope/core/logic/ConnectorHistoryLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/ConnectorHistoryLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/ConnectorHistoryLogic.java
index 2d0afa7..e7ff07c 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/ConnectorHistoryLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/ConnectorHistoryLogic.java
@@ -19,10 +19,8 @@
package org.apache.syncope.core.logic;
import java.lang.reflect.Method;
-import java.util.ArrayList;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
import org.apache.syncope.common.lib.to.ConnInstanceHistoryConfTO;
import org.apache.syncope.common.lib.types.StandardEntitlement;
import org.apache.syncope.core.persistence.api.dao.ConnInstanceDAO;
@@ -64,15 +62,8 @@ public class ConnectorHistoryLogic extends AbstractTransactionalLogic<ConnInstan
throw new NotFoundException("Connector '" + key + "'");
}
- return CollectionUtils.collect(connInstanceHistoryConfDAO.findByEntity(connInstance),
- new Transformer<ConnInstanceHistoryConf, ConnInstanceHistoryConfTO>() {
-
- @Override
- public ConnInstanceHistoryConfTO transform(final ConnInstanceHistoryConf input) {
- return getConnInstanceHistoryConfTO(input);
- }
-
- }, new ArrayList<ConnInstanceHistoryConfTO>());
+ return connInstanceHistoryConfDAO.findByEntity(connInstance).stream().
+ map(historyConf -> getConnInstanceHistoryConfTO(historyConf)).collect(Collectors.toList());
}
@PreAuthorize("hasRole('" + StandardEntitlement.CONNECTOR_HISTORY_RESTORE + "')")
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/logic/src/main/java/org/apache/syncope/core/logic/ConnectorLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/ConnectorLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/ConnectorLogic.java
index 9c92e29..5d80ef7 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/ConnectorLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/ConnectorLogic.java
@@ -25,11 +25,7 @@ import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
-import org.apache.commons.collections4.PredicateUtils;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.SyncopeClientException;
@@ -51,10 +47,8 @@ import org.apache.syncope.core.spring.security.AuthContextUtils;
import org.apache.syncope.core.spring.security.DelegatedAdministrationException;
import org.identityconnectors.common.l10n.CurrentLocale;
import org.identityconnectors.framework.api.ConfigurationProperties;
-import org.identityconnectors.framework.api.ConnectorInfo;
import org.identityconnectors.framework.api.ConnectorInfoManager;
import org.identityconnectors.framework.api.ConnectorKey;
-import org.identityconnectors.framework.common.objects.AttributeInfo;
import org.identityconnectors.framework.common.objects.AttributeUtil;
import org.identityconnectors.framework.common.objects.ObjectClassInfo;
import org.springframework.beans.factory.annotation.Autowired;
@@ -81,13 +75,7 @@ public class ConnectorLogic extends AbstractTransactionalLogic<ConnInstanceTO> {
private ConnectorFactory connFactory;
protected void securityChecks(final Set<String> effectiveRealms, final String realm, final String key) {
- boolean authorized = IterableUtils.matchesAny(effectiveRealms, new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String ownedRealm) {
- return realm.startsWith(ownedRealm);
- }
- });
+ boolean authorized = effectiveRealms.stream().anyMatch(ownedRealm -> realm.startsWith(ownedRealm));
if (!authorized) {
throw new DelegatedAdministrationException(realm, ConnInstance.class.getSimpleName(), key);
}
@@ -138,9 +126,9 @@ public class ConnectorLogic extends AbstractTransactionalLogic<ConnInstanceTO> {
if (!connInstance.getResources().isEmpty()) {
SyncopeClientException associatedResources = SyncopeClientException.build(
ClientExceptionType.AssociatedResources);
- for (ExternalResource resource : connInstance.getResources()) {
+ connInstance.getResources().forEach(resource -> {
associatedResources.getElements().add(resource.getKey());
- }
+ });
throw associatedResources;
}
@@ -154,23 +142,20 @@ public class ConnectorLogic extends AbstractTransactionalLogic<ConnInstanceTO> {
public List<ConnInstanceTO> list(final String lang) {
CurrentLocale.set(StringUtils.isBlank(lang) ? Locale.ENGLISH : new Locale(lang));
- List<ConnInstanceTO> result = CollectionUtils.collect(connInstanceDAO.findAll().iterator(),
- new Transformer<ConnInstance, ConnInstanceTO>() {
-
- @Override
- public ConnInstanceTO transform(final ConnInstance connInstance) {
- ConnInstanceTO result = null;
- try {
- result = binder.getConnInstanceTO(connInstance);
- } catch (NotFoundException e) {
- LOG.error("Connector '{}#{}' not found", connInstance.getBundleName(), connInstance.getVersion());
- }
-
- return result;
- }
- }, new ArrayList<ConnInstanceTO>());
- CollectionUtils.filter(result, PredicateUtils.notNullPredicate());
- return result;
+ return connInstanceDAO.findAll().stream().
+ filter(connInstance -> connInstance != null).
+ map(connInstance -> {
+ ConnInstanceTO result = null;
+ try {
+ result = binder.getConnInstanceTO(connInstance);
+ } catch (NotFoundException e) {
+ LOG.
+ error("Connector '{}#{}' not found", connInstance.getBundleName(), connInstance.
+ getVersion());
+ }
+
+ return result;
+ }).collect(Collectors.toList());
}
@PreAuthorize("hasRole('" + StandardEntitlement.CONNECTOR_READ + "')")
@@ -197,25 +182,22 @@ public class ConnectorLogic extends AbstractTransactionalLogic<ConnInstanceTO> {
List<ConnBundleTO> connectorBundleTOs = new ArrayList<>();
for (Map.Entry<URI, ConnectorInfoManager> entry : connIdBundleManager.getConnInfoManagers().entrySet()) {
- for (ConnectorInfo bundle : entry.getValue().getConnectorInfos()) {
+ entry.getValue().getConnectorInfos().stream().map(bundle -> {
ConnBundleTO connBundleTO = new ConnBundleTO();
connBundleTO.setDisplayName(bundle.getConnectorDisplayName());
-
connBundleTO.setLocation(entry.getKey().toString());
-
ConnectorKey key = bundle.getConnectorKey();
connBundleTO.setBundleName(key.getBundleName());
connBundleTO.setConnectorName(key.getConnectorName());
connBundleTO.setVersion(key.getBundleVersion());
-
ConfigurationProperties properties = connIdBundleManager.getConfigurationProperties(bundle);
-
for (String propName : properties.getPropertyNames()) {
connBundleTO.getProperties().add(binder.build(properties.getProperty(propName)));
}
-
+ return connBundleTO;
+ }).forEachOrdered(connBundleTO -> {
connectorBundleTOs.add(connBundleTO);
- }
+ });
}
return connectorBundleTOs;
@@ -235,20 +217,20 @@ public class ConnectorLogic extends AbstractTransactionalLogic<ConnInstanceTO> {
getObjectClassInfo();
List<ConnIdObjectClassTO> result = new ArrayList<>(objectClassInfo.size());
- for (ObjectClassInfo info : objectClassInfo) {
+ objectClassInfo.stream().map(info -> {
ConnIdObjectClassTO connIdObjectClassTO = new ConnIdObjectClassTO();
connIdObjectClassTO.setType(info.getType());
connIdObjectClassTO.setAuxiliary(info.isAuxiliary());
connIdObjectClassTO.setContainer(info.isContainer());
-
- for (AttributeInfo attrInfo : info.getAttributeInfo()) {
- if (includeSpecial || !AttributeUtil.isSpecialName(attrInfo.getName())) {
- connIdObjectClassTO.getAttributes().add(attrInfo.getName());
- }
- }
-
+ info.getAttributeInfo().stream().
+ filter(attrInfo -> includeSpecial || !AttributeUtil.isSpecialName(attrInfo.getName())).
+ forEachOrdered(attrInfo -> {
+ connIdObjectClassTO.getAttributes().add(attrInfo.getName());
+ });
+ return connIdObjectClassTO;
+ }).forEachOrdered((connIdObjectClassTO) -> {
result.add(connIdObjectClassTO);
- }
+ });
return result;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/logic/src/main/java/org/apache/syncope/core/logic/DomainLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/DomainLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/DomainLogic.java
index cfefdd0..d9d29ba 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/DomainLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/DomainLogic.java
@@ -19,10 +19,8 @@
package org.apache.syncope.core.logic;
import java.lang.reflect.Method;
-import java.util.ArrayList;
import java.util.List;
-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.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.to.DomainTO;
@@ -63,13 +61,7 @@ public class DomainLogic extends AbstractTransactionalLogic<DomainTO> {
@PreAuthorize("isAuthenticated()")
public List<DomainTO> list() {
- return CollectionUtils.collect(domainDAO.findAll(), new Transformer<Domain, DomainTO>() {
-
- @Override
- public DomainTO transform(final Domain input) {
- return binder.getDomainTO(input);
- }
- }, new ArrayList<DomainTO>());
+ return domainDAO.findAll().stream().map(domain -> binder.getDomainTO(domain)).collect(Collectors.toList());
}
@PreAuthorize("hasRole('" + StandardEntitlement.DOMAIN_CREATE + "') and authentication.details.domain == "
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/logic/src/main/java/org/apache/syncope/core/logic/DynRealmLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/DynRealmLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/DynRealmLogic.java
index 0b17724..de9e78a 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/DynRealmLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/DynRealmLogic.java
@@ -19,10 +19,8 @@
package org.apache.syncope.core.logic;
import java.lang.reflect.Method;
-import java.util.ArrayList;
import java.util.List;
-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.to.DynRealmTO;
import org.apache.syncope.common.lib.types.StandardEntitlement;
@@ -56,13 +54,8 @@ public class DynRealmLogic extends AbstractTransactionalLogic<DynRealmTO> {
}
public List<DynRealmTO> list() {
- return CollectionUtils.collect(dynRealmDAO.findAll(), new Transformer<DynRealm, DynRealmTO>() {
-
- @Override
- public DynRealmTO transform(final DynRealm input) {
- return binder.getDynRealmTO(input);
- }
- }, new ArrayList<DynRealmTO>());
+ return dynRealmDAO.findAll().stream().
+ map(dynRealm -> binder.getDynRealmTO(dynRealm)).collect(Collectors.toList());
}
@PreAuthorize("hasRole('" + StandardEntitlement.DYNREALM_CREATE + "')")
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/logic/src/main/java/org/apache/syncope/core/logic/GroupLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/GroupLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/GroupLogic.java
index 898113d..efdab59 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/GroupLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/GroupLogic.java
@@ -19,17 +19,13 @@
package org.apache.syncope.core.logic;
import java.lang.reflect.Method;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
@@ -110,21 +106,17 @@ public class GroupLogic extends AbstractAnyLogic<GroupTO, GroupPatch> {
@Override
protected boolean securityChecks(final Set<String> effectiveRealms, final String realm, final String key) {
- boolean authorized = IterableUtils.matchesAny(effectiveRealms, new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String ownedRealm) {
- return realm.startsWith(ownedRealm) || ownedRealm.equals(RealmUtils.getGroupOwnerRealm(realm, key));
- }
- });
+ boolean authorized = effectiveRealms.stream().anyMatch(ownedRealm
+ -> realm.startsWith(ownedRealm) || ownedRealm.equals(RealmUtils.getGroupOwnerRealm(realm, key)));
if (!authorized) {
- authorized = !CollectionUtils.intersection(groupDAO.findDynRealms(key), effectiveRealms).isEmpty();
+ authorized = groupDAO.findDynRealms(key).stream().
+ filter(dynRealm -> effectiveRealms.contains(dynRealm)).findFirst().isPresent();
}
if (!authorized) {
throw new DelegatedAdministrationException(realm, AnyTypeKind.GROUP.name(), key);
}
- return IterableUtils.matchesAny(effectiveRealms, new RealmUtils.DynRealmsPredicate());
+ return effectiveRealms.stream().anyMatch(new RealmUtils.DynRealmsPredicate());
}
@PreAuthorize("hasRole('" + StandardEntitlement.GROUP_READ + "')")
@@ -137,16 +129,8 @@ public class GroupLogic extends AbstractAnyLogic<GroupTO, GroupPatch> {
@PreAuthorize("isAuthenticated() and not(hasRole('" + StandardEntitlement.ANONYMOUS + "'))")
@Transactional(readOnly = true)
public List<GroupTO> own() {
- return CollectionUtils.collect(
- userDAO.findAllGroups(userDAO.findByUsername(AuthContextUtils.getUsername())),
- new Transformer<Group, GroupTO>() {
-
- @Transactional(readOnly = true)
- @Override
- public GroupTO transform(final Group input) {
- return binder.getGroupTO(input, true);
- }
- }, new ArrayList<GroupTO>());
+ return userDAO.findAllGroups(userDAO.findByUsername(AuthContextUtils.getUsername())).stream().
+ map(group -> binder.getGroupTO(group, true)).collect(Collectors.toList());
}
@PreAuthorize("hasRole('" + StandardEntitlement.GROUP_SEARCH + "')")
@@ -166,14 +150,8 @@ public class GroupLogic extends AbstractAnyLogic<GroupTO, GroupPatch> {
RealmUtils.getEffective(SyncopeConstants.FULL_ADMIN_REALMS, realm),
searchCond == null ? groupDAO.getAllMatchingCond() : searchCond,
page, size, orderBy, AnyTypeKind.GROUP);
- List<GroupTO> result = CollectionUtils.collect(matching, new Transformer<Group, GroupTO>() {
-
- @Transactional(readOnly = true)
- @Override
- public GroupTO transform(final Group input) {
- return binder.getGroupTO(input, details);
- }
- }, new ArrayList<GroupTO>());
+ List<GroupTO> result = matching.stream().
+ map(group -> binder.getGroupTO(group, details)).collect(Collectors.toList());
return Pair.of(count, result);
}
@@ -238,14 +216,8 @@ public class GroupLogic extends AbstractAnyLogic<GroupTO, GroupPatch> {
List<Group> ownedGroups = groupDAO.findOwnedByGroup(before.getLeft().getKey());
if (!ownedGroups.isEmpty()) {
SyncopeClientException sce = SyncopeClientException.build(ClientExceptionType.GroupOwnership);
- sce.getElements().addAll(CollectionUtils.collect(ownedGroups, new Transformer<Group, String>() {
-
- @Transactional(readOnly = true)
- @Override
- public String transform(final Group group) {
- return group.getKey() + " " + group.getName();
- }
- }, new ArrayList<String>()));
+ sce.getElements().addAll(ownedGroups.stream().
+ map(g -> g.getKey() + " " + g.getName()).collect(Collectors.toList()));
throw sce;
}
@@ -269,13 +241,9 @@ public class GroupLogic extends AbstractAnyLogic<GroupTO, GroupPatch> {
GroupPatch patch = new GroupPatch();
patch.setKey(key);
- patch.getResources().addAll(CollectionUtils.collect(resources, new Transformer<String, StringPatchItem>() {
-
- @Override
- public StringPatchItem transform(final String resource) {
- return new StringPatchItem.Builder().operation(PatchOperation.DELETE).value(resource).build();
- }
- }));
+ patch.getResources().addAll(resources.stream().
+ map(resource -> new StringPatchItem.Builder().operation(PatchOperation.DELETE).value(resource).build()).
+ collect(Collectors.toList()));
return binder.getGroupTO(provisioningManager.unlink(patch));
}
@@ -292,13 +260,9 @@ public class GroupLogic extends AbstractAnyLogic<GroupTO, GroupPatch> {
GroupPatch patch = new GroupPatch();
patch.setKey(key);
- patch.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();
- }
- }));
+ patch.getResources().addAll(resources.stream().map(resource
+ -> new StringPatchItem.Builder().operation(PatchOperation.ADD_REPLACE).value(resource).build()).
+ collect(Collectors.toList()));
return binder.getGroupTO(provisioningManager.link(patch));
}
@@ -317,13 +281,9 @@ public class GroupLogic extends AbstractAnyLogic<GroupTO, GroupPatch> {
GroupPatch patch = new GroupPatch();
patch.setKey(key);
- patch.getResources().addAll(CollectionUtils.collect(resources, new Transformer<String, StringPatchItem>() {
-
- @Override
- public StringPatchItem transform(final String resource) {
- return new StringPatchItem.Builder().operation(PatchOperation.DELETE).value(resource).build();
- }
- }));
+ patch.getResources().addAll(resources.stream().map(resource
+ -> new StringPatchItem.Builder().operation(PatchOperation.DELETE).value(resource).build()).
+ collect(Collectors.toList()));
return update(patch, nullPriorityAsync);
}
@@ -346,13 +306,9 @@ public class GroupLogic extends AbstractAnyLogic<GroupTO, GroupPatch> {
GroupPatch patch = new GroupPatch();
patch.setKey(key);
- patch.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();
- }
- }));
+ patch.getResources().addAll(resources.stream().map(resource
+ -> new StringPatchItem.Builder().operation(PatchOperation.ADD_REPLACE).value(resource).build()).
+ collect(Collectors.toList()));
return update(patch, nullPriorityAsync);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/logic/src/main/java/org/apache/syncope/core/logic/LoggerLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/LoggerLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/LoggerLogic.java
index 5429c24..9c8a8b3 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/LoggerLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/LoggerLogic.java
@@ -24,13 +24,7 @@ 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.IterableUtils;
-import org.apache.commons.collections4.IteratorUtils;
-import org.apache.commons.collections4.Predicate;
-import org.apache.commons.collections4.PredicateUtils;
-import org.apache.commons.collections4.Transformer;
-import org.apache.commons.collections4.TransformerUtils;
+import java.util.stream.Collectors;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.core.LoggerContext;
@@ -60,7 +54,6 @@ import org.apache.syncope.core.persistence.api.dao.LoggerDAO;
import org.apache.syncope.core.persistence.api.dao.NotFoundException;
import org.apache.syncope.core.persistence.api.dao.TaskDAO;
import org.apache.syncope.core.persistence.api.entity.EntityFactory;
-import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
import org.apache.syncope.core.persistence.api.entity.Logger;
import org.apache.syncope.core.persistence.api.entity.task.SchedTask;
import org.apache.syncope.core.spring.BeanUtils;
@@ -99,31 +92,21 @@ public class LoggerLogic extends AbstractTransactionalLogic<LoggerTO> {
private EntityFactory entityFactory;
private List<LoggerTO> list(final LoggerType type) {
- return CollectionUtils.collect(loggerDAO.findAll(type), new Transformer<Logger, LoggerTO>() {
-
- @Override
- public LoggerTO transform(final Logger logger) {
- LoggerTO loggerTO = new LoggerTO();
- BeanUtils.copyProperties(logger, loggerTO);
- return loggerTO;
- }
- }, new ArrayList<LoggerTO>());
+ return loggerDAO.findAll(type).stream().map(logger -> {
+ LoggerTO loggerTO = new LoggerTO();
+ BeanUtils.copyProperties(logger, loggerTO);
+ return loggerTO;
+ }).collect(Collectors.toList());
}
@PreAuthorize("hasRole('" + StandardEntitlement.LOG_LIST + "') and authentication.details.domain == "
+ "T(org.apache.syncope.common.lib.SyncopeConstants).MASTER_DOMAIN")
public List<LogAppender> memoryAppenders() {
- return CollectionUtils.collect(
- loggerLoader.getMemoryAppenders().keySet(),
- new Transformer<String, LogAppender>() {
-
- @Override
- public LogAppender transform(final String input) {
- LogAppender logAppender = new LogAppender();
- logAppender.setName(input);
- return logAppender;
- }
- }, new ArrayList<LogAppender>());
+ return loggerLoader.getMemoryAppenders().keySet().stream().map(appender -> {
+ LogAppender logAppender = new LogAppender();
+ logAppender.setName(appender);
+ return logAppender;
+ }).collect(Collectors.toList());
}
@PreAuthorize("hasRole('" + StandardEntitlement.LOG_READ + "') and authentication.details.domain == "
@@ -134,10 +117,7 @@ public class LoggerLogic extends AbstractTransactionalLogic<LoggerTO> {
throw new NotFoundException("Appender " + memoryAppender);
}
- return CollectionUtils.collect(
- appender.getStatements(),
- TransformerUtils.<LogStatementTO>nopTransformer(),
- new ArrayList<LogStatementTO>());
+ return appender.getStatements().stream().collect(Collectors.toList());
}
@PreAuthorize("hasRole('" + StandardEntitlement.LOG_LIST + "') and authentication.details.domain == "
@@ -150,22 +130,18 @@ public class LoggerLogic extends AbstractTransactionalLogic<LoggerTO> {
@PreAuthorize("hasRole('" + StandardEntitlement.AUDIT_LIST + "')")
@Transactional(readOnly = true)
public List<AuditLoggerName> listAudits() {
- return CollectionUtils.collect(
- IteratorUtils.filteredIterator(list(LoggerType.AUDIT).iterator(), PredicateUtils.notNullPredicate()),
- new Transformer<LoggerTO, AuditLoggerName>() {
-
- @Override
- public AuditLoggerName transform(final LoggerTO logger) {
- AuditLoggerName result = null;
- try {
- result = AuditLoggerName.fromLoggerName(logger.getKey());
- } catch (Exception e) {
- LOG.warn("Unexpected audit logger name: {}", logger.getKey(), e);
- }
+ return list(LoggerType.AUDIT).stream().
+ filter(logger -> logger != null).
+ map(logger -> {
+ AuditLoggerName result = null;
+ try {
+ result = AuditLoggerName.fromLoggerName(logger.getKey());
+ } catch (Exception e) {
+ LOG.warn("Unexpected audit logger name: {}", logger.getKey(), e);
+ }
- return result;
- }
- }, new ArrayList<AuditLoggerName>());
+ return result;
+ }).collect(Collectors.toList());
}
private void throwInvalidLogger(final LoggerType type) {
@@ -235,14 +211,7 @@ public class LoggerLogic extends AbstractTransactionalLogic<LoggerTO> {
logConf = new LoggerConfig(auditLoggerName, null, false);
}
for (AuditAppender auditAppender : loggerLoader.auditAppenders(AuthContextUtils.getDomain())) {
- if (IterableUtils.matchesAny(auditAppender.getEvents(), new Predicate<AuditLoggerName>() {
-
- @Override
- public boolean evaluate(final AuditLoggerName auditLoggerName) {
- return name.equalsIgnoreCase(auditLoggerName.toLoggerName());
- }
- })) {
-
+ if (auditAppender.getEvents().stream().anyMatch(event -> name.equalsIgnoreCase(event.toLoggerName()))) {
loggerLoader.addAppenderToContext(ctx, auditAppender, logConf);
}
}
@@ -380,7 +349,7 @@ public class LoggerLogic extends AbstractTransactionalLogic<LoggerTO> {
events.add(new EventCategoryTO(EventCategoryType.PUSH));
for (AnyTypeKind anyTypeKind : AnyTypeKind.values()) {
- for (ExternalResource resource : resourceDAO.findAll()) {
+ resourceDAO.findAll().forEach(resource -> {
EventCategoryTO propEventCategoryTO = new EventCategoryTO(EventCategoryType.PROPAGATION);
EventCategoryTO syncEventCategoryTO = new EventCategoryTO(EventCategoryType.PULL);
EventCategoryTO pushEventCategoryTO = new EventCategoryTO(EventCategoryType.PUSH);
@@ -414,7 +383,7 @@ public class LoggerLogic extends AbstractTransactionalLogic<LoggerTO> {
events.add(propEventCategoryTO);
events.add(syncEventCategoryTO);
events.add(pushEventCategoryTO);
- }
+ });
}
for (SchedTask task : taskDAO.<SchedTask>findAll(TaskType.SCHEDULED)) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/logic/src/main/java/org/apache/syncope/core/logic/MailTemplateLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/MailTemplateLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/MailTemplateLogic.java
index 7839e12..ff742c5 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/MailTemplateLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/MailTemplateLogic.java
@@ -19,10 +19,8 @@
package org.apache.syncope.core.logic;
import java.lang.reflect.Method;
-import java.util.ArrayList;
import java.util.List;
-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.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.SyncopeClientException;
@@ -34,6 +32,7 @@ import org.apache.syncope.core.persistence.api.dao.NotFoundException;
import org.apache.syncope.core.persistence.api.dao.DuplicateException;
import org.apache.syncope.core.persistence.api.dao.MailTemplateDAO;
import org.apache.syncope.core.persistence.api.dao.NotificationDAO;
+import org.apache.syncope.core.persistence.api.entity.Entity;
import org.apache.syncope.core.persistence.api.entity.EntityFactory;
import org.apache.syncope.core.persistence.api.entity.MailTemplate;
import org.apache.syncope.core.persistence.api.entity.Notification;
@@ -73,13 +72,8 @@ public class MailTemplateLogic extends AbstractTransactionalLogic<MailTemplateTO
@PreAuthorize("hasRole('" + StandardEntitlement.MAIL_TEMPLATE_LIST + "')")
public List<MailTemplateTO> list() {
- return CollectionUtils.collect(mailTemplateDAO.findAll(), new Transformer<MailTemplate, MailTemplateTO>() {
-
- @Override
- public MailTemplateTO transform(final MailTemplate input) {
- return getMailTemplateTO(input.getKey());
- }
- }, new ArrayList<MailTemplateTO>());
+ return mailTemplateDAO.findAll().stream().
+ map(template -> getMailTemplateTO(template.getKey())).collect(Collectors.toList());
}
@PreAuthorize("hasRole('" + StandardEntitlement.MAIL_TEMPLATE_CREATE + "')")
@@ -145,13 +139,7 @@ public class MailTemplateLogic extends AbstractTransactionalLogic<MailTemplateTO
List<Notification> notifications = notificationDAO.findByTemplate(mailTemplate);
if (!notifications.isEmpty()) {
SyncopeClientException sce = SyncopeClientException.build(ClientExceptionType.InUseByNotifications);
- sce.getElements().addAll(CollectionUtils.collect(notifications, new Transformer<Notification, String>() {
-
- @Override
- public String transform(final Notification notification) {
- return String.valueOf(notification.getKey());
- }
- }, new ArrayList<String>()));
+ sce.getElements().addAll(notifications.stream().map(Entity::getKey).collect(Collectors.toList()));
throw sce;
}
@@ -169,7 +157,7 @@ public class MailTemplateLogic extends AbstractTransactionalLogic<MailTemplateTO
if (ArrayUtils.isNotEmpty(args)) {
for (int i = 0; key == null && i < args.length; i++) {
if (args[i] instanceof String) {
- key = ((String) args[i]).toString();
+ key = ((String) args[i]);
} else if (args[i] instanceof MailTemplateTO) {
key = ((MailTemplateTO) args[i]).getKey();
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/logic/src/main/java/org/apache/syncope/core/logic/MemoryAppender.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/MemoryAppender.java b/core/logic/src/main/java/org/apache/syncope/core/logic/MemoryAppender.java
index 8183979..d78585b 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/MemoryAppender.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/MemoryAppender.java
@@ -19,7 +19,6 @@
package org.apache.syncope.core.logic;
import java.util.Queue;
-import org.apache.commons.collections4.queue.CircularFifoQueue;
import org.apache.logging.log4j.core.Appender;
import org.apache.logging.log4j.core.Filter;
import org.apache.logging.log4j.core.LogEvent;
@@ -30,6 +29,7 @@ import org.apache.logging.log4j.core.config.plugins.PluginElement;
import org.apache.logging.log4j.core.config.plugins.PluginFactory;
import org.apache.logging.log4j.message.Message;
import org.apache.logging.log4j.message.ReusableMessage;
+import org.apache.syncope.common.lib.collections.CircularFifoQueue;
import org.apache.syncope.common.lib.log.LogStatementTO;
import org.apache.syncope.common.lib.types.LoggerLevel;
import org.apache.syncope.core.provisioning.api.utils.ExceptionUtils2;
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/logic/src/main/java/org/apache/syncope/core/logic/NotificationLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/NotificationLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/NotificationLogic.java
index 3b867b4..b594613 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/NotificationLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/NotificationLogic.java
@@ -19,10 +19,8 @@
package org.apache.syncope.core.logic;
import java.lang.reflect.Method;
-import java.util.ArrayList;
import java.util.List;
-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.commons.lang3.tuple.Triple;
import org.apache.syncope.common.lib.to.JobTO;
@@ -64,13 +62,8 @@ public class NotificationLogic extends AbstractJobLogic<NotificationTO> {
@PreAuthorize("hasRole('" + StandardEntitlement.NOTIFICATION_LIST + "')")
public List<NotificationTO> list() {
- return CollectionUtils.collect(notificationDAO.findAll(), new Transformer<Notification, NotificationTO>() {
-
- @Override
- public NotificationTO transform(final Notification input) {
- return binder.getNotificationTO(input);
- }
- }, new ArrayList<NotificationTO>());
+ return notificationDAO.findAll().stream().
+ map(notification -> binder.getNotificationTO(notification)).collect(Collectors.toList());
}
@PreAuthorize("hasRole('" + StandardEntitlement.NOTIFICATION_CREATE + "')")
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/logic/src/main/java/org/apache/syncope/core/logic/PolicyLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/PolicyLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/PolicyLogic.java
index 0cffd0c..4f5e053 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/PolicyLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/PolicyLogic.java
@@ -19,10 +19,8 @@
package org.apache.syncope.core.logic;
import java.lang.reflect.Method;
-import java.util.ArrayList;
import java.util.List;
-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.policy.AbstractPolicyTO;
import org.apache.syncope.common.lib.types.PolicyType;
@@ -78,13 +76,8 @@ public class PolicyLogic extends AbstractTransactionalLogic<AbstractPolicyTO> {
@PreAuthorize("hasRole('" + StandardEntitlement.POLICY_LIST + "')")
public <T extends AbstractPolicyTO> List<T> list(final PolicyType type) {
- return CollectionUtils.collect(policyDAO.find(getPolicyClass(type)), new Transformer<Policy, T>() {
-
- @Override
- public T transform(final Policy input) {
- return binder.getPolicyTO(input);
- }
- }, new ArrayList<T>());
+ return policyDAO.find(getPolicyClass(type)).stream().
+ <T>map(policy -> binder.getPolicyTO(policy)).collect(Collectors.toList());
}
@PreAuthorize("hasRole('" + StandardEntitlement.POLICY_READ + "')")
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/logic/src/main/java/org/apache/syncope/core/logic/RealmLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/RealmLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/RealmLogic.java
index e82e495..03cfe0f 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/RealmLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/RealmLogic.java
@@ -19,12 +19,10 @@
package org.apache.syncope.core.logic;
import java.lang.reflect.Method;
-import java.util.ArrayList;
import java.util.Collections;
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.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.SyncopeClientException;
@@ -81,13 +79,8 @@ public class RealmLogic extends AbstractTransactionalLogic<RealmTO> {
}
final boolean admin = AuthContextUtils.getAuthorizations().keySet().contains(StandardEntitlement.REALM_LIST);
- return CollectionUtils.collect(realmDAO.findDescendants(realm), new Transformer<Realm, RealmTO>() {
-
- @Override
- public RealmTO transform(final Realm input) {
- return binder.getRealmTO(input, admin);
- }
- }, new ArrayList<RealmTO>());
+ return realmDAO.findDescendants(realm).stream().
+ map(descendant -> binder.getRealmTO(descendant, admin)).collect(Collectors.toList());
}
@PreAuthorize("hasRole('" + StandardEntitlement.REALM_CREATE + "')")
@@ -100,9 +93,9 @@ public class RealmLogic extends AbstractTransactionalLogic<RealmTO> {
Realm realm = realmDAO.save(binder.create(parentPath, realmTO));
PropagationByResource propByRes = new PropagationByResource();
- for (String resource : realm.getResourceKeys()) {
+ realm.getResourceKeys().forEach(resource -> {
propByRes.add(ResourceOperation.CREATE, resource);
- }
+ });
List<PropagationTask> tasks = propagationManager.createTasks(realm, propByRes, null);
PropagationReporter propagationReporter = taskExecutor.execute(tasks, false);
@@ -165,9 +158,9 @@ public class RealmLogic extends AbstractTransactionalLogic<RealmTO> {
}
PropagationByResource propByRes = new PropagationByResource();
- for (String resource : realm.getResourceKeys()) {
+ realm.getResourceKeys().forEach(resource -> {
propByRes.add(ResourceOperation.DELETE, resource);
- }
+ });
List<PropagationTask> tasks = propagationManager.createTasks(realm, propByRes, null);
PropagationReporter propagationReporter = taskExecutor.execute(tasks, false);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/logic/src/main/java/org/apache/syncope/core/logic/RelationshipTypeLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/RelationshipTypeLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/RelationshipTypeLogic.java
index 6d96e8b..30ac9a2 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/RelationshipTypeLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/RelationshipTypeLogic.java
@@ -19,10 +19,8 @@
package org.apache.syncope.core.logic;
import java.lang.reflect.Method;
-import java.util.ArrayList;
import java.util.List;
-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.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.to.RelationshipTypeTO;
@@ -58,14 +56,8 @@ public class RelationshipTypeLogic extends AbstractTransactionalLogic<Relationsh
@PreAuthorize("hasRole('" + StandardEntitlement.RELATIONSHIPTYPE_LIST + "')")
public List<RelationshipTypeTO> list() {
- return CollectionUtils.collect(relationshipTypeDAO.findAll(),
- new Transformer<RelationshipType, RelationshipTypeTO>() {
-
- @Override
- public RelationshipTypeTO transform(final RelationshipType input) {
- return binder.getRelationshipTypeTO(input);
- }
- }, new ArrayList<RelationshipTypeTO>());
+ return relationshipTypeDAO.findAll().stream().
+ map(relationshipType -> binder.getRelationshipTypeTO(relationshipType)).collect(Collectors.toList());
}
@PreAuthorize("hasRole('" + StandardEntitlement.RELATIONSHIPTYPE_CREATE + "')")
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/logic/src/main/java/org/apache/syncope/core/logic/ReportLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/ReportLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/ReportLogic.java
index 5243277..854870f 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/ReportLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/ReportLogic.java
@@ -22,11 +22,11 @@ import java.io.ByteArrayInputStream;
import java.io.OutputStream;
import java.lang.reflect.Method;
import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
import java.util.zip.ZipInputStream;
import javax.xml.transform.stream.StreamSource;
import org.apache.cocoon.pipeline.NonCachingPipeline;
@@ -34,8 +34,6 @@ import org.apache.cocoon.pipeline.Pipeline;
import org.apache.cocoon.sax.SAXPipelineComponent;
import org.apache.cocoon.sax.component.XMLGenerator;
import org.apache.cocoon.sax.component.XMLSerializer;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.tuple.Triple;
@@ -137,13 +135,7 @@ public class ReportLogic extends AbstractExecutableLogic<ReportTO> {
@PreAuthorize("hasRole('" + StandardEntitlement.REPORT_LIST + "')")
public List<ReportTO> list() {
- return CollectionUtils.collect(reportDAO.findAll(), new Transformer<Report, ReportTO>() {
-
- @Override
- public ReportTO transform(final Report input) {
- return binder.getReportTO(input);
- }
- }, new ArrayList<ReportTO>());
+ return reportDAO.findAll().stream().map(report -> binder.getReportTO(report)).collect(Collectors.toList());
}
@PreAuthorize("hasRole('" + StandardEntitlement.REPORT_READ + "')")
@@ -314,26 +306,15 @@ public class ReportLogic extends AbstractExecutableLogic<ReportTO> {
throw new NotFoundException("Report " + key);
}
- return CollectionUtils.collect(reportExecDAO.findAll(report, page, size, orderByClauses),
- new Transformer<ReportExec, ExecTO>() {
-
- @Override
- public ExecTO transform(final ReportExec reportExec) {
- return binder.getExecTO(reportExec);
- }
- }, new ArrayList<ExecTO>());
+ return reportExecDAO.findAll(report, page, size, orderByClauses).stream().
+ map(reportExec -> binder.getExecTO(reportExec)).collect(Collectors.toList());
}
@PreAuthorize("hasRole('" + StandardEntitlement.REPORT_LIST + "')")
@Override
public List<ExecTO> listRecentExecutions(final int max) {
- return CollectionUtils.collect(reportExecDAO.findRecent(max), new Transformer<ReportExec, ExecTO>() {
-
- @Override
- public ExecTO transform(final ReportExec reportExec) {
- return binder.getExecTO(reportExec);
- }
- }, new ArrayList<ExecTO>());
+ return reportExecDAO.findRecent(max).stream().
+ map(reportExec -> binder.getExecTO(reportExec)).collect(Collectors.toList());
}
@PreAuthorize("hasRole('" + StandardEntitlement.REPORT_DELETE + "')")
@@ -362,7 +343,7 @@ public class ReportLogic extends AbstractExecutableLogic<ReportTO> {
BulkActionResult result = new BulkActionResult();
- for (ReportExec exec : reportExecDAO.findAll(report, startedBefore, startedAfter, endedBefore, endedAfter)) {
+ reportExecDAO.findAll(report, startedBefore, startedAfter, endedBefore, endedAfter).forEach(exec -> {
try {
reportExecDAO.delete(exec);
result.getResults().put(String.valueOf(exec.getKey()), BulkActionResult.Status.SUCCESS);
@@ -370,7 +351,7 @@ public class ReportLogic extends AbstractExecutableLogic<ReportTO> {
LOG.error("Error deleting execution {} of report {}", exec.getKey(), key, e);
result.getResults().put(String.valueOf(exec.getKey()), BulkActionResult.Status.FAILURE);
}
- }
+ });
return result;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/logic/src/main/java/org/apache/syncope/core/logic/ReportTemplateLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/ReportTemplateLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/ReportTemplateLogic.java
index f44427f..4d150d9 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/ReportTemplateLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/ReportTemplateLogic.java
@@ -19,10 +19,8 @@
package org.apache.syncope.core.logic;
import java.lang.reflect.Method;
-import java.util.ArrayList;
import java.util.List;
-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.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.SyncopeClientException;
@@ -34,6 +32,7 @@ import org.apache.syncope.core.persistence.api.dao.NotFoundException;
import org.apache.syncope.core.persistence.api.dao.DuplicateException;
import org.apache.syncope.core.persistence.api.dao.ReportTemplateDAO;
import org.apache.syncope.core.persistence.api.dao.ReportDAO;
+import org.apache.syncope.core.persistence.api.entity.Entity;
import org.apache.syncope.core.persistence.api.entity.EntityFactory;
import org.apache.syncope.core.persistence.api.entity.ReportTemplate;
import org.apache.syncope.core.persistence.api.entity.Report;
@@ -73,14 +72,8 @@ public class ReportTemplateLogic extends AbstractTransactionalLogic<ReportTempla
@PreAuthorize("hasRole('" + StandardEntitlement.REPORT_TEMPLATE_LIST + "')")
public List<ReportTemplateTO> list() {
- return CollectionUtils.collect(
- reportTemplateDAO.findAll(), new Transformer<ReportTemplate, ReportTemplateTO>() {
-
- @Override
- public ReportTemplateTO transform(final ReportTemplate input) {
- return getReportTemplateTO(input.getKey());
- }
- }, new ArrayList<ReportTemplateTO>());
+ return reportTemplateDAO.findAll().stream().
+ map(template -> getReportTemplateTO(template.getKey())).collect(Collectors.toList());
}
@PreAuthorize("hasRole('" + StandardEntitlement.REPORT_TEMPLATE_CREATE + "')")
@@ -158,13 +151,7 @@ public class ReportTemplateLogic extends AbstractTransactionalLogic<ReportTempla
List<Report> reports = reportDAO.findByTemplate(reportTemplate);
if (!reports.isEmpty()) {
SyncopeClientException sce = SyncopeClientException.build(ClientExceptionType.InUseByNotifications);
- sce.getElements().addAll(CollectionUtils.collect(reports, new Transformer<Report, String>() {
-
- @Override
- public String transform(final Report report) {
- return String.valueOf(report.getKey());
- }
- }, new ArrayList<String>()));
+ sce.getElements().addAll(reports.stream().map(Entity::getKey).collect(Collectors.toList()));
throw sce;
}
@@ -182,7 +169,7 @@ public class ReportTemplateLogic extends AbstractTransactionalLogic<ReportTempla
if (ArrayUtils.isNotEmpty(args)) {
for (int i = 0; key == null && i < args.length; i++) {
if (args[i] instanceof String) {
- key = ((String) args[i]).toString();
+ key = ((String) args[i]);
} else if (args[i] instanceof ReportTemplateTO) {
key = ((ReportTemplateTO) args[i]).getKey();
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/logic/src/main/java/org/apache/syncope/core/logic/ResourceHistoryLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/ResourceHistoryLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/ResourceHistoryLogic.java
index fc95f81..d027e97 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/ResourceHistoryLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/ResourceHistoryLogic.java
@@ -19,10 +19,8 @@
package org.apache.syncope.core.logic;
import java.lang.reflect.Method;
-import java.util.ArrayList;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
import org.apache.syncope.common.lib.to.ResourceHistoryConfTO;
import org.apache.syncope.common.lib.types.StandardEntitlement;
import org.apache.syncope.core.persistence.api.dao.ExternalResourceDAO;
@@ -64,14 +62,8 @@ public class ResourceHistoryLogic extends AbstractTransactionalLogic<ResourceHis
throw new NotFoundException("Resource '" + key + "'");
}
- return CollectionUtils.collect(resourceHistoryConfDAO.findByEntity(resource),
- new Transformer<ExternalResourceHistoryConf, ResourceHistoryConfTO>() {
-
- @Override
- public ResourceHistoryConfTO transform(final ExternalResourceHistoryConf input) {
- return getResourceHistoryConfTO(input);
- }
- }, new ArrayList<ResourceHistoryConfTO>());
+ return resourceHistoryConfDAO.findByEntity(resource).stream().
+ map(historyConf -> getResourceHistoryConfTO(historyConf)).collect(Collectors.toList());
}
@PreAuthorize("hasRole('" + StandardEntitlement.RESOURCE_HISTORY_RESTORE + "')")
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/logic/src/main/java/org/apache/syncope/core/logic/ResourceLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/ResourceLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/ResourceLogic.java
index 3f2ff75..eccbd6d 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/ResourceLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/ResourceLogic.java
@@ -23,18 +23,16 @@ import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
+import java.util.Optional;
import java.util.Set;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.IteratorUtils;
-import org.apache.commons.collections4.Predicate;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.ImmutableTriple;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.commons.lang3.tuple.Triple;
+import org.apache.syncope.common.lib.collections.IteratorChain;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.common.lib.to.ConnObjectTO;
@@ -61,7 +59,6 @@ import org.apache.syncope.core.persistence.api.dao.search.OrderByClause;
import org.apache.syncope.core.persistence.api.entity.Any;
import org.apache.syncope.core.persistence.api.entity.AnyType;
import org.apache.syncope.core.persistence.api.entity.ConnInstance;
-import org.apache.syncope.core.persistence.api.entity.VirSchema;
import org.apache.syncope.core.persistence.api.entity.resource.Provision;
import org.apache.syncope.core.provisioning.api.MappingManager;
import org.apache.syncope.core.provisioning.api.utils.RealmUtils;
@@ -120,13 +117,8 @@ public class ResourceLogic extends AbstractTransactionalLogic<ResourceTO> {
private ConnectorFactory connFactory;
protected void securityChecks(final Set<String> effectiveRealms, final String realm, final String key) {
- boolean authorized = IterableUtils.matchesAny(effectiveRealms, new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String ownedRealm) {
- return realm.startsWith(ownedRealm);
- }
- });
+ effectiveRealms.stream().anyMatch(ownedRealm -> realm.startsWith(ownedRealm));
+ boolean authorized = effectiveRealms.stream().anyMatch(ownedRealm -> realm.startsWith(ownedRealm));
if (!authorized) {
throw new DelegatedAdministrationException(realm, ExternalResource.class.getSimpleName(), key);
}
@@ -201,12 +193,12 @@ public class ResourceLogic extends AbstractTransactionalLogic<ResourceTO> {
if (anyType == null) {
throw new NotFoundException("AnyType '" + anyTypeKey + "'");
}
- Provision provision = resource.getProvision(anyType);
- if (provision == null) {
+ Optional<? extends Provision> provision = resource.getProvision(anyType);
+ if (!provision.isPresent()) {
throw new NotFoundException("Provision for AnyType '" + anyTypeKey + "' in Resource '" + key + "'");
}
- provision.setSyncToken(connector.getLatestSyncToken(provision.getObjectClass()));
+ provision.get().setSyncToken(connector.getLatestSyncToken(provision.get().getObjectClass()));
}
Set<String> effectiveRealms = RealmUtils.getEffective(
@@ -234,12 +226,12 @@ public class ResourceLogic extends AbstractTransactionalLogic<ResourceTO> {
if (anyType == null) {
throw new NotFoundException("AnyType '" + anyTypeKey + "'");
}
- Provision provision = resource.getProvision(anyType);
- if (provision == null) {
+ Optional<? extends Provision> provision = resource.getProvision(anyType);
+ if (!provision.isPresent()) {
throw new NotFoundException("Provision for AnyType '" + anyTypeKey + "' in Resource '" + key + "'");
}
- provision.setSyncToken(null);
+ provision.get().setSyncToken(null);
}
Set<String> effectiveRealms = RealmUtils.getEffective(
@@ -283,13 +275,8 @@ public class ResourceLogic extends AbstractTransactionalLogic<ResourceTO> {
@PreAuthorize("hasRole('" + StandardEntitlement.RESOURCE_LIST + "')")
@Transactional(readOnly = true)
public List<ResourceTO> list() {
- return CollectionUtils.collect(resourceDAO.findAll(), new Transformer<ExternalResource, ResourceTO>() {
-
- @Override
- public ResourceTO transform(final ExternalResource input) {
- return binder.getResourceTO(input);
- }
- }, new ArrayList<ResourceTO>());
+ return resourceDAO.findAll().stream().
+ map(resource -> binder.getResourceTO(resource)).collect(Collectors.toList());
}
private Triple<ExternalResource, AnyType, Provision> connObjectInit(
@@ -303,12 +290,12 @@ public class ResourceLogic extends AbstractTransactionalLogic<ResourceTO> {
if (anyType == null) {
throw new NotFoundException("AnyType '" + anyTypeKey + "'");
}
- Provision provision = resource.getProvision(anyType);
- if (provision == null) {
+ Optional<? extends Provision> provision = resource.getProvision(anyType);
+ if (!provision.isPresent()) {
throw new NotFoundException("Provision on resource '" + resourceKey + "' for type '" + anyTypeKey + "'");
}
- return ImmutableTriple.of(resource, anyType, provision);
+ return ImmutableTriple.of(resource, anyType, provision.get());
}
@PreAuthorize("hasRole('" + StandardEntitlement.RESOURCE_GET_CONNOBJECT + "')")
@@ -327,19 +314,19 @@ public class ResourceLogic extends AbstractTransactionalLogic<ResourceTO> {
}
// 2. build connObjectKeyItem
- MappingItem connObjectKeyItem = MappingUtils.getConnObjectKeyItem(init.getRight());
- if (connObjectKeyItem == null) {
+ Optional<MappingItem> connObjectKeyItem = MappingUtils.getConnObjectKeyItem(init.getRight());
+ if (!connObjectKeyItem.isPresent()) {
throw new NotFoundException(
"ConnObjectKey mapping for " + init.getMiddle() + " " + anyKey + " on resource '" + key + "'");
}
- String connObjectKeyValue = mappingManager.getConnObjectKeyValue(any, init.getRight());
+ Optional<String> connObjectKeyValue = mappingManager.getConnObjectKeyValue(any, init.getRight());
// 3. determine attributes to query
Set<MappingItem> linkinMappingItems = new HashSet<>();
- for (VirSchema virSchema : virSchemaDAO.findByProvision(init.getRight())) {
+ virSchemaDAO.findByProvision(init.getRight()).forEach(virSchema -> {
linkinMappingItems.add(virSchema.asLinkingMappingItem());
- }
- Iterator<MappingItem> mapItems = IteratorUtils.chainedIterator(
+ });
+ Iterator<MappingItem> mapItems = new IteratorChain<>(
init.getRight().getMapping().getItems().iterator(),
linkinMappingItems.iterator());
@@ -347,11 +334,11 @@ public class ResourceLogic extends AbstractTransactionalLogic<ResourceTO> {
Connector connector = connFactory.getConnector(init.getLeft());
ConnectorObject connectorObject = connector.getObject(
init.getRight().getObjectClass(),
- AttributeBuilder.build(connObjectKeyItem.getExtAttrName(), connObjectKeyValue),
+ AttributeBuilder.build(connObjectKeyItem.get().getExtAttrName(), connObjectKeyValue.get()),
MappingUtils.buildOperationOptions(mapItems));
if (connectorObject == null) {
throw new NotFoundException(
- "Object " + connObjectKeyValue + " with class " + init.getRight().getObjectClass()
+ "Object " + connObjectKeyValue.get() + " with class " + init.getRight().getObjectClass()
+ " not found on resource " + key);
}
@@ -394,10 +381,10 @@ public class ResourceLogic extends AbstractTransactionalLogic<ResourceTO> {
init.getRight().getMapping().getItems();
Set<MappingItem> linkinMappingItems = new HashSet<>();
- for (VirSchema virSchema : virSchemaDAO.findByProvision(init.getRight())) {
+ virSchemaDAO.findByProvision(init.getRight()).forEach(virSchema -> {
linkinMappingItems.add(virSchema.asLinkingMappingItem());
- }
- Iterator<MappingItem> mapItems = IteratorUtils.chainedIterator(
+ });
+ Iterator<MappingItem> mapItems = new IteratorChain<>(
init.getRight().getMapping().getItems().iterator(),
linkinMappingItems.iterator());
options = MappingUtils.buildOperationOptions(mapItems);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/logic/src/main/java/org/apache/syncope/core/logic/RoleLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/RoleLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/RoleLogic.java
index c5b3b9a..e8b9f8a 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/RoleLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/RoleLogic.java
@@ -19,10 +19,8 @@
package org.apache.syncope.core.logic;
import java.lang.reflect.Method;
-import java.util.ArrayList;
import java.util.List;
-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.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.to.RoleTO;
@@ -61,13 +59,7 @@ public class RoleLogic extends AbstractTransactionalLogic<RoleTO> {
@PreAuthorize("hasRole('" + StandardEntitlement.ROLE_LIST + "')")
@Transactional(readOnly = true)
public List<RoleTO> list() {
- return CollectionUtils.collect(roleDAO.findAll(), new Transformer<Role, RoleTO>() {
-
- @Override
- public RoleTO transform(final Role input) {
- return binder.getRoleTO(input);
- }
- }, new ArrayList<RoleTO>());
+ return roleDAO.findAll().stream().map(role -> binder.getRoleTO(role)).collect(Collectors.toList());
}
@PreAuthorize("hasRole('" + StandardEntitlement.ROLE_CREATE + "')")
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/logic/src/main/java/org/apache/syncope/core/logic/SchemaLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/SchemaLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/SchemaLogic.java
index 97da0f6..dba439b 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/SchemaLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/SchemaLogic.java
@@ -21,8 +21,8 @@ package org.apache.syncope.core.logic;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
+import java.util.function.Function;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.SyncopeClientException;
@@ -145,7 +145,7 @@ public class SchemaLogic extends AbstractTransactionalLogic<AbstractSchemaTO> {
}
@PreAuthorize("isAuthenticated()")
- @SuppressWarnings("unchecked")
+ @SuppressWarnings({ "unchecked", "Convert2Lambda" })
public <T extends AbstractSchemaTO> List<T> list(
final SchemaType schemaType, final List<String> anyTypeClasses) {
@@ -153,53 +153,50 @@ public class SchemaLogic extends AbstractTransactionalLogic<AbstractSchemaTO> {
if (anyTypeClasses != null) {
anyTypeClasses.remove(AnyTypeKind.USER.name());
anyTypeClasses.remove(AnyTypeKind.GROUP.name());
- for (String anyTypeClass : anyTypeClasses) {
+ anyTypeClasses.forEach(anyTypeClass -> {
AnyTypeClass clazz = anyTypeClassDAO.find(anyTypeClass);
if (clazz == null) {
LOG.warn("Ignoring invalid {}: {}", AnyTypeClass.class.getSimpleName(), anyTypeClass);
} else {
classes.add(clazz);
}
- }
+ });
}
List<T> result;
switch (schemaType) {
case VIRTUAL:
- result = CollectionUtils.collect(
- classes.isEmpty() ? virSchemaDAO.findAll() : virSchemaDAO.findByAnyTypeClasses(classes),
- new Transformer<VirSchema, T>() {
-
- @Override
- public T transform(final VirSchema input) {
- return (T) binder.getVirSchemaTO(input);
- }
- }, new ArrayList<T>());
+ result = (classes.isEmpty() ? virSchemaDAO.findAll() : virSchemaDAO.findByAnyTypeClasses(classes)).
+ stream().map(new Function<VirSchema, T>() {
+
+ @Override
+ public T apply(final VirSchema schema) {
+ return (T) binder.getVirSchemaTO(schema);
+ }
+ }).collect(Collectors.toList());
break;
case DERIVED:
- result = CollectionUtils.collect(
- classes.isEmpty() ? derSchemaDAO.findAll() : derSchemaDAO.findByAnyTypeClasses(classes),
- new Transformer<DerSchema, T>() {
-
- @Override
- public T transform(final DerSchema input) {
- return (T) binder.getDerSchemaTO(input);
- }
- }, new ArrayList<T>());
+ result = (classes.isEmpty() ? derSchemaDAO.findAll() : derSchemaDAO.findByAnyTypeClasses(classes)).
+ stream().map(new Function<DerSchema, T>() {
+
+ @Override
+ public T apply(final DerSchema schema) {
+ return (T) binder.getDerSchemaTO(schema);
+ }
+ }).collect(Collectors.toList());
break;
case PLAIN:
default:
- result = CollectionUtils.collect(
- classes.isEmpty() ? plainSchemaDAO.findAll() : plainSchemaDAO.findByAnyTypeClasses(classes),
- new Transformer<PlainSchema, T>() {
-
- @Override
- public T transform(final PlainSchema input) {
- return (T) binder.getPlainSchemaTO(input);
- }
- }, new ArrayList<T>());
+ result = (classes.isEmpty() ? plainSchemaDAO.findAll() : plainSchemaDAO.findByAnyTypeClasses(classes)).
+ stream().map(new Function<PlainSchema, T>() {
+
+ @Override
+ public T apply(final PlainSchema schema) {
+ return (T) binder.getPlainSchemaTO(schema);
+ }
+ }).collect(Collectors.toList());
}
return result;
[06/16] syncope git commit: [SYNCOPE-938] Switching from
commons-collections to Java 8 features
Posted by il...@apache.org.
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AnyObjectDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AnyObjectDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AnyObjectDataBinderImpl.java
index d2d7314..c9b177e 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AnyObjectDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AnyObjectDataBinderImpl.java
@@ -23,27 +23,22 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
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.StringUtils;
import org.apache.syncope.common.lib.SyncopeClientCompositeException;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.patch.AnyObjectPatch;
import org.apache.syncope.common.lib.patch.AttrPatch;
-import org.apache.syncope.common.lib.patch.MembershipPatch;
-import org.apache.syncope.common.lib.patch.RelationshipPatch;
import org.apache.syncope.common.lib.to.AnyObjectTO;
-import org.apache.syncope.common.lib.to.AttrTO;
import org.apache.syncope.common.lib.to.MembershipTO;
-import org.apache.syncope.common.lib.to.RelationshipTO;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.common.lib.types.ClientExceptionType;
import org.apache.syncope.common.lib.types.PatchOperation;
import org.apache.syncope.core.provisioning.api.PropagationByResource;
import org.apache.syncope.common.lib.types.ResourceOperation;
import org.apache.syncope.core.spring.BeanUtils;
-import org.apache.syncope.core.provisioning.api.utils.EntityUtils;
import org.apache.syncope.core.persistence.api.dao.AnyTypeDAO;
import org.apache.syncope.core.persistence.api.entity.AnyType;
import org.apache.syncope.core.persistence.api.entity.AnyUtils;
@@ -103,41 +98,27 @@ public class AnyObjectDataBinderImpl extends AbstractAnyDataBinder implements An
anyObjectTO.getDynRealms().addAll(userDAO.findDynRealms(anyObject.getKey()));
// relationships
- CollectionUtils.collect(anyObject.getRelationships(), new Transformer<ARelationship, RelationshipTO>() {
-
- @Override
- public RelationshipTO transform(final ARelationship relationship) {
- return AnyObjectDataBinderImpl.this.getRelationshipTO(relationship);
- }
-
- }, anyObjectTO.getRelationships());
+ anyObjectTO.getRelationships().addAll(
+ anyObject.getRelationships().stream().map(relationship -> getRelationshipTO(relationship)).
+ collect(Collectors.toList()));
// memberships
- CollectionUtils.collect(anyObject.getMemberships(), new Transformer<AMembership, MembershipTO>() {
-
- @Override
- public MembershipTO transform(final AMembership membership) {
- return getMembershipTO(
- anyObject.getPlainAttrs(membership),
- derAttrHandler.getValues(anyObject, membership),
- virAttrHandler.getValues(anyObject, membership),
- membership);
- }
- }, anyObjectTO.getMemberships());
+ anyObjectTO.getMemberships().addAll(
+ anyObject.getMemberships().stream().map(membership -> {
+ return getMembershipTO(
+ anyObject.getPlainAttrs(membership),
+ derAttrHandler.getValues(anyObject, membership),
+ virAttrHandler.getValues(anyObject, membership),
+ membership);
+ }).collect(Collectors.toList()));
// dynamic memberships
- CollectionUtils.collect(anyObjectDAO.findDynGroups(anyObject.getKey()),
- new Transformer<Group, MembershipTO>() {
-
- @Override
- public MembershipTO transform(final Group group) {
- MembershipTO membershipTO = new MembershipTO.Builder().
- group(group.getKey(), group.getName()).
- build();
- return membershipTO;
-
- }
- }, anyObjectTO.getDynMemberships());
+ anyObjectTO.getDynMemberships().addAll(
+ anyObjectDAO.findDynGroups(anyObject.getKey()).stream().map(group -> {
+ return new MembershipTO.Builder().
+ group(group.getKey(), group.getName()).
+ build();
+ }).collect(Collectors.toList()));
}
return anyObjectTO;
@@ -177,11 +158,11 @@ public class AnyObjectDataBinderImpl extends AbstractAnyDataBinder implements An
AnyUtils anyUtils = anyUtilsFactory.getInstance(AnyTypeKind.ANY_OBJECT);
if (anyObject.getRealm() != null) {
// relationships
- Collection<String> assignableAnyObjects = CollectionUtils.collect(
- searchDAO.searchAssignable(anyObject.getRealm().getFullPath(), AnyTypeKind.ANY_OBJECT),
- EntityUtils.keyTransformer());
+ Collection<String> assignableAnyObjects =
+ searchDAO.searchAssignable(anyObject.getRealm().getFullPath(), AnyTypeKind.ANY_OBJECT).stream().
+ map(a -> a.getKey()).collect(Collectors.toList());
- for (RelationshipTO relationshipTO : anyObjectTO.getRelationships()) {
+ anyObjectTO.getRelationships().forEach(relationshipTO -> {
if (StringUtils.isBlank(relationshipTO.getRightType())
|| AnyTypeKind.USER.name().equals(relationshipTO.getRightType())
|| AnyTypeKind.GROUP.name().equals(relationshipTO.getRightType())) {
@@ -216,14 +197,14 @@ public class AnyObjectDataBinderImpl extends AbstractAnyDataBinder implements An
scce.addException(unassignabled);
}
}
- }
+ });
// memberships
- Collection<String> assignableGroups = CollectionUtils.collect(
- searchDAO.searchAssignable(anyObject.getRealm().getFullPath(), AnyTypeKind.GROUP),
- EntityUtils.keyTransformer());
+ Collection<String> assignableGroups =
+ searchDAO.searchAssignable(anyObject.getRealm().getFullPath(), AnyTypeKind.GROUP).stream().
+ map(g -> g.getKey()).collect(Collectors.toList());
- for (MembershipTO membershipTO : anyObjectTO.getMemberships()) {
+ anyObjectTO.getMemberships().forEach(membershipTO -> {
Group group = membershipTO.getRightKey() == null
? groupDAO.findByName(membershipTO.getGroupName())
: groupDAO.find(membershipTO.getRightKey());
@@ -247,7 +228,7 @@ public class AnyObjectDataBinderImpl extends AbstractAnyDataBinder implements An
unassignable.getElements().add("Cannot be assigned: " + group);
scce.addException(unassignable);
}
- }
+ });
}
// attributes and resources
@@ -291,136 +272,134 @@ public class AnyObjectDataBinderImpl extends AbstractAnyDataBinder implements An
Set<String> toBeProvisioned = new HashSet<>();
// relationships
- Collection<String> assignableAnyObjects = CollectionUtils.collect(
- searchDAO.searchAssignable(anyObject.getRealm().getFullPath(), AnyTypeKind.ANY_OBJECT),
- EntityUtils.keyTransformer());
-
- for (RelationshipPatch patch : anyObjectPatch.getRelationships()) {
- if (patch.getRelationshipTO() != null) {
- RelationshipType relationshipType = relationshipTypeDAO.find(patch.getRelationshipTO().getType());
- if (relationshipType == null) {
- LOG.debug("Ignoring invalid relationship type {}", patch.getRelationshipTO().getType());
- } else {
- ARelationship relationship =
- anyObject.getRelationship(relationshipType, patch.getRelationshipTO().getRightKey());
- if (relationship != null) {
- anyObject.getRelationships().remove(relationship);
- relationship.setLeftEnd(null);
-
- toBeDeprovisioned.addAll(
- anyObjectDAO.findAllResourceKeys(relationship.getRightEnd().getKey()));
- }
+ Collection<String> assignableAnyObjects =
+ searchDAO.searchAssignable(anyObject.getRealm().getFullPath(), AnyTypeKind.ANY_OBJECT).stream().
+ map(a -> a.getKey()).collect(Collectors.toList());
+
+ anyObjectPatch.getRelationships().stream().
+ filter(patch -> patch.getRelationshipTO() != null).forEachOrdered((patch) -> {
+ RelationshipType relationshipType = relationshipTypeDAO.find(patch.getRelationshipTO().getType());
+ if (relationshipType == null) {
+ LOG.debug("Ignoring invalid relationship type {}", patch.getRelationshipTO().getType());
+ } else {
+ Optional<? extends ARelationship> relationship =
+ anyObject.getRelationship(relationshipType, patch.getRelationshipTO().getRightKey());
+ if (relationship.isPresent()) {
+ anyObject.getRelationships().remove(relationship.get());
+ relationship.get().setLeftEnd(null);
+
+ toBeDeprovisioned.addAll(
+ anyObjectDAO.findAllResourceKeys(relationship.get().getRightEnd().getKey()));
+ }
- if (patch.getOperation() == PatchOperation.ADD_REPLACE) {
- if (StringUtils.isBlank(patch.getRelationshipTO().getRightType())
- || AnyTypeKind.USER.name().equals(patch.getRelationshipTO().getRightType())
- || AnyTypeKind.GROUP.name().equals(patch.getRelationshipTO().getRightType())) {
+ if (patch.getOperation() == PatchOperation.ADD_REPLACE) {
+ if (StringUtils.isBlank(patch.getRelationshipTO().getRightType())
+ || AnyTypeKind.USER.name().equals(patch.getRelationshipTO().getRightType())
+ || AnyTypeKind.GROUP.name().equals(patch.getRelationshipTO().getRightType())) {
- SyncopeClientException invalidAnyType =
- SyncopeClientException.build(ClientExceptionType.InvalidAnyType);
- invalidAnyType.getElements().add(AnyType.class.getSimpleName()
- + " not allowed for relationship: " + patch.getRelationshipTO().getRightType());
- scce.addException(invalidAnyType);
+ SyncopeClientException invalidAnyType =
+ SyncopeClientException.build(ClientExceptionType.InvalidAnyType);
+ invalidAnyType.getElements().add(AnyType.class.getSimpleName()
+ + " not allowed for relationship: " + patch.getRelationshipTO().getRightType());
+ scce.addException(invalidAnyType);
+ } else {
+ AnyObject otherEnd = anyObjectDAO.find(patch.getRelationshipTO().getRightKey());
+ if (otherEnd == null) {
+ LOG.debug("Ignoring invalid any object {}", patch.getRelationshipTO().getRightKey());
+ } else if (assignableAnyObjects.contains(otherEnd.getKey())) {
+ ARelationship newRelationship = entityFactory.newEntity(ARelationship.class);
+ newRelationship.setType(relationshipType);
+ newRelationship.setRightEnd(otherEnd);
+ newRelationship.setLeftEnd(anyObject);
+
+ anyObject.add(newRelationship);
+
+ toBeProvisioned.addAll(anyObjectDAO.findAllResourceKeys(otherEnd.getKey()));
} else {
- AnyObject otherEnd = anyObjectDAO.find(patch.getRelationshipTO().getRightKey());
- if (otherEnd == null) {
- LOG.debug("Ignoring invalid any object {}", patch.getRelationshipTO().getRightKey());
- } else if (assignableAnyObjects.contains(otherEnd.getKey())) {
- relationship = entityFactory.newEntity(ARelationship.class);
- relationship.setType(relationshipType);
- relationship.setRightEnd(otherEnd);
- relationship.setLeftEnd(anyObject);
-
- anyObject.add(relationship);
-
- toBeProvisioned.addAll(anyObjectDAO.findAllResourceKeys(otherEnd.getKey()));
- } else {
- LOG.error("{} cannot be assigned to {}", otherEnd, anyObject);
-
- SyncopeClientException unassignable =
- SyncopeClientException.build(ClientExceptionType.InvalidRelationship);
- unassignable.getElements().add("Cannot be assigned: " + otherEnd);
- scce.addException(unassignable);
- }
+ LOG.error("{} cannot be assigned to {}", otherEnd, anyObject);
+
+ SyncopeClientException unassignable =
+ SyncopeClientException.build(ClientExceptionType.InvalidRelationship);
+ unassignable.getElements().add("Cannot be assigned: " + otherEnd);
+ scce.addException(unassignable);
}
}
}
}
- }
+ });
Collection<ExternalResource> resources = anyObjectDAO.findAllResources(anyObject);
SyncopeClientException invalidValues = SyncopeClientException.build(ClientExceptionType.InvalidValues);
// memberships
- Collection<String> assignableGroups = CollectionUtils.collect(
- searchDAO.searchAssignable(anyObject.getRealm().getFullPath(), AnyTypeKind.GROUP),
- EntityUtils.keyTransformer());
-
- for (MembershipPatch membPatch : anyObjectPatch.getMemberships()) {
- if (membPatch.getGroup() != null) {
- AMembership membership = anyObject.getMembership(membPatch.getGroup());
- if (membership != null) {
- anyObject.getMemberships().remove(membership);
- membership.setLeftEnd(null);
- for (APlainAttr attr : anyObject.getPlainAttrs(membership)) {
- anyObject.remove(attr);
- attr.setOwner(null);
- }
+ Collection<String> assignableGroups =
+ searchDAO.searchAssignable(anyObject.getRealm().getFullPath(), AnyTypeKind.GROUP).stream().
+ map(g -> g.getKey()).collect(Collectors.toList());
+
+ anyObjectPatch.getMemberships().stream().
+ filter((membPatch) -> (membPatch.getGroup() != null)).forEachOrdered(membPatch -> {
+ Optional<? extends AMembership> membership = anyObject.getMembership(membPatch.getGroup());
+ if (membership.isPresent()) {
+ anyObject.getMemberships().remove(membership.get());
+ membership.get().setLeftEnd(null);
+ anyObject.getPlainAttrs(membership.get()).forEach(attr -> {
+ anyObject.remove(attr);
+ attr.setOwner(null);
+ });
+
+ toBeDeprovisioned.addAll(groupDAO.findAllResourceKeys(membership.get().getRightEnd().getKey()));
+ }
+ if (membPatch.getOperation() == PatchOperation.ADD_REPLACE) {
+ Group group = groupDAO.find(membPatch.getGroup());
+ if (group == null) {
+ LOG.debug("Ignoring invalid group {}", membPatch.getGroup());
+ } else if (assignableGroups.contains(group.getKey())) {
+ AMembership newMembership = entityFactory.newEntity(AMembership.class);
+ newMembership.setRightEnd(group);
+ newMembership.setLeftEnd(anyObject);
- toBeDeprovisioned.addAll(groupDAO.findAllResourceKeys(membership.getRightEnd().getKey()));
- }
+ anyObject.add(newMembership);
- if (membPatch.getOperation() == PatchOperation.ADD_REPLACE) {
- Group group = groupDAO.find(membPatch.getGroup());
- if (group == null) {
- LOG.debug("Ignoring invalid group {}", membPatch.getGroup());
- } else if (assignableGroups.contains(group.getKey())) {
- membership = entityFactory.newEntity(AMembership.class);
- membership.setRightEnd(group);
- membership.setLeftEnd(anyObject);
-
- anyObject.add(membership);
-
- for (AttrTO attrTO : membPatch.getPlainAttrs()) {
- PlainSchema schema = getPlainSchema(attrTO.getSchema());
- if (schema == null) {
- LOG.debug("Invalid " + PlainSchema.class.getSimpleName()
- + "{}, ignoring...", attrTO.getSchema());
- } else {
- APlainAttr attr = anyObject.getPlainAttr(schema.getKey(), membership);
- if (attr == null) {
- LOG.debug("No plain attribute found for {} and membership of {}",
- schema, membership.getRightEnd());
-
- attr = anyUtils.newPlainAttr();
- attr.setOwner(anyObject);
- attr.setMembership(membership);
- attr.setSchema(schema);
- anyObject.add(attr);
-
- AttrPatch patch = new AttrPatch.Builder().attrTO(attrTO).build();
- processAttrPatch(
- anyObject, patch, schema, attr, anyUtils,
- resources, propByRes, invalidValues);
- }
+ membPatch.getPlainAttrs().forEach(attrTO -> {
+ PlainSchema schema = getPlainSchema(attrTO.getSchema());
+ if (schema == null) {
+ LOG.debug("Invalid " + PlainSchema.class.getSimpleName()
+ + "{}, ignoring...", attrTO.getSchema());
+ } else {
+ Optional<? extends APlainAttr> attr =
+ anyObject.getPlainAttr(schema.getKey(), newMembership);
+ if (!attr.isPresent()) {
+ LOG.debug("No plain attribute found for {} and membership of {}",
+ schema, newMembership.getRightEnd());
+
+ APlainAttr newAttr = anyUtils.newPlainAttr();
+ newAttr.setOwner(anyObject);
+ newAttr.setMembership(newMembership);
+ newAttr.setSchema(schema);
+ anyObject.add(newAttr);
+
+ AttrPatch patch = new AttrPatch.Builder().attrTO(attrTO).build();
+ processAttrPatch(
+ anyObject, patch, schema, newAttr, anyUtils,
+ resources, propByRes, invalidValues);
}
}
- if (!invalidValues.isEmpty()) {
- scce.addException(invalidValues);
- }
+ });
+ if (!invalidValues.isEmpty()) {
+ scce.addException(invalidValues);
+ }
- toBeProvisioned.addAll(groupDAO.findAllResourceKeys(group.getKey()));
- } else {
- LOG.error("{} cannot be assigned to {}", group, anyObject);
+ toBeProvisioned.addAll(groupDAO.findAllResourceKeys(group.getKey()));
+ } else {
+ LOG.error("{} cannot be assigned to {}", group, anyObject);
- SyncopeClientException unassignabled =
- SyncopeClientException.build(ClientExceptionType.InvalidMembership);
- unassignabled.getElements().add("Cannot be assigned: " + group);
- scce.addException(unassignabled);
- }
+ SyncopeClientException unassignabled =
+ SyncopeClientException.build(ClientExceptionType.InvalidMembership);
+ unassignabled.getElements().add("Cannot be assigned: " + group);
+ scce.addException(unassignabled);
}
}
- }
+ });
propByRes.addAll(ResourceOperation.DELETE, toBeDeprovisioned);
propByRes.addAll(ResourceOperation.UPDATE, toBeProvisioned);
@@ -436,14 +415,14 @@ public class AnyObjectDataBinderImpl extends AbstractAnyDataBinder implements An
// check if some connObjectKey was changed by the update above
Map<String, String> newcCnnObjectKeys = getConnObjectKeys(anyObject);
- for (Map.Entry<String, String> entry : oldConnObjectKeys.entrySet()) {
- if (newcCnnObjectKeys.containsKey(entry.getKey())
- && !entry.getValue().equals(newcCnnObjectKeys.get(entry.getKey()))) {
-
- propByRes.addOldConnObjectKey(entry.getKey(), entry.getValue());
- propByRes.add(ResourceOperation.UPDATE, entry.getKey());
- }
- }
+ oldConnObjectKeys.entrySet().stream().
+ filter(entry -> newcCnnObjectKeys.containsKey(entry.getKey())
+ && !entry.getValue().equals(newcCnnObjectKeys.get(entry.getKey()))).
+ forEach(entry -> {
+
+ propByRes.addOldConnObjectKey(entry.getKey(), entry.getValue());
+ propByRes.add(ResourceOperation.UPDATE, entry.getKey());
+ });
anyObjectDAO.save(anyObject);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AnyTypeDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AnyTypeDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AnyTypeDataBinderImpl.java
index 84d9bd9..45b5089 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AnyTypeDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AnyTypeDataBinderImpl.java
@@ -21,9 +21,8 @@ package org.apache.syncope.core.provisioning.java.data;
import com.fasterxml.jackson.core.type.TypeReference;
import java.util.HashSet;
import java.util.Set;
+import java.util.stream.Collectors;
import javax.annotation.Resource;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.common.lib.to.AnyTypeTO;
@@ -85,9 +84,9 @@ public class AnyTypeDataBinderImpl implements AnyTypeDataBinder {
new TypeReference<Set<SyncopeGrantedAuthority>>() {
}));
- for (String entitlement : added) {
+ added.forEach(entitlement -> {
authorities.add(new SyncopeGrantedAuthority(entitlement, SyncopeConstants.ROOT_REALM));
- }
+ });
accessToken.setAuthorities(ENCRYPTOR.encode(
POJOHelper.serialize(authorities), CipherAlgorithm.AES).
@@ -117,14 +116,14 @@ public class AnyTypeDataBinderImpl implements AnyTypeDataBinder {
}
anyType.getClasses().clear();
- for (String anyTypeClassName : anyTypeTO.getClasses()) {
+ anyTypeTO.getClasses().forEach(anyTypeClassName -> {
AnyTypeClass anyTypeClass = anyTypeClassDAO.find(anyTypeClassName);
if (anyTypeClass == null) {
LOG.debug("Invalid " + AnyTypeClass.class.getSimpleName() + "{}, ignoring...", anyTypeClassName);
} else {
anyType.add(anyTypeClass);
}
- }
+ });
}
@Override
@@ -143,13 +142,8 @@ public class AnyTypeDataBinderImpl implements AnyTypeDataBinder {
new TypeReference<Set<SyncopeGrantedAuthority>>() {
}));
- CollectionUtils.filterInverse(authorities, new Predicate<SyncopeGrantedAuthority>() {
-
- @Override
- public boolean evaluate(final SyncopeGrantedAuthority authority) {
- return removed.contains(authority.getAuthority());
- }
- });
+ authorities.removeAll(authorities.stream().
+ filter(authority -> removed.contains(authority.getAuthority())).collect(Collectors.toList()));
accessToken.setAuthorities(ENCRYPTOR.encode(
POJOHelper.serialize(authorities), CipherAlgorithm.AES).
@@ -170,9 +164,9 @@ public class AnyTypeDataBinderImpl implements AnyTypeDataBinder {
anyTypeTO.setKey(anyType.getKey());
anyTypeTO.setKind(anyType.getKind());
- for (AnyTypeClass anyTypeClass : anyType.getClasses()) {
+ anyType.getClasses().forEach(anyTypeClass -> {
anyTypeTO.getClasses().add(anyTypeClass.getKey());
- }
+ });
return anyTypeTO;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ConnInstanceDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ConnInstanceDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ConnInstanceDataBinderImpl.java
index 7dfb721..d4b9206 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ConnInstanceDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ConnInstanceDataBinderImpl.java
@@ -25,6 +25,7 @@ import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.List;
+import java.util.Optional;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.to.ConnInstanceTO;
@@ -249,16 +250,16 @@ public class ConnInstanceDataBinderImpl implements ConnInstanceDataBinder {
connInstanceTO.getConf().addAll(connInstance.getConf());
// refresh stored properties in the given connInstance with direct information from underlying connector
ConfigurationProperties properties = connIdBundleManager.getConfigurationProperties(info.getRight());
- for (String propName : properties.getPropertyNames()) {
+ properties.getPropertyNames().forEach(propName -> {
ConnConfPropSchema schema = build(properties.getProperty(propName));
- ConnConfProperty property = connInstanceTO.getConf(propName);
- if (property == null) {
- property = new ConnConfProperty();
- connInstanceTO.getConf().add(property);
+ Optional<ConnConfProperty> property = connInstanceTO.getConf(propName);
+ if (!property.isPresent()) {
+ property = Optional.of(new ConnConfProperty());
+ connInstanceTO.getConf().add(property.get());
}
- property.setSchema(schema);
- }
+ property.get().setSchema(schema);
+ });
Collections.sort(connInstanceTO.getConf());
// pool configuration
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/GroupDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/GroupDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/GroupDataBinderImpl.java
index 787353c..3105e19 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/GroupDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/GroupDataBinderImpl.java
@@ -23,8 +23,7 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.SyncopeClientCompositeException;
import org.apache.syncope.common.lib.SyncopeClientException;
@@ -46,14 +45,12 @@ import org.apache.syncope.core.persistence.api.entity.AnyType;
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.DynGroupMembership;
+import org.apache.syncope.core.persistence.api.entity.Entity;
import org.apache.syncope.core.persistence.api.entity.Realm;
import org.apache.syncope.core.persistence.api.entity.VirSchema;
import org.apache.syncope.core.persistence.api.entity.anyobject.ADynGroupMembership;
-import org.apache.syncope.core.persistence.api.entity.anyobject.AMembership;
import org.apache.syncope.core.persistence.api.entity.group.TypeExtension;
-import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
import org.apache.syncope.core.persistence.api.entity.user.UDynGroupMembership;
-import org.apache.syncope.core.persistence.api.entity.user.UMembership;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
@@ -74,7 +71,7 @@ public class GroupDataBinderImpl extends AbstractAnyDataBinder implements GroupD
}
DynGroupMembership<?> dynMembership;
- if (anyType.getKind() == AnyTypeKind.ANY_OBJECT && group.getADynMembership(anyType) == null) {
+ if (anyType.getKind() == AnyTypeKind.ANY_OBJECT && !group.getADynMembership(anyType).isPresent()) {
dynMembership = entityFactory.newEntity(ADynGroupMembership.class);
dynMembership.setGroup(group);
group.add((ADynGroupMembership) dynMembership);
@@ -85,7 +82,7 @@ public class GroupDataBinderImpl extends AbstractAnyDataBinder implements GroupD
group.setUDynMembership((UDynGroupMembership) dynMembership);
} else {
dynMembership = anyType.getKind() == AnyTypeKind.ANY_OBJECT
- ? group.getADynMembership(anyType)
+ ? group.getADynMembership(anyType).get()
: group.getUDynMembership();
}
dynMembership.setFIQLCond(dynMembershipFIQL);
@@ -139,17 +136,17 @@ public class GroupDataBinderImpl extends AbstractAnyDataBinder implements GroupD
if (groupTO.getUDynMembershipCond() != null) {
setDynMembership(group, anyTypeDAO.findUser(), groupTO.getUDynMembershipCond());
}
- for (Map.Entry<String, String> entry : groupTO.getADynMembershipConds().entrySet()) {
+ groupTO.getADynMembershipConds().entrySet().forEach(entry -> {
AnyType anyType = anyTypeDAO.find(entry.getKey());
if (anyType == null) {
LOG.warn("Ignoring invalid {}: {}", AnyType.class.getSimpleName(), entry.getKey());
} else {
setDynMembership(group, anyType, entry.getValue());
}
- }
+ });
// type extensions
- for (TypeExtensionTO typeExtTO : groupTO.getTypeExtensions()) {
+ groupTO.getTypeExtensions().forEach(typeExtTO -> {
AnyType anyType = anyTypeDAO.find(typeExtTO.getAnyType());
if (anyType == null) {
LOG.warn("Ignoring invalid {}: {}", AnyType.class.getSimpleName(), typeExtTO.getAnyType());
@@ -159,21 +156,21 @@ public class GroupDataBinderImpl extends AbstractAnyDataBinder implements GroupD
typeExt.setGroup(group);
group.add(typeExt);
- for (String name : typeExtTO.getAuxClasses()) {
+ typeExtTO.getAuxClasses().forEach(name -> {
AnyTypeClass anyTypeClass = anyTypeClassDAO.find(name);
if (anyTypeClass == null) {
LOG.warn("Ignoring invalid {}: {}", AnyTypeClass.class.getSimpleName(), name);
} else {
typeExt.add(anyTypeClass);
}
- }
+ });
if (typeExt.getAuxClasses().isEmpty()) {
group.getTypeExtensions().remove(typeExt);
typeExt.setGroup(null);
}
}
- }
+ });
// Throw composite exception if there is at least one element set in the composing exceptions
if (scce.hasExceptions()) {
@@ -220,14 +217,14 @@ public class GroupDataBinderImpl extends AbstractAnyDataBinder implements GroupD
// check if some connObjectKey was changed by the update above
Map<String, String> newConnObjectKeys = getConnObjectKeys(group);
- for (Map.Entry<String, String> entry : oldConnObjectKeys.entrySet()) {
- if (newConnObjectKeys.containsKey(entry.getKey())
- && !entry.getValue().equals(newConnObjectKeys.get(entry.getKey()))) {
+ oldConnObjectKeys.entrySet().stream().
+ filter(entry -> newConnObjectKeys.containsKey(entry.getKey())
+ && !entry.getValue().equals(newConnObjectKeys.get(entry.getKey()))).
+ forEach(entry -> {
- propByRes.addOldConnObjectKey(entry.getKey(), entry.getValue());
- propByRes.add(ResourceOperation.UPDATE, entry.getKey());
- }
- }
+ propByRes.addOldConnObjectKey(entry.getKey(), entry.getValue());
+ propByRes.add(ResourceOperation.UPDATE, entry.getKey());
+ });
group = groupDAO.save(group);
@@ -262,7 +259,7 @@ public class GroupDataBinderImpl extends AbstractAnyDataBinder implements GroupD
if (anyType == null) {
LOG.warn("Ignoring invalid {}: {}", AnyType.class.getSimpleName(), typeExtTO.getAnyType());
} else {
- TypeExtension typeExt = group.getTypeExtension(anyType);
+ TypeExtension typeExt = group.getTypeExtension(anyType).orElse(null);
if (typeExt == null) {
typeExt = entityFactory.newEntity(TypeExtension.class);
typeExt.setAnyType(anyType);
@@ -297,7 +294,7 @@ public class GroupDataBinderImpl extends AbstractAnyDataBinder implements GroupD
// remove all type extensions not contained in the TO
for (Iterator<? extends TypeExtension> itor = group.getTypeExtensions().iterator(); itor.hasNext();) {
TypeExtension typeExt = itor.next();
- if (groupPatch.getTypeExtension(typeExt.getAnyType().getKey()) == null) {
+ if (!groupPatch.getTypeExtension(typeExt.getAnyType().getKey()).isPresent()) {
itor.remove();
}
}
@@ -314,15 +311,8 @@ public class GroupDataBinderImpl extends AbstractAnyDataBinder implements GroupD
public TypeExtensionTO getTypeExtensionTO(final TypeExtension typeExt) {
TypeExtensionTO typeExtTO = new TypeExtensionTO();
typeExtTO.setAnyType(typeExt.getAnyType().getKey());
- typeExtTO.getAuxClasses().addAll(CollectionUtils.collect(typeExt.getAuxClasses(),
- new Transformer<AnyTypeClass, String>() {
-
- @Override
- public String transform(final AnyTypeClass clazz) {
- return clazz.getKey();
- }
- }));
-
+ typeExtTO.getAuxClasses().addAll(
+ typeExt.getAuxClasses().stream().map(Entity::getKey).collect(Collectors.toList()));
return typeExtTO;
}
@@ -368,13 +358,13 @@ public class GroupDataBinderImpl extends AbstractAnyDataBinder implements GroupD
if (group.getUDynMembership() != null) {
groupTO.setUDynMembershipCond(group.getUDynMembership().getFIQLCond());
}
- for (ADynGroupMembership memb : group.getADynMemberships()) {
+ group.getADynMemberships().forEach(memb -> {
groupTO.getADynMembershipConds().put(memb.getAnyType().getKey(), memb.getFIQLCond());
- }
+ });
- for (TypeExtension typeExt : group.getTypeExtensions()) {
+ group.getTypeExtensions().forEach(typeExt -> {
groupTO.getTypeExtensions().add(getTypeExtensionTO(typeExt));
- }
+ });
return groupTO;
}
@@ -389,7 +379,7 @@ public class GroupDataBinderImpl extends AbstractAnyDataBinder implements GroupD
final Group group, final Any<?> any, final Map<String, PropagationByResource> result) {
PropagationByResource propByRes = new PropagationByResource();
- for (ExternalResource resource : group.getResources()) {
+ group.getResources().forEach(resource -> {
if (!any.getResources().contains(resource)) {
propByRes.add(ResourceOperation.DELETE, resource.getKey());
}
@@ -397,7 +387,7 @@ public class GroupDataBinderImpl extends AbstractAnyDataBinder implements GroupD
if (!propByRes.isEmpty()) {
result.put(any.getKey(), propByRes);
}
- }
+ });
}
@Transactional(readOnly = true)
@@ -407,9 +397,9 @@ public class GroupDataBinderImpl extends AbstractAnyDataBinder implements GroupD
Map<String, PropagationByResource> result = new HashMap<>();
- for (AMembership membership : groupDAO.findAMemberships(group)) {
+ groupDAO.findAMemberships(group).forEach((membership) -> {
populateTransitiveResources(group, membership.getLeftEnd(), result);
- }
+ });
return result;
}
@@ -421,9 +411,9 @@ public class GroupDataBinderImpl extends AbstractAnyDataBinder implements GroupD
Map<String, PropagationByResource> result = new HashMap<>();
- for (UMembership membership : groupDAO.findUMemberships(group)) {
+ groupDAO.findUMemberships(group).forEach((membership) -> {
populateTransitiveResources(group, membership.getLeftEnd(), result);
- }
+ });
return result;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/NotificationDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/NotificationDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/NotificationDataBinderImpl.java
index ccea817..3afe622 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/NotificationDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/NotificationDataBinderImpl.java
@@ -18,10 +18,8 @@
*/
package org.apache.syncope.core.provisioning.java.data;
-import java.util.Map;
import java.util.regex.Matcher;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Predicate;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.SyncopeConstants;
@@ -70,9 +68,9 @@ public class NotificationDataBinderImpl implements NotificationDataBinder {
BeanUtils.copyProperties(notification, result, IGNORE_PROPERTIES);
- for (AnyAbout about : notification.getAbouts()) {
+ notification.getAbouts().forEach(about -> {
result.getAbouts().put(about.getAnyType().getKey(), about.get());
- }
+ });
return result;
}
@@ -101,13 +99,13 @@ public class NotificationDataBinderImpl implements NotificationDataBinder {
}
if (!notification.getStaticRecipients().isEmpty()) {
- for (String mail : notification.getStaticRecipients()) {
+ notification.getStaticRecipients().forEach(mail -> {
Matcher matcher = SyncopeConstants.EMAIL_PATTERN.matcher(mail);
if (!matcher.matches()) {
LOG.error("Invalid mail address: {}", mail);
sce.getElements().add("staticRecipients: " + mail);
}
- }
+ });
}
if (!sce.isEmpty()) {
@@ -115,33 +113,30 @@ public class NotificationDataBinderImpl implements NotificationDataBinder {
}
// 1. add or update all (valid) abouts from TO
- for (Map.Entry<String, String> entry : notificationTO.getAbouts().entrySet()) {
- if (StringUtils.isNotBlank(entry.getValue())) {
- AnyType anyType = anyTypeDAO.find(entry.getKey());
- if (anyType == null) {
- LOG.debug("Invalid AnyType {} specified, ignoring...", entry.getKey());
- } else {
- AnyAbout about = notification.getAbout(anyType);
- if (about == null) {
- about = entityFactory.newEntity(AnyAbout.class);
- about.setAnyType(anyType);
- about.setNotification(notification);
-
- notification.add(about);
+ notificationTO.getAbouts().entrySet().stream().
+ filter(entry -> StringUtils.isNotBlank(entry.getValue())).
+ forEachOrdered((entry) -> {
+
+ AnyType anyType = anyTypeDAO.find(entry.getKey());
+ if (anyType == null) {
+ LOG.debug("Invalid AnyType {} specified, ignoring...", entry.getKey());
+ } else {
+ AnyAbout about = notification.getAbout(anyType).orElse(null);
+ if (about == null) {
+ about = entityFactory.newEntity(AnyAbout.class);
+ about.setAnyType(anyType);
+ about.setNotification(notification);
+
+ notification.add(about);
+ }
+ about.set(entry.getValue());
}
- about.set(entry.getValue());
- }
- }
- }
+ });
// 2. remove all abouts not contained in the TO
- CollectionUtils.filter(notification.getAbouts(), new Predicate<AnyAbout>() {
-
- @Override
- public boolean evaluate(final AnyAbout anyAbout) {
- return notificationTO.getAbouts().containsKey(anyAbout.getAnyType().getKey());
- }
- });
+ notification.getAbouts().removeAll(notification.getAbouts().stream().
+ filter(anyAbout -> !notificationTO.getAbouts().containsKey(anyAbout.getAnyType().getKey())).
+ collect(Collectors.toList()));
// 3. verify recipientAttrName
intAttrNameParser.parse(notification.getRecipientAttrName(), AnyTypeKind.USER);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/PolicyDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/PolicyDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/PolicyDataBinderImpl.java
index 35eac98..a049fe8 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/PolicyDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/PolicyDataBinderImpl.java
@@ -152,7 +152,7 @@ public class PolicyDataBinderImpl implements PolicyDataBinder {
accountPolicyTO.getRuleConfs().add((AbstractAccountRuleConf) ruleConf);
}
- accountPolicyTO.getPassthroughResources().addAll(accountPolicy.getResourceNames());
+ accountPolicyTO.getPassthroughResources().addAll(accountPolicy.getResourceKeys());
} else if (policy instanceof PullPolicy) {
policyTO = (T) new PullPolicyTO();
((PullPolicyTO) policyTO).setSpecification(((PullPolicy) policy).getSpecification());
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/RealmDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/RealmDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/RealmDataBinderImpl.java
index 32678cc..c7fc089 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/RealmDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/RealmDataBinderImpl.java
@@ -18,11 +18,8 @@
*/
package org.apache.syncope.core.provisioning.java.data;
-import java.util.Map;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Predicate;
+import java.util.stream.Collectors;
import org.apache.syncope.common.lib.SyncopeClientException;
-import org.apache.syncope.common.lib.to.AnyTO;
import org.apache.syncope.common.lib.to.RealmTO;
import org.apache.syncope.common.lib.types.ClientExceptionType;
import org.apache.syncope.core.provisioning.api.PropagationByResource;
@@ -73,12 +70,12 @@ public class RealmDataBinderImpl implements RealmDataBinder {
private void setTemplates(final RealmTO realmTO, final Realm realm) {
// validate JEXL expressions from templates and proceed if fine
templateUtils.check(realmTO.getTemplates(), ClientExceptionType.InvalidPullTask);
- for (Map.Entry<String, AnyTO> entry : realmTO.getTemplates().entrySet()) {
+ realmTO.getTemplates().entrySet().forEach(entry -> {
AnyType type = anyTypeDAO.find(entry.getKey());
if (type == null) {
LOG.debug("Invalid AnyType {} specified, ignoring...", entry.getKey());
} else {
- AnyTemplateRealm anyTemplate = realm.getTemplate(type);
+ AnyTemplateRealm anyTemplate = realm.getTemplate(type).orElse(null);
if (anyTemplate == null) {
anyTemplate = entityFactory.newEntity(AnyTemplateRealm.class);
anyTemplate.setAnyType(type);
@@ -88,15 +85,12 @@ public class RealmDataBinderImpl implements RealmDataBinder {
}
anyTemplate.set(entry.getValue());
}
- }
- // remove all templates not contained in the TO
- CollectionUtils.filter(realm.getTemplates(), new Predicate<AnyTemplate>() {
-
- @Override
- public boolean evaluate(final AnyTemplate anyTemplate) {
- return realmTO.getTemplates().containsKey(anyTemplate.getAnyType().getKey());
- }
});
+ // remove all templates not contained in the TO
+ realm.getTemplates().removeAll(
+ realm.getTemplates().stream().
+ filter(anyTemplate -> !realmTO.getTemplates().containsKey(anyTemplate.getAnyType().getKey())).
+ collect(Collectors.toList()));
}
@Override
@@ -133,14 +127,14 @@ public class RealmDataBinderImpl implements RealmDataBinder {
setTemplates(realmTO, realm);
- for (String resourceKey : realmTO.getResources()) {
+ realmTO.getResources().forEach(resourceKey -> {
ExternalResource resource = resourceDAO.find(resourceKey);
if (resource == null) {
LOG.debug("Invalid " + ExternalResource.class.getSimpleName() + "{}, ignoring...", resourceKey);
} else {
realm.add(resource);
}
- }
+ });
return realm;
}
@@ -184,7 +178,7 @@ public class RealmDataBinderImpl implements RealmDataBinder {
setTemplates(realmTO, realm);
final PropagationByResource propByRes = new PropagationByResource();
- for (String resourceKey : realmTO.getResources()) {
+ realmTO.getResources().forEach(resourceKey -> {
ExternalResource resource = resourceDAO.find(resourceKey);
if (resource == null) {
LOG.debug("Invalid " + ExternalResource.class.getSimpleName() + "{}, ignoring...", resourceKey);
@@ -192,19 +186,16 @@ public class RealmDataBinderImpl implements RealmDataBinder {
realm.add(resource);
propByRes.add(ResourceOperation.CREATE, resource.getKey());
}
- }
- // remove all resources not contained in the TO
- CollectionUtils.filter(realm.getResources(), new Predicate<ExternalResource>() {
-
- @Override
- public boolean evaluate(final ExternalResource resource) {
- boolean contained = realmTO.getResources().contains(resource.getKey());
- if (!contained) {
- propByRes.add(ResourceOperation.DELETE, resource.getKey());
- }
- return contained;
- }
});
+ // remove all resources not contained in the TO
+ realm.getResources().removeAll(
+ realm.getResources().stream().filter(resource -> {
+ boolean contained = realmTO.getResources().contains(resource.getKey());
+ if (!contained) {
+ propByRes.add(ResourceOperation.DELETE, resource.getKey());
+ }
+ return !contained;
+ }).collect(Collectors.toList()));
return propByRes;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ResourceDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ResourceDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ResourceDataBinderImpl.java
index 9f8e75d..07ddf15 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ResourceDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ResourceDataBinderImpl.java
@@ -23,8 +23,8 @@ import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IteratorUtils;
+import java.util.stream.Collectors;
+import org.apache.syncope.common.lib.collections.IteratorChain;
import org.apache.syncope.common.lib.SyncopeClientCompositeException;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.to.AnyTypeClassTO;
@@ -55,8 +55,6 @@ import org.apache.syncope.core.persistence.api.dao.ExternalResourceHistoryConfDA
import org.apache.syncope.core.persistence.api.dao.VirSchemaDAO;
import org.apache.syncope.core.persistence.api.entity.AnyType;
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.VirSchema;
import org.apache.syncope.core.persistence.api.entity.policy.PullPolicy;
import org.apache.syncope.core.persistence.api.entity.resource.ExternalResourceHistoryConf;
@@ -67,7 +65,6 @@ import org.apache.syncope.core.persistence.api.entity.resource.Provision;
import org.apache.syncope.core.provisioning.java.IntAttrNameParser;
import org.apache.syncope.core.provisioning.api.IntAttrName;
import org.apache.syncope.core.provisioning.api.data.ResourceDataBinder;
-import org.apache.syncope.core.provisioning.api.utils.EntityUtils;
import org.apache.syncope.core.spring.security.AuthContextUtils;
import org.identityconnectors.framework.common.objects.ObjectClass;
import org.slf4j.Logger;
@@ -158,13 +155,13 @@ public class ResourceDataBinderImpl implements ResourceDataBinder {
resource.setRandomPwdIfNotProvided(resourceTO.isRandomPwdIfNotProvided());
// 1. add or update all (valid) provisions from TO
- for (ProvisionTO provisionTO : resourceTO.getProvisions()) {
+ resourceTO.getProvisions().forEach(provisionTO -> {
AnyType anyType = anyTypeDAO.find(provisionTO.getAnyType());
if (anyType == null) {
LOG.debug("Invalid {} specified {}, ignoring...",
AnyType.class.getSimpleName(), provisionTO.getAnyType());
} else {
- Provision provision = resource.getProvision(anyType);
+ Provision provision = resource.getProvision(anyType).orElse(null);
if (provision == null) {
provision = entityFactory.newEntity(Provision.class);
provision.setResource(resource);
@@ -209,20 +206,17 @@ public class ResourceDataBinderImpl implements ResourceDataBinder {
}
AnyTypeClassTO allowedSchemas = new AnyTypeClassTO();
- for (Iterator<AnyTypeClass> itor = IteratorUtils.chainedIterator(
+ for (Iterator<AnyTypeClass> itor = new IteratorChain<>(
provision.getAnyType().getClasses().iterator(),
provision.getAuxClasses().iterator()); itor.hasNext();) {
AnyTypeClass anyTypeClass = itor.next();
- 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()));
}
populateMapping(
@@ -247,15 +241,15 @@ public class ResourceDataBinderImpl implements ResourceDataBinder {
}
}
}
- }
+ });
// 2. remove all provisions not contained in the TO
for (Iterator<? extends Provision> itor = resource.getProvisions().iterator(); itor.hasNext();) {
Provision provision = itor.next();
if (resourceTO.getProvision(provision.getAnyType().getKey()) == null) {
- for (VirSchema schema : virSchemaDAO.findByProvision(provision)) {
+ virSchemaDAO.findByProvision(provision).forEach(schema -> {
virSchemaDAO.delete(schema.getKey());
- }
+ });
itor.remove();
}
@@ -491,7 +485,7 @@ public class ResourceDataBinderImpl implements ResourceDataBinder {
}
private void populateItems(final List<? extends Item> items, final ItemContainerTO containerTO) {
- for (Item item : items) {
+ items.forEach(item -> {
ItemTO itemTO = new ItemTO();
itemTO.setKey(item.getKey());
BeanUtils.copyProperties(item, itemTO, ITEM_IGNORE_PROPERTIES);
@@ -501,7 +495,7 @@ public class ResourceDataBinderImpl implements ResourceDataBinder {
} else {
containerTO.add(itemTO);
}
- }
+ });
}
@Override
@@ -518,13 +512,13 @@ public class ResourceDataBinderImpl implements ResourceDataBinder {
resourceTO.setConnectorDisplayName(connector == null ? null : connector.getDisplayName());
// set the provision information
- for (Provision provision : resource.getProvisions()) {
+ resource.getProvisions().stream().map(provision -> {
ProvisionTO provisionTO = new ProvisionTO();
provisionTO.setKey(provision.getKey());
provisionTO.setAnyType(provision.getAnyType().getKey());
provisionTO.setObjectClass(provision.getObjectClass().getObjectClassValue());
- provisionTO.getAuxClasses().addAll(CollectionUtils.collect(
- provision.getAuxClasses(), EntityUtils.<AnyTypeClass>keyTransformer()));
+ provisionTO.getAuxClasses().addAll(provision.getAuxClasses().stream().
+ map(cls -> cls.getKey()).collect(Collectors.toList()));
provisionTO.setSyncToken(provision.getSerializedSyncToken());
if (provision.getMapping() != null) {
@@ -534,7 +528,7 @@ public class ResourceDataBinderImpl implements ResourceDataBinder {
populateItems(provision.getMapping().getItems(), mappingTO);
}
- for (VirSchema virSchema : virSchemaDAO.findByProvision(provision)) {
+ virSchemaDAO.findByProvision(provision).forEach(virSchema -> {
provisionTO.getVirSchemas().add(virSchema.getKey());
MappingItem linkingMappingItem = virSchema.asLinkingMappingItem();
@@ -544,10 +538,11 @@ public class ResourceDataBinderImpl implements ResourceDataBinder {
BeanUtils.copyProperties(linkingMappingItem, itemTO, ITEM_IGNORE_PROPERTIES);
provisionTO.getMapping().getLinkingItems().add(itemTO);
- }
-
+ });
+ return provisionTO;
+ }).forEachOrdered(provisionTO -> {
resourceTO.getProvisions().add(provisionTO);
- }
+ });
if (resource.getOrgUnit() != null) {
OrgUnit orgUnit = resource.getOrgUnit();
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/RoleDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/RoleDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/RoleDataBinderImpl.java
index b907051..f15011e 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/RoleDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/RoleDataBinderImpl.java
@@ -18,8 +18,7 @@
*/
package org.apache.syncope.core.provisioning.java.data;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.to.RoleTO;
import org.apache.syncope.common.lib.types.ClientExceptionType;
@@ -34,7 +33,6 @@ 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.user.DynRoleMembership;
import org.apache.syncope.core.provisioning.api.data.RoleDataBinder;
-import org.apache.syncope.core.provisioning.api.utils.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -135,15 +133,11 @@ public class RoleDataBinderImpl implements RoleDataBinder {
roleTO.setKey(role.getKey());
roleTO.getEntitlements().addAll(role.getEntitlements());
- CollectionUtils.collect(role.getRealms(), new Transformer<Realm, String>() {
+ roleTO.getRealms().addAll(role.getRealms().stream().
+ map(r -> r.getFullPath()).collect(Collectors.toList()));
- @Override
- public String transform(final Realm input) {
- return input.getFullPath();
- }
- }, roleTO.getRealms());
-
- CollectionUtils.collect(role.getDynRealms(), EntityUtils.keyTransformer(), roleTO.getDynRealms());
+ roleTO.getDynRealms().addAll(role.getDynRealms().stream().
+ map(r -> r.getKey()).collect(Collectors.toList()));
if (role.getDynMembership() != null) {
roleTO.setDynMembershipCond(role.getDynMembership().getFIQLCond());
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/SchemaDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/SchemaDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/SchemaDataBinderImpl.java
index 10e4f73..dfa3a8e 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/SchemaDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/SchemaDataBinderImpl.java
@@ -256,7 +256,7 @@ public class SchemaDataBinderImpl implements SchemaDataBinder {
sce.getElements().add("AnyType " + schemaTO.getAnyType() + " not found");
throw sce;
}
- Provision provision = resource.getProvision(anyType);
+ Provision provision = resource.getProvision(anyType).orElse(null);
if (provision == null) {
SyncopeClientException sce = SyncopeClientException.build(ClientExceptionType.InvalidSchemaDefinition);
sce.getElements().add("Provision for AnyType" + schemaTO.getAnyType()
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/TaskDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/TaskDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/TaskDataBinderImpl.java
index 09b5d12..646e950 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/TaskDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/TaskDataBinderImpl.java
@@ -18,15 +18,12 @@
*/
package org.apache.syncope.core.provisioning.java.data;
-import java.util.Map;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Predicate;
+import java.util.stream.Collectors;
import org.apache.syncope.core.provisioning.api.data.TaskDataBinder;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.to.AbstractProvisioningTaskTO;
import org.apache.syncope.common.lib.to.AbstractTaskTO;
-import org.apache.syncope.common.lib.to.AnyTO;
import org.apache.syncope.common.lib.to.PropagationTaskTO;
import org.apache.syncope.common.lib.to.PushTaskTO;
import org.apache.syncope.common.lib.to.SchedTaskTO;
@@ -57,7 +54,6 @@ import org.apache.syncope.core.persistence.api.dao.RealmDAO;
import org.apache.syncope.core.persistence.api.entity.AnyType;
import org.apache.syncope.core.persistence.api.entity.EntityFactory;
import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
-import org.apache.syncope.core.persistence.api.entity.AnyTemplate;
import org.apache.syncope.core.persistence.api.entity.task.AnyTemplatePullTask;
import org.apache.syncope.core.persistence.api.entity.task.PullTask;
import org.apache.syncope.core.provisioning.java.pushpull.PushJobDelegate;
@@ -123,12 +119,12 @@ public class TaskDataBinderImpl implements TaskDataBinder {
pushTask.setUnmatchingRule(pushTaskTO.getUnmatchingRule() == null
? UnmatchingRule.ASSIGN : pushTaskTO.getUnmatchingRule());
- for (Map.Entry<String, String> entry : pushTaskTO.getFilters().entrySet()) {
+ pushTaskTO.getFilters().entrySet().forEach(entry -> {
AnyType type = anyTypeDAO.find(entry.getKey());
if (type == null) {
LOG.debug("Invalid AnyType {} specified, ignoring...", entry.getKey());
} else {
- PushTaskAnyFilter filter = pushTask.getFilter(type);
+ PushTaskAnyFilter filter = pushTask.getFilter(type).orElse(null);
if (filter == null) {
filter = entityFactory.newEntity(PushTaskAnyFilter.class);
filter.setAnyType(anyTypeDAO.find(entry.getKey()));
@@ -137,15 +133,12 @@ public class TaskDataBinderImpl implements TaskDataBinder {
}
filter.setFIQLCond(entry.getValue());
}
- }
- // remove all filters not contained in the TO
- CollectionUtils.filter(pushTask.getFilters(), new Predicate<PushTaskAnyFilter>() {
-
- @Override
- public boolean evaluate(final PushTaskAnyFilter anyFilter) {
- return pushTaskTO.getFilters().containsKey(anyFilter.getAnyType().getKey());
- }
});
+ // remove all filters not contained in the TO
+ pushTask.getFilters().removeAll(
+ pushTask.getFilters().stream().filter(anyFilter
+ -> !pushTaskTO.getFilters().containsKey(anyFilter.getAnyType().getKey())).
+ collect(Collectors.toList()));
} else if (task instanceof PullTask && taskTO instanceof PullTaskTO) {
PullTask pullTask = (PullTask) task;
final PullTaskTO pullTaskTO = (PullTaskTO) taskTO;
@@ -164,12 +157,12 @@ public class TaskDataBinderImpl implements TaskDataBinder {
// validate JEXL expressions from templates and proceed if fine
templateUtils.check(pullTaskTO.getTemplates(), ClientExceptionType.InvalidPullTask);
- for (Map.Entry<String, AnyTO> entry : pullTaskTO.getTemplates().entrySet()) {
+ pullTaskTO.getTemplates().entrySet().forEach(entry -> {
AnyType type = anyTypeDAO.find(entry.getKey());
if (type == null) {
LOG.debug("Invalid AnyType {} specified, ignoring...", entry.getKey());
} else {
- AnyTemplatePullTask anyTemplate = pullTask.getTemplate(type);
+ AnyTemplatePullTask anyTemplate = pullTask.getTemplate(type).orElse(null);
if (anyTemplate == null) {
anyTemplate = entityFactory.newEntity(AnyTemplatePullTask.class);
anyTemplate.setAnyType(type);
@@ -179,15 +172,12 @@ public class TaskDataBinderImpl implements TaskDataBinder {
}
anyTemplate.set(entry.getValue());
}
- }
- // remove all templates not contained in the TO
- CollectionUtils.filter(pullTask.getTemplates(), new Predicate<AnyTemplate>() {
-
- @Override
- public boolean evaluate(final AnyTemplate anyTemplate) {
- return pullTaskTO.getTemplates().containsKey(anyTemplate.getAnyType().getKey());
- }
});
+ // remove all templates not contained in the TO
+ pullTask.getTemplates().removeAll(
+ pullTask.getTemplates().stream().filter(anyTemplate
+ -> !pullTaskTO.getTemplates().containsKey(anyTemplate.getAnyType().getKey())).
+ collect(Collectors.toList()));
}
// 3. fill the remaining fields
@@ -313,11 +303,9 @@ public class TaskDataBinderImpl implements TaskDataBinder {
}
if (details) {
- for (TaskExec execution : task.getExecs()) {
- if (execution != null) {
- taskTO.getExecutions().add(getExecTO(execution));
- }
- }
+ task.getExecs().stream().
+ filter(execution -> execution != null).
+ forEachOrdered(execution -> taskTO.getExecutions().add(getExecTO(execution)));
}
switch (taskUtils.getType()) {
@@ -341,9 +329,9 @@ public class TaskDataBinderImpl implements TaskDataBinder {
((PullTaskTO) taskTO).setUnmatchingRule(((PullTask) task).getUnmatchingRule() == null
? UnmatchingRule.PROVISION : ((PullTask) task).getUnmatchingRule());
- for (AnyTemplate template : ((PullTask) task).getTemplates()) {
+ ((PullTask) task).getTemplates().forEach(template -> {
((PullTaskTO) taskTO).getTemplates().put(template.getAnyType().getKey(), template.get());
- }
+ });
break;
case PUSH:
@@ -355,9 +343,9 @@ public class TaskDataBinderImpl implements TaskDataBinder {
((PushTaskTO) taskTO).setUnmatchingRule(((PushTask) task).getUnmatchingRule() == null
? UnmatchingRule.ASSIGN : ((PushTask) task).getUnmatchingRule());
- for (PushTaskAnyFilter filter : ((PushTask) task).getFilters()) {
+ ((PushTask) task).getFilters().forEach(filter -> {
((PushTaskTO) taskTO).getFilters().put(filter.getAnyType().getKey(), filter.getFIQLCond());
- }
+ });
break;
case NOTIFICATION:
[05/16] syncope git commit: [SYNCOPE-938] Switching from
commons-collections to Java 8 features
Posted by il...@apache.org.
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
index fa9fa5f..5bae851 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
@@ -24,24 +24,18 @@ import java.util.Date;
import java.util.HashSet;
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.IterableUtils;
-import org.apache.commons.collections4.Predicate;
-import org.apache.commons.collections4.Transformer;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.SyncopeClientCompositeException;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.patch.AttrPatch;
-import org.apache.syncope.common.lib.patch.MembershipPatch;
import org.apache.syncope.common.lib.patch.PasswordPatch;
-import org.apache.syncope.common.lib.patch.RelationshipPatch;
import org.apache.syncope.common.lib.patch.StringPatchItem;
import org.apache.syncope.common.lib.patch.UserPatch;
-import org.apache.syncope.common.lib.to.AttrTO;
import org.apache.syncope.common.lib.to.MembershipTO;
-import org.apache.syncope.common.lib.to.RelationshipTO;
import org.apache.syncope.common.lib.to.UserTO;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.common.lib.types.CipherAlgorithm;
@@ -59,11 +53,11 @@ import org.apache.syncope.core.provisioning.api.data.UserDataBinder;
import org.apache.syncope.core.spring.security.AuthContextUtils;
import org.apache.syncope.core.spring.security.Encryptor;
import org.apache.syncope.core.spring.BeanUtils;
-import org.apache.syncope.core.provisioning.api.utils.EntityUtils;
import org.apache.syncope.core.persistence.api.dao.AnyTypeDAO;
import org.apache.syncope.core.persistence.api.dao.RoleDAO;
import org.apache.syncope.core.persistence.api.entity.AccessToken;
import org.apache.syncope.core.persistence.api.entity.AnyUtils;
+import org.apache.syncope.core.persistence.api.entity.Entity;
import org.apache.syncope.core.persistence.api.entity.PlainSchema;
import org.apache.syncope.core.persistence.api.entity.Realm;
import org.apache.syncope.core.persistence.api.entity.RelationshipType;
@@ -71,7 +65,6 @@ import org.apache.syncope.core.persistence.api.entity.Role;
import org.apache.syncope.core.persistence.api.entity.VirSchema;
import org.apache.syncope.core.persistence.api.entity.anyobject.AnyObject;
import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
-import org.apache.syncope.core.persistence.api.entity.resource.MappingItem;
import org.apache.syncope.core.persistence.api.entity.resource.Provision;
import org.apache.syncope.core.persistence.api.entity.user.UMembership;
import org.apache.syncope.core.persistence.api.entity.user.UPlainAttr;
@@ -189,14 +182,14 @@ public class UserDataBinderImpl extends AbstractAnyDataBinder implements UserDat
user.setSecurityAnswer(userTO.getSecurityAnswer());
// roles
- for (String roleKey : userTO.getRoles()) {
+ userTO.getRoles().forEach(roleKey -> {
Role role = roleDAO.find(roleKey);
if (role == null) {
LOG.warn("Ignoring unknown role with id {}", roleKey);
} else {
user.add(role);
}
- }
+ });
// realm
Realm realm = realmDAO.findByFullPath(userTO.getRealm());
@@ -210,11 +203,11 @@ public class UserDataBinderImpl extends AbstractAnyDataBinder implements UserDat
AnyUtils anyUtils = anyUtilsFactory.getInstance(AnyTypeKind.USER);
if (user.getRealm() != null) {
// relationships
- Collection<String> assignableAnyObjects = CollectionUtils.collect(
- searchDAO.searchAssignable(user.getRealm().getFullPath(), AnyTypeKind.ANY_OBJECT),
- EntityUtils.keyTransformer());
+ Collection<String> assignableAnyObjects =
+ searchDAO.searchAssignable(user.getRealm().getFullPath(), AnyTypeKind.ANY_OBJECT).stream().
+ map(a -> a.getKey()).collect(Collectors.toList());
- for (RelationshipTO relationshipTO : userTO.getRelationships()) {
+ userTO.getRelationships().forEach(relationshipTO -> {
AnyObject otherEnd = anyObjectDAO.find(relationshipTO.getRightKey());
if (otherEnd == null) {
LOG.debug("Ignoring invalid anyObject " + relationshipTO.getRightKey());
@@ -239,14 +232,14 @@ public class UserDataBinderImpl extends AbstractAnyDataBinder implements UserDat
unassignabled.getElements().add("Cannot be assigned: " + otherEnd);
scce.addException(unassignabled);
}
- }
+ });
// memberships
- Collection<String> assignableGroups = CollectionUtils.collect(
- searchDAO.searchAssignable(user.getRealm().getFullPath(), AnyTypeKind.GROUP),
- EntityUtils.keyTransformer());
+ Collection<String> assignableGroups =
+ searchDAO.searchAssignable(user.getRealm().getFullPath(), AnyTypeKind.GROUP).stream().
+ map(g -> g.getKey()).collect(Collectors.toList());
- for (MembershipTO membershipTO : userTO.getMemberships()) {
+ userTO.getMemberships().forEach(membershipTO -> {
Group group = membershipTO.getRightKey() == null
? groupDAO.findByName(membershipTO.getGroupName())
: groupDAO.find(membershipTO.getRightKey());
@@ -270,7 +263,7 @@ public class UserDataBinderImpl extends AbstractAnyDataBinder implements UserDat
unassignable.getElements().add("Cannot be assigned: " + group);
scce.addException(unassignable);
}
- }
+ });
}
// attributes and resources
@@ -285,15 +278,9 @@ public class UserDataBinderImpl extends AbstractAnyDataBinder implements UserDat
private boolean isPasswordMapped(final ExternalResource resource) {
boolean result = false;
- Provision provision = resource.getProvision(anyTypeDAO.findUser());
- if (provision != null && provision.getMapping() != null) {
- result = IterableUtils.matchesAny(provision.getMapping().getItems(), new Predicate<MappingItem>() {
-
- @Override
- public boolean evaluate(final MappingItem item) {
- return item.isPassword();
- }
- });
+ Optional<? extends Provision> provision = resource.getProvision(anyTypeDAO.findUser());
+ if (provision.isPresent() && provision.get().getMapping() != null) {
+ result = provision.get().getMapping().getItems().stream().anyMatch(item -> item.isPassword());
}
return result;
@@ -389,139 +376,136 @@ public class UserDataBinderImpl extends AbstractAnyDataBinder implements UserDat
Set<String> toBeProvisioned = new HashSet<>();
// relationships
- Collection<String> assignableAnyObjects = CollectionUtils.collect(
- searchDAO.searchAssignable(user.getRealm().getFullPath(), AnyTypeKind.ANY_OBJECT),
- EntityUtils.keyTransformer());
-
- for (RelationshipPatch patch : userPatch.getRelationships()) {
- if (patch.getRelationshipTO() != null) {
- RelationshipType relationshipType = relationshipTypeDAO.find(patch.getRelationshipTO().getType());
- if (relationshipType == null) {
- LOG.debug("Ignoring invalid relationship type {}", patch.getRelationshipTO().getType());
- } else {
- URelationship relationship =
- user.getRelationship(relationshipType, patch.getRelationshipTO().getRightKey());
- if (relationship != null) {
- user.getRelationships().remove(relationship);
- relationship.setLeftEnd(null);
-
- toBeDeprovisioned.addAll(
- anyObjectDAO.findAllResourceKeys(relationship.getRightEnd().getKey()));
- }
+ Collection<String> assignableAnyObjects =
+ searchDAO.searchAssignable(user.getRealm().getFullPath(), AnyTypeKind.ANY_OBJECT).stream().
+ map(a -> a.getKey()).collect(Collectors.toList());
+
+ userPatch.getRelationships().stream().
+ filter(patch -> patch.getRelationshipTO() != null).forEachOrdered((patch) -> {
+ RelationshipType relationshipType = relationshipTypeDAO.find(patch.getRelationshipTO().getType());
+ if (relationshipType == null) {
+ LOG.debug("Ignoring invalid relationship type {}", patch.getRelationshipTO().getType());
+ } else {
+ Optional<? extends URelationship> relationship =
+ user.getRelationship(relationshipType, patch.getRelationshipTO().getRightKey());
+ if (relationship.isPresent()) {
+ user.getRelationships().remove(relationship.get());
+ relationship.get().setLeftEnd(null);
+
+ toBeDeprovisioned.addAll(
+ anyObjectDAO.findAllResourceKeys(relationship.get().getRightEnd().getKey()));
+ }
- if (patch.getOperation() == PatchOperation.ADD_REPLACE) {
- AnyObject otherEnd = anyObjectDAO.find(patch.getRelationshipTO().getRightKey());
- if (otherEnd == null) {
- LOG.debug("Ignoring invalid any object {}", patch.getRelationshipTO().getRightKey());
- } else if (assignableAnyObjects.contains(otherEnd.getKey())) {
- relationship = entityFactory.newEntity(URelationship.class);
- relationship.setType(relationshipType);
- relationship.setRightEnd(otherEnd);
- relationship.setLeftEnd(user);
+ if (patch.getOperation() == PatchOperation.ADD_REPLACE) {
+ AnyObject otherEnd = anyObjectDAO.find(patch.getRelationshipTO().getRightKey());
+ if (otherEnd == null) {
+ LOG.debug("Ignoring invalid any object {}", patch.getRelationshipTO().getRightKey());
+ } else if (assignableAnyObjects.contains(otherEnd.getKey())) {
+ URelationship newRelationship = entityFactory.newEntity(URelationship.class);
+ newRelationship.setType(relationshipType);
+ newRelationship.setRightEnd(otherEnd);
+ newRelationship.setLeftEnd(user);
- user.add(relationship);
+ user.add(newRelationship);
- toBeProvisioned.addAll(anyObjectDAO.findAllResourceKeys(otherEnd.getKey()));
- } else {
- LOG.error("{} cannot be assigned to {}", otherEnd, user);
+ toBeProvisioned.addAll(anyObjectDAO.findAllResourceKeys(otherEnd.getKey()));
+ } else {
+ LOG.error("{} cannot be assigned to {}", otherEnd, user);
- SyncopeClientException unassignable =
- SyncopeClientException.build(ClientExceptionType.InvalidRelationship);
- unassignable.getElements().add("Cannot be assigned: " + otherEnd);
- scce.addException(unassignable);
- }
+ SyncopeClientException unassignable =
+ SyncopeClientException.build(ClientExceptionType.InvalidRelationship);
+ unassignable.getElements().add("Cannot be assigned: " + otherEnd);
+ scce.addException(unassignable);
}
}
}
- }
+ });
Collection<ExternalResource> resources = userDAO.findAllResources(user);
SyncopeClientException invalidValues = SyncopeClientException.build(ClientExceptionType.InvalidValues);
// memberships
- Collection<String> assignableGroups = CollectionUtils.collect(
- searchDAO.searchAssignable(user.getRealm().getFullPath(), AnyTypeKind.GROUP),
- EntityUtils.keyTransformer());
-
- for (MembershipPatch membPatch : userPatch.getMemberships()) {
- if (membPatch.getGroup() != null) {
- UMembership membership = user.getMembership(membPatch.getGroup());
- if (membership != null) {
- user.getMemberships().remove(membership);
- membership.setLeftEnd(null);
- for (UPlainAttr attr : user.getPlainAttrs(membership)) {
- user.remove(attr);
- attr.setOwner(null);
- attr.setMembership(null);
- }
+ Collection<String> assignableGroups =
+ searchDAO.searchAssignable(user.getRealm().getFullPath(), AnyTypeKind.GROUP).stream().
+ map(g -> g.getKey()).collect(Collectors.toList());
+
+ userPatch.getMemberships().stream().
+ filter(membPatch -> membPatch.getGroup() != null).forEachOrdered((membPatch) -> {
+ Optional<? extends UMembership> membership = user.getMembership(membPatch.getGroup());
+ if (membership.isPresent()) {
+ user.getMemberships().remove(membership.get());
+ membership.get().setLeftEnd(null);
+ user.getPlainAttrs(membership.get()).forEach(attr -> {
+ user.remove(attr);
+ attr.setOwner(null);
+ attr.setMembership(null);
+ });
+
+ toBeDeprovisioned.addAll(groupDAO.findAllResourceKeys(membership.get().getRightEnd().getKey()));
+ }
+ if (membPatch.getOperation() == PatchOperation.ADD_REPLACE) {
+ Group group = groupDAO.find(membPatch.getGroup());
+ if (group == null) {
+ LOG.debug("Ignoring invalid group {}", membPatch.getGroup());
+ } else if (assignableGroups.contains(group.getKey())) {
+ UMembership newMembership = entityFactory.newEntity(UMembership.class);
+ newMembership.setRightEnd(group);
+ newMembership.setLeftEnd(user);
- toBeDeprovisioned.addAll(groupDAO.findAllResourceKeys(membership.getRightEnd().getKey()));
- }
+ user.add(newMembership);
- if (membPatch.getOperation() == PatchOperation.ADD_REPLACE) {
- Group group = groupDAO.find(membPatch.getGroup());
- if (group == null) {
- LOG.debug("Ignoring invalid group {}", membPatch.getGroup());
- } else if (assignableGroups.contains(group.getKey())) {
- membership = entityFactory.newEntity(UMembership.class);
- membership.setRightEnd(group);
- membership.setLeftEnd(user);
-
- user.add(membership);
-
- for (AttrTO attrTO : membPatch.getPlainAttrs()) {
- PlainSchema schema = getPlainSchema(attrTO.getSchema());
- if (schema == null) {
- LOG.debug("Invalid " + PlainSchema.class.getSimpleName()
- + "{}, ignoring...", attrTO.getSchema());
- } else {
- UPlainAttr attr = user.getPlainAttr(schema.getKey(), membership);
- if (attr == null) {
- LOG.debug("No plain attribute found for {} and membership of {}",
- schema, membership.getRightEnd());
-
- attr = anyUtils.newPlainAttr();
- attr.setOwner(user);
- attr.setMembership(membership);
- attr.setSchema(schema);
- user.add(attr);
-
- AttrPatch patch = new AttrPatch.Builder().attrTO(attrTO).build();
- processAttrPatch(
- user, patch, schema, attr, anyUtils,
- resources, propByRes, invalidValues);
- }
+ membPatch.getPlainAttrs().forEach(attrTO -> {
+ PlainSchema schema = getPlainSchema(attrTO.getSchema());
+ if (schema == null) {
+ LOG.debug("Invalid " + PlainSchema.class.getSimpleName()
+ + "{}, ignoring...", attrTO.getSchema());
+ } else {
+ UPlainAttr attr = user.getPlainAttr(schema.getKey(), newMembership).orElse(null);
+ if (attr == null) {
+ LOG.debug("No plain attribute found for {} and membership of {}",
+ schema, newMembership.getRightEnd());
+
+ attr = anyUtils.newPlainAttr();
+ attr.setOwner(user);
+ attr.setMembership(newMembership);
+ attr.setSchema(schema);
+ user.add(attr);
+
+ AttrPatch patch = new AttrPatch.Builder().attrTO(attrTO).build();
+ processAttrPatch(
+ user, patch, schema, attr, anyUtils,
+ resources, propByRes, invalidValues);
}
}
- if (!invalidValues.isEmpty()) {
- scce.addException(invalidValues);
- }
+ });
+ if (!invalidValues.isEmpty()) {
+ scce.addException(invalidValues);
+ }
- toBeProvisioned.addAll(groupDAO.findAllResourceKeys(group.getKey()));
+ toBeProvisioned.addAll(groupDAO.findAllResourceKeys(group.getKey()));
- // SYNCOPE-686: if password is invertible and we are adding resources with password mapping,
- // ensure that they are counted for password propagation
- if (toBeUpdated.canDecodePassword()) {
- if (userPatch.getPassword() == null) {
- userPatch.setPassword(new PasswordPatch());
- }
- for (ExternalResource resource : group.getResources()) {
- if (isPasswordMapped(resource)) {
- userPatch.getPassword().getResources().add(resource.getKey());
- }
- }
+ // SYNCOPE-686: if password is invertible and we are adding resources with password mapping,
+ // ensure that they are counted for password propagation
+ if (toBeUpdated.canDecodePassword()) {
+ if (userPatch.getPassword() == null) {
+ userPatch.setPassword(new PasswordPatch());
}
- } else {
- LOG.error("{} cannot be assigned to {}", group, user);
-
- SyncopeClientException unassignabled =
- SyncopeClientException.build(ClientExceptionType.InvalidMembership);
- unassignabled.getElements().add("Cannot be assigned: " + group);
- scce.addException(unassignabled);
+ group.getResources().stream().
+ filter(resource -> isPasswordMapped(resource)).
+ forEachOrdered(resource -> {
+ userPatch.getPassword().getResources().add(resource.getKey());
+ });
}
+ } else {
+ LOG.error("{} cannot be assigned to {}", group, user);
+
+ SyncopeClientException unassignabled =
+ SyncopeClientException.build(ClientExceptionType.InvalidMembership);
+ unassignabled.getElements().add("Cannot be assigned: " + group);
+ scce.addException(unassignabled);
}
}
- }
+ });
propByRes.addAll(ResourceOperation.DELETE, toBeDeprovisioned);
propByRes.addAll(ResourceOperation.UPDATE, toBeProvisioned);
@@ -535,14 +519,14 @@ public class UserDataBinderImpl extends AbstractAnyDataBinder implements UserDat
// check if some connObjectKey was changed by the update above
Map<String, String> newcCnnObjectKeys = getConnObjectKeys(user);
- for (Map.Entry<String, String> entry : oldConnObjectKeys.entrySet()) {
- if (newcCnnObjectKeys.containsKey(entry.getKey())
- && !entry.getValue().equals(newcCnnObjectKeys.get(entry.getKey()))) {
+ oldConnObjectKeys.entrySet().stream().
+ filter(entry -> newcCnnObjectKeys.containsKey(entry.getKey())
+ && !entry.getValue().equals(newcCnnObjectKeys.get(entry.getKey()))).
+ forEach(entry -> {
- propByRes.addOldConnObjectKey(entry.getKey(), entry.getValue());
- propByRes.add(ResourceOperation.UPDATE, entry.getKey());
- }
- }
+ propByRes.addOldConnObjectKey(entry.getKey(), entry.getValue());
+ propByRes.add(ResourceOperation.UPDATE, entry.getKey());
+ });
userDAO.save(user);
@@ -581,46 +565,33 @@ public class UserDataBinderImpl extends AbstractAnyDataBinder implements UserDat
userTO.getDynRealms().addAll(userDAO.findDynRealms(user.getKey()));
// roles
- CollectionUtils.collect(user.getRoles(),
- EntityUtils.<Role>keyTransformer(), userTO.getRoles());
+ userTO.getRoles().addAll(user.getRoles().stream().map(r -> r.getKey()).collect(Collectors.toList()));
// relationships
- CollectionUtils.collect(user.getRelationships(), new Transformer<URelationship, RelationshipTO>() {
-
- @Override
- public RelationshipTO transform(final URelationship relationship) {
- return UserDataBinderImpl.this.getRelationshipTO(relationship);
- }
-
- }, userTO.getRelationships());
+ userTO.getRelationships().addAll(
+ user.getRelationships().stream().map(relationship -> getRelationshipTO(relationship)).
+ collect(Collectors.toList()));
// memberships
- CollectionUtils.collect(user.getMemberships(), new Transformer<UMembership, MembershipTO>() {
-
- @Override
- public MembershipTO transform(final UMembership membership) {
- return getMembershipTO(
- user.getPlainAttrs(membership),
- derAttrHandler.getValues(user, membership),
- virAttrHandler.getValues(user, membership),
- membership);
- }
- }, userTO.getMemberships());
+ userTO.getMemberships().addAll(
+ user.getMemberships().stream().map(membership -> {
+ return getMembershipTO(
+ user.getPlainAttrs(membership),
+ derAttrHandler.getValues(user, membership),
+ virAttrHandler.getValues(user, membership),
+ membership);
+ }).collect(Collectors.toList()));
// dynamic memberships
- CollectionUtils.collect(userDAO.findDynRoles(user.getKey()),
- EntityUtils.<Role>keyTransformer(), userTO.getDynRoles());
- CollectionUtils.collect(userDAO.findDynGroups(user.getKey()), new Transformer<Group, MembershipTO>() {
-
- @Override
- public MembershipTO transform(final Group group) {
- MembershipTO membershipTO = new MembershipTO.Builder().
- group(group.getKey(), group.getName()).
- build();
- return membershipTO;
-
- }
- }, userTO.getDynMemberships());
+ userTO.getDynRoles().addAll(
+ userDAO.findDynRoles(user.getKey()).stream().map(Entity::getKey).collect(Collectors.toList()));
+
+ userTO.getDynMemberships().addAll(
+ userDAO.findDynGroups(user.getKey()).stream().map(group -> {
+ return new MembershipTO.Builder().
+ group(group.getKey(), group.getName()).
+ build();
+ }).collect(Collectors.toList()));
}
return userTO;
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/jexl/JexlUtils.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/jexl/JexlUtils.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/jexl/JexlUtils.java
index f68ec60..62587e1 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/jexl/JexlUtils.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/jexl/JexlUtils.java
@@ -37,7 +37,6 @@ import org.apache.commons.jexl3.MapContext;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.to.AnyTO;
-import org.apache.syncope.common.lib.to.AttrTO;
import org.apache.syncope.core.spring.ApplicationContextProvider;
import org.apache.syncope.core.provisioning.api.utils.FormatUtils;
import org.apache.syncope.core.persistence.api.entity.Any;
@@ -168,27 +167,25 @@ public final class JexlUtils {
public static void addPlainAttrsToContext(
final Collection<? extends PlainAttr<?>> attrs, final JexlContext jexlContext) {
- for (PlainAttr<?> attr : attrs) {
- if (attr.getSchema() != null) {
- List<String> attrValues = attr.getValuesAsStrings();
- String expressionValue = attrValues.isEmpty()
- ? StringUtils.EMPTY
- : attrValues.get(0);
+ attrs.stream().filter(attr -> attr.getSchema() != null).forEachOrdered((attr) -> {
+ List<String> attrValues = attr.getValuesAsStrings();
+ String expressionValue = attrValues.isEmpty()
+ ? StringUtils.EMPTY
+ : attrValues.get(0);
- LOG.debug("Add attribute {} with value {}", attr.getSchema().getKey(), expressionValue);
+ LOG.debug("Add attribute {} with value {}", attr.getSchema().getKey(), expressionValue);
- jexlContext.set(attr.getSchema().getKey(), expressionValue);
- }
- }
+ jexlContext.set(attr.getSchema().getKey(), expressionValue);
+ });
}
public static void addDerAttrsToContext(final Any<?> any, final JexlContext jexlContext) {
Map<DerSchema, String> derAttrs =
ApplicationContextProvider.getBeanFactory().getBean(DerAttrHandler.class).getValues(any);
- for (Map.Entry<DerSchema, String> entry : derAttrs.entrySet()) {
+ derAttrs.entrySet().forEach(entry -> {
jexlContext.set(entry.getKey().getKey(), entry.getValue());
- }
+ });
}
public static boolean evaluateMandatoryCondition(final String mandatoryCondition, final Any<?> any) {
@@ -202,7 +199,7 @@ public final class JexlUtils {
public static String evaluate(final String expression, final AnyTO anyTO, final JexlContext context) {
addFieldsToContext(anyTO, context);
- for (AttrTO plainAttr : anyTO.getPlainAttrs()) {
+ anyTO.getPlainAttrs().forEach(plainAttr -> {
List<String> values = plainAttr.getValues();
String expressionValue = values.isEmpty()
? StringUtils.EMPTY
@@ -211,8 +208,8 @@ public final class JexlUtils {
LOG.debug("Add plain attribute {} with value {}", plainAttr.getSchema(), expressionValue);
context.set(plainAttr.getSchema(), expressionValue);
- }
- for (AttrTO derAttr : anyTO.getDerAttrs()) {
+ });
+ anyTO.getDerAttrs().forEach(derAttr -> {
List<String> values = derAttr.getValues();
String expressionValue = values.isEmpty()
? StringUtils.EMPTY
@@ -221,8 +218,8 @@ public final class JexlUtils {
LOG.debug("Add derived attribute {} with value {}", derAttr.getSchema(), expressionValue);
context.set(derAttr.getSchema(), expressionValue);
- }
- for (AttrTO virAttr : anyTO.getVirAttrs()) {
+ });
+ anyTO.getVirAttrs().forEach(virAttr -> {
List<String> values = virAttr.getValues();
String expressionValue = values.isEmpty()
? StringUtils.EMPTY
@@ -231,7 +228,7 @@ public final class JexlUtils {
LOG.debug("Add virtual attribute {} with value {}", virAttr.getSchema(), expressionValue);
context.set(virAttr.getSchema(), expressionValue);
- }
+ });
// Evaluate expression using the context prepared before
return evaluate(expression, context);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/jexl/SyncopeJexlFunctions.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/jexl/SyncopeJexlFunctions.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/jexl/SyncopeJexlFunctions.java
index a3b5c36..684c021 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/jexl/SyncopeJexlFunctions.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/jexl/SyncopeJexlFunctions.java
@@ -19,8 +19,8 @@
package org.apache.syncope.core.provisioning.java.jexl;
import java.util.Arrays;
+import java.util.Collections;
import java.util.List;
-import org.apache.commons.collections4.IterableUtils;
import org.apache.commons.lang3.StringUtils;
/**
@@ -61,7 +61,8 @@ public class SyncopeJexlFunctions {
}
List<String> headless = Arrays.asList(fullPathSplitted).subList(1, fullPathSplitted.length);
- return prefix + attr + "=" + StringUtils.join(IterableUtils.reversedIterable(headless), "," + attr + "=");
+ Collections.reverse(headless);
+ return prefix + attr + "=" + StringUtils.join(headless, "," + attr + "=");
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/IdentityRecertification.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/IdentityRecertification.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/IdentityRecertification.java
index 8b3f4e5..f9d310f 100755
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/IdentityRecertification.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/IdentityRecertification.java
@@ -18,6 +18,7 @@
*/
package org.apache.syncope.core.provisioning.java.job;
+import java.util.Optional;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.core.persistence.api.dao.AnyDAO;
import org.apache.syncope.core.persistence.api.dao.ConfDAO;
@@ -47,15 +48,16 @@ public class IdentityRecertification extends AbstractSchedTaskJobDelegate {
protected void init() {
synchronized (this) {
if (recertificationTime == -1) {
- CPlainAttr recertificationTimeAttr = confDAO.find(RECERTIFICATION_TIME);
- if (recertificationTimeAttr == null
- || recertificationTimeAttr.getValues().get(0).getLongValue() == null) {
+ Optional<? extends CPlainAttr> recertificationTimeAttr = confDAO.find(RECERTIFICATION_TIME);
+ if (!recertificationTimeAttr.isPresent()
+ || recertificationTimeAttr.get().getValues().get(0).getLongValue() == null) {
recertificationTime = -1;
return;
}
- recertificationTime = recertificationTimeAttr.getValues().get(0).getLongValue() * 1000 * 60 * 60 * 24;
+ recertificationTime = recertificationTimeAttr.get().getValues().
+ get(0).getLongValue() * 1000 * 60 * 60 * 24;
}
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/JobManagerImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/JobManagerImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/JobManagerImpl.java
index 1af62c5..f82c243 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/JobManagerImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/JobManagerImpl.java
@@ -26,9 +26,8 @@ import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
+import java.util.Optional;
import java.util.Set;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.common.lib.SyncopeConstants;
@@ -53,7 +52,6 @@ import org.quartz.CronScheduleBuilder;
import org.quartz.Job;
import org.quartz.JobBuilder;
import org.quartz.JobDataMap;
-import org.quartz.JobExecutionContext;
import org.quartz.JobKey;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
@@ -100,14 +98,8 @@ public class JobManagerImpl implements JobManager, SyncopeLoader {
}
private boolean isRunningHere(final JobKey jobKey) throws SchedulerException {
- return IterableUtils.matchesAny(scheduler.getScheduler().getCurrentlyExecutingJobs(),
- new Predicate<JobExecutionContext>() {
-
- @Override
- public boolean evaluate(final JobExecutionContext jec) {
- return jobKey.equals(jec.getJobDetail().getKey());
- }
- });
+ return scheduler.getScheduler().getCurrentlyExecutingJobs().stream().
+ anyMatch(jec -> jobKey.equals(jec.getJobDetail().getKey()));
}
private boolean isRunningElsewhere(final JobKey jobKey) throws SchedulerException {
@@ -299,54 +291,45 @@ public class JobManagerImpl implements JobManager, SyncopeLoader {
}
}
- final Pair<String, Long> conf = AuthContextUtils.execWithAuthContext(
- SyncopeConstants.MASTER_DOMAIN, new AuthContextUtils.Executable<Pair<String, Long>>() {
+ final Pair<String, Long> conf = AuthContextUtils.execWithAuthContext(SyncopeConstants.MASTER_DOMAIN, () -> {
+ String notificationJobCronExpression = StringUtils.EMPTY;
- @Override
- public Pair<String, Long> exec() {
- String notificationJobCronExpression = StringUtils.EMPTY;
-
- CPlainAttr notificationJobCronExp = confDAO.find("notificationjob.cronExpression");
- if (notificationJobCronExp == null) {
- notificationJobCronExpression = NotificationJob.DEFAULT_CRON_EXP;
- } else if (!notificationJobCronExp.getValuesAsStrings().isEmpty()) {
- notificationJobCronExpression = notificationJobCronExp.getValuesAsStrings().get(0);
- }
+ Optional<? extends CPlainAttr> notificationJobCronExp = confDAO.find("notificationjob.cronExpression");
+ if (!notificationJobCronExp.isPresent()) {
+ notificationJobCronExpression = NotificationJob.DEFAULT_CRON_EXP;
+ } else if (!notificationJobCronExp.get().getValuesAsStrings().isEmpty()) {
+ notificationJobCronExpression = notificationJobCronExp.get().getValuesAsStrings().get(0);
+ }
- long interruptMaxRetries = confDAO.find("tasks.interruptMaxRetries", 1L);
+ long interruptMaxRetries = confDAO.find("tasks.interruptMaxRetries", 1L);
- return Pair.of(notificationJobCronExpression, interruptMaxRetries);
- }
+ return Pair.of(notificationJobCronExpression, interruptMaxRetries);
});
for (String domain : domainsHolder.getDomains().keySet()) {
- AuthContextUtils.execWithAuthContext(domain, new AuthContextUtils.Executable<Void>() {
-
- @Override
- public Void exec() {
- // 1. jobs for SchedTasks
- Set<SchedTask> tasks = new HashSet<>(taskDAO.<SchedTask>findAll(TaskType.SCHEDULED));
- tasks.addAll(taskDAO.<PullTask>findAll(TaskType.PULL));
- tasks.addAll(taskDAO.<PushTask>findAll(TaskType.PUSH));
- for (SchedTask task : tasks) {
- try {
- register(task, task.getStartAt(), conf.getRight());
- } catch (Exception e) {
- LOG.error("While loading job instance for task " + task.getKey(), e);
- }
+ AuthContextUtils.execWithAuthContext(domain, () -> {
+ // 1. jobs for SchedTasks
+ Set<SchedTask> tasks = new HashSet<>(taskDAO.<SchedTask>findAll(TaskType.SCHEDULED));
+ tasks.addAll(taskDAO.<PullTask>findAll(TaskType.PULL));
+ tasks.addAll(taskDAO.<PushTask>findAll(TaskType.PUSH));
+ tasks.forEach(task -> {
+ try {
+ register(task, task.getStartAt(), conf.getRight());
+ } catch (Exception e) {
+ LOG.error("While loading job instance for task " + task.getKey(), e);
}
-
- // 2. jobs for Reports
- for (Report report : reportDAO.findAll()) {
- try {
- register(report, null, conf.getRight());
- } catch (Exception e) {
- LOG.error("While loading job instance for report " + report.getName(), e);
- }
+ });
+
+ // 2. jobs for Reports
+ reportDAO.findAll().forEach(report -> {
+ try {
+ register(report, null, conf.getRight());
+ } catch (Exception e) {
+ LOG.error("While loading job instance for report " + report.getName(), e);
}
+ });
- return null;
- }
+ return null;
});
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/ReconciliationReportlet.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/ReconciliationReportlet.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/ReconciliationReportlet.java
index 0328e62..2e973b0 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/ReconciliationReportlet.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/ReconciliationReportlet.java
@@ -18,16 +18,15 @@
*/
package org.apache.syncope.core.provisioning.java.job.report;
+import java.util.Base64;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
+import java.util.Optional;
import java.util.Set;
-import org.apache.commons.collections4.Closure;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.common.lib.SyncopeConstants;
@@ -52,7 +51,6 @@ import org.apache.syncope.core.persistence.api.entity.AnyUtils;
import org.apache.syncope.core.persistence.api.entity.AnyUtilsFactory;
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.resource.ExternalResource;
import org.apache.syncope.core.persistence.api.entity.resource.MappingItem;
import org.apache.syncope.core.persistence.api.entity.resource.Provision;
import org.apache.syncope.core.persistence.api.entity.user.User;
@@ -60,7 +58,6 @@ import org.apache.syncope.core.provisioning.api.Connector;
import org.apache.syncope.core.provisioning.api.ConnectorFactory;
import org.apache.syncope.core.provisioning.api.MappingManager;
import org.apache.syncope.core.provisioning.java.utils.MappingUtils;
-import org.identityconnectors.common.Base64;
import org.identityconnectors.framework.common.objects.Attribute;
import org.identityconnectors.framework.common.objects.AttributeBuilder;
import org.identityconnectors.framework.common.objects.ConnectorObject;
@@ -266,9 +263,9 @@ public class ReconciliationReportlet extends AbstractReportlet {
values = Collections.emptySet();
} else if (attr.getValue().get(0) instanceof byte[]) {
values = new HashSet<>(attr.getValue().size());
- for (Object single : attr.getValue()) {
- values.add(Base64.encode((byte[]) single));
- }
+ attr.getValue().forEach(single -> {
+ values.add(Base64.getMimeEncoder().encode((byte[]) single));
+ });
} else {
values = new HashSet<>(attr.getValue());
}
@@ -287,18 +284,18 @@ public class ReconciliationReportlet extends AbstractReportlet {
misaligned.clear();
AnyUtils anyUtils = anyUtilsFactory.getInstance(any);
- for (final ExternalResource resource : anyUtils.getAllResources(any)) {
- Provision provision = resource.getProvision(any.getType());
- MappingItem connObjectKeyItem = MappingUtils.getConnObjectKeyItem(provision);
- final String connObjectKeyValue = connObjectKeyItem == null
- ? StringUtils.EMPTY
- : mappingManager.getConnObjectKeyValue(any, provision);
- if (provision != null && connObjectKeyItem != null && StringUtils.isNotBlank(connObjectKeyValue)) {
+ anyUtils.getAllResources(any).forEach(resource -> {
+ Provision provision = resource.getProvision(any.getType()).orElse(null);
+ Optional<MappingItem> connObjectKeyItem = MappingUtils.getConnObjectKeyItem(provision);
+ final String connObjectKeyValue = connObjectKeyItem.isPresent()
+ ? mappingManager.getConnObjectKeyValue(any, provision).get()
+ : StringUtils.EMPTY;
+ if (provision != null && connObjectKeyItem.isPresent() && StringUtils.isNotBlank(connObjectKeyValue)) {
// 1. read from the underlying connector
Connector connector = connFactory.getConnector(resource);
ConnectorObject connectorObject = connector.getObject(
provision.getObjectClass(),
- AttributeBuilder.build(connObjectKeyItem.getExtAttrName(), connObjectKeyValue),
+ AttributeBuilder.build(connObjectKeyItem.get().getExtAttrName(), connObjectKeyValue),
MappingUtils.buildOperationOptions(provision.getMapping().getItems().iterator()));
if (connectorObject == null) {
@@ -314,37 +311,33 @@ public class ReconciliationReportlet extends AbstractReportlet {
preparedAttrs.getRight().add(AttributeBuilder.build(
Uid.NAME, preparedAttrs.getLeft()));
preparedAttrs.getRight().add(AttributeBuilder.build(
- connObjectKeyItem.getExtAttrName(), preparedAttrs.getLeft()));
+ connObjectKeyItem.get().getExtAttrName(), preparedAttrs.getLeft()));
final Map<String, Set<Object>> syncopeAttrs = new HashMap<>();
- for (Attribute attr : preparedAttrs.getRight()) {
+ preparedAttrs.getRight().forEach(attr -> {
syncopeAttrs.put(attr.getName(), getValues(attr));
- }
+ });
final Map<String, Set<Object>> resourceAttrs = new HashMap<>();
- for (Attribute attr : connectorObject.getAttributes()) {
- if (!OperationalAttributes.PASSWORD_NAME.equals(attr.getName())
- && !OperationalAttributes.ENABLE_NAME.equals(attr.getName())) {
-
- resourceAttrs.put(attr.getName(), getValues(attr));
- }
- }
-
- IterableUtils.forEach(CollectionUtils.subtract(syncopeAttrs.keySet(), resourceAttrs.keySet()),
- new Closure<String>() {
-
- @Override
- public void execute(final String name) {
- misaligned.add(new Misaligned(
- resource.getKey(),
- connObjectKeyValue,
- name,
- syncopeAttrs.get(name),
- Collections.emptySet()));
- }
- });
+ connectorObject.getAttributes().stream().
+ filter(attr -> (!OperationalAttributes.PASSWORD_NAME.equals(attr.getName())
+ && !OperationalAttributes.ENABLE_NAME.equals(attr.getName()))).
+ forEachOrdered(attr -> {
+ resourceAttrs.put(attr.getName(), getValues(attr));
+ });
+
+ syncopeAttrs.keySet().stream().
+ filter(syncopeAttr -> !resourceAttrs.containsKey(syncopeAttr)).
+ forEach(name -> {
+ misaligned.add(new Misaligned(
+ resource.getKey(),
+ connObjectKeyValue,
+ name,
+ syncopeAttrs.get(name),
+ Collections.emptySet()));
+ });
- for (Map.Entry<String, Set<Object>> entry : resourceAttrs.entrySet()) {
+ resourceAttrs.entrySet().forEach(entry -> {
if (syncopeAttrs.containsKey(entry.getKey())) {
if (!Objects.equals(syncopeAttrs.get(entry.getKey()), entry.getValue())) {
misaligned.add(new Misaligned(
@@ -362,10 +355,10 @@ public class ReconciliationReportlet extends AbstractReportlet {
Collections.emptySet(),
entry.getValue()));
}
- }
+ });
}
}
- }
+ });
if (!missing.isEmpty() || !misaligned.isEmpty()) {
doExtract(handler, any, missing, misaligned);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/UserReportlet.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/UserReportlet.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/UserReportlet.java
index 2e4314d..a485672 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/UserReportlet.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/UserReportlet.java
@@ -287,7 +287,7 @@ public class UserReportlet extends AbstractReportlet {
handler.startElement("", "", "membership", atts);
if (conf.getFeatures().contains(Feature.resources)) {
- UMembership actualMemb = user.getMembership(memb.getRightKey());
+ UMembership actualMemb = user.getMembership(memb.getRightKey()).orElse(null);
if (actualMemb == null) {
LOG.warn("Unexpected: cannot find membership for group {} for user {}",
memb.getRightKey(), user);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/notification/NotificationManagerImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/notification/NotificationManagerImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/notification/NotificationManagerImpl.java
index 5438cee..f2eeaf4 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/notification/NotificationManagerImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/notification/NotificationManagerImpl.java
@@ -25,9 +25,8 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import java.util.Set;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.commons.jexl3.MapContext;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
@@ -63,7 +62,6 @@ import org.apache.syncope.core.persistence.api.dao.AnySearchDAO;
import org.apache.syncope.core.persistence.api.dao.DerSchemaDAO;
import org.apache.syncope.core.persistence.api.dao.VirSchemaDAO;
import org.apache.syncope.core.persistence.api.entity.Any;
-import org.apache.syncope.core.persistence.api.entity.AnyAbout;
import org.apache.syncope.core.persistence.api.entity.AnyType;
import org.apache.syncope.core.persistence.api.entity.DerSchema;
import org.apache.syncope.core.persistence.api.entity.VirSchema;
@@ -196,7 +194,7 @@ public class NotificationManagerImpl implements NotificationManager {
Set<String> recipientEmails = new HashSet<>();
List<UserTO> recipientTOs = new ArrayList<>(recipients.size());
- for (User recipient : recipients) {
+ recipients.forEach(recipient -> {
virAttrHander.getValues(recipient);
String email = getRecipientEmail(notification.getRecipientAttrName(), recipient);
@@ -206,7 +204,7 @@ public class NotificationManagerImpl implements NotificationManager {
recipientEmails.add(email);
recipientTOs.add(userDataBinder.getUserTO(recipient, true));
}
- }
+ });
if (notification.getStaticRecipients() != null) {
recipientEmails.addAll(notification.getStaticRecipients());
@@ -266,15 +264,10 @@ public class NotificationManagerImpl implements NotificationManager {
final String successEvent = AuditLoggerName.buildEvent(type, category, subcategory, event, Result.SUCCESS);
final String failureEvent = AuditLoggerName.buildEvent(type, category, subcategory, event, Result.FAILURE);
- return IterableUtils.matchesAny(notificationDAO.findAll(), new Predicate<Notification>() {
-
- @Override
- public boolean evaluate(final Notification notification) {
- return notification.isActive()
- && (notification.getEvents().contains(successEvent)
- || notification.getEvents().contains(failureEvent));
- }
- });
+ return notificationDAO.findAll().stream().
+ anyMatch(notification -> notification.isActive()
+ && (notification.getEvents().contains(successEvent)
+ || notification.getEvents().contains(failureEvent)));
}
@Override
@@ -339,9 +332,9 @@ public class NotificationManagerImpl implements NotificationManager {
List<NotificationTask> notifications = new ArrayList<>();
for (Notification notification : notificationDAO.findAll()) {
if (LOG.isDebugEnabled()) {
- for (AnyAbout about : notification.getAbouts()) {
+ notification.getAbouts().forEach(about -> {
LOG.debug("Notification about {} defined: {}", about.getAnyType(), about.get());
- }
+ });
}
if (notification.isActive()) {
@@ -349,8 +342,9 @@ public class NotificationManagerImpl implements NotificationManager {
if (!notification.getEvents().contains(currentEvent)) {
LOG.debug("No events found about {}", any);
} else if (anyType == null || any == null
- || notification.getAbout(anyType) == null
- || searchDAO.matches(any, SearchCondConverter.convert(notification.getAbout(anyType).get()))) {
+ || !notification.getAbout(anyType).isPresent()
+ || searchDAO.matches(
+ any, SearchCondConverter.convert(notification.getAbout(anyType).get().get()))) {
LOG.debug("Creating notification task for event {} about {}", currentEvent, any);
@@ -395,17 +389,19 @@ public class NotificationManagerImpl implements NotificationManager {
if (intAttrName.getMembershipOfGroup() != null) {
Group group = groupDAO.findByName(intAttrName.getMembershipOfGroup());
if (group != null) {
- membership = user.getMembership(group.getKey());
+ membership = user.getMembership(group.getKey()).orElse(null);
}
}
switch (intAttrName.getSchemaType()) {
case PLAIN:
- UPlainAttr attr = membership == null
+ Optional<? extends UPlainAttr> attr = membership == null
? user.getPlainAttr(recipientAttrName)
: user.getPlainAttr(recipientAttrName, membership);
- if (attr != null) {
- email = attr.getValuesAsStrings().isEmpty() ? null : attr.getValuesAsStrings().get(0);
+ if (attr.isPresent()) {
+ email = attr.get().getValuesAsStrings().isEmpty()
+ ? null
+ : attr.get().getValuesAsStrings().get(0);
}
break;
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/AbstractPropagationTaskExecutor.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/AbstractPropagationTaskExecutor.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/AbstractPropagationTaskExecutor.java
index 395a5a8..833edfc 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/AbstractPropagationTaskExecutor.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/AbstractPropagationTaskExecutor.java
@@ -27,7 +27,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import org.apache.commons.collections4.IteratorUtils;
+import org.apache.syncope.common.lib.collections.IteratorChain;
import org.apache.syncope.common.lib.to.ExecTO;
import org.apache.syncope.common.lib.to.PropagationTaskTO;
import org.apache.syncope.common.lib.types.AuditElements;
@@ -52,7 +52,6 @@ import org.apache.syncope.core.provisioning.java.utils.ConnObjectUtils;
import org.apache.syncope.core.provisioning.api.utils.ExceptionUtils2;
import org.apache.syncope.core.persistence.api.dao.AnyObjectDAO;
import org.apache.syncope.core.persistence.api.dao.VirSchemaDAO;
-import org.apache.syncope.core.persistence.api.entity.VirSchema;
import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
import org.apache.syncope.core.persistence.api.entity.resource.MappingItem;
import org.apache.syncope.core.persistence.api.entity.resource.OrgUnit;
@@ -160,7 +159,7 @@ public abstract class AbstractPropagationTaskExecutor implements PropagationTask
List<PropagationActions> result = new ArrayList<>();
if (!resource.getPropagationActionsClassNames().isEmpty()) {
- for (String className : resource.getPropagationActionsClassNames()) {
+ resource.getPropagationActionsClassNames().forEach(className -> {
try {
Class<?> actionsClass = Class.forName(className);
result.add((PropagationActions) ApplicationContextProvider.getBeanFactory().
@@ -168,7 +167,7 @@ public abstract class AbstractPropagationTaskExecutor implements PropagationTask
} catch (ClassNotFoundException e) {
LOG.error("Invalid PropagationAction class name '{}' for resource {}", resource, className, e);
}
- }
+ });
}
return result;
@@ -192,9 +191,9 @@ public abstract class AbstractPropagationTaskExecutor implements PropagationTask
*/
private Map<String, Attribute> toMap(final Collection<? extends Attribute> attributes) {
Map<String, Attribute> map = new HashMap<>();
- for (Attribute attr : attributes) {
+ attributes.forEach(attr -> {
map.put(attr.getName().toUpperCase(), attr);
- }
+ });
return map;
}
@@ -254,9 +253,9 @@ public abstract class AbstractPropagationTaskExecutor implements PropagationTask
// Only compare attribute from beforeObj that are also being updated
Set<String> skipAttrNames = originalAttrMap.keySet();
skipAttrNames.removeAll(updateAttrMap.keySet());
- for (String attrName : new HashSet<>(skipAttrNames)) {
+ new HashSet<>(skipAttrNames).forEach(attrName -> {
originalAttrMap.remove(attrName);
- }
+ });
Set<Attribute> originalAttrs = new HashSet<>(originalAttrMap.values());
@@ -267,11 +266,10 @@ public abstract class AbstractPropagationTaskExecutor implements PropagationTask
LOG.debug("Attributes that would be updated {}", attributes);
Set<Attribute> strictlyModified = new HashSet<>();
- for (Attribute attr : attributes) {
- if (!originalAttrs.contains(attr)) {
- strictlyModified.add(attr);
- }
- }
+ attributes.stream().filter(attr -> (!originalAttrs.contains(attr))).
+ forEachOrdered(attr -> {
+ strictlyModified.add(attr);
+ });
// 3. provision entry
LOG.debug("Update {} on {}", strictlyModified, task.getResource().getKey());
@@ -377,7 +375,7 @@ public abstract class AbstractPropagationTaskExecutor implements PropagationTask
Connector connector = null;
Result result;
try {
- provision = task.getResource().getProvision(new ObjectClass(task.getObjectClassName()));
+ provision = task.getResource().getProvision(new ObjectClass(task.getObjectClassName())).orElse(null);
orgUnit = task.getResource().getOrgUnit();
connector = connFactory.getConnector(task.getResource());
@@ -439,9 +437,9 @@ public abstract class AbstractPropagationTaskExecutor implements PropagationTask
propagationAttempted[0] = true;
- for (PropagationActions action : actions) {
+ actions.forEach(action -> {
action.onError(task, execution, e);
- }
+ });
} finally {
// Try to read remote object AFTER any actual operation
if (connector != null) {
@@ -602,17 +600,17 @@ public abstract class AbstractPropagationTaskExecutor implements PropagationTask
: task.getOldConnObjectKey();
List<MappingItem> linkingMappingItems = new ArrayList<>();
- for (VirSchema schema : virSchemaDAO.findByProvision(provision)) {
+ virSchemaDAO.findByProvision(provision).forEach(schema -> {
linkingMappingItems.add(schema.asLinkingMappingItem());
- }
+ });
ConnectorObject obj = null;
try {
obj = connector.getObject(
new ObjectClass(task.getObjectClassName()),
AttributeBuilder.build(
- MappingUtils.getConnObjectKeyItem(provision).getExtAttrName(), connObjectKey),
- MappingUtils.buildOperationOptions(IteratorUtils.chainedIterator(
+ MappingUtils.getConnObjectKeyItem(provision).get().getExtAttrName(), connObjectKey),
+ MappingUtils.buildOperationOptions(new IteratorChain<>(
MappingUtils.getPropagationItems(provision).iterator(),
linkingMappingItems.iterator())));
@@ -658,7 +656,7 @@ public abstract class AbstractPropagationTaskExecutor implements PropagationTask
ConnectorObject obj = null;
try {
obj = connector.getObject(new ObjectClass(task.getObjectClassName()),
- AttributeBuilder.build(orgUnit.getConnObjectKeyItem().getExtAttrName(), connObjectKey),
+ AttributeBuilder.build(orgUnit.getConnObjectKeyItem().get().getExtAttrName(), connObjectKey),
MappingUtils.buildOperationOptions(MappingUtils.getPropagationItems(orgUnit).iterator()));
} catch (TimeoutException toe) {
LOG.debug("Request timeout", toe);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/DBPasswordPropagationActions.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/DBPasswordPropagationActions.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/DBPasswordPropagationActions.java
index 7d81f11..a40d9b2 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/DBPasswordPropagationActions.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/DBPasswordPropagationActions.java
@@ -19,9 +19,8 @@
package org.apache.syncope.core.provisioning.java.propagation;
import java.util.HashSet;
+import java.util.Optional;
import java.util.Set;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.common.lib.types.CipherAlgorithm;
import org.apache.syncope.common.lib.types.ConnConfProperty;
@@ -86,19 +85,13 @@ public class DBPasswordPropagationActions implements PropagationActions {
}
private String getCipherAlgorithm(final ConnInstance connInstance) {
- ConnConfProperty cipherAlgorithm =
- IterableUtils.find(connInstance.getConf(), new Predicate<ConnConfProperty>() {
-
- @Override
- public boolean evaluate(final ConnConfProperty property) {
- return "cipherAlgorithm".equals(property.getSchema().getName())
- && property.getValues() != null && !property.getValues().isEmpty();
- }
- });
-
- return cipherAlgorithm == null
- ? CLEARTEXT
- : (String) cipherAlgorithm.getValues().get(0);
+ Optional<ConnConfProperty> cipherAlgorithm = connInstance.getConf().stream().
+ filter(property -> "cipherAlgorithm".equals(property.getSchema().getName())
+ && property.getValues() != null && !property.getValues().isEmpty()).findFirst();
+
+ return cipherAlgorithm.isPresent()
+ ? (String) cipherAlgorithm.get().getValues().get(0)
+ : CLEARTEXT;
}
private boolean cipherAlgorithmMatches(final String connectorAlgorithm, final CipherAlgorithm userAlgorithm) {
@@ -111,11 +104,7 @@ public class DBPasswordPropagationActions implements PropagationActions {
}
// Special check for "SHA" (user sync'd from LDAP)
- if ("SHA1".equals(connectorAlgorithm) && "SHA".equals(userAlgorithm.name())) {
- return true;
- }
-
- return false;
+ return "SHA1".equals(connectorAlgorithm) && "SHA".equals(userAlgorithm.name());
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/DefaultPropagationReporter.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/DefaultPropagationReporter.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/DefaultPropagationReporter.java
index 635c015..6e58281 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/DefaultPropagationReporter.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/DefaultPropagationReporter.java
@@ -22,8 +22,7 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
+import java.util.Optional;
import org.apache.syncope.common.lib.to.PropagationStatus;
import org.apache.syncope.common.lib.types.PropagationTaskExecStatus;
import org.apache.syncope.core.persistence.api.entity.task.PropagationTask;
@@ -44,13 +43,7 @@ public class DefaultPropagationReporter implements PropagationReporter {
protected final List<PropagationStatus> statuses = new ArrayList<>();
protected boolean add(final PropagationStatus status) {
- return IterableUtils.matchesAny(statuses, new Predicate<PropagationStatus>() {
-
- @Override
- public boolean evaluate(final PropagationStatus item) {
- return item.getResource().equals(status.getResource());
- }
- })
+ return statuses.stream().anyMatch(item -> item.getResource().equals(status.getResource()))
? false
: statuses.add(status);
}
@@ -83,23 +76,18 @@ public class DefaultPropagationReporter implements PropagationReporter {
public void onPriorityResourceFailure(final String failingResource, final Collection<PropagationTask> tasks) {
LOG.debug("Propagation error: {} priority resource failed to propagate", failingResource);
- final PropagationTask propagationTask = IterableUtils.find(tasks, new Predicate<PropagationTask>() {
-
- @Override
- public boolean evaluate(final PropagationTask task) {
- return task.getResource().getKey().equals(failingResource);
- }
- });
+ Optional<PropagationTask> propagationTask = tasks.stream().
+ filter(task -> task.getResource().getKey().equals(failingResource)).findFirst();
- if (propagationTask == null) {
- LOG.error("Could not find {} for {}", PropagationTask.class.getName(), failingResource);
- } else {
+ if (propagationTask.isPresent()) {
PropagationStatus status = new PropagationStatus();
- status.setResource(propagationTask.getResource().getKey());
+ status.setResource(propagationTask.get().getResource().getKey());
status.setStatus(PropagationTaskExecStatus.FAILURE);
status.setFailureReason(
"Propagation error: " + failingResource + " priority resource failed to propagate.");
add(status);
+ } else {
+ LOG.error("Could not find {} for {}", PropagationTask.class.getName(), failingResource);
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPMembershipPropagationActions.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPMembershipPropagationActions.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPMembershipPropagationActions.java
index b3d05f4..58fc0d3 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPMembershipPropagationActions.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPMembershipPropagationActions.java
@@ -21,6 +21,7 @@ package org.apache.syncope.core.provisioning.java.propagation;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
+import java.util.Optional;
import java.util.Set;
import org.apache.commons.jexl3.JexlContext;
import org.apache.commons.jexl3.MapContext;
@@ -75,32 +76,30 @@ public class LDAPMembershipPropagationActions implements PropagationActions {
@Transactional(readOnly = true)
@Override
public void before(final PropagationTask task, final ConnectorObject beforeObj) {
- Provision provision = task.getResource().getProvision(anyTypeDAO.findGroup());
+ Optional<? extends Provision> provision = task.getResource().getProvision(anyTypeDAO.findGroup());
if (AnyTypeKind.USER == task.getAnyTypeKind()
- && provision != null && provision.getMapping() != null
- && StringUtils.isNotBlank(provision.getMapping().getConnObjectLink())) {
+ && provision.isPresent() && provision.get().getMapping() != null
+ && StringUtils.isNotBlank(provision.get().getMapping().getConnObjectLink())) {
User user = userDAO.find(task.getEntityKey());
if (user != null) {
List<String> groupConnObjectLinks = new ArrayList<>();
- for (String groupKey : userDAO.findAllGroupKeys(user)) {
+ userDAO.findAllGroupKeys(user).forEach(groupKey -> {
Group group = groupDAO.find(groupKey);
if (group != null && groupDAO.findAllResourceKeys(groupKey).contains(task.getResource().getKey())) {
LOG.debug("Evaluating connObjectLink for {}", group);
-
JexlContext jexlContext = new MapContext();
JexlUtils.addFieldsToContext(group, jexlContext);
JexlUtils.addPlainAttrsToContext(group.getPlainAttrs(), jexlContext);
JexlUtils.addDerAttrsToContext(group, jexlContext);
-
String groupConnObjectLinkLink =
- JexlUtils.evaluate(provision.getMapping().getConnObjectLink(), jexlContext);
+ JexlUtils.evaluate(provision.get().getMapping().getConnObjectLink(), jexlContext);
LOG.debug("ConnObjectLink for {} is '{}'", group, groupConnObjectLinkLink);
if (StringUtils.isNotBlank(groupConnObjectLinkLink)) {
groupConnObjectLinks.add(groupConnObjectLinkLink);
}
}
- }
+ });
LOG.debug("Group connObjectLinks to propagate for membership: {}", groupConnObjectLinks);
Set<Attribute> attributes = new HashSet<>(task.getAttributes());
@@ -108,9 +107,9 @@ public class LDAPMembershipPropagationActions implements PropagationActions {
Set<String> groups = new HashSet<>(groupConnObjectLinks);
Attribute ldapGroups = AttributeUtil.find(getGroupMembershipAttrName(), attributes);
if (ldapGroups != null) {
- for (Object obj : ldapGroups.getValue()) {
+ ldapGroups.getValue().forEach(obj -> {
groups.add(obj.toString());
- }
+ });
attributes.remove(ldapGroups);
}
attributes.add(AttributeBuilder.build(getGroupMembershipAttrName(), groups));
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPPasswordPropagationActions.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPPasswordPropagationActions.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPPasswordPropagationActions.java
index 5dcdf98..ea4f37d 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPPasswordPropagationActions.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPPasswordPropagationActions.java
@@ -19,9 +19,8 @@
package org.apache.syncope.core.provisioning.java.propagation;
import java.util.HashSet;
+import java.util.Optional;
import java.util.Set;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.common.lib.types.CipherAlgorithm;
import org.apache.syncope.common.lib.types.ConnConfProperty;
@@ -92,19 +91,13 @@ public class LDAPPasswordPropagationActions implements PropagationActions {
}
private String getCipherAlgorithm(final ConnInstance connInstance) {
- ConnConfProperty cipherAlgorithm =
- IterableUtils.find(connInstance.getConf(), new Predicate<ConnConfProperty>() {
-
- @Override
- public boolean evaluate(final ConnConfProperty property) {
- return "passwordHashAlgorithm".equals(property.getSchema().getName())
- && property.getValues() != null && !property.getValues().isEmpty();
- }
- });
-
- return cipherAlgorithm == null
- ? CLEARTEXT
- : (String) cipherAlgorithm.getValues().get(0);
+ Optional<ConnConfProperty> cipherAlgorithm = connInstance.getConf().stream().
+ filter(property -> "passwordHashAlgorithm".equals(property.getSchema().getName())
+ && property.getValues() != null && !property.getValues().isEmpty()).findFirst();
+
+ return cipherAlgorithm.isPresent()
+ ? (String) cipherAlgorithm.get().getValues().get(0)
+ : CLEARTEXT;
}
private boolean cipherAlgorithmMatches(final String connectorAlgorithm, final CipherAlgorithm userAlgorithm) {
@@ -117,11 +110,7 @@ public class LDAPPasswordPropagationActions implements PropagationActions {
}
// Special check for "SHA" (user sync'd from LDAP)
- if ("SHA".equals(connectorAlgorithm) && "SHA1".equals(userAlgorithm.name())) {
- return true;
- }
-
- return false;
+ return "SHA".equals(connectorAlgorithm) && "SHA1".equals(userAlgorithm.name());
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PriorityPropagationTaskExecutor.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PriorityPropagationTaskExecutor.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PriorityPropagationTaskExecutor.java
index 5fc32e1..8322635 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PriorityPropagationTaskExecutor.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PriorityPropagationTaskExecutor.java
@@ -19,7 +19,6 @@
package org.apache.syncope.core.provisioning.java.propagation;
import java.io.Serializable;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
@@ -32,9 +31,8 @@ import java.util.concurrent.CompletionService;
import java.util.concurrent.ExecutorCompletionService;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
import javax.annotation.Resource;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.common.lib.types.PropagationTaskExecStatus;
import org.apache.syncope.core.spring.ApplicationContextProvider;
import org.apache.syncope.core.persistence.api.entity.task.PropagationTask;
@@ -84,21 +82,17 @@ public class PriorityPropagationTaskExecutor extends AbstractPropagationTaskExec
final PropagationReporter reporter,
final boolean nullPriorityAsync) {
- List<PropagationTask> prioritizedTasks = CollectionUtils.select(tasks, new Predicate<PropagationTask>() {
-
- @Override
- public boolean evaluate(final PropagationTask task) {
- return task.getResource().getPropagationPriority() != null;
- }
- }, new ArrayList<PropagationTask>());
+ List<PropagationTask> prioritizedTasks = tasks.stream().
+ filter(task -> task.getResource().getPropagationPriority() != null).collect(Collectors.toList());
Collections.sort(prioritizedTasks, new PriorityComparator());
LOG.debug("Propagation tasks sorted by priority, for serial execution: {}", prioritizedTasks);
- Collection<PropagationTask> concurrentTasks = CollectionUtils.subtract(tasks, prioritizedTasks);
+ Collection<PropagationTask> concurrentTasks = tasks.stream().
+ filter(task -> !prioritizedTasks.contains(task)).collect(Collectors.toSet());
LOG.debug("Propagation tasks for concurrent execution: {}", concurrentTasks);
// first process priority resources sequentially and fail as soon as any propagation failure is reported
- for (PropagationTask task : prioritizedTasks) {
+ prioritizedTasks.forEach(task -> {
TaskExec execution = null;
PropagationTaskExecStatus execStatus;
try {
@@ -112,12 +106,12 @@ public class PriorityPropagationTaskExecutor extends AbstractPropagationTaskExec
throw new PropagationException(
task.getResource().getKey(), execution == null ? null : execution.getMessage());
}
- }
+ });
// then process non-priority resources concurrently...
final CompletionService<TaskExec> completionService = new ExecutorCompletionService<>(executor);
Map<PropagationTask, Future<TaskExec>> nullPriority = new HashMap<>(concurrentTasks.size());
- for (PropagationTask task : concurrentTasks) {
+ concurrentTasks.forEach(task -> {
try {
nullPriority.put(
task,
@@ -125,36 +119,32 @@ public class PriorityPropagationTaskExecutor extends AbstractPropagationTaskExec
} catch (Exception e) {
LOG.error("Unexpected exception", e);
}
- }
+ });
// ...waiting for all callables to complete, if async processing was not required
if (!nullPriority.isEmpty()) {
if (nullPriorityAsync) {
- for (Map.Entry<PropagationTask, Future<TaskExec>> entry : nullPriority.entrySet()) {
+ nullPriority.entrySet().forEach(entry -> {
reporter.onSuccessOrNonPriorityResourceFailures(
entry.getKey(), PropagationTaskExecStatus.CREATED, null, null, null);
- }
+ });
} else {
final Set<Future<TaskExec>> nullPriorityFutures = new HashSet<>(nullPriority.values());
try {
- executor.submit(new Runnable() {
-
- @Override
- public void run() {
- while (!nullPriorityFutures.isEmpty()) {
- try {
- nullPriorityFutures.remove(completionService.take());
- } catch (Exception e) {
- LOG.error("Unexpected exception", e);
- }
+ executor.submit(() -> {
+ while (!nullPriorityFutures.isEmpty()) {
+ try {
+ nullPriorityFutures.remove(completionService.take());
+ } catch (Exception e) {
+ LOG.error("Unexpected exception", e);
}
}
}).get(60, TimeUnit.SECONDS);
} catch (Exception e) {
LOG.error("Unexpected exception", e);
} finally {
- for (Future<TaskExec> future : nullPriorityFutures) {
+ nullPriorityFutures.forEach(future -> {
future.cancel(true);
- }
+ });
nullPriorityFutures.clear();
nullPriority.clear();
}
[09/16] syncope git commit: [SYNCOPE-938] Switching from
commons-collections to Java 8 features
Posted by il...@apache.org.
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAConfDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAConfDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAConfDAO.java
index 3f11fea..29d161e 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAConfDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAConfDAO.java
@@ -18,6 +18,7 @@
*/
package org.apache.syncope.core.persistence.jpa.dao;
+import java.util.Optional;
import org.apache.syncope.core.persistence.api.dao.ConfDAO;
import org.apache.syncope.core.persistence.api.entity.conf.CPlainAttr;
import org.apache.syncope.core.persistence.api.entity.conf.Conf;
@@ -45,35 +46,35 @@ public class JPAConfDAO extends AbstractDAO<Conf> implements ConfDAO {
@Transactional(readOnly = true)
@Override
- public CPlainAttr find(final String key) {
+ public Optional<? extends CPlainAttr> find(final String key) {
return get().getPlainAttr(key);
}
@Transactional(readOnly = true)
@Override
public <T> T find(final String key, final T defaultValue) {
- CPlainAttr result = find(key);
- if (result == null) {
+ Optional<? extends CPlainAttr> result = find(key);
+ if (!result.isPresent()) {
return defaultValue;
}
- return result.getUniqueValue() == null
- ? result.getValues().isEmpty()
+ return result.get().getUniqueValue() == null
+ ? result.get().getValues().isEmpty()
? null
- : result.getValues().get(0).<T>getValue()
- : result.getUniqueValue().<T>getValue();
+ : result.get().getValues().get(0).<T>getValue()
+ : result.get().getUniqueValue().<T>getValue();
}
@Override
public Conf save(final CPlainAttr attr) {
Conf instance = get();
- CPlainAttr old = instance.getPlainAttr(attr.getSchema().getKey());
- if (old != null && (!attr.getSchema().isUniqueConstraint()
- || (!attr.getUniqueValue().getStringValue().equals(old.getUniqueValue().getStringValue())))) {
+ Optional<? extends CPlainAttr> old = instance.getPlainAttr(attr.getSchema().getKey());
+ if (old.isPresent() && (!attr.getSchema().isUniqueConstraint()
+ || (!attr.getUniqueValue().getStringValue().equals(old.get().getUniqueValue().getStringValue())))) {
- old.setOwner(null);
- instance.remove(old);
+ old.get().setOwner(null);
+ instance.remove(old.get());
}
instance.add(attr);
@@ -85,10 +86,10 @@ public class JPAConfDAO extends AbstractDAO<Conf> implements ConfDAO {
@Override
public Conf delete(final String key) {
Conf instance = get();
- CPlainAttr attr = instance.getPlainAttr(key);
- if (attr != null) {
- attr.setOwner(null);
- instance.remove(attr);
+ Optional<? extends CPlainAttr> attr = instance.getPlainAttr(key);
+ if (attr.isPresent()) {
+ attr.get().setOwner(null);
+ instance.remove(attr.get());
instance = entityManager().merge(instance);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAConnInstanceDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAConnInstanceDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAConnInstanceDAO.java
index 7d4c0c8..88af802 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAConnInstanceDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAConnInstanceDAO.java
@@ -18,23 +18,18 @@
*/
package org.apache.syncope.core.persistence.jpa.dao;
-import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;
-import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.stream.Collectors;
import javax.persistence.TypedQuery;
-import org.apache.commons.collections4.Closure;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.common.lib.types.StandardEntitlement;
import org.apache.syncope.core.persistence.api.dao.ConnInstanceDAO;
import org.apache.syncope.core.persistence.api.dao.ConnInstanceHistoryConfDAO;
import org.apache.syncope.core.persistence.api.dao.ExternalResourceDAO;
import org.apache.syncope.core.persistence.api.dao.NotFoundException;
+import org.apache.syncope.core.persistence.api.entity.Entity;
import org.apache.syncope.core.persistence.api.entity.ConnInstance;
-import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
import org.apache.syncope.core.persistence.jpa.entity.JPAConnInstance;
import org.apache.syncope.core.provisioning.api.ConnectorRegistry;
import org.apache.syncope.core.spring.security.AuthContextUtils;
@@ -61,20 +56,15 @@ public class JPAConnInstanceDAO extends AbstractDAO<ConnInstance> implements Con
@Override
public ConnInstance authFind(final String key) {
- final ConnInstance connInstance = find(key);
+ ConnInstance connInstance = find(key);
if (connInstance == null) {
return null;
}
- final Set<String> authRealms = AuthContextUtils.getAuthorizations().get(StandardEntitlement.CONNECTOR_READ);
+ Set<String> authRealms = AuthContextUtils.getAuthorizations().get(StandardEntitlement.CONNECTOR_READ);
if (authRealms == null || authRealms.isEmpty()
- || !IterableUtils.matchesAny(authRealms, new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String realm) {
- return connInstance.getAdminRealm().getFullPath().startsWith(realm);
- }
- })) {
+ || !authRealms.stream().anyMatch(
+ realm -> connInstance.getAdminRealm().getFullPath().startsWith(realm))) {
throw new DelegatedAdministrationException(
connInstance.getAdminRealm().getFullPath(),
@@ -95,32 +85,22 @@ public class JPAConnInstanceDAO extends AbstractDAO<ConnInstance> implements Con
TypedQuery<ConnInstance> query = entityManager().createQuery(
"SELECT e FROM " + JPAConnInstance.class.getSimpleName() + " e", ConnInstance.class);
- return CollectionUtils.select(query.getResultList(), new Predicate<ConnInstance>() {
-
- @Override
- public boolean evaluate(final ConnInstance connInstance) {
- return IterableUtils.matchesAny(authRealms, new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String realm) {
- return connInstance.getAdminRealm().getFullPath().startsWith(realm);
- }
- });
- }
- }, new ArrayList<ConnInstance>());
+ return query.getResultList().stream().filter(connInstance -> authRealms.stream().
+ anyMatch(realm -> connInstance.getAdminRealm().getFullPath().startsWith(realm))).
+ collect(Collectors.toList());
}
@Override
public ConnInstance save(final ConnInstance connector) {
final ConnInstance merged = entityManager().merge(connector);
- for (ExternalResource resource : merged.getResources()) {
+ merged.getResources().forEach(resource -> {
try {
connRegistry.registerConnector(resource);
} catch (NotFoundException e) {
LOG.error("While registering connector for resource", e);
}
- }
+ });
return merged;
}
@@ -132,14 +112,9 @@ public class JPAConnInstanceDAO extends AbstractDAO<ConnInstance> implements Con
return;
}
- IterableUtils.forEach(new CopyOnWriteArrayList<>(connInstance.getResources()), new Closure<ExternalResource>() {
-
- @Override
- public void execute(final ExternalResource input) {
- resourceDAO.delete(input.getKey());
- }
-
- });
+ connInstance.getResources().stream().
+ map(Entity::getKey).collect(Collectors.toList()).
+ forEach(resource -> resourceDAO.delete(resource));
connInstanceHistoryConfDAO.deleteByEntity(connInstance);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAExternalResourceDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAExternalResourceDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAExternalResourceDAO.java
index 43b36d5..5822a6e 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAExternalResourceDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAExternalResourceDAO.java
@@ -18,16 +18,13 @@
*/
package org.apache.syncope.core.persistence.jpa.dao;
-import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import java.util.stream.Collectors;
import javax.persistence.Query;
import javax.persistence.TypedQuery;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.common.lib.types.StandardEntitlement;
import org.apache.syncope.common.lib.types.TaskType;
import org.apache.syncope.core.persistence.api.dao.AnyObjectDAO;
@@ -45,14 +42,9 @@ import org.apache.syncope.core.persistence.api.entity.policy.AccountPolicy;
import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
import org.apache.syncope.core.persistence.api.entity.resource.MappingItem;
import org.apache.syncope.core.persistence.api.entity.Policy;
-import org.apache.syncope.core.persistence.api.entity.Realm;
-import org.apache.syncope.core.persistence.api.entity.VirSchema;
-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.policy.PasswordPolicy;
import org.apache.syncope.core.persistence.api.entity.policy.PullPolicy;
import org.apache.syncope.core.persistence.api.entity.resource.Provision;
-import org.apache.syncope.core.persistence.api.entity.user.User;
import org.apache.syncope.core.persistence.jpa.entity.resource.JPAMappingItem;
import org.apache.syncope.core.persistence.jpa.entity.resource.JPAExternalResource;
import org.apache.syncope.core.persistence.jpa.entity.resource.JPAMapping;
@@ -174,21 +166,15 @@ public class JPAExternalResourceDAO extends AbstractDAO<ExternalResource> implem
@Override
public ExternalResource authFind(final String key) {
- final ExternalResource resource = find(key);
+ ExternalResource resource = find(key);
if (resource == null) {
return null;
}
- final Set<String> authRealms = AuthContextUtils.getAuthorizations().get(StandardEntitlement.RESOURCE_READ);
+ Set<String> authRealms = AuthContextUtils.getAuthorizations().get(StandardEntitlement.RESOURCE_READ);
if (authRealms == null || authRealms.isEmpty()
- || !IterableUtils.matchesAny(authRealms, new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String realm) {
- return resource.getConnector() != null
- && resource.getConnector().getAdminRealm().getFullPath().startsWith(realm);
- }
- })) {
+ || !authRealms.stream().anyMatch(realm -> resource.getConnector() != null
+ && resource.getConnector().getAdminRealm().getFullPath().startsWith(realm))) {
throw new DelegatedAdministrationException(
resource.getConnector().getAdminRealm().getFullPath(),
@@ -243,20 +229,10 @@ public class JPAExternalResourceDAO extends AbstractDAO<ExternalResource> implem
TypedQuery<ExternalResource> query = entityManager().createQuery(
"SELECT e FROM " + JPAExternalResource.class.getSimpleName() + " e", ExternalResource.class);
- return CollectionUtils.select(query.getResultList(), new Predicate<ExternalResource>() {
-
- @Override
- public boolean evaluate(final ExternalResource resource) {
- return IterableUtils.matchesAny(authRealms, new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String realm) {
- return resource.getConnector() != null
- && resource.getConnector().getAdminRealm().getFullPath().startsWith(realm);
- }
- });
- }
- }, new ArrayList<ExternalResource>());
+ return query.getResultList().stream().filter(resource -> authRealms.stream().
+ anyMatch(realm -> resource.getConnector() != null
+ && resource.getConnector().getAdminRealm().getFullPath().startsWith(realm))).
+ collect(Collectors.toList());
}
@Override
@@ -280,18 +256,15 @@ public class JPAExternalResourceDAO extends AbstractDAO<ExternalResource> implem
query.setParameter("intAttrName", intAttrName);
Set<String> itemKeys = new HashSet<>();
- for (MappingItem item : query.getResultList()) {
- itemKeys.add(item.getKey());
- }
- for (String itemKey : itemKeys) {
- MappingItem item = entityManager().find(JPAMappingItem.class, itemKey);
- if (item != null) {
- item.getMapping().getItems().remove(item);
- item.setMapping(null);
-
- entityManager().remove(item);
- }
- }
+ query.getResultList().forEach(item -> itemKeys.add(item.getKey()));
+ itemKeys.stream().map(itemKey -> entityManager().find(JPAMappingItem.class, itemKey)).
+ filter(item -> item != null).map(item -> {
+ item.getMapping().getItems().remove(item);
+ return item;
+ }).map(item -> {
+ item.setMapping(null);
+ return item;
+ }).forEachOrdered(item -> entityManager().remove(item));
// Make empty query cache for *MappingItem and related *Mapping
entityManager().getEntityManagerFactory().getCache().evict(JPAMappingItem.class);
@@ -309,34 +282,27 @@ public class JPAExternalResourceDAO extends AbstractDAO<ExternalResource> implem
taskDAO().deleteAll(resource, TaskType.PULL);
taskDAO().deleteAll(resource, TaskType.PUSH);
- for (Realm realm : realmDAO().findByResource(resource)) {
- realm.getResources().remove(resource);
- }
- for (AnyObject anyObject : anyObjectDAO().findByResource(resource)) {
- anyObject.getResources().remove(resource);
- }
- for (User user : userDAO().findByResource(resource)) {
- user.getResources().remove(resource);
- }
- for (Group group : groupDAO().findByResource(resource)) {
- group.getResources().remove(resource);
- }
- for (AccountPolicy policy : policyDAO().findByResource(resource)) {
- policy.getResources().remove(resource);
- }
-
- for (Provision provision : resource.getProvisions()) {
- for (MappingItem item : provision.getMapping().getItems()) {
- item.setMapping(null);
- }
+ realmDAO().findByResource(resource).
+ forEach(realm -> realm.getResources().remove(resource));
+ anyObjectDAO().findByResource(resource).
+ forEach(anyObject -> anyObject.getResources().remove(resource));
+ userDAO().findByResource(resource).
+ forEach(user -> user.getResources().remove(resource));
+ groupDAO().findByResource(resource).
+ forEach(group -> group.getResources().remove(resource));
+ policyDAO().findByResource(resource).
+ forEach(policy -> policy.getResources().remove(resource));
+
+ resource.getProvisions().stream().map(provision -> {
+ provision.getMapping().getItems().forEach(item -> item.setMapping(null));
+ return provision;
+ }).map(provision -> {
provision.getMapping().getItems().clear();
provision.setMapping(null);
provision.setResource(null);
-
- for (VirSchema schema : virSchemaDAO().findByProvision(provision)) {
- virSchemaDAO().delete(schema.getKey());
- }
- }
+ return provision;
+ }).forEachOrdered(provision -> virSchemaDAO().findByProvision(provision).
+ forEach(schema -> virSchemaDAO().delete(schema.getKey())));
externalResourceHistoryConfDAO().deleteByEntity(resource);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAGroupDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAGroupDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAGroupDAO.java
index dca8d69..170915c 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAGroupDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAGroupDAO.java
@@ -26,13 +26,10 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.stream.Collectors;
import javax.persistence.NoResultException;
import javax.persistence.Query;
import javax.persistence.TypedQuery;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
-import org.apache.commons.collections4.SetUtils;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.core.persistence.api.dao.GroupDAO;
import org.apache.syncope.core.persistence.api.dao.UserDAO;
@@ -52,15 +49,14 @@ import org.apache.syncope.core.persistence.api.dao.search.SearchCond;
import org.apache.syncope.core.persistence.api.entity.AnyType;
import org.apache.syncope.core.persistence.api.entity.AnyTypeClass;
import org.apache.syncope.core.persistence.api.entity.AnyUtils;
+import org.apache.syncope.core.persistence.api.entity.Entity;
import org.apache.syncope.core.persistence.api.entity.Realm;
import org.apache.syncope.core.persistence.api.entity.anyobject.ADynGroupMembership;
import org.apache.syncope.core.persistence.api.entity.anyobject.AMembership;
-import org.apache.syncope.core.persistence.api.entity.anyobject.APlainAttr;
import org.apache.syncope.core.persistence.api.entity.anyobject.AnyObject;
import org.apache.syncope.core.persistence.api.entity.group.TypeExtension;
import org.apache.syncope.core.persistence.api.entity.user.UDynGroupMembership;
import org.apache.syncope.core.persistence.api.entity.user.UMembership;
-import org.apache.syncope.core.persistence.api.entity.user.UPlainAttr;
import org.apache.syncope.core.persistence.jpa.entity.JPAAnyUtilsFactory;
import org.apache.syncope.core.persistence.jpa.entity.anyobject.JPAADynGroupMembership;
import org.apache.syncope.core.persistence.jpa.entity.anyobject.JPAAMembership;
@@ -69,7 +65,6 @@ import org.apache.syncope.core.persistence.jpa.entity.user.JPAUDynGroupMembershi
import org.apache.syncope.core.persistence.jpa.entity.user.JPAUMembership;
import org.apache.syncope.core.provisioning.api.event.AnyCreatedUpdatedEvent;
import org.apache.syncope.core.provisioning.api.event.AnyDeletedEvent;
-import org.apache.syncope.core.provisioning.api.utils.EntityUtils;
import org.apache.syncope.core.spring.ApplicationContextProvider;
import org.springframework.aop.support.AopUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -177,20 +172,18 @@ public class JPAGroupDAO extends AbstractAnyDAO<Group> implements GroupDAO {
@Override
protected void securityChecks(final Group group) {
- Set<String> authRealms = SetUtils.emptyIfNull(
- AuthContextUtils.getAuthorizations().get(StandardEntitlement.GROUP_READ));
- boolean authorized = IterableUtils.matchesAny(authRealms, new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String realm) {
- return group.getRealm().getFullPath().startsWith(realm)
- || realm.equals(RealmUtils.getGroupOwnerRealm(group.getRealm().getFullPath(), group.getKey()));
- }
- });
+ Map<String, Set<String>> authorizations = AuthContextUtils.getAuthorizations();
+ Set<String> authRealms = authorizations.containsKey(StandardEntitlement.GROUP_READ)
+ ? authorizations.get(StandardEntitlement.GROUP_READ)
+ : Collections.emptySet();
+
+ boolean authorized = authRealms.stream().anyMatch(realm -> group.getRealm().getFullPath().startsWith(realm)
+ || realm.equals(RealmUtils.getGroupOwnerRealm(group.getRealm().getFullPath(), group.getKey())));
if (!authorized) {
- authorized = !CollectionUtils.intersection(findDynRealms(group.getKey()), authRealms).isEmpty();
+ authorized = findDynRealms(group.getKey()).stream().
+ filter(dynRealm -> authRealms.contains(dynRealm)).
+ count() > 0;
}
-
if (authRealms.isEmpty() || !authorized) {
throw new DelegatedAdministrationException(
group.getRealm().getFullPath(), AnyTypeKind.GROUP.name(), group.getKey());
@@ -299,32 +292,32 @@ public class JPAGroupDAO extends AbstractAnyDAO<Group> implements GroupDAO {
clearUDynMembers(merged);
- for (User user : matching) {
+ matching.forEach(user -> {
Query insert = entityManager().createNativeQuery("INSERT INTO " + UDYNMEMB_TABLE + " VALUES(?, ?)");
insert.setParameter(1, user.getKey());
insert.setParameter(2, merged.getKey());
insert.executeUpdate();
publisher.publishEvent(new AnyCreatedUpdatedEvent<>(this, user, AuthContextUtils.getDomain()));
- }
+ });
}
- for (ADynGroupMembership memb : merged.getADynMemberships()) {
- List<AnyObject> matching = searchDAO().search(
- buildDynMembershipCond(memb.getFIQLCond(), merged.getRealm()),
- AnyTypeKind.ANY_OBJECT);
-
+ merged.getADynMemberships().stream().map(memb -> searchDAO().search(
+ buildDynMembershipCond(memb.getFIQLCond(), merged.getRealm()),
+ AnyTypeKind.ANY_OBJECT)).forEachOrdered(matching -> {
clearADynMembers(merged);
- for (AnyObject anyObject : matching) {
- Query insert = entityManager().createNativeQuery("INSERT INTO " + ADYNMEMB_TABLE + " VALUES(?, ?, ?)");
+ matching.forEach(anyObject -> {
+ Query insert = entityManager().createNativeQuery("INSERT INTO " + ADYNMEMB_TABLE
+ + " VALUES(?, ?, ?)");
insert.setParameter(1, anyObject.getType().getKey());
insert.setParameter(2, anyObject.getKey());
insert.setParameter(3, merged.getKey());
insert.executeUpdate();
- publisher.publishEvent(new AnyCreatedUpdatedEvent<>(this, anyObject, AuthContextUtils.getDomain()));
- }
- }
+ publisher.publishEvent(
+ new AnyCreatedUpdatedEvent<>(this, anyObject, AuthContextUtils.getDomain()));
+ });
+ });
dynRealmDAO().refreshDynMemberships(merged);
@@ -335,34 +328,35 @@ public class JPAGroupDAO extends AbstractAnyDAO<Group> implements GroupDAO {
public void delete(final Group group) {
dynRealmDAO().removeDynMemberships(group.getKey());
- for (AMembership membership : findAMemberships(group)) {
+ findAMemberships(group).forEach(membership -> {
AnyObject leftEnd = membership.getLeftEnd();
leftEnd.getMemberships().remove(membership);
membership.setRightEnd(null);
- for (APlainAttr attr : leftEnd.getPlainAttrs(membership)) {
+ leftEnd.getPlainAttrs(membership).stream().map(attr -> {
leftEnd.remove(attr);
attr.setOwner(null);
attr.setMembership(null);
- plainAttrDAO.delete(attr);
- }
+ return attr;
+ }).forEachOrdered(attr -> plainAttrDAO.delete(attr));
anyObjectDAO().save(leftEnd);
publisher.publishEvent(new AnyCreatedUpdatedEvent<>(this, leftEnd, AuthContextUtils.getDomain()));
- }
- for (UMembership membership : findUMemberships(group)) {
+ });
+
+ findUMemberships(group).forEach(membership -> {
User leftEnd = membership.getLeftEnd();
leftEnd.getMemberships().remove(membership);
membership.setRightEnd(null);
- for (UPlainAttr attr : leftEnd.getPlainAttrs(membership)) {
+ leftEnd.getPlainAttrs(membership).stream().map(attr -> {
leftEnd.remove(attr);
attr.setOwner(null);
attr.setMembership(null);
- plainAttrDAO.delete(attr);
- }
+ return attr;
+ }).forEachOrdered(attr -> plainAttrDAO.delete(attr));
userDAO().save(leftEnd);
publisher.publishEvent(new AnyCreatedUpdatedEvent<>(this, leftEnd, AuthContextUtils.getDomain()));
- }
+ });
clearUDynMembers(group);
clearADynMembers(group);
@@ -383,22 +377,22 @@ public class JPAGroupDAO extends AbstractAnyDAO<Group> implements GroupDAO {
}
@Override
+ @SuppressWarnings("unchecked")
public List<String> findADynMembers(final Group group) {
List<String> result = new ArrayList<>();
- for (ADynGroupMembership memb : group.getADynMemberships()) {
+ group.getADynMemberships().stream().map(memb -> {
Query query = entityManager().createNativeQuery(
"SELECT any_id FROM " + ADYNMEMB_TABLE + " WHERE group_id=? AND anyType_id=?");
query.setParameter(1, group.getKey());
query.setParameter(2, memb.getAnyType().getKey());
+ return query;
+ }).forEachOrdered((query) -> {
+ query.getResultList().stream().map(key -> key instanceof Object[]
+ ? (String) ((Object[]) key)[0]
+ : ((String) key)).
+ forEachOrdered(actualKey -> result.add(actualKey.toString()));
+ });
- for (Object key : query.getResultList()) {
- String actualKey = key instanceof Object[]
- ? (String) ((Object[]) key)[0]
- : ((String) key);
-
- result.add(actualKey);
- }
- }
return result;
}
@@ -420,13 +414,12 @@ public class JPAGroupDAO extends AbstractAnyDAO<Group> implements GroupDAO {
@Transactional
@Override
public void refreshDynMemberships(final AnyObject anyObject) {
- for (ADynGroupMembership memb : findWithADynMemberships(anyObject.getType())) {
+ findWithADynMemberships(anyObject.getType()).stream().map(memb -> {
Query delete = entityManager().createNativeQuery(
"DELETE FROM " + ADYNMEMB_TABLE + " WHERE group_id=? AND any_id=?");
delete.setParameter(1, memb.getGroup().getKey());
delete.setParameter(2, anyObject.getKey());
delete.executeUpdate();
-
if (jpaAnySearchDAO().matches(
anyObject,
buildDynMembershipCond(memb.getFIQLCond(), memb.getGroup().getRealm()))) {
@@ -438,9 +431,9 @@ public class JPAGroupDAO extends AbstractAnyDAO<Group> implements GroupDAO {
insert.setParameter(3, memb.getGroup().getKey());
insert.executeUpdate();
}
-
- publisher.publishEvent(new AnyCreatedUpdatedEvent<>(this, memb.getGroup(), AuthContextUtils.getDomain()));
- }
+ return memb;
+ }).forEachOrdered(memb -> publisher.publishEvent(
+ new AnyCreatedUpdatedEvent<>(this, memb.getGroup(), AuthContextUtils.getDomain())));
}
@Override
@@ -451,12 +444,13 @@ public class JPAGroupDAO extends AbstractAnyDAO<Group> implements GroupDAO {
delete.setParameter(1, anyObject.getKey());
delete.executeUpdate();
- for (Group group : dynGroups) {
+ dynGroups.forEach(group -> {
publisher.publishEvent(new AnyCreatedUpdatedEvent<>(this, group, AuthContextUtils.getDomain()));
- }
+ });
}
@Override
+ @SuppressWarnings("unchecked")
public List<String> findUDynMembers(final Group group) {
if (group.getUDynMembership() == null) {
return Collections.emptyList();
@@ -467,13 +461,9 @@ public class JPAGroupDAO extends AbstractAnyDAO<Group> implements GroupDAO {
query.setParameter(1, group.getKey());
List<String> result = new ArrayList<>();
- for (Object key : query.getResultList()) {
- String actualKey = key instanceof Object[]
- ? (String) ((Object[]) key)[0]
- : ((String) key);
-
- result.add(actualKey);
- }
+ query.getResultList().stream().map(key -> key instanceof Object[]
+ ? (String) ((Object[]) key)[0]
+ : ((String) key)).forEachOrdered(actualKey -> result.add(actualKey.toString()));
return result;
}
@@ -495,13 +485,12 @@ public class JPAGroupDAO extends AbstractAnyDAO<Group> implements GroupDAO {
@Transactional
@Override
public void refreshDynMemberships(final User user) {
- for (UDynGroupMembership memb : findWithUDynMemberships()) {
+ findWithUDynMemberships().stream().map(memb -> {
Query delete = entityManager().createNativeQuery(
"DELETE FROM " + UDYNMEMB_TABLE + " WHERE group_id=? AND any_id=?");
delete.setParameter(1, memb.getGroup().getKey());
delete.setParameter(2, user.getKey());
delete.executeUpdate();
-
if (jpaAnySearchDAO().matches(
user,
buildDynMembershipCond(memb.getFIQLCond(), memb.getGroup().getRealm()))) {
@@ -512,9 +501,9 @@ public class JPAGroupDAO extends AbstractAnyDAO<Group> implements GroupDAO {
insert.setParameter(2, memb.getGroup().getKey());
insert.executeUpdate();
}
-
- publisher.publishEvent(new AnyCreatedUpdatedEvent<>(this, memb.getGroup(), AuthContextUtils.getDomain()));
- }
+ return memb;
+ }).forEachOrdered(memb -> publisher.publishEvent(
+ new AnyCreatedUpdatedEvent<>(this, memb.getGroup(), AuthContextUtils.getDomain())));
}
@Override
@@ -525,14 +514,14 @@ public class JPAGroupDAO extends AbstractAnyDAO<Group> implements GroupDAO {
delete.setParameter(1, user.getKey());
delete.executeUpdate();
- for (Group group : dynGroups) {
+ dynGroups.forEach(group -> {
publisher.publishEvent(new AnyCreatedUpdatedEvent<>(this, group, AuthContextUtils.getDomain()));
- }
+ });
}
@Transactional(readOnly = true)
@Override
public Collection<String> findAllResourceKeys(final String key) {
- return CollectionUtils.collect(find(key).getResources(), EntityUtils.keyTransformer());
+ return find(key).getResources().stream().map(Entity::getKey).collect(Collectors.toList());
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPANotificationDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPANotificationDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPANotificationDAO.java
index f9cf72e..ca5f0c4 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPANotificationDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPANotificationDAO.java
@@ -21,15 +21,13 @@ package org.apache.syncope.core.persistence.jpa.dao;
import java.util.Collections;
import java.util.List;
import javax.persistence.TypedQuery;
-import org.apache.commons.collections4.Closure;
-import org.apache.commons.collections4.IterableUtils;
import org.apache.syncope.common.lib.types.TaskType;
import org.apache.syncope.core.persistence.api.dao.NotificationDAO;
import org.apache.syncope.core.persistence.api.dao.TaskDAO;
import org.apache.syncope.core.persistence.api.dao.search.OrderByClause;
+import org.apache.syncope.core.persistence.api.entity.Entity;
import org.apache.syncope.core.persistence.api.entity.MailTemplate;
import org.apache.syncope.core.persistence.api.entity.Notification;
-import org.apache.syncope.core.persistence.api.entity.task.Task;
import org.apache.syncope.core.persistence.jpa.entity.JPANotification;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@@ -77,15 +75,9 @@ public class JPANotificationDAO extends AbstractDAO<Notification> implements Not
return;
}
- IterableUtils.forEach(taskDAO.findAll(
- TaskType.NOTIFICATION, null, notification, null, null, -1, -1, Collections.<OrderByClause>emptyList()),
- new Closure<Task>() {
-
- @Override
- public void execute(final Task input) {
- delete(input.getKey());
- }
- });
+ taskDAO.findAll(
+ TaskType.NOTIFICATION, null, notification, null, null, -1, -1, Collections.<OrderByClause>emptyList()).
+ stream().map(Entity::getKey).forEach(task -> delete(task));
entityManager().remove(notification);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPARealmDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPARealmDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPARealmDAO.java
index 0f4cb62..a03451f 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPARealmDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPARealmDAO.java
@@ -21,10 +21,9 @@ package org.apache.syncope.core.persistence.jpa.dao;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import java.util.Optional;
import javax.persistence.NoResultException;
import javax.persistence.TypedQuery;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.core.persistence.api.dao.MalformedPathException;
@@ -33,7 +32,6 @@ import org.apache.syncope.core.persistence.api.dao.RoleDAO;
import org.apache.syncope.core.persistence.api.entity.policy.AccountPolicy;
import org.apache.syncope.core.persistence.api.entity.Policy;
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.policy.PasswordPolicy;
import org.apache.syncope.core.persistence.api.entity.policy.PullPolicy;
import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
@@ -87,14 +85,11 @@ public class JPARealmDAO extends AbstractDAO<Realm> implements RealmDAO {
Realm current = root;
for (final String pathElement : fullPath.substring(1).split("/")) {
- current = IterableUtils.find(findChildren(current), new Predicate<Realm>() {
-
- @Override
- public boolean evaluate(final Realm realm) {
- return pathElement.equals(realm.getName());
- }
- });
- if (current == null) {
+ Optional<Realm> first = findChildren(current).stream().
+ filter(realm -> pathElement.equals(realm.getName())).findFirst();
+ if (first.isPresent()) {
+ current = first.get();
+ } else {
return null;
}
}
@@ -148,10 +143,11 @@ public class JPARealmDAO extends AbstractDAO<Realm> implements RealmDAO {
query.setParameter("policy", policy);
List<Realm> result = new ArrayList<>();
- for (Realm realm : query.getResultList()) {
+ query.getResultList().stream().map(realm -> {
result.add(realm);
- result.addAll(findSamePolicyChildren(realm, policy));
- }
+ return realm;
+ }).forEachOrdered(realm -> result.addAll(findSamePolicyChildren(realm, policy)));
+
return result;
}
@@ -209,15 +205,13 @@ public class JPARealmDAO extends AbstractDAO<Realm> implements RealmDAO {
@Override
public void delete(final Realm realm) {
- for (Realm toBeDeleted : findDescendants(realm)) {
- for (Role role : roleDAO.findByRealm(toBeDeleted)) {
- role.getRealms().remove(toBeDeleted);
- }
-
+ findDescendants(realm).stream().map(toBeDeleted -> {
+ roleDAO.findByRealm(toBeDeleted).forEach(role -> role.getRealms().remove(toBeDeleted));
+ return toBeDeleted;
+ }).map(toBeDeleted -> {
toBeDeleted.setParent(null);
-
- entityManager().remove(toBeDeleted);
- }
+ return toBeDeleted;
+ }).forEachOrdered(toBeDeleted -> entityManager().remove(toBeDeleted));
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPARelationshipTypeDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPARelationshipTypeDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPARelationshipTypeDAO.java
index 4af6c98..fd1f731 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPARelationshipTypeDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPARelationshipTypeDAO.java
@@ -18,10 +18,10 @@
*/
package org.apache.syncope.core.persistence.jpa.dao;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import javax.persistence.TypedQuery;
-import org.apache.commons.collections4.CollectionUtils;
import org.apache.syncope.core.persistence.api.dao.RelationshipTypeDAO;
import org.apache.syncope.core.persistence.api.entity.Relationship;
import org.apache.syncope.core.persistence.api.entity.RelationshipType;
@@ -64,7 +64,11 @@ public class JPARelationshipTypeDAO extends AbstractDAO<RelationshipType> implem
URelationship.class);
uquery.setParameter("type", type);
- return CollectionUtils.union(aquery.getResultList(), uquery.getResultList());
+ List<Relationship<?, ?>> result = new ArrayList<>();
+ result.addAll(aquery.getResultList());
+ result.addAll(uquery.getResultList());
+
+ return result;
}
@Override
@@ -74,7 +78,7 @@ public class JPARelationshipTypeDAO extends AbstractDAO<RelationshipType> implem
return;
}
- for (Relationship<?, ?> relationship : findRelationshipsByType(type)) {
+ findRelationshipsByType(type).stream().map(relationship -> {
if (relationship instanceof URelationship) {
((URelationship) relationship).getLeftEnd().getRelationships().remove((URelationship) relationship);
} else if (relationship instanceof UMembership) {
@@ -84,10 +88,9 @@ public class JPARelationshipTypeDAO extends AbstractDAO<RelationshipType> implem
} else if (relationship instanceof AMembership) {
((AMembership) relationship).getLeftEnd().getMemberships().remove((AMembership) relationship);
}
-
relationship.setLeftEnd(null);
- entityManager().remove(relationship);
- }
+ return relationship;
+ }).forEachOrdered(relationship -> entityManager().remove(relationship));
entityManager().remove(type);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPATaskDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPATaskDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPATaskDAO.java
index dfb7536..55ca241 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPATaskDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPATaskDAO.java
@@ -21,13 +21,12 @@ package org.apache.syncope.core.persistence.jpa.dao;
import java.util.Collections;
import java.util.List;
import javax.persistence.Query;
-import org.apache.commons.collections4.Closure;
-import org.apache.commons.collections4.IterableUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.common.lib.types.TaskType;
import org.apache.syncope.core.persistence.api.dao.TaskDAO;
import org.apache.syncope.core.persistence.api.dao.search.OrderByClause;
+import org.apache.syncope.core.persistence.api.entity.Entity;
import org.apache.syncope.core.persistence.api.entity.Notification;
import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
import org.apache.syncope.core.persistence.api.entity.task.Task;
@@ -164,12 +163,12 @@ public class JPATaskDAO extends AbstractDAO<Task> implements TaskDAO {
StringBuilder statement = new StringBuilder();
- for (OrderByClause clause : orderByClauses) {
+ orderByClauses.forEach(clause -> {
String field = clause.getField().trim();
if (ReflectionUtils.findField(beanClass, field) != null) {
statement.append("t.").append(field).append(' ').append(clause.getDirection().name());
}
- }
+ });
if (statement.length() == 0) {
statement.append("ORDER BY t.id DESC");
@@ -264,14 +263,7 @@ public class JPATaskDAO extends AbstractDAO<Task> implements TaskDAO {
@Override
public void deleteAll(final ExternalResource resource, final TaskType type) {
- IterableUtils.forEach(
- findAll(type, resource, null, null, null, -1, -1, Collections.<OrderByClause>emptyList()),
- new Closure<Task>() {
-
- @Override
- public void execute(final Task input) {
- delete(input.getKey());
- }
- });
+ findAll(type, resource, null, null, null, -1, -1, Collections.<OrderByClause>emptyList()).
+ stream().map(Entity::getKey).forEach(task -> delete(task));
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAUserDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAUserDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAUserDAO.java
index e1bfaf1..02281fa 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAUserDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAUserDAO.java
@@ -28,20 +28,14 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.regex.Pattern;
+import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.persistence.NoResultException;
import javax.persistence.Query;
import javax.persistence.TypedQuery;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
-import org.apache.commons.collections4.SetUtils;
-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.SyncopeConstants;
-import org.apache.syncope.common.lib.policy.AccountRuleConf;
-import org.apache.syncope.common.lib.policy.PasswordRuleConf;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.common.lib.types.EntityViolationType;
import org.apache.syncope.common.lib.types.StandardEntitlement;
@@ -61,6 +55,7 @@ import org.apache.syncope.core.persistence.api.dao.RoleDAO;
import org.apache.syncope.core.persistence.api.dao.UserDAO;
import org.apache.syncope.core.persistence.api.entity.AccessToken;
import org.apache.syncope.core.persistence.api.entity.AnyUtils;
+import org.apache.syncope.core.persistence.api.entity.Entity;
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.group.Group;
@@ -68,13 +63,11 @@ import org.apache.syncope.core.persistence.api.entity.policy.AccountPolicy;
import org.apache.syncope.core.persistence.api.entity.policy.PasswordPolicy;
import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
import org.apache.syncope.core.persistence.api.entity.user.SecurityQuestion;
-import org.apache.syncope.core.persistence.api.entity.user.UMembership;
import org.apache.syncope.core.persistence.api.entity.user.User;
import org.apache.syncope.core.persistence.jpa.entity.JPAAnyUtilsFactory;
import org.apache.syncope.core.persistence.jpa.entity.user.JPAUser;
import org.apache.syncope.core.provisioning.api.event.AnyCreatedUpdatedEvent;
import org.apache.syncope.core.provisioning.api.event.AnyDeletedEvent;
-import org.apache.syncope.core.provisioning.api.utils.EntityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.support.AbstractBeanDefinition;
import org.springframework.stereotype.Repository;
@@ -185,17 +178,16 @@ public class JPAUserDAO extends AbstractAnyDAO<User> implements UserDAO {
if (!AuthContextUtils.getUsername().equals(anonymousUser)
&& !AuthContextUtils.getUsername().equals(user.getUsername())) {
- Set<String> authRealms = SetUtils.emptyIfNull(
- AuthContextUtils.getAuthorizations().get(StandardEntitlement.USER_READ));
- boolean authorized = IterableUtils.matchesAny(authRealms, new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String realm) {
- return user.getRealm().getFullPath().startsWith(realm);
- }
- });
+ Map<String, Set<String>> authorizations = AuthContextUtils.getAuthorizations();
+ Set<String> authRealms = authorizations.containsKey(StandardEntitlement.USER_READ)
+ ? authorizations.get(StandardEntitlement.USER_READ)
+ : Collections.emptySet();
+ boolean authorized = authRealms.stream().
+ anyMatch(realm -> user.getRealm().getFullPath().startsWith(realm));
if (!authorized) {
- authorized = !CollectionUtils.intersection(findDynRealms(user.getKey()), authRealms).isEmpty();
+ authorized = findDynRealms(user.getKey()).stream().
+ filter(dynRealm -> authRealms.contains(dynRealm)).
+ count() > 0;
}
if (authRealms.isEmpty() || !authorized) {
throw new DelegatedAdministrationException(
@@ -282,21 +274,17 @@ public class JPAUserDAO extends AbstractAnyDAO<User> implements UserDAO {
private List<AccountPolicy> getAccountPolicies(final User user) {
List<AccountPolicy> policies = new ArrayList<>();
- // add resource policies
- for (ExternalResource resource : findAllResources(user)) {
- AccountPolicy policy = resource.getAccountPolicy();
- if (policy != null) {
- policies.add(policy);
- }
- }
+ // add resource policies
+ findAllResources(user).stream().
+ map(resource -> resource.getAccountPolicy()).
+ filter(policy -> policy != null).
+ forEachOrdered(policy -> policies.add(policy));
// add realm policies
- for (Realm realm : realmDAO().findAncestors(user.getRealm())) {
- AccountPolicy policy = realm.getAccountPolicy();
- if (policy != null) {
- policies.add(policy);
- }
- }
+ realmDAO().findAncestors(user.getRealm()).stream().
+ map(realm -> realm.getAccountPolicy()).
+ filter(policy -> policy != null).
+ forEachOrdered(policy -> policies.add(policy));
return policies;
}
@@ -316,7 +304,7 @@ public class JPAUserDAO extends AbstractAnyDAO<User> implements UserDAO {
throw new PasswordPolicyException("Password mandatory");
}
- for (PasswordRuleConf ruleConf : policy.getRuleConfs()) {
+ policy.getRuleConfs().forEach(ruleConf -> {
Class<? extends PasswordRule> ruleClass =
implementationLookup.getPasswordRuleClass(ruleConf.getClass());
if (ruleClass == null) {
@@ -337,7 +325,7 @@ public class JPAUserDAO extends AbstractAnyDAO<User> implements UserDAO {
// enforce rule
rule.enforce(ruleConf, user);
}
- }
+ });
if (user.verifyPasswordHistory(user.getClearPassword(), policy.getHistoryLength())) {
throw new PasswordPolicyException("Password value was used in the past: not allowed");
@@ -384,7 +372,7 @@ public class JPAUserDAO extends AbstractAnyDAO<User> implements UserDAO {
}
for (AccountPolicy policy : getAccountPolicies(user)) {
- for (AccountRuleConf ruleConf : policy.getRuleConfs()) {
+ policy.getRuleConfs().forEach(ruleConf -> {
Class<? extends AccountRule> ruleClass =
implementationLookup.getAccountRuleClass(ruleConf.getClass());
if (ruleClass == null) {
@@ -405,7 +393,7 @@ public class JPAUserDAO extends AbstractAnyDAO<User> implements UserDAO {
// enforce rule
rule.enforce(ruleConf, user);
}
- }
+ });
suspend |= user.getFailedLogins() != null && policy.getMaxAuthenticationAttempts() > 0
&& user.getFailedLogins() > policy.getMaxAuthenticationAttempts() && !user.isSuspended();
@@ -467,85 +455,82 @@ public class JPAUserDAO extends AbstractAnyDAO<User> implements UserDAO {
@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = true)
@Override
public Collection<Role> findAllRoles(final User user) {
- return CollectionUtils.union(user.getRoles(), findDynRoles(user.getKey()));
+ Set<Role> result = new HashSet<>();
+ result.addAll(user.getRoles());
+ result.addAll(findDynRoles(user.getKey()));
+
+ return result;
}
@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = true)
@Override
+ @SuppressWarnings("unchecked")
public List<Role> findDynRoles(final String key) {
Query query = entityManager().createNativeQuery(
"SELECT role_id FROM " + JPARoleDAO.DYNMEMB_TABLE + " WHERE any_id=?");
query.setParameter(1, key);
List<Role> result = new ArrayList<>();
- for (Object resultKey : query.getResultList()) {
- String actualKey = resultKey instanceof Object[]
- ? (String) ((Object[]) resultKey)[0]
- : ((String) resultKey);
-
- Role role = roleDAO.find(actualKey);
- if (role == null) {
- LOG.error("Could not find role with id {}, even though returned by the native query", actualKey);
- } else if (!result.contains(role)) {
- result.add(role);
- }
- }
+ query.getResultList().stream().map(resultKey -> resultKey instanceof Object[]
+ ? (String) ((Object[]) resultKey)[0]
+ : ((String) resultKey)).
+ forEachOrdered(actualKey -> {
+ Role role = roleDAO.find(actualKey.toString());
+ if (role == null) {
+ LOG.error("Could not find role with id {}, even though returned by the native query",
+ actualKey);
+ } else if (!result.contains(role)) {
+ result.add(role);
+ }
+ });
return result;
}
@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = true)
@Override
+ @SuppressWarnings("unchecked")
public List<Group> findDynGroups(final String key) {
Query query = entityManager().createNativeQuery(
"SELECT group_id FROM " + JPAGroupDAO.UDYNMEMB_TABLE + " WHERE any_id=?");
query.setParameter(1, key);
List<Group> result = new ArrayList<>();
- for (Object resultKey : query.getResultList()) {
- String actualKey = resultKey instanceof Object[]
- ? (String) ((Object[]) resultKey)[0]
- : ((String) resultKey);
-
- Group group = groupDAO().find(actualKey);
- if (group == null) {
- LOG.error("Could not find group with id {}, even though returned by the native query", actualKey);
- } else if (!result.contains(group)) {
- result.add(group);
- }
- }
+ query.getResultList().stream().map(resultKey -> resultKey instanceof Object[]
+ ? (String) ((Object[]) resultKey)[0]
+ : ((String) resultKey)).
+ forEachOrdered(actualKey -> {
+ Group group = groupDAO().find(actualKey.toString());
+ if (group == null) {
+ LOG.error("Could not find group with id {}, even though returned by the native query",
+ actualKey);
+ } else if (!result.contains(group)) {
+ result.add(group);
+ }
+ });
return result;
}
@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = true)
@Override
public Collection<Group> findAllGroups(final User user) {
- return CollectionUtils.union(
- CollectionUtils.collect(user.getMemberships(), new Transformer<UMembership, Group>() {
+ Set<Group> result = new HashSet<>();
+ result.addAll(user.getMemberships().stream().
+ map(membership -> membership.getRightEnd()).collect(Collectors.toSet()));
+ result.addAll(findDynGroups(user.getKey()));
- @Override
- public Group transform(final UMembership input) {
- return input.getRightEnd();
- }
- }, new ArrayList<Group>()),
- findDynGroups(user.getKey()));
+ return result;
}
@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = true)
@Override
public Collection<String> findAllGroupKeys(final User user) {
- return CollectionUtils.collect(findAllGroups(user), EntityUtils.<Group>keyTransformer());
+ return findAllGroups(user).stream().map(Entity::getKey).collect(Collectors.toList());
}
@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = true)
@Override
public Collection<String> findAllGroupNames(final User user) {
- return CollectionUtils.collect(findAllGroups(user), new Transformer<Group, String>() {
-
- @Override
- public String transform(final Group input) {
- return input.getName();
- }
- });
+ return findAllGroups(user).stream().map(Group::getName).collect(Collectors.toList());
}
@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = true)
@@ -553,9 +538,7 @@ public class JPAUserDAO extends AbstractAnyDAO<User> implements UserDAO {
public Collection<ExternalResource> findAllResources(final User user) {
Set<ExternalResource> result = new HashSet<>();
result.addAll(user.getResources());
- for (Group group : findAllGroups(user)) {
- result.addAll(group.getResources());
- }
+ findAllGroups(user).forEach(group -> result.addAll(group.getResources()));
return result;
}
@@ -563,7 +546,7 @@ public class JPAUserDAO extends AbstractAnyDAO<User> implements UserDAO {
@Transactional(readOnly = true)
@Override
public Collection<String> findAllResourceKeys(final String key) {
- return CollectionUtils.collect(findAllResources(authFind(key)), EntityUtils.keyTransformer());
+ return findAllResources(authFind(key)).stream().map(resource -> resource.getKey()).collect(Collectors.toList());
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractGroupableRelatable.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractGroupableRelatable.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractGroupableRelatable.java
index a2a41fa..4fe46e6 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractGroupableRelatable.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractGroupableRelatable.java
@@ -18,12 +18,10 @@
*/
package org.apache.syncope.core.persistence.jpa.entity;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
+import java.util.Optional;
+import java.util.stream.Collectors;
import org.apache.syncope.core.persistence.api.entity.Any;
import org.apache.syncope.core.persistence.api.entity.GroupablePlainAttr;
import org.apache.syncope.core.persistence.api.entity.Membership;
@@ -49,110 +47,68 @@ public abstract class AbstractGroupableRelatable<
}
@Override
- public P getPlainAttr(final String plainSchemaName) {
- return IterableUtils.find(internalGetPlainAttrs(), new Predicate<P>() {
-
- @Override
- public boolean evaluate(final P plainAttr) {
- return plainAttr != null && plainAttr.getSchema() != null
- && plainAttr.getMembership() == null
- && plainSchemaName.equals(plainAttr.getSchema().getKey());
- }
- });
+ public Optional<? extends P> getPlainAttr(final String plainSchema) {
+ return internalGetPlainAttrs().stream().filter(plainAttr
+ -> plainAttr != null && plainAttr.getSchema() != null && plainAttr.getMembership() == null
+ && plainSchema.equals(plainAttr.getSchema().getKey())).findFirst();
}
@Override
- public P getPlainAttr(final String plainSchemaName, final Membership<?> membership) {
- return IterableUtils.find(internalGetPlainAttrs(), new Predicate<P>() {
-
- @Override
- public boolean evaluate(final P plainAttr) {
- return plainAttr != null && plainAttr.getSchema() != null
- && plainAttr.getMembership() != null && plainAttr.getMembership().equals(membership)
- && plainSchemaName.equals(plainAttr.getSchema().getKey());
- }
- });
+ public Optional<? extends P> getPlainAttr(final String plainSchema, final Membership<?> membership) {
+ return internalGetPlainAttrs().stream().filter(plainAttr
+ -> plainAttr != null && plainAttr.getSchema() != null
+ && plainAttr.getMembership() != null && plainAttr.getMembership().equals(membership)
+ && plainSchema.equals(plainAttr.getSchema().getKey())).findFirst();
}
@Override
public List<? extends P> getPlainAttrs() {
- return CollectionUtils.select(internalGetPlainAttrs(), new Predicate<P>() {
-
- @Override
- public boolean evaluate(final P plainAttr) {
- return plainAttr != null && plainAttr.getSchema() != null
- && plainAttr.getMembership() == null;
- }
- }, new ArrayList<P>());
+ return internalGetPlainAttrs().stream().filter(plainAttr
+ -> plainAttr != null && plainAttr.getSchema() != null && plainAttr.getMembership() == null).
+ collect(Collectors.toList());
}
@Override
- public Collection<? extends P> getPlainAttrs(final String plainSchemaName) {
- return CollectionUtils.select(internalGetPlainAttrs(), new Predicate<P>() {
-
- @Override
- public boolean evaluate(final P plainAttr) {
- return plainAttr != null && plainAttr.getSchema() != null
- && plainSchemaName.equals(plainAttr.getSchema().getKey());
- }
- });
+ public Collection<? extends P> getPlainAttrs(final String plainSchema) {
+ return internalGetPlainAttrs().stream().filter(plainAttr
+ -> plainAttr != null && plainAttr.getSchema() != null
+ && plainSchema.equals(plainAttr.getSchema().getKey())).
+ collect(Collectors.toList());
}
@Override
public Collection<? extends P> getPlainAttrs(final Membership<?> membership) {
- return CollectionUtils.select(internalGetPlainAttrs(), new Predicate<P>() {
-
- @Override
- public boolean evaluate(final P plainAttr) {
- return plainAttr != null && plainAttr.getSchema() != null
- && membership.equals(plainAttr.getMembership());
- }
- });
+ return internalGetPlainAttrs().stream().filter(plainAttr
+ -> plainAttr != null && plainAttr.getSchema() != null
+ && membership.equals(plainAttr.getMembership())).
+ collect(Collectors.toList());
}
@Override
- public M getMembership(final String groupKey) {
- return IterableUtils.find(getMemberships(), new Predicate<M>() {
-
- @Override
- public boolean evaluate(final M membership) {
- return groupKey != null && groupKey.equals(membership.getRightEnd().getKey());
- }
- });
+ public Optional<? extends M> getMembership(final String groupKey) {
+ return getMemberships().stream().filter(membership
+ -> groupKey != null && groupKey.equals(membership.getRightEnd().getKey())).findFirst();
}
@Override
- public REL getRelationship(final RelationshipType relationshipType, final String otherEndKey) {
- return IterableUtils.find(getRelationships(), new Predicate<REL>() {
-
- @Override
- public boolean evaluate(final REL relationship) {
- return otherEndKey != null && otherEndKey.equals(relationship.getRightEnd().getKey())
- && ((relationshipType == null && relationship.getType() == null)
- || (relationshipType != null && relationshipType.equals(relationship.getType())));
- }
- });
+ public Optional<? extends REL> getRelationship(final RelationshipType relationshipType, final String otherEndKey) {
+ return getRelationships().stream().filter(relationship
+ -> otherEndKey != null && otherEndKey.equals(relationship.getRightEnd().getKey())
+ && ((relationshipType == null && relationship.getType() == null)
+ || (relationshipType != null && relationshipType.equals(relationship.getType())))).findFirst();
}
@Override
public Collection<? extends REL> getRelationships(final RelationshipType relationshipType) {
- return CollectionUtils.select(getRelationships(), new Predicate<REL>() {
-
- @Override
- public boolean evaluate(final REL relationship) {
- return relationshipType != null && relationshipType.equals(relationship.getType());
- }
- });
+ return getRelationships().stream().filter(relationship
+ -> relationshipType != null && relationshipType.equals(relationship.getType())).
+ collect(Collectors.toList());
}
@Override
public Collection<? extends REL> getRelationships(final String otherEndKey) {
- return CollectionUtils.select(getRelationships(), new Predicate<REL>() {
-
- @Override
- public boolean evaluate(final REL relationship) {
- return otherEndKey != null && otherEndKey.equals(relationship.getRightEnd().getKey());
- }
- });
+ return getRelationships().stream().filter(relationship
+ -> otherEndKey != null && otherEndKey.equals(relationship.getRightEnd().getKey())).
+ collect(Collectors.toList());
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttr.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttr.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttr.java
index cf210e8..0070fde 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttr.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttr.java
@@ -18,17 +18,15 @@
*/
package org.apache.syncope.core.persistence.jpa.entity;
-import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import java.util.stream.Collectors;
import javax.persistence.Column;
import javax.persistence.EntityListeners;
import javax.persistence.FetchType;
import javax.persistence.ManyToOne;
import javax.persistence.MappedSuperclass;
import javax.validation.constraints.NotNull;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
import org.apache.syncope.core.persistence.api.entity.Any;
import org.apache.syncope.core.persistence.api.entity.AnyUtils;
import org.apache.syncope.core.persistence.api.entity.PlainAttr;
@@ -104,13 +102,7 @@ public abstract class AbstractPlainAttr<O extends Any<?>> extends AbstractGenera
public List<String> getValuesAsStrings() {
List<String> result;
if (getUniqueValue() == null) {
- result = CollectionUtils.collect(getValues(), new Transformer<PlainAttrValue, String>() {
-
- @Override
- public String transform(final PlainAttrValue input) {
- return input.getValueAsString();
- }
- }, new ArrayList<String>());
+ result = getValues().stream().map(value -> value.getValueAsString()).collect(Collectors.toList());
} else {
result = Collections.singletonList(getUniqueValue().getValueAsString());
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAConnInstance.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAConnInstance.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAConnInstance.java
index fb5b88e..8feb82d 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAConnInstance.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAConnInstance.java
@@ -20,6 +20,7 @@ package org.apache.syncope.core.persistence.jpa.entity;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -37,7 +38,6 @@ import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
-import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.types.ConnConfProperty;
import org.apache.syncope.common.lib.types.ConnectorCapability;
@@ -185,7 +185,7 @@ public class JPAConnInstance extends AbstractGeneratedKeyEntity implements ConnI
public Set<ConnConfProperty> getConf() {
Set<ConnConfProperty> configuration = new HashSet<>();
if (!StringUtils.isBlank(jsonConf)) {
- CollectionUtils.addAll(configuration, POJOHelper.deserialize(jsonConf, ConnConfProperty[].class));
+ configuration.addAll(Arrays.asList(POJOHelper.deserialize(jsonConf, ConnConfProperty[].class)));
}
return configuration;
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPANotification.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPANotification.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPANotification.java
index 0c2d9f8..bd9a148 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPANotification.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPANotification.java
@@ -20,6 +20,7 @@ package org.apache.syncope.core.persistence.jpa.entity;
import java.util.ArrayList;
import java.util.List;
+import java.util.Optional;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.CollectionTable;
@@ -36,8 +37,6 @@ import javax.persistence.Table;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.common.lib.types.TraceLevel;
import org.apache.syncope.core.persistence.api.entity.AnyAbout;
import org.apache.syncope.core.persistence.api.entity.AnyType;
@@ -153,14 +152,8 @@ public class JPANotification extends AbstractGeneratedKeyEntity implements Notif
}
@Override
- public AnyAbout getAbout(final AnyType anyType) {
- return IterableUtils.find(abouts, new Predicate<AnyAbout>() {
-
- @Override
- public boolean evaluate(final AnyAbout about) {
- return anyType != null && anyType.equals(about.getAnyType());
- }
- });
+ public Optional<? extends AnyAbout> getAbout(final AnyType anyType) {
+ return abouts.stream().filter(about -> anyType != null && anyType.equals(about.getAnyType())).findFirst();
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPARealm.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPARealm.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPARealm.java
index 5bcb6fe..e919910 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPARealm.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPARealm.java
@@ -21,7 +21,9 @@ 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 java.util.stream.Collectors;
import javax.persistence.Cacheable;
import javax.persistence.CascadeType;
import javax.persistence.CollectionTable;
@@ -37,12 +39,8 @@ import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
import javax.validation.constraints.Size;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.SyncopeConstants;
-import org.apache.syncope.core.persistence.api.entity.AnyTemplate;
import org.apache.syncope.core.persistence.api.entity.AnyTemplateRealm;
import org.apache.syncope.core.persistence.api.entity.AnyType;
import org.apache.syncope.core.persistence.api.entity.policy.AccountPolicy;
@@ -53,7 +51,6 @@ import org.apache.syncope.core.persistence.jpa.entity.policy.JPAAccountPolicy;
import org.apache.syncope.core.persistence.jpa.entity.policy.JPAPasswordPolicy;
import org.apache.syncope.core.persistence.jpa.entity.resource.JPAExternalResource;
import org.apache.syncope.core.persistence.jpa.validation.entity.RealmCheck;
-import org.apache.syncope.core.provisioning.api.utils.EntityUtils;
@Entity
@Table(name = JPARealm.TABLE, uniqueConstraints =
@@ -157,14 +154,10 @@ public class JPARealm extends AbstractGeneratedKeyEntity implements Realm {
}
@Override
- public AnyTemplateRealm getTemplate(final AnyType anyType) {
- return IterableUtils.find(templates, new Predicate<AnyTemplate>() {
-
- @Override
- public boolean evaluate(final AnyTemplate template) {
- return anyType != null && anyType.equals(template.getAnyType());
- }
- });
+ public Optional<? extends AnyTemplateRealm> getTemplate(final AnyType anyType) {
+ return templates.stream().
+ filter(template -> anyType != null && anyType.equals(template.getAnyType())).
+ findFirst();
}
@Override
@@ -180,8 +173,7 @@ public class JPARealm extends AbstractGeneratedKeyEntity implements Realm {
@Override
public List<String> getResourceKeys() {
- return CollectionUtils.collect(
- getResources(), EntityUtils.<ExternalResource>keyTransformer(), new ArrayList<String>());
+ return getResources().stream().map(resource -> resource.getKey()).collect(Collectors.toList());
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAReport.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAReport.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAReport.java
index 73606cc..a048ef4 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAReport.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAReport.java
@@ -20,6 +20,7 @@ package org.apache.syncope.core.persistence.jpa.entity;
import java.util.ArrayList;
import java.util.List;
+import java.util.stream.Collectors;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
@@ -32,8 +33,6 @@ import javax.persistence.Table;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
import org.apache.syncope.common.lib.report.ReportletConf;
import org.apache.syncope.core.persistence.api.entity.Report;
import org.apache.syncope.core.persistence.api.entity.ReportExec;
@@ -111,13 +110,7 @@ public class JPAReport extends AbstractGeneratedKeyEntity implements Report {
@Override
public List<ReportletConf> getReportletConfs() {
- return CollectionUtils.collect(reportletConfs, new Transformer<JPAReportletConfInstance, ReportletConf>() {
-
- @Override
- public ReportletConf transform(final JPAReportletConfInstance input) {
- return input.getInstance();
- }
- }, new ArrayList<ReportletConf>());
+ return reportletConfs.stream().map(input -> input.getInstance()).collect(Collectors.toList());
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAConf.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAConf.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAConf.java
index d592394..b84330b 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAConf.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAConf.java
@@ -22,14 +22,13 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
+import java.util.Optional;
import javax.persistence.Cacheable;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.validation.Valid;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.core.persistence.api.entity.AnyType;
import org.apache.syncope.core.persistence.api.entity.AnyTypeClass;
import org.apache.syncope.core.persistence.api.entity.Realm;
@@ -64,15 +63,10 @@ public class JPAConf extends AbstractProvidedKeyEntity implements Conf {
}
@Override
- public CPlainAttr getPlainAttr(final String plainSchemaName) {
- return IterableUtils.find(plainAttrs, new Predicate<CPlainAttr>() {
-
- @Override
- public boolean evaluate(final CPlainAttr plainAttr) {
- return plainAttr != null && plainAttr.getSchema() != null
- && plainSchemaName.equals(plainAttr.getSchema().getKey());
- }
- });
+ public Optional<? extends CPlainAttr> getPlainAttr(final String plainSchema) {
+ return plainAttrs.stream().filter(plainAttr
+ -> plainAttr != null && plainAttr.getSchema() != null
+ && plainSchema.equals(plainAttr.getSchema().getKey())).findFirst();
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAGroup.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAGroup.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAGroup.java
index fc4fc13..2bddf1c 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAGroup.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAGroup.java
@@ -20,6 +20,7 @@ package org.apache.syncope.core.persistence.jpa.entity.group;
import java.util.ArrayList;
import java.util.List;
+import java.util.Optional;
import javax.persistence.Cacheable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
@@ -34,8 +35,6 @@ import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.core.spring.ApplicationContextProvider;
import org.apache.syncope.core.persistence.api.dao.AnyTypeDAO;
import org.apache.syncope.core.persistence.api.entity.AnyType;
@@ -169,15 +168,10 @@ public class JPAGroup extends AbstractAny<GPlainAttr> implements Group {
}
@Override
- public GPlainAttr getPlainAttr(final String plainSchemaName) {
- return IterableUtils.find(getPlainAttrs(), new Predicate<GPlainAttr>() {
-
- @Override
- public boolean evaluate(final GPlainAttr plainAttr) {
- return plainAttr != null && plainAttr.getSchema() != null
- && plainSchemaName.equals(plainAttr.getSchema().getKey());
- }
- });
+ public Optional<? extends GPlainAttr> getPlainAttr(final String plainSchema) {
+ return getPlainAttrs().stream().filter(plainAttr
+ -> plainAttr != null && plainAttr.getSchema() != null
+ && plainSchema.equals(plainAttr.getSchema().getKey())).findFirst();
}
@Override
@@ -214,14 +208,9 @@ public class JPAGroup extends AbstractAny<GPlainAttr> implements Group {
}
@Override
- public ADynGroupMembership getADynMembership(final AnyType anyType) {
- return IterableUtils.find(aDynMemberships, new Predicate<ADynGroupMembership>() {
-
- @Override
- public boolean evaluate(final ADynGroupMembership dynGroupMembership) {
- return anyType != null && anyType.equals(dynGroupMembership.getAnyType());
- }
- });
+ public Optional<? extends ADynGroupMembership> getADynMembership(final AnyType anyType) {
+ return aDynMemberships.stream().filter(dynGroupMembership
+ -> anyType != null && anyType.equals(dynGroupMembership.getAnyType())).findFirst();
}
@Override
@@ -236,14 +225,9 @@ public class JPAGroup extends AbstractAny<GPlainAttr> implements Group {
}
@Override
- public TypeExtension getTypeExtension(final AnyType anyType) {
- return IterableUtils.find(typeExtensions, new Predicate<TypeExtension>() {
-
- @Override
- public boolean evaluate(final TypeExtension typeExtension) {
- return typeExtension.getAnyType().equals(anyType);
- }
- });
+ public Optional<? extends TypeExtension> getTypeExtension(final AnyType anyType) {
+ return typeExtensions.stream().filter(typeExtension
+ -> typeExtension.getAnyType().equals(anyType)).findFirst();
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAAccountPolicy.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAAccountPolicy.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAAccountPolicy.java
index ef0aeb7..200716d 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAAccountPolicy.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAAccountPolicy.java
@@ -22,6 +22,7 @@ import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import java.util.stream.Collectors;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
@@ -33,10 +34,7 @@ import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
import org.apache.syncope.common.lib.policy.AccountRuleConf;
-import org.apache.syncope.core.provisioning.api.utils.EntityUtils;
import org.apache.syncope.core.persistence.api.entity.policy.AccountPolicy;
import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
import org.apache.syncope.core.persistence.jpa.entity.resource.JPAExternalResource;
@@ -109,13 +107,7 @@ public class JPAAccountPolicy extends AbstractPolicy implements AccountPolicy {
@Override
public List<AccountRuleConf> getRuleConfs() {
- return CollectionUtils.collect(ruleConfs, new Transformer<JPAAccountRuleConfInstance, AccountRuleConf>() {
-
- @Override
- public AccountRuleConf transform(final JPAAccountRuleConfInstance input) {
- return input.getInstance();
- }
- }, new ArrayList<AccountRuleConf>());
+ return ruleConfs.stream().map(input -> input.getInstance()).collect(Collectors.toList());
}
@Override
@@ -130,8 +122,7 @@ public class JPAAccountPolicy extends AbstractPolicy implements AccountPolicy {
}
@Override
- public Set<String> getResourceNames() {
- return CollectionUtils.collect(
- getResources(), EntityUtils.<ExternalResource>keyTransformer(), new HashSet<String>());
+ public Set<String> getResourceKeys() {
+ return getResources().stream().map(resource -> resource.getKey()).collect(Collectors.toSet());
}
}
[08/16] syncope git commit: [SYNCOPE-938] Switching from
commons-collections to Java 8 features
Posted by il...@apache.org.
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAPasswordPolicy.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAPasswordPolicy.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAPasswordPolicy.java
index ba70562..1ea375d 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAPasswordPolicy.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAPasswordPolicy.java
@@ -20,6 +20,7 @@ package org.apache.syncope.core.persistence.jpa.entity.policy;
import java.util.ArrayList;
import java.util.List;
+import java.util.stream.Collectors;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
@@ -28,8 +29,6 @@ import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
import org.apache.syncope.common.lib.policy.PasswordRuleConf;
import org.apache.syncope.core.persistence.api.entity.policy.PasswordPolicy;
@@ -91,12 +90,6 @@ public class JPAPasswordPolicy extends AbstractPolicy implements PasswordPolicy
@Override
public List<PasswordRuleConf> getRuleConfs() {
- return CollectionUtils.collect(ruleConfs, new Transformer<JPAPasswordRuleConfInstance, PasswordRuleConf>() {
-
- @Override
- public PasswordRuleConf transform(final JPAPasswordRuleConfInstance input) {
- return input.getInstance();
- }
- }, new ArrayList<PasswordRuleConf>());
+ return ruleConfs.stream().map(input -> input.getInstance()).collect(Collectors.toList());
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAExternalResource.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAExternalResource.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAExternalResource.java
index 30462ce..511b586 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAExternalResource.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAExternalResource.java
@@ -19,8 +19,10 @@
package org.apache.syncope.core.persistence.jpa.entity.resource;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
+import java.util.Optional;
import java.util.Set;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
@@ -40,9 +42,6 @@ import javax.persistence.Table;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.types.ConnConfProperty;
import org.apache.syncope.common.lib.types.ConnectorCapability;
@@ -208,25 +207,13 @@ public class JPAExternalResource extends AbstractProvidedKeyEntity implements Ex
}
@Override
- public Provision getProvision(final ObjectClass objectClass) {
- return IterableUtils.find(provisions, new Predicate<Provision>() {
-
- @Override
- public boolean evaluate(final Provision provision) {
- return provision.getObjectClass().equals(objectClass);
- }
- });
+ public Optional<? extends Provision> getProvision(final ObjectClass objectClass) {
+ return provisions.stream().filter(provision -> provision.getObjectClass().equals(objectClass)).findFirst();
}
@Override
- public Provision getProvision(final AnyType anyType) {
- return IterableUtils.find(provisions, new Predicate<Provision>() {
-
- @Override
- public boolean evaluate(final Provision provision) {
- return provision.getAnyType().equals(anyType);
- }
- });
+ public Optional<? extends Provision> getProvision(final AnyType anyType) {
+ return provisions.stream().filter(provision -> provision.getAnyType().equals(anyType)).findFirst();
}
@Override
@@ -343,7 +330,7 @@ public class JPAExternalResource extends AbstractProvidedKeyEntity implements Ex
public Set<ConnConfProperty> getConfOverride() {
Set<ConnConfProperty> confOverride = new HashSet<>();
if (!StringUtils.isBlank(jsonConf)) {
- CollectionUtils.addAll(confOverride, POJOHelper.deserialize(jsonConf, ConnConfProperty[].class));
+ confOverride.addAll(Arrays.asList(POJOHelper.deserialize(jsonConf, ConnConfProperty[].class)));
}
return confOverride;
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAMapping.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAMapping.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAMapping.java
index bac3955..d0d6ede 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAMapping.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAMapping.java
@@ -20,6 +20,7 @@ package org.apache.syncope.core.persistence.jpa.entity.resource;
import java.util.ArrayList;
import java.util.List;
+import java.util.Optional;
import javax.persistence.Cacheable;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
@@ -27,8 +28,6 @@ import javax.persistence.FetchType;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.core.persistence.api.entity.resource.Mapping;
import org.apache.syncope.core.persistence.api.entity.resource.MappingItem;
import org.apache.syncope.core.persistence.api.entity.resource.Provision;
@@ -77,14 +76,8 @@ public class JPAMapping extends AbstractGeneratedKeyEntity implements Mapping {
}
@Override
- public MappingItem getConnObjectKeyItem() {
- return IterableUtils.find(getItems(), new Predicate<MappingItem>() {
-
- @Override
- public boolean evaluate(final MappingItem item) {
- return item.isConnObjectKey();
- }
- });
+ public Optional<? extends MappingItem> getConnObjectKeyItem() {
+ return getItems().stream().filter(MappingItem::isConnObjectKey).findFirst();
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAOrgUnit.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAOrgUnit.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAOrgUnit.java
index ab4398d..6a76358 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAOrgUnit.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAOrgUnit.java
@@ -20,6 +20,7 @@ package org.apache.syncope.core.persistence.jpa.entity.resource;
import java.util.ArrayList;
import java.util.List;
+import java.util.Optional;
import javax.persistence.Cacheable;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
@@ -29,8 +30,6 @@ import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
import org.apache.syncope.core.persistence.api.entity.resource.OrgUnitItem;
import org.apache.syncope.core.persistence.api.entity.resource.OrgUnit;
@@ -125,14 +124,8 @@ public class JPAOrgUnit extends AbstractGeneratedKeyEntity implements OrgUnit {
}
@Override
- public OrgUnitItem getConnObjectKeyItem() {
- return IterableUtils.find(getItems(), new Predicate<OrgUnitItem>() {
-
- @Override
- public boolean evaluate(final OrgUnitItem item) {
- return item.isConnObjectKey();
- }
- });
+ public Optional<? extends OrgUnitItem> getConnObjectKeyItem() {
+ return getItems().stream().filter(OrgUnitItem::isConnObjectKey).findFirst();
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPropagationTask.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPropagationTask.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPropagationTask.java
index 7b415ff..ce029d8 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPropagationTask.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPropagationTask.java
@@ -18,6 +18,7 @@
*/
package org.apache.syncope.core.persistence.jpa.entity.task;
+import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.DiscriminatorValue;
@@ -26,7 +27,6 @@ import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
-import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.common.lib.types.ResourceOperation;
@@ -113,7 +113,7 @@ public class JPAPropagationTask extends AbstractTask implements PropagationTask
public Set<Attribute> getAttributes() {
Set<Attribute> result = new HashSet<>();
if (StringUtils.isNotBlank(this.attributes)) {
- CollectionUtils.addAll(result, POJOHelper.deserialize(this.attributes, Attribute[].class));
+ result.addAll(Arrays.asList(POJOHelper.deserialize(this.attributes, Attribute[].class)));
}
return result;
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPullTask.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPullTask.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPullTask.java
index 7dca06c..54f70cf 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPullTask.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPullTask.java
@@ -21,6 +21,7 @@ package org.apache.syncope.core.persistence.jpa.entity.task;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
+import java.util.Optional;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.CollectionTable;
@@ -35,12 +36,9 @@ import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.validation.constraints.NotNull;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.common.lib.types.PullMode;
import org.apache.syncope.core.persistence.api.entity.AnyType;
import org.apache.syncope.core.persistence.api.entity.Realm;
-import org.apache.syncope.core.persistence.api.entity.AnyTemplate;
import org.apache.syncope.core.persistence.jpa.entity.JPARealm;
import org.apache.syncope.core.persistence.api.entity.task.PullTask;
import org.apache.syncope.core.persistence.api.entity.task.AnyTemplatePullTask;
@@ -113,14 +111,10 @@ public class JPAPullTask extends AbstractProvisioningTask implements PullTask {
}
@Override
- public AnyTemplatePullTask getTemplate(final AnyType anyType) {
- return IterableUtils.find(templates, new Predicate<AnyTemplate>() {
-
- @Override
- public boolean evaluate(final AnyTemplate template) {
- return anyType != null && anyType.equals(template.getAnyType());
- }
- });
+ public Optional<? extends AnyTemplatePullTask> getTemplate(final AnyType anyType) {
+ return templates.stream().
+ filter(template -> anyType != null && anyType.equals(template.getAnyType())).
+ findFirst();
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPushTask.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPushTask.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPushTask.java
index 1ef12a4..efa84b7 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPushTask.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPushTask.java
@@ -21,6 +21,7 @@ package org.apache.syncope.core.persistence.jpa.entity.task;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
+import java.util.Optional;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.CollectionTable;
@@ -32,8 +33,6 @@ import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.core.persistence.api.entity.AnyType;
import org.apache.syncope.core.persistence.api.entity.Realm;
import org.apache.syncope.core.persistence.api.entity.task.PushTask;
@@ -82,14 +81,8 @@ public class JPAPushTask extends AbstractProvisioningTask implements PushTask {
}
@Override
- public PushTaskAnyFilter getFilter(final AnyType anyType) {
- return IterableUtils.find(filters, new Predicate<PushTaskAnyFilter>() {
-
- @Override
- public boolean evaluate(final PushTaskAnyFilter filter) {
- return anyType != null && anyType.equals(filter.getAnyType());
- }
- });
+ public Optional<? extends PushTaskAnyFilter> getFilter(final AnyType anyType) {
+ return filters.stream().filter(filter -> anyType != null && anyType.equals(filter.getAnyType())).findFirst();
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAUser.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAUser.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAUser.java
index 0dddb77..dcf205e 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAUser.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAUser.java
@@ -374,7 +374,7 @@ public class JPAUser
@Override
public Integer getFailedLogins() {
- return failedLogins == null ? Integer.valueOf(0) : failedLogins;
+ return failedLogins == null ? 0 : failedLogins;
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/spring/DomainTransactionInterceptor.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/spring/DomainTransactionInterceptor.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/spring/DomainTransactionInterceptor.java
index 691f5e4..7d8883a 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/spring/DomainTransactionInterceptor.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/spring/DomainTransactionInterceptor.java
@@ -43,18 +43,14 @@ public class DomainTransactionInterceptor extends TransactionInterceptor {
public TransactionAttributeSource getTransactionAttributeSource() {
final TransactionAttributeSource origTxAttrSource = super.getTransactionAttributeSource();
- return new TransactionAttributeSource() {
+ return (final Method method, final Class<?> targetClass) -> {
+ TransactionAttribute txAttr = origTxAttrSource.getTransactionAttribute(method, targetClass);
- @Override
- public TransactionAttribute getTransactionAttribute(final Method method, final Class<?> targetClass) {
- TransactionAttribute txAttr = origTxAttrSource.getTransactionAttribute(method, targetClass);
-
- if (txAttr instanceof DefaultTransactionAttribute) {
- ((DefaultTransactionAttribute) txAttr).setQualifier(AuthContextUtils.getDomain());
- }
-
- return txAttr;
+ if (txAttr instanceof DefaultTransactionAttribute) {
+ ((DefaultTransactionAttribute) txAttr).setQualifier(AuthContextUtils.getDomain());
}
+
+ return txAttr;
};
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/ExternalResourceValidator.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/ExternalResourceValidator.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/ExternalResourceValidator.java
index 719a240..5bedb07 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/ExternalResourceValidator.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/ExternalResourceValidator.java
@@ -22,8 +22,6 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
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.AnyType;
import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
@@ -31,7 +29,6 @@ import org.apache.syncope.core.persistence.api.entity.resource.Item;
import org.apache.syncope.core.persistence.api.entity.resource.Mapping;
import org.apache.syncope.core.persistence.api.entity.resource.MappingItem;
import org.apache.syncope.core.persistence.api.entity.resource.OrgUnit;
-import org.apache.syncope.core.persistence.api.entity.resource.Provision;
import org.apache.syncope.core.provisioning.api.propagation.PropagationActions;
import org.identityconnectors.framework.common.objects.ObjectClass;
import org.apache.syncope.core.provisioning.api.data.ItemTransformer;
@@ -39,13 +36,7 @@ import org.apache.syncope.core.provisioning.api.data.ItemTransformer;
public class ExternalResourceValidator extends AbstractValidator<ExternalResourceCheck, ExternalResource> {
private boolean isValid(final List<? extends Item> items, final ConstraintValidatorContext context) {
- long connObjectKeys = IterableUtils.countMatches(items, new Predicate<Item>() {
-
- @Override
- public boolean evaluate(final Item item) {
- return item.isConnObjectKey();
- }
- });
+ long connObjectKeys = items.stream().filter(Item::isConnObjectKey).count();
if (connObjectKeys != 1) {
context.buildConstraintViolationWithTemplate(
getTemplate(EntityViolationType.InvalidMapping, "Single ConnObjectKey mapping is required")).
@@ -94,13 +85,7 @@ public class ExternalResourceValidator extends AbstractValidator<ExternalResourc
boolean isValid = true;
- long passwords = IterableUtils.countMatches(mapping.getItems(), new Predicate<MappingItem>() {
-
- @Override
- public boolean evaluate(final MappingItem item) {
- return item.isPassword();
- }
- });
+ long passwords = mapping.getItems().stream().filter(MappingItem::isPassword).count();
if (passwords > 1) {
context.buildConstraintViolationWithTemplate(
getTemplate(EntityViolationType.InvalidMapping, "One password mapping is allowed at most")).
@@ -144,16 +129,12 @@ public class ExternalResourceValidator extends AbstractValidator<ExternalResourc
final Set<AnyType> anyTypes = new HashSet<>();
final Set<String> objectClasses = new HashSet<>();
- boolean validMappings = IterableUtils.matchesAll(resource.getProvisions(), new Predicate<Provision>() {
-
- @Override
- public boolean evaluate(final Provision provision) {
- anyTypes.add(provision.getAnyType());
- if (provision.getObjectClass() != null) {
- objectClasses.add(provision.getObjectClass().getObjectClassValue());
- }
- return isValid(provision.getMapping(), context);
+ boolean validMappings = resource.getProvisions().stream().allMatch(provision -> {
+ anyTypes.add(provision.getAnyType());
+ if (provision.getObjectClass() != null) {
+ objectClasses.add(provision.getObjectClass().getObjectClassValue());
}
+ return isValid(provision.getMapping(), context);
});
validMappings &= isValid(resource.getOrgUnit(), context);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/ReportValidator.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/ReportValidator.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/ReportValidator.java
index e05dee8..b6cfd26 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/ReportValidator.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/ReportValidator.java
@@ -19,11 +19,9 @@
package org.apache.syncope.core.persistence.jpa.validation.entity;
import java.text.ParseException;
-import java.util.HashSet;
import java.util.Set;
+import java.util.stream.Collectors;
import javax.validation.ConstraintValidatorContext;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
import org.apache.syncope.common.lib.report.ReportletConf;
import org.apache.syncope.common.lib.types.EntityViolationType;
import org.apache.syncope.core.persistence.api.entity.Report;
@@ -50,14 +48,8 @@ public class ReportValidator extends AbstractValidator<ReportCheck, Report> {
}
}
- Set<String> reportletNames = CollectionUtils.collect(object.getReportletConfs(),
- new Transformer<ReportletConf, String>() {
-
- @Override
- public String transform(final ReportletConf input) {
- return input.getName();
- }
- }, new HashSet<String>());
+ Set<String> reportletNames = object.getReportletConfs().stream().
+ map(ReportletConf::getName).collect(Collectors.toSet());
if (reportletNames.size() != object.getReportletConfs().size()) {
LOG.error("Reportlet name must be unique");
isValid = false;
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnySearchTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnySearchTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnySearchTest.java
index 1ba9913..a6bcf52 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnySearchTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnySearchTest.java
@@ -25,11 +25,9 @@ import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
+import java.util.stream.Collectors;
import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.core.persistence.api.dao.AnyObjectDAO;
@@ -50,8 +48,8 @@ import org.apache.syncope.core.persistence.api.dao.search.AssignableCond;
import org.apache.syncope.core.persistence.api.dao.search.MemberCond;
import org.apache.syncope.core.persistence.api.dao.search.RelationshipCond;
import org.apache.syncope.core.persistence.api.dao.search.RelationshipTypeCond;
-import org.apache.syncope.core.persistence.api.entity.Any;
import org.apache.syncope.core.persistence.api.entity.AnyType;
+import org.apache.syncope.core.persistence.api.entity.Entity;
import org.apache.syncope.core.persistence.api.entity.anyobject.AMembership;
import org.apache.syncope.core.persistence.api.entity.anyobject.AnyObject;
import org.apache.syncope.core.persistence.api.entity.group.Group;
@@ -203,10 +201,7 @@ public class AnySearchTest extends AbstractTest {
assertNotNull(users);
assertEquals(4, users.size());
- Set<String> ids = new HashSet<>(users.size());
- for (User user : users) {
- ids.add(user.getKey());
- }
+ Set<String> ids = users.stream().map(Entity::getKey).collect(Collectors.toSet());
assertTrue(ids.contains("1417acbe-cbf6-4277-9372-e75e04f97000"));
assertTrue(ids.contains("b3cbc78d-32e6-4bd4-92e0-bbe07566a2ee"));
}
@@ -224,10 +219,7 @@ public class AnySearchTest extends AbstractTest {
assertNotNull(users);
assertEquals(4, users.size());
- Set<String> ids = new HashSet<>(users.size());
- for (User user : users) {
- ids.add(user.getKey());
- }
+ Set<String> ids = users.stream().map(Entity::getKey).collect(Collectors.toSet());
assertTrue(ids.contains("1417acbe-cbf6-4277-9372-e75e04f97000"));
assertTrue(ids.contains("b3cbc78d-32e6-4bd4-92e0-bbe07566a2ee"));
}
@@ -484,36 +476,18 @@ public class AnySearchTest extends AbstractTest {
SearchCond.getLeafCond(relationshipTypeCond), SearchCond.getLeafCond(tcond));
assertTrue(searchCondition.isValid());
- List<AnyObject> matching = searchDAO.search(searchCondition, AnyTypeKind.ANY_OBJECT);
- assertNotNull(matching);
- assertEquals(2, matching.size());
- assertTrue(IterableUtils.matchesAny(matching, new Predicate<AnyObject>() {
-
- @Override
- public boolean evaluate(final AnyObject any) {
- return "fc6dbc3a-6c07-4965-8781-921e7401a4a5".equals(any.getKey());
- }
- }));
- assertTrue(IterableUtils.matchesAny(matching, new Predicate<AnyObject>() {
-
- @Override
- public boolean evaluate(final AnyObject any) {
- return "8559d14d-58c2-46eb-a2d4-a7d35161e8f8".equals(any.getKey());
- }
- }));
+ List<AnyObject> anyObjects = searchDAO.search(searchCondition, AnyTypeKind.ANY_OBJECT);
+ assertNotNull(anyObjects);
+ assertEquals(2, anyObjects.size());
+ assertTrue(anyObjects.stream().anyMatch(any -> "fc6dbc3a-6c07-4965-8781-921e7401a4a5".equals(any.getKey())));
+ assertTrue(anyObjects.stream().anyMatch(any -> "8559d14d-58c2-46eb-a2d4-a7d35161e8f8".equals(any.getKey())));
// 2. search for users involved in "neighborhood" relationship
searchCondition = SearchCond.getLeafCond(relationshipTypeCond);
- matching = searchDAO.search(searchCondition, AnyTypeKind.USER);
- assertNotNull(matching);
- assertEquals(1, matching.size());
- assertTrue(IterableUtils.matchesAny(matching, new Predicate<Any<?>>() {
-
- @Override
- public boolean evaluate(final Any<?> any) {
- return "c9b2dec2-00a7-4855-97c0-d854842b4b24".equals(any.getKey());
- }
- }));
+ List<User> users = searchDAO.search(searchCondition, AnyTypeKind.USER);
+ assertNotNull(users);
+ assertEquals(1, users.size());
+ assertTrue(users.stream().anyMatch(any -> "c9b2dec2-00a7-4855-97c0-d854842b4b24".equals(any.getKey())));
}
@Test
@@ -569,20 +543,8 @@ public class AnySearchTest extends AbstractTest {
assertTrue(searchCondition.isValid());
List<Group> groups = searchDAO.search(searchCondition, AnyTypeKind.GROUP);
- assertTrue(IterableUtils.matchesAny(groups, new Predicate<Group>() {
-
- @Override
- public boolean evaluate(final Group group) {
- return "additional".equals(group.getName());
- }
- }));
- assertFalse(IterableUtils.matchesAny(groups, new Predicate<Group>() {
-
- @Override
- public boolean evaluate(final Group group) {
- return "fake".equals(group.getName());
- }
- }));
+ assertTrue(groups.stream().anyMatch(group -> "additional".equals(group.getName())));
+ assertFalse(groups.stream().anyMatch(group -> "fake".equals(group.getName())));
assignableCond = new AssignableCond();
assignableCond.setRealmFullPath("/odd");
@@ -590,13 +552,8 @@ public class AnySearchTest extends AbstractTest {
assertTrue(searchCondition.isValid());
List<AnyObject> anyObjects = searchDAO.search(searchCondition, AnyTypeKind.ANY_OBJECT);
- assertFalse(IterableUtils.matchesAny(anyObjects, new Predicate<AnyObject>() {
-
- @Override
- public boolean evaluate(final AnyObject anyObject) {
- return "9e1d130c-d6a3-48b1-98b3-182477ed0688".equals(anyObject.getKey());
- }
- }));
+ assertFalse(anyObjects.stream().
+ anyMatch(anyObject -> "9e1d130c-d6a3-48b1-98b3-182477ed0688".equals(anyObject.getKey())));
}
@Test
@@ -627,13 +584,7 @@ public class AnySearchTest extends AbstractTest {
List<User> users = searchDAO.search(searchCondition, AnyTypeKind.USER);
assertNotNull(users);
assertEquals(2, users.size());
- assertTrue(IterableUtils.matchesAny(users, new Predicate<User>() {
-
- @Override
- public boolean evaluate(final User user) {
- return "c9b2dec2-00a7-4855-97c0-d854842b4b24".equals(user.getKey());
- }
- }));
+ assertTrue(users.stream().anyMatch(user -> "c9b2dec2-00a7-4855-97c0-d854842b4b24".equals(user.getKey())));
}
@Test
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ConfTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ConfTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ConfTest.java
index 511a359..d72ea14 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ConfTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ConfTest.java
@@ -19,11 +19,11 @@
package org.apache.syncope.core.persistence.jpa.inner;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
+import java.util.Optional;
import org.apache.syncope.common.lib.types.AttrSchemaType;
import org.apache.syncope.common.lib.types.EntityViolationType;
import org.apache.syncope.core.persistence.api.attrvalue.validation.InvalidEntityException;
@@ -49,16 +49,16 @@ public class ConfTest extends AbstractTest {
@Test
public void read() {
- CPlainAttr conf = confDAO.find("selfRegistration.allowed");
- assertNotNull(conf);
- assertTrue(conf.getValues().get(0).getBooleanValue());
+ Optional<? extends CPlainAttr> conf = confDAO.find("selfRegistration.allowed");
+ assertTrue(conf.isPresent());
+ assertTrue(conf.get().getValues().get(0).getBooleanValue());
conf = confDAO.find("authentication.statuses");
- assertNotNull(conf);
- assertEquals(2, conf.getValues().size());
+ assertTrue(conf.isPresent());
+ assertEquals(2, conf.get().getValues().size());
conf = confDAO.find("non.existing");
- assertNull(conf);
+ assertFalse(conf.isPresent());
}
private void add(final CPlainAttr newAttr, final String value) {
@@ -88,8 +88,8 @@ public class ConfTest extends AbstractTest {
add(newConf, "2014-06-20");
confDAO.save(newConf);
- CPlainAttr actual = confDAO.find("useless");
- assertEquals(actual.getValuesAsStrings(), newConf.getValuesAsStrings());
+ Optional<? extends CPlainAttr> actual = confDAO.find("useless");
+ assertEquals(actual.get().getValuesAsStrings(), newConf.getValuesAsStrings());
// 3. update conf
newConf.getValues().clear();
@@ -97,11 +97,11 @@ public class ConfTest extends AbstractTest {
confDAO.save(newConf);
actual = confDAO.find("useless");
- assertEquals(actual.getValuesAsStrings(), newConf.getValuesAsStrings());
+ assertEquals(actual.get().getValuesAsStrings(), newConf.getValuesAsStrings());
// 4. delete conf
confDAO.delete("useless");
- assertNull(confDAO.find("useless"));
+ assertFalse(confDAO.find("useless").isPresent());
}
@Test
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ConnInstanceTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ConnInstanceTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ConnInstanceTest.java
index 5020adb..fd47175 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ConnInstanceTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ConnInstanceTest.java
@@ -26,12 +26,10 @@ import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.io.File;
-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.common.lib.SyncopeConstants;
import org.apache.syncope.common.lib.types.ConnConfPropSchema;
import org.apache.syncope.common.lib.types.ConnConfProperty;
@@ -57,14 +55,9 @@ public class ConnInstanceTest extends AbstractTest {
@Test
public void findAll() {
- List<GrantedAuthority> authorities = CollectionUtils.collect(StandardEntitlement.values(),
- new Transformer<String, GrantedAuthority>() {
-
- @Override
- public GrantedAuthority transform(final String entitlement) {
- return new SyncopeGrantedAuthority(entitlement, SyncopeConstants.ROOT_REALM);
- }
- }, new ArrayList<GrantedAuthority>());
+ List<GrantedAuthority> authorities = StandardEntitlement.values().stream().
+ map(entitlement -> new SyncopeGrantedAuthority(entitlement, SyncopeConstants.ROOT_REALM)).
+ collect(Collectors.toList());
UsernamePasswordAuthenticationToken auth = new UsernamePasswordAuthenticationToken(
new org.springframework.security.core.userdetails.User(
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/GroupTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/GroupTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/GroupTest.java
index c3ef956..6a4057b 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/GroupTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/GroupTest.java
@@ -59,7 +59,7 @@ public class GroupTest extends AbstractTest {
group = groupDAO.findByName("additional");
assertNotNull(group);
assertEquals(1, group.getTypeExtensions().size());
- assertEquals(2, group.getTypeExtension(anyTypeDAO.findUser()).getAuxClasses().size());
+ assertEquals(2, group.getTypeExtension(anyTypeDAO.findUser()).get().getAuxClasses().size());
}
@Test
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/MultitenancyTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/MultitenancyTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/MultitenancyTest.java
index 80077a7..5ca623c 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/MultitenancyTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/MultitenancyTest.java
@@ -23,10 +23,8 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
-import java.util.ArrayList;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.common.lib.types.CipherAlgorithm;
import org.apache.syncope.common.lib.types.StandardEntitlement;
@@ -60,14 +58,9 @@ public class MultitenancyTest extends AbstractTest {
@BeforeClass
public static void setAuthContext() {
- List<GrantedAuthority> authorities = CollectionUtils.collect(StandardEntitlement.values(),
- new Transformer<String, GrantedAuthority>() {
-
- @Override
- public GrantedAuthority transform(final String entitlement) {
- return new SyncopeGrantedAuthority(entitlement, SyncopeConstants.ROOT_REALM);
- }
- }, new ArrayList<GrantedAuthority>());
+ List<GrantedAuthority> authorities = StandardEntitlement.values().stream().
+ map(entitlement -> new SyncopeGrantedAuthority(entitlement, SyncopeConstants.ROOT_REALM)).
+ collect(Collectors.toList());
UsernamePasswordAuthenticationToken auth = new UsernamePasswordAuthenticationToken(
new org.springframework.security.core.userdetails.User(
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/PlainAttrTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/PlainAttrTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/PlainAttrTest.java
index 3eda5ed..c80caaf 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/PlainAttrTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/PlainAttrTest.java
@@ -190,7 +190,7 @@ public class PlainAttrTest extends AbstractTest {
userDAO.save(user);
- UPlainAttr obscure = user.getPlainAttr("obscure");
+ UPlainAttr obscure = user.getPlainAttr("obscure").get();
assertNotNull(obscure);
assertEquals(1, obscure.getValues().size());
assertEquals(Encryptor.getInstance(obscureSchema.getSecretKey()).
@@ -217,10 +217,10 @@ public class PlainAttrTest extends AbstractTest {
userDAO.save(user);
- UPlainAttr obscure = user.getPlainAttr("photo");
- assertNotNull(obscure);
- assertEquals(1, obscure.getValues().size());
- assertTrue(Arrays.equals(bytes, obscure.getValues().get(0).getBinaryValue()));
+ UPlainAttr photo = user.getPlainAttr("photo").get();
+ assertNotNull(photo);
+ assertEquals(1, photo.getValues().size());
+ assertTrue(Arrays.equals(bytes, photo.getValues().get(0).getBinaryValue()));
}
@Test
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/RealmTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/RealmTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/RealmTest.java
index d8d853a..2e8d215 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/RealmTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/RealmTest.java
@@ -26,7 +26,6 @@ import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.common.lib.types.EntityViolationType;
import org.apache.syncope.core.persistence.api.attrvalue.validation.InvalidEntityException;
@@ -93,12 +92,6 @@ public class RealmTest extends AbstractTest {
}
@Test
- public void findDescendants() {
- assertTrue(CollectionUtils.disjunction(realmDAO.findAll(), realmDAO.findDescendants(realmDAO.getRoot())).
- isEmpty());
- }
-
- @Test
public void findAll() {
List<Realm> list = realmDAO.findAll();
assertNotNull(list);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ResourceTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ResourceTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ResourceTest.java
index 9439827..a1fe83e 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ResourceTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ResourceTest.java
@@ -25,12 +25,8 @@ import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import java.util.ArrayList;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.common.lib.types.EntityViolationType;
import org.apache.syncope.common.lib.types.MappingPurpose;
@@ -75,16 +71,11 @@ public class ResourceTest extends AbstractTest {
"net.tirasa.connid.bundles.soap.WebServiceConnector", connector.getConnectorName());
assertEquals("invalid bundle name", "net.tirasa.connid.bundles.soap", connector.getBundleName());
- Mapping mapping = resource.getProvision(anyTypeDAO.findUser()).getMapping();
+ Mapping mapping = resource.getProvision(anyTypeDAO.findUser()).get().getMapping();
assertFalse("no mapping specified", mapping.getItems().isEmpty());
- assertTrue(IterableUtils.matchesAny(mapping.getItems(), new Predicate<MappingItem>() {
-
- @Override
- public boolean evaluate(final MappingItem item) {
- return "7f55b09c-b573-41dc-a9eb-ccd80bd3ea7a".equals(item.getKey());
- }
- }));
+ assertTrue(mapping.getItems().stream().
+ anyMatch(item -> "7f55b09c-b573-41dc-a9eb-ccd80bd3ea7a".equals(item.getKey())));
try {
resourceDAO.authFind("ws-target-resource-1");
@@ -103,14 +94,9 @@ public class ResourceTest extends AbstractTest {
@Test
public void findAll() {
- List<GrantedAuthority> authorities = CollectionUtils.collect(StandardEntitlement.values(),
- new Transformer<String, GrantedAuthority>() {
-
- @Override
- public GrantedAuthority transform(final String entitlement) {
- return new SyncopeGrantedAuthority(entitlement, SyncopeConstants.ROOT_REALM);
- }
- }, new ArrayList<GrantedAuthority>());
+ List<GrantedAuthority> authorities = StandardEntitlement.values().stream().
+ map(entitlement -> new SyncopeGrantedAuthority(entitlement, SyncopeConstants.ROOT_REALM)).
+ collect(Collectors.toList());
UsernamePasswordAuthenticationToken auth = new UsernamePasswordAuthenticationToken(
new org.springframework.security.core.userdetails.User(
@@ -131,8 +117,8 @@ public class ResourceTest extends AbstractTest {
public void getConnObjectKey() {
ExternalResource resource = resourceDAO.find("ws-target-resource-2");
assertNotNull(resource);
- assertEquals("fullname",
- resource.getProvision(anyTypeDAO.findUser()).getMapping().getConnObjectKeyItem().getIntAttrName());
+ assertEquals("fullname", resource.getProvision(anyTypeDAO.findUser()).get().
+ getMapping().getConnObjectKeyItem().get().getIntAttrName());
}
@Test
@@ -165,8 +151,8 @@ public class ResourceTest extends AbstractTest {
assertNotNull(actual);
assertNotNull(actual.getConnector());
- assertNotNull(actual.getProvision(anyTypeDAO.findUser()).getMapping());
- assertFalse(actual.getProvision(anyTypeDAO.findUser()).getMapping().getItems().isEmpty());
+ assertNotNull(actual.getProvision(anyTypeDAO.findUser()).get().getMapping());
+ assertFalse(actual.getProvision(anyTypeDAO.findUser()).get().getMapping().getItems().isEmpty());
assertEquals(Integer.valueOf(2), actual.getPropagationPriority());
}
@@ -335,7 +321,7 @@ public class ResourceTest extends AbstractTest {
ExternalResource actual = resourceDAO.save(resource);
assertNotNull(actual);
- assertEquals(3, actual.getProvision(anyTypeDAO.findUser()).getMapping().getItems().size());
+ assertEquals(3, actual.getProvision(anyTypeDAO.findUser()).get().getMapping().getItems().size());
}
@Test
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/VirSchemaTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/VirSchemaTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/VirSchemaTest.java
index 192ef0f..e6b0410 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/VirSchemaTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/VirSchemaTest.java
@@ -62,7 +62,7 @@ public class VirSchemaTest extends AbstractTest {
@Test
public void save() {
ExternalResource csv = resourceDAO.find("resource-csv");
- Provision provision = csv.getProvision(ObjectClass.ACCOUNT);
+ Provision provision = csv.getProvision(ObjectClass.ACCOUNT).get();
assertNotNull(provision);
VirSchema virSchema = entityFactory.newEntity(VirSchema.class);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/ConfTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/ConfTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/ConfTest.java
index f9bcff1..c5559df 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/ConfTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/ConfTest.java
@@ -53,7 +53,7 @@ public class ConfTest extends AbstractTest {
@Test
public void update() {
- CPlainAttr expireTime = confDAO.find("token.expireTime");
+ CPlainAttr expireTime = confDAO.find("token.expireTime").get();
assertNotNull(expireTime);
long value = expireTime.getValues().get(0).getLongValue();
value++;
@@ -65,7 +65,7 @@ public class ConfTest extends AbstractTest {
confDAO.save(expireTime);
confDAO.flush();
- CPlainAttr actual = confDAO.find("token.expireTime");
+ CPlainAttr actual = confDAO.find("token.expireTime").get();
assertEquals(expireTime, actual);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/GroupTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/GroupTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/GroupTest.java
index fc359e3..bf00361 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/GroupTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/GroupTest.java
@@ -29,9 +29,8 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
+import java.util.stream.Collectors;
import javax.persistence.Query;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.core.persistence.api.attrvalue.validation.InvalidEntityException;
@@ -146,7 +145,7 @@ public class GroupTest extends AbstractTest {
group = groupDAO.findByName("new");
assertNotNull(group);
assertEquals(1, group.getTypeExtensions().size());
- assertEquals(2, group.getTypeExtension(anyTypeDAO.findUser()).getAuxClasses().size());
+ assertEquals(2, group.getTypeExtension(anyTypeDAO.findUser()).get().getAuxClasses().size());
}
@Test
@@ -179,22 +178,23 @@ public class GroupTest extends AbstractTest {
* required for avoiding creating of a new transaction - good for general use case but bad for the way how
* this test class is architected.
*/
- private List<Group> findDynGroups(final User user) {
+ @SuppressWarnings("unchecked")
+ public List<Group> findDynGroups(final User user) {
Query query = entityManager().createNativeQuery(
"SELECT group_id FROM " + JPAGroupDAO.UDYNMEMB_TABLE + " WHERE any_id=?");
query.setParameter(1, user.getKey());
List<Group> result = new ArrayList<>();
- for (Object key : query.getResultList()) {
- String actualKey = key instanceof Object[]
- ? (String) ((Object[]) key)[0]
- : ((String) key);
-
- Group group = groupDAO.find(actualKey);
- if (group != null && !result.contains(group)) {
- result.add(group);
- }
- }
+ query.getResultList().stream().map(resultKey -> resultKey instanceof Object[]
+ ? (String) ((Object[]) resultKey)[0]
+ : ((String) resultKey)).
+ forEachOrdered(actualKey -> {
+ Group group = groupDAO.find(actualKey.toString());
+ if (group == null) {
+ } else if (!result.contains(group)) {
+ result.add(group);
+ }
+ });
return result;
}
@@ -279,22 +279,23 @@ public class GroupTest extends AbstractTest {
* required for avoiding creating of a new transaction - good for general use case but bad for the way how
* this test class is architected.
*/
- private List<Group> findDynGroups(final AnyObject anyObject) {
+ @SuppressWarnings("unchecked")
+ public List<Group> findDynGroups(final AnyObject anyObject) {
Query query = entityManager().createNativeQuery(
"SELECT group_id FROM " + JPAGroupDAO.ADYNMEMB_TABLE + " WHERE any_id=?");
query.setParameter(1, anyObject.getKey());
List<Group> result = new ArrayList<>();
- for (Object key : query.getResultList()) {
- String actualKey = key instanceof Object[]
- ? (String) ((Object[]) key)[0]
- : ((String) key);
-
- Group group = groupDAO.find(actualKey);
- if (group != null && !result.contains(group)) {
- result.add(group);
- }
- }
+ query.getResultList().stream().map(resultKey -> resultKey instanceof Object[]
+ ? (String) ((Object[]) resultKey)[0]
+ : ((String) resultKey)).
+ forEachOrdered(actualKey -> {
+ Group group = groupDAO.find(actualKey.toString());
+ if (group == null) {
+ } else if (!result.contains(group)) {
+ result.add(group);
+ }
+ });
return result;
}
@@ -336,18 +337,13 @@ public class GroupTest extends AbstractTest {
// 2. verify that dynamic membership is there
actual = groupDAO.find(actual.getKey());
assertNotNull(actual);
- assertNotNull(actual.getADynMembership(anyTypeDAO.find("PRINTER")));
- assertNotNull(actual.getADynMembership(anyTypeDAO.find("PRINTER")).getKey());
- assertEquals(actual, actual.getADynMembership(anyTypeDAO.find("PRINTER")).getGroup());
+ assertNotNull(actual.getADynMembership(anyTypeDAO.find("PRINTER")).get());
+ assertNotNull(actual.getADynMembership(anyTypeDAO.find("PRINTER")).get().getKey());
+ assertEquals(actual, actual.getADynMembership(anyTypeDAO.find("PRINTER")).get().getGroup());
// 3. verify that expected any objects have the created group dynamically assigned
- List<String> members = CollectionUtils.select(groupDAO.findADynMembers(actual), new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String object) {
- return "PRINTER".equals(anyObjectDAO.find(object).getType().getKey());
- }
- }, new ArrayList<String>());
+ List<String> members = groupDAO.findADynMembers(actual).stream().filter(object
+ -> "PRINTER".equals(anyObjectDAO.find(object).getType().getKey())).collect(Collectors.toList());
assertEquals(2, members.size());
assertEquals(
new HashSet<>(Arrays.asList("fc6dbc3a-6c07-4965-8781-921e7401a4a5", newAnyObjectKey)),
@@ -357,7 +353,7 @@ public class GroupTest extends AbstractTest {
assertNotNull(anyObject);
Collection<Group> dynGroupMemberships = findDynGroups(anyObject);
assertEquals(1, dynGroupMemberships.size());
- assertTrue(dynGroupMemberships.contains(actual.getADynMembership(anyTypeDAO.find("PRINTER")).getGroup()));
+ assertTrue(dynGroupMemberships.contains(actual.getADynMembership(anyTypeDAO.find("PRINTER")).get().getGroup()));
// 4. delete the new any object and verify that dynamic membership was updated
anyObjectDAO.delete(newAnyObjectKey);
@@ -365,18 +361,13 @@ public class GroupTest extends AbstractTest {
anyObjectDAO.flush();
actual = groupDAO.find(actual.getKey());
- members = CollectionUtils.select(groupDAO.findADynMembers(actual), new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String object) {
- return "PRINTER".equals(anyObjectDAO.find(object).getType().getKey());
- }
- }, new ArrayList<String>());
+ members = groupDAO.findADynMembers(actual).stream().filter(object
+ -> "PRINTER".equals(anyObjectDAO.find(object).getType().getKey())).collect(Collectors.toList());
assertEquals(1, members.size());
assertEquals("fc6dbc3a-6c07-4965-8781-921e7401a4a5", members.get(0));
// 5. delete group and verify that dynamic membership was also removed
- String dynMembershipKey = actual.getADynMembership(anyTypeDAO.find("PRINTER")).getKey();
+ String dynMembershipKey = actual.getADynMembership(anyTypeDAO.find("PRINTER")).get().getKey();
groupDAO.delete(actual);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/PlainSchemaTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/PlainSchemaTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/PlainSchemaTest.java
index 5d8f021..16a80df 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/PlainSchemaTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/PlainSchemaTest.java
@@ -25,14 +25,12 @@ import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.UUID;
+import java.util.stream.Collectors;
import javax.persistence.EntityExistsException;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.common.lib.types.AttrSchemaType;
import org.apache.syncope.common.lib.types.StandardEntitlement;
@@ -81,14 +79,9 @@ public class PlainSchemaTest extends AbstractTest {
@BeforeClass
public static void setAuthContext() {
- List<GrantedAuthority> authorities = CollectionUtils.collect(StandardEntitlement.values(),
- new Transformer<String, GrantedAuthority>() {
-
- @Override
- public GrantedAuthority transform(final String entitlement) {
- return new SyncopeGrantedAuthority(entitlement, SyncopeConstants.ROOT_REALM);
- }
- }, new ArrayList<GrantedAuthority>());
+ List<GrantedAuthority> authorities = StandardEntitlement.values().stream().
+ map(entitlement -> new SyncopeGrantedAuthority(entitlement, SyncopeConstants.ROOT_REALM)).
+ collect(Collectors.toList());
UsernamePasswordAuthenticationToken auth = new UsernamePasswordAuthenticationToken(
new org.springframework.security.core.userdetails.User(
@@ -124,7 +117,7 @@ public class PlainSchemaTest extends AbstractTest {
// fullname is mapped as ConnObjectKey for ws-target-resource-2, need to swap it otherwise validation errors
// will be raised
for (MappingItem item : resourceDAO.find("ws-target-resource-2").
- getProvision(anyTypeDAO.findUser()).getMapping().getItems()) {
+ getProvision(anyTypeDAO.findUser()).get().getMapping().getItems()) {
if ("fullname".equals(item.getIntAttrName())) {
item.setConnObjectKey(false);
@@ -140,10 +133,10 @@ public class PlainSchemaTest extends AbstractTest {
// check for associated mappings
Set<MappingItem> mapItems = new HashSet<>();
for (ExternalResource resource : resourceDAO.findAll()) {
- if (resource.getProvision(anyTypeDAO.findUser()) != null
- && resource.getProvision(anyTypeDAO.findUser()).getMapping() != null) {
+ if (resource.getProvision(anyTypeDAO.findUser()).isPresent()
+ && resource.getProvision(anyTypeDAO.findUser()).get().getMapping() != null) {
- for (MappingItem mapItem : resource.getProvision(anyTypeDAO.findUser()).getMapping().getItems()) {
+ for (MappingItem mapItem : resource.getProvision(anyTypeDAO.findUser()).get().getMapping().getItems()) {
if (schema.getKey().equals(mapItem.getIntAttrName())) {
mapItems.add(mapItem);
}
@@ -166,10 +159,10 @@ public class PlainSchemaTest extends AbstractTest {
// check for mappings deletion
mapItems = new HashSet<>();
for (ExternalResource resource : resourceDAO.findAll()) {
- if (resource.getProvision(anyTypeDAO.findUser()) != null
- && resource.getProvision(anyTypeDAO.findUser()).getMapping() != null) {
+ if (resource.getProvision(anyTypeDAO.findUser()).isPresent()
+ && resource.getProvision(anyTypeDAO.findUser()).get().getMapping() != null) {
- for (MappingItem mapItem : resource.getProvision(anyTypeDAO.findUser()).getMapping().getItems()) {
+ for (MappingItem mapItem : resource.getProvision(anyTypeDAO.findUser()).get().getMapping().getItems()) {
if ("fullname".equals(mapItem.getIntAttrName())) {
mapItems.add(mapItem);
}
@@ -180,8 +173,8 @@ public class PlainSchemaTest extends AbstractTest {
assertNull(plainAttrDAO.find("01f22fbd-b672-40af-b528-686d9b27ebc4", UPlainAttr.class));
assertNull(plainAttrDAO.find(UUID.randomUUID().toString(), UPlainAttr.class));
- assertNull(userDAO.findByUsername("rossini").getPlainAttr("fullname"));
- assertNull(userDAO.findByUsername("vivaldi").getPlainAttr("fullname"));
+ assertFalse(userDAO.findByUsername("rossini").getPlainAttr("fullname").isPresent());
+ assertFalse(userDAO.findByUsername("vivaldi").getPlainAttr("fullname").isPresent());
}
@Test
@@ -193,10 +186,10 @@ public class PlainSchemaTest extends AbstractTest {
// check for associated mappings
Set<MappingItem> mappings = new HashSet<>();
for (ExternalResource resource : resourceDAO.findAll()) {
- if (resource.getProvision(anyTypeDAO.findUser()) != null
- && resource.getProvision(anyTypeDAO.findUser()).getMapping() != null) {
+ if (resource.getProvision(anyTypeDAO.findUser()).isPresent()
+ && resource.getProvision(anyTypeDAO.findUser()).get().getMapping() != null) {
- for (MappingItem mapItem : resource.getProvision(anyTypeDAO.findUser()).getMapping().getItems()) {
+ for (MappingItem mapItem : resource.getProvision(anyTypeDAO.findUser()).get().getMapping().getItems()) {
if (schema.getKey().equals(mapItem.getIntAttrName())) {
mappings.add(mapItem);
}
@@ -218,7 +211,7 @@ public class PlainSchemaTest extends AbstractTest {
@Test
public void deleteFirstname() {
assertEquals(5, resourceDAO.find("resource-db-pull").
- getProvision(anyTypeDAO.findUser()).getMapping().getItems().size());
+ getProvision(anyTypeDAO.findUser()).get().getMapping().getItems().size());
plainSchemaDAO.delete("firstname");
assertNull(plainSchemaDAO.find("firstname"));
@@ -226,6 +219,6 @@ public class PlainSchemaTest extends AbstractTest {
plainSchemaDAO.flush();
assertEquals(4, resourceDAO.find("resource-db-pull").
- getProvision(anyTypeDAO.findUser()).getMapping().getItems().size());
+ getProvision(anyTypeDAO.findUser()).get().getMapping().getItems().size());
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/ResourceTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/ResourceTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/ResourceTest.java
index f027930..de6d911 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/ResourceTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/ResourceTest.java
@@ -24,11 +24,10 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
-import java.util.ArrayList;
import java.util.Collections;
-import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import java.util.stream.Collectors;
import org.apache.syncope.common.lib.types.MappingPurpose;
import org.apache.syncope.common.lib.types.TaskType;
import org.apache.syncope.core.persistence.api.dao.AnyTypeDAO;
@@ -40,7 +39,7 @@ import org.apache.syncope.core.persistence.api.dao.UserDAO;
import org.apache.syncope.core.persistence.api.dao.VirSchemaDAO;
import org.apache.syncope.core.persistence.api.dao.search.OrderByClause;
import org.apache.syncope.core.persistence.api.entity.ConnInstance;
-import org.apache.syncope.core.persistence.api.entity.VirSchema;
+import org.apache.syncope.core.persistence.api.entity.Entity;
import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
import org.apache.syncope.core.persistence.api.entity.policy.PasswordPolicy;
import org.apache.syncope.core.persistence.api.entity.resource.Mapping;
@@ -156,7 +155,7 @@ public class ResourceTest extends AbstractTest {
// save the resource
ExternalResource actual = resourceDAO.save(resource);
assertNotNull(actual);
- assertNotNull(actual.getProvision(anyTypeDAO.findUser()).getMapping());
+ assertNotNull(actual.getProvision(anyTypeDAO.findUser()).get().getMapping());
resourceDAO.flush();
resourceDAO.detach(actual);
@@ -184,7 +183,7 @@ public class ResourceTest extends AbstractTest {
assertTrue(resource.getConnector().equals(connector));
// check mappings
- List<? extends MappingItem> items = resource.getProvision(anyTypeDAO.findUser()).getMapping().getItems();
+ List<? extends MappingItem> items = resource.getProvision(anyTypeDAO.findUser()).get().getMapping().getItems();
assertNotNull(items);
assertEquals(5, items.size());
@@ -213,10 +212,7 @@ public class ResourceTest extends AbstractTest {
List<User> users = userDAO.findByResource(resource);
assertNotNull(users);
- Set<String> userKeys = new HashSet<>();
- for (User user : users) {
- userKeys.add(user.getKey());
- }
+ Set<String> userKeys = users.stream().map(Entity::getKey).collect(Collectors.toSet());
// -------------------------------------
// Get tasks
@@ -235,57 +231,50 @@ public class ResourceTest extends AbstractTest {
assertNull("delete did not work", actual);
// resource must be not referenced any more from users
- for (String key : userKeys) {
- User actualUser = userDAO.find(key);
- assertNotNull(actualUser);
- for (ExternalResource res : userDAO.findAllResources(actualUser)) {
- assertFalse(res.getKey().equalsIgnoreCase(resource.getKey()));
- }
- }
+ userKeys.stream().
+ map(key -> userDAO.find(key)).
+ map(actualUser -> {
+ assertNotNull(actualUser);
+ return actualUser;
+ }).forEachOrdered((actualUser) -> {
+ userDAO.findAllResources(actualUser).
+ forEach(res -> assertFalse(res.getKey().equalsIgnoreCase(resource.getKey())));
+ });
// resource must be not referenced any more from the connector
ConnInstance actualConnector = connInstanceDAO.find(connector.getKey());
assertNotNull(actualConnector);
- for (ExternalResource res : actualConnector.getResources()) {
- assertFalse(res.getKey().equalsIgnoreCase(resource.getKey()));
- }
+ actualConnector.getResources().
+ forEach(res -> assertFalse(res.getKey().equalsIgnoreCase(resource.getKey())));
// there must be no tasks
- for (PropagationTask task : propagationTasks) {
- assertNull(taskDAO.find(task.getKey()));
- }
+ propagationTasks.forEach(task -> assertNull(taskDAO.find(task.getKey())));
}
@Test
public void emptyMapping() {
ExternalResource ldap = resourceDAO.find("resource-ldap");
assertNotNull(ldap);
- assertNotNull(ldap.getProvision(anyTypeDAO.findUser()).getMapping());
- assertNotNull(ldap.getProvision(anyTypeDAO.findGroup()).getMapping());
+ assertNotNull(ldap.getProvision(anyTypeDAO.findUser()).get().getMapping());
+ assertNotNull(ldap.getProvision(anyTypeDAO.findGroup()).get().getMapping());
// need to avoid any class not defined in this Maven module
ldap.getPropagationActionsClassNames().clear();
- List<? extends MappingItem> items = ldap.getProvision(anyTypeDAO.findGroup()).getMapping().getItems();
+ List<? extends MappingItem> items = ldap.getProvision(anyTypeDAO.findGroup()).get().getMapping().getItems();
assertNotNull(items);
assertFalse(items.isEmpty());
- List<String> itemKeys = new ArrayList<>(items.size());
- for (MappingItem item : items) {
- itemKeys.add(item.getKey());
- }
+ List<String> itemKeys = items.stream().map(Entity::getKey).collect(Collectors.toList());
- Provision groupProvision = ldap.getProvision(anyTypeDAO.findGroup());
- for (VirSchema schema : virSchemaDAO.findByProvision(groupProvision)) {
- virSchemaDAO.delete(schema.getKey());
- }
+ Provision groupProvision = ldap.getProvision(anyTypeDAO.findGroup()).get();
+ virSchemaDAO.findByProvision(groupProvision).
+ forEach(schema -> virSchemaDAO.delete(schema.getKey()));
ldap.getProvisions().remove(groupProvision);
resourceDAO.save(ldap);
resourceDAO.flush();
- for (String itemKey : itemKeys) {
- assertNull(entityManager().find(JPAMappingItem.class, itemKey));
- }
+ itemKeys.forEach(itemKey -> assertNull(entityManager().find(JPAMappingItem.class, itemKey)));
}
@Test
@@ -314,19 +303,19 @@ public class ResourceTest extends AbstractTest {
ExternalResource csv = resourceDAO.find("resource-csv");
assertNotNull(csv);
- int origMapItems = csv.getProvision(anyTypeDAO.findUser()).getMapping().getItems().size();
+ int origMapItems = csv.getProvision(anyTypeDAO.findUser()).get().getMapping().getItems().size();
MappingItem newMapItem = entityFactory.newEntity(MappingItem.class);
newMapItem.setIntAttrName("TEST");
newMapItem.setExtAttrName("TEST");
newMapItem.setPurpose(MappingPurpose.PROPAGATION);
- csv.getProvision(anyTypeDAO.findUser()).getMapping().add(newMapItem);
+ csv.getProvision(anyTypeDAO.findUser()).get().getMapping().add(newMapItem);
resourceDAO.save(csv);
resourceDAO.flush();
csv = resourceDAO.find("resource-csv");
assertNotNull(csv);
- assertEquals(origMapItems + 1, csv.getProvision(anyTypeDAO.findUser()).getMapping().getItems().size());
+ assertEquals(origMapItems + 1, csv.getProvision(anyTypeDAO.findUser()).get().getMapping().getItems().size());
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/UserTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/UserTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/UserTest.java
index ede95f7..074488f 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/UserTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/UserTest.java
@@ -28,8 +28,6 @@ import static org.junit.Assert.fail;
import java.util.Date;
import java.util.List;
import java.util.UUID;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.core.persistence.api.attrvalue.validation.InvalidEntityException;
import org.apache.syncope.core.persistence.api.dao.AnyObjectDAO;
@@ -181,8 +179,8 @@ public class UserTest extends AbstractTest {
// replace 'artDirector' with 'additional', which defines type extension with class 'other' and 'csv':
// now it works
- membership = user.getMembership(groupDAO.findByName("artDirector").getKey());
- user.remove(user.getPlainAttr("obscure", membership));
+ membership = user.getMembership(groupDAO.findByName("artDirector").getKey()).get();
+ user.remove(user.getPlainAttr("obscure", membership).get());
user.getMemberships().remove(membership);
membership.setLeftEnd(null);
@@ -204,26 +202,14 @@ public class UserTest extends AbstractTest {
user = userDAO.findByUsername("vivaldi");
assertEquals(1, user.getMemberships().size());
- final UMembership newM = user.getMembership(groupDAO.findByName("additional").getKey());
+ final UMembership newM = user.getMembership(groupDAO.findByName("additional").getKey()).get();
assertEquals(1, user.getPlainAttrs(newM).size());
- assertNull(user.getPlainAttr("obscure").getMembership());
+ assertNull(user.getPlainAttr("obscure").get().getMembership());
assertEquals(2, user.getPlainAttrs("obscure").size());
- assertTrue(user.getPlainAttrs("obscure").contains(user.getPlainAttr("obscure")));
- assertTrue(IterableUtils.matchesAny(user.getPlainAttrs("obscure"), new Predicate<UPlainAttr>() {
-
- @Override
- public boolean evaluate(final UPlainAttr object) {
- return object.getMembership() == null;
- }
- }));
- assertTrue(IterableUtils.matchesAny(user.getPlainAttrs("obscure"), new Predicate<UPlainAttr>() {
-
- @Override
- public boolean evaluate(final UPlainAttr object) {
- return newM.equals(object.getMembership());
- }
- }));
+ assertTrue(user.getPlainAttrs("obscure").contains(user.getPlainAttr("obscure").get()));
+ assertTrue(user.getPlainAttrs("obscure").stream().anyMatch(plainAttr -> plainAttr.getMembership() == null));
+ assertTrue(user.getPlainAttrs("obscure").stream().anyMatch(plainAttr -> newM.equals(plainAttr.getMembership())));
}
/**
@@ -251,7 +237,7 @@ public class UserTest extends AbstractTest {
User owner = userDAO.findByUsername("vivaldi");
assertNotNull("did not get expected user", owner);
- String firstname = owner.getPlainAttr("firstname").getValuesAsStrings().iterator().next();
+ String firstname = owner.getPlainAttr("firstname").get().getValuesAsStrings().iterator().next();
assertNotNull(firstname);
// search by ksuffix derived attribute
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/VirSchemaTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/VirSchemaTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/VirSchemaTest.java
index 7b00f82..21d9c5a 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/VirSchemaTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/VirSchemaTest.java
@@ -48,7 +48,7 @@ public class VirSchemaTest extends AbstractTest {
@Test
public void deal() {
- Provision provision = resourceDAO.find("ws-target-resource-1").getProvision(anyTypeDAO.findUser());
+ Provision provision = resourceDAO.find("ws-target-resource-1").getProvision(anyTypeDAO.findUser()).get();
assertNotNull(provision);
assertTrue(virSchemaDAO.findByProvision(provision).isEmpty());
@@ -66,7 +66,7 @@ public class VirSchemaTest extends AbstractTest {
assertTrue(virSchema.isReadonly());
assertEquals("EXT_ATTR", virSchema.getExtAttrName());
- provision = resourceDAO.find("ws-target-resource-1").getProvision(anyTypeDAO.findUser());
+ provision = resourceDAO.find("ws-target-resource-1").getProvision(anyTypeDAO.findUser()).get();
assertNotNull(provision);
assertFalse(virSchemaDAO.findByProvision(provision).isEmpty());
assertTrue(virSchemaDAO.findByProvision(provision).contains(virSchema));
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/XMLContentExporterTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/XMLContentExporterTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/XMLContentExporterTest.java
index 84bc767..9f085d4 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/XMLContentExporterTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/XMLContentExporterTest.java
@@ -22,10 +22,8 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.nio.charset.Charset;
-import java.util.ArrayList;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Predicate;
+import java.util.stream.Collectors;
import org.apache.commons.io.IOUtils;
import org.apache.commons.io.output.ByteArrayOutputStream;
import org.apache.commons.lang3.StringUtils;
@@ -50,15 +48,9 @@ public class XMLContentExporterTest extends AbstractTest {
String exported = baos.toString(Charset.defaultCharset());
assertTrue(StringUtils.isNotBlank(exported));
- List<String> realms = CollectionUtils.select(
- IOUtils.readLines(IOUtils.toInputStream(exported, Charset.defaultCharset()), Charset.defaultCharset()),
- new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String row) {
- return row.startsWith("<REALM");
- }
- }, new ArrayList<String>());
+ List<String> realms = IOUtils.readLines(
+ IOUtils.toInputStream(exported, Charset.defaultCharset()), Charset.defaultCharset()).stream().
+ filter(row -> row.startsWith("<REALM")).collect(Collectors.toList());
assertEquals(4, realms.size());
assertTrue(realms.get(0).contains("NAME=\"/\""));
assertTrue(realms.get(1).contains("NAME=\"two\""));
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/resources/domains/MasterContent.xml b/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
index 59bef19..90a5d9e 100644
--- a/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
+++ b/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
@@ -1331,15 +1331,15 @@ we are happy to inform you that the password request was successfully executed f
</html>"/>
<MailTemplate id="test"/>
<MailTemplate id="optin"
- textTemplate="Hi ${user.getPlainAttr("firstname").values[0]} ${user.getPlainAttr("surname").values[0]}, welcome to Syncope!
+ textTemplate="Hi ${user.getPlainAttr("firstname").get().values[0]} ${user.getPlainAttr("surname").get().values[0]}, welcome to Syncope!
Your username is ${user.username}.
-Your email address is ${user.getPlainAttr("email").values[0]}.
-Your email address inside a link: http://localhost/?email=${user.getPlainAttr("email").values[0].replace('@', '%40')}
+Your email address is ${user.getPlainAttr("email").get().values[0]}.
+Your email address inside a link: http://localhost/?email=${user.getPlainAttr("email").get().values[0].replace('@', '%40')}
This message was sent to the following recipients:
$$ for (recipient: recipients) {
- * ${recipient.getPlainAttr("email").values[0]}
+ * ${recipient.getPlainAttr("email").get().values[0]}
$$ }
because one of the following events occurred:
@@ -1355,19 +1355,19 @@ $$ }
$$ } "
htmlTemplate="<html>
<body>
-<h3>Hi ${user.getPlainAttr("firstname").values[0]} ${user.getPlainAttr("surname").values[0]}, welcome to Syncope!</h3>
+<h3>Hi ${user.getPlainAttr("firstname").get().values[0]} ${user.getPlainAttr("surname").get().values[0]}, welcome to Syncope!</h3>
<p>
Your username is ${user.username}.<br/>
- Your email address is ${user.getPlainAttr("email").values[0]}.
- Your email address inside a <a href="http://localhost/?email=${user.getPlainAttr("email").values[0].replace('@', '%40')}">link</a>.
+ Your email address is ${user.getPlainAttr("email").get().values[0]}.
+ Your email address inside a <a href="http://localhost/?email=${user.getPlainAttr("email").get().values[0].replace('@', '%40')}">link</a>.
</p>
<p>
This message was sent to the following recipients:
<ul>
$$ for (recipient: recipients) { Na
- <li>${recipient.getPlainAttr("email").values[0]}</li>
+ <li>${recipient.getPlainAttr("email").get().values[0]}</li>
$$ }
</ul>
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/MappingManager.java
----------------------------------------------------------------------
diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/MappingManager.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/MappingManager.java
index daa09e2..338a94e 100644
--- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/MappingManager.java
+++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/MappingManager.java
@@ -19,6 +19,7 @@
package org.apache.syncope.core.provisioning.api;
import java.util.List;
+import java.util.Optional;
import java.util.Set;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.common.lib.to.AnyTO;
@@ -42,7 +43,7 @@ public interface MappingManager {
* @param provision provision information
* @return connObjectKey internal value
*/
- String getConnObjectKeyValue(Any<?> any, Provision provision);
+ Optional<String> getConnObjectKeyValue(Any<?> any, Provision provision);
/**
* Get connObjectKey internal value.
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/utils/EntityUtils.java
----------------------------------------------------------------------
diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/utils/EntityUtils.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/utils/EntityUtils.java
deleted file mode 100644
index 264df5d..0000000
--- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/utils/EntityUtils.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.core.provisioning.api.utils;
-
-import org.apache.commons.collections4.Transformer;
-import org.apache.syncope.core.persistence.api.entity.Entity;
-
-public final class EntityUtils {
-
- public static <E extends Entity> Transformer<E, String> keyTransformer() {
- return new Transformer<E, String>() {
-
- @Override
- public String transform(final E input) {
- return input.getKey();
- }
- };
- }
-
- /**
- * Private default constructor, for static-only classes.
- */
- private EntityUtils() {
- }
-}
[12/16] syncope git commit: [SYNCOPE-938] Switching from
commons-collections to Java 8 features
Posted by il...@apache.org.
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/common/lib/src/main/java/org/apache/syncope/common/lib/AnyOperations.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/AnyOperations.java b/common/lib/src/main/java/org/apache/syncope/common/lib/AnyOperations.java
index c0b211f..f180ed0 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/AnyOperations.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/AnyOperations.java
@@ -21,11 +21,8 @@ package org.apache.syncope.common.lib;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
+import java.util.Optional;
import java.util.Set;
-import org.apache.commons.collections4.Closure;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.commons.lang3.SerializationUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
@@ -115,16 +112,18 @@ public final class AnyOperations {
result.getAuxClasses().clear();
if (!incremental) {
- for (String auxClass : CollectionUtils.subtract(original.getAuxClasses(), updated.getAuxClasses())) {
- result.getAuxClasses().add(
- new StringPatchItem.Builder().operation(PatchOperation.DELETE).value(auxClass).build());
- }
+ original.getAuxClasses().stream().filter(auxClass -> !updated.getAuxClasses().contains(auxClass)).
+ forEach(auxClass -> {
+ result.getAuxClasses().add(new StringPatchItem.Builder().
+ operation(PatchOperation.DELETE).value(auxClass).build());
+ });
}
- for (String auxClass : CollectionUtils.subtract(updated.getAuxClasses(), original.getAuxClasses())) {
- result.getAuxClasses().add(
- new StringPatchItem.Builder().operation(PatchOperation.ADD_REPLACE).value(auxClass).build());
- }
+ updated.getAuxClasses().stream().filter(auxClass -> !original.getAuxClasses().contains(auxClass)).
+ forEach(auxClass -> {
+ result.getAuxClasses().add(new StringPatchItem.Builder().
+ operation(PatchOperation.ADD_REPLACE).value(auxClass).build());
+ });
// 3. plain attributes
Map<String, AttrTO> updatedAttrs = EntityTOUtils.buildAttrMap(updated.getPlainAttrs());
@@ -133,20 +132,16 @@ public final class AnyOperations {
result.getPlainAttrs().clear();
if (!incremental) {
- IterableUtils.forEach(CollectionUtils.subtract(originalAttrs.keySet(), updatedAttrs.keySet()),
- new Closure<String>() {
-
- @Override
- public void execute(final String schema) {
- result.getPlainAttrs().add(new AttrPatch.Builder().
- operation(PatchOperation.DELETE).
- attrTO(new AttrTO.Builder().schema(schema).build()).
- build());
- }
- });
+ originalAttrs.keySet().stream().filter(attr -> !updatedAttrs.containsKey(attr)).
+ forEach(schema -> {
+ result.getPlainAttrs().add(new AttrPatch.Builder().
+ operation(PatchOperation.DELETE).
+ attrTO(new AttrTO.Builder().schema(schema).build()).
+ build());
+ });
}
- for (AttrTO attrTO : updatedAttrs.values()) {
+ updatedAttrs.values().forEach(attrTO -> {
if (attrTO.getValues().isEmpty()) {
if (!incremental) {
result.getPlainAttrs().add(new AttrPatch.Builder().
@@ -163,7 +158,7 @@ public final class AnyOperations {
result.getPlainAttrs().add(patch);
}
}
- }
+ });
// 4. virtual attributes
result.getVirAttrs().clear();
@@ -173,16 +168,18 @@ public final class AnyOperations {
result.getResources().clear();
if (!incremental) {
- for (String resource : CollectionUtils.subtract(original.getResources(), updated.getResources())) {
- result.getResources().add(
- new StringPatchItem.Builder().operation(PatchOperation.DELETE).value(resource).build());
- }
+ original.getResources().stream().filter(resource -> !updated.getResources().contains(resource)).
+ forEach(resource -> {
+ result.getResources().add(new StringPatchItem.Builder().
+ operation(PatchOperation.DELETE).value(resource).build());
+ });
}
- for (String resource : CollectionUtils.subtract(updated.getResources(), original.getResources())) {
- result.getResources().add(
- new StringPatchItem.Builder().operation(PatchOperation.ADD_REPLACE).value(resource).build());
- }
+ updated.getResources().stream().filter(resource -> !original.getResources().contains(resource)).
+ forEach(resource -> {
+ result.getResources().add(new StringPatchItem.Builder().
+ operation(PatchOperation.ADD_REPLACE).value(resource).build());
+ });
}
/**
@@ -209,38 +206,41 @@ public final class AnyOperations {
Map<Pair<String, String>, RelationshipTO> originalRels =
EntityTOUtils.buildRelationshipMap(original.getRelationships());
- for (Map.Entry<Pair<String, String>, RelationshipTO> entry : updatedRels.entrySet()) {
- if (!originalRels.containsKey(entry.getKey())) {
- result.getRelationships().add(new RelationshipPatch.Builder().
- operation(PatchOperation.ADD_REPLACE).
- relationshipTO(entry.getValue()).build());
- }
- }
+ updatedRels.entrySet().stream().
+ filter(entry -> (!originalRels.containsKey(entry.getKey()))).
+ forEachOrdered(entry -> {
+ result.getRelationships().add(new RelationshipPatch.Builder().
+ operation(PatchOperation.ADD_REPLACE).
+ relationshipTO(entry.getValue()).build());
+ });
if (!incremental) {
- for (Pair<String, String> key : CollectionUtils.subtract(originalRels.keySet(), updatedRels.keySet())) {
- result.getRelationships().add(new RelationshipPatch.Builder().
- operation(PatchOperation.DELETE).
- relationshipTO(originalRels.get(key)).build());
- }
+ originalRels.keySet().stream().filter(relationship -> !updatedRels.containsKey(relationship)).
+ forEach(key -> {
+ result.getRelationships().add(new RelationshipPatch.Builder().
+ operation(PatchOperation.DELETE).
+ relationshipTO(originalRels.get(key)).build());
+ });
}
// 3. memberships
Map<String, MembershipTO> updatedMembs = EntityTOUtils.buildMembershipMap(updated.getMemberships());
Map<String, MembershipTO> originalMembs = EntityTOUtils.buildMembershipMap(original.getMemberships());
- for (Map.Entry<String, MembershipTO> entry : updatedMembs.entrySet()) {
- if (!originalMembs.containsKey(entry.getKey())) {
- result.getMemberships().add(new MembershipPatch.Builder().
- operation(PatchOperation.ADD_REPLACE).group(entry.getValue().getGroupKey()).build());
- }
- }
+ updatedMembs.entrySet().stream().
+ filter(entry -> (!originalMembs.containsKey(entry.getKey()))).
+ forEachOrdered(entry -> {
+ result.getMemberships().add(new MembershipPatch.Builder().
+ operation(PatchOperation.ADD_REPLACE).group(entry.getValue().getGroupKey()).
+ build());
+ });
if (!incremental) {
- for (String key : CollectionUtils.subtract(originalMembs.keySet(), updatedMembs.keySet())) {
- result.getMemberships().add(new MembershipPatch.Builder().
- operation(PatchOperation.DELETE).group(originalMembs.get(key).getGroupKey()).build());
- }
+ originalMembs.keySet().stream().filter(membership -> !updatedMembs.containsKey(membership)).
+ forEach(key -> {
+ result.getMemberships().add(new MembershipPatch.Builder().
+ operation(PatchOperation.DELETE).group(originalMembs.get(key).getGroupKey()).build());
+ });
}
return result;
@@ -290,16 +290,18 @@ public final class AnyOperations {
// 4. roles
if (!incremental) {
- for (String toRemove : CollectionUtils.subtract(original.getRoles(), updated.getRoles())) {
- result.getRoles().add(
- new StringPatchItem.Builder().operation(PatchOperation.DELETE).value(toRemove).build());
- }
+ original.getRoles().stream().filter(role -> !updated.getRoles().contains(role)).
+ forEach(toRemove -> {
+ result.getRoles().add(new StringPatchItem.Builder().
+ operation(PatchOperation.DELETE).value(toRemove).build());
+ });
}
- for (String toAdd : CollectionUtils.subtract(updated.getRoles(), original.getRoles())) {
- result.getRoles().add(
- new StringPatchItem.Builder().operation(PatchOperation.ADD_REPLACE).value(toAdd).build());
- }
+ updated.getRoles().stream().filter(role -> !original.getRoles().contains(role)).
+ forEach(toAdd -> {
+ result.getRoles().add(new StringPatchItem.Builder().
+ operation(PatchOperation.ADD_REPLACE).value(toAdd).build());
+ });
// 5. relationships
Map<Pair<String, String>, RelationshipTO> updatedRels =
@@ -307,48 +309,52 @@ public final class AnyOperations {
Map<Pair<String, String>, RelationshipTO> originalRels =
EntityTOUtils.buildRelationshipMap(original.getRelationships());
- for (Map.Entry<Pair<String, String>, RelationshipTO> entry : updatedRels.entrySet()) {
- if (!originalRels.containsKey(entry.getKey())) {
- result.getRelationships().add(new RelationshipPatch.Builder().
- operation(PatchOperation.ADD_REPLACE).
- relationshipTO(entry.getValue()).build());
- }
- }
+ updatedRels.entrySet().stream().
+ filter(entry -> (!originalRels.containsKey(entry.getKey()))).
+ forEachOrdered(entry -> {
+ result.getRelationships().add(new RelationshipPatch.Builder().
+ operation(PatchOperation.ADD_REPLACE).
+ relationshipTO(entry.getValue()).build());
+ });
if (!incremental) {
- for (Pair<String, String> key : CollectionUtils.subtract(originalRels.keySet(), updatedRels.keySet())) {
- result.getRelationships().add(new RelationshipPatch.Builder().
- operation(PatchOperation.DELETE).
- relationshipTO(originalRels.get(key)).build());
- }
+ originalRels.keySet().stream().filter(relationship -> !updatedRels.containsKey(relationship)).
+ forEach(key -> {
+ result.getRelationships().add(new RelationshipPatch.Builder().
+ operation(PatchOperation.DELETE).
+ relationshipTO(originalRels.get(key)).build());
+ });
}
// 6. memberships
Map<String, MembershipTO> updatedMembs = EntityTOUtils.buildMembershipMap(updated.getMemberships());
Map<String, MembershipTO> originalMembs = EntityTOUtils.buildMembershipMap(original.getMemberships());
- for (Map.Entry<String, MembershipTO> entry : updatedMembs.entrySet()) {
- MembershipPatch membershipPatch = new MembershipPatch.Builder().
- operation(PatchOperation.ADD_REPLACE).group(entry.getValue().getGroupKey()).build();
-
- MembershipTO omemb;
- if (originalMembs.containsKey(entry.getKey())) {
- // get the original membership
- omemb = originalMembs.get(entry.getKey());
- } else {
- // create an empty one to generate the patch
- omemb = new MembershipTO.Builder().group(entry.getKey()).build();
- }
-
- diff(entry.getValue(), omemb, membershipPatch, incremental);
- result.getMemberships().add(membershipPatch);
- }
+ updatedMembs.entrySet().stream().
+ map(entry -> {
+ MembershipPatch membershipPatch = new MembershipPatch.Builder().
+ operation(PatchOperation.ADD_REPLACE).group(entry.getValue().getGroupKey()).build();
+ MembershipTO omemb;
+ if (originalMembs.containsKey(entry.getKey())) {
+ // get the original membership
+ omemb = originalMembs.get(entry.getKey());
+ } else {
+ // create an empty one to generate the patch
+ omemb = new MembershipTO.Builder().group(entry.getKey()).build();
+ }
+ diff(entry.getValue(), omemb, membershipPatch, incremental);
+ return membershipPatch;
+ }).
+ forEachOrdered(membershipPatch -> {
+ result.getMemberships().add(membershipPatch);
+ });
if (!incremental) {
- for (String key : CollectionUtils.subtract(originalMembs.keySet(), updatedMembs.keySet())) {
- result.getMemberships().add(new MembershipPatch.Builder().
- operation(PatchOperation.DELETE).group(originalMembs.get(key).getGroupKey()).build());
- }
+ originalMembs.keySet().stream().filter(membership -> !updatedMembs.containsKey(membership)).
+ forEach(key -> {
+ result.getMemberships().add(new MembershipPatch.Builder().
+ operation(PatchOperation.DELETE).group(originalMembs.get(key).getGroupKey()).build());
+ });
}
return result;
@@ -403,7 +409,7 @@ public final class AnyOperations {
private static Collection<AttrTO> patch(final Map<String, AttrTO> attrs, final Set<AttrPatch> attrPatches) {
Map<String, AttrTO> rwattrs = new HashMap<>(attrs);
- for (AttrPatch patch : attrPatches) {
+ attrPatches.forEach(patch -> {
if (patch.getAttrTO() == null) {
LOG.warn("Invalid {} specified: {}", AttrPatch.class.getName(), patch);
} else {
@@ -412,7 +418,7 @@ public final class AnyOperations {
rwattrs.put(patch.getAttrTO().getSchema(), patch.getAttrTO());
}
}
- }
+ });
return rwattrs.values();
}
@@ -496,46 +502,44 @@ public final class AnyOperations {
}
// 1. relationships
- for (RelationshipPatch relPatch : anyObjectPatch.getRelationships()) {
- if (relPatch.getRelationshipTO() == null) {
- LOG.warn("Invalid {} specified: {}", RelationshipPatch.class.getName(), relPatch);
- } else {
- result.getRelationships().remove(relPatch.getRelationshipTO());
- if (relPatch.getOperation() == PatchOperation.ADD_REPLACE) {
- result.getRelationships().add(relPatch.getRelationshipTO());
- }
- }
- }
+ anyObjectPatch.getRelationships().
+ forEach(relPatch -> {
+ if (relPatch.getRelationshipTO() == null) {
+ LOG.warn("Invalid {} specified: {}", RelationshipPatch.class.getName(), relPatch);
+ } else {
+ result.getRelationships().remove(relPatch.getRelationshipTO());
+ if (relPatch.getOperation() == PatchOperation.ADD_REPLACE) {
+ result.getRelationships().add(relPatch.getRelationshipTO());
+ }
+ }
+ });
// 2. memberships
- for (final MembershipPatch membPatch : anyObjectPatch.getMemberships()) {
- if (membPatch.getGroup() == null) {
- LOG.warn("Invalid {} specified: {}", MembershipPatch.class.getName(), membPatch);
- } else {
- MembershipTO memb = IterableUtils.find(result.getMemberships(), new Predicate<MembershipTO>() {
-
- @Override
- public boolean evaluate(final MembershipTO object) {
- return membPatch.getGroup().equals(object.getGroupKey());
+ anyObjectPatch.getMemberships().
+ forEach(membPatch -> {
+ if (membPatch.getGroup() == null) {
+ LOG.warn("Invalid {} specified: {}", MembershipPatch.class.getName(), membPatch);
+ } else {
+ Optional<MembershipTO> memb = result.getMemberships().stream().
+ filter(membership -> membPatch.getGroup().equals(membership.getGroupKey())).findFirst();
+ if (memb.isPresent()) {
+ result.getMemberships().remove(memb.get());
+ }
+
+ if (membPatch.getOperation() == PatchOperation.ADD_REPLACE) {
+ MembershipTO newMembershipTO =
+ new MembershipTO.Builder().group(membPatch.getGroup()).build();
+
+ // 3. plain attributes
+ newMembershipTO.getPlainAttrs().addAll(membPatch.getPlainAttrs());
+
+ // 4. virtual attributes
+ newMembershipTO.getVirAttrs().addAll(membPatch.getVirAttrs());
+
+ result.getMemberships().add(newMembershipTO);
+ }
}
});
- if (memb != null) {
- result.getMemberships().remove(memb);
- }
-
- if (membPatch.getOperation() == PatchOperation.ADD_REPLACE) {
- MembershipTO newMembershipTO = new MembershipTO.Builder().group(membPatch.getGroup()).build();
-
- // 3. plain attributes
- newMembershipTO.getPlainAttrs().addAll(membPatch.getPlainAttrs());
-
- // 4. virtual attributes
- newMembershipTO.getVirAttrs().addAll(membPatch.getVirAttrs());
-
- result.getMemberships().add(newMembershipTO);
- }
- }
- }
return result;
}
@@ -555,46 +559,44 @@ public final class AnyOperations {
}
// 3. relationships
- for (RelationshipPatch relPatch : userPatch.getRelationships()) {
- if (relPatch.getRelationshipTO() == null) {
- LOG.warn("Invalid {} specified: {}", RelationshipPatch.class.getName(), relPatch);
- } else {
- result.getRelationships().remove(relPatch.getRelationshipTO());
- if (relPatch.getOperation() == PatchOperation.ADD_REPLACE) {
- result.getRelationships().add(relPatch.getRelationshipTO());
- }
- }
- }
+ userPatch.getRelationships().
+ forEach(relPatch -> {
+ if (relPatch.getRelationshipTO() == null) {
+ LOG.warn("Invalid {} specified: {}", RelationshipPatch.class.getName(), relPatch);
+ } else {
+ result.getRelationships().remove(relPatch.getRelationshipTO());
+ if (relPatch.getOperation() == PatchOperation.ADD_REPLACE) {
+ result.getRelationships().add(relPatch.getRelationshipTO());
+ }
+ }
+ });
// 4. memberships
- for (final MembershipPatch membPatch : userPatch.getMemberships()) {
- if (membPatch.getGroup() == null) {
- LOG.warn("Invalid {} specified: {}", MembershipPatch.class.getName(), membPatch);
- } else {
- MembershipTO memb = IterableUtils.find(result.getMemberships(), new Predicate<MembershipTO>() {
-
- @Override
- public boolean evaluate(final MembershipTO object) {
- return membPatch.getGroup().equals(object.getGroupKey());
+ userPatch.getMemberships().
+ forEach(membPatch -> {
+ if (membPatch.getGroup() == null) {
+ LOG.warn("Invalid {} specified: {}", MembershipPatch.class.getName(), membPatch);
+ } else {
+ Optional<MembershipTO> memb = result.getMemberships().stream().
+ filter(membership -> membPatch.getGroup().equals(membership.getGroupKey())).findFirst();
+ if (memb.isPresent()) {
+ result.getMemberships().remove(memb.get());
+ }
+
+ if (membPatch.getOperation() == PatchOperation.ADD_REPLACE) {
+ MembershipTO newMembershipTO =
+ new MembershipTO.Builder().group(membPatch.getGroup()).build();
+
+ // 3. plain attributes
+ newMembershipTO.getPlainAttrs().addAll(membPatch.getPlainAttrs());
+
+ // 4. virtual attributes
+ newMembershipTO.getVirAttrs().addAll(membPatch.getVirAttrs());
+
+ result.getMemberships().add(newMembershipTO);
+ }
}
});
- if (memb != null) {
- result.getMemberships().remove(memb);
- }
-
- if (membPatch.getOperation() == PatchOperation.ADD_REPLACE) {
- MembershipTO newMembershipTO = new MembershipTO.Builder().group(membPatch.getGroup()).build();
-
- // 3. plain attributes
- newMembershipTO.getPlainAttrs().addAll(membPatch.getPlainAttrs());
-
- // 4. virtual attributes
- newMembershipTO.getVirAttrs().addAll(membPatch.getVirAttrs());
-
- result.getMemberships().add(newMembershipTO);
- }
- }
- }
// 5. roles
for (StringPatchItem rolePatch : userPatch.getRoles()) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/common/lib/src/main/java/org/apache/syncope/common/lib/EntityTOUtils.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/EntityTOUtils.java b/common/lib/src/main/java/org/apache/syncope/common/lib/EntityTOUtils.java
index dfc0a1e..38f5202 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/EntityTOUtils.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/EntityTOUtils.java
@@ -22,30 +22,16 @@ import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
-import org.apache.commons.collections4.Transformer;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.common.lib.to.AttrTO;
-import org.apache.syncope.common.lib.to.EntityTO;
import org.apache.syncope.common.lib.to.MembershipTO;
import org.apache.syncope.common.lib.to.RelationshipTO;
public final class EntityTOUtils {
- public static <E extends EntityTO> Transformer<E, String> keyTransformer() {
- return new Transformer<E, String>() {
-
- @Override
- public String transform(final E input) {
- return input.getKey();
- }
- };
- }
-
public static Map<String, AttrTO> buildAttrMap(final Collection<AttrTO> attrs) {
Map<String, AttrTO> result = new HashMap<>(attrs.size());
- for (AttrTO attributeTO : attrs) {
- result.put(attributeTO.getSchema(), attributeTO);
- }
+ attrs.forEach(attrTO -> result.put(attrTO.getSchema(), attrTO));
return Collections.unmodifiableMap(result);
}
@@ -54,18 +40,15 @@ public final class EntityTOUtils {
final Collection<RelationshipTO> relationships) {
Map<Pair<String, String>, RelationshipTO> result = new HashMap<>(relationships.size());
- for (RelationshipTO relationship : relationships) {
- result.put(Pair.of(relationship.getType(), relationship.getRightKey()), relationship);
- }
+ relationships.forEach(
+ relationship -> result.put(Pair.of(relationship.getType(), relationship.getRightKey()), relationship));
return Collections.unmodifiableMap(result);
}
public static Map<String, MembershipTO> buildMembershipMap(final Collection<MembershipTO> memberships) {
Map<String, MembershipTO> result = new HashMap<>(memberships.size());
- for (MembershipTO membership : memberships) {
- result.put(membership.getRightKey(), membership);
- }
+ memberships.forEach(membership -> result.put(membership.getRightKey(), membership));
return Collections.unmodifiableMap(result);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/common/lib/src/main/java/org/apache/syncope/common/lib/SyncopeClientCompositeException.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/SyncopeClientCompositeException.java b/common/lib/src/main/java/org/apache/syncope/common/lib/SyncopeClientCompositeException.java
index b338df8..3e7bc0c 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/SyncopeClientCompositeException.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/SyncopeClientCompositeException.java
@@ -20,9 +20,8 @@ package org.apache.syncope.common.lib;
import java.util.HashSet;
import java.util.Iterator;
+import java.util.Optional;
import java.util.Set;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.common.lib.types.ClientExceptionType;
public class SyncopeClientCompositeException extends SyncopeClientException {
@@ -68,17 +67,12 @@ public class SyncopeClientCompositeException extends SyncopeClientException {
+ ClientExceptionType.class.getName() + " set");
}
- SyncopeClientException alreadyAdded = IterableUtils.find(exceptions, new Predicate<SyncopeClientException>() {
+ Optional<SyncopeClientException> alreadyAdded =
+ exceptions.stream().filter(ex -> ex.getType() == exception.getType()).findFirst();
- @Override
- public boolean evaluate(final SyncopeClientException ex) {
- return ex.getType() == exception.getType();
- }
- });
-
- return alreadyAdded == null
- ? exceptions.add(exception)
- : alreadyAdded.getElements().addAll(exception.getElements());
+ return alreadyAdded.isPresent()
+ ? alreadyAdded.get().getElements().addAll(exception.getElements())
+ : exceptions.add(exception);
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/common/lib/src/main/java/org/apache/syncope/common/lib/collections/CircularFifoQueue.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/collections/CircularFifoQueue.java b/common/lib/src/main/java/org/apache/syncope/common/lib/collections/CircularFifoQueue.java
new file mode 100644
index 0000000..1977a7e
--- /dev/null
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/collections/CircularFifoQueue.java
@@ -0,0 +1,427 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.common.lib.collections;
+
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.Serializable;
+import java.util.AbstractCollection;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.NoSuchElementException;
+import java.util.Queue;
+
+/**
+ * CircularFifoQueue is a first-in first-out queue with a fixed size that
+ * replaces its oldest element if full.
+ *
+ * The removal order of a {@link CircularFifoQueue} is based on the
+ * insertion order; elements are removed in the same order in which they
+ * were added. The iteration order is the same as the removal order.
+ *
+ * The {@link #add(Object)}, {@link #remove()}, {@link #peek()}, {@link #poll},
+ * {@link #offer(Object)} operations all perform in constant time.
+ * All other operations perform in linear time or worse.
+ *
+ * This queue prevents null objects from being added.
+ *
+ * @param <E> the type of elements held in this collection
+ */
+public class CircularFifoQueue<E> extends AbstractCollection<E> implements Queue<E>, Serializable {
+
+ private static final long serialVersionUID = -8423413834657610406L;
+
+ /** Underlying storage array. */
+ private transient E[] elements;
+
+ /** Array index of first (oldest) queue element. */
+ private transient int start = 0;
+
+ /**
+ * Index mod maxElements of the array position following the last queue
+ * element. Queue elements start at elements[start] and "wrap around"
+ * elements[maxElements-1], ending at elements[decrement(end)].
+ * For example, elements = {c,a,b}, start=1, end=1 corresponds to
+ * the queue [a,b,c].
+ */
+ private transient int end = 0;
+
+ /** Flag to indicate if the queue is currently full. */
+ private transient boolean full = false;
+
+ /** Capacity of the queue. */
+ private final int maxElements;
+
+ /**
+ * Constructor that creates a queue with the default size of 32.
+ */
+ public CircularFifoQueue() {
+ this(32);
+ }
+
+ /**
+ * Constructor that creates a queue with the specified size.
+ *
+ * @param size the size of the queue (cannot be changed)
+ * @throws IllegalArgumentException if the size is < 1
+ */
+ @SuppressWarnings("unchecked")
+ public CircularFifoQueue(final int size) {
+ if (size <= 0) {
+ throw new IllegalArgumentException("The size must be greater than 0");
+ }
+ elements = (E[]) new Object[size];
+ maxElements = elements.length;
+ }
+
+ /**
+ * Constructor that creates a queue from the specified collection.
+ * The collection size also sets the queue size.
+ *
+ * @param coll the collection to copy into the queue, may not be null
+ * @throws NullPointerException if the collection is null
+ */
+ public CircularFifoQueue(final Collection<? extends E> coll) {
+ this(coll.size());
+ addAll(coll);
+ }
+
+ //-----------------------------------------------------------------------
+ /**
+ * Write the queue out using a custom routine.
+ *
+ * @param out the output stream
+ * @throws IOException if an I/O error occurs while writing to the output stream
+ */
+ private void writeObject(final ObjectOutputStream out) throws IOException {
+ out.defaultWriteObject();
+ out.writeInt(size());
+ for (final E e : this) {
+ out.writeObject(e);
+ }
+ }
+
+ /**
+ * Read the queue in using a custom routine.
+ *
+ * @param in the input stream
+ * @throws IOException if an I/O error occurs while writing to the output stream
+ * @throws ClassNotFoundException if the class of a serialized object can not be found
+ */
+ @SuppressWarnings("unchecked")
+ private void readObject(final ObjectInputStream in) throws IOException, ClassNotFoundException {
+ in.defaultReadObject();
+ elements = (E[]) new Object[maxElements];
+ final int size = in.readInt();
+ for (int i = 0; i < size; i++) {
+ elements[i] = (E) in.readObject();
+ }
+ start = 0;
+ full = size == maxElements;
+ if (full) {
+ end = 0;
+ } else {
+ end = size;
+ }
+ }
+
+ //-----------------------------------------------------------------------
+ /**
+ * Returns the number of elements stored in the queue.
+ *
+ * @return this queue's size
+ */
+ @Override
+ public int size() {
+ int size;
+
+ if (end < start) {
+ size = maxElements - start + end;
+ } else if (end == start) {
+ size = full ? maxElements : 0;
+ } else {
+ size = end - start;
+ }
+
+ return size;
+ }
+
+ /**
+ * Returns true if this queue is empty; false otherwise.
+ *
+ * @return true if this queue is empty
+ */
+ @Override
+ public boolean isEmpty() {
+ return size() == 0;
+ }
+
+ /**
+ * {@inheritDoc}
+ * <p>
+ * A {@code CircularFifoQueue} can never be full, thus this returns always
+ * {@code false}.
+ *
+ * @return always returns {@code false}
+ */
+ public boolean isFull() {
+ return false;
+ }
+
+ /**
+ * Returns {@code true} if the capacity limit of this queue has been reached,
+ * i.e. the number of elements stored in the queue equals its maximum size.
+ *
+ * @return {@code true} if the capacity limit has been reached, {@code false} otherwise
+ * @since 4.1
+ */
+ public boolean isAtFullCapacity() {
+ return size() == maxElements;
+ }
+
+ /**
+ * Gets the maximum size of the collection (the bound).
+ *
+ * @return the maximum number of elements the collection can hold
+ */
+ public int maxSize() {
+ return maxElements;
+ }
+
+ /**
+ * Clears this queue.
+ */
+ @Override
+ public void clear() {
+ full = false;
+ start = 0;
+ end = 0;
+ Arrays.fill(elements, null);
+ }
+
+ /**
+ * Adds the given element to this queue. If the queue is full, the least recently added
+ * element is discarded so that a new element can be inserted.
+ *
+ * @param element the element to add
+ * @return true, always
+ * @throws NullPointerException if the given element is null
+ */
+ @Override
+ public boolean add(final E element) {
+ if (null == element) {
+ throw new NullPointerException("Attempted to add null object to queue");
+ }
+
+ if (isAtFullCapacity()) {
+ remove();
+ }
+
+ elements[end++] = element;
+
+ if (end >= maxElements) {
+ end = 0;
+ }
+
+ if (end == start) {
+ full = true;
+ }
+
+ return true;
+ }
+
+ /**
+ * Returns the element at the specified position in this queue.
+ *
+ * @param index the position of the element in the queue
+ * @return the element at position {@code index}
+ * @throws NoSuchElementException if the requested position is outside the range [0, size)
+ */
+ public E get(final int index) {
+ final int sz = size();
+ if (index < 0 || index >= sz) {
+ throw new NoSuchElementException(
+ String.format("The specified index (%1$d) is outside the available range [0, %2$d)",
+ index, Integer.valueOf(sz)));
+ }
+
+ final int idx = (start + index) % maxElements;
+ return elements[idx];
+ }
+
+ //-----------------------------------------------------------------------
+ /**
+ * Adds the given element to this queue. If the queue is full, the least recently added
+ * element is discarded so that a new element can be inserted.
+ *
+ * @param element the element to add
+ * @return true, always
+ * @throws NullPointerException if the given element is null
+ */
+ @Override
+ public boolean offer(final E element) {
+ return add(element);
+ }
+
+ @Override
+ public E poll() {
+ if (isEmpty()) {
+ return null;
+ }
+ return remove();
+ }
+
+ @Override
+ public E element() {
+ if (isEmpty()) {
+ throw new NoSuchElementException("queue is empty");
+ }
+ return peek();
+ }
+
+ @Override
+ public E peek() {
+ if (isEmpty()) {
+ return null;
+ }
+ return elements[start];
+ }
+
+ @Override
+ public E remove() {
+ if (isEmpty()) {
+ throw new NoSuchElementException("queue is empty");
+ }
+
+ final E element = elements[start];
+ if (null != element) {
+ elements[start++] = null;
+
+ if (start >= maxElements) {
+ start = 0;
+ }
+ full = false;
+ }
+ return element;
+ }
+
+ //-----------------------------------------------------------------------
+ /**
+ * Increments the internal index.
+ *
+ * @param index the index to increment
+ * @return the updated index
+ */
+ private int increment(final int index) {
+ int result = index;
+ result++;
+ if (result >= maxElements) {
+ result = 0;
+ }
+ return result;
+ }
+
+ /**
+ * Decrements the internal index.
+ *
+ * @param index the index to decrement
+ * @return the updated index
+ */
+ private int decrement(final int index) {
+ int result = index;
+ result--;
+ if (result < 0) {
+ result = maxElements - 1;
+ }
+ return result;
+ }
+
+ /**
+ * Returns an iterator over this queue's elements.
+ *
+ * @return an iterator over this queue's elements
+ */
+ @Override
+ public Iterator<E> iterator() {
+ return new Iterator<E>() {
+
+ private int index = start;
+
+ private int lastReturnedIndex = -1;
+
+ private boolean isFirst = full;
+
+ @Override
+ public boolean hasNext() {
+ return isFirst || index != end;
+ }
+
+ @Override
+ public E next() {
+ if (!hasNext()) {
+ throw new NoSuchElementException();
+ }
+ isFirst = false;
+ lastReturnedIndex = index;
+ index = increment(index);
+ return elements[lastReturnedIndex];
+ }
+
+ @Override
+ public void remove() {
+ if (lastReturnedIndex == -1) {
+ throw new IllegalStateException();
+ }
+
+ // First element can be removed quickly
+ if (lastReturnedIndex == start) {
+ CircularFifoQueue.this.remove();
+ lastReturnedIndex = -1;
+ return;
+ }
+
+ int pos = lastReturnedIndex + 1;
+ if (start < lastReturnedIndex && pos < end) {
+ // shift in one part
+ System.arraycopy(elements, pos, elements, lastReturnedIndex, end - pos);
+ } else {
+ // Other elements require us to shift the subsequent elements
+ while (pos != end) {
+ if (pos >= maxElements) {
+ elements[pos - 1] = elements[0];
+ pos = 0;
+ } else {
+ elements[decrement(pos)] = elements[pos];
+ pos = increment(pos);
+ }
+ }
+ }
+
+ lastReturnedIndex = -1;
+ end = decrement(end);
+ elements[end] = null;
+ full = false;
+ index = decrement(index);
+ }
+
+ };
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/common/lib/src/main/java/org/apache/syncope/common/lib/collections/IteratorChain.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/collections/IteratorChain.java b/common/lib/src/main/java/org/apache/syncope/common/lib/collections/IteratorChain.java
new file mode 100644
index 0000000..c26de2a
--- /dev/null
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/collections/IteratorChain.java
@@ -0,0 +1,282 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.common.lib.collections;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.Queue;
+
+/**
+ * An IteratorChain is an Iterator that wraps a number of Iterators.
+ *
+ * This class makes multiple iterators look like one to the caller. When any
+ * method from the Iterator interface is called, the IteratorChain will delegate
+ * to a single underlying Iterator. The IteratorChain will invoke the Iterators
+ * in sequence until all Iterators are exhausted.
+ *
+ * Under many circumstances, linking Iterators together in this manner is more
+ * efficient (and convenient) than reading out the contents of each Iterator
+ * into a List and creating a new Iterator.
+ *
+ * Calling a method that adds new Iterator <i>after a method in the Iterator
+ * interface has been called</i> will result in an UnsupportedOperationException.
+ *
+ * NOTE: As from version 3.0, the IteratorChain may contain no iterators. In
+ * this case the class will function as an empty iterator.
+ *
+ * NOTE: As from version 4.0, the IteratorChain stores the iterators in a queue
+ * and removes any reference to them as soon as they are not used anymore. Thus
+ * the methods {@code setIterator(Iterator)} and {@code getIterators()} have been
+ * removed and {@link #size()} will return the number of remaining iterators in
+ * the queue.
+ *
+ * @param <E> the type of elements held in this collection
+ */
+public class IteratorChain<E> implements Iterator<E> {
+
+ /** The chain of iterators. */
+ private final Queue<Iterator<? extends E>> iteratorChain = new LinkedList<>();
+
+ /** The current iterator. */
+ private Iterator<? extends E> currentIterator = null;
+
+ /**
+ * The "last used" Iterator is the Iterator upon which next() or hasNext()
+ * was most recently called used for the remove() operation only.
+ */
+ private Iterator<? extends E> lastUsedIterator = null;
+
+ /**
+ * ComparatorChain is "locked" after the first time compare(Object,Object)
+ * is called.
+ */
+ private boolean isLocked = false;
+
+ //-----------------------------------------------------------------------
+ /**
+ * Construct an IteratorChain with no Iterators.
+ *
+ * You will normally use {@link #addIterator(Iterator)} to add some
+ * iterators after using this constructor.
+ */
+ public IteratorChain() {
+ super();
+ }
+
+ /**
+ * Construct an IteratorChain with a single Iterator.
+ *
+ * This method takes one iterator. The newly constructed iterator will
+ * iterate through that iterator. Thus calling this constructor on its own
+ * will have no effect other than decorating the input iterator.
+ *
+ * You will normally use {@link #addIterator(Iterator)} to add some more
+ * iterators after using this constructor.
+ *
+ * @param iterator the first child iterator in the IteratorChain, not null
+ * @throws NullPointerException if the iterator is null
+ */
+ public IteratorChain(final Iterator<? extends E> iterator) {
+ super();
+ addIterator(iterator);
+ }
+
+ /**
+ * Constructs a new <code>IteratorChain</code> over the two given iterators.
+ *
+ * This method takes two iterators. The newly constructed iterator will
+ * iterate through each one of the input iterators in turn.
+ *
+ * @param first the first child iterator in the IteratorChain, not null
+ * @param second the second child iterator in the IteratorChain, not null
+ * @throws NullPointerException if either iterator is null
+ */
+ public IteratorChain(final Iterator<? extends E> first, final Iterator<? extends E> second) {
+ super();
+ addIterator(first);
+ addIterator(second);
+ }
+
+ /**
+ * Constructs a new <code>IteratorChain</code> over the array of iterators.
+ *
+ * This method takes an array of iterators. The newly constructed iterator
+ * will iterate through each one of the input iterators in turn.
+ *
+ * @param iteratorChain the array of iterators, not null
+ * @throws NullPointerException if iterators array is or contains null
+ */
+ public IteratorChain(final Iterator<? extends E>... iteratorChain) {
+ super();
+ for (final Iterator<? extends E> element : iteratorChain) {
+ addIterator(element);
+ }
+ }
+
+ /**
+ * Constructs a new <code>IteratorChain</code> over the collection of
+ * iterators.
+ *
+ * This method takes a collection of iterators. The newly constructed
+ * iterator will iterate through each one of the input iterators in turn.
+ *
+ * @param iteratorChain the collection of iterators, not null
+ * @throws NullPointerException if iterators collection is or contains null
+ * @throws ClassCastException if iterators collection doesn't contain an
+ * iterator
+ */
+ public IteratorChain(final Collection<Iterator<? extends E>> iteratorChain) {
+ super();
+ for (final Iterator<? extends E> iterator : iteratorChain) {
+ addIterator(iterator);
+ }
+ }
+
+ //-----------------------------------------------------------------------
+ /**
+ * Add an Iterator to the end of the chain
+ *
+ * @param iterator Iterator to add
+ * @throws IllegalStateException if I've already started iterating
+ * @throws NullPointerException if the iterator is null
+ */
+ public void addIterator(final Iterator<? extends E> iterator) {
+ checkLocked();
+ if (iterator == null) {
+ throw new NullPointerException("Iterator must not be null");
+ }
+ iteratorChain.add(iterator);
+ }
+
+ /**
+ * Returns the remaining number of Iterators in the current IteratorChain.
+ *
+ * @return Iterator count
+ */
+ public int size() {
+ return iteratorChain.size();
+ }
+
+ /**
+ * Determine if modifications can still be made to the IteratorChain.
+ * IteratorChains cannot be modified once they have executed a method from
+ * the Iterator interface.
+ *
+ * @return true if IteratorChain cannot be modified, false if it can
+ */
+ public boolean isLocked() {
+ return isLocked;
+ }
+
+ /**
+ * Checks whether the iterator chain is now locked and in use.
+ */
+ private void checkLocked() {
+ if (isLocked) {
+ throw new UnsupportedOperationException(
+ "IteratorChain cannot be changed after the first use of a method from the Iterator interface");
+ }
+ }
+
+ /**
+ * Lock the chain so no more iterators can be added. This must be called
+ * from all Iterator interface methods.
+ */
+ private void lockChain() {
+ if (!isLocked) {
+ isLocked = true;
+ }
+ }
+
+ /**
+ * Updates the current iterator field to ensure that the current Iterator is
+ * not exhausted
+ */
+ protected void updateCurrentIterator() {
+ if (currentIterator == null) {
+ if (iteratorChain.isEmpty()) {
+ currentIterator = Collections.emptyListIterator();
+ } else {
+ currentIterator = iteratorChain.remove();
+ }
+ // set last used iterator here, in case the user calls remove
+ // before calling hasNext() or next() (although they shouldn't)
+ lastUsedIterator = currentIterator;
+ }
+
+ while (!currentIterator.hasNext() && !iteratorChain.isEmpty()) {
+ currentIterator = iteratorChain.remove();
+ }
+ }
+
+ //-----------------------------------------------------------------------
+ /**
+ * Return true if any Iterator in the IteratorChain has a remaining element.
+ *
+ * @return true if elements remain
+ */
+ @Override
+ public boolean hasNext() {
+ lockChain();
+ updateCurrentIterator();
+ lastUsedIterator = currentIterator;
+
+ return currentIterator.hasNext();
+ }
+
+ /**
+ * Returns the next Object of the current Iterator
+ *
+ * @return Object from the current Iterator
+ * @throws java.util.NoSuchElementException if all the Iterators are
+ * exhausted
+ */
+ @Override
+ public E next() {
+ lockChain();
+ updateCurrentIterator();
+ lastUsedIterator = currentIterator;
+
+ return currentIterator.next();
+ }
+
+ /**
+ * Removes from the underlying collection the last element returned by the
+ * Iterator. As with next() and hasNext(), this method calls remove() on the
+ * underlying Iterator. Therefore, this method may throw an
+ * UnsupportedOperationException if the underlying Iterator does not support
+ * this method.
+ *
+ * @throws UnsupportedOperationException if the remove operator is not
+ * supported by the underlying Iterator
+ * @throws IllegalStateException if the next method has not yet been called,
+ * or the remove method has already been called after the last call to the
+ * next method.
+ */
+ @Override
+ public void remove() {
+ lockChain();
+ if (currentIterator == null) {
+ updateCurrentIterator();
+ }
+ lastUsedIterator.remove();
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/common/lib/src/main/java/org/apache/syncope/common/lib/info/SystemInfo.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/info/SystemInfo.java b/common/lib/src/main/java/org/apache/syncope/common/lib/info/SystemInfo.java
index 2a0f1f4..216316b 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/info/SystemInfo.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/info/SystemInfo.java
@@ -24,8 +24,8 @@ 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.queue.CircularFifoQueue;
import org.apache.syncope.common.lib.AbstractBaseBean;
+import org.apache.syncope.common.lib.collections.CircularFifoQueue;
@XmlRootElement(name = "systemInfo")
@XmlType
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/common/lib/src/main/java/org/apache/syncope/common/lib/jaxb/GenericMapType.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/jaxb/GenericMapType.java b/common/lib/src/main/java/org/apache/syncope/common/lib/jaxb/GenericMapType.java
index e57a401..48dca0b 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/jaxb/GenericMapType.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/jaxb/GenericMapType.java
@@ -28,9 +28,7 @@ public class GenericMapType<K, V> {
}
public GenericMapType(final Map<K, V> map) {
- for (Map.Entry<K, V> e : map.entrySet()) {
- entry.add(new GenericMapEntryType<>(e));
- }
+ map.entrySet().forEach(e -> entry.add(new GenericMapEntryType<>(e)));
}
public List<GenericMapEntryType<K, V>> getEntry() {
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/common/lib/src/main/java/org/apache/syncope/common/lib/jaxb/XmlGenericMapAdapter.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/jaxb/XmlGenericMapAdapter.java b/common/lib/src/main/java/org/apache/syncope/common/lib/jaxb/XmlGenericMapAdapter.java
index 1855164..63d6825 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/jaxb/XmlGenericMapAdapter.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/jaxb/XmlGenericMapAdapter.java
@@ -26,9 +26,7 @@ public class XmlGenericMapAdapter<K, V> extends XmlAdapter<GenericMapType<K, V>,
public Map<K, V> unmarshal(final GenericMapType<K, V> v) throws Exception {
Map<K, V> map = new HashMap<>();
- for (GenericMapEntryType<K, V> mapEntryType : v.getEntry()) {
- map.put(mapEntryType.getKey(), mapEntryType.getValue());
- }
+ v.getEntry().forEach(mapEntryType -> map.put(mapEntryType.getKey(), mapEntryType.getValue()));
return map;
}
@@ -37,12 +35,12 @@ public class XmlGenericMapAdapter<K, V> extends XmlAdapter<GenericMapType<K, V>,
public GenericMapType<K, V> marshal(final Map<K, V> v) throws Exception {
GenericMapType<K, V> mapType = new GenericMapType<>();
- for (Map.Entry<K, V> entry : v.entrySet()) {
+ v.entrySet().stream().map(entry -> {
GenericMapEntryType<K, V> mapEntryType = new GenericMapEntryType<>();
mapEntryType.setKey(entry.getKey());
mapEntryType.setValue(entry.getValue());
- mapType.getEntry().add(mapEntryType);
- }
+ return mapEntryType;
+ }).forEachOrdered(mapEntryType -> mapType.getEntry().add(mapEntryType));
return mapType;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/GroupPatch.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/GroupPatch.java b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/GroupPatch.java
index 0cf5f31..3bfaeab 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/GroupPatch.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/GroupPatch.java
@@ -24,13 +24,12 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
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 javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.common.lib.jaxb.XmlGenericMapAdapter;
import org.apache.syncope.common.lib.to.TypeExtensionTO;
@@ -92,14 +91,9 @@ public class GroupPatch extends AnyPatch {
}
@JsonIgnore
- public TypeExtensionTO getTypeExtension(final String anyType) {
- return IterableUtils.find(typeExtensions, new Predicate<TypeExtensionTO>() {
-
- @Override
- public boolean evaluate(final TypeExtensionTO typeExtension) {
- return anyType != null && anyType.equals(typeExtension.getAnyType());
- }
- });
+ public Optional<TypeExtensionTO> getTypeExtension(final String anyType) {
+ return typeExtensions.stream().filter(
+ typeExtension -> anyType != null && anyType.equals(typeExtension.getAnyType())).findFirst();
}
@XmlElementWrapper(name = "typeExtensions")
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/PasswordPatch.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/PasswordPatch.java b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/PasswordPatch.java
index 93e6b9e..b02e52e 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/PasswordPatch.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/PasswordPatch.java
@@ -27,7 +27,6 @@ import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.bind.annotation.XmlType;
-import org.apache.commons.collections4.CollectionUtils;
@XmlRootElement(name = "passwordPatch")
@XmlType
@@ -56,7 +55,9 @@ public class PasswordPatch extends StringReplacePatchItem {
}
public Builder resources(final String... resources) {
- CollectionUtils.addAll(getInstance().getResources(), resources);
+ for (String resource : resources) {
+ getInstance().getResources().add(resource);
+ }
return this;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/common/lib/src/main/java/org/apache/syncope/common/lib/search/SpecialAttr.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/search/SpecialAttr.java b/common/lib/src/main/java/org/apache/syncope/common/lib/search/SpecialAttr.java
index c744169..1a90376 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/search/SpecialAttr.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/search/SpecialAttr.java
@@ -19,8 +19,7 @@
package org.apache.syncope.common.lib.search;
import java.util.Arrays;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
+import java.util.Optional;
public enum SpecialAttr {
@@ -79,14 +78,8 @@ public enum SpecialAttr {
return literal;
}
- public static SpecialAttr fromString(final String value) {
- return IterableUtils.find(Arrays.asList(values()), new Predicate<SpecialAttr>() {
-
- @Override
- public boolean evaluate(final SpecialAttr specialAttr) {
- return specialAttr.literal.equals(value);
- }
- });
+ public static Optional<SpecialAttr> fromString(final String value) {
+ return Arrays.stream(values()).filter(specialAttr -> specialAttr.literal.equals(value)).findFirst();
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyObjectTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyObjectTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyObjectTO.java
index af8b0ea..7641687 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyObjectTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyObjectTO.java
@@ -22,12 +22,11 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.ArrayList;
import java.util.List;
+import java.util.Optional;
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;
@XmlRootElement(name = "anyObject")
@XmlType
@@ -53,14 +52,10 @@ public class AnyObjectTO extends AnyTO implements GroupableRelatableTO {
@JsonIgnore
@Override
- public RelationshipTO getRelationship(final String type, final String rightKey) {
- return IterableUtils.find(relationships, new Predicate<RelationshipTO>() {
-
- @Override
- public boolean evaluate(final RelationshipTO object) {
- return type.equals(object.getType()) && rightKey.equals(object.getRightKey());
- }
- });
+ public Optional<RelationshipTO> getRelationship(final String type, final String rightKey) {
+ return relationships.stream().filter(
+ relationship -> type.equals(relationship.getType()) && rightKey.equals(relationship.getRightKey())).
+ findFirst();
}
@XmlElementWrapper(name = "relationships")
@@ -73,14 +68,8 @@ public class AnyObjectTO extends AnyTO implements GroupableRelatableTO {
@JsonIgnore
@Override
- public MembershipTO getMembership(final String groupKey) {
- return IterableUtils.find(memberships, new Predicate<MembershipTO>() {
-
- @Override
- public boolean evaluate(final MembershipTO object) {
- return groupKey.equals(object.getGroupKey());
- }
- });
+ public Optional<MembershipTO> getMembership(final String groupKey) {
+ return memberships.stream().filter(membership -> groupKey.equals(membership.getGroupKey())).findFirst();
}
@XmlElementWrapper(name = "memberships")
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyTO.java
index 7796b62..e411e1a 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyTO.java
@@ -24,13 +24,12 @@ import com.fasterxml.jackson.annotation.JsonTypeInfo;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
+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.XmlSeeAlso;
import javax.xml.bind.annotation.XmlType;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
@XmlType
@XmlSeeAlso({ UserTO.class, GroupTO.class, AnyObjectTO.class })
@@ -117,14 +116,8 @@ public abstract class AnyTO extends AbstractAnnotatedBean implements EntityTO, A
@JsonIgnore
@Override
- public AttrTO getPlainAttr(final String schema) {
- return IterableUtils.find(plainAttrs, new Predicate<AttrTO>() {
-
- @Override
- public boolean evaluate(final AttrTO object) {
- return object.getSchema().equals(schema);
- }
- });
+ public Optional<AttrTO> getPlainAttr(final String schema) {
+ return plainAttrs.stream().filter(attr -> attr.getSchema().equals(schema)).findFirst();
}
@XmlElementWrapper(name = "derAttrs")
@@ -137,14 +130,8 @@ public abstract class AnyTO extends AbstractAnnotatedBean implements EntityTO, A
@JsonIgnore
@Override
- public AttrTO getDerAttr(final String schema) {
- return IterableUtils.find(derAttrs, new Predicate<AttrTO>() {
-
- @Override
- public boolean evaluate(final AttrTO object) {
- return object.getSchema().equals(schema);
- }
- });
+ public Optional<AttrTO> getDerAttr(final String schema) {
+ return derAttrs.stream().filter(attr -> attr.getSchema().equals(schema)).findFirst();
}
@XmlElementWrapper(name = "virAttrs")
@@ -157,14 +144,8 @@ public abstract class AnyTO extends AbstractAnnotatedBean implements EntityTO, A
@JsonIgnore
@Override
- public AttrTO getVirAttr(final String schema) {
- return IterableUtils.find(virAttrs, new Predicate<AttrTO>() {
-
- @Override
- public boolean evaluate(final AttrTO object) {
- return object.getSchema().equals(schema);
- }
- });
+ public Optional<AttrTO> getVirAttr(final String schema) {
+ return virAttrs.stream().filter(attr -> attr.getSchema().equals(schema)).findFirst();
}
@XmlElementWrapper(name = "resources")
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AttrTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AttrTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AttrTO.java
index 7822a6b..0c71ca6 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AttrTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AttrTO.java
@@ -28,7 +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.CollectionUtils;
@XmlRootElement(name = "attribute")
@XmlType
@@ -56,7 +55,9 @@ public class AttrTO extends AbstractBaseBean {
}
public Builder values(final String... values) {
- CollectionUtils.addAll(instance.getValues(), values);
+ for (String value : values) {
+ instance.getValues().add(value);
+ }
return this;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AttributableTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AttributableTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AttributableTO.java
index 79e57b8..d0f900c 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AttributableTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AttributableTO.java
@@ -18,19 +18,20 @@
*/
package org.apache.syncope.common.lib.to;
+import java.util.Optional;
import java.util.Set;
public interface AttributableTO {
Set<AttrTO> getPlainAttrs();
- AttrTO getPlainAttr(String schema);
+ Optional<AttrTO> getPlainAttr(String schema);
Set<AttrTO> getDerAttrs();
- AttrTO getDerAttr(String schema);
+ Optional<AttrTO> getDerAttr(String schema);
Set<AttrTO> getVirAttrs();
- AttrTO getVirAttr(String schema);
+ Optional<AttrTO> getVirAttr(String schema);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/common/lib/src/main/java/org/apache/syncope/common/lib/to/BulkActionResult.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/BulkActionResult.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/BulkActionResult.java
index c2e67f4..6458fdb 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/BulkActionResult.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/BulkActionResult.java
@@ -69,11 +69,9 @@ public class BulkActionResult extends AbstractBaseBean {
public List<String> getResultByStatus(final Status status) {
final List<String> result = new ArrayList<>();
- for (Map.Entry<String, Status> entry : results.entrySet()) {
- if (entry.getValue() == status) {
- result.add(entry.getKey());
- }
- }
+ results.entrySet().stream().
+ filter((entry) -> (entry.getValue() == status)).
+ forEachOrdered(entry -> result.add(entry.getKey()));
return Collections.unmodifiableList(result);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnInstanceTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnInstanceTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnInstanceTO.java
index 23fb590..76424fe 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnInstanceTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnInstanceTO.java
@@ -23,14 +23,13 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.ArrayList;
import java.util.EnumSet;
import java.util.List;
+import java.util.Optional;
import java.util.Set;
import javax.ws.rs.PathParam;
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.ConnConfProperty;
import org.apache.syncope.common.lib.types.ConnectorCapability;
@@ -122,14 +121,8 @@ public class ConnInstanceTO extends AbstractBaseBean implements EntityTO {
}
@JsonIgnore
- public ConnConfProperty getConf(final String schemaName) {
- return IterableUtils.find(conf, new Predicate<ConnConfProperty>() {
-
- @Override
- public boolean evaluate(final ConnConfProperty object) {
- return object.getSchema().getName().equals(schemaName);
- }
- });
+ public Optional<ConnConfProperty> getConf(final String schemaName) {
+ return conf.stream().filter(property -> property.getSchema().getName().equals(schemaName)).findFirst();
}
@XmlElementWrapper(name = "capabilities")
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnObjectTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnObjectTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnObjectTO.java
index 6301d68..6086066 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnObjectTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnObjectTO.java
@@ -21,13 +21,12 @@ package org.apache.syncope.common.lib.to;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.LinkedHashSet;
+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 = "connObject")
@@ -46,13 +45,7 @@ public class ConnObjectTO 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();
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/common/lib/src/main/java/org/apache/syncope/common/lib/to/GroupTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/GroupTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/GroupTO.java
index 0ae0885..c531840 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/GroupTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/GroupTO.java
@@ -24,13 +24,12 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
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 javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.common.lib.jaxb.XmlGenericMapAdapter;
import org.apache.syncope.common.lib.types.AnyTypeKind;
@@ -102,14 +101,10 @@ public class GroupTO extends AnyTO {
}
@JsonIgnore
- public TypeExtensionTO getTypeExtension(final String anyType) {
- return IterableUtils.find(typeExtensions, new Predicate<TypeExtensionTO>() {
-
- @Override
- public boolean evaluate(final TypeExtensionTO typeExtension) {
- return anyType != null && anyType.equals(typeExtension.getAnyType());
- }
- });
+ public Optional<TypeExtensionTO> getTypeExtension(final String anyType) {
+ return typeExtensions.stream().filter(
+ typeExtension -> anyType != null && anyType.equals(typeExtension.getAnyType())).
+ findFirst();
}
@XmlElementWrapper(name = "typeExtensions")
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/common/lib/src/main/java/org/apache/syncope/common/lib/to/GroupableRelatableTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/GroupableRelatableTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/GroupableRelatableTO.java
index f2b8dbc..37fcb3a 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/GroupableRelatableTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/GroupableRelatableTO.java
@@ -19,16 +19,17 @@
package org.apache.syncope.common.lib.to;
import java.util.List;
+import java.util.Optional;
public interface GroupableRelatableTO {
- MembershipTO getMembership(String groupKey);
+ Optional<MembershipTO> getMembership(String groupKey);
List<MembershipTO> getMemberships();
List<MembershipTO> getDynMemberships();
- RelationshipTO getRelationship(String type, String rightKey);
+ Optional<RelationshipTO> getRelationship(String type, String rightKey);
List<RelationshipTO> getRelationships();
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/common/lib/src/main/java/org/apache/syncope/common/lib/to/MappingTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/MappingTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/MappingTO.java
index 23c91ac..c3be6f2 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/MappingTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/MappingTO.java
@@ -25,8 +25,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;
@XmlRootElement(name = "mapping")
@@ -51,13 +49,7 @@ public class MappingTO extends AbstractBaseBean implements ItemContainerTO {
@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/common/lib/src/main/java/org/apache/syncope/common/lib/to/MembershipTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/MembershipTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/MembershipTO.java
index 5737c7f..9163aba 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/MembershipTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/MembershipTO.java
@@ -21,13 +21,12 @@ package org.apache.syncope.common.lib.to;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
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.types.AnyTypeKind;
@XmlRootElement(name = "membership")
@@ -111,14 +110,8 @@ public class MembershipTO extends RelationshipTO implements AttributableTO {
@JsonIgnore
@Override
- public AttrTO getPlainAttr(final String schema) {
- return IterableUtils.find(plainAttrs, new Predicate<AttrTO>() {
-
- @Override
- public boolean evaluate(final AttrTO object) {
- return object.getSchema().equals(schema);
- }
- });
+ public Optional<AttrTO> getPlainAttr(final String schema) {
+ return plainAttrs.stream().filter(attr -> attr.getSchema().equals(schema)).findFirst();
}
@XmlElementWrapper(name = "derAttrs")
@@ -131,14 +124,8 @@ public class MembershipTO extends RelationshipTO implements AttributableTO {
@JsonIgnore
@Override
- public AttrTO getDerAttr(final String schema) {
- return IterableUtils.find(derAttrs, new Predicate<AttrTO>() {
-
- @Override
- public boolean evaluate(final AttrTO object) {
- return object.getSchema().equals(schema);
- }
- });
+ public Optional<AttrTO> getDerAttr(final String schema) {
+ return derAttrs.stream().filter(attr -> attr.getSchema().equals(schema)).findFirst();
}
@XmlElementWrapper(name = "virAttrs")
@@ -151,13 +138,7 @@ public class MembershipTO extends RelationshipTO implements AttributableTO {
@JsonIgnore
@Override
- public AttrTO getVirAttr(final String schema) {
- return IterableUtils.find(virAttrs, new Predicate<AttrTO>() {
-
- @Override
- public boolean evaluate(final AttrTO object) {
- return object.getSchema().equals(schema);
- }
- });
+ public Optional<AttrTO> getVirAttr(final String schema) {
+ return virAttrs.stream().filter(attr -> attr.getSchema().equals(schema)).findFirst();
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/common/lib/src/main/java/org/apache/syncope/common/lib/to/OrgUnitTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/OrgUnitTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/OrgUnitTO.java
index c18b05e..ae4255f 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/OrgUnitTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/OrgUnitTO.java
@@ -25,8 +25,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;
@XmlRootElement(name = "orgUnit")
@@ -81,13 +79,7 @@ public class OrgUnitTO extends AbstractBaseBean implements EntityTO, ItemContain
@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/common/lib/src/main/java/org/apache/syncope/common/lib/to/ResourceTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ResourceTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ResourceTO.java
index 4bc9c0d..6286e93 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ResourceTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ResourceTO.java
@@ -23,14 +23,13 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.ArrayList;
import java.util.EnumSet;
import java.util.List;
+import java.util.Optional;
import java.util.Set;
import javax.ws.rs.PathParam;
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.ConnConfProperty;
import org.apache.syncope.common.lib.types.ConnectorCapability;
@@ -186,14 +185,10 @@ public class ResourceTO extends AbstractBaseBean implements EntityTO {
}
@JsonIgnore
- public ProvisionTO getProvision(final String anyType) {
- return IterableUtils.find(provisions, new Predicate<ProvisionTO>() {
-
- @Override
- public boolean evaluate(final ProvisionTO provisionTO) {
- return anyType != null && anyType.equals(provisionTO.getAnyType());
- }
- });
+ public Optional<ProvisionTO> getProvision(final String anyType) {
+ return provisions.stream().filter(
+ provision -> anyType != null && anyType.equals(provision.getAnyType())).
+ findFirst();
}
@XmlElementWrapper(name = "provisions")
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/common/lib/src/main/java/org/apache/syncope/common/lib/to/UserTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/UserTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/UserTO.java
index 6deab32..3e9cd4d 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/UserTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/UserTO.java
@@ -24,12 +24,11 @@ import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import java.util.Optional;
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.commons.lang3.builder.ReflectionToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.apache.syncope.common.lib.types.AnyTypeKind;
@@ -197,14 +196,10 @@ public class UserTO extends AnyTO implements GroupableRelatableTO {
@JsonIgnore
@Override
- public RelationshipTO getRelationship(final String type, final String rightKey) {
- return IterableUtils.find(relationships, new Predicate<RelationshipTO>() {
-
- @Override
- public boolean evaluate(final RelationshipTO object) {
- return type.equals(object.getType()) && rightKey.equals(object.getRightKey());
- }
- });
+ public Optional<RelationshipTO> getRelationship(final String type, final String rightKey) {
+ return relationships.stream().filter(
+ relationship -> type.equals(relationship.getType()) && rightKey.equals(relationship.getRightKey())).
+ findFirst();
}
@XmlElementWrapper(name = "relationships")
@@ -217,14 +212,8 @@ public class UserTO extends AnyTO implements GroupableRelatableTO {
@JsonIgnore
@Override
- public MembershipTO getMembership(final String groupKey) {
- return IterableUtils.find(memberships, new Predicate<MembershipTO>() {
-
- @Override
- public boolean evaluate(final MembershipTO object) {
- return groupKey.equals(object.getGroupKey());
- }
- });
+ public Optional<MembershipTO> getMembership(final String groupKey) {
+ return memberships.stream().filter(membership -> groupKey.equals(membership.getGroupKey())).findFirst();
}
@XmlElementWrapper(name = "memberships")
[07/16] syncope git commit: [SYNCOPE-938] Switching from
commons-collections to Java 8 features
Posted by il...@apache.org.
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/utils/RealmUtils.java
----------------------------------------------------------------------
diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/utils/RealmUtils.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/utils/RealmUtils.java
index a21e1de..c4de549 100644
--- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/utils/RealmUtils.java
+++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/utils/RealmUtils.java
@@ -21,9 +21,8 @@ package org.apache.syncope.core.provisioning.api.utils;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
+import java.util.function.Predicate;
+import java.util.stream.Collectors;
public final class RealmUtils {
@@ -52,9 +51,7 @@ public final class RealmUtils {
public static Set<String> normalize(final Collection<String> realms) {
Set<String> normalized = new HashSet<>();
if (realms != null) {
- for (String realm : realms) {
- normalizingAddTo(normalized, realm);
- }
+ realms.forEach(realm -> normalizingAddTo(normalized, realm));
}
return normalized;
@@ -69,14 +66,8 @@ public final class RealmUtils {
}
@Override
- public boolean evaluate(final String realm) {
- return IterableUtils.matchesAny(targets, new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String target) {
- return realm.startsWith(target);
- }
- });
+ public boolean test(final String realm) {
+ return targets.stream().anyMatch(target -> realm.startsWith(target));
}
}
@@ -84,7 +75,7 @@ public final class RealmUtils {
public static class DynRealmsPredicate implements Predicate<String> {
@Override
- public boolean evaluate(final String realm) {
+ public boolean test(final String realm) {
return !realm.startsWith("/");
}
}
@@ -95,11 +86,13 @@ public final class RealmUtils {
requested.add(requestedRealm);
Set<String> effective = new HashSet<>();
- CollectionUtils.select(requested, new StartsWithPredicate(allowed), effective);
- CollectionUtils.select(allowed, new StartsWithPredicate(requested), effective);
+ effective.addAll(requested.stream().filter(new StartsWithPredicate(allowed)).collect(Collectors.toSet()));
+ effective.addAll(allowed.stream().filter(new StartsWithPredicate(requested)).collect(Collectors.toSet()));
// includes dynamic realms
- CollectionUtils.select(allowedRealms, new DynRealmsPredicate(), effective);
+ if (allowedRealms != null) {
+ effective.addAll(allowedRealms.stream().filter(new DynRealmsPredicate()).collect(Collectors.toSet()));
+ }
return effective;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/ConnectorFacadeProxy.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/ConnectorFacadeProxy.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/ConnectorFacadeProxy.java
index 2b42e91..f1c463d 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/ConnectorFacadeProxy.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/ConnectorFacadeProxy.java
@@ -20,14 +20,11 @@ package org.apache.syncope.core.provisioning.java;
import java.io.File;
import java.net.URI;
-import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
-import org.apache.syncope.common.lib.types.ConnConfProperty;
+import java.util.stream.Collectors;
import org.apache.syncope.common.lib.types.ConnectorCapability;
import org.apache.syncope.core.persistence.api.entity.ConnInstance;
import org.apache.syncope.core.provisioning.api.ConnIdBundleManager;
@@ -108,12 +105,12 @@ public class ConnectorFacadeProxy implements Connector {
// set connector configuration according to conninstance's
ConfigurationProperties properties = apiConfig.getConfigurationProperties();
- for (ConnConfProperty property : connInstance.getConf()) {
- if (property.getValues() != null && !property.getValues().isEmpty()) {
- properties.setPropertyValue(property.getSchema().getName(),
- getPropertyValue(property.getSchema().getType(), property.getValues()));
- }
- }
+ connInstance.getConf().stream().
+ filter(property -> (property.getValues() != null && !property.getValues().isEmpty())).
+ forEachOrdered(property -> {
+ properties.setPropertyValue(property.getSchema().getName(),
+ getPropertyValue(property.getSchema().getType(), property.getValues()));
+ });
// set pooling configuration (if supported) according to conninstance's
if (connInstance.getPoolConf() != null) {
@@ -476,13 +473,9 @@ public class ConnectorFacadeProxy implements Connector {
if (pagedResultsCookie != null) {
builder.setPagedResultsCookie(pagedResultsCookie);
}
- builder.setSortKeys(CollectionUtils.collect(orderBy, new Transformer<OrderByClause, SortKey>() {
-
- @Override
- public SortKey transform(final OrderByClause clause) {
- return new SortKey(clause.getField(), clause.getDirection() == OrderByClause.Direction.ASC);
- }
- }, new ArrayList<SortKey>(orderBy.size())));
+ builder.setSortKeys(orderBy.stream().map(clause
+ -> new SortKey(clause.getField(), clause.getDirection() == OrderByClause.Direction.ASC)).
+ collect(Collectors.toList()));
builder.setAttributesToGet(options.getAttributesToGet());
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultAnyObjectProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultAnyObjectProvisioningManager.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultAnyObjectProvisioningManager.java
index 9b23633..0113ebf 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultAnyObjectProvisioningManager.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultAnyObjectProvisioningManager.java
@@ -22,8 +22,7 @@ import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Set;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang3.tuple.ImmutablePair;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.common.lib.patch.AnyObjectPatch;
import org.apache.syncope.common.lib.to.PropagationStatus;
@@ -84,7 +83,7 @@ public class DefaultAnyObjectProvisioningManager implements AnyObjectProvisionin
excludedResources);
PropagationReporter propagationReporter = taskExecutor.execute(tasks, nullPriorityAsync);
- return new ImmutablePair<>(created.getResult(), propagationReporter.getStatuses());
+ return Pair.of(created.getResult(), propagationReporter.getStatuses());
}
@Override
@@ -111,7 +110,7 @@ public class DefaultAnyObjectProvisioningManager implements AnyObjectProvisionin
excludedResources);
PropagationReporter propagationReporter = taskExecutor.execute(tasks, nullPriorityAsync);
- return new ImmutablePair<>(updated.getResult(), propagationReporter.getStatuses());
+ return Pair.of(updated.getResult(), propagationReporter.getStatuses());
}
@Override
@@ -189,7 +188,9 @@ public class DefaultAnyObjectProvisioningManager implements AnyObjectProvisionin
AnyTypeKind.ANY_OBJECT,
key,
propByRes,
- CollectionUtils.removeAll(anyObjectDAO.findAllResourceKeys(key), resources));
+ anyObjectDAO.findAllResourceKeys(key).stream().
+ filter(resource -> !resources.contains(resource)).
+ collect(Collectors.toList()));
PropagationReporter propagationReporter = taskExecutor.execute(tasks, nullPriorityAsync);
return propagationReporter.getStatuses();
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultGroupProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultGroupProvisioningManager.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultGroupProvisioningManager.java
index 31a2833..141561b 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultGroupProvisioningManager.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultGroupProvisioningManager.java
@@ -23,11 +23,11 @@ import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.Collections;
+import java.util.Optional;
import java.util.Set;
-import org.apache.commons.collections4.CollectionUtils;
+import java.util.stream.Collectors;
import org.springframework.beans.factory.annotation.Autowired;
import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.common.lib.patch.GroupPatch;
import org.apache.syncope.common.lib.to.AttrTO;
@@ -81,7 +81,7 @@ public class DefaultGroupProvisioningManager implements GroupProvisioningManager
Collections.<String>emptySet());
PropagationReporter propagationReporter = taskExecutor.execute(tasks, nullPriorityAsync);
- return new ImmutablePair<>(created.getResult(), propagationReporter.getStatuses());
+ return Pair.of(created.getResult(), propagationReporter.getStatuses());
}
@Transactional(propagation = Propagation.REQUIRES_NEW)
@@ -95,9 +95,9 @@ public class DefaultGroupProvisioningManager implements GroupProvisioningManager
WorkflowResult<String> created = gwfAdapter.create(groupTO);
// see ConnObjectUtils#getAnyTOFromConnObject for GroupOwnerSchema
- AttrTO groupOwner = groupTO.getPlainAttr(StringUtils.EMPTY);
- if (groupOwner != null) {
- groupOwnerMap.put(created.getResult(), groupOwner.getValues().iterator().next());
+ Optional<AttrTO> groupOwner = groupTO.getPlainAttr(StringUtils.EMPTY);
+ if (groupOwner.isPresent()) {
+ groupOwnerMap.put(created.getResult(), groupOwner.get().getValues().iterator().next());
}
List<PropagationTask> tasks = propagationManager.getCreateTasks(
@@ -108,7 +108,7 @@ public class DefaultGroupProvisioningManager implements GroupProvisioningManager
excludedResources);
PropagationReporter propagationReporter = taskExecutor.execute(tasks, nullPriorityAsync);
- return new ImmutablePair<>(created.getResult(), propagationReporter.getStatuses());
+ return Pair.of(created.getResult(), propagationReporter.getStatuses());
}
@Override
@@ -133,7 +133,7 @@ public class DefaultGroupProvisioningManager implements GroupProvisioningManager
excludedResources);
PropagationReporter propagationReporter = taskExecutor.execute(tasks, nullPriorityAsync);
- return new ImmutablePair<>(updated.getResult(), propagationReporter.getStatuses());
+ return Pair.of(updated.getResult(), propagationReporter.getStatuses());
}
@Override
@@ -150,24 +150,22 @@ public class DefaultGroupProvisioningManager implements GroupProvisioningManager
// Generate propagation tasks for deleting users and any objects from group resources,
// if they are on those resources only because of the reason being deleted (see SYNCOPE-357)
- for (Map.Entry<String, PropagationByResource> entry
- : groupDataBinder.findUsersWithTransitiveResources(key).entrySet()) {
-
- tasks.addAll(propagationManager.getDeleteTasks(
- AnyTypeKind.USER,
- entry.getKey(),
- entry.getValue(),
- excludedResources));
- }
- for (Map.Entry<String, PropagationByResource> entry
- : groupDataBinder.findAnyObjectsWithTransitiveResources(key).entrySet()) {
-
- tasks.addAll(propagationManager.getDeleteTasks(
- AnyTypeKind.ANY_OBJECT,
- entry.getKey(),
- entry.getValue(),
- excludedResources));
- }
+ groupDataBinder.findUsersWithTransitiveResources(key).entrySet().
+ forEach(entry -> {
+ tasks.addAll(propagationManager.getDeleteTasks(
+ AnyTypeKind.USER,
+ entry.getKey(),
+ entry.getValue(),
+ excludedResources));
+ });
+ groupDataBinder.findAnyObjectsWithTransitiveResources(key).entrySet().
+ forEach(entry -> {
+ tasks.addAll(propagationManager.getDeleteTasks(
+ AnyTypeKind.ANY_OBJECT,
+ entry.getKey(),
+ entry.getValue(),
+ excludedResources));
+ });
// Generate propagation tasks for deleting this group from resources
tasks.addAll(propagationManager.getDeleteTasks(
@@ -220,7 +218,9 @@ public class DefaultGroupProvisioningManager implements GroupProvisioningManager
AnyTypeKind.GROUP,
key,
propByRes,
- CollectionUtils.removeAll(groupDAO.findAllResourceKeys(key), resources));
+ groupDAO.findAllResourceKeys(key).stream().
+ filter(resource -> !resources.contains(resource)).
+ collect(Collectors.toList()));
PropagationReporter propagationReporter = taskExecutor.execute(tasks, nullPriorityAsync);
return propagationReporter.getStatuses();
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultUserProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultUserProvisioningManager.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultUserProvisioningManager.java
index d59af7b..eda96c4 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultUserProvisioningManager.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultUserProvisioningManager.java
@@ -23,8 +23,7 @@ import java.util.Collections;
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.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.common.lib.patch.PasswordPatch;
@@ -109,7 +108,7 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager {
excludedResources);
PropagationReporter propagationReporter = taskExecutor.execute(tasks, nullPriorityAsync);
- return new ImmutablePair<>(created.getResult().getLeft(), propagationReporter.getStatuses());
+ return Pair.of(created.getResult().getLeft(), propagationReporter.getStatuses());
}
@Override
@@ -119,7 +118,7 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager {
List<PropagationTask> tasks = propagationManager.getUserUpdateTasks(updated);
PropagationReporter propagationReporter = taskExecutor.execute(tasks, nullPriorityAsync);
- return new ImmutablePair<>(updated.getResult().getLeft().getKey(), propagationReporter.getStatuses());
+ return Pair.of(updated.getResult().getLeft().getKey(), propagationReporter.getStatuses());
}
@Override
@@ -148,9 +147,9 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager {
result.setStatus(ProvisioningReport.Status.FAILURE);
result.setMessage("Update failed, trying to pull status anyway (if configured)\n" + e.getMessage());
- updated = new WorkflowResult<Pair<UserPatch, Boolean>>(
- new ImmutablePair<>(userPatch, false), new PropagationByResource(),
- new HashSet<String>());
+ updated = new WorkflowResult<>(
+ Pair.of(userPatch, false), new PropagationByResource(),
+ new HashSet<>());
}
if (enabled != null) {
@@ -178,7 +177,7 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager {
updated, updated.getResult().getLeft().getPassword() != null, excludedResources);
PropagationReporter propagationReporter = taskExecutor.execute(tasks, nullPriorityAsync);
- return new ImmutablePair<>(updated.getResult().getLeft().getKey(), propagationReporter.getStatuses());
+ return Pair.of(updated.getResult().getLeft().getKey(), propagationReporter.getStatuses());
}
@Override
@@ -234,7 +233,7 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager {
? uwfAdapter.activate(statusPatch.getKey(), statusPatch.getToken())
: new WorkflowResult<>(statusPatch.getKey(), null, statusPatch.getType().name().toLowerCase());
- return new ImmutablePair<>(updated.getResult(), propagateStatus(statusPatch, nullPriorityAsync));
+ return Pair.of(updated.getResult(), propagateStatus(statusPatch, nullPriorityAsync));
}
@Override
@@ -245,7 +244,7 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager {
? uwfAdapter.reactivate(statusPatch.getKey())
: new WorkflowResult<>(statusPatch.getKey(), null, statusPatch.getType().name().toLowerCase());
- return new ImmutablePair<>(updated.getResult(), propagateStatus(statusPatch, nullPriorityAsync));
+ return Pair.of(updated.getResult(), propagateStatus(statusPatch, nullPriorityAsync));
}
@Override
@@ -256,7 +255,7 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager {
? uwfAdapter.suspend(statusPatch.getKey())
: new WorkflowResult<>(statusPatch.getKey(), null, statusPatch.getType().name().toLowerCase());
- return new ImmutablePair<>(updated.getResult(), propagateStatus(statusPatch, nullPriorityAsync));
+ return Pair.of(updated.getResult(), propagateStatus(statusPatch, nullPriorityAsync));
}
protected List<PropagationStatus> propagateStatus(
@@ -288,7 +287,7 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager {
List<PropagationTask> tasks = propagationManager.getUserUpdateTasks(
new WorkflowResult<Pair<UserPatch, Boolean>>(
- new ImmutablePair<>(userPatch, Boolean.FALSE),
+ Pair.of(userPatch, Boolean.FALSE),
updated.getLeft().getPropByRes(), updated.getLeft().getPerformedTasks()));
taskExecutor.execute(tasks, false);
}
@@ -304,14 +303,9 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager {
UserPatch userPatch = new UserPatch();
userPatch.setKey(key);
- userPatch.getResources().addAll(CollectionUtils.collect(resources,
- new Transformer<String, StringPatchItem>() {
-
- @Override
- public StringPatchItem transform(final String input) {
- return new StringPatchItem.Builder().operation(PatchOperation.ADD_REPLACE).value(input).build();
- }
- }, new HashSet<StringPatchItem>()));
+ userPatch.getResources().addAll(resources.stream().map(resource
+ -> new StringPatchItem.Builder().operation(PatchOperation.ADD_REPLACE).value(resource).build()).
+ collect(Collectors.toSet()));
if (changePwd) {
PasswordPatch passwordPatch = new PasswordPatch();
@@ -324,7 +318,7 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager {
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 = propagationManager.getUserUpdateTasks(wfResult, changePwd, null);
@@ -344,7 +338,9 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager {
AnyTypeKind.USER,
key,
propByRes,
- CollectionUtils.removeAll(userDAO.findAllResourceKeys(key), resources));
+ userDAO.findAllResourceKeys(key).stream().
+ filter(resource -> !resources.contains(resource)).
+ collect(Collectors.toList()));
PropagationReporter propagationReporter = taskExecutor.execute(tasks, nullPriorityAsync);
return propagationReporter.getStatuses();
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/MappingManagerImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/MappingManagerImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/MappingManagerImpl.java
index 54ada98..1597b11 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/MappingManagerImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/MappingManagerImpl.java
@@ -22,9 +22,8 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
+import java.util.Optional;
import java.util.Set;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.ListUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.reflect.FieldUtils;
import org.apache.commons.lang3.tuple.Pair;
@@ -159,26 +158,26 @@ public class MappingManagerImpl implements MappingManager {
try {
Pair<String, Attribute> preparedAttr = prepareAttr(provision, mapItem, any, password);
if (preparedAttr != null) {
- if (preparedAttr.getKey() != null) {
- connObjectKey = preparedAttr.getKey();
+ if (preparedAttr.getLeft() != null) {
+ connObjectKey = preparedAttr.getLeft();
}
- if (preparedAttr.getValue() != null) {
- Attribute alreadyAdded = AttributeUtil.find(preparedAttr.getValue().getName(), attributes);
+ if (preparedAttr.getRight() != null) {
+ Attribute alreadyAdded = AttributeUtil.find(preparedAttr.getRight().getName(), attributes);
if (alreadyAdded == null) {
- attributes.add(preparedAttr.getValue());
+ attributes.add(preparedAttr.getRight());
} else {
attributes.remove(alreadyAdded);
Set<Object> values = new HashSet<>();
- if (CollectionUtils.isNotEmpty(alreadyAdded.getValue())) {
+ if (alreadyAdded.getValue() != null && !alreadyAdded.getValue().isEmpty()) {
values.addAll(alreadyAdded.getValue());
}
- values.addAll(preparedAttr.getValue().getValue());
+ values.addAll(preparedAttr.getRight().getValue());
- attributes.add(AttributeBuilder.build(preparedAttr.getValue().getName(), values));
+ attributes.add(AttributeBuilder.build(preparedAttr.getRight().getName(), values));
}
}
}
@@ -188,11 +187,11 @@ public class MappingManagerImpl implements MappingManager {
}
Attribute connObjectKeyExtAttr =
- AttributeUtil.find(MappingUtils.getConnObjectKeyItem(provision).getExtAttrName(), attributes);
+ AttributeUtil.find(MappingUtils.getConnObjectKeyItem(provision).get().getExtAttrName(), attributes);
if (connObjectKeyExtAttr != null) {
attributes.remove(connObjectKeyExtAttr);
attributes.add(AttributeBuilder.build(
- MappingUtils.getConnObjectKeyItem(provision).getExtAttrName(), connObjectKey));
+ MappingUtils.getConnObjectKeyItem(provision).get().getExtAttrName(), connObjectKey));
}
attributes.add(MappingUtils.evaluateNAME(any, provision, connObjectKey));
@@ -257,7 +256,7 @@ public class MappingManagerImpl implements MappingManager {
attributes.remove(alreadyAdded);
Set<Object> values = new HashSet<>();
- if (CollectionUtils.isNotEmpty(alreadyAdded.getValue())) {
+ if (alreadyAdded.getValue() != null && !alreadyAdded.getValue().isEmpty()) {
values.addAll(alreadyAdded.getValue());
}
values.add(value);
@@ -267,10 +266,11 @@ public class MappingManagerImpl implements MappingManager {
}
Attribute connObjectKeyExtAttr =
- AttributeUtil.find(orgUnit.getConnObjectKeyItem().getExtAttrName(), attributes);
+ AttributeUtil.find(orgUnit.getConnObjectKeyItem().get().getExtAttrName(), attributes);
if (connObjectKeyExtAttr != null) {
attributes.remove(connObjectKeyExtAttr);
- attributes.add(AttributeBuilder.build(orgUnit.getConnObjectKeyItem().getExtAttrName(), connObjectKey));
+ attributes.add(
+ AttributeBuilder.build(orgUnit.getConnObjectKeyItem().get().getExtAttrName(), connObjectKey));
}
attributes.add(MappingUtils.evaluateNAME(realm, orgUnit, connObjectKey));
@@ -412,7 +412,7 @@ public class MappingManagerImpl implements MappingManager {
}
} else if (intAttrName.getMembershipOfGroup() != null) {
Group group = groupDAO.findByName(intAttrName.getMembershipOfGroup());
- membership = groupableRelatable.getMembership(group.getKey());
+ membership = groupableRelatable.getMembership(group.getKey()).orElse(null);
}
}
if (reference == null) {
@@ -498,18 +498,16 @@ public class MappingManagerImpl implements MappingManager {
case PLAIN:
PlainAttr<?> attr;
if (membership == null) {
- attr = reference.getPlainAttr(intAttrName.getSchemaName());
+ attr = reference.getPlainAttr(intAttrName.getSchemaName()).orElse(null);
} else {
attr = ((GroupableRelatable<?, ?, ?, ?, ?>) reference).getPlainAttr(
- intAttrName.getSchemaName(), membership);
+ intAttrName.getSchemaName(), membership).orElse(null);
}
if (attr != null) {
if (attr.getUniqueValue() != null) {
values.add(anyUtils.clonePlainAttrValue(attr.getUniqueValue()));
} else if (attr.getValues() != null) {
- for (PlainAttrValue value : attr.getValues()) {
- values.add(anyUtils.clonePlainAttrValue(value));
- }
+ attr.getValues().forEach(value -> values.add(anyUtils.clonePlainAttrValue(value)));
}
}
break;
@@ -541,11 +539,13 @@ public class MappingManagerImpl implements MappingManager {
List<String> virValues = membership == null
? virAttrHandler.getValues(reference, virSchema)
: virAttrHandler.getValues(reference, membership, virSchema);
- for (String value : virValues) {
- PlainAttrValue attrValue = anyUtils.newPlainAttrValue();
- attrValue.setStringValue(value);
- values.add(attrValue);
- }
+ virValues.stream().
+ map(value -> {
+ PlainAttrValue attrValue = anyUtils.newPlainAttrValue();
+ attrValue.setStringValue(value);
+ return attrValue;
+ }).
+ forEachOrdered(attrValue -> values.add(attrValue));
}
break;
@@ -570,7 +570,7 @@ public class MappingManagerImpl implements MappingManager {
private String getGroupOwnerValue(final Provision provision, final Any<?> any) {
Pair<String, Attribute> preparedAttr =
- prepareAttr(provision, MappingUtils.getConnObjectKeyItem(provision), any, null);
+ prepareAttr(provision, MappingUtils.getConnObjectKeyItem(provision).get(), any, null);
String connObjectKey = preparedAttr.getKey();
return MappingUtils.evaluateNAME(any, provision, connObjectKey).getNameValue();
@@ -578,22 +578,22 @@ public class MappingManagerImpl implements MappingManager {
@Transactional(readOnly = true)
@Override
- public String getConnObjectKeyValue(final Any<?> any, final Provision provision) {
- MappingItem mapItem = provision.getMapping().getConnObjectKeyItem();
+ public Optional<String> getConnObjectKeyValue(final Any<?> any, final Provision provision) {
+ MappingItem mapItem = provision.getMapping().getConnObjectKeyItem().get();
List<PlainAttrValue> values = getIntValues(
provision,
mapItem,
intAttrNameParser.parse(mapItem.getIntAttrName(), provision.getAnyType().getKind()),
any);
- return values.isEmpty()
+ return Optional.ofNullable(values.isEmpty()
? null
- : values.get(0).getValueAsString();
+ : values.get(0).getValueAsString());
}
@Transactional(readOnly = true)
@Override
public String getConnObjectKeyValue(final Realm realm, final OrgUnit orgUnit) {
- OrgUnitItem orgUnitItem = orgUnit.getConnObjectKeyItem();
+ OrgUnitItem orgUnitItem = orgUnit.getConnObjectKeyItem().get();
return getIntValue(realm, orgUnitItem);
}
@@ -610,7 +610,7 @@ public class MappingManagerImpl implements MappingManager {
values = transformer.beforePull(mapItem, anyTO, values);
}
}
- values = ListUtils.emptyIfNull(values);
+ values = values == null ? Collections.emptyList() : values;
IntAttrName intAttrName =
intAttrNameParser.parse(mapItem.getIntAttrName(), anyUtils.getAnyTypeKind());
@@ -707,12 +707,13 @@ public class MappingManagerImpl implements MappingManager {
if (groupableTO == null || group == null) {
anyTO.getPlainAttrs().add(attrTO);
} else {
- MembershipTO membership = groupableTO.getMembership(group.getKey());
- if (membership == null) {
- membership = new MembershipTO.Builder().group(group.getKey(), group.getName()).build();
- groupableTO.getMemberships().add(membership);
+ Optional<MembershipTO> membership = groupableTO.getMembership(group.getKey());
+ if (!membership.isPresent()) {
+ membership = Optional.of(
+ new MembershipTO.Builder().group(group.getKey(), group.getName()).build());
+ groupableTO.getMemberships().add(membership.get());
}
- membership.getPlainAttrs().add(attrTO);
+ membership.get().getPlainAttrs().add(attrTO);
}
break;
@@ -722,12 +723,13 @@ public class MappingManagerImpl implements MappingManager {
if (groupableTO == null || group == null) {
anyTO.getDerAttrs().add(attrTO);
} else {
- MembershipTO membership = groupableTO.getMembership(group.getKey());
- if (membership == null) {
- membership = new MembershipTO.Builder().group(group.getKey(), group.getName()).build();
- groupableTO.getMemberships().add(membership);
+ Optional<MembershipTO> membership = groupableTO.getMembership(group.getKey());
+ if (!membership.isPresent()) {
+ membership = Optional.of(
+ new MembershipTO.Builder().group(group.getKey(), group.getName()).build());
+ groupableTO.getMemberships().add(membership.get());
}
- membership.getDerAttrs().add(attrTO);
+ membership.get().getDerAttrs().add(attrTO);
}
break;
@@ -736,23 +738,22 @@ public class MappingManagerImpl implements MappingManager {
attrTO.setSchema(intAttrName.getSchemaName());
// virtual attributes don't get transformed, iterate over original attr.getValue()
- for (Object value : (attr == null || attr.getValue() == null)
- ? Collections.emptyList() : attr.getValue()) {
-
- if (value != null) {
- attrTO.getValues().add(value.toString());
- }
+ if (attr != null && attr.getValue() != null && !attr.getValue().isEmpty()) {
+ attr.getValue().stream().
+ filter(value -> value != null).
+ forEachOrdered(value -> attrTO.getValues().add(value.toString()));
}
if (groupableTO == null || group == null) {
anyTO.getVirAttrs().add(attrTO);
} else {
- MembershipTO membership = groupableTO.getMembership(group.getKey());
- if (membership == null) {
- membership = new MembershipTO.Builder().group(group.getKey(), group.getName()).build();
- groupableTO.getMemberships().add(membership);
+ Optional<MembershipTO> membership = groupableTO.getMembership(group.getKey());
+ if (!membership.isPresent()) {
+ membership = Optional.of(
+ new MembershipTO.Builder().group(group.getKey(), group.getName()).build());
+ groupableTO.getMemberships().add(membership.get());
}
- membership.getVirAttrs().add(attrTO);
+ membership.get().getVirAttrs().add(attrTO);
}
break;
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/VirAttrHandlerImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/VirAttrHandlerImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/VirAttrHandlerImpl.java
index a074848..2caac56 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/VirAttrHandlerImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/VirAttrHandlerImpl.java
@@ -23,8 +23,8 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import java.util.Set;
-import org.apache.commons.collections4.ListUtils;
import org.apache.syncope.core.persistence.api.entity.Any;
import org.apache.syncope.core.persistence.api.entity.AnyUtilsFactory;
import org.apache.syncope.core.persistence.api.entity.Membership;
@@ -98,15 +98,15 @@ public class VirAttrHandlerImpl implements VirAttrHandler {
for (Map.Entry<Provision, Set<VirSchema>> entry : toRead.entrySet()) {
LOG.debug("About to read from {}: {}", entry.getKey(), entry.getValue());
- MappingItem connObjectKeyItem = MappingUtils.getConnObjectKeyItem(entry.getKey());
- String connObjectKeyValue = connObjectKeyItem == null
- ? null
- : mappingManager.getConnObjectKeyValue(any, entry.getKey());
- if (connObjectKeyItem == null) {
+ Optional<MappingItem> connObjectKeyItem = MappingUtils.getConnObjectKeyItem(entry.getKey());
+ String connObjectKeyValue = connObjectKeyItem.isPresent()
+ ? mappingManager.getConnObjectKeyValue(any, entry.getKey()).orElse(null)
+ : null;
+ if (!connObjectKeyItem.isPresent()) {
LOG.error("No ConnObjectKey found for {}, ignoring...", entry.getKey());
} else {
Set<MappingItem> linkingMappingItems = new HashSet<>();
- linkingMappingItems.add(connObjectKeyItem);
+ linkingMappingItems.add(connObjectKeyItem.get());
for (VirSchema schema : entry.getValue()) {
linkingMappingItems.add(schema.asLinkingMappingItem());
}
@@ -115,14 +115,14 @@ public class VirAttrHandlerImpl implements VirAttrHandler {
try {
ConnectorObject connectorObject = connector.getObject(
entry.getKey().getObjectClass(),
- AttributeBuilder.build(connObjectKeyItem.getExtAttrName(), connObjectKeyValue),
+ AttributeBuilder.build(connObjectKeyItem.get().getExtAttrName(), connObjectKeyValue),
MappingUtils.buildOperationOptions(linkingMappingItems.iterator()));
if (connectorObject == null) {
LOG.debug("No read from {} with filter '{} == {}'",
- entry.getKey(), connObjectKeyItem.getExtAttrName(), connObjectKeyValue);
+ entry.getKey(), connObjectKeyItem.get().getExtAttrName(), connObjectKeyValue);
} else {
- for (VirSchema schema : entry.getValue()) {
+ entry.getValue().forEach(schema -> {
Attribute attr = connectorObject.getAttributeByName(schema.getExtAttrName());
if (attr != null) {
VirAttrCacheValue virAttrCacheValue = new VirAttrCacheValue();
@@ -134,7 +134,7 @@ public class VirAttrHandlerImpl implements VirAttrHandler {
result.put(schema, virAttrCacheValue.getValues());
}
- }
+ });
}
} catch (Exception e) {
LOG.error("Error reading from {}", entry.getKey(), e);
@@ -154,7 +154,8 @@ public class VirAttrHandlerImpl implements VirAttrHandler {
return Collections.emptyList();
}
- return ListUtils.emptyIfNull(getValues(any, Collections.singleton(schema)).get(schema));
+ List<String> result = getValues(any, Collections.singleton(schema)).get(schema);
+ return result == null ? Collections.emptyList() : result;
}
@Override
@@ -166,7 +167,8 @@ public class VirAttrHandlerImpl implements VirAttrHandler {
return Collections.emptyList();
}
- return ListUtils.emptyIfNull(getValues(any, Collections.singleton(schema)).get(schema));
+ List<String> result = getValues(any, Collections.singleton(schema)).get(schema);
+ return result == null ? Collections.emptyList() : result;
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AbstractAnyDataBinder.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AbstractAnyDataBinder.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AbstractAnyDataBinder.java
index c950a6f..dbf992b 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AbstractAnyDataBinder.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AbstractAnyDataBinder.java
@@ -24,8 +24,9 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import java.util.Set;
-import org.apache.commons.collections4.CollectionUtils;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.SyncopeClientCompositeException;
import org.apache.syncope.common.lib.SyncopeClientException;
@@ -81,7 +82,6 @@ import org.apache.syncope.core.provisioning.api.MappingManager;
import org.apache.syncope.core.provisioning.api.PropagationByResource;
import org.apache.syncope.core.provisioning.api.VirAttrHandler;
import org.apache.syncope.core.provisioning.api.data.SchemaDataBinder;
-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.provisioning.java.utils.MappingUtils;
@@ -193,7 +193,7 @@ abstract class AbstractAnyDataBinder {
? Collections.<String>emptyList()
: Collections.singletonList(values.iterator().next()));
- for (String value : valuesProvided) {
+ valuesProvided.forEach(value -> {
if (StringUtils.isBlank(value)) {
LOG.debug("Null value for {}, ignoring", schema.getKey());
} else {
@@ -205,22 +205,22 @@ abstract class AbstractAnyDataBinder {
invalidValues.getElements().add(schema.getKey() + ": " + value + " - " + e.getMessage());
}
}
- }
+ });
}
private List<String> evaluateMandatoryCondition(final Provision provision, final Any<?> any) {
List<String> missingAttrNames = new ArrayList<>();
- for (MappingItem mapItem : MappingUtils.getPropagationItems(provision)) {
- IntAttrName intAttrName =
- intAttrNameParser.parse(mapItem.getIntAttrName(), provision.getAnyType().getKind());
+ MappingUtils.getPropagationItems(provision).forEach(mapItem -> {
+ IntAttrName intAttrName = intAttrNameParser.
+ parse(mapItem.getIntAttrName(), provision.getAnyType().getKind());
if (intAttrName.getSchemaType() != null) {
List<PlainAttrValue> values = mappingManager.getIntValues(provision, mapItem, intAttrName, any);
if (values.isEmpty() && JexlUtils.evaluateMandatoryCondition(mapItem.getMandatoryCondition(), any)) {
missingAttrNames.add(mapItem.getIntAttrName());
}
}
- }
+ });
return missingAttrNames;
}
@@ -228,17 +228,17 @@ abstract class AbstractAnyDataBinder {
private SyncopeClientException checkMandatoryOnResources(final Any<?> any, final Set<ExternalResource> resources) {
SyncopeClientException reqValMissing = SyncopeClientException.build(ClientExceptionType.RequiredValuesMissing);
- for (ExternalResource resource : resources) {
- Provision provision = resource.getProvision(any.getType());
- if (resource.isEnforceMandatoryCondition() && provision != null) {
- List<String> missingAttrNames = evaluateMandatoryCondition(provision, any);
+ resources.forEach(resource -> {
+ Optional<? extends Provision> provision = resource.getProvision(any.getType());
+ if (resource.isEnforceMandatoryCondition() && provision.isPresent()) {
+ List<String> missingAttrNames = evaluateMandatoryCondition(provision.get(), any);
if (!missingAttrNames.isEmpty()) {
LOG.error("Mandatory schemas {} not provided with values", missingAttrNames);
reqValMissing.getElements().addAll(missingAttrNames);
}
}
- }
+ });
return reqValMissing;
}
@@ -264,18 +264,20 @@ abstract class AbstractAnyDataBinder {
// Check if there is some mandatory schema defined for which no value has been provided
AllowedSchemas<PlainSchema> allowedPlainSchemas = anyUtils.getAllowedSchemas(any, PlainSchema.class);
- for (PlainSchema schema : allowedPlainSchemas.getForSelf()) {
- checkMandatory(schema, any.getPlainAttr(schema.getKey()), any, reqValMissing);
- }
- for (Map.Entry<Group, Set<PlainSchema>> entry : allowedPlainSchemas.getForMemberships().entrySet()) {
- if (any instanceof GroupableRelatable) {
- GroupableRelatable<?, ?, ?, ?, ?> groupable = GroupableRelatable.class.cast(any);
- Membership<?> membership = groupable.getMembership(entry.getKey().getKey());
- for (PlainSchema schema : entry.getValue()) {
- checkMandatory(schema, groupable.getPlainAttr(schema.getKey(), membership), any, reqValMissing);
- }
- }
- }
+ allowedPlainSchemas.getForSelf().
+ forEach(schema -> {
+ checkMandatory(schema, any.getPlainAttr(schema.getKey()).orElse(null), any, reqValMissing);
+ });
+ allowedPlainSchemas.getForMemberships().entrySet().stream().
+ filter(entry -> any instanceof GroupableRelatable).
+ forEachOrdered(entry -> {
+ GroupableRelatable<?, ?, ?, ?, ?> groupable = GroupableRelatable.class.cast(any);
+ Membership<?> membership = groupable.getMembership(entry.getKey().getKey()).orElse(null);
+ entry.getValue().forEach(schema -> {
+ checkMandatory(schema, groupable.getPlainAttr(schema.getKey(), membership).orElse(null),
+ any, reqValMissing);
+ });
+ });
return reqValMissing;
}
@@ -302,11 +304,11 @@ abstract class AbstractAnyDataBinder {
plainAttrValueDAO.delete(attr.getUniqueValue().getKey(), anyUtils.plainAttrUniqueValueClass());
}
} else {
- Collection<String> valuesToBeRemoved =
- CollectionUtils.collect(attr.getValues(), EntityUtils.keyTransformer());
- for (String attrValueKey : valuesToBeRemoved) {
+ Collection<String> valuesToBeRemoved = attr.getValues().stream().
+ map(value -> value.getKey()).collect(Collectors.toSet());
+ valuesToBeRemoved.forEach(attrValueKey -> {
plainAttrValueDAO.delete(attrValueKey, anyUtils.plainAttrValueClass());
- }
+ });
}
// 1.2 add values
@@ -330,17 +332,16 @@ abstract class AbstractAnyDataBinder {
plainAttrDAO.delete(attr.getKey(), anyUtils.plainAttrClass());
}
- for (ExternalResource resource : resources) {
- for (MappingItem item : MappingUtils.getPropagationItems(resource.getProvision(any.getType()))) {
- if (schema.getKey().equals(item.getIntAttrName())) {
- propByRes.add(ResourceOperation.UPDATE, resource.getKey());
-
- if (item.isConnObjectKey() && !attr.getValuesAsStrings().isEmpty()) {
- propByRes.addOldConnObjectKey(resource.getKey(), attr.getValuesAsStrings().get(0));
- }
- }
- }
- }
+ resources.forEach(resource -> {
+ MappingUtils.getPropagationItems(resource.getProvision(any.getType()).get()).stream().
+ filter(item -> (schema.getKey().equals(item.getIntAttrName()))).
+ forEachOrdered(item -> {
+ propByRes.add(ResourceOperation.UPDATE, resource.getKey());
+ if (item.isConnObjectKey() && !attr.getValuesAsStrings().isEmpty()) {
+ propByRes.addOldConnObjectKey(resource.getKey(), attr.getValuesAsStrings().get(0));
+ }
+ });
+ });
}
@SuppressWarnings({ "unchecked", "rawtypes" })
@@ -394,31 +395,30 @@ abstract class AbstractAnyDataBinder {
SyncopeClientException invalidValues = SyncopeClientException.build(ClientExceptionType.InvalidValues);
// 3. plain attributes
- for (AttrPatch patch : anyPatch.getPlainAttrs()) {
- if (patch.getAttrTO() != null) {
- PlainSchema schema = getPlainSchema(patch.getAttrTO().getSchema());
- if (schema == null) {
- LOG.debug("Invalid " + PlainSchema.class.getSimpleName()
- + "{}, ignoring...", patch.getAttrTO().getSchema());
- } else {
- PlainAttr<?> attr = any.getPlainAttr(schema.getKey());
- if (attr == null) {
- LOG.debug("No plain attribute found for schema {}", schema);
+ anyPatch.getPlainAttrs().stream().
+ filter(patch -> patch.getAttrTO() != null).forEach(patch -> {
+ PlainSchema schema = getPlainSchema(patch.getAttrTO().getSchema());
+ if (schema == null) {
+ LOG.debug("Invalid " + PlainSchema.class.getSimpleName()
+ + "{}, ignoring...", patch.getAttrTO().getSchema());
+ } else {
+ PlainAttr<?> attr = (PlainAttr<?>) any.getPlainAttr(schema.getKey()).orElse(null);
+ if (attr == null) {
+ LOG.debug("No plain attribute found for schema {}", schema);
- if (patch.getOperation() == PatchOperation.ADD_REPLACE) {
- attr = anyUtils.newPlainAttr();
- ((PlainAttr) attr).setOwner(any);
- attr.setSchema(schema);
- any.add(attr);
+ if (patch.getOperation() == PatchOperation.ADD_REPLACE) {
+ attr = anyUtils.newPlainAttr();
+ ((PlainAttr) attr).setOwner(any);
+ attr.setSchema(schema);
+ any.add(attr);
- }
- }
- if (attr != null) {
- processAttrPatch(any, patch, schema, attr, anyUtils, resources, propByRes, invalidValues);
}
}
+ if (attr != null) {
+ processAttrPatch(any, patch, schema, attr, anyUtils, resources, propByRes, invalidValues);
+ }
}
- }
+ });
if (!invalidValues.isEmpty()) {
scce.addException(invalidValues);
}
@@ -444,39 +444,39 @@ abstract class AbstractAnyDataBinder {
// 0. aux classes
any.getAuxClasses().clear();
- for (String className : anyTO.getAuxClasses()) {
- AnyTypeClass auxClass = anyTypeClassDAO.find(className);
- if (auxClass == null) {
- LOG.debug("Invalid " + AnyTypeClass.class.getSimpleName() + "{}, ignoring...", auxClass);
- } else {
- any.add(auxClass);
- }
- }
+ anyTO.getAuxClasses().stream().
+ map(className -> anyTypeClassDAO.find(className)).
+ forEachOrdered(auxClass -> {
+ if (auxClass == null) {
+ LOG.debug("Invalid " + AnyTypeClass.class.getSimpleName() + "{}, ignoring...", auxClass);
+ } else {
+ any.add(auxClass);
+ }
+ });
// 1. attributes
SyncopeClientException invalidValues = SyncopeClientException.build(ClientExceptionType.InvalidValues);
- for (AttrTO attrTO : anyTO.getPlainAttrs()) {
- // Only consider attributeTO with values
- if (!attrTO.getValues().isEmpty()) {
- PlainSchema schema = getPlainSchema(attrTO.getSchema());
- if (schema != null) {
- PlainAttr attr = any.getPlainAttr(schema.getKey());
- if (attr == null) {
- attr = anyUtils.newPlainAttr();
- attr.setOwner(any);
- attr.setSchema(schema);
- }
- fillAttr(attrTO.getValues(), anyUtils, schema, attr, invalidValues);
+ anyTO.getPlainAttrs().stream().
+ filter(attrTO -> !attrTO.getValues().isEmpty()).
+ forEach(attrTO -> {
+ PlainSchema schema = getPlainSchema(attrTO.getSchema());
+ if (schema != null) {
+ PlainAttr<?> attr = (PlainAttr<?>) any.getPlainAttr(schema.getKey()).orElse(null);
+ if (attr == null) {
+ attr = anyUtils.newPlainAttr();
+ ((PlainAttr) attr).setOwner(any);
+ attr.setSchema(schema);
+ }
+ fillAttr(attrTO.getValues(), anyUtils, schema, attr, invalidValues);
- if (attr.getValuesAsStrings().isEmpty()) {
- attr.setOwner(null);
- } else {
- any.add(attr);
+ if (attr.getValuesAsStrings().isEmpty()) {
+ attr.setOwner(null);
+ } else {
+ any.add(attr);
+ }
}
- }
- }
- }
+ });
if (!invalidValues.isEmpty()) {
scce.addException(invalidValues);
@@ -488,14 +488,14 @@ abstract class AbstractAnyDataBinder {
}
// 2. resources
- for (String resourceKey : anyTO.getResources()) {
+ anyTO.getResources().forEach(resourceKey -> {
ExternalResource resource = resourceDAO.find(resourceKey);
if (resource == null) {
LOG.debug("Invalid " + ExternalResource.class.getSimpleName() + "{}, ignoring...", resourceKey);
} else {
any.add(resource);
}
- }
+ });
requiredValuesMissing = checkMandatoryOnResources(any, anyUtils.getAllResources(any));
if (!requiredValuesMissing.isEmpty()) {
@@ -513,28 +513,28 @@ abstract class AbstractAnyDataBinder {
SyncopeClientException invalidValues = SyncopeClientException.build(ClientExceptionType.InvalidValues);
- for (AttrTO attrTO : membershipTO.getPlainAttrs()) {
- if (!attrTO.getValues().isEmpty()) {
- PlainSchema schema = getPlainSchema(attrTO.getSchema());
- if (schema != null) {
- GroupablePlainAttr attr = GroupableRelatable.class.cast(any).
- getPlainAttr(schema.getKey(), membership);
- if (attr == null) {
- attr = anyUtils.newPlainAttr();
- attr.setOwner(any);
- attr.setMembership(membership);
- attr.setSchema(schema);
- }
- fillAttr(attrTO.getValues(), anyUtils, schema, attr, invalidValues);
+ membershipTO.getPlainAttrs().stream().
+ filter(attrTO -> !attrTO.getValues().isEmpty()).
+ forEach(attrTO -> {
+ PlainSchema schema = getPlainSchema(attrTO.getSchema());
+ if (schema != null) {
+ GroupablePlainAttr attr = (GroupablePlainAttr) GroupableRelatable.class.cast(any).
+ getPlainAttr(schema.getKey(), membership).orElse(null);
+ if (attr == null) {
+ attr = anyUtils.newPlainAttr();
+ attr.setOwner(any);
+ attr.setMembership(membership);
+ attr.setSchema(schema);
+ }
+ fillAttr(attrTO.getValues(), anyUtils, schema, attr, invalidValues);
- if (attr.getValuesAsStrings().isEmpty()) {
- attr.setOwner(null);
- } else {
- any.add(attr);
+ if (attr.getValuesAsStrings().isEmpty()) {
+ attr.setOwner(null);
+ } else {
+ any.add(attr);
+ }
}
- }
- }
- }
+ });
if (!invalidValues.isEmpty()) {
scce.addException(invalidValues);
@@ -553,41 +553,47 @@ abstract class AbstractAnyDataBinder {
anyTO.setRealm(realmFullPath);
- CollectionUtils.collect(auxClasses, EntityUtils.<AnyTypeClass>keyTransformer(), anyTO.getAuxClasses());
+ anyTO.getAuxClasses().addAll(auxClasses.stream().map(cls -> cls.getKey()).collect(Collectors.toList()));
- for (PlainAttr<?> plainAttr : plainAttrs) {
+ plainAttrs.stream().map(plainAttr -> {
AttrTO.Builder attrTOBuilder = new AttrTO.Builder().
schema(plainAttr.getSchema().getKey()).
values(plainAttr.getValuesAsStrings());
if (details) {
attrTOBuilder.schemaInfo(schemaDataBinder.getPlainSchemaTO(plainAttr.getSchema()));
}
+ return attrTOBuilder;
+ }).forEachOrdered(attrTOBuilder -> {
anyTO.getPlainAttrs().add(attrTOBuilder.build());
- }
+ });
- for (Map.Entry<DerSchema, String> entry : derAttrs.entrySet()) {
+ derAttrs.entrySet().stream().map(entry -> {
AttrTO.Builder attrTOBuilder = new AttrTO.Builder().
schema(entry.getKey().getKey()).
value(entry.getValue());
if (details) {
attrTOBuilder.schemaInfo(schemaDataBinder.getDerSchemaTO(entry.getKey()));
}
+ return attrTOBuilder;
+ }).forEachOrdered(attrTOBuilder -> {
anyTO.getDerAttrs().add(attrTOBuilder.build());
- }
+ });
- for (Map.Entry<VirSchema, List<String>> entry : virAttrs.entrySet()) {
+ virAttrs.entrySet().stream().map(entry -> {
AttrTO.Builder attrTOBuilder = new AttrTO.Builder().
schema(entry.getKey().getKey()).
values(entry.getValue());
if (details) {
attrTOBuilder.schemaInfo(schemaDataBinder.getVirSchemaTO(entry.getKey()));
}
+ return attrTOBuilder;
+ }).forEachOrdered(attrTOBuilder -> {
anyTO.getVirAttrs().add(attrTOBuilder.build());
- }
+ });
- for (ExternalResource resource : resources) {
+ resources.forEach(resource -> {
anyTO.getResources().add(resource.getKey());
- }
+ });
}
protected RelationshipTO getRelationshipTO(final Relationship<? extends Any<?>, AnyObject> relationship) {
@@ -607,29 +613,29 @@ abstract class AbstractAnyDataBinder {
group(membership.getRightEnd().getKey(), membership.getRightEnd().getName()).
build();
- for (PlainAttr<?> plainAttr : plainAttrs) {
+ plainAttrs.forEach(plainAttr -> {
membershipTO.getPlainAttrs().add(new AttrTO.Builder().
schema(plainAttr.getSchema().getKey()).
values(plainAttr.getValuesAsStrings()).
schemaInfo(schemaDataBinder.getPlainSchemaTO(plainAttr.getSchema())).
build());
- }
+ });
- for (Map.Entry<DerSchema, String> entry : derAttrs.entrySet()) {
+ derAttrs.entrySet().forEach(entry -> {
membershipTO.getDerAttrs().add(new AttrTO.Builder().
schema(entry.getKey().getKey()).
value(entry.getValue()).
schemaInfo(schemaDataBinder.getDerSchemaTO(entry.getKey())).
build());
- }
+ });
- for (Map.Entry<VirSchema, List<String>> entry : virAttrs.entrySet()) {
+ virAttrs.entrySet().forEach(entry -> {
membershipTO.getVirAttrs().add(new AttrTO.Builder().
schema(entry.getKey().getKey()).
values(entry.getValue()).
schemaInfo(schemaDataBinder.getVirSchemaTO(entry.getKey())).
build());
- }
+ });
return membershipTO;
}
@@ -643,18 +649,18 @@ abstract class AbstractAnyDataBinder {
? anyObjectDAO.findAllResources((AnyObject) any)
: ((Group) any).getResources();
for (ExternalResource resource : iterable) {
- Provision provision = resource.getProvision(any.getType());
- if (provision != null && provision.getMapping() != null) {
- MappingItem connObjectKeyItem = MappingUtils.getConnObjectKeyItem(provision);
- if (connObjectKeyItem == null) {
+ Optional<? extends Provision> provision = resource.getProvision(any.getType());
+ if (provision.isPresent() && provision.get().getMapping() != null) {
+ Optional<MappingItem> connObjectKeyItem = MappingUtils.getConnObjectKeyItem(provision.get());
+ if (!connObjectKeyItem.isPresent()) {
throw new NotFoundException(
"ConnObjectKey mapping for " + any.getType().getKey() + " " + any.getKey()
+ " on resource '" + resource.getKey() + "'");
}
- String connObjectKey = mappingManager.getConnObjectKeyValue(any, provision);
- if (connObjectKey != null) {
- connObjectKeys.put(resource.getKey(), connObjectKey);
+ Optional<String> connObjectKey = mappingManager.getConnObjectKeyValue(any, provision.get());
+ if (connObjectKey.isPresent()) {
+ connObjectKeys.put(resource.getKey(), connObjectKey.get());
}
}
}
[14/16] syncope git commit: [SYNCOPE-938] Switching from
commons-collections to Java 8 features
Posted by il...@apache.org.
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportletDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportletDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportletDirectoryPanel.java
index a5a1a6e..7a2b4ed 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportletDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportletDirectoryPanel.java
@@ -26,9 +26,7 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Predicate;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.SerializationUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
@@ -104,7 +102,7 @@ public class ReportletDirectoryPanel extends DirectoryPanel<
protected List<IColumn<ReportletWrapper, String>> getColumns() {
final List<IColumn<ReportletWrapper, String>> columns = new ArrayList<>();
- columns.add(new PropertyColumn<ReportletWrapper, String>(
+ columns.add(new PropertyColumn<>(
new StringResourceModel("reportlet", this), "name", "name"));
columns.add(new AbstractColumn<ReportletWrapper, String>(
@@ -117,6 +115,7 @@ public class ReportletDirectoryPanel extends DirectoryPanel<
final Item<ICellPopulator<ReportletWrapper>> cellItem,
final String componentId,
final IModel<ReportletWrapper> rowModel) {
+
cellItem.add(new Label(componentId, rowModel.getObject().getConf().getClass().getName()));
}
});
@@ -164,13 +163,8 @@ public class ReportletDirectoryPanel extends DirectoryPanel<
final ReportletConf reportlet = model.getObject().getConf();
try {
final ReportTO actual = restClient.read(report);
- CollectionUtils.filter(actual.getReportletConfs(), new Predicate<ReportletConf>() {
-
- @Override
- public boolean evaluate(final ReportletConf object) {
- return !object.getName().equals(reportlet.getName());
- }
- });
+ actual.getReportletConfs().removeAll(actual.getReportletConfs().stream().
+ filter(conf -> conf.getName().equals(reportlet.getName())).collect(Collectors.toList()));
restClient.update(actual);
SyncopeConsoleSession.get().info(getString(Constants.OPERATION_SUCCEEDED));
customActionOnFinishCallback(target);
@@ -239,15 +233,9 @@ public class ReportletDirectoryPanel extends DirectoryPanel<
public Iterator<ReportletWrapper> iterator(final long first, final long count) {
final ReportTO actual = restClient.read(report);
- final ArrayList<ReportletWrapper> reportlets = CollectionUtils.collect(
- actual.getReportletConfs(),
- new Transformer<AbstractReportletConf, ReportletWrapper>() {
-
- @Override
- public ReportletWrapper transform(final AbstractReportletConf input) {
- return new ReportletWrapper(input.getName()).setName(input.getName()).setConf(input);
- }
- }, new ArrayList<ReportletWrapper>());
+ final List<ReportletWrapper> reportlets = actual.getReportletConfs().stream().
+ map(conf -> new ReportletWrapper(conf.getName()).setName(conf.getName()).setConf(conf)).
+ collect(Collectors.toList());
Collections.sort(reportlets, comparator);
return reportlets.subList((int) first, (int) (first + count)).iterator();
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportletWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportletWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportletWizardBuilder.java
index 7156acf..cf69215 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportletWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportletWizardBuilder.java
@@ -20,14 +20,9 @@ package org.apache.syncope.client.console.reports;
import java.io.Serializable;
import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Predicate;
-import org.apache.commons.lang3.tuple.Pair;
+import java.util.stream.Collectors;
import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.client.console.panels.BeanPanel;
-import org.apache.syncope.client.console.panels.search.SearchClause;
import org.apache.syncope.client.console.panels.search.SearchUtils;
import org.apache.syncope.client.console.rest.ReportRestClient;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDropDownChoicePanel;
@@ -41,7 +36,6 @@ import org.apache.wicket.extensions.wizard.WizardStep;
import org.apache.wicket.model.PropertyModel;
import org.springframework.beans.BeanWrapper;
import org.springframework.beans.PropertyAccessorFactory;
-import org.apache.syncope.common.lib.search.AbstractFiqlSearchConditionBuilder;
import org.apache.wicket.model.LoadableDetachableModel;
public class ReportletWizardBuilder extends AjaxWizardBuilder<ReportletDirectoryPanel.ReportletWrapper> {
@@ -69,23 +63,18 @@ public class ReportletWizardBuilder extends AjaxWizardBuilder<ReportletDirectory
if (modelObject.isNew()) {
reportTO.getReportletConfs().add(modelObject.getConf());
} else {
- CollectionUtils.filter(
- reportTO.getReportletConfs(), new Predicate<AbstractReportletConf>() {
-
- @Override
- public boolean evaluate(final AbstractReportletConf object) {
- return !object.getName().equals(modelObject.getOldName());
- }
- });
+ reportTO.getReportletConfs().removeAll(
+ reportTO.getReportletConfs().stream().
+ filter(object -> object.getName().equals(modelObject.getOldName())).
+ collect(Collectors.toList()));
reportTO.getReportletConfs().add(modelObject.getConf());
}
BeanWrapper wrapper = PropertyAccessorFactory.forBeanPropertyAccess(modelObject.getConf());
- for (Map.Entry<String, Pair<AbstractFiqlSearchConditionBuilder, List<SearchClause>>> entry
- : modelObject.getSCondWrapper().entrySet()) {
+ modelObject.getSCondWrapper().entrySet().forEach(entry -> {
wrapper.setPropertyValue(entry.getKey(),
SearchUtils.buildFIQL(entry.getValue().getRight(), entry.getValue().getLeft()));
- }
+ });
restClient.update(reportTO);
return modelObject;
@@ -106,7 +95,7 @@ public class ReportletWizardBuilder extends AjaxWizardBuilder<ReportletDirectory
public Profile(final ReportletDirectoryPanel.ReportletWrapper reportlet) {
final AjaxTextFieldPanel name = new AjaxTextFieldPanel(
- "name", "reportlet", new PropertyModel<String>(reportlet, "name"), false);
+ "name", "reportlet", new PropertyModel<>(reportlet, "name"), false);
name.addRequiredLabel();
name.setEnabled(true);
add(name);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/resources/AbstractWorkflowResource.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/resources/AbstractWorkflowResource.java b/client/console/src/main/java/org/apache/syncope/client/console/resources/AbstractWorkflowResource.java
index 85a2cbc..b76bd9e 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/resources/AbstractWorkflowResource.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/resources/AbstractWorkflowResource.java
@@ -19,8 +19,6 @@
package org.apache.syncope.client.console.resources;
import javax.ws.rs.NotFoundException;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.client.console.commons.Constants;
import org.apache.syncope.client.console.rest.WorkflowRestClient;
import org.apache.syncope.common.lib.to.WorkflowDefinitionTO;
@@ -42,13 +40,8 @@ abstract class AbstractWorkflowResource extends AbstractResource {
attributes.getRequest().getQueryParameters().getParameterValue(Constants.MODEL_ID_PARAM);
WorkflowDefinitionTO workflowDefinition = modelId == null || modelId.isNull() ? null
- : IterableUtils.find(restClient.getDefinitions(), new Predicate<WorkflowDefinitionTO>() {
-
- @Override
- public boolean evaluate(final WorkflowDefinitionTO object) {
- return modelId.toString().equals(object.getModelId());
- }
- });
+ : restClient.getDefinitions().stream().
+ filter(object -> modelId.toString().equals(object.getModelId())).findAny().orElse(null);
if (workflowDefinition == null) {
throw new NotFoundException("Workflow definition with modelId " + modelId);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/rest/AnyTypeRestClient.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/AnyTypeRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/AnyTypeRestClient.java
index fc1e004..5db9f07 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/rest/AnyTypeRestClient.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/AnyTypeRestClient.java
@@ -22,7 +22,7 @@ import java.io.Serializable;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
-import org.apache.commons.collections4.ComparatorUtils;
+import org.apache.commons.lang3.ObjectUtils;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.common.lib.to.AnyTypeTO;
@@ -94,7 +94,7 @@ public class AnyTypeRestClient extends BaseRestClient {
if (o2.getKind() == AnyTypeKind.GROUP) {
return 1;
}
- return ComparatorUtils.<String>naturalComparator().compare(o1.getKey(), o2.getKey());
+ return ObjectUtils.compare(o1.getKey(), o2.getKey());
}
}
@@ -122,7 +122,7 @@ public class AnyTypeRestClient extends BaseRestClient {
if (AnyTypeKind.GROUP.name().equals(2)) {
return 1;
}
- return ComparatorUtils.<String>naturalComparator().compare(o1, o2);
+ return ObjectUtils.compare(o1, o2);
}
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/rest/ConnectorRestClient.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/ConnectorRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/ConnectorRestClient.java
index 5f1d41b..729ea53 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/rest/ConnectorRestClient.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/ConnectorRestClient.java
@@ -22,11 +22,9 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
+import java.util.Optional;
+import java.util.stream.Collectors;
import javax.ws.rs.core.Response;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
-import org.apache.commons.collections4.Transformer;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.common.lib.SyncopeClientException;
@@ -71,14 +69,8 @@ public class ConnectorRestClient extends BaseRestClient {
ConnectorService service = getService(ConnectorService.class);
ConnInstanceTO connInstance = service.read(connectorKey, SyncopeConsoleSession.get().getLocale().getLanguage());
if (connInstance != null) {
- CollectionUtils.collect(service.buildObjectClassInfo(connInstance, true),
- new Transformer<ConnIdObjectClassTO, String>() {
-
- @Override
- public String transform(final ConnIdObjectClassTO input) {
- return input.getType();
- }
- }, result);
+ result.addAll(service.buildObjectClassInfo(connInstance, true).stream().
+ map(input -> input.getType()).collect(Collectors.toList()));
}
return result;
@@ -92,16 +84,11 @@ public class ConnectorRestClient extends BaseRestClient {
connInstanceTO.getConf().addAll(conf);
// SYNCOPE-156: use provided info to give schema names (and type!) by ObjectClass
- ConnIdObjectClassTO connIdObjectClass = IterableUtils.find(
- buildObjectClassInfo(connInstanceTO, false), new Predicate<ConnIdObjectClassTO>() {
+ Optional<ConnIdObjectClassTO> connIdObjectClass = buildObjectClassInfo(connInstanceTO, false).stream().
+ filter(object -> object.getType().equalsIgnoreCase(objectClass)).
+ findAny();
- @Override
- public boolean evaluate(final ConnIdObjectClassTO object) {
- return object.getType().equalsIgnoreCase(objectClass);
- }
- });
-
- return connIdObjectClass == null ? new ArrayList<String>() : connIdObjectClass.getAttributes();
+ return connIdObjectClass.isPresent() ? connIdObjectClass.get().getAttributes() : new ArrayList<>();
}
/**
@@ -152,22 +139,23 @@ public class ConnectorRestClient extends BaseRestClient {
private List<ConnConfProperty> filterProperties(final Collection<ConnConfProperty> properties) {
List<ConnConfProperty> newProperties = new ArrayList<>();
- for (ConnConfProperty property : properties) {
+ properties.stream().map(property -> {
ConnConfProperty prop = new ConnConfProperty();
prop.setSchema(property.getSchema());
prop.setOverridable(property.isOverridable());
-
final List<Object> parsed = new ArrayList<>();
if (property.getValues() != null) {
- for (Object obj : property.getValues()) {
- if (obj != null && !obj.toString().isEmpty()) {
- parsed.add(obj);
- }
- }
+ property.getValues().stream().
+ filter(obj -> (obj != null && !obj.toString().isEmpty())).
+ forEachOrdered((obj) -> {
+ parsed.add(obj);
+ });
}
prop.getValues().addAll(parsed);
+ return prop;
+ }).forEachOrdered(prop -> {
newProperties.add(prop);
- }
+ });
return newProperties;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/rest/LoggerRestClient.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/LoggerRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/LoggerRestClient.java
index 818a8d2..a4c7825 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/rest/LoggerRestClient.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/LoggerRestClient.java
@@ -25,9 +25,8 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.ComparatorUtils;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
+import org.apache.commons.lang3.ObjectUtils;
import org.apache.syncope.common.lib.log.EventCategoryTO;
import org.apache.syncope.common.lib.log.LogAppender;
import org.apache.syncope.common.lib.log.LogStatementTO;
@@ -43,37 +42,25 @@ public class LoggerRestClient extends BaseRestClient {
private static final long serialVersionUID = 4579786978763032240L;
public List<String> listMemoryAppenders() {
- return CollectionUtils.collect(getService(LoggerService.class).memoryAppenders(),
- new Transformer<LogAppender, String>() {
-
- @Override
- public String transform(final LogAppender input) {
- return input.getName();
- }
- }, new ArrayList<String>());
+ return getService(LoggerService.class).memoryAppenders().stream().
+ map(LogAppender::getName).collect(Collectors.toList());
}
public List<LogStatementTO> getLastLogStatements(final String appender, final long lastStatementTime) {
List<LogStatementTO> result = new ArrayList<>();
- for (LogStatementTO statement : getService(LoggerService.class).getLastLogStatements(appender)) {
- if (statement.getTimeMillis() > lastStatementTime) {
- result.add(statement);
- }
- }
+ getService(LoggerService.class).getLastLogStatements(appender).stream().
+ filter(statement -> statement.getTimeMillis() > lastStatementTime).
+ forEachOrdered(statement -> {
+ result.add(statement);
+ });
return result;
}
public List<LoggerTO> listLogs() {
List<LoggerTO> logs = getService(LoggerService.class).list(LoggerType.LOG);
- Collections.sort(logs, ComparatorUtils.transformedComparator(
- ComparatorUtils.<String>naturalComparator(), new Transformer<LoggerTO, String>() {
+ Collections.sort(logs, (o1, o2) -> ObjectUtils.compare(o1.getKey(), o2.getKey()));
- @Override
- public String transform(final LoggerTO input) {
- return input.getKey();
- }
- }));
return logs;
}
@@ -83,13 +70,13 @@ public class LoggerRestClient extends BaseRestClient {
public Map<String, Set<AuditLoggerName>> listAuditsByCategory() {
Map<String, Set<AuditLoggerName>> result = new HashMap<>();
- for (AuditLoggerName audit : listAudits()) {
+ listAudits().forEach(audit -> {
if (!result.containsKey(audit.getCategory())) {
- result.put(audit.getCategory(), new HashSet<AuditLoggerName>());
+ result.put(audit.getCategory(), new HashSet<>());
}
result.get(audit.getCategory()).add(audit);
- }
+ });
return result;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/rest/ResourceRestClient.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/ResourceRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/ResourceRestClient.java
index d3b6903..e1f8f78 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/rest/ResourceRestClient.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/ResourceRestClient.java
@@ -20,10 +20,9 @@ package org.apache.syncope.client.console.rest;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.Comparator;
import java.util.List;
import javax.ws.rs.core.Response;
-import org.apache.commons.collections4.ComparatorUtils;
+import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.common.lib.patch.ResourceDeassociationPatch;
import org.apache.syncope.common.lib.to.BulkActionResult;
@@ -95,13 +94,7 @@ public class ResourceRestClient extends BaseRestClient {
List<ResourceTO> resources = Collections.emptyList();
try {
resources = getService(ResourceService.class).list();
- Collections.sort(resources, new Comparator<ResourceTO>() {
-
- @Override
- public int compare(final ResourceTO o1, final ResourceTO o2) {
- return ComparatorUtils.<String>naturalComparator().compare(o1.getKey(), o2.getKey());
- }
- });
+ Collections.sort(resources, (o1, o2) -> ObjectUtils.compare(o1.getKey(), o2.getKey()));
} catch (Exception e) {
LOG.error("Could not fetch the Resource list", e);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/rest/SchemaRestClient.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/SchemaRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/SchemaRestClient.java
index 600afb3..c64846d 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/rest/SchemaRestClient.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/SchemaRestClient.java
@@ -19,13 +19,14 @@
package org.apache.syncope.client.console.rest;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
+import java.util.stream.Collectors;
import org.apache.syncope.common.lib.SyncopeClientException;
-import org.apache.syncope.common.lib.EntityTOUtils;
import org.apache.syncope.common.lib.to.AbstractSchemaTO;
import org.apache.syncope.common.lib.to.AnyTypeTO;
import org.apache.syncope.common.lib.to.DerSchemaTO;
+import org.apache.syncope.common.lib.to.EntityTO;
import org.apache.syncope.common.lib.to.PlainSchemaTO;
import org.apache.syncope.common.lib.to.VirSchemaTO;
import org.apache.syncope.common.lib.types.AnyTypeKind;
@@ -99,11 +100,10 @@ public class SchemaRestClient extends BaseRestClient {
}
public List<String> getSchemaNames(final SchemaType schemaType) {
- List<String> schemaNames = new ArrayList<>();
+ List<String> schemaNames = Collections.emptyList();
try {
- CollectionUtils.collect(getSchemas(schemaType),
- EntityTOUtils.<AbstractSchemaTO>keyTransformer(), schemaNames);
+ schemaNames = getSchemas(schemaType).stream().map(EntityTO::getKey).collect(Collectors.toList());
} catch (SyncopeClientException e) {
LOG.error("While getting all user schema names", e);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/status/ResourceStatusModal.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/status/ResourceStatusModal.java b/client/console/src/main/java/org/apache/syncope/client/console/status/ResourceStatusModal.java
index 18bdd0f..0596ea3 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/status/ResourceStatusModal.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/status/ResourceStatusModal.java
@@ -18,13 +18,11 @@
*/
package org.apache.syncope.client.console.status;
-import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
+import java.util.stream.Collectors;
import org.apache.syncope.client.console.commons.Constants;
import org.apache.syncope.client.console.commons.DirectoryDataProvider;
-import org.apache.syncope.client.console.commons.SerializableTransformer;
import org.apache.syncope.client.console.commons.status.StatusBean;
import org.apache.syncope.client.console.panels.DirectoryPanel;
import org.apache.syncope.client.console.panels.MultilevelPanel;
@@ -52,14 +50,8 @@ public class ResourceStatusModal extends StatusModal<ResourceTO> {
super(baseModal, pageReference, resource, null, false);
- List<String> availableAnyTypes = CollectionUtils.collect(
- resource.getProvisions(), new SerializableTransformer<ProvisionTO, String>() {
-
- @Override
- public String transform(final ProvisionTO provision) {
- return provision.getAnyType();
- }
- }, new ArrayList<String>());
+ List<String> availableAnyTypes = resource.getProvisions().stream().
+ map(ProvisionTO::getAnyType).collect(Collectors.toList());
Collections.sort(availableAnyTypes, new AnyTypeRestClient.AnyTypeKeyComparator());
AjaxDropDownChoicePanel<String> anyTypes =
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/tasks/PushTaskWrapper.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/tasks/PushTaskWrapper.java b/client/console/src/main/java/org/apache/syncope/client/console/tasks/PushTaskWrapper.java
index 0b35971..0bded4b 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/tasks/PushTaskWrapper.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/tasks/PushTaskWrapper.java
@@ -22,7 +22,6 @@ import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.apache.commons.collections4.CollectionUtils;
import org.apache.syncope.client.console.panels.search.SearchClause;
import org.apache.syncope.client.console.panels.search.SearchUtils;
import org.apache.syncope.client.lib.SyncopeClient;
@@ -57,7 +56,7 @@ public class PushTaskWrapper implements Serializable {
Map<String, String> filters = new HashMap<>();
for (Map.Entry<String, List<SearchClause>> entry : getFilterClauses().entrySet()) {
- if (CollectionUtils.isNotEmpty(entry.getValue())) {
+ if (!entry.getValue().isEmpty()) {
AbstractFiqlSearchConditionBuilder bld;
switch (entry.getKey()) {
case "USER":
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskWizardBuilder.java
index dccc22a..368b419 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskWizardBuilder.java
@@ -23,8 +23,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.client.console.commons.Constants;
import org.apache.syncope.client.console.rest.RealmRestClient;
@@ -69,15 +68,8 @@ public class SchedTaskWizardBuilder<T extends SchedTaskTO> extends AjaxWizardBui
@Override
protected List<String> load() {
- List<String> result = CollectionUtils.collect(
- new RealmRestClient().list(), new Transformer<RealmTO, String>() {
-
- @Override
- public String transform(final RealmTO realm) {
- return realm.getFullPath();
- }
- }, new ArrayList<String>());
-
+ List<String> result = new RealmRestClient().list().stream().
+ map(RealmTO::getFullPath).collect(Collectors.toList());
Collections.sort(result);
return result;
@@ -160,24 +152,24 @@ public class SchedTaskWizardBuilder<T extends SchedTaskTO> extends AjaxWizardBui
};
public Profile(final SchedTaskTO taskTO) {
- AjaxTextFieldPanel name = new AjaxTextFieldPanel("name", "name", new PropertyModel<String>(taskTO, "name"),
+ AjaxTextFieldPanel name = new AjaxTextFieldPanel("name", "name", new PropertyModel<>(taskTO, "name"),
false);
name.addRequiredLabel();
name.setEnabled(true);
add(name);
AjaxTextFieldPanel description = new AjaxTextFieldPanel(
- "description", "description", new PropertyModel<String>(taskTO, "description"), false);
+ "description", "description", new PropertyModel<>(taskTO, "description"), false);
description.setEnabled(true);
add(description);
- AjaxCheckBoxPanel active = new AjaxCheckBoxPanel("active", "active", new PropertyModel<Boolean>(taskTO,
- "active"), false);
+ AjaxCheckBoxPanel active = new AjaxCheckBoxPanel("active", "active", new PropertyModel<>(taskTO, "active"),
+ false);
add(active);
AjaxDropDownChoicePanel<String> jobDelegateClassName = new AjaxDropDownChoicePanel<>(
"jobDelegateClassName", "jobDelegateClassName",
- new PropertyModel<String>(taskTO, "jobDelegateClassName"), false);
+ new PropertyModel<>(taskTO, "jobDelegateClassName"), false);
jobDelegateClassName.setChoices(taskJobClasses.getObject());
jobDelegateClassName.addRequiredLabel();
jobDelegateClassName.setEnabled(taskTO.getKey() == null);
@@ -198,7 +190,7 @@ public class SchedTaskWizardBuilder<T extends SchedTaskTO> extends AjaxWizardBui
}
final AjaxDropDownChoicePanel<PullMode> pullMode = new AjaxDropDownChoicePanel<>(
- "pullMode", "pullMode", new PropertyModel<PullMode>(taskTO, "pullMode"), false);
+ "pullMode", "pullMode", new PropertyModel<>(taskTO, "pullMode"), false);
pullMode.setChoices(Arrays.asList(PullMode.values()));
if (taskTO instanceof PullTaskTO) {
pullMode.addRequiredLabel();
@@ -208,7 +200,7 @@ public class SchedTaskWizardBuilder<T extends SchedTaskTO> extends AjaxWizardBui
final AjaxDropDownChoicePanel<String> reconciliationFilterBuilderClassName = new AjaxDropDownChoicePanel<>(
"reconciliationFilterBuilderClassName", "reconciliationFilterBuilderClassName",
- new PropertyModel<String>(taskTO, "reconciliationFilterBuilderClassName"), false);
+ new PropertyModel<>(taskTO, "reconciliationFilterBuilderClassName"), false);
reconciliationFilterBuilderClassName.setChoices(reconciliationFilterBuilderClasses.getObject());
reconciliationFilterBuilderClassName.setStyleSheet("ui-widget-content ui-corner-all long_dynamicsize");
reconciliationFilterBuilderClassName.setEnabled(isFiltered);
@@ -281,30 +273,30 @@ public class SchedTaskWizardBuilder<T extends SchedTaskTO> extends AjaxWizardBui
provisioningTaskSpecifics.add(actionsClassNames);
AjaxDropDownChoicePanel<MatchingRule> matchingRule = new AjaxDropDownChoicePanel<>(
- "matchingRule", "matchingRule", new PropertyModel<MatchingRule>(taskTO, "matchingRule"), false);
+ "matchingRule", "matchingRule", new PropertyModel<>(taskTO, "matchingRule"), false);
matchingRule.setChoices(Arrays.asList(MatchingRule.values()));
provisioningTaskSpecifics.add(matchingRule);
AjaxDropDownChoicePanel<UnmatchingRule> unmatchingRule = new AjaxDropDownChoicePanel<>(
- "unmatchingRule", "unmatchingRule", new PropertyModel<UnmatchingRule>(taskTO, "unmatchingRule"),
+ "unmatchingRule", "unmatchingRule", new PropertyModel<>(taskTO, "unmatchingRule"),
false);
unmatchingRule.setChoices(Arrays.asList(UnmatchingRule.values()));
provisioningTaskSpecifics.add(unmatchingRule);
AjaxCheckBoxPanel performCreate = new AjaxCheckBoxPanel(
- "performCreate", "performCreate", new PropertyModel<Boolean>(taskTO, "performCreate"), false);
+ "performCreate", "performCreate", new PropertyModel<>(taskTO, "performCreate"), false);
provisioningTaskSpecifics.add(performCreate);
AjaxCheckBoxPanel performUpdate = new AjaxCheckBoxPanel(
- "performUpdate", "performUpdate", new PropertyModel<Boolean>(taskTO, "performUpdate"), false);
+ "performUpdate", "performUpdate", new PropertyModel<>(taskTO, "performUpdate"), false);
provisioningTaskSpecifics.add(performUpdate);
AjaxCheckBoxPanel performDelete = new AjaxCheckBoxPanel(
- "performDelete", "performDelete", new PropertyModel<Boolean>(taskTO, "performDelete"), false);
+ "performDelete", "performDelete", new PropertyModel<>(taskTO, "performDelete"), false);
provisioningTaskSpecifics.add(performDelete);
AjaxCheckBoxPanel syncStatus = new AjaxCheckBoxPanel(
- "syncStatus", "syncStatus", new PropertyModel<Boolean>(taskTO, "syncStatus"), false);
+ "syncStatus", "syncStatus", new PropertyModel<>(taskTO, "syncStatus"), false);
provisioningTaskSpecifics.add(syncStatus);
}
}
@@ -315,7 +307,7 @@ public class SchedTaskWizardBuilder<T extends SchedTaskTO> extends AjaxWizardBui
public Schedule(final SchedTaskTO taskTO) {
crontabPanel = new CrontabPanel(
- "schedule", new PropertyModel<String>(taskTO, "cronExpression"), taskTO.getCronExpression());
+ "schedule", new PropertyModel<>(taskTO, "cronExpression"), taskTO.getCronExpression());
add(crontabPanel);
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/topology/Topology.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/topology/Topology.java b/client/console/src/main/java/org/apache/syncope/client/console/topology/Topology.java
index 071da87..c92f0ea 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/topology/Topology.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/topology/Topology.java
@@ -28,7 +28,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Map;
-import org.apache.commons.collections4.CollectionUtils;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.cxf.jaxrs.client.WebClient;
@@ -42,8 +42,8 @@ import org.apache.syncope.client.console.rest.ResourceRestClient;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink;
import org.apache.syncope.client.console.wicket.markup.html.form.ActionsPanel;
-import org.apache.syncope.common.lib.EntityTOUtils;
import org.apache.syncope.common.lib.to.ConnInstanceTO;
+import org.apache.syncope.common.lib.to.EntityTO;
import org.apache.syncope.common.lib.to.ResourceTO;
import org.apache.syncope.common.lib.types.StandardEntitlement;
import org.apache.wicket.Component;
@@ -372,7 +372,7 @@ public class Topology extends BasePage {
// -----------------------------------------
final Collection<String> administrableConns = new HashSet<>();
for (List<ConnInstanceTO> connInstances : connModel.getObject().values()) {
- administrableConns.addAll(CollectionUtils.collect(connInstances, EntityTOUtils.keyTransformer()));
+ administrableConns.addAll(connInstances.stream().map(EntityTO::getKey).collect(Collectors.toList()));
}
final List<String> connToBeProcessed = new ArrayList<>();
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/AttrColumn.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/AttrColumn.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/AttrColumn.java
index 1341791..d562805 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/AttrColumn.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/AttrColumn.java
@@ -54,15 +54,15 @@ public class AttrColumn<T extends AttributableTO> extends AbstractColumn<T, Stri
AttrTO attr = null;
switch (schemaType) {
case PLAIN:
- attr = rowModel.getObject().getPlainAttr(name);
+ attr = rowModel.getObject().getPlainAttr(name).get();
break;
case DERIVED:
- attr = rowModel.getObject().getDerAttr(name);
+ attr = rowModel.getObject().getDerAttr(name).get();
break;
case VIRTUAL:
- attr = rowModel.getObject().getVirAttr(name);
+ attr = rowModel.getObject().getVirAttr(name).get();
break;
default:
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/ConnObjectAttrColumn.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/ConnObjectAttrColumn.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/ConnObjectAttrColumn.java
index 5d9dbd4..c0373b0 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/ConnObjectAttrColumn.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/ConnObjectAttrColumn.java
@@ -19,6 +19,7 @@
package org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.data.table;
import java.util.List;
+import java.util.Optional;
import org.apache.syncope.common.lib.to.AttrTO;
import org.apache.syncope.common.lib.types.SchemaType;
import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
@@ -48,8 +49,8 @@ public class ConnObjectAttrColumn extends AbstractColumn<ConnObjectTO, String> {
final String componentId,
final IModel<ConnObjectTO> rowModel) {
- AttrTO attr = rowModel.getObject().getAttr(name);
- List<String> values = attr == null ? null : attr.getValues();
+ Optional<AttrTO> attr = rowModel.getObject().getAttr(name);
+ List<String> values = attr.isPresent() ? attr.get().getValues() : null;
if (values == null || values.isEmpty()) {
cellItem.add(new Label(componentId, ""));
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.java
index 968cb57..b9eb922 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.java
@@ -24,8 +24,7 @@ import de.agilecoders.wicket.extensions.markup.html.bootstrap.behavior.Draggable
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Predicate;
+import java.util.Optional;
import org.apache.syncope.client.console.panels.AbstractModalPanel;
import org.apache.syncope.client.console.panels.ModalPanel;
import org.apache.syncope.client.console.panels.NotificationPanel;
@@ -230,13 +229,11 @@ public class BaseModal<T extends Serializable> extends Modal<T> {
throw new IllegalStateException();
}
- CollectionUtils.filterInverse(this.components, new Predicate<Component>() {
-
- @Override
- public boolean evaluate(final Component component) {
- return SUBMIT.equals(component.getId());
- }
- });
+ Optional<Component> button =
+ this.components.stream().filter(component -> SUBMIT.equals(component.getId())).findAny();
+ if (button.isPresent()) {
+ this.components.remove(button.get());
+ }
submitButton = null;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxPalettePanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxPalettePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxPalettePanel.java
index 4f1f714..e5fafb0 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxPalettePanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxPalettePanel.java
@@ -120,13 +120,12 @@ public class AjaxPalettePanel<T extends Serializable> extends AbstractFieldPanel
final List<T> unselected = new ArrayList<>(choices.size());
final List<String> ids = Arrays.asList(getValue().split(","));
- for (final T choice : choices) {
+ choices.forEach(choice -> {
final String choiceId = renderer.getIdValue(choice, 0);
-
if (!ids.contains(choiceId)) {
unselected.add(choice);
}
- }
+ });
return unselected;
}
@@ -139,9 +138,9 @@ public class AjaxPalettePanel<T extends Serializable> extends AbstractFieldPanel
// reduce number of method calls by building a lookup table
final Map<T, String> idForChoice = new HashMap<>(choices.size());
- for (final T choice : choices) {
+ choices.forEach(choice -> {
idForChoice.put(choice, renderer.getIdValue(choice, 0));
- }
+ });
final String value = getValue();
int start = value.indexOf(';') + 1;
@@ -320,9 +319,9 @@ public class AjaxPalettePanel<T extends Serializable> extends AbstractFieldPanel
final List<T> selected = new ArrayList<>();
final Map<T, String> idForChoice = new HashMap<>();
- for (final T choice : choices) {
+ choices.forEach(choice -> {
idForChoice.put(choice, renderer.getIdValue(choice, 0));
- }
+ });
for (final String id : Strings.split(selection, ',')) {
final Iterator<T> iter = choices.iterator();
@@ -345,18 +344,18 @@ public class AjaxPalettePanel<T extends Serializable> extends AbstractFieldPanel
final List<T> selected = new ArrayList<>(choices.size());
final Map<T, String> idForChoice = new HashMap<>();
- for (final T choice : choices) {
+ choices.forEach(choice -> {
idForChoice.put(choice, renderer.getIdValue(choice, 0));
- }
+ });
final Pattern pattern = Pattern.compile(filter, Pattern.CASE_INSENSITIVE);
- for (T choice : choices) {
+ choices.forEach(choice -> {
final String idValue = idForChoice.get(choice);
if (pattern.matcher(idValue).matches()) {
selected.add(choice);
}
- }
+ });
return selected;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxSpinnerFieldPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxSpinnerFieldPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxSpinnerFieldPanel.java
index ae8729a..1621c9e 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxSpinnerFieldPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxSpinnerFieldPanel.java
@@ -25,7 +25,6 @@ import com.googlecode.wicket.jquery.ui.form.spinner.SpinnerAdapter;
import com.googlecode.wicket.jquery.ui.form.spinner.SpinnerBehavior;
import java.io.Serializable;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
import org.apache.syncope.client.console.commons.Constants;
@@ -98,8 +97,9 @@ public final class AjaxSpinnerFieldPanel<T extends Number> extends FieldPanel<T>
public T getObject() {
T value = null;
- if (CollectionUtils.isNotEmpty(list)
+ if (list != null && !list.isEmpty()
&& list.get(0) != null && StringUtils.isNotBlank(list.get(0).toString())) {
+
value = reference.equals(Integer.class)
? reference.cast(NumberUtils.toInt(list.get(0).toString()))
: reference.equals(Long.class)
@@ -175,8 +175,7 @@ public final class AjaxSpinnerFieldPanel<T extends Number> extends FieldPanel<T>
@Override
public AjaxSpinnerFieldPanel<T> clone() {
- final AjaxSpinnerFieldPanel<T> panel
- = new AjaxSpinnerFieldPanel<>(getId(), name, reference, model, options, false);
+ AjaxSpinnerFieldPanel<T> panel = new AjaxSpinnerFieldPanel<>(getId(), name, reference, model, options, false);
panel.setRequired(isRequired());
panel.setReadOnly(isReadOnly());
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/SelectChoiceRenderer.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/SelectChoiceRenderer.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/SelectChoiceRenderer.java
index 82e5354..ddd40fb 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/SelectChoiceRenderer.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/SelectChoiceRenderer.java
@@ -19,8 +19,6 @@
package org.apache.syncope.client.console.wicket.markup.html.form;
import java.util.List;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.wicket.markup.html.form.IChoiceRenderer;
import org.apache.wicket.model.IModel;
@@ -44,12 +42,8 @@ public class SelectChoiceRenderer<T> implements IChoiceRenderer<T> {
@Override
public T getObject(final String id, final IModel<? extends List<? extends T>> choices) {
- return IterableUtils.find(choices.getObject(), new Predicate<T>() {
-
- @Override
- public boolean evaluate(final T object) {
- return id != null && id.equals(getIdValue(object, 0));
- }
- });
+ return choices.getObject().stream().
+ filter(object -> id != null && id.equals(getIdValue(object, 0))).
+ findAny().orElse(null);
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/widgets/ReconciliationWidget.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/widgets/ReconciliationWidget.java b/client/console/src/main/java/org/apache/syncope/client/console/widgets/ReconciliationWidget.java
index edce805..86aefed 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/widgets/ReconciliationWidget.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/widgets/ReconciliationWidget.java
@@ -28,11 +28,9 @@ import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
+import java.util.Optional;
import java.util.Set;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.client.console.SyncopeConsoleApplication;
@@ -124,15 +122,10 @@ public class ReconciliationWidget extends BaseWidget {
protected void onTimer(final AjaxRequestTarget target) {
if (isCheckReconciliationJob()) {
try {
- JobTO reportJobTO = IterableUtils.find(restClient.listJobs(), new Predicate<JobTO>() {
-
- @Override
- public boolean evaluate(final JobTO jobTO) {
- return SyncopeConsoleApplication.get().
- getReconciliationReportKey().equals(jobTO.getRefKey());
- }
- });
- if (reportJobTO != null && !reportJobTO.isRunning()) {
+ Optional<JobTO> reportJobTO = restClient.listJobs().stream().
+ filter(jobTO -> SyncopeConsoleApplication.get().
+ getReconciliationReportKey().equals(jobTO.getRefKey())).findAny();
+ if (reportJobTO.isPresent() && !reportJobTO.get().isRunning()) {
LOG.debug("Report {} is not running",
SyncopeConsoleApplication.get().getReconciliationReportKey());
@@ -271,23 +264,19 @@ public class ReconciliationWidget extends BaseWidget {
List<ProgressBean> beans = Collections.emptyList();
ReconciliationReport report = null;
- ExecTO exec = null;
+ Optional<ExecTO> exec = Optional.empty();
if (SyncopeConsoleSession.get().owns(StandardEntitlement.REPORT_LIST)) {
- exec = IterableUtils.find(restClient.listRecentExecutions(ROWS), new Predicate<ExecTO>() {
-
- @Override
- public boolean evaluate(final ExecTO exec) {
- return reconciliationReportKey.equals(exec.getRefKey());
- }
- });
+ exec = restClient.listRecentExecutions(ROWS).stream().
+ filter(e -> reconciliationReportKey.equals(e.getRefKey())).findAny();
}
- if (exec == null) {
+ if (!exec.isPresent()) {
LOG.error("Could not find the last execution of reconciliation report");
} else {
- Object entity = restClient.exportExecutionResult(exec.getKey(), ReportExecExportFormat.XML).getEntity();
+ Object entity = restClient.exportExecutionResult(
+ exec.get().getKey(), ReportExecExportFormat.XML).getEntity();
if (entity instanceof InputStream) {
try {
- report = ReconciliationReportParser.parse(exec.getEnd(), (InputStream) entity);
+ report = ReconciliationReportParser.parse(exec.get().getEnd(), (InputStream) entity);
beans = new ArrayList<>();
@@ -385,22 +374,12 @@ public class ReconciliationWidget extends BaseWidget {
});
final Set<String> resources = new HashSet<>();
- for (Any any : anys.getAnys()) {
- resources.addAll(CollectionUtils.collect(any.getMissing(), new Transformer<Missing, String>() {
-
- @Override
- public String transform(final Missing input) {
- return input.getResource();
- }
- }));
- resources.addAll(CollectionUtils.collect(any.getMisaligned(), new Transformer<Misaligned, String>() {
-
- @Override
- public String transform(final Misaligned input) {
- return input.getResource();
- }
- }));
- }
+ anys.getAnys().forEach(any -> {
+ resources.addAll(any.getMissing().stream().
+ map(Missing::getResource).collect(Collectors.toList()));
+ resources.addAll(any.getMisaligned().stream().
+ map(Misaligned::getResource).collect(Collectors.toList()));
+ });
for (final String resource : resources) {
columns.add(new AbstractColumn<Any, String>(Model.of(resource)) {
@@ -414,24 +393,14 @@ public class ReconciliationWidget extends BaseWidget {
final Any any = rowModel.getObject();
- Missing missing = IterableUtils.find(any.getMissing(), new Predicate<Missing>() {
+ Optional<Missing> missing =
+ any.getMissing().stream().
+ filter(object -> resource.equals(object.getResource())).findAny();
+ List<Misaligned> misaligned = any.getMisaligned().stream().
+ filter(object -> resource.equals(object.getResource())).collect(Collectors.toList());
- @Override
- public boolean evaluate(final Missing object) {
- return resource.equals(object.getResource());
- }
- });
- final List<Misaligned> misaligned = CollectionUtils.select(
- any.getMisaligned(), new Predicate<Misaligned>() {
-
- @Override
- public boolean evaluate(final Misaligned object) {
- return resource.equals(object.getResource());
- }
- }, new ArrayList<Misaligned>());
Component content;
-
- if (missing == null) {
+ if (!missing.isPresent()) {
if (misaligned == null || misaligned.isEmpty()) {
content = new Label(componentId, StringUtils.EMPTY);
} else {
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/widgets/reconciliation/ReconciliationReportParser.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/widgets/reconciliation/ReconciliationReportParser.java b/client/console/src/main/java/org/apache/syncope/client/console/widgets/reconciliation/ReconciliationReportParser.java
index b73b4ba..da5e76d 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/widgets/reconciliation/ReconciliationReportParser.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/widgets/reconciliation/ReconciliationReportParser.java
@@ -23,12 +23,11 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
+import java.util.Optional;
import java.util.Set;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.common.lib.types.AnyTypeKind;
public final class ReconciliationReportParser {
@@ -96,13 +95,12 @@ public final class ReconciliationReportParser {
anyObject.setType(lastAnyType);
anyObject.setKey(streamReader.getAttributeValue("", "key"));
final String anyType = lastAnyType;
- IterableUtils.find(report.getAnyObjects(), new Predicate<Anys>() {
-
- @Override
- public boolean evaluate(final Anys anys) {
- return anyType.equals(anys.getAnyType());
- }
- }).getAnys().add(anyObject);
+ Optional<Anys> anyReport = report.getAnyObjects().stream().
+ filter(anys -> anyType.equals(anys.getAnyType())).
+ findFirst();
+ if (anyReport.isPresent()) {
+ anyReport.get().getAnys().add(anyObject);
+ }
break;
case "missing":
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AbstractAttrs.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AbstractAttrs.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AbstractAttrs.java
index 88a792c..2d9ec68 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AbstractAttrs.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AbstractAttrs.java
@@ -26,17 +26,15 @@ import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Predicate;
+import java.util.stream.Collectors;
import org.apache.cxf.common.util.StringUtils;
import org.apache.syncope.client.console.rest.AnyTypeClassRestClient;
import org.apache.syncope.client.console.rest.GroupRestClient;
import org.apache.syncope.client.console.rest.SchemaRestClient;
-import org.apache.syncope.common.lib.EntityTOUtils;
import org.apache.syncope.common.lib.to.AbstractSchemaTO;
import org.apache.syncope.common.lib.to.AnyTO;
-import org.apache.syncope.common.lib.to.AnyTypeClassTO;
import org.apache.syncope.common.lib.to.AttrTO;
+import org.apache.syncope.common.lib.to.EntityTO;
import org.apache.syncope.common.lib.to.GroupTO;
import org.apache.syncope.common.lib.to.MembershipTO;
import org.apache.syncope.common.lib.types.SchemaType;
@@ -90,8 +88,10 @@ public abstract class AbstractAttrs<S extends AbstractSchemaTO> extends WizardSt
}
private List<AttrTO> loadAttrTOs() {
- setSchemas(CollectionUtils.collect(anyTypeClassRestClient.list(anyTO.getAuxClasses()),
- EntityTOUtils.<AnyTypeClassTO>keyTransformer(), new ArrayList<>(anyTypeClasses)));
+ List<String> classes = new ArrayList<>(anyTypeClasses);
+ classes.addAll(anyTypeClassRestClient.list(anyTO.getAuxClasses()).stream().
+ map(EntityTO::getKey).collect(Collectors.toList()));
+ setSchemas(classes);
setAttrs();
return AbstractAttrs.this.getAttrsFromTO();
}
@@ -104,10 +104,9 @@ public abstract class AbstractAttrs<S extends AbstractSchemaTO> extends WizardSt
for (MembershipTO membership : (List<MembershipTO>) PropertyResolver.getPropertyField(
"memberships", anyTO).get(anyTO)) {
- setSchemas(membership.getGroupKey(), CollectionUtils.collect(
- anyTypeClassRestClient.list(getMembershipAuxClasses(membership, anyTO.getType())),
- EntityTOUtils.<AnyTypeClassTO>keyTransformer(),
- new ArrayList<String>()));
+ setSchemas(membership.getGroupKey(),
+ anyTypeClassRestClient.list(getMembershipAuxClasses(membership, anyTO.getType())).
+ stream().map(EntityTO::getKey).collect(Collectors.toList()));
setAttrs(membership);
if (AbstractAttrs.this instanceof PlainAttrs && !membership.getPlainAttrs().isEmpty()) {
@@ -159,38 +158,29 @@ public abstract class AbstractAttrs<S extends AbstractSchemaTO> extends WizardSt
if (reoderSchemas()) {
// 1. remove attributes not selected for display
- CollectionUtils.filter(allSchemas, new Predicate<S>() {
-
- @Override
- public boolean evaluate(final S schemaTO) {
- return whichAttrs.contains(schemaTO.getKey());
- }
- });
+ allSchemas.removeAll(allSchemas.stream().
+ filter(schemaTO -> !whichAttrs.contains(schemaTO.getKey())).collect(Collectors.toSet()));
// 2. sort remainig attributes according to configuration, e.g. attrLayout
final Map<String, Integer> attrLayoutMap = new HashMap<>(whichAttrs.size());
for (int i = 0; i < whichAttrs.size(); i++) {
attrLayoutMap.put(whichAttrs.get(i), i);
}
- Collections.sort(allSchemas, new Comparator<S>() {
-
- @Override
- public int compare(final S schema1, final S schema2) {
- int value = 0;
+ Collections.sort(allSchemas, (schema1, schema2) -> {
+ int value = 0;
- if (attrLayoutMap.get(schema1.getKey()) > attrLayoutMap.get(schema2.getKey())) {
- value = 1;
- } else if (attrLayoutMap.get(schema1.getKey()) < attrLayoutMap.get(schema2.getKey())) {
- value = -1;
- }
-
- return value;
+ if (attrLayoutMap.get(schema1.getKey()) > attrLayoutMap.get(schema2.getKey())) {
+ value = 1;
+ } else if (attrLayoutMap.get(schema1.getKey()) < attrLayoutMap.get(schema2.getKey())) {
+ value = -1;
}
+
+ return value;
});
}
- for (S schemaTO : allSchemas) {
+ allSchemas.forEach(schemaTO -> {
scs.put(schemaTO.getKey(), schemaTO);
- }
+ });
}
@Override
@@ -215,7 +205,7 @@ public abstract class AbstractAttrs<S extends AbstractSchemaTO> extends WizardSt
protected List<String> getMembershipAuxClasses(final MembershipTO membershipTO, final String anyType) {
try {
final GroupTO groupTO = groupRestClient.read(membershipTO.getRightKey());
- return groupTO.getTypeExtension(anyType).getAuxClasses();
+ return groupTO.getTypeExtension(anyType).get().getAuxClasses();
} catch (Exception e) {
return Collections.emptyList();
}
@@ -225,14 +215,11 @@ public abstract class AbstractAttrs<S extends AbstractSchemaTO> extends WizardSt
public boolean evaluate() {
this.attrTOs.setObject(loadAttrTOs());
this.membershipTOs.setObject(loadMembershipAttrTOs());
- return CollectionUtils.isNotEmpty(attrTOs.getObject()) || CollectionUtils.isNotEmpty(membershipTOs.getObject());
+ return !attrTOs.getObject().isEmpty() || !membershipTOs.getObject().isEmpty();
}
protected static class AttrComparator implements Comparator<AttrTO>, Serializable {
- /**
- *
- */
private static final long serialVersionUID = -5105030477767941060L;
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/ConnObjectPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/ConnObjectPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/ConnObjectPanel.java
index 2c75dae..4ebd393 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/ConnObjectPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/ConnObjectPanel.java
@@ -22,9 +22,9 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.ListUtils;
-import org.apache.commons.collections4.Transformer;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.client.console.commons.ConnIdSpecialName;
import org.apache.syncope.common.lib.to.AttrTO;
@@ -66,20 +66,8 @@ public class ConnObjectPanel extends Panel {
: connObjectTOs.getLeft().getAttrs());
final List<String> schemas = ListUtils.sum(
- CollectionUtils.collect(right, new Transformer<AttrTO, String>() {
-
- @Override
- public String transform(final AttrTO input) {
- return input.getSchema();
- }
- }, new ArrayList<String>()),
- CollectionUtils.collect(left, new Transformer<AttrTO, String>() {
-
- @Override
- public String transform(final AttrTO input) {
- return input.getSchema();
- }
- }, new ArrayList<String>()));
+ right.stream().map(AttrTO::getSchema).collect(Collectors.toList()),
+ left.stream().map(AttrTO::getSchema).collect(Collectors.toList()));
Collections.sort(schemas);
@@ -126,6 +114,7 @@ public class ConnObjectPanel extends Panel {
|| (CollectionUtils.isNotEmpty(after.getValues())
&& CollectionUtils.isNotEmpty(before.getValues())
&& !after.getValues().equals(before.getValues()))) {
+
valueFragment.add(new Behavior() {
private static final long serialVersionUID = 3109256773218160485L;
@@ -152,9 +141,9 @@ public class ConnObjectPanel extends Panel {
private Panel getValuePanel(final String id, final String schemaName, final AttrTO attrTO) {
Panel field;
if (attrTO == null) {
- field = new AjaxTextFieldPanel(id, schemaName, new Model<String>());
+ field = new AjaxTextFieldPanel(id, schemaName, new Model<>());
} else if (CollectionUtils.isEmpty(attrTO.getValues())) {
- field = new AjaxTextFieldPanel(id, schemaName, new Model<String>());
+ field = new AjaxTextFieldPanel(id, schemaName, new Model<>());
} else if (ConnIdSpecialName.PASSWORD.equals(schemaName)) {
field = new AjaxTextFieldPanel(id, schemaName, new Model<>("********"));
} else if (attrTO.getValues().size() == 1) {
@@ -163,7 +152,7 @@ public class ConnObjectPanel extends Panel {
field = new MultiFieldPanel.Builder<>(new ListModel<>(attrTO.getValues())).build(
id,
schemaName,
- new AjaxTextFieldPanel("panel", schemaName, new Model<String>()));
+ new AjaxTextFieldPanel("panel", schemaName, new Model<>()));
}
field.setEnabled(false);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Details.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Details.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Details.java
index a7dd79a..65de432 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Details.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Details.java
@@ -20,8 +20,7 @@ package org.apache.syncope.client.console.wizards.any;
import java.util.ArrayList;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
import org.apache.syncope.client.console.pages.Realms;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDropDownChoicePanel;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
@@ -57,29 +56,23 @@ public class Details<T extends AnyTO> extends WizardStep {
if (templateMode) {
realm = new AjaxTextFieldPanel(
- "destinationRealm", "destinationRealm", new PropertyModel<String>(inner, "realm"), false);
+ "destinationRealm", "destinationRealm", new PropertyModel<>(inner, "realm"), false);
AjaxTextFieldPanel.class.cast(realm).enableJexlHelp();
} else {
final List<AbstractLink> realmLinks = Realms.class.cast(pageRef.getPage()).getRealmChoicePanel().getLinks();
final List<RealmTO> realms = new ArrayList<>();
- for (AbstractLink link : realmLinks) {
- Object obj = link.getDefaultModelObject();
- if (obj instanceof RealmTO) {
- realms.add((RealmTO) obj);
- }
- }
+ realmLinks.stream().
+ map(link -> link.getDefaultModelObject()).
+ filter(obj -> (obj instanceof RealmTO)).
+ forEachOrdered(obj -> {
+ realms.add((RealmTO) obj);
+ });
realm = new AjaxDropDownChoicePanel<>(
- "destinationRealm", "destinationRealm", new PropertyModel<String>(inner, "realm"), false);
+ "destinationRealm", "destinationRealm", new PropertyModel<>(inner, "realm"), false);
- ((AjaxDropDownChoicePanel<String>) realm).setChoices(CollectionUtils.collect(
- realms, new Transformer<RealmTO, String>() {
-
- @Override
- public String transform(final RealmTO input) {
- return input.getFullPath();
- }
- }, new ArrayList<String>()));
+ ((AjaxDropDownChoicePanel<String>) realm).setChoices(
+ realms.stream().map(RealmTO::getFullPath).collect(Collectors.toList()));
}
add(realm);
add(getGeneralStatusInformation("generalStatusInformation", inner).
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/DynamicMemberships.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/DynamicMemberships.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/DynamicMemberships.java
index 5da9273..da95dac 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/DynamicMemberships.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/DynamicMemberships.java
@@ -18,15 +18,12 @@
*/
package org.apache.syncope.client.console.wizards.any;
-import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Predicate;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.client.console.panels.search.AnyObjectSearchPanel;
import org.apache.syncope.client.console.panels.search.MapOfListModel;
-import org.apache.syncope.client.console.panels.search.SearchClause;
import org.apache.syncope.client.console.panels.search.UserSearchPanel;
import org.apache.syncope.client.console.rest.AnyTypeRestClient;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.tabs.Accordion;
@@ -59,13 +56,9 @@ public class DynamicMemberships extends WizardStep {
@Override
protected List<AnyTypeTO> load() {
- return CollectionUtils.select(anyTypeRestClient.listAnyTypes(), new Predicate<AnyTypeTO>() {
-
- @Override
- public boolean evaluate(final AnyTypeTO t) {
- return AnyTypeKind.USER != t.getKind() && AnyTypeKind.GROUP != t.getKind();
- }
- }, new ArrayList<AnyTypeTO>());
+ return anyTypeRestClient.listAnyTypes().stream().
+ filter(type -> AnyTypeKind.USER != type.getKind() && AnyTypeKind.GROUP != type.getKind()).
+ collect(Collectors.toList());
}
};
@@ -79,7 +72,7 @@ public class DynamicMemberships extends WizardStep {
@Override
public Panel getPanel(final String panelId) {
- return new UserSearchPanel.Builder(new PropertyModel<List<SearchClause>>(groupWrapper, "uDynClauses")).
+ return new UserSearchPanel.Builder(new PropertyModel<>(groupWrapper, "uDynClauses")).
required(true).build(panelId);
}
}), Model.of(StringUtils.isBlank(groupWrapper.getUDynMembershipCond()) ? -1 : 0)).setOutputMarkupId(true));
@@ -104,7 +97,7 @@ public class DynamicMemberships extends WizardStep {
@Override
public Panel getPanel(final String panelId) {
return new AnyObjectSearchPanel.Builder(
- key, new MapOfListModel<SearchClause>(groupWrapper, "aDynClauses", key)).
+ key, new MapOfListModel<>(groupWrapper, "aDynClauses", key)).
required(false).build(panelId);
}
}), Model.of(StringUtils.isBlank(groupWrapper.getADynMembershipConds().get(key)) ? -1 : 0))
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Groups.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Groups.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Groups.java
index 499bc26..fe9e226 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Groups.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Groups.java
@@ -22,11 +22,8 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
+import java.util.stream.Collectors;
import org.apache.commons.collections4.ListUtils;
-import org.apache.commons.collections4.Predicate;
-import org.apache.commons.collections4.Transformer;
import org.apache.commons.lang3.StringUtils;
import org.apache.cxf.jaxrs.ext.search.client.CompleteCondition;
import org.apache.syncope.client.console.SyncopeConsoleApplication;
@@ -35,10 +32,10 @@ import org.apache.syncope.client.console.rest.GroupRestClient;
import org.apache.syncope.client.console.wicket.ajax.markup.html.LabelInfo;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxPalettePanel;
import org.apache.syncope.client.lib.SyncopeClient;
-import org.apache.syncope.common.lib.EntityTOUtils;
import org.apache.syncope.common.lib.search.GroupFiqlSearchConditionBuilder;
import org.apache.syncope.common.lib.to.AnyTO;
import org.apache.syncope.common.lib.to.DynRealmTO;
+import org.apache.syncope.common.lib.to.EntityTO;
import org.apache.syncope.common.lib.to.GroupTO;
import org.apache.syncope.common.lib.to.MembershipTO;
import org.apache.wicket.extensions.markup.html.repeater.util.SortParam;
@@ -123,13 +120,8 @@ public class Groups extends WizardStep implements ICondition {
public MembershipTO getObject(
final String id, final IModel<? extends List<? extends MembershipTO>> choices) {
- return IterableUtils.find(choices.getObject(), new Predicate<MembershipTO>() {
-
- @Override
- public boolean evaluate(final MembershipTO object) {
- return id.equalsIgnoreCase(object.getGroupName());
- }
- });
+ return choices.getObject().stream().
+ filter(object -> id.equalsIgnoreCase(object.getGroupName())).findAny().orElse(null);
}
});
@@ -149,25 +141,20 @@ public class Groups extends WizardStep implements ICondition {
@Override
public List<MembershipTO> execute(final String filter) {
- return CollectionUtils.collect(
- StringUtils.isEmpty(filter) || "*".equals(filter)
+ return (StringUtils.isEmpty(filter) || "*".equals(filter)
? groupsModel.getObject()
: groupRestClient.search(
anyTO.getRealm(),
SyncopeClient.getGroupSearchConditionBuilder().
- isAssignable().and().is("name").equalTo(filter).query(),
+ isAssignable().and().is("name").equalTo(filter).query(),
1, MAX_GROUP_LIST_CARDINALITY,
new SortParam<>("name", true),
- null),
- new Transformer<GroupTO, MembershipTO>() {
+ null)).stream().map(input -> {
- @Override
- public MembershipTO transform(final GroupTO input) {
- return new MembershipTO.Builder().
- group(input.getKey(), input.getName()).
- build();
- }
- }, new ArrayList<MembershipTO>());
+ return new MembershipTO.Builder().
+ group(input.getKey(), input.getName()).
+ build();
+ }).collect(Collectors.toList());
}
}).hideLabel().setOutputMarkupId(true));
@@ -181,25 +168,15 @@ public class Groups extends WizardStep implements ICondition {
return Groups.this.groupsModel.getDynMemberships();
}
- }, new ListModel<>(CollectionUtils.collect(groupsModel.getObject(),
- new Transformer<GroupTO, String>() {
-
- @Override
- public String transform(final GroupTO input) {
- return input.getName();
- }
- }, new ArrayList<String>()))).
+ }, new ListModel<>(groupsModel.getObject().stream().map(GroupTO::getName).collect(Collectors.toList()))).
hideLabel().setEnabled(false).setOutputMarkupId(true));
// ---------------------------------
}
- add(new AjaxPalettePanel.Builder<String>().build("dynrealms",
- new PropertyModel<List<String>>(anyTO, "dynRealms"),
- new ListModel<>(
- CollectionUtils.collect(allDynRealms,
- EntityTOUtils.keyTransformer(),
- new ArrayList<String>()))).
+ add(new AjaxPalettePanel.Builder<>().build("dynrealms",
+ new PropertyModel<>(anyTO, "dynRealms"),
+ new ListModel<>(allDynRealms.stream().map(EntityTO::getKey).collect(Collectors.toList()))).
hideLabel().setEnabled(false).setOutputMarkupId(true));
// ------------------
@@ -219,11 +196,11 @@ public class Groups extends WizardStep implements ICondition {
@Override
public boolean evaluate() {
- return ((anyTO instanceof GroupTO)
- ? CollectionUtils.isNotEmpty(allDynRealms)
- : CollectionUtils.isNotEmpty(allDynRealms) || CollectionUtils.isNotEmpty(groupsModel.getObject()))
+ return (anyTO instanceof GroupTO
+ ? !allDynRealms.isEmpty()
+ : !allDynRealms.isEmpty() || !groupsModel.getObject().isEmpty())
&& SyncopeConsoleApplication.get().getSecuritySettings().getAuthorizationStrategy().
- isActionAuthorized(this, RENDER);
+ isActionAuthorized(this, RENDER);
}
private class GroupsModel extends ListModel<GroupTO> {
@@ -270,32 +247,33 @@ public class Groups extends WizardStep implements ICondition {
GroupFiqlSearchConditionBuilder searchConditionBuilder = SyncopeClient.getGroupSearchConditionBuilder();
List<CompleteCondition> conditions = new ArrayList<>();
- for (MembershipTO membershipTO : GroupableRelatableTO.class.cast(anyTO).getMemberships()) {
+ GroupableRelatableTO.class.cast(anyTO).getMemberships().forEach(membershipTO -> {
conditions.add(searchConditionBuilder.is("key").equalTo(membershipTO.getGroupKey()).wrap());
- }
+ });
Map<String, GroupTO> assignedGroups = new HashMap<>();
if (!conditions.isEmpty()) {
- for (GroupTO group : groupRestClient.search(
+ groupRestClient.search(
realm,
searchConditionBuilder.isAssignable().and().or(conditions).query(),
-1,
-1,
new SortParam<>("name", true),
- null)) {
- assignedGroups.put(group.getKey(), group);
- }
+ null).
+ forEach(group -> {
+ assignedGroups.put(group.getKey(), group);
+ });
}
// set group names in membership TOs and remove membership not assignable
List<MembershipTO> toBeRemoved = new ArrayList<>();
- for (MembershipTO membership : GroupableRelatableTO.class.cast(anyTO).getMemberships()) {
+ GroupableRelatableTO.class.cast(anyTO).getMemberships().forEach(membership -> {
if (assignedGroups.containsKey(membership.getRightKey())) {
membership.setGroupName(assignedGroups.get(membership.getRightKey()).getName());
} else {
toBeRemoved.add(membership);
}
- }
+ });
GroupableRelatableTO.class.cast(anyTO).getMemberships().removeAll(toBeRemoved);
memberships = GroupableRelatableTO.class.cast(anyTO).getMemberships();
@@ -313,30 +291,25 @@ public class Groups extends WizardStep implements ICondition {
GroupFiqlSearchConditionBuilder searchConditionBuilder = SyncopeClient.getGroupSearchConditionBuilder();
ArrayList<CompleteCondition> conditions = new ArrayList<>();
- for (MembershipTO membership : GroupableRelatableTO.class.cast(anyTO).getDynMemberships()) {
+ GroupableRelatableTO.class.cast(anyTO).getDynMemberships().forEach(membership -> {
conditions.add(searchConditionBuilder.is("key").equalTo(membership.getGroupKey()).wrap());
- }
+ });
Map<String, GroupTO> assignedGroups = new HashMap<>();
if (!conditions.isEmpty()) {
- for (GroupTO group : groupRestClient.search(
+ groupRestClient.search(
"/",
searchConditionBuilder.or(conditions).query(),
-1,
-1,
new SortParam<>("name", true),
- null)) {
- assignedGroups.put(group.getKey(), group);
- }
+ null).
+ forEach(group -> {
+ assignedGroups.put(group.getKey(), group);
+ });
}
- dynMemberships = CollectionUtils.collect(assignedGroups.values(), new Transformer<GroupTO, String>() {
-
- @Override
- public String transform(final GroupTO input) {
- return input.getName();
- }
- }, new ArrayList<String>());
+ dynMemberships = assignedGroups.values().stream().map(GroupTO::getName).collect(Collectors.toList());
}
/**
[04/16] syncope git commit: [SYNCOPE-938] Switching from
commons-collections to Java 8 features
Posted by il...@apache.org.
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PropagationManagerImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PropagationManagerImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PropagationManagerImpl.java
index fdeb848..14a8d5f 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PropagationManagerImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PropagationManagerImpl.java
@@ -26,11 +26,9 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
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.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
-import org.apache.syncope.common.lib.patch.StringPatchItem;
import org.apache.syncope.common.lib.patch.UserPatch;
import org.apache.syncope.common.lib.to.AttrTO;
import org.apache.syncope.common.lib.types.AnyTypeKind;
@@ -228,13 +226,8 @@ public class PropagationManagerImpl implements PropagationManager {
pwdWFResult.getPropByRes().addAll(ResourceOperation.UPDATE, pwdResourceNames);
if (!pwdWFResult.getPropByRes().isEmpty()) {
Set<String> toBeExcluded = new HashSet<>(allResourceNames);
- CollectionUtils.collect(userPatch.getResources(), new Transformer<StringPatchItem, String>() {
-
- @Override
- public String transform(final StringPatchItem input) {
- return input.getValue();
- }
- }, toBeExcluded);
+ toBeExcluded.addAll(userPatch.getResources().stream().
+ map(patchItem -> patchItem.getValue()).collect(Collectors.toList()));
toBeExcluded.removeAll(pwdResourceNames);
tasks.addAll(getUserUpdateTasks(pwdWFResult, true, toBeExcluded));
@@ -339,27 +332,29 @@ public class PropagationManagerImpl implements PropagationManager {
virtualResources.addAll(dao(any.getType().getKind()).findAllResourceKeys(any.getKey()));
Map<String, Set<Attribute>> vAttrMap = new HashMap<>();
- for (AttrTO vAttr : CollectionUtils.emptyIfNull(vAttrs)) {
- VirSchema schema = virSchemaDAO.find(vAttr.getSchema());
- if (schema == null) {
- LOG.warn("Ignoring invalid {} {}", VirSchema.class.getSimpleName(), vAttr.getSchema());
- } else if (schema.isReadonly()) {
- LOG.warn("Ignoring read-only {} {}", VirSchema.class.getSimpleName(), vAttr.getSchema());
- } else if (anyUtilsFactory.getInstance(any).getAllowedSchemas(any, VirSchema.class).contains(schema)
- && virtualResources.contains(schema.getProvision().getResource().getKey())) {
-
- Set<Attribute> values = vAttrMap.get(schema.getProvision().getResource().getKey());
- if (values == null) {
- values = new HashSet<>();
- vAttrMap.put(schema.getProvision().getResource().getKey(), values);
- }
- values.add(AttributeBuilder.build(schema.getExtAttrName(), vAttr.getValues()));
+ if (vAttrs != null) {
+ vAttrs.forEach(vAttr -> {
+ VirSchema schema = virSchemaDAO.find(vAttr.getSchema());
+ if (schema == null) {
+ LOG.warn("Ignoring invalid {} {}", VirSchema.class.getSimpleName(), vAttr.getSchema());
+ } else if (schema.isReadonly()) {
+ LOG.warn("Ignoring read-only {} {}", VirSchema.class.getSimpleName(), vAttr.getSchema());
+ } else if (anyUtilsFactory.getInstance(any).getAllowedSchemas(any, VirSchema.class).contains(schema)
+ && virtualResources.contains(schema.getProvision().getResource().getKey())) {
+
+ Set<Attribute> values = vAttrMap.get(schema.getProvision().getResource().getKey());
+ if (values == null) {
+ values = new HashSet<>();
+ vAttrMap.put(schema.getProvision().getResource().getKey(), values);
+ }
+ values.add(AttributeBuilder.build(schema.getExtAttrName(), vAttr.getValues()));
- propByRes.add(ResourceOperation.UPDATE, schema.getProvision().getResource().getKey());
- } else {
- LOG.warn("{} not owned by or {} not allowed for {}",
- schema.getProvision().getResource(), schema, any);
- }
+ propByRes.add(ResourceOperation.UPDATE, schema.getProvision().getResource().getKey());
+ } else {
+ LOG.warn("{} not owned by or {} not allowed for {}",
+ schema.getProvision().getResource(), schema, any);
+ }
+ });
}
LOG.debug("With virtual attributes {}:\n{}\n{}", any, propByRes, vAttrMap);
@@ -367,7 +362,7 @@ public class PropagationManagerImpl implements PropagationManager {
for (Map.Entry<String, ResourceOperation> entry : propByRes.asMap().entrySet()) {
ExternalResource resource = resourceDAO.find(entry.getKey());
- Provision provision = resource == null ? null : resource.getProvision(any.getType());
+ Provision provision = resource == null ? null : resource.getProvision(any.getType()).orElse(null);
List<? extends MappingItem> mappingItems = provision == null
? Collections.<MappingItem>emptyList()
: MappingUtils.getPropagationItems(provision);
@@ -400,18 +395,16 @@ public class PropagationManagerImpl implements PropagationManager {
// if so, add special attributes that will be evaluated by PropagationTaskExecutor
List<String> mandatoryMissing = new ArrayList<>();
List<String> mandatoryNullOrEmpty = new ArrayList<>();
- for (MappingItem item : mappingItems) {
- if (!item.isConnObjectKey()
- && JexlUtils.evaluateMandatoryCondition(item.getMandatoryCondition(), any)) {
-
- Attribute attr = AttributeUtil.find(item.getExtAttrName(), preparedAttrs.getValue());
- if (attr == null) {
- mandatoryMissing.add(item.getExtAttrName());
- } else if (attr.getValue() == null || attr.getValue().isEmpty()) {
- mandatoryNullOrEmpty.add(item.getExtAttrName());
- }
- }
- }
+ mappingItems.stream().filter(item -> (!item.isConnObjectKey()
+ && JexlUtils.evaluateMandatoryCondition(item.getMandatoryCondition(), any))).
+ forEachOrdered(item -> {
+ Attribute attr = AttributeUtil.find(item.getExtAttrName(), preparedAttrs.getValue());
+ if (attr == null) {
+ mandatoryMissing.add(item.getExtAttrName());
+ } else if (attr.getValue() == null || attr.getValue().isEmpty()) {
+ mandatoryNullOrEmpty.add(item.getExtAttrName());
+ }
+ });
if (!mandatoryMissing.isEmpty()) {
preparedAttrs.getValue().add(AttributeBuilder.build(
PropagationTaskExecutor.MANDATORY_MISSING_ATTR_NAME, mandatoryMissing));
@@ -454,7 +447,7 @@ public class PropagationManagerImpl implements PropagationManager {
List<PropagationTask> tasks = new ArrayList<>();
- for (Map.Entry<String, ResourceOperation> entry : propByRes.asMap().entrySet()) {
+ propByRes.asMap().entrySet().forEach(entry -> {
ExternalResource resource = resourceDAO.find(entry.getKey());
OrgUnit orgUnit = resource == null ? null : resource.getOrgUnit();
@@ -481,7 +474,7 @@ public class PropagationManagerImpl implements PropagationManager {
LOG.debug("PropagationTask created: {}", task);
}
- }
+ });
return tasks;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractProvisioningJobDelegate.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractProvisioningJobDelegate.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractProvisioningJobDelegate.java
index 64d8776..e611e34 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractProvisioningJobDelegate.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractProvisioningJobDelegate.java
@@ -23,8 +23,6 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import javax.annotation.Resource;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.common.lib.types.TraceLevel;
import org.apache.syncope.core.persistence.api.dao.AnyTypeDAO;
@@ -311,13 +309,8 @@ public abstract class AbstractProvisioningJobDelegate<T extends ProvisioningTask
// Summary, also to be included for FAILURE and ALL, so create it anyway.
boolean includeUser = resource.getProvision(anyTypeDAO.findUser()) != null;
boolean includeGroup = resource.getProvision(anyTypeDAO.findGroup()) != null;
- boolean includeAnyObject = IterableUtils.matchesAny(resource.getProvisions(), new Predicate<Provision>() {
-
- @Override
- public boolean evaluate(final Provision object) {
- return object.getAnyType().getKind() == AnyTypeKind.ANY_OBJECT;
- }
- });
+ boolean includeAnyObject = resource.getProvisions().stream().anyMatch(
+ provision -> provision.getAnyType().getKind() == AnyTypeKind.ANY_OBJECT);
boolean includeRealm = resource.getOrgUnit() != null;
if (includeUser) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPullResultHandler.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPullResultHandler.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPullResultHandler.java
index 1e93b92..74928d9 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPullResultHandler.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPullResultHandler.java
@@ -122,7 +122,7 @@ public abstract class AbstractPullResultHandler extends AbstractSyncopeResultHan
public boolean handle(final SyncDelta delta) {
Provision provision = null;
try {
- provision = profile.getTask().getResource().getProvision(delta.getObject().getObjectClass());
+ provision = profile.getTask().getResource().getProvision(delta.getObject().getObjectClass()).orElse(null);
if (provision == null) {
throw new JobExecutionException("No provision found on " + profile.getTask().getResource() + " for "
+ delta.getObject().getObjectClass());
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPushResultHandler.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPushResultHandler.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPushResultHandler.java
index 7095739..395ec3e 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPushResultHandler.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPushResultHandler.java
@@ -24,6 +24,7 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.apache.syncope.common.lib.patch.AnyPatch;
import org.apache.syncope.common.lib.patch.StringPatchItem;
@@ -261,15 +262,15 @@ public abstract class AbstractPushResultHandler extends AbstractSyncopeResultHan
Result resultStatus = null;
// Try to read remote object BEFORE any actual operation
- Provision provision = profile.getTask().getResource().getProvision(any.getType());
- MappingItem connObjectKey = MappingUtils.getConnObjectKeyItem(provision);
- String connObjecKeyValue = mappingManager.getConnObjectKeyValue(any, provision);
+ Optional<? extends Provision> provision = profile.getTask().getResource().getProvision(any.getType());
+ Optional<MappingItem> connObjectKey = MappingUtils.getConnObjectKeyItem(provision.get());
+ Optional<String> connObjecKeyValue = mappingManager.getConnObjectKeyValue(any, provision.get());
ConnectorObject beforeObj = getRemoteObject(
- provision.getObjectClass(),
- connObjectKey.getExtAttrName(),
- connObjecKeyValue,
- provision.getMapping().getItems().iterator());
+ provision.get().getObjectClass(),
+ connObjectKey.get().getExtAttrName(),
+ connObjecKeyValue.get(),
+ provision.get().getMapping().getItems().iterator());
Boolean status = profile.getTask().isSyncStatus() ? enabled : null;
@@ -435,10 +436,10 @@ public abstract class AbstractPushResultHandler extends AbstractSyncopeResultHan
}
resultStatus = AuditElements.Result.SUCCESS;
output = getRemoteObject(
- provision.getObjectClass(),
- connObjectKey.getExtAttrName(),
- connObjecKeyValue,
- provision.getMapping().getItems().iterator());
+ provision.get().getObjectClass(),
+ connObjectKey.get().getExtAttrName(),
+ connObjecKeyValue.get(),
+ provision.get().getMapping().getItems().iterator());
} catch (IgnoreProvisionException e) {
throw e;
} catch (Exception e) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DBPasswordPullActions.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DBPasswordPullActions.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DBPasswordPullActions.java
index 36b33f7..c0a7eb4 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DBPasswordPullActions.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DBPasswordPullActions.java
@@ -18,8 +18,7 @@
*/
package org.apache.syncope.core.provisioning.java.pushpull;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
+import java.util.Optional;
import org.apache.syncope.common.lib.patch.AnyPatch;
import org.apache.syncope.common.lib.patch.PasswordPatch;
import org.apache.syncope.common.lib.patch.UserPatch;
@@ -108,19 +107,13 @@ public class DBPasswordPullActions implements PullActions {
}
private String getCipherAlgorithm(final ConnInstance connInstance) {
- ConnConfProperty cipherAlgorithm =
- IterableUtils.find(connInstance.getConf(), new Predicate<ConnConfProperty>() {
-
- @Override
- public boolean evaluate(final ConnConfProperty property) {
- return "cipherAlgorithm".equals(property.getSchema().getName())
- && property.getValues() != null && !property.getValues().isEmpty();
- }
- });
-
- return cipherAlgorithm == null
- ? CLEARTEXT
- : (String) cipherAlgorithm.getValues().get(0);
+ Optional<ConnConfProperty> cipherAlgorithm = connInstance.getConf().stream().
+ filter(property -> "cipherAlgorithm".equals(property.getSchema().getName())
+ && property.getValues() != null && !property.getValues().isEmpty()).findFirst();
+
+ return cipherAlgorithm.isPresent()
+ ? (String) cipherAlgorithm.get().getValues().get(0)
+ : CLEARTEXT;
}
@Transactional
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/LDAPMembershipPullActions.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/LDAPMembershipPullActions.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/LDAPMembershipPullActions.java
index 98ce3b9..5261926 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/LDAPMembershipPullActions.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/LDAPMembershipPullActions.java
@@ -23,9 +23,8 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import java.util.Set;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.common.lib.to.EntityTO;
import org.apache.syncope.common.lib.to.GroupTO;
import org.apache.syncope.common.lib.types.ConnConfProperty;
@@ -78,19 +77,13 @@ public class LDAPMembershipPullActions extends SchedulingPullActions {
* @return the name of the attribute used to keep track of group memberships
*/
protected String getGroupMembershipAttrName(final Connector connector) {
- ConnConfProperty groupMembership = IterableUtils.find(connector.getConnInstance().getConf(),
- new Predicate<ConnConfProperty>() {
+ Optional<ConnConfProperty> groupMembership = connector.getConnInstance().getConf().stream().
+ filter(property -> "groupMemberAttribute".equals(property.getSchema().getName())
+ && property.getValues() != null && !property.getValues().isEmpty()).findFirst();
- @Override
- public boolean evaluate(final ConnConfProperty property) {
- return "groupMemberAttribute".equals(property.getSchema().getName())
- && property.getValues() != null && !property.getValues().isEmpty();
- }
- });
-
- return groupMembership == null
- ? "uniquemember"
- : (String) groupMembership.getValues().get(0);
+ return groupMembership.isPresent()
+ ? (String) groupMembership.get().getValues().get(0)
+ : "uniquemember";
}
/**
@@ -139,14 +132,16 @@ public class LDAPMembershipPullActions extends SchedulingPullActions {
throws JobExecutionException {
Connector connector = profile.getConnector();
- for (Object membValue : getMembAttrValues(delta, connector)) {
+ getMembAttrValues(delta, connector).stream().map(membValue -> {
Set<String> memb = memberships.get(membValue.toString());
if (memb == null) {
memb = new HashSet<>();
memberships.put(membValue.toString(), memb);
}
+ return memb;
+ }).forEachOrdered(memb -> {
memb.add(groupTO.getKey());
- }
+ });
}
/**
@@ -165,8 +160,8 @@ public class LDAPMembershipPullActions extends SchedulingPullActions {
}
if (!(entity instanceof GroupTO)
- || profile.getTask().getResource().getProvision(anyTypeDAO.findUser()) == null
- || profile.getTask().getResource().getProvision(anyTypeDAO.findUser()).getMapping() == null) {
+ || !profile.getTask().getResource().getProvision(anyTypeDAO.findUser()).isPresent()
+ || profile.getTask().getResource().getProvision(anyTypeDAO.findUser()).get().getMapping() == null) {
super.after(profile, delta, entity, result);
} else {
@@ -177,18 +172,18 @@ public class LDAPMembershipPullActions extends SchedulingPullActions {
@Override
public void afterAll(final ProvisioningProfile<?, ?> profile) throws JobExecutionException {
Map<String, Set<String>> resolvedMemberships = new HashMap<>();
- for (Map.Entry<String, Set<String>> entry : this.memberships.entrySet()) {
- String userKey = pullUtils.findMatchingAnyKey(
+ this.memberships.entrySet().forEach(entry -> {
+ Optional<String> userKey = pullUtils.findMatchingAnyKey(
anyTypeDAO.findUser(),
entry.getKey(),
profile.getTask().getResource(),
profile.getConnector());
- if (userKey == null) {
- LOG.warn("Could not find matching user for {}", entry.getKey());
+ if (userKey.isPresent()) {
+ resolvedMemberships.put(userKey.get(), entry.getValue());
} else {
- resolvedMemberships.put(userKey, entry.getValue());
+ LOG.warn("Could not find matching user for {}", entry.getKey());
}
- }
+ });
Map<String, Object> jobMap = new HashMap<>();
jobMap.put(SetUMembershipsJob.MEMBERSHIPS_KEY, resolvedMemberships);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PullJobDelegate.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PullJobDelegate.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PullJobDelegate.java
index 3520db0..eb94ba9 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PullJobDelegate.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PullJobDelegate.java
@@ -24,16 +24,16 @@ 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 org.apache.commons.collections4.IteratorUtils;
import org.apache.commons.lang3.StringUtils;
+import org.apache.syncope.common.lib.collections.IteratorChain;
import org.apache.syncope.common.lib.policy.PullPolicySpec;
import org.apache.syncope.core.spring.ApplicationContextProvider;
import org.apache.syncope.core.persistence.api.dao.GroupDAO;
import org.apache.syncope.core.persistence.api.dao.NotFoundException;
import org.apache.syncope.core.persistence.api.dao.UserDAO;
import org.apache.syncope.core.persistence.api.dao.VirSchemaDAO;
-import org.apache.syncope.core.persistence.api.entity.VirSchema;
import org.apache.syncope.core.persistence.api.entity.group.Group;
import org.apache.syncope.core.persistence.api.entity.resource.MappingItem;
import org.apache.syncope.core.persistence.api.entity.resource.OrgUnit;
@@ -79,39 +79,39 @@ public class PullJobDelegate extends AbstractProvisioningJobDelegate<PullTask> i
}
private void setGroupOwners(final GroupPullResultHandler ghandler) {
- for (Map.Entry<String, String> entry : ghandler.getGroupOwnerMap().entrySet()) {
+ ghandler.getGroupOwnerMap().entrySet().stream().map(entry -> {
Group group = groupDAO.find(entry.getKey());
if (group == null) {
throw new NotFoundException("Group " + entry.getKey());
}
-
if (StringUtils.isBlank(entry.getValue())) {
group.setGroupOwner(null);
group.setUserOwner(null);
} else {
- String userKey = pullUtils.findMatchingAnyKey(
+ Optional<String> userKey = pullUtils.findMatchingAnyKey(
anyTypeDAO.findUser(),
entry.getValue(),
ghandler.getProfile().getTask().getResource(),
ghandler.getProfile().getConnector());
- if (userKey == null) {
- String groupKey = pullUtils.findMatchingAnyKey(
+ if (userKey.isPresent()) {
+ group.setUserOwner(userDAO.find(userKey.get()));
+ } else {
+ Optional<String> groupKey = pullUtils.findMatchingAnyKey(
anyTypeDAO.findGroup(),
entry.getValue(),
ghandler.getProfile().getTask().getResource(),
ghandler.getProfile().getConnector());
- if (groupKey != null) {
- group.setGroupOwner(groupDAO.find(groupKey));
+ if (groupKey.isPresent()) {
+ group.setGroupOwner(groupDAO.find(groupKey.get()));
}
- } else {
- group.setUserOwner(userDAO.find(userKey));
}
}
-
+ return group;
+ }).forEachOrdered(group -> {
groupDAO.save(group);
- }
+ });
}
@Override
@@ -123,7 +123,7 @@ public class PullJobDelegate extends AbstractProvisioningJobDelegate<PullTask> i
LOG.debug("Executing pull on {}", pullTask.getResource());
List<PullActions> actions = new ArrayList<>();
- for (String className : pullTask.getActionsClassNames()) {
+ pullTask.getActionsClassNames().forEach(className -> {
try {
Class<?> actionsClass = Class.forName(className);
PullActions pullActions = (PullActions) ApplicationContextProvider.getBeanFactory().
@@ -133,7 +133,7 @@ public class PullJobDelegate extends AbstractProvisioningJobDelegate<PullTask> i
} catch (Exception e) {
LOG.warn("Class '{}' not found", className, e);
}
- }
+ });
ProvisioningProfile<PullTask, PullActions> profile = new ProvisioningProfile<>(connector, pullTask);
profile.getActions().addAll(actions);
@@ -236,10 +236,10 @@ public class PullJobDelegate extends AbstractProvisioningJobDelegate<PullTask> i
try {
Set<MappingItem> linkinMappingItems = new HashSet<>();
- for (VirSchema virSchema : virSchemaDAO.findByProvision(provision)) {
+ virSchemaDAO.findByProvision(provision).forEach(virSchema -> {
linkinMappingItems.add(virSchema.asLinkingMappingItem());
- }
- Iterator<MappingItem> mapItems = IteratorUtils.chainedIterator(
+ });
+ Iterator<MappingItem> mapItems = new IteratorChain<>(
provision.getMapping().getItems().iterator(),
linkinMappingItems.iterator());
OperationOptions options = MappingUtils.buildOperationOptions(mapItems);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PullUtils.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PullUtils.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PullUtils.java
index 7dee306..ad431bf 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PullUtils.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PullUtils.java
@@ -21,7 +21,8 @@ package org.apache.syncope.core.provisioning.java.pushpull;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
+import java.util.Optional;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.common.lib.policy.PullPolicySpec;
@@ -58,7 +59,6 @@ import org.identityconnectors.framework.common.objects.AttributeUtil;
import org.identityconnectors.framework.common.objects.ConnectorObject;
import org.identityconnectors.framework.common.objects.Name;
import org.identityconnectors.framework.common.objects.OperationalAttributes;
-import org.identityconnectors.framework.common.objects.ResultsHandler;
import org.identityconnectors.framework.common.objects.filter.EqualsFilter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -66,7 +66,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.apache.syncope.core.provisioning.api.pushpull.PullCorrelationRule;
-import org.apache.syncope.core.provisioning.api.utils.EntityUtils;
import org.apache.syncope.core.provisioning.java.utils.MappingUtils;
import org.apache.syncope.core.provisioning.api.data.ItemTransformer;
@@ -115,43 +114,37 @@ public class PullUtils {
@Autowired
private IntAttrNameParser intAttrNameParser;
- public String findMatchingAnyKey(
+ public Optional<String> findMatchingAnyKey(
final AnyType anyType,
final String name,
final ExternalResource resource,
final Connector connector) {
- Provision provision = resource.getProvision(anyType);
- if (provision == null) {
- return null;
+ Optional<? extends Provision> provision = resource.getProvision(anyType);
+ if (!provision.isPresent()) {
+ return Optional.empty();
}
- String result = null;
+ Optional<String> result = Optional.empty();
AnyUtils anyUtils = anyUtilsFactory.getInstance(anyType.getKind());
final List<ConnectorObject> found = new ArrayList<>();
- connector.search(provision.getObjectClass(),
- new EqualsFilter(new Name(name)),
- new ResultsHandler() {
-
- @Override
- public boolean handle(final ConnectorObject obj) {
- return found.add(obj);
- }
- }, MappingUtils.buildOperationOptions(MappingUtils.getPullItems(provision).iterator()));
+ connector.search(provision.get().getObjectClass(),
+ new EqualsFilter(new Name(name)), obj -> found.add(obj),
+ MappingUtils.buildOperationOptions(MappingUtils.getPullItems(provision.get()).iterator()));
if (found.isEmpty()) {
- LOG.debug("No {} found on {} with __NAME__ {}", provision.getObjectClass(), resource, name);
+ LOG.debug("No {} found on {} with __NAME__ {}", provision.get().getObjectClass(), resource, name);
} else {
if (found.size() > 1) {
LOG.warn("More than one {} found on {} with __NAME__ {} - taking first only",
- provision.getObjectClass(), resource, name);
+ provision.get().getObjectClass(), resource, name);
}
ConnectorObject connObj = found.iterator().next();
try {
- List<String> anyKeys = findExisting(connObj.getUid().getUidValue(), connObj, provision, anyUtils);
+ List<String> anyKeys = findExisting(connObj.getUid().getUidValue(), connObj, provision.get(), anyUtils);
if (anyKeys.isEmpty()) {
LOG.debug("No matching {} found for {}, aborting", anyUtils.getAnyTypeKind(), connObj);
} else {
@@ -159,7 +152,7 @@ public class PullUtils {
LOG.warn("More than one {} found {} - taking first only", anyUtils.getAnyTypeKind(), anyKeys);
}
- result = anyKeys.iterator().next();
+ result = Optional.ofNullable(anyKeys.iterator().next());
}
} catch (IllegalArgumentException e) {
LOG.warn(e.getMessage());
@@ -180,12 +173,12 @@ public class PullUtils {
private List<String> findByConnObjectKeyItem(
final String uid, final Provision provision, final AnyUtils anyUtils) {
- MappingItem connObjectKeyItem = MappingUtils.getConnObjectKeyItem(provision);
+ Optional<MappingItem> connObjectKeyItem = MappingUtils.getConnObjectKeyItem(provision);
String transfUid = uid;
- for (ItemTransformer transformer : MappingUtils.getItemTransformers(connObjectKeyItem)) {
+ for (ItemTransformer transformer : MappingUtils.getItemTransformers(connObjectKeyItem.get())) {
List<Object> output = transformer.beforePull(
- connObjectKeyItem,
+ connObjectKeyItem.get(),
null,
Collections.<Object>singletonList(transfUid));
if (output != null && !output.isEmpty()) {
@@ -196,7 +189,7 @@ public class PullUtils {
List<String> result = new ArrayList<>();
IntAttrName intAttrName = intAttrNameParser.parse(
- connObjectKeyItem.getIntAttrName(),
+ connObjectKeyItem.get().getIntAttrName(),
provision.getAnyType().getKind());
if (intAttrName.getField() != null) {
@@ -247,17 +240,17 @@ public class PullUtils {
List<? extends Any<?>> anys = getAnyDAO(provision.getAnyType().getKind()).
findByPlainAttrValue(intAttrName.getSchemaName(), value);
- for (Any<?> any : anys) {
+ anys.forEach(any -> {
result.add(any.getKey());
- }
+ });
break;
case DERIVED:
anys = getAnyDAO(provision.getAnyType().getKind()).
findByDerAttrValue(intAttrName.getSchemaName(), transfUid);
- for (Any<?> any : anys) {
+ anys.forEach(any -> {
result.add(any.getKey());
- }
+ });
break;
default:
@@ -271,9 +264,9 @@ public class PullUtils {
final ConnectorObject connObj, final PullCorrelationRule rule, final AnyTypeKind type) {
List<String> result = new ArrayList<>();
- for (Any<?> any : searchDAO.search(rule.getSearchCond(connObj), type)) {
+ searchDAO.search(rule.getSearchCond(connObj), type).forEach(any -> {
result.add(any.getKey());
- }
+ });
return result;
}
@@ -337,12 +330,12 @@ public class PullUtils {
final ConnectorObject connObj,
final OrgUnit orgUnit) {
- OrgUnitItem connObjectKeyItem = orgUnit.getConnObjectKeyItem();
+ Optional<? extends OrgUnitItem> connObjectKeyItem = orgUnit.getConnObjectKeyItem();
String transfUid = uid;
- for (ItemTransformer transformer : MappingUtils.getItemTransformers(connObjectKeyItem)) {
+ for (ItemTransformer transformer : MappingUtils.getItemTransformers(connObjectKeyItem.get())) {
List<Object> output = transformer.beforePull(
- connObjectKeyItem,
+ connObjectKeyItem.get(),
null,
Collections.<Object>singletonList(transfUid));
if (output != null && !output.isEmpty()) {
@@ -353,7 +346,7 @@ public class PullUtils {
List<String> result = new ArrayList<>();
Realm realm;
- switch (connObjectKeyItem.getIntAttrName()) {
+ switch (connObjectKeyItem.get().getIntAttrName()) {
case "key":
realm = realmDAO.find(transfUid);
if (realm != null) {
@@ -362,7 +355,8 @@ public class PullUtils {
break;
case "name":
- CollectionUtils.collect(realmDAO.findByName(transfUid), EntityUtils.keyTransformer(), result);
+ result.addAll(realmDAO.findByName(transfUid).stream().
+ map(r -> r.getKey()).collect(Collectors.toList()));
break;
case "fullpath":
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PushJobDelegate.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PushJobDelegate.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PushJobDelegate.java
index 8a4a036..996ccad 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PushJobDelegate.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PushJobDelegate.java
@@ -21,6 +21,7 @@ package org.apache.syncope.core.provisioning.java.pushpull;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import java.util.Optional;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.core.persistence.api.search.SearchCondConverter;
@@ -38,6 +39,7 @@ import org.apache.syncope.core.persistence.api.entity.Realm;
import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
import org.apache.syncope.core.persistence.api.entity.resource.Provision;
import org.apache.syncope.core.persistence.api.entity.task.PushTask;
+import org.apache.syncope.core.persistence.api.entity.task.PushTaskAnyFilter;
import org.apache.syncope.core.provisioning.api.Connector;
import org.apache.syncope.core.provisioning.api.pushpull.AnyObjectPushResultHandler;
import org.apache.syncope.core.provisioning.api.pushpull.GroupPushResultHandler;
@@ -119,7 +121,7 @@ public class PushJobDelegate extends AbstractProvisioningJobDelegate<PushTask> {
LOG.debug("Executing push on {}", pushTask.getResource());
List<PushActions> actions = new ArrayList<>();
- for (String className : pushTask.getActionsClassNames()) {
+ pushTask.getActionsClassNames().forEach(className -> {
try {
Class<?> actionsClass = Class.forName(className);
@@ -129,7 +131,7 @@ public class PushJobDelegate extends AbstractProvisioningJobDelegate<PushTask> {
} catch (Exception e) {
LOG.info("Class '{}' not found", className, e);
}
- }
+ });
ProvisioningProfile<PushTask, PushActions> profile = new ProvisioningProfile<>(connector, pushTask);
profile.getActions().addAll(actions);
@@ -195,9 +197,10 @@ public class PushJobDelegate extends AbstractProvisioningJobDelegate<PushTask> {
handler = ahandler;
}
- String filter = pushTask.getFilter(provision.getAnyType()) == null
- ? null
- : pushTask.getFilter(provision.getAnyType()).getFIQLCond();
+ Optional<? extends PushTaskAnyFilter> anyFilter = pushTask.getFilter(provision.getAnyType());
+ String filter = anyFilter.isPresent()
+ ? anyFilter.get().getFIQLCond()
+ : null;
SearchCond cond = StringUtils.isBlank(filter)
? anyDAO.getAllMatchingCond()
: SearchCondConverter.convert(filter);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/RealmPushResultHandlerImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/RealmPushResultHandlerImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/RealmPushResultHandlerImpl.java
index 4becdad..655f0c5 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/RealmPushResultHandlerImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/RealmPushResultHandlerImpl.java
@@ -23,6 +23,7 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.apache.syncope.common.lib.to.RealmTO;
import org.apache.syncope.common.lib.types.AuditElements;
@@ -195,12 +196,12 @@ public class RealmPushResultHandlerImpl
// Try to read remote object BEFORE any actual operation
OrgUnit orgUnit = profile.getTask().getResource().getOrgUnit();
- OrgUnitItem connObjectKey = orgUnit.getConnObjectKeyItem();
+ Optional<? extends OrgUnitItem> connObjectKey = orgUnit.getConnObjectKeyItem();
String connObjecKeyValue = mappingManager.getConnObjectKeyValue(realm, orgUnit);
ConnectorObject beforeObj = getRemoteObject(
orgUnit.getObjectClass(),
- connObjectKey.getExtAttrName(),
+ connObjectKey.get().getExtAttrName(),
connObjecKeyValue,
orgUnit.getItems().iterator());
@@ -374,7 +375,7 @@ public class RealmPushResultHandlerImpl
resultStatus = AuditElements.Result.SUCCESS;
output = getRemoteObject(
orgUnit.getObjectClass(),
- connObjectKey.getExtAttrName(),
+ connObjectKey.get().getExtAttrName(),
connObjecKeyValue,
orgUnit.getItems().iterator());
} catch (IgnoreProvisionException e) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/ConnObjectUtils.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/ConnObjectUtils.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/ConnObjectUtils.java
index 249e488..ca98f76 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/ConnObjectUtils.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/ConnObjectUtils.java
@@ -34,8 +34,6 @@ import org.apache.syncope.common.lib.to.UserTO;
import org.apache.syncope.core.persistence.api.dao.ExternalResourceDAO;
import org.apache.syncope.core.persistence.api.dao.UserDAO;
import org.apache.syncope.core.persistence.api.entity.AnyUtils;
-import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
-import org.apache.syncope.core.persistence.api.entity.resource.MappingItem;
import org.apache.syncope.core.persistence.api.entity.user.User;
import org.apache.syncope.core.spring.security.Encryptor;
import org.apache.syncope.core.spring.security.PasswordGenerator;
@@ -43,7 +41,6 @@ import org.apache.syncope.core.spring.security.SecureRandomUtils;
import org.apache.syncope.core.persistence.api.dao.RealmDAO;
import org.apache.syncope.core.persistence.api.entity.Realm;
import org.apache.syncope.core.persistence.api.entity.resource.OrgUnit;
-import org.apache.syncope.core.persistence.api.entity.resource.OrgUnitItem;
import org.apache.syncope.core.persistence.api.entity.resource.Provision;
import org.apache.syncope.core.persistence.api.entity.task.PullTask;
import org.apache.syncope.core.provisioning.api.MappingManager;
@@ -52,7 +49,6 @@ import org.identityconnectors.common.Base64;
import org.identityconnectors.common.security.GuardedByteArray;
import org.identityconnectors.common.security.GuardedString;
import org.identityconnectors.common.security.SecurityUtil;
-import org.identityconnectors.framework.common.objects.Attribute;
import org.identityconnectors.framework.common.objects.ConnectorObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -134,19 +130,18 @@ public class ConnObjectUtils {
Realm realm = realmDAO.findByFullPath(userTO.getRealm());
if (realm != null) {
- for (Realm ancestor : realmDAO.findAncestors(realm)) {
- if (ancestor.getPasswordPolicy() != null) {
- ruleConfs.addAll(ancestor.getPasswordPolicy().getRuleConfs());
- }
- }
+ realmDAO.findAncestors(realm).stream().
+ filter(ancestor -> (ancestor.getPasswordPolicy() != null)).
+ forEachOrdered(ancestor -> {
+ ruleConfs.addAll(ancestor.getPasswordPolicy().getRuleConfs());
+ });
}
- for (String resName : userTO.getResources()) {
- ExternalResource resource = resourceDAO.find(resName);
- if (resource != null && resource.getPasswordPolicy() != null) {
- ruleConfs.addAll(resource.getPasswordPolicy().getRuleConfs());
- }
- }
+ userTO.getResources().stream().map(resName -> resourceDAO.find(resName)).
+ filter(resource -> (resource != null && resource.getPasswordPolicy() != null)).
+ forEachOrdered(resource -> {
+ ruleConfs.addAll(resource.getPasswordPolicy().getRuleConfs());
+ });
String password;
try {
@@ -165,9 +160,9 @@ public class ConnObjectUtils {
public RealmTO getRealmTO(final ConnectorObject obj, final PullTask task, final OrgUnit orgUnit) {
RealmTO realmTO = new RealmTO();
- for (OrgUnitItem item : MappingUtils.getPullItems(orgUnit)) {
+ MappingUtils.getPullItems(orgUnit).forEach(item -> {
mappingManager.setIntValues(item, obj.getAttributeByName(item.getExtAttrName()), realmTO);
- }
+ });
return realmTO;
}
@@ -268,9 +263,9 @@ public class ConnObjectUtils {
// 1. fill with data from connector object
anyTO.setRealm(pullTask.getDestinatioRealm().getFullPath());
- for (MappingItem item : MappingUtils.getPullItems(provision)) {
+ MappingUtils.getPullItems(provision).forEach(item -> {
mappingManager.setIntValues(item, obj.getAttributeByName(item.getExtAttrName()), anyTO, anyUtils);
- }
+ });
// 2. add data from defined template (if any)
templateUtils.apply(anyTO, pullTask.getTemplate(provision.getAnyType()));
@@ -288,26 +283,24 @@ public class ConnObjectUtils {
final ConnObjectTO connObjectTO = new ConnObjectTO();
if (connObject != null) {
- for (Attribute attr : connObject.getAttributes()) {
+ connObject.getAttributes().stream().map(attr -> {
AttrTO attrTO = new AttrTO();
attrTO.setSchema(attr.getName());
-
if (attr.getValue() != null) {
- for (Object value : attr.getValue()) {
- if (value != null) {
- if (value instanceof GuardedString || value instanceof GuardedByteArray) {
- attrTO.getValues().add(getPassword(value));
- } else if (value instanceof byte[]) {
- attrTO.getValues().add(Base64.encode((byte[]) value));
- } else {
- attrTO.getValues().add(value.toString());
- }
+ attr.getValue().stream().filter(value -> value != null).forEachOrdered(value -> {
+ if (value instanceof GuardedString || value instanceof GuardedByteArray) {
+ attrTO.getValues().add(getPassword(value));
+ } else if (value instanceof byte[]) {
+ attrTO.getValues().add(Base64.encode((byte[]) value));
+ } else {
+ attrTO.getValues().add(value.toString());
}
- }
+ });
}
-
+ return attrTO;
+ }).forEachOrdered((attrTO) -> {
connObjectTO.getAttrs().add(attrTO);
- }
+ });
}
return connObjectTO;
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/MappingUtils.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/MappingUtils.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/MappingUtils.java
index ce794af..ebe4e2b 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/MappingUtils.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/MappingUtils.java
@@ -19,12 +19,13 @@
package org.apache.syncope.core.provisioning.java.utils;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
+import java.util.Optional;
import java.util.Set;
-import org.apache.commons.collections4.ListUtils;
-import org.apache.commons.collections4.Predicate;
+import java.util.stream.Collectors;
import org.apache.commons.jexl3.JexlContext;
import org.apache.commons.jexl3.MapContext;
import org.apache.commons.lang3.ClassUtils;
@@ -57,55 +58,43 @@ public final class MappingUtils {
private static final Logger LOG = LoggerFactory.getLogger(MappingUtils.class);
- public static MappingItem getConnObjectKeyItem(final Provision provision) {
+ public static Optional<MappingItem> getConnObjectKeyItem(final Provision provision) {
Mapping mapping = null;
if (provision != null) {
mapping = provision.getMapping();
}
- return mapping == null
+ return Optional.ofNullable(mapping == null
? null
- : mapping.getConnObjectKeyItem();
+ : mapping.getConnObjectKeyItem().get());
}
public static List<? extends MappingItem> getPropagationItems(final Provision provision) {
- return ListUtils.select(provision.getMapping().getItems(), new Predicate<MappingItem>() {
-
- @Override
- public boolean evaluate(final MappingItem item) {
- return item.getPurpose() == MappingPurpose.PROPAGATION || item.getPurpose() == MappingPurpose.BOTH;
- }
- });
+ return provision == null
+ ? Collections.emptyList()
+ : provision.getMapping().getItems().stream().
+ filter(item -> item.getPurpose() == MappingPurpose.PROPAGATION
+ || item.getPurpose() == MappingPurpose.BOTH).collect(Collectors.toList());
}
public static List<? extends MappingItem> getPullItems(final Provision provision) {
- return ListUtils.select(provision.getMapping().getItems(), new Predicate<MappingItem>() {
-
- @Override
- public boolean evaluate(final MappingItem item) {
- return item.getPurpose() == MappingPurpose.PULL || item.getPurpose() == MappingPurpose.BOTH;
- }
- });
+ return provision == null
+ ? Collections.emptyList()
+ : provision.getMapping().getItems().stream().
+ filter(item -> item.getPurpose() == MappingPurpose.PULL
+ || item.getPurpose() == MappingPurpose.BOTH).collect(Collectors.toList());
}
public static List<? extends OrgUnitItem> getPropagationItems(final OrgUnit orgUnit) {
- return ListUtils.select(orgUnit.getItems(), new Predicate<OrgUnitItem>() {
-
- @Override
- public boolean evaluate(final OrgUnitItem item) {
- return item.getPurpose() == MappingPurpose.PROPAGATION || item.getPurpose() == MappingPurpose.BOTH;
- }
- });
+ return orgUnit.getItems().stream().
+ filter(item -> item.getPurpose() == MappingPurpose.PROPAGATION
+ || item.getPurpose() == MappingPurpose.BOTH).collect(Collectors.toList());
}
public static List<? extends OrgUnitItem> getPullItems(final OrgUnit orgUnit) {
- return ListUtils.select(orgUnit.getItems(), new Predicate<OrgUnitItem>() {
-
- @Override
- public boolean evaluate(final OrgUnitItem item) {
- return item.getPurpose() == MappingPurpose.PULL || item.getPurpose() == MappingPurpose.BOTH;
- }
- });
+ return orgUnit.getItems().stream().
+ filter(item -> item.getPurpose() == MappingPurpose.PULL
+ || item.getPurpose() == MappingPurpose.BOTH).collect(Collectors.toList());
}
private static Name evaluateNAME(final String evalConnObjectLink, final String connObjectKey) {
@@ -209,7 +198,7 @@ public final class MappingUtils {
}
// Then other custom tranaformers
- for (String className : mappingItemTransformerClassNames) {
+ mappingItemTransformerClassNames.forEach(className -> {
try {
Class<?> transformerClass = ClassUtils.getClass(className);
@@ -218,7 +207,7 @@ public final class MappingUtils {
} catch (Exception e) {
LOG.error("Could not instantiate {}, ignoring...", className, e);
}
- }
+ });
return result;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/TemplateUtils.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/TemplateUtils.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/TemplateUtils.java
index ef47ef1..0994252 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/TemplateUtils.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/TemplateUtils.java
@@ -19,6 +19,7 @@
package org.apache.syncope.core.provisioning.java.utils;
import java.util.Map;
+import java.util.Optional;
import org.apache.commons.jexl3.MapContext;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.EntityTOUtils;
@@ -28,8 +29,6 @@ import org.apache.syncope.common.lib.to.AnyTO;
import org.apache.syncope.common.lib.to.AttrTO;
import org.apache.syncope.common.lib.to.GroupTO;
import org.apache.syncope.common.lib.to.GroupableRelatableTO;
-import org.apache.syncope.common.lib.to.MembershipTO;
-import org.apache.syncope.common.lib.to.RelationshipTO;
import org.apache.syncope.common.lib.to.UserTO;
import org.apache.syncope.common.lib.types.ClientExceptionType;
import org.apache.syncope.core.provisioning.java.jexl.JexlUtils;
@@ -56,12 +55,12 @@ public class TemplateUtils {
result.setSchema(template.getSchema());
if (template.getValues() != null && !template.getValues().isEmpty()) {
- for (String value : template.getValues()) {
+ template.getValues().forEach(value -> {
String evaluated = JexlUtils.evaluate(value, anyTO, new MapContext());
if (StringUtils.isNotBlank(evaluated)) {
result.getValues().add(evaluated);
}
- }
+ });
}
return result;
@@ -108,25 +107,26 @@ public class TemplateUtils {
}
private void fillRelationships(final GroupableRelatableTO any, final GroupableRelatableTO template) {
- for (RelationshipTO relationship : template.getRelationships()) {
- if (any.getRelationship(relationship.getRightKey(), relationship.getRightKey()) == null) {
- any.getRelationships().add(relationship);
- }
- }
+ template.getRelationships().stream().
+ filter(relationship
+ -> !any.getRelationship(relationship.getRightKey(), relationship.getRightKey()).isPresent()).
+ forEachOrdered(relationship -> {
+ any.getRelationships().add(relationship);
+ });
}
private void fillMemberships(final GroupableRelatableTO any, final GroupableRelatableTO template) {
- for (MembershipTO membership : template.getMemberships()) {
- if (any.getMembership(membership.getGroupKey()) == null) {
- any.getMemberships().add(membership);
- }
- }
+ template.getMemberships().stream().
+ filter(membership -> !any.getMembership(membership.getGroupKey()).isPresent()).
+ forEachOrdered(membership -> {
+ any.getMemberships().add(membership);
+ });
}
@Transactional(readOnly = true)
- public <T extends AnyTO> void apply(final T anyTO, final AnyTemplate anyTemplate) {
- if (anyTemplate != null) {
- apply(anyTO, anyTemplate.get());
+ public <T extends AnyTO> void apply(final T anyTO, final Optional<? extends AnyTemplate> anyTemplate) {
+ if (anyTemplate.isPresent()) {
+ apply(anyTO, anyTemplate.get().get());
}
}
@@ -180,18 +180,20 @@ public class TemplateUtils {
public void check(final Map<String, AnyTO> templates, final ClientExceptionType clientExceptionType) {
SyncopeClientException sce = SyncopeClientException.build(clientExceptionType);
- for (Map.Entry<String, AnyTO> entry : templates.entrySet()) {
- for (AttrTO attrTO : entry.getValue().getPlainAttrs()) {
- if (!attrTO.getValues().isEmpty() && !JexlUtils.isExpressionValid(attrTO.getValues().get(0))) {
- sce.getElements().add("Invalid JEXL: " + attrTO.getValues().get(0));
- }
- }
-
- for (AttrTO attrTO : entry.getValue().getVirAttrs()) {
- if (!attrTO.getValues().isEmpty() && !JexlUtils.isExpressionValid(attrTO.getValues().get(0))) {
- sce.getElements().add("Invalid JEXL: " + attrTO.getValues().get(0));
- }
- }
+ templates.entrySet().forEach(entry -> {
+ entry.getValue().getPlainAttrs().stream().
+ filter(attrTO -> !attrTO.getValues().isEmpty()
+ && !JexlUtils.isExpressionValid(attrTO.getValues().get(0))).
+ forEachOrdered(attrTO -> {
+ sce.getElements().add("Invalid JEXL: " + attrTO.getValues().get(0));
+ });
+
+ entry.getValue().getVirAttrs().stream().
+ filter(attrTO -> !attrTO.getValues().isEmpty()
+ && !JexlUtils.isExpressionValid(attrTO.getValues().get(0))).
+ forEachOrdered((attrTO) -> {
+ sce.getElements().add("Invalid JEXL: " + attrTO.getValues().get(0));
+ });
if (entry.getValue() instanceof UserTO) {
UserTO template = (UserTO) entry.getValue();
@@ -213,7 +215,7 @@ public class TemplateUtils {
sce.getElements().add("Invalid JEXL: " + template.getName());
}
}
- }
+ });
if (!sce.isEmpty()) {
throw sce;
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/ConnectorManagerTest.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/ConnectorManagerTest.java b/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/ConnectorManagerTest.java
index 0434619..ebf1807 100644
--- a/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/ConnectorManagerTest.java
+++ b/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/ConnectorManagerTest.java
@@ -20,10 +20,7 @@ package org.apache.syncope.core.provisioning.java;
import static org.junit.Assert.assertEquals;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.core.persistence.api.dao.ExternalResourceDAO;
-import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
import org.apache.syncope.core.provisioning.api.ConnIdBundleManager;
import org.apache.syncope.core.provisioning.api.Connector;
import org.apache.syncope.core.spring.ApplicationContextProvider;
@@ -59,13 +56,8 @@ public class ConnectorManagerTest extends AbstractTest {
connManager.load();
// only consider local connector bundles
- long expected = IterableUtils.countMatches(resourceDAO.findAll(), new Predicate<ExternalResource>() {
-
- @Override
- public boolean evaluate(final ExternalResource resource) {
- return resource.getConnector().getLocation().startsWith("file");
- }
- });
+ long expected = resourceDAO.findAll().stream().
+ filter(resource -> resource.getConnector().getLocation().startsWith("file")).count();
assertEquals(expected,
ApplicationContextProvider.getBeanFactory().
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/MailTemplateTest.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/MailTemplateTest.java b/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/MailTemplateTest.java
index cb9177a..8e3fa9b 100644
--- a/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/MailTemplateTest.java
+++ b/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/MailTemplateTest.java
@@ -59,7 +59,7 @@ public class MailTemplateTest extends AbstractTest {
public void confirmPasswordReset() throws IOException {
String htmlBody = evaluate(
mailTemplateDAO.find("confirmPasswordReset").getHTMLTemplate(),
- new HashMap<String, Object>());
+ new HashMap<>());
assertNotNull(htmlBody);
}
@@ -111,7 +111,7 @@ public class MailTemplateTest extends AbstractTest {
ctx.put("input", input);
UserTO recipient = SerializationUtils.clone(user);
- recipient.getPlainAttr("email").getValues().set(0, "another@syncope.apache.org");
+ recipient.getPlainAttr("email").get().getValues().set(0, "another@syncope.apache.org");
ctx.put("recipients", Collections.singletonList(recipient));
String htmlBody = evaluate(
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/MappingTest.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/MappingTest.java b/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/MappingTest.java
index 16e8ddf..8e6887a 100644
--- a/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/MappingTest.java
+++ b/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/MappingTest.java
@@ -58,7 +58,7 @@ public class MappingTest extends AbstractTest {
ExternalResource ldap = resourceDAO.find("resource-ldap");
assertNotNull(ldap);
- Provision provision = ldap.getProvision(anyTypeDAO.findUser());
+ Provision provision = ldap.getProvision(anyTypeDAO.findUser()).get();
assertNotNull(provision);
assertNotNull(provision.getMapping());
assertNotNull(provision.getMapping().getConnObjectLink());
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/ResourceDataBinderTest.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/ResourceDataBinderTest.java b/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/ResourceDataBinderTest.java
index bc7329a..af4247c 100644
--- a/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/ResourceDataBinderTest.java
+++ b/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/ResourceDataBinderTest.java
@@ -21,12 +21,10 @@ package org.apache.syncope.core.provisioning.java;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
-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.common.lib.SyncopeConstants;
import org.apache.syncope.common.lib.to.ItemTO;
import org.apache.syncope.common.lib.to.MappingTO;
@@ -71,14 +69,9 @@ public class ResourceDataBinderTest extends AbstractTest {
@BeforeClass
public static void setAuthContext() {
- List<GrantedAuthority> authorities = CollectionUtils.collect(StandardEntitlement.values(),
- new Transformer<String, GrantedAuthority>() {
-
- @Override
- public GrantedAuthority transform(final String entitlement) {
- return new SyncopeGrantedAuthority(entitlement, SyncopeConstants.ROOT_REALM);
- }
- }, new ArrayList<GrantedAuthority>());
+ List<GrantedAuthority> authorities = StandardEntitlement.values().stream().
+ map(entitlement -> new SyncopeGrantedAuthority(entitlement, SyncopeConstants.ROOT_REALM)).
+ collect(Collectors.toList());
UsernamePasswordAuthenticationToken auth = new UsernamePasswordAuthenticationToken(
new org.springframework.security.core.userdetails.User(
@@ -98,10 +91,10 @@ public class ResourceDataBinderTest extends AbstractTest {
Set<MappingItem> beforeUserIdMappings = new HashSet<>();
for (ExternalResource res : resourceDAO.findAll()) {
- if (res.getProvision(anyTypeDAO.findUser()) != null
- && res.getProvision(anyTypeDAO.findUser()).getMapping() != null) {
+ if (res.getProvision(anyTypeDAO.findUser()).isPresent()
+ && res.getProvision(anyTypeDAO.findUser()).get().getMapping() != null) {
- for (MappingItem mapItem : res.getProvision(anyTypeDAO.findUser()).getMapping().getItems()) {
+ for (MappingItem mapItem : res.getProvision(anyTypeDAO.findUser()).get().getMapping().getItems()) {
if (userId.getKey().equals(mapItem.getIntAttrName())) {
beforeUserIdMappings.add(mapItem);
}
@@ -133,8 +126,8 @@ public class ResourceDataBinderTest extends AbstractTest {
ExternalResource resource = resourceDataBinder.create(resourceTO);
resource = resourceDAO.save(resource);
assertNotNull(resource);
- assertNotNull(resource.getProvision(anyTypeDAO.findUser()).getMapping());
- assertEquals(1, resource.getProvision(anyTypeDAO.findUser()).getMapping().getItems().size());
+ assertNotNull(resource.getProvision(anyTypeDAO.findUser()).get().getMapping());
+ assertEquals(1, resource.getProvision(anyTypeDAO.findUser()).get().getMapping().getItems().size());
resourceDAO.flush();
@@ -146,10 +139,10 @@ public class ResourceDataBinderTest extends AbstractTest {
Set<MappingItem> afterUserIdMappings = new HashSet<>();
for (ExternalResource res : resourceDAO.findAll()) {
- if (res.getProvision(anyTypeDAO.findUser()) != null
- && res.getProvision(anyTypeDAO.findUser()).getMapping() != null) {
+ if (res.getProvision(anyTypeDAO.findUser()).isPresent()
+ && res.getProvision(anyTypeDAO.findUser()).get().getMapping() != null) {
- for (MappingItem mapItem : res.getProvision(anyTypeDAO.findUser()).getMapping().getItems()) {
+ for (MappingItem mapItem : res.getProvision(anyTypeDAO.findUser()).get().getMapping().getItems()) {
if (userId.getKey().equals(mapItem.getIntAttrName())) {
afterUserIdMappings.add(mapItem);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/WadlGenerator.java
----------------------------------------------------------------------
diff --git a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/WadlGenerator.java b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/WadlGenerator.java
index 8595293..e2a1858 100644
--- a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/WadlGenerator.java
+++ b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/WadlGenerator.java
@@ -24,10 +24,9 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import javax.ws.rs.Path;
import javax.ws.rs.container.ContainerRequestContext;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.cxf.BusFactory;
import org.apache.cxf.common.util.ClasspathScanner;
import org.apache.cxf.jaxrs.model.ClassResourceInfo;
@@ -84,27 +83,22 @@ public class WadlGenerator extends org.apache.cxf.jaxrs.model.wadl.WadlGenerator
List<ClassResourceInfo> classResourceInfos = new ArrayList<>();
for (final Class<?> beanClass : resourceClasses) {
- ClassResourceInfo cri = IterableUtils.find(classResourceInfos, new Predicate<ClassResourceInfo>() {
-
- @Override
- public boolean evaluate(final ClassResourceInfo cri) {
- return cri.isCreatedFromModel() && cri.isRoot()
- && cri.getServiceClass().isAssignableFrom(beanClass);
- }
- });
- if (cri != null) {
- if (!InjectionUtils.isConcreteClass(cri.getServiceClass())) {
- cri = new ClassResourceInfo(cri);
- classResourceInfos.add(cri);
+ Optional<ClassResourceInfo> cri = classResourceInfos.stream().filter(c
+ -> c.isCreatedFromModel() && c.isRoot() && c.getServiceClass().isAssignableFrom(beanClass)).
+ findFirst();
+ if (cri.isPresent()) {
+ if (!InjectionUtils.isConcreteClass(cri.get().getServiceClass())) {
+ cri = Optional.of(new ClassResourceInfo(cri.get()));
+ classResourceInfos.add(cri.get());
}
- cri.setResourceClass(beanClass);
+ cri.get().setResourceClass(beanClass);
continue;
}
- cri = ResourceUtils.createClassResourceInfo(
- beanClass, beanClass, true, true, BusFactory.getDefaultBus());
- if (cri != null) {
- classResourceInfos.add(cri);
+ cri = Optional.ofNullable(ResourceUtils.createClassResourceInfo(
+ beanClass, beanClass, true, true, BusFactory.getDefaultBus()));
+ if (cri.isPresent()) {
+ classResourceInfos.add(cri.get());
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/AbstractAnyService.java
----------------------------------------------------------------------
diff --git a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/AbstractAnyService.java b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/AbstractAnyService.java
index 1b7e7f2..ed0f2dd 100644
--- a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/AbstractAnyService.java
+++ b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/AbstractAnyService.java
@@ -20,6 +20,7 @@ package org.apache.syncope.core.rest.cxf.service;
import java.util.Date;
import java.util.List;
+import java.util.Optional;
import java.util.Set;
import javax.ws.rs.BadRequestException;
import javax.ws.rs.core.Response;
@@ -40,7 +41,6 @@ import org.apache.syncope.common.lib.to.AttrTO;
import org.apache.syncope.common.lib.to.BulkAction;
import org.apache.syncope.common.lib.to.BulkActionResult;
import org.apache.syncope.common.lib.to.PagedResult;
-import org.apache.syncope.common.lib.to.PropagationStatus;
import org.apache.syncope.common.lib.to.ProvisioningResult;
import org.apache.syncope.common.lib.types.PatchOperation;
import org.apache.syncope.common.lib.types.ResourceAssociationAction;
@@ -101,7 +101,7 @@ public abstract class AbstractAnyService<TO extends AnyTO, P extends AnyPatch>
@Override
public AttrTO read(final String key, final SchemaType schemaType, final String schema) {
TO any = read(key);
- AttrTO result;
+ Optional<AttrTO> result;
switch (schemaType) {
case DERIVED:
result = any.getDerAttr(schema);
@@ -116,11 +116,11 @@ public abstract class AbstractAnyService<TO extends AnyTO, P extends AnyPatch>
result = any.getPlainAttr(schema);
}
- if (result == null) {
+ if (!result.isPresent()) {
throw new NotFoundException("Attribute for type " + schemaType + " and schema " + schema);
}
- return result;
+ return result.get();
}
@Override
@@ -267,17 +267,18 @@ public abstract class AbstractAnyService<TO extends AnyTO, P extends AnyPatch>
BulkActionResult result = new BulkActionResult();
if (patch.getAction() == ResourceDeassociationAction.UNLINK) {
- for (String resource : patch.getResources()) {
- result.getResults().put(resource,
+ patch.getResources().forEach(resource -> {
+ result.getResults().put(
+ resource,
updated.getEntity().getResources().contains(resource)
? BulkActionResult.Status.FAILURE
: BulkActionResult.Status.SUCCESS);
- }
+ });
} else {
- for (PropagationStatus propagationStatusTO : updated.getPropagationStatuses()) {
- result.getResults().put(propagationStatusTO.getResource(),
- BulkActionResult.Status.valueOf(propagationStatusTO.getStatus().toString()));
- }
+ updated.getPropagationStatuses().forEach(propagationStatusTO
+ -> result.getResults().put(
+ propagationStatusTO.getResource(),
+ BulkActionResult.Status.valueOf(propagationStatusTO.getStatus().toString())));
}
return modificationResponse(result);
@@ -323,17 +324,18 @@ public abstract class AbstractAnyService<TO extends AnyTO, P extends AnyPatch>
BulkActionResult result = new BulkActionResult();
if (patch.getAction() == ResourceAssociationAction.LINK) {
- for (String resource : patch.getResources()) {
- result.getResults().put(resource,
+ patch.getResources().forEach(resource -> {
+ result.getResults().put(
+ resource,
updated.getEntity().getResources().contains(resource)
? BulkActionResult.Status.SUCCESS
: BulkActionResult.Status.FAILURE);
- }
+ });
} else {
- for (PropagationStatus propagationStatusTO : updated.getPropagationStatuses()) {
- result.getResults().put(propagationStatusTO.getResource(),
- BulkActionResult.Status.valueOf(propagationStatusTO.getStatus().toString()));
- }
+ updated.getPropagationStatuses().forEach(propagationStatusTO
+ -> result.getResults().put(
+ propagationStatusTO.getResource(),
+ BulkActionResult.Status.valueOf(propagationStatusTO.getStatus().toString())));
}
return modificationResponse(result);
@@ -348,7 +350,7 @@ public abstract class AbstractAnyService<TO extends AnyTO, P extends AnyPatch>
switch (bulkAction.getType()) {
case MUSTCHANGEPASSWORD:
if (logic instanceof UserLogic) {
- for (String key : bulkAction.getTargets()) {
+ bulkAction.getTargets().forEach(key -> {
try {
final UserPatch userPatch = new UserPatch();
userPatch.setKey(key);
@@ -361,14 +363,14 @@ public abstract class AbstractAnyService<TO extends AnyTO, P extends AnyPatch>
LOG.error("Error performing delete for user {}", key, e);
result.getResults().put(key, BulkActionResult.Status.FAILURE);
}
- }
+ });
} else {
throw new BadRequestException();
}
break;
case DELETE:
- for (String key : bulkAction.getTargets()) {
+ bulkAction.getTargets().forEach(key -> {
try {
result.getResults().put(
logic.delete(key, isNullPriorityAsync()).getEntity().getKey(),
@@ -377,12 +379,12 @@ public abstract class AbstractAnyService<TO extends AnyTO, P extends AnyPatch>
LOG.error("Error performing delete for user {}", key, e);
result.getResults().put(key, BulkActionResult.Status.FAILURE);
}
- }
+ });
break;
case SUSPEND:
if (logic instanceof UserLogic) {
- for (String key : bulkAction.getTargets()) {
+ bulkAction.getTargets().forEach(key -> {
StatusPatch statusPatch = new StatusPatch();
statusPatch.setKey(key);
statusPatch.setType(StatusPatchType.SUSPEND);
@@ -397,7 +399,7 @@ public abstract class AbstractAnyService<TO extends AnyTO, P extends AnyPatch>
LOG.error("Error performing suspend for user {}", key, e);
result.getResults().put(key, BulkActionResult.Status.FAILURE);
}
- }
+ });
} else {
throw new BadRequestException();
}
@@ -405,7 +407,7 @@ public abstract class AbstractAnyService<TO extends AnyTO, P extends AnyPatch>
case REACTIVATE:
if (logic instanceof UserLogic) {
- for (String key : bulkAction.getTargets()) {
+ bulkAction.getTargets().forEach(key -> {
StatusPatch statusPatch = new StatusPatch();
statusPatch.setKey(key);
statusPatch.setType(StatusPatchType.REACTIVATE);
@@ -420,7 +422,7 @@ public abstract class AbstractAnyService<TO extends AnyTO, P extends AnyPatch>
LOG.error("Error performing reactivate for user {}", key, e);
result.getResults().put(key, BulkActionResult.Status.FAILURE);
}
- }
+ });
} else {
throw new BadRequestException();
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/spring/src/main/java/org/apache/syncope/core/spring/security/AuthContextUtils.java
----------------------------------------------------------------------
diff --git a/core/spring/src/main/java/org/apache/syncope/core/spring/security/AuthContextUtils.java b/core/spring/src/main/java/org/apache/syncope/core/spring/security/AuthContextUtils.java
index cc0b4fd..8080676 100644
--- a/core/spring/src/main/java/org/apache/syncope/core/spring/security/AuthContextUtils.java
+++ b/core/spring/src/main/java/org/apache/syncope/core/spring/security/AuthContextUtils.java
@@ -18,16 +18,13 @@
*/
package org.apache.syncope.core.spring.security;
-import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.MapUtils;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.core.provisioning.api.EntitlementsHolder;
@@ -69,11 +66,9 @@ public final class AuthContextUtils {
SecurityContext ctx = SecurityContextHolder.getContext();
if (ctx != null && ctx.getAuthentication() != null && ctx.getAuthentication().getAuthorities() != null) {
Set<SyncopeGrantedAuthority> result = new HashSet<>();
- for (GrantedAuthority authority : ctx.getAuthentication().getAuthorities()) {
- if (authority instanceof SyncopeGrantedAuthority) {
- result.add(SyncopeGrantedAuthority.class.cast(authority));
- }
- }
+ ctx.getAuthentication().getAuthorities().stream().
+ filter(authority -> (authority instanceof SyncopeGrantedAuthority)).
+ forEachOrdered(authority -> result.add(SyncopeGrantedAuthority.class.cast(authority)));
return result;
}
@@ -96,7 +91,7 @@ public final class AuthContextUtils {
}
}
- return MapUtils.emptyIfNull(result);
+ return result == null ? Collections.emptyMap() : result;
}
public static String getDomain() {
@@ -113,14 +108,9 @@ public final class AuthContextUtils {
}
private static void setFakeAuth(final String domain) {
- List<GrantedAuthority> authorities = CollectionUtils.collect(EntitlementsHolder.getInstance().getValues(),
- new Transformer<String, GrantedAuthority>() {
-
- @Override
- public GrantedAuthority transform(final String entitlement) {
- return new SyncopeGrantedAuthority(entitlement, SyncopeConstants.ROOT_REALM);
- }
- }, new ArrayList<GrantedAuthority>());
+ List<GrantedAuthority> authorities = EntitlementsHolder.getInstance().getValues().stream().
+ map(entitlement -> new SyncopeGrantedAuthority(entitlement, SyncopeConstants.ROOT_REALM)).
+ collect(Collectors.toList());
UsernamePasswordAuthenticationToken auth = new UsernamePasswordAuthenticationToken(
new User(ApplicationContextProvider.getBeanFactory().getBean("adminUser", String.class),
[16/16] syncope git commit: [SYNCOPE-938] Switching from
commons-collections to Java 8 features
Posted by il...@apache.org.
[SYNCOPE-938] Switching from commons-collections to Java 8 features
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/74ee038a
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/74ee038a
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/74ee038a
Branch: refs/heads/master
Commit: 74ee038a4b52bb58954900c3ad6692eb1d6176c1
Parents: fa093b3
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Tue Aug 22 17:05:28 2017 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Tue Aug 22 17:05:28 2017 +0200
----------------------------------------------------------------------
.../commands/connector/ConnectorDetails.java | 4 +-
.../cli/commands/domain/DomainDetails.java | 4 +-
.../client/cli/commands/group/GroupDetails.java | 4 +-
.../cli/commands/logger/LoggerDetails.java | 4 +-
.../logger/LoggerSyncopeOperations.java | 12 +-
.../cli/commands/policy/PolicyDetails.java | 4 +-
.../client/cli/commands/realm/RealmDetails.java | 4 +-
.../cli/commands/report/ReportDetails.java | 4 +-
.../cli/commands/resource/ResourceDetails.java | 4 +-
.../client/cli/commands/role/RoleDetails.java | 4 +-
.../cli/commands/schema/SchemaDetails.java | 4 +-
.../client/cli/commands/task/TaskDetails.java | 4 +-
.../client/cli/commands/user/UserDetails.java | 4 +-
.../console/SyncopeConsoleApplication.java | 20 +-
.../client/console/SyncopeConsoleSession.java | 18 +-
.../client/console/bulk/BulkContent.java | 35 +-
.../commons/ResourceStatusDataProvider.java | 30 +-
.../commons/SerializableTransformer.java | 33 --
.../commons/SortableAnyProviderComparator.java | 8 +-
.../console/commons/status/StatusUtils.java | 13 +-
.../console/events/EventCategoryPanel.java | 56 ++-
.../init/ClassPathScanImplementationLookup.java | 36 +-
.../NotificationWizardBuilder.java | 53 +--
.../notifications/NotificationWrapper.java | 8 +-
.../syncope/client/console/pages/LogViewer.java | 14 +-
.../console/panels/AnyDirectoryPanel.java | 98 ++---
.../panels/AnyTypeClassDetailsPanel.java | 32 +-
.../console/panels/AnyTypeDetailsPanel.java | 9 +-
.../client/console/panels/BeanPanel.java | 25 +-
.../console/panels/ConnObjectListViewPanel.java | 17 +-
.../client/console/panels/ConnObjects.java | 16 +-
.../client/console/panels/ConsoleLogPanel.java | 16 +-
.../console/panels/HistoryConfDetails.java | 37 +-
.../client/console/panels/ListViewPanel.java | 17 +-
.../console/panels/MembersTogglePanel.java | 14 +-
.../syncope/client/console/panels/Realm.java | 14 +-
.../client/console/panels/RealmChoicePanel.java | 52 +--
.../client/console/panels/RealmDetails.java | 21 +-
.../client/console/panels/SchemaTypePanel.java | 26 +-
.../client/console/panels/VirSchemaDetails.java | 36 +-
.../panels/search/AbstractSearchPanel.java | 9 +-
.../panels/search/SearchClausePanel.java | 29 +-
.../console/panels/search/UserSearchPanel.java | 13 +-
.../policies/PolicyModalPanelBuilder.java | 21 +-
.../policies/PolicyRuleDirectoryPanel.java | 27 +-
.../policies/PolicyRuleWizardBuilder.java | 14 +-
.../console/policies/PolicySpecModalPanel.java | 54 +--
.../console/reports/ReportWizardBuilder.java | 24 +-
.../reports/ReportletDirectoryPanel.java | 28 +-
.../console/reports/ReportletWizardBuilder.java | 27 +-
.../resources/AbstractWorkflowResource.java | 11 +-
.../client/console/rest/AnyTypeRestClient.java | 6 +-
.../console/rest/ConnectorRestClient.java | 46 +-
.../client/console/rest/LoggerRestClient.java | 39 +-
.../client/console/rest/ResourceRestClient.java | 11 +-
.../client/console/rest/SchemaRestClient.java | 10 +-
.../console/status/ResourceStatusModal.java | 14 +-
.../client/console/tasks/PushTaskWrapper.java | 3 +-
.../console/tasks/SchedTaskWizardBuilder.java | 42 +-
.../client/console/topology/Topology.java | 6 +-
.../html/repeater/data/table/AttrColumn.java | 6 +-
.../data/table/ConnObjectAttrColumn.java | 5 +-
.../markup/html/bootstrap/dialog/BaseModal.java | 15 +-
.../markup/html/form/AjaxPalettePanel.java | 21 +-
.../markup/html/form/AjaxSpinnerFieldPanel.java | 7 +-
.../markup/html/form/SelectChoiceRenderer.java | 12 +-
.../console/widgets/ReconciliationWidget.java | 81 ++--
.../ReconciliationReportParser.java | 16 +-
.../console/wizards/any/AbstractAttrs.java | 59 +--
.../console/wizards/any/ConnObjectPanel.java | 25 +-
.../client/console/wizards/any/Details.java | 29 +-
.../console/wizards/any/DynamicMemberships.java | 19 +-
.../client/console/wizards/any/Groups.java | 99 ++---
.../client/console/wizards/any/PlainAttrs.java | 70 ++-
.../console/wizards/any/Relationships.java | 95 ++---
.../client/console/wizards/any/Resources.java | 16 +-
.../client/console/wizards/any/Roles.java | 12 +-
.../client/console/wizards/any/StatusPanel.java | 28 +-
.../wizards/any/TypeExtensionWizardBuilder.java | 34 +-
.../resources/AbstractConnConfPanel.java | 3 +-
.../wizards/resources/ConnectorConfPanel.java | 55 +--
.../resources/ConnectorDetailsPanel.java | 69 +--
.../resources/ConnectorWizardBuilder.java | 30 +-
.../resources/ProvisionWizardBuilder.java | 27 +-
.../resources/ResourceProvisionPanel.java | 80 ++--
.../console/wizards/role/RoleWizardBuilder.java | 36 +-
.../enduser/util/UserRequestValidatorTest.java | 6 +-
.../client/lib/RestClientExceptionMapper.java | 4 +-
.../syncope/client/lib/SyncopeClient.java | 2 +-
.../client/lib/SyncopeClientFactoryBean.java | 4 +-
common/lib/pom.xml | 4 -
.../syncope/common/lib/AnyOperations.java | 340 +++++++--------
.../syncope/common/lib/EntityTOUtils.java | 25 +-
.../lib/SyncopeClientCompositeException.java | 18 +-
.../lib/collections/CircularFifoQueue.java | 427 +++++++++++++++++++
.../common/lib/collections/IteratorChain.java | 282 ++++++++++++
.../syncope/common/lib/info/SystemInfo.java | 2 +-
.../syncope/common/lib/jaxb/GenericMapType.java | 4 +-
.../common/lib/jaxb/XmlGenericMapAdapter.java | 10 +-
.../syncope/common/lib/patch/GroupPatch.java | 14 +-
.../syncope/common/lib/patch/PasswordPatch.java | 5 +-
.../syncope/common/lib/search/SpecialAttr.java | 13 +-
.../syncope/common/lib/to/AnyObjectTO.java | 25 +-
.../org/apache/syncope/common/lib/to/AnyTO.java | 33 +-
.../apache/syncope/common/lib/to/AttrTO.java | 5 +-
.../syncope/common/lib/to/AttributableTO.java | 7 +-
.../syncope/common/lib/to/BulkActionResult.java | 8 +-
.../syncope/common/lib/to/ConnInstanceTO.java | 13 +-
.../syncope/common/lib/to/ConnObjectTO.java | 13 +-
.../apache/syncope/common/lib/to/GroupTO.java | 15 +-
.../common/lib/to/GroupableRelatableTO.java | 5 +-
.../apache/syncope/common/lib/to/MappingTO.java | 10 +-
.../syncope/common/lib/to/MembershipTO.java | 33 +-
.../apache/syncope/common/lib/to/OrgUnitTO.java | 10 +-
.../syncope/common/lib/to/ResourceTO.java | 15 +-
.../apache/syncope/common/lib/to/UserTO.java | 25 +-
.../syncope/common/lib/to/WorkflowFormTO.java | 13 +-
.../syncope/core/logic/AbstractAnyLogic.java | 20 +-
.../syncope/core/logic/AccessTokenLogic.java | 14 +-
.../syncope/core/logic/AnyObjectLogic.java | 54 +--
.../syncope/core/logic/AnyTypeClassLogic.java | 13 +-
.../apache/syncope/core/logic/AnyTypeLogic.java | 12 +-
.../syncope/core/logic/ConfigurationLogic.java | 13 +-
.../core/logic/ConnectorHistoryLogic.java | 15 +-
.../syncope/core/logic/ConnectorLogic.java | 80 ++--
.../apache/syncope/core/logic/DomainLogic.java | 12 +-
.../syncope/core/logic/DynRealmLogic.java | 13 +-
.../apache/syncope/core/logic/GroupLogic.java | 92 ++--
.../apache/syncope/core/logic/LoggerLogic.java | 83 ++--
.../syncope/core/logic/MailTemplateLogic.java | 24 +-
.../syncope/core/logic/MemoryAppender.java | 2 +-
.../syncope/core/logic/NotificationLogic.java | 13 +-
.../apache/syncope/core/logic/PolicyLogic.java | 13 +-
.../apache/syncope/core/logic/RealmLogic.java | 21 +-
.../core/logic/RelationshipTypeLogic.java | 14 +-
.../apache/syncope/core/logic/ReportLogic.java | 35 +-
.../syncope/core/logic/ReportTemplateLogic.java | 25 +-
.../core/logic/ResourceHistoryLogic.java | 14 +-
.../syncope/core/logic/ResourceLogic.java | 67 ++-
.../apache/syncope/core/logic/RoleLogic.java | 12 +-
.../apache/syncope/core/logic/SchemaLogic.java | 61 ++-
.../core/logic/SecurityQuestionLogic.java | 14 +-
.../apache/syncope/core/logic/SyncopeLogic.java | 74 ++--
.../apache/syncope/core/logic/TaskLogic.java | 39 +-
.../apache/syncope/core/logic/UserLogic.java | 64 +--
.../core/migration/MigrationPullActions.java | 5 +-
.../validation/InvalidEntityException.java | 14 +-
.../persistence/api/dao/AllowedSchemas.java | 32 +-
.../core/persistence/api/dao/ConfDAO.java | 3 +-
.../core/persistence/api/dao/GroupDAO.java | 3 +
.../core/persistence/api/entity/Any.java | 3 +-
.../api/entity/GroupableRelatable.java | 26 +-
.../persistence/api/entity/Notification.java | 3 +-
.../core/persistence/api/entity/Realm.java | 3 +-
.../persistence/api/entity/group/Group.java | 7 +-
.../api/entity/policy/AccountPolicy.java | 2 +-
.../api/entity/resource/ExternalResource.java | 5 +-
.../api/entity/resource/Mapping.java | 3 +-
.../api/entity/resource/OrgUnit.java | 3 +-
.../persistence/api/entity/task/PullTask.java | 3 +-
.../persistence/api/entity/task/PushTask.java | 3 +-
.../api/search/SearchCondVisitor.java | 15 +-
.../jpa/content/ContentLoaderHandler.java | 26 +-
.../jpa/content/XMLContentExporter.java | 11 +-
.../persistence/jpa/dao/AbstractAnyDAO.java | 101 +++--
.../jpa/dao/AbstractAnySearchDAO.java | 50 +--
.../persistence/jpa/dao/DefaultAccountRule.java | 47 +-
.../jpa/dao/DefaultPasswordRule.java | 47 +-
.../persistence/jpa/dao/JPAAnyObjectDAO.java | 90 ++--
.../persistence/jpa/dao/JPAAnySearchDAO.java | 10 +-
.../core/persistence/jpa/dao/JPAConfDAO.java | 33 +-
.../persistence/jpa/dao/JPAConnInstanceDAO.java | 53 +--
.../jpa/dao/JPAExternalResourceDAO.java | 106 ++---
.../core/persistence/jpa/dao/JPAGroupDAO.java | 133 +++---
.../persistence/jpa/dao/JPANotificationDAO.java | 16 +-
.../core/persistence/jpa/dao/JPARealmDAO.java | 38 +-
.../jpa/dao/JPARelationshipTypeDAO.java | 15 +-
.../core/persistence/jpa/dao/JPATaskDAO.java | 18 +-
.../core/persistence/jpa/dao/JPAUserDAO.java | 145 +++----
.../jpa/entity/AbstractGroupableRelatable.java | 118 ++---
.../jpa/entity/AbstractPlainAttr.java | 12 +-
.../persistence/jpa/entity/JPAConnInstance.java | 4 +-
.../persistence/jpa/entity/JPANotification.java | 13 +-
.../core/persistence/jpa/entity/JPARealm.java | 22 +-
.../core/persistence/jpa/entity/JPAReport.java | 11 +-
.../persistence/jpa/entity/conf/JPAConf.java | 16 +-
.../persistence/jpa/entity/group/JPAGroup.java | 38 +-
.../jpa/entity/policy/JPAAccountPolicy.java | 17 +-
.../jpa/entity/policy/JPAPasswordPolicy.java | 11 +-
.../entity/resource/JPAExternalResource.java | 27 +-
.../jpa/entity/resource/JPAMapping.java | 13 +-
.../jpa/entity/resource/JPAOrgUnit.java | 13 +-
.../jpa/entity/task/JPAPropagationTask.java | 4 +-
.../jpa/entity/task/JPAPullTask.java | 16 +-
.../jpa/entity/task/JPAPushTask.java | 13 +-
.../persistence/jpa/entity/user/JPAUser.java | 2 +-
.../spring/DomainTransactionInterceptor.java | 16 +-
.../entity/ExternalResourceValidator.java | 33 +-
.../jpa/validation/entity/ReportValidator.java | 14 +-
.../persistence/jpa/inner/AnySearchTest.java | 85 +---
.../core/persistence/jpa/inner/ConfTest.java | 24 +-
.../persistence/jpa/inner/ConnInstanceTest.java | 15 +-
.../core/persistence/jpa/inner/GroupTest.java | 2 +-
.../persistence/jpa/inner/MultitenancyTest.java | 15 +-
.../persistence/jpa/inner/PlainAttrTest.java | 10 +-
.../core/persistence/jpa/inner/RealmTest.java | 7 -
.../persistence/jpa/inner/ResourceTest.java | 38 +-
.../persistence/jpa/inner/VirSchemaTest.java | 2 +-
.../core/persistence/jpa/outer/ConfTest.java | 4 +-
.../core/persistence/jpa/outer/GroupTest.java | 79 ++--
.../persistence/jpa/outer/PlainSchemaTest.java | 43 +-
.../persistence/jpa/outer/ResourceTest.java | 67 ++-
.../core/persistence/jpa/outer/UserTest.java | 30 +-
.../persistence/jpa/outer/VirSchemaTest.java | 4 +-
.../jpa/outer/XMLContentExporterTest.java | 16 +-
.../test/resources/domains/MasterContent.xml | 16 +-
.../core/provisioning/api/MappingManager.java | 3 +-
.../provisioning/api/utils/EntityUtils.java | 41 --
.../core/provisioning/api/utils/RealmUtils.java | 29 +-
.../provisioning/java/ConnectorFacadeProxy.java | 27 +-
.../DefaultAnyObjectProvisioningManager.java | 11 +-
.../java/DefaultGroupProvisioningManager.java | 54 +--
.../java/DefaultUserProvisioningManager.java | 40 +-
.../provisioning/java/MappingManagerImpl.java | 109 ++---
.../provisioning/java/VirAttrHandlerImpl.java | 28 +-
.../java/data/AbstractAnyDataBinder.java | 268 ++++++------
.../java/data/AnyObjectDataBinderImpl.java | 311 +++++++-------
.../java/data/AnyTypeDataBinderImpl.java | 24 +-
.../java/data/ConnInstanceDataBinderImpl.java | 15 +-
.../java/data/GroupDataBinderImpl.java | 72 ++--
.../java/data/NotificationDataBinderImpl.java | 57 ++-
.../java/data/PolicyDataBinderImpl.java | 2 +-
.../java/data/RealmDataBinderImpl.java | 49 +--
.../java/data/ResourceDataBinderImpl.java | 53 ++-
.../java/data/RoleDataBinderImpl.java | 16 +-
.../java/data/SchemaDataBinderImpl.java | 2 +-
.../java/data/TaskDataBinderImpl.java | 56 +--
.../java/data/UserDataBinderImpl.java | 337 +++++++--------
.../core/provisioning/java/jexl/JexlUtils.java | 35 +-
.../java/jexl/SyncopeJexlFunctions.java | 5 +-
.../java/job/IdentityRecertification.java | 10 +-
.../provisioning/java/job/JobManagerImpl.java | 83 ++--
.../job/report/ReconciliationReportlet.java | 79 ++--
.../java/job/report/UserReportlet.java | 2 +-
.../notification/NotificationManagerImpl.java | 40 +-
.../AbstractPropagationTaskExecutor.java | 40 +-
.../DBPasswordPropagationActions.java | 29 +-
.../propagation/DefaultPropagationReporter.java | 28 +-
.../LDAPMembershipPropagationActions.java | 19 +-
.../LDAPPasswordPropagationActions.java | 29 +-
.../PriorityPropagationTaskExecutor.java | 48 +--
.../propagation/PropagationManagerImpl.java | 83 ++--
.../AbstractProvisioningJobDelegate.java | 11 +-
.../pushpull/AbstractPullResultHandler.java | 2 +-
.../pushpull/AbstractPushResultHandler.java | 23 +-
.../java/pushpull/DBPasswordPullActions.java | 23 +-
.../pushpull/LDAPMembershipPullActions.java | 43 +-
.../java/pushpull/PullJobDelegate.java | 36 +-
.../provisioning/java/pushpull/PullUtils.java | 66 ++-
.../java/pushpull/PushJobDelegate.java | 13 +-
.../pushpull/RealmPushResultHandlerImpl.java | 7 +-
.../java/utils/ConnObjectUtils.java | 59 ++-
.../provisioning/java/utils/MappingUtils.java | 59 ++-
.../provisioning/java/utils/TemplateUtils.java | 62 +--
.../provisioning/java/ConnectorManagerTest.java | 12 +-
.../provisioning/java/MailTemplateTest.java | 4 +-
.../core/provisioning/java/MappingTest.java | 2 +-
.../java/ResourceDataBinderTest.java | 31 +-
.../syncope/core/rest/cxf/WadlGenerator.java | 32 +-
.../rest/cxf/service/AbstractAnyService.java | 54 +--
.../core/spring/security/AuthContextUtils.java | 26 +-
.../core/spring/security/AuthDataAccessor.java | 83 ++--
.../security/MustChangePasswordFilter.java | 15 +-
.../security/SyncopeGrantedAuthority.java | 15 +-
.../activiti/ActivitiUserWorkflowAdapter.java | 98 ++---
.../core/workflow/activiti/ActivitiUtils.java | 12 +-
.../activiti/SyncopeGroupQueryImpl.java | 13 +-
.../workflow/activiti/SyncopeUserQueryImpl.java | 24 +-
.../java/DefaultUserWorkflowAdapter.java | 6 +-
.../syncope/core/logic/CamelRouteLogic.java | 12 +-
.../provisioning/camel/SyncopeCamelContext.java | 11 +-
.../camel/producer/CreateProducer.java | 7 +-
.../camel/producer/DeprovisionProducer.java | 11 +-
.../camel/producer/ProvisionProducer.java | 16 +-
.../client/ElasticsearchUtils.java | 64 +--
.../jpa/dao/ElasticsearchAnySearchDAO.java | 38 +-
.../syncope/common/lib/to/SAML2IdPTO.java | 10 +-
.../common/lib/to/SAML2LoginResponseTO.java | 13 +-
.../syncope/core/logic/SAML2IdPLogic.java | 11 +-
.../apache/syncope/core/logic/SAML2SPLogic.java | 20 +-
.../core/logic/saml2/SAML2UserManager.java | 51 +--
.../core/persistence/api/entity/SAML2IdP.java | 3 +-
.../persistence/jpa/entity/JPASAML2IdP.java | 13 +-
.../validation/entity/SAML2IdPValidator.java | 18 +-
.../java/data/SAML2IdPDataBinderImpl.java | 21 +-
.../fit/core/reference/TestPullActions.java | 22 +-
.../org/apache/syncope/fit/AbstractITCase.java | 12 +-
.../org/apache/syncope/fit/cli/CLIITCase.java | 39 +-
.../syncope/fit/core/AnyObjectITCase.java | 12 +-
.../syncope/fit/core/AuthenticationITCase.java | 42 +-
.../syncope/fit/core/CamelRouteITCase.java | 12 +-
.../syncope/fit/core/ConnectorITCase.java | 73 +---
.../apache/syncope/fit/core/DynRealmITCase.java | 27 +-
.../apache/syncope/fit/core/GroupITCase.java | 64 ++-
.../fit/core/IdentityRecertificationITCase.java | 2 +-
.../apache/syncope/fit/core/LoggerITCase.java | 21 +-
.../syncope/fit/core/MembershipITCase.java | 76 ++--
.../syncope/fit/core/MigrationITCase.java | 56 ++-
.../syncope/fit/core/PlainSchemaITCase.java | 30 +-
.../syncope/fit/core/PropagationTaskITCase.java | 31 +-
.../apache/syncope/fit/core/PullTaskITCase.java | 92 ++--
.../apache/syncope/fit/core/PushTaskITCase.java | 13 +-
.../apache/syncope/fit/core/RealmITCase.java | 36 +-
.../apache/syncope/fit/core/ResourceITCase.java | 83 ++--
.../syncope/fit/core/SchedTaskITCase.java | 32 +-
.../apache/syncope/fit/core/SearchITCase.java | 158 ++-----
.../org/apache/syncope/fit/core/UserITCase.java | 36 +-
.../syncope/fit/core/UserIssuesITCase.java | 76 ++--
.../apache/syncope/fit/core/UserSelfITCase.java | 6 +-
.../syncope/fit/core/UserWorkflowITCase.java | 8 +-
.../apache/syncope/fit/core/VirAttrITCase.java | 80 ++--
.../apache/syncope/fit/core/WorkflowITCase.java | 17 +-
ide/pom.xml | 4 +-
pom.xml | 7 -
324 files changed, 4587 insertions(+), 6306 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorDetails.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorDetails.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorDetails.java
index dee5e7a..ac3072c 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorDetails.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorDetails.java
@@ -18,9 +18,9 @@
*/
package org.apache.syncope.client.cli.commands.connector;
+import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import org.apache.commons.collections4.map.LinkedMap;
import org.apache.syncope.client.cli.Input;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.to.ConnInstanceTO;
@@ -43,7 +43,7 @@ public class ConnectorDetails extends AbstractConnectorCommand {
public void details() {
if (input.parameterNumber() == 0) {
try {
- final Map<String, String> details = new LinkedMap<>();
+ final Map<String, String> details = new LinkedHashMap<>();
final List<ConnInstanceTO> connInstanceTOs = connectorSyncopeOperations.list();
int withCreateCapability = 0;
int withDeleteCapability = 0;
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/domain/DomainDetails.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/domain/DomainDetails.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/domain/DomainDetails.java
index 9e280d8..061b8f3 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/domain/DomainDetails.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/domain/DomainDetails.java
@@ -18,8 +18,8 @@
*/
package org.apache.syncope.client.cli.commands.domain;
+import java.util.LinkedHashMap;
import java.util.Map;
-import org.apache.commons.collections4.map.LinkedMap;
import org.apache.syncope.client.cli.Input;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.slf4j.Logger;
@@ -40,7 +40,7 @@ public class DomainDetails extends AbstractDomainCommand {
public void details() {
if (input.parameterNumber() == 0) {
try {
- final Map<String, String> details = new LinkedMap<>();
+ final Map<String, String> details = new LinkedHashMap<>();
details.put("Total number", String.valueOf(domainSyncopeOperations.list().size()));
domainResultManager.printDetails(details);
} catch (final SyncopeClientException ex) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupDetails.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupDetails.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupDetails.java
index 583c765..26da0e9 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupDetails.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupDetails.java
@@ -18,9 +18,9 @@
*/
package org.apache.syncope.client.cli.commands.group;
+import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import org.apache.commons.collections4.map.LinkedMap;
import org.apache.syncope.client.cli.Input;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.SyncopeConstants;
@@ -43,7 +43,7 @@ public class GroupDetails extends AbstractGroupCommand {
public void details() {
if (input.parameterNumber() == 0) {
try {
- final Map<String, String> details = new LinkedMap<>();
+ final Map<String, String> details = new LinkedHashMap<>();
final List<GroupTO> groupTOs = groupSyncopeOperations.list();
int withoudResources = 0;
int withoudAttributes = 0;
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerDetails.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerDetails.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerDetails.java
index a14cf7b..3a2006c 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerDetails.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerDetails.java
@@ -18,9 +18,9 @@
*/
package org.apache.syncope.client.cli.commands.logger;
+import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import org.apache.commons.collections4.map.LinkedMap;
import org.apache.syncope.client.cli.Input;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.log.LoggerTO;
@@ -42,7 +42,7 @@ public class LoggerDetails extends AbstractLoggerCommand {
public void details() {
if (input.parameterNumber() == 0) {
try {
- final Map<String, String> details = new LinkedMap<>();
+ final Map<String, String> details = new LinkedHashMap<>();
final List<LoggerTO> loggerTOs = loggerSyncopeOperations.list();
int debugLevel = 0;
int errorLevel = 0;
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerSyncopeOperations.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerSyncopeOperations.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerSyncopeOperations.java
index 0f1f15c..b1d52bf 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerSyncopeOperations.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerSyncopeOperations.java
@@ -18,10 +18,8 @@
*/
package org.apache.syncope.client.cli.commands.logger;
-import java.util.ArrayList;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
import org.apache.syncope.client.cli.SyncopeServices;
import org.apache.syncope.common.lib.log.LogAppender;
import org.apache.syncope.common.lib.log.LogStatementTO;
@@ -34,13 +32,7 @@ public class LoggerSyncopeOperations {
private final LoggerService loggerService = SyncopeServices.get(LoggerService.class);
public List<String> listMemoryAppenders() {
- return CollectionUtils.collect(loggerService.memoryAppenders(), new Transformer<LogAppender, String>() {
-
- @Override
- public String transform(final LogAppender input) {
- return input.getName();
- }
- }, new ArrayList<String>());
+ return loggerService.memoryAppenders().stream().map(LogAppender::getName).collect(Collectors.toList());
}
public List<LogStatementTO> getLastLogStatements(final String appender) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyDetails.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyDetails.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyDetails.java
index faa8270..bc4b5cf 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyDetails.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyDetails.java
@@ -18,8 +18,8 @@
*/
package org.apache.syncope.client.cli.commands.policy;
+import java.util.LinkedHashMap;
import java.util.Map;
-import org.apache.commons.collections4.map.LinkedMap;
import org.apache.syncope.client.cli.Input;
import org.apache.syncope.common.lib.types.PolicyType;
import org.slf4j.Logger;
@@ -40,7 +40,7 @@ public class PolicyDetails extends AbstractPolicyCommand {
public void details() {
if (input.parameterNumber() == 0) {
try {
- final Map<String, String> details = new LinkedMap<>();
+ final Map<String, String> details = new LinkedHashMap<>();
final int accountPolicySize = policySyncopeOperations.list(PolicyType.ACCOUNT.name()).size();
final int passwordPolicySize = policySyncopeOperations.list(PolicyType.PASSWORD.name()).size();
final int pullPolicySize = policySyncopeOperations.list(PolicyType.PULL.name()).size();
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/realm/RealmDetails.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/realm/RealmDetails.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/realm/RealmDetails.java
index b1007c2..1468aa3 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/realm/RealmDetails.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/realm/RealmDetails.java
@@ -18,8 +18,8 @@
*/
package org.apache.syncope.client.cli.commands.realm;
+import java.util.LinkedHashMap;
import java.util.Map;
-import org.apache.commons.collections4.map.LinkedMap;
import org.apache.syncope.client.cli.Input;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.slf4j.Logger;
@@ -40,7 +40,7 @@ public class RealmDetails extends AbstractRealmCommand {
public void details() {
if (input.parameterNumber() == 0) {
try {
- final Map<String, String> details = new LinkedMap<>();
+ final Map<String, String> details = new LinkedHashMap<>();
details.put("Total number", String.valueOf(realmSyncopeOperations.list().size()));
realmResultManager.printDetails(details);
} catch (final SyncopeClientException ex) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportDetails.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportDetails.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportDetails.java
index e7cff76..a0ed5c2 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportDetails.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportDetails.java
@@ -18,9 +18,9 @@
*/
package org.apache.syncope.client.cli.commands.report;
+import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import org.apache.commons.collections4.map.LinkedMap;
import org.apache.syncope.client.cli.Input;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.to.ReportTO;
@@ -42,7 +42,7 @@ public class ReportDetails extends AbstractReportCommand {
public void details() {
if (input.parameterNumber() == 0) {
try {
- final Map<String, String> details = new LinkedMap<>();
+ final Map<String, String> details = new LinkedHashMap<>();
final List<ReportTO> reportTOs = reportSyncopeOperations.list();
int withoutExecutions = 0;
for (final ReportTO reportTO : reportTOs) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceDetails.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceDetails.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceDetails.java
index be0029c..af58864 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceDetails.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceDetails.java
@@ -18,9 +18,9 @@
*/
package org.apache.syncope.client.cli.commands.resource;
+import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import org.apache.commons.collections4.map.LinkedMap;
import org.apache.syncope.client.cli.Input;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.to.ResourceTO;
@@ -42,7 +42,7 @@ public class ResourceDetails extends AbstractResourceCommand {
public void details() {
if (input.parameterNumber() == 0) {
try {
- final Map<String, String> details = new LinkedMap<>();
+ final Map<String, String> details = new LinkedHashMap<>();
final List<ResourceTO> resourceTOs = resourceSyncopeOperations.list();
details.put("Total number", String.valueOf(resourceTOs.size()));
resourceResultManager.printDetails(details);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleDetails.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleDetails.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleDetails.java
index 1206adf..76bef86 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleDetails.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleDetails.java
@@ -18,9 +18,9 @@
*/
package org.apache.syncope.client.cli.commands.role;
+import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import org.apache.commons.collections4.map.LinkedMap;
import org.apache.syncope.client.cli.Input;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.to.RoleTO;
@@ -42,7 +42,7 @@ public class RoleDetails extends AbstractRoleCommand {
public void details() {
if (input.parameterNumber() == 0) {
try {
- final Map<String, String> details = new LinkedMap<>();
+ final Map<String, String> details = new LinkedHashMap<>();
final List<RoleTO> roleTOs = roleSyncopeOperations.list();
int withoutEntitlements = 0;
for (final RoleTO roleTO : roleTOs) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaDetails.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaDetails.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaDetails.java
index bfdcdd6..7f58fc3 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaDetails.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaDetails.java
@@ -18,9 +18,9 @@
*/
package org.apache.syncope.client.cli.commands.schema;
+import java.util.LinkedHashMap;
import java.util.Map;
import javax.xml.ws.WebServiceException;
-import org.apache.commons.collections4.map.LinkedMap;
import org.apache.syncope.client.cli.Input;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.slf4j.Logger;
@@ -41,7 +41,7 @@ public class SchemaDetails extends AbstractSchemaCommand {
public void details() {
if (input.parameterNumber() == 0) {
try {
- final Map<String, String> details = new LinkedMap<>();
+ final Map<String, String> details = new LinkedHashMap<>();
final int plainSchemaSize = schemaSyncopeOperations.listPlain().size();
final int derivedSchemaSize = schemaSyncopeOperations.listDerived().size();
final int virtualSchemaSize = schemaSyncopeOperations.listVirtual().size();
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskDetails.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskDetails.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskDetails.java
index bb00255..8e5d387 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskDetails.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskDetails.java
@@ -18,9 +18,9 @@
*/
package org.apache.syncope.client.cli.commands.task;
+import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import org.apache.commons.collections4.map.LinkedMap;
import org.apache.syncope.client.cli.Input;
import org.apache.syncope.client.cli.util.CommandUtils;
import org.apache.syncope.common.lib.SyncopeClientException;
@@ -51,7 +51,7 @@ public class TaskDetails extends AbstractTaskCommand {
public void details() {
if (input.parameterNumber() == 0) {
try {
- final Map<String, String> details = new LinkedMap<>();
+ final Map<String, String> details = new LinkedHashMap<>();
final List<AbstractTaskTO> notificationTaskTOs =
taskSyncopeOperations.list(TaskType.NOTIFICATION.name());
final List<AbstractTaskTO> propagationTaskTOs = taskSyncopeOperations.list(TaskType.PROPAGATION.name());
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserDetails.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserDetails.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserDetails.java
index d9110eb..59bbf3a 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserDetails.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserDetails.java
@@ -18,9 +18,9 @@
*/
package org.apache.syncope.client.cli.commands.user;
+import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import org.apache.commons.collections4.map.LinkedMap;
import org.apache.syncope.client.cli.Input;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.to.UserTO;
@@ -42,7 +42,7 @@ public class UserDetails extends AbstractUserCommand {
public void details() {
if (input.parameterNumber() == 0) {
try {
- final Map<String, String> details = new LinkedMap<>();
+ final Map<String, String> details = new LinkedHashMap<>();
final List<UserTO> usersTOs = userSyncopeOperations.list().getResult();
int withoutResource = 0;
int withoutRole = 0;
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleApplication.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleApplication.java b/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleApplication.java
index 9d04645..6c6b6e4 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleApplication.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleApplication.java
@@ -22,7 +22,6 @@ import de.agilecoders.wicket.core.Bootstrap;
import de.agilecoders.wicket.core.settings.BootstrapSettings;
import de.agilecoders.wicket.core.settings.IBootstrapSettings;
import de.agilecoders.wicket.core.settings.SingleThemeProvider;
-import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Enumeration;
@@ -31,7 +30,7 @@ import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Properties;
-import org.apache.commons.collections4.CollectionUtils;
+import java.util.stream.Collectors;
import org.apache.commons.collections4.ListUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.ClassUtils;
@@ -48,10 +47,9 @@ import org.apache.syncope.client.console.resources.WorkflowDefPUTResource;
import org.apache.syncope.client.console.themes.AdminLTE;
import org.apache.syncope.client.lib.AnonymousAuthenticationHandler;
import org.apache.syncope.client.lib.SyncopeClientFactoryBean;
-import org.apache.syncope.common.lib.EntityTOUtils;
import org.apache.syncope.common.lib.PropertyUtils;
import org.apache.syncope.common.lib.SyncopeConstants;
-import org.apache.syncope.common.lib.to.DomainTO;
+import org.apache.syncope.common.lib.to.EntityTO;
import org.apache.syncope.common.lib.types.StandardEntitlement;
import org.apache.syncope.common.rest.api.service.DomainService;
import org.apache.wicket.Page;
@@ -182,9 +180,8 @@ public class SyncopeConsoleApplication extends AuthenticatedWebApplication {
ClassPathScanImplementationLookup lookup = (ClassPathScanImplementationLookup) getServletContext().
getAttribute(ConsoleInitializer.CLASSPATH_LOOKUP);
- for (Class<? extends BasePage> clazz : lookup.getPageClasses()) {
- MetaDataRoleAuthorizationStrategy.authorize(clazz, SyncopeConsoleSession.AUTHENTICATED);
- }
+ lookup.getPageClasses().
+ forEach(cls -> MetaDataRoleAuthorizationStrategy.authorize(cls, SyncopeConsoleSession.AUTHENTICATED));
getMarkupSettings().setStripWicketTags(true);
getMarkupSettings().setCompressWhitespace(true);
@@ -292,12 +289,11 @@ public class SyncopeConsoleApplication extends AuthenticatedWebApplication {
public List<String> getDomains() {
synchronized (LOG) {
if (domains == null) {
- domains = new ArrayList<>();
- domains.add(SyncopeConstants.MASTER_DOMAIN);
- CollectionUtils.collect(newClientFactory().create(
+ domains = newClientFactory().create(
new AnonymousAuthenticationHandler(anonymousUser, anonymousKey)).
- getService(DomainService.class).list(),
- EntityTOUtils.<DomainTO>keyTransformer(), domains);
+ getService(DomainService.class).list().stream().map(EntityTO::getKey).
+ collect(Collectors.toList());
+ domains.add(0, SyncopeConstants.MASTER_DOMAIN);
domains = ListUtils.unmodifiableList(domains);
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleSession.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleSession.java b/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleSession.java
index ab84d10..9bba50c 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleSession.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleSession.java
@@ -30,8 +30,6 @@ import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import javax.ws.rs.core.EntityTag;
import javax.ws.rs.core.MediaType;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.commons.collections4.list.SetUniqueList;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.FastDateFormat;
@@ -81,7 +79,7 @@ public class SyncopeConsoleSession extends AuthenticatedWebSession {
private String domain;
- private final Map<Class<?>, Object> services = Collections.synchronizedMap(new HashMap<Class<?>, Object>());
+ private final Map<Class<?>, Object> services = Collections.synchronizedMap(new HashMap<>());
private final ScheduledExecutorService executorService = Executors.newScheduledThreadPool(5, THREAD_POOL_FACTORY);
@@ -221,9 +219,9 @@ public class SyncopeConsoleSession extends AuthenticatedWebSession {
public List<String> getAuthRealms() {
List<String> sortable = new ArrayList<>();
List<String> available = SetUniqueList.setUniqueList(sortable);
- for (Map.Entry<String, Set<String>> entitlement : auth.entrySet()) {
+ auth.entrySet().forEach(entitlement -> {
available.addAll(entitlement.getValue());
- }
+ });
Collections.sort(sortable);
return sortable;
}
@@ -238,14 +236,8 @@ public class SyncopeConsoleSession extends AuthenticatedWebSession {
}
for (String entitlement : entitlements.split(",")) {
- if (auth != null && auth.containsKey(entitlement)
- && (realm == null || IterableUtils.matchesAny(auth.get(entitlement), new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String ownedRealm) {
- return realm.startsWith(ownedRealm);
- }
- }))) {
+ if (auth != null && auth.containsKey(entitlement) && (realm == null
+ || auth.get(entitlement).stream().anyMatch(ownedRealm -> realm.startsWith(ownedRealm)))) {
return true;
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/bulk/BulkContent.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/bulk/BulkContent.java b/client/console/src/main/java/org/apache/syncope/client/console/bulk/BulkContent.java
index d40cf37..7d52f16 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/bulk/BulkContent.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/bulk/BulkContent.java
@@ -26,7 +26,6 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import org.apache.commons.collections4.CollectionUtils;
import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.client.console.commons.Constants;
import org.apache.syncope.client.console.commons.status.StatusBean;
@@ -124,13 +123,13 @@ public class BulkContent<T extends Serializable, S> extends MultilevelPanel.Seco
@Override
protected boolean statusCondition(final Serializable modelObject) {
- return CollectionUtils.isNotEmpty(items);
+ return items != null && !items.isEmpty();
}
@Override
public void onClick(final AjaxRequestTarget target, final Serializable ignore) {
try {
- if (CollectionUtils.isEmpty(items)) {
+ if (items == null || items.isEmpty()) {
throw new IllegalArgumentException("Invalid items");
}
@@ -144,16 +143,16 @@ public class BulkContent<T extends Serializable, S> extends MultilevelPanel.Seco
final BulkAction bulkAction = new BulkAction();
bulkAction.setType(BulkAction.Type.valueOf(actionToBeAddresed.name()));
- for (T item : items) {
+ items.forEach(item -> {
try {
bulkAction.getTargets().add(getTargetId(item, keyFieldName).toString());
} catch (IllegalAccessException | InvocationTargetException e) {
LOG.error("Error retrieving item id {}", keyFieldName, e);
}
- }
+ });
res = BulkActionResult.class.cast(
bulkActionExecutor.getClass().getMethod("bulkAction", BulkAction.class).invoke(
- bulkActionExecutor, bulkAction));
+ bulkActionExecutor, bulkAction));
} catch (IllegalArgumentException biae) {
if (!(items.iterator().next() instanceof StatusBean)) {
throw new IllegalArgumentException("Invalid items");
@@ -168,17 +167,17 @@ public class BulkContent<T extends Serializable, S> extends MultilevelPanel.Seco
// Group bean information by anyKey
final Map<String, List<StatusBean>> beans = new HashMap<>();
- for (T bean : items) {
- final StatusBean sb = StatusBean.class.cast(bean);
- final List<StatusBean> sblist;
- if (beans.containsKey(sb.getKey())) {
- sblist = beans.get(sb.getKey());
- } else {
- sblist = new ArrayList<>();
- beans.put(sb.getKey(), sblist);
- }
- sblist.add(sb);
- }
+ items.stream().map(bean -> StatusBean.class.cast(bean)).
+ forEachOrdered(sb -> {
+ final List<StatusBean> sblist;
+ if (beans.containsKey(sb.getKey())) {
+ sblist = beans.get(sb.getKey());
+ } else {
+ sblist = new ArrayList<>();
+ beans.put(sb.getKey(), sblist);
+ }
+ sblist.add(sb);
+ });
for (Map.Entry<String, List<StatusBean>> entry : beans.entrySet()) {
final String etag = anyRestClient.read(entry.getKey()).getETagValue();
@@ -222,7 +221,7 @@ public class BulkContent<T extends Serializable, S> extends MultilevelPanel.Seco
}
final List<IColumn<T, S>> newColumnList = new ArrayList<>(columns);
- newColumnList.add(newColumnList.size(), new BulkActionResultColumn<T, S>(res, fieldName));
+ newColumnList.add(newColumnList.size(), new BulkActionResultColumn<>(res, fieldName));
container.addOrReplace(new AjaxFallbackDefaultDataTable<>(
"selectedObjects",
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/commons/ResourceStatusDataProvider.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/commons/ResourceStatusDataProvider.java b/client/console/src/main/java/org/apache/syncope/client/console/commons/ResourceStatusDataProvider.java
index 0d936a5..f925271 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/commons/ResourceStatusDataProvider.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/commons/ResourceStatusDataProvider.java
@@ -18,12 +18,10 @@
*/
package org.apache.syncope.client.console.commons;
-import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.client.console.commons.status.ConnObjectWrapper;
import org.apache.syncope.client.console.commons.status.StatusBean;
@@ -109,23 +107,19 @@ public class ResourceStatusDataProvider extends DirectoryDataProvider<StatusBean
List<? extends AnyTO> result =
restClient.search(realm, fiql, (page < 0 ? 0 : page) + 1, paginatorRows, getSort(), type);
- List<StatusBean> res = CollectionUtils.collect(result, new Transformer<AnyTO, StatusBean>() {
+ List<StatusBean> statuses = result.stream().map(any -> {
+ List<ConnObjectWrapper> connObjects =
+ statusUtils.getConnectorObjects(any, Collections.singletonList(resource));
- @Override
- public StatusBean transform(final AnyTO input) {
- final List<ConnObjectWrapper> connObjects =
- statusUtils.getConnectorObjects(input, Collections.singletonList(resource));
+ return statusUtils.getStatusBean(
+ any,
+ resource,
+ connObjects.isEmpty() ? null : connObjects.iterator().next().getConnObjectTO(),
+ any instanceof GroupTO);
+ }).collect(Collectors.toList());
- return statusUtils.getStatusBean(
- input,
- resource,
- connObjects.isEmpty() ? null : connObjects.iterator().next().getConnObjectTO(),
- input instanceof GroupTO);
- }
- }, new ArrayList<StatusBean>());
-
- Collections.sort(res, comparator);
- return res.iterator();
+ Collections.sort(statuses, comparator);
+ return statuses.iterator();
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/commons/SerializableTransformer.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/commons/SerializableTransformer.java b/client/console/src/main/java/org/apache/syncope/client/console/commons/SerializableTransformer.java
deleted file mode 100644
index d8be863..0000000
--- a/client/console/src/main/java/org/apache/syncope/client/console/commons/SerializableTransformer.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.client.console.commons;
-
-import java.io.Serializable;
-import org.apache.commons.collections4.Transformer;
-
-/**
- * Serializable transformer.
- *
- * @param <I> input type.
- * @param <O> output type.
- */
-public interface SerializableTransformer<I extends Serializable, O extends Serializable>
- extends Transformer<I, O>, Serializable {
-
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/commons/SortableAnyProviderComparator.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/commons/SortableAnyProviderComparator.java b/client/console/src/main/java/org/apache/syncope/client/console/commons/SortableAnyProviderComparator.java
index 0eb370d..e405921 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/commons/SortableAnyProviderComparator.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/commons/SortableAnyProviderComparator.java
@@ -83,20 +83,20 @@ public class SortableAnyProviderComparator<T extends AnyTO> extends SortableData
final AttrTO attr;
if (schemaType == null) {
- attr = this.anyTO.getPlainAttr(schema);
+ attr = this.anyTO.getPlainAttr(schema).get();
} else {
switch (schemaType) {
case PLAIN:
default:
- attr = this.anyTO.getPlainAttr(schema);
+ attr = this.anyTO.getPlainAttr(schema).get();
break;
case DERIVED:
- attr = this.anyTO.getDerAttr(schema);
+ attr = this.anyTO.getDerAttr(schema).get();
break;
case VIRTUAL:
- attr = this.anyTO.getVirAttr(schema);
+ attr = this.anyTO.getVirAttr(schema).get();
break;
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/commons/status/StatusUtils.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/commons/status/StatusUtils.java b/client/console/src/main/java/org/apache/syncope/client/console/commons/status/StatusUtils.java
index 8a9aa09..38fbb6e 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/commons/status/StatusUtils.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/commons/status/StatusUtils.java
@@ -22,6 +22,7 @@ import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
+import java.util.Optional;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.client.console.commons.ConnIdSpecialName;
import org.apache.syncope.client.console.commons.Constants;
@@ -137,16 +138,16 @@ public class StatusUtils implements Serializable {
}
private Boolean isEnabled(final ConnObjectTO objectTO) {
- final AttrTO status = objectTO.getAttr(ConnIdSpecialName.ENABLE);
- return status != null && status.getValues() != null && !status.getValues().isEmpty()
- ? Boolean.valueOf(status.getValues().get(0))
+ Optional<AttrTO> status = objectTO.getAttr(ConnIdSpecialName.ENABLE);
+ return status.isPresent() && status.get().getValues() != null && !status.get().getValues().isEmpty()
+ ? Boolean.valueOf(status.get().getValues().get(0))
: Boolean.FALSE;
}
private String getConnObjectLink(final ConnObjectTO objectTO) {
- final AttrTO name = objectTO == null ? null : objectTO.getAttr(ConnIdSpecialName.NAME);
- return name != null && name.getValues() != null && !name.getValues().isEmpty()
- ? name.getValues().get(0)
+ Optional<AttrTO> name = objectTO == null ? null : objectTO.getAttr(ConnIdSpecialName.NAME);
+ return name.isPresent() && name.get().getValues() != null && !name.get().getValues().isEmpty()
+ ? name.get().getValues().get(0)
: null;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/events/EventCategoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/events/EventCategoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/events/EventCategoryPanel.java
index 0661456..e31ffdc 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/events/EventCategoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/events/EventCategoryPanel.java
@@ -26,8 +26,6 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.client.console.commons.Constants;
@@ -108,7 +106,7 @@ public abstract class EventCategoryPanel extends Panel {
type = new AjaxDropDownChoicePanel<>(
"type",
"type",
- new PropertyModel<EventCategoryType>(eventCategoryTO, "type"),
+ new PropertyModel<>(eventCategoryTO, "type"),
false);
type.setChoices(Arrays.asList(EventCategoryType.values()));
type.setStyleSheet("ui-widget-content ui-corner-all");
@@ -129,13 +127,7 @@ public abstract class EventCategoryPanel extends Panel {
@Override
public EventCategoryType getObject(
final String id, final IModel<? extends List<? extends EventCategoryType>> choices) {
- return IterableUtils.find(choices.getObject(), new Predicate<EventCategoryType>() {
-
- @Override
- public boolean evaluate(final EventCategoryType object) {
- return object.name().equals(id);
- }
- });
+ return choices.getObject().stream().filter(object -> object.name().equals(id)).findAny().orElse(null);
}
});
categoryContainer.add(type);
@@ -153,7 +145,7 @@ public abstract class EventCategoryPanel extends Panel {
category = new AjaxDropDownChoicePanel<>(
"category",
"category",
- new PropertyModel<String>(eventCategoryTO, "category"),
+ new PropertyModel<>(eventCategoryTO, "category"),
false);
category.setChoices(filter(eventCategoryTOs, type.getModelObject()));
categoryContainer.add(category);
@@ -171,7 +163,7 @@ public abstract class EventCategoryPanel extends Panel {
subcategory = new AjaxDropDownChoicePanel<>(
"subcategory",
"subcategory",
- new PropertyModel<String>(eventCategoryTO, "subcategory"),
+ new PropertyModel<>(eventCategoryTO, "subcategory"),
false);
subcategory.setChoices(filter(eventCategoryTOs, type.getModelObject(), category.getModelObject()));
categoryContainer.add(subcategory);
@@ -188,13 +180,13 @@ public abstract class EventCategoryPanel extends Panel {
categoryContainer.add(new Label("customLabel", new ResourceModel("custom", "custom")).setVisible(false));
- custom = new AjaxTextFieldPanel("custom", "custom", new Model<String>(null));
+ custom = new AjaxTextFieldPanel("custom", "custom", new Model<>(null));
custom.setVisible(false);
custom.setEnabled(false);
categoryContainer.add(custom.hideLabel());
- actionsPanel = new ActionsPanel<EventCategoryTO>("customActions", null);
+ actionsPanel = new ActionsPanel<>("customActions", null);
actionsPanel.add(new ActionLink<EventCategoryTO>() {
private static final long serialVersionUID = -3722207913631435501L;
@@ -210,7 +202,7 @@ public abstract class EventCategoryPanel extends Panel {
null,
null,
parsed.getKey().getEvents().isEmpty()
- ? StringUtils.EMPTY : parsed.getKey().getEvents().iterator().next(),
+ ? StringUtils.EMPTY : parsed.getKey().getEvents().iterator().next(),
parsed.getValue());
custom.setModelObject(StringUtils.EMPTY);
@@ -237,7 +229,7 @@ public abstract class EventCategoryPanel extends Panel {
null,
null,
parsed.getKey().getEvents().isEmpty()
- ? StringUtils.EMPTY : parsed.getKey().getEvents().iterator().next(),
+ ? StringUtils.EMPTY : parsed.getKey().getEvents().iterator().next(),
parsed.getValue());
custom.setModelObject(StringUtils.EMPTY);
@@ -270,11 +262,11 @@ public abstract class EventCategoryPanel extends Panel {
private List<String> filter(final List<EventCategoryTO> eventCategoryTOs, final EventCategoryType type) {
Set<String> res = new HashSet<>();
- for (EventCategoryTO eventCategory : eventCategoryTOs) {
- if (type == eventCategory.getType() && StringUtils.isNotEmpty(eventCategory.getCategory())) {
- res.add(eventCategory.getCategory());
- }
- }
+ eventCategoryTOs.stream().filter(eventCategory
+ -> type == eventCategory.getType() && StringUtils.isNotEmpty(eventCategory.getCategory())).
+ forEachOrdered(eventCategory -> {
+ res.add(eventCategory.getCategory());
+ });
List<String> filtered = new ArrayList<>(res);
Collections.sort(filtered);
@@ -286,12 +278,12 @@ public abstract class EventCategoryPanel extends Panel {
Set<String> res = new HashSet<>();
- for (EventCategoryTO eventCategory : eventCategoryTOs) {
- if (type == eventCategory.getType() && StringUtils.equals(category, eventCategory.getCategory())
- && StringUtils.isNotEmpty(eventCategory.getSubcategory())) {
- res.add(eventCategory.getSubcategory());
- }
- }
+ eventCategoryTOs.stream().filter(eventCategory
+ -> type == eventCategory.getType() && StringUtils.equals(category, eventCategory.getCategory())
+ && StringUtils.isNotEmpty(eventCategory.getSubcategory())).
+ forEachOrdered(eventCategory -> {
+ res.add(eventCategory.getSubcategory());
+ });
List<String> filtered = new ArrayList<>(res);
Collections.sort(filtered);
@@ -373,7 +365,7 @@ public abstract class EventCategoryPanel extends Panel {
categoryEvent.getKey().getCategory(),
categoryEvent.getKey().getSubcategory(),
categoryEvent.getKey().getEvents().isEmpty()
- ? StringUtils.EMPTY : categoryEvent.getKey().getEvents().iterator().next(),
+ ? StringUtils.EMPTY : categoryEvent.getKey().getEvents().iterator().next(),
categoryEvent.getValue()));
category.setEnabled(false);
@@ -439,16 +431,16 @@ public abstract class EventCategoryPanel extends Panel {
}
private void authorizeList() {
- for (String role : getListAuthRoles()) {
+ getListAuthRoles().forEach(role -> {
MetaDataRoleAuthorizationStrategy.authorize(selectedEventsPanel, RENDER, role);
- }
+ });
}
private void authorizeChanges() {
- for (String role : getChangeAuthRoles()) {
+ getChangeAuthRoles().forEach(role -> {
MetaDataRoleAuthorizationStrategy.authorize(categoryContainer, RENDER, role);
MetaDataRoleAuthorizationStrategy.authorize(eventsContainer, RENDER, role);
- }
+ });
}
private void updateEventsContainer(final AjaxRequestTarget target) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/init/ClassPathScanImplementationLookup.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/init/ClassPathScanImplementationLookup.java b/client/console/src/main/java/org/apache/syncope/client/console/init/ClassPathScanImplementationLookup.java
index d9ee460..7a39743 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/init/ClassPathScanImplementationLookup.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/init/ClassPathScanImplementationLookup.java
@@ -21,10 +21,9 @@ package org.apache.syncope.client.console.init;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.Comparator;
import java.util.List;
-import org.apache.commons.collections4.ComparatorUtils;
import org.apache.commons.lang3.ArrayUtils;
+import org.apache.commons.lang3.ObjectUtils;
import org.apache.syncope.client.console.pages.BaseExtPage;
import org.apache.syncope.client.console.annotations.BinaryPreview;
import org.apache.syncope.client.console.annotations.ExtPage;
@@ -35,7 +34,6 @@ import org.apache.syncope.client.console.wicket.markup.html.form.preview.Abstrac
import org.apache.syncope.client.console.widgets.BaseExtWidget;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider;
import org.springframework.core.type.filter.AssignableTypeFilter;
import org.springframework.util.ClassUtils;
@@ -80,7 +78,7 @@ public class ClassPathScanImplementationLookup {
scanner.addIncludeFilter(new AssignableTypeFilter(BaseExtWidget.class));
scanner.addIncludeFilter(new AssignableTypeFilter(SSOLoginFormPanel.class));
- for (BeanDefinition bd : scanner.findCandidateComponents(getBasePackage())) {
+ scanner.findCandidateComponents(getBasePackage()).forEach(bd -> {
try {
Class<?> clazz = ClassUtils.resolveClassName(
bd.getBeanClassName(), ClassUtils.getDefaultClassLoader());
@@ -112,36 +110,20 @@ public class ClassPathScanImplementationLookup {
} catch (Throwable t) {
LOG.warn("Could not inspect class {}", bd.getBeanClassName(), t);
}
- }
+ });
pages = Collections.unmodifiableList(pages);
previewers = Collections.unmodifiableList(previewers);
- Collections.sort(extPages, new Comparator<Class<? extends BaseExtPage>>() {
-
- @Override
- public int compare(
- final Class<? extends BaseExtPage> o1,
- final Class<? extends BaseExtPage> o2) {
-
- return ComparatorUtils.<Integer>naturalComparator().compare(
+ Collections.sort(extPages, (o1, o2)
+ -> ObjectUtils.compare(
o1.getAnnotation(ExtPage.class).priority(),
- o2.getAnnotation(ExtPage.class).priority());
- }
- });
+ o2.getAnnotation(ExtPage.class).priority()));
extPages = Collections.unmodifiableList(extPages);
- Collections.sort(extWidgets, new Comparator<Class<? extends BaseExtWidget>>() {
-
- @Override
- public int compare(
- final Class<? extends BaseExtWidget> o1,
- final Class<? extends BaseExtWidget> o2) {
-
- return ComparatorUtils.<Integer>naturalComparator().compare(
+ Collections.sort(extWidgets, (o1, o2)
+ -> ObjectUtils.compare(
o1.getAnnotation(ExtWidget.class).priority(),
- o2.getAnnotation(ExtWidget.class).priority());
- }
- });
+ o2.getAnnotation(ExtWidget.class).priority()));
extWidgets = Collections.unmodifiableList(extWidgets);
ssoLoginFormPanels = Collections.unmodifiableList(ssoLoginFormPanels);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationWizardBuilder.java
index 7000c4c..d3063d4 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationWizardBuilder.java
@@ -24,8 +24,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.client.console.commons.Constants;
@@ -44,9 +43,8 @@ import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPa
import org.apache.syncope.client.console.wicket.markup.html.form.MultiFieldPanel;
import org.apache.syncope.client.console.wicket.markup.html.form.MultiPanel;
import org.apache.syncope.client.console.wizards.AjaxWizardBuilder;
-import org.apache.syncope.common.lib.EntityTOUtils;
import org.apache.syncope.common.lib.to.DerSchemaTO;
-import org.apache.syncope.common.lib.to.MailTemplateTO;
+import org.apache.syncope.common.lib.to.EntityTO;
import org.apache.syncope.common.lib.to.NotificationTO;
import org.apache.syncope.common.lib.to.PlainSchemaTO;
import org.apache.syncope.common.lib.to.VirSchemaTO;
@@ -122,40 +120,34 @@ public class NotificationWizardBuilder extends AjaxWizardBuilder<NotificationWra
boolean createFlag = notificationTO.getKey() == null;
AjaxTextFieldPanel sender = new AjaxTextFieldPanel("sender", getString("sender"),
- new PropertyModel<String>(notificationTO, "sender"));
+ new PropertyModel<>(notificationTO, "sender"));
sender.addRequiredLabel();
sender.addValidator(EmailAddressValidator.getInstance());
add(sender);
AjaxTextFieldPanel subject = new AjaxTextFieldPanel("subject", getString("subject"),
- new PropertyModel<String>(notificationTO, "subject"));
+ new PropertyModel<>(notificationTO, "subject"));
subject.addRequiredLabel();
add(subject);
AjaxDropDownChoicePanel<String> template = new AjaxDropDownChoicePanel<>(
"template", getString("template"),
- new PropertyModel<String>(notificationTO, "template"));
- template.setChoices(CollectionUtils.collect(
- restClient.listTemplates(), new Transformer<MailTemplateTO, String>() {
-
- @Override
- public String transform(final MailTemplateTO input) {
- return input.getKey();
- }
- }, new ArrayList<String>()));
+ new PropertyModel<>(notificationTO, "template"));
+ template.setChoices(restClient.listTemplates().stream().
+ map(EntityTO::getKey).collect(Collectors.toList()));
template.addRequiredLabel();
add(template);
AjaxDropDownChoicePanel<TraceLevel> traceLevel = new AjaxDropDownChoicePanel<>(
"traceLevel", getString("traceLevel"),
- new PropertyModel<TraceLevel>(notificationTO, "traceLevel"));
+ new PropertyModel<>(notificationTO, "traceLevel"));
traceLevel.setChoices(Arrays.asList(TraceLevel.values()));
traceLevel.addRequiredLabel();
add(traceLevel);
final AjaxCheckBoxPanel isActive = new AjaxCheckBoxPanel("isActive",
- getString("isActive"), new PropertyModel<Boolean>(notificationTO, "active"));
+ getString("isActive"), new PropertyModel<>(notificationTO, "active"));
if (createFlag) {
isActive.getField().setDefaultModelObject(Boolean.TRUE);
}
@@ -297,7 +289,7 @@ public class NotificationWizardBuilder extends AjaxWizardBuilder<NotificationWra
@Override
protected Pair<String, List<SearchClause>> newModelObject() {
- return Pair.<String, List<SearchClause>>of(AnyTypeKind.USER.name(), new ArrayList<SearchClause>());
+ return Pair.<String, List<SearchClause>>of(AnyTypeKind.USER.name(), new ArrayList<>());
}
@Override
@@ -349,7 +341,7 @@ public class NotificationWizardBuilder extends AjaxWizardBuilder<NotificationWra
AjaxTextFieldPanel recipientAttrName = new AjaxTextFieldPanel(
"recipientAttrName", new ResourceModel("recipientAttrName", "recipientAttrName").getObject(),
- new PropertyModel<String>(notificationTO, "recipientAttrName"));
+ new PropertyModel<>(notificationTO, "recipientAttrName"));
recipientAttrName.setChoices(getSchemaNames());
recipientAttrName.addRequiredLabel();
recipientAttrName.setTitle(getString("intAttrNameInfo.help")
@@ -361,24 +353,24 @@ public class NotificationWizardBuilder extends AjaxWizardBuilder<NotificationWra
add(recipientAttrName);
AjaxTextFieldPanel staticRecipientsFieldPanel =
- new AjaxTextFieldPanel("panel", "staticRecipients", new Model<String>());
+ new AjaxTextFieldPanel("panel", "staticRecipients", new Model<>());
staticRecipientsFieldPanel.addValidator(EmailAddressValidator.getInstance());
add(new MultiFieldPanel.Builder<>(
new PropertyModel<List<String>>(notificationTO, "staticRecipients")).
build("staticRecipients", "staticRecipients", staticRecipientsFieldPanel).hideLabel());
add(new UserSearchPanel.Builder(
- new PropertyModel<List<SearchClause>>(modelObject, "recipientClauses")).
+ new PropertyModel<>(modelObject, "recipientClauses")).
required(false).build("recipients"));
AjaxDropDownChoicePanel<String> recipientsProviderClassName = new AjaxDropDownChoicePanel<>(
"recipientsProviderClassName", "recipientsProviderClassName",
- new PropertyModel<String>(notificationTO, "recipientsProviderClassName"), false);
+ new PropertyModel<>(notificationTO, "recipientsProviderClassName"), false);
recipientsProviderClassName.setChoices(recipientProviders.getObject());
add(recipientsProviderClassName);
AjaxCheckBoxPanel selfAsRecipient = new AjaxCheckBoxPanel("selfAsRecipient",
- getString("selfAsRecipient"), new PropertyModel<Boolean>(notificationTO, "selfAsRecipient"));
+ getString("selfAsRecipient"), new PropertyModel<>(notificationTO, "selfAsRecipient"));
if (notificationTO.getKey() == null) {
selfAsRecipient.getField().setDefaultModelObject(Boolean.FALSE);
}
@@ -390,15 +382,12 @@ public class NotificationWizardBuilder extends AjaxWizardBuilder<NotificationWra
List<String> result = new ArrayList<>();
result.add("username");
- CollectionUtils.collect(
- schemaRestClient.<PlainSchemaTO>getSchemas(SchemaType.PLAIN, AnyTypeKind.USER.name()),
- EntityTOUtils.<PlainSchemaTO>keyTransformer(), result);
- CollectionUtils.collect(
- schemaRestClient.<DerSchemaTO>getSchemas(SchemaType.DERIVED, AnyTypeKind.USER.name()),
- EntityTOUtils.<DerSchemaTO>keyTransformer(), result);
- CollectionUtils.collect(
- schemaRestClient.<VirSchemaTO>getSchemas(SchemaType.VIRTUAL, AnyTypeKind.USER.name()),
- EntityTOUtils.<VirSchemaTO>keyTransformer(), result);
+ result.addAll(schemaRestClient.<PlainSchemaTO>getSchemas(SchemaType.PLAIN, AnyTypeKind.USER.name()).
+ stream().map(EntityTO::getKey).collect(Collectors.toList()));
+ result.addAll(schemaRestClient.<DerSchemaTO>getSchemas(SchemaType.DERIVED, AnyTypeKind.USER.name()).
+ stream().map(EntityTO::getKey).collect(Collectors.toList()));
+ result.addAll(schemaRestClient.<VirSchemaTO>getSchemas(SchemaType.VIRTUAL, AnyTypeKind.USER.name()).
+ stream().map(EntityTO::getKey).collect(Collectors.toList()));
Collections.sort(result);
return result;
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationWrapper.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationWrapper.java b/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationWrapper.java
index 1d6ee77..cc3e74e 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationWrapper.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationWrapper.java
@@ -52,10 +52,10 @@ public class NotificationWrapper implements Serializable {
public List<Pair<String, List<SearchClause>>> getAboutClauses() {
if (this.aboutClauses == null) {
this.aboutClauses = new ArrayList<>();
- for (Map.Entry<String, List<SearchClause>> entry
- : SearchUtils.getSearchClauses(this.notificationTO.getAbouts()).entrySet()) {
- this.aboutClauses.add(Pair.of(entry.getKey(), (entry.getValue())));
- }
+ SearchUtils.getSearchClauses(this.notificationTO.getAbouts()).entrySet().
+ forEach(entry -> {
+ this.aboutClauses.add(Pair.of(entry.getKey(), (entry.getValue())));
+ });
}
return this.aboutClauses;
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/pages/LogViewer.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/LogViewer.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/LogViewer.java
index 22f2fc5..ed08b11 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/LogViewer.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/LogViewer.java
@@ -39,13 +39,9 @@ import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.util.ListModel;
import org.apache.wicket.util.time.Duration;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
public class LogViewer extends WebPage {
- private static final Logger LOG = LoggerFactory.getLogger(LogViewer.class);
-
private static final int MAX_STATEMENTS_PER_APPENDER = 50;
private static final long serialVersionUID = -7578329899052708105L;
@@ -58,7 +54,7 @@ public class LogViewer extends WebPage {
add(viewer);
final AjaxDropDownChoicePanel<String> appenders = new AjaxDropDownChoicePanel<>(
- "appenders", "Appender", new Model<String>(), false);
+ "appenders", "Appender", new Model<>(), false);
MetaDataRoleAuthorizationStrategy.authorize(appenders, ENABLE, StandardEntitlement.LOG_READ);
appenders.setChoices(restClient.listMemoryAppenders());
viewer.add(appenders);
@@ -68,7 +64,7 @@ public class LogViewer extends WebPage {
viewer.add(stContainer);
final Model<Long> lastTimeInMillis = Model.of(0L);
- final IModel<List<LogStatementTO>> statementViewModel = new ListModel<>(new ArrayList<LogStatementTO>());
+ final IModel<List<LogStatementTO>> statementViewModel = new ListModel<>(new ArrayList<>());
final ListView<LogStatementTO> statementView = new ListView<LogStatementTO>("statements", statementViewModel) {
private static final long serialVersionUID = -9180479401817023838L;
@@ -93,7 +89,7 @@ public class LogViewer extends WebPage {
String.format("window.scrollTop = $('#%s').scrollTop();", stContainer.getMarkupId()));
List<LogStatementTO> recentLogStatements = appenders.getModelObject() == null
- ? new ArrayList<LogStatementTO>()
+ ? new ArrayList<>()
: restClient.getLastLogStatements(appenders.getModelObject(), lastTimeInMillis.getObject());
if (!recentLogStatements.isEmpty()) {
lastTimeInMillis.setObject(recentLogStatements.get(recentLogStatements.size() - 1).getTimeMillis());
@@ -102,7 +98,7 @@ public class LogViewer extends WebPage {
int recentSize = recentLogStatements.size();
List<LogStatementTO> newModelObject = SetUniqueList.<LogStatementTO>setUniqueList(
- new ArrayList<LogStatementTO>(MAX_STATEMENTS_PER_APPENDER));
+ new ArrayList<>(MAX_STATEMENTS_PER_APPENDER));
if (currentSize <= MAX_STATEMENTS_PER_APPENDER - recentSize) {
newModelObject.addAll(statementView.getModelObject());
} else {
@@ -129,7 +125,7 @@ public class LogViewer extends WebPage {
@Override
protected void onUpdate(final AjaxRequestTarget target) {
List<LogStatementTO> lastStatements = appenders.getModelObject() == null
- ? new ArrayList<LogStatementTO>()
+ ? new ArrayList<>()
: restClient.getLastLogStatements(appenders.getModelObject(), 0);
statementViewModel.setObject(lastStatements);
target.add(stContainer);
[15/16] syncope git commit: [SYNCOPE-938] Switching from
commons-collections to Java 8 features
Posted by il...@apache.org.
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyDirectoryPanel.java
index ad02b53..828a698 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyDirectoryPanel.java
@@ -26,14 +26,12 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.Date;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.client.console.commons.AnyDataProvider;
import org.apache.syncope.client.console.commons.Constants;
-import org.apache.syncope.client.console.commons.SerializableTransformer;
import org.apache.syncope.client.console.commons.status.ConnObjectWrapper;
-import org.apache.syncope.client.console.commons.status.StatusBean;
import org.apache.syncope.client.console.rest.AbstractAnyRestClient;
import org.apache.syncope.client.console.rest.SchemaRestClient;
import org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.data.table.AttrColumn;
@@ -50,7 +48,6 @@ import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.common.lib.to.AnyTO;
import org.apache.syncope.common.lib.to.AnyTypeClassTO;
import org.apache.syncope.common.lib.to.ConnObjectTO;
-import org.apache.syncope.common.lib.to.PropagationStatus;
import org.apache.syncope.common.lib.to.ProvisioningResult;
import org.apache.syncope.common.lib.types.SchemaType;
import org.apache.wicket.PageReference;
@@ -118,16 +115,16 @@ public abstract class AnyDirectoryPanel<A extends AnyTO, E extends AbstractAnyRe
altDefaultModal.size(Modal.Size.Large);
this.pSchemaNames = new ArrayList<>();
- for (AnyTypeClassTO anyTypeClassTO : AnyDirectoryPanelBuilder.class.cast(builder).getAnyTypeClassTOs()) {
+ AnyDirectoryPanelBuilder.class.cast(builder).getAnyTypeClassTOs().forEach(anyTypeClassTO -> {
this.pSchemaNames.addAll(anyTypeClassTO.getPlainSchemas());
- }
+ });
this.dSchemaNames = new ArrayList<>();
- for (AnyTypeClassTO anyTypeClassTO : AnyDirectoryPanelBuilder.class.cast(builder).getAnyTypeClassTOs()) {
+ AnyDirectoryPanelBuilder.class.cast(builder).getAnyTypeClassTOs().forEach(anyTypeClassTO -> {
this.dSchemaNames.addAll(anyTypeClassTO.getDerSchemas());
- }
+ });
initResultTable();
-
+
// cahnge close callback in order to update header after model update
modal.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {
@@ -149,32 +146,29 @@ public abstract class AnyDirectoryPanel<A extends AnyTO, E extends AbstractAnyRe
final List<IColumn<A, String>> columns = new ArrayList<>();
final List<IColumn<A, String>> prefcolumns = new ArrayList<>();
- columns.add(new KeyPropertyColumn<A>(
+ columns.add(new KeyPropertyColumn<>(
new ResourceModel(Constants.KEY_FIELD_NAME, Constants.KEY_FIELD_NAME), Constants.KEY_FIELD_NAME));
- for (String name : prefMan.getList(
- getRequest(), DisplayAttributesModalPanel.getPrefDetailView(type))) {
- if (!Constants.KEY_FIELD_NAME.equalsIgnoreCase(name)) {
- addPropertyColumn(
- name,
- ReflectionUtils.findField(DisplayAttributesModalPanel.getTOClass(type), name),
- prefcolumns);
- }
- }
-
- for (String name : prefMan.getList(
- getRequest(), DisplayAttributesModalPanel.getPrefPlainAttributeView(type))) {
- if (pSchemaNames.contains(name)) {
- prefcolumns.add(new AttrColumn<A>(name, SchemaType.PLAIN));
- }
- }
-
- for (String name : prefMan.getList(
- getRequest(), DisplayAttributesModalPanel.getPrefDerivedAttributeView(type))) {
- if (dSchemaNames.contains(name)) {
- prefcolumns.add(new AttrColumn<A>(name, SchemaType.DERIVED));
- }
- }
+ prefMan.getList(getRequest(), DisplayAttributesModalPanel.getPrefDetailView(type)).stream().
+ filter(name -> !Constants.KEY_FIELD_NAME.equalsIgnoreCase(name)).
+ forEachOrdered(name -> {
+ addPropertyColumn(
+ name,
+ ReflectionUtils.findField(DisplayAttributesModalPanel.getTOClass(type), name),
+ prefcolumns);
+ });
+
+ prefMan.getList(getRequest(), DisplayAttributesModalPanel.getPrefPlainAttributeView(type)).stream().
+ filter(name -> pSchemaNames.contains(name)).
+ forEachOrdered(name -> {
+ prefcolumns.add(new AttrColumn<>(name, SchemaType.PLAIN));
+ });
+
+ prefMan.getList(getRequest(), DisplayAttributesModalPanel.getPrefDerivedAttributeView(type)).stream().
+ filter(name -> (dSchemaNames.contains(name))).
+ forEachOrdered(name -> {
+ prefcolumns.add(new AttrColumn<>(name, SchemaType.DERIVED));
+ });
// Add defaults in case of no selection
if (prefcolumns.isEmpty()) {
@@ -201,17 +195,17 @@ public abstract class AnyDirectoryPanel<A extends AnyTO, E extends AbstractAnyRe
final List<IColumn<A, String>> columns) {
if (Constants.KEY_FIELD_NAME.equalsIgnoreCase(name)) {
- columns.add(new KeyPropertyColumn<A>(new ResourceModel(name, name), name, name));
+ columns.add(new KeyPropertyColumn<>(new ResourceModel(name, name), name, name));
} else if (Constants.DEFAULT_TOKEN_FIELD_NAME.equalsIgnoreCase(name)) {
- columns.add(new TokenColumn<A>(new ResourceModel(name, name), name));
+ columns.add(new TokenColumn<>(new ResourceModel(name, name), name));
} else if (field != null
&& (field.getType().equals(Boolean.class) || field.getType().equals(boolean.class))) {
- columns.add(new BooleanPropertyColumn<A>(new ResourceModel(name, name), name, name));
+ columns.add(new BooleanPropertyColumn<>(new ResourceModel(name, name), name, name));
} else if (field != null && field.getType().equals(Date.class)) {
- columns.add(new DatePropertyColumn<A>(new ResourceModel(name, name), name, name));
+ columns.add(new DatePropertyColumn<>(new ResourceModel(name, name), name, name));
} else {
- columns.add(new PropertyColumn<A, String>(new ResourceModel(name, name), name, name));
+ columns.add(new PropertyColumn<>(new ResourceModel(name, name), name, name));
}
}
@@ -291,24 +285,16 @@ public abstract class AnyDirectoryPanel<A extends AnyTO, E extends AbstractAnyRe
return new StatusPanel(
panelId,
((ProvisioningResult<A>) result).getEntity(),
- new ListModel<>(new ArrayList<StatusBean>()),
- CollectionUtils.collect(
- ((ProvisioningResult<A>) result).getPropagationStatuses(),
- new SerializableTransformer<PropagationStatus, Pair<ConnObjectTO, ConnObjectWrapper>>() {
-
- private static final long serialVersionUID = -4931455531906427515L;
-
- @Override
- public Pair<ConnObjectTO, ConnObjectWrapper> transform(final PropagationStatus input) {
- ConnObjectTO before = input.getBeforeObj();
- ConnObjectWrapper afterObjWrapper = new ConnObjectWrapper(
- ((ProvisioningResult<A>) result).getEntity(),
- input.getResource(),
- input.getAfterObj());
- return Pair.of(before, afterObjWrapper);
- }
-
- }, new ArrayList<Pair<ConnObjectTO, ConnObjectWrapper>>()),
+ new ListModel<>(new ArrayList<>()),
+ ((ProvisioningResult<A>) result).getPropagationStatuses().stream().
+ map(input -> {
+ ConnObjectTO before = input.getBeforeObj();
+ ConnObjectWrapper afterObjWrapper = new ConnObjectWrapper(
+ ((ProvisioningResult<A>) result).getEntity(),
+ input.getResource(),
+ input.getAfterObj());
+ return Pair.of(before, afterObjWrapper);
+ }).collect(Collectors.toList()),
pageRef);
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassDetailsPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassDetailsPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassDetailsPanel.java
index 7d0867a..bb809be 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassDetailsPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassDetailsPanel.java
@@ -18,11 +18,9 @@
*/
package org.apache.syncope.client.console.panels;
-import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
import org.apache.syncope.client.console.rest.AnyTypeClassRestClient;
import org.apache.syncope.client.console.rest.ConfRestClient;
import org.apache.syncope.client.console.rest.SchemaRestClient;
@@ -66,7 +64,7 @@ public class AnyTypeClassDetailsPanel extends Panel {
antTypeClassForm.setOutputMarkupId(true);
add(antTypeClassForm);
- final AjaxTextFieldPanel key = new AjaxTextFieldPanel("key", getString("key"), new PropertyModel<String>(
+ final AjaxTextFieldPanel key = new AjaxTextFieldPanel("key", getString("key"), new PropertyModel<>(
this.anyTypeClassTO, "key"));
key.addRequiredLabel();
key.setEnabled(anyTypeClassTO.getKey() == null || this.anyTypeClassTO.getKey().isEmpty());
@@ -109,22 +107,16 @@ public class AnyTypeClassDetailsPanel extends Panel {
private void buildAvailableSchemas(final String key) {
- List<String> configurationSchemas = new ArrayList<>();
- CollectionUtils.collect(new ConfRestClient().list(), new Transformer<AttrTO, String>() {
-
- @Override
- public String transform(final AttrTO attrTO) {
- return attrTO.getSchema();
- }
- }, configurationSchemas);
-
- for (AnyTypeClassTO item : new AnyTypeClassRestClient().list()) {
- if (key == null || !item.getKey().equals(key)) {
- availablePlainSchemas.removeAll(item.getPlainSchemas());
- availableDerSchemas.removeAll(item.getDerSchemas());
- availableVirSchemas.removeAll(item.getVirSchemas());
- }
- }
+ List<String> configurationSchemas = new ConfRestClient().list().stream().
+ map(AttrTO::getSchema).collect(Collectors.toList());
+
+ new AnyTypeClassRestClient().list().stream().
+ filter(item -> key == null || !item.getKey().equals(key)).
+ forEach(item -> {
+ availablePlainSchemas.removeAll(item.getPlainSchemas());
+ availableDerSchemas.removeAll(item.getDerSchemas());
+ availableVirSchemas.removeAll(item.getVirSchemas());
+ });
availablePlainSchemas.removeAll(configurationSchemas);
availablePlainSchemas.removeAll(LAYOUT_PARAMETERS);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeDetailsPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeDetailsPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeDetailsPanel.java
index 7cf3b33..582dc9f 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeDetailsPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeDetailsPanel.java
@@ -18,17 +18,15 @@
*/
package org.apache.syncope.client.console.panels;
-import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
+import java.util.stream.Collectors;
import org.apache.syncope.client.console.rest.AnyTypeClassRestClient;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDropDownChoicePanel;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxPalettePanel;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
-import org.apache.syncope.common.lib.EntityTOUtils;
-import org.apache.syncope.common.lib.to.AnyTypeClassTO;
import org.apache.syncope.common.lib.to.AnyTypeTO;
+import org.apache.syncope.common.lib.to.EntityTO;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.form.Form;
@@ -74,7 +72,6 @@ public class AnyTypeDetailsPanel extends Panel {
}
private List<String> getAvailableAnyTypeClasses() {
- return CollectionUtils.collect(new AnyTypeClassRestClient().list(),
- EntityTOUtils.<AnyTypeClassTO>keyTransformer(), new ArrayList<String>());
+ return new AnyTypeClassRestClient().list().stream().map(EntityTO::getKey).collect(Collectors.toList());
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/panels/BeanPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/BeanPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/BeanPanel.java
index c09fb43..d30bdbe 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/BeanPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/BeanPanel.java
@@ -26,8 +26,7 @@ import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.client.console.panels.search.AnyObjectSearchPanel;
@@ -50,6 +49,7 @@ import org.apache.syncope.common.lib.report.Schema;
import org.apache.syncope.common.lib.report.SearchCondition;
import org.apache.syncope.common.lib.search.AbstractFiqlSearchConditionBuilder;
import org.apache.syncope.common.lib.to.AbstractSchemaTO;
+import org.apache.syncope.common.lib.to.EntityTO;
import org.apache.syncope.common.lib.types.SchemaType;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.list.ListItem;
@@ -209,26 +209,19 @@ public class BeanPanel<T extends Serializable> extends Panel {
}
}
- panel = new AjaxPalettePanel.Builder<String>().setName(fieldName).build(
+ panel = new AjaxPalettePanel.Builder<>().setName(fieldName).build(
"value",
- new PropertyModel<List<String>>(bean.getObject(), fieldName),
- new ListModel<>(
- CollectionUtils.collect(
- choices, new Transformer<AbstractSchemaTO, String>() {
-
- @Override
- public String transform(final AbstractSchemaTO input) {
- return input.getKey();
- }
- }, new ArrayList<String>()))).hideLabel();
+ new PropertyModel<>(bean.getObject(), fieldName),
+ new ListModel<>(choices.stream().map(EntityTO::getKey).collect(Collectors.toList()))).
+ hideLabel();
} else if (listItemType.isEnum()) {
- panel = new AjaxPalettePanel.Builder<String>().setName(fieldName).build(
+ panel = new AjaxPalettePanel.Builder<>().setName(fieldName).build(
"value",
- new PropertyModel<List<String>>(bean.getObject(), fieldName),
+ new PropertyModel<>(bean.getObject(), fieldName),
new ListModel(Arrays.asList(listItemType.getEnumConstants()))).hideLabel();
} else {
panel = new MultiFieldPanel.Builder<>(
- new PropertyModel<List<String>>(bean.getObject(), fieldName)).build(
+ new PropertyModel<>(bean.getObject(), fieldName)).build(
"value",
fieldName,
buildSinglePanel(bean.getObject(), field.getType(), fieldName, "panel")).hideLabel();
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/panels/ConnObjectListViewPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/ConnObjectListViewPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/ConnObjectListViewPanel.java
index 1399c3e..1f01e59 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/ConnObjectListViewPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/ConnObjectListViewPanel.java
@@ -20,9 +20,7 @@ package org.apache.syncope.client.console.panels;
import java.io.Serializable;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
+import java.util.Optional;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.client.console.commons.ConnIdSpecialName;
@@ -68,17 +66,12 @@ public abstract class ConnObjectListViewPanel extends Panel {
@Override
protected Component getValueComponent(final String key, final ConnObjectTO bean) {
- final AttrTO attrTO = IterableUtils.find(bean.getAttrs(), new Predicate<AttrTO>() {
+ Optional<AttrTO> attrTO =
+ bean.getAttrs().stream().filter(object -> object.getSchema().equals(key)).findAny();
- @Override
- public boolean evaluate(final AttrTO object) {
- return object.getSchema().equals(key);
- }
- });
-
- return attrTO == null || CollectionUtils.isEmpty(attrTO.getValues())
+ return !attrTO.isPresent() || attrTO.get().getValues().isEmpty()
? new Label("field", StringUtils.EMPTY)
- : new CollectionPanel("field", attrTO.getValues());
+ : new CollectionPanel("field", attrTO.get().getValues());
}
};
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/panels/ConnObjects.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/ConnObjects.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/ConnObjects.java
index d29ce1a..fc8318d 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/ConnObjects.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/ConnObjects.java
@@ -18,11 +18,9 @@
*/
package org.apache.syncope.client.console.panels;
-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.stream.Collectors;
import org.apache.syncope.client.console.commons.Constants;
import org.apache.syncope.client.console.rest.AnyTypeRestClient;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
@@ -50,20 +48,14 @@ public class ConnObjects extends Panel implements ModalPanel {
public ConnObjects(final ResourceTO resource, final PageReference pageRef) {
super(BaseModal.CONTENT_ID);
- List<String> availableAnyTypes = CollectionUtils.collect(
- resource.getProvisions(), new Transformer<ProvisionTO, String>() {
-
- @Override
- public String transform(final ProvisionTO provision) {
- return provision.getAnyType();
- }
- }, new ArrayList<String>());
+ List<String> availableAnyTypes = resource.getProvisions().stream().
+ map(ProvisionTO::getAnyType).collect(Collectors.toList());
Collections.sort(availableAnyTypes, new AnyTypeRestClient.AnyTypeKeyComparator());
if (resource.getOrgUnit() != null) {
availableAnyTypes.add(0, SyncopeConstants.REALM_ANYTYPE);
}
- anyTypes = new AjaxDropDownChoicePanel<>("anyTypes", "anyTypes", new Model<String>());
+ anyTypes = new AjaxDropDownChoicePanel<>("anyTypes", "anyTypes", new Model<>());
anyTypes.setChoices(availableAnyTypes);
anyTypes.hideLabel();
anyTypes.setNullValid(false);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/panels/ConsoleLogPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/ConsoleLogPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/ConsoleLogPanel.java
index 5dd4de5..f1e9dc2 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/ConsoleLogPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/ConsoleLogPanel.java
@@ -22,8 +22,7 @@ import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import org.apache.commons.collections4.ComparatorUtils;
-import org.apache.commons.collections4.Transformer;
+import org.apache.commons.lang3.ObjectUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.config.LoggerConfig;
@@ -55,7 +54,7 @@ public class ConsoleLogPanel extends AbstractLogsPanel<LoggerTO> {
LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
List<LoggerTO> result = new ArrayList<>();
- for (final LoggerConfig logger : ctx.getConfiguration().getLoggers().values()) {
+ ctx.getConfiguration().getLoggers().values().forEach(logger -> {
String loggerName = LogManager.ROOT_LOGGER_NAME.equals(logger.getName())
? SyncopeConstants.ROOT_LOGGER : logger.getName();
if (logger.getLevel() != null) {
@@ -64,15 +63,8 @@ public class ConsoleLogPanel extends AbstractLogsPanel<LoggerTO> {
loggerTO.setLevel(LoggerLevel.fromLevel(logger.getLevel()));
result.add(loggerTO);
}
- }
- Collections.sort(result, ComparatorUtils.transformedComparator(
- ComparatorUtils.<String>naturalComparator(), new Transformer<LoggerTO, String>() {
-
- @Override
- public String transform(final LoggerTO input) {
- return input.getKey();
- }
- }));
+ });
+ Collections.sort(result, (o1, o2) -> ObjectUtils.compare(o1.getKey(), o2.getKey()));
return result;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/panels/HistoryConfDetails.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/HistoryConfDetails.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/HistoryConfDetails.java
index 00d95b3..563641c 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/HistoryConfDetails.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/HistoryConfDetails.java
@@ -24,9 +24,7 @@ import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.client.console.rest.ConnectorRestClient;
@@ -66,14 +64,8 @@ public class HistoryConfDetails<T extends AbstractHistoryConf> extends Multileve
super();
// remove selected conf from list
- CollectionUtils.filter(availableHistoryConfTOs, new Predicate<T>() {
-
- @Override
- public boolean evaluate(final T object) {
- return !object.getKey().equals(selectedHistoryConfTO.getKey());
- }
- });
- this.availableHistoryConfTOs = availableHistoryConfTOs;
+ this.availableHistoryConfTOs = availableHistoryConfTOs.stream().
+ filter(object -> object.getKey().equals(selectedHistoryConfTO.getKey())).collect(Collectors.toList());
this.selectedHistoryConfTO = selectedHistoryConfTO;
// add current conf to list
@@ -81,11 +73,7 @@ public class HistoryConfDetails<T extends AbstractHistoryConf> extends Multileve
Form<?> form = initDropdownDiffConfForm();
add(form);
- if (availableHistoryConfTOs.isEmpty()) {
- form.setVisible(false);
- } else {
- form.setVisible(true);
- }
+ form.setVisible(!availableHistoryConfTOs.isEmpty());
showConfigurationSinglePanel();
}
@@ -109,9 +97,9 @@ public class HistoryConfDetails<T extends AbstractHistoryConf> extends Multileve
private void showConfigurationDiffPanel(final List<T> historyConfTOs) {
List<Pair<String, String>> infos = new ArrayList<>();
- for (T historyConfTO : historyConfTOs) {
+ historyConfTOs.forEach(historyConfTO -> {
infos.add(getJSONInfo(historyConfTO));
- }
+ });
jsonPanel = new JsonDiffPanel(null, new PropertyModel<String>(infos.get(0), "value"),
new PropertyModel<String>(infos.get(1), "value"), null) {
@@ -170,7 +158,7 @@ public class HistoryConfDetails<T extends AbstractHistoryConf> extends Multileve
return historyConfMap;
}
- private Form initDropdownDiffConfForm() {
+ private Form<?> initDropdownDiffConfForm() {
final Form<T> form = new Form<>("form");
form.setModel(new CompoundPropertyModel<>(selectedHistoryConfTO));
form.setOutputMarkupId(true);
@@ -181,7 +169,7 @@ public class HistoryConfDetails<T extends AbstractHistoryConf> extends Multileve
final AjaxDropDownChoicePanel<String> dropdownElem = new AjaxDropDownChoicePanel<>(
"compareDropdown",
getString("compare"),
- new PropertyModel<String>(selectedHistoryConfTO, "key"),
+ new PropertyModel<>(selectedHistoryConfTO, "key"),
false);
dropdownElem.setChoices(keys);
dropdownElem.setChoiceRenderer(new IChoiceRenderer<String>() {
@@ -217,13 +205,8 @@ public class HistoryConfDetails<T extends AbstractHistoryConf> extends Multileve
final String selectedKey = dropdownElem.getModelObject();
if (selectedKey != null) {
if (!selectedKey.isEmpty()) {
- T confToCompare = IterableUtils.find(availableHistoryConfTOs, new Predicate<T>() {
-
- @Override
- public boolean evaluate(final T object) {
- return object.getKey().equals(selectedKey);
- }
- });
+ T confToCompare = availableHistoryConfTOs.stream().
+ filter(object -> object.getKey().equals(selectedKey)).findAny().orElse(null);
elemsToCompare.add(confToCompare);
showConfigurationDiffPanel(elemsToCompare);
} else {
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/panels/ListViewPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/ListViewPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/ListViewPanel.java
index 6dce4eb..06729c9 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/ListViewPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/ListViewPanel.java
@@ -22,12 +22,9 @@ import java.io.Serializable;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
-import org.apache.commons.collections4.IteratorUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.client.console.commons.Constants;
import org.apache.syncope.client.console.wicket.ajax.form.IndicatorAjaxFormChoiceComponentUpdatingBehavior;
@@ -139,7 +136,7 @@ public abstract class ListViewPanel<T extends Serializable> extends WizardMgtPan
final List<String> toBeIncluded;
if (includes == null || includes.isEmpty()) {
toBeIncluded = new ArrayList<>();
- for (Field field : Arrays.asList(reference.getDeclaredFields())) {
+ for (Field field : reference.getDeclaredFields()) {
toBeIncluded.add(field.getName());
}
} else {
@@ -155,9 +152,9 @@ public abstract class ListViewPanel<T extends Serializable> extends WizardMgtPan
} else {
listOfItems = list;
if (LOG.isDebugEnabled()) {
- for (String field : toBeIncluded) {
+ toBeIncluded.forEach(field -> {
LOG.debug("Show field {}", field);
- }
+ });
}
}
@@ -396,13 +393,7 @@ public abstract class ListViewPanel<T extends Serializable> extends WizardMgtPan
protected T getActualItem(final T item, final List<T> list) {
return item == null
? null
- : IteratorUtils.find(list.iterator(), new Predicate<T>() {
-
- @Override
- public boolean evaluate(final T object) {
- return item.equals(object);
- }
- });
+ : list.stream().filter(object -> item.equals(object)).findAny().orElse(null);
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/panels/MembersTogglePanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/MembersTogglePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/MembersTogglePanel.java
index 70d2dda..81167d8 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/MembersTogglePanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/MembersTogglePanel.java
@@ -20,8 +20,7 @@ package org.apache.syncope.client.console.panels;
import java.io.Serializable;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Predicate;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.client.console.pages.BasePage;
@@ -54,15 +53,8 @@ public abstract class MembersTogglePanel extends TogglePanel<Serializable> {
@Override
protected List<String> load() {
- List<String> result = new AnyTypeRestClient().list();
- CollectionUtils.filter(result, new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String anyType) {
- return !AnyTypeKind.GROUP.name().equals(anyType);
- }
- });
- return result;
+ return new AnyTypeRestClient().list().stream().
+ filter(anyType -> !AnyTypeKind.GROUP.name().equals(anyType)).collect(Collectors.toList());
}
};
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/panels/Realm.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/Realm.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/Realm.java
index fe708f8..f8ea7bc 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/Realm.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/Realm.java
@@ -24,7 +24,7 @@ import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-import org.apache.commons.collections4.CollectionUtils;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.commons.lang3.tuple.Triple;
@@ -42,10 +42,10 @@ import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink;
import org.apache.syncope.client.console.wicket.markup.html.form.ActionsPanel;
import org.apache.syncope.client.console.wizards.WizardMgtPanel;
import org.apache.syncope.client.console.wizards.any.ConnObjectPanel;
-import org.apache.syncope.common.lib.EntityTOUtils;
import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.common.lib.to.AnyTypeTO;
import org.apache.syncope.common.lib.to.ConnObjectTO;
+import org.apache.syncope.common.lib.to.EntityTO;
import org.apache.syncope.common.lib.to.PropagationStatus;
import org.apache.syncope.common.lib.to.ProvisioningResult;
import org.apache.syncope.common.lib.to.RealmTO;
@@ -167,7 +167,7 @@ public abstract class Realm extends WizardMgtPanel<RealmTO> {
});
final Triple<UserFormLayoutInfo, GroupFormLayoutInfo, Map<String, AnyObjectFormLayoutInfo>> formLayoutInfo =
- FormLayoutInfoUtils.fetch(CollectionUtils.collect(anyTypes, EntityTOUtils.keyTransformer()));
+ FormLayoutInfoUtils.fetch(anyTypes.stream().map(EntityTO::getKey).collect(Collectors.toList()));
for (final AnyTypeTO anyType : anyTypes) {
tabs.add(new ITabComponent(
@@ -221,11 +221,11 @@ public abstract class Realm extends WizardMgtPanel<RealmTO> {
ConnObjectTO afterObj = bean.getAfterObj();
String remoteId = afterObj == null
|| afterObj.getAttrs().isEmpty()
- || afterObj.getAttr(ConnIdSpecialName.NAME) == null
- || afterObj.getAttr(ConnIdSpecialName.NAME).getValues() == null
- || afterObj.getAttr(ConnIdSpecialName.NAME).getValues().isEmpty()
+ || !afterObj.getAttr(ConnIdSpecialName.NAME).isPresent()
+ || afterObj.getAttr(ConnIdSpecialName.NAME).get().getValues() == null
+ || afterObj.getAttr(ConnIdSpecialName.NAME).get().getValues().isEmpty()
? StringUtils.EMPTY
- : afterObj.getAttr(ConnIdSpecialName.NAME).getValues().get(0);
+ : afterObj.getAttr(ConnIdSpecialName.NAME).get().getValues().get(0);
return new Label("field", remoteId);
} else if ("status".equalsIgnoreCase(key)) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/panels/RealmChoicePanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/RealmChoicePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/RealmChoicePanel.java
index 79c3322..7e74241 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/RealmChoicePanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/RealmChoicePanel.java
@@ -33,8 +33,6 @@ import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.client.console.SyncopeConsoleSession;
@@ -100,10 +98,10 @@ public class RealmChoicePanel extends Panel {
if (tree.containsKey(key)) {
Pair<RealmTO, List<RealmTO>> subtree = tree.get(key);
- for (RealmTO child : subtree.getValue()) {
+ subtree.getValue().forEach(child -> {
full.add(Pair.of(indent + child.getName(), child));
getChildren(full, child.getKey(), tree, " " + indent + (indent.isEmpty() ? "|--- " : ""));
- }
+ });
}
}
@@ -124,20 +122,17 @@ public class RealmChoicePanel extends Panel {
@Override
protected List<DynRealmTO> load() {
- final List<DynRealmTO> dynRealms = realmRestClient.listDynReams();
- dynRealms.sort(new Comparator<DynRealmTO>() {
-
- @Override
- public int compare(final DynRealmTO left, final DynRealmTO right) {
- if (left == null) {
- return -1;
- } else if (right == null) {
- return 1;
- } else {
- return left.getKey().compareTo(right.getKey());
- }
+ List<DynRealmTO> dynRealms = realmRestClient.listDynReams();
+ dynRealms.sort((left, right) -> {
+ if (left == null) {
+ return -1;
+ } else if (right == null) {
+ return 1;
+ } else {
+ return left.getKey().compareTo(right.getKey());
}
});
+
return dynRealms;
}
};
@@ -221,13 +216,8 @@ public class RealmChoicePanel extends Panel {
@Override
public boolean isEnabled() {
- return IterableUtils.matchesAny(availableRealms, new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String availableRealm) {
- return realmTO.getFullPath().startsWith(availableRealm);
- }
- });
+ return availableRealms.stream().
+ anyMatch(availableRealm -> realmTO.getFullPath().startsWith(availableRealm));
}
});
}
@@ -283,13 +273,9 @@ public class RealmChoicePanel extends Panel {
@Override
public boolean isEnabled() {
- return IterableUtils.matchesAny(availableRealms, new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String availableRealm) {
- return SyncopeConstants.ROOT_REALM.equals(availableRealm)
- || realmTO.getKey().equals(availableRealm);
- }
+ return availableRealms.stream().anyMatch(availableRealm -> {
+ return SyncopeConstants.ROOT_REALM.equals(availableRealm)
+ || realmTO.getKey().equals(availableRealm);
});
}
});
@@ -328,11 +314,11 @@ public class RealmChoicePanel extends Panel {
private Map<String, Pair<RealmTO, List<RealmTO>>> reloadRealmParentMap(final List<RealmTO> realms) {
tree.clear();
- tree.put(null, Pair.<RealmTO, List<RealmTO>>of(realms.get(0), new ArrayList<RealmTO>()));
+ tree.put(null, Pair.<RealmTO, List<RealmTO>>of(realms.get(0), new ArrayList<>()));
final Map<String, List<RealmTO>> cache = new HashMap<>();
- for (RealmTO realm : realms) {
+ realms.forEach(realm -> {
final List<RealmTO> children = new ArrayList<>();
tree.put(realm.getKey(), Pair.<RealmTO, List<RealmTO>>of(realm, children));
@@ -348,7 +334,7 @@ public class RealmChoicePanel extends Panel {
} else {
cache.put(realm.getParent(), new ArrayList<>(Collections.singleton(realm)));
}
- }
+ });
return tree;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/panels/RealmDetails.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/RealmDetails.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/RealmDetails.java
index 4f48c3c..ddd903a 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/RealmDetails.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/RealmDetails.java
@@ -22,7 +22,7 @@ import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import org.apache.commons.collections4.CollectionUtils;
+import java.util.stream.Collectors;
import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.client.console.rest.PolicyRestClient;
import org.apache.syncope.client.console.rest.ResourceRestClient;
@@ -32,11 +32,10 @@ import org.apache.syncope.client.console.wicket.markup.html.form.AjaxPalettePane
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
import org.apache.syncope.client.console.wicket.markup.html.form.FieldPanel;
import org.apache.syncope.client.console.wicket.markup.html.form.PolicyRenderer;
-import org.apache.syncope.common.lib.EntityTOUtils;
import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.common.lib.policy.AbstractPolicyTO;
+import org.apache.syncope.common.lib.to.EntityTO;
import org.apache.syncope.common.lib.to.RealmTO;
-import org.apache.syncope.common.lib.to.ResourceTO;
import org.apache.syncope.common.lib.types.PolicyType;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.form.DropDownChoice;
@@ -119,19 +118,19 @@ public class RealmDetails extends Panel {
container.add(generics.setVisible(unwrapped));
FieldPanel<String> name = new AjaxTextFieldPanel(
- "name", "name", new PropertyModel<String>(realmTO, "name"), false);
+ "name", "name", new PropertyModel<>(realmTO, "name"), false);
name.addRequiredLabel();
generics.add(name);
FieldPanel<String> fullPath = new AjaxTextFieldPanel(
- "fullPath", "fullPath", new PropertyModel<String>(realmTO, "fullPath"), false);
+ "fullPath", "fullPath", new PropertyModel<>(realmTO, "fullPath"), false);
fullPath.setEnabled(false);
generics.add(fullPath);
AjaxDropDownChoicePanel<String> accountPolicy = new AjaxDropDownChoicePanel<>(
"accountPolicy",
new ResourceModel("accountPolicy", "accountPolicy").getObject(),
- new PropertyModel<String>(realmTO, "accountPolicy"),
+ new PropertyModel<>(realmTO, "accountPolicy"),
false);
accountPolicy.setChoiceRenderer(new PolicyRenderer(accountPolicies));
accountPolicy.setChoices(new ArrayList<>(accountPolicies.getObject().keySet()));
@@ -141,7 +140,7 @@ public class RealmDetails extends Panel {
AjaxDropDownChoicePanel<String> passwordPolicy = new AjaxDropDownChoicePanel<>(
"passwordPolicy",
new ResourceModel("passwordPolicy", "passwordPolicy").getObject(),
- new PropertyModel<String>(realmTO, "passwordPolicy"),
+ new PropertyModel<>(realmTO, "passwordPolicy"),
false);
passwordPolicy.setChoiceRenderer(new PolicyRenderer(passwordPolicies));
passwordPolicy.setChoices(new ArrayList<>(passwordPolicies.getObject().keySet()));
@@ -156,10 +155,10 @@ public class RealmDetails extends Panel {
actionsClassNames.setOutputMarkupId(true);
container.add(actionsClassNames);
- container.add(new AjaxPalettePanel.Builder<String>().build("resources",
- new PropertyModel<List<String>>(realmTO, "resources"),
- new ListModel<>(CollectionUtils.collect(new ResourceRestClient().list(),
- EntityTOUtils.<ResourceTO>keyTransformer(), new ArrayList<String>()))).
+ container.add(new AjaxPalettePanel.Builder<>().build("resources",
+ new PropertyModel<>(realmTO, "resources"),
+ new ListModel<>(new ResourceRestClient().list().stream().
+ map(EntityTO::getKey).collect(Collectors.toList()))).
setOutputMarkupId(true).
setEnabled(!SyncopeConstants.ROOT_REALM.equals(realmTO.getName())).
setVisible(!SyncopeConstants.ROOT_REALM.equals(realmTO.getName())));
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemaTypePanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemaTypePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemaTypePanel.java
index af1b84c..c4596e6 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemaTypePanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemaTypePanel.java
@@ -27,8 +27,7 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.client.console.commons.Constants;
@@ -156,7 +155,7 @@ public class SchemaTypePanel extends TypesDirectoryPanel<AbstractSchemaTO, Schem
if (clazzField != null) {
if (clazzField.getType().equals(Boolean.class) || clazzField.getType().equals(boolean.class)) {
- columns.add(new BooleanPropertyColumn<AbstractSchemaTO>(new ResourceModel(field), field, field));
+ columns.add(new BooleanPropertyColumn<>(new ResourceModel(field), field, field));
} else {
final IColumn<AbstractSchemaTO, String> column = new PropertyColumn<AbstractSchemaTO, String>(
new ResourceModel(field), field, field) {
@@ -254,22 +253,15 @@ public class SchemaTypePanel extends TypesDirectoryPanel<AbstractSchemaTO, Schem
Collections.sort(list, comparator);
if (SchemaType.PLAIN == this.schemaType) {
- final List<String> configurations = new ArrayList<>();
-
- CollectionUtils.collect(confRestClient.list(), new Transformer<AttrTO, String>() {
-
- @Override
- public String transform(final AttrTO attrTO) {
- return attrTO.getSchema();
- }
- }, configurations);
+ final List<String> configurations = confRestClient.list().stream().
+ map(AttrTO::getSchema).collect(Collectors.toList());
final List<AbstractSchemaTO> res = new ArrayList<>();
- for (AbstractSchemaTO item : list) {
- if (!configurations.contains(item.getKey())) {
- res.add(item);
- }
- }
+ list.stream().
+ filter(item -> !configurations.contains(item.getKey())).
+ forEachOrdered(item -> {
+ res.add(item);
+ });
return res.subList((int) first, (int) first + (int) count).iterator();
} else {
return list.subList((int) first, (int) first + (int) count).iterator();
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/panels/VirSchemaDetails.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/VirSchemaDetails.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/VirSchemaDetails.java
index ceb51be..e5d72ea 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/VirSchemaDetails.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/VirSchemaDetails.java
@@ -23,9 +23,8 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
+import java.util.Optional;
+import java.util.stream.Collectors;
import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.client.console.commons.Constants;
import org.apache.syncope.client.console.rest.ConnectorRestClient;
@@ -34,11 +33,10 @@ import org.apache.syncope.client.console.wicket.ajax.form.IndicatorAjaxFormCompo
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxCheckBoxPanel;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDropDownChoicePanel;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
-import org.apache.syncope.common.lib.EntityTOUtils;
import org.apache.syncope.common.lib.to.AbstractSchemaTO;
import org.apache.syncope.common.lib.to.ConnIdObjectClassTO;
import org.apache.syncope.common.lib.to.ConnInstanceTO;
-import org.apache.syncope.common.lib.to.ProvisionTO;
+import org.apache.syncope.common.lib.to.EntityTO;
import org.apache.syncope.common.lib.to.ResourceTO;
import org.apache.syncope.common.lib.types.StandardEntitlement;
import org.apache.wicket.PageReference;
@@ -66,14 +64,13 @@ public class VirSchemaDetails extends AbstractSchemaDetailsPanel {
super(id, pageReference, schemaTO);
AjaxCheckBoxPanel readonly = new AjaxCheckBoxPanel("readonly", getString("readonly"),
- new PropertyModel<Boolean>(schemaTO, "readonly"));
+ new PropertyModel<>(schemaTO, "readonly"));
schemaForm.add(readonly);
final AjaxDropDownChoicePanel<String> resource = new AjaxDropDownChoicePanel<>(
"resource", getString("resource"), new PropertyModel<String>(schemaTO, "resource"), false).
setNullValid(false);
- resource.setChoices(CollectionUtils.collect(resourceRestClient.list(),
- EntityTOUtils.<ResourceTO>keyTransformer(), new ArrayList<String>()));
+ resource.setChoices(resourceRestClient.list().stream().map(EntityTO::getKey).collect(Collectors.toList()));
resource.setOutputMarkupId(true);
resource.addRequiredLabel();
if (resource.getModelObject() != null) {
@@ -94,7 +91,7 @@ public class VirSchemaDetails extends AbstractSchemaDetailsPanel {
schemaForm.add(anyType);
final AjaxTextFieldPanel extAttrName = new AjaxTextFieldPanel(
- "extAttrName", getString("extAttrName"), new PropertyModel<String>(schemaTO, "extAttrName"));
+ "extAttrName", getString("extAttrName"), new PropertyModel<>(schemaTO, "extAttrName"));
extAttrName.setOutputMarkupId(true);
extAttrName.addRequiredLabel();
if (selectedResource != null) {
@@ -158,9 +155,9 @@ public class VirSchemaDetails extends AbstractSchemaDetailsPanel {
if (SyncopeConsoleSession.get().owns(StandardEntitlement.RESOURCE_READ, adminRealm)) {
selectedResource = resource;
- for (ProvisionTO provisionTO : selectedResource.getProvisions()) {
+ selectedResource.getProvisions().forEach(provisionTO -> {
anyTypes.put(provisionTO.getAnyType(), provisionTO.getObjectClass());
- }
+ });
}
}
}
@@ -170,17 +167,12 @@ public class VirSchemaDetails extends AbstractSchemaDetailsPanel {
connInstanceTO.setKey(selectedResource.getConnector());
connInstanceTO.getConf().addAll(selectedResource.getConfOverride());
- ConnIdObjectClassTO connIdObjectClass = IterableUtils.find(
- connRestClient.buildObjectClassInfo(connInstanceTO, false), new Predicate<ConnIdObjectClassTO>() {
-
- @Override
- public boolean evaluate(final ConnIdObjectClassTO object) {
- return object.getType().equals(anyTypes.get(anyType.getModelObject()));
- }
- });
+ Optional<ConnIdObjectClassTO> connIdObjectClass = connRestClient.buildObjectClassInfo(connInstanceTO, false).
+ stream().filter(object -> object.getType().equals(anyTypes.get(anyType.getModelObject()))).
+ findAny();
- return connIdObjectClass == null
- ? Collections.<String>emptyList()
- : connIdObjectClass.getAttributes();
+ return connIdObjectClass.isPresent()
+ ? connIdObjectClass.get().getAttributes()
+ : Collections.<String>emptyList();
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AbstractSearchPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AbstractSearchPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AbstractSearchPanel.java
index 050896f..f96da97 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AbstractSearchPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AbstractSearchPanel.java
@@ -19,19 +19,17 @@
package org.apache.syncope.client.console.panels.search;
import java.io.Serializable;
-import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.apache.commons.collections4.CollectionUtils;
+import java.util.stream.Collectors;
import org.apache.syncope.client.console.rest.AnyTypeRestClient;
import org.apache.syncope.client.console.rest.ResourceRestClient;
import org.apache.syncope.client.console.rest.SchemaRestClient;
import org.apache.syncope.client.console.wicket.markup.html.form.MultiFieldPanel;
-import org.apache.syncope.common.lib.EntityTOUtils;
import org.apache.syncope.common.lib.search.SearchableFields;
+import org.apache.syncope.common.lib.to.EntityTO;
import org.apache.syncope.common.lib.to.PlainSchemaTO;
-import org.apache.syncope.common.lib.to.ResourceTO;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.common.lib.types.SchemaType;
import org.apache.wicket.event.IEventSink;
@@ -192,8 +190,7 @@ public abstract class AbstractSearchPanel extends Panel {
@Override
protected List<String> load() {
- return CollectionUtils.collect(resourceRestClient.list(),
- EntityTOUtils.<ResourceTO>keyTransformer(), new ArrayList<String>());
+ return resourceRestClient.list().stream().map(EntityTO::getKey).collect(Collectors.toList());
}
};
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/SearchClausePanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/SearchClausePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/SearchClausePanel.java
index 28958ee..cc66d40 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/SearchClausePanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/SearchClausePanel.java
@@ -26,9 +26,7 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
-import org.apache.commons.collections4.functors.StringValueTransformer;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.client.console.commons.Constants;
import org.apache.syncope.client.console.panels.search.SearchClause.Comparator;
@@ -110,7 +108,7 @@ public class SearchClausePanel extends FieldPanel<SearchClause> {
super(id, name, clause);
- this.clause = clause == null ? new Model<SearchClause>(null) : clause;
+ this.clause = clause == null ? new Model<>(null) : clause;
this.required = required;
this.types = types;
@@ -201,9 +199,8 @@ public class SearchClausePanel extends FieldPanel<SearchClause> {
return names;
case GROUP_MEMBERSHIP:
- final List<String> groups = CollectionUtils.collect(groupNames.getObject().keySet(),
- StringValueTransformer.<String>stringValueTransformer(), new ArrayList<String>());
-
+ final List<String> groups = groupNames.getObject().keySet().
+ stream().collect(Collectors.toList());
Collections.sort(groups);
return groups;
@@ -218,14 +215,8 @@ public class SearchClausePanel extends FieldPanel<SearchClause> {
return resources;
case RELATIONSHIP:
- final List<String> relations = CollectionUtils.collect(
- new RelationshipTypeRestClient().list(), new Transformer<RelationshipTypeTO, String>() {
-
- @Override
- public String transform(final RelationshipTypeTO input) {
- return input.getKey();
- }
- }, new ArrayList<String>());
+ final List<String> relations = new RelationshipTypeRestClient().list().stream().
+ map(RelationshipTypeTO::getKey).collect(Collectors.toList());
return relations;
default:
@@ -364,7 +355,7 @@ public class SearchClausePanel extends FieldPanel<SearchClause> {
}
final AjaxDropDownChoicePanel<String> property = new AjaxDropDownChoicePanel<>(
- "property", "property", new PropertyModel<String>(searchClause, "property"));
+ "property", "property", new PropertyModel<>(searchClause, "property"));
property.hideLabel().setRequired(required).setOutputMarkupId(true);
property.setChoices(properties);
property.getField().add(new IndicatorAjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
@@ -378,7 +369,7 @@ public class SearchClausePanel extends FieldPanel<SearchClause> {
field.add(property);
final AjaxDropDownChoicePanel<SearchClause.Comparator> comparator = new AjaxDropDownChoicePanel<>(
- "comparator", "comparator", new PropertyModel<SearchClause.Comparator>(searchClause, "comparator"));
+ "comparator", "comparator", new PropertyModel<>(searchClause, "comparator"));
comparator.setChoices(comparators);
comparator.setNullValid(false).hideLabel().setOutputMarkupId(true);
comparator.setRequired(required);
@@ -386,7 +377,7 @@ public class SearchClausePanel extends FieldPanel<SearchClause> {
field.add(comparator);
final AjaxTextFieldPanel value = new AjaxTextFieldPanel(
- "value", "value", new PropertyModel<String>(searchClause, "value"), false);
+ "value", "value", new PropertyModel<>(searchClause, "value"), false);
value.hideLabel().setOutputMarkupId(true);
field.add(value);
@@ -426,7 +417,7 @@ public class SearchClausePanel extends FieldPanel<SearchClause> {
});
final AjaxDropDownChoicePanel<SearchClause.Type> type = new AjaxDropDownChoicePanel<>(
- "type", "type", new PropertyModel<SearchClause.Type>(searchClause, "type"));
+ "type", "type", new PropertyModel<>(searchClause, "type"));
type.setChoices(types).hideLabel().setRequired(required).setOutputMarkupId(true);
type.setNullValid(false);
type.getField().add(new IndicatorAjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/UserSearchPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/UserSearchPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/UserSearchPanel.java
index faaecb8..efc9de8 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/UserSearchPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/UserSearchPanel.java
@@ -20,10 +20,9 @@ package org.apache.syncope.client.console.panels.search;
import java.util.ArrayList;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
import org.apache.syncope.client.console.rest.RoleRestClient;
-import org.apache.syncope.common.lib.to.RoleTO;
+import org.apache.syncope.common.lib.to.EntityTO;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.LoadableDetachableModel;
@@ -62,13 +61,7 @@ public final class UserSearchPanel extends AnyObjectSearchPanel {
@Override
protected List<String> load() {
- return CollectionUtils.collect(roleRestClient.list(), new Transformer<RoleTO, String>() {
-
- @Override
- public String transform(final RoleTO input) {
- return input.getKey();
- }
- }, new ArrayList<String>());
+ return roleRestClient.list().stream().map(EntityTO::getKey).collect(Collectors.toList());
}
};
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicyModalPanelBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicyModalPanelBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicyModalPanelBuilder.java
index 7507d04..91b24d0 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicyModalPanelBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicyModalPanelBuilder.java
@@ -20,8 +20,7 @@ package org.apache.syncope.client.console.policies;
import java.util.ArrayList;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.client.console.commons.Constants;
@@ -41,7 +40,7 @@ import org.apache.syncope.client.console.wizards.AjaxWizard;
import org.apache.syncope.common.lib.policy.AbstractPolicyTO;
import org.apache.syncope.common.lib.policy.AccountPolicyTO;
import org.apache.syncope.common.lib.policy.PasswordPolicyTO;
-import org.apache.syncope.common.lib.to.ResourceTO;
+import org.apache.syncope.common.lib.to.EntityTO;
import org.apache.wicket.Component;
import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -82,15 +81,7 @@ public class PolicyModalPanelBuilder<T extends AbstractPolicyTO> extends Abstrac
@Override
protected List<String> load() {
- return CollectionUtils.collect(
- new ResourceRestClient().list(),
- new Transformer<ResourceTO, String>() {
-
- @Override
- public String transform(final ResourceTO input) {
- return input.getKey();
- }
- }, new ArrayList<String>());
+ return new ResourceRestClient().list().stream().map(EntityTO::getKey).collect(Collectors.toList());
}
};
@@ -103,7 +94,7 @@ public class PolicyModalPanelBuilder<T extends AbstractPolicyTO> extends Abstrac
final List<Component> fields = new ArrayList<>();
FieldPanel<String> description = new AjaxTextFieldPanel("field", "description",
- new PropertyModel<String>(policyTO, "description"), false);
+ new PropertyModel<>(policyTO, "description"), false);
description.setRequired(true);
fields.add(description);
@@ -117,7 +108,7 @@ public class PolicyModalPanelBuilder<T extends AbstractPolicyTO> extends Abstrac
fields.add(new AjaxCheckBoxPanel(
"field",
"propagateSuspension",
- new PropertyModel<Boolean>(policyTO, "propagateSuspension"),
+ new PropertyModel<>(policyTO, "propagateSuspension"),
false));
fields.add(new AjaxPalettePanel.Builder<String>().setName("passthroughResources").build(
@@ -136,7 +127,7 @@ public class PolicyModalPanelBuilder<T extends AbstractPolicyTO> extends Abstrac
fields.add(new AjaxCheckBoxPanel(
"field",
"allowNullPassword",
- new PropertyModel<Boolean>(policyTO, "allowNullPassword"),
+ new PropertyModel<>(policyTO, "allowNullPassword"),
false));
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicyRuleDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicyRuleDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicyRuleDirectoryPanel.java
index fd3c72e..6375bac 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicyRuleDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicyRuleDirectoryPanel.java
@@ -24,9 +24,7 @@ import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Predicate;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.SerializationUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.client.console.SyncopeConsoleSession;
@@ -102,7 +100,7 @@ public class PolicyRuleDirectoryPanel<T extends AbstractPolicyTO> extends Direct
protected List<IColumn<PolicyRuleWrapper, String>> getColumns() {
final List<IColumn<PolicyRuleWrapper, String>> columns = new ArrayList<>();
- columns.add(new PropertyColumn<PolicyRuleWrapper, String>(
+ columns.add(new PropertyColumn<>(
new StringResourceModel("ruleConf", this), "name", "name"));
columns.add(new AbstractColumn<PolicyRuleWrapper, String>(
@@ -160,13 +158,9 @@ public class PolicyRuleDirectoryPanel<T extends AbstractPolicyTO> extends Direct
final RuleConf rule = model.getObject().getConf();
try {
final T actual = restClient.getPolicy(policy);
- CollectionUtils.filter(getRuleConf(actual), new Predicate<RuleConf>() {
-
- @Override
- public boolean evaluate(final RuleConf object) {
- return !object.getName().equals(rule.getName());
- }
- });
+ List<RuleConf> conf = getRuleConf(actual);
+ conf.removeAll(conf.stream().
+ filter(object -> object.getName().equals(rule.getName())).collect(Collectors.toList()));
restClient.updatePolicy(actual);
SyncopeConsoleSession.get().info(getString(Constants.OPERATION_SUCCEEDED));
customActionOnFinishCallback(target);
@@ -235,14 +229,9 @@ public class PolicyRuleDirectoryPanel<T extends AbstractPolicyTO> extends Direct
public Iterator<PolicyRuleWrapper> iterator(final long first, final long count) {
final T actual = restClient.getPolicy(policy);
- final ArrayList<PolicyRuleWrapper> rules = CollectionUtils.collect(getRuleConf(actual),
- new Transformer<RuleConf, PolicyRuleWrapper>() {
-
- @Override
- public PolicyRuleWrapper transform(final RuleConf input) {
- return new PolicyRuleWrapper(input.getName()).setName(input.getName()).setConf(input);
- }
- }, new ArrayList<PolicyRuleWrapper>());
+ final List<PolicyRuleWrapper> rules = getRuleConf(actual).stream().map(input
+ -> new PolicyRuleWrapper(input.getName()).setName(input.getName()).setConf(input)).
+ collect(Collectors.toList());
Collections.sort(rules, comparator);
return rules.subList((int) first, (int) (first + count)).iterator();
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicyRuleWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicyRuleWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicyRuleWizardBuilder.java
index 698c3f5..b9a36a9 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicyRuleWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicyRuleWizardBuilder.java
@@ -22,8 +22,7 @@ import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Predicate;
+import java.util.stream.Collectors;
import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.client.console.panels.BeanPanel;
import org.apache.syncope.client.console.rest.PolicyRestClient;
@@ -80,13 +79,8 @@ public class PolicyRuleWizardBuilder
if (modelObject.isNew()) {
composable.getRuleConfs().add(modelObject.getConf());
} else {
- CollectionUtils.filter(composable.getRuleConfs(), new Predicate<RuleConf>() {
-
- @Override
- public boolean evaluate(final RuleConf object) {
- return !object.getName().equals(modelObject.getOldName());
- }
- });
+ composable.getRuleConfs().removeAll(composable.getRuleConfs().stream().
+ filter(conf -> conf.getName().equals(modelObject.getOldName())).collect(Collectors.toList()));
composable.getRuleConfs().add(modelObject.getConf());
}
@@ -109,7 +103,7 @@ public class PolicyRuleWizardBuilder
public Profile(final PolicyRuleDirectoryPanel.PolicyRuleWrapper rule) {
final AjaxTextFieldPanel name = new AjaxTextFieldPanel(
- "name", "rule", new PropertyModel<String>(rule, "name"), false);
+ "name", "rule", new PropertyModel<>(rule, "name"), false);
name.addRequiredLabel();
add(name);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicySpecModalPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicySpecModalPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicySpecModalPanel.java
index fbe0c4e..19dd7ba 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicySpecModalPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicySpecModalPanel.java
@@ -26,8 +26,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.client.console.commons.Constants;
@@ -42,7 +41,7 @@ import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDropDownCho
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxPalettePanel;
import org.apache.syncope.client.console.wicket.markup.html.form.MultiPanel;
import org.apache.syncope.common.lib.policy.PullPolicyTO;
-import org.apache.syncope.common.lib.to.AbstractSchemaTO;
+import org.apache.syncope.common.lib.to.EntityTO;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.common.lib.types.ConflictResolutionAction;
import org.apache.syncope.common.lib.types.SchemaType;
@@ -74,25 +73,20 @@ public class PolicySpecModalPanel extends AbstractModalPanel<PullPolicyTO> {
add(new AjaxDropDownChoicePanel<>(
"conflictResolutionAction",
"conflictResolutionAction",
- new PropertyModel<ConflictResolutionAction>(policyTO.getSpecification(), "conflictResolutionAction")).
- setChoices(Arrays.asList(ConflictResolutionAction.values())));
+ new PropertyModel<>(policyTO.getSpecification(), "conflictResolutionAction")).
+ setChoices(Arrays.asList((Serializable[]) ConflictResolutionAction.values())));
model = new PropertyModel<List<CorrelationRule>>(policyTO.getSpecification(), "correlationRules") {
private static final long serialVersionUID = -8168676563540297301L;
- private List<CorrelationRule> rules = CollectionUtils.collect(
- policyTO.getSpecification().getCorrelationRules() == null
- ? Collections.<String>emptySet()
- : policyTO.getSpecification().getCorrelationRules().keySet(),
- new Transformer<String, CorrelationRule>() {
-
- @Override
- public CorrelationRule transform(final String input) {
- return new CorrelationRule(
- input, policyTO.getSpecification().getCorrelationRules().get(input));
- }
- }, new ArrayList<CorrelationRule>());
+ private List<CorrelationRule> rules =
+ (policyTO.getSpecification().getCorrelationRules() == null
+ ? Collections.<String>emptySet()
+ : policyTO.getSpecification().getCorrelationRules().keySet()).stream().
+ map(rule -> new CorrelationRule(
+ rule, policyTO.getSpecification().getCorrelationRules().get(rule))).
+ collect(Collectors.toList());
@Override
public List<CorrelationRule> getObject() {
@@ -129,9 +123,9 @@ public class PolicySpecModalPanel extends AbstractModalPanel<PullPolicyTO> {
public void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
try {
getItem().getSpecification().getCorrelationRules().clear();
- for (CorrelationRule rule : model.getObject()) {
+ model.getObject().forEach(rule -> {
getItem().getSpecification().getCorrelationRules().put(rule.getAny(), rule.getRule());
- }
+ });
restClient.updatePolicy(getItem());
SyncopeConsoleSession.get().info(getString(Constants.OPERATION_SUCCEEDED));
this.modal.close(target);
@@ -276,20 +270,14 @@ public class PolicySpecModalPanel extends AbstractModalPanel<PullPolicyTO> {
private static List<String> getPlainSchemas(final CorrelationRule rule) {
final List<String> choices = StringUtils.isEmpty(rule.getAny())
- ? new ArrayList<String>()
- : CollectionUtils.collect(
- new SchemaRestClient().getSchemas(SchemaType.PLAIN,
- rule.getAny().equals(AnyTypeKind.USER.name())
- ? AnyTypeKind.USER
- : rule.getAny().equals(AnyTypeKind.GROUP.name())
- ? AnyTypeKind.GROUP
- : AnyTypeKind.ANY_OBJECT), new Transformer<AbstractSchemaTO, String>() {
-
- @Override
- public String transform(final AbstractSchemaTO input) {
- return input.getKey();
- }
- }, new ArrayList<String>());
+ ? new ArrayList<>()
+ : new SchemaRestClient().getSchemas(SchemaType.PLAIN,
+ rule.getAny().equals(AnyTypeKind.USER.name())
+ ? AnyTypeKind.USER
+ : rule.getAny().equals(AnyTypeKind.GROUP.name())
+ ? AnyTypeKind.GROUP
+ : AnyTypeKind.ANY_OBJECT).stream().map(EntityTO::getKey).
+ collect(Collectors.toList());
Collections.sort(choices);
return choices;
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportWizardBuilder.java
index ceaa524..ffb24e2 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportWizardBuilder.java
@@ -19,17 +19,15 @@
package org.apache.syncope.client.console.reports;
import java.io.Serializable;
-import java.util.ArrayList;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
+import java.util.stream.Collectors;
import org.apache.syncope.client.console.rest.ReportRestClient;
import org.apache.syncope.client.console.tasks.CrontabPanel;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxCheckBoxPanel;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDropDownChoicePanel;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
import org.apache.syncope.client.console.wizards.AjaxWizardBuilder;
+import org.apache.syncope.common.lib.to.EntityTO;
import org.apache.syncope.common.lib.to.ReportTO;
-import org.apache.syncope.common.lib.to.ReportTemplateTO;
import org.apache.wicket.PageReference;
import org.apache.wicket.extensions.wizard.WizardModel;
import org.apache.wicket.extensions.wizard.WizardStep;
@@ -72,28 +70,22 @@ public class ReportWizardBuilder extends AjaxWizardBuilder<ReportTO> {
public Profile(final ReportTO reportTO) {
AjaxTextFieldPanel name = new AjaxTextFieldPanel(
- "name", "name", new PropertyModel<String>(reportTO, "name"), false);
+ "name", "name", new PropertyModel<>(reportTO, "name"), false);
name.addRequiredLabel();
name.setEnabled(true);
add(name);
final AjaxDropDownChoicePanel<String> template = new AjaxDropDownChoicePanel<>(
"template", getString("template"),
- new PropertyModel<String>(reportTO, "template"));
- template.setChoices(CollectionUtils.collect(
- restClient.listTemplates(), new Transformer<ReportTemplateTO, String>() {
-
- @Override
- public String transform(final ReportTemplateTO input) {
- return input.getKey();
- }
- }, new ArrayList<String>()));
+ new PropertyModel<>(reportTO, "template"));
+ template.setChoices(restClient.listTemplates().stream().
+ map(EntityTO::getKey).collect(Collectors.toList()));
template.addRequiredLabel();
add(template);
AjaxCheckBoxPanel active = new AjaxCheckBoxPanel(
- "active", "active", new PropertyModel<Boolean>(reportTO, "active"), false);
+ "active", "active", new PropertyModel<>(reportTO, "active"), false);
add(active);
}
}
@@ -104,7 +96,7 @@ public class ReportWizardBuilder extends AjaxWizardBuilder<ReportTO> {
public Schedule(final ReportTO reportTO) {
crontabPanel = new CrontabPanel(
- "schedule", new PropertyModel<String>(reportTO, "cronExpression"), reportTO.getCronExpression());
+ "schedule", new PropertyModel<>(reportTO, "cronExpression"), reportTO.getCronExpression());
add(crontabPanel);
}
[10/16] syncope git commit: [SYNCOPE-938] Switching from
commons-collections to Java 8 features
Posted by il...@apache.org.
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/logic/src/main/java/org/apache/syncope/core/logic/SecurityQuestionLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/SecurityQuestionLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/SecurityQuestionLogic.java
index e3dae91..f77f2fd 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/SecurityQuestionLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/SecurityQuestionLogic.java
@@ -19,10 +19,8 @@
package org.apache.syncope.core.logic;
import java.lang.reflect.Method;
-import java.util.ArrayList;
import java.util.List;
-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.to.SecurityQuestionTO;
import org.apache.syncope.common.lib.types.StandardEntitlement;
@@ -52,14 +50,8 @@ public class SecurityQuestionLogic extends AbstractTransactionalLogic<SecurityQu
@PreAuthorize("isAuthenticated()")
@Transactional(readOnly = true)
public List<SecurityQuestionTO> list() {
- return CollectionUtils.collect(securityQuestionDAO.findAll(),
- new Transformer<SecurityQuestion, SecurityQuestionTO>() {
-
- @Override
- public SecurityQuestionTO transform(final SecurityQuestion input) {
- return binder.getSecurityQuestionTO(input);
- }
- }, new ArrayList<SecurityQuestionTO>());
+ return securityQuestionDAO.findAll().stream().
+ map(securityQuestion -> binder.getSecurityQuestionTO(securityQuestion)).collect(Collectors.toList());
}
@PreAuthorize("hasRole('" + StandardEntitlement.SECURITY_QUESTION_READ + "')")
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/logic/src/main/java/org/apache/syncope/core/logic/SyncopeLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/SyncopeLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/SyncopeLogic.java
index 00a6592..ad3a86d 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/SyncopeLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/SyncopeLogic.java
@@ -23,16 +23,14 @@ import java.lang.management.OperatingSystemMXBean;
import java.lang.management.RuntimeMXBean;
import java.lang.reflect.Method;
import java.net.InetAddress;
-import java.net.URI;
import java.net.UnknownHostException;
-import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
+import java.util.stream.Collectors;
import javax.annotation.Resource;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.common.lib.AbstractBaseBean;
import org.apache.syncope.common.lib.SyncopeConstants;
@@ -76,7 +74,6 @@ import org.apache.syncope.core.provisioning.api.GroupProvisioningManager;
import org.apache.syncope.core.provisioning.api.UserProvisioningManager;
import org.apache.syncope.core.provisioning.api.cache.VirAttrCache;
import org.apache.syncope.core.provisioning.api.data.GroupDataBinder;
-import org.apache.syncope.core.provisioning.api.utils.EntityUtils;
import org.apache.syncope.core.spring.security.AuthContextUtils;
import org.apache.syncope.core.workflow.api.AnyObjectWorkflowAdapter;
import org.apache.syncope.core.workflow.api.GroupWorkflowAdapter;
@@ -204,9 +201,8 @@ public class SyncopeLogic extends AbstractLogic<AbstractBaseBean> {
PLATFORM_INFO.setBuildNumber(buildNumber);
if (bundleManager.getLocations() != null) {
- for (URI location : bundleManager.getLocations()) {
- PLATFORM_INFO.getConnIdLocations().add(location.toASCIIString());
- }
+ bundleManager.getLocations().
+ forEach(location -> PLATFORM_INFO.getConnIdLocations().add(location.toASCIIString()));
}
PLATFORM_INFO.setAnyObjectWorkflowAdapter(AopUtils.getTargetClass(awfAdapter).getName());
@@ -246,35 +242,23 @@ public class SyncopeLogic extends AbstractLogic<AbstractBaseBean> {
PLATFORM_INFO.getEntitlements().clear();
PLATFORM_INFO.getEntitlements().addAll(EntitlementsHolder.getInstance().getValues());
- AuthContextUtils.execWithAuthContext(AuthContextUtils.getDomain(), new AuthContextUtils.Executable<Void>() {
-
- @Override
- public Void exec() {
- PLATFORM_INFO.getAnyTypes().clear();
- CollectionUtils.collect(
- anyTypeDAO.findAll(),
- EntityUtils.keyTransformer(),
- PLATFORM_INFO.getAnyTypes());
-
- PLATFORM_INFO.getUserClasses().clear();
- CollectionUtils.collect(
- anyTypeDAO.findUser().getClasses(),
- EntityUtils.keyTransformer(),
- PLATFORM_INFO.getUserClasses());
-
- PLATFORM_INFO.getAnyTypeClasses().clear();
- CollectionUtils.collect(
- anyTypeClassDAO.findAll(),
- EntityUtils.keyTransformer(),
- PLATFORM_INFO.getAnyTypeClasses());
-
- PLATFORM_INFO.getResources().clear();
- CollectionUtils.collect(
- resourceDAO.findAll(),
- EntityUtils.keyTransformer(),
- PLATFORM_INFO.getResources());
- return null;
- }
+ AuthContextUtils.execWithAuthContext(AuthContextUtils.getDomain(), () -> {
+ PLATFORM_INFO.getAnyTypes().clear();
+ PLATFORM_INFO.getAnyTypes().addAll(anyTypeDAO.findAll().stream().
+ map(type -> type.getKey()).collect(Collectors.toList()));
+
+ PLATFORM_INFO.getUserClasses().clear();
+ PLATFORM_INFO.getUserClasses().addAll(anyTypeDAO.findUser().getClasses().stream().
+ map(cls -> cls.getKey()).collect(Collectors.toList()));
+
+ PLATFORM_INFO.getAnyTypeClasses().clear();
+ PLATFORM_INFO.getAnyTypeClasses().addAll(anyTypeClassDAO.findAll().stream().
+ map(cls -> cls.getKey()).collect(Collectors.toList()));
+
+ PLATFORM_INFO.getResources().clear();
+ PLATFORM_INFO.getResources().addAll(resourceDAO.findAll().stream().
+ map(resource -> resource.getKey()).collect(Collectors.toList()));
+ return null;
});
}
@@ -394,14 +378,8 @@ public class SyncopeLogic extends AbstractLogic<AbstractBaseBean> {
searchCond,
page, size,
Collections.singletonList(orderByClause), AnyTypeKind.GROUP);
- List<GroupTO> result = CollectionUtils.collect(matching, new Transformer<Group, GroupTO>() {
-
- @Transactional(readOnly = true)
- @Override
- public GroupTO transform(final Group input) {
- return groupDataBinder.getGroupTO(input, false);
- }
- }, new ArrayList<GroupTO>());
+ List<GroupTO> result = matching.stream().
+ map(group -> groupDataBinder.getGroupTO(group, false)).collect(Collectors.toList());
return Pair.of(count, result);
}
@@ -412,12 +390,12 @@ public class SyncopeLogic extends AbstractLogic<AbstractBaseBean> {
if (group == null) {
throw new NotFoundException("Group " + groupName);
}
- TypeExtension typeExt = group.getTypeExtension(anyTypeDAO.findUser());
- if (typeExt == null) {
+ Optional<? extends TypeExtension> typeExt = group.getTypeExtension(anyTypeDAO.findUser());
+ if (!typeExt.isPresent()) {
throw new NotFoundException("TypeExtension in " + groupName + " for users");
}
- return groupDataBinder.getTypeExtensionTO(typeExt);
+ return groupDataBinder.getTypeExtensionTO(typeExt.get());
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java
index 06e38d2..f7fbe1e 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java
@@ -19,12 +19,10 @@
package org.apache.syncope.core.logic;
import java.lang.reflect.Method;
-import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
-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.commons.lang3.tuple.Triple;
import org.apache.syncope.common.lib.SyncopeClientException;
@@ -170,15 +168,11 @@ public class TaskLogic extends AbstractExecutableLogic<AbstractTaskTO> {
final List<OrderByClause> orderByClauses,
final boolean details) {
- return CollectionUtils.collect(taskDAO.findAll(
+ return taskDAO.findAll(
type, resourceDAO.find(resource), notificationDAO.find(notification), anyTypeKind, entityKey,
- page, size, orderByClauses), new Transformer<Task, T>() {
-
- @Override
- public T transform(final Task task) {
- return (T) binder.getTaskTO(task, taskUtilsFactory.getInstance(type), details);
- }
- }, new ArrayList<T>());
+ page, size, orderByClauses).stream().
+ <T>map(task -> binder.getTaskTO(task, taskUtilsFactory.getInstance(type), details)).
+ collect(Collectors.toList());
}
@PreAuthorize("hasRole('" + StandardEntitlement.TASK_READ + "')")
@@ -297,26 +291,15 @@ public class TaskLogic extends AbstractExecutableLogic<AbstractTaskTO> {
throw new NotFoundException("Task " + key);
}
- return CollectionUtils.collect(taskExecDAO.findAll(task, page, size, orderByClauses),
- new Transformer<TaskExec, ExecTO>() {
-
- @Override
- public ExecTO transform(final TaskExec taskExec) {
- return binder.getExecTO(taskExec);
- }
- }, new ArrayList<ExecTO>());
+ return taskExecDAO.findAll(task, page, size, orderByClauses).stream().
+ map(taskExec -> binder.getExecTO(taskExec)).collect(Collectors.toList());
}
@PreAuthorize("hasRole('" + StandardEntitlement.TASK_LIST + "')")
@Override
public List<ExecTO> listRecentExecutions(final int max) {
- return CollectionUtils.collect(taskExecDAO.findRecent(max), new Transformer<TaskExec, ExecTO>() {
-
- @Override
- public ExecTO transform(final TaskExec taskExec) {
- return binder.getExecTO(taskExec);
- }
- }, new ArrayList<ExecTO>());
+ return taskExecDAO.findRecent(max).stream().
+ map(taskExec -> binder.getExecTO(taskExec)).collect(Collectors.toList());
}
@PreAuthorize("hasRole('" + StandardEntitlement.TASK_DELETE + "')")
@@ -345,7 +328,7 @@ public class TaskLogic extends AbstractExecutableLogic<AbstractTaskTO> {
BulkActionResult result = new BulkActionResult();
- for (TaskExec exec : taskExecDAO.findAll(task, startedBefore, startedAfter, endedBefore, endedAfter)) {
+ taskExecDAO.findAll(task, startedBefore, startedAfter, endedBefore, endedAfter).forEach(exec -> {
try {
taskExecDAO.delete(exec);
result.getResults().put(String.valueOf(exec.getKey()), BulkActionResult.Status.SUCCESS);
@@ -353,7 +336,7 @@ public class TaskLogic extends AbstractExecutableLogic<AbstractTaskTO> {
LOG.error("Error deleting execution {} of task {}", exec.getKey(), key, e);
result.getResults().put(String.valueOf(exec.getKey()), BulkActionResult.Status.FAILURE);
}
- }
+ });
return result;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/logic/src/main/java/org/apache/syncope/core/logic/UserLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/UserLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/UserLogic.java
index f889780..5f99944 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/UserLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/UserLogic.java
@@ -19,14 +19,12 @@
package org.apache.syncope.core.logic;
import java.lang.reflect.Method;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
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.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.ImmutablePair;
@@ -112,14 +110,9 @@ public class UserLogic extends AbstractAnyLogic<UserTO, UserPatch> {
AuthContextUtils.getAuthorizations().get(StandardEntitlement.USER_SEARCH), realm),
searchCond == null ? userDAO.getAllMatchingCond() : searchCond,
page, size, orderBy, AnyTypeKind.USER);
- List<UserTO> result = CollectionUtils.collect(matching, new Transformer<User, UserTO>() {
-
- @Transactional(readOnly = true)
- @Override
- public UserTO transform(final User input) {
- return binder.returnUserTO(binder.getUserTO(input, details));
- }
- }, new ArrayList<UserTO>());
+ List<UserTO> result = matching.stream().
+ map(user -> binder.returnUserTO(binder.getUserTO(user, details))).
+ collect(Collectors.toList());
return Pair.of(count, result);
}
@@ -325,13 +318,8 @@ public class UserLogic extends AbstractAnyLogic<UserTO, UserPatch> {
List<Group> ownedGroups = groupDAO.findOwnedByUser(before.getLeft().getKey());
if (!ownedGroups.isEmpty()) {
SyncopeClientException sce = SyncopeClientException.build(ClientExceptionType.GroupOwnership);
- sce.getElements().addAll(CollectionUtils.collect(ownedGroups, new Transformer<Group, String>() {
-
- @Override
- public String transform(final Group group) {
- return group.getKey() + " " + group.getName();
- }
- }, new ArrayList<String>()));
+ sce.getElements().addAll(ownedGroups.stream().
+ map(group -> group.getKey() + " " + group.getName()).collect(Collectors.toList()));
throw sce;
}
@@ -360,13 +348,9 @@ public class UserLogic extends AbstractAnyLogic<UserTO, UserPatch> {
UserPatch patch = new UserPatch();
patch.setKey(key);
- patch.getResources().addAll(CollectionUtils.collect(resources, new Transformer<String, StringPatchItem>() {
-
- @Override
- public StringPatchItem transform(final String resource) {
- return new StringPatchItem.Builder().operation(PatchOperation.DELETE).value(resource).build();
- }
- }));
+ patch.getResources().addAll(resources.stream().map(resource
+ -> new StringPatchItem.Builder().operation(PatchOperation.DELETE).value(resource).build()).
+ collect(Collectors.toList()));
return binder.returnUserTO(binder.getUserTO(provisioningManager.unlink(patch)));
}
@@ -383,13 +367,9 @@ public class UserLogic extends AbstractAnyLogic<UserTO, UserPatch> {
UserPatch patch = new UserPatch();
patch.setKey(key);
- patch.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();
- }
- }));
+ patch.getResources().addAll(resources.stream().map(resource
+ -> new StringPatchItem.Builder().operation(PatchOperation.ADD_REPLACE).value(resource).build()).
+ collect(Collectors.toList()));
return binder.returnUserTO(binder.getUserTO(provisioningManager.link(patch)));
}
@@ -408,13 +388,9 @@ public class UserLogic extends AbstractAnyLogic<UserTO, UserPatch> {
UserPatch patch = new UserPatch();
patch.setKey(key);
- patch.getResources().addAll(CollectionUtils.collect(resources, new Transformer<String, StringPatchItem>() {
-
- @Override
- public StringPatchItem transform(final String resource) {
- return new StringPatchItem.Builder().operation(PatchOperation.DELETE).value(resource).build();
- }
- }));
+ patch.getResources().addAll(resources.stream().map(resource
+ -> new StringPatchItem.Builder().operation(PatchOperation.DELETE).value(resource).build()).
+ collect(Collectors.toList()));
return update(patch, nullPriorityAsync);
}
@@ -437,13 +413,9 @@ public class UserLogic extends AbstractAnyLogic<UserTO, UserPatch> {
UserPatch patch = new UserPatch();
patch.setKey(key);
- patch.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();
- }
- }));
+ patch.getResources().addAll(resources.stream().map(resource
+ -> new StringPatchItem.Builder().operation(PatchOperation.ADD_REPLACE).value(resource).build()).
+ collect(Collectors.toList()));
if (changepwd) {
patch.setPassword(new PasswordPatch.Builder().
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/migration/src/main/java/org/apache/syncope/core/migration/MigrationPullActions.java
----------------------------------------------------------------------
diff --git a/core/migration/src/main/java/org/apache/syncope/core/migration/MigrationPullActions.java b/core/migration/src/main/java/org/apache/syncope/core/migration/MigrationPullActions.java
index caf633a..e626215 100644
--- a/core/migration/src/main/java/org/apache/syncope/core/migration/MigrationPullActions.java
+++ b/core/migration/src/main/java/org/apache/syncope/core/migration/MigrationPullActions.java
@@ -22,8 +22,7 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.TransformerUtils;
+import java.util.stream.Collectors;
import org.apache.syncope.common.lib.to.AnyTO;
import org.apache.syncope.common.lib.to.EntityTO;
import org.apache.syncope.common.lib.to.GroupTO;
@@ -73,7 +72,7 @@ public class MigrationPullActions extends SchedulingPullActions {
&& resourcesAttr.getValue() != null && !resourcesAttr.getValue().isEmpty()) {
((AnyTO) entity).getResources().addAll(
- CollectionUtils.collect(resourcesAttr.getValue(), TransformerUtils.stringValueTransformer()));
+ resourcesAttr.getValue().stream().map(Object::toString).collect(Collectors.toList()));
}
return delta;
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/attrvalue/validation/InvalidEntityException.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/attrvalue/validation/InvalidEntityException.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/attrvalue/validation/InvalidEntityException.java
index 89ff590..f9db494 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/attrvalue/validation/InvalidEntityException.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/attrvalue/validation/InvalidEntityException.java
@@ -25,8 +25,6 @@ import java.util.Map.Entry;
import java.util.Set;
import javax.validation.ConstraintViolation;
import javax.validation.ValidationException;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.common.lib.types.EntityViolationType;
/**
@@ -73,7 +71,7 @@ public class InvalidEntityException extends ValidationException {
this.entityClassSimpleName = entityClassSimpleName;
- for (ConstraintViolation<Object> violation : violations) {
+ violations.forEach((violation) -> {
int firstComma = violation.getMessageTemplate().indexOf(';');
final String key = violation.getMessageTemplate().substring(
@@ -96,17 +94,11 @@ public class InvalidEntityException extends ValidationException {
}
this.violations.get(violation.getLeafBean().getClass()).add(entityViolationType);
- }
+ });
}
public final boolean hasViolation(final EntityViolationType type) {
- return IterableUtils.matchesAny(violations.keySet(), new Predicate<Class<?>>() {
-
- @Override
- public boolean evaluate(final Class<?> entity) {
- return violations.get(entity).contains(type);
- }
- });
+ return violations.keySet().stream().anyMatch(entity -> violations.get(entity).contains(type));
}
public String getEntityClassSimpleName() {
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AllowedSchemas.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AllowedSchemas.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AllowedSchemas.java
index 6c04ac4..54f5e51 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AllowedSchemas.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AllowedSchemas.java
@@ -18,14 +18,12 @@
*/
package org.apache.syncope.core.persistence.api.dao;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
-import org.apache.commons.collections4.PredicateUtils;
-import org.apache.commons.collections4.SetUtils;
+import java.util.function.Predicate;
import org.apache.syncope.core.persistence.api.entity.Schema;
import org.apache.syncope.core.persistence.api.entity.group.Group;
@@ -40,7 +38,7 @@ public class AllowedSchemas<S extends Schema> {
}
public Set<S> getForMembership(final Group group) {
- return SetUtils.emptyIfNull(forMemberships.get(group));
+ return forMemberships.get(group) == null ? Collections.<S>emptySet() : forMemberships.get(group);
}
public Map<Group, Set<S>> getForMemberships() {
@@ -52,35 +50,27 @@ public class AllowedSchemas<S extends Schema> {
}
public boolean forSelfContains(final String schema) {
- return IterableUtils.matchesAny(forSelf, new KeyMatches(schema));
+ return forSelf.stream().anyMatch(new KeyMatches(schema));
}
public boolean forMembershipsContains(final Group group, final S schema) {
- return IterableUtils.matchesAny(forMemberships.get(group), PredicateUtils.equalPredicate(schema));
+ return getForMembership(group).stream().anyMatch(s -> s.equals(schema));
}
public boolean forMembershipsContains(final S schema) {
- for (Map.Entry<Group, Set<S>> entry : forMemberships.entrySet()) {
- if (entry.getValue().contains(schema)) {
- return true;
- }
- }
- return false;
+ return forMemberships.entrySet().stream().
+ anyMatch(entry -> entry.getValue().contains(schema));
}
public boolean forMembershipsContains(final Group group, final String schema) {
- return IterableUtils.matchesAny(forMemberships.get(group), new KeyMatches(schema));
+ return getForMembership(group).stream().anyMatch(new KeyMatches(schema));
}
public boolean forMembershipsContains(final String schema) {
KeyMatches keyMatches = new KeyMatches(schema);
- for (Map.Entry<Group, Set<S>> entry : forMemberships.entrySet()) {
- if (IterableUtils.matchesAny(entry.getValue(), keyMatches)) {
- return true;
- }
- }
- return false;
+ return forMemberships.entrySet().stream().
+ anyMatch(entry -> entry.getValue().stream().anyMatch(keyMatches));
}
public boolean contains(final S schema) {
@@ -106,7 +96,7 @@ public class AllowedSchemas<S extends Schema> {
}
@Override
- public boolean evaluate(final S object) {
+ public boolean test(final S object) {
return object.getKey().equals(schema);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/ConfDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/ConfDAO.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/ConfDAO.java
index b6fe304..b150aaa 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/ConfDAO.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/ConfDAO.java
@@ -18,12 +18,13 @@
*/
package org.apache.syncope.core.persistence.api.dao;
+import java.util.Optional;
import org.apache.syncope.core.persistence.api.entity.conf.CPlainAttr;
import org.apache.syncope.core.persistence.api.entity.conf.Conf;
public interface ConfDAO extends DAO<Conf> {
- CPlainAttr find(String key);
+ Optional<? extends CPlainAttr> find(String key);
<T> T find(String key, T defaultValue);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/GroupDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/GroupDAO.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/GroupDAO.java
index 580fe32..4bc1488 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/GroupDAO.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/GroupDAO.java
@@ -18,6 +18,7 @@
*/
package org.apache.syncope.core.persistence.api.dao;
+import java.util.Collection;
import java.util.List;
import java.util.Map;
import org.apache.syncope.core.persistence.api.entity.AnyTypeClass;
@@ -46,6 +47,8 @@ public interface GroupDAO extends AnyDAO<Group> {
List<String> findADynMembers(Group group);
+ Collection<String> findAllResourceKeys(final String key);
+
void clearADynMembers(Group group);
void refreshDynMemberships(AnyObject anyObject);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/Any.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/Any.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/Any.java
index 9896e73..0ec609e 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/Any.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/Any.java
@@ -20,6 +20,7 @@ package org.apache.syncope.core.persistence.api.entity;
import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
import java.util.List;
+import java.util.Optional;
public interface Any<P extends PlainAttr<?>> extends AnnotatedEntity {
@@ -43,7 +44,7 @@ public interface Any<P extends PlainAttr<?>> extends AnnotatedEntity {
boolean remove(P attr);
- P getPlainAttr(String plainSchemaName);
+ Optional<? extends P> getPlainAttr(String plainSchema);
List<? extends P> getPlainAttrs();
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/GroupableRelatable.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/GroupableRelatable.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/GroupableRelatable.java
index 147f469..dd13b4a 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/GroupableRelatable.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/GroupableRelatable.java
@@ -20,6 +20,7 @@ package org.apache.syncope.core.persistence.api.entity;
import java.util.Collection;
import java.util.List;
+import java.util.Optional;
public interface GroupableRelatable<
L extends Any<P>,
@@ -29,31 +30,30 @@ public interface GroupableRelatable<
REL extends Relationship<L, R>> extends Any<P> {
@Override
- boolean add(final P attr);
+ boolean add(P attr);
@Override
- boolean remove(final P attr);
+ boolean remove(P attr);
/**
* Returns the plain attribute for this instance and the given schema name - if found, {@code NULL} otherwise.
* <b>IMPORTANT:</b> This method won't return any attribute related to memberships.
*
- * @param plainSchemaName plain schema name
- * @return plain attribute for this instance and the given schema name - if found, {@code NULL} otherwise
+ * @param plainSchema plain schema name
+ * @return plain attribute for this instance and the given schema name
*/
@Override
- P getPlainAttr(String plainSchemaName);
+ Optional<? extends P> getPlainAttr(String plainSchema);
/**
* Returns the plain attribute for this instance, the given schema name and the given membership -
* if found, {@code NULL} otherwise.
*
- * @param plainSchemaName plain schema name
+ * @param plainSchema plain schema name
* @param membership membership
- * @return plain attribute for this instance, the given schema name and the given membership -
- * if found, {@code NULL} otherwise
+ * @return plain attribute for this instance, the given schema name and the given membership
*/
- P getPlainAttr(String plainSchemaName, Membership<?> membership);
+ Optional<? extends P> getPlainAttr(String plainSchema, Membership<?> membership);
/**
* Returns the plain attributes for this instance.
@@ -68,10 +68,10 @@ public interface GroupableRelatable<
* Returns the list of plain attributes for this instance and the given schema name (including membeship attributes,
* as opposite to {@link Any#getPlainAttr(java.lang.String)}).
*
- * @param plainSchemaName plain schema name
+ * @param plainSchema plain schema name
* @return list of plain attributes for this instance and the given schema name (including membeship attributes)
*/
- Collection<? extends P> getPlainAttrs(String plainSchemaName);
+ Collection<? extends P> getPlainAttrs(String plainSchema);
/**
* Returns the list of plain attributes for this instance and the given membership.
@@ -83,13 +83,13 @@ public interface GroupableRelatable<
boolean add(M membership);
- M getMembership(String groupKey);
+ Optional<? extends M> getMembership(String groupKey);
List<? extends M> getMemberships();
boolean add(REL relationship);
- REL getRelationship(RelationshipType relationshipType, String otherEndKey);
+ Optional<? extends REL> getRelationship(RelationshipType relationshipType, String otherEndKey);
Collection<? extends REL> getRelationships(String otherEndKey);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/Notification.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/Notification.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/Notification.java
index 9046ccf..62d8221 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/Notification.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/Notification.java
@@ -19,6 +19,7 @@
package org.apache.syncope.core.persistence.api.entity;
import java.util.List;
+import java.util.Optional;
import org.apache.syncope.common.lib.types.TraceLevel;
public interface Notification extends Entity {
@@ -45,7 +46,7 @@ public interface Notification extends Entity {
boolean add(AnyAbout about);
- AnyAbout getAbout(AnyType anyType);
+ Optional<? extends AnyAbout> getAbout(AnyType anyType);
List<? extends AnyAbout> getAbouts();
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/Realm.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/Realm.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/Realm.java
index 9796d22..e345921 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/Realm.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/Realm.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.core.persistence.api.entity.policy.AccountPolicy;
import org.apache.syncope.core.persistence.api.entity.policy.PasswordPolicy;
@@ -48,7 +49,7 @@ public interface Realm extends Entity {
boolean add(AnyTemplateRealm template);
- AnyTemplateRealm getTemplate(AnyType anyType);
+ Optional<? extends AnyTemplateRealm> getTemplate(AnyType anyType);
List<? extends AnyTemplateRealm> getTemplates();
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/group/Group.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/group/Group.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/group/Group.java
index b696eee..59d7e5e 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/group/Group.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/group/Group.java
@@ -19,6 +19,7 @@
package org.apache.syncope.core.persistence.api.entity.group;
import java.util.List;
+import java.util.Optional;
import org.apache.syncope.core.persistence.api.entity.Any;
import org.apache.syncope.core.persistence.api.entity.AnyType;
import org.apache.syncope.core.persistence.api.entity.anyobject.ADynGroupMembership;
@@ -43,7 +44,7 @@ public interface Group extends Any<GPlainAttr> {
boolean add(GPlainAttr attr);
@Override
- GPlainAttr getPlainAttr(String plainSchemaName);
+ Optional<? extends GPlainAttr> getPlainAttr(String plainSchema);
@Override
List<? extends GPlainAttr> getPlainAttrs();
@@ -54,13 +55,13 @@ public interface Group extends Any<GPlainAttr> {
boolean add(ADynGroupMembership dynGroupMembership);
- ADynGroupMembership getADynMembership(AnyType anyType);
+ Optional<? extends ADynGroupMembership> getADynMembership(AnyType anyType);
List<? extends ADynGroupMembership> getADynMemberships();
boolean add(TypeExtension typeExtension);
- TypeExtension getTypeExtension(AnyType anyType);
+ Optional<? extends TypeExtension> getTypeExtension(AnyType anyType);
List<? extends TypeExtension> getTypeExtensions();
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/policy/AccountPolicy.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/policy/AccountPolicy.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/policy/AccountPolicy.java
index 6aed282..bf810b3 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/policy/AccountPolicy.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/policy/AccountPolicy.java
@@ -42,7 +42,7 @@ public interface AccountPolicy extends Policy {
boolean add(ExternalResource resource);
- Set<String> getResourceNames();
+ Set<String> getResourceKeys();
Set<? extends ExternalResource> getResources();
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/resource/ExternalResource.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/resource/ExternalResource.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/resource/ExternalResource.java
index e0e1335..4b8ee40 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/resource/ExternalResource.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/resource/ExternalResource.java
@@ -19,6 +19,7 @@
package org.apache.syncope.core.persistence.api.entity.resource;
import java.util.List;
+import java.util.Optional;
import java.util.Set;
import org.apache.syncope.common.lib.types.ConnConfProperty;
import org.apache.syncope.common.lib.types.ConnectorCapability;
@@ -91,9 +92,9 @@ public interface ExternalResource extends ProvidedKeyEntity {
boolean add(Provision provision);
- Provision getProvision(AnyType anyType);
+ Optional<? extends Provision> getProvision(AnyType anyType);
- Provision getProvision(ObjectClass objectClass);
+ Optional<? extends Provision> getProvision(ObjectClass objectClass);
List<? extends Provision> getProvisions();
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/resource/Mapping.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/resource/Mapping.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/resource/Mapping.java
index 92940a0..ce7abaa 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/resource/Mapping.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/resource/Mapping.java
@@ -19,6 +19,7 @@
package org.apache.syncope.core.persistence.api.entity.resource;
import java.util.List;
+import java.util.Optional;
import org.apache.syncope.core.persistence.api.entity.Entity;
public interface Mapping extends Entity {
@@ -33,7 +34,7 @@ public interface Mapping extends Entity {
boolean add(MappingItem item);
- MappingItem getConnObjectKeyItem();
+ Optional<? extends MappingItem> getConnObjectKeyItem();
void setConnObjectKeyItem(MappingItem item);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/resource/OrgUnit.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/resource/OrgUnit.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/resource/OrgUnit.java
index cdb0504..89bf153 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/resource/OrgUnit.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/resource/OrgUnit.java
@@ -19,6 +19,7 @@
package org.apache.syncope.core.persistence.api.entity.resource;
import java.util.List;
+import java.util.Optional;
import org.apache.syncope.core.persistence.api.entity.Entity;
import org.identityconnectors.framework.common.objects.ObjectClass;
import org.identityconnectors.framework.common.objects.SyncToken;
@@ -45,7 +46,7 @@ public interface OrgUnit extends Entity {
boolean add(OrgUnitItem item);
- OrgUnitItem getConnObjectKeyItem();
+ Optional<? extends OrgUnitItem> getConnObjectKeyItem();
void setConnObjectKeyItem(OrgUnitItem item);
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/task/PullTask.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/task/PullTask.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/task/PullTask.java
index 52c5b93..0ce891b 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/task/PullTask.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/task/PullTask.java
@@ -19,6 +19,7 @@
package org.apache.syncope.core.persistence.api.entity.task;
import java.util.List;
+import java.util.Optional;
import org.apache.syncope.common.lib.types.PullMode;
import org.apache.syncope.core.persistence.api.entity.AnyType;
import org.apache.syncope.core.persistence.api.entity.Realm;
@@ -39,7 +40,7 @@ public interface PullTask extends ProvisioningTask {
boolean add(AnyTemplatePullTask template);
- AnyTemplatePullTask getTemplate(AnyType anyType);
+ Optional<? extends AnyTemplatePullTask> getTemplate(AnyType anyType);
List<? extends AnyTemplatePullTask> getTemplates();
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/task/PushTask.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/task/PushTask.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/task/PushTask.java
index fe86726..b5fa504 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/task/PushTask.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/task/PushTask.java
@@ -19,6 +19,7 @@
package org.apache.syncope.core.persistence.api.entity.task;
import java.util.List;
+import java.util.Optional;
import org.apache.syncope.core.persistence.api.entity.AnyType;
import org.apache.syncope.core.persistence.api.entity.Realm;
@@ -30,7 +31,7 @@ public interface PushTask extends ProvisioningTask {
boolean add(PushTaskAnyFilter filter);
- PushTaskAnyFilter getFilter(AnyType anyType);
+ Optional<? extends PushTaskAnyFilter> getFilter(AnyType anyType);
List<? extends PushTaskAnyFilter> getFilters();
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/search/SearchCondVisitor.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/search/SearchCondVisitor.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/search/SearchCondVisitor.java
index ce607bf..41b677e 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/search/SearchCondVisitor.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/search/SearchCondVisitor.java
@@ -20,6 +20,7 @@ package org.apache.syncope.core.persistence.api.search;
import java.util.ArrayList;
import java.util.List;
+import java.util.Optional;
import org.apache.cxf.jaxrs.ext.search.ConditionType;
import org.apache.cxf.jaxrs.ext.search.SearchBean;
import org.apache.cxf.jaxrs.ext.search.SearchCondition;
@@ -69,11 +70,11 @@ public class SearchCondVisitor extends AbstractSearchConditionVisitor<SearchBean
private SearchCond visitPrimitive(final SearchCondition<SearchBean> sc) {
String name = getRealPropertyName(sc.getStatement().getProperty());
- SpecialAttr specialAttrName = SpecialAttr.fromString(name);
+ Optional<SpecialAttr> specialAttrName = SpecialAttr.fromString(name);
String value = SearchUtils.toSqlWildcardString(sc.getStatement().getValue().toString(), false).
replaceAll("\\\\_", "_");
- SpecialAttr specialAttrValue = SpecialAttr.fromString(value);
+ Optional<SpecialAttr> specialAttrValue = SpecialAttr.fromString(value);
AttributeCond attributeCond = createAttributeCond(name);
attributeCond.setExpression(value);
@@ -95,8 +96,8 @@ public class SearchCondVisitor extends AbstractSearchConditionVisitor<SearchBean
switch (ct) {
case EQUALS:
case NOT_EQUALS:
- if (specialAttrName == null) {
- if (specialAttrValue != null && specialAttrValue == SpecialAttr.NULL) {
+ if (!specialAttrName.isPresent()) {
+ if (specialAttrValue.isPresent() && specialAttrValue.get() == SpecialAttr.NULL) {
attributeCond.setType(AttributeCond.Type.ISNULL);
attributeCond.setExpression(null);
} else if (value.indexOf('%') == -1) {
@@ -111,7 +112,7 @@ public class SearchCondVisitor extends AbstractSearchConditionVisitor<SearchBean
leaf = SearchCond.getLeafCond(attributeCond);
} else {
- switch (specialAttrName) {
+ switch (specialAttrName.get()) {
case TYPE:
AnyTypeCond typeCond = new AnyTypeCond();
typeCond.setAnyTypeKey(value);
@@ -213,11 +214,11 @@ public class SearchCondVisitor extends AbstractSearchConditionVisitor<SearchBean
private SearchCond visitCompount(final SearchCondition<SearchBean> sc) {
List<SearchCond> searchConds = new ArrayList<>();
- for (SearchCondition<SearchBean> searchCondition : sc.getSearchConditions()) {
+ sc.getSearchConditions().forEach(searchCondition -> {
searchConds.add(searchCondition.getStatement() == null
? visitCompount(searchCondition)
: visitPrimitive(searchCondition));
- }
+ });
SearchCond compound;
switch (sc.getConditionType()) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/ContentLoaderHandler.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/ContentLoaderHandler.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/ContentLoaderHandler.java
index c287ca1..0786351 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/ContentLoaderHandler.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/ContentLoaderHandler.java
@@ -19,7 +19,6 @@
package org.apache.syncope.core.persistence.jpa.content;
import java.sql.ResultSet;
-import java.sql.SQLException;
import java.sql.Types;
import java.text.ParseException;
import java.util.HashMap;
@@ -32,7 +31,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.jdbc.core.ResultSetExtractor;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
@@ -59,20 +57,16 @@ public class ContentLoaderHandler extends DefaultHandler {
private Object[] getParameters(final String tableName, final Attributes attrs) {
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
- Map<String, Integer> colTypes = jdbcTemplate.query("SELECT * FROM " + tableName + " WHERE 0=1",
- new ResultSetExtractor<Map<String, Integer>>() {
-
- @Override
- public Map<String, Integer> extractData(final ResultSet rs) throws SQLException {
- Map<String, Integer> colTypes = new HashMap<>();
- for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
- colTypes.put(
- rs.getMetaData().getColumnName(i).toUpperCase(),
- rs.getMetaData().getColumnType(i));
- }
- return colTypes;
- }
- });
+ Map<String, Integer> colTypes = jdbcTemplate.query(
+ "SELECT * FROM " + tableName + " WHERE 0=1", (final ResultSet rs) -> {
+ Map<String, Integer> colTypes1 = new HashMap<>();
+ for (int i = 1; i <= rs.getMetaData().getColumnCount();
+ i++) {
+ colTypes1.
+ put(rs.getMetaData().getColumnName(i).toUpperCase(), rs.getMetaData().getColumnType(i));
+ }
+ return colTypes1;
+ });
Object[] parameters = new Object[attrs.getLength()];
for (int i = 0; i < attrs.getLength(); i++) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentExporter.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentExporter.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentExporter.java
index f1f3e44..c2adeea 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentExporter.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentExporter.java
@@ -48,8 +48,6 @@ import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.sax.SAXTransformerFactory;
import javax.xml.transform.sax.TransformerHandler;
import javax.xml.transform.stream.StreamResult;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.core.provisioning.api.utils.FormatUtils;
@@ -97,13 +95,8 @@ public class XMLContentExporter extends AbstractContentDealer implements Content
Collections.singletonMap("SYNCOPEGROUP", Collections.singleton("USEROWNER_ID"));
private boolean isTableAllowed(final String tableName) {
- return IterableUtils.matchesAll(TABLE_PREFIXES_TO_BE_EXCLUDED, new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String prefix) {
- return !tableName.toUpperCase().startsWith(prefix.toUpperCase());
- }
- });
+ return TABLE_PREFIXES_TO_BE_EXCLUDED.stream().
+ allMatch(prefix -> !tableName.toUpperCase().startsWith(prefix.toUpperCase()));
}
private List<String> sortByForeignKeys(final String dbSchema, final Connection conn, final Set<String> tableNames)
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractAnyDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractAnyDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractAnyDAO.java
index 894ec21..d883901 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractAnyDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractAnyDAO.java
@@ -22,7 +22,6 @@ import java.io.StringReader;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
-import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
@@ -55,12 +54,9 @@ import org.apache.syncope.core.persistence.api.entity.PlainAttrValue;
import org.apache.syncope.core.persistence.api.entity.PlainSchema;
import org.apache.syncope.core.persistence.api.entity.Schema;
import org.apache.syncope.core.persistence.api.entity.VirSchema;
-import org.apache.syncope.core.persistence.api.entity.anyobject.AMembership;
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.group.TypeExtension;
import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
-import org.apache.syncope.core.persistence.api.entity.user.UMembership;
import org.apache.syncope.core.persistence.api.entity.user.User;
import org.apache.syncope.core.persistence.jpa.entity.AbstractPlainAttrValue;
import org.apache.syncope.core.persistence.jpa.entity.user.JPAUser;
@@ -236,12 +232,12 @@ public abstract class AbstractAnyDAO<A extends Any<?>> extends AbstractDAO<A> im
query.setParameter("doubleValue", attrValue.getDoubleValue());
List<A> result = new ArrayList<>();
- for (PlainAttrValue value : (List<PlainAttrValue>) query.getResultList()) {
+ ((List<PlainAttrValue>) query.getResultList()).stream().forEach(value -> {
A any = (A) value.getAttr().getOwner();
if (!result.contains(any)) {
result.add(any);
}
- }
+ });
return result;
}
@@ -318,23 +314,19 @@ public abstract class AbstractAnyDAO<A extends Any<?>> extends AbstractDAO<A> im
}
// Sort literals in order to process later literals included into others
- Collections.sort(literals, new Comparator<String>() {
-
- @Override
- public int compare(final String t, final String t1) {
- if (t == null && t1 == null) {
- return 0;
- } else if (t != null && t1 == null) {
- return -1;
- } else if (t == null && t1 != null) {
- return 1;
- } else if (t.length() == t1.length()) {
- return 0;
- } else if (t.length() > t1.length()) {
- return -1;
- } else {
- return 1;
- }
+ Collections.sort(literals, (final String t, final String t1) -> {
+ if (t == null && t1 == null) {
+ return 0;
+ } else if (t != null && t1 == null) {
+ return -1;
+ } else if (t == null && t1 != null) {
+ return 1;
+ } else if (t.length() == t1.length()) {
+ return 0;
+ } else if (t.length() > t1.length()) {
+ return -1;
+ } else {
+ return 1;
}
});
@@ -483,7 +475,7 @@ public abstract class AbstractAnyDAO<A extends Any<?>> extends AbstractDAO<A> im
typeOwnClasses.addAll(any.getType().getClasses());
typeOwnClasses.addAll(any.getAuxClasses());
- for (AnyTypeClass typeClass : typeOwnClasses) {
+ typeOwnClasses.forEach(typeClass -> {
if (reference.equals(PlainSchema.class)) {
result.getForSelf().addAll((Collection<? extends S>) typeClass.getPlainSchemas());
} else if (reference.equals(DerSchema.class)) {
@@ -491,29 +483,31 @@ public abstract class AbstractAnyDAO<A extends Any<?>> extends AbstractDAO<A> im
} else if (reference.equals(VirSchema.class)) {
result.getForSelf().addAll((Collection<? extends S>) typeClass.getVirSchemas());
}
- }
+ });
// schemas given by type extensions
Map<Group, List<? extends AnyTypeClass>> typeExtensionClasses = new HashMap<>();
if (any instanceof User) {
- for (UMembership memb : ((User) any).getMemberships()) {
- for (TypeExtension typeExtension : memb.getRightEnd().getTypeExtensions()) {
+ ((User) any).getMemberships().forEach(memb -> {
+ memb.getRightEnd().getTypeExtensions().forEach(typeExtension -> {
typeExtensionClasses.put(memb.getRightEnd(), typeExtension.getAuxClasses());
- }
- }
+ });
+ });
} else if (any instanceof AnyObject) {
- for (AMembership memb : ((AnyObject) any).getMemberships()) {
- for (TypeExtension typeExtension : memb.getRightEnd().getTypeExtensions()) {
- if (any.getType().equals(typeExtension.getAnyType())) {
- typeExtensionClasses.put(memb.getRightEnd(), typeExtension.getAuxClasses());
- }
- }
- }
+ ((AnyObject) any).getMemberships().forEach(memb -> {
+ memb.getRightEnd().getTypeExtensions().stream().
+ filter(typeExtension -> any.getType().equals(typeExtension.getAnyType())).
+ forEachOrdered((typeExtension) -> {
+ typeExtensionClasses.put(memb.getRightEnd(), typeExtension.getAuxClasses());
+ });
+ });
}
- for (Map.Entry<Group, List<? extends AnyTypeClass>> entry : typeExtensionClasses.entrySet()) {
- result.getForMemberships().put(entry.getKey(), new HashSet<S>());
- for (AnyTypeClass typeClass : entry.getValue()) {
+ typeExtensionClasses.entrySet().stream().map(entry -> {
+ result.getForMemberships().put(entry.getKey(), new HashSet<>());
+ return entry;
+ }).forEachOrdered((entry) -> {
+ entry.getValue().forEach(typeClass -> {
if (reference.equals(PlainSchema.class)) {
result.getForMemberships().get(entry.getKey()).
addAll((Collection<? extends S>) typeClass.getPlainSchemas());
@@ -524,8 +518,8 @@ public abstract class AbstractAnyDAO<A extends Any<?>> extends AbstractDAO<A> im
result.getForMemberships().get(entry.getKey()).
addAll((Collection<? extends S>) typeClass.getVirSchemas());
}
- }
- }
+ });
+ });
return result;
}
@@ -547,24 +541,25 @@ public abstract class AbstractAnyDAO<A extends Any<?>> extends AbstractDAO<A> im
@Transactional(readOnly = true)
@Override
+ @SuppressWarnings("unchecked")
public List<String> findDynRealms(final String key) {
Query query = entityManager().createNativeQuery(
"SELECT dynRealm_id FROM " + JPADynRealmDAO.DYNMEMB_TABLE + " WHERE any_id=?");
query.setParameter(1, key);
List<String> result = new ArrayList<>();
- for (Object resultKey : query.getResultList()) {
- String actualKey = resultKey instanceof Object[]
- ? (String) ((Object[]) resultKey)[0]
- : ((String) resultKey);
-
- DynRealm dynRealm = dynRealmDAO().find(actualKey);
- if (dynRealm == null) {
- LOG.error("Could not find dynRealm with id {}, even though returned by the native query", actualKey);
- } else if (!result.contains(actualKey)) {
- result.add(actualKey);
- }
- }
+ query.getResultList().stream().map(resultKey -> resultKey instanceof Object[]
+ ? (String) ((Object[]) resultKey)[0]
+ : ((String) resultKey)).
+ forEachOrdered((actualKey) -> {
+ DynRealm dynRealm = dynRealmDAO().find(actualKey.toString());
+ if (dynRealm == null) {
+ LOG.error("Could not find dynRealm with id {}, even though returned by the native query",
+ actualKey);
+ } else if (!result.contains(actualKey.toString())) {
+ result.add(actualKey.toString());
+ }
+ });
return result;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractAnySearchDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractAnySearchDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractAnySearchDAO.java
index c9daf03..f20a765 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractAnySearchDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractAnySearchDAO.java
@@ -25,12 +25,11 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;
+import java.util.stream.Collectors;
import javax.persistence.Entity;
import javax.validation.ValidationException;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Transformer;
import org.apache.commons.lang3.ClassUtils;
import org.apache.commons.lang3.SerializationUtils;
import org.apache.commons.lang3.tuple.Pair;
@@ -100,15 +99,11 @@ public abstract class AbstractAnySearchDAO extends AbstractDAO<Any<?>> implement
}
protected SearchCond buildEffectiveCond(final SearchCond cond, final Set<String> dynRealmKeys) {
- List<SearchCond> effectiveConds = CollectionUtils.collect(dynRealmKeys, new Transformer<String, SearchCond>() {
-
- @Override
- public SearchCond transform(final String input) {
- DynRealmCond dynRealmCond = new DynRealmCond();
- dynRealmCond.setDynRealm(input);
- return SearchCond.getLeafCond(dynRealmCond);
- }
- }, new ArrayList<SearchCond>());
+ List<SearchCond> effectiveConds = dynRealmKeys.stream().map(dynRealmKey -> {
+ DynRealmCond dynRealmCond = new DynRealmCond();
+ dynRealmCond.setDynRealm(dynRealmKey);
+ return SearchCond.getLeafCond(dynRealmCond);
+ }).collect(Collectors.toList());
effectiveConds.add(cond);
return SearchCond.getAndCond(effectiveConds);
@@ -314,23 +309,22 @@ public abstract class AbstractAnySearchDAO extends AbstractDAO<Any<?>> implement
protected <T extends Any<?>> List<T> buildResult(final List<Object> raw, final AnyTypeKind kind) {
List<T> result = new ArrayList<>();
- for (Object anyKey : raw) {
- String actualKey = anyKey instanceof Object[]
- ? (String) ((Object[]) anyKey)[0]
- : ((String) anyKey);
-
- @SuppressWarnings("unchecked")
- T any = kind == AnyTypeKind.USER
- ? (T) userDAO.find(actualKey)
- : kind == AnyTypeKind.GROUP
- ? (T) groupDAO.find(actualKey)
- : (T) anyObjectDAO.find(actualKey);
- if (any == null) {
- LOG.error("Could not find {} with id {}, even if returned by native query", kind, actualKey);
- } else if (!result.contains(any)) {
- result.add(any);
- }
- }
+ raw.stream().map(anyKey -> anyKey instanceof Object[]
+ ? (String) ((Object[]) anyKey)[0]
+ : ((String) anyKey)).
+ forEachOrdered((actualKey) -> {
+ @SuppressWarnings("unchecked")
+ T any = kind == AnyTypeKind.USER
+ ? (T) userDAO.find(actualKey)
+ : kind == AnyTypeKind.GROUP
+ ? (T) groupDAO.find(actualKey)
+ : (T) anyObjectDAO.find(actualKey);
+ if (any == null) {
+ LOG.error("Could not find {} with id {}, even if returned by native query", kind, actualKey);
+ } else if (!result.contains(any)) {
+ result.add(any);
+ }
+ });
return result;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/DefaultAccountRule.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/DefaultAccountRule.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/DefaultAccountRule.java
index 256ffe6..c54517f 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/DefaultAccountRule.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/DefaultAccountRule.java
@@ -18,7 +18,6 @@
*/
package org.apache.syncope.core.persistence.jpa.dao;
-import java.util.List;
import java.util.regex.Pattern;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.policy.AccountRuleConf;
@@ -26,7 +25,6 @@ import org.apache.syncope.common.lib.policy.DefaultAccountRuleConf;
import org.apache.syncope.core.provisioning.api.utils.policy.AccountPolicyException;
import org.apache.syncope.core.persistence.api.dao.AccountRule;
import org.apache.syncope.core.persistence.api.dao.AccountRuleConfClass;
-import org.apache.syncope.core.persistence.api.entity.PlainAttr;
import org.apache.syncope.core.persistence.api.entity.user.User;
import org.springframework.transaction.annotation.Transactional;
@@ -47,15 +45,12 @@ public class DefaultAccountRule implements AccountRule {
AccountRuleConf.class.getName() + " expected, got " + conf.getClass().getName());
}
- for (String schema : this.conf.getSchemasNotPermitted()) {
- PlainAttr<?> attr = user.getPlainAttr(schema);
- if (attr != null) {
- List<String> values = attr.getValuesAsStrings();
- if (values != null && !values.isEmpty()) {
- this.conf.getWordsNotPermitted().add(values.get(0));
- }
- }
- }
+ this.conf.getSchemasNotPermitted().stream().
+ map(schema -> user.getPlainAttr(schema)).
+ filter(attr -> attr.isPresent()).
+ map(attr -> attr.get().getValuesAsStrings()).
+ filter(values -> (values != null && !values.isEmpty())).
+ forEachOrdered(values -> this.conf.getWordsNotPermitted().add(values.get(0)));
if (user.getUsername() == null) {
throw new AccountPolicyException("Invalid account");
@@ -72,11 +67,11 @@ public class DefaultAccountRule implements AccountRule {
}
// check words not permitted
- for (String word : this.conf.getWordsNotPermitted()) {
- if (StringUtils.containsIgnoreCase(user.getUsername(), word)) {
- throw new AccountPolicyException("Used word(s) not permitted");
- }
- }
+ this.conf.getWordsNotPermitted().stream().
+ filter(word -> StringUtils.containsIgnoreCase(user.getUsername(), word)).
+ forEachOrdered(item -> {
+ throw new AccountPolicyException("Used word(s) not permitted");
+ });
// check case
if (this.conf.isAllUpperCase() && !user.getUsername().equals(user.getUsername().toUpperCase())) {
@@ -93,18 +88,18 @@ public class DefaultAccountRule implements AccountRule {
}
// check prefix
- for (String prefix : this.conf.getPrefixesNotPermitted()) {
- if (user.getUsername().startsWith(prefix)) {
- throw new AccountPolicyException("Prefix not permitted");
- }
- }
+ this.conf.getPrefixesNotPermitted().stream().
+ filter(prefix -> user.getUsername().startsWith(prefix)).
+ forEachOrdered(item -> {
+ throw new AccountPolicyException("Prefix not permitted");
+ });
// check suffix
- for (String suffix : this.conf.getSuffixesNotPermitted()) {
- if (user.getUsername().endsWith(suffix)) {
- throw new AccountPolicyException("Suffix not permitted");
- }
- }
+ this.conf.getSuffixesNotPermitted().stream().
+ filter(suffix -> user.getUsername().endsWith(suffix)).
+ forEachOrdered(item -> {
+ throw new AccountPolicyException("Suffix not permitted");
+ });
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/DefaultPasswordRule.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/DefaultPasswordRule.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/DefaultPasswordRule.java
index 39a02c0..e3eeacd 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/DefaultPasswordRule.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/DefaultPasswordRule.java
@@ -18,7 +18,6 @@
*/
package org.apache.syncope.core.persistence.jpa.dao;
-import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.policy.DefaultPasswordRuleConf;
import org.apache.syncope.common.lib.policy.PasswordRuleConf;
@@ -26,7 +25,6 @@ import org.apache.syncope.core.provisioning.api.utils.policy.PasswordPolicyExcep
import org.apache.syncope.core.provisioning.api.utils.policy.PolicyPattern;
import org.apache.syncope.core.persistence.api.dao.PasswordRule;
import org.apache.syncope.core.persistence.api.dao.PasswordRuleConfClass;
-import org.apache.syncope.core.persistence.api.entity.PlainAttr;
import org.apache.syncope.core.persistence.api.entity.user.User;
import org.springframework.transaction.annotation.Transactional;
@@ -45,15 +43,12 @@ public class DefaultPasswordRule implements PasswordRule {
PasswordRuleConf.class.getName() + " expected, got " + conf.getClass().getName());
}
- for (String schema : this.conf.getSchemasNotPermitted()) {
- PlainAttr<?> attr = user.getPlainAttr(schema);
- if (attr != null) {
- List<String> values = attr.getValuesAsStrings();
- if (values != null && !values.isEmpty()) {
- this.conf.getWordsNotPermitted().add(values.get(0));
- }
- }
- }
+ this.conf.getSchemasNotPermitted().stream().
+ map(schema -> user.getPlainAttr(schema)).
+ filter(attr -> attr.isPresent()).
+ map(attr -> attr.get().getValuesAsStrings()).
+ filter(values -> (values != null && !values.isEmpty())).
+ forEachOrdered(values -> this.conf.getWordsNotPermitted().add(values.get(0)));
String clearPassword = user.getClearPassword();
String password = user.getPassword();
@@ -69,11 +64,11 @@ public class DefaultPasswordRule implements PasswordRule {
}
// check words not permitted
- for (String word : this.conf.getWordsNotPermitted()) {
- if (StringUtils.containsIgnoreCase(clearPassword, word)) {
- throw new PasswordPolicyException("Used word(s) not permitted");
- }
- }
+ this.conf.getWordsNotPermitted().stream().
+ filter(word -> StringUtils.containsIgnoreCase(clearPassword, word)).
+ forEachOrdered(item -> {
+ throw new PasswordPolicyException("Used word(s) not permitted");
+ });
// check digits occurrence
if (this.conf.isDigitRequired() && !checkDigit(clearPassword)) {
@@ -91,18 +86,18 @@ public class DefaultPasswordRule implements PasswordRule {
}
// check prefix
- for (String prefix : this.conf.getPrefixesNotPermitted()) {
- if (clearPassword.startsWith(prefix)) {
- throw new PasswordPolicyException("Prefix not permitted");
- }
- }
+ this.conf.getPrefixesNotPermitted().stream().
+ filter(prefix -> clearPassword.startsWith(prefix)).
+ forEachOrdered(item -> {
+ throw new PasswordPolicyException("Prefix not permitted");
+ });
// check suffix
- for (String suffix : this.conf.getSuffixesNotPermitted()) {
- if (clearPassword.endsWith(suffix)) {
- throw new PasswordPolicyException("Suffix not permitted");
- }
- }
+ this.conf.getSuffixesNotPermitted().stream().
+ filter(suffix -> clearPassword.endsWith(suffix)).
+ forEachOrdered(item -> {
+ throw new PasswordPolicyException("Suffix not permitted");
+ });
// check digit first occurrence
if (this.conf.isMustStartWithDigit() && !checkFirstDigit(clearPassword)) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnyObjectDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnyObjectDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnyObjectDAO.java
index 32c655c..a595389 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnyObjectDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnyObjectDAO.java
@@ -28,26 +28,20 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.stream.Collectors;
import javax.persistence.NoResultException;
import javax.persistence.Query;
import javax.persistence.TypedQuery;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.IterableUtils;
-import org.apache.commons.collections4.Predicate;
-import org.apache.commons.collections4.SetUtils;
-import org.apache.commons.collections4.Transformer;
import org.apache.syncope.common.lib.types.AnyEntitlement;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.core.spring.security.AuthContextUtils;
import org.apache.syncope.core.spring.security.DelegatedAdministrationException;
-import org.apache.syncope.core.provisioning.api.utils.EntityUtils;
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.AnyType;
import org.apache.syncope.core.persistence.api.entity.AnyUtils;
import org.apache.syncope.core.persistence.api.entity.Realm;
-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;
@@ -141,17 +135,16 @@ public class JPAAnyObjectDAO extends AbstractAnyDAO<AnyObject> implements AnyObj
@Override
protected void securityChecks(final AnyObject anyObject) {
- Set<String> authRealms = SetUtils.emptyIfNull(
- AuthContextUtils.getAuthorizations().get(AnyEntitlement.READ.getFor(anyObject.getType().getKey())));
- boolean authorized = IterableUtils.matchesAny(authRealms, new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String realm) {
- return anyObject.getRealm().getFullPath().startsWith(realm);
- }
- });
+ Map<String, Set<String>> authorizations = AuthContextUtils.getAuthorizations();
+ Set<String> authRealms = authorizations.containsKey(AnyEntitlement.READ.getFor(anyObject.getType().getKey()))
+ ? authorizations.get(AnyEntitlement.READ.getFor(anyObject.getType().getKey()))
+ : Collections.emptySet();
+ boolean authorized = authRealms.stream().
+ anyMatch(realm -> anyObject.getRealm().getFullPath().startsWith(realm));
if (!authorized) {
- authorized = !CollectionUtils.intersection(findDynRealms(anyObject.getKey()), authRealms).isEmpty();
+ authorized = findDynRealms(anyObject.getKey()).stream().
+ filter(dynRealm -> authRealms.contains(dynRealm)).
+ count() > 0;
}
if (authRealms.isEmpty() || !authorized) {
throw new DelegatedAdministrationException(
@@ -236,18 +229,21 @@ public class JPAAnyObjectDAO extends AbstractAnyDAO<AnyObject> implements AnyObj
groupDAO().removeDynMemberships(anyObject);
dynRealmDAO().removeDynMemberships(anyObject.getKey());
- for (ARelationship relationship : findARelationships(anyObject)) {
+ findARelationships(anyObject).stream().map(relationship -> {
relationship.getLeftEnd().getRelationships().remove(relationship);
+ return relationship;
+ }).map(relationship -> {
save(relationship.getLeftEnd());
+ return relationship;
+ }).forEachOrdered(relationship -> entityManager().remove(relationship));
- entityManager().remove(relationship);
- }
- for (URelationship relationship : findURelationships(anyObject)) {
+ findURelationships(anyObject).stream().map(relationship -> {
relationship.getLeftEnd().getRelationships().remove(relationship);
+ return relationship;
+ }).map(relationship -> {
userDAO().save(relationship.getLeftEnd());
-
- entityManager().remove(relationship);
- }
+ return relationship;
+ }).forEachOrdered(relationship -> entityManager().remove(relationship));
entityManager().remove(anyObject);
publisher.publishEvent(
@@ -256,45 +252,43 @@ public class JPAAnyObjectDAO extends AbstractAnyDAO<AnyObject> implements AnyObj
@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = true)
@Override
+ @SuppressWarnings("unchecked")
public List<Group> findDynGroups(final String key) {
Query query = entityManager().createNativeQuery(
"SELECT group_id FROM " + JPAGroupDAO.ADYNMEMB_TABLE + " WHERE any_id=?");
query.setParameter(1, key);
List<Group> result = new ArrayList<>();
- for (Object resultKey : query.getResultList()) {
- String actualKey = resultKey instanceof Object[]
- ? (String) ((Object[]) resultKey)[0]
- : ((String) resultKey);
-
- Group group = groupDAO().find(actualKey);
- if (group == null) {
- LOG.error("Could not find group with id {}, even though returned by the native query", actualKey);
- } else if (!result.contains(group)) {
- result.add(group);
- }
- }
+ query.getResultList().stream().map(resultKey -> resultKey instanceof Object[]
+ ? (String) ((Object[]) resultKey)[0]
+ : ((String) resultKey)).
+ forEachOrdered(actualKey -> {
+ Group group = groupDAO().find(actualKey.toString());
+ if (group == null) {
+ LOG.error("Could not find group with id {}, even though returned by the native query",
+ actualKey);
+ } else if (!result.contains(group)) {
+ result.add(group);
+ }
+ });
return result;
}
@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = true)
@Override
public Collection<Group> findAllGroups(final AnyObject anyObject) {
- return CollectionUtils.union(
- CollectionUtils.collect(anyObject.getMemberships(), new Transformer<AMembership, Group>() {
+ Set<Group> result = new HashSet<>();
+ result.addAll(anyObject.getMemberships().stream().
+ map(membership -> membership.getRightEnd()).collect(Collectors.toSet()));
+ result.addAll(findDynGroups(anyObject.getKey()));
- @Override
- public Group transform(final AMembership input) {
- return input.getRightEnd();
- }
- }, new ArrayList<Group>()),
- findDynGroups(anyObject.getKey()));
+ return result;
}
@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = true)
@Override
public Collection<String> findAllGroupKeys(final AnyObject anyObject) {
- return CollectionUtils.collect(findAllGroups(anyObject), EntityUtils.<Group>keyTransformer());
+ return findAllGroups(anyObject).stream().map(group -> group.getKey()).collect(Collectors.toList());
}
@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = true)
@@ -302,9 +296,7 @@ public class JPAAnyObjectDAO extends AbstractAnyDAO<AnyObject> implements AnyObj
public Collection<ExternalResource> findAllResources(final AnyObject anyObject) {
Set<ExternalResource> result = new HashSet<>();
result.addAll(anyObject.getResources());
- for (Group group : findAllGroups(anyObject)) {
- result.addAll(group.getResources());
- }
+ findAllGroups(anyObject).forEach(group -> result.addAll(group.getResources()));
return result;
}
@@ -312,7 +304,7 @@ public class JPAAnyObjectDAO extends AbstractAnyDAO<AnyObject> implements AnyObj
@Transactional(readOnly = true)
@Override
public Collection<String> findAllResourceKeys(final String key) {
- return CollectionUtils.collect(findAllResources(authFind(key)), EntityUtils.<ExternalResource>keyTransformer());
+ return findAllResources(authFind(key)).stream().map(resource -> resource.getKey()).collect(Collectors.toList());
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/74ee038a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java
index 6af5f27..a7aae81 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java
@@ -25,9 +25,9 @@ import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import java.util.stream.Collectors;
import javax.persistence.Query;
import javax.persistence.TemporalType;
-import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.commons.lang3.tuple.Triple;
@@ -36,7 +36,6 @@ import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.common.lib.types.AttrSchemaType;
import org.apache.syncope.common.lib.types.ClientExceptionType;
import org.apache.syncope.core.provisioning.api.utils.RealmUtils;
-import org.apache.syncope.core.provisioning.api.utils.EntityUtils;
import org.apache.syncope.core.persistence.api.dao.search.AttributeCond;
import org.apache.syncope.core.persistence.api.dao.search.MembershipCond;
import org.apache.syncope.core.persistence.api.dao.search.OrderByClause;
@@ -80,8 +79,8 @@ public class JPAAnySearchDAO extends AbstractAnySearchDAO {
noRealm.getElements().add("Invalid realm specified: " + realmPath);
throw noRealm;
} else {
- CollectionUtils.collect(
- realmDAO.findDescendants(realm), EntityUtils.<Realm>keyTransformer(), realmKeys);
+ realmKeys.addAll(realmDAO.findDescendants(realm).stream().
+ map(r -> r.getKey()).collect(Collectors.toSet()));
}
} else {
DynRealm dynRealm = dynRealmDAO.find(realmPath);
@@ -93,7 +92,8 @@ public class JPAAnySearchDAO extends AbstractAnySearchDAO {
}
}
if (!dynRealmKeys.isEmpty()) {
- CollectionUtils.collect(realmDAO.findAll(), EntityUtils.keyTransformer(), realmKeys);
+ realmKeys.addAll(realmDAO.findAll().stream().
+ map(r -> r.getKey()).collect(Collectors.toSet()));
}
StringBuilder adminRealmFilter = new StringBuilder("u.any_id IN (").