Repository: syncope Updated Branches: refs/heads/master 0b90a205b -> ca056b819
REST API (and console REST client) small cleanup Project: http://git-wip-us.apache.org/repos/asf/syncope/repo Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/ca056b81 Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/ca056b81 Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/ca056b81 Branch: refs/heads/master Commit: ca056b8196f02cec23bfb9907a340dbbf95d8583 Parents: 0b90a20 Author: Francesco Chicchiriccò <ilgro...@apache.org> Authored: Mon May 9 09:26:43 2016 +0200 Committer: Francesco Chicchiriccò <ilgro...@apache.org> Committed: Mon May 9 09:26:43 2016 +0200 ---------------------------------------------------------------------- .../commands/user/UserSyncopeOperations.java | 2 +- .../client/console/bulk/BulkContent.java | 2 +- .../client/console/commons/AnyDataProvider.java | 18 +++---- .../console/panels/AnyDirectoryPanel.java | 10 ++-- .../search/AnySelectionDirectoryPanel.java | 4 +- .../console/rest/AbstractAnyRestClient.java | 52 ++++++++++++++------ .../console/rest/AnyObjectRestClient.java | 41 +-------------- .../client/console/rest/GroupRestClient.java | 40 +-------------- .../client/console/rest/UserRestClient.java | 44 +++-------------- .../console/status/StatusDirectoryPanel.java | 2 +- .../common/rest/api/service/AnyService.java | 5 +- .../rest/cxf/service/AbstractAnyService.java | 4 +- .../org/apache/syncope/fit/core/UserITCase.java | 6 +-- 13 files changed, 75 insertions(+), 155 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/syncope/blob/ca056b81/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserSyncopeOperations.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserSyncopeOperations.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserSyncopeOperations.java index 04bed36..f54540c 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserSyncopeOperations.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserSyncopeOperations.java @@ -95,7 +95,7 @@ public class UserSyncopeOperations { for (UserTO user : users) { bulkAction.getTargets().add(String.valueOf(user.getKey())); } - final BulkActionResult bulkResult = userService.bulk(bulkAction); + final BulkActionResult bulkResult = userService.bulk(bulkAction).readEntity(BulkActionResult.class); return bulkResult.getResults(); } } http://git-wip-us.apache.org/repos/asf/syncope/blob/ca056b81/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 8bbd088..c96e4df 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 @@ -143,7 +143,7 @@ public class BulkContent<T extends Serializable, S> extends MultilevelPanel.Seco throw new IllegalArgumentException("Invalid bulk action executor"); } - final AbstractAnyRestClient<?> anyRestClient = AbstractAnyRestClient.class.cast( + final AbstractAnyRestClient<?, ?> anyRestClient = AbstractAnyRestClient.class.cast( bulkActionExecutor); if (items.isEmpty() || !(items.iterator().next() instanceof StatusBean)) { http://git-wip-us.apache.org/repos/asf/syncope/blob/ca056b81/client/console/src/main/java/org/apache/syncope/client/console/commons/AnyDataProvider.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/commons/AnyDataProvider.java b/client/console/src/main/java/org/apache/syncope/client/console/commons/AnyDataProvider.java index 65298b2..bee3237 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/commons/AnyDataProvider.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/commons/AnyDataProvider.java @@ -27,13 +27,13 @@ import org.apache.wicket.extensions.markup.html.repeater.data.sort.SortOrder; import org.apache.wicket.model.CompoundPropertyModel; import org.apache.wicket.model.IModel; -public class AnyDataProvider<T extends AnyTO> extends DirectoryDataProvider<T> { +public class AnyDataProvider<A extends AnyTO> extends DirectoryDataProvider<A> { private static final long serialVersionUID = 6267494272884913376L; - private final SortableAnyProviderComparator<T> comparator; + private final SortableAnyProviderComparator<A> comparator; - private final AbstractAnyRestClient<T> restClient; + private final AbstractAnyRestClient<A, ?> restClient; protected String fiql; @@ -44,7 +44,7 @@ public class AnyDataProvider<T extends AnyTO> extends DirectoryDataProvider<T> { private final String type; public AnyDataProvider( - final AbstractAnyRestClient<T> restClient, + final AbstractAnyRestClient<A, ?> restClient, final int paginatorRows, final boolean filtered, final String realm, @@ -66,14 +66,14 @@ public class AnyDataProvider<T extends AnyTO> extends DirectoryDataProvider<T> { } @Override - public Iterator<T> iterator(final long first, final long count) { - List<T> result; + public Iterator<A> iterator(final long first, final long count) { + List<A> result; final int page = ((int) first / paginatorRows); if (filtered) { result = fiql == null - ? Collections.<T>emptyList() + ? Collections.<A>emptyList() : restClient.search(realm, fiql, (page < 0 ? 0 : page) + 1, paginatorRows, getSort(), type); } else { result = restClient.list(realm, (page < 0 ? 0 : page) + 1, paginatorRows, getSort(), type); @@ -96,13 +96,13 @@ public class AnyDataProvider<T extends AnyTO> extends DirectoryDataProvider<T> { return result; } - public AnyDataProvider<T> setFIQL(final String fiql) { + public AnyDataProvider<A> setFIQL(final String fiql) { this.fiql = fiql; return this; } @Override - public IModel<T> model(final T object) { + public IModel<A> model(final A object) { return new CompoundPropertyModel<>(object); } } http://git-wip-us.apache.org/repos/asf/syncope/blob/ca056b81/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 6bae69d..0a873ec 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 @@ -55,7 +55,7 @@ import org.apache.wicket.model.ResourceModel; import org.apache.wicket.model.util.ListModel; public abstract class AnyDirectoryPanel<A extends AnyTO> - extends DirectoryPanel<A, AnyWrapper<A>, AnyDataProvider<A>, AbstractAnyRestClient<A>> { + extends DirectoryPanel<A, AnyWrapper<A>, AnyDataProvider<A>, AbstractAnyRestClient<A, ?>> { private static final long serialVersionUID = -1100228004207271270L; @@ -153,8 +153,8 @@ public abstract class AnyDirectoryPanel<A extends AnyTO> List<AnyTypeClassTO> getAnyTypeClassTOs(); } - public abstract static class Builder<T extends AnyTO> - extends DirectoryPanel.Builder<T, AnyWrapper<T>, AbstractAnyRestClient<T>> + public abstract static class Builder<A extends AnyTO> + extends DirectoryPanel.Builder<A, AnyWrapper<A>, AbstractAnyRestClient<A, ?>> implements AnyDirectoryPanelBuilder { private static final long serialVersionUID = -6828423611982275640L; @@ -173,7 +173,7 @@ public abstract class AnyDirectoryPanel<A extends AnyTO> public Builder( final List<AnyTypeClassTO> anyTypeClassTOs, - final AbstractAnyRestClient<T> restClient, + final AbstractAnyRestClient<A, ?> restClient, final String type, final PageReference pageRef) { @@ -182,7 +182,7 @@ public abstract class AnyDirectoryPanel<A extends AnyTO> this.type = type; } - public Builder<T> setRealm(final String realm) { + public Builder<A> setRealm(final String realm) { this.realm = realm; return this; } http://git-wip-us.apache.org/repos/asf/syncope/blob/ca056b81/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AnySelectionDirectoryPanel.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AnySelectionDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AnySelectionDirectoryPanel.java index c77598d..cb9de6d 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AnySelectionDirectoryPanel.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AnySelectionDirectoryPanel.java @@ -180,13 +180,13 @@ public abstract class AnySelectionDirectoryPanel<T extends AnyTO> extends AnyDir protected abstract String getPrefDerivedAttributesView(); - public abstract static class Builder<T extends AnyTO> extends AnyDirectoryPanel.Builder<T> { + public abstract static class Builder<A extends AnyTO> extends AnyDirectoryPanel.Builder<A> { private static final long serialVersionUID = 5460024856989891156L; public Builder( final List<AnyTypeClassTO> anyTypeClassTOs, - final AbstractAnyRestClient<T> restClient, + final AbstractAnyRestClient<A, ?> restClient, final String type, final PageReference pageRef) { http://git-wip-us.apache.org/repos/asf/syncope/blob/ca056b81/client/console/src/main/java/org/apache/syncope/client/console/rest/AbstractAnyRestClient.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/AbstractAnyRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/AbstractAnyRestClient.java index 2eaad2f..5759af5 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/rest/AbstractAnyRestClient.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/AbstractAnyRestClient.java @@ -18,10 +18,14 @@ */ package org.apache.syncope.client.console.rest; +import static org.apache.syncope.client.console.rest.BaseRestClient.getService; + import java.util.List; import javax.ws.rs.core.GenericType; +import javax.ws.rs.core.Response; import org.apache.syncope.client.console.commons.status.StatusBean; import org.apache.syncope.client.console.commons.status.StatusUtils; +import org.apache.syncope.common.lib.patch.AnyPatch; import org.apache.syncope.common.lib.patch.AssociationPatch; import org.apache.syncope.common.lib.patch.DeassociationPatch; import org.apache.syncope.common.lib.patch.StatusPatch; @@ -32,40 +36,55 @@ import org.apache.syncope.common.lib.to.ProvisioningResult; import org.apache.syncope.common.lib.types.ResourceAssociationAction; import org.apache.syncope.common.lib.types.ResourceDeassociationAction; import org.apache.syncope.common.rest.api.service.AnyService; +import org.apache.syncope.common.rest.api.service.UserService; import org.apache.wicket.extensions.markup.html.repeater.util.SortParam; -public abstract class AbstractAnyRestClient<T extends AnyTO> extends BaseRestClient { +public abstract class AbstractAnyRestClient<TO extends AnyTO, P extends AnyPatch> extends BaseRestClient { private static final long serialVersionUID = 1962529678091410544L; + protected abstract Class<? extends AnyService<TO, P>> getAnyServiceClass(); + public abstract int count(String realm, String type); - public abstract List<T> list(String realm, int page, int size, final SortParam<String> sort, final String type); + public abstract List<TO> list(String realm, int page, int size, final SortParam<String> sort, final String type); public abstract int searchCount(String realm, String fiql, final String type); - public abstract List<T> search( + public abstract List<TO> search( String realm, String fiql, int page, int size, final SortParam<String> sort, final String type); - public abstract T read(final String key); + public TO read(final String key) { + return getService(getAnyServiceClass()).read(key); + } - public abstract ProvisioningResult<T> delete(String etag, String key); + public ProvisioningResult<TO> create(final TO to) { + Response response = getService(getAnyServiceClass()).create(to); + return response.readEntity(new GenericType<ProvisioningResult<TO>>() { + }); + } - protected <E extends AnyService<T, ?>> ProvisioningResult<T> delete( - final Class<E> serviceClass, final Class<T> objectType, final String etag, final String key) { - ProvisioningResult<T> result; + public ProvisioningResult<TO> update(final String etag, final P patch) { + ProvisioningResult<TO> result; synchronized (this) { - final E service = getService(etag, serviceClass); - result = service.delete(key).readEntity(new GenericType<ProvisioningResult<T>>() { - }); - resetClient(serviceClass); + result = getService(etag, getAnyServiceClass()).update(patch). + readEntity(new GenericType<ProvisioningResult<TO>>() { + }); + resetClient(UserService.class); } return result; } - public abstract BulkActionResult bulkAction(BulkAction action); - - protected abstract Class<? extends AnyService<?, ?>> getAnyServiceClass(); + public ProvisioningResult<TO> delete(final String etag, final String key) { + ProvisioningResult<TO> result; + synchronized (this) { + result = getService(etag, getAnyServiceClass()).delete(key). + readEntity(new GenericType<ProvisioningResult<TO>>() { + }); + resetClient(getAnyServiceClass()); + } + return result; + } public BulkActionResult unlink(final String etag, final String key, final List<StatusBean> statuses) { BulkActionResult result; @@ -178,4 +197,7 @@ public abstract class AbstractAnyRestClient<T extends AnyTO> extends BaseRestCli return result; } + public BulkActionResult bulkAction(final BulkAction action) { + return getService(getAnyServiceClass()).bulk(action).readEntity(BulkActionResult.class); + } } http://git-wip-us.apache.org/repos/asf/syncope/blob/ca056b81/client/console/src/main/java/org/apache/syncope/client/console/rest/AnyObjectRestClient.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/AnyObjectRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/AnyObjectRestClient.java index 1160fe7..2b91a8d 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/rest/AnyObjectRestClient.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/AnyObjectRestClient.java @@ -19,14 +19,9 @@ package org.apache.syncope.client.console.rest; import java.util.List; -import javax.ws.rs.core.GenericType; -import javax.ws.rs.core.Response; import org.apache.syncope.common.lib.patch.AnyObjectPatch; import org.apache.syncope.common.lib.to.AnyObjectTO; -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.ProvisioningResult; import org.apache.syncope.common.rest.api.beans.AnyListQuery; import org.apache.syncope.common.rest.api.beans.AnySearchQuery; import org.apache.syncope.common.rest.api.service.AnyObjectService; @@ -36,12 +31,12 @@ import org.apache.wicket.extensions.markup.html.repeater.util.SortParam; /** * Console client for invoking Rest any type class services. */ -public class AnyObjectRestClient extends AbstractAnyRestClient<AnyObjectTO> { +public class AnyObjectRestClient extends AbstractAnyRestClient<AnyObjectTO, AnyObjectPatch> { private static final long serialVersionUID = -8874495991295283249L; @Override - protected Class<? extends AnyService<?, ?>> getAnyServiceClass() { + protected Class<? extends AnyService<AnyObjectTO, AnyObjectPatch>> getAnyServiceClass() { return AnyObjectService.class; } @@ -79,36 +74,4 @@ public class AnyObjectRestClient extends AbstractAnyRestClient<AnyObjectTO> { new AnySearchQuery.Builder().realm(realm).fiql(fiql).page(page).size(size). orderBy(toOrderBy(sort)).details(false).build()).getResult(); } - - @Override - public AnyObjectTO read(final String key) { - return getService(AnyObjectService.class).read(key); - } - - public ProvisioningResult<AnyObjectTO> create(final AnyObjectTO anyObjectTO) { - Response response = getService(AnyObjectService.class).create(anyObjectTO); - return response.readEntity(new GenericType<ProvisioningResult<AnyObjectTO>>() { - }); - } - - public ProvisioningResult<AnyObjectTO> update(final String etag, final AnyObjectPatch anyObjectPatch) { - ProvisioningResult<AnyObjectTO> result; - synchronized (this) { - AnyObjectService service = getService(etag, AnyObjectService.class); - result = service.update(anyObjectPatch).readEntity(new GenericType<ProvisioningResult<AnyObjectTO>>() { - }); - resetClient(AnyObjectService.class); - } - return result; - } - - @Override - public ProvisioningResult<AnyObjectTO> delete(final String etag, final String key) { - return delete(AnyObjectService.class, AnyObjectTO.class, etag, key); - } - - @Override - public BulkActionResult bulkAction(final BulkAction action) { - return getService(AnyObjectService.class).bulk(action); - } } http://git-wip-us.apache.org/repos/asf/syncope/blob/ca056b81/client/console/src/main/java/org/apache/syncope/client/console/rest/GroupRestClient.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/GroupRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/GroupRestClient.java index ff5e08e..0fddcb2 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/rest/GroupRestClient.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/GroupRestClient.java @@ -19,13 +19,8 @@ package org.apache.syncope.client.console.rest; import java.util.List; -import javax.ws.rs.core.GenericType; -import javax.ws.rs.core.Response; import org.apache.syncope.common.lib.patch.GroupPatch; -import org.apache.syncope.common.lib.to.BulkAction; -import org.apache.syncope.common.lib.to.BulkActionResult; import org.apache.syncope.common.lib.to.GroupTO; -import org.apache.syncope.common.lib.to.ProvisioningResult; import org.apache.syncope.common.rest.api.beans.AnyListQuery; import org.apache.syncope.common.rest.api.beans.AnySearchQuery; import org.apache.syncope.common.rest.api.service.AnyService; @@ -35,12 +30,12 @@ import org.apache.wicket.extensions.markup.html.repeater.util.SortParam; /** * Console client for invoking Rest Group's services. */ -public class GroupRestClient extends AbstractAnyRestClient<GroupTO> { +public class GroupRestClient extends AbstractAnyRestClient<GroupTO, GroupPatch> { private static final long serialVersionUID = -8549081557283519638L; @Override - protected Class<? extends AnyService<?, ?>> getAnyServiceClass() { + protected Class<? extends AnyService<GroupTO, GroupPatch>> getAnyServiceClass() { return GroupService.class; } @@ -79,35 +74,4 @@ public class GroupRestClient extends AbstractAnyRestClient<GroupTO> { getResult(); } - public ProvisioningResult<GroupTO> create(final GroupTO groupTO) { - Response response = getService(GroupService.class).create(groupTO); - return response.readEntity(new GenericType<ProvisioningResult<GroupTO>>() { - }); - } - - @Override - public GroupTO read(final String key) { - return getService(GroupService.class).read(key); - } - - public ProvisioningResult<GroupTO> update(final String etag, final GroupPatch patch) { - ProvisioningResult<GroupTO> result; - synchronized (this) { - GroupService service = getService(etag, GroupService.class); - result = service.update(patch).readEntity(new GenericType<ProvisioningResult<GroupTO>>() { - }); - resetClient(GroupService.class); - } - return result; - } - - @Override - public ProvisioningResult<GroupTO> delete(final String etag, final String key) { - return delete(GroupService.class, GroupTO.class, etag, key); - } - - @Override - public BulkActionResult bulkAction(final BulkAction action) { - return getService(GroupService.class).bulk(action); - } } http://git-wip-us.apache.org/repos/asf/syncope/blob/ca056b81/client/console/src/main/java/org/apache/syncope/client/console/rest/UserRestClient.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/UserRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/UserRestClient.java index dce489c..7ea8d68 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/rest/UserRestClient.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/UserRestClient.java @@ -26,8 +26,6 @@ import org.apache.syncope.client.console.commons.status.StatusUtils; import org.apache.syncope.common.lib.patch.BooleanReplacePatchItem; import org.apache.syncope.common.lib.patch.StatusPatch; import org.apache.syncope.common.lib.patch.UserPatch; -import org.apache.syncope.common.lib.to.BulkAction; -import org.apache.syncope.common.lib.to.BulkActionResult; import org.apache.syncope.common.lib.to.ProvisioningResult; import org.apache.syncope.common.lib.to.UserTO; import org.apache.syncope.common.lib.types.StatusPatchType; @@ -40,15 +38,21 @@ import org.apache.wicket.extensions.markup.html.repeater.util.SortParam; /** * Console client for invoking rest users services. */ -public class UserRestClient extends AbstractAnyRestClient<UserTO> { +public class UserRestClient extends AbstractAnyRestClient<UserTO, UserPatch> { private static final long serialVersionUID = -1575748964398293968L; @Override - protected Class<? extends AnyService<?, ?>> getAnyServiceClass() { + protected Class<? extends AnyService<UserTO, UserPatch>> getAnyServiceClass() { return UserService.class; } + public ProvisioningResult<UserTO> create(final UserTO userTO, final boolean storePassword) { + Response response = getService(UserService.class).create(userTO, storePassword); + return response.readEntity(new GenericType<ProvisioningResult<UserTO>>() { + }); + } + @Override public int count(final String realm, final String type) { return getService(UserService.class). @@ -65,33 +69,6 @@ public class UserRestClient extends AbstractAnyRestClient<UserTO> { orderBy(toOrderBy(sort)).details(false).build()).getResult(); } - public ProvisioningResult<UserTO> create(final UserTO userTO, final boolean storePassword) { - Response response = getService(UserService.class).create(userTO, storePassword); - return response.readEntity(new GenericType<ProvisioningResult<UserTO>>() { - }); - } - - public ProvisioningResult<UserTO> update(final String etag, final UserPatch userPatch) { - ProvisioningResult<UserTO> result; - synchronized (this) { - UserService service = getService(etag, UserService.class); - result = service.update(userPatch).readEntity(new GenericType<ProvisioningResult<UserTO>>() { - }); - resetClient(UserService.class); - } - return result; - } - - @Override - public ProvisioningResult<UserTO> delete(final String etag, final String key) { - return delete(UserService.class, UserTO.class, etag, key); - } - - @Override - public UserTO read(final String key) { - return getService(UserService.class).read(key); - } - @Override public int searchCount(final String realm, final String fiql, final String type) { return getService(UserService.class). @@ -137,9 +114,4 @@ public class UserRestClient extends AbstractAnyRestClient<UserTO> { resetClient(UserService.class); } } - - @Override - public BulkActionResult bulkAction(final BulkAction action) { - return getService(UserService.class).bulk(action); - } } http://git-wip-us.apache.org/repos/asf/syncope/blob/ca056b81/client/console/src/main/java/org/apache/syncope/client/console/status/StatusDirectoryPanel.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/status/StatusDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/status/StatusDirectoryPanel.java index 835e478..5cd2180 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/status/StatusDirectoryPanel.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/status/StatusDirectoryPanel.java @@ -55,7 +55,7 @@ import org.apache.wicket.model.IModel; import org.apache.wicket.model.StringResourceModel; public class StatusDirectoryPanel - extends DirectoryPanel<StatusBean, StatusBean, AttributableStatusProvider, AbstractAnyRestClient<?>> + extends DirectoryPanel<StatusBean, StatusBean, AttributableStatusProvider, AbstractAnyRestClient<?, ?>> implements ModalPanel { private static final long serialVersionUID = -9148734710505211261L; http://git-wip-us.apache.org/repos/asf/syncope/blob/ca056b81/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyService.java ---------------------------------------------------------------------- diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyService.java index 56d3bfd..16542f3 100644 --- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyService.java +++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyService.java @@ -38,7 +38,6 @@ import org.apache.syncope.common.lib.patch.DeassociationPatch; import org.apache.syncope.common.lib.to.AnyTO; 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.types.SchemaType; import org.apache.syncope.common.rest.api.beans.AnySearchQuery; @@ -207,11 +206,11 @@ public interface AnyService<TO extends AnyTO, P extends AnyPatch> extends JAXRSS * Executes the provided bulk action. * * @param bulkAction list of any object ids against which the bulk action will be performed. - * @return Bulk action result + * @return Response object featuring BulkActionResult as Entity */ @POST @Path("bulk") @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) @Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) - BulkActionResult bulk(@NotNull BulkAction bulkAction); + Response bulk(@NotNull BulkAction bulkAction); } http://git-wip-us.apache.org/repos/asf/syncope/blob/ca056b81/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 f58e7a0..3e42a3c 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 @@ -325,7 +325,7 @@ public abstract class AbstractAnyService<TO extends AnyTO, P extends AnyPatch> } @Override - public BulkActionResult bulk(final BulkAction bulkAction) { + public Response bulk(final BulkAction bulkAction) { AbstractAnyLogic<TO, P> logic = getAnyLogic(); BulkActionResult result = new BulkActionResult(); @@ -410,7 +410,7 @@ public abstract class AbstractAnyService<TO extends AnyTO, P extends AnyPatch> default: } - return result; + return modificationResponse(result); } } http://git-wip-us.apache.org/repos/asf/syncope/blob/ca056b81/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 3e7c6db..5a76218 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 @@ -1579,19 +1579,19 @@ public class UserITCase extends AbstractITCase { assertEquals(11, bulkAction.getTargets().size()); bulkAction.setType(BulkAction.Type.SUSPEND); - BulkActionResult res = userService.bulk(bulkAction); + BulkActionResult res = userService.bulk(bulkAction).readEntity(BulkActionResult.class); assertEquals(10, res.getResultByStatus(Status.SUCCESS).size()); assertEquals(1, res.getResultByStatus(Status.FAILURE).size()); assertEquals("suspended", userService.read(res.getResultByStatus(Status.SUCCESS).get(3)).getStatus()); bulkAction.setType(BulkAction.Type.REACTIVATE); - res = userService.bulk(bulkAction); + res = userService.bulk(bulkAction).readEntity(BulkActionResult.class); assertEquals(10, res.getResultByStatus(Status.SUCCESS).size()); assertEquals(1, res.getResultByStatus(Status.FAILURE).size()); assertEquals("active", userService.read(res.getResultByStatus(Status.SUCCESS).get(3)).getStatus()); bulkAction.setType(BulkAction.Type.DELETE); - res = userService.bulk(bulkAction); + res = userService.bulk(bulkAction).readEntity(BulkActionResult.class); assertEquals(10, res.getResultByStatus(Status.SUCCESS).size()); assertEquals(1, res.getResultByStatus(Status.FAILURE).size()); }