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 2018/07/16 09:49:10 UTC
[2/3] syncope git commit: [SYNCOPE-1338] Do not apply conversion
pattern twice during Pull
[SYNCOPE-1338] Do not apply conversion pattern twice during Pull
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/cd6a56bb
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/cd6a56bb
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/cd6a56bb
Branch: refs/heads/2_1_X
Commit: cd6a56bb5eb45d7e058c37fe7c64a43182710090
Parents: 10ee575
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Mon Jul 16 11:47:19 2018 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Mon Jul 16 11:48:40 2018 +0200
----------------------------------------------------------------------
.../core/provisioning/api/MappingManager.java | 5 +---
.../provisioning/java/MappingManagerImpl.java | 31 +++++---------------
.../java/utils/ConnObjectUtils.java | 2 +-
3 files changed, 9 insertions(+), 29 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/cd6a56bb/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/MappingManager.java
----------------------------------------------------------------------
diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/MappingManager.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/MappingManager.java
index 1cc30c6..a7d4252 100644
--- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/MappingManager.java
+++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/MappingManager.java
@@ -25,7 +25,6 @@ import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.common.lib.to.AnyTO;
import org.apache.syncope.common.lib.to.RealmTO;
import org.apache.syncope.core.persistence.api.entity.Any;
-import org.apache.syncope.core.persistence.api.entity.AnyUtils;
import org.apache.syncope.core.persistence.api.entity.PlainAttrValue;
import org.apache.syncope.core.persistence.api.entity.Realm;
import org.apache.syncope.core.persistence.api.entity.resource.Item;
@@ -105,9 +104,8 @@ public interface MappingManager {
* @param mapItem mapping item
* @param attr attribute received from connector
* @param anyTO any object
- * @param anyUtils any utils
*/
- <T extends AnyTO> void setIntValues(Item mapItem, Attribute attr, T anyTO, AnyUtils anyUtils);
+ <T extends AnyTO> void setIntValues(Item mapItem, Attribute attr, T anyTO);
/**
* Set attribute values, according to the given {@link Item}, to realm from attribute received from
@@ -118,5 +116,4 @@ public interface MappingManager {
* @param realmTO realm
*/
void setIntValues(Item orgUnitItem, Attribute attr, RealmTO realmTO);
-
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/cd6a56bb/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/MappingManagerImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/MappingManagerImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/MappingManagerImpl.java
index fbaf761..bc3706b 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/MappingManagerImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/MappingManagerImpl.java
@@ -42,7 +42,6 @@ import org.apache.syncope.common.lib.to.RealmTO;
import org.apache.syncope.common.lib.to.UserTO;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.common.lib.types.AttrSchemaType;
-import org.apache.syncope.core.persistence.api.attrvalue.validation.ParsingValidationException;
import org.apache.syncope.core.persistence.api.dao.AnyObjectDAO;
import org.apache.syncope.core.persistence.api.dao.AnyTypeDAO;
import org.apache.syncope.core.persistence.api.dao.ApplicationDAO;
@@ -99,6 +98,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.apache.syncope.core.provisioning.api.data.ItemTransformer;
+import org.identityconnectors.common.Base64;
import org.identityconnectors.framework.common.objects.Name;
@Component
@@ -694,7 +694,7 @@ public class MappingManagerImpl implements MappingManager {
@Transactional(readOnly = true)
@Override
- public void setIntValues(final Item mapItem, final Attribute attr, final AnyTO anyTO, final AnyUtils anyUtils) {
+ public void setIntValues(final Item mapItem, final Attribute attr, final AnyTO anyTO) {
List<Object> values = null;
if (attr != null) {
values = attr.getValue();
@@ -706,7 +706,7 @@ public class MappingManagerImpl implements MappingManager {
IntAttrName intAttrName;
try {
- intAttrName = intAttrNameParser.parse(mapItem.getIntAttrName(), anyUtils.anyTypeKind());
+ intAttrName = intAttrNameParser.parse(mapItem.getIntAttrName(), AnyTypeKind.fromTOClass(anyTO.getClass()));
} catch (ParseException e) {
LOG.error("Invalid intAttrName '{}' specified, ignoring", mapItem.getIntAttrName(), e);
return;
@@ -783,27 +783,11 @@ public class MappingManagerImpl implements MappingManager {
for (Object value : values) {
AttrSchemaType schemaType = schema == null ? AttrSchemaType.String : schema.getType();
if (value != null) {
- PlainAttrValue attrValue = anyUtils.newPlainAttrValue();
- switch (schemaType) {
- case String:
- attrValue.setStringValue(value.toString());
- break;
-
- case Binary:
- attrValue.setBinaryValue((byte[]) value);
- break;
-
- default:
- try {
- attrValue.parseValue(schema, value.toString());
- } catch (ParsingValidationException e) {
- LOG.error("While parsing provided value {}", value, e);
- attrValue.setStringValue(value.toString());
- schemaType = AttrSchemaType.String;
- }
- break;
+ if (schemaType == AttrSchemaType.Binary) {
+ attrTO.getValues().add(Base64.encode((byte[]) value));
+ } else {
+ attrTO.getValues().add(value.toString());
}
- attrTO.getValues().add(attrValue.getValueAsString(schemaType));
}
}
@@ -895,5 +879,4 @@ public class MappingManagerImpl implements MappingManager {
}
}
}
-
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/cd6a56bb/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/ConnObjectUtils.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/ConnObjectUtils.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/ConnObjectUtils.java
index d02f458..5abc34f 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/ConnObjectUtils.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/ConnObjectUtils.java
@@ -312,7 +312,7 @@ public class ConnObjectUtils {
// 1. fill with data from connector object
anyTO.setRealm(pullTask.getDestinatioRealm().getFullPath());
MappingUtils.getPullItems(provision.getMapping().getItems()).forEach(item -> {
- mappingManager.setIntValues(item, obj.getAttributeByName(item.getExtAttrName()), anyTO, anyUtils);
+ mappingManager.setIntValues(item, obj.getAttributeByName(item.getExtAttrName()), anyTO);
});
// 2. add data from defined template (if any)