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>