[SYNCOPE-666] Initial commit, Travis CI builds disabled

Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/081d9a04
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/081d9a04
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/081d9a04

Branch: refs/heads/master
Commit: 081d9a04ae66b9200ab9538ad64c927e8f121e1a
Parents: 4cd6f5d
Author: Francesco Chicchiriccò <[email protected]>
Authored: Mon May 25 16:50:15 2015 +0200
Committer: Francesco Chicchiriccò <[email protected]>
Committed: Mon May 25 16:50:15 2015 +0200

----------------------------------------------------------------------
 .travis.yml                                     |   3 +-
 .../client/console/commons/AttrLayoutType.java  |  38 +-
 .../SortableAttributableProviderComparator.java |  20 +-
 .../commons/status/ConnObjectWrapper.java       |  12 +-
 .../console/commons/status/StatusBean.java      |  22 +-
 .../console/commons/status/StatusUtils.java     |  35 +-
 .../console/rest/AbstractAnyRestClient.java     |  47 +
 .../console/rest/AbstractSubjectRestClient.java |  48 -
 .../console/rest/ConfigurationRestClient.java   |   2 +-
 .../client/console/rest/GroupRestClient.java    |   8 +-
 .../client/console/rest/ResourceRestClient.java |  13 +-
 .../client/console/rest/SchemaRestClient.java   |  94 +-
 .../client/console/rest/UserRestClient.java     |   8 +-
 .../client/console/rest/WorkflowRestClient.java |   8 +-
 .../syncope/client/lib/SyncopeClient.java       |  20 +-
 .../lib/builders/AnyListQueryBuilder.java       |  61 ++
 .../lib/builders/AnySearchQueryBuilder.java     |  64 ++
 .../lib/builders/SubjectListQueryBuilder.java   |  61 --
 .../lib/builders/SubjectSearchQueryBuilder.java |  64 --
 .../syncope/common/lib/AnyOperations.java       | 375 ++++++++
 .../common/lib/AttributableOperations.java      | 509 -----------
 .../syncope/common/lib/CollectionUtils2.java    | 153 ----
 .../common/lib/mod/AbstractAttributableMod.java | 111 ---
 .../common/lib/mod/AbstractSubjectMod.java      |  66 --
 .../apache/syncope/common/lib/mod/AnyMod.java   | 135 +++
 .../syncope/common/lib/mod/AnyObjectMod.java    |  71 ++
 .../apache/syncope/common/lib/mod/GroupMod.java | 135 +--
 .../syncope/common/lib/mod/MembershipMod.java   |  46 -
 .../apache/syncope/common/lib/mod/UserMod.java  |  56 +-
 .../lib/report/AbstractAnyReportletConf.java    |  84 ++
 .../report/AbstractSubjectReportletConf.java    |  84 --
 .../common/lib/report/GroupReportletConf.java   |   2 +-
 .../common/lib/report/UserReportletConf.java    |   2 +-
 .../common/lib/search/SearchableFields.java     |  17 +-
 .../common/lib/to/AbstractAttributableTO.java   |  85 --
 .../common/lib/to/AbstractSubjectTO.java        |  63 --
 .../syncope/common/lib/to/AnyObjectTO.java      |  30 +
 .../org/apache/syncope/common/lib/to/AnyTO.java | 180 ++++
 .../apache/syncope/common/lib/to/ConfTO.java    |   2 +-
 .../apache/syncope/common/lib/to/GroupTO.java   |  72 +-
 .../apache/syncope/common/lib/to/MappingTO.java |  62 +-
 .../syncope/common/lib/to/MembershipTO.java     |  13 +-
 .../syncope/common/lib/to/NotificationTO.java   |  22 +-
 .../common/lib/to/PropagationTaskTO.java        |  43 +-
 .../syncope/common/lib/to/ProvisionTO.java      |  77 ++
 .../syncope/common/lib/to/PushTaskTO.java       |  21 +-
 .../syncope/common/lib/to/RelationshipTO.java   |  81 ++
 .../syncope/common/lib/to/ResourceTO.java       |  57 +-
 .../syncope/common/lib/to/SyncTaskTO.java       |  22 +-
 .../apache/syncope/common/lib/to/SyncopeTO.java |  30 +-
 .../apache/syncope/common/lib/to/UserTO.java    |  51 +-
 .../syncope/common/lib/types/AnyTypeKind.java   |  30 +
 .../common/lib/types/AttributableType.java      |  31 -
 .../syncope/common/lib/types/Entitlement.java   |  12 +
 .../common/lib/types/EntityViolationType.java   |  13 +-
 .../common/lib/types/IntMappingType.java        |  92 +-
 .../syncope/common/lib/types/SubjectType.java   |  34 -
 .../common/lib/types/SyncPolicySpec.java        |  59 +-
 .../common/lib/types/SyncPolicySpecItem.java    |  67 ++
 .../apache/syncope/common/lib/wrap/AnyKey.java  |  25 +
 .../syncope/common/lib/wrap/SubjectKey.java     |  25 -
 .../common/rest/api/beans/AnyListQuery.java     |  41 +
 .../common/rest/api/beans/AnySearchQuery.java   |  39 +
 .../common/rest/api/beans/SubjectListQuery.java |  41 -
 .../rest/api/beans/SubjectSearchQuery.java      |  39 -
 .../common/rest/api/service/GroupService.java   |   8 +-
 .../rest/api/service/ResourceService.java       |  27 +-
 .../common/rest/api/service/SchemaService.java  |  35 +-
 .../common/rest/api/service/UserService.java    |   8 +-
 .../rest/api/service/WorkflowService.java       |  14 +-
 .../syncope/core/logic/AbstractAnyLogic.java    |  84 ++
 .../core/logic/AbstractResourceAssociator.java  |   4 +-
 .../core/logic/AbstractSubjectLogic.java        |  84 --
 .../syncope/core/logic/AnyObjectLogic.java      | 326 +++++++
 .../syncope/core/logic/ConfigurationLogic.java  |   4 +-
 .../syncope/core/logic/ConnectorLogic.java      |  34 +-
 .../apache/syncope/core/logic/GroupLogic.java   |  28 +-
 .../apache/syncope/core/logic/LoggerLogic.java  |  42 +-
 .../apache/syncope/core/logic/ReportLogic.java  |  15 +-
 .../syncope/core/logic/ResourceLogic.java       |  80 +-
 .../apache/syncope/core/logic/SchemaLogic.java  | 100 +--
 .../apache/syncope/core/logic/SyncopeLogic.java |  16 +-
 .../apache/syncope/core/logic/UserLogic.java    |  44 +-
 .../syncope/core/logic/UserWorkflowLogic.java   |   8 +-
 .../syncope/core/logic/WorkflowLogic.java       |  21 +
 .../core/logic/report/GroupReportlet.java       |  43 +-
 .../core/logic/report/UserReportlet.java        |  49 +-
 .../syncope/core/logic/NotificationTest.java    |  77 +-
 .../syncope/core/misc/ConnObjectUtils.java      | 381 ++++----
 .../apache/syncope/core/misc/MappingUtils.java  | 406 +++------
 .../syncope/core/misc/jexl/JexlUtils.java       |  38 +-
 .../core/misc/policy/PolicyEvaluator.java       |  16 +-
 .../core/misc/search/SearchCondVisitor.java     |  26 +-
 .../core/misc/security/PasswordGenerator.java   |   2 +-
 .../security/SyncopeAuthenticationProvider.java |  24 +-
 .../security/SyncopeUserDetailsService.java     |   6 +-
 .../misc/security/UnauthorizedException.java    |   6 +-
 .../misc/search/SearchCondConverterTest.java    |  10 +-
 .../core/persistence/api/dao/AnyDAO.java        |  66 ++
 .../core/persistence/api/dao/AnyObjectDAO.java  |  40 +
 .../core/persistence/api/dao/AnySearchDAO.java  |  83 ++
 .../persistence/api/dao/AnyTypeClassDAO.java    |  33 +
 .../core/persistence/api/dao/AnyTypeDAO.java    |  37 +
 .../persistence/api/dao/AttrTemplateDAO.java    |  34 -
 .../core/persistence/api/dao/DerAttrDAO.java    |  12 +-
 .../core/persistence/api/dao/DerSchemaDAO.java  |  11 +-
 .../api/dao/ExternalResourceDAO.java            |   6 +-
 .../core/persistence/api/dao/GroupDAO.java      |  53 +-
 .../core/persistence/api/dao/MembershipDAO.java |  40 -
 .../core/persistence/api/dao/PlainAttrDAO.java  |   8 +-
 .../persistence/api/dao/PlainSchemaDAO.java     |  11 +-
 .../core/persistence/api/dao/PolicyDAO.java     |   2 +-
 .../core/persistence/api/dao/SubjectDAO.java    |  44 -
 .../persistence/api/dao/SubjectSearchDAO.java   |  83 --
 .../core/persistence/api/dao/TaskDAO.java       |   2 +-
 .../core/persistence/api/dao/UserDAO.java       |  38 +-
 .../core/persistence/api/dao/VirAttrDAO.java    |  12 +-
 .../core/persistence/api/dao/VirSchemaDAO.java  |  11 +-
 .../persistence/api/dao/search/AnyCond.java     |  35 +
 .../persistence/api/dao/search/GroupCond.java   |  39 -
 .../api/dao/search/MembershipCond.java          |  39 +
 .../api/dao/search/RelationshipCond.java        |  39 +
 .../persistence/api/dao/search/SearchCond.java  |  66 +-
 .../persistence/api/dao/search/SubjectCond.java |  35 -
 .../persistence/api/entity/AccountPolicy.java   |   1 +
 .../core/persistence/api/entity/Any.java        |  80 ++
 .../core/persistence/api/entity/AnyAbout.java   |  34 +
 .../core/persistence/api/entity/AnyType.java    |  37 +
 .../persistence/api/entity/AnyTypeClass.java    |  44 +
 .../core/persistence/api/entity/AnyUtils.java   |  68 ++
 .../persistence/api/entity/AnyUtilsFactory.java |  30 +
 .../core/persistence/api/entity/Attr.java       |   6 +-
 .../persistence/api/entity/AttrTemplate.java    |  32 -
 .../persistence/api/entity/Attributable.java    |  48 -
 .../api/entity/AttributableUtils.java           |  89 --
 .../api/entity/AttributableUtilsFactory.java    |  33 -
 .../persistence/api/entity/ConnInstance.java    |   1 +
 .../core/persistence/api/entity/DerAttr.java    |   4 +-
 .../api/entity/DynGroupMembership.java          |   4 +-
 .../persistence/api/entity/DynMembership.java   |   9 +-
 .../api/entity/DynRoleMembership.java           |  26 -
 .../api/entity/ExternalResource.java            | 111 ---
 .../core/persistence/api/entity/Mapping.java    |  42 -
 .../persistence/api/entity/MappingItem.java     |  57 --
 .../core/persistence/api/entity/Membership.java |  25 +
 .../persistence/api/entity/Notification.java    |  45 +-
 .../core/persistence/api/entity/PlainAttr.java  |  11 +-
 .../persistence/api/entity/PlainAttrValue.java  |   4 +-
 .../persistence/api/entity/Relationship.java    |  30 +
 .../core/persistence/api/entity/Role.java       |   1 +
 .../core/persistence/api/entity/Subject.java    |  36 -
 .../core/persistence/api/entity/VirAttr.java    |   6 +-
 .../api/entity/anyobject/ADerAttr.java          |  24 +
 .../entity/anyobject/ADynGroupMembership.java   |  25 +
 .../api/entity/anyobject/AMembership.java       |  25 +
 .../api/entity/anyobject/APlainAttr.java        |  32 +
 .../entity/anyobject/APlainAttrUniqueValue.java |  28 +
 .../api/entity/anyobject/APlainAttrValue.java   |  28 +
 .../api/entity/anyobject/ARelationship.java     |  25 +
 .../api/entity/anyobject/AVirAttr.java          |  25 +
 .../api/entity/anyobject/AnyObject.java         |  42 +
 .../persistence/api/entity/conf/CPlainAttr.java |   9 +-
 .../api/entity/conf/CPlainAttrUniqueValue.java  |   3 -
 .../api/entity/conf/CPlainSchema.java           |  25 -
 .../core/persistence/api/entity/conf/Conf.java  |   8 +-
 .../persistence/api/entity/group/GDerAttr.java  |  11 +-
 .../api/entity/group/GDerAttrTemplate.java      |  25 -
 .../api/entity/group/GDerSchema.java            |  25 -
 .../persistence/api/entity/group/GMapping.java  |  25 -
 .../api/entity/group/GMappingItem.java          |  29 -
 .../api/entity/group/GPlainAttr.java            |  12 +-
 .../api/entity/group/GPlainAttrTemplate.java    |  25 -
 .../api/entity/group/GPlainAttrUniqueValue.java |   3 -
 .../api/entity/group/GPlainSchema.java          |  25 -
 .../persistence/api/entity/group/GVirAttr.java  |  11 +-
 .../api/entity/group/GVirAttrTemplate.java      |  25 -
 .../api/entity/group/GVirSchema.java            |  25 -
 .../persistence/api/entity/group/Group.java     |  54 +-
 .../api/entity/group/TypeExtension.java         |  41 +
 .../api/entity/membership/MDerAttr.java         |  34 -
 .../api/entity/membership/MDerAttrTemplate.java |  25 -
 .../api/entity/membership/MDerSchema.java       |  25 -
 .../api/entity/membership/MPlainAttr.java       |  42 -
 .../entity/membership/MPlainAttrTemplate.java   |  25 -
 .../membership/MPlainAttrUniqueValue.java       |  31 -
 .../api/entity/membership/MPlainAttrValue.java  |  28 -
 .../api/entity/membership/MPlainSchema.java     |  25 -
 .../api/entity/membership/MVirAttr.java         |  34 -
 .../api/entity/membership/MVirAttrTemplate.java |  25 -
 .../api/entity/membership/MVirSchema.java       |  25 -
 .../api/entity/membership/Membership.java       |  53 --
 .../api/entity/resource/ExternalResource.java   | 106 +++
 .../api/entity/resource/Mapping.java            |  43 +
 .../api/entity/resource/MappingItem.java        |  59 ++
 .../api/entity/resource/Provision.java          |  49 +
 .../persistence/api/entity/task/AnyFilter.java  |  37 +
 .../api/entity/task/AnyTemplate.java            |  38 +
 .../api/entity/task/PropagationTask.java        |  40 +-
 .../api/entity/task/ProvisioningTask.java       |  26 +-
 .../persistence/api/entity/task/PushTask.java   |  11 +-
 .../persistence/api/entity/task/SyncTask.java   |  16 +-
 .../api/entity/user/DynRoleMembership.java      |  29 +
 .../persistence/api/entity/user/UDerAttr.java   |   8 +-
 .../persistence/api/entity/user/UDerSchema.java |  25 -
 .../api/entity/user/UDynGroupMembership.java    |  25 +
 .../api/entity/user/UDynMembership.java         |  25 +
 .../persistence/api/entity/user/UMapping.java   |  28 -
 .../api/entity/user/UMappingItem.java           |  29 -
 .../api/entity/user/UMembership.java            |  25 +
 .../persistence/api/entity/user/UPlainAttr.java |   8 +-
 .../api/entity/user/UPlainAttrUniqueValue.java  |   3 -
 .../api/entity/user/UPlainSchema.java           |  25 -
 .../api/entity/user/URelationship.java          |  26 +
 .../persistence/api/entity/user/UVirAttr.java   |   8 +-
 .../persistence/api/entity/user/UVirSchema.java |  25 -
 .../core/persistence/api/entity/user/User.java  | 126 ++-
 .../jpa/content/XMLContentExporter.java         |  21 +-
 .../persistence/jpa/dao/AbstractAnyDAO.java     | 434 +++++++++
 .../core/persistence/jpa/dao/AbstractDAO.java   |   3 -
 .../persistence/jpa/dao/AbstractSubjectDAO.java | 361 --------
 .../persistence/jpa/dao/JPAAnyObjectDAO.java    | 149 ++++
 .../persistence/jpa/dao/JPAAnySearchDAO.java    | 811 +++++++++++++++++
 .../persistence/jpa/dao/JPAAnyTypeClassDAO.java |  58 ++
 .../core/persistence/jpa/dao/JPAAnyTypeDAO.java |  83 ++
 .../persistence/jpa/dao/JPAAttrTemplateDAO.java | 107 ---
 .../core/persistence/jpa/dao/JPAConfDAO.java    |  31 +-
 .../persistence/jpa/dao/JPAConnInstanceDAO.java |   2 +-
 .../core/persistence/jpa/dao/JPADerAttrDAO.java |  26 +-
 .../persistence/jpa/dao/JPADerSchemaDAO.java    |  84 +-
 .../jpa/dao/JPAExternalResourceDAO.java         |  82 +-
 .../core/persistence/jpa/dao/JPAGroupDAO.java   | 349 ++------
 .../persistence/jpa/dao/JPAMembershipDAO.java   | 104 ---
 .../persistence/jpa/dao/JPAPlainAttrDAO.java    |  22 +-
 .../jpa/dao/JPAPlainAttrValueDAO.java           |  18 +-
 .../persistence/jpa/dao/JPAPlainSchemaDAO.java  |  95 +-
 .../core/persistence/jpa/dao/JPAPolicyDAO.java  |   2 +-
 .../core/persistence/jpa/dao/JPARoleDAO.java    |  16 +-
 .../jpa/dao/JPASubjectSearchDAO.java            | 778 ----------------
 .../core/persistence/jpa/dao/JPATaskDAO.java    |   2 +-
 .../core/persistence/jpa/dao/JPAUserDAO.java    | 222 +----
 .../core/persistence/jpa/dao/JPAVirAttrDAO.java |  26 +-
 .../persistence/jpa/dao/JPAVirSchemaDAO.java    |  83 +-
 .../core/persistence/jpa/dao/SearchSupport.java |  31 +-
 .../persistence/jpa/entity/AbstractAny.java     | 149 ++++
 .../jpa/entity/AbstractAttrTemplate.java        |  28 -
 .../jpa/entity/AbstractAttributable.java        |  68 --
 .../persistence/jpa/entity/AbstractDerAttr.java |  24 +-
 .../jpa/entity/AbstractDerAttrTemplate.java     |  41 -
 .../jpa/entity/AbstractDerSchema.java           |  85 --
 .../jpa/entity/AbstractDynMembership.java       |  26 +-
 .../persistence/jpa/entity/AbstractMapping.java |  78 --
 .../jpa/entity/AbstractMappingItem.java         | 190 ----
 .../jpa/entity/AbstractPlainAttr.java           |  49 +-
 .../jpa/entity/AbstractPlainAttrTemplate.java   |  27 -
 .../jpa/entity/AbstractPlainSchema.java         | 272 ------
 .../persistence/jpa/entity/AbstractSubject.java |  85 --
 .../persistence/jpa/entity/AbstractVirAttr.java |  27 +-
 .../jpa/entity/AbstractVirAttrTemplate.java     |  41 -
 .../jpa/entity/AbstractVirSchema.java           |  89 --
 .../jpa/entity/JPAAccountPolicy.java            |   7 +-
 .../persistence/jpa/entity/JPAAnyAbout.java     |  89 ++
 .../core/persistence/jpa/entity/JPAAnyType.java |  97 ++
 .../persistence/jpa/entity/JPAAnyTypeClass.java | 131 +++
 .../persistence/jpa/entity/JPAAnyUtils.java     | 488 ++++++++++
 .../jpa/entity/JPAAnyUtilsFactory.java          |  61 ++
 .../jpa/entity/JPAAttributableUtils.java        | 862 ------------------
 .../persistence/jpa/entity/JPAConnInstance.java |   3 +-
 .../persistence/jpa/entity/JPADerSchema.java    |  91 ++
 .../jpa/entity/JPADynGroupMembership.java       |  77 --
 .../jpa/entity/JPADynRoleMembership.java        |  76 --
 .../jpa/entity/JPAEntityFactory.java            | 169 ++--
 .../jpa/entity/JPAExternalResource.java         | 428 ---------
 .../persistence/jpa/entity/JPANotification.java |  64 +-
 .../persistence/jpa/entity/JPAPlainSchema.java  | 276 ++++++
 .../core/persistence/jpa/entity/JPARole.java    |   3 +-
 .../persistence/jpa/entity/JPAVirSchema.java    |  95 ++
 .../jpa/entity/JPAttributableUtilsFactory.java  |  81 --
 .../jpa/entity/anyobject/JPAADerAttr.java       |  50 ++
 .../anyobject/JPAADynGroupMembership.java       |  89 ++
 .../jpa/entity/anyobject/JPAAMembership.java    |  77 ++
 .../jpa/entity/anyobject/JPAAPlainAttr.java     | 105 +++
 .../anyobject/JPAAPlainAttrUniqueValue.java     |  78 ++
 .../entity/anyobject/JPAAPlainAttrValue.java    |  64 ++
 .../jpa/entity/anyobject/JPAARelationship.java  |  76 ++
 .../jpa/entity/anyobject/JPAAVirAttr.java       |  50 ++
 .../jpa/entity/anyobject/JPAAnyObject.java      | 243 +++++
 .../jpa/entity/conf/JPACPlainAttr.java          |  40 +-
 .../entity/conf/JPACPlainAttrUniqueValue.java   |  10 +-
 .../jpa/entity/conf/JPACPlainSchema.java        |  36 -
 .../persistence/jpa/entity/conf/JPAConf.java    | 123 ++-
 .../jpa/entity/group/JPAGDerAttr.java           |  36 +-
 .../jpa/entity/group/JPAGDerAttrTemplate.java   |  66 --
 .../jpa/entity/group/JPAGDerSchema.java         |  34 -
 .../jpa/entity/group/JPAGMapping.java           | 103 ---
 .../jpa/entity/group/JPAGMappingItem.java       |  58 --
 .../jpa/entity/group/JPAGPlainAttr.java         |  45 +-
 .../jpa/entity/group/JPAGPlainAttrTemplate.java |  75 --
 .../entity/group/JPAGPlainAttrUniqueValue.java  |  10 +-
 .../jpa/entity/group/JPAGPlainSchema.java       |  36 -
 .../jpa/entity/group/JPAGVirAttr.java           |  36 +-
 .../jpa/entity/group/JPAGVirAttrTemplate.java   |  66 --
 .../jpa/entity/group/JPAGVirSchema.java         |  36 -
 .../persistence/jpa/entity/group/JPAGroup.java  | 230 +++--
 .../jpa/entity/group/JPATypeExtension.java      | 108 +++
 .../jpa/entity/membership/JPAMDerAttr.java      |  82 --
 .../entity/membership/JPAMDerAttrTemplate.java  |  67 --
 .../jpa/entity/membership/JPAMDerSchema.java    |  34 -
 .../jpa/entity/membership/JPAMPlainAttr.java    | 141 ---
 .../membership/JPAMPlainAttrTemplate.java       |  77 --
 .../membership/JPAMPlainAttrUniqueValue.java    |  78 --
 .../entity/membership/JPAMPlainAttrValue.java   |  64 --
 .../jpa/entity/membership/JPAMPlainSchema.java  |  36 -
 .../jpa/entity/membership/JPAMVirAttr.java      |  81 --
 .../entity/membership/JPAMVirAttrTemplate.java  |  67 --
 .../jpa/entity/membership/JPAMVirSchema.java    |  36 -
 .../jpa/entity/membership/JPAMembership.java    | 220 -----
 .../entity/resource/JPAExternalResource.java    | 394 ++++++++
 .../jpa/entity/resource/JPAMapping.java         | 142 +++
 .../jpa/entity/resource/JPAMappingItem.java     | 217 +++++
 .../jpa/entity/resource/JPAProvision.java       | 133 +++
 .../entity/task/AbstractProvisioningTask.java   |   4 +-
 .../jpa/entity/task/JPAAnyFilter.java           |  91 ++
 .../jpa/entity/task/JPAAnyTemplate.java         | 102 +++
 .../jpa/entity/task/JPANotificationTask.java    |   2 +-
 .../jpa/entity/task/JPAPropagationTask.java     |  50 +-
 .../jpa/entity/task/JPAPushTask.java            |  37 +-
 .../jpa/entity/task/JPASyncTask.java            |  56 +-
 .../jpa/entity/user/AbstractUDynMembership.java |  50 ++
 .../jpa/entity/user/JPADynRoleMembership.java   |  76 ++
 .../jpa/entity/user/JPAUDerAttr.java            |  21 +-
 .../jpa/entity/user/JPAUDerSchema.java          |  34 -
 .../jpa/entity/user/JPAUDynGroupMembership.java |  76 ++
 .../jpa/entity/user/JPAUMapping.java            | 125 ---
 .../jpa/entity/user/JPAUMappingItem.java        |  58 --
 .../jpa/entity/user/JPAUMembership.java         |  77 ++
 .../jpa/entity/user/JPAUPlainAttr.java          |  40 +-
 .../entity/user/JPAUPlainAttrUniqueValue.java   |  10 +-
 .../jpa/entity/user/JPAUPlainSchema.java        |  36 -
 .../jpa/entity/user/JPAURelationship.java       |  78 ++
 .../jpa/entity/user/JPAUVirAttr.java            |  21 +-
 .../jpa/entity/user/JPAUVirSchema.java          |  36 -
 .../persistence/jpa/entity/user/JPAUser.java    | 192 ++--
 .../entity/EntityValidationListener.java        |   6 +-
 .../entity/ExternalResourceValidator.java       |  41 +-
 .../entity/PlainAttrValueValidator.java         |  13 +-
 .../validation/entity/SchemaNameValidator.java  |  72 +-
 .../jpa/validation/entity/UserValidator.java    |   2 +-
 .../src/main/resources/META-INF/spring-orm.xml  | 168 ++--
 .../src/main/resources/content.xml              |  71 +-
 .../src/main/resources/indexes.xml              |  15 +-
 .../src/main/resources/views.xml                | 185 +++-
 .../core/persistence/jpa/AbstractTest.java      |   4 +-
 .../persistence/jpa/DummyConnectorRegistry.java |   2 +-
 .../persistence/jpa/entity/AnySearchTest.java   | 500 +++++++++++
 .../core/persistence/jpa/entity/AttrTest.java   |  43 +-
 .../core/persistence/jpa/entity/ConfTest.java   |  24 +-
 .../persistence/jpa/entity/DerAttrTest.java     | 103 +--
 .../persistence/jpa/entity/DerSchemaTest.java   |  27 +-
 .../persistence/jpa/entity/MembershipTest.java  |  84 --
 .../jpa/entity/NotificationTest.java            |  27 +-
 .../persistence/jpa/entity/PlainSchemaTest.java |  48 +-
 .../core/persistence/jpa/entity/PolicyTest.java |  25 +-
 .../persistence/jpa/entity/ResourceTest.java    | 166 ++--
 .../jpa/entity/SubjectSearchTest.java           | 483 ----------
 .../core/persistence/jpa/entity/TaskTest.java   |  10 +-
 .../persistence/jpa/entity/VirAttrTest.java     |  38 +-
 .../persistence/jpa/entity/VirSchemaTest.java   |  27 +-
 .../jpa/relationship/AnySearchTest.java         | 115 +++
 .../persistence/jpa/relationship/AttrTest.java  |  79 +-
 .../jpa/relationship/ConnInstanceTest.java      |   2 +-
 .../jpa/relationship/DerSchemaTest.java         |   9 +-
 .../persistence/jpa/relationship/GroupTest.java |  42 +-
 .../jpa/relationship/MembershipTest.java        |  81 --
 .../jpa/relationship/PlainSchemaTest.java       |  55 +-
 .../jpa/relationship/ResourceTest.java          |  84 +-
 .../persistence/jpa/relationship/RoleTest.java  |  21 +-
 .../jpa/relationship/SubjectSearchTest.java     | 115 ---
 .../persistence/jpa/relationship/TaskTest.java  |  14 +-
 .../persistence/jpa/relationship/UserTest.java  |   7 +-
 .../src/test/resources/content.xml              | 889 ++++++++++---------
 .../api/AnyObjectProvisioningManager.java       |  34 +
 .../core/provisioning/api/AnyTransformer.java   |  33 +
 .../api/AttributableTransformer.java            |  33 -
 .../core/provisioning/api/Connector.java        |   2 +-
 .../core/provisioning/api/ConnectorFactory.java |   2 +-
 .../provisioning/api/ConnectorRegistry.java     |   2 +-
 .../api/GroupProvisioningManager.java           |   2 +-
 .../provisioning/api/ProvisioningManager.java   |  18 +-
 .../api/UserProvisioningManager.java            |   4 +-
 .../provisioning/api/cache/VirAttrCache.java    |  20 +-
 .../provisioning/api/cache/VirAttrCacheKey.java |  11 +-
 .../api/data/AnyObjectDataBinder.java           |  35 +
 .../api/data/ResourceDataBinder.java            |   2 +-
 .../provisioning/api/data/SchemaDataBinder.java |   5 +-
 .../api/propagation/PropagationManager.java     |  25 +-
 .../api/sync/AnyObjectPushResultHandler.java    |  23 +
 .../api/sync/AnyObjectSyncResultHandler.java    |  23 +
 .../api/sync/IgnoreProvisionException.java      |   2 +-
 .../api/sync/ProvisioningResult.java            |  11 +-
 .../core/provisioning/api/sync/PushActions.java | 100 +--
 .../core/provisioning/api/sync/SyncActions.java |  64 +-
 .../api/sync/SyncopePushResultHandler.java      |   2 +-
 .../provisioning/java/ConnectorFacadeProxy.java |   4 +-
 .../provisioning/java/ConnectorManager.java     |   2 +-
 .../java/DefaultAnyTransformer.java             |  40 +
 .../java/DefaultAttributableTransformer.java    |  39 -
 .../java/DefaultGroupProvisioningManager.java   |   6 +-
 .../java/DefaultUserProvisioningManager.java    |  27 +-
 .../core/provisioning/java/VirAttrHandler.java  | 198 ++---
 .../java/cache/DisabledVirAttrCache.java        |   9 +-
 .../java/cache/MemoryVirAttrCache.java          |  13 +-
 .../java/data/AbstractAnyDataBinder.java        | 663 ++++++++++++++
 .../data/AbstractAttributableDataBinder.java    | 805 -----------------
 .../java/data/ConfigurationDataBinderImpl.java  |  58 +-
 .../java/data/GroupDataBinderImpl.java          | 174 ++--
 .../java/data/NotificationDataBinderImpl.java   |  38 +-
 .../java/data/PolicyDataBinderImpl.java         |   2 +-
 .../java/data/ResourceDataBinderImpl.java       | 117 +--
 .../java/data/RoleDataBinderImpl.java           |   4 +-
 .../java/data/SchemaDataBinderImpl.java         |  26 +-
 .../java/data/TaskDataBinderImpl.java           | 117 ++-
 .../java/data/UserDataBinderImpl.java           | 156 +---
 .../notification/NotificationManagerImpl.java   | 109 +--
 .../AbstractPropagationTaskExecutor.java        |  89 +-
 .../DBPasswordPropagationActions.java           |   8 +-
 .../LDAPMembershipPropagationActions.java       |  20 +-
 .../LDAPPasswordPropagationActions.java         |   6 +-
 .../propagation/PropagationManagerImpl.java     | 214 ++---
 .../java/sync/AbstractProvisioningJob.java      | 123 ++-
 .../java/sync/AbstractPushResultHandler.java    | 172 ++--
 .../java/sync/AbstractSyncResultHandler.java    | 244 ++---
 .../java/sync/AbstractSyncopeResultHandler.java |  27 +-
 .../sync/AnyObjectPushResultHandlerImpl.java    | 157 ++++
 .../sync/AnyObjectSyncResultHandlerImpl.java    | 132 +++
 .../java/sync/DBPasswordSyncActions.java        |  30 +-
 .../java/sync/DefaultPushActions.java           |  34 +-
 .../java/sync/DefaultSyncActions.java           |  42 +-
 .../java/sync/GroupPushResultHandlerImpl.java   |  70 +-
 .../java/sync/GroupSyncResultHandlerImpl.java   |  71 +-
 .../java/sync/LDAPMembershipSyncActions.java    |  63 +-
 .../java/sync/LDAPPasswordSyncActions.java      |  10 +-
 .../provisioning/java/sync/PushJobImpl.java     | 109 +--
 .../provisioning/java/sync/SyncJobImpl.java     | 115 +--
 .../core/provisioning/java/sync/SyncUtils.java  | 194 ++--
 .../java/sync/UserPushResultHandlerImpl.java    |  71 +-
 .../java/sync/UserSyncResultHandlerImpl.java    |  43 +-
 .../provisioning/java/ConnectorManagerTest.java |   4 +-
 .../java/data/ResourceDataBinderTest.java       |  39 +-
 .../core/rest/cxf/service/GroupServiceImpl.java |   8 +-
 .../rest/cxf/service/ResourceServiceImpl.java   |  33 +-
 .../rest/cxf/service/SchemaServiceImpl.java     |  27 +-
 .../core/rest/cxf/service/UserServiceImpl.java  |   8 +-
 .../rest/cxf/service/WorkflowServiceImpl.java   |  20 +-
 .../activiti/ActivitiUserWorkflowAdapter.java   |   2 +-
 .../workflow/activiti/SyncopeUserQueryImpl.java |   9 +-
 .../workflow/api/AnyObjectWorkflowAdapter.java  |  61 ++
 .../core/workflow/api/WorkflowAdapter.java      |   8 +-
 .../java/AbstractGroupWorkflowAdapter.java      |   4 +-
 .../java/AbstractUserWorkflowAdapter.java       |  14 +-
 .../client/console/panels/CamelRoutePanel.java  |  71 +-
 .../console/rest/CamelRouteRestClient.java      |  19 +-
 .../syncope/common/lib/to/CamelRouteTO.java     |  14 +-
 .../syncope/core/logic/CamelRouteLogic.java     |   6 +-
 .../core/logic/init/CamelRouteLoader.java       |  19 +-
 .../core/persistence/api/dao/CamelRouteDAO.java |   4 +-
 .../core/persistence/api/entity/CamelRoute.java |  11 +-
 .../persistence/jpa/dao/JPACamelRouteDAO.java   |   8 +-
 .../persistence/jpa/entity/JPACamelRoute.java   |  12 +-
 .../camel/CamelUserProvisioningManager.java     |  11 +-
 .../camel/processor/GroupDeleteProcessor.java   |   2 +-
 .../processor/GroupDeprovisionProcessor.java    |   2 +-
 .../camel/processor/UserCreateProcessor.java    |   1 -
 .../processor/UserDeprovisionProcessor.java     |   2 +-
 .../camel/processor/UserUpdateProcessor.java    |  19 +-
 .../rest/api/service/CamelRouteService.java     |   4 +-
 .../rest/cxf/service/CamelRouteServiceImpl.java |   6 +-
 .../DoubleValueAttributableTransformer.java     |  12 +-
 .../fit/core/reference/TestSyncActions.java     |  10 +-
 .../fit/core/reference/AbstractITCase.java      |   7 +-
 .../core/reference/AuthenticationITCase.java    |  11 +-
 .../fit/core/reference/CamelRouteITCase.java    |   9 +-
 .../fit/core/reference/ConfigurationITCase.java |  11 +-
 .../fit/core/reference/ConnectorITCase.java     |  14 +-
 .../fit/core/reference/DerSchemaITCase.java     |  35 +-
 .../core/reference/ExceptionMapperITCase.java   |   3 +-
 .../syncope/fit/core/reference/GroupITCase.java |  69 +-
 .../fit/core/reference/LoggerITCase.java        |   6 +-
 .../fit/core/reference/NotificationITCase.java  |   6 +-
 .../core/reference/NotificationTaskITCase.java  |   6 +-
 .../fit/core/reference/PlainSchemaITCase.java   |  63 +-
 .../fit/core/reference/PolicyITCase.java        |  11 +-
 .../fit/core/reference/PushTaskITCase.java      |  86 +-
 .../fit/core/reference/ResourceITCase.java      | 171 ++--
 .../fit/core/reference/SearchITCase.java        |   6 +-
 .../fit/core/reference/SyncTaskITCase.java      |  39 +-
 .../syncope/fit/core/reference/UserITCase.java  | 268 ++----
 .../fit/core/reference/UserSelfITCase.java      |  23 +-
 .../fit/core/reference/UserWorkflowITCase.java  |  10 +-
 .../fit/core/reference/VirAttrITCase.java       | 311 +------
 .../fit/core/reference/VirSchemaITCase.java     |  24 +-
 .../fit/core/reference/WorkflowITCase.java      |  14 +-
 pom.xml                                         |   2 +-
 502 files changed, 16231 insertions(+), 17382 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/081d9a04/.travis.yml
----------------------------------------------------------------------
diff --git a/.travis.yml b/.travis.yml
index 0e6f5c4..e17fd2c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -19,6 +19,7 @@ jdk:
 # default install is mvn install --quiet -DskipTests=true
 install: mvn --show-version --quiet -P all,skipTests
 #invoker.streamLogs: we cannot access to log files through Travis web ui, so 
display everything in the console
-script: mvn --show-version --quiet clean install -Dinvoker.streamLogs=true
+#script: mvn --show-version --quiet clean install -Dinvoker.streamLogs=true
+script: mvn --show-version --quiet -PskipTests -Dinvoker.streamLogs=true
 notifications:
   webhooks: http://rovere.tirasa.net/cgi-bin/travis.cgi

http://git-wip-us.apache.org/repos/asf/syncope/blob/081d9a04/client/console/src/main/java/org/apache/syncope/client/console/commons/AttrLayoutType.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/commons/AttrLayoutType.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/commons/AttrLayoutType.java
index 26764b4..9aefe4c 100644
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/commons/AttrLayoutType.java
+++ 
b/client/console/src/main/java/org/apache/syncope/client/console/commons/AttrLayoutType.java
@@ -20,27 +20,25 @@ package org.apache.syncope.client.console.commons;
 
 import java.util.ArrayList;
 import java.util.List;
-import org.apache.syncope.common.lib.types.AttributableType;
+import org.apache.syncope.common.lib.types.AnyTypeKind;
 
 public enum AttrLayoutType {
 
-    ADMIN_USER("admin.user.layout", Mode.ADMIN, AttributableType.USER),
-    SELF_USER("self.user.layout", Mode.SELF, AttributableType.USER),
-    ADMIN_GROUP("admin.group.layout", Mode.ADMIN, AttributableType.GROUP),
-    SELF_GROUP("self.group.layout", Mode.SELF, AttributableType.GROUP),
-    ADMIN_MEMBERSHIP("admin.membership.layout", Mode.ADMIN, 
AttributableType.MEMBERSHIP),
-    SELF_MEMBERSHIP("self.membership.layout", Mode.SELF, 
AttributableType.MEMBERSHIP);
+    ADMIN_USER("admin.user.layout", Mode.ADMIN, AnyTypeKind.USER),
+    SELF_USER("self.user.layout", Mode.SELF, AnyTypeKind.USER),
+    ADMIN_GROUP("admin.group.layout", Mode.ADMIN, AnyTypeKind.GROUP),
+    SELF_GROUP("self.group.layout", Mode.SELF, AnyTypeKind.GROUP);
 
     private final String confKey;
 
     private final Mode mode;
 
-    private final AttributableType attrType;
+    private final AnyTypeKind anyTypeKind;
 
-    AttrLayoutType(final String confKey, final Mode mode, final 
AttributableType attrType) {
+    AttrLayoutType(final String confKey, final Mode mode, final AnyTypeKind 
anyTypeKind) {
         this.confKey = confKey;
         this.mode = mode;
-        this.attrType = attrType;
+        this.anyTypeKind = anyTypeKind;
     }
 
     public String getConfKey() {
@@ -51,12 +49,12 @@ public enum AttrLayoutType {
         return mode;
     }
 
-    public AttributableType getAttrType() {
-        return attrType;
+    public AnyTypeKind getAnyTypeKind() {
+        return anyTypeKind;
     }
 
     public static List<String> confKeys() {
-        List<String> confKeys = new ArrayList<String>();
+        List<String> confKeys = new ArrayList<>();
         for (AttrLayoutType value : values()) {
             confKeys.add(value.getConfKey());
         }
@@ -64,18 +62,14 @@ public enum AttrLayoutType {
         return confKeys;
     }
 
-    public static AttrLayoutType valueOf(final Mode mode, final 
AttributableType attrType) {
+    public static AttrLayoutType valueOf(final Mode mode, final AnyTypeKind 
anyTypeKind) {
         AttrLayoutType result = null;
         if (mode == Mode.ADMIN) {
-            switch (attrType) {
+            switch (anyTypeKind) {
                 case USER:
                     result = ADMIN_USER;
                     break;
 
-                case MEMBERSHIP:
-                    result = ADMIN_MEMBERSHIP;
-                    break;
-
                 case GROUP:
                     result = ADMIN_GROUP;
                     break;
@@ -83,15 +77,11 @@ public enum AttrLayoutType {
                 default:
             }
         } else if (mode == Mode.SELF) {
-            switch (attrType) {
+            switch (anyTypeKind) {
                 case USER:
                     result = SELF_USER;
                     break;
 
-                case MEMBERSHIP:
-                    result = SELF_MEMBERSHIP;
-                    break;
-
                 case GROUP:
                     result = SELF_GROUP;
                     break;

http://git-wip-us.apache.org/repos/asf/syncope/blob/081d9a04/client/console/src/main/java/org/apache/syncope/client/console/commons/SortableAttributableProviderComparator.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/commons/SortableAttributableProviderComparator.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/commons/SortableAttributableProviderComparator.java
index 77fb552..78b91ef 100644
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/commons/SortableAttributableProviderComparator.java
+++ 
b/client/console/src/main/java/org/apache/syncope/client/console/commons/SortableAttributableProviderComparator.java
@@ -23,30 +23,30 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import org.apache.syncope.common.lib.to.AbstractAttributableTO;
+import org.apache.syncope.common.lib.to.AnyTO;
 import org.apache.syncope.common.lib.to.AttrTO;
 import org.apache.syncope.common.lib.types.SchemaType;
 import 
org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
 import org.apache.wicket.model.AbstractReadOnlyModel;
 
-public class SortableAttributableProviderComparator extends 
SortableDataProviderComparator<AbstractAttributableTO> {
+public class SortableAttributableProviderComparator extends 
SortableDataProviderComparator<AnyTO> {
 
     private static final long serialVersionUID = 1775967163571699258L;
 
     private static final Set<String> INLINE_PROPS = new 
HashSet<>(Arrays.asList(
             new String[] { "key", "status", "token", "username" }));
 
-    public SortableAttributableProviderComparator(final 
SortableDataProvider<AbstractAttributableTO, String> provider) {
+    public SortableAttributableProviderComparator(final 
SortableDataProvider<AnyTO, String> provider) {
         super(provider);
     }
 
     @Override
-    public int compare(final AbstractAttributableTO attributable1, final 
AbstractAttributableTO attributable2) {
+    public int compare(final AnyTO any1, final AnyTO any2) {
         if (INLINE_PROPS.contains(provider.getSort().getProperty())) {
-            return super.compare(attributable1, attributable2);
+            return super.compare(any1, any2);
         }
 
-        return super.compare(new AttrModel(attributable1), new 
AttrModel(attributable2));
+        return super.compare(new AttrModel(any1), new AttrModel(any2));
     }
 
     @SuppressWarnings("rawtypes")
@@ -60,12 +60,12 @@ public class SortableAttributableProviderComparator extends 
SortableDataProvider
 
         private final Map<String, AttrTO> virAttrs;
 
-        public AttrModel(final AbstractAttributableTO attributableTO) {
+        public AttrModel(final AnyTO anyTO) {
             super();
 
-            this.attrs = attributableTO.getPlainAttrMap();
-            this.derAttrs = attributableTO.getDerAttrMap();
-            this.virAttrs = attributableTO.getVirAttrMap();
+            this.attrs = anyTO.getPlainAttrMap();
+            this.derAttrs = anyTO.getDerAttrMap();
+            this.virAttrs = anyTO.getVirAttrMap();
         }
 
         /**

http://git-wip-us.apache.org/repos/asf/syncope/blob/081d9a04/client/console/src/main/java/org/apache/syncope/client/console/commons/status/ConnObjectWrapper.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/commons/status/ConnObjectWrapper.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/commons/status/ConnObjectWrapper.java
index be038db..c66a825 100644
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/commons/status/ConnObjectWrapper.java
+++ 
b/client/console/src/main/java/org/apache/syncope/client/console/commons/status/ConnObjectWrapper.java
@@ -19,29 +19,29 @@
 package org.apache.syncope.client.console.commons.status;
 
 import java.io.Serializable;
-import org.apache.syncope.common.lib.to.AbstractAttributableTO;
+import org.apache.syncope.common.lib.to.AnyTO;
 import org.apache.syncope.common.lib.to.ConnObjectTO;
 
 public class ConnObjectWrapper implements Serializable {
 
     private static final long serialVersionUID = 9083721948999924299L;
 
-    private final AbstractAttributableTO attributable;
+    private final AnyTO any;
 
     private final String resourceName;
 
     private final ConnObjectTO connObjectTO;
 
-    public ConnObjectWrapper(final AbstractAttributableTO attributable, final 
String resourceName,
+    public ConnObjectWrapper(final AnyTO attributable, final String 
resourceName,
             final ConnObjectTO connObjectTO) {
 
-        this.attributable = attributable;
+        this.any = attributable;
         this.resourceName = resourceName;
         this.connObjectTO = connObjectTO;
     }
 
-    public AbstractAttributableTO getAttributable() {
-        return attributable;
+    public AnyTO getAny() {
+        return any;
     }
 
     public String getResourceName() {

http://git-wip-us.apache.org/repos/asf/syncope/blob/081d9a04/client/console/src/main/java/org/apache/syncope/client/console/commons/status/StatusBean.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/commons/status/StatusBean.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/commons/status/StatusBean.java
index 33bac29..af43c0a 100644
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/commons/status/StatusBean.java
+++ 
b/client/console/src/main/java/org/apache/syncope/client/console/commons/status/StatusBean.java
@@ -23,7 +23,7 @@ import org.apache.commons.lang3.builder.EqualsBuilder;
 import org.apache.commons.lang3.builder.HashCodeBuilder;
 import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
-import org.apache.syncope.common.lib.to.AbstractAttributableTO;
+import org.apache.syncope.common.lib.to.AnyTO;
 import org.apache.syncope.common.lib.to.GroupTO;
 import org.apache.syncope.common.lib.to.UserTO;
 
@@ -31,9 +31,9 @@ public class StatusBean implements Serializable {
 
     private static final long serialVersionUID = -5207260204921071129L;
 
-    private final Long attributableKey;
+    private final Long anyKey;
 
-    private final String attributableName;
+    private final String anyName;
 
     private final String resourceName;
 
@@ -43,10 +43,10 @@ public class StatusBean implements Serializable {
 
     private boolean linked = true;
 
-    public StatusBean(final AbstractAttributableTO attributable, final String 
resourceName) {
-        this.attributableKey = attributable.getKey();
-        this.attributableName = attributable instanceof UserTO
-                ? ((UserTO) attributable).getUsername() : ((GroupTO) 
attributable).getName();
+    public StatusBean(final AnyTO any, final String resourceName) {
+        this.anyKey = any.getKey();
+        this.anyName = any instanceof UserTO
+                ? ((UserTO) any).getUsername() : ((GroupTO) any).getName();
         this.resourceName = resourceName;
     }
 
@@ -70,12 +70,12 @@ public class StatusBean implements Serializable {
         this.status = status;
     }
 
-    public Long getAttributableId() {
-        return attributableKey;
+    public Long getAnyKey() {
+        return anyKey;
     }
 
-    public String getAttributableName() {
-        return attributableName;
+    public String getAnyName() {
+        return anyName;
     }
 
     public boolean isLinked() {

http://git-wip-us.apache.org/repos/asf/syncope/blob/081d9a04/client/console/src/main/java/org/apache/syncope/client/console/commons/status/StatusUtils.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/commons/status/StatusUtils.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/commons/status/StatusUtils.java
index 7a4a157..877a628 100644
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/commons/status/StatusUtils.java
+++ 
b/client/console/src/main/java/org/apache/syncope/client/console/commons/status/StatusUtils.java
@@ -27,10 +27,9 @@ import java.util.Map;
 import org.apache.syncope.client.console.commons.ConnIdSpecialAttributeName;
 import org.apache.syncope.client.console.commons.Constants;
 import org.apache.syncope.client.console.panels.ImagePanel;
-import org.apache.syncope.client.console.rest.AbstractSubjectRestClient;
+import org.apache.syncope.client.console.rest.AbstractAnyRestClient;
 import org.apache.syncope.common.lib.mod.StatusMod;
-import org.apache.syncope.common.lib.to.AbstractAttributableTO;
-import org.apache.syncope.common.lib.to.AbstractSubjectTO;
+import org.apache.syncope.common.lib.to.AnyTO;
 import org.apache.syncope.common.lib.to.AttrTO;
 import org.apache.syncope.common.lib.to.ConnObjectTO;
 import org.apache.wicket.Component;
@@ -49,56 +48,56 @@ public class StatusUtils implements Serializable {
 
     private static final String IMG_PREFIX = "/img/statuses/";
 
-    private final AbstractSubjectRestClient restClient;
+    private final AbstractAnyRestClient restClient;
 
-    public StatusUtils(final AbstractSubjectRestClient restClient) {
+    public StatusUtils(final AbstractAnyRestClient restClient) {
         this.restClient = restClient;
     }
 
-    public List<ConnObjectWrapper> getConnectorObjects(final AbstractSubjectTO 
subject) {
+    public List<ConnObjectWrapper> getConnectorObjects(final AnyTO any) {
         final List<ConnObjectWrapper> objects = new ArrayList<>();
-        objects.addAll(getConnectorObjects(subject, subject.getResources()));
+        objects.addAll(getConnectorObjects(any, any.getResources()));
         return objects;
     }
 
     public List<ConnObjectWrapper> getConnectorObjects(
-            final Collection<AbstractSubjectTO> subjects, final 
Collection<String> resources) {
+            final Collection<AnyTO> anys, final Collection<String> resources) {
 
         final List<ConnObjectWrapper> objects = new ArrayList<>();
 
-        for (AbstractSubjectTO subject : subjects) {
-            objects.addAll(getConnectorObjects(subject, resources));
+        for (AnyTO any : anys) {
+            objects.addAll(getConnectorObjects(any, resources));
         }
 
         return objects;
     }
 
     private List<ConnObjectWrapper> getConnectorObjects(
-            final AbstractSubjectTO subject, final Collection<String> 
resources) {
+            final AnyTO any, final Collection<String> resources) {
 
         final List<ConnObjectWrapper> objects = new ArrayList<>();
 
         for (String resourceName : resources) {
             ConnObjectTO objectTO = null;
             try {
-                objectTO = restClient.getConnectorObject(resourceName, 
subject.getKey());
+                objectTO = restClient.readConnObject(resourceName, 
any.getKey());
             } catch (Exception e) {
-                LOG.warn("ConnObject '{}' not found on resource '{}'", 
subject.getKey(), resourceName);
+                LOG.warn("ConnObject '{}' not found on resource '{}'", 
any.getKey(), resourceName);
             }
 
-            objects.add(new ConnObjectWrapper(subject, resourceName, 
objectTO));
+            objects.add(new ConnObjectWrapper(any, resourceName, objectTO));
         }
 
         return objects;
     }
 
     public StatusBean getStatusBean(
-            final AbstractAttributableTO attributable,
+            final AnyTO anyTO,
             final String resourceName,
             final ConnObjectTO objectTO,
             final boolean isGroup) {
 
-        final StatusBean statusBean = new StatusBean(attributable, 
resourceName);
+        final StatusBean statusBean = new StatusBean(anyTO, resourceName);
 
         if (objectTO != null) {
             final Boolean enabled = isEnabled(objectTO);
@@ -165,10 +164,10 @@ public class StatusUtils implements Serializable {
     }
 
     public ConnObjectTO getConnObjectTO(
-            final Long attributableId, final String resourceName, final 
List<ConnObjectWrapper> objects) {
+            final Long anyKey, final String resourceName, final 
List<ConnObjectWrapper> objects) {
 
         for (ConnObjectWrapper object : objects) {
-            if (attributableId.equals(object.getAttributable().getKey())
+            if (anyKey.equals(object.getAny().getKey())
                     && 
resourceName.equalsIgnoreCase(object.getResourceName())) {
 
                 return object.getConnObjectTO();

http://git-wip-us.apache.org/repos/asf/syncope/blob/081d9a04/client/console/src/main/java/org/apache/syncope/client/console/rest/AbstractAnyRestClient.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/rest/AbstractAnyRestClient.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/rest/AbstractAnyRestClient.java
new file mode 100644
index 0000000..b9a316d
--- /dev/null
+++ 
b/client/console/src/main/java/org/apache/syncope/client/console/rest/AbstractAnyRestClient.java
@@ -0,0 +1,47 @@
+/*
+ * 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.client.console.rest;
+
+import java.util.List;
+import org.apache.syncope.common.lib.to.AnyTO;
+import org.apache.syncope.common.lib.to.BulkAction;
+import org.apache.syncope.common.lib.to.BulkActionResult;
+import org.apache.syncope.common.lib.to.ConnObjectTO;
+import org.apache.wicket.extensions.markup.html.repeater.util.SortParam;
+
+public abstract class AbstractAnyRestClient extends BaseRestClient {
+
+    private static final long serialVersionUID = 1962529678091410544L;
+
+    public abstract int count(String realm);
+
+    public abstract List<? extends AnyTO> list(
+            String realm, int page, int size, final SortParam<String> sort);
+
+    public abstract int searchCount(String realm, String fiql);
+
+    public abstract List<? extends AnyTO> search(
+            String realm, String fiql, int page, int size, final 
SortParam<String> sort);
+
+    public abstract ConnObjectTO readConnObject(String resourceName, Long key);
+
+    public abstract AnyTO delete(String etag, Long key);
+
+    public abstract BulkActionResult bulkAction(BulkAction action);
+}

http://git-wip-us.apache.org/repos/asf/syncope/blob/081d9a04/client/console/src/main/java/org/apache/syncope/client/console/rest/AbstractSubjectRestClient.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/rest/AbstractSubjectRestClient.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/rest/AbstractSubjectRestClient.java
deleted file mode 100644
index 8b11b35..0000000
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/rest/AbstractSubjectRestClient.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * 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.client.console.rest;
-
-import java.util.List;
-import org.apache.syncope.common.lib.to.AbstractAttributableTO;
-import org.apache.syncope.common.lib.to.AbstractSubjectTO;
-import org.apache.syncope.common.lib.to.BulkAction;
-import org.apache.syncope.common.lib.to.BulkActionResult;
-import org.apache.syncope.common.lib.to.ConnObjectTO;
-import org.apache.wicket.extensions.markup.html.repeater.util.SortParam;
-
-public abstract class AbstractSubjectRestClient extends BaseRestClient {
-
-    private static final long serialVersionUID = 1962529678091410544L;
-
-    public abstract int count(String realm);
-
-    public abstract List<? extends AbstractAttributableTO> list(
-            String realm, int page, int size, final SortParam<String> sort);
-
-    public abstract int searchCount(String realm, String fiql);
-
-    public abstract List<? extends AbstractSubjectTO> search(
-            String realm, String fiql, int page, int size, final 
SortParam<String> sort);
-
-    public abstract ConnObjectTO getConnectorObject(String resourceName, Long 
key);
-
-    public abstract AbstractSubjectTO delete(String etag, Long key);
-
-    public abstract BulkActionResult bulkAction(BulkAction action);
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/081d9a04/client/console/src/main/java/org/apache/syncope/client/console/rest/ConfigurationRestClient.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/rest/ConfigurationRestClient.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/rest/ConfigurationRestClient.java
index cc1501c..36b0d1c 100644
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/rest/ConfigurationRestClient.java
+++ 
b/client/console/src/main/java/org/apache/syncope/client/console/rest/ConfigurationRestClient.java
@@ -73,7 +73,7 @@ public class ConfigurationRestClient extends BaseRestClient {
             attrLayout.setSchema(type.getConfKey());
         }
         if (attrLayout.getValues().isEmpty()) {
-            
attrLayout.getValues().addAll(schemaRestClient.getPlainSchemaNames(type.getAttrType()));
+            
attrLayout.getValues().addAll(schemaRestClient.getPlainSchemaNames());
         }
 
         return attrLayout;

http://git-wip-us.apache.org/repos/asf/syncope/blob/081d9a04/client/console/src/main/java/org/apache/syncope/client/console/rest/GroupRestClient.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/rest/GroupRestClient.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/rest/GroupRestClient.java
index 64138bb..157de09 100644
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/rest/GroupRestClient.java
+++ 
b/client/console/src/main/java/org/apache/syncope/client/console/rest/GroupRestClient.java
@@ -29,9 +29,9 @@ import org.apache.syncope.common.lib.to.BulkAction;
 import org.apache.syncope.common.lib.to.BulkActionResult;
 import org.apache.syncope.common.lib.to.ConnObjectTO;
 import org.apache.syncope.common.lib.to.GroupTO;
+import org.apache.syncope.common.lib.types.AnyTypeKind;
 import org.apache.syncope.common.lib.types.ResourceAssociationActionType;
 import org.apache.syncope.common.lib.types.ResourceDeassociationActionType;
-import org.apache.syncope.common.lib.types.SubjectType;
 import org.apache.syncope.common.lib.wrap.ResourceName;
 import org.apache.syncope.common.rest.api.CollectionWrapper;
 import org.apache.syncope.common.rest.api.service.ResourceService;
@@ -43,7 +43,7 @@ import org.springframework.stereotype.Component;
  * Console client for invoking Rest Group's services.
  */
 @Component
-public class GroupRestClient extends AbstractSubjectRestClient {
+public class GroupRestClient extends AbstractAnyRestClient {
 
     private static final long serialVersionUID = -8549081557283519638L;
 
@@ -80,8 +80,8 @@ public class GroupRestClient extends 
AbstractSubjectRestClient {
     }
 
     @Override
-    public ConnObjectTO getConnectorObject(final String resourceName, final 
Long id) {
-        return 
getService(ResourceService.class).getConnectorObject(resourceName, 
SubjectType.GROUP, id);
+    public ConnObjectTO readConnObject(final String resourceName, final Long 
id) {
+        return getService(ResourceService.class).readConnObject(resourceName, 
AnyTypeKind.GROUP.name(), id);
     }
 
     public GroupTO create(final GroupTO groupTO) {

http://git-wip-us.apache.org/repos/asf/syncope/blob/081d9a04/client/console/src/main/java/org/apache/syncope/client/console/rest/ResourceRestClient.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/rest/ResourceRestClient.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/rest/ResourceRestClient.java
index 87c9a3a..f5431db 100644
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/rest/ResourceRestClient.java
+++ 
b/client/console/src/main/java/org/apache/syncope/client/console/rest/ResourceRestClient.java
@@ -21,14 +21,11 @@ package org.apache.syncope.client.console.rest;
 import java.util.List;
 import org.apache.syncope.client.console.SyncopeConsoleSession;
 import org.apache.syncope.common.lib.SyncopeClientException;
-import org.apache.syncope.common.lib.to.AbstractAttributableTO;
 import org.apache.syncope.common.lib.to.BulkAction;
 import org.apache.syncope.common.lib.to.BulkActionResult;
 import org.apache.syncope.common.lib.to.ResourceTO;
-import org.apache.syncope.common.lib.to.UserTO;
 import org.apache.syncope.common.lib.types.ResourceDeassociationActionType;
-import org.apache.syncope.common.lib.types.SubjectType;
-import org.apache.syncope.common.lib.wrap.SubjectKey;
+import org.apache.syncope.common.lib.wrap.AnyKey;
 import org.apache.syncope.common.rest.api.service.ResourceService;
 import org.springframework.stereotype.Component;
 
@@ -84,11 +81,9 @@ public class ResourceRestClient extends BaseRestClient {
     }
 
     public BulkActionResult bulkAssociationAction(
-            final String resourceName, final Class<? extends 
AbstractAttributableTO> typeRef,
-            final ResourceDeassociationActionType type, final List<SubjectKey> 
subjtectIds) {
+            final String resourceName, final String anyTypeName,
+            final ResourceDeassociationActionType type, final List<AnyKey> 
anyKeys) {
 
-        return 
getService(ResourceService.class).bulkDeassociation(resourceName,
-                UserTO.class.isAssignableFrom(typeRef) ? SubjectType.USER : 
SubjectType.GROUP,
-                type, subjtectIds);
+        return 
getService(ResourceService.class).bulkDeassociation(resourceName, anyTypeName, 
type, anyKeys);
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/081d9a04/client/console/src/main/java/org/apache/syncope/client/console/rest/SchemaRestClient.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/rest/SchemaRestClient.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/rest/SchemaRestClient.java
index 6934ef6..9f7a6d2 100644
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/rest/SchemaRestClient.java
+++ 
b/client/console/src/main/java/org/apache/syncope/client/console/rest/SchemaRestClient.java
@@ -26,13 +26,12 @@ import java.util.ListIterator;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.collections4.Transformer;
 import org.apache.syncope.client.console.SyncopeConsoleSession;
-import org.apache.syncope.client.console.commons.AttrLayoutType;
 import org.apache.syncope.common.lib.SyncopeClientException;
 import org.apache.syncope.common.lib.to.AbstractSchemaTO;
 import org.apache.syncope.common.lib.to.DerSchemaTO;
 import org.apache.syncope.common.lib.to.PlainSchemaTO;
 import org.apache.syncope.common.lib.to.VirSchemaTO;
-import org.apache.syncope.common.lib.types.AttributableType;
+import org.apache.syncope.common.lib.types.AnyTypeKind;
 import org.apache.syncope.common.lib.types.SchemaType;
 import org.apache.syncope.common.rest.api.service.SchemaService;
 import org.springframework.stereotype.Component;
@@ -62,27 +61,22 @@ public class SchemaRestClient extends BaseRestClient {
         }
     }
 
-    public List<? extends AbstractSchemaTO> getSchemas(final AttributableType 
attrType, final SchemaType schemaType) {
+    public List<? extends AbstractSchemaTO> getSchemas(final SchemaType 
schemaType) {
         List<? extends AbstractSchemaTO> schemas = Collections.emptyList();
 
         try {
-            schemas = getService(SchemaService.class).list(attrType, 
schemaType);
+            schemas = getService(SchemaService.class).list(schemaType);
         } catch (SyncopeClientException e) {
-            LOG.error("While getting all schemas for {} and {}", attrType, 
schemaType, e);
+            LOG.error("While getting all schemas for {}", schemaType, e);
         }
-
-        if (attrType == AttributableType.CONFIGURATION) {
-            filter(schemas, AttrLayoutType.confKeys(), false);
-        }
-
         return schemas;
     }
 
-    public List<PlainSchemaTO> getSchemas(final AttributableType type) {
+    public List<PlainSchemaTO> getSchemas() {
         List<PlainSchemaTO> schemas = null;
 
         try {
-            schemas = getService(SchemaService.class).list(type, 
SchemaType.PLAIN);
+            schemas = getService(SchemaService.class).list(SchemaType.PLAIN);
         } catch (SyncopeClientException e) {
             LOG.error("While getting all schemas", e);
         }
@@ -90,11 +84,11 @@ public class SchemaRestClient extends BaseRestClient {
         return schemas;
     }
 
-    public List<String> getSchemaNames(final AttributableType attrType, final 
SchemaType schemaType) {
+    public List<String> getSchemaNames(final SchemaType schemaType) {
         List<String> schemaNames = new ArrayList<>();
 
         try {
-            CollectionUtils.collect(getSchemas(attrType, schemaType), new 
Transformer<AbstractSchemaTO, String>() {
+            CollectionUtils.collect(getSchemas(schemaType), new 
Transformer<AbstractSchemaTO, String>() {
 
                 @Override
                 public String transform(final AbstractSchemaTO schemaTO) {
@@ -108,15 +102,15 @@ public class SchemaRestClient extends BaseRestClient {
         return schemaNames;
     }
 
-    public List<String> getPlainSchemaNames(final AttributableType type) {
-        return getSchemaNames(type, SchemaType.PLAIN);
+    public List<String> getPlainSchemaNames() {
+        return getSchemaNames(SchemaType.PLAIN);
     }
 
-    public List<DerSchemaTO> getDerSchemas(final AttributableType type) {
+    public List<DerSchemaTO> getDerSchemas() {
         List<DerSchemaTO> userDerSchemas = null;
 
         try {
-            userDerSchemas = getService(SchemaService.class).list(type, 
SchemaType.DERIVED);
+            userDerSchemas = 
getService(SchemaService.class).list(SchemaType.DERIVED);
         } catch (SyncopeClientException e) {
             LOG.error("While getting all user derived schemas", e);
         }
@@ -124,86 +118,86 @@ public class SchemaRestClient extends BaseRestClient {
         return userDerSchemas;
     }
 
-    public List<String> getDerSchemaNames(final AttributableType type) {
-        return getSchemaNames(type, SchemaType.DERIVED);
+    public List<String> getDerSchemaNames() {
+        return getSchemaNames(SchemaType.DERIVED);
     }
 
-    public List<VirSchemaTO> getVirSchemas(final AttributableType type) {
+    public List<VirSchemaTO> getVirSchemas() {
         List<VirSchemaTO> userVirSchemas = null;
 
         try {
-            userVirSchemas = getService(SchemaService.class).list(type, 
SchemaType.VIRTUAL);
+            userVirSchemas = 
getService(SchemaService.class).list(SchemaType.VIRTUAL);
         } catch (SyncopeClientException e) {
-            LOG.error("While getting all {} virtual schemas", type, e);
+            LOG.error("While getting all virtual schemas", e);
         }
 
         return userVirSchemas;
     }
 
-    public List<String> getVirSchemaNames(final AttributableType type) {
-        return getSchemaNames(type, SchemaType.VIRTUAL);
+    public List<String> getVirSchemaNames() {
+        return getSchemaNames(SchemaType.VIRTUAL);
     }
 
-    public void createPlainSchema(final AttributableType type, final 
PlainSchemaTO schemaTO) {
-        getService(SchemaService.class).create(type, SchemaType.PLAIN, 
schemaTO);
+    public void createPlainSchema(final PlainSchemaTO schemaTO) {
+        getService(SchemaService.class).create(SchemaType.PLAIN, schemaTO);
     }
 
-    public PlainSchemaTO readPlainSchema(final AttributableType type, final 
String name) {
+    public PlainSchemaTO readPlainSchema(final String name) {
         PlainSchemaTO schema = null;
 
         try {
-            schema = getService(SchemaService.class).read(type, 
SchemaType.PLAIN, name);
+            schema = getService(SchemaService.class).read(SchemaType.PLAIN, 
name);
         } catch (SyncopeClientException e) {
             LOG.error("While reading a user schema", e);
         }
         return schema;
     }
 
-    public void updatePlainSchema(final AttributableType type, final 
PlainSchemaTO schemaTO) {
-        getService(SchemaService.class).update(type, SchemaType.PLAIN, 
schemaTO.getKey(), schemaTO);
+    public void updatePlainSchema(final PlainSchemaTO schemaTO) {
+        getService(SchemaService.class).update(SchemaType.PLAIN, 
schemaTO.getKey(), schemaTO);
     }
 
-    public PlainSchemaTO deletePlainSchema(final AttributableType type, final 
String name) {
-        PlainSchemaTO response = getService(SchemaService.class).read(type, 
SchemaType.PLAIN, name);
-        getService(SchemaService.class).delete(type, SchemaType.PLAIN, name);
+    public PlainSchemaTO deletePlainSchema(final String name) {
+        PlainSchemaTO response = 
getService(SchemaService.class).read(SchemaType.PLAIN, name);
+        getService(SchemaService.class).delete(SchemaType.PLAIN, name);
         return response;
     }
 
-    public void createDerSchema(final AttributableType type, final DerSchemaTO 
schemaTO) {
-        getService(SchemaService.class).create(type, SchemaType.DERIVED, 
schemaTO);
+    public void createDerSchema(final DerSchemaTO schemaTO) {
+        getService(SchemaService.class).create(SchemaType.DERIVED, schemaTO);
     }
 
-    public DerSchemaTO readDerSchema(final AttributableType type, final String 
name) {
+    public DerSchemaTO readDerSchema(final String name) {
         DerSchemaTO derivedSchemaTO = null;
         try {
-            derivedSchemaTO = getService(SchemaService.class).read(type, 
SchemaType.DERIVED, name);
+            derivedSchemaTO = 
getService(SchemaService.class).read(SchemaType.DERIVED, name);
         } catch (SyncopeClientException e) {
             LOG.error("While reading a derived user schema", e);
         }
         return derivedSchemaTO;
     }
 
-    public void updateVirSchema(final AttributableType type, final VirSchemaTO 
schemaTO) {
-        getService(SchemaService.class).update(type, SchemaType.VIRTUAL, 
schemaTO.getKey(), schemaTO);
+    public void updateVirSchema(final VirSchemaTO schemaTO) {
+        getService(SchemaService.class).update(SchemaType.VIRTUAL, 
schemaTO.getKey(), schemaTO);
     }
 
-    public DerSchemaTO deleteDerSchema(final AttributableType type, final 
String name) {
-        DerSchemaTO schemaTO = getService(SchemaService.class).read(type, 
SchemaType.DERIVED, name);
-        getService(SchemaService.class).delete(type, SchemaType.DERIVED, name);
+    public DerSchemaTO deleteDerSchema(final String name) {
+        DerSchemaTO schemaTO = 
getService(SchemaService.class).read(SchemaType.DERIVED, name);
+        getService(SchemaService.class).delete(SchemaType.DERIVED, name);
         return schemaTO;
     }
 
-    public void createVirSchema(final AttributableType type, final VirSchemaTO 
schemaTO) {
-        getService(SchemaService.class).create(type, SchemaType.VIRTUAL, 
schemaTO);
+    public void createVirSchema(final VirSchemaTO schemaTO) {
+        getService(SchemaService.class).create(SchemaType.VIRTUAL, schemaTO);
     }
 
-    public void updateDerSchema(final AttributableType type, final DerSchemaTO 
schemaTO) {
-        getService(SchemaService.class).update(type, SchemaType.DERIVED, 
schemaTO.getKey(), schemaTO);
+    public void updateDerSchema(final DerSchemaTO schemaTO) {
+        getService(SchemaService.class).update(SchemaType.DERIVED, 
schemaTO.getKey(), schemaTO);
     }
 
-    public VirSchemaTO deleteVirSchema(final AttributableType type, final 
String name) {
-        VirSchemaTO schemaTO = getService(SchemaService.class).read(type, 
SchemaType.VIRTUAL, name);
-        getService(SchemaService.class).delete(type, SchemaType.VIRTUAL, name);
+    public VirSchemaTO deleteVirSchema(final String name) {
+        VirSchemaTO schemaTO = 
getService(SchemaService.class).read(SchemaType.VIRTUAL, name);
+        getService(SchemaService.class).delete(SchemaType.VIRTUAL, name);
         return schemaTO;
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/081d9a04/client/console/src/main/java/org/apache/syncope/client/console/rest/UserRestClient.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/rest/UserRestClient.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/rest/UserRestClient.java
index a39df68..9d30b78 100644
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/rest/UserRestClient.java
+++ 
b/client/console/src/main/java/org/apache/syncope/client/console/rest/UserRestClient.java
@@ -31,9 +31,9 @@ import org.apache.syncope.common.lib.to.BulkAction;
 import org.apache.syncope.common.lib.to.BulkActionResult;
 import org.apache.syncope.common.lib.to.ConnObjectTO;
 import org.apache.syncope.common.lib.to.UserTO;
+import org.apache.syncope.common.lib.types.AnyTypeKind;
 import org.apache.syncope.common.lib.types.ResourceAssociationActionType;
 import org.apache.syncope.common.lib.types.ResourceDeassociationActionType;
-import org.apache.syncope.common.lib.types.SubjectType;
 import org.apache.syncope.common.lib.wrap.ResourceName;
 import org.apache.syncope.common.rest.api.CollectionWrapper;
 import org.apache.syncope.common.rest.api.service.ResourceService;
@@ -45,7 +45,7 @@ import org.springframework.stereotype.Component;
  * Console client for invoking rest users services.
  */
 @Component
-public class UserRestClient extends AbstractSubjectRestClient {
+public class UserRestClient extends AbstractAnyRestClient {
 
     private static final long serialVersionUID = -1575748964398293968L;
 
@@ -118,8 +118,8 @@ public class UserRestClient extends 
AbstractSubjectRestClient {
     }
 
     @Override
-    public ConnObjectTO getConnectorObject(final String resourceName, final 
Long id) {
-        return 
getService(ResourceService.class).getConnectorObject(resourceName, 
SubjectType.USER, id);
+    public ConnObjectTO readConnObject(final String resourceName, final Long 
id) {
+        return getService(ResourceService.class).readConnObject(resourceName, 
AnyTypeKind.USER.name(), id);
     }
 
     public void suspend(final String etag, final long userId, final 
List<StatusBean> statuses) {

http://git-wip-us.apache.org/repos/asf/syncope/blob/081d9a04/client/console/src/main/java/org/apache/syncope/client/console/rest/WorkflowRestClient.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/rest/WorkflowRestClient.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/rest/WorkflowRestClient.java
index eb0527e..2a078a0 100644
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/rest/WorkflowRestClient.java
+++ 
b/client/console/src/main/java/org/apache/syncope/client/console/rest/WorkflowRestClient.java
@@ -24,7 +24,7 @@ import javax.ws.rs.core.Response;
 import org.apache.cxf.helpers.IOUtils;
 import org.apache.cxf.jaxrs.client.WebClient;
 import org.apache.syncope.client.console.SyncopeConsoleSession;
-import org.apache.syncope.common.lib.types.SubjectType;
+import org.apache.syncope.common.lib.types.AnyTypeKind;
 import org.apache.syncope.common.rest.api.RESTHeaders;
 import org.apache.syncope.common.rest.api.service.WorkflowService;
 import org.springframework.stereotype.Component;
@@ -39,7 +39,7 @@ public class WorkflowRestClient extends BaseRestClient {
     }
 
     public InputStream getDefinition(final MediaType mediaType) {
-        Response response = 
getService(mediaType).exportDefinition(SubjectType.USER);
+        Response response = 
getService(mediaType).exportDefinition(AnyTypeKind.USER);
 
         return (InputStream) response.getEntity();
     }
@@ -47,7 +47,7 @@ public class WorkflowRestClient extends BaseRestClient {
     public byte[] getDiagram() {
         WorkflowService service = getService(WorkflowService.class);
         WebClient.client(service).accept(RESTHeaders.MEDIATYPE_IMAGE_PNG);
-        Response response = service.exportDiagram(SubjectType.USER);
+        Response response = service.exportDiagram(AnyTypeKind.USER);
 
         byte[] diagram;
         try {
@@ -64,6 +64,6 @@ public class WorkflowRestClient extends BaseRestClient {
     }
 
     public void updateDefinition(final MediaType mediaType, final String 
definition) {
-        getService(mediaType).importDefinition(SubjectType.USER, definition);
+        getService(mediaType).importDefinition(AnyTypeKind.USER, definition);
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/081d9a04/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClient.java
----------------------------------------------------------------------
diff --git 
a/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClient.java 
b/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClient.java
index 1bfbb4f..4773150 100644
--- a/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClient.java
+++ b/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClient.java
@@ -31,8 +31,8 @@ import org.apache.commons.lang3.tuple.ImmutablePair;
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.cxf.jaxrs.client.WebClient;
 import org.apache.syncope.client.lib.builders.ListQueryBuilder;
-import org.apache.syncope.client.lib.builders.SubjectListQueryBuilder;
-import org.apache.syncope.client.lib.builders.SubjectSearchQueryBuilder;
+import org.apache.syncope.client.lib.builders.AnyListQueryBuilder;
+import org.apache.syncope.client.lib.builders.AnySearchQueryBuilder;
 import org.apache.syncope.common.lib.search.OrderByClauseBuilder;
 import org.apache.syncope.common.lib.search.GroupFiqlSearchConditionBuilder;
 import org.apache.syncope.common.lib.search.UserFiqlSearchConditionBuilder;
@@ -108,24 +108,24 @@ public class SyncopeClient {
     }
 
     /**
-     * Returns a new instance of {@link SubjectListQueryBuilder}, for assisted 
building of some service's {@code list()}
+     * Returns a new instance of {@link AnyListQueryBuilder}, for assisted 
building of some service's {@code list()}
      * arguments.
      *
-     * @return default instance of {@link SubjectListQueryBuilder}
+     * @return default instance of {@link AnyListQueryBuilder}
      */
-    public static SubjectListQueryBuilder getSubjectListQueryBuilder() {
-        return new SubjectListQueryBuilder();
+    public static AnyListQueryBuilder getSubjectListQueryBuilder() {
+        return new AnyListQueryBuilder();
     }
 
     /**
-     * Returns a new instance of {@link SubjectSearchQueryBuilder}, for 
assisted building of some service's
+     * Returns a new instance of {@link AnySearchQueryBuilder}, for assisted 
building of some service's
      * {@code search()}
      * arguments.
      *
-     * @return default instance of {@link SubjectSearchQueryBuilder}
+     * @return default instance of {@link AnySearchQueryBuilder}
      */
-    public static SubjectSearchQueryBuilder getSubjectSearchQueryBuilder() {
-        return new SubjectSearchQueryBuilder();
+    public static AnySearchQueryBuilder getSubjectSearchQueryBuilder() {
+        return new AnySearchQueryBuilder();
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/syncope/blob/081d9a04/client/lib/src/main/java/org/apache/syncope/client/lib/builders/AnyListQueryBuilder.java
----------------------------------------------------------------------
diff --git 
a/client/lib/src/main/java/org/apache/syncope/client/lib/builders/AnyListQueryBuilder.java
 
b/client/lib/src/main/java/org/apache/syncope/client/lib/builders/AnyListQueryBuilder.java
new file mode 100644
index 0000000..62e4bbe
--- /dev/null
+++ 
b/client/lib/src/main/java/org/apache/syncope/client/lib/builders/AnyListQueryBuilder.java
@@ -0,0 +1,61 @@
+/*
+ * 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.client.lib.builders;
+
+import java.util.ArrayList;
+import org.apache.syncope.common.rest.api.beans.ListQuery;
+import org.apache.syncope.common.rest.api.beans.AnyListQuery;
+
+public class AnyListQueryBuilder extends ListQueryBuilder {
+
+    private final AnyListQuery instance = new AnyListQuery();
+
+    @Override
+    public AnyListQueryBuilder page(final Integer page) {
+        return AnyListQueryBuilder.class.cast(super.page(page));
+    }
+
+    @Override
+    public AnyListQueryBuilder size(final Integer size) {
+        return AnyListQueryBuilder.class.cast(super.size(size));
+    }
+
+    @Override
+    public AnyListQueryBuilder orderBy(final String orderBy) {
+        return AnyListQueryBuilder.class.cast(super.orderBy(orderBy));
+    }
+
+    public AnyListQueryBuilder realm(final String realm) {
+        if (instance.getRealms() == null) {
+            instance.setRealms(new ArrayList<String>());
+        }
+
+        return this;
+    }
+
+    @Override
+    public AnyListQuery build() {
+        ListQuery lq = super.build();
+        instance.setPage(lq.getPage());
+        instance.setSize(lq.getSize());
+        instance.setOrderBy(lq.getOrderBy());
+
+        return instance;
+    }
+}

http://git-wip-us.apache.org/repos/asf/syncope/blob/081d9a04/client/lib/src/main/java/org/apache/syncope/client/lib/builders/AnySearchQueryBuilder.java
----------------------------------------------------------------------
diff --git 
a/client/lib/src/main/java/org/apache/syncope/client/lib/builders/AnySearchQueryBuilder.java
 
b/client/lib/src/main/java/org/apache/syncope/client/lib/builders/AnySearchQueryBuilder.java
new file mode 100644
index 0000000..c3fce47
--- /dev/null
+++ 
b/client/lib/src/main/java/org/apache/syncope/client/lib/builders/AnySearchQueryBuilder.java
@@ -0,0 +1,64 @@
+/*
+ * 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.client.lib.builders;
+
+import org.apache.syncope.common.rest.api.beans.AnyListQuery;
+import org.apache.syncope.common.rest.api.beans.AnySearchQuery;
+
+public class AnySearchQueryBuilder extends AnyListQueryBuilder {
+
+    private final AnySearchQuery instance = new AnySearchQuery();
+
+    @Override
+    public AnySearchQueryBuilder realm(final String realm) {
+        return AnySearchQueryBuilder.class.cast(super.realm(realm));
+    }
+
+    @Override
+    public AnySearchQueryBuilder page(final Integer page) {
+        return AnySearchQueryBuilder.class.cast(super.page(page));
+    }
+
+    @Override
+    public AnySearchQueryBuilder size(final Integer size) {
+        return AnySearchQueryBuilder.class.cast(super.size(size));
+    }
+
+    @Override
+    public AnySearchQueryBuilder orderBy(final String orderBy) {
+        return AnySearchQueryBuilder.class.cast(super.orderBy(orderBy));
+    }
+
+    public AnySearchQueryBuilder fiql(final String fiql) {
+        instance.setFiql(fiql);
+
+        return this;
+    }
+
+    @Override
+    public AnySearchQuery build() {
+        AnyListQuery slq = super.build();
+        instance.setRealms(slq.getRealms());
+        instance.setPage(slq.getPage());
+        instance.setSize(slq.getSize());
+        instance.setOrderBy(slq.getOrderBy());
+
+        return instance;
+    }
+}

http://git-wip-us.apache.org/repos/asf/syncope/blob/081d9a04/client/lib/src/main/java/org/apache/syncope/client/lib/builders/SubjectListQueryBuilder.java
----------------------------------------------------------------------
diff --git 
a/client/lib/src/main/java/org/apache/syncope/client/lib/builders/SubjectListQueryBuilder.java
 
b/client/lib/src/main/java/org/apache/syncope/client/lib/builders/SubjectListQueryBuilder.java
deleted file mode 100644
index 6aec945..0000000
--- 
a/client/lib/src/main/java/org/apache/syncope/client/lib/builders/SubjectListQueryBuilder.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * 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.client.lib.builders;
-
-import java.util.ArrayList;
-import org.apache.syncope.common.rest.api.beans.ListQuery;
-import org.apache.syncope.common.rest.api.beans.SubjectListQuery;
-
-public class SubjectListQueryBuilder extends ListQueryBuilder {
-
-    private final SubjectListQuery instance = new SubjectListQuery();
-
-    @Override
-    public SubjectListQueryBuilder page(final Integer page) {
-        return SubjectListQueryBuilder.class.cast(super.page(page));
-    }
-
-    @Override
-    public SubjectListQueryBuilder size(final Integer size) {
-        return SubjectListQueryBuilder.class.cast(super.size(size));
-    }
-
-    @Override
-    public SubjectListQueryBuilder orderBy(final String orderBy) {
-        return SubjectListQueryBuilder.class.cast(super.orderBy(orderBy));
-    }
-
-    public SubjectListQueryBuilder realm(final String realm) {
-        if (instance.getRealms() == null) {
-            instance.setRealms(new ArrayList<String>());
-        }
-
-        return this;
-    }
-
-    @Override
-    public SubjectListQuery build() {
-        ListQuery lq = super.build();
-        instance.setPage(lq.getPage());
-        instance.setSize(lq.getSize());
-        instance.setOrderBy(lq.getOrderBy());
-
-        return instance;
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/081d9a04/client/lib/src/main/java/org/apache/syncope/client/lib/builders/SubjectSearchQueryBuilder.java
----------------------------------------------------------------------
diff --git 
a/client/lib/src/main/java/org/apache/syncope/client/lib/builders/SubjectSearchQueryBuilder.java
 
b/client/lib/src/main/java/org/apache/syncope/client/lib/builders/SubjectSearchQueryBuilder.java
deleted file mode 100644
index b74860e..0000000
--- 
a/client/lib/src/main/java/org/apache/syncope/client/lib/builders/SubjectSearchQueryBuilder.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * 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.client.lib.builders;
-
-import org.apache.syncope.common.rest.api.beans.SubjectListQuery;
-import org.apache.syncope.common.rest.api.beans.SubjectSearchQuery;
-
-public class SubjectSearchQueryBuilder extends SubjectListQueryBuilder {
-
-    private final SubjectSearchQuery instance = new SubjectSearchQuery();
-
-    @Override
-    public SubjectSearchQueryBuilder realm(final String realm) {
-        return SubjectSearchQueryBuilder.class.cast(super.realm(realm));
-    }
-
-    @Override
-    public SubjectSearchQueryBuilder page(final Integer page) {
-        return SubjectSearchQueryBuilder.class.cast(super.page(page));
-    }
-
-    @Override
-    public SubjectSearchQueryBuilder size(final Integer size) {
-        return SubjectSearchQueryBuilder.class.cast(super.size(size));
-    }
-
-    @Override
-    public SubjectSearchQueryBuilder orderBy(final String orderBy) {
-        return SubjectSearchQueryBuilder.class.cast(super.orderBy(orderBy));
-    }
-
-    public SubjectSearchQueryBuilder fiql(final String fiql) {
-        instance.setFiql(fiql);
-
-        return this;
-    }
-
-    @Override
-    public SubjectSearchQuery build() {
-        SubjectListQuery slq = super.build();
-        instance.setRealms(slq.getRealms());
-        instance.setPage(slq.getPage());
-        instance.setSize(slq.getSize());
-        instance.setOrderBy(slq.getOrderBy());
-
-        return instance;
-    }
-}

Reply via email to