You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2017/12/26 16:26:13 UTC
[2/4] syncope git commit: Enhancing Swagger friendliness for REST
services
Enhancing Swagger friendliness for REST services
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/130c4a08
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/130c4a08
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/130c4a08
Branch: refs/heads/2_0_X
Commit: 130c4a084710b77eb7005bf0885cfccaa5d39558
Parents: 5cd0284
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Tue Dec 26 16:53:45 2017 +0100
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Tue Dec 26 16:53:45 2017 +0100
----------------------------------------------------------------------
.../client/console/bulk/BulkContent.java | 4 +-
.../client/console/commons/AnyDataProvider.java | 4 +-
.../commons/ResourceStatusDataProvider.java | 2 +-
.../console/panels/AnyDirectoryPanel.java | 4 +-
.../search/AnySelectionDirectoryPanel.java | 4 +-
.../console/rest/AbstractAnyRestClient.java | 35 ++++----------
.../console/rest/AnyObjectRestClient.java | 28 ++++++++++--
.../client/console/rest/GroupRestClient.java | 24 +++++++++-
.../client/console/rest/UserRestClient.java | 15 +++++-
.../console/status/AnyStatusDirectoryPanel.java | 2 +-
.../client/console/status/AnyStatusModal.java | 2 +-
.../status/ResourceStatusDirectoryPanel.java | 2 +-
.../console/status/ResourceStatusModal.java | 4 +-
.../client/console/status/StatusModal.java | 2 +-
.../rest/api/service/AccessTokenService.java | 7 ++-
.../rest/api/service/AnyObjectService.java | 48 +++++++++++++++++++-
.../common/rest/api/service/AnyService.java | 45 ++----------------
.../rest/api/service/AnyTypeClassService.java | 6 ++-
.../common/rest/api/service/AnyTypeService.java | 6 ++-
.../rest/api/service/ConfigurationService.java | 6 ++-
.../api/service/ConnectorHistoryService.java | 7 ++-
.../rest/api/service/ConnectorService.java | 13 ++++--
.../common/rest/api/service/DomainService.java | 6 ++-
.../rest/api/service/DynRealmService.java | 6 ++-
.../rest/api/service/ExecutableService.java | 7 ++-
.../common/rest/api/service/GroupService.java | 46 ++++++++++++++++++-
.../common/rest/api/service/LoggerService.java | 7 ++-
.../rest/api/service/MailTemplateService.java | 9 ++--
.../rest/api/service/NotificationService.java | 9 ++--
.../common/rest/api/service/PolicyService.java | 6 ++-
.../api/service/RelationshipTypeService.java | 6 ++-
.../common/rest/api/service/ReportService.java | 6 ++-
.../rest/api/service/ReportTemplateService.java | 10 ++--
.../api/service/ResourceHistoryService.java | 7 ++-
.../rest/api/service/ResourceService.java | 19 ++++++--
.../common/rest/api/service/RoleService.java | 12 +++--
.../common/rest/api/service/SchemaService.java | 6 ++-
.../api/service/SecurityQuestionService.java | 6 ++-
.../common/rest/api/service/TaskService.java | 6 ++-
.../rest/api/service/UserSelfService.java | 6 ++-
.../common/rest/api/service/UserService.java | 30 +++++++++++-
.../rest/api/service/WorkflowService.java | 6 ++-
.../syncope/core/logic/AbstractAnyLogic.java | 10 ++--
.../syncope/core/logic/AnyObjectLogic.java | 1 -
.../apache/syncope/core/logic/GroupLogic.java | 3 +-
.../apache/syncope/core/logic/UserLogic.java | 6 ---
.../rest/cxf/service/AbstractAnyService.java | 31 +++----------
.../cxf/service/AbstractExecutableService.java | 7 ++-
.../cxf/service/AccessTokenServiceImpl.java | 6 ++-
.../rest/cxf/service/AnyObjectServiceImpl.java | 26 +++++++++++
.../cxf/service/AnyTypeClassServiceImpl.java | 6 ++-
.../rest/cxf/service/AnyTypeServiceImpl.java | 6 ++-
.../cxf/service/ConfigurationServiceImpl.java | 6 ++-
.../service/ConnectorHistoryServiceImpl.java | 7 ++-
.../rest/cxf/service/ConnectorServiceImpl.java | 12 +++--
.../rest/cxf/service/DomainServiceImpl.java | 6 ++-
.../rest/cxf/service/DynRealmServiceImpl.java | 6 ++-
.../core/rest/cxf/service/GroupServiceImpl.java | 26 +++++++++++
.../rest/cxf/service/LoggerServiceImpl.java | 8 ++--
.../cxf/service/MailTemplateServiceImpl.java | 9 ++--
.../cxf/service/NotificationServiceImpl.java | 9 ++--
.../rest/cxf/service/PolicyServiceImpl.java | 6 ++-
.../service/RelationshipTypeServiceImpl.java | 6 ++-
.../rest/cxf/service/ReportServiceImpl.java | 6 ++-
.../cxf/service/ReportTemplateServiceImpl.java | 9 ++--
.../cxf/service/ResourceHistoryServiceImpl.java | 7 ++-
.../rest/cxf/service/ResourceServiceImpl.java | 15 ++++--
.../core/rest/cxf/service/RoleServiceImpl.java | 12 +++--
.../rest/cxf/service/SchemaServiceImpl.java | 6 ++-
.../service/SecurityQuestionServiceImpl.java | 6 ++-
.../core/rest/cxf/service/TaskServiceImpl.java | 6 ++-
.../rest/cxf/service/UserSelfServiceImpl.java | 6 ++-
.../core/rest/cxf/service/UserServiceImpl.java | 18 ++++++++
.../rest/cxf/service/WorkflowServiceImpl.java | 6 ++-
.../rest/api/service/CamelRouteService.java | 8 +++-
.../rest/cxf/service/CamelRouteServiceImpl.java | 7 ++-
.../rest/api/service/SAML2IdPService.java | 6 ++-
.../common/rest/api/service/SAML2SPService.java | 3 +-
.../rest/cxf/service/SAML2IdPServiceImpl.java | 6 ++-
.../rest/cxf/service/SAML2SPServiceImpl.java | 3 +-
.../rest/api/service/SCIMConfService.java | 4 +-
.../rest/cxf/service/SCIMConfServiceImpl.java | 4 +-
.../ext/scimv2/cxf/service/UserServiceImpl.java | 2 +-
.../syncope/fit/core/AuthenticationITCase.java | 4 +-
.../syncope/fit/core/MultitenancyITCase.java | 2 +-
.../org/apache/syncope/fit/core/SCIMITCase.java | 6 +--
.../org/apache/syncope/fit/core/UserITCase.java | 4 +-
87 files changed, 573 insertions(+), 272 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/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 58c8f57..ffaf9bf 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
@@ -183,8 +183,8 @@ public class BulkContent<T extends Serializable, S> extends MultilevelPanel.Seco
throw new IllegalArgumentException("Invalid bulk action executor");
}
- final AbstractAnyRestClient<?, ?> anyRestClient = AbstractAnyRestClient.class.cast(
- bulkActionExecutor);
+ final AbstractAnyRestClient<?> anyRestClient = AbstractAnyRestClient.class.
+ cast(bulkActionExecutor);
// Group bean information by anyKey
final Map<String, List<StatusBean>> beans = new HashMap<>();
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/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 8b3c67b..ff4161c 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
@@ -42,7 +42,7 @@ public class AnyDataProvider<A extends AnyTO> extends DirectoryDataProvider<A> {
private final SortableAnyProviderComparator<A> comparator;
- private final AbstractAnyRestClient<A, ?> restClient;
+ private final AbstractAnyRestClient<A> restClient;
protected String fiql;
@@ -55,7 +55,7 @@ public class AnyDataProvider<A extends AnyTO> extends DirectoryDataProvider<A> {
private final PageReference pageRef;
public AnyDataProvider(
- final AbstractAnyRestClient<A, ?> restClient,
+ final AbstractAnyRestClient<A> restClient,
final int paginatorRows,
final boolean filtered,
final String realm,
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/client/console/src/main/java/org/apache/syncope/client/console/commons/ResourceStatusDataProvider.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/commons/ResourceStatusDataProvider.java b/client/console/src/main/java/org/apache/syncope/client/console/commons/ResourceStatusDataProvider.java
index 0d936a5..e54e4e6 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/commons/ResourceStatusDataProvider.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/commons/ResourceStatusDataProvider.java
@@ -50,7 +50,7 @@ public class ResourceStatusDataProvider extends DirectoryDataProvider<StatusBean
private final SortableDataProviderComparator<StatusBean> comparator;
- private final AbstractAnyRestClient<? extends AnyTO, ?> restClient;
+ private final AbstractAnyRestClient<? extends AnyTO> restClient;
protected String fiql;
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/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 4a7d513..3b05c8b 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
@@ -64,7 +64,7 @@ import org.apache.wicket.model.ResourceModel;
import org.apache.wicket.model.util.ListModel;
import org.springframework.util.ReflectionUtils;
-public abstract class AnyDirectoryPanel<A extends AnyTO, E extends AbstractAnyRestClient<A, ?>>
+public abstract class AnyDirectoryPanel<A extends AnyTO, E extends AbstractAnyRestClient<A>>
extends DirectoryPanel<A, AnyWrapper<A>, AnyDataProvider<A>, E> {
private static final long serialVersionUID = -1100228004207271270L;
@@ -240,7 +240,7 @@ public abstract class AnyDirectoryPanel<A extends AnyTO, E extends AbstractAnyRe
List<AnyTypeClassTO> getAnyTypeClassTOs();
}
- public abstract static class Builder<A extends AnyTO, E extends AbstractAnyRestClient<A, ?>>
+ public abstract static class Builder<A extends AnyTO, E extends AbstractAnyRestClient<A>>
extends DirectoryPanel.Builder<A, AnyWrapper<A>, E>
implements AnyDirectoryPanelBuilder {
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/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 7eeb59c..3ce4143 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
@@ -35,7 +35,7 @@ import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.event.Broadcast;
import org.apache.wicket.model.IModel;
-public abstract class AnySelectionDirectoryPanel<A extends AnyTO, E extends AbstractAnyRestClient<A, ?>>
+public abstract class AnySelectionDirectoryPanel<A extends AnyTO, E extends AbstractAnyRestClient<A>>
extends AnyDirectoryPanel<A, E> {
private static final long serialVersionUID = -1100228004207271272L;
@@ -71,7 +71,7 @@ public abstract class AnySelectionDirectoryPanel<A extends AnyTO, E extends Abst
return Collections.<ActionType>emptyList();
}
- public abstract static class Builder<A extends AnyTO, E extends AbstractAnyRestClient<A, ?>>
+ public abstract static class Builder<A extends AnyTO, E extends AbstractAnyRestClient<A>>
extends AnyDirectoryPanel.Builder<A, E> {
private static final long serialVersionUID = 5460024856989891156L;
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/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 4796ddb..4cfdddb 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
@@ -20,10 +20,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.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;
@@ -36,11 +34,11 @@ import org.apache.syncope.common.lib.types.ResourceDeassociationAction;
import org.apache.syncope.common.rest.api.service.AnyService;
import org.apache.wicket.extensions.markup.html.repeater.util.SortParam;
-public abstract class AbstractAnyRestClient<TO extends AnyTO, P extends AnyPatch> extends BaseRestClient {
+public abstract class AbstractAnyRestClient<TO extends AnyTO> extends BaseRestClient {
private static final long serialVersionUID = 1962529678091410544L;
- protected abstract Class<? extends AnyService<TO, P>> getAnyServiceClass();
+ protected abstract Class<? extends AnyService<TO>> getAnyServiceClass();
public abstract int searchCount(String realm, String fiql, String type);
@@ -50,23 +48,6 @@ public abstract class AbstractAnyRestClient<TO extends AnyTO, P extends AnyPatch
return getService(getAnyServiceClass()).read(key);
}
- public ProvisioningResult<TO> create(final TO to) {
- Response response = getService(getAnyServiceClass()).create(to);
- return response.readEntity(new GenericType<ProvisioningResult<TO>>() {
- });
- }
-
- public ProvisioningResult<TO> update(final String etag, final P patch) {
- ProvisioningResult<TO> result;
- synchronized (this) {
- result = getService(etag, getAnyServiceClass()).update(patch).
- readEntity(new GenericType<ProvisioningResult<TO>>() {
- });
- resetClient(getAnyServiceClass());
- }
- return result;
- }
-
public ProvisioningResult<TO> delete(final String etag, final String key) {
ProvisioningResult<TO> result;
synchronized (this) {
@@ -81,7 +62,7 @@ public abstract class AbstractAnyRestClient<TO extends AnyTO, P extends AnyPatch
public BulkActionResult unlink(final String etag, final String key, final List<StatusBean> statuses) {
BulkActionResult result;
synchronized (this) {
- AnyService<?, ?> service = getService(etag, getAnyServiceClass());
+ AnyService<?> service = getService(etag, getAnyServiceClass());
DeassociationPatch deassociationPatch = new DeassociationPatch.Builder().key(key).
action(ResourceDeassociationAction.UNLINK).
@@ -97,7 +78,7 @@ public abstract class AbstractAnyRestClient<TO extends AnyTO, P extends AnyPatch
public BulkActionResult link(final String etag, final String key, final List<StatusBean> statuses) {
BulkActionResult result;
synchronized (this) {
- AnyService<?, ?> service = getService(etag, getAnyServiceClass());
+ AnyService<?> service = getService(etag, getAnyServiceClass());
StatusPatch statusPatch = StatusUtils.buildStatusPatch(statuses);
@@ -116,7 +97,7 @@ public abstract class AbstractAnyRestClient<TO extends AnyTO, P extends AnyPatch
public BulkActionResult deprovision(final String etag, final String key, final List<StatusBean> statuses) {
BulkActionResult result;
synchronized (this) {
- AnyService<?, ?> service = getService(etag, getAnyServiceClass());
+ AnyService<?> service = getService(etag, getAnyServiceClass());
DeassociationPatch deassociationPatch = new DeassociationPatch.Builder().key(key).
action(ResourceDeassociationAction.DEPROVISION).
@@ -132,7 +113,7 @@ public abstract class AbstractAnyRestClient<TO extends AnyTO, P extends AnyPatch
public BulkActionResult provision(final String etag, final String key, final List<StatusBean> statuses) {
BulkActionResult result;
synchronized (this) {
- AnyService<?, ?> service = getService(etag, getAnyServiceClass());
+ AnyService<?> service = getService(etag, getAnyServiceClass());
StatusPatch statusPatch = StatusUtils.buildStatusPatch(statuses);
@@ -151,7 +132,7 @@ public abstract class AbstractAnyRestClient<TO extends AnyTO, P extends AnyPatch
public BulkActionResult unassign(final String etag, final String key, final List<StatusBean> statuses) {
BulkActionResult result;
synchronized (this) {
- AnyService<?, ?> service = getService(etag, getAnyServiceClass());
+ AnyService<?> service = getService(etag, getAnyServiceClass());
DeassociationPatch deassociationPatch = new DeassociationPatch.Builder().key(key).
action(ResourceDeassociationAction.UNASSIGN).
@@ -167,7 +148,7 @@ public abstract class AbstractAnyRestClient<TO extends AnyTO, P extends AnyPatch
public BulkActionResult assign(final String etag, final String key, final List<StatusBean> statuses) {
BulkActionResult result;
synchronized (this) {
- AnyService<?, ?> service = getService(etag, getAnyServiceClass());
+ AnyService<?> service = getService(etag, getAnyServiceClass());
StatusPatch statusPatch = StatusUtils.buildStatusPatch(statuses);
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/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 4e6092c..31cd3a8 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
@@ -18,9 +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.common.lib.patch.AnyObjectPatch;
import org.apache.syncope.common.lib.to.AnyObjectTO;
+import org.apache.syncope.common.lib.to.ProvisioningResult;
import org.apache.syncope.common.rest.api.beans.AnyQuery;
import org.apache.syncope.common.rest.api.service.AnyObjectService;
import org.apache.syncope.common.rest.api.service.AnyService;
@@ -29,15 +34,32 @@ 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, AnyObjectPatch> {
+public class AnyObjectRestClient extends AbstractAnyRestClient<AnyObjectTO> {
private static final long serialVersionUID = -8874495991295283249L;
@Override
- protected Class<? extends AnyService<AnyObjectTO, AnyObjectPatch>> getAnyServiceClass() {
+ protected Class<? extends AnyService<AnyObjectTO>> getAnyServiceClass() {
return AnyObjectService.class;
}
+ 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 patch) {
+ ProvisioningResult<AnyObjectTO> result;
+ synchronized (this) {
+ result = getService(etag, AnyObjectService.class).update(patch).
+ readEntity(new GenericType<ProvisioningResult<AnyObjectTO>>() {
+ });
+ resetClient(getAnyServiceClass());
+ }
+ return result;
+ }
+
@Override
public int searchCount(final String realm, final String fiql, final String type) {
return getService(AnyObjectService.class).
@@ -52,6 +74,6 @@ public class AnyObjectRestClient extends AbstractAnyRestClient<AnyObjectTO, AnyO
return getService(AnyObjectService.class).search(
new AnyQuery.Builder().realm(realm).fiql(fiql).page(page).size(size).
- orderBy(toOrderBy(sort)).details(false).build()).getResult();
+ orderBy(toOrderBy(sort)).details(false).build()).getResult();
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/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 60ec367..c7ff004 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
@@ -20,9 +20,12 @@ package org.apache.syncope.client.console.rest;
import java.util.ArrayList;
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.GroupTO;
import org.apache.syncope.common.lib.to.PagedResult;
+import org.apache.syncope.common.lib.to.ProvisioningResult;
import org.apache.syncope.common.lib.types.BulkMembersActionType;
import org.apache.syncope.common.rest.api.beans.AnyQuery;
import org.apache.syncope.common.rest.api.service.AnyService;
@@ -32,15 +35,32 @@ import org.apache.wicket.extensions.markup.html.repeater.util.SortParam;
/**
* Console client for invoking Rest Group's services.
*/
-public class GroupRestClient extends AbstractAnyRestClient<GroupTO, GroupPatch> {
+public class GroupRestClient extends AbstractAnyRestClient<GroupTO> {
private static final long serialVersionUID = -8549081557283519638L;
@Override
- protected Class<? extends AnyService<GroupTO, GroupPatch>> getAnyServiceClass() {
+ protected Class<? extends AnyService<GroupTO>> getAnyServiceClass() {
return GroupService.class;
}
+ public ProvisioningResult<GroupTO> create(final GroupTO groupTO) {
+ Response response = getService(GroupService.class).create(groupTO);
+ return response.readEntity(new GenericType<ProvisioningResult<GroupTO>>() {
+ });
+ }
+
+ public ProvisioningResult<GroupTO> update(final String etag, final GroupPatch patch) {
+ ProvisioningResult<GroupTO> result;
+ synchronized (this) {
+ result = getService(etag, GroupService.class).update(patch).
+ readEntity(new GenericType<ProvisioningResult<GroupTO>>() {
+ });
+ resetClient(getAnyServiceClass());
+ }
+ return result;
+ }
+
@Override
public int searchCount(final String realm, final String fiql, final String type) {
return getService(GroupService.class).
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/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 68e3a01..b64ff9b 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
@@ -42,12 +42,12 @@ import org.apache.wicket.extensions.markup.html.repeater.util.SortParam;
/**
* Console client for invoking rest users services.
*/
-public class UserRestClient extends AbstractAnyRestClient<UserTO, UserPatch> {
+public class UserRestClient extends AbstractAnyRestClient<UserTO> {
private static final long serialVersionUID = -1575748964398293968L;
@Override
- protected Class<? extends AnyService<UserTO, UserPatch>> getAnyServiceClass() {
+ protected Class<? extends AnyService<UserTO>> getAnyServiceClass() {
return UserService.class;
}
@@ -57,6 +57,17 @@ public class UserRestClient extends AbstractAnyRestClient<UserTO, UserPatch> {
});
}
+ public ProvisioningResult<UserTO> update(final String etag, final UserPatch patch) {
+ ProvisioningResult<UserTO> result;
+ synchronized (this) {
+ result = getService(etag, UserService.class).update(patch).
+ readEntity(new GenericType<ProvisioningResult<UserTO>>() {
+ });
+ resetClient(getAnyServiceClass());
+ }
+ return result;
+ }
+
@Override
public int searchCount(final String realm, final String fiql, final String type) {
return getService(UserService.class).
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/client/console/src/main/java/org/apache/syncope/client/console/status/AnyStatusDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/status/AnyStatusDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/status/AnyStatusDirectoryPanel.java
index c5a90e8..104faf6 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/status/AnyStatusDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/status/AnyStatusDirectoryPanel.java
@@ -60,7 +60,7 @@ import org.apache.wicket.model.IModel;
import org.apache.wicket.model.StringResourceModel;
public class AnyStatusDirectoryPanel
- extends DirectoryPanel<StatusBean, StatusBean, DirectoryDataProvider<StatusBean>, AbstractAnyRestClient<?, ?>>
+ extends DirectoryPanel<StatusBean, StatusBean, DirectoryDataProvider<StatusBean>, AbstractAnyRestClient<?>>
implements ModalPanel {
private static final long serialVersionUID = -9148734710505211261L;
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/client/console/src/main/java/org/apache/syncope/client/console/status/AnyStatusModal.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/status/AnyStatusModal.java b/client/console/src/main/java/org/apache/syncope/client/console/status/AnyStatusModal.java
index 3d069f0..c51981c 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/status/AnyStatusModal.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/status/AnyStatusModal.java
@@ -42,7 +42,7 @@ public class AnyStatusModal<T extends AnyTO> extends StatusModal<T> {
@Override
protected DirectoryPanel<
- StatusBean, StatusBean, DirectoryDataProvider<StatusBean>, AbstractAnyRestClient<?, ?>> getStatusDirectoryPanel(
+ StatusBean, StatusBean, DirectoryDataProvider<StatusBean>, AbstractAnyRestClient<?>> getStatusDirectoryPanel(
final MultilevelPanel mlp,
final BaseModal<?> baseModal,
final PageReference pageReference,
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/client/console/src/main/java/org/apache/syncope/client/console/status/ResourceStatusDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/status/ResourceStatusDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/status/ResourceStatusDirectoryPanel.java
index 041305e..1431442 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/status/ResourceStatusDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/status/ResourceStatusDirectoryPanel.java
@@ -50,7 +50,7 @@ import org.apache.wicket.model.IModel;
import org.apache.wicket.model.StringResourceModel;
public class ResourceStatusDirectoryPanel
- extends DirectoryPanel<StatusBean, StatusBean, DirectoryDataProvider<StatusBean>, AbstractAnyRestClient<?, ?>>
+ extends DirectoryPanel<StatusBean, StatusBean, DirectoryDataProvider<StatusBean>, AbstractAnyRestClient<?>>
implements ModalPanel {
private static final long serialVersionUID = -9148734710505211261L;
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/client/console/src/main/java/org/apache/syncope/client/console/status/ResourceStatusModal.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/status/ResourceStatusModal.java b/client/console/src/main/java/org/apache/syncope/client/console/status/ResourceStatusModal.java
index 18bdd0f..7e71f3d 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/status/ResourceStatusModal.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/status/ResourceStatusModal.java
@@ -55,6 +55,8 @@ public class ResourceStatusModal extends StatusModal<ResourceTO> {
List<String> availableAnyTypes = CollectionUtils.collect(
resource.getProvisions(), new SerializableTransformer<ProvisionTO, String>() {
+ private static final long serialVersionUID = -5381554547270182818L;
+
@Override
public String transform(final ProvisionTO provision) {
return provision.getAnyType();
@@ -82,7 +84,7 @@ public class ResourceStatusModal extends StatusModal<ResourceTO> {
@Override
protected DirectoryPanel<
- StatusBean, StatusBean, DirectoryDataProvider<StatusBean>, AbstractAnyRestClient<?, ?>> getStatusDirectoryPanel(
+ StatusBean, StatusBean, DirectoryDataProvider<StatusBean>, AbstractAnyRestClient<?>> getStatusDirectoryPanel(
final MultilevelPanel mlp,
final BaseModal<?> baseModal,
final PageReference pageReference,
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/client/console/src/main/java/org/apache/syncope/client/console/status/StatusModal.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/status/StatusModal.java b/client/console/src/main/java/org/apache/syncope/client/console/status/StatusModal.java
index 1059919..baba5a5 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/status/StatusModal.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/status/StatusModal.java
@@ -52,7 +52,7 @@ public abstract class StatusModal<T extends Serializable> extends Panel implemen
}
protected abstract DirectoryPanel<
- StatusBean, StatusBean, DirectoryDataProvider<StatusBean>, AbstractAnyRestClient<?, ?>> getStatusDirectoryPanel(
+ StatusBean, StatusBean, DirectoryDataProvider<StatusBean>, AbstractAnyRestClient<?>> getStatusDirectoryPanel(
final MultilevelPanel mlp,
final BaseModal<?> baseModal,
final PageReference pageReference,
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AccessTokenService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AccessTokenService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AccessTokenService.java
index e9f5ff3..c66b7f3 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AccessTokenService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AccessTokenService.java
@@ -57,10 +57,12 @@ public interface AccessTokenService extends JAXRSService {
/**
* Invalidates the access token of the requesting user.
+ *
+ * @return an empty response if operation was successful
*/
@POST
@Path("logout")
- void logout();
+ Response logout();
/**
* Returns a paged list of existing access tokens matching the given query.
@@ -75,8 +77,9 @@ public interface AccessTokenService extends JAXRSService {
* Invalidates the access token matching the provided key.
*
* @param key access token key
+ * @return an empty response if operation was successful
*/
@DELETE
@Path("{key}")
- void delete(@PathParam("key") String key);
+ Response delete(@PathParam("key") String key);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyObjectService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyObjectService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyObjectService.java
index 4127345..144fcf2 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyObjectService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyObjectService.java
@@ -18,7 +18,15 @@
*/
package org.apache.syncope.common.rest.api.service;
+import javax.validation.constraints.NotNull;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import org.apache.cxf.jaxrs.ext.PATCH;
import org.apache.syncope.common.lib.patch.AnyObjectPatch;
import org.apache.syncope.common.lib.to.AnyObjectTO;
@@ -26,5 +34,43 @@ import org.apache.syncope.common.lib.to.AnyObjectTO;
* REST operations for anyObjects.
*/
@Path("anyObjects")
-public interface AnyObjectService extends AnyService<AnyObjectTO, AnyObjectPatch> {
+public interface AnyObjectService extends AnyService<AnyObjectTO> {
+
+ /**
+ * Creates a new any object.
+ *
+ * @param anyObjectTO any object to be created
+ * @return Response object featuring Location header of created any object as well as the any
+ * object itself enriched with propagation status information - ProvisioningResult as Entity
+ */
+ @POST
+ @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
+ @Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
+ Response create(@NotNull AnyObjectTO anyObjectTO);
+
+ /**
+ * Updates any object matching the provided key.
+ *
+ * @param anyObjectPatch modification to be applied to any object matching the provided key
+ * @return Response object featuring the updated any object enriched with propagation status information
+ * - ProvisioningResult as Entity
+ */
+ @PATCH
+ @Path("{key}")
+ @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
+ @Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
+ Response update(@NotNull AnyObjectPatch anyObjectPatch);
+
+ /**
+ * Updates any object matching the provided key.
+ *
+ * @param anyObjectTO complete update
+ * @return Response object featuring the updated any object enriched with propagation status information
+ * - ProvisioningResult as Entity
+ */
+ @PUT
+ @Path("{key}")
+ @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
+ @Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
+ Response update(@NotNull AnyObjectTO anyObjectTO);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/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 ac2fc20..a72cc16 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
@@ -31,8 +31,6 @@ import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
-import org.apache.cxf.jaxrs.ext.PATCH;
-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.to.AnyTO;
@@ -42,7 +40,7 @@ import org.apache.syncope.common.lib.to.PagedResult;
import org.apache.syncope.common.lib.types.SchemaType;
import org.apache.syncope.common.rest.api.beans.AnyQuery;
-public interface AnyService<TO extends AnyTO, P extends AnyPatch> extends JAXRSService {
+public interface AnyService<TO extends AnyTO> extends JAXRSService {
/**
* Reads the list of attributes owned by the given any object for the given schema type.
@@ -103,31 +101,6 @@ public interface AnyService<TO extends AnyTO, P extends AnyPatch> extends JAXRSS
PagedResult<TO> search(@BeanParam AnyQuery anyQuery);
/**
- * Creates a new any object.
- *
- * @param anyTO any object to be created
- * @return Response object featuring Location header of created any object as well as the any
- * object itself enriched with propagation status information - ProvisioningResult as Entity
- */
- @POST
- @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
- @Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
- Response create(@NotNull TO anyTO);
-
- /**
- * Updates any object matching the provided key.
- *
- * @param anyPatch modification to be applied to any object matching the provided key
- * @return Response object featuring the updated any object enriched with propagation status information
- * - ProvisioningResult as Entity
- */
- @PATCH
- @Path("{key}")
- @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
- @Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
- Response update(@NotNull P anyPatch);
-
- /**
* Adds or replaces the attribute, owned by the given any object, for the given schema type and schema.
*
* @param key any object key or name
@@ -145,30 +118,18 @@ public interface AnyService<TO extends AnyTO, P extends AnyPatch> extends JAXRSS
@NotNull AttrTO attrTO);
/**
- * Updates any object matching the provided key.
- *
- * @param anyTO complete update
- * @return Response object featuring the updated any object enriched with propagation status information
- * - ProvisioningResult as Entity
- */
- @PUT
- @Path("{key}")
- @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
- @Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
- Response update(@NotNull TO anyTO);
-
- /**
* Deletes the attribute, owned by the given any object, for the given schema type and schema.
*
* @param key any object key or name
* @param schemaType schema type
* @param schema schema
+ * @return an empty response if operation was successful
*/
@DELETE
@Path("{key}/{schemaType}/{schema}")
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
- void delete(
+ Response delete(
@NotNull @PathParam("key") String key,
@NotNull @PathParam("schemaType") SchemaType schemaType,
@NotNull @PathParam("schema") String schema);
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeClassService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeClassService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeClassService.java
index 3a91e4a..74846a1 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeClassService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeClassService.java
@@ -72,18 +72,20 @@ public interface AnyTypeClassService extends JAXRSService {
* Updates the anyTypeClass matching the provided key.
*
* @param anyTypeClassTO anyTypeClass to be stored
+ * @return an empty response if operation was successful
*/
@PUT
@Path("{key}")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
- void update(@NotNull AnyTypeClassTO anyTypeClassTO);
+ Response update(@NotNull AnyTypeClassTO anyTypeClassTO);
/**
* Deletes the anyTypeClass matching the provided key.
*
* @param key anyTypeClass key to be deleted
+ * @return an empty response if operation was successful
*/
@DELETE
@Path("{key}")
- void delete(@NotNull @PathParam("key") String key);
+ Response delete(@NotNull @PathParam("key") String key);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeService.java
index aa639e8..667009c 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeService.java
@@ -72,18 +72,20 @@ public interface AnyTypeService extends JAXRSService {
* Updates the anyType matching the provided key.
*
* @param anyTypeTO anyType to be stored
+ * @return an empty response if operation was successful
*/
@PUT
@Path("{key}")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
- void update(@NotNull AnyTypeTO anyTypeTO);
+ Response update(@NotNull AnyTypeTO anyTypeTO);
/**
* Deletes the anyType matching the provided key.
*
* @param key anyType key to be deleted
+ * @return an empty response if operation was successful
*/
@DELETE
@Path("{key}")
- void delete(@NotNull @PathParam("key") String key);
+ Response delete(@NotNull @PathParam("key") String key);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConfigurationService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConfigurationService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConfigurationService.java
index 41466e2..add8bd2 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConfigurationService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConfigurationService.java
@@ -70,19 +70,21 @@ public interface ConfigurationService extends JAXRSService {
* Creates / updates the configuration parameter with the given schema.
*
* @param value parameter value
+ * @return an empty response if operation was successful
*/
@PUT
@Path("{schema}")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
- void set(@NotNull AttrTO value);
+ Response set(@NotNull AttrTO value);
/**
* Deletes the configuration parameter with matching schema.
*
* @param schema configuration parameter schema
+ * @return an empty response if operation was successful
*/
@DELETE
@Path("{schema}")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
- void delete(@NotNull @PathParam("schema") String schema);
+ Response delete(@NotNull @PathParam("schema") String schema);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorHistoryService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorHistoryService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorHistoryService.java
index 1825d08..f7f0466 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorHistoryService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorHistoryService.java
@@ -27,6 +27,7 @@ import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
import org.apache.syncope.common.lib.to.ConnInstanceHistoryConfTO;
/**
@@ -50,17 +51,19 @@ public interface ConnectorHistoryService extends JAXRSService {
* Restores the connector configuration history instance matching the provided key.
*
* @param key connector configuration history instance key to be restored
+ * @return an empty response if operation was successful
*/
@POST
@Path("{key}")
- void restore(@NotNull @PathParam("key") String key);
+ Response restore(@NotNull @PathParam("key") String key);
/**
* Deletes the connector configuration history instance matching the provided key.
*
* @param key connector configuration history instance key to be deleted
+ * @return an empty response if operation was successful
*/
@DELETE
@Path("{key}")
- void delete(@NotNull @PathParam("key") String key);
+ Response delete(@NotNull @PathParam("key") String key);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorService.java
index 4c63bd2..4a1adfe 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorService.java
@@ -123,35 +123,40 @@ public interface ConnectorService extends JAXRSService {
* Updates the connector instance matching the provided key.
*
* @param connInstanceTO connector instance to be stored
+ * @return an empty response if operation was successful
*/
@PUT
@Path("{key}")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
- void update(@NotNull ConnInstanceTO connInstanceTO);
+ Response update(@NotNull ConnInstanceTO connInstanceTO);
/**
* Deletes the connector instance matching the provided key.
*
* @param key connector instance key to be deleted
+ * @return an empty response if operation was successful
*/
@DELETE
@Path("{key}")
- void delete(@NotNull @PathParam("key") String key);
+ Response delete(@NotNull @PathParam("key") String key);
/**
* Checks whether the connection to resource could be established.
*
* @param connInstanceTO connector instance to be used for connection check
+ * @return an empty response if operation was successful
*/
@POST
@Path("check")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
- void check(@NotNull ConnInstanceTO connInstanceTO);
+ Response check(@NotNull ConnInstanceTO connInstanceTO);
/**
* Reload all connector bundles and instances.
+ *
+ * @return an empty response if operation was successful
*/
@POST
@Path("reload")
- void reload();
+ Response reload();
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DomainService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DomainService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DomainService.java
index 3443ff6..2e343b9 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DomainService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DomainService.java
@@ -72,18 +72,20 @@ public interface DomainService extends JAXRSService {
* Updates the domain matching the provided key.
*
* @param domainTO domain to be stored
+ * @return an empty response if operation was successful
*/
@PUT
@Path("{key}")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
- void update(@NotNull DomainTO domainTO);
+ Response update(@NotNull DomainTO domainTO);
/**
* Deletes the domain matching the provided key.
*
* @param key domain key to be deleted
+ * @return an empty response if operation was successful
*/
@DELETE
@Path("{key}")
- void delete(@NotNull @PathParam("key") String key);
+ Response delete(@NotNull @PathParam("key") String key);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DynRealmService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DynRealmService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DynRealmService.java
index dc9836d..1ebea81 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DynRealmService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DynRealmService.java
@@ -72,19 +72,21 @@ public interface DynRealmService extends JAXRSService {
* Updates the dynamic realm matching the provided key.
*
* @param dynDynRealmTO dynamic realm to be stored
+ * @return an empty response if operation was successful
*/
@PUT
@Path("{key}")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
- void update(@NotNull DynRealmTO dynDynRealmTO);
+ Response update(@NotNull DynRealmTO dynDynRealmTO);
/**
* Deletes the dynamic realm matching the provided key.
*
* @param key dynamic realm key to be deleted
+ * @return an empty response if operation was successful
*/
@DELETE
@Path("{key}")
- void delete(@NotNull @PathParam("key") String key);
+ Response delete(@NotNull @PathParam("key") String key);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ExecutableService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ExecutableService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ExecutableService.java
index b97f252..11fd1dc 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ExecutableService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ExecutableService.java
@@ -31,6 +31,7 @@ import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
import org.apache.syncope.common.lib.to.BulkActionResult;
import org.apache.syncope.common.lib.to.ExecTO;
import org.apache.syncope.common.lib.to.JobTO;
@@ -68,10 +69,11 @@ public interface ExecutableService extends JAXRSService {
* Deletes the executable execution matching the provided key.
*
* @param executionKey key of executable execution to be deleted
+ * @return an empty response if operation was successful
*/
@DELETE
@Path("executions/{executionKey}")
- void deleteExecution(@NotNull @PathParam("executionKey") String executionKey);
+ Response deleteExecution(@NotNull @PathParam("executionKey") String executionKey);
/**
* Deletes the executions belonging matching the given query.
@@ -110,8 +112,9 @@ public interface ExecutableService extends JAXRSService {
*
* @param key executable key
* @param action action to execute
+ * @return an empty response if operation was successful
*/
@POST
@Path("jobs/{key}")
- void actionJob(@NotNull @PathParam("key") String key, @QueryParam("action") JobAction action);
+ Response actionJob(@NotNull @PathParam("key") String key, @QueryParam("action") JobAction action);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/GroupService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/GroupService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/GroupService.java
index 549b41a..c060bdb 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/GroupService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/GroupService.java
@@ -20,12 +20,16 @@ package org.apache.syncope.common.rest.api.service;
import java.util.List;
import javax.validation.constraints.NotNull;
+import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import org.apache.cxf.jaxrs.ext.PATCH;
import org.apache.syncope.common.lib.patch.GroupPatch;
import org.apache.syncope.common.lib.to.ExecTO;
import org.apache.syncope.common.lib.to.GroupTO;
@@ -35,10 +39,48 @@ import org.apache.syncope.common.lib.types.BulkMembersActionType;
* REST operations for groups.
*/
@Path("groups")
-public interface GroupService extends AnyService<GroupTO, GroupPatch> {
+public interface GroupService extends AnyService<GroupTO> {
/**
- * This method is similar to read() but uses different authentication handling to ensure that a user
+ * Creates a new group.
+ *
+ * @param groupTO group to be created
+ * @return Response object featuring Location header of created group as well as the any
+ * object itself enriched with propagation status information - ProvisioningResult as Entity
+ */
+ @POST
+ @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
+ @Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
+ Response create(@NotNull GroupTO groupTO);
+
+ /**
+ * Updates group matching the provided key.
+ *
+ * @param groupPatch modification to be applied to group matching the provided key
+ * @return Response object featuring the updated group enriched with propagation status information
+ * - ProvisioningResult as Entity
+ */
+ @PATCH
+ @Path("{key}")
+ @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
+ @Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
+ Response update(@NotNull GroupPatch groupPatch);
+
+ /**
+ * Updates group matching the provided key.
+ *
+ * @param groupTO complete update
+ * @return Response object featuring the updated group enriched with propagation status information
+ * - ProvisioningResult as Entity
+ */
+ @PUT
+ @Path("{key}")
+ @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
+ @Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
+ Response update(@NotNull GroupTO groupTO);
+
+ /**
+ * This method is similar to read() but uses different authentication handling to ensure that a group
* can read his own groups.
*
* @return own groups
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/LoggerService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/LoggerService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/LoggerService.java
index 4b9aa83..b1d889c 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/LoggerService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/LoggerService.java
@@ -28,6 +28,7 @@ import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
import org.apache.syncope.common.lib.log.EventCategoryTO;
import org.apache.syncope.common.lib.log.LogAppender;
import org.apache.syncope.common.lib.log.LogStatementTO;
@@ -99,20 +100,22 @@ public interface LoggerService extends JAXRSService {
*
* @param type LoggerType to be selected
* @param logger Logger to be created or updated
+ * @return an empty response if operation was successful
*/
@PUT
@Path("{type}/{key}")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
- void update(@NotNull @PathParam("type") LoggerType type, @NotNull LoggerTO logger);
+ Response update(@NotNull @PathParam("type") LoggerType type, @NotNull LoggerTO logger);
/**
* Deletes the logger with matching name.
*
* @param type LoggerType to be selected
* @param name Logger name to be deleted
+ * @return an empty response if operation was successful
*/
@DELETE
@Path("{type}/{name}")
- void delete(@NotNull @PathParam("type") LoggerType type, @NotNull @PathParam("name") String name);
+ Response delete(@NotNull @PathParam("type") LoggerType type, @NotNull @PathParam("name") String name);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/MailTemplateService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/MailTemplateService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/MailTemplateService.java
index 15f7703..1cd8e73 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/MailTemplateService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/MailTemplateService.java
@@ -74,10 +74,11 @@ public interface MailTemplateService extends JAXRSService {
* Deletes the mail template matching the given key.
*
* @param key key for mail template to be deleted
+ * @return an empty response if operation was successful
*/
@DELETE
@Path("{key}")
- void delete(@NotNull @PathParam("key") String key);
+ Response delete(@NotNull @PathParam("key") String key);
/**
* Gets the template for the given key and format, if available.
@@ -98,10 +99,11 @@ public interface MailTemplateService extends JAXRSService {
* @param key mail template
* @param format template format
* @param templateIn template to be set
+ * @return an empty response if operation was successful
*/
@PUT
@Path("{key}/{format}")
- void setFormat(
+ Response setFormat(
@NotNull @PathParam("key") String key,
@NotNull @PathParam("format") MailTemplateFormat format,
InputStream templateIn);
@@ -111,10 +113,11 @@ public interface MailTemplateService extends JAXRSService {
*
* @param key mail template
* @param format template format
+ * @return an empty response if operation was successful
*/
@DELETE
@Path("{key}/{format}")
- void removeFormat(
+ Response removeFormat(
@NotNull @PathParam("key") String key,
@NotNull @PathParam("format") MailTemplateFormat format);
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/NotificationService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/NotificationService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/NotificationService.java
index 3baf310..458ae63 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/NotificationService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/NotificationService.java
@@ -75,20 +75,22 @@ public interface NotificationService extends JAXRSService {
* Updates the notification matching the given key.
*
* @param notificationTO notification to be stored
+ * @return an empty response if operation was successful
*/
@PUT
@Path("{key}")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
- void update(@NotNull NotificationTO notificationTO);
+ Response update(@NotNull NotificationTO notificationTO);
/**
* Deletes the notification matching the given key.
*
* @param key key for notification to be deleted
+ * @return an empty response if operation was successful
*/
@DELETE
@Path("{key}")
- void delete(@NotNull @PathParam("key") String key);
+ Response delete(@NotNull @PathParam("key") String key);
/**
* Returns details about notification job.
@@ -104,8 +106,9 @@ public interface NotificationService extends JAXRSService {
* Executes an action on the notification job.
*
* @param action action to execute
+ * @return an empty response if operation was successful
*/
@POST
@Path("job")
- void actionJob(@QueryParam("action") JobAction action);
+ Response actionJob(@QueryParam("action") JobAction action);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/PolicyService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/PolicyService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/PolicyService.java
index 2177d51..7c62196 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/PolicyService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/PolicyService.java
@@ -77,19 +77,21 @@ public interface PolicyService extends JAXRSService {
* Updates policy matching the given key.
*
* @param policyTO Policy to replace existing policy
+ * @return an empty response if operation was successful
*/
@PUT
@Path("{key}")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
- void update(@NotNull AbstractPolicyTO policyTO);
+ Response update(@NotNull AbstractPolicyTO policyTO);
/**
* Delete policy matching the given key.
*
* @param key key of policy to be deleted
+ * @return an empty response if operation was successful
*/
@DELETE
@Path("{key}")
- void delete(@NotNull @PathParam("key") String key);
+ Response delete(@NotNull @PathParam("key") String key);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RelationshipTypeService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RelationshipTypeService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RelationshipTypeService.java
index 4b3c640..dfd516f 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RelationshipTypeService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RelationshipTypeService.java
@@ -72,18 +72,20 @@ public interface RelationshipTypeService extends JAXRSService {
* Updates the relationshipType matching the provided key.
*
* @param relationshipTypeTO relationshipType to be stored
+ * @return an empty response if operation was successful
*/
@PUT
@Path("{key}")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
- void update(@NotNull RelationshipTypeTO relationshipTypeTO);
+ Response update(@NotNull RelationshipTypeTO relationshipTypeTO);
/**
* Deletes the relationshipType matching the provided key.
*
* @param key relationshipType key to be deleted
+ * @return an empty response if operation was successful
*/
@DELETE
@Path("{key}")
- void delete(@NotNull @PathParam("key") String key);
+ Response delete(@NotNull @PathParam("key") String key);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportService.java
index cf79682..4db9321 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportService.java
@@ -74,20 +74,22 @@ public interface ReportService extends ExecutableService {
* Updates report with matching key.
*
* @param reportTO report to be stored
+ * @return an empty response if operation was successful
*/
@PUT
@Path("{key}")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
- void update(@NotNull ReportTO reportTO);
+ Response update(@NotNull ReportTO reportTO);
/**
* Deletes report with matching key.
*
* @param key Deletes report with matching key
+ * @return an empty response if operation was successful
*/
@DELETE
@Path("{key}")
- void delete(@NotNull @PathParam("key") String key);
+ Response delete(@NotNull @PathParam("key") String key);
/**
* Exports the report execution with matching key in the requested format.
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportTemplateService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportTemplateService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportTemplateService.java
index 12c197a..6bfb151 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportTemplateService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportTemplateService.java
@@ -74,10 +74,11 @@ public interface ReportTemplateService extends JAXRSService {
* Deletes the report template matching the given key.
*
* @param key key for report template to be deleted
+ * @return an empty response if operation was successful
*/
@DELETE
@Path("{key}")
- void delete(@NotNull @PathParam("key") String key);
+ Response delete(@NotNull @PathParam("key") String key);
/**
* Gets the template for the given key and format, if available.
@@ -85,6 +86,7 @@ public interface ReportTemplateService extends JAXRSService {
* @param key report template
* @param format template format
* @return report template with matching key and format, if available
+ * @return an empty response if operation was successful
*/
@GET
@Path("{key}/{format}")
@@ -98,10 +100,11 @@ public interface ReportTemplateService extends JAXRSService {
* @param key report template
* @param format template format
* @param templateIn template to be set
+ * @return an empty response if operation was successful
*/
@PUT
@Path("{key}/{format}")
- void setFormat(
+ Response setFormat(
@NotNull @PathParam("key") String key,
@NotNull @PathParam("format") ReportTemplateFormat format,
InputStream templateIn);
@@ -111,10 +114,11 @@ public interface ReportTemplateService extends JAXRSService {
*
* @param key report template
* @param format template format
+ * @return an empty response if operation was successful
*/
@DELETE
@Path("{key}/{format}")
- void removeFormat(
+ Response removeFormat(
@NotNull @PathParam("key") String key,
@NotNull @PathParam("format") ReportTemplateFormat format);
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceHistoryService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceHistoryService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceHistoryService.java
index fbf748a..67c8d58 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceHistoryService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceHistoryService.java
@@ -27,6 +27,7 @@ import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
import org.apache.syncope.common.lib.to.ResourceHistoryConfTO;
/**
@@ -50,17 +51,19 @@ public interface ResourceHistoryService extends JAXRSService {
* Restores the resource configuration history matching the provided key.
*
* @param key resource configuration history key to be restored
+ * @return an empty response if operation was successful
*/
@POST
@Path("{key}")
- void restore(@NotNull @PathParam("key") String key);
+ Response restore(@NotNull @PathParam("key") String key);
/**
* Deletes the resource configuration history matching the provided key.
*
* @param key resource configuration history key to be deleted
+ * @return an empty response if operation was successful
*/
@DELETE
@Path("{key}")
- void delete(@NotNull @PathParam("key") String key);
+ Response delete(@NotNull @PathParam("key") String key);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceService.java
index 1ec1f4f..e6adc5a 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceService.java
@@ -111,11 +111,12 @@ public interface ResourceService extends JAXRSService {
* Updates the resource matching the given name.
*
* @param resourceTO resource to be stored
+ * @return an empty response if operation was successful
*/
@PUT
@Path("{key}")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
- void update(@NotNull ResourceTO resourceTO);
+ Response update(@NotNull ResourceTO resourceTO);
/**
* Queries the connector underlying the given resource for the latest sync token value associated to the given any
@@ -123,41 +124,49 @@ public interface ResourceService extends JAXRSService {
*
* @param key resource
* @param anyTypeKey any type
+ * @return an empty response if operation was successful
*/
@POST
@Path("{key}/{anyTypeKey}")
- void setLatestSyncToken(@NotNull @PathParam("key") String key, @NotNull @PathParam("anyTypeKey") String anyTypeKey);
+ Response setLatestSyncToken(
+ @NotNull @PathParam("key") String key,
+ @NotNull @PathParam("anyTypeKey") String anyTypeKey);
/**
* Removes the sync token value associated to the given any type from the given resource.
*
* @param key resource
* @param anyTypeKey any type
+ * @return an empty response if operation was successful
*/
@DELETE
@Path("{key}/{anyTypeKey}")
- void removeSyncToken(@NotNull @PathParam("key") String key, @NotNull @PathParam("anyTypeKey") String anyTypeKey);
+ Response removeSyncToken(
+ @NotNull @PathParam("key") String key,
+ @NotNull @PathParam("anyTypeKey") String anyTypeKey);
/**
* Deletes the resource matching the given name.
*
* @param key name of resource to be deleted
+ * @return an empty response if operation was successful
*/
@DELETE
@Path("{key}")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
- void delete(@NotNull @PathParam("key") String key);
+ Response delete(@NotNull @PathParam("key") String key);
/**
* Checks whether the connection to resource could be established.
*
* @param resourceTO resource to be checked
+ * @return an empty response if operation was successful
*/
@POST
@Path("check")
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
- void check(@NotNull ResourceTO resourceTO);
+ Response check(@NotNull ResourceTO resourceTO);
/**
* De-associate any objects from the given resource.
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RoleService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RoleService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RoleService.java
index 782a3d2..557db76 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RoleService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RoleService.java
@@ -73,20 +73,22 @@ public interface RoleService extends JAXRSService {
* Updates the role matching the provided key.
*
* @param roleTO role to be stored
+ * @return an empty response if operation was successful
*/
@PUT
@Path("{key}")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
- void update(@NotNull RoleTO roleTO);
+ Response update(@NotNull RoleTO roleTO);
/**
* Deletes the role matching the provided key.
*
* @param key role key to be deleted
+ * @return an empty response if operation was successful
*/
@DELETE
@Path("{key}")
- void delete(@NotNull @PathParam("key") String key);
+ Response delete(@NotNull @PathParam("key") String key);
/**
* Gets the console layout information as JSON string for the role with the given key, if available.
@@ -104,18 +106,20 @@ public interface RoleService extends JAXRSService {
*
* @param key role key
* @param consoleLayoutInfoIn console layout information to be set
+ * @return an empty response if operation was successful
*/
@PUT
@Path("{key}/consoleLayout")
@Consumes({ MediaType.APPLICATION_JSON })
- void setConsoleLayoutInfo(@NotNull @PathParam("key") String key, InputStream consoleLayoutInfoIn);
+ Response setConsoleLayoutInfo(@NotNull @PathParam("key") String key, InputStream consoleLayoutInfoIn);
/**
* Removes the console layout information for the role with the given key, if available.
*
* @param key role key
+ * @return an empty response if operation was successful
*/
@DELETE
@Path("{key}/consoleLayout")
- void removeConsoleLayoutInfo(@NotNull @PathParam("key") String key);
+ Response removeConsoleLayoutInfo(@NotNull @PathParam("key") String key);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SchemaService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SchemaService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SchemaService.java
index 1f9f9a0..51403bd 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SchemaService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SchemaService.java
@@ -84,19 +84,21 @@ public interface SchemaService extends JAXRSService {
*
* @param type type for schemas to be updated
* @param schemaTO updated schema to be stored
+ * @return an empty response if operation was successful
*/
@PUT
@Path("{type}/{key}")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
- void update(@NotNull @PathParam("type") SchemaType type, @NotNull AbstractSchemaTO schemaTO);
+ Response update(@NotNull @PathParam("type") SchemaType type, @NotNull AbstractSchemaTO schemaTO);
/**
* Deletes the schema matching the given type and key.
*
* @param type type for schema to be deleted
* @param key name of schema to be deleted
+ * @return an empty response if operation was successful
*/
@DELETE
@Path("{type}/{key}")
- void delete(@NotNull @PathParam("type") SchemaType type, @NotNull @PathParam("key") String key);
+ Response delete(@NotNull @PathParam("type") SchemaType type, @NotNull @PathParam("key") String key);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SecurityQuestionService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SecurityQuestionService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SecurityQuestionService.java
index 08ebbfe..9b43250 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SecurityQuestionService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SecurityQuestionService.java
@@ -72,20 +72,22 @@ public interface SecurityQuestionService extends JAXRSService {
* Updates the security question matching the provided key.
*
* @param securityQuestionTO security question to be stored
+ * @return an empty response if operation was successful
*/
@PUT
@Path("{key}")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
- void update(@NotNull SecurityQuestionTO securityQuestionTO);
+ Response update(@NotNull SecurityQuestionTO securityQuestionTO);
/**
* Deletes the security question matching the provided key.
*
* @param key security question key to be deleted
+ * @return an empty response if operation was successful
*/
@DELETE
@Path("{key}")
- void delete(@NotNull @PathParam("key") String key);
+ Response delete(@NotNull @PathParam("key") String key);
/**
* Ask for security question configured for the user matching the given username, if any.
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/TaskService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/TaskService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/TaskService.java
index 0d1bf41..205e6cd 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/TaskService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/TaskService.java
@@ -85,20 +85,22 @@ public interface TaskService extends ExecutableService {
* Updates the task matching the provided key.
*
* @param taskTO updated task to be stored
+ * @return an empty response if operation was successful
*/
@PUT
@Path("{key}")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
- void update(@NotNull AbstractTaskTO taskTO);
+ Response update(@NotNull AbstractTaskTO taskTO);
/**
* Deletes the task matching the provided key.
*
* @param key key of task to be deleted
+ * @return an empty response if operation was successful
*/
@DELETE
@Path("{key}")
- void delete(@NotNull @PathParam("key") String key);
+ Response delete(@NotNull @PathParam("key") String key);
/**
* Executes the provided bulk action.
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserSelfService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserSelfService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserSelfService.java
index ff95a55..651c9d0 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserSelfService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserSelfService.java
@@ -116,10 +116,11 @@ public interface UserSelfService extends JAXRSService {
*
* @param username username for which the security answer is provided
* @param securityAnswer actual answer text
+ * @return an empty response if operation was successful
*/
@POST
@Path("requestPasswordReset")
- void requestPasswordReset(@NotNull @QueryParam("username") String username, String securityAnswer);
+ Response requestPasswordReset(@NotNull @QueryParam("username") String username, String securityAnswer);
/**
* Reset the password value for the user matching the provided token, if available and still valid.
@@ -129,8 +130,9 @@ public interface UserSelfService extends JAXRSService {
*
* @param token password reset token
* @param password new password to be set
+ * @return an empty response if operation was successful
*/
@POST
@Path("confirmPasswordReset")
- void confirmPasswordReset(@NotNull @QueryParam("token") String token, String password);
+ Response confirmPasswordReset(@NotNull @QueryParam("token") String token, String password);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/130c4a08/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserService.java
index 9157b27..310e631 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserService.java
@@ -22,11 +22,13 @@ import javax.validation.constraints.NotNull;
import javax.ws.rs.Consumes;
import javax.ws.rs.DefaultValue;
import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
+import org.apache.cxf.jaxrs.ext.PATCH;
import org.apache.syncope.common.lib.patch.StatusPatch;
import org.apache.syncope.common.lib.patch.UserPatch;
import org.apache.syncope.common.lib.to.UserTO;
@@ -35,7 +37,7 @@ import org.apache.syncope.common.lib.to.UserTO;
* REST operations for users.
*/
@Path("users")
-public interface UserService extends AnyService<UserTO, UserPatch> {
+public interface UserService extends AnyService<UserTO> {
/**
* Creates a new user.
@@ -53,6 +55,32 @@ public interface UserService extends AnyService<UserTO, UserPatch> {
@DefaultValue("true") @QueryParam("storePassword") boolean storePassword);
/**
+ * Updates user matching the provided key.
+ *
+ * @param userPatch modification to be applied to user matching the provided key
+ * @return Response object featuring the updated user enriched with propagation status information
+ * - ProvisioningResult as Entity
+ */
+ @PATCH
+ @Path("{key}")
+ @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
+ @Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
+ Response update(@NotNull UserPatch userPatch);
+
+ /**
+ * Updates user matching the provided key.
+ *
+ * @param userTO complete update
+ * @return Response object featuring the updated user enriched with propagation status information
+ * - ProvisioningResult as Entity
+ */
+ @PUT
+ @Path("{key}")
+ @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
+ @Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
+ Response update(@NotNull UserTO userTO);
+
+ /**
* Performs a status update on given user.
*
* @param statusPatch status update details