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 2013/09/20 15:54:59 UTC

svn commit: r1525004 - in /syncope/trunk: ./ common/src/main/java/org/apache/syncope/common/types/ core/src/main/java/org/apache/syncope/core/persistence/beans/ core/src/main/java/org/apache/syncope/core/persistence/beans/user/ core/src/main/java/org/a...

Author: ilgrosso
Date: Fri Sep 20 13:54:58 2013
New Revision: 1525004

URL: http://svn.apache.org/r1525004
Log:
[SYNCOPE-418] Merge from 1_1_X

Added:
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchemaNameCheck.java
      - copied unchanged from r1524988, syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchemaNameCheck.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchemaNameValidator.java
      - copied unchanged from r1524988, syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchemaNameValidator.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncopeConfCheck.java
      - copied unchanged from r1524988, syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncopeConfCheck.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncopeConfValidator.java
      - copied unchanged from r1524988, syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncopeConfValidator.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/persistence/dao/ConfTest.java
      - copied unchanged from r1524988, syncope/branches/1_1_X/core/src/test/java/org/apache/syncope/core/persistence/dao/ConfTest.java
Removed:
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/USchemaCheck.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/USchemaValidator.java
Modified:
    syncope/trunk/   (props changed)
    syncope/trunk/common/src/main/java/org/apache/syncope/common/types/EntityViolationType.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/types/SyncopeClientExceptionType.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractDerSchema.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractSchema.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractVirSchema.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/SyncopeConf.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/user/UDerSchema.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/user/USchema.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/user/UVirSchema.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/attrvalue/EmailAddressValidator.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AbstractValidator.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AttrValidator.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AttrValueValidator.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ConnInstanceValidator.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ExternalResourceValidator.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/NotificationValidator.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/PolicyValidator.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/PropagationTaskValidator.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ReportValidator.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchedTaskValidator.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchemaValidator.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncTaskValidator.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncopeRoleValidator.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncopeUserValidator.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/SchemaDataBinder.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/persistence/dao/AttrTest.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/persistence/dao/DerSchemaTest.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/persistence/dao/ResourceTest.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/persistence/dao/SchemaTest.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/persistence/dao/VirSchemaTest.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/ConfigurationTestITCase.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/DerivedSchemaTestITCase.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/ResourceTestITCase.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/SchemaTestITCase.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/VirtualSchemaTestITCase.java

Propchange: syncope/trunk/
------------------------------------------------------------------------------
  Merged /syncope/branches/1_1_X:r1524938-1524998

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/types/EntityViolationType.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/types/EntityViolationType.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/types/EntityViolationType.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/types/EntityViolationType.java Fri Sep 20 13:54:58 2013
@@ -25,12 +25,12 @@ public enum EntityViolationType {
 
     Standard(""),
     InvalidAccountPolicy("org.apache.syncope.core.validation.accountpolicy"),
-    InvalidEntitlementName("org.apache.syncope.core.validation.entitlement.name"),
     InvalidConnInstanceLocation("org.apache.syncope.core.validation.conninstance.location"),
     InvalidMapping("org.apache.syncope.core.validation.mapping"),
     InvalidMSchema("org.apache.syncope.core.validation.attrvalue.mSchema"),
     InvalidMDerSchema("org.apache.syncope.core.validation.attrvalue.mDerSchema"),
     InvalidMVirSchema("org.apache.syncope.core.validation.attrvalue.mVirSchema"),
+    InvalidName("org.apache.syncope.core.validation.name"),
     InvalidNotification("org.apache.syncope.core.validation.notification"),
     InvalidPassword("org.apache.syncope.core.validation.syncopeuser.password"),
     InvalidPasswordPolicy("org.apache.syncope.core.validation.passwordpolicy"),
@@ -42,7 +42,8 @@ public enum EntityViolationType {
     InvalidReport("org.apache.syncope.core.validation.report"),
     InvalidResource("org.apache.syncope.core.validation.externalresource"),
     InvalidRoleOwner("org.apache.syncope.core.validation.syncoperole.owner"),
-    InvalidSchemaTypeSpecification("org.apache.syncope.core.validation.attrvalue.schemaTypeSpecification"),
+    InvalidSchemaEnum("org.apache.syncope.core.validation.schema.enum"),
+    InvalidSchemaMultivalueUnique("org.apache.syncope.core.validation.schema.multivalueUnique"),
     InvalidSchedTask("org.apache.syncope.core.validation.schedtask"),
     InvalidSyncTask("org.apache.syncope.core.validation.synctask"),
     InvalidSyncPolicy("org.apache.syncope.core.validation.syncpolicy"),
@@ -51,7 +52,6 @@ public enum EntityViolationType {
     InvalidUVirSchema("org.apache.syncope.core.validation.attrvalue.uVirSchema"),
     InvalidUsername("org.apache.syncope.core.validation.syncopeuser.username"),
     InvalidValueList("org.apache.syncope.core.validation.attr.valueList"),
-    MultivalueAndUniqueConstraint("org.apache.syncope.core.validation.schema.multivalueAndUniqueConstraint"),
     MoreThanOneNonNull("org.apache.syncope.core.validation.attrvalue.moreThanOneNonNull");
 
     private String message;

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/types/SyncopeClientExceptionType.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/types/SyncopeClientExceptionType.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/types/SyncopeClientExceptionType.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/types/SyncopeClientExceptionType.java Fri Sep 20 13:54:58 2013
@@ -42,16 +42,17 @@ public enum SyncopeClientExceptionType {
     InvalidPropagationTaskExecReport(
     "Syncope.InvalidPropagationTaskExecReport",
     "Syncope.InvalidPropagationTaskExecReport.element"),
-    InvalidUSchema("Syncope.InvalidUSchemaUpdate", "Syncope.InvalidUSchemaUpdate.name"),
-    InvalidUDerSchema("Syncope.InvalidUDerSchemaUpdate", "Syncope.InvalidUDerSchemaUpdate.name"),
-    InvalidUVirSchema("Syncope.InvalidUVirSchemaUpdate", "Syncope.InvalidUVirSchemaUpdate.name"),
-    InvalidRSchema("Syncope.InvalidRSchemaUpdate", "Syncope.InvalidRSchemaUpdate.name"),
-    InvalidRDerSchema("Syncope.InvalidRDerSchemaUpdate", "Syncope.InvalidRDerSchemaUpdate.name"),
-    InvalidRVirSchema("Syncope.InvalidRVirSchemaUpdate", "Syncope.InvalidRVirSchemaUpdate.name"),
-    InvalidMSchema("Syncope.InvalidMSchemaUpdate", "Syncope.InvalidMSchemaUpdate.name"),
-    InvalidMDerSchema("Syncope.InvalidMDerSchemaUpdate", "Syncope.InvalidMDerSchemaUpdate.name"),
-    InvalidMVirSchema("Syncope.InvalidMVirSchemaUpdate", "Syncope.InvalidMVirSchemaUpdate.name"),
-    InvalidSchemaMapping("Syncope.InvalidSchemaMapping", ""),
+    InvalidUSchema("Syncope.InvalidUSchema", "Syncope.InvalidUSchema.name"),
+    InvalidUDerSchema("Syncope.InvalidUDerSchema", "Syncope.InvalidUDerSchema.name"),
+    InvalidUVirSchema("Syncope.InvalidUVirSchema", "Syncope.InvalidUVirSchema.name"),
+    InvalidRSchema("Syncope.InvalidRSchema", "Syncope.InvalidRSchema.name"),
+    InvalidRDerSchema("Syncope.InvalidRDerSchema", "Syncope.InvalidRDerSchema.name"),
+    InvalidRVirSchema("Syncope.InvalidRVirSchema", "Syncope.InvalidRVirSchema.name"),
+    InvalidMSchema("Syncope.InvalidMSchema", "Syncope.InvalidMSchema.name"),
+    InvalidMDerSchema("Syncope.InvalidMDerSchema", "Syncope.InvalidMDerSchema.name"),
+    InvalidMVirSchema("Syncope.InvalidMVirSchema", "Syncope.InvalidMVirSchema.name"),
+    InvalidSchemaMapping("Syncope.InvalidSchemaMapping", "Syncope.InvalidSchemaMapping.name"),
+    InvalidSyncopeConf("Syncope.InvalidSyncopeConf", "Syncope.InvalidSyncopeConf.name"),
     InvalidSyncopeUser("Syncope.InvalidSyncopeUser", "Syncope.InvalidSyncopeUser.element"),
     InvalidExternalResource("Syncope.InvalidExternalResource", "Syncope.InvalidExternalResource.element"),
     InvalidNotification("Syncope.InvalidNotification", "Syncope.InvalidNotification.element"),

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractDerSchema.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractDerSchema.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractDerSchema.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractDerSchema.java Fri Sep 20 13:54:58 2013
@@ -22,8 +22,10 @@ import javax.persistence.Column;
 import javax.persistence.Id;
 import javax.persistence.MappedSuperclass;
 import org.apache.syncope.common.types.AttributeSchemaType;
+import org.apache.syncope.core.persistence.validation.entity.SchemaNameCheck;
 
 @MappedSuperclass
+@SchemaNameCheck
 public abstract class AbstractDerSchema extends AbstractBaseBean {
 
     private static final long serialVersionUID = -6173643493348674060L;

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractSchema.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractSchema.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractSchema.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractSchema.java Fri Sep 20 13:54:58 2013
@@ -34,9 +34,11 @@ import org.apache.syncope.common.types.A
 import org.apache.syncope.core.persistence.validation.attrvalue.AbstractValidator;
 import org.apache.syncope.core.persistence.validation.attrvalue.BasicValidator;
 import org.apache.syncope.core.persistence.validation.entity.SchemaCheck;
+import org.apache.syncope.core.persistence.validation.entity.SchemaNameCheck;
 
 @MappedSuperclass
 @SchemaCheck
+@SchemaNameCheck
 public abstract class AbstractSchema extends AbstractBaseBean {
 
     public static String enumValuesSeparator = ";";
@@ -151,7 +153,7 @@ public abstract class AbstractSchema ext
         if (getValidatorClass() != null && getValidatorClass().length() > 0) {
             try {
                 Constructor validatorConstructor = Class.forName(getValidatorClass()).getConstructor(
-                        new Class[]{getClass().getSuperclass()});
+                        new Class[] {getClass().getSuperclass()});
                 validator = (AbstractValidator) validatorConstructor.newInstance(this);
             } catch (Exception e) {
                 LOG.error("Could not instantiate validator of type " + getValidatorClass()

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractVirSchema.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractVirSchema.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractVirSchema.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractVirSchema.java Fri Sep 20 13:54:58 2013
@@ -25,13 +25,15 @@ import javax.validation.constraints.Max;
 import javax.validation.constraints.Min;
 
 import org.apache.syncope.common.types.AttributeSchemaType;
+import org.apache.syncope.core.persistence.validation.entity.SchemaNameCheck;
 
 @MappedSuperclass
+@SchemaNameCheck
 public abstract class AbstractVirSchema extends AbstractBaseBean {
 
     @Id
     private String name;
-    
+
     @Basic
     @Min(0)
     @Max(1)
@@ -74,5 +76,4 @@ public abstract class AbstractVirSchema 
     public void setReadonly(final boolean readonly) {
         this.readonly = getBooleanAsInteger(readonly);
     }
-
 }

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/SyncopeConf.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/SyncopeConf.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/SyncopeConf.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/SyncopeConf.java Fri Sep 20 13:54:58 2013
@@ -21,8 +21,10 @@ package org.apache.syncope.core.persiste
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.Id;
+import org.apache.syncope.core.persistence.validation.entity.SyncopeConfCheck;
 
 @Entity
+@SyncopeConfCheck
 public class SyncopeConf extends AbstractBaseBean {
 
     private static final long serialVersionUID = -899341077670090120L;
@@ -38,7 +40,7 @@ public class SyncopeConf extends Abstrac
         return key;
     }
 
-    public void setKey(String key) {
+    public void setKey(final String key) {
         this.key = key;
     }
 
@@ -46,7 +48,7 @@ public class SyncopeConf extends Abstrac
         return value;
     }
 
-    public void setValue(String value) {
+    public void setValue(final String value) {
         this.value = value;
     }
 }

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/user/UDerSchema.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/user/UDerSchema.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/user/UDerSchema.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/user/UDerSchema.java Fri Sep 20 13:54:58 2013
@@ -20,10 +20,8 @@ package org.apache.syncope.core.persiste
 
 import javax.persistence.Entity;
 import org.apache.syncope.core.persistence.beans.AbstractDerSchema;
-import org.apache.syncope.core.persistence.validation.entity.USchemaCheck;
 
 @Entity
-@USchemaCheck
 public class UDerSchema extends AbstractDerSchema {
 
     private static final long serialVersionUID = 6244467775394201229L;

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/user/USchema.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/user/USchema.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/user/USchema.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/user/USchema.java Fri Sep 20 13:54:58 2013
@@ -21,11 +21,9 @@ package org.apache.syncope.core.persiste
 import javax.persistence.Cacheable;
 import javax.persistence.Entity;
 import org.apache.syncope.core.persistence.beans.AbstractSchema;
-import org.apache.syncope.core.persistence.validation.entity.USchemaCheck;
 
 @Entity
 @Cacheable
-@USchemaCheck
 public class USchema extends AbstractSchema {
 
     private static final long serialVersionUID = -2776513645999914610L;

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/user/UVirSchema.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/user/UVirSchema.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/user/UVirSchema.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/user/UVirSchema.java Fri Sep 20 13:54:58 2013
@@ -21,11 +21,9 @@ package org.apache.syncope.core.persiste
 import javax.persistence.Cacheable;
 import javax.persistence.Entity;
 import org.apache.syncope.core.persistence.beans.AbstractVirSchema;
-import org.apache.syncope.core.persistence.validation.entity.USchemaCheck;
 
 @Entity
 @Cacheable
-@USchemaCheck
 public class UVirSchema extends AbstractVirSchema {
 
     private static final long serialVersionUID = 1089308700791426201L;

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/attrvalue/EmailAddressValidator.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/attrvalue/EmailAddressValidator.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/attrvalue/EmailAddressValidator.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/attrvalue/EmailAddressValidator.java Fri Sep 20 13:54:58 2013
@@ -39,11 +39,9 @@ public class EmailAddressValidator exten
 
     @Override
     protected void doValidate(final AbstractAttrValue attributeValue) throws InvalidAttrValueException {
-
-        Matcher matcher = EMAIL_PATTERN.matcher((CharSequence) attributeValue.getValue());
+        Matcher matcher = EMAIL_PATTERN.matcher(attributeValue.<CharSequence>getValue());
         if (!matcher.matches()) {
-            String error = "\"" + attributeValue.getValue() + "\" is not a valid email address";
-            throw new InvalidAttrValueException(error);
+            throw new InvalidAttrValueException("\"" + attributeValue.getValue() + "\" is not a valid email address");
         }
     }
 }

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AbstractValidator.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AbstractValidator.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AbstractValidator.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AbstractValidator.java Fri Sep 20 13:54:58 2013
@@ -18,17 +18,28 @@
  */
 package org.apache.syncope.core.persistence.validation.entity;
 
+import java.lang.annotation.Annotation;
+import java.util.regex.Pattern;
+import javax.validation.ConstraintValidator;
 import org.apache.syncope.common.types.EntityViolationType;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public abstract class AbstractValidator {
+public abstract class AbstractValidator<A extends Annotation, T> implements ConstraintValidator<A, T> {
 
     /**
      * Logger.
      */
     protected static final Logger LOG = LoggerFactory.getLogger(AbstractValidator.class);
 
+    protected static final Pattern NAME_PATTERN =
+            Pattern.compile("^[\\w \\-@.]+", Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE);
+
+    @Override
+    public void initialize(final A annotation) {
+        // no initialization
+    }
+
     protected final String getTemplate(final EntityViolationType type, final String message) {
         return type.name() + ";" + message;
     }

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AttrValidator.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AttrValidator.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AttrValidator.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AttrValidator.java Fri Sep 20 13:54:58 2013
@@ -18,20 +18,14 @@
  */
 package org.apache.syncope.core.persistence.validation.entity;
 
-import javax.validation.ConstraintValidator;
 import javax.validation.ConstraintValidatorContext;
 import org.apache.syncope.common.types.EntityViolationType;
 import org.apache.syncope.core.persistence.beans.AbstractAttr;
 
-public class AttrValidator extends AbstractValidator implements ConstraintValidator<AttrCheck, AbstractAttr> {
-
-    @Override
-    public void initialize(final AttrCheck constraintAnnotation) {
-    }
+public class AttrValidator extends AbstractValidator<AttrCheck, AbstractAttr> {
 
     @Override
     public boolean isValid(final AbstractAttr object, final ConstraintValidatorContext context) {
-
         boolean isValid;
 
         if (object == null) {

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AttrValueValidator.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AttrValueValidator.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AttrValueValidator.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AttrValueValidator.java Fri Sep 20 13:54:58 2013
@@ -18,23 +18,16 @@
  */
 package org.apache.syncope.core.persistence.validation.entity;
 
-import javax.validation.ConstraintValidator;
 import javax.validation.ConstraintValidatorContext;
 import org.apache.syncope.common.types.EntityViolationType;
 import org.apache.syncope.core.persistence.beans.AbstractAttrUniqueValue;
 import org.apache.syncope.core.persistence.beans.AbstractAttrValue;
 import org.apache.syncope.core.persistence.beans.AbstractSchema;
 
-public class AttrValueValidator extends AbstractValidator implements
-        ConstraintValidator<AttrValueCheck, AbstractAttrValue> {
-
-    @Override
-    public void initialize(final AttrValueCheck constraintAnnotation) {
-    }
+public class AttrValueValidator extends AbstractValidator<AttrValueCheck, AbstractAttrValue> {
 
     @Override
     public boolean isValid(final AbstractAttrValue object, final ConstraintValidatorContext context) {
-
         boolean isValid;
 
         if (object == null) {

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ConnInstanceValidator.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ConnInstanceValidator.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ConnInstanceValidator.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ConnInstanceValidator.java Fri Sep 20 13:54:58 2013
@@ -18,24 +18,17 @@
  */
 package org.apache.syncope.core.persistence.validation.entity;
 
-import javax.validation.ConstraintValidator;
 import javax.validation.ConstraintValidatorContext;
 import org.apache.syncope.common.types.EntityViolationType;
 import org.apache.syncope.core.persistence.beans.ConnInstance;
 import org.apache.syncope.core.util.URIUtil;
 
-public class ConnInstanceValidator extends AbstractValidator implements
-        ConstraintValidator<ConnInstanceCheck, ConnInstance> {
-
-    private static final String[] ALLOWED_SCHEMES = {"file", "connid", "connids"};
-
-    @Override
-    public void initialize(final ConnInstanceCheck constraintAnnotation) {
-    }
+public class ConnInstanceValidator extends AbstractValidator<ConnInstanceCheck, ConnInstance> {
 
     @Override
     public boolean isValid(final ConnInstance connInstance, final ConstraintValidatorContext context) {
         boolean isValid = true;
+
         try {
             URIUtil.buildForConnId(connInstance.getLocation());
         } catch (Exception e) {

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ExternalResourceValidator.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ExternalResourceValidator.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ExternalResourceValidator.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ExternalResourceValidator.java Fri Sep 20 13:54:58 2013
@@ -18,7 +18,6 @@
  */
 package org.apache.syncope.core.persistence.validation.entity;
 
-import javax.validation.ConstraintValidator;
 import javax.validation.ConstraintValidatorContext;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.syncope.common.types.EntityViolationType;
@@ -27,12 +26,7 @@ import org.apache.syncope.core.persisten
 import org.apache.syncope.core.persistence.beans.ExternalResource;
 import org.apache.syncope.core.propagation.PropagationActions;
 
-public class ExternalResourceValidator extends AbstractValidator implements
-        ConstraintValidator<ExternalResourceCheck, ExternalResource> {
-
-    @Override
-    public void initialize(final ExternalResourceCheck constraintAnnotation) {
-    }
+public class ExternalResourceValidator extends AbstractValidator<ExternalResourceCheck, ExternalResource> {
 
     private boolean isValid(final AbstractMappingItem item, final ConstraintValidatorContext context) {
         if (StringUtils.isBlank(item.getExtAttrName())) {
@@ -104,6 +98,13 @@ public class ExternalResourceValidator e
     public boolean isValid(final ExternalResource resource, final ConstraintValidatorContext context) {
         context.disableDefaultConstraintViolation();
 
+        if (!NAME_PATTERN.matcher(resource.getName()).matches()) {
+            context.buildConstraintViolationWithTemplate(
+                    getTemplate(EntityViolationType.InvalidName, "Invalid Resource name")).
+                    addNode("name").addConstraintViolation();
+            return false;
+        }
+
         if (StringUtils.isNotBlank(resource.getPropagationActionsClassName())) {
             Class<?> actionsClass = null;
             boolean isAssignable = false;

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/NotificationValidator.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/NotificationValidator.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/NotificationValidator.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/NotificationValidator.java Fri Sep 20 13:54:58 2013
@@ -18,22 +18,15 @@
  */
 package org.apache.syncope.core.persistence.validation.entity;
 
-import javax.validation.ConstraintValidator;
 import javax.validation.ConstraintValidatorContext;
 
 import org.apache.syncope.common.types.EntityViolationType;
 import org.apache.syncope.core.persistence.beans.Notification;
 
-public class NotificationValidator extends AbstractValidator implements
-        ConstraintValidator<NotificationCheck, Notification> {
-
-    @Override
-    public void initialize(final NotificationCheck constraintAnnotation) {
-    }
+public class NotificationValidator extends AbstractValidator<NotificationCheck, Notification> {
 
     @Override
     public boolean isValid(final Notification value, final ConstraintValidatorContext context) {
-
         context.disableDefaultConstraintViolation();
 
         boolean isValid = true;

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/PolicyValidator.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/PolicyValidator.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/PolicyValidator.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/PolicyValidator.java Fri Sep 20 13:54:58 2013
@@ -18,7 +18,6 @@
  */
 package org.apache.syncope.core.persistence.validation.entity;
 
-import javax.validation.ConstraintValidator;
 import javax.validation.ConstraintValidatorContext;
 import org.apache.syncope.common.types.AccountPolicySpec;
 import org.apache.syncope.common.types.EntityViolationType;
@@ -31,16 +30,12 @@ import org.apache.syncope.core.persisten
 import org.apache.syncope.core.persistence.dao.PolicyDAO;
 import org.springframework.beans.factory.annotation.Autowired;
 
-public class PolicyValidator extends AbstractValidator implements ConstraintValidator<PolicyCheck, Policy> {
+public class PolicyValidator extends AbstractValidator<PolicyCheck, Policy> {
 
     @Autowired
     private PolicyDAO policyDAO;
 
     @Override
-    public void initialize(final PolicyCheck constraintAnnotation) {
-    }
-
-    @Override
     public boolean isValid(final Policy object, final ConstraintValidatorContext context) {
         context.disableDefaultConstraintViolation();
 

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/PropagationTaskValidator.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/PropagationTaskValidator.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/PropagationTaskValidator.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/PropagationTaskValidator.java Fri Sep 20 13:54:58 2013
@@ -20,7 +20,6 @@ package org.apache.syncope.core.persiste
 
 import java.util.List;
 
-import javax.validation.ConstraintValidator;
 import javax.validation.ConstraintValidatorContext;
 
 import org.apache.syncope.common.types.EntityViolationType;
@@ -28,16 +27,10 @@ import org.apache.syncope.common.types.P
 import org.apache.syncope.core.persistence.beans.PropagationTask;
 import org.apache.syncope.core.persistence.beans.TaskExec;
 
-public class PropagationTaskValidator extends AbstractValidator implements
-        ConstraintValidator<PropagationTaskCheck, PropagationTask> {
-
-    @Override
-    public void initialize(final PropagationTaskCheck constraintAnnotation) {
-    }
+public class PropagationTaskValidator extends AbstractValidator<PropagationTaskCheck, PropagationTask> {
 
     @Override
     public boolean isValid(final PropagationTask task, final ConstraintValidatorContext context) {
-
         boolean isValid;
 
         if (task == null) {

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ReportValidator.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ReportValidator.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ReportValidator.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ReportValidator.java Fri Sep 20 13:54:58 2013
@@ -22,7 +22,6 @@ import java.text.ParseException;
 import java.util.HashSet;
 import java.util.Set;
 
-import javax.validation.ConstraintValidator;
 import javax.validation.ConstraintValidatorContext;
 
 import org.apache.syncope.common.report.ReportletConf;
@@ -30,16 +29,11 @@ import org.apache.syncope.common.types.E
 import org.apache.syncope.core.persistence.beans.Report;
 import org.quartz.CronExpression;
 
-public class ReportValidator extends AbstractValidator implements ConstraintValidator<ReportCheck, Report> {
-
-    @Override
-    public void initialize(final ReportCheck constraintAnnotation) {
-    }
+public class ReportValidator extends AbstractValidator<ReportCheck, Report> {
 
     @Override
     @SuppressWarnings("ResultOfObjectAllocationIgnored")
     public boolean isValid(final Report object, final ConstraintValidatorContext context) {
-
         boolean isValid = true;
 
         if (object.getCronExpression() != null) {

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchedTaskValidator.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchedTaskValidator.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchedTaskValidator.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchedTaskValidator.java Fri Sep 20 13:54:58 2013
@@ -20,7 +20,6 @@ package org.apache.syncope.core.persiste
 
 import java.text.ParseException;
 
-import javax.validation.ConstraintValidator;
 import javax.validation.ConstraintValidatorContext;
 
 import org.apache.syncope.common.types.EntityViolationType;
@@ -28,16 +27,11 @@ import org.apache.syncope.core.persisten
 import org.quartz.CronExpression;
 import org.quartz.Job;
 
-public class SchedTaskValidator extends AbstractValidator implements ConstraintValidator<SchedTaskCheck, SchedTask> {
-
-    @Override
-    public void initialize(final SchedTaskCheck constraintAnnotation) {
-    }
+public class SchedTaskValidator extends AbstractValidator<SchedTaskCheck, SchedTask> {
 
     @Override
     public boolean isValid(final SchedTask object, final ConstraintValidatorContext context) {
-
-        boolean isValid = true;
+        boolean isValid;
 
         Class<?> jobClass = null;
         try {

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchemaValidator.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchemaValidator.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchemaValidator.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchemaValidator.java Fri Sep 20 13:54:58 2013
@@ -18,58 +18,35 @@
  */
 package org.apache.syncope.core.persistence.validation.entity;
 
-import javax.validation.ConstraintValidator;
 import javax.validation.ConstraintValidatorContext;
+import org.apache.commons.lang3.StringUtils;
 
 import org.apache.syncope.common.types.EntityViolationType;
 import org.apache.syncope.common.types.AttributeSchemaType;
 import org.apache.syncope.core.persistence.beans.AbstractSchema;
 
-public class SchemaValidator extends AbstractValidator implements ConstraintValidator<SchemaCheck, AbstractSchema> {
+public class SchemaValidator extends AbstractValidator<SchemaCheck, AbstractSchema> {
 
     @Override
-    public void initialize(final SchemaCheck constraintAnnotation) {
-    }
-
-    @Override
-    public boolean isValid(final AbstractSchema object, final ConstraintValidatorContext context) {
-
-        boolean isValid = false;
-        EntityViolationType violation = null;
-
-        try {
-            if (object == null) {
-                isValid = true;
-            } else {
-                isValid = object.getType() == null || !object.getType().equals(AttributeSchemaType.Enum)
-                        || object.getEnumerationValues() != null;
-
-                if (!isValid) {
-                    violation = EntityViolationType.InvalidSchemaTypeSpecification;
-
-                    throw new Exception(object + " miss enumeration values");
-                }
-
-                isValid = object.isMultivalue()
-                        ? !object.isUniqueConstraint()
-                        : true;
-
-                if (!isValid) {
-                    violation = EntityViolationType.MultivalueAndUniqueConstraint;
-
-                    throw new Exception(object + " cannot be multivalue and have unique constraint at the same time");
-                }
-            }
-
-            return isValid;
-        } catch (Exception e) {
-            LOG.error("Error saving schema", e);
-
+    public boolean isValid(final AbstractSchema schema, final ConstraintValidatorContext context) {
+        boolean isValid = schema.getType() != AttributeSchemaType.Enum
+                || StringUtils.isNotBlank(schema.getEnumerationValues());
+        if (!isValid) {
             context.disableDefaultConstraintViolation();
-            context.buildConstraintViolationWithTemplate(getTemplate(violation, e.getMessage())).
-                    addNode(object.getClass().getSimpleName()).addConstraintViolation();
-
-            return false;
+            context.buildConstraintViolationWithTemplate(
+                    getTemplate(EntityViolationType.InvalidSchemaEnum, "Enumeration values missing")).
+                    addNode("enumerationValues").addConstraintViolation();
+        } else {
+            isValid = !schema.isMultivalue() || !schema.isUniqueConstraint();
+            if (!isValid) {
+                context.disableDefaultConstraintViolation();
+                context.buildConstraintViolationWithTemplate(
+                        getTemplate(EntityViolationType.InvalidSchemaMultivalueUnique,
+                        "Cannot contemporary be multivalue and have unique constraint")).
+                        addNode("multiValue").addConstraintViolation();
+            }
         }
+
+        return isValid;
     }
 }

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncTaskValidator.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncTaskValidator.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncTaskValidator.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncTaskValidator.java Fri Sep 20 13:54:58 2013
@@ -18,7 +18,6 @@
  */
 package org.apache.syncope.core.persistence.validation.entity;
 
-import javax.validation.ConstraintValidator;
 import javax.validation.ConstraintValidatorContext;
 
 import org.apache.commons.lang3.StringUtils;
@@ -26,7 +25,7 @@ import org.apache.syncope.common.types.E
 import org.apache.syncope.core.persistence.beans.SyncTask;
 import org.apache.syncope.core.sync.SyncActions;
 
-public class SyncTaskValidator extends AbstractValidator implements ConstraintValidator<SyncTaskCheck, SyncTask> {
+public class SyncTaskValidator extends AbstractValidator<SyncTaskCheck, SyncTask> {
 
     private final SchedTaskValidator schedV;
 
@@ -37,49 +36,38 @@ public class SyncTaskValidator extends A
     }
 
     @Override
-    public void initialize(final SyncTaskCheck constraintAnnotation) {
-    }
-
-    @Override
     public boolean isValid(final SyncTask object, final ConstraintValidatorContext context) {
+        boolean isValid = schedV.isValid(object, context);
+
+        if (isValid) {
+            isValid = object.getResource() != null;
+            if (!isValid) {
+                LOG.error("Resource is null");
+
+                context.disableDefaultConstraintViolation();
+                context.buildConstraintViolationWithTemplate(
+                        getTemplate(EntityViolationType.InvalidSyncTask, "Resource cannot be null")).
+                        addNode("resource").addConstraintViolation();
+            }
 
-        boolean isValid;
+            if (StringUtils.isNotBlank(object.getActionsClassName())) {
+                Class<?> actionsClass = null;
+                boolean isAssignable = false;
+                try {
+                    actionsClass = Class.forName(object.getActionsClassName());
+                    isAssignable = SyncActions.class.isAssignableFrom(actionsClass);
+                } catch (Exception e) {
+                    LOG.error("Invalid SyncActions specified", e);
+                    isValid = false;
+                }
 
-        if (object == null) {
-            isValid = true;
-        } else {
-            isValid = schedV.isValid(object, context);
-
-            if (isValid) {
-                isValid = object.getResource() != null;
-                if (!isValid) {
-                    LOG.error("Resource is null");
+                if (actionsClass == null || !isAssignable) {
+                    isValid = false;
 
                     context.disableDefaultConstraintViolation();
                     context.buildConstraintViolationWithTemplate(
-                            getTemplate(EntityViolationType.InvalidSyncTask, "Resource cannot be null")).
-                            addNode("resource").addConstraintViolation();
-                }
-
-                if (StringUtils.isNotBlank(object.getActionsClassName())) {
-                    Class<?> actionsClass = null;
-                    boolean isAssignable = false;
-                    try {
-                        actionsClass = Class.forName(object.getActionsClassName());
-                        isAssignable = SyncActions.class.isAssignableFrom(actionsClass);
-                    } catch (Exception e) {
-                        LOG.error("Invalid SyncActions specified", e);
-                        isValid = false;
-                    }
-
-                    if (actionsClass == null || !isAssignable) {
-                        isValid = false;
-
-                        context.disableDefaultConstraintViolation();
-                        context.buildConstraintViolationWithTemplate(
-                                getTemplate(EntityViolationType.InvalidSyncTask, "Invalid class name")).
-                                addNode("actionsClassName").addConstraintViolation();
-                    }
+                            getTemplate(EntityViolationType.InvalidSyncTask, "Invalid class name")).
+                            addNode("actionsClassName").addConstraintViolation();
                 }
             }
         }

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncopeRoleValidator.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncopeRoleValidator.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncopeRoleValidator.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncopeRoleValidator.java Fri Sep 20 13:54:58 2013
@@ -18,17 +18,11 @@
  */
 package org.apache.syncope.core.persistence.validation.entity;
 
-import javax.validation.ConstraintValidator;
 import javax.validation.ConstraintValidatorContext;
 import org.apache.syncope.common.types.EntityViolationType;
 import org.apache.syncope.core.persistence.beans.role.SyncopeRole;
 
-public class SyncopeRoleValidator extends AbstractValidator implements
-        ConstraintValidator<SyncopeRoleCheck, SyncopeRole> {
-
-    @Override
-    public void initialize(final SyncopeRoleCheck constraintAnnotation) {
-    }
+public class SyncopeRoleValidator extends AbstractValidator<SyncopeRoleCheck, SyncopeRole> {
 
     @Override
     public boolean isValid(final SyncopeRole object, final ConstraintValidatorContext context) {

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncopeUserValidator.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncopeUserValidator.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncopeUserValidator.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncopeUserValidator.java Fri Sep 20 13:54:58 2013
@@ -20,7 +20,6 @@ package org.apache.syncope.core.persiste
 
 import java.util.ArrayList;
 import java.util.List;
-import javax.validation.ConstraintValidator;
 import javax.validation.ConstraintValidatorContext;
 import org.apache.syncope.common.types.AccountPolicySpec;
 import org.apache.syncope.common.types.EntityViolationType;
@@ -37,8 +36,7 @@ import org.apache.syncope.core.policy.Pa
 import org.apache.syncope.core.policy.PolicyEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 
-public class SyncopeUserValidator extends AbstractValidator implements
-        ConstraintValidator<SyncopeUserCheck, SyncopeUser> {
+public class SyncopeUserValidator extends AbstractValidator<SyncopeUserCheck, SyncopeUser> {
 
     @Autowired
     private PolicyDAO policyDAO;
@@ -53,10 +51,6 @@ public class SyncopeUserValidator extend
     private AccountPolicyEnforcer apEnforcer;
 
     @Override
-    public void initialize(final SyncopeUserCheck constraintAnnotation) {
-    }
-
-    @Override
     public boolean isValid(final SyncopeUser object, final ConstraintValidatorContext context) {
         context.disableDefaultConstraintViolation();
 

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/SchemaDataBinder.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/SchemaDataBinder.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/SchemaDataBinder.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/SchemaDataBinder.java Fri Sep 20 13:54:58 2013
@@ -20,6 +20,7 @@ package org.apache.syncope.core.rest.dat
 
 import java.util.List;
 import javax.ws.rs.core.Response;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.syncope.common.to.DerSchemaTO;
 import org.apache.syncope.common.to.SchemaTO;
 import org.apache.syncope.common.to.VirSchemaTO;
@@ -110,15 +111,13 @@ public class SchemaDataBinder {
         SyncopeClientCompositeException scce =
                 new SyncopeClientCompositeException(Response.Status.BAD_REQUEST.getStatusCode());
 
-        if (derSchemaTO.getExpression() == null) {
-            SyncopeClientException requiredValuesMissing = new SyncopeClientException(
-                    SyncopeClientExceptionType.RequiredValuesMissing);
+        if (StringUtils.isBlank(derSchemaTO.getExpression())) {
+            SyncopeClientException requiredValuesMissing =
+                    new SyncopeClientException(SyncopeClientExceptionType.RequiredValuesMissing);
             requiredValuesMissing.addElement("expression");
 
             scce.addException(requiredValuesMissing);
-        }
-
-        if (!jexlUtil.isExpressionValid(derSchemaTO.getExpression())) {
+        } else if (!jexlUtil.isExpressionValid(derSchemaTO.getExpression())) {
             SyncopeClientException invalidMandatoryCondition = new SyncopeClientException(
                     SyncopeClientExceptionType.InvalidValues);
             invalidMandatoryCondition.addElement(derSchemaTO.getExpression());

Modified: syncope/trunk/core/src/test/java/org/apache/syncope/core/persistence/dao/AttrTest.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/test/java/org/apache/syncope/core/persistence/dao/AttrTest.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/core/src/test/java/org/apache/syncope/core/persistence/dao/AttrTest.java (original)
+++ syncope/trunk/core/src/test/java/org/apache/syncope/core/persistence/dao/AttrTest.java Fri Sep 20 13:54:58 2013
@@ -76,7 +76,6 @@ public class AttrTest extends AbstractDA
 
     @Test
     public void save() throws ClassNotFoundException {
-
         SyncopeUser user = userDAO.find(1L);
 
         USchema emailSchema = userSchemaDAO.find("email", USchema.class);
@@ -118,7 +117,6 @@ public class AttrTest extends AbstractDA
 
     @Test
     public void checkForEnumType() throws ClassNotFoundException {
-
         SyncopeUser user = userDAO.find(1L);
 
         USchema gender = userSchemaDAO.find("gender", USchema.class);

Modified: syncope/trunk/core/src/test/java/org/apache/syncope/core/persistence/dao/DerSchemaTest.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/test/java/org/apache/syncope/core/persistence/dao/DerSchemaTest.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/core/src/test/java/org/apache/syncope/core/persistence/dao/DerSchemaTest.java (original)
+++ syncope/trunk/core/src/test/java/org/apache/syncope/core/persistence/dao/DerSchemaTest.java Fri Sep 20 13:54:58 2013
@@ -21,11 +21,15 @@ package org.apache.syncope.core.persiste
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 
 import java.util.List;
 
 import org.apache.syncope.common.types.AttributableType;
+import org.apache.syncope.common.types.EntityViolationType;
 import org.apache.syncope.core.persistence.beans.user.UDerSchema;
+import org.apache.syncope.core.persistence.validation.entity.InvalidEntityException;
 import org.apache.syncope.core.util.AttributableUtil;
 import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -71,4 +75,17 @@ public class DerSchemaTest extends Abstr
         UDerSchema actual = derSchemaDAO.find("cn", UDerSchema.class);
         assertNull("delete did not work", actual);
     }
+
+    @Test
+    public void issueSYNCOPE418() {
+        UDerSchema schema = new UDerSchema();
+        schema.setName("http://schemas.examples.org/security/authorization/organizationUnit");
+
+        try {
+            derSchemaDAO.save(schema);
+            fail();
+        } catch (InvalidEntityException e) {
+            assertTrue(e.hasViolation(EntityViolationType.InvalidName));
+        }
+    }
 }

Modified: syncope/trunk/core/src/test/java/org/apache/syncope/core/persistence/dao/ResourceTest.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/test/java/org/apache/syncope/core/persistence/dao/ResourceTest.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/core/src/test/java/org/apache/syncope/core/persistence/dao/ResourceTest.java (original)
+++ syncope/trunk/core/src/test/java/org/apache/syncope/core/persistence/dao/ResourceTest.java Fri Sep 20 13:54:58 2013
@@ -23,11 +23,13 @@ import static org.junit.Assert.assertFal
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 
 import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.syncope.common.types.AttributableType;
+import org.apache.syncope.common.types.EntityViolationType;
 import org.apache.syncope.common.types.IntMappingType;
 import org.apache.syncope.common.types.MappingPurpose;
 import org.apache.syncope.core.persistence.beans.AbstractMappingItem;
@@ -248,4 +250,17 @@ public class ResourceTest extends Abstra
         ExternalResource actual = resourceDAO.find("ws-target-resource-2");
         assertNull(actual);
     }
+
+    @Test
+    public void issueSYNCOPE418() {
+        ExternalResource resource = new ExternalResource();
+        resource.setName("http://schemas.examples.org/security/authorization/organizationUnit");
+
+        try {
+            resourceDAO.save(resource);
+            fail();
+        } catch (InvalidEntityException e) {
+            assertTrue(e.hasViolation(EntityViolationType.InvalidName));
+        }
+    }
 }

Modified: syncope/trunk/core/src/test/java/org/apache/syncope/core/persistence/dao/SchemaTest.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/test/java/org/apache/syncope/core/persistence/dao/SchemaTest.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/core/src/test/java/org/apache/syncope/core/persistence/dao/SchemaTest.java (original)
+++ syncope/trunk/core/src/test/java/org/apache/syncope/core/persistence/dao/SchemaTest.java Fri Sep 20 13:54:58 2013
@@ -22,11 +22,14 @@ import static org.junit.Assert.assertEqu
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 
 import java.util.List;
 
 import org.apache.syncope.common.types.AttributableType;
 import org.apache.syncope.common.types.AttributeSchemaType;
+import org.apache.syncope.common.types.EntityViolationType;
 import org.apache.syncope.core.persistence.beans.AbstractSchema;
 import org.apache.syncope.core.persistence.beans.role.RAttr;
 import org.apache.syncope.core.persistence.beans.role.RSchema;
@@ -142,4 +145,17 @@ public class SchemaTest extends Abstract
         USchema actual = schemaDAO.find("fullname", USchema.class);
         assertNull("delete did not work", actual);
     }
+
+    @Test
+    public void issueSYNCOPE418() {
+        USchema schema = new USchema();
+        schema.setName("http://schemas.examples.org/security/authorization/organizationUnit");
+
+        try {
+            schemaDAO.save(schema);
+            fail();
+        } catch (InvalidEntityException e) {
+            assertTrue(e.hasViolation(EntityViolationType.InvalidName));
+        }
+    }
 }

Modified: syncope/trunk/core/src/test/java/org/apache/syncope/core/persistence/dao/VirSchemaTest.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/test/java/org/apache/syncope/core/persistence/dao/VirSchemaTest.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/core/src/test/java/org/apache/syncope/core/persistence/dao/VirSchemaTest.java (original)
+++ syncope/trunk/core/src/test/java/org/apache/syncope/core/persistence/dao/VirSchemaTest.java Fri Sep 20 13:54:58 2013
@@ -22,10 +22,13 @@ import static org.junit.Assert.assertEqu
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 
 import java.util.List;
 import org.apache.syncope.common.types.AttributableType;
+import org.apache.syncope.common.types.EntityViolationType;
 import org.apache.syncope.core.persistence.beans.user.UVirSchema;
+import org.apache.syncope.core.persistence.validation.entity.InvalidEntityException;
 import org.apache.syncope.core.util.AttributableUtil;
 import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -71,4 +74,17 @@ public class VirSchemaTest extends Abstr
         UVirSchema actual = virSchemaDAO.find("virtualdata", UVirSchema.class);
         assertNull("delete did not work", actual);
     }
+
+    @Test
+    public void issueSYNCOPE418() {
+        UVirSchema schema = new UVirSchema();
+        schema.setName("http://schemas.examples.org/security/authorization/organizationUnit");
+
+        try {
+            virSchemaDAO.save(schema);
+            fail();
+        } catch (InvalidEntityException e) {
+            assertTrue(e.hasViolation(EntityViolationType.InvalidName));
+        }
+    }
 }

Modified: syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/ConfigurationTestITCase.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/ConfigurationTestITCase.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/ConfigurationTestITCase.java (original)
+++ syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/ConfigurationTestITCase.java Fri Sep 20 13:54:58 2013
@@ -22,6 +22,7 @@ import static org.junit.Assert.assertEqu
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -36,7 +37,10 @@ import org.apache.http.HttpStatus;
 import org.apache.syncope.common.SyncopeConstants;
 import org.apache.syncope.common.services.ConfigurationService;
 import org.apache.syncope.common.to.ConfigurationTO;
+import org.apache.syncope.common.types.EntityViolationType;
+import org.apache.syncope.common.types.SyncopeClientExceptionType;
 import org.apache.syncope.common.validation.SyncopeClientCompositeException;
+import org.apache.syncope.common.validation.SyncopeClientException;
 import org.junit.FixMethodOrder;
 import org.junit.Test;
 import org.junit.runners.MethodSorters;
@@ -130,4 +134,21 @@ public class ConfigurationTestITCase ext
         assertFalse(configExport.isEmpty());
         assertTrue(configExport.length() > 1000);
     }
+
+    @Test
+    public void issueSYNCOPE418() {
+        ConfigurationTO configurationTO = new ConfigurationTO();
+        configurationTO.setKey("http://schemas.examples.org/security/authorization/organizationUnit");
+
+        try {
+            configurationService.create(configurationTO);
+            fail();
+        } catch (SyncopeClientCompositeException scce) {
+            SyncopeClientException sce = scce.getException(SyncopeClientExceptionType.InvalidSyncopeConf);
+
+            assertNotNull(sce.getElements());
+            assertEquals(1, sce.getElements().size());
+            assertTrue(sce.getElements().iterator().next().contains(EntityViolationType.InvalidName.name()));
+        }
+    }
 }

Modified: syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/DerivedSchemaTestITCase.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/DerivedSchemaTestITCase.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/DerivedSchemaTestITCase.java (original)
+++ syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/DerivedSchemaTestITCase.java Fri Sep 20 13:54:58 2013
@@ -29,9 +29,11 @@ import org.apache.http.HttpStatus;
 
 import org.apache.syncope.common.to.DerSchemaTO;
 import org.apache.syncope.common.types.AttributableType;
+import org.apache.syncope.common.types.EntityViolationType;
 import org.apache.syncope.common.types.SchemaType;
 import org.apache.syncope.common.types.SyncopeClientExceptionType;
 import org.apache.syncope.common.validation.SyncopeClientCompositeException;
+import org.apache.syncope.common.validation.SyncopeClientException;
 import org.junit.FixMethodOrder;
 import org.junit.Test;
 import org.junit.runners.MethodSorters;
@@ -71,8 +73,7 @@ public class DerivedSchemaTestITCase ext
 
     @Test
     public void delete() {
-        DerSchemaTO schema = schemaService.read(AttributableType.ROLE, SchemaType.DERIVED,
-                "rderiveddata");
+        DerSchemaTO schema = schemaService.read(AttributableType.ROLE, SchemaType.DERIVED, "rderiveddata");
         assertNotNull(schema);
 
         schemaService.delete(AttributableType.ROLE, SchemaType.DERIVED,
@@ -137,4 +138,22 @@ public class DerivedSchemaTestITCase ext
             assertTrue(scce.hasException(SyncopeClientExceptionType.RequiredValuesMissing));
         }
     }
+
+    @Test
+    public void issueSYNCOPE418() {
+        DerSchemaTO schema = new DerSchemaTO();
+        schema.setName("http://schemas.examples.org/security/authorization/organizationUnit");
+        schema.setExpression("derived_sx + '_' + derived_dx");
+
+        try {
+            createSchema(AttributableType.ROLE, SchemaType.DERIVED, schema);
+            fail();
+        } catch (SyncopeClientCompositeException scce) {
+            SyncopeClientException sce = scce.getException(SyncopeClientExceptionType.InvalidRDerSchema);
+
+            assertNotNull(sce.getElements());
+            assertEquals(1, sce.getElements().size());
+            assertTrue(sce.getElements().iterator().next().contains(EntityViolationType.InvalidName.name()));
+        }
+    }
 }

Modified: syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/ResourceTestITCase.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/ResourceTestITCase.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/ResourceTestITCase.java (original)
+++ syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/ResourceTestITCase.java Fri Sep 20 13:54:58 2013
@@ -42,6 +42,7 @@ import org.apache.syncope.common.to.Prop
 import org.apache.syncope.common.to.ResourceTO;
 import org.apache.syncope.common.types.ConnConfPropSchema;
 import org.apache.syncope.common.types.ConnConfProperty;
+import org.apache.syncope.common.types.EntityViolationType;
 import org.apache.syncope.common.types.IntMappingType;
 import org.apache.syncope.common.types.MappingPurpose;
 import org.apache.syncope.common.types.SyncopeClientExceptionType;
@@ -486,7 +487,22 @@ public class ResourceTestITCase extends 
         assertEquals(2, resourceTO.getRmapping().getItems().size());
     }
 
-    private ResourceTO buildResourceTO(String resourceName) {
+    @Test
+    public void issueSYNCOPE418() {
+        try {
+            resourceService.create(
+                    buildResourceTO("http://schemas.examples.org/security/authorization/organizationUnit"));
+            fail();
+        } catch (SyncopeClientCompositeException scce) {
+            SyncopeClientException sce = scce.getException(SyncopeClientExceptionType.InvalidExternalResource);
+
+            assertNotNull(sce.getElements());
+            assertEquals(1, sce.getElements().size());
+            assertTrue(sce.getElements().iterator().next().contains(EntityViolationType.InvalidName.name()));
+        }
+    }
+
+    private ResourceTO buildResourceTO(final String resourceName) {
         ResourceTO resourceTO = new ResourceTO();
 
         resourceTO.setName(resourceName);

Modified: syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/SchemaTestITCase.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/SchemaTestITCase.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/SchemaTestITCase.java (original)
+++ syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/SchemaTestITCase.java Fri Sep 20 13:54:58 2013
@@ -73,7 +73,7 @@ public class SchemaTestITCase extends Ab
 
             assertNotNull(sce.getElements());
             assertEquals(1, sce.getElements().size());
-            assertTrue(sce.getElements().iterator().next().contains(EntityViolationType.InvalidUSchema.name()));
+            assertTrue(sce.getElements().iterator().next().contains(EntityViolationType.InvalidName.name()));
         }
     }
 
@@ -92,7 +92,7 @@ public class SchemaTestITCase extends Ab
             assertNotNull(sce.getElements());
             assertEquals(1, sce.getElements().size());
             assertTrue(sce.getElements().iterator().next()
-                    .contains(EntityViolationType.InvalidSchemaTypeSpecification.name()));
+                    .contains(EntityViolationType.InvalidSchemaEnum.name()));
         }
     }
 
@@ -111,7 +111,7 @@ public class SchemaTestITCase extends Ab
             assertNotNull(sce.getElements());
             assertEquals(1, sce.getElements().size());
             assertTrue(sce.getElements().iterator().next()
-                    .contains(EntityViolationType.InvalidSchemaTypeSpecification.name()));
+                    .contains(EntityViolationType.InvalidSchemaEnum.name()));
         }
     }
 
@@ -266,6 +266,23 @@ public class SchemaTestITCase extends Ab
         }
     }
 
+    @Test
+    public void issueSYNCOPE418() {
+        SchemaTO schema = buildSchemaTO("http://schemas.examples.org/security/authorization/organizationUnit",
+                AttributeSchemaType.Double);
+
+        try {
+            createSchema(AttributableType.ROLE, SchemaType.NORMAL, schema);
+            fail();
+        } catch (SyncopeClientCompositeException scce) {
+            SyncopeClientException sce = scce.getException(SyncopeClientExceptionType.InvalidRSchema);
+
+            assertNotNull(sce.getElements());
+            assertEquals(1, sce.getElements().size());
+            assertTrue(sce.getElements().iterator().next().contains(EntityViolationType.InvalidName.name()));
+        }
+    }
+
     private SchemaTO buildSchemaTO(final String name, final AttributeSchemaType type) {
         SchemaTO schemaTO = new SchemaTO();
         schemaTO.setName(name + getUUIDString());

Modified: syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/VirtualSchemaTestITCase.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/VirtualSchemaTestITCase.java?rev=1525004&r1=1525003&r2=1525004&view=diff
==============================================================================
--- syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/VirtualSchemaTestITCase.java (original)
+++ syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/VirtualSchemaTestITCase.java Fri Sep 20 13:54:58 2013
@@ -29,9 +29,11 @@ import org.apache.http.HttpStatus;
 
 import org.apache.syncope.common.to.VirSchemaTO;
 import org.apache.syncope.common.types.AttributableType;
+import org.apache.syncope.common.types.EntityViolationType;
 import org.apache.syncope.common.types.SchemaType;
 import org.apache.syncope.common.types.SyncopeClientExceptionType;
 import org.apache.syncope.common.validation.SyncopeClientCompositeException;
+import org.apache.syncope.common.validation.SyncopeClientException;
 import org.junit.FixMethodOrder;
 import org.junit.Test;
 import org.junit.runners.MethodSorters;
@@ -108,4 +110,21 @@ public class VirtualSchemaTestITCase ext
             assertTrue(scce.hasException(SyncopeClientExceptionType.RequiredValuesMissing));
         }
     }
+
+    @Test
+    public void issueSYNCOPE418() {
+        VirSchemaTO schema = new VirSchemaTO();
+        schema.setName("http://schemas.examples.org/security/authorization/organizationUnit");
+
+        try {
+            createSchema(AttributableType.MEMBERSHIP, SchemaType.VIRTUAL, schema);
+            fail();
+        } catch (SyncopeClientCompositeException scce) {
+            SyncopeClientException sce = scce.getException(SyncopeClientExceptionType.InvalidMVirSchema);
+
+            assertNotNull(sce.getElements());
+            assertEquals(1, sce.getElements().size());
+            assertTrue(sce.getElements().iterator().next().contains(EntityViolationType.InvalidName.name()));
+        }
+    }
 }