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/10/26 10:55:34 UTC

[2/4] syncope git commit: [SYNCOPE-714] Consolidating old buildSchemaNames and buildSupportedObjectClasses into new buildO bjectClassInfo

http://git-wip-us.apache.org/repos/asf/syncope/blob/1347c108/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/ResourceServiceImpl.java
----------------------------------------------------------------------
diff --git a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/ResourceServiceImpl.java b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/ResourceServiceImpl.java
index 2cc6476..39dbba9 100644
--- a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/ResourceServiceImpl.java
+++ b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/ResourceServiceImpl.java
@@ -28,6 +28,7 @@ import javax.ws.rs.core.Response;
 import javax.ws.rs.core.UriBuilder;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.tuple.Pair;
+import org.apache.syncope.common.lib.patch.ResourceDeassociationPatch;
 import org.apache.syncope.common.lib.to.AnyTO;
 import org.apache.syncope.common.lib.to.BulkAction;
 import org.apache.syncope.common.lib.to.BulkActionResult;
@@ -35,8 +36,6 @@ import org.apache.syncope.common.lib.to.ConnObjectTO;
 import org.apache.syncope.common.lib.to.PagedConnObjectTOResult;
 import org.apache.syncope.common.lib.to.ResourceTO;
 import org.apache.syncope.common.lib.types.AnyTypeKind;
-import org.apache.syncope.common.lib.types.ResourceDeassociationAction;
-import org.apache.syncope.common.lib.wrap.AnyKey;
 import org.apache.syncope.common.rest.api.RESTHeaders;
 import org.apache.syncope.common.rest.api.beans.ConnObjectTOListQuery;
 import org.apache.syncope.common.rest.api.service.ResourceService;
@@ -134,41 +133,39 @@ public class ResourceServiceImpl extends AbstractServiceImpl implements Resource
     }
 
     @Override
-    public BulkActionResult bulkDeassociation(
-            final String key, final String anyTypeKey, final ResourceDeassociationAction type,
-            final List<AnyKey> keys) {
-
-        AbstractResourceAssociator<? extends AnyTO> associator = anyTypeKey.equalsIgnoreCase(AnyTypeKind.USER.name())
-                ? userLogic
-                : anyTypeKey.equalsIgnoreCase(AnyTypeKind.GROUP.name())
-                        ? groupLogic
-                        : anyObjectLogic;
+    public BulkActionResult bulkDeassociation(final ResourceDeassociationPatch patch) {
+        AbstractResourceAssociator<? extends AnyTO> associator =
+                patch.getAnyTypeKey().equalsIgnoreCase(AnyTypeKind.USER.name())
+                        ? userLogic
+                        : patch.getAnyTypeKey().equalsIgnoreCase(AnyTypeKind.GROUP.name())
+                                ? groupLogic
+                                : anyObjectLogic;
 
         BulkActionResult result = new BulkActionResult();
 
-        for (AnyKey anyKey : keys) {
-            Set<String> resources = Collections.singleton(key);
+        for (Long anyKey : patch.getAnyKyes()) {
+            Set<String> resources = Collections.singleton(patch.getKey());
             try {
-                switch (type) {
+                switch (patch.getAction()) {
                     case DEPROVISION:
-                        associator.deprovision(anyKey.getElement(), resources);
+                        associator.deprovision(anyKey, resources);
                         break;
 
                     case UNASSIGN:
-                        associator.unassign(anyKey.getElement(), resources);
+                        associator.unassign(anyKey, resources);
                         break;
 
                     case UNLINK:
-                        associator.unlink(anyKey.getElement(), resources);
+                        associator.unlink(anyKey, resources);
                         break;
 
                     default:
                 }
 
-                result.getResults().put(String.valueOf(anyKey.getElement()), BulkActionResult.Status.SUCCESS);
+                result.getResults().put(String.valueOf(anyKey), BulkActionResult.Status.SUCCESS);
             } catch (Exception e) {
-                LOG.warn("While executing {} on {} {}", type, anyTypeKey, anyKey.getElement(), e);
-                result.getResults().put(String.valueOf(anyKey.getElement()), BulkActionResult.Status.FAILURE);
+                LOG.warn("While executing {} on {} {}", patch.getAction(), patch.getAnyTypeKey(), anyKey, e);
+                result.getResults().put(String.valueOf(anyKey), BulkActionResult.Status.FAILURE);
             }
         }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/1347c108/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/AbstractITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/AbstractITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/AbstractITCase.java
index b30c962..60565e1 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/AbstractITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/AbstractITCase.java
@@ -399,7 +399,7 @@ public abstract class AbstractITCase {
             throws NamingException {
         ResourceTO ldapRes = resourceService.read(RESOURCE_NAME_LDAP);
         final Map<String, ConnConfProperty> ldapConnConf =
-                connectorService.read(ldapRes.getConnector(), Locale.ENGLISH.getLanguage()).getConfigurationMap();
+                connectorService.read(ldapRes.getConnector(), Locale.ENGLISH.getLanguage()).getConfMap();
 
         Properties env = new Properties();
         env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");

http://git-wip-us.apache.org/repos/asf/syncope/blob/1347c108/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/ConnectorITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/ConnectorITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/ConnectorITCase.java
index 71859a7..770a7cb 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/ConnectorITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/ConnectorITCase.java
@@ -28,6 +28,7 @@ import static org.junit.Assert.fail;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.EnumSet;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -37,16 +38,18 @@ import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
 import javax.ws.rs.core.Response;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.collections4.Transformer;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.exception.ExceptionUtils;
 import org.apache.syncope.common.lib.SyncopeClientException;
 import org.apache.syncope.common.lib.to.BulkAction;
 import org.apache.syncope.common.lib.to.ConnBundleTO;
+import org.apache.syncope.common.lib.to.ConnIdObjectClassTO;
 import org.apache.syncope.common.lib.to.ConnInstanceTO;
 import org.apache.syncope.common.lib.to.ConnPoolConfTO;
 import org.apache.syncope.common.lib.to.MappingItemTO;
 import org.apache.syncope.common.lib.to.MappingTO;
-import org.apache.syncope.common.lib.to.PlainSchemaTO;
 import org.apache.syncope.common.lib.to.ProvisionTO;
 import org.apache.syncope.common.lib.to.ResourceTO;
 import org.apache.syncope.common.lib.types.AnyTypeKind;
@@ -54,7 +57,6 @@ import org.apache.syncope.common.lib.types.ConnConfPropSchema;
 import org.apache.syncope.common.lib.types.ConnConfProperty;
 import org.apache.syncope.common.lib.types.ConnectorCapability;
 import org.apache.syncope.common.lib.types.IntMappingType;
-import org.apache.syncope.common.lib.wrap.ConnIdObjectClass;
 import org.apache.syncope.common.rest.api.service.ConnectorService;
 import org.apache.syncope.common.rest.api.service.ResourceService;
 import org.identityconnectors.common.security.GuardedString;
@@ -146,7 +148,7 @@ public class ConnectorITCase extends AbstractITCase {
         conf.add(servicename);
 
         // set connector configuration
-        connectorTO.getConfiguration().addAll(conf);
+        connectorTO.getConf().addAll(conf);
 
         // set connector capabilities
         connectorTO.getCapabilities().add(ConnectorCapability.CREATE);
@@ -253,7 +255,7 @@ public class ConnectorITCase extends AbstractITCase {
         conf.add(servicename);
 
         // set connector configuration
-        connectorTO.getConfiguration().addAll(conf);
+        connectorTO.getConf().addAll(conf);
 
         connectorService.update(connectorTO);
         ConnInstanceTO actual = connectorService.read(connectorTO.getKey(), Locale.ENGLISH.getLanguage());
@@ -397,7 +399,7 @@ public class ConnectorITCase extends AbstractITCase {
 
     @Test
     public void getConnectorConfiguration() {
-        Set<ConnConfProperty> props = connectorService.read(104L, Locale.ENGLISH.getLanguage()).getConfiguration();
+        Set<ConnConfProperty> props = connectorService.read(104L, Locale.ENGLISH.getLanguage()).getConf();
         assertNotNull(props);
         assertFalse(props.isEmpty());
     }
@@ -408,7 +410,7 @@ public class ConnectorITCase extends AbstractITCase {
 
         boolean check = false;
 
-        for (ConnConfProperty prop : connInstanceTO.getConfiguration()) {
+        for (ConnConfProperty prop : connInstanceTO.getConf()) {
             if ("receiveTimeout".equals(prop.getSchema().getName())) {
                 check = true;
             }
@@ -424,7 +426,7 @@ public class ConnectorITCase extends AbstractITCase {
         Map<String, ConnConfProperty> instanceConfMap;
         for (ConnInstanceTO instance : connectorInstanceTOs) {
             if ("net.tirasa.connid.bundles.db.table".equals(instance.getBundleName())) {
-                instanceConfMap = instance.getConfigurationMap();
+                instanceConfMap = instance.getConfMap();
                 assertEquals("Utente", instanceConfMap.get("user").getSchema().getDisplayName());
             }
         }
@@ -434,7 +436,7 @@ public class ConnectorITCase extends AbstractITCase {
 
         for (ConnInstanceTO instance : connectorInstanceTOs) {
             if ("net.tirasa.connid.bundles.db.table".equals(instance.getBundleName())) {
-                instanceConfMap = instance.getConfigurationMap();
+                instanceConfMap = instance.getConfMap();
                 assertEquals("User", instanceConfMap.get("user").getSchema().getDisplayName());
             }
         }
@@ -516,7 +518,7 @@ public class ConnectorITCase extends AbstractITCase {
         conf.add(passwordColumn);
 
         // set connector configuration
-        connectorTO.getConfiguration().addAll(conf);
+        connectorTO.getConf().addAll(conf);
 
         try {
             connectorService.check(connectorTO);
@@ -538,51 +540,35 @@ public class ConnectorITCase extends AbstractITCase {
     }
 
     @Test
-    public void getSchemaNames() {
-        ConnInstanceTO conn = connectorService.read(101L, Locale.ENGLISH.getLanguage());
-
-        List<PlainSchemaTO> schemaNames = connectorService.buildSchemaNames(conn, true);
-        assertNotNull(schemaNames);
-        assertFalse(schemaNames.isEmpty());
-        assertNotNull(schemaNames.get(0).getKey());
-        assertNull(schemaNames.get(0).getEnumerationValues());
+    public void buildObjectClassInfo() {
+        ConnInstanceTO ws = connectorService.read(102L, Locale.ENGLISH.getLanguage());
+        assertNotNull(ws);
 
-        schemaNames = connectorService.buildSchemaNames(conn, false);
+        List<ConnIdObjectClassTO> objectClassInfo = connectorService.buildObjectClassInfo(ws, true);
+        assertNotNull(objectClassInfo);
+        assertEquals(1, objectClassInfo.size());
+        assertEquals(ObjectClass.ACCOUNT_NAME, objectClassInfo.get(0).getType());
+        assertTrue(objectClassInfo.get(0).getAttributes().contains("promoThirdPartyDisclaimer"));
 
-        assertNotNull(schemaNames);
-        assertEquals(1, schemaNames.size());
+        ConnInstanceTO ldap = connectorService.read(105L, Locale.ENGLISH.getLanguage());
+        assertNotNull(ldap);
 
-        conn = connectorService.read(104L, Locale.ENGLISH.getLanguage());
+        objectClassInfo = connectorService.buildObjectClassInfo(ldap, true);
+        assertNotNull(objectClassInfo);
+        assertEquals(2, objectClassInfo.size());
 
-        // to be used with overridden properties
-        conn.getConfiguration().clear();
+        Collection<String> objectClasses = CollectionUtils.collect(objectClassInfo,
+                new Transformer<ConnIdObjectClassTO, String>() {
 
-        schemaNames = connectorService.buildSchemaNames(conn, true);
-        assertNotNull(schemaNames);
-        assertFalse(schemaNames.isEmpty());
-    }
-
-    @Test
-    public void getSupportedObjectClasses() {
-        ConnInstanceTO ldap = connectorService.read(105L, Locale.ENGLISH.getLanguage());
-        assertNotNull(ldap);
+                    @Override
+                    public String transform(final ConnIdObjectClassTO info) {
+                        return info.getType();
+                    }
 
-        List<ConnIdObjectClass> objectClasses = connectorService.buildSupportedObjectClasses(ldap);
-        assertNotNull(objectClasses);
+                });
         assertEquals(2, objectClasses.size());
-        assertTrue(objectClasses.contains(
-                ConnIdObjectClass.getInstance(ConnIdObjectClass.class, ObjectClass.ACCOUNT_NAME)));
-        assertTrue(objectClasses.contains(
-                ConnIdObjectClass.getInstance(ConnIdObjectClass.class, ObjectClass.GROUP_NAME)));
-
-        ConnInstanceTO csv = connectorService.read(104L, Locale.ENGLISH.getLanguage());
-        assertNotNull(csv);
-
-        objectClasses = connectorService.buildSupportedObjectClasses(csv);
-        assertNotNull(objectClasses);
-        assertEquals(1, objectClasses.size());
-        assertTrue(objectClasses.contains(
-                ConnIdObjectClass.getInstance(ConnIdObjectClass.class, ObjectClass.ACCOUNT_NAME)));
+        assertTrue(objectClasses.contains(ObjectClass.ACCOUNT_NAME));
+        assertTrue(objectClasses.contains(ObjectClass.GROUP_NAME));
     }
 
     @Test
@@ -631,7 +617,7 @@ public class ConnectorITCase extends AbstractITCase {
         conf.add(servicename);
 
         // set connector configuration
-        connectorTO.getConfiguration().addAll(conf);
+        connectorTO.getConf().addAll(conf);
 
         try {
             try {
@@ -664,7 +650,7 @@ public class ConnectorITCase extends AbstractITCase {
             endpoint.getValues().add("http://localhost:9080/wssample/services/provisioning");
             conf.add(endpoint);
 
-            resourceTO.getConnConfProperties().addAll(conf);
+            resourceTO.getConfOverride().addAll(conf);
 
             ProvisionTO provisionTO = new ProvisionTO();
             provisionTO.setAnyType(AnyTypeKind.USER.name());

http://git-wip-us.apache.org/repos/asf/syncope/blob/1347c108/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/LoggerITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/LoggerITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/LoggerITCase.java
index 928365f..236d169 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/LoggerITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/LoggerITCase.java
@@ -38,7 +38,7 @@ import org.apache.syncope.common.lib.types.AuditLoggerName;
 import org.apache.syncope.common.lib.types.LoggerLevel;
 import org.apache.syncope.common.lib.types.LoggerType;
 import org.apache.syncope.common.lib.types.ResourceOperation;
-import org.apache.syncope.common.rest.api.CollectionWrapper;
+import org.apache.syncope.common.rest.api.LoggerWrapper;
 import org.apache.syncope.core.logic.ReportLogic;
 import org.apache.syncope.core.logic.ResourceLogic;
 import org.apache.syncope.core.logic.GroupLogic;
@@ -105,7 +105,7 @@ public class LoggerITCase extends AbstractITCase {
                 "deleteExecution",
                 AuditElements.Result.FAILURE);
 
-        List<AuditLoggerName> audits = CollectionWrapper.wrapLogger(loggerService.list(LoggerType.AUDIT));
+        List<AuditLoggerName> audits = LoggerWrapper.wrap(loggerService.list(LoggerType.AUDIT));
         assertNotNull(audits);
         assertFalse(audits.contains(auditLoggerName));
 
@@ -114,13 +114,13 @@ public class LoggerITCase extends AbstractITCase {
         loggerTO.setLevel(LoggerLevel.DEBUG);
         loggerService.update(LoggerType.AUDIT, loggerTO);
 
-        audits = CollectionWrapper.wrapLogger(loggerService.list(LoggerType.AUDIT));
+        audits = LoggerWrapper.wrap(loggerService.list(LoggerType.AUDIT));
         assertNotNull(audits);
         assertTrue(audits.contains(auditLoggerName));
 
         loggerService.delete(LoggerType.AUDIT, auditLoggerName.toLoggerName());
 
-        audits = CollectionWrapper.wrapLogger(loggerService.list(LoggerType.AUDIT));
+        audits = LoggerWrapper.wrap(loggerService.list(LoggerType.AUDIT));
         assertNotNull(audits);
         assertFalse(audits.contains(auditLoggerName));
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/1347c108/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/ResourceITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/ResourceITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/ResourceITCase.java
index e0539c8..5d4d176 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/ResourceITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/ResourceITCase.java
@@ -170,7 +170,7 @@ public class ResourceITCase extends AbstractITCase {
         p.getValues().add("http://invalidurl/");
 
         Set<ConnConfProperty> connectorConfigurationProperties = new HashSet<>(Arrays.asList(p));
-        resourceTO.getConnConfProperties().addAll(connectorConfigurationProperties);
+        resourceTO.getConfOverride().addAll(connectorConfigurationProperties);
 
         Response response = resourceService.create(resourceTO);
         ResourceTO actual = getObject(response.getLocation(), ResourceService.class, ResourceTO.class);

http://git-wip-us.apache.org/repos/asf/syncope/blob/1347c108/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/SyncTaskITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/SyncTaskITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/SyncTaskITCase.java
index e8ffd56..ef73242 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/SyncTaskITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/SyncTaskITCase.java
@@ -748,7 +748,7 @@ public class SyncTaskITCase extends AbstractTaskITCase {
         ResourceTO ldapResource = resourceService.read(RESOURCE_NAME_LDAP);
         ConnInstanceTO resourceConnector = connectorService.read(
                 ldapResource.getConnector(), Locale.ENGLISH.getLanguage());
-        ConnConfProperty property = resourceConnector.getConfigurationMap().get("retrievePasswordsWithSearch");
+        ConnConfProperty property = resourceConnector.getConfMap().get("retrievePasswordsWithSearch");
         property.getValues().clear();
         property.getValues().add(Boolean.TRUE);
         connectorService.update(resourceConnector);

http://git-wip-us.apache.org/repos/asf/syncope/blob/1347c108/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/VirAttrITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/VirAttrITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/VirAttrITCase.java
index e96026f..cf00ffd 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/VirAttrITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/VirAttrITCase.java
@@ -367,7 +367,7 @@ public class VirAttrITCase extends AbstractITCase {
         String jdbcURL = null;
         ConnInstanceTO connInstanceTO = connectorService.readByResource(
                 RESOURCE_NAME_DBVIRATTR, Locale.ENGLISH.getLanguage());
-        for (ConnConfProperty prop : connInstanceTO.getConfiguration()) {
+        for (ConnConfProperty prop : connInstanceTO.getConf()) {
             if ("jdbcUrlTemplate".equals(prop.getSchema().getName())) {
                 jdbcURL = prop.getValues().iterator().next().toString();
                 prop.getValues().clear();
@@ -400,7 +400,7 @@ public class VirAttrITCase extends AbstractITCase {
         // ----------------------------------------
         // 5. restore connector URL, values can be read again from external resource
         // ----------------------------------------
-        for (ConnConfProperty prop : connInstanceTO.getConfiguration()) {
+        for (ConnConfProperty prop : connInstanceTO.getConf()) {
             if ("jdbcUrlTemplate".equals(prop.getSchema().getName())) {
                 prop.getValues().clear();
                 prop.getValues().add(jdbcURL);