You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by fm...@apache.org on 2015/09/10 14:37:51 UTC
[21/26] syncope git commit: [SYNCOPE-665] Implementation completed
http://git-wip-us.apache.org/repos/asf/syncope/blob/00988759/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/TaskDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/TaskDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/TaskDataBinderImpl.java
index 2295753..32a095b 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/TaskDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/TaskDataBinderImpl.java
@@ -23,22 +23,19 @@ import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.Predicate;
import org.apache.syncope.core.provisioning.api.data.TaskDataBinder;
import org.apache.commons.lang3.StringUtils;
-import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.to.AbstractProvisioningTaskTO;
import org.apache.syncope.common.lib.to.AbstractTaskTO;
import org.apache.syncope.common.lib.to.AnyTO;
-import org.apache.syncope.common.lib.to.AttrTO;
import org.apache.syncope.common.lib.to.PropagationTaskTO;
import org.apache.syncope.common.lib.to.PushTaskTO;
-import org.apache.syncope.common.lib.to.GroupTO;
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.to.UserTO;
import org.apache.syncope.common.lib.types.ClientExceptionType;
import org.apache.syncope.common.lib.types.MatchingRule;
import org.apache.syncope.common.lib.types.TaskType;
import org.apache.syncope.common.lib.types.UnmatchingRule;
+import org.apache.syncope.core.misc.TemplateUtils;
import org.apache.syncope.core.persistence.api.dao.ExternalResourceDAO;
import org.apache.syncope.core.persistence.api.dao.NotFoundException;
import org.apache.syncope.core.persistence.api.dao.TaskExecDAO;
@@ -53,14 +50,14 @@ import org.apache.syncope.core.persistence.api.entity.task.TaskExec;
import org.apache.syncope.core.persistence.api.entity.task.TaskUtils;
import org.apache.syncope.core.provisioning.api.job.JobNamer;
import org.apache.syncope.core.misc.spring.BeanUtils;
-import org.apache.syncope.core.misc.jexl.JexlUtils;
import org.apache.syncope.core.persistence.api.dao.AnyTypeDAO;
import org.apache.syncope.core.persistence.api.dao.RealmDAO;
import org.apache.syncope.core.persistence.api.entity.AnyType;
import org.apache.syncope.core.persistence.api.entity.EntityFactory;
import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
import org.apache.syncope.core.persistence.api.entity.task.AnyFilter;
-import org.apache.syncope.core.persistence.api.entity.task.AnyTemplate;
+import org.apache.syncope.core.persistence.api.entity.AnyTemplate;
+import org.apache.syncope.core.persistence.api.entity.task.AnyTemplateSyncTask;
import org.apache.syncope.core.provisioning.java.sync.PushJobDelegate;
import org.apache.syncope.core.provisioning.java.sync.SyncJobDelegate;
import org.quartz.Scheduler;
@@ -99,50 +96,10 @@ public class TaskDataBinderImpl implements TaskDataBinder {
private EntityFactory entityFactory;
@Autowired
- private SchedulerFactoryBean scheduler;
-
- private void checkTemplateJEXL(final SyncTaskTO syncTaskTO) {
- SyncopeClientException sce = SyncopeClientException.build(ClientExceptionType.InvalidSyncTask);
-
- for (Map.Entry<String, AnyTO> entry : syncTaskTO.getTemplates().entrySet()) {
- for (AttrTO attrTO : entry.getValue().getPlainAttrs()) {
- if (!attrTO.getValues().isEmpty() && !JexlUtils.isExpressionValid(attrTO.getValues().get(0))) {
- sce.getElements().add("Invalid JEXL: " + attrTO.getValues().get(0));
- }
- }
-
- for (AttrTO attrTO : entry.getValue().getVirAttrs()) {
- if (!attrTO.getValues().isEmpty() && !JexlUtils.isExpressionValid(attrTO.getValues().get(0))) {
- sce.getElements().add("Invalid JEXL: " + attrTO.getValues().get(0));
- }
- }
-
- if (entry.getValue() instanceof UserTO) {
- UserTO template = (UserTO) entry.getValue();
- if (StringUtils.isNotBlank(template.getUsername())
- && !JexlUtils.isExpressionValid(template.getUsername())) {
-
- sce.getElements().add("Invalid JEXL: " + template.getUsername());
- }
- if (StringUtils.isNotBlank(template.getPassword())
- && !JexlUtils.isExpressionValid(template.getPassword())) {
+ private TemplateUtils templateUtils;
- sce.getElements().add("Invalid JEXL: " + template.getPassword());
- }
- } else if (entry.getValue() instanceof GroupTO) {
- GroupTO template = (GroupTO) entry.getValue();
- if (StringUtils.isNotBlank(template.getName())
- && !JexlUtils.isExpressionValid(template.getName())) {
-
- sce.getElements().add("Invalid JEXL: " + template.getName());
- }
- }
- }
-
- if (!sce.isEmpty()) {
- throw sce;
- }
- }
+ @Autowired
+ private SchedulerFactoryBean scheduler;
private void fill(final ProvisioningTask task, final AbstractProvisioningTaskTO taskTO) {
if (task instanceof PushTask && taskTO instanceof PushTaskTO) {
@@ -193,15 +150,15 @@ public class TaskDataBinderImpl implements TaskDataBinder {
? UnmatchingRule.PROVISION : syncTaskTO.getUnmatchingRule());
// validate JEXL expressions from templates and proceed if fine
- checkTemplateJEXL(syncTaskTO);
+ templateUtils.check(syncTaskTO.getTemplates(), ClientExceptionType.InvalidSyncTask);
for (Map.Entry<String, AnyTO> entry : syncTaskTO.getTemplates().entrySet()) {
AnyType type = anyTypeDAO.find(entry.getKey());
if (type == null) {
LOG.debug("Invalid AnyType {} specified, ignoring...", entry.getKey());
} else {
- AnyTemplate anyTemplate = syncTask.getTemplate(type);
+ AnyTemplateSyncTask anyTemplate = syncTask.getTemplate(type);
if (anyTemplate == null) {
- anyTemplate = entityFactory.newEntity(AnyTemplate.class);
+ anyTemplate = entityFactory.newEntity(AnyTemplateSyncTask.class);
anyTemplate.setAnyType(type);
anyTemplate.setSyncTask(syncTask);
http://git-wip-us.apache.org/repos/asf/syncope/blob/00988759/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
index 5589fa8..ca801f0 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
@@ -161,9 +161,7 @@ public class UserDataBinderImpl extends AbstractAnyDataBinder implements UserDat
AnyObject anyObject = anyObjectDAO.find(relationshipTO.getRightKey());
if (anyObject == null) {
- if (LOG.isDebugEnabled()) {
- LOG.debug("Ignoring invalid anyObject " + relationshipTO.getRightKey());
- }
+ LOG.debug("Ignoring invalid anyObject " + relationshipTO.getRightKey());
} else {
URelationship relationship = null;
if (user.getKey() != null) {
@@ -184,9 +182,7 @@ public class UserDataBinderImpl extends AbstractAnyDataBinder implements UserDat
Group group = groupDAO.find(membershipTO.getRightKey());
if (group == null) {
- if (LOG.isDebugEnabled()) {
- LOG.debug("Ignoring invalid group " + membershipTO.getGroupName());
- }
+ LOG.debug("Ignoring invalid group " + membershipTO.getGroupName());
} else {
UMembership membership = null;
if (user.getKey() != null) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/00988759/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/AbstractSyncResultHandler.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/AbstractSyncResultHandler.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/AbstractSyncResultHandler.java
index c69a0d6..a97a3ca 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/AbstractSyncResultHandler.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/AbstractSyncResultHandler.java
@@ -36,7 +36,6 @@ import org.apache.syncope.core.provisioning.api.sync.SyncActions;
import org.apache.syncope.core.misc.security.DelegatedAdministrationException;
import org.apache.syncope.core.persistence.api.entity.AnyUtils;
import org.apache.syncope.core.persistence.api.entity.resource.Provision;
-import org.apache.syncope.core.provisioning.api.AnyTransformer;
import org.apache.syncope.core.provisioning.api.sync.IgnoreProvisionException;
import org.apache.syncope.core.provisioning.api.sync.ProvisioningResult;
import org.apache.syncope.core.provisioning.api.sync.SyncopeSyncResultHandler;
@@ -53,9 +52,6 @@ public abstract class AbstractSyncResultHandler extends AbstractSyncopeResultHan
@Autowired
protected SyncUtils syncUtilities;
- @Autowired
- protected AnyTransformer anyTransformer;
-
protected abstract String getName(AnyTO anyTO);
protected abstract AnyTO doCreate(AnyTO anyTO, SyncDelta delta, ProvisioningResult result);
@@ -115,22 +111,17 @@ public abstract class AbstractSyncResultHandler extends AbstractSyncopeResultHan
result.setOperation(ResourceOperation.CREATE);
result.setAnyType(provision.getAnyType().getKey());
result.setStatus(ProvisioningResult.Status.SUCCESS);
-
- // Any transformation (if configured)
- AnyTO transformed = anyTransformer.transform(anyTO);
- LOG.debug("Transformed: {}", transformed);
-
- result.setName(getName(transformed));
+ result.setName(getName(anyTO));
if (profile.isDryRun()) {
result.setKey(0L);
} else {
SyncDelta actionedDelta = delta;
for (SyncActions action : profile.getActions()) {
- actionedDelta = action.beforeAssign(this.getProfile(), actionedDelta, transformed);
+ actionedDelta = action.beforeAssign(this.getProfile(), actionedDelta, anyTO);
}
- create(transformed, actionedDelta, UnmatchingRule.toEventName(UnmatchingRule.ASSIGN), result);
+ create(anyTO, actionedDelta, UnmatchingRule.toEventName(UnmatchingRule.ASSIGN), result);
}
return Collections.singletonList(result);
@@ -147,26 +138,21 @@ public abstract class AbstractSyncResultHandler extends AbstractSyncopeResultHan
AnyTO anyTO = connObjectUtils.getAnyTO(delta.getObject(), profile.getTask(), provision, anyUtils);
- // Any transformation (if configured)
- AnyTO transformed = anyTransformer.transform(anyTO);
- LOG.debug("Transformed: {}", transformed);
-
ProvisioningResult result = new ProvisioningResult();
result.setOperation(ResourceOperation.CREATE);
result.setAnyType(provision.getAnyType().getKey());
result.setStatus(ProvisioningResult.Status.SUCCESS);
-
- result.setName(getName(transformed));
+ result.setName(getName(anyTO));
if (profile.isDryRun()) {
result.setKey(0L);
} else {
SyncDelta actionedDelta = delta;
for (SyncActions action : profile.getActions()) {
- actionedDelta = action.beforeProvision(this.getProfile(), actionedDelta, transformed);
+ actionedDelta = action.beforeProvision(this.getProfile(), actionedDelta, anyTO);
}
- create(transformed, actionedDelta, UnmatchingRule.toEventName(UnmatchingRule.PROVISION), result);
+ create(anyTO, actionedDelta, UnmatchingRule.toEventName(UnmatchingRule.PROVISION), result);
}
return Collections.<ProvisioningResult>singletonList(result);
@@ -264,10 +250,6 @@ public abstract class AbstractSyncResultHandler extends AbstractSyncopeResultHan
provision,
getAnyUtils());
- // Attribute value transformation (if configured)
- AnyMod actual = anyTransformer.transform(anyMod);
- LOG.debug("Transformed: {}", actual);
-
for (SyncActions action : profile.getActions()) {
workingDelta = action.beforeUpdate(this.getProfile(), workingDelta, before, anyMod);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/00988759/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/DBPasswordSyncActions.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/DBPasswordSyncActions.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/DBPasswordSyncActions.java
index 5615876..ad08a92 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/DBPasswordSyncActions.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/DBPasswordSyncActions.java
@@ -59,10 +59,10 @@ public class DBPasswordSyncActions extends DefaultSyncActions {
@Transactional(readOnly = true)
@Override
- public <T extends AnyTO> SyncDelta beforeProvision(
+ public <A extends AnyTO> SyncDelta beforeProvision(
final ProvisioningProfile<?, ?> profile,
final SyncDelta delta,
- final T any) throws JobExecutionException {
+ final A any) throws JobExecutionException {
if (any instanceof UserTO) {
String password = ((UserTO) any).getPassword();
@@ -74,11 +74,11 @@ public class DBPasswordSyncActions extends DefaultSyncActions {
@Transactional(readOnly = true)
@Override
- public <T extends AnyTO, K extends AnyMod> SyncDelta beforeUpdate(
+ public <A extends AnyTO, M extends AnyMod> SyncDelta beforeUpdate(
final ProvisioningProfile<?, ?> profile,
final SyncDelta delta,
- final T any,
- final K anyMod) throws JobExecutionException {
+ final A any,
+ final M anyMod) throws JobExecutionException {
if (anyMod instanceof UserMod) {
String modPassword = ((UserMod) anyMod).getPassword();
@@ -123,10 +123,10 @@ public class DBPasswordSyncActions extends DefaultSyncActions {
@Transactional(readOnly = true)
@Override
- public <T extends AnyTO> void after(
+ public <A extends AnyTO> void after(
final ProvisioningProfile<?, ?> profile,
final SyncDelta delta,
- final T any,
+ final A any,
final ProvisioningResult result) throws JobExecutionException {
if (any instanceof UserTO && encodedPassword != null && cipher != null) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/00988759/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/DefaultPushActions.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/DefaultPushActions.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/DefaultPushActions.java
index 14da889..a99b3e5 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/DefaultPushActions.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/DefaultPushActions.java
@@ -34,58 +34,58 @@ public abstract class DefaultPushActions implements PushActions {
}
@Override
- public <T extends Any<?, ?, ?>> T beforeAssign(final ProvisioningProfile<?, ?> profile, final T any)
+ public <A extends Any<?, ?, ?>> A beforeAssign(final ProvisioningProfile<?, ?> profile, final A any)
throws JobExecutionException {
return any;
}
@Override
- public <T extends Any<?, ?, ?>> T beforeProvision(final ProvisioningProfile<?, ?> profile, final T any)
+ public <A extends Any<?, ?, ?>> A beforeProvision(final ProvisioningProfile<?, ?> profile, final A any)
throws JobExecutionException {
return any;
}
@Override
- public <T extends Any<?, ?, ?>> T beforeLink(final ProvisioningProfile<?, ?> profile, final T any)
+ public <A extends Any<?, ?, ?>> A beforeLink(final ProvisioningProfile<?, ?> profile, final A any)
throws JobExecutionException {
return any;
}
@Override
- public <T extends Any<?, ?, ?>> T beforeUnassign(final ProvisioningProfile<?, ?> profile, final T any)
+ public <A extends Any<?, ?, ?>> A beforeUnassign(final ProvisioningProfile<?, ?> profile, final A any)
throws JobExecutionException {
return any;
}
@Override
- public <T extends Any<?, ?, ?>> T beforeDeprovision(final ProvisioningProfile<?, ?> profile, final T any)
+ public <A extends Any<?, ?, ?>> A beforeDeprovision(final ProvisioningProfile<?, ?> profile, final A any)
throws JobExecutionException {
return any;
}
@Override
- public <T extends Any<?, ?, ?>> T beforeUnlink(final ProvisioningProfile<?, ?> profile, final T any)
+ public <A extends Any<?, ?, ?>> A beforeUnlink(final ProvisioningProfile<?, ?> profile, final A any)
throws JobExecutionException {
return any;
}
@Override
- public <T extends Any<?, ?, ?>> void onError(
- final ProvisioningProfile<?, ?> profile, final T any, final ProvisioningResult result,
+ public <A extends Any<?, ?, ?>> void onError(
+ final ProvisioningProfile<?, ?> profile, final A any, final ProvisioningResult result,
final Exception error) throws JobExecutionException {
// do nothing
}
@Override
- public <T extends Any<?, ?, ?>> void after(
- final ProvisioningProfile<?, ?> profile, final T any, final ProvisioningResult result)
+ public <A extends Any<?, ?, ?>> void after(
+ final ProvisioningProfile<?, ?> profile, final A any, final ProvisioningResult result)
throws JobExecutionException {
// do nothing
http://git-wip-us.apache.org/repos/asf/syncope/blob/00988759/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/DefaultSyncActions.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/DefaultSyncActions.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/DefaultSyncActions.java
index 29d7662..668584b 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/DefaultSyncActions.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/DefaultSyncActions.java
@@ -36,66 +36,66 @@ public abstract class DefaultSyncActions implements SyncActions {
}
@Override
- public <T extends AnyTO, K extends AnyMod> SyncDelta beforeUpdate(
+ public <A extends AnyTO, M extends AnyMod> SyncDelta beforeUpdate(
final ProvisioningProfile<?, ?> profile,
final SyncDelta delta,
- final T any,
- final K anyMod) throws JobExecutionException {
+ final A any,
+ final M anyMod) throws JobExecutionException {
return delta;
}
@Override
- public <T extends AnyTO> SyncDelta beforeDelete(
- final ProvisioningProfile<?, ?> profile, final SyncDelta delta, final T any)
+ public <A extends AnyTO> SyncDelta beforeDelete(
+ final ProvisioningProfile<?, ?> profile, final SyncDelta delta, final A any)
throws JobExecutionException {
return delta;
}
@Override
- public <T extends AnyTO> SyncDelta beforeAssign(
- final ProvisioningProfile<?, ?> profile, final SyncDelta delta, final T any)
+ public <A extends AnyTO> SyncDelta beforeAssign(
+ final ProvisioningProfile<?, ?> profile, final SyncDelta delta, final A any)
throws JobExecutionException {
return delta;
}
@Override
- public <T extends AnyTO> SyncDelta beforeProvision(
- final ProvisioningProfile<?, ?> profile, final SyncDelta delta, final T any)
+ public <A extends AnyTO> SyncDelta beforeProvision(
+ final ProvisioningProfile<?, ?> profile, final SyncDelta delta, final A any)
throws JobExecutionException {
return delta;
}
@Override
- public <T extends AnyTO> SyncDelta beforeLink(
- final ProvisioningProfile<?, ?> profile, final SyncDelta delta, final T any)
+ public <A extends AnyTO> SyncDelta beforeLink(
+ final ProvisioningProfile<?, ?> profile, final SyncDelta delta, final A any)
throws JobExecutionException {
return delta;
}
@Override
- public <T extends AnyTO> SyncDelta beforeUnassign(
- final ProvisioningProfile<?, ?> profile, final SyncDelta delta, final T any)
+ public <A extends AnyTO> SyncDelta beforeUnassign(
+ final ProvisioningProfile<?, ?> profile, final SyncDelta delta, final A any)
throws JobExecutionException {
return delta;
}
@Override
- public <T extends AnyTO> SyncDelta beforeDeprovision(
- final ProvisioningProfile<?, ?> profile, final SyncDelta delta, final T any)
+ public <A extends AnyTO> SyncDelta beforeDeprovision(
+ final ProvisioningProfile<?, ?> profile, final SyncDelta delta, final A any)
throws JobExecutionException {
return delta;
}
@Override
- public <T extends AnyTO> SyncDelta beforeUnlink(
- final ProvisioningProfile<?, ?> profile, final SyncDelta delta, final T any)
+ public <A extends AnyTO> SyncDelta beforeUnlink(
+ final ProvisioningProfile<?, ?> profile, final SyncDelta delta, final A any)
throws JobExecutionException {
return delta;
@@ -108,8 +108,8 @@ public abstract class DefaultSyncActions implements SyncActions {
}
@Override
- public <T extends AnyTO> void after(
- final ProvisioningProfile<?, ?> profile, final SyncDelta delta, final T any,
+ public <A extends AnyTO> void after(
+ final ProvisioningProfile<?, ?> profile, final SyncDelta delta, final A any,
final ProvisioningResult result)
throws JobExecutionException {
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/00988759/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/LDAPMembershipSyncActions.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/LDAPMembershipSyncActions.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/LDAPMembershipSyncActions.java
index 873232f..cf4fb17 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/LDAPMembershipSyncActions.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/LDAPMembershipSyncActions.java
@@ -129,9 +129,9 @@ public class LDAPMembershipSyncActions extends DefaultSyncActions {
* {@inheritDoc}
*/
@Override
- public <T extends AnyTO, K extends AnyMod> SyncDelta beforeUpdate(
+ public <A extends AnyTO, M extends AnyMod> SyncDelta beforeUpdate(
final ProvisioningProfile<?, ?> profile,
- final SyncDelta delta, final T any, final K anyMod) throws JobExecutionException {
+ final SyncDelta delta, final A any, final M anyMod) throws JobExecutionException {
if (any instanceof GroupTO) {
// search for all users assigned to given group
@@ -293,10 +293,10 @@ public class LDAPMembershipSyncActions extends DefaultSyncActions {
* {@inheritDoc}
*/
@Override
- public <T extends AnyTO> void after(
+ public <A extends AnyTO> void after(
final ProvisioningProfile<?, ?> profile,
final SyncDelta delta,
- final T any,
+ final A any,
final ProvisioningResult result) throws JobExecutionException {
if (!(profile.getTask() instanceof SyncTask)) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/00988759/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/LDAPPasswordSyncActions.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/LDAPPasswordSyncActions.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/LDAPPasswordSyncActions.java
index 32f660e..b35e42f 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/LDAPPasswordSyncActions.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/LDAPPasswordSyncActions.java
@@ -53,10 +53,10 @@ public class LDAPPasswordSyncActions extends DefaultSyncActions {
@Transactional(readOnly = true)
@Override
- public <T extends AnyTO> SyncDelta beforeProvision(
+ public <A extends AnyTO> SyncDelta beforeProvision(
final ProvisioningProfile<?, ?> profile,
final SyncDelta delta,
- final T any) throws JobExecutionException {
+ final A any) throws JobExecutionException {
if (any instanceof UserTO) {
String password = ((UserTO) any).getPassword();
@@ -68,11 +68,11 @@ public class LDAPPasswordSyncActions extends DefaultSyncActions {
@Transactional(readOnly = true)
@Override
- public <T extends AnyTO, K extends AnyMod> SyncDelta beforeUpdate(
+ public <A extends AnyTO, M extends AnyMod> SyncDelta beforeUpdate(
final ProvisioningProfile<?, ?> profile,
final SyncDelta delta,
- final T any,
- final K anyMod) throws JobExecutionException {
+ final A any,
+ final M anyMod) throws JobExecutionException {
if (anyMod instanceof UserMod) {
String modPassword = ((UserMod) anyMod).getPassword();
@@ -101,10 +101,10 @@ public class LDAPPasswordSyncActions extends DefaultSyncActions {
@Transactional(readOnly = true)
@Override
- public <T extends AnyTO> void after(
+ public <A extends AnyTO> void after(
final ProvisioningProfile<?, ?> profile,
final SyncDelta delta,
- final T any,
+ final A any,
final ProvisioningResult result) throws JobExecutionException {
if (any instanceof UserTO && encodedPassword != null && cipher != null) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/00988759/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/SyncJobDelegate.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/SyncJobDelegate.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/SyncJobDelegate.java
index 3b9dc70..3f19afc 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/SyncJobDelegate.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/SyncJobDelegate.java
@@ -107,7 +107,7 @@ public class SyncJobDelegate extends AbstractProvisioningJobDelegate<SyncTask> {
actions.add(syncActions);
} catch (Exception e) {
- LOG.info("Class '{}' not found", className, e);
+ LOG.warn("Class '{}' not found", className, e);
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/00988759/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/DoubleValueAnyTransformer.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/DoubleValueAnyTransformer.java b/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/DoubleValueAnyTransformer.java
deleted file mode 100644
index b92d976..0000000
--- a/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/DoubleValueAnyTransformer.java
+++ /dev/null
@@ -1,75 +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.fit.core.reference;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.apache.syncope.common.lib.mod.AnyMod;
-import org.apache.syncope.common.lib.mod.AttrMod;
-import org.apache.syncope.common.lib.to.AnyTO;
-import org.apache.syncope.common.lib.to.AttrTO;
-import org.apache.syncope.core.provisioning.api.AnyTransformer;
-
-/**
- * Class for integration tests: transform (by making it double) any attribute value for defined schema.
- */
-public class DoubleValueAnyTransformer implements AnyTransformer {
-
- private static final String NAME = "makeItDouble";
-
- @Override
- public <T extends AnyTO> T transform(final T input) {
- for (AttrTO attr : input.getPlainAttrs()) {
- if (NAME.equals(attr.getSchema())) {
- List<String> values = new ArrayList<>(attr.getValues().size());
- for (String value : attr.getValues()) {
- try {
- values.add(String.valueOf(2 * Long.valueOf(value)));
- } catch (NumberFormatException e) {
- // ignore
- }
- }
- attr.getValues().clear();
- attr.getValues().addAll(values);
- }
- }
-
- return input;
- }
-
- @Override
- public <T extends AnyMod> T transform(final T input) {
- for (AttrMod attr : input.getPlainAttrsToUpdate()) {
- if (NAME.equals(attr.getSchema())) {
- List<String> values = new ArrayList<>(attr.getValuesToBeAdded().size());
- for (String value : attr.getValuesToBeAdded()) {
- try {
- values.add(String.valueOf(2 * Long.valueOf(value)));
- } catch (NumberFormatException e) {
- // ignore
- }
- }
- attr.getValuesToBeAdded().clear();
- attr.getValuesToBeAdded().addAll(values);
- }
- }
-
- return input;
- }
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/00988759/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/DoubleValueLogicActions.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/DoubleValueLogicActions.java b/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/DoubleValueLogicActions.java
new file mode 100644
index 0000000..1544969
--- /dev/null
+++ b/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/DoubleValueLogicActions.java
@@ -0,0 +1,75 @@
+/*
+ * 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.fit.core.reference;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.apache.syncope.common.lib.mod.AnyMod;
+import org.apache.syncope.common.lib.mod.AttrMod;
+import org.apache.syncope.common.lib.to.AnyTO;
+import org.apache.syncope.common.lib.to.AttrTO;
+import org.apache.syncope.core.provisioning.java.DefaultLogicActions;
+
+/**
+ * Class for integration tests: transform (by making it double) any attribute value for defined schema.
+ */
+public class DoubleValueLogicActions extends DefaultLogicActions {
+
+ private static final String NAME = "makeItDouble";
+
+ @Override
+ public <A extends AnyTO> A beforeCreate(final A input) {
+ for (AttrTO attr : input.getPlainAttrs()) {
+ if (NAME.equals(attr.getSchema())) {
+ List<String> values = new ArrayList<>(attr.getValues().size());
+ for (String value : attr.getValues()) {
+ try {
+ values.add(String.valueOf(2 * Long.valueOf(value)));
+ } catch (NumberFormatException e) {
+ // ignore
+ }
+ }
+ attr.getValues().clear();
+ attr.getValues().addAll(values);
+ }
+ }
+
+ return input;
+ }
+
+ @Override
+ public <M extends AnyMod> M beforeUpdate(final M input) {
+ for (AttrMod attr : input.getPlainAttrsToUpdate()) {
+ if (NAME.equals(attr.getSchema())) {
+ List<String> values = new ArrayList<>(attr.getValuesToBeAdded().size());
+ for (String value : attr.getValuesToBeAdded()) {
+ try {
+ values.add(String.valueOf(2 * Long.valueOf(value)));
+ } catch (NumberFormatException e) {
+ // ignore
+ }
+ }
+ attr.getValuesToBeAdded().clear();
+ attr.getValuesToBeAdded().addAll(values);
+ }
+ }
+
+ return input;
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/00988759/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/TestSyncActions.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/TestSyncActions.java b/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/TestSyncActions.java
index 8974c82..9852612 100644
--- a/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/TestSyncActions.java
+++ b/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/TestSyncActions.java
@@ -38,8 +38,8 @@ public class TestSyncActions extends DefaultSyncActions {
private int counter = 0;
@Override
- public <T extends AnyTO> SyncDelta beforeProvision(
- final ProvisioningProfile<?, ?> profile, final SyncDelta delta, final T any)
+ public <A extends AnyTO> SyncDelta beforeProvision(
+ final ProvisioningProfile<?, ?> profile, final SyncDelta delta, final A any)
throws JobExecutionException {
AttrTO attrTO = null;
@@ -61,8 +61,8 @@ public class TestSyncActions extends DefaultSyncActions {
}
@Override
- public <T extends AnyTO> SyncDelta beforeAssign(
- final ProvisioningProfile<?, ?> profile, final SyncDelta delta, final T any)
+ public <A extends AnyTO> SyncDelta beforeAssign(
+ final ProvisioningProfile<?, ?> profile, final SyncDelta delta, final A any)
throws JobExecutionException {
if (any instanceof UserTO && "test2".equals(UserTO.class.cast(any).getUsername())) {
@@ -73,11 +73,11 @@ public class TestSyncActions extends DefaultSyncActions {
}
@Override
- public <T extends AnyTO, K extends AnyMod> SyncDelta beforeUpdate(
+ public <A extends AnyTO, M extends AnyMod> SyncDelta beforeUpdate(
final ProvisioningProfile<?, ?> profile,
final SyncDelta delta,
- final T any,
- final K anyMod) throws JobExecutionException {
+ final A any,
+ final M anyMod) throws JobExecutionException {
anyMod.getPlainAttrsToRemove().add("fullname");
http://git-wip-us.apache.org/repos/asf/syncope/blob/00988759/fit/core-reference/src/main/resources/logic.properties
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/main/resources/logic.properties b/fit/core-reference/src/main/resources/logic.properties
index 7ff308d..4af398a 100644
--- a/fit/core-reference/src/main/resources/logic.properties
+++ b/fit/core-reference/src/main/resources/logic.properties
@@ -14,5 +14,4 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-anyTransformer=org.apache.syncope.fit.core.reference.DoubleValueAnyTransformer
logicInvocationHandler=org.apache.syncope.core.logic.LogicInvocationHandler
http://git-wip-us.apache.org/repos/asf/syncope/blob/00988759/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/UserITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/UserITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/UserITCase.java
index 375f0d7..ccb24ab 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/UserITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/UserITCase.java
@@ -491,12 +491,12 @@ public class UserITCase extends AbstractITCase {
userTO = createUser(userTO);
- long id = userTO.getKey();
+ long key = userTO.getKey();
- userTO = deleteUser(id);
+ userTO = deleteUser(key);
assertNotNull(userTO);
- assertEquals(id, userTO.getKey());
+ assertEquals(key, userTO.getKey());
assertTrue(userTO.getPlainAttrs().isEmpty());
// check for propagation result
@@ -2070,7 +2070,13 @@ public class UserITCase extends AbstractITCase {
@Test
public void issueSYNCOPE420() {
+ RealmTO realm = realmService.list("/even/two").iterator().next();
+ assertNotNull(realm);
+ realm.getActionsClassNames().add(DoubleValueLogicActions.class.getName());
+ realmService.update(realm);
+
UserTO userTO = getUniqueSampleTO("syncope420@syncope.apache.org");
+ userTO.setRealm(realm.getFullPath());
userTO.getPlainAttrs().add(attrTO("makeItDouble", "3"));
userTO = createUser(userTO);
http://git-wip-us.apache.org/repos/asf/syncope/blob/00988759/installer/src/main/java/org/apache/syncope/installer/processes/BaseProcess.java
----------------------------------------------------------------------
diff --git a/installer/src/main/java/org/apache/syncope/installer/processes/BaseProcess.java b/installer/src/main/java/org/apache/syncope/installer/processes/BaseProcess.java
index c1846cc..6c691cc 100644
--- a/installer/src/main/java/org/apache/syncope/installer/processes/BaseProcess.java
+++ b/installer/src/main/java/org/apache/syncope/installer/processes/BaseProcess.java
@@ -18,8 +18,6 @@
*/
package org.apache.syncope.installer.processes;
-import static org.apache.syncope.installer.processes.ArchetypeProcess.PROPERTIES;
-
import com.izforge.izpack.panels.process.AbstractUIProcessHandler;
import java.io.IOException;
import java.io.InputStream;