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 2012/02/29 11:02:57 UTC

svn commit: r1295049 - in /incubator/syncope/trunk: console/src/main/java/org/syncope/console/pages/ core/src/main/java/org/syncope/core/propagation/ core/src/main/java/org/syncope/core/rest/controller/ core/src/main/java/org/syncope/core/scheduling/ p...

Author: fmartelli
Date: Wed Feb 29 10:02:57 2012
New Revision: 1295049

URL: http://svn.apache.org/viewvc?rev=1295049&view=rev
Log:
managed attribute limitation during external sync and search

Modified:
    incubator/syncope/trunk/console/src/main/java/org/syncope/console/pages/ResourceModalPage.java
    incubator/syncope/trunk/core/src/main/java/org/syncope/core/propagation/ConnectorFacadeProxy.java
    incubator/syncope/trunk/core/src/main/java/org/syncope/core/propagation/PropagationManager.java
    incubator/syncope/trunk/core/src/main/java/org/syncope/core/rest/controller/ResourceController.java
    incubator/syncope/trunk/core/src/main/java/org/syncope/core/scheduling/SyncJob.java
    incubator/syncope/trunk/parent/src/site/resources/images/apache-syncope-logo.svg

Modified: incubator/syncope/trunk/console/src/main/java/org/syncope/console/pages/ResourceModalPage.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/console/src/main/java/org/syncope/console/pages/ResourceModalPage.java?rev=1295049&r1=1295048&r2=1295049&view=diff
==============================================================================
--- incubator/syncope/trunk/console/src/main/java/org/syncope/console/pages/ResourceModalPage.java (original)
+++ incubator/syncope/trunk/console/src/main/java/org/syncope/console/pages/ResourceModalPage.java Wed Feb 29 10:02:57 2012
@@ -30,7 +30,6 @@ import org.apache.wicket.model.ResourceM
 import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.syncope.client.to.ResourceTO;
 import org.syncope.client.to.SchemaMappingTO;
-import org.syncope.client.validation.SyncopeClientCompositeErrorException;
 import org.syncope.console.pages.panels.ResourceConnConfPanel;
 import org.syncope.console.pages.panels.ResourceDetailsPanel;
 import org.syncope.console.pages.panels.ResourceMappingPanel;
@@ -119,7 +118,7 @@ public class ResourceModalPage extends B
                         ((Resources) pageref.getPage()).setModalResult(true);
                         window.close(target);
 
-                    } catch (SyncopeClientCompositeErrorException e) {
+                    } catch (Exception e) {
                         LOG.error("Failuer managing resource {}", resourceTO);
                         error(new ResourceModel("error", "error").getObject()
                                 + ":" + e.getMessage());

Modified: incubator/syncope/trunk/core/src/main/java/org/syncope/core/propagation/ConnectorFacadeProxy.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/core/src/main/java/org/syncope/core/propagation/ConnectorFacadeProxy.java?rev=1295049&r1=1295048&r2=1295049&view=diff
==============================================================================
--- incubator/syncope/trunk/core/src/main/java/org/syncope/core/propagation/ConnectorFacadeProxy.java (original)
+++ incubator/syncope/trunk/core/src/main/java/org/syncope/core/propagation/ConnectorFacadeProxy.java Wed Feb 29 10:02:57 2012
@@ -20,6 +20,7 @@ package org.syncope.core.propagation;
 
 import java.io.File;
 import java.net.URI;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
@@ -40,6 +41,7 @@ import org.identityconnectors.framework.
 import org.identityconnectors.framework.common.objects.ObjectClass;
 import org.identityconnectors.framework.common.objects.ObjectClassInfo;
 import org.identityconnectors.framework.common.objects.OperationOptions;
+import org.identityconnectors.framework.common.objects.OperationOptionsBuilder;
 import org.identityconnectors.framework.common.objects.OperationalAttributes;
 import org.identityconnectors.framework.common.objects.ResultsHandler;
 import org.identityconnectors.framework.common.objects.Schema;
@@ -51,7 +53,10 @@ import org.identityconnectors.framework.
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.util.ClassUtils;
+import org.springframework.util.StringUtils;
 import org.syncope.core.persistence.beans.ConnInstance;
+import org.syncope.core.persistence.beans.ExternalResource;
+import org.syncope.core.persistence.beans.SchemaMapping;
 import org.syncope.core.persistence.dao.MissingConfKeyException;
 import org.syncope.core.util.ConnBundleManager;
 import org.syncope.types.ConnConfProperty;
@@ -368,11 +373,14 @@ public class ConnectorFacadeProxy {
      * @param token to be passed to the underlying connector
      * @param handler to be used to handle deltas.
      */
-    public void sync(final SyncToken token, final SyncResultsHandler handler) {
+    public void sync(
+            final SyncToken token,
+            final SyncResultsHandler handler,
+            final OperationOptions options) {
 
         if (activeConnInstance.getCapabilities().contains(
                 ConnectorCapability.SYNC)) {
-            connector.sync(ObjectClass.ACCOUNT, token, handler, null);
+            connector.sync(ObjectClass.ACCOUNT, token, handler, options);
         } else {
             LOG.info("Sync was attempted, although the "
                     + "connector only has these capabilities: {}. No action.",
@@ -638,4 +646,33 @@ public class ConnectorFacadeProxy {
     public ConnInstance getActiveConnInstance() {
         return activeConnInstance;
     }
+
+    public OperationOptions getOperationOptions(
+            final ExternalResource resource) {
+
+        // -------------------------------------
+        // Ask just for mapped attributes
+        // -------------------------------------
+        final OperationOptionsBuilder oob = new OperationOptionsBuilder();
+
+        final Set<String> attributesToGet = new HashSet<String>(
+                Arrays.asList(new String[]{
+                    Name.NAME,
+                    Uid.NAME,
+                    OperationalAttributes.ENABLE_NAME
+                }));
+
+        for (SchemaMapping mapping : resource.getMappings()) {
+            if (StringUtils.hasText(mapping.getExtAttrName())) {
+                attributesToGet.add(mapping.getExtAttrName());
+            }
+        }
+
+        attributesToGet.add(OperationalAttributes.ENABLE_NAME);
+
+        oob.setAttributesToGet(attributesToGet);
+        // -------------------------------------
+
+        return oob.build();
+    }
 }

Modified: incubator/syncope/trunk/core/src/main/java/org/syncope/core/propagation/PropagationManager.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/core/src/main/java/org/syncope/core/propagation/PropagationManager.java?rev=1295049&r1=1295048&r2=1295049&view=diff
==============================================================================
--- incubator/syncope/trunk/core/src/main/java/org/syncope/core/propagation/PropagationManager.java (original)
+++ incubator/syncope/trunk/core/src/main/java/org/syncope/core/propagation/PropagationManager.java Wed Feb 29 10:02:57 2012
@@ -1144,6 +1144,7 @@ public class PropagationManager {
             final PropagationTask task,
             final boolean latest) {
         try {
+
             return connector.getObject(
                     task.getPropagationMode(),
                     task.getPropagationOperation(),
@@ -1151,7 +1152,8 @@ public class PropagationManager {
                     new Uid(latest || task.getOldAccountId() == null
                     ? task.getAccountId()
                     : task.getOldAccountId()),
-                    null);
+                    connector.getOperationOptions(task.getResource()));
+            
         } catch (RuntimeException ignore) {
             LOG.debug("Resolving username", ignore);
             return null;

Modified: incubator/syncope/trunk/core/src/main/java/org/syncope/core/rest/controller/ResourceController.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/core/src/main/java/org/syncope/core/rest/controller/ResourceController.java?rev=1295049&r1=1295048&r2=1295049&view=diff
==============================================================================
--- incubator/syncope/trunk/core/src/main/java/org/syncope/core/rest/controller/ResourceController.java (original)
+++ incubator/syncope/trunk/core/src/main/java/org/syncope/core/rest/controller/ResourceController.java Wed Feb 29 10:02:57 2012
@@ -283,7 +283,10 @@ public class ResourceController extends 
         final ConnectorFacadeProxy connector = connLoader.getConnector(resource);
 
         final ConnectorObject connectorObject =
-                connector.getObject(ObjectClass.ACCOUNT, new Uid(objectId), null);
+                connector.getObject(
+                ObjectClass.ACCOUNT, 
+                new Uid(objectId), 
+                connector.getOperationOptions(resource));
 
         if (connectorObject == null) {
             throw new NotFoundException(

Modified: incubator/syncope/trunk/core/src/main/java/org/syncope/core/scheduling/SyncJob.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/core/src/main/java/org/syncope/core/scheduling/SyncJob.java?rev=1295049&r1=1295048&r2=1295049&view=diff
==============================================================================
--- incubator/syncope/trunk/core/src/main/java/org/syncope/core/scheduling/SyncJob.java (original)
+++ incubator/syncope/trunk/core/src/main/java/org/syncope/core/scheduling/SyncJob.java Wed Feb 29 10:02:57 2012
@@ -1016,7 +1016,7 @@ public class SyncJob extends AbstractTas
                                 }
                             }
                         },
-                        null);
+                        connector.getOperationOptions(syncTask.getResource()));
             } else {
                 connector.sync(
                         syncTask.getResource().getSyncToken(),
@@ -1037,7 +1037,8 @@ public class SyncJob extends AbstractTas
                                     return false;
                                 }
                             }
-                        });
+                        },
+                        connector.getOperationOptions(syncTask.getResource()));
             }
 
             if (!dryRun && !syncTask.isFullReconciliation()) {

Modified: incubator/syncope/trunk/parent/src/site/resources/images/apache-syncope-logo.svg
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/parent/src/site/resources/images/apache-syncope-logo.svg?rev=1295049&r1=1295048&r2=1295049&view=diff
==============================================================================
--- incubator/syncope/trunk/parent/src/site/resources/images/apache-syncope-logo.svg (original)
+++ incubator/syncope/trunk/parent/src/site/resources/images/apache-syncope-logo.svg Wed Feb 29 10:02:57 2012
@@ -1,4 +1,25 @@
+
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+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.
+
+-->
+
 <!-- Created with Inkscape (http://www.inkscape.org/) -->
 
 <svg
@@ -814,4 +835,4 @@ znAJwnyu3wAAAABJRU5ErkJggg==
            width="356"
            height="130"
            transform="scale(1,-1)"
-           id="image3087" /></g></g></g></svg>
\ No newline at end of file
+           id="image3087" /></g></g></g></svg>