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 2015/11/23 13:22:38 UTC
[1/2] syncope git commit: Internal clean-up
Repository: syncope
Updated Branches:
refs/heads/master 175c5b22a -> 07451e4cc
Internal clean-up
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/c3e4c38d
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/c3e4c38d
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/c3e4c38d
Branch: refs/heads/master
Commit: c3e4c38dc0eede729ca7504e32e0291833f394ff
Parents: 175c5b2
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Mon Nov 23 12:18:26 2015 +0100
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Mon Nov 23 12:18:26 2015 +0100
----------------------------------------------------------------------
.../core/logic/report/GroupReportlet.java | 42 +++++------
.../core/logic/report/UserReportlet.java | 43 +++++------
.../core/persistence/api/dao/AnyDAO.java | 17 ++++-
.../core/persistence/api/dao/AnySearchDAO.java | 8 +-
.../persistence/jpa/dao/AbstractAnyDAO.java | 7 +-
.../persistence/jpa/dao/JPAAnySearchDAO.java | 12 ++-
.../core/persistence/jpa/dao/JPAGroupDAO.java | 15 ++--
.../core/persistence/jpa/dao/JPARoleDAO.java | 3 +-
.../persistence/jpa/inner/AnyObjectTest.java | 2 +-
.../persistence/jpa/inner/AnySearchTest.java | 57 ++++++--------
.../core/persistence/jpa/inner/GroupTest.java | 2 +-
.../persistence/jpa/inner/MultitenancyTest.java | 2 +-
.../core/persistence/jpa/inner/UserTest.java | 13 ++--
.../persistence/jpa/outer/AnySearchTest.java | 8 +-
.../notification/NotificationManagerImpl.java | 2 +-
.../provisioning/java/sync/PushJobDelegate.java | 78 ++++++++++++--------
.../core/provisioning/java/sync/SyncUtils.java | 19 ++---
.../activiti/SyncopeGroupQueryImpl.java | 25 +++----
.../workflow/activiti/SyncopeUserQueryImpl.java | 37 ++++------
19 files changed, 186 insertions(+), 206 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/c3e4c38d/core/logic/src/main/java/org/apache/syncope/core/logic/report/GroupReportlet.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/report/GroupReportlet.java b/core/logic/src/main/java/org/apache/syncope/core/logic/report/GroupReportlet.java
index ec9a745..7460205 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/report/GroupReportlet.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/report/GroupReportlet.java
@@ -18,7 +18,6 @@
*/
package org.apache.syncope.core.logic.report;
-import org.apache.syncope.core.persistence.api.dao.ReportletConfClass;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
@@ -37,6 +36,7 @@ import org.apache.syncope.core.persistence.api.dao.search.OrderByClause;
import org.apache.syncope.core.persistence.api.entity.group.Group;
import org.apache.syncope.core.misc.search.SearchCondConverter;
import org.apache.syncope.core.persistence.api.dao.AnySearchDAO;
+import org.apache.syncope.core.persistence.api.dao.ReportletConfClass;
import org.apache.syncope.core.persistence.api.entity.user.UMembership;
import org.apache.syncope.core.provisioning.api.data.GroupDataBinder;
import org.springframework.beans.factory.annotation.Autowired;
@@ -60,27 +60,6 @@ public class GroupReportlet extends AbstractReportlet {
private GroupReportletConf conf;
- private List<Group> getPagedGroups(final int page) {
- List<Group> result;
-
- if (StringUtils.isBlank(conf.getMatchingCond())) {
- result = groupDAO.findAll(SyncopeConstants.FULL_ADMIN_REALMS, page, PAGE_SIZE);
- } else {
- result = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS,
- SearchCondConverter.convert(conf.getMatchingCond()),
- page, PAGE_SIZE, Collections.<OrderByClause>emptyList(), AnyTypeKind.GROUP);
- }
-
- return result;
- }
-
- private int count() {
- return StringUtils.isBlank(conf.getMatchingCond())
- ? groupDAO.count(SyncopeConstants.FULL_ADMIN_REALMS)
- : searchDAO.count(SyncopeConstants.FULL_ADMIN_REALMS,
- SearchCondConverter.convert(conf.getMatchingCond()), AnyTypeKind.GROUP);
- }
-
private void doExtractResources(final ContentHandler handler, final AnyTO anyTO)
throws SAXException {
@@ -299,6 +278,13 @@ public class GroupReportlet extends AbstractReportlet {
handler.endElement("", "", "configurations");
}
+ private int count() {
+ return StringUtils.isBlank(conf.getMatchingCond())
+ ? groupDAO.count(SyncopeConstants.FULL_ADMIN_REALMS)
+ : searchDAO.count(SyncopeConstants.FULL_ADMIN_REALMS,
+ SearchCondConverter.convert(conf.getMatchingCond()), AnyTypeKind.GROUP);
+ }
+
@Override
protected void doExtract(final ReportletConf conf, final ContentHandler handler) throws SAXException {
if (conf instanceof GroupReportletConf) {
@@ -308,8 +294,16 @@ public class GroupReportlet extends AbstractReportlet {
}
doExtractConf(handler);
- for (int i = 1; i <= (count() / PAGE_SIZE) + 1; i++) {
- doExtract(handler, getPagedGroups(i));
+
+ if (StringUtils.isBlank(this.conf.getMatchingCond())) {
+ doExtract(handler, groupDAO.findAll());
+ } else {
+ for (int page = 1; page <= (count() / PAGE_SIZE) + 1; page++) {
+ List<Group> groups = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS,
+ SearchCondConverter.convert(this.conf.getMatchingCond()),
+ page, PAGE_SIZE, Collections.<OrderByClause>emptyList(), AnyTypeKind.GROUP);
+ doExtract(handler, groups);
+ }
}
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/c3e4c38d/core/logic/src/main/java/org/apache/syncope/core/logic/report/UserReportlet.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/report/UserReportlet.java b/core/logic/src/main/java/org/apache/syncope/core/logic/report/UserReportlet.java
index 2523e8f..9dbe8b8 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/report/UserReportlet.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/report/UserReportlet.java
@@ -18,7 +18,6 @@
*/
package org.apache.syncope.core.logic.report;
-import org.apache.syncope.core.persistence.api.dao.ReportletConfClass;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
@@ -40,6 +39,7 @@ import org.apache.syncope.core.persistence.api.entity.user.User;
import org.apache.syncope.core.misc.search.SearchCondConverter;
import org.apache.syncope.core.misc.utils.FormatUtils;
import org.apache.syncope.core.persistence.api.dao.AnySearchDAO;
+import org.apache.syncope.core.persistence.api.dao.ReportletConfClass;
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.provisioning.api.data.AnyObjectDataBinder;
@@ -72,27 +72,6 @@ public class UserReportlet extends AbstractReportlet {
private UserReportletConf conf;
- private List<User> getPagedUsers(final int page) {
- List<User> result;
-
- if (StringUtils.isBlank(conf.getMatchingCond())) {
- result = userDAO.findAll(SyncopeConstants.FULL_ADMIN_REALMS, page, PAGE_SIZE);
- } else {
- result = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS,
- SearchCondConverter.convert(conf.getMatchingCond()),
- page, PAGE_SIZE, Collections.<OrderByClause>emptyList(), AnyTypeKind.USER);
- }
-
- return result;
- }
-
- private int count() {
- return StringUtils.isBlank(conf.getMatchingCond())
- ? userDAO.count(SyncopeConstants.FULL_ADMIN_REALMS)
- : searchDAO.count(SyncopeConstants.FULL_ADMIN_REALMS,
- SearchCondConverter.convert(conf.getMatchingCond()), AnyTypeKind.USER);
- }
-
private void doExtractResources(final ContentHandler handler, final AnyTO anyTO)
throws SAXException {
@@ -369,6 +348,13 @@ public class UserReportlet extends AbstractReportlet {
handler.endElement("", "", "configurations");
}
+ private int count() {
+ return StringUtils.isBlank(conf.getMatchingCond())
+ ? userDAO.count(SyncopeConstants.FULL_ADMIN_REALMS)
+ : searchDAO.count(SyncopeConstants.FULL_ADMIN_REALMS,
+ SearchCondConverter.convert(conf.getMatchingCond()), AnyTypeKind.USER);
+ }
+
@Override
protected void doExtract(final ReportletConf conf, final ContentHandler handler) throws SAXException {
if (conf instanceof UserReportletConf) {
@@ -378,8 +364,17 @@ public class UserReportlet extends AbstractReportlet {
}
doExtractConf(handler);
- for (int i = 1; i <= (count() / PAGE_SIZE) + 1; i++) {
- doExtract(handler, getPagedUsers(i));
+
+ if (StringUtils.isBlank(this.conf.getMatchingCond())) {
+ doExtract(handler, userDAO.findAll());
+ } else {
+ for (int page = 1; page <= (count() / PAGE_SIZE) + 1; page++) {
+ List<User> users = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS,
+ SearchCondConverter.convert(this.conf.getMatchingCond()),
+ page, PAGE_SIZE, Collections.<OrderByClause>emptyList(), AnyTypeKind.USER);
+ doExtract(handler, users);
+ }
+
}
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/c3e4c38d/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AnyDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AnyDAO.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AnyDAO.java
index 3d8162b..e957588 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AnyDAO.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AnyDAO.java
@@ -53,8 +53,23 @@ public interface AnyDAO<A extends Any<?>> extends DAO<A, Long> {
List<A> findByResource(ExternalResource resource);
- List<A> findAll(Set<String> adminRealms, int page, int itemsPerPage);
+ /**
+ * Find any objects without any limitation.
+ *
+ * @return all any objects of type {@link A} available.
+ */
+ List<A> findAll();
+ /**
+ * Find any objects visible from the given admin realms, according to given page and items per page, sorted as
+ * required.
+ *
+ * @param adminRealms admin realms
+ * @param page search result page
+ * @param itemsPerPage items per search result page
+ * @param orderBy ordering clauses
+ * @return any objects of type {@link A} matching the provided conditions
+ */
List<A> findAll(Set<String> adminRealms, int page, int itemsPerPage, List<OrderByClause> orderBy);
<S extends Schema> Collection<S> findAllowedSchemas(A any, Class<S> reference);
http://git-wip-us.apache.org/repos/asf/syncope/blob/c3e4c38d/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AnySearchDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AnySearchDAO.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AnySearchDAO.java
index a442890..401d957 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AnySearchDAO.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AnySearchDAO.java
@@ -36,25 +36,21 @@ public interface AnySearchDAO extends DAO<Any<?>, Long> {
int count(Set<String> adminRealms, SearchCond searchCondition, AnyTypeKind kind);
/**
- * @param adminRealms realms for which the caller owns the proper entitlement(s)
* @param searchCondition the search condition
* @param kind any object
* @param <T> any
* @return the list of any objects matching the given search condition
*/
- <T extends Any<?>> List<T> search(
- Set<String> adminRealms, SearchCond searchCondition, AnyTypeKind kind);
+ <T extends Any<?>> List<T> search(SearchCond searchCondition, AnyTypeKind kind);
/**
- * @param adminRealms the set of admin groups owned by the caller
* @param searchCondition the search condition
* @param orderBy list of ordering clauses
* @param kind any object
* @param <T> any
* @return the list of any objects matching the given search condition
*/
- <T extends Any<?>> List<T> search(
- Set<String> adminRealms, SearchCond searchCondition, List<OrderByClause> orderBy, AnyTypeKind kind);
+ <T extends Any<?>> List<T> search(SearchCond searchCondition, List<OrderByClause> orderBy, AnyTypeKind kind);
/**
* @param adminRealms realms for which the caller owns the proper entitlement(s)
http://git-wip-us.apache.org/repos/asf/syncope/blob/c3e4c38d/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 30fcf2f..3db3f61 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
@@ -34,6 +34,7 @@ import org.apache.commons.jexl2.parser.Parser;
import org.apache.commons.jexl2.parser.ParserConstants;
import org.apache.commons.jexl2.parser.Token;
import org.apache.commons.lang3.StringUtils;
+import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.core.persistence.api.dao.AnyDAO;
import org.apache.syncope.core.persistence.api.dao.AnySearchDAO;
import org.apache.syncope.core.persistence.api.dao.DerSchemaDAO;
@@ -396,10 +397,8 @@ public abstract class AbstractAnyDAO<A extends Any<?>> extends AbstractDAO<A, Lo
}
@Override
- public final List<A> findAll(final Set<String> adminRealms,
- final int page, final int itemsPerPage) {
-
- return findAll(adminRealms, page, itemsPerPage, Collections.<OrderByClause>emptyList());
+ public final List<A> findAll() {
+ return findAll(SyncopeConstants.FULL_ADMIN_REALMS, -1, -1, Collections.<OrderByClause>emptyList());
}
private SearchCond getAllMatchingCond() {
http://git-wip-us.apache.org/repos/asf/syncope/blob/c3e4c38d/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 f5c3922..64c850b 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
@@ -37,6 +37,7 @@ import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.Transformer;
import org.apache.commons.lang3.ClassUtils;
import org.apache.commons.lang3.StringUtils;
+import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.common.lib.types.AttrSchemaType;
import org.apache.syncope.core.misc.utils.RealmUtils;
@@ -150,18 +151,15 @@ public class JPAAnySearchDAO extends AbstractDAO<Any<?>, Long> implements AnySea
}
@Override
- public <T extends Any<?>> List<T> search(
- final Set<String> adminRealms, final SearchCond searchCondition, final AnyTypeKind typeKind) {
-
- return search(adminRealms, searchCondition, Collections.<OrderByClause>emptyList(), typeKind);
+ public <T extends Any<?>> List<T> search(final SearchCond searchCondition, final AnyTypeKind typeKind) {
+ return search(searchCondition, Collections.<OrderByClause>emptyList(), typeKind);
}
@Override
public <T extends Any<?>> List<T> search(
- final Set<String> adminRealms, final SearchCond searchCondition, final List<OrderByClause> orderBy,
- final AnyTypeKind typeKind) {
+ final SearchCond searchCondition, final List<OrderByClause> orderBy, final AnyTypeKind typeKind) {
- return search(adminRealms, searchCondition, -1, -1, orderBy, typeKind);
+ return search(SyncopeConstants.FULL_ADMIN_REALMS, searchCondition, -1, -1, orderBy, typeKind);
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/c3e4c38d/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 af77371..7e5667c 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
@@ -27,7 +27,6 @@ import javax.persistence.NoResultException;
import javax.persistence.TypedQuery;
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.common.lib.types.ResourceOperation;
import org.apache.syncope.core.persistence.api.dao.GroupDAO;
@@ -133,10 +132,8 @@ public class JPAGroupDAO extends AbstractAnyDAO<Group> implements GroupDAO {
return Collections.<Group>emptyList();
}
- StringBuilder queryString = new StringBuilder("SELECT e FROM ").append(JPAGroup.class.getSimpleName()).
- append(" e WHERE e.groupOwner=:owner ");
-
- TypedQuery<Group> query = entityManager().createQuery(queryString.toString(), Group.class);
+ TypedQuery<Group> query = entityManager().createQuery(
+ "SELECT e FROM " + JPAGroup.class.getSimpleName() + " e WHERE e.groupOwner=:owner", Group.class);
query.setParameter("owner", owner);
return query.getResultList();
@@ -166,7 +163,7 @@ public class JPAGroupDAO extends AbstractAnyDAO<Group> implements GroupDAO {
public Group save(final Group group) {
// refresh dynaminc memberships
if (group.getADynMembership() != null) {
- List<AnyObject> matching = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS,
+ List<AnyObject> matching = searchDAO.search(
SearchCondConverter.convert(group.getADynMembership().getFIQLCond()), AnyTypeKind.ANY_OBJECT);
group.getADynMembership().getMembers().clear();
@@ -175,7 +172,7 @@ public class JPAGroupDAO extends AbstractAnyDAO<Group> implements GroupDAO {
}
}
if (group.getUDynMembership() != null) {
- List<User> matching = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS,
+ List<User> matching = searchDAO.search(
SearchCondConverter.convert(group.getUDynMembership().getFIQLCond()), AnyTypeKind.USER);
group.getUDynMembership().getMembers().clear();
@@ -261,7 +258,7 @@ public class JPAGroupDAO extends AbstractAnyDAO<Group> implements GroupDAO {
@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = true)
@Override
public void refreshDynMemberships(final AnyObject anyObject) {
- for (Group role : findAll(SyncopeConstants.FULL_ADMIN_REALMS, -1, -1)) {
+ for (Group role : findAll()) {
if (role.getADynMembership() != null && !searchDAO.matches(anyObject,
SearchCondConverter.convert(role.getADynMembership().getFIQLCond()), AnyTypeKind.ANY_OBJECT)) {
@@ -273,7 +270,7 @@ public class JPAGroupDAO extends AbstractAnyDAO<Group> implements GroupDAO {
@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = true)
@Override
public void refreshDynMemberships(final User user) {
- for (Group role : findAll(SyncopeConstants.FULL_ADMIN_REALMS, -1, -1)) {
+ for (Group role : findAll()) {
if (role.getUDynMembership() != null && !searchDAO.matches(user,
SearchCondConverter.convert(role.getUDynMembership().getFIQLCond()), AnyTypeKind.USER)) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/c3e4c38d/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPARoleDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPARoleDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPARoleDAO.java
index 4dc1688..6ecf444 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPARoleDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPARoleDAO.java
@@ -20,7 +20,6 @@ package org.apache.syncope.core.persistence.jpa.dao;
import java.util.List;
import javax.persistence.TypedQuery;
-import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.core.misc.search.SearchCondConverter;
import org.apache.syncope.core.persistence.api.dao.RoleDAO;
@@ -65,7 +64,7 @@ public class JPARoleDAO extends AbstractDAO<Role, String> implements RoleDAO {
public Role save(final Role role) {
// refresh dynaminc memberships
if (role.getDynMembership() != null) {
- List<User> matchingUsers = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS,
+ List<User> matchingUsers = searchDAO.search(
SearchCondConverter.convert(role.getDynMembership().getFIQLCond()), AnyTypeKind.USER);
role.getDynMembership().getMembers().clear();
http://git-wip-us.apache.org/repos/asf/syncope/blob/c3e4c38d/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnyObjectTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnyObjectTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnyObjectTest.java
index a695e85..6ab3e01 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnyObjectTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnyObjectTest.java
@@ -47,7 +47,7 @@ public class AnyObjectTest extends AbstractTest {
@Test
public void findAll() {
- List<AnyObject> list = anyObjectDAO.findAll(SyncopeConstants.FULL_ADMIN_REALMS, 1, 100);
+ List<AnyObject> list = anyObjectDAO.findAll();
assertFalse(list.isEmpty());
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/c3e4c38d/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 5c8dde9..48c09d6 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
@@ -129,7 +129,7 @@ public class AnySearchTest extends AbstractTest {
assertTrue(cond.isValid());
- List<User> users = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS, cond, AnyTypeKind.USER);
+ List<User> users = searchDAO.search(cond, AnyTypeKind.USER);
assertNotNull(users);
assertEquals(1, users.size());
}
@@ -143,7 +143,7 @@ public class AnySearchTest extends AbstractTest {
SearchCond cond = SearchCond.getNotLeafCond(fullnameLeafCond);
assertTrue(cond.isValid());
- List<User> users = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS, cond, AnyTypeKind.USER);
+ List<User> users = searchDAO.search(cond, AnyTypeKind.USER);
assertNotNull(users);
assertEquals(4, users.size());
@@ -164,7 +164,7 @@ public class AnySearchTest extends AbstractTest {
SearchCond cond = SearchCond.getLeafCond(coolLeafCond);
assertTrue(cond.isValid());
- List<User> users = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS, cond, AnyTypeKind.USER);
+ List<User> users = searchDAO.search(cond, AnyTypeKind.USER);
assertNotNull(users);
assertEquals(1, users.size());
@@ -211,16 +211,14 @@ public class AnySearchTest extends AbstractTest {
MembershipCond groupCond = new MembershipCond();
groupCond.setGroupKey(1L);
- List<User> users = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS,
- SearchCond.getLeafCond(groupCond), AnyTypeKind.USER);
+ List<User> users = searchDAO.search(SearchCond.getLeafCond(groupCond), AnyTypeKind.USER);
assertNotNull(users);
assertEquals(2, users.size());
groupCond = new MembershipCond();
groupCond.setGroupKey(5L);
- users = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS,
- SearchCond.getNotLeafCond(groupCond), AnyTypeKind.USER);
+ users = searchDAO.search(SearchCond.getNotLeafCond(groupCond), AnyTypeKind.USER);
assertNotNull(users);
assertEquals(5, users.size());
}
@@ -230,8 +228,7 @@ public class AnySearchTest extends AbstractTest {
RoleCond roleCond = new RoleCond();
roleCond.setRoleKey("Other");
- List<User> users = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS,
- SearchCond.getLeafCond(roleCond), AnyTypeKind.USER);
+ List<User> users = searchDAO.search(SearchCond.getLeafCond(roleCond), AnyTypeKind.USER);
assertNotNull(users);
assertEquals(1, users.size());
}
@@ -241,16 +238,14 @@ public class AnySearchTest extends AbstractTest {
AttributeCond coolLeafCond = new AttributeCond(AttributeCond.Type.ISNULL);
coolLeafCond.setSchema("cool");
- List<User> users = searchDAO.search(
- SyncopeConstants.FULL_ADMIN_REALMS, SearchCond.getLeafCond(coolLeafCond), AnyTypeKind.USER);
+ List<User> users = searchDAO.search(SearchCond.getLeafCond(coolLeafCond), AnyTypeKind.USER);
assertNotNull(users);
assertEquals(4, users.size());
coolLeafCond = new AttributeCond(AttributeCond.Type.ISNOTNULL);
coolLeafCond.setSchema("cool");
- users = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS,
- SearchCond.getLeafCond(coolLeafCond), AnyTypeKind.USER);
+ users = searchDAO.search(SearchCond.getLeafCond(coolLeafCond), AnyTypeKind.USER);
assertNotNull(users);
assertEquals(1, users.size());
}
@@ -266,7 +261,7 @@ public class AnySearchTest extends AbstractTest {
SearchCond searchCondition = SearchCond.getAndCond(SearchCond.getNotLeafCond(ws2), SearchCond.getLeafCond(ws1));
assertTrue(searchCondition.isValid());
- List<User> users = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS, searchCondition, AnyTypeKind.USER);
+ List<User> users = searchDAO.search(searchCondition, AnyTypeKind.USER);
assertNotNull(users);
assertEquals(1, users.size());
}
@@ -277,8 +272,7 @@ public class AnySearchTest extends AbstractTest {
booleanCond.setSchema("show");
booleanCond.setExpression("true");
- List<Group> matchingGroups = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS,
- SearchCond.getLeafCond(booleanCond), AnyTypeKind.GROUP);
+ List<Group> matchingGroups = searchDAO.search(SearchCond.getLeafCond(booleanCond), AnyTypeKind.GROUP);
assertNotNull(matchingGroups);
assertFalse(matchingGroups.isEmpty());
}
@@ -297,9 +291,7 @@ public class AnySearchTest extends AbstractTest {
SearchCond.getLeafCond(usernameLeafCond),
SearchCond.getLeafCond(idRightCond));
- List<User> matchingUsers = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS,
- searchCondition, AnyTypeKind.USER);
-
+ List<User> matchingUsers = searchDAO.search(searchCondition, AnyTypeKind.USER);
assertNotNull(matchingUsers);
assertEquals(1, matchingUsers.size());
assertEquals("rossini", matchingUsers.iterator().next().getUsername());
@@ -322,9 +314,7 @@ public class AnySearchTest extends AbstractTest {
assertTrue(searchCondition.isValid());
- List<Group> matchingGroups = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS,
- searchCondition, AnyTypeKind.GROUP);
-
+ List<Group> matchingGroups = searchDAO.search(searchCondition, AnyTypeKind.GROUP);
assertNotNull(matchingGroups);
assertEquals(1, matchingGroups.size());
assertEquals("root", matchingGroups.iterator().next().getName());
@@ -345,7 +335,7 @@ public class AnySearchTest extends AbstractTest {
SearchCond.getLeafCond(usernameLeafCond),
SearchCond.getLeafCond(idRightCond));
- List<User> matchingUsers = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS,
+ List<User> matchingUsers = searchDAO.search(
searchCondition, AnyTypeKind.USER);
assertNotNull(matchingUsers);
assertEquals(2, matchingUsers.size());
@@ -360,7 +350,7 @@ public class AnySearchTest extends AbstractTest {
SearchCond searchCondition = SearchCond.getLeafCond(idLeafCond);
assertTrue(searchCondition.isValid());
- List<User> users = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS, searchCondition, AnyTypeKind.USER);
+ List<User> users = searchDAO.search(searchCondition, AnyTypeKind.USER);
assertNotNull(users);
assertEquals(1, users.size());
assertEquals(1L, users.iterator().next().getKey(), 0);
@@ -372,7 +362,7 @@ public class AnySearchTest extends AbstractTest {
searchCondition = SearchCond.getNotLeafCond(idLeafCond);
assertTrue(searchCondition.isValid());
- users = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS, searchCondition, AnyTypeKind.USER);
+ users = searchDAO.search(searchCondition, AnyTypeKind.USER);
assertNotNull(users);
assertEquals(2, users.size());
assertTrue(CollectionUtils.exists(users, new Predicate<User>() {
@@ -392,14 +382,12 @@ public class AnySearchTest extends AbstractTest {
SearchCond searchCondition = SearchCond.getLeafCond(tcond);
assertTrue(searchCondition.isValid());
- List<AnyObject> printers = searchDAO.search(
- SyncopeConstants.FULL_ADMIN_REALMS, searchCondition, AnyTypeKind.ANY_OBJECT);
+ List<AnyObject> printers = searchDAO.search(searchCondition, AnyTypeKind.ANY_OBJECT);
assertNotNull(printers);
assertEquals(2, printers.size());
tcond.setAnyTypeName("UNEXISTING");
- printers = searchDAO.search(
- SyncopeConstants.FULL_ADMIN_REALMS, searchCondition, AnyTypeKind.ANY_OBJECT);
+ printers = searchDAO.search(searchCondition, AnyTypeKind.ANY_OBJECT);
assertNotNull(printers);
assertTrue(printers.isEmpty());
}
@@ -425,8 +413,7 @@ public class AnySearchTest extends AbstractTest {
orderByClause.setDirection(OrderByClause.Direction.ASC);
orderByClauses.add(orderByClause);
- List<User> users = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS,
- searchCondition, orderByClauses, AnyTypeKind.USER);
+ List<User> users = searchDAO.search(searchCondition, orderByClauses, AnyTypeKind.USER);
assertEquals(searchDAO.count(SyncopeConstants.FULL_ADMIN_REALMS, searchCondition, AnyTypeKind.USER),
users.size());
}
@@ -442,7 +429,7 @@ public class AnySearchTest extends AbstractTest {
OrderByClause orderByClause = new OrderByClause();
orderByClause.setField("name");
- List<Group> groups = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS,
+ List<Group> groups = searchDAO.search(
searchCondition, Collections.singletonList(orderByClause), AnyTypeKind.GROUP);
assertEquals(searchDAO.count(SyncopeConstants.FULL_ADMIN_REALMS,
searchCondition, AnyTypeKind.GROUP),
@@ -461,7 +448,7 @@ public class AnySearchTest extends AbstractTest {
SearchCond.getAndCond(SearchCond.getNotLeafCond(ws2), SearchCond.getNotLeafCond(ws1));
assertTrue(searchCondition.isValid());
- List<User> users = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS, searchCondition, AnyTypeKind.USER);
+ List<User> users = searchDAO.search(searchCondition, AnyTypeKind.USER);
assertNotNull(users);
assertEquals(2, users.size());
assertTrue(CollectionUtils.exists(users, new Predicate<User>() {
@@ -482,7 +469,7 @@ public class AnySearchTest extends AbstractTest {
SearchCond searchCondition = SearchCond.getLeafCond(cond);
assertTrue(searchCondition.isValid());
- List<User> users = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS, searchCondition, AnyTypeKind.USER);
+ List<User> users = searchDAO.search(searchCondition, AnyTypeKind.USER);
assertNotNull(users);
assertTrue(users.isEmpty());
}
@@ -496,7 +483,7 @@ public class AnySearchTest extends AbstractTest {
SearchCond searchCondition = SearchCond.getLeafCond(cond);
assertTrue(searchCondition.isValid());
- List<User> users = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS, searchCondition, AnyTypeKind.USER);
+ List<User> users = searchDAO.search(searchCondition, AnyTypeKind.USER);
assertNotNull(users);
assertEquals(1, users.size());
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/c3e4c38d/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 4d37425..9d449be 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
@@ -47,7 +47,7 @@ public class GroupTest extends AbstractTest {
@Test
public void findAll() {
- List<Group> list = groupDAO.findAll(SyncopeConstants.FULL_ADMIN_REALMS, 1, 100);
+ List<Group> list = groupDAO.findAll();
assertEquals("did not get expected number of groups ", 15, list.size());
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/c3e4c38d/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 073b661..9366705 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
@@ -95,7 +95,7 @@ public class MultitenancyTest extends AbstractTest {
@Test
public void createUser() {
assertNull(realmDAO.getRoot().getPasswordPolicy());
- assertTrue(userDAO.findAll(SyncopeConstants.FULL_ADMIN_REALMS, 1, 1000).isEmpty());
+ assertTrue(userDAO.findAll().isEmpty());
User user = entityFactory.newEntity(User.class);
user.setRealm(realmDAO.getRoot());
http://git-wip-us.apache.org/repos/asf/syncope/blob/c3e4c38d/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/UserTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/UserTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/UserTest.java
index e1d12b1..44b888b 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/UserTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/UserTest.java
@@ -23,6 +23,7 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.fail;
+import java.util.Collections;
import java.util.Date;
import java.util.List;
import org.apache.syncope.common.lib.SyncopeConstants;
@@ -35,6 +36,7 @@ import org.apache.syncope.core.persistence.jpa.AbstractTest;
import org.apache.syncope.core.misc.policy.InvalidPasswordRuleConf;
import org.apache.syncope.core.misc.security.PasswordGenerator;
import org.apache.syncope.core.persistence.api.dao.RealmDAO;
+import org.apache.syncope.core.persistence.api.dao.search.OrderByClause;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
@@ -53,7 +55,7 @@ public class UserTest extends AbstractTest {
@Test
public void findAll() {
- List<User> list = userDAO.findAll(SyncopeConstants.FULL_ADMIN_REALMS, 1, 100);
+ List<User> list = userDAO.findAll();
assertEquals("did not get expected number of users", 5, list.size());
}
@@ -67,19 +69,20 @@ public class UserTest extends AbstractTest {
@Test
public void findAllByPageAndSize() {
// get first page
- List<User> list = userDAO.findAll(SyncopeConstants.FULL_ADMIN_REALMS, 1, 2);
+ List<User> list = userDAO.findAll(
+ SyncopeConstants.FULL_ADMIN_REALMS, 1, 2, Collections.<OrderByClause>emptyList());
assertEquals("did not get expected number of users", 2, list.size());
// get second page
- list = userDAO.findAll(SyncopeConstants.FULL_ADMIN_REALMS, 2, 2);
+ list = userDAO.findAll(SyncopeConstants.FULL_ADMIN_REALMS, 2, 2, Collections.<OrderByClause>emptyList());
assertEquals("did not get expected number of users", 2, list.size());
// get second page with uncomplete set
- list = userDAO.findAll(SyncopeConstants.FULL_ADMIN_REALMS, 2, 3);
+ list = userDAO.findAll(SyncopeConstants.FULL_ADMIN_REALMS, 2, 3, Collections.<OrderByClause>emptyList());
assertEquals("did not get expected number of users", 2, list.size());
// get unexistent page
- list = userDAO.findAll(SyncopeConstants.FULL_ADMIN_REALMS, 3, 2);
+ list = userDAO.findAll(SyncopeConstants.FULL_ADMIN_REALMS, 3, 2, Collections.<OrderByClause>emptyList());
assertEquals("did not get expected number of users", 1, list.size());
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/c3e4c38d/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/AnySearchTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/AnySearchTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/AnySearchTest.java
index 001a984..d000884 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/AnySearchTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/AnySearchTest.java
@@ -25,7 +25,6 @@ import static org.junit.Assert.assertTrue;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.common.lib.types.StandardEntitlement;
import org.apache.syncope.core.persistence.api.dao.GroupDAO;
@@ -61,7 +60,7 @@ public class AnySearchTest extends AbstractTest {
@Test
public void issueSYNCOPE95() {
- Set<Group> groups = new HashSet<>(groupDAO.findAll(SyncopeConstants.FULL_ADMIN_REALMS, 1, 100));
+ Set<Group> groups = new HashSet<>(groupDAO.findAll());
for (Group group : groups) {
groupDAO.delete(group.getKey());
}
@@ -74,7 +73,7 @@ public class AnySearchTest extends AbstractTest {
SearchCond cond = SearchCond.getLeafCond(coolLeafCond);
assertTrue(cond.isValid());
- List<User> users = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS, cond, AnyTypeKind.USER);
+ List<User> users = searchDAO.search(cond, AnyTypeKind.USER);
assertNotNull(users);
assertEquals(1, users.size());
@@ -106,8 +105,7 @@ public class AnySearchTest extends AbstractTest {
RoleCond roleCond = new RoleCond();
roleCond.setRoleKey(role.getKey());
- List<User> users = searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS,
- SearchCond.getLeafCond(roleCond), AnyTypeKind.USER);
+ List<User> users = searchDAO.search(SearchCond.getLeafCond(roleCond), AnyTypeKind.USER);
assertNotNull(users);
assertEquals(1, users.size());
assertEquals(4L, users.get(0).getKey(), 0);
http://git-wip-us.apache.org/repos/asf/syncope/blob/c3e4c38d/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 820c5f3..9aa507a 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
@@ -189,7 +189,7 @@ public class NotificationManagerImpl implements NotificationManager {
List<User> recipients = new ArrayList<>();
if (notification.getRecipients() != null) {
- recipients.addAll(searchDAO.<User>search(SyncopeConstants.FULL_ADMIN_REALMS,
+ recipients.addAll(searchDAO.<User>search(
SearchCondConverter.convert(notification.getRecipients()),
Collections.<OrderByClause>emptyList(), AnyTypeKind.USER));
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/c3e4c38d/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/PushJobDelegate.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/PushJobDelegate.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/PushJobDelegate.java
index 65b0cf7..b045a63 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/PushJobDelegate.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/PushJobDelegate.java
@@ -33,6 +33,7 @@ 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.dao.search.OrderByClause;
import org.apache.syncope.core.persistence.api.entity.Any;
+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.provisioning.api.Connector;
@@ -90,6 +91,22 @@ public class PushJobDelegate extends AbstractProvisioningJobDelegate<PushTask> {
return result;
}
+ protected void handle(
+ final List<? extends Any<?>> anys,
+ final SyncopePushResultHandler handler,
+ final ExternalResource resource)
+ throws JobExecutionException {
+
+ for (Any<?> any : anys) {
+ try {
+ handler.handle(any.getKey());
+ } catch (Exception e) {
+ LOG.warn("Failure pushing '{}' on '{}'", any, resource, e);
+ throw new JobExecutionException("While pushing " + any + " on " + resource, e);
+ }
+ }
+ }
+
@Override
protected String doExecuteProvisioning(
final PushTask pushTask,
@@ -139,41 +156,38 @@ public class PushJobDelegate extends AbstractProvisioningJobDelegate<PushTask> {
for (Provision provision : pushTask.getResource().getProvisions()) {
if (provision.getMapping() != null) {
AnyDAO<?> anyDAO = getAnyDAO(provision.getAnyType().getKind());
+
+ SyncopePushResultHandler handler;
+ switch (provision.getAnyType().getKind()) {
+ case USER:
+ handler = uhandler;
+ break;
+
+ case GROUP:
+ handler = ghandler;
+ break;
+
+ case ANY_OBJECT:
+ default:
+ handler = ahandler;
+ }
+
String filter = pushTask.getFilter(provision.getAnyType()) == null
? null
: pushTask.getFilter(provision.getAnyType()).get();
-
- int count = anyDAO.count(SyncopeConstants.FULL_ADMIN_REALMS);
- for (int page = 1; page <= (count / PAGE_SIZE) + 1; page++) {
- List<? extends Any<?>> localAnys = StringUtils.isBlank(filter)
- ? anyDAO.findAll(SyncopeConstants.FULL_ADMIN_REALMS, page, PAGE_SIZE)
- : searchDAO.search(SyncopeConstants.FULL_ADMIN_REALMS,
- SearchCondConverter.convert(filter),
- Collections.<OrderByClause>emptyList(), provision.getAnyType().getKind());
-
- for (Any<?> any : localAnys) {
- SyncopePushResultHandler handler;
- switch (provision.getAnyType().getKind()) {
- case USER:
- handler = uhandler;
- break;
-
- case GROUP:
- handler = ghandler;
- break;
-
- case ANY_OBJECT:
- default:
- handler = ahandler;
- }
-
- try {
- handler.handle(any.getKey());
- } catch (Exception e) {
- LOG.warn("Failure pushing '{}' on '{}'", any, pushTask.getResource(), e);
- throw new JobExecutionException(
- "While pushing " + any + " on " + pushTask.getResource(), e);
- }
+ if (StringUtils.isBlank(filter)) {
+ handle(anyDAO.findAll(), handler, pushTask.getResource());
+ } else {
+ int count = anyDAO.count(SyncopeConstants.FULL_ADMIN_REALMS);
+ for (int page = 1; page <= (count / PAGE_SIZE) + 1; page++) {
+ List<? extends Any<?>> anys = searchDAO.search(
+ SyncopeConstants.FULL_ADMIN_REALMS,
+ SearchCondConverter.convert(filter),
+ page,
+ PAGE_SIZE,
+ Collections.<OrderByClause>emptyList(),
+ provision.getAnyType().getKind());
+ handle(anys, handler, pushTask.getResource());
}
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/c3e4c38d/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/SyncUtils.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/SyncUtils.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/SyncUtils.java
index 1c01497..17749d1 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/SyncUtils.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/SyncUtils.java
@@ -22,7 +22,6 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
-import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.common.lib.policy.SyncPolicySpec;
import org.apache.syncope.core.misc.utils.MappingUtils;
@@ -34,7 +33,6 @@ import org.apache.syncope.core.persistence.api.dao.AnySearchDAO;
import org.apache.syncope.core.persistence.api.dao.PlainSchemaDAO;
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.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.AnyUtils;
@@ -123,11 +121,11 @@ public class SyncUtils {
new EqualsFilter(new Name(name)),
new ResultsHandler() {
- @Override
- public boolean handle(final ConnectorObject obj) {
- return found.add(obj);
- }
- },
+ @Override
+ public boolean handle(final ConnectorObject obj) {
+ return found.add(obj);
+ }
+ },
MappingUtils.buildOperationOptions(MappingUtils.getSyncMappingItems(provision).iterator()));
if (found.isEmpty()) {
@@ -249,12 +247,7 @@ public class SyncUtils {
final ConnectorObject connObj, final SyncCorrelationRule rule, final AnyTypeKind type) {
List<Long> result = new ArrayList<>();
- for (Any<?> any : searchDAO.search(
- SyncopeConstants.FULL_ADMIN_REALMS,
- rule.getSearchCond(connObj),
- Collections.<OrderByClause>emptyList(),
- type)) {
-
+ for (Any<?> any : searchDAO.search(rule.getSearchCond(connObj), type)) {
result.add(any.getKey());
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/c3e4c38d/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 20059ce..4336cf6 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
@@ -28,12 +28,11 @@ 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.common.lib.SyncopeConstants;
import org.apache.syncope.core.persistence.api.dao.GroupDAO;
public class SyncopeGroupQueryImpl implements GroupQuery {
- private GroupDAO groupDAO;
+ private final GroupDAO groupDAO;
private Long groupId;
@@ -103,7 +102,7 @@ public class SyncopeGroupQueryImpl implements GroupQuery {
return new GroupEntity(group.getKey().toString());
}
- private void execute(final int page, final int itemsPerPage) {
+ private void execute() {
if (groupId != null) {
org.apache.syncope.core.persistence.api.entity.group.Group syncopeGroup = groupDAO.find(groupId);
if (syncopeGroup == null) {
@@ -113,24 +112,22 @@ public class SyncopeGroupQueryImpl implements GroupQuery {
}
}
if (result == null) {
- result = CollectionUtils.collect(
- groupDAO.findAll(SyncopeConstants.FULL_ADMIN_REALMS, page, itemsPerPage),
+ result = CollectionUtils.collect(groupDAO.findAll(),
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 user) {
- return fromSyncopeGroup(user);
- }
+ @Override
+ public Group transform(final org.apache.syncope.core.persistence.api.entity.group.Group user) {
+ return fromSyncopeGroup(user);
+ }
- },
- new ArrayList<Group>());
+ }, new ArrayList<Group>());
}
}
@Override
public long count() {
if (result == null) {
- execute(-1, -1);
+ execute();
}
return result.size();
}
@@ -138,7 +135,7 @@ public class SyncopeGroupQueryImpl implements GroupQuery {
@Override
public Group singleResult() {
if (result == null) {
- execute(-1, -1);
+ execute();
}
if (result.isEmpty()) {
throw new ActivitiException("Empty result");
@@ -150,7 +147,7 @@ public class SyncopeGroupQueryImpl implements GroupQuery {
@Override
public List<Group> list() {
if (result == null) {
- execute(-1, -1);
+ execute();
}
return result;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/c3e4c38d/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 caa8a05..e213c6e 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
@@ -27,7 +27,6 @@ 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.common.lib.SyncopeConstants;
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.group.Group;
@@ -35,9 +34,9 @@ import org.apache.syncope.core.persistence.api.entity.user.UMembership;
public class SyncopeUserQueryImpl implements UserQuery {
- private UserDAO userDAO;
+ private final UserDAO userDAO;
- private GroupDAO groupDAO;
+ private final GroupDAO groupDAO;
private String username;
@@ -135,15 +134,13 @@ public class SyncopeUserQueryImpl implements UserQuery {
return new UserEntity(user.getUsername());
}
- private void execute(final int page, final int itemsPerPage) {
+ private void execute() {
if (username != null) {
org.apache.syncope.core.persistence.api.entity.user.User user = userDAO.find(username);
if (user == null) {
result = Collections.<User>emptyList();
- } else {
- if (memberOf == null || userDAO.findAllGroupKeys(user).contains(memberOf)) {
- result = Collections.singletonList(fromSyncopeUser(user));
- }
+ } else if (memberOf == null || userDAO.findAllGroupKeys(user).contains(memberOf)) {
+ result = Collections.singletonList(fromSyncopeUser(user));
}
}
if (memberOf != null) {
@@ -163,24 +160,22 @@ public class SyncopeUserQueryImpl implements UserQuery {
}
// THIS CAN BE *VERY* DANGEROUS
if (result == null) {
- result = CollectionUtils.collect(
- userDAO.findAll(SyncopeConstants.FULL_ADMIN_REALMS, page, itemsPerPage),
+ result = CollectionUtils.collect(userDAO.findAll(),
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);
- }
+ @Override
+ public User transform(final org.apache.syncope.core.persistence.api.entity.user.User user) {
+ return fromSyncopeUser(user);
+ }
- },
- new ArrayList<User>());
+ }, new ArrayList<User>());
}
}
@Override
public long count() {
if (result == null) {
- execute(-1, -1);
+ execute();
}
return result.size();
}
@@ -188,7 +183,7 @@ public class SyncopeUserQueryImpl implements UserQuery {
@Override
public User singleResult() {
if (result == null) {
- execute(-1, -1);
+ execute();
}
if (result.isEmpty()) {
throw new ActivitiException("Empty result");
@@ -200,7 +195,7 @@ public class SyncopeUserQueryImpl implements UserQuery {
@Override
public List<User> list() {
if (result == null) {
- execute(-1, -1);
+ execute();
}
return result;
}
@@ -208,9 +203,9 @@ public class SyncopeUserQueryImpl implements UserQuery {
@Override
public List<User> listPage(final int firstResult, final int maxResults) {
if (result == null) {
- execute((firstResult / maxResults) + 1, maxResults);
+ execute();
}
- return result;
+ return result.subList(firstResult, firstResult + maxResults - 1);
}
@Override
[2/2] syncope git commit: [SYNCOPE-666] Adjusting TypeExtension for
JAXB
Posted by il...@apache.org.
[SYNCOPE-666] Adjusting TypeExtension for JAXB
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/07451e4c
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/07451e4c
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/07451e4c
Branch: refs/heads/master
Commit: 07451e4cc978a56b0e958fb59608b7e431e6f7e7
Parents: c3e4c38
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Mon Nov 23 13:22:27 2015 +0100
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Mon Nov 23 13:22:27 2015 +0100
----------------------------------------------------------------------
.../syncope/common/lib/patch/GroupPatch.java | 33 ++++++++----
.../apache/syncope/common/lib/to/GroupTO.java | 42 +++++++--------
.../syncope/common/lib/to/TypeExtensionTO.java | 55 ++++++++++++++++++++
.../java/data/GroupDataBinderImpl.java | 42 ++++++++-------
.../syncope/fit/core/reference/GroupITCase.java | 27 ++++++----
5 files changed, 138 insertions(+), 61 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/07451e4c/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 c6347c1..209b33e 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
@@ -20,13 +20,15 @@ package org.apache.syncope.common.lib.patch;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
+import java.util.ArrayList;
+import java.util.List;
+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.syncope.common.lib.jaxb.XmlGenericMapAdapter;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.collections4.Predicate;
+import org.apache.syncope.common.lib.to.TypeExtensionTO;
@XmlRootElement(name = "groupPatch")
@XmlType
@@ -44,9 +46,7 @@ public class GroupPatch extends AnyPatch {
private StringReplacePatchItem udynMembershipCond;
- @XmlJavaTypeAdapter(XmlGenericMapAdapter.class)
- @JsonIgnore
- private final Map<String, Set<String>> typeExtensions = new HashMap<>();
+ private final List<TypeExtensionTO> typeExtensions = new ArrayList<>();
public StringReplacePatchItem getName() {
return name;
@@ -88,8 +88,21 @@ public class GroupPatch extends AnyPatch {
this.udynMembershipCond = udynMembershipCond;
}
- @JsonProperty
- public Map<String, Set<String>> getTypeExtensions() {
+ @JsonIgnore
+ public TypeExtensionTO getTypeExtension(final String anyType) {
+ return CollectionUtils.find(typeExtensions, new Predicate<TypeExtensionTO>() {
+
+ @Override
+ public boolean evaluate(final TypeExtensionTO typeExtension) {
+ return anyType != null && anyType.equals(typeExtension.getAnyType());
+ }
+ });
+ }
+
+ @XmlElementWrapper(name = "typeExtensions")
+ @XmlElement(name = "typeExtension")
+ @JsonProperty("typeExtensions")
+ public List<TypeExtensionTO> getTypeExtensions() {
return typeExtensions;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/07451e4c/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 9c375c8..c304b9e 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
@@ -20,13 +20,14 @@ package org.apache.syncope.common.lib.to;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
+import java.util.ArrayList;
+import java.util.List;
+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.syncope.common.lib.jaxb.XmlGenericMapAdapter;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.collections4.Predicate;
import org.apache.syncope.common.lib.types.AnyTypeKind;
@XmlRootElement(name = "group")
@@ -45,9 +46,7 @@ public class GroupTO extends AnyTO {
private String udynMembershipCond;
- @XmlJavaTypeAdapter(XmlGenericMapAdapter.class)
- @JsonIgnore
- private final Map<String, Set<String>> typeExtensions = new HashMap<>();
+ private final List<TypeExtensionTO> typeExtensions = new ArrayList<>();
@Override
public String getType() {
@@ -99,21 +98,22 @@ public class GroupTO extends AnyTO {
this.udynMembershipCond = uDynMembershipCond;
}
- @JsonProperty
- public Map<String, Set<String>> getTypeExtensions() {
- return typeExtensions;
- }
+ @JsonIgnore
+ public TypeExtensionTO getTypeExtension(final String anyType) {
+ return CollectionUtils.find(typeExtensions, new Predicate<TypeExtensionTO>() {
- public static long fromDisplayName(final String displayName) {
- long result = 0;
- if (displayName != null && !displayName.isEmpty() && displayName.indexOf(' ') != -1) {
- try {
- result = Long.valueOf(displayName.split(" ")[0]);
- } catch (NumberFormatException e) {
- // ignore
+ @Override
+ public boolean evaluate(final TypeExtensionTO typeExtension) {
+ return anyType != null && anyType.equals(typeExtension.getAnyType());
}
- }
+ });
+ }
- return result;
+ @XmlElementWrapper(name = "typeExtensions")
+ @XmlElement(name = "typeExtension")
+ @JsonProperty("typeExtensions")
+ public List<TypeExtensionTO> getTypeExtensions() {
+ return typeExtensions;
}
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/07451e4c/common/lib/src/main/java/org/apache/syncope/common/lib/to/TypeExtensionTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/TypeExtensionTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/TypeExtensionTO.java
new file mode 100644
index 0000000..f8dea41
--- /dev/null
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/TypeExtensionTO.java
@@ -0,0 +1,55 @@
+/*
+ * 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.to;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.ArrayList;
+import java.util.List;
+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.syncope.common.lib.AbstractBaseBean;
+
+@XmlRootElement(name = "typeExtension")
+@XmlType
+public class TypeExtensionTO extends AbstractBaseBean {
+
+ private static final long serialVersionUID = -5422809645030924811L;
+
+ private String anyType;
+
+ private final List<String> auxClasses = new ArrayList<>();
+
+ public String getAnyType() {
+ return anyType;
+ }
+
+ public void setAnyType(final String anyType) {
+ this.anyType = anyType;
+ }
+
+ @XmlElementWrapper(name = "auxClasses")
+ @XmlElement(name = "class")
+ @JsonProperty("auxClasses")
+ public List<String> getAuxClasses() {
+ return auxClasses;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/07451e4c/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 1f8655f..9562ff7 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
@@ -19,11 +19,9 @@
package org.apache.syncope.core.provisioning.java.data;
import java.util.Collections;
-import java.util.HashSet;
import java.util.Iterator;
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 org.apache.commons.lang3.StringUtils;
@@ -31,6 +29,7 @@ import org.apache.syncope.common.lib.SyncopeClientCompositeException;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.patch.GroupPatch;
import org.apache.syncope.common.lib.to.GroupTO;
+import org.apache.syncope.common.lib.to.TypeExtensionTO;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.common.lib.types.ClientExceptionType;
import org.apache.syncope.common.lib.types.ResourceOperation;
@@ -128,17 +127,17 @@ public class GroupDataBinderImpl extends AbstractAnyDataBinder implements GroupD
}
// type extensions
- for (Map.Entry<String, Set<String>> entry : groupTO.getTypeExtensions().entrySet()) {
- AnyType anyType = anyTypeDAO.find(entry.getKey());
+ for (TypeExtensionTO typeExtTO : groupTO.getTypeExtensions()) {
+ AnyType anyType = anyTypeDAO.find(typeExtTO.getAnyType());
if (anyType == null) {
- LOG.warn("Ignoring invalid {}: {}", AnyType.class.getSimpleName(), entry.getKey());
+ LOG.warn("Ignoring invalid {}: {}", AnyType.class.getSimpleName(), typeExtTO.getAnyType());
} else {
TypeExtension typeExt = entityFactory.newEntity(TypeExtension.class);
typeExt.setAnyType(anyType);
typeExt.setGroup(group);
group.add(typeExt);
- for (String name : entry.getValue()) {
+ for (String name : typeExtTO.getAuxClasses()) {
AnyTypeClass anyTypeClass = anyTypeClassDAO.find(name);
if (anyTypeClass == null) {
LOG.warn("Ignoring invalid {}: {}", AnyTypeClass.class.getSimpleName(), name);
@@ -224,10 +223,10 @@ public class GroupDataBinderImpl extends AbstractAnyDataBinder implements GroupD
}
// type extensions
- for (Map.Entry<String, Set<String>> entry : groupPatch.getTypeExtensions().entrySet()) {
- AnyType anyType = anyTypeDAO.find(entry.getKey());
+ for (TypeExtensionTO typeExtTO : groupPatch.getTypeExtensions()) {
+ AnyType anyType = anyTypeDAO.find(typeExtTO.getAnyType());
if (anyType == null) {
- LOG.warn("Ignoring invalid {}: {}", AnyType.class.getSimpleName(), entry.getKey());
+ LOG.warn("Ignoring invalid {}: {}", AnyType.class.getSimpleName(), typeExtTO.getAnyType());
} else {
TypeExtension typeExt = group.getTypeExtension(anyType);
if (typeExt == null) {
@@ -238,7 +237,7 @@ public class GroupDataBinderImpl extends AbstractAnyDataBinder implements GroupD
}
// add all classes contained in the TO
- for (String name : entry.getValue()) {
+ for (String name : typeExtTO.getAuxClasses()) {
AnyTypeClass anyTypeClass = anyTypeClassDAO.find(name);
if (anyTypeClass == null) {
LOG.warn("Ignoring invalid {}: {}", AnyTypeClass.class.getSimpleName(), name);
@@ -249,7 +248,7 @@ public class GroupDataBinderImpl extends AbstractAnyDataBinder implements GroupD
// remove all classes not contained in the TO
for (Iterator<? extends AnyTypeClass> itor = typeExt.getAuxClasses().iterator(); itor.hasNext();) {
AnyTypeClass anyTypeClass = itor.next();
- if (!entry.getValue().contains(anyTypeClass.getKey())) {
+ if (!typeExtTO.getAuxClasses().contains(anyTypeClass.getKey())) {
itor.remove();
}
}
@@ -264,7 +263,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.getTypeExtensions().containsKey(typeExt.getAnyType().getKey())) {
+ if (groupPatch.getTypeExtension(typeExt.getAnyType().getKey()) == null) {
itor.remove();
}
}
@@ -308,14 +307,17 @@ public class GroupDataBinderImpl extends AbstractAnyDataBinder implements GroupD
}
for (TypeExtension typeExt : group.getTypeExtensions()) {
- groupTO.getTypeExtensions().put(typeExt.getAnyType().getKey(),
- CollectionUtils.collect(typeExt.getAuxClasses(), new Transformer<AnyTypeClass, String>() {
-
- @Override
- public String transform(final AnyTypeClass clazz) {
- return clazz.getKey();
- }
- }, new HashSet<String>()));
+ 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();
+ }
+ }));
+ groupTO.getTypeExtensions().add(typeExtTO);
}
return groupTO;
http://git-wip-us.apache.org/repos/asf/syncope/blob/07451e4c/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/GroupITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/GroupITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/GroupITCase.java
index 502b832..052262c 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/GroupITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/GroupITCase.java
@@ -28,9 +28,6 @@ import static org.junit.Assert.fail;
import java.io.IOException;
import java.io.InputStream;
import java.security.AccessControlException;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
import java.util.List;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
@@ -65,6 +62,7 @@ import org.apache.syncope.common.lib.to.GroupTO;
import org.apache.syncope.common.lib.to.MappingTO;
import org.apache.syncope.common.lib.to.ProvisionTO;
import org.apache.syncope.common.lib.to.ProvisioningResult;
+import org.apache.syncope.common.lib.to.TypeExtensionTO;
import org.apache.syncope.common.lib.to.UserTO;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.common.lib.types.AttrSchemaType;
@@ -692,25 +690,34 @@ public class GroupITCase extends AbstractITCase {
@Test
public void typeExtensions() {
+ TypeExtensionTO typeExtension = new TypeExtensionTO();
+ typeExtension.setAnyType(AnyTypeKind.USER.name());
+ typeExtension.getAuxClasses().add("csv");
+
GroupTO groupTO = getBasicSampleTO("typeExtensions");
- groupTO.getTypeExtensions().put(AnyTypeKind.USER.name(), Collections.singleton("csv"));
+ groupTO.getTypeExtensions().add(typeExtension);
groupTO = createGroup(groupTO).getAny();
assertNotNull(groupTO);
assertEquals(1, groupTO.getTypeExtensions().size());
- assertEquals(1, groupTO.getTypeExtensions().get(AnyTypeKind.USER.name()).size());
- assertEquals(Collections.singleton("csv"), groupTO.getTypeExtensions().get(AnyTypeKind.USER.name()));
+ assertEquals(1, groupTO.getTypeExtension(AnyTypeKind.USER.name()).getAuxClasses().size());
+ assertTrue(groupTO.getTypeExtension(AnyTypeKind.USER.name()).getAuxClasses().contains("csv"));
+
+ typeExtension = new TypeExtensionTO();
+ typeExtension.setAnyType(AnyTypeKind.USER.name());
+ typeExtension.getAuxClasses().add("csv");
+ typeExtension.getAuxClasses().add("other");
GroupPatch groupPatch = new GroupPatch();
groupPatch.setKey(groupTO.getKey());
- groupPatch.getTypeExtensions().put(AnyTypeKind.USER.name(), new HashSet<>(Arrays.asList("csv", "other")));
+ groupPatch.getTypeExtensions().add(typeExtension);
groupTO = updateGroup(groupPatch).getAny();
assertNotNull(groupTO);
assertEquals(1, groupTO.getTypeExtensions().size());
- assertEquals(2, groupTO.getTypeExtensions().get(AnyTypeKind.USER.name()).size());
- assertTrue(groupTO.getTypeExtensions().get(AnyTypeKind.USER.name()).contains("csv"));
- assertTrue(groupTO.getTypeExtensions().get(AnyTypeKind.USER.name()).contains("other"));
+ 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"));
}
@Test