You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by jb...@apache.org on 2012/11/05 16:00:11 UTC

svn commit: r1405820 [3/8] - in /incubator/syncope/branches/cxf: ./ archetype/ build-tools/ client/ client/src/main/java/org/apache/syncope/annotation/ client/src/main/java/org/apache/syncope/client/ client/src/main/java/org/apache/syncope/client/mod/ ...

Added: incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/RoleTO.java
URL: http://svn.apache.org/viewvc/incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/RoleTO.java?rev=1405820&view=auto
==============================================================================
--- incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/RoleTO.java (added)
+++ incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/RoleTO.java Mon Nov  5 15:00:01 2012
@@ -0,0 +1,207 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.to;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.codehaus.jackson.annotate.JsonIgnoreProperties;
+
+@JsonIgnoreProperties({"displayName", "empty"})
+public class RoleTO extends AbstractAttributableTO {
+
+    private static final long serialVersionUID = -7785920258290147542L;
+
+    private String name;
+
+    private long parent;
+
+    private Long userOwner;
+
+    private Long roleOwner;
+
+    private boolean inheritOwner;
+
+    private boolean inheritAttributes;
+
+    private boolean inheritDerivedAttributes;
+
+    private boolean inheritVirtualAttributes;
+
+    private boolean inheritPasswordPolicy;
+
+    private boolean inheritAccountPolicy;
+
+    private List<String> entitlements;
+
+    private Long passwordPolicy;
+
+    private Long accountPolicy;
+
+    public RoleTO() {
+        entitlements = new ArrayList<String>();
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(final String name) {
+        this.name = name;
+    }
+
+    public long getParent() {
+        return parent;
+    }
+
+    public void setParent(final long parent) {
+        this.parent = parent;
+    }
+
+    public Long getUserOwner() {
+        return userOwner;
+    }
+
+    public void setUserOwner(final Long userOwner) {
+        this.userOwner = userOwner;
+    }
+
+    public Long getRoleOwner() {
+        return roleOwner;
+    }
+
+    public void setRoleOwner(final Long roleOwner) {
+        this.roleOwner = roleOwner;
+    }
+
+    public boolean isInheritOwner() {
+        return inheritOwner;
+    }
+
+    public void setInheritOwner(final boolean inheritOwner) {
+        this.inheritOwner = inheritOwner;
+    }
+
+    public boolean isInheritAttributes() {
+        return inheritAttributes;
+    }
+
+    public void setInheritAttributes(final boolean inheritAttributes) {
+        this.inheritAttributes = inheritAttributes;
+    }
+
+    public boolean isInheritDerivedAttributes() {
+        return inheritDerivedAttributes;
+    }
+
+    public void setInheritDerivedAttributes(final boolean inheritDerivedAttributes) {
+
+        this.inheritDerivedAttributes = inheritDerivedAttributes;
+    }
+
+    public boolean isInheritVirtualAttributes() {
+        return inheritVirtualAttributes;
+    }
+
+    public void setInheritVirtualAttributes(boolean inheritVirtualAttributes) {
+        this.inheritVirtualAttributes = inheritVirtualAttributes;
+    }
+
+    public boolean addEntitlement(String entitlement) {
+        return entitlements.add(entitlement);
+    }
+
+    public boolean removeEntitlement(String entitlement) {
+        return entitlements.remove(entitlement);
+    }
+
+    public List<String> getEntitlements() {
+        return entitlements;
+    }
+
+    public void setEntitlements(List<String> entitlements) {
+        this.entitlements.clear();
+        if (entitlements != null && !entitlements.isEmpty()) {
+            this.entitlements.addAll(entitlements);
+        }
+    }
+
+    public Long getPasswordPolicy() {
+        return passwordPolicy;
+    }
+
+    public void setPasswordPolicy(Long passwordPolicy) {
+        this.passwordPolicy = passwordPolicy;
+    }
+
+    public boolean isInheritPasswordPolicy() {
+        return inheritPasswordPolicy;
+    }
+
+    /**
+     * Specify if password policy must be inherited. In this case eventual passwordPolicy occurrence will be ignored.
+     *
+     * @param inheritPasswordPolicy 'true' to inherit policy, false otherwise.
+     */
+    public void setInheritPasswordPolicy(boolean inheritPasswordPolicy) {
+        this.inheritPasswordPolicy = inheritPasswordPolicy;
+    }
+
+    public Long getAccountPolicy() {
+        return accountPolicy;
+    }
+
+    public void setAccountPolicy(Long accountPolicy) {
+        this.accountPolicy = accountPolicy;
+    }
+
+    public boolean isInheritAccountPolicy() {
+        return inheritAccountPolicy;
+    }
+
+    /**
+     * Specify if account policy must be inherited. In this case eventual accountPolicy occurrence will be ignored.
+     *
+     * @param inheritAccountPolicy 'true' to inherit policy, false otherwise.
+     */
+    public void setInheritAccountPolicy(boolean inheritAccountPolicy) {
+        this.inheritAccountPolicy = inheritAccountPolicy;
+    }
+
+    public String getDisplayName() {
+        return getId() + " " + getName();
+    }
+
+    public String getEmpty() {
+        return "";
+    }
+
+    public static long fromDisplayName(final String displayName) {
+        long result = 0;
+        if (displayName != null && !displayName.isEmpty() && displayName.indexOf(' ') != -1) {
+            try {
+                result = Long.valueOf(displayName.split(" ")[0]);
+            } catch (NumberFormatException e) {
+                // just to avoid PMD warning about "empty catch block"
+                result = 0;
+            }
+        }
+
+        return result;
+    }
+}

Added: incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/SchedTaskTO.java
URL: http://svn.apache.org/viewvc/incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/SchedTaskTO.java?rev=1405820&view=auto
==============================================================================
--- incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/SchedTaskTO.java (added)
+++ incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/SchedTaskTO.java Mon Nov  5 15:00:01 2012
@@ -0,0 +1,94 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.to;
+
+import java.util.Date;
+
+public class SchedTaskTO extends TaskTO {
+
+    private static final long serialVersionUID = -5722284116974636425L;
+
+    private String cronExpression;
+
+    private String jobClassName;
+
+    private String name;
+
+    private String description;
+
+    private Date lastExec;
+
+    private Date nextExec;
+
+    public String getCronExpression() {
+        return cronExpression;
+    }
+
+    public void setCronExpression(String cronExpression) {
+        this.cronExpression = cronExpression;
+    }
+
+    public String getJobClassName() {
+        return jobClassName;
+    }
+
+    public void setJobClassName(String jobClassName) {
+        this.jobClassName = jobClassName;
+    }
+
+    public Date getLastExec() {
+        return lastExec == null
+                ? null
+                : new Date(lastExec.getTime());
+    }
+
+    public void setLastExec(Date lastExec) {
+        if (lastExec != null) {
+            this.lastExec = new Date(lastExec.getTime());
+        }
+    }
+
+    public Date getNextExec() {
+        return nextExec == null
+                ? null
+                : new Date(nextExec.getTime());
+    }
+
+    public void setNextExec(Date nextExec) {
+        if (nextExec != null) {
+            this.nextExec = new Date(nextExec.getTime());
+        }
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+}

Added: incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/SchemaMappingTO.java
URL: http://svn.apache.org/viewvc/incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/SchemaMappingTO.java?rev=1405820&view=auto
==============================================================================
--- incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/SchemaMappingTO.java (added)
+++ incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/SchemaMappingTO.java Mon Nov  5 15:00:01 2012
@@ -0,0 +1,115 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.to;
+
+import org.apache.syncope.AbstractBaseBean;
+import org.apache.syncope.types.IntMappingType;
+
+public class SchemaMappingTO extends AbstractBaseBean {
+
+    private Long id;
+
+    /**
+     * Attribute schema to be mapped.
+     * Consider that we can associate tha same attribute schema more
+     * than once, with different aliases, to different resource attributes.
+     */
+    private String intAttrName;
+
+    /**
+     * Schema type to be mapped.
+     */
+    private IntMappingType intMappingType;
+
+    /**
+     * External resource's field to be mapped.
+     */
+    private String extAttrName;
+
+    /**
+     * Specify if the mapped target resource's field is the key.
+     */
+    private boolean accountid;
+
+    /**
+     * Specify if the mapped target resource's field is the password.
+     */
+    private boolean password;
+
+    /**
+     * Specify if the mapped target resource's field is nullable.
+     */
+    private String mandatoryCondition = "false";
+
+    public boolean isAccountid() {
+        return accountid;
+    }
+
+    public void setAccountid(boolean accountid) {
+        this.accountid = accountid;
+    }
+
+    public String getExtAttrName() {
+        return extAttrName;
+    }
+
+    public void setExtAttrName(String extAttrName) {
+        this.extAttrName = extAttrName;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getMandatoryCondition() {
+        return mandatoryCondition;
+    }
+
+    public void setMandatoryCondition(String mandatoryCondition) {
+        this.mandatoryCondition = mandatoryCondition;
+    }
+
+    public boolean isPassword() {
+        return password;
+    }
+
+    public void setPassword(boolean password) {
+        this.password = password;
+    }
+
+    public String getIntAttrName() {
+        return intAttrName;
+    }
+
+    public void setIntAttrName(String intAttrName) {
+        this.intAttrName = intAttrName;
+    }
+
+    public IntMappingType getIntMappingType() {
+        return intMappingType;
+    }
+
+    public void setIntMappingType(IntMappingType intMappingType) {
+        this.intMappingType = intMappingType;
+    }
+}

Added: incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/SchemaTO.java
URL: http://svn.apache.org/viewvc/incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/SchemaTO.java?rev=1405820&view=auto
==============================================================================
--- incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/SchemaTO.java (added)
+++ incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/SchemaTO.java Mon Nov  5 15:00:01 2012
@@ -0,0 +1,134 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.to;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.syncope.AbstractBaseBean;
+import org.apache.syncope.types.SchemaType;
+
+public class SchemaTO extends AbstractBaseBean {
+
+    private static final long serialVersionUID = -8133983392476990308L;
+
+    private String name;
+
+    private SchemaType type;
+
+    private String mandatoryCondition;
+
+    private String enumerationValues;
+
+    private String enumerationKeys;
+
+    private boolean multivalue;
+
+    private boolean uniqueConstraint;
+
+    private boolean readonly;
+
+    private String conversionPattern;
+
+    private String validatorClass;
+
+    public SchemaTO() {
+        type = SchemaType.String;
+    }
+
+    public String getConversionPattern() {
+        return conversionPattern;
+    }
+
+    public void setConversionPattern(String conversionPattern) {
+        this.conversionPattern = conversionPattern;
+    }
+
+    public String getMandatoryCondition() {
+        return StringUtils.isNotBlank(mandatoryCondition)
+                ? mandatoryCondition
+                : "false";
+    }
+
+    public void setMandatoryCondition(String mandatoryCondition) {
+        this.mandatoryCondition = mandatoryCondition;
+    }
+
+    public String getEnumerationValues() {
+        return enumerationValues;
+    }
+
+    public void setEnumerationValues(String enumerationValues) {
+        this.enumerationValues = enumerationValues;
+    }
+
+    public String getEnumerationKeys() {
+        return enumerationKeys;
+    }
+
+    public void setEnumerationKeys(String enumerationKeys) {
+        this.enumerationKeys = enumerationKeys;
+    }
+
+    public boolean isMultivalue() {
+        return multivalue;
+    }
+
+    public void setMultivalue(boolean multivalue) {
+        this.multivalue = multivalue;
+    }
+
+    public boolean isUniqueConstraint() {
+        return uniqueConstraint;
+    }
+
+    public void setUniqueConstraint(boolean uniqueConstraint) {
+        this.uniqueConstraint = uniqueConstraint;
+    }
+
+    public boolean isReadonly() {
+        return readonly;
+    }
+
+    public void setReadonly(boolean readonly) {
+        this.readonly = readonly;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public SchemaType getType() {
+        return type;
+    }
+
+    public void setType(SchemaType type) {
+        this.type = type;
+    }
+
+    public String getValidatorClass() {
+        return validatorClass;
+    }
+
+    public void setValidatorClass(String validatorClass) {
+        this.validatorClass = validatorClass;
+    }
+}

Added: incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/SyncPolicyTO.java
URL: http://svn.apache.org/viewvc/incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/SyncPolicyTO.java?rev=1405820&view=auto
==============================================================================
--- incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/SyncPolicyTO.java (added)
+++ incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/SyncPolicyTO.java Mon Nov  5 15:00:01 2012
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.to;
+
+import org.apache.syncope.types.PolicyType;
+import org.apache.syncope.types.SyncPolicySpec;
+
+public class SyncPolicyTO extends PolicyTO {
+
+    private static final long serialVersionUID = 993024634238024242L;
+
+    private SyncPolicySpec specification;
+
+    public SyncPolicyTO() {
+        this(false);
+    }
+
+    public SyncPolicyTO(boolean global) {
+        super();
+
+        this.type = global
+                ? PolicyType.GLOBAL_SYNC
+                : PolicyType.SYNC;
+    }
+
+    public void setSpecification(final SyncPolicySpec specification) {
+        this.specification = specification;
+    }
+
+    public SyncPolicySpec getSpecification() {
+        return specification;
+    }
+}

Added: incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/SyncTaskTO.java
URL: http://svn.apache.org/viewvc/incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/SyncTaskTO.java?rev=1405820&view=auto
==============================================================================
--- incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/SyncTaskTO.java (added)
+++ incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/SyncTaskTO.java Mon Nov  5 15:00:01 2012
@@ -0,0 +1,104 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.to;
+
+public class SyncTaskTO extends SchedTaskTO {
+
+    private static final long serialVersionUID = -2143537546915809016L;
+
+    private String resource;
+
+    private UserTO userTemplate;
+
+    private boolean performCreate;
+
+    private boolean performUpdate;
+
+    private boolean performDelete;
+
+    private boolean syncStatus;
+
+    private boolean fullReconciliation;
+
+    private String actionsClassName;
+
+    public UserTO getUserTemplate() {
+        return userTemplate;
+    }
+
+    public void setUserTemplate(UserTO userTemplate) {
+        this.userTemplate = userTemplate;
+    }
+
+    public String getResource() {
+        return resource;
+    }
+
+    public void setResource(String resource) {
+        this.resource = resource;
+    }
+
+    public boolean isPerformCreate() {
+        return performCreate;
+    }
+
+    public void setPerformCreate(boolean performCreate) {
+        this.performCreate = performCreate;
+    }
+
+    public boolean isPerformUpdate() {
+        return performUpdate;
+    }
+
+    public void setPerformUpdate(boolean performUpdate) {
+        this.performUpdate = performUpdate;
+    }
+
+    public boolean isPerformDelete() {
+        return performDelete;
+    }
+
+    public void setPerformDelete(boolean performDelete) {
+        this.performDelete = performDelete;
+    }
+
+    public boolean isSyncStatus() {
+        return syncStatus;
+    }
+
+    public void setSyncStatus(boolean syncStatus) {
+        this.syncStatus = syncStatus;
+    }
+
+    public boolean isFullReconciliation() {
+        return fullReconciliation;
+    }
+
+    public void setFullReconciliation(boolean fullReconciliation) {
+        this.fullReconciliation = fullReconciliation;
+    }
+
+    public String getActionsClassName() {
+        return actionsClassName;
+    }
+
+    public void setActionsClassName(String actionsClassName) {
+        this.actionsClassName = actionsClassName;
+    }
+}

Added: incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/TaskExecTO.java
URL: http://svn.apache.org/viewvc/incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/TaskExecTO.java?rev=1405820&view=auto
==============================================================================
--- incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/TaskExecTO.java (added)
+++ incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/TaskExecTO.java Mon Nov  5 15:00:01 2012
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.to;
+
+public class TaskExecTO extends AbstractExecTO {
+
+    private static final long serialVersionUID = -5401795154606268973L;
+
+    private long task;
+
+    public long getTask() {
+        return task;
+    }
+
+    public void setTask(long task) {
+        this.task = task;
+    }
+}

Added: incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/TaskTO.java
URL: http://svn.apache.org/viewvc/incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/TaskTO.java?rev=1405820&view=auto
==============================================================================
--- incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/TaskTO.java (added)
+++ incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/TaskTO.java Mon Nov  5 15:00:01 2012
@@ -0,0 +1,102 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.to;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import org.apache.syncope.AbstractBaseBean;
+
+public class TaskTO extends AbstractBaseBean {
+
+    private static final long serialVersionUID = 386450127003321197L;
+
+    private long id;
+
+    private String latestExecStatus;
+
+    private List<TaskExecTO> executions;
+
+    private Date startDate;
+
+    private Date endDate;
+
+    public TaskTO() {
+        super();
+
+        executions = new ArrayList<TaskExecTO>();
+    }
+
+    public long getId() {
+        return id;
+    }
+
+    public void setId(long id) {
+        this.id = id;
+    }
+
+    public String getLatestExecStatus() {
+        return latestExecStatus;
+    }
+
+    public void setLatestExecStatus(String latestExecStatus) {
+        this.latestExecStatus = latestExecStatus;
+    }
+
+    public boolean addExecution(TaskExecTO execution) {
+        return executions.add(execution);
+    }
+
+    public boolean removeExecution(TaskExecTO execution) {
+        return executions.remove(execution);
+    }
+
+    public List<TaskExecTO> getExecutions() {
+        return executions;
+    }
+
+    public void setExecutions(List<TaskExecTO> executions) {
+        this.executions = executions;
+    }
+
+    public Date getStartDate() {
+        return startDate == null
+                ? null
+                : new Date(startDate.getTime());
+    }
+
+    public void setStartDate(Date startDate) {
+        if (startDate != null) {
+            this.startDate = new Date(startDate.getTime());
+        }
+    }
+
+    public Date getEndDate() {
+        return endDate == null
+                ? null
+                : new Date(endDate.getTime());
+    }
+
+    public void setEndDate(Date endDate) {
+        if (endDate != null) {
+            this.endDate = new Date(endDate.getTime());
+        }
+    }
+}

Added: incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/UserRequestTO.java
URL: http://svn.apache.org/viewvc/incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/UserRequestTO.java?rev=1405820&view=auto
==============================================================================
--- incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/UserRequestTO.java (added)
+++ incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/UserRequestTO.java Mon Nov  5 15:00:01 2012
@@ -0,0 +1,84 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.to;
+
+import org.apache.syncope.AbstractBaseBean;
+import org.apache.syncope.mod.UserMod;
+import org.apache.syncope.types.UserRequestType;
+
+public class UserRequestTO extends AbstractBaseBean {
+
+    private static final long serialVersionUID = 1228351243795629329L;
+
+    private long id;
+
+    private UserTO userTO;
+
+    private UserMod userMod;
+
+    private Long userId;
+
+    private UserRequestType type;
+
+    public long getId() {
+        return id;
+    }
+
+    public void setId(long id) {
+        this.id = id;
+    }
+
+    public UserRequestType getType() {
+        return type;
+    }
+
+    public void setType(UserRequestType type) {
+        this.type = type;
+    }
+
+    public UserTO getUserTO() {
+        return type != UserRequestType.CREATE
+                ? null
+                : userTO;
+    }
+
+    public void setUserTO(UserTO userTO) {
+        this.userTO = userTO;
+    }
+
+    public UserMod getUserMod() {
+        return type != UserRequestType.UPDATE
+                ? null
+                : userMod;
+    }
+
+    public void setUserMod(UserMod userMod) {
+        this.userMod = userMod;
+    }
+
+    public Long getUserId() {
+        return type != UserRequestType.DELETE
+                ? null
+                : userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+}

Added: incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/UserTO.java
URL: http://svn.apache.org/viewvc/incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/UserTO.java?rev=1405820&view=auto
==============================================================================
--- incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/UserTO.java (added)
+++ incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/UserTO.java Mon Nov  5 15:00:01 2012
@@ -0,0 +1,213 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.to;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import org.apache.commons.lang.builder.ReflectionToStringBuilder;
+import org.apache.commons.lang.builder.ToStringStyle;
+import org.codehaus.jackson.annotate.JsonIgnore;
+
+public class UserTO extends AbstractAttributableTO {
+
+    private static final long serialVersionUID = 7791304495192615740L;
+
+    private String password;
+
+    private List<MembershipTO> memberships;
+
+    private List<PropagationTO> propagationTOs;
+
+    private String status;
+
+    private String token;
+
+    private Date tokenExpireTime;
+
+    private String username;
+
+    private Date lastLoginDate;
+
+    private Date creationDate;
+
+    private Date changePwdDate;
+
+    private Integer failedLogins;
+
+    public UserTO() {
+        super();
+
+        memberships = new ArrayList<MembershipTO>();
+        propagationTOs = new ArrayList<PropagationTO>();
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+
+    public boolean addMembership(MembershipTO membershipTO) {
+        return memberships.add(membershipTO);
+    }
+
+    public boolean removeMembership(MembershipTO membershipTO) {
+        return memberships.remove(membershipTO);
+    }
+
+    public List<MembershipTO> getMemberships() {
+        return memberships;
+    }
+
+    public void setMemberships(List<MembershipTO> memberships) {
+        this.memberships = memberships;
+    }
+
+    @JsonIgnore
+    public Map<Long, MembershipTO> getMembershipMap() {
+        Map<Long, MembershipTO> result;
+
+        if (getMemberships() == null) {
+            result = Collections.emptyMap();
+        } else {
+            result = new HashMap<Long, MembershipTO>(getMemberships().size());
+            for (MembershipTO membership : getMemberships()) {
+                result.put(membership.getRoleId(), membership);
+            }
+            result = Collections.unmodifiableMap(result);
+        }
+
+        return result;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getToken() {
+        return token;
+    }
+
+    public void setToken(String token) {
+        this.token = token;
+    }
+
+    public Date getTokenExpireTime() {
+        return tokenExpireTime == null
+                ? null
+                : new Date(tokenExpireTime.getTime());
+    }
+
+    public void setTokenExpireTime(Date tokenExpireTime) {
+        if (tokenExpireTime != null) {
+            this.tokenExpireTime = new Date(tokenExpireTime.getTime());
+        }
+    }
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public Date getChangePwdDate() {
+        return changePwdDate;
+    }
+
+    public Date getCreationDate() {
+        return creationDate;
+    }
+
+    public Integer getFailedLogins() {
+        return failedLogins;
+    }
+
+    public Date getLastLoginDate() {
+        return lastLoginDate;
+    }
+
+    public void setChangePwdDate(Date changePwdDate) {
+        this.changePwdDate = changePwdDate;
+    }
+
+    public void setCreationDate(Date creationDate) {
+        this.creationDate = creationDate;
+    }
+
+    public void setFailedLogins(Integer failedLogins) {
+        this.failedLogins = failedLogins;
+    }
+
+    public void setLastLoginDate(Date lastLoginDate) {
+        this.lastLoginDate = lastLoginDate;
+    }
+
+    public void addPropagationTO(final PropagationTO status) {
+        propagationTOs.add(status);
+    }
+
+    public void removePropagationTO(final String resource) {
+        if (resource != null && getPropagationTOs().isEmpty()) {
+
+            final List<PropagationTO> toBeRemoved = new ArrayList<PropagationTO>();
+
+            for (PropagationTO propagationTO : getPropagationTOs()) {
+                if (resource.equals(propagationTO.getResourceName())) {
+                    toBeRemoved.add(propagationTO);
+                }
+            }
+
+            propagationTOs.removeAll(toBeRemoved);
+        }
+    }
+
+    public List<PropagationTO> getPropagationTOs() {
+        return propagationTOs;
+    }
+
+    public void setPropagationTOs(final List<PropagationTO> propagationTOs) {
+
+        this.propagationTOs.clear();
+        this.propagationTOs.addAll(propagationTOs);
+    }
+
+    @Override
+    public String toString() {
+        return new ReflectionToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) {
+
+            @Override
+            protected boolean accept(Field f) {
+                return super.accept(f) && !f.getName().equals("password");
+            }
+        }.toString();
+    }
+}

Added: incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/VirtualSchemaTO.java
URL: http://svn.apache.org/viewvc/incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/VirtualSchemaTO.java?rev=1405820&view=auto
==============================================================================
--- incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/VirtualSchemaTO.java (added)
+++ incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/VirtualSchemaTO.java Mon Nov  5 15:00:01 2012
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.to;
+
+import org.apache.syncope.AbstractBaseBean;
+
+public class VirtualSchemaTO extends AbstractBaseBean {
+
+    private String name;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+}

Added: incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/WorkflowDefinitionTO.java
URL: http://svn.apache.org/viewvc/incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/WorkflowDefinitionTO.java?rev=1405820&view=auto
==============================================================================
--- incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/WorkflowDefinitionTO.java (added)
+++ incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/WorkflowDefinitionTO.java Mon Nov  5 15:00:01 2012
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.to;
+
+import org.apache.syncope.AbstractBaseBean;
+
+public class WorkflowDefinitionTO extends AbstractBaseBean {
+
+    private static final long serialVersionUID = 8803733012885686826L;
+
+    private String id;
+
+    private String xmlDefinition;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getXmlDefinition() {
+        return xmlDefinition;
+    }
+
+    public void setXmlDefinition(String xmlDefinition) {
+        this.xmlDefinition = xmlDefinition;
+    }
+}

Added: incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/WorkflowFormPropertyTO.java
URL: http://svn.apache.org/viewvc/incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/WorkflowFormPropertyTO.java?rev=1405820&view=auto
==============================================================================
--- incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/WorkflowFormPropertyTO.java (added)
+++ incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/WorkflowFormPropertyTO.java Mon Nov  5 15:00:01 2012
@@ -0,0 +1,134 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.to;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.syncope.AbstractBaseBean;
+import org.apache.syncope.types.WorkflowFormPropertyType;
+
+public class WorkflowFormPropertyTO extends AbstractBaseBean {
+
+    private static final long serialVersionUID = 9139969592634304261L;
+
+    private String id;
+
+    private String name;
+
+    private WorkflowFormPropertyType type;
+
+    private String value;
+
+    private boolean readable;
+
+    private boolean writable;
+
+    private boolean required;
+
+    private String datePattern;
+
+    private Map<String, String> enumValues;
+
+    public WorkflowFormPropertyTO() {
+        enumValues = new HashMap<String, String>();
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public boolean isReadable() {
+        return readable;
+    }
+
+    public void setReadable(boolean readable) {
+        this.readable = readable;
+    }
+
+    public boolean isRequired() {
+        return required;
+    }
+
+    public void setRequired(boolean required) {
+        this.required = required;
+    }
+
+    public WorkflowFormPropertyType getType() {
+        return type;
+    }
+
+    public void setType(WorkflowFormPropertyType type) {
+        this.type = type;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    public boolean isWritable() {
+        return writable;
+    }
+
+    public void setWritable(boolean writable) {
+        this.writable = writable;
+    }
+
+    public String getDatePattern() {
+        return datePattern;
+    }
+
+    public void setDatePattern(String datePattern) {
+        this.datePattern = datePattern;
+    }
+
+    public Map<String, String> getEnumValues() {
+        return enumValues;
+    }
+
+    public void putEnumValue(String key, String value) {
+        this.enumValues.put(key, value);
+    }
+
+    public void removeEnumValue(String key) {
+        this.enumValues.remove(key);
+    }
+
+    public void setEnumValues(Map<String, String> enumValues) {
+        if (enumValues != null) {
+            this.enumValues = enumValues;
+        }
+    }
+}

Added: incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/WorkflowFormTO.java
URL: http://svn.apache.org/viewvc/incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/WorkflowFormTO.java?rev=1405820&view=auto
==============================================================================
--- incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/WorkflowFormTO.java (added)
+++ incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/to/WorkflowFormTO.java Mon Nov  5 15:00:01 2012
@@ -0,0 +1,152 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.to;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.syncope.AbstractBaseBean;
+import org.codehaus.jackson.annotate.JsonIgnore;
+
+public class WorkflowFormTO extends AbstractBaseBean {
+
+    private static final long serialVersionUID = -7044543391316529128L;
+
+    private String taskId;
+
+    private String key;
+
+    private String description;
+
+    private Date createTime;
+
+    private Date dueDate;
+
+    private String owner;
+
+    private final List<WorkflowFormPropertyTO> properties;
+
+    public WorkflowFormTO() {
+        properties = new ArrayList<WorkflowFormPropertyTO>();
+    }
+
+    public String getTaskId() {
+        return taskId;
+    }
+
+    public void setTaskId(String taskId) {
+        this.taskId = taskId;
+    }
+
+    public String getKey() {
+        return key;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public Date getDueDate() {
+        return dueDate;
+    }
+
+    public void setDueDate(Date dueDate) {
+        this.dueDate = dueDate;
+    }
+
+    public String getOwner() {
+        return owner;
+    }
+
+    public void setOwner(String owner) {
+        this.owner = owner;
+    }
+
+    public List<WorkflowFormPropertyTO> getProperties() {
+        return properties;
+    }
+
+    public boolean addProperty(final WorkflowFormPropertyTO property) {
+        return properties.contains(property)
+                ? true
+                : properties.add(property);
+    }
+
+    public boolean removeProperty(final WorkflowFormPropertyTO property) {
+        return properties.remove(property);
+    }
+
+    public void setProperties(final Collection<WorkflowFormPropertyTO> properties) {
+
+        this.properties.clear();
+        if (properties != null) {
+            this.properties.addAll(properties);
+        }
+    }
+
+    @JsonIgnore
+    public Map<String, WorkflowFormPropertyTO> getPropertyMap() {
+        Map<String, WorkflowFormPropertyTO> result;
+
+        if (getProperties() == null) {
+            result = Collections.emptyMap();
+        } else {
+            result = new HashMap<String, WorkflowFormPropertyTO>();
+            for (WorkflowFormPropertyTO prop : getProperties()) {
+                result.put(prop.getId(), prop);
+            }
+            result = Collections.unmodifiableMap(result);
+        }
+
+        return result;
+    }
+
+    @JsonIgnore
+    public Map<String, String> getPropertiesForSubmit() {
+        Map<String, String> props = new HashMap<String, String>();
+        for (WorkflowFormPropertyTO prop : getProperties()) {
+            if (prop.isWritable()) {
+                props.put(prop.getId(), prop.getValue());
+            }
+        }
+
+        return props;
+    }
+}

Added: incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/AbstractPolicySpec.java
URL: http://svn.apache.org/viewvc/incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/AbstractPolicySpec.java?rev=1405820&view=auto
==============================================================================
--- incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/AbstractPolicySpec.java (added)
+++ incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/AbstractPolicySpec.java Mon Nov  5 15:00:01 2012
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.types;
+
+import org.apache.syncope.AbstractBaseBean;
+
+public class AbstractPolicySpec extends AbstractBaseBean {
+
+    private static final long serialVersionUID = 2740439904103716653L;
+
+    public AbstractPolicySpec() {
+    }
+}

Added: incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/AccountPolicySpec.java
URL: http://svn.apache.org/viewvc/incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/AccountPolicySpec.java?rev=1405820&view=auto
==============================================================================
--- incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/AccountPolicySpec.java (added)
+++ incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/AccountPolicySpec.java Mon Nov  5 15:00:01 2012
@@ -0,0 +1,175 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.types;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.apache.syncope.annotation.SchemaList;
+
+public class AccountPolicySpec extends AbstractPolicySpec {
+
+    private static final long serialVersionUID = 3259256974414758406L;
+
+    /**
+     * Minimum length.
+     */
+    private int maxLength;
+
+    /**
+     * Maximum length.
+     */
+    private int minLength;
+
+    /**
+     * Substrings not permitted.
+     */
+    private List<String> wordsNotPermitted;
+
+    /**
+     * User attribute values not permitted.
+     */
+    @SchemaList
+    private List<String> schemasNotPermitted;
+
+    /**
+     * Substrings not permitted as prefix.
+     */
+    private List<String> prefixesNotPermitted;
+
+    /**
+     * Substrings not permitted as suffix.
+     */
+    private List<String> suffixesNotPermitted;
+
+    /**
+     * Specify if one or more lowercase characters are permitted.
+     */
+    private boolean allUpperCase;
+
+    /**
+     * Specify if one or more uppercase characters are permitted.
+     */
+    private boolean allLowerCase;
+
+    /**
+     * Specify if it must be propagate suspension in case of maximum subsequent
+     * failed logins reached.
+     */
+    private boolean propagateSuspension;
+
+    /**
+     * Number of permitted login retries.
+     * 0 disabled; >0 enabled.
+     * If the number of subsequent failed logins will be greater then this value
+     * the account will be suspended (lock-out).
+     */
+    private int permittedLoginRetries;
+
+    public boolean isAllLowerCase() {
+        return allLowerCase;
+    }
+
+    public void setAllLowerCase(boolean allLowerCase) {
+        this.allLowerCase = allLowerCase;
+    }
+
+    public boolean isAllUpperCase() {
+        return allUpperCase;
+    }
+
+    public void setAllUpperCase(boolean allUpperCase) {
+        this.allUpperCase = allUpperCase;
+    }
+
+    public int getMaxLength() {
+        return maxLength;
+    }
+
+    public void setMaxLength(int maxLength) {
+        this.maxLength = maxLength;
+    }
+
+    public int getMinLength() {
+        return minLength;
+    }
+
+    public void setMinLength(int minLength) {
+        this.minLength = minLength;
+    }
+
+    public List<String> getPrefixesNotPermitted() {
+        if (prefixesNotPermitted == null) {
+            prefixesNotPermitted = new ArrayList<String>();
+        }
+        return prefixesNotPermitted;
+    }
+
+    public void setPrefixesNotPermitted(List<String> prefixesNotPermitted) {
+        this.prefixesNotPermitted = prefixesNotPermitted;
+    }
+
+    public List<String> getSchemasNotPermitted() {
+        if (schemasNotPermitted == null) {
+            schemasNotPermitted = new ArrayList<String>();
+        }
+        return schemasNotPermitted;
+    }
+
+    public void setSchemasNotPermitted(List<String> schemasNotPermitted) {
+        this.schemasNotPermitted = schemasNotPermitted;
+    }
+
+    public List<String> getSuffixesNotPermitted() {
+        if (suffixesNotPermitted == null) {
+            suffixesNotPermitted = new ArrayList<String>();
+        }
+        return suffixesNotPermitted;
+    }
+
+    public void setSuffixesNotPermitted(List<String> suffixesNotPermitted) {
+        this.suffixesNotPermitted = suffixesNotPermitted;
+    }
+
+    public List<String> getWordsNotPermitted() {
+        if (wordsNotPermitted == null) {
+            wordsNotPermitted = new ArrayList<String>();
+        }
+        return wordsNotPermitted;
+    }
+
+    public void setWordsNotPermitted(List<String> wordsNotPermitted) {
+        this.wordsNotPermitted = wordsNotPermitted;
+    }
+
+    public boolean isPropagateSuspension() {
+        return propagateSuspension;
+    }
+
+    public void setPropagateSuspension(boolean propagateSuspension) {
+        this.propagateSuspension = propagateSuspension;
+    }
+
+    public int getPermittedLoginRetries() {
+        return permittedLoginRetries;
+    }
+
+    public void setPermittedLoginRetries(int permittedLoginRetries) {
+        this.permittedLoginRetries = permittedLoginRetries;
+    }
+}

Added: incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/AttributableType.java
URL: http://svn.apache.org/viewvc/incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/AttributableType.java?rev=1405820&view=auto
==============================================================================
--- incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/AttributableType.java (added)
+++ incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/AttributableType.java Mon Nov  5 15:00:01 2012
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.types;
+
+public enum AttributableType {
+
+    USER,
+    ROLE,
+    MEMBERSHIP;
+
+}

Added: incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/AuditElements.java
URL: http://svn.apache.org/viewvc/incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/AuditElements.java?rev=1405820&view=auto
==============================================================================
--- incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/AuditElements.java (added)
+++ incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/AuditElements.java Mon Nov  5 15:00:01 2012
@@ -0,0 +1,244 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.types;
+
+import java.util.EnumSet;
+
+public final class AuditElements {
+
+    private AuditElements() {
+    }
+
+    public enum Category {
+
+        authentication(AuthenticationSubCategory.class),
+        configuration(ConfigurationSubCategory.class),
+        connector(ConnectorSubCategory.class),
+        logger(LoggerSubCategory.class),
+        notification(NotificationSubCategory.class),
+        policy(PolicySubCategory.class),
+        report(ReportSubCategory.class),
+        resource(ResourceSubCategory.class),
+        role(RoleSubCategory.class),
+        schema(SchemaSubCategory.class),
+        task(TaskSubCategory.class),
+        user(UserSubCategory.class),
+        userRequest(UserRequestSubCategory.class),
+        workflow(WorkflowSubCategory.class);
+
+        private Class<? extends Enum<?>> subCategory;
+
+        Category(final Class<? extends Enum<?>> subCategory) {
+            this.subCategory = subCategory;
+        }
+
+        public Class<? extends Enum> getSubCategory() {
+            return subCategory;
+        }
+
+        public EnumSet<? extends Enum<?>> getSubCategoryElements() {
+            return EnumSet.allOf(getSubCategory());
+        }
+    }
+
+    public enum Result {
+
+        success,
+        failure
+
+    }
+
+    public enum AuthenticationSubCategory {
+
+        login,
+        getEntitlements
+
+    }
+
+    public enum ConfigurationSubCategory {
+
+        list,
+        create,
+        read,
+        update,
+        delete,
+        getMailTemplates,
+        getValidators,
+        dbExport
+
+    }
+
+    public enum ConnectorSubCategory {
+
+        list,
+        create,
+        read,
+        update,
+        delete,
+        getBundles,
+        getSchemaNames,
+        getConfigurationProperties,
+        check,
+        readConnectorBean
+
+    }
+
+    public enum LoggerSubCategory {
+
+        list,
+        setLevel,
+        delete
+
+    }
+
+    public enum NotificationSubCategory {
+
+        list,
+        create,
+        read,
+        update,
+        delete,
+        sent
+
+    }
+
+    public enum PolicySubCategory {
+
+        list,
+        create,
+        read,
+        update,
+        delete
+
+    }
+
+    public enum ReportSubCategory {
+
+        list,
+        listExecutions,
+        create,
+        read,
+        readExecution,
+        update,
+        delete,
+        deleteExecution,
+        getReportletConfClasses,
+        execute,
+        exportExecutionResult
+
+    }
+
+    public enum ResourceSubCategory {
+
+        list,
+        create,
+        read,
+        update,
+        delete,
+        getObject,
+        getRoleResourcesMapping,
+        getPropagationActionsClasses
+
+    }
+
+    public enum RoleSubCategory {
+
+        list,
+        create,
+        read,
+        selfRead,
+        update,
+        delete,
+        parent,
+        children
+
+    }
+
+    public enum SchemaSubCategory {
+
+        list,
+        create,
+        read,
+        update,
+        delete,
+        listDerived,
+        createDerived,
+        readDerived,
+        updateDerived,
+        deleteDerived,
+        listVirtual,
+        createVirtual,
+        readVirtual,
+        updateVirtual,
+        deleteVirtual
+
+    }
+
+    public enum TaskSubCategory {
+
+        list,
+        create,
+        read,
+        update,
+        delete,
+        listExecutions,
+        getJobClasses,
+        getSyncActionsClasses,
+        readExecution,
+        execute,
+        report,
+        deleteExecution
+
+    }
+
+    public enum UserSubCategory {
+
+        list,
+        create,
+        read,
+        update,
+        delete,
+        verifyPassword,
+        search,
+        setStatus,
+        executeWorkflow,
+        getForms,
+        getFormForUser,
+        claimForm,
+        submitForm
+
+    }
+
+    public enum UserRequestSubCategory {
+
+        list,
+        create,
+        read,
+        update,
+        delete,
+        isCreateAllowed,}
+
+    public enum WorkflowSubCategory {
+
+        getDefinition,
+        updateDefinition,
+        getDefinedTasks
+
+    }
+}

Added: incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/AuditLoggerName.java
URL: http://svn.apache.org/viewvc/incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/AuditLoggerName.java?rev=1405820&view=auto
==============================================================================
--- incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/AuditLoggerName.java (added)
+++ incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/AuditLoggerName.java Mon Nov  5 15:00:01 2012
@@ -0,0 +1,99 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.types;
+
+import java.text.ParseException;
+
+import org.apache.syncope.AbstractBaseBean;
+import org.apache.syncope.types.AuditElements.Category;
+import org.apache.syncope.types.AuditElements.Result;
+import org.codehaus.jackson.annotate.JsonCreator;
+import org.codehaus.jackson.annotate.JsonProperty;
+import org.codehaus.jackson.annotate.JsonTypeInfo;
+import org.springframework.util.StringUtils;
+
+public class AuditLoggerName extends AbstractBaseBean {
+
+    private Category category;
+
+    @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY, property = "@class")
+    private Enum<?> subcategory;
+
+    private Result result;
+
+    @JsonCreator
+    public AuditLoggerName(@JsonProperty("category") final Category category,
+            @JsonProperty("subcategory") final Enum<?> subcategory, @JsonProperty("result") final Result result)
+            throws IllegalArgumentException {
+
+        if (category == null || subcategory == null || result == null) {
+            throw new IllegalArgumentException("Null values not permitted");
+        }
+
+        if (!category.getSubCategoryElements().contains(subcategory)) {
+            throw new IllegalArgumentException(category.name() + " does not contain " + subcategory.name());
+        }
+
+        this.category = category;
+        this.subcategory = subcategory;
+        this.result = result;
+    }
+
+    public Category getCategory() {
+        return category;
+    }
+
+    public Result getResult() {
+        return result;
+    }
+
+    public Enum<?> getSubcategory() {
+        return subcategory;
+    }
+
+    public String toLoggerName() {
+        return new StringBuilder().append(SyncopeLoggerType.AUDIT.getPrefix()).append('.').
+                append(category.name()).append('.').
+                append(subcategory.name()).append('.').
+                append(result.name()).toString();
+    }
+
+    public static AuditLoggerName fromLoggerName(final String loggerName)
+            throws IllegalArgumentException, ParseException {
+
+        if (!StringUtils.hasText(loggerName)) {
+            throw new IllegalArgumentException("Null value not permitted");
+        }
+
+        if (!loggerName.startsWith(SyncopeLoggerType.AUDIT.getPrefix())) {
+            throw new ParseException("Audit logger name must start with " + SyncopeLoggerType.AUDIT.getPrefix(), 0);
+        }
+
+        String[] splitted = loggerName.split("\\.");
+        if (splitted == null || splitted.length < 5) {
+            throw new ParseException("Unparsable logger name", 0);
+        }
+
+        Category category = Category.valueOf(splitted[2]);
+        Enum<?> subcategory = Enum.valueOf(category.getSubCategory(), splitted[3]);
+        Result result = Result.valueOf(splitted[4]);
+
+        return new AuditLoggerName(category, subcategory, result);
+    }
+}

Added: incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/CipherAlgorithm.java
URL: http://svn.apache.org/viewvc/incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/CipherAlgorithm.java?rev=1405820&view=auto
==============================================================================
--- incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/CipherAlgorithm.java (added)
+++ incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/CipherAlgorithm.java Mon Nov  5 15:00:01 2012
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.types;
+
+public enum CipherAlgorithm {
+
+    SHA1("SHA-1"),
+    SHA256("SHA-256"),
+    AES("AES"),
+    SMD5("S-MD5"),
+    SSHA1("S-SHA-1"),
+    SSHA256("S-SHA-256"),
+    BCRYPT("BCRYPT");
+
+    final private String algorithm;
+
+    CipherAlgorithm(String algorithm) {
+        this.algorithm = algorithm;
+    }
+
+    public final String getAlgorithm() {
+        return algorithm;
+    }
+}

Added: incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/ConflictResolutionAction.java
URL: http://svn.apache.org/viewvc/incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/ConflictResolutionAction.java?rev=1405820&view=auto
==============================================================================
--- incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/ConflictResolutionAction.java (added)
+++ incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/ConflictResolutionAction.java Mon Nov  5 15:00:01 2012
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.types;
+
+public enum ConflictResolutionAction {
+
+    // sync first matcgh
+    FIRSTMATCH,
+    // sync last match
+    LASTMATCH,
+    // ignore sync
+    IGNORE,
+    // sync all
+    ALL
+}

Added: incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/ConnConfPropSchema.java
URL: http://svn.apache.org/viewvc/incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/ConnConfPropSchema.java?rev=1405820&view=auto
==============================================================================
--- incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/ConnConfPropSchema.java (added)
+++ incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/ConnConfPropSchema.java Mon Nov  5 15:00:01 2012
@@ -0,0 +1,107 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.types;
+
+import org.apache.syncope.AbstractBaseBean;
+
+public class ConnConfPropSchema extends AbstractBaseBean implements Comparable<ConnConfPropSchema> {
+
+    private static final long serialVersionUID = -1976365781005801296L;
+
+    private String name;
+
+    private String displayName;
+
+    private String helpMessage;
+
+    private String type;
+
+    private boolean required;
+
+    private int order;
+
+    private boolean confidential;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public boolean isRequired() {
+        return required;
+    }
+
+    public void setRequired(boolean required) {
+        this.required = required;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getDisplayName() {
+        return displayName;
+    }
+
+    public void setDisplayName(String displayName) {
+        this.displayName = displayName;
+    }
+
+    public String getHelpMessage() {
+        return helpMessage;
+    }
+
+    public void setHelpMessage(String helpMessage) {
+        this.helpMessage = helpMessage;
+    }
+
+    public int getOrder() {
+        return order;
+    }
+
+    public void setOrder(int order) {
+        this.order = order;
+    }
+
+    public boolean isConfidential() {
+        return confidential;
+    }
+
+    public void setConfidential(boolean confidential) {
+        this.confidential = confidential;
+    }
+
+    @Override
+    public int compareTo(final ConnConfPropSchema connConfPropSchema) {
+        if (this.getOrder() > connConfPropSchema.getOrder()) {
+            return 1;
+        } else if (this.getOrder() < connConfPropSchema.getOrder()) {
+            return -1;
+        } else {
+            return 0;
+        }
+    }
+}

Added: incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/ConnConfProperty.java
URL: http://svn.apache.org/viewvc/incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/ConnConfProperty.java?rev=1405820&view=auto
==============================================================================
--- incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/ConnConfProperty.java (added)
+++ incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/ConnConfProperty.java Mon Nov  5 15:00:01 2012
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.types;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.syncope.AbstractBaseBean;
+
+public class ConnConfProperty extends AbstractBaseBean implements Comparable<ConnConfProperty> {
+
+    private static final long serialVersionUID = -8391413960221862238L;
+
+    private ConnConfPropSchema schema;
+
+    private List values;
+
+    private boolean overridable;
+
+    public ConnConfPropSchema getSchema() {
+        return schema;
+    }
+
+    public void setSchema(ConnConfPropSchema schema) {
+        this.schema = schema;
+    }
+
+    public List getValues() {
+        if (values == null) {
+            values = new ArrayList();
+        }
+        return values;
+    }
+
+    public void setValues(final List values) {
+        this.values = values;
+    }
+
+    public boolean isOverridable() {
+        return overridable;
+    }
+
+    public void setOverridable(boolean overridable) {
+        this.overridable = overridable;
+    }
+
+    @Override
+    public int compareTo(final ConnConfProperty connConfProperty) {
+        return this.getSchema().compareTo(connConfProperty.getSchema());
+    }
+}

Added: incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/ConnParameterType.java
URL: http://svn.apache.org/viewvc/incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/ConnParameterType.java?rev=1405820&view=auto
==============================================================================
--- incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/ConnParameterType.java (added)
+++ incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/ConnParameterType.java Mon Nov  5 15:00:01 2012
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.types;
+
+public enum ConnParameterType {
+
+    /**
+     * Connector parameter type:
+     */
+    OVERRIDABLE(true),
+    NOT_OVERRIDABLE(false);
+    private boolean overridable;
+
+    ConnParameterType(final boolean overridable) {
+        this.overridable = overridable;
+    }
+
+    public boolean getOverridable() {
+        return overridable;
+    }
+}

Added: incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/ConnectorCapability.java
URL: http://svn.apache.org/viewvc/incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/ConnectorCapability.java?rev=1405820&view=auto
==============================================================================
--- incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/ConnectorCapability.java (added)
+++ incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/ConnectorCapability.java Mon Nov  5 15:00:01 2012
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.types;
+
+/**
+ * Enum of all possible capabilities that a connector instance can expose.
+ */
+public enum ConnectorCapability {
+
+    ONE_PHASE_CREATE,
+    TWO_PHASES_CREATE,
+    ONE_PHASE_UPDATE,
+    TWO_PHASES_UPDATE,
+    ONE_PHASE_DELETE,
+    TWO_PHASES_DELETE,
+    SEARCH,
+    SYNC
+
+}

Added: incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/EntityViolationType.java
URL: http://svn.apache.org/viewvc/incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/EntityViolationType.java?rev=1405820&view=auto
==============================================================================
--- incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/EntityViolationType.java (added)
+++ incubator/syncope/branches/cxf/common/src/main/java/org/apache/syncope/types/EntityViolationType.java Mon Nov  5 15:00:01 2012
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.types;
+
+public enum EntityViolationType {
+
+    Standard(""),
+    InvalidAccountPolicy("org.apache.syncope.core.validation.accountpolicy"),
+    InvalidEntitlementName("org.apache.syncope.core.validation.entitlement.name"),
+    InvalidMSchema("org.apache.syncope.core.validation.attrvalue.mSchema"),
+    InvalidMDerSchema("org.apache.syncope.core.validation.attrvalue.mDerSchema"),
+    InvalidMVirSchema("org.apache.syncope.core.validation.attrvalue.mVirSchema"),
+    InvalidNotification("org.apache.syncope.core.validation.notification"),
+    InvalidPassword("org.apache.syncope.core.validation.syncopeuser.password"),
+    InvalidPasswordPolicy("org.apache.syncope.core.validation.passwordpolicy"),
+    InvalidPolicy("org.apache.syncope.core.validation.policy"),
+    InvalidPropagationTask("org.apache.syncope.core.validation.propagationtask"),
+    InvalidRSchema("org.apache.syncope.core.validation.attrvalue.rSchema"),
+    InvalidRDerSchema("org.apache.syncope.core.validation.attrvalue.rDerSchema"),
+    InvalidRVirSchema("org.apache.syncope.core.validation.attrvalue.rVirSchema"),
+    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"),
+    InvalidSchedTask("org.apache.syncope.core.validation.schedtask"),
+    InvalidSyncTask("org.apache.syncope.core.validation.synctask"),
+    InvalidSchemaMapping("org.apache.syncope.core.validation.mapping"),
+    InvalidSyncPolicy("org.apache.syncope.core.validation.syncpolicy"),
+    InvalidUSchema("org.apache.syncope.core.validation.attrvalue.uSchema"),
+    InvalidUDerSchema("org.apache.syncope.core.validation.attrvalue.derSchema"),
+    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;
+
+    private EntityViolationType(final String message) {
+        this.message = message;
+    }
+
+    public void setMessageTemplate(final String message) {
+        this.message = message;
+    }
+
+    @Override
+    public String toString() {
+        return this == Standard
+                ? message
+                : super.toString();
+    }
+}