Repository: syncope Updated Branches: refs/heads/master 2373ccd34 -> c0f3c9933
MySQL and PostgreSQL run all tests green Project: http://git-wip-us.apache.org/repos/asf/syncope/repo Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/c0f3c993 Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/c0f3c993 Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/c0f3c993 Branch: refs/heads/master Commit: c0f3c9933ce6ee6be0baddacdbbfd0a631d61e95 Parents: 2373ccd Author: Francesco Chicchiriccò <[email protected]> Authored: Fri Mar 18 10:56:32 2016 +0100 Committer: Francesco Chicchiriccò <[email protected]> Committed: Fri Mar 18 14:50:16 2016 +0100 ---------------------------------------------------------------------- .../syncope/client/console/panels/Realm.java | 29 ++++++++++++++++++- .../client/console/rest/RoleRestClient.java | 5 +++- .../persistence/jpa/dao/JPAVirSchemaDAO.java | 2 +- .../LDAPMembershipPropagationActions.java | 2 +- .../rest/cxf/RestServiceExceptionMapper.java | 7 +++-- .../fit/console/AbstractConsoleITCase.java | 24 +++++++--------- .../syncope/fit/console/BulkActionITCase.java | 30 ++++++++++++++------ .../syncope/fit/console/TopologyITCase.java | 18 ++++++++++-- .../apache/syncope/fit/core/AnyTypeITCase.java | 6 ++-- .../org/apache/syncope/fit/core/UserITCase.java | 2 +- .../apache/syncope/fit/core/VirAttrITCase.java | 2 ++ 11 files changed, 92 insertions(+), 35 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/syncope/blob/c0f3c993/client/console/src/main/java/org/apache/syncope/client/console/panels/Realm.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/Realm.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/Realm.java index 201e15b..613fab1 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/panels/Realm.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/Realm.java @@ -20,12 +20,16 @@ package org.apache.syncope.client.console.panels; import de.agilecoders.wicket.core.markup.html.bootstrap.tabs.AjaxBootstrapTabbedPanel; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.List; +import org.apache.commons.collections4.ComparatorUtils; import org.apache.syncope.client.console.rest.AnyTypeRestClient; import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink; import org.apache.syncope.client.console.wicket.markup.html.form.ActionLinksPanel; import org.apache.syncope.common.lib.to.AnyTypeTO; import org.apache.syncope.common.lib.to.RealmTO; +import org.apache.syncope.common.lib.types.AnyTypeKind; import org.apache.syncope.common.lib.types.StandardEntitlement; import org.apache.wicket.PageReference; import org.apache.wicket.ajax.AjaxRequestTarget; @@ -108,8 +112,8 @@ public abstract class Realm extends Panel { } }); + Collections.sort(anyTypeTOs, new AnyTypeComparator()); for (final AnyTypeTO anyTypeTO : anyTypeTOs) { - tabs.add(new AbstractTab(new Model<>(anyTypeTO.getKey())) { private static final long serialVersionUID = -5861786415855103549L; @@ -128,4 +132,27 @@ public abstract class Realm extends Panel { protected abstract void onClickEdit(final AjaxRequestTarget target, final RealmTO realmTO); protected abstract void onClickDelete(final AjaxRequestTarget target, final RealmTO realmTO); + + private static class AnyTypeComparator implements Comparator<AnyTypeTO> { + + @Override + public int compare(final AnyTypeTO o1, final AnyTypeTO o2) { + if (o1.getKind() == AnyTypeKind.USER) { + return -1; + } + if (o2.getKind() == AnyTypeKind.USER) { + return 1; + } + + if (o1.getKind() == AnyTypeKind.GROUP) { + return -1; + } + if (o2.getKind() == AnyTypeKind.GROUP) { + return 1; + } + + return ComparatorUtils.<String>naturalComparator().compare(o1.getKey(), o2.getKey()); + } + + } } http://git-wip-us.apache.org/repos/asf/syncope/blob/c0f3c993/client/console/src/main/java/org/apache/syncope/client/console/rest/RoleRestClient.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/RoleRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/RoleRestClient.java index d7517ce..116c959 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/rest/RoleRestClient.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/RoleRestClient.java @@ -19,6 +19,7 @@ package org.apache.syncope.client.console.rest; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import org.apache.syncope.common.lib.to.RoleTO; import org.apache.syncope.common.rest.api.service.RoleService; @@ -59,6 +60,8 @@ public class RoleRestClient extends BaseRestClient { } public List<String> getAllAvailableEntitlements() { - return new ArrayList<>(getSyncopeService().platform().getEntitlements()); + List<String> entitlements = new ArrayList<>(getSyncopeService().platform().getEntitlements()); + Collections.sort(entitlements); + return entitlements; } } http://git-wip-us.apache.org/repos/asf/syncope/blob/c0f3c993/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAVirSchemaDAO.java ---------------------------------------------------------------------- diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAVirSchemaDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAVirSchemaDAO.java index d9f5604..b9ebeac 100644 --- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAVirSchemaDAO.java +++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAVirSchemaDAO.java @@ -84,7 +84,7 @@ public class JPAVirSchemaDAO extends AbstractDAO<VirSchema, String> implements V @Override public void delete(final String key) { - final VirSchema schema = find(key); + VirSchema schema = find(key); if (schema == null) { return; } http://git-wip-us.apache.org/repos/asf/syncope/blob/c0f3c993/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPMembershipPropagationActions.java ---------------------------------------------------------------------- diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPMembershipPropagationActions.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPMembershipPropagationActions.java index 4c6455b..26f7f33 100644 --- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPMembershipPropagationActions.java +++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPMembershipPropagationActions.java @@ -73,7 +73,7 @@ public class LDAPMembershipPropagationActions extends DefaultPropagationActions super.before(task, beforeObj); Provision provision = task.getResource().getProvision(anyTypeDAO.findGroup()); - if (AnyTypeKind.USER == task.getAnyTypeKind() && provision.getMapping() != null) { + if (AnyTypeKind.USER == task.getAnyTypeKind() && provision != null && provision.getMapping() != null) { User user = userDAO.find(task.getAnyKey()); if (user != null) { List<String> groupConnObjectLinks = new ArrayList<>(); http://git-wip-us.apache.org/repos/asf/syncope/blob/c0f3c993/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/RestServiceExceptionMapper.java ---------------------------------------------------------------------- diff --git a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/RestServiceExceptionMapper.java b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/RestServiceExceptionMapper.java index 12e1d28..3504a4a 100644 --- a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/RestServiceExceptionMapper.java +++ b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/RestServiceExceptionMapper.java @@ -114,8 +114,11 @@ public class RestServiceExceptionMapper implements ExceptionMapper<Exception>, R header(RESTHeaders.ERROR_INFO, ex.getMessage()); } else if (ex instanceof DelegatedAdministrationException) { builder = builder(ClientExceptionType.DelegatedAdministration, ExceptionUtils.getRootCauseMessage(ex)); - } else if (ex instanceof EntityExistsException || ex instanceof DuplicateException) { - builder = builder(ClientExceptionType.EntityExists, getJPAMessage(ex)); + } else if (ex instanceof EntityExistsException || ex instanceof DuplicateException + || ex instanceof PersistenceException && ex.getCause() instanceof EntityExistsException) { + + builder = builder(ClientExceptionType.EntityExists, + getJPAMessage(ex instanceof PersistenceException ? ex.getCause() : ex)); } else if (ex instanceof DataIntegrityViolationException || ex instanceof JpaSystemException) { builder = builder(ClientExceptionType.DataIntegrityViolation, getJPAMessage(ex)); } else if (ex instanceof ConnectorException) { http://git-wip-us.apache.org/repos/asf/syncope/blob/c0f3c993/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractConsoleITCase.java ---------------------------------------------------------------------- diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractConsoleITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractConsoleITCase.java index 3f9d841..2b32490 100644 --- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractConsoleITCase.java +++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractConsoleITCase.java @@ -19,7 +19,7 @@ package org.apache.syncope.fit.console; import java.io.Serializable; -import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; import javax.servlet.ServletContext; import org.apache.syncope.client.console.SyncopeConsoleApplication; import org.apache.syncope.client.console.init.ClassPathScanImplementationLookup; @@ -29,7 +29,7 @@ import org.apache.syncope.client.console.pages.Login; import org.apache.syncope.fit.AbstractITCase; import org.apache.wicket.Component; import org.apache.wicket.core.util.lang.PropertyResolver; -import org.apache.wicket.markup.repeater.OddEvenItem; +import org.apache.wicket.markup.html.list.ListItem; import org.apache.wicket.util.tester.FormTester; import org.apache.wicket.util.tester.WicketTester; import org.apache.wicket.util.visit.IVisit; @@ -80,25 +80,23 @@ public abstract class AbstractConsoleITCase extends AbstractITCase { protected <V extends Serializable> Component findComponentByProp( final String property, final String searchPath, final V key) { - Component component = wicketTester.getComponentFromLastRenderedPage(searchPath); - Component result = component.getPage(). - visitChildren(OddEvenItem.class, new IVisitor<OddEvenItem<?>, Component>() { + return wicketTester.getComponentFromLastRenderedPage(searchPath).getPage(). + visitChildren(ListItem.class, new IVisitor<ListItem<?>, Component>() { @Override - public void component(final OddEvenItem<?> object, final IVisit<Component> visit) { - + public void component(final ListItem<?> object, final IVisit<Component> visit) { + System.out.println("EEEEEEEEEEE " + object.getPath()); + try { - if (PropertyResolver.getPropertyGetter( - property, - object.getModelObject()).invoke(object.getModelObject()).equals(key)) { + Method getter = PropertyResolver.getPropertyGetter(property, object.getModelObject()); + if (getter != null && getter.invoke(object.getModelObject()).equals(key)) { visit.stop(object); } - } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) { - LOG.error("Error invoke method", ex); + } catch (Exception e) { + LOG.error("Error invoke method", e); } } }); - return result; } } http://git-wip-us.apache.org/repos/asf/syncope/blob/c0f3c993/fit/core-reference/src/test/java/org/apache/syncope/fit/console/BulkActionITCase.java ---------------------------------------------------------------------- diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/BulkActionITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/BulkActionITCase.java index 33421ce..b270616 100644 --- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/BulkActionITCase.java +++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/BulkActionITCase.java @@ -22,6 +22,7 @@ import static org.junit.Assert.assertNotNull; import org.apache.syncope.client.console.commons.Constants; import org.apache.wicket.Component; +import org.apache.wicket.ajax.markup.html.AjaxLink; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.util.tester.FormTester; @@ -51,7 +52,7 @@ public class BulkActionITCase extends AbstractConsoleITCase { + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "rossini"); assertNotNull(component); - final FormTester formTester = wicketTester.newFormTester(searchResultContainer + FormTester formTester = wicketTester.newFormTester(searchResultContainer + "searchContainer:resultTable:tablePanel:groupForm"); assertNotNull(formTester); @@ -89,7 +90,7 @@ public class BulkActionITCase extends AbstractConsoleITCase { + "checkgroup:dataTable", "resource-csv"); assertNotNull(component); - final FormTester formTester = wicketTester.newFormTester( + FormTester formTester = wicketTester.newFormTester( tabPanel + "alternativeDefaultModal:form:content:status:firstLevelContainer:" + "first:container:content:searchContainer:resultTable:tablePanel:groupForm"); assertNotNull(formTester); @@ -197,18 +198,22 @@ public class BulkActionITCase extends AbstractConsoleITCase { + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:" + "checkgroup:dataTable", WebMarkupContainer.class); + wicketTester.clickLink(tabPanel + "alternativeDefaultModal:form:content:status:firstLevelContainer:first:" + + "container:content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable:topToolbars:" + + "toolbars:1:headers:2:header:orderByLink", true); + component = findComponentByProp("resourceName", tabPanel + "alternativeDefaultModal:form:content:status:" + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:" + "checkgroup:dataTable", "ws-target-resource-1"); assertNotNull(component); - final FormTester formTester = wicketTester.newFormTester( + FormTester formTester = wicketTester.newFormTester( tabPanel + "alternativeDefaultModal:form:content:status:firstLevelContainer:" + "first:container:content:searchContainer:resultTable:tablePanel:groupForm"); assertNotNull(formTester); - formTester.select("checkgroup", 1); + formTester.select("checkgroup", 7); wicketTester.executeAjaxEvent(tabPanel + "alternativeDefaultModal:form:content:status:" + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:bulkActionLink", @@ -237,18 +242,22 @@ public class BulkActionITCase extends AbstractConsoleITCase { + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:" + "checkgroup:dataTable", WebMarkupContainer.class); + wicketTester.clickLink(tabPanel + "alternativeDefaultModal:form:content:status:firstLevelContainer:first:" + + "container:content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable:topToolbars:" + + "toolbars:1:headers:2:header:orderByLink", true); + component = findComponentByProp("resourceName", tabPanel + "alternativeDefaultModal:form:content:status:" + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:" + "checkgroup:dataTable", "ws-target-resource-1"); assertNotNull(component); - final FormTester formTester = wicketTester.newFormTester( + FormTester formTester = wicketTester.newFormTester( tabPanel + "alternativeDefaultModal:form:content:status:firstLevelContainer:" + "first:container:content:searchContainer:resultTable:tablePanel:groupForm"); assertNotNull(formTester); - formTester.select("checkgroup", 1); + formTester.select("checkgroup", 7); wicketTester.executeAjaxEvent(tabPanel + "alternativeDefaultModal:form:content:status:" + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:bulkActionLink", @@ -262,12 +271,15 @@ public class BulkActionITCase extends AbstractConsoleITCase { } @Test - public void executePullTask() { + public void executePropagationTask() { wicketTester.clickLink("body:topologyLI:topology"); - wicketTester.executeAjaxEvent("body:resources:2:resources:0:res", Constants.ON_CLICK); + + Component component = findComponentByProp("key", "body:resources", "resource-testdb"); + assertNotNull(component); + wicketTester.executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK); wicketTester.clickLink("body:toggle:togglePanelContainer:container:actions:propagation"); - final FormTester formTester = wicketTester.newFormTester( + FormTester formTester = wicketTester.newFormTester( "body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:firstLevelContainer:first:container:" + "content:searchContainer:resultTable:tablePanel:groupForm"); assertNotNull(formTester); http://git-wip-us.apache.org/repos/asf/syncope/blob/c0f3c993/fit/core-reference/src/test/java/org/apache/syncope/fit/console/TopologyITCase.java ---------------------------------------------------------------------- diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/TopologyITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/TopologyITCase.java index 04a2808..ef0f7c6 100644 --- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/TopologyITCase.java +++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/TopologyITCase.java @@ -18,7 +18,10 @@ */ package org.apache.syncope.fit.console; +import static org.junit.Assert.assertNotNull; + import org.apache.syncope.client.console.commons.Constants; +import org.apache.wicket.Component; import org.apache.wicket.ajax.markup.html.AjaxLink; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.form.TextField; @@ -62,7 +65,10 @@ public class TopologyITCase extends AbstractConsoleITCase { @Test public void editProvisioning() { wicketTester.clickLink("body:topologyLI:topology"); - wicketTester.executeAjaxEvent("body:resources:8:resources:0:res", Constants.ON_CLICK); + + Component component = findComponentByProp("key", "body:resources", "ws-target-resource-1"); + assertNotNull(component); + wicketTester.executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK); wicketTester.clickLink("body:toggle:togglePanelContainer:container:actions:edit"); wicketTester.clickLink( @@ -78,7 +84,10 @@ public class TopologyITCase extends AbstractConsoleITCase { @Test public void executePullTask() { wicketTester.clickLink("body:topologyLI:topology"); - wicketTester.executeAjaxEvent("body:resources:2:resources:0:res", Constants.ON_CLICK); + + Component component = findComponentByProp("key", "body:resources", "resource-testdb"); + assertNotNull(component); + wicketTester.executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK); wicketTester.clickLink("body:toggle:togglePanelContainer:container:actions:pull"); wicketTester.clickLink("body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:firstLevelContainer:" + "first:container:content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable:" @@ -92,7 +101,10 @@ public class TopologyITCase extends AbstractConsoleITCase { @Test public void editPushTask() { wicketTester.clickLink("body:topologyLI:topology"); - wicketTester.executeAjaxEvent("body:resources:5:resources:0:res", Constants.ON_CLICK); + + Component component = findComponentByProp("key", "body:resources", "resource-ldap"); + assertNotNull(component); + wicketTester.executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK); wicketTester.clickLink("body:toggle:togglePanelContainer:container:actions:push"); wicketTester.clickLink("body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:firstLevelContainer:" + "first:container:content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable:" http://git-wip-us.apache.org/repos/asf/syncope/blob/c0f3c993/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AnyTypeITCase.java ---------------------------------------------------------------------- diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AnyTypeITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AnyTypeITCase.java index f89e9a0..561ca42 100644 --- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AnyTypeITCase.java +++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AnyTypeITCase.java @@ -118,13 +118,13 @@ public class AnyTypeITCase extends AbstractITCase { @Test public void createInvalidName() { AnyTypeTO newType = new AnyTypeTO(); - newType.setKey("group"); - newType.setKind(AnyTypeKind.ANY_OBJECT); + newType.setKey("GROUP"); + newType.setKind(AnyTypeKind.GROUP); try { anyTypeService.create(newType); fail(); } catch (SyncopeClientException e) { - assertEquals(ClientExceptionType.InvalidAnyType, e.getType()); + assertEquals(ClientExceptionType.EntityExists, e.getType()); } } http://git-wip-us.apache.org/repos/asf/syncope/blob/c0f3c993/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java ---------------------------------------------------------------------- diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java index ff39d5f..3c72abd 100644 --- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java +++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java @@ -432,7 +432,7 @@ public class UserITCase extends AbstractITCase { createUser(userTO); fail(); } catch (SyncopeClientException e) { - assertEquals(ClientExceptionType.GenericPersistence, e.getType()); + assertEquals(ClientExceptionType.EntityExists, e.getType()); } } http://git-wip-us.apache.org/repos/asf/syncope/blob/c0f3c993/fit/core-reference/src/test/java/org/apache/syncope/fit/core/VirAttrITCase.java ---------------------------------------------------------------------- diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/VirAttrITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/VirAttrITCase.java index 60bb75b..25434e9 100644 --- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/VirAttrITCase.java +++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/VirAttrITCase.java @@ -635,6 +635,8 @@ public class VirAttrITCase extends AbstractITCase { }); provision.getVirSchemas().clear(); + ldap.getProvisions().clear(); + ldap.getProvisions().add(provision); ldap.setKey(RESOURCE_NAME_LDAP + "691" + getUUIDString()); resourceService.create(ldap);
