You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2015/09/24 13:48:11 UTC
[2/2] syncope git commit: [SYNCOPE-696] Implementation provided,
some clean up
[SYNCOPE-696] Implementation provided, some clean up
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/c14a20d7
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/c14a20d7
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/c14a20d7
Branch: refs/heads/master
Commit: c14a20d7422805fe5b93e40915722e3e9474ddd2
Parents: 271052a
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Thu Sep 24 13:47:58 2015 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Thu Sep 24 13:47:58 2015 +0200
----------------------------------------------------------------------
.../client/cli/commands/ReportCommand.java | 3 +-
.../client/console/rest/ReportRestClient.java | 18 +--
.../client/console/rest/TaskRestClient.java | 4 +-
.../syncope/client/lib/SyncopeClient.java | 21 ++-
.../lib/builders/AbstractQueryBuilder.java | 57 ++++++++
.../lib/builders/AnyListQueryBuilder.java | 6 +-
.../client/lib/builders/AnyQueryBuilder.java | 49 +++++++
.../client/lib/builders/ListQueryBuilder.java | 54 -------
.../client/lib/builders/TaskQueryBuilder.java | 60 ++++++++
.../common/lib/to/PropagationTaskTO.java | 20 +--
.../common/rest/api/beans/AbstractQuery.java | 67 +++++++++
.../common/rest/api/beans/AnyListQuery.java | 2 +-
.../syncope/common/rest/api/beans/AnyQuery.java | 40 ++++++
.../common/rest/api/beans/ListQuery.java | 98 -------------
.../common/rest/api/beans/TaskQuery.java | 64 +++++++++
.../common/rest/api/service/JAXRSService.java | 6 +
.../common/rest/api/service/ReportService.java | 8 +-
.../common/rest/api/service/TaskService.java | 10 +-
.../apache/syncope/core/logic/ReportLogic.java | 10 +-
.../apache/syncope/core/logic/TaskLogic.java | 25 ++--
.../core/persistence/api/dao/ReportDAO.java | 5 -
.../core/persistence/api/dao/TaskDAO.java | 8 +-
.../api/entity/task/PropagationTask.java | 8 +-
.../core/persistence/jpa/dao/AbstractDAO.java | 25 ----
.../core/persistence/jpa/dao/JPAReportDAO.java | 27 +---
.../core/persistence/jpa/dao/JPATaskDAO.java | 140 ++++++++++++++-----
.../persistence/jpa/dao/JPATaskExecDAO.java | 9 +-
.../jpa/entity/task/JPAPropagationTask.java | 20 +--
.../entity/PropagationTaskValidator.java | 4 +-
.../core/persistence/jpa/inner/ReportTest.java | 4 +-
.../core/persistence/jpa/inner/TaskTest.java | 19 ++-
.../persistence/jpa/outer/ResourceTest.java | 5 +-
.../core/persistence/jpa/outer/TaskTest.java | 11 +-
.../test/resources/domains/MasterContent.xml | 10 +-
.../AbstractPropagationTaskExecutor.java | 20 +--
.../LDAPPasswordPropagationActions.java | 2 +-
.../propagation/PropagationManagerImpl.java | 4 +-
.../rest/cxf/service/ReportServiceImpl.java | 13 +-
.../core/rest/cxf/service/TaskServiceImpl.java | 25 ++--
.../fit/core/reference/AbstractTaskITCase.java | 2 +-
.../core/reference/PropagationTaskITCase.java | 12 +-
.../fit/core/reference/PushTaskITCase.java | 2 +-
.../fit/core/reference/ReportITCase.java | 8 +-
.../fit/core/reference/SchedTaskITCase.java | 2 +-
.../fit/core/reference/SyncTaskITCase.java | 2 +-
.../syncope/fit/core/reference/UserITCase.java | 20 +--
46 files changed, 620 insertions(+), 409 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/c14a20d7/client/cli/src/main/java/org/apache/syncope/client/cli/commands/ReportCommand.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/ReportCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/ReportCommand.java
index 2ea9423..def8f50 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/ReportCommand.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/ReportCommand.java
@@ -28,7 +28,6 @@ import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import org.apache.syncope.client.cli.SyncopeServices;
import org.apache.syncope.client.cli.util.XMLUtils;
-import org.apache.syncope.client.lib.SyncopeClient;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.to.ReportExecTO;
import org.apache.syncope.common.lib.to.ReportTO;
@@ -94,7 +93,7 @@ public class ReportCommand extends AbstractCommand {
} else if (list) {
LOG.debug("- report list command");
try {
- for (ReportTO reportTO : reportService.list(SyncopeClient.getListQueryBuilder().build()).getResult()) {
+ for (ReportTO reportTO : reportService.list()) {
System.out.println(reportTO);
}
} catch (final SyncopeClientException ex) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/c14a20d7/client/console/src/main/java/org/apache/syncope/client/console/rest/ReportRestClient.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/ReportRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/ReportRestClient.java
index 89617df..95f3bab 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/rest/ReportRestClient.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/ReportRestClient.java
@@ -20,11 +20,9 @@ package org.apache.syncope.client.console.rest;
import java.util.List;
import javax.ws.rs.core.Response;
-import org.apache.syncope.client.lib.SyncopeClient;
import org.apache.syncope.common.lib.to.ReportTO;
import org.apache.syncope.common.lib.types.ReportExecExportFormat;
import org.apache.syncope.common.rest.api.service.ReportService;
-import org.apache.wicket.extensions.markup.html.repeater.util.SortParam;
import org.springframework.stereotype.Component;
@Component
@@ -37,21 +35,7 @@ public class ReportRestClient extends BaseRestClient implements ExecutionRestCli
}
public List<ReportTO> list() {
- return getService(ReportService.class).
- list(SyncopeClient.getListQueryBuilder().build()).
- getResult();
- }
-
- public List<ReportTO> list(final int page, final int size, final SortParam<String> sort) {
- return getService(ReportService.class).
- list(SyncopeClient.getListQueryBuilder().page(page).size(size).orderBy(toOrderBy(sort)).build()).
- getResult();
- }
-
- public int count() {
- return getService(ReportService.class).
- list(SyncopeClient.getListQueryBuilder().page(1).size(1).build()).
- getTotalCount();
+ return getService(ReportService.class).list();
}
public void create(final ReportTO reportTO) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/c14a20d7/client/console/src/main/java/org/apache/syncope/client/console/rest/TaskRestClient.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/TaskRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/TaskRestClient.java
index 32236a9..974b78c 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/rest/TaskRestClient.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/TaskRestClient.java
@@ -62,7 +62,7 @@ public class TaskRestClient extends BaseRestClient implements ExecutionRestClien
*/
public int count(final String kind) {
return getService(TaskService.class).
- list(TaskType.fromString(kind), SyncopeClient.getListQueryBuilder().page(1).size(1).build()).
+ list(TaskType.fromString(kind), SyncopeClient.getTaskQueryBuilder().page(1).size(1).build()).
getTotalCount();
}
@@ -71,7 +71,7 @@ public class TaskRestClient extends BaseRestClient implements ExecutionRestClien
final int page, final int size, final SortParam<String> sort) {
return (List<T>) getService(TaskService.class).
- list(getTaskType(reference), SyncopeClient.getListQueryBuilder().page(page).size(size).
+ list(getTaskType(reference), SyncopeClient.getTaskQueryBuilder().page(page).size(size).
orderBy(toOrderBy(sort)).build()).
getResult();
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/c14a20d7/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClient.java
----------------------------------------------------------------------
diff --git a/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClient.java b/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClient.java
index ba6530f..9717d53 100644
--- a/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClient.java
+++ b/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClient.java
@@ -31,10 +31,11 @@ import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.cxf.jaxrs.client.WebClient;
import org.apache.cxf.transport.http.URLConnectionHTTPConduit;
-import org.apache.syncope.client.lib.builders.ListQueryBuilder;
+import org.apache.syncope.client.lib.builders.AnyQueryBuilder;
import org.apache.syncope.client.lib.builders.AnyListQueryBuilder;
import org.apache.syncope.client.lib.builders.AnySearchQueryBuilder;
import org.apache.syncope.client.lib.builders.ConnObjectTOListQueryBuilder;
+import org.apache.syncope.client.lib.builders.TaskQueryBuilder;
import org.apache.syncope.common.lib.search.AnyObjectFiqlSearchConditionBuilder;
import org.apache.syncope.common.lib.search.OrderByClauseBuilder;
import org.apache.syncope.common.lib.search.GroupFiqlSearchConditionBuilder;
@@ -110,13 +111,23 @@ public class SyncopeClient {
}
/**
- * Returns a new instance of {@link ListQueryBuilder}, for assisted building of some service's {@code list()}
+ * Returns a new instance of {@link TaskQueryBuilder}, for assisted building of some service's {@code list()}
* arguments.
*
- * @return default instance of {@link ListQueryBuilder}
+ * @return default instance of {@link AnyQueryBuilder}
*/
- public static ListQueryBuilder getListQueryBuilder() {
- return new ListQueryBuilder();
+ public static TaskQueryBuilder getTaskQueryBuilder() {
+ return new TaskQueryBuilder();
+ }
+
+ /**
+ * Returns a new instance of {@link AnyQueryBuilder}, for assisted building of some service's {@code list()}
+ * arguments.
+ *
+ * @return default instance of {@link AnyQueryBuilder}
+ */
+ public static AnyQueryBuilder getAnyQueryBuilder() {
+ return new AnyQueryBuilder();
}
/**
http://git-wip-us.apache.org/repos/asf/syncope/blob/c14a20d7/client/lib/src/main/java/org/apache/syncope/client/lib/builders/AbstractQueryBuilder.java
----------------------------------------------------------------------
diff --git a/client/lib/src/main/java/org/apache/syncope/client/lib/builders/AbstractQueryBuilder.java b/client/lib/src/main/java/org/apache/syncope/client/lib/builders/AbstractQueryBuilder.java
new file mode 100644
index 0000000..4c61554
--- /dev/null
+++ b/client/lib/src/main/java/org/apache/syncope/client/lib/builders/AbstractQueryBuilder.java
@@ -0,0 +1,57 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.client.lib.builders;
+
+import org.apache.syncope.common.rest.api.beans.AbstractQuery;
+
+public abstract class AbstractQueryBuilder<Q extends AbstractQuery, B extends AbstractQueryBuilder<Q, B>> {
+
+ private Q instance;
+
+ protected abstract Q newInstance();
+
+ protected Q getInstance() {
+ if (instance == null) {
+ instance = newInstance();
+ }
+ return instance;
+ }
+
+ @SuppressWarnings("unchecked")
+ public B page(final Integer page) {
+ getInstance().setPage(page);
+ return (B) this;
+ }
+
+ @SuppressWarnings("unchecked")
+ public B size(final Integer size) {
+ getInstance().setSize(size);
+ return (B) this;
+ }
+
+ @SuppressWarnings("unchecked")
+ public B orderBy(final String orderBy) {
+ getInstance().setOrderBy(orderBy);
+ return (B) this;
+ }
+
+ public Q build() {
+ return getInstance();
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/c14a20d7/client/lib/src/main/java/org/apache/syncope/client/lib/builders/AnyListQueryBuilder.java
----------------------------------------------------------------------
diff --git a/client/lib/src/main/java/org/apache/syncope/client/lib/builders/AnyListQueryBuilder.java b/client/lib/src/main/java/org/apache/syncope/client/lib/builders/AnyListQueryBuilder.java
index e25daef..da069cc 100644
--- a/client/lib/src/main/java/org/apache/syncope/client/lib/builders/AnyListQueryBuilder.java
+++ b/client/lib/src/main/java/org/apache/syncope/client/lib/builders/AnyListQueryBuilder.java
@@ -19,10 +19,10 @@
package org.apache.syncope.client.lib.builders;
import java.util.ArrayList;
-import org.apache.syncope.common.rest.api.beans.ListQuery;
+import org.apache.syncope.common.rest.api.beans.AnyQuery;
import org.apache.syncope.common.rest.api.beans.AnyListQuery;
-public class AnyListQueryBuilder extends ListQueryBuilder {
+public class AnyListQueryBuilder extends AnyQueryBuilder {
private final AnyListQuery instance = new AnyListQuery();
@@ -57,7 +57,7 @@ public class AnyListQueryBuilder extends ListQueryBuilder {
@Override
public AnyListQuery build() {
- ListQuery lq = super.build();
+ AnyQuery lq = super.build();
instance.setPage(lq.getPage());
instance.setSize(lq.getSize());
instance.setOrderBy(lq.getOrderBy());
http://git-wip-us.apache.org/repos/asf/syncope/blob/c14a20d7/client/lib/src/main/java/org/apache/syncope/client/lib/builders/AnyQueryBuilder.java
----------------------------------------------------------------------
diff --git a/client/lib/src/main/java/org/apache/syncope/client/lib/builders/AnyQueryBuilder.java b/client/lib/src/main/java/org/apache/syncope/client/lib/builders/AnyQueryBuilder.java
new file mode 100644
index 0000000..ad5457e
--- /dev/null
+++ b/client/lib/src/main/java/org/apache/syncope/client/lib/builders/AnyQueryBuilder.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.client.lib.builders;
+
+import org.apache.syncope.common.rest.api.beans.AnyQuery;
+
+public class AnyQueryBuilder extends AbstractQueryBuilder<AnyQuery, AnyQueryBuilder> {
+
+ @Override
+ protected AnyQuery newInstance() {
+ return new AnyQuery();
+ }
+
+ @Override
+ public AnyQueryBuilder page(final Integer page) {
+ return AnyQueryBuilder.class.cast(super.page(page));
+ }
+
+ @Override
+ public AnyQueryBuilder size(final Integer size) {
+ return AnyQueryBuilder.class.cast(super.size(size));
+ }
+
+ @Override
+ public AnyQueryBuilder orderBy(final String orderBy) {
+ return AnyQueryBuilder.class.cast(super.orderBy(orderBy));
+ }
+
+ public AnyQueryBuilder details(final boolean details) {
+ getInstance().setDetails(details);
+ return this;
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/c14a20d7/client/lib/src/main/java/org/apache/syncope/client/lib/builders/ListQueryBuilder.java
----------------------------------------------------------------------
diff --git a/client/lib/src/main/java/org/apache/syncope/client/lib/builders/ListQueryBuilder.java b/client/lib/src/main/java/org/apache/syncope/client/lib/builders/ListQueryBuilder.java
deleted file mode 100644
index bce0e73..0000000
--- a/client/lib/src/main/java/org/apache/syncope/client/lib/builders/ListQueryBuilder.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.client.lib.builders;
-
-import org.apache.syncope.common.rest.api.beans.ListQuery;
-
-public class ListQueryBuilder {
-
- private final ListQuery instance = new ListQuery();
-
- public ListQueryBuilder page(final Integer page) {
- instance.setPage(page);
-
- return this;
- }
-
- public ListQueryBuilder size(final Integer size) {
- instance.setSize(size);
-
- return this;
- }
-
- public ListQueryBuilder orderBy(final String orderBy) {
- instance.setOrderBy(orderBy);
-
- return this;
- }
-
- public ListQueryBuilder details(final boolean details) {
- instance.setDetails(details);
-
- return this;
- }
-
- public ListQuery build() {
- return instance;
- }
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/c14a20d7/client/lib/src/main/java/org/apache/syncope/client/lib/builders/TaskQueryBuilder.java
----------------------------------------------------------------------
diff --git a/client/lib/src/main/java/org/apache/syncope/client/lib/builders/TaskQueryBuilder.java b/client/lib/src/main/java/org/apache/syncope/client/lib/builders/TaskQueryBuilder.java
new file mode 100644
index 0000000..c87b68c
--- /dev/null
+++ b/client/lib/src/main/java/org/apache/syncope/client/lib/builders/TaskQueryBuilder.java
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.client.lib.builders;
+
+import org.apache.syncope.common.lib.types.AnyTypeKind;
+import org.apache.syncope.common.rest.api.beans.TaskQuery;
+
+public class TaskQueryBuilder extends AbstractQueryBuilder<TaskQuery, TaskQueryBuilder> {
+
+ @Override
+ protected TaskQuery newInstance() {
+ return new TaskQuery();
+ }
+
+ @Override
+ public TaskQueryBuilder page(final Integer page) {
+ return TaskQueryBuilder.class.cast(super.page(page));
+ }
+
+ @Override
+ public TaskQueryBuilder size(final Integer size) {
+ return TaskQueryBuilder.class.cast(super.size(size));
+ }
+
+ @Override
+ public TaskQueryBuilder orderBy(final String orderBy) {
+ return TaskQueryBuilder.class.cast(super.orderBy(orderBy));
+ }
+
+ public TaskQueryBuilder resource(final String resource) {
+ getInstance().setResource(resource);
+ return this;
+ }
+
+ public TaskQueryBuilder anyTypeKind(final AnyTypeKind anyTypeKind) {
+ getInstance().setAnyTypeKind(anyTypeKind);
+ return this;
+ }
+
+ public TaskQueryBuilder anyTypeKey(final Long anyTypeKey) {
+ getInstance().setAnyTypeKey(anyTypeKey);
+ return this;
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/c14a20d7/common/lib/src/main/java/org/apache/syncope/common/lib/to/PropagationTaskTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/PropagationTaskTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/PropagationTaskTO.java
index 0ebfb70..bf30e24 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/PropagationTaskTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/PropagationTaskTO.java
@@ -30,9 +30,9 @@ public class PropagationTaskTO extends AbstractTaskTO {
private static final long serialVersionUID = 386450127003321197L;
- private PropagationMode propagationMode;
+ private PropagationMode mode;
- private ResourceOperation propagationOperation;
+ private ResourceOperation operation;
private String connObjectKey;
@@ -64,12 +64,12 @@ public class PropagationTaskTO extends AbstractTaskTO {
this.oldConnObjectKey = oldConnObjectKey;
}
- public PropagationMode getPropagationMode() {
- return propagationMode;
+ public PropagationMode getMode() {
+ return mode;
}
- public void setPropagationMode(final PropagationMode propagationMode) {
- this.propagationMode = propagationMode;
+ public void setPropagationMode(final PropagationMode mode) {
+ this.mode = mode;
}
public String getResource() {
@@ -80,12 +80,12 @@ public class PropagationTaskTO extends AbstractTaskTO {
this.resource = resource;
}
- public ResourceOperation getPropagationOperation() {
- return propagationOperation;
+ public ResourceOperation getOperation() {
+ return operation;
}
- public void setPropagationOperation(final ResourceOperation propagationOperation) {
- this.propagationOperation = propagationOperation;
+ public void setOperation(final ResourceOperation operation) {
+ this.operation = operation;
}
public String getXmlAttributes() {
http://git-wip-us.apache.org/repos/asf/syncope/blob/c14a20d7/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/AbstractQuery.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/AbstractQuery.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/AbstractQuery.java
new file mode 100644
index 0000000..a8c6bb8
--- /dev/null
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/AbstractQuery.java
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.common.rest.api.beans;
+
+import javax.validation.constraints.Min;
+import javax.ws.rs.DefaultValue;
+import javax.ws.rs.QueryParam;
+import org.apache.syncope.common.lib.AbstractBaseBean;
+import org.apache.syncope.common.rest.api.service.JAXRSService;
+
+public abstract class AbstractQuery extends AbstractBaseBean {
+
+ private static final long serialVersionUID = -371488230250055359L;
+
+ private Integer page;
+
+ private Integer size;
+
+ private String orderBy;
+
+ public Integer getPage() {
+ return page;
+ }
+
+ @Min(1)
+ @QueryParam(JAXRSService.PARAM_PAGE)
+ @DefaultValue("1")
+ public void setPage(final Integer page) {
+ this.page = page;
+ }
+
+ public Integer getSize() {
+ return size;
+ }
+
+ @Min(1)
+ @QueryParam(JAXRSService.PARAM_SIZE)
+ @DefaultValue("25")
+ public void setSize(final Integer size) {
+ this.size = size;
+ }
+
+ @QueryParam(JAXRSService.PARAM_ORDERBY)
+ public String getOrderBy() {
+ return orderBy;
+ }
+
+ public void setOrderBy(final String orderBy) {
+ this.orderBy = orderBy;
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/c14a20d7/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/AnyListQuery.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/AnyListQuery.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/AnyListQuery.java
index e4fdf04..ef9b93d 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/AnyListQuery.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/AnyListQuery.java
@@ -23,7 +23,7 @@ import javax.ws.rs.DefaultValue;
import javax.ws.rs.MatrixParam;
import org.apache.syncope.common.lib.SyncopeConstants;
-public class AnyListQuery extends ListQuery {
+public class AnyListQuery extends AnyQuery {
private static final long serialVersionUID = -5197167078435619636L;
http://git-wip-us.apache.org/repos/asf/syncope/blob/c14a20d7/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/AnyQuery.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/AnyQuery.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/AnyQuery.java
new file mode 100644
index 0000000..bcf10ce
--- /dev/null
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/AnyQuery.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.common.rest.api.beans;
+
+import javax.ws.rs.DefaultValue;
+import javax.ws.rs.QueryParam;
+import org.apache.syncope.common.rest.api.service.JAXRSService;
+
+public class AnyQuery extends AbstractQuery {
+
+ private static final long serialVersionUID = -371488230250055359L;
+
+ private Boolean details;
+
+ public boolean isDetails() {
+ return details == null ? true : details;
+ }
+
+ @QueryParam(JAXRSService.PARAM_DETAILS)
+ @DefaultValue("true")
+ public void setDetails(final boolean details) {
+ this.details = details;
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/c14a20d7/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/ListQuery.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/ListQuery.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/ListQuery.java
deleted file mode 100644
index 96fe514..0000000
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/ListQuery.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.common.rest.api.beans;
-
-import java.io.Serializable;
-import javax.validation.constraints.Min;
-import javax.ws.rs.DefaultValue;
-import javax.ws.rs.QueryParam;
-import org.apache.commons.lang3.builder.EqualsBuilder;
-import org.apache.commons.lang3.builder.HashCodeBuilder;
-import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
-import org.apache.syncope.common.rest.api.service.JAXRSService;
-
-public class ListQuery implements Serializable {
-
- private static final long serialVersionUID = -371488230250055359L;
-
- private Integer page;
-
- private Integer size;
-
- private String orderBy;
-
- private Boolean details;
-
- public Integer getPage() {
- return page;
- }
-
- @Min(1)
- @QueryParam(JAXRSService.PARAM_PAGE)
- @DefaultValue("1")
- public void setPage(final Integer page) {
- this.page = page;
- }
-
- public Integer getSize() {
- return size;
- }
-
- @Min(1)
- @QueryParam(JAXRSService.PARAM_SIZE)
- @DefaultValue("25")
- public void setSize(final Integer size) {
- this.size = size;
- }
-
- @QueryParam(JAXRSService.PARAM_ORDERBY)
- public String getOrderBy() {
- return orderBy;
- }
-
- public void setOrderBy(final String orderBy) {
- this.orderBy = orderBy;
- }
-
- @QueryParam(JAXRSService.PARAM_DETAILS)
- @DefaultValue("true")
- public boolean isDetails() {
- return details == null ? true : details;
- }
-
- public void setDetails(final boolean details) {
- this.details = details;
- }
-
- @Override
- public boolean equals(final Object obj) {
- return EqualsBuilder.reflectionEquals(this, obj);
- }
-
- @Override
- public int hashCode() {
- return HashCodeBuilder.reflectionHashCode(this);
- }
-
- @Override
- public String toString() {
- return ReflectionToStringBuilder.toString(this, ToStringStyle.MULTI_LINE_STYLE);
- }
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/c14a20d7/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/TaskQuery.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/TaskQuery.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/TaskQuery.java
new file mode 100644
index 0000000..7f59abf
--- /dev/null
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/TaskQuery.java
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.common.rest.api.beans;
+
+import javax.validation.constraints.Min;
+import javax.ws.rs.QueryParam;
+import org.apache.syncope.common.lib.types.AnyTypeKind;
+import org.apache.syncope.common.rest.api.service.JAXRSService;
+
+public class TaskQuery extends AbstractQuery {
+
+ private static final long serialVersionUID = -8792519310029596796L;
+
+ private String resource;
+
+ private AnyTypeKind anyTypeKind;
+
+ private Long anyTypeKey;
+
+ public String getResource() {
+ return resource;
+ }
+
+ @QueryParam(JAXRSService.PARAM_RESOURCE)
+ public void setResource(final String resource) {
+ this.resource = resource;
+ }
+
+ public AnyTypeKind getAnyTypeKind() {
+ return anyTypeKind;
+ }
+
+ @QueryParam(JAXRSService.PARAM_ANYTYPE_KIND)
+ public void setAnyTypeKind(final AnyTypeKind anyTypeKind) {
+ this.anyTypeKind = anyTypeKind;
+ }
+
+ public Long getAnyTypeKey() {
+ return anyTypeKey;
+ }
+
+ @Min(1)
+ @QueryParam(JAXRSService.PARAM_ANYTYPE_KEY)
+ public void setAnyTypeKey(final Long anyTypeKey) {
+ this.anyTypeKey = anyTypeKey;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/c14a20d7/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/JAXRSService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/JAXRSService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/JAXRSService.java
index fb9cec0..68afb1a 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/JAXRSService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/JAXRSService.java
@@ -28,6 +28,12 @@ public interface JAXRSService {
String PARAM_ORDERBY = "orderby";
+ String PARAM_RESOURCE = "resource";
+
+ String PARAM_ANYTYPE_KIND = "anyTypeKind";
+
+ String PARAM_ANYTYPE_KEY = "anyTypeKey";
+
String PARAM_DETAILS = "details";
String PARAM_CONNID_PAGED_RESULTS_COOKIE = "connIdPagedResultsCookie";
http://git-wip-us.apache.org/repos/asf/syncope/blob/c14a20d7/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 6d01b2a..bc8b346 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
@@ -20,7 +20,6 @@ package org.apache.syncope.common.rest.api.service;
import java.util.List;
import javax.validation.constraints.NotNull;
-import javax.ws.rs.BeanParam;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
@@ -33,13 +32,11 @@ 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.PagedResult;
import org.apache.syncope.common.lib.to.ReportExecTO;
import org.apache.syncope.common.lib.to.ReportTO;
import org.apache.syncope.common.lib.types.JobAction;
import org.apache.syncope.common.lib.types.JobStatusType;
import org.apache.syncope.common.lib.types.ReportExecExportFormat;
-import org.apache.syncope.common.rest.api.beans.ListQuery;
/**
* REST operations for reports.
@@ -70,14 +67,13 @@ public interface ReportService extends JAXRSService {
ReportExecTO readExecution(@NotNull @PathParam("executionKey") Long executionKey);
/**
- * Returns a paged list of all existing reports matching the given query;
+ * Returns a list of all existing reports.
*
- * @param listQuery query conditions
* @return paged list of existing reports matching the given query
*/
@GET
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
- PagedResult<ReportTO> list(@BeanParam ListQuery listQuery);
+ List<ReportTO> list();
/**
* Creates a new report.
http://git-wip-us.apache.org/repos/asf/syncope/blob/c14a20d7/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 2665c51..2d70b2b 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
@@ -44,7 +44,7 @@ import org.apache.syncope.common.lib.to.TaskExecTO;
import org.apache.syncope.common.lib.types.JobAction;
import org.apache.syncope.common.lib.types.JobStatusType;
import org.apache.syncope.common.lib.types.TaskType;
-import org.apache.syncope.common.rest.api.beans.ListQuery;
+import org.apache.syncope.common.rest.api.beans.TaskQuery;
/**
* REST operations for tasks.
@@ -78,16 +78,16 @@ public interface TaskService extends JAXRSService {
/**
* Returns a paged list of existing tasks matching type and the given query.
*
- * @param taskType type of tasks to be listed
- * @param listQuery query conditions
+ * @param type type of tasks to be listed
+ * @param query query conditions
* @param <T> type of taskTO
* @return paged list of existing tasks matching type and the given query
*/
@GET
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
<T extends AbstractTaskTO> PagedResult<T> list(
- @NotNull @MatrixParam("type") TaskType taskType,
- @BeanParam ListQuery listQuery);
+ @NotNull @MatrixParam("type") TaskType type,
+ @BeanParam TaskQuery query);
/**
* Creates a new task.
http://git-wip-us.apache.org/repos/asf/syncope/blob/c14a20d7/core/logic/src/main/java/org/apache/syncope/core/logic/ReportLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/ReportLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/ReportLogic.java
index 3780d30..29cd65a 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/ReportLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/ReportLogic.java
@@ -47,7 +47,6 @@ import org.apache.syncope.common.lib.types.ReportExecStatus;
import org.apache.syncope.core.persistence.api.dao.NotFoundException;
import org.apache.syncope.core.persistence.api.dao.ReportDAO;
import org.apache.syncope.core.persistence.api.dao.ReportExecDAO;
-import org.apache.syncope.core.persistence.api.dao.search.OrderByClause;
import org.apache.syncope.core.persistence.api.entity.EntityFactory;
import org.apache.syncope.core.persistence.api.entity.Report;
import org.apache.syncope.core.persistence.api.entity.ReportExec;
@@ -128,13 +127,8 @@ public class ReportLogic extends AbstractJobLogic<ReportTO> {
}
@PreAuthorize("hasRole('" + Entitlement.REPORT_LIST + "')")
- public int count() {
- return reportDAO.count();
- }
-
- @PreAuthorize("hasRole('" + Entitlement.REPORT_LIST + "')")
- public List<ReportTO> list(final int page, final int size, final List<OrderByClause> orderByClauses) {
- return CollectionUtils.collect(reportDAO.findAll(page, size, orderByClauses),
+ public List<ReportTO> list() {
+ return CollectionUtils.collect(reportDAO.findAll(),
new Transformer<Report, ReportTO>() {
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/c14a20d7/core/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java
index 9c436ac..09d855e 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java
@@ -32,6 +32,7 @@ import org.apache.syncope.common.lib.to.AbstractTaskTO;
import org.apache.syncope.common.lib.to.SchedTaskTO;
import org.apache.syncope.common.lib.to.SyncTaskTO;
import org.apache.syncope.common.lib.to.TaskExecTO;
+import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.common.lib.types.ClientExceptionType;
import org.apache.syncope.common.lib.types.Entitlement;
import org.apache.syncope.common.lib.types.JobAction;
@@ -56,6 +57,7 @@ import org.apache.syncope.core.provisioning.api.propagation.PropagationTaskExecu
import org.apache.syncope.core.provisioning.api.job.JobInstanceLoader;
import org.apache.syncope.core.logic.notification.NotificationJobDelegate;
import org.apache.syncope.core.persistence.api.dao.ConfDAO;
+import org.apache.syncope.core.persistence.api.dao.ExternalResourceDAO;
import org.apache.syncope.core.provisioning.java.job.TaskJob;
import org.quartz.JobDataMap;
import org.quartz.JobKey;
@@ -77,6 +79,9 @@ public class TaskLogic extends AbstractJobLogic<AbstractTaskTO> {
private ConfDAO confDAO;
@Autowired
+ private ExternalResourceDAO resourceDAO;
+
+ @Autowired
private TaskDataBinder binder;
@Autowired
@@ -146,23 +151,27 @@ public class TaskLogic extends AbstractJobLogic<AbstractTaskTO> {
}
@PreAuthorize("hasRole('" + Entitlement.TASK_LIST + "')")
- public int count(final TaskType taskType) {
- return taskDAO.count(taskType);
+ public int count(
+ final TaskType type, final String resource, final AnyTypeKind anyTypeKind, final Long anyTypeKey) {
+
+ return taskDAO.count(type, resourceDAO.find(resource), anyTypeKind, anyTypeKey);
}
@PreAuthorize("hasRole('" + Entitlement.TASK_LIST + "')")
@SuppressWarnings("unchecked")
- public <T extends AbstractTaskTO> List<T> list(final TaskType taskType,
+ public <T extends AbstractTaskTO> List<T> list(
+ final TaskType type, final String resource, final AnyTypeKind anyTypeKind, final Long anyTypeKey,
final int page, final int size, final List<OrderByClause> orderByClauses) {
- final TaskUtils taskUtilss = taskUtilsFactory.getInstance(taskType);
+ final TaskUtils taskUtils = taskUtilsFactory.getInstance(type);
- return CollectionUtils.collect(taskDAO.findAll(page, size, orderByClauses, taskType),
+ return CollectionUtils.collect(taskDAO.findAll(
+ type, resourceDAO.find(resource), anyTypeKind, anyTypeKey, page, size, orderByClauses),
new Transformer<Task, T>() {
@Override
public T transform(final Task task) {
- return (T) binder.getTaskTO(task, taskUtilss);
+ return (T) binder.getTaskTO(task, taskUtils);
}
}, new ArrayList<T>());
}
@@ -250,8 +259,8 @@ public class TaskLogic extends AbstractJobLogic<AbstractTaskTO> {
TaskUtils taskUtils = taskUtilsFactory.getInstance(exec.getTask());
if (TaskType.PROPAGATION == taskUtils.getType()) {
PropagationTask task = (PropagationTask) exec.getTask();
- if (task.getPropagationMode() != PropagationMode.TWO_PHASES) {
- sce.getElements().add("Propagation mode: " + task.getPropagationMode());
+ if (task.getMode() != PropagationMode.TWO_PHASES) {
+ sce.getElements().add("Propagation mode: " + task.getMode());
}
} else {
sce.getElements().add("Task type: " + taskUtils);
http://git-wip-us.apache.org/repos/asf/syncope/blob/c14a20d7/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/ReportDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/ReportDAO.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/ReportDAO.java
index f94b5a4..0c949a7 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/ReportDAO.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/ReportDAO.java
@@ -19,7 +19,6 @@
package org.apache.syncope.core.persistence.api.dao;
import java.util.List;
-import org.apache.syncope.core.persistence.api.dao.search.OrderByClause;
import org.apache.syncope.core.persistence.api.entity.Report;
public interface ReportDAO extends DAO<Report, Long> {
@@ -28,10 +27,6 @@ public interface ReportDAO extends DAO<Report, Long> {
List<Report> findAll();
- List<Report> findAll(int page, int itemsPerPage, List<OrderByClause> orderByClauses);
-
- int count();
-
Report save(Report report);
void delete(Long key);
http://git-wip-us.apache.org/repos/asf/syncope/blob/c14a20d7/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/TaskDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/TaskDAO.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/TaskDAO.java
index 02b1032..999660e 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/TaskDAO.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/TaskDAO.java
@@ -19,6 +19,7 @@
package org.apache.syncope.core.persistence.api.dao;
import java.util.List;
+import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.common.lib.types.TaskType;
import org.apache.syncope.core.persistence.api.dao.search.OrderByClause;
import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
@@ -32,14 +33,13 @@ public interface TaskDAO extends DAO<Task, Long> {
<T extends Task> List<T> findToExec(TaskType type);
- <T extends Task> List<T> findAll(ExternalResource resource, TaskType type);
-
<T extends Task> List<T> findAll(TaskType type);
<T extends Task> List<T> findAll(
- int page, int itemsPerPage, List<OrderByClause> orderByClauses, TaskType type);
+ TaskType type, ExternalResource resource, AnyTypeKind anyTypeKind, Long anyTypeKey,
+ int page, int itemsPerPage, List<OrderByClause> orderByClauses);
- int count(TaskType type);
+ int count(TaskType type, ExternalResource resource, AnyTypeKind anyTypeKind, Long anyTypeKey);
<T extends Task> T save(T task);
http://git-wip-us.apache.org/repos/asf/syncope/blob/c14a20d7/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/task/PropagationTask.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/task/PropagationTask.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/task/PropagationTask.java
index 7629074..9c5ef29 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/task/PropagationTask.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/task/PropagationTask.java
@@ -43,13 +43,13 @@ public interface PropagationTask extends Task {
void setObjectClassName(String objectClassName);
- PropagationMode getPropagationMode();
+ PropagationMode getMode();
- void setPropagationMode(PropagationMode propagationMode);
+ void setMode(PropagationMode mode);
- ResourceOperation getPropagationOperation();
+ ResourceOperation getOperation();
- void setPropagationOperation(ResourceOperation operation);
+ void setOperation(ResourceOperation operation);
Long getAnyKey();
http://git-wip-us.apache.org/repos/asf/syncope/blob/c14a20d7/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractDAO.java
index e5c1d66..3dbf25d 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractDAO.java
@@ -18,19 +18,15 @@
*/
package org.apache.syncope.core.persistence.jpa.dao;
-import java.util.List;
import javax.persistence.EntityManager;
-import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.core.misc.security.AuthContextUtils;
import org.apache.syncope.core.misc.spring.ApplicationContextProvider;
import org.apache.syncope.core.persistence.api.dao.DAO;
-import org.apache.syncope.core.persistence.api.dao.search.OrderByClause;
import org.apache.syncope.core.persistence.api.entity.Entity;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Configurable;
import org.springframework.orm.jpa.EntityManagerFactoryUtils;
-import org.springframework.util.ReflectionUtils;
@Configurable
public abstract class AbstractDAO<E extends Entity<KEY>, KEY> implements DAO<E, KEY> {
@@ -48,27 +44,6 @@ public abstract class AbstractDAO<E extends Entity<KEY>, KEY> implements DAO<E,
return entityManager;
}
- protected String toOrderByStatement(final Class<? extends Entity<KEY>> beanClass, final String prefix,
- final List<OrderByClause> orderByClauses) {
-
- StringBuilder statement = new StringBuilder();
-
- for (OrderByClause clause : orderByClauses) {
- String field = clause.getField().trim();
- if (ReflectionUtils.findField(beanClass, field) != null) {
- if (StringUtils.isNotBlank(prefix)) {
- statement.append(prefix).append('.');
- }
- statement.append(field).append(' ').append(clause.getDirection().name());
- }
- }
-
- if (statement.length() > 0) {
- statement.insert(0, "ORDER BY ");
- }
- return statement.toString();
- }
-
@Override
public void refresh(final E entity) {
entityManager().refresh(entity);
http://git-wip-us.apache.org/repos/asf/syncope/blob/c14a20d7/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAReportDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAReportDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAReportDAO.java
index 6de5ffb..c227152 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAReportDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAReportDAO.java
@@ -18,12 +18,9 @@
*/
package org.apache.syncope.core.persistence.jpa.dao;
-import java.util.Collections;
import java.util.List;
-import javax.persistence.Query;
import javax.persistence.TypedQuery;
import org.apache.syncope.core.persistence.api.dao.ReportDAO;
-import org.apache.syncope.core.persistence.api.dao.search.OrderByClause;
import org.apache.syncope.core.persistence.api.entity.Report;
import org.apache.syncope.core.persistence.jpa.entity.JPAReport;
import org.springframework.stereotype.Repository;
@@ -41,33 +38,13 @@ public class JPAReportDAO extends AbstractDAO<Report, Long> implements ReportDAO
@Transactional(readOnly = true)
@Override
public List<Report> findAll() {
- return findAll(-1, -1, Collections.<OrderByClause>emptyList());
- }
-
- @Override
- public List<Report> findAll(final int page, final int itemsPerPage, final List<OrderByClause> orderByClauses) {
- final TypedQuery<Report> query = entityManager().createQuery(
- "SELECT e FROM " + JPAReport.class.getSimpleName() + " e "
- + toOrderByStatement(Report.class, "e", orderByClauses), Report.class);
-
- query.setFirstResult(itemsPerPage * (page <= 0
- ? 0
- : page - 1));
-
- if (itemsPerPage > 0) {
- query.setMaxResults(itemsPerPage);
- }
+ TypedQuery<Report> query = entityManager().createQuery(
+ "SELECT e FROM " + JPAReport.class.getSimpleName() + " e", Report.class);
return query.getResultList();
}
@Override
- public int count() {
- Query countQuery = entityManager().createNativeQuery("SELECT COUNT(id) FROM " + JPAReport.TABLE);
- return ((Number) countQuery.getSingleResult()).intValue();
- }
-
- @Override
@Transactional(rollbackFor = Throwable.class)
public Report save(final Report report) {
return entityManager().merge(report);
http://git-wip-us.apache.org/repos/asf/syncope/blob/c14a20d7/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPATaskDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPATaskDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPATaskDAO.java
index b4b5342..21a32e6 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPATaskDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPATaskDAO.java
@@ -23,6 +23,7 @@ import java.util.List;
import javax.persistence.Query;
import org.apache.commons.collections4.Closure;
import org.apache.commons.collections4.CollectionUtils;
+import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.common.lib.types.TaskType;
import org.apache.syncope.core.persistence.api.dao.TaskDAO;
import org.apache.syncope.core.persistence.api.dao.search.OrderByClause;
@@ -36,6 +37,7 @@ import org.apache.syncope.core.persistence.jpa.entity.task.JPASyncTask;
import org.apache.syncope.core.persistence.jpa.entity.task.AbstractTask;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.ReflectionUtils;
@Repository
public class JPATaskDAO extends AbstractDAO<Task, Long> implements TaskDAO {
@@ -78,59 +80,106 @@ public class JPATaskDAO extends AbstractDAO<Task, Long> implements TaskDAO {
return (T) entityManager().find(AbstractTask.class, key);
}
- private <T extends Task> StringBuilder buildfindAllQuery(final TaskType type) {
- return new StringBuilder("SELECT e FROM ").
+ private <T extends Task> StringBuilder buildFindAllQuery(final TaskType type) {
+ return new StringBuilder("SELECT t FROM ").
append(getEntityReference(type).getSimpleName()).
- append(" e WHERE e.type=:type ");
+ append(" t WHERE t.type=:type ");
}
@Override
@SuppressWarnings("unchecked")
public <T extends Task> List<T> findToExec(final TaskType type) {
- StringBuilder queryString = buildfindAllQuery(type).append("AND ");
+ StringBuilder queryString = buildFindAllQuery(type).append("AND ");
if (type == TaskType.NOTIFICATION) {
- queryString.append("e.executed = 0 ");
+ queryString.append("t.executed = 0 ");
} else {
- queryString.append("e.executions IS EMPTY ");
+ queryString.append("t.executions IS EMPTY ");
}
- queryString.append("ORDER BY e.id DESC");
+ queryString.append("ORDER BY t.id DESC");
Query query = entityManager().createQuery(queryString.toString());
query.setParameter("type", type);
return query.getResultList();
}
+ @Transactional(readOnly = true)
@Override
- @SuppressWarnings("unchecked")
- public <T extends Task> List<T> findAll(final ExternalResource resource, final TaskType type) {
- StringBuilder queryString = buildfindAllQuery(type).append("AND e.resource=:resource ORDER BY e.id DESC");
+ public <T extends Task> List<T> findAll(final TaskType type) {
+ return findAll(type, null, null, null, -1, -1, Collections.<OrderByClause>emptyList());
+ }
- final Query query = entityManager().createQuery(queryString.toString());
- query.setParameter("type", type);
- query.setParameter("resource", resource);
+ private StringBuilder buildFindAllQuery(
+ final TaskType type,
+ final ExternalResource resource,
+ final AnyTypeKind anyTypeKind,
+ final Long anyTypeKey) {
- return query.getResultList();
+ if (resource != null
+ && type != TaskType.PROPAGATION && type != TaskType.PUSH && type != TaskType.SYNCHRONIZATION) {
+
+ throw new IllegalArgumentException(type + " is not related to " + ExternalResource.class.getSimpleName());
+ }
+
+ if ((anyTypeKind != null || anyTypeKey != null) && type != TaskType.PROPAGATION) {
+ throw new IllegalArgumentException(type + " is not related to users, groups or any objects");
+ }
+
+ StringBuilder queryString = buildFindAllQuery(type);
+
+ if (resource != null) {
+ queryString.append("AND t.resource=:resource ");
+ }
+ if (anyTypeKind != null && anyTypeKey != null) {
+ queryString.append("AND t.anyTypeKind=:anyTypeKind AND t.anyTypeKey=:anyTypeKey ");
+ }
+
+ return queryString;
}
- @Transactional(readOnly = true)
- @Override
- public <T extends Task> List<T> findAll(final TaskType type) {
- return findAll(-1, -1, Collections.<OrderByClause>emptyList(), type);
+ private String toOrderByStatement(
+ final Class<? extends Task> beanClass, final List<OrderByClause> orderByClauses) {
+
+ StringBuilder statement = new StringBuilder();
+
+ for (OrderByClause clause : orderByClauses) {
+ String field = clause.getField().trim();
+ if (ReflectionUtils.findField(beanClass, field) != null) {
+ statement.append("t.").append(field).append(' ').append(clause.getDirection().name());
+ }
+ }
+
+ if (statement.length() > 0) {
+ statement.insert(0, "ORDER BY ");
+ }
+ return statement.toString();
}
@Override
@SuppressWarnings("unchecked")
- public <T extends Task> List<T> findAll(final int page, final int itemsPerPage,
- final List<OrderByClause> orderByClauses, final TaskType type) {
-
- StringBuilder queryString = buildfindAllQuery(type);
- queryString.append(orderByClauses.isEmpty()
- ? "ORDER BY e.id DESC"
- : toOrderByStatement(getEntityReference(type), "e", orderByClauses));
+ public <T extends Task> List<T> findAll(
+ final TaskType type,
+ final ExternalResource resource,
+ final AnyTypeKind anyTypeKind,
+ final Long anyTypeKey,
+ final int page,
+ final int itemsPerPage,
+ final List<OrderByClause> orderByClauses) {
+
+ StringBuilder queryString = buildFindAllQuery(type, resource, anyTypeKind, anyTypeKey).
+ append(orderByClauses.isEmpty()
+ ? "ORDER BY t.id DESC"
+ : toOrderByStatement(getEntityReference(type), orderByClauses));
Query query = entityManager().createQuery(queryString.toString());
query.setParameter("type", type);
+ if (resource != null) {
+ query.setParameter("resource", resource);
+ }
+ if (anyTypeKind != null && anyTypeKey != null) {
+ query.setParameter("anyTypeKind", anyTypeKind);
+ query.setParameter("anyTypeKey", anyTypeKey);
+ }
query.setFirstResult(itemsPerPage * (page <= 0
? 0
@@ -144,10 +193,27 @@ public class JPATaskDAO extends AbstractDAO<Task, Long> implements TaskDAO {
}
@Override
- public int count(final TaskType type) {
- Query countQuery = entityManager().createNativeQuery("SELECT COUNT(id) FROM Task WHERE TYPE=?1");
- countQuery.setParameter(1, type.name());
- return ((Number) countQuery.getSingleResult()).intValue();
+ public int count(
+ final TaskType type,
+ final ExternalResource resource,
+ final AnyTypeKind anyTypeKind,
+ final Long anyTypeKey) {
+
+ StringBuilder queryString = buildFindAllQuery(type, resource, anyTypeKind, anyTypeKey);
+
+ Query query = entityManager().createQuery(queryString.toString().replace(
+ "SELECT t",
+ "SELECT COUNT(t)"));
+ query.setParameter("type", type);
+ if (resource != null) {
+ query.setParameter("resource", resource);
+ }
+ if (anyTypeKind != null && anyTypeKey != null) {
+ query.setParameter("anyTypeKind", anyTypeKind);
+ query.setParameter("anyTypeKey", anyTypeKey);
+ }
+
+ return ((Number) query.getSingleResult()).intValue();
}
@Transactional(rollbackFor = { Throwable.class })
@@ -173,12 +239,14 @@ public class JPATaskDAO extends AbstractDAO<Task, Long> implements TaskDAO {
@Override
public void deleteAll(final ExternalResource resource, final TaskType type) {
- CollectionUtils.forAllDo(findAll(resource, type), new Closure<Task>() {
-
- @Override
- public void execute(final Task input) {
- delete(input.getKey());
- }
- });
+ CollectionUtils.forAllDo(
+ findAll(type, resource, null, null, -1, -1, Collections.<OrderByClause>emptyList()),
+ new Closure<Task>() {
+
+ @Override
+ public void execute(final Task input) {
+ delete(input.getKey());
+ }
+ });
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/c14a20d7/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPATaskExecDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPATaskExecDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPATaskExecDAO.java
index 38155ff..961fea0 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPATaskExecDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPATaskExecDAO.java
@@ -67,9 +67,12 @@ public class JPATaskExecDAO extends AbstractDAO<TaskExec, Long> implements TaskE
@Override
public List<TaskExec> findAll(final TaskType type) {
- StringBuilder queryString = new StringBuilder("SELECT e FROM ").append(JPATaskExec.class.getSimpleName()).
- append(" e WHERE e.task IN (").append("SELECT t FROM ").
- append(taskDAO.getEntityReference(type).getSimpleName()).append(" t)");
+ StringBuilder queryString = new StringBuilder("SELECT e FROM ").
+ append(JPATaskExec.class.getSimpleName()).
+ append(" e WHERE e.task IN (").
+ append("SELECT t FROM ").
+ append(taskDAO.getEntityReference(type).getSimpleName()).
+ append(" t)");
TypedQuery<TaskExec> query = entityManager().createQuery(queryString.toString(), TaskExec.class);
return query.getResultList();
http://git-wip-us.apache.org/repos/asf/syncope/blob/c14a20d7/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPropagationTask.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPropagationTask.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPropagationTask.java
index e4d969d..19fc9f6 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPropagationTask.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPropagationTask.java
@@ -53,13 +53,13 @@ public class JPAPropagationTask extends AbstractTask implements PropagationTask
* @see PropagationMode
*/
@Enumerated(EnumType.STRING)
- private PropagationMode propagationMode;
+ private PropagationMode mode;
/**
* @see ResourceOperation
*/
@Enumerated(EnumType.STRING)
- private ResourceOperation propagationOperation;
+ private ResourceOperation operation;
/**
* The connObjectKey on the external resource.
@@ -132,26 +132,26 @@ public class JPAPropagationTask extends AbstractTask implements PropagationTask
@Override
- public PropagationMode getPropagationMode() {
- return propagationMode;
+ public PropagationMode getMode() {
+ return mode;
}
@Override
- public void setPropagationMode(final PropagationMode propagationMode) {
- this.propagationMode = propagationMode;
+ public void setMode(final PropagationMode mode) {
+ this.mode = mode;
}
@Override
- public ResourceOperation getPropagationOperation() {
- return propagationOperation;
+ public ResourceOperation getOperation() {
+ return operation;
}
@Override
- public void setPropagationOperation(final ResourceOperation propagationOperation) {
- this.propagationOperation = propagationOperation;
+ public void setOperation(final ResourceOperation operation) {
+ this.operation = operation;
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/c14a20d7/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/PropagationTaskValidator.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/PropagationTaskValidator.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/PropagationTaskValidator.java
index 43db7f5..48d0cc3 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/PropagationTaskValidator.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/PropagationTaskValidator.java
@@ -35,8 +35,8 @@ public class PropagationTaskValidator extends AbstractValidator<PropagationTaskC
if (task == null) {
isValid = true;
} else {
- isValid = task.getPropagationMode() != null
- && task.getPropagationOperation() != null
+ isValid = task.getMode() != null
+ && task.getOperation() != null
&& !task.getAttributes().isEmpty()
&& task.getResource() != null;
http://git-wip-us.apache.org/repos/asf/syncope/blob/c14a20d7/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ReportTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ReportTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ReportTest.java
index 536d74f..8c419aa 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ReportTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ReportTest.java
@@ -55,7 +55,7 @@ public class ReportTest extends AbstractTest {
@Test
public void save() {
- int beforeCount = reportDAO.count();
+ int beforeCount = reportDAO.findAll().size();
Report report = entityFactory.newEntity(Report.class);
report.setName("new report");
@@ -66,7 +66,7 @@ public class ReportTest extends AbstractTest {
assertNotNull(report);
assertNotNull(report.getKey());
- int afterCount = reportDAO.count();
+ int afterCount = reportDAO.findAll().size();
assertEquals(afterCount, beforeCount + 1);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/c14a20d7/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/TaskTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/TaskTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/TaskTest.java
index 2fa4a8c..9055fbc 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/TaskTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/TaskTest.java
@@ -68,7 +68,8 @@ public class TaskTest extends AbstractTest {
@Test
public void findPaginated() {
- List<Task> tasks = taskDAO.findAll(1, 2, Collections.<OrderByClause>emptyList(), TaskType.PROPAGATION);
+ List<Task> tasks = taskDAO.findAll(
+ TaskType.PROPAGATION, null, null, null, 1, 2, Collections.<OrderByClause>emptyList());
assertNotNull(tasks);
assertEquals(2, tasks.size());
@@ -76,7 +77,8 @@ public class TaskTest extends AbstractTest {
assertNotNull(task);
}
- tasks = taskDAO.findAll(2, 2, Collections.<OrderByClause>emptyList(), TaskType.PROPAGATION);
+ tasks = taskDAO.findAll(
+ TaskType.PROPAGATION, null, null, null, 2, 2, Collections.<OrderByClause>emptyList());
assertNotNull(tasks);
assertEquals(2, tasks.size());
@@ -84,9 +86,12 @@ public class TaskTest extends AbstractTest {
assertNotNull(task);
}
- tasks = taskDAO.findAll(1000, 2, Collections.<OrderByClause>emptyList(), TaskType.PROPAGATION);
+ tasks = taskDAO.findAll(
+ TaskType.PROPAGATION, null, null, null, 1000, 2, Collections.<OrderByClause>emptyList());
assertNotNull(tasks);
assertTrue(tasks.isEmpty());
+
+ assertEquals(5, taskDAO.count(TaskType.PROPAGATION, null, null, null));
}
@Test
@@ -109,8 +114,8 @@ public class TaskTest extends AbstractTest {
PropagationTask task = entityFactory.newEntity(PropagationTask.class);
task.setResource(resource);
task.setAnyTypeKind(AnyTypeKind.USER);
- task.setPropagationMode(PropagationMode.TWO_PHASES);
- task.setPropagationOperation(ResourceOperation.CREATE);
+ task.setMode(PropagationMode.TWO_PHASES);
+ task.setOperation(ResourceOperation.CREATE);
task.setConnObjectKey("one@two.com");
Set<Attribute> attributes = new HashSet<>();
@@ -139,6 +144,8 @@ public class TaskTest extends AbstractTest {
resource = resourceDAO.find(resource.getKey());
assertNotNull(resource);
- assertFalse(taskDAO.findAll(resource, TaskType.PROPAGATION).contains(task));
+ assertFalse(taskDAO.findAll(
+ TaskType.PROPAGATION, resource, null, null, -1, -1, Collections.<OrderByClause>emptyList()).
+ contains(task));
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/c14a20d7/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/ResourceTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/ResourceTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/ResourceTest.java
index 1cd5e47..5628c29 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/ResourceTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/ResourceTest.java
@@ -25,6 +25,7 @@ import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -37,6 +38,7 @@ import org.apache.syncope.core.persistence.api.dao.ExternalResourceDAO;
import org.apache.syncope.core.persistence.api.dao.PolicyDAO;
import org.apache.syncope.core.persistence.api.dao.TaskDAO;
import org.apache.syncope.core.persistence.api.dao.UserDAO;
+import org.apache.syncope.core.persistence.api.dao.search.OrderByClause;
import org.apache.syncope.core.persistence.api.entity.ConnInstance;
import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
import org.apache.syncope.core.persistence.api.entity.policy.PasswordPolicy;
@@ -216,7 +218,8 @@ public class ResourceTest extends AbstractTest {
// -------------------------------------
// Get tasks
- List<PropagationTask> propagationTasks = taskDAO.findAll(resource, TaskType.PROPAGATION);
+ List<PropagationTask> propagationTasks = taskDAO.findAll(
+ TaskType.PROPAGATION, resource, null, null, -1, -1, Collections.<OrderByClause>emptyList());
assertFalse(propagationTasks.isEmpty());
// delete resource
http://git-wip-us.apache.org/repos/asf/syncope/blob/c14a20d7/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/TaskTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/TaskTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/TaskTest.java
index e2b1c9e..7ef25aa 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/TaskTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/TaskTest.java
@@ -24,6 +24,7 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
+import java.util.Collections;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
@@ -40,12 +41,12 @@ import org.apache.syncope.core.persistence.api.dao.ExternalResourceDAO;
import org.apache.syncope.core.persistence.api.dao.TaskDAO;
import org.apache.syncope.core.persistence.api.dao.TaskExecDAO;
import org.apache.syncope.core.persistence.api.dao.UserDAO;
+import org.apache.syncope.core.persistence.api.dao.search.OrderByClause;
import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
import org.apache.syncope.core.persistence.api.entity.task.PropagationTask;
import org.apache.syncope.core.persistence.api.entity.task.PushTask;
import org.apache.syncope.core.persistence.api.entity.task.SyncTask;
import org.apache.syncope.core.persistence.api.entity.task.TaskExec;
-import org.apache.syncope.core.persistence.api.entity.AnyTemplate;
import org.apache.syncope.core.persistence.api.entity.task.AnyTemplateSyncTask;
import org.apache.syncope.core.persistence.api.entity.user.User;
import org.apache.syncope.core.persistence.jpa.AbstractTest;
@@ -92,8 +93,8 @@ public class TaskTest extends AbstractTest {
PropagationTask task = entityFactory.newEntity(PropagationTask.class);
task.setResource(resource);
task.setAnyTypeKind(AnyTypeKind.USER);
- task.setPropagationMode(PropagationMode.TWO_PHASES);
- task.setPropagationOperation(ResourceOperation.CREATE);
+ task.setMode(PropagationMode.TWO_PHASES);
+ task.setOperation(ResourceOperation.CREATE);
task.setConnObjectKey("one@two.com");
Set<Attribute> attributes = new HashSet<>();
@@ -110,7 +111,9 @@ public class TaskTest extends AbstractTest {
taskDAO.flush();
resource = resourceDAO.find("ws-target-resource-1");
- assertTrue(taskDAO.findAll(resource, TaskType.PROPAGATION).contains(task));
+ assertTrue(taskDAO.findAll(
+ TaskType.PROPAGATION, resource, null, null, -1, -1, Collections.<OrderByClause>emptyList()).
+ contains(task));
}
@Test
http://git-wip-us.apache.org/repos/asf/syncope/blob/c14a20d7/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/resources/domains/MasterContent.xml b/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
index 5c61a22..0d1e67b 100644
--- a/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
+++ b/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
@@ -984,14 +984,14 @@ under the License.
intAttrName="location" intMappingType="AnyObjectPlainSchema"
mandatoryCondition="false" connObjectKey="0" password="0" purpose="BOTH"/>
- <Task DTYPE="PropagationTask" type="PROPAGATION" id="1" propagationMode="TWO_PHASES" propagationOperation="UPDATE"
+ <Task DTYPE="PropagationTask" type="PROPAGATION" id="1" mode="TWO_PHASES" operation="UPDATE"
objectClassName="__ACCOUNT__" resource_name="ws-target-resource-2" anyTypeKind="USER" anyKey="1"
xmlAttributes='[{"name":"__PASSWORD__","value":[{"readOnly":false,"disposed":false,"encryptedBytes":"m9nh2US0Sa6m+cXccCq0Xw==","base64SHA1Hash":"GFJ69qfjxEOdrmt+9q+0Cw2uz60="}]},{"name":"__NAME__","value":["userId"],"nameValue":"userId"},{"name":"fullname","value":["fullname"]},{"name":"type","value":["type"]}]'/>
<TaskExec id="1" task_id="1" status="SUCCESS"/>
- <Task DTYPE="PropagationTask" type="PROPAGATION" id="2" propagationMode="ONE_PHASE" propagationOperation="CREATE"
+ <Task DTYPE="PropagationTask" type="PROPAGATION" id="2" mode="ONE_PHASE" operation="CREATE"
objectClassName="__ACCOUNT__" resource_name="ws-target-resource-2" anyTypeKind="USER" anyKey="1"
xmlAttributes='[{"name":"__PASSWORD__","value":[{"readOnly":false,"disposed":false,"encryptedBytes":"m9nh2US0Sa6m+cXccCq0Xw==","base64SHA1Hash":"GFJ69qfjxEOdrmt+9q+0Cw2uz60="}]},{"name":"__NAME__","value":["userId"],"nameValue":"userId"},{"name":"fullname","value":["fullname"]},{"name":"type","value":["type"]}]'/>
- <Task DTYPE="PropagationTask" type="PROPAGATION" id="3" propagationMode="TWO_PHASES" propagationOperation="DELETE"
+ <Task DTYPE="PropagationTask" type="PROPAGATION" id="3" mode="TWO_PHASES" operation="DELETE"
objectClassName="__ACCOUNT__" resource_name="ws-target-resource-2" anyTypeKind="USER" anyKey="1"
xmlAttributes='[{"name":"__PASSWORD__","value":[{"readOnly":false,"disposed":false,"encryptedBytes":"m9nh2US0Sa6m+cXccCq0Xw==","base64SHA1Hash":"GFJ69qfjxEOdrmt+9q+0Cw2uz60="}]},{"name":"__NAME__","value":["userId"],"nameValue":"userId"},{"name":"type","value":["type"]}]'/>
<Task DTYPE="SyncTask" type="SYNCHRONIZATION" id="4" name="CSV (update matching; assign unmatching)" resource_name="resource-csv"
@@ -1003,7 +1003,7 @@ under the License.
template='{"@class":"org.apache.syncope.common.lib.to.GroupTO","creator":null,"creationDate":null,"lastModifier":null,"lastChangeDate":null,"key":0,"type":"GROUP","realm":null,"status":null,"name":null,"userOwner":null,"groupOwner":null,"adynMembershipCond":null,"udynMembershipCond":null,"auxClasses":[],"derAttrs":[],"virAttrs":[],"resources":[],"propagationStatuses":[],"plainAttrs":[]}'/>
<Task DTYPE="SchedTask" type="SCHEDULED" id="5" name="SampleJob Task"
jobDelegateClassName="org.apache.syncope.fit.core.reference.TestSampleJobDelegate" cronExpression="0 0 0 1 * ?"/>
- <Task DTYPE="PropagationTask" type="PROPAGATION" id="6" propagationMode="TWO_PHASES" propagationOperation="UPDATE"
+ <Task DTYPE="PropagationTask" type="PROPAGATION" id="6" mode="TWO_PHASES" operation="UPDATE"
objectClassName="__ACCOUNT__" resource_name="ws-target-resource-nopropagation" anyTypeKind="USER" anyKey="1"
xmlAttributes='[{"name":"__PASSWORD__","value":[{"readOnly":false,"disposed":false,"encryptedBytes":"m9nh2US0Sa6m+cXccCq0Xw==","base64SHA1Hash":"GFJ69qfjxEOdrmt+9q+0Cw2uz60="}]},{"name":"__NAME__","value":["userId"],"nameValue":"userId"},{"name":"fullname","value":["fullname"]},{"name":"type","value":["type"]}]'/>
<TaskExec id="6" task_id="6" status="SUCCESS"/>
@@ -1102,7 +1102,7 @@ under the License.
<Task DTYPE="SyncTask" type="SYNCHRONIZATION" id="26" name="CSV (ignore matching; assign unmatching)" resource_name="resource-csv"
destinationRealm_id="1" performCreate="1" performUpdate="1" performDelete="1" syncStatus="1" fullReconciliation="0"
unmatchingRule="ASSIGN" matchingRule="IGNORE"/>
- <Task DTYPE="PropagationTask" type="PROPAGATION" id="27" propagationMode="ONE_PHASE" propagationOperation="CREATE"
+ <Task DTYPE="PropagationTask" type="PROPAGATION" id="27" mode="ONE_PHASE" operation="CREATE"
objectClassName="__ACCOUNT__" resource_name="resource-testdb" anyTypeKind="USER" anyKey="1"
xmlAttributes='[{"name":"__PASSWORD__","value":[{"readOnly":false,"disposed":false,"encryptedBytes":"m9nh2US0Sa6m+cXccCq0Xw==","base64SHA1Hash":"GFJ69qfjxEOdrmt+9q+0Cw2uz60="}]},{"name":"__NAME__","value":["userId"],"nameValue":"userId"},{"name":"fullname","value":["fullname"]},{"name":"type","value":["type"]}]'/>
<Task DTYPE="SyncTask" type="SYNCHRONIZATION" id="28" name="Scripted SQL" resource_name="resource-db-scripted"