[SYNCOPE-1262] Last matrix parameter still there
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/5cbdfe7b Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/5cbdfe7b Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/5cbdfe7b Branch: refs/heads/master Commit: 5cbdfe7bc58c37a026226b743d2ed9685ad19c37 Parents: 7958ebd Author: Francesco Chicchiriccò <ilgro...@apache.org> Authored: Tue Feb 13 18:24:07 2018 +0100 Committer: Francesco Chicchiriccò <ilgro...@apache.org> Committed: Tue Feb 13 18:24:07 2018 +0100 ---------------------------------------------------------------------- .../panels/ImplementationDirectoryPanel.java | 2 +- .../policies/PolicyRuleDirectoryPanel.java | 8 ++++++- .../policies/PolicyRuleWizardBuilder.java | 15 ++++++++---- .../reports/ReportletDirectoryPanel.java | 11 +++++---- .../console/reports/ReportletWizardBuilder.java | 12 ++++++---- .../console/rest/ImplementationRestClient.java | 8 +++---- .../syncope/common/lib/to/ImplementationTO.java | 1 + .../syncope/common/lib/types/AuditElements.java | 7 +++--- .../common/lib/types/AuditLoggerName.java | 6 +---- .../rest/api/service/ImplementationService.java | 16 ++++++++----- .../syncope/core/logic/ImplementationLogic.java | 16 +++++++++++-- .../cxf/service/ImplementationServiceImpl.java | 8 +++---- .../syncope/fit/core/ImplementationITCase.java | 10 ++++---- .../fit/core/NotificationTaskITCase.java | 5 ++-- .../apache/syncope/fit/core/PolicyITCase.java | 8 +++---- .../apache/syncope/fit/core/PullTaskITCase.java | 25 +++++++++++++------- .../syncope/fit/core/SchedTaskITCase.java | 9 ++++--- .../syncope/fit/core/UserIssuesITCase.java | 10 ++++---- 18 files changed, 108 insertions(+), 69 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/syncope/blob/5cbdfe7b/client/console/src/main/java/org/apache/syncope/client/console/panels/ImplementationDirectoryPanel.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/ImplementationDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/ImplementationDirectoryPanel.java index 60a56d1..4aaea78 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/panels/ImplementationDirectoryPanel.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/ImplementationDirectoryPanel.java @@ -160,7 +160,7 @@ public class ImplementationDirectoryPanel extends DirectoryPanel< @Override public void onClick(final AjaxRequestTarget target, final ImplementationTO ignore) { try { - restClient.delete(model.getObject().getKey()); + restClient.delete(model.getObject().getType(), model.getObject().getKey()); SyncopeConsoleSession.get().info(getString(Constants.OPERATION_SUCCEEDED)); target.add(container); } catch (SyncopeClientException e) { http://git-wip-us.apache.org/repos/asf/syncope/blob/5cbdfe7b/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicyRuleDirectoryPanel.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicyRuleDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicyRuleDirectoryPanel.java index 150c359..600ebd8 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicyRuleDirectoryPanel.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicyRuleDirectoryPanel.java @@ -48,6 +48,7 @@ import org.apache.syncope.common.lib.policy.PolicyTO; import org.apache.syncope.common.lib.policy.RuleConf; import org.apache.syncope.common.lib.to.ImplementationTO; import org.apache.syncope.common.lib.types.ImplementationEngine; +import org.apache.syncope.common.lib.types.ImplementationType; import org.apache.syncope.common.lib.types.PolicyType; import org.apache.wicket.PageReference; import org.apache.wicket.ajax.AjaxRequestTarget; @@ -82,6 +83,8 @@ public class PolicyRuleDirectoryPanel<T extends PolicyTO> extends DirectoryPanel private final PolicyType type; + private final ImplementationType implementationType; + private final String policy; protected PolicyRuleDirectoryPanel( @@ -92,6 +95,9 @@ public class PolicyRuleDirectoryPanel<T extends PolicyTO> extends DirectoryPanel this.baseModal = baseModal; this.type = type; + this.implementationType = type == PolicyType.ACCOUNT + ? ImplementationType.ACCOUNT_RULE + : ImplementationType.PASSWORD_RULE; this.policy = policy; this.restClient = new PolicyRestClient(); @@ -234,7 +240,7 @@ public class PolicyRuleDirectoryPanel<T extends PolicyTO> extends DirectoryPanel @SuppressWarnings("unchecked") private List<PolicyRuleWrapper> getPolicyRuleWrappers(final ComposablePolicy policy) { return policy.getRules().stream().map(rule -> { - ImplementationTO implementation = implementationClient.read(rule); + ImplementationTO implementation = implementationClient.read(implementationType, rule); PolicyRuleWrapper wrapper = new PolicyRuleWrapper(false). setImplementationKey(implementation.getKey()). http://git-wip-us.apache.org/repos/asf/syncope/blob/5cbdfe7b/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicyRuleWizardBuilder.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicyRuleWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicyRuleWizardBuilder.java index eb93982..855837e 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicyRuleWizardBuilder.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/policies/PolicyRuleWizardBuilder.java @@ -59,6 +59,8 @@ public class PolicyRuleWizardBuilder extends AjaxWizardBuilder<PolicyRuleWrapper private final PolicyType type; + private final ImplementationType implementationType; + public PolicyRuleWizardBuilder( final String policy, final PolicyType type, @@ -69,6 +71,9 @@ public class PolicyRuleWizardBuilder extends AjaxWizardBuilder<PolicyRuleWrapper this.policy = policy; this.type = type; + this.implementationType = type == PolicyType.ACCOUNT + ? ImplementationType.ACCOUNT_RULE + : ImplementationType.PASSWORD_RULE; } @Override @@ -83,7 +88,7 @@ public class PolicyRuleWizardBuilder extends AjaxWizardBuilder<PolicyRuleWrapper } if (modelObject.getImplementationEngine() == ImplementationEngine.JAVA) { - ImplementationTO rule = implementationClient.read(modelObject.getImplementationKey()); + ImplementationTO rule = implementationClient.read(implementationType, modelObject.getImplementationKey()); try { rule.setBody(MAPPER.writeValueAsString(modelObject.getConf())); implementationClient.update(rule); @@ -145,11 +150,11 @@ public class PolicyRuleWizardBuilder extends AjaxWizardBuilder<PolicyRuleWrapper @Override protected void onEvent(final AjaxRequestTarget target) { - ImplementationTO implementation = implementationClient.read(conf.getModelObject()); - rule.setImplementationEngine(implementation.getEngine()); - if (implementation.getEngine() == ImplementationEngine.JAVA) { + ImplementationTO impl = implementationClient.read(implementationType, conf.getModelObject()); + rule.setImplementationEngine(impl.getEngine()); + if (impl.getEngine() == ImplementationEngine.JAVA) { try { - RuleConf ruleConf = MAPPER.readValue(implementation.getBody(), RuleConf.class); + RuleConf ruleConf = MAPPER.readValue(impl.getBody(), RuleConf.class); rule.setConf(ruleConf); } catch (Exception e) { LOG.error("During deserialization", e); http://git-wip-us.apache.org/repos/asf/syncope/blob/5cbdfe7b/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportletDirectoryPanel.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportletDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportletDirectoryPanel.java index db7f4b8..6ac03e2 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportletDirectoryPanel.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportletDirectoryPanel.java @@ -47,6 +47,7 @@ import org.apache.syncope.common.lib.report.ReportletConf; import org.apache.syncope.common.lib.to.ImplementationTO; import org.apache.syncope.common.lib.to.ReportTO; import org.apache.syncope.common.lib.types.ImplementationEngine; +import org.apache.syncope.common.lib.types.ImplementationType; import org.apache.wicket.PageReference; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy; @@ -224,14 +225,14 @@ public class ReportletDirectoryPanel extends DirectoryPanel< private List<ReportletWrapper> getReportletWrappers(final ReportTO reportTO) { return reportTO.getReportlets().stream().map(reportlet -> { - ImplementationTO implementation = implementationClient.read(reportlet); + ImplementationTO impl = implementationClient.read(ImplementationType.REPORTLET, reportlet); ReportletWrapper wrapper = new ReportletWrapper(false). - setImplementationKey(implementation.getKey()). - setImplementationEngine(implementation.getEngine()); - if (implementation.getEngine() == ImplementationEngine.JAVA) { + setImplementationKey(impl.getKey()). + setImplementationEngine(impl.getEngine()); + if (impl.getEngine() == ImplementationEngine.JAVA) { try { - ReportletConf reportletConf = MAPPER.readValue(implementation.getBody(), ReportletConf.class); + ReportletConf reportletConf = MAPPER.readValue(impl.getBody(), ReportletConf.class); wrapper.setConf(reportletConf); } catch (Exception e) { LOG.error("During deserialization", e); http://git-wip-us.apache.org/repos/asf/syncope/blob/5cbdfe7b/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportletWizardBuilder.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportletWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportletWizardBuilder.java index 8668103..17785b0 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportletWizardBuilder.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/reports/ReportletWizardBuilder.java @@ -64,7 +64,8 @@ public class ReportletWizardBuilder extends AjaxWizardBuilder<ReportletWrapper> @Override protected Serializable onApplyInternal(final ReportletWrapper modelObject) { if (modelObject.getImplementationEngine() == ImplementationEngine.JAVA) { - ImplementationTO reportlet = implementationClient.read(modelObject.getImplementationKey()); + ImplementationTO reportlet = implementationClient.read( + ImplementationType.REPORTLET, modelObject.getImplementationKey()); try { reportlet.setBody(MAPPER.writeValueAsString(modelObject.getConf())); implementationClient.update(reportlet); @@ -109,11 +110,12 @@ public class ReportletWizardBuilder extends AjaxWizardBuilder<ReportletWrapper> @Override protected void onEvent(final AjaxRequestTarget target) { - ImplementationTO implementation = implementationClient.read(conf.getModelObject()); - reportlet.setImplementationEngine(implementation.getEngine()); - if (implementation.getEngine() == ImplementationEngine.JAVA) { + ImplementationTO impl = implementationClient.read( + ImplementationType.REPORTLET, conf.getModelObject()); + reportlet.setImplementationEngine(impl.getEngine()); + if (impl.getEngine() == ImplementationEngine.JAVA) { try { - ReportletConf conf = MAPPER.readValue(implementation.getBody(), ReportletConf.class); + ReportletConf conf = MAPPER.readValue(impl.getBody(), ReportletConf.class); reportlet.setConf(conf); } catch (Exception e) { LOG.error("During deserialization", e); http://git-wip-us.apache.org/repos/asf/syncope/blob/5cbdfe7b/client/console/src/main/java/org/apache/syncope/client/console/rest/ImplementationRestClient.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/ImplementationRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/ImplementationRestClient.java index 106d271..7d99c7c 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/rest/ImplementationRestClient.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/ImplementationRestClient.java @@ -32,8 +32,8 @@ public class ImplementationRestClient extends BaseRestClient { return getService(ImplementationService.class).list(type); } - public ImplementationTO read(final String key) { - return getService(ImplementationService.class).read(key); + public ImplementationTO read(final ImplementationType type, final String key) { + return getService(ImplementationService.class).read(type, key); } public ImplementationTO create(final ImplementationTO implementation) { @@ -46,8 +46,8 @@ public class ImplementationRestClient extends BaseRestClient { getService(ImplementationService.class).update(implementation); } - public void delete(final String key) { - getService(ImplementationService.class).delete(key); + public void delete(final ImplementationType type, final String key) { + getService(ImplementationService.class).delete(type, key); } } http://git-wip-us.apache.org/repos/asf/syncope/blob/5cbdfe7b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ImplementationTO.java ---------------------------------------------------------------------- diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ImplementationTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ImplementationTO.java index b212021..842045e 100644 --- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ImplementationTO.java +++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ImplementationTO.java @@ -62,6 +62,7 @@ public class ImplementationTO extends AbstractBaseBean implements EntityTO { return type; } + @PathParam("type") public void setType(final ImplementationType type) { this.type = type; } http://git-wip-us.apache.org/repos/asf/syncope/blob/5cbdfe7b/common/lib/src/main/java/org/apache/syncope/common/lib/types/AuditElements.java ---------------------------------------------------------------------- diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/AuditElements.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/AuditElements.java index 16f6d69..32e87a2 100644 --- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/AuditElements.java +++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/AuditElements.java @@ -20,7 +20,6 @@ package org.apache.syncope.common.lib.types; import java.io.Serializable; import javax.xml.bind.annotation.XmlEnum; -import org.apache.commons.lang3.StringUtils; public final class AuditElements implements Serializable { @@ -33,12 +32,12 @@ public final class AuditElements implements Serializable { @XmlEnum public enum EventCategoryType { - LOGIC(StringUtils.EMPTY), - TASK(StringUtils.EMPTY), + LOGIC("LOGIC"), + TASK("TASK"), PROPAGATION("PropagationTask"), PULL("PullTask"), PUSH("PushTask"), - CUSTOM(StringUtils.EMPTY); + CUSTOM("CUSTOM"); private final String value; http://git-wip-us.apache.org/repos/asf/syncope/blob/5cbdfe7b/common/lib/src/main/java/org/apache/syncope/common/lib/types/AuditLoggerName.java ---------------------------------------------------------------------- diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/AuditLoggerName.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/AuditLoggerName.java index a595e9b..31622ec 100644 --- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/AuditLoggerName.java +++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/AuditLoggerName.java @@ -185,11 +185,7 @@ public class AuditLoggerName extends AbstractBaseBean { eventBuilder.append('['); if (type != null) { - if (StringUtils.isNotBlank(type.toString())) { - eventBuilder.append(type.toString()); - } else { - eventBuilder.append(type.name()); - } + eventBuilder.append(type.toString()); } eventBuilder.append("]:["); if (StringUtils.isNotBlank(category)) { http://git-wip-us.apache.org/repos/asf/syncope/blob/5cbdfe7b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ImplementationService.java ---------------------------------------------------------------------- diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ImplementationService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ImplementationService.java index fa5e59d..620d3fc 100644 --- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ImplementationService.java +++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ImplementationService.java @@ -26,7 +26,6 @@ import javax.validation.constraints.NotNull; import javax.ws.rs.Consumes; import javax.ws.rs.DELETE; import javax.ws.rs.GET; -import javax.ws.rs.MatrixParam; import javax.ws.rs.POST; import javax.ws.rs.PUT; import javax.ws.rs.Path; @@ -54,19 +53,21 @@ public interface ImplementationService extends JAXRSService { * @return list of all implementations. */ @GET + @Path("{type}") @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) - List<ImplementationTO> list(@NotNull @MatrixParam("type") ImplementationType type); + List<ImplementationTO> list(@NotNull @PathParam("type") ImplementationType type); /** * Returns implementation with matching key. * + * @param type implementation type * @param key key of implementation to be read * @return implementation with matching key */ @GET - @Path("{key}") + @Path("{type}/{key}") @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) - ImplementationTO read(@NotNull @PathParam("key") String key); + ImplementationTO read(@NotNull @PathParam("type") ImplementationType type, @NotNull @PathParam("key") String key); /** * Creates a new implementation. @@ -75,6 +76,7 @@ public interface ImplementationService extends JAXRSService { * @return Response object featuring Location header of created implementation */ @POST + @Path("{type}/{key}") @Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) Response create(@NotNull ImplementationTO implementationTO); @@ -86,6 +88,7 @@ public interface ImplementationService extends JAXRSService { * @return an empty response if operation was successful */ @PUT + @Path("{type}/{key}") @Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) Response update(@NotNull ImplementationTO implementationTO); @@ -93,12 +96,13 @@ public interface ImplementationService extends JAXRSService { /** * Deletes the implementation matching the given key. * + * @param type implementation type * @param key key for implementation to be deleted * @return an empty response if operation was successful */ @DELETE - @Path("{key}") + @Path("{type}/{key}") @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) - Response delete(@NotNull @PathParam("key") String key); + Response delete(@NotNull @PathParam("type") ImplementationType type, @NotNull @PathParam("key") String key); } http://git-wip-us.apache.org/repos/asf/syncope/blob/5cbdfe7b/core/logic/src/main/java/org/apache/syncope/core/logic/ImplementationLogic.java ---------------------------------------------------------------------- diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/ImplementationLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/ImplementationLogic.java index 65e6290..83bc933 100644 --- a/core/logic/src/main/java/org/apache/syncope/core/logic/ImplementationLogic.java +++ b/core/logic/src/main/java/org/apache/syncope/core/logic/ImplementationLogic.java @@ -81,7 +81,7 @@ public class ImplementationLogic extends AbstractTransactionalLogic<Implementati } @PreAuthorize("hasRole('" + StandardEntitlement.IMPLEMENTATION_READ + "')") - public ImplementationTO read(final String key) { + public ImplementationTO read(final ImplementationType type, final String key) { Implementation implementation = implementationDAO.find(key); if (implementation == null) { LOG.error("Could not find implementation '" + key + "'"); @@ -89,6 +89,12 @@ public class ImplementationLogic extends AbstractTransactionalLogic<Implementati throw new NotFoundException(key); } + if (implementation.getType() != type) { + SyncopeClientException sce = SyncopeClientException.build(ClientExceptionType.InvalidRequest); + sce.getElements().add("Found " + type + ", expected " + implementation.getType()); + throw sce; + } + return binder.getImplementationTO(implementation); } @@ -124,7 +130,7 @@ public class ImplementationLogic extends AbstractTransactionalLogic<Implementati } @PreAuthorize("hasRole('" + StandardEntitlement.IMPLEMENTATION_DELETE + "')") - public void delete(final String key) { + public void delete(final ImplementationType type, final String key) { Implementation implementation = implementationDAO.find(key); if (implementation == null) { LOG.error("Could not find implementation '" + key + "'"); @@ -132,6 +138,12 @@ public class ImplementationLogic extends AbstractTransactionalLogic<Implementati throw new NotFoundException(key); } + if (implementation.getType() != type) { + SyncopeClientException sce = SyncopeClientException.build(ClientExceptionType.InvalidRequest); + sce.getElements().add("Found " + type + ", expected " + implementation.getType()); + throw sce; + } + boolean inUse = false; switch (implementation.getType()) { case REPORTLET: http://git-wip-us.apache.org/repos/asf/syncope/blob/5cbdfe7b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/ImplementationServiceImpl.java ---------------------------------------------------------------------- diff --git a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/ImplementationServiceImpl.java b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/ImplementationServiceImpl.java index c85793b..6113c81 100644 --- a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/ImplementationServiceImpl.java +++ b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/ImplementationServiceImpl.java @@ -41,8 +41,8 @@ public class ImplementationServiceImpl extends AbstractServiceImpl implements Im } @Override - public ImplementationTO read(final String key) { - return logic.read(key); + public ImplementationTO read(final ImplementationType type, final String key) { + return logic.read(type, key); } @Override @@ -61,8 +61,8 @@ public class ImplementationServiceImpl extends AbstractServiceImpl implements Im } @Override - public Response delete(final String key) { - logic.delete(key); + public Response delete(final ImplementationType type, final String key) { + logic.delete(type, key); return Response.noContent().build(); } http://git-wip-us.apache.org/repos/asf/syncope/blob/5cbdfe7b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ImplementationITCase.java ---------------------------------------------------------------------- diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ImplementationITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ImplementationITCase.java index 109e750..7b5bb7e 100644 --- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ImplementationITCase.java +++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ImplementationITCase.java @@ -31,7 +31,7 @@ import org.apache.syncope.common.lib.types.ClientExceptionType; import org.apache.syncope.common.lib.types.ImplementationEngine; import org.apache.syncope.common.lib.types.ImplementationType; import org.apache.syncope.common.lib.types.TaskType; -import org.apache.syncope.common.rest.api.service.ImplementationService; +import org.apache.syncope.common.rest.api.RESTHeaders; import org.apache.syncope.fit.AbstractITCase; import org.apache.syncope.fit.core.reference.TestPullActions; import org.junit.jupiter.api.Test; @@ -63,8 +63,8 @@ public class ImplementationITCase extends AbstractITCase { } } - ImplementationTO actual = - getObject(response.getLocation(), ImplementationService.class, ImplementationTO.class); + ImplementationTO actual = implementationService.read( + implementationTO.getType(), response.getHeaderString(RESTHeaders.RESOURCE_KEY)); assertNotNull(actual); assertEquals(actual, implementationTO); } @@ -95,7 +95,7 @@ public class ImplementationITCase extends AbstractITCase { // fails because the implementation is used try { - implementationService.delete(implementationTO.getKey()); + implementationService.delete(implementationTO.getType(), implementationTO.getKey()); fail("Unexpected"); } catch (SyncopeClientException e) { assertEquals(e.getType(), ClientExceptionType.InUse); @@ -104,7 +104,7 @@ public class ImplementationITCase extends AbstractITCase { pullTask.getActions().remove(implementationTO.getKey()); taskService.update(TaskType.PULL, pullTask); - implementationService.delete(implementationTO.getKey()); + implementationService.delete(implementationTO.getType(), implementationTO.getKey()); } } http://git-wip-us.apache.org/repos/asf/syncope/blob/5cbdfe7b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/NotificationTaskITCase.java ---------------------------------------------------------------------- diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/NotificationTaskITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/NotificationTaskITCase.java index 8ac0cea..ea2714f 100644 --- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/NotificationTaskITCase.java +++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/NotificationTaskITCase.java @@ -39,9 +39,9 @@ import org.apache.syncope.common.lib.types.ImplementationEngine; import org.apache.syncope.common.lib.types.ImplementationType; import org.apache.syncope.common.lib.types.TaskType; import org.apache.syncope.common.lib.types.TraceLevel; +import org.apache.syncope.common.rest.api.RESTHeaders; import org.apache.syncope.common.rest.api.beans.ExecuteQuery; import org.apache.syncope.common.rest.api.beans.TaskQuery; -import org.apache.syncope.common.rest.api.service.ImplementationService; import org.apache.syncope.common.rest.api.service.NotificationService; import org.apache.syncope.core.provisioning.java.job.notification.NotificationJob; import org.apache.syncope.fit.core.reference.TestNotificationRecipientsProvider; @@ -231,7 +231,8 @@ public class NotificationTaskITCase extends AbstractNotificationTaskITCase { recipientsProvider.setType(ImplementationType.RECIPIENTS_PROVIDER); recipientsProvider.setBody(TestNotificationRecipientsProvider.class.getName()); Response response = implementationService.create(recipientsProvider); - recipientsProvider = getObject(response.getLocation(), ImplementationService.class, ImplementationTO.class); + recipientsProvider = implementationService.read( + recipientsProvider.getType(), response.getHeaderString(RESTHeaders.RESOURCE_KEY)); assertNotNull(recipientsProvider); NotificationTO notification = new NotificationTO(); http://git-wip-us.apache.org/repos/asf/syncope/blob/5cbdfe7b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PolicyITCase.java ---------------------------------------------------------------------- diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PolicyITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PolicyITCase.java index 943ce6a..7ae759f 100644 --- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PolicyITCase.java +++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PolicyITCase.java @@ -45,7 +45,6 @@ import org.apache.syncope.common.lib.to.ImplementationTO; import org.apache.syncope.common.lib.types.ImplementationEngine; import org.apache.syncope.common.lib.types.ImplementationType; import org.apache.syncope.common.rest.api.RESTHeaders; -import org.apache.syncope.common.rest.api.service.ImplementationService; import org.apache.syncope.core.provisioning.api.serialization.POJOHelper; import org.apache.syncope.fit.AbstractITCase; import org.apache.syncope.fit.core.reference.DummyPullCorrelationRule; @@ -56,7 +55,7 @@ public class PolicyITCase extends AbstractITCase { private PullPolicyTO buildPullPolicyTO() throws IOException { ImplementationTO corrRule = null; try { - corrRule = implementationService.read("TestPullRule"); + corrRule = implementationService.read(ImplementationType.PULL_CORRELATION_RULE, "TestPullRule"); } catch (SyncopeClientException e) { if (e.getType().getResponseStatus() == Response.Status.NOT_FOUND) { corrRule = new ImplementationTO(); @@ -66,7 +65,8 @@ public class PolicyITCase extends AbstractITCase { corrRule.setBody(IOUtils.toString( getClass().getResourceAsStream("/TestPullRule.groovy"), StandardCharsets.UTF_8)); Response response = implementationService.create(corrRule); - corrRule = getObject(response.getLocation(), ImplementationService.class, ImplementationTO.class); + corrRule = implementationService.read( + corrRule.getType(), response.getHeaderString(RESTHeaders.RESOURCE_KEY)); assertNotNull(corrRule); } } @@ -132,7 +132,7 @@ public class PolicyITCase extends AbstractITCase { assertNotNull(policy); assertNotEquals("ce93fcda-dc3a-4369-a7b0-a6108c261c85", policy.getKey()); - ImplementationTO rule = implementationService.read(policy.getRules().get(0)); + ImplementationTO rule = implementationService.read(ImplementationType.PASSWORD_RULE, policy.getRules().get(0)); assertNotNull(rule); DefaultPasswordRuleConf ruleConf = POJOHelper.deserialize(rule.getBody(), DefaultPasswordRuleConf.class); http://git-wip-us.apache.org/repos/asf/syncope/blob/5cbdfe7b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java ---------------------------------------------------------------------- diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java index 708c2fa..3e6d67a 100644 --- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java +++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java @@ -78,10 +78,10 @@ import org.apache.syncope.common.lib.types.PropagationTaskExecStatus; import org.apache.syncope.common.lib.types.ResourceDeassociationAction; import org.apache.syncope.common.lib.types.PullMode; import org.apache.syncope.common.lib.types.TaskType; +import org.apache.syncope.common.rest.api.RESTHeaders; import org.apache.syncope.common.rest.api.beans.AnyQuery; import org.apache.syncope.common.rest.api.beans.TaskQuery; import org.apache.syncope.common.rest.api.service.ConnectorService; -import org.apache.syncope.common.rest.api.service.ImplementationService; import org.apache.syncope.common.rest.api.service.TaskService; import org.apache.syncope.core.provisioning.java.pushpull.DBPasswordPullActions; import org.apache.syncope.core.provisioning.java.pushpull.LDAPPasswordPullActions; @@ -105,7 +105,8 @@ public class PullTaskITCase extends AbstractTaskITCase { public static void testPullActionsSetup() { ImplementationTO pullActions = null; try { - pullActions = implementationService.read(TestPullActions.class.getSimpleName()); + pullActions = implementationService.read( + ImplementationType.PULL_ACTIONS, TestPullActions.class.getSimpleName()); } catch (SyncopeClientException e) { if (e.getType().getResponseStatus() == Response.Status.NOT_FOUND) { pullActions = new ImplementationTO(); @@ -114,7 +115,8 @@ public class PullTaskITCase extends AbstractTaskITCase { pullActions.setType(ImplementationType.PULL_ACTIONS); pullActions.setBody(TestPullActions.class.getName()); Response response = implementationService.create(pullActions); - pullActions = getObject(response.getLocation(), ImplementationService.class, ImplementationTO.class); + pullActions = implementationService.read( + pullActions.getType(), response.getHeaderString(RESTHeaders.RESOURCE_KEY)); assertNotNull(pullActions); } } @@ -444,7 +446,8 @@ public class PullTaskITCase extends AbstractTaskITCase { transformer.setBody(IOUtils.toString( getClass().getResourceAsStream("/PrefixItemTransformer.groovy"), StandardCharsets.UTF_8)); Response response = implementationService.create(transformer); - transformer = getObject(response.getLocation(), ImplementationService.class, ImplementationTO.class); + transformer = implementationService.read( + transformer.getType(), response.getHeaderString(RESTHeaders.RESOURCE_KEY)); assertNotNull(transformer); mappingItem.getTransformers().clear(); @@ -534,7 +537,8 @@ public class PullTaskITCase extends AbstractTaskITCase { reconFilterBuilder.setBody(IOUtils.toString( getClass().getResourceAsStream("/TestReconFilterBuilder.groovy"), StandardCharsets.UTF_8)); Response response = implementationService.create(reconFilterBuilder); - reconFilterBuilder = getObject(response.getLocation(), ImplementationService.class, ImplementationTO.class); + reconFilterBuilder = implementationService.read( + reconFilterBuilder.getType(), response.getHeaderString(RESTHeaders.RESOURCE_KEY)); assertNotNull(reconFilterBuilder); task = taskService.read(TaskType.PULL, "7c2242f4-14af-4ab5-af31-cdae23783655", true); @@ -763,7 +767,7 @@ public class PullTaskITCase extends AbstractTaskITCase { // ----------------------------- ImplementationTO corrRule = null; try { - corrRule = implementationService.read("TestPullRule"); + corrRule = implementationService.read(ImplementationType.PULL_CORRELATION_RULE, "TestPullRule"); } catch (SyncopeClientException e) { if (e.getType().getResponseStatus() == Response.Status.NOT_FOUND) { corrRule = new ImplementationTO(); @@ -773,7 +777,8 @@ public class PullTaskITCase extends AbstractTaskITCase { corrRule.setBody(IOUtils.toString( getClass().getResourceAsStream("/TestPullRule.groovy"), StandardCharsets.UTF_8)); Response response = implementationService.create(corrRule); - corrRule = getObject(response.getLocation(), ImplementationService.class, ImplementationTO.class); + corrRule = implementationService.read( + corrRule.getType(), response.getHeaderString(RESTHeaders.RESOURCE_KEY)); assertNotNull(corrRule); } } @@ -927,7 +932,8 @@ public class PullTaskITCase extends AbstractTaskITCase { pullActions.setType(ImplementationType.PULL_ACTIONS); pullActions.setBody(DBPasswordPullActions.class.getName()); Response response = implementationService.create(pullActions); - pullActions = getObject(response.getLocation(), ImplementationService.class, ImplementationTO.class); + pullActions = implementationService.read( + pullActions.getType(), response.getHeaderString(RESTHeaders.RESOURCE_KEY)); assertNotNull(pullActions); PullTaskTO pullTask = new PullTaskTO(); @@ -1016,7 +1022,8 @@ public class PullTaskITCase extends AbstractTaskITCase { pullActions.setType(ImplementationType.PULL_ACTIONS); pullActions.setBody(LDAPPasswordPullActions.class.getName()); Response response = implementationService.create(pullActions); - pullActions = getObject(response.getLocation(), ImplementationService.class, ImplementationTO.class); + pullActions = implementationService.read( + pullActions.getType(), response.getHeaderString(RESTHeaders.RESOURCE_KEY)); assertNotNull(pullActions); pullTask = new PullTaskTO(); http://git-wip-us.apache.org/repos/asf/syncope/blob/5cbdfe7b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SchedTaskITCase.java ---------------------------------------------------------------------- diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SchedTaskITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SchedTaskITCase.java index 358506a..48cbe70 100644 --- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SchedTaskITCase.java +++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SchedTaskITCase.java @@ -89,7 +89,8 @@ public class SchedTaskITCase extends AbstractTaskITCase { @Test public void deferred() { - ImplementationTO taskJobDelegate = implementationService.read(TestSampleJobDelegate.class.getSimpleName()); + ImplementationTO taskJobDelegate = implementationService.read( + ImplementationType.TASKJOB_DELEGATE, TestSampleJobDelegate.class.getSimpleName()); assertNotNull(taskJobDelegate); SchedTaskTO task = new SchedTaskTO(); @@ -134,7 +135,8 @@ public class SchedTaskITCase extends AbstractTaskITCase { @Test public void issueSYNCOPE144() { - ImplementationTO taskJobDelegate = implementationService.read(TestSampleJobDelegate.class.getSimpleName()); + ImplementationTO taskJobDelegate = implementationService.read( + ImplementationType.TASKJOB_DELEGATE, TestSampleJobDelegate.class.getSimpleName()); assertNotNull(taskJobDelegate); SchedTaskTO task = new SchedTaskTO(); @@ -168,7 +170,8 @@ public class SchedTaskITCase extends AbstractTaskITCase { List<JobTO> jobs = taskService.listJobs(); int old_size = jobs.size(); - ImplementationTO taskJobDelegate = implementationService.read(TestSampleJobDelegate.class.getSimpleName()); + ImplementationTO taskJobDelegate = implementationService.read( + ImplementationType.TASKJOB_DELEGATE, TestSampleJobDelegate.class.getSimpleName()); assertNotNull(taskJobDelegate); SchedTaskTO task = new SchedTaskTO(); http://git-wip-us.apache.org/repos/asf/syncope/blob/5cbdfe7b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java ---------------------------------------------------------------------- diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java index 8ff08a0..3e9024e 100644 --- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java +++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java @@ -74,7 +74,6 @@ import org.apache.syncope.common.lib.types.PatchOperation; import org.apache.syncope.common.lib.types.PolicyType; import org.apache.syncope.common.lib.types.PropagationTaskExecStatus; import org.apache.syncope.common.rest.api.RESTHeaders; -import org.apache.syncope.common.rest.api.service.ImplementationService; import org.apache.syncope.core.provisioning.api.serialization.POJOHelper; import org.apache.syncope.core.provisioning.java.propagation.DBPasswordPropagationActions; import org.apache.syncope.core.provisioning.java.propagation.LDAPPasswordPropagationActions; @@ -806,7 +805,8 @@ public class UserIssuesITCase extends AbstractITCase { logicActions.setBody(org.apache.commons.io.IOUtils.toString( getClass().getResourceAsStream("/DoubleValueLogicActions.groovy"), StandardCharsets.UTF_8)); Response response = implementationService.create(logicActions); - logicActions = getObject(response.getLocation(), ImplementationService.class, ImplementationTO.class); + logicActions = implementationService.read( + logicActions.getType(), response.getHeaderString(RESTHeaders.RESOURCE_KEY)); assertNotNull(logicActions); RealmTO realm = realmService.list("/even/two").iterator().next(); @@ -987,7 +987,8 @@ public class UserIssuesITCase extends AbstractITCase { propagationActions.setType(ImplementationType.PROPAGATION_ACTIONS); propagationActions.setBody(DBPasswordPropagationActions.class.getName()); Response response = implementationService.create(propagationActions); - propagationActions = getObject(response.getLocation(), ImplementationService.class, ImplementationTO.class); + propagationActions = implementationService.read( + propagationActions.getType(), response.getHeaderString(RESTHeaders.RESOURCE_KEY)); assertNotNull(propagationActions); ResourceTO resourceTO = resourceService.read(RESOURCE_NAME_TESTDB); @@ -1036,7 +1037,8 @@ public class UserIssuesITCase extends AbstractITCase { propagationActions.setType(ImplementationType.PROPAGATION_ACTIONS); propagationActions.setBody(LDAPPasswordPropagationActions.class.getName()); Response response = implementationService.create(propagationActions); - propagationActions = getObject(response.getLocation(), ImplementationService.class, ImplementationTO.class); + propagationActions = implementationService.read( + propagationActions.getType(), response.getHeaderString(RESTHeaders.RESOURCE_KEY)); assertNotNull(propagationActions); ResourceTO resourceTO = resourceService.read(RESOURCE_NAME_LDAP);