You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2013/12/16 12:04:57 UTC

svn commit: r1551172 [1/7] - in /syncope/trunk: ./ client/ client/src/main/java/org/apache/syncope/client/ client/src/main/java/org/apache/syncope/client/rest/ common/ common/src/main/java/org/apache/syncope/common/ common/src/main/java/org/apache/sync...

Author: ilgrosso
Date: Mon Dec 16 11:04:52 2013
New Revision: 1551172

URL: http://svn.apache.org/r1551172
Log:
[SYNCOPE-300] Now using FIQL for user and role search features

Added:
    syncope/trunk/common/src/main/java/org/apache/syncope/common/SyncopeClientCompositeException.java
      - copied, changed from r1550061, syncope/trunk/common/src/main/java/org/apache/syncope/common/validation/SyncopeClientCompositeException.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/SyncopeClientException.java
      - copied, changed from r1550061, syncope/trunk/common/src/main/java/org/apache/syncope/common/validation/SyncopeClientException.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/reqres/
    syncope/trunk/common/src/main/java/org/apache/syncope/common/reqres/BulkAction.java
      - copied, changed from r1550061, syncope/trunk/common/src/main/java/org/apache/syncope/common/to/BulkAction.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/reqres/BulkActionResult.java
      - copied, changed from r1550061, syncope/trunk/common/src/main/java/org/apache/syncope/common/to/BulkActionRes.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/reqres/BulkAssociationAction.java
      - copied, changed from r1550061, syncope/trunk/common/src/main/java/org/apache/syncope/common/to/BulkAssociationAction.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/reqres/PagedResult.java   (with props)
    syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SearchableFields.java   (with props)
    syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SpecialAttr.java   (with props)
    syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SyncopeFiqlSearchConditionBuilder.java   (with props)
    syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SyncopeProperty.java   (with props)
    syncope/trunk/common/src/main/java/org/apache/syncope/common/services/JAXRSService.java   (with props)
    syncope/trunk/common/src/main/java/org/apache/syncope/common/to/PropagationStatus.java
      - copied, changed from r1550061, syncope/trunk/common/src/main/java/org/apache/syncope/common/to/PropagationStatusTO.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/wrap/
    syncope/trunk/common/src/main/java/org/apache/syncope/common/wrap/AbstractWrappable.java
      - copied, changed from r1550061, syncope/trunk/common/src/main/java/org/apache/syncope/common/AbstractWrappable.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/wrap/CorrelationRuleClass.java
      - copied, changed from r1550061, syncope/trunk/common/src/main/java/org/apache/syncope/common/to/CorrelationRuleClassTO.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/wrap/EntitlementTO.java
      - copied, changed from r1550061, syncope/trunk/common/src/main/java/org/apache/syncope/common/to/EntitlementTO.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/wrap/JobClass.java
      - copied, changed from r1550061, syncope/trunk/common/src/main/java/org/apache/syncope/common/to/JobClassTO.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/wrap/MailTemplate.java
      - copied, changed from r1550061, syncope/trunk/common/src/main/java/org/apache/syncope/common/to/MailTemplateTO.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/wrap/PropagationActionClass.java
      - copied, changed from r1550061, syncope/trunk/common/src/main/java/org/apache/syncope/common/to/PropagationActionClassTO.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/wrap/ReportletConfClass.java
      - copied, changed from r1550061, syncope/trunk/common/src/main/java/org/apache/syncope/common/to/JobClassTO.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/wrap/ResourceName.java
      - copied, changed from r1550061, syncope/trunk/common/src/main/java/org/apache/syncope/common/to/ResourceNameTO.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/wrap/SyncActionClass.java
      - copied, changed from r1550061, syncope/trunk/common/src/main/java/org/apache/syncope/common/to/SyncActionClassTO.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/wrap/Validator.java
      - copied, changed from r1550061, syncope/trunk/common/src/main/java/org/apache/syncope/common/to/ValidatorTO.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/SearchClause.java   (with props)
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/search/
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/search/AbstractSearchCond.java
      - copied, changed from r1548091, syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SearchCond.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/search/AttributableCond.java
      - copied, changed from r1548091, syncope/trunk/common/src/main/java/org/apache/syncope/common/search/AttributableCond.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/search/AttributeCond.java
      - copied, changed from r1548091, syncope/trunk/common/src/main/java/org/apache/syncope/common/search/AttributeCond.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/search/EntitlementCond.java
      - copied, changed from r1548091, syncope/trunk/common/src/main/java/org/apache/syncope/common/search/EntitlementCond.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/search/MembershipCond.java
      - copied, changed from r1548091, syncope/trunk/common/src/main/java/org/apache/syncope/common/search/MembershipCond.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/search/ResourceCond.java
      - copied, changed from r1548091, syncope/trunk/common/src/main/java/org/apache/syncope/common/search/ResourceCond.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/search/SearchCond.java
      - copied, changed from r1548091, syncope/trunk/common/src/main/java/org/apache/syncope/common/search/NodeCond.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/search/package-info.java
      - copied, changed from r1548091, syncope/trunk/common/src/main/java/org/apache/syncope/common/search/package-info.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/SearchCondConverter.java   (with props)
    syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/SearchCondVisitor.java   (with props)
    syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/data/SearchCondConverterTest.java   (with props)
Removed:
    syncope/trunk/common/src/main/java/org/apache/syncope/common/AbstractWrappable.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/search/AttributableCond.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/search/AttributeCond.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/search/EntitlementCond.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/search/MembershipCond.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/search/NodeCond.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/search/ResourceCond.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SearchCond.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/search/package-info.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/services/InvalidSearchConditionException.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/to/AttributableTargetsTO.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/to/BulkAction.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/to/BulkActionRes.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/to/BulkAssociationAction.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/to/CorrelationRuleClassTO.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/to/EntitlementTO.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/to/JobClassTO.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/to/MailTemplateTO.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/to/PropagationActionClassTO.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/to/PropagationStatusTO.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/to/ResourceNameTO.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/to/SyncActionClassTO.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/to/ValidatorTO.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/types/ReportletConfClasses.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/validation/
    syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/SearchCondWrapper.java
    syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/panels/AbstractSearchPanel.properties
    syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/panels/AbstractSearchPanel_it.properties
    syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/panels/AbstractSearchPanel_pt_BR.properties
Modified:
    syncope/trunk/   (props changed)
    syncope/trunk/client/pom.xml
    syncope/trunk/client/src/main/java/org/apache/syncope/client/SyncopeClient.java
    syncope/trunk/client/src/main/java/org/apache/syncope/client/rest/RestClientExceptionMapper.java
    syncope/trunk/common/pom.xml
    syncope/trunk/common/src/main/java/org/apache/syncope/common/AbstractBaseBean.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/report/RoleReportletConf.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/report/UserReportletConf.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ConfigurationService.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ConnectorService.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/services/EntitlementService.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/services/LoggerService.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/services/NotificationService.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/services/PolicyService.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ReportService.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ResourceService.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/services/RoleService.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/services/SchemaService.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/services/TaskService.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/services/UserSelfService.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/services/UserService.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/services/UserWorkflowService.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/services/WorkflowService.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/to/AbstractAttributableTO.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/to/AbstractPolicyTO.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/to/AbstractSysInfoTO.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/to/AbstractTaskTO.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/to/MembershipTO.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/to/NotificationTO.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/to/WorkflowFormTO.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/types/AuditLoggerName.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/types/ClientExceptionType.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/util/AttributableOperations.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/util/CollectionWrapper.java
    syncope/trunk/common/src/test/java/org/apache/syncope/common/JSONTest.java
    syncope/trunk/console/pom.xml
    syncope/trunk/console/src/main/java/org/apache/syncope/console/SyncopeRequestCycleListener.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/AttributableDataProvider.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/AbstractSchedTaskModalPage.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ApprovalModalPage.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/BulkActionModalPage.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/BulkActionResultModalPage.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/Configuration.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ConfigurationModalPage.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ConnectorModalPage.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/DerivedSchemaModalPage.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/DisplayAttributesModalPage.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/Login.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/NotificationModalPage.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ProvisioningModalPage.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ReportModalPage.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ReportletConfModalPage.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/Reports.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/Resources.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ResultStatusModalPage.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/Roles.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/SchemaModalPage.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/TaskModalPage.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/Todo.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/UserOwnerSelectModalPage.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/Users.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/VirtualSchemaModalPage.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/XMLEditorPopupPage.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AbstractSearchPanel.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AbstractSearchResultPanel.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AttributesPanel.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/NotificationTasks.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/PoliciesPanel.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/PropagationTasks.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RoleSearchPanel.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RoleSearchResultPanel.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RoleSummaryPanel.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RoleTabPanel.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/SchedTasks.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/SearchView.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/SelectOnlyUserSearchResultPanel.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/SyncTasks.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/UserSearchPanel.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/UserSearchResultPanel.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/AbstractAttributableRestClient.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/ConnectorRestClient.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/NotificationRestClient.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/ReportRestClient.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/ResourceRestClient.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/RoleRestClient.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/SchemaRestClient.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/TaskRestClient.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/UserRestClient.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/UserSelfRestClient.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/WorkflowRestClient.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/extensions/markup/html/repeater/data/table/ActionResultColumn.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/ActionLinksPanel.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/form/MultiValueSelectorPanel.java
    syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/panels/AbstractSearchPanel.html
    syncope/trunk/console/src/main/resources/org/apache/syncope/console/wicket/markup/html/form/MultiValueSelectorPanel.html
    syncope/trunk/console/src/main/webapp/css/style.css
    syncope/trunk/console/src/test/java/org/apache/syncope/console/ConfigurationTestITCase.java
    syncope/trunk/console/src/test/java/org/apache/syncope/console/ConnInstanceTestITCase.java
    syncope/trunk/console/src/test/java/org/apache/syncope/console/ResourceTestITCase.java
    syncope/trunk/console/src/test/java/org/apache/syncope/console/RoleTestITCase.java
    syncope/trunk/console/src/test/java/org/apache/syncope/console/SchemaTestITCase.java
    syncope/trunk/console/src/test/java/org/apache/syncope/console/TaskTestITCase.java
    syncope/trunk/console/src/test/java/org/apache/syncope/console/UserTestITCase.java
    syncope/trunk/console/src/test/resources/web.xml
    syncope/trunk/core/pom.xml
    syncope/trunk/core/src/main/java/org/apache/syncope/core/init/ContentUpgrader.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/notification/NotificationManager.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/Notification.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/AttributableDAO.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/AttributableSearchDAO.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/RoleDAO.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/UserDAO.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/AbstractAttributableDAOImpl.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/AttributableSearchDAOImpl.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/RoleDAOImpl.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/UserDAOImpl.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/NotificationValidator.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/propagation/PropagationReporter.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/propagation/impl/DefaultPropagationReporter.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/report/RoleReportlet.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/report/UserReportlet.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/ConnectorController.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/EntitlementController.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/LoggerController.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/ReportController.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/ResourceController.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/RoleController.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/SchemaController.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/TaskController.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/AbstractAttributableDataBinder.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/ConnInstanceDataBinder.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/NotificationDataBinder.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/ResourceDataBinder.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/RoleDataBinder.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/SchemaDataBinder.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/TaskDataBinder.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/UserDataBinder.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/utils/RestServiceExceptionMapper.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/services/AbstractServiceImpl.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/services/ConfigurationServiceImpl.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/services/ConnectorServiceImpl.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/services/EntitlementServiceImpl.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/services/PolicyServiceImpl.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/services/ReportServiceImpl.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/services/ResourceServiceImpl.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/services/RoleServiceImpl.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/services/TaskServiceImpl.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/services/UserSelfServiceImpl.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/services/UserServiceImpl.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/services/WorkflowServiceImpl.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/sync/SyncCorrelationRule.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/sync/impl/SyncopeSyncResultHandler.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/ActivitiUserWorkflowAdapter.java
    syncope/trunk/core/src/main/resources/restContext.xml
    syncope/trunk/core/src/test/java/org/apache/syncope/core/notification/NotificationTest.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/persistence/dao/AttributableSearchTest.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/persistence/dao/NotificationTest.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/persistence/dao/UserTest.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/persistence/relationships/AttributableSearchTest.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/AuthenticationTestITCase.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/ConfigurationTestITCase.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/ConnectorTestITCase.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/DerivedSchemaTestITCase.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/NotificationTestITCase.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/PolicyTestITCase.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/ReportTestITCase.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/ResourceTestITCase.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/RoleTestITCase.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/SchemaTestITCase.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/SearchTestITCase.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/TaskTestITCase.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/UserSelfTestITCase.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/UserTestITCase.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/UserWorkflowTestITCase.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/VirtualSchemaTestITCase.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/sync/TestSyncRule.java
    syncope/trunk/core/src/test/resources/content.xml
    syncope/trunk/pom.xml

Propchange: syncope/trunk/
------------------------------------------------------------------------------
  Merged /syncope/branches/1_1_X:r1550906-1551166

Modified: syncope/trunk/client/pom.xml
URL: http://svn.apache.org/viewvc/syncope/trunk/client/pom.xml?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/client/pom.xml (original)
+++ syncope/trunk/client/pom.xml Mon Dec 16 11:04:52 2013
@@ -55,10 +55,6 @@ under the License.
 
     <dependency>
       <groupId>org.apache.cxf</groupId>
-      <artifactId>cxf-rt-frontend-jaxrs</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.cxf</groupId>
       <artifactId>cxf-rt-rs-client</artifactId>
     </dependency>
 

Modified: syncope/trunk/client/src/main/java/org/apache/syncope/client/SyncopeClient.java
URL: http://svn.apache.org/viewvc/syncope/trunk/client/src/main/java/org/apache/syncope/client/SyncopeClient.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/client/src/main/java/org/apache/syncope/client/SyncopeClient.java (original)
+++ syncope/trunk/client/src/main/java/org/apache/syncope/client/SyncopeClient.java Mon Dec 16 11:04:52 2013
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.client;
 
+import org.apache.syncope.common.search.SyncopeFiqlSearchConditionBuilder;
+import java.util.Map;
 import javax.ws.rs.core.EntityTag;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
@@ -55,6 +57,25 @@ public class SyncopeClient {
     }
 
     /**
+     * Returns a new instance of <tt>SyncopeFiqlSearchConditionBuilder</tt>, for assisted building of FIQL queries.
+     *
+     * @return default instance of <tt>SyncopeFiqlSearchConditionBuilder</tt>
+     */
+    public static SyncopeFiqlSearchConditionBuilder getSearchConditionBuilder() {
+        return new SyncopeFiqlSearchConditionBuilder();
+    }
+
+    /**
+     * Returns a new instance of <tt>SyncopeFiqlSearchConditionBuilder</tt>, for assisted building of FIQL queries.
+     *
+     * @param properties additional properties (date format, timezone support, etc.)
+     * @return default instance of <tt>SyncopeFiqlSearchConditionBuilder</tt>
+     */
+    public static SyncopeFiqlSearchConditionBuilder getSearchConditionBuilder(final Map<String, String> properties) {
+        return new SyncopeFiqlSearchConditionBuilder(properties);
+    }
+
+    /**
      * Creates an instance of the given service class, with configured content type and authentication.
      *
      * @param <T> any service class

Modified: syncope/trunk/client/src/main/java/org/apache/syncope/client/rest/RestClientExceptionMapper.java
URL: http://svn.apache.org/viewvc/syncope/trunk/client/src/main/java/org/apache/syncope/client/rest/RestClientExceptionMapper.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/client/src/main/java/org/apache/syncope/client/rest/RestClientExceptionMapper.java (original)
+++ syncope/trunk/client/src/main/java/org/apache/syncope/client/rest/RestClientExceptionMapper.java Mon Dec 16 11:04:52 2013
@@ -30,8 +30,8 @@ import javax.xml.ws.WebServiceException;
 import org.apache.cxf.jaxrs.client.ResponseExceptionMapper;
 import org.apache.syncope.common.types.ClientExceptionType;
 import org.apache.syncope.common.types.RESTHeaders;
-import org.apache.syncope.common.validation.SyncopeClientCompositeException;
-import org.apache.syncope.common.validation.SyncopeClientException;
+import org.apache.syncope.common.SyncopeClientCompositeException;
+import org.apache.syncope.common.SyncopeClientException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 

Modified: syncope/trunk/common/pom.xml
URL: http://svn.apache.org/viewvc/syncope/trunk/common/pom.xml?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/common/pom.xml (original)
+++ syncope/trunk/common/pom.xml Mon Dec 16 11:04:52 2013
@@ -52,6 +52,10 @@ under the License.
     </dependency>
     <dependency>
       <groupId>org.apache.cxf</groupId>
+      <artifactId>cxf-rt-rs-extension-search</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.cxf</groupId>
       <artifactId>cxf-rt-rs-service-description</artifactId>
     </dependency>
           

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/AbstractBaseBean.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/AbstractBaseBean.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/AbstractBaseBean.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/AbstractBaseBean.java Mon Dec 16 11:04:52 2013
@@ -19,11 +19,18 @@
 package org.apache.syncope.common;
 
 import java.io.Serializable;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlType;
 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.to.AbstractTaskTO;
+import org.apache.syncope.common.to.ReportTO;
 
+@XmlType
+// Reporting here only classes used via PagedResult
+@XmlSeeAlso({ AbstractTaskTO.class, ReportTO.class })
 public abstract class AbstractBaseBean implements Serializable {
 
     private static final long serialVersionUID = 3119542005279892164L;

Copied: syncope/trunk/common/src/main/java/org/apache/syncope/common/SyncopeClientCompositeException.java (from r1550061, syncope/trunk/common/src/main/java/org/apache/syncope/common/validation/SyncopeClientCompositeException.java)
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/SyncopeClientCompositeException.java?p2=syncope/trunk/common/src/main/java/org/apache/syncope/common/SyncopeClientCompositeException.java&p1=syncope/trunk/common/src/main/java/org/apache/syncope/common/validation/SyncopeClientCompositeException.java&r1=1550061&r2=1551172&rev=1551172&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/validation/SyncopeClientCompositeException.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/SyncopeClientCompositeException.java Mon Dec 16 11:04:52 2013
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.syncope.common.validation;
+package org.apache.syncope.common;
 
 import java.util.HashSet;
 import java.util.Iterator;

Copied: syncope/trunk/common/src/main/java/org/apache/syncope/common/SyncopeClientException.java (from r1550061, syncope/trunk/common/src/main/java/org/apache/syncope/common/validation/SyncopeClientException.java)
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/SyncopeClientException.java?p2=syncope/trunk/common/src/main/java/org/apache/syncope/common/SyncopeClientException.java&p1=syncope/trunk/common/src/main/java/org/apache/syncope/common/validation/SyncopeClientException.java&r1=1550061&r2=1551172&rev=1551172&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/validation/SyncopeClientException.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/SyncopeClientException.java Mon Dec 16 11:04:52 2013
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.syncope.common.validation;
+package org.apache.syncope.common;
 
 import java.util.ArrayList;
 import java.util.List;

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/report/RoleReportletConf.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/report/RoleReportletConf.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/report/RoleReportletConf.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/report/RoleReportletConf.java Mon Dec 16 11:04:52 2013
@@ -28,7 +28,6 @@ import javax.xml.bind.annotation.XmlRoot
 import javax.xml.bind.annotation.XmlType;
 
 import org.apache.syncope.common.annotation.FormAttributeField;
-import org.apache.syncope.common.search.NodeCond;
 import org.apache.syncope.common.types.IntMappingType;
 
 @XmlRootElement(name = "roleReportletConf")
@@ -51,7 +50,7 @@ public class RoleReportletConf extends A
 
     }
 
-    private NodeCond matchingCond;
+    private String matchingCond;
 
     @FormAttributeField(schema = IntMappingType.RoleSchema)
     private List<String> attrs;
@@ -105,11 +104,11 @@ public class RoleReportletConf extends A
         return features;
     }
 
-    public NodeCond getMatchingCond() {
+    public String getMatchingCond() {
         return matchingCond;
     }
 
-    public void setMatchingCond(final NodeCond matchingCond) {
+    public void setMatchingCond(final String matchingCond) {
         this.matchingCond = matchingCond;
     }
 }

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/report/UserReportletConf.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/report/UserReportletConf.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/report/UserReportletConf.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/report/UserReportletConf.java Mon Dec 16 11:04:52 2013
@@ -29,7 +29,6 @@ import javax.xml.bind.annotation.XmlRoot
 import javax.xml.bind.annotation.XmlType;
 
 import org.apache.syncope.common.annotation.FormAttributeField;
-import org.apache.syncope.common.search.NodeCond;
 import org.apache.syncope.common.types.IntMappingType;
 
 @XmlRootElement(name = "userReportletConf")
@@ -56,7 +55,7 @@ public class UserReportletConf extends A
 
     private static final long serialVersionUID = 6602717600064602764L;
 
-    private NodeCond matchingCond;
+    private String matchingCond;
 
     @FormAttributeField(schema = IntMappingType.UserSchema)
     private List<String> attrs = new ArrayList<String>();
@@ -105,11 +104,11 @@ public class UserReportletConf extends A
         return features;
     }
 
-    public NodeCond getMatchingCond() {
+    public String getMatchingCond() {
         return matchingCond;
     }
 
-    public void setMatchingCond(final NodeCond matchingCond) {
+    public void setMatchingCond(final String matchingCond) {
         this.matchingCond = matchingCond;
     }
 }

Copied: syncope/trunk/common/src/main/java/org/apache/syncope/common/reqres/BulkAction.java (from r1550061, syncope/trunk/common/src/main/java/org/apache/syncope/common/to/BulkAction.java)
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/reqres/BulkAction.java?p2=syncope/trunk/common/src/main/java/org/apache/syncope/common/reqres/BulkAction.java&p1=syncope/trunk/common/src/main/java/org/apache/syncope/common/to/BulkAction.java&r1=1550061&r2=1551172&rev=1551172&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/to/BulkAction.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/reqres/BulkAction.java Mon Dec 16 11:04:52 2013
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.syncope.common.to;
+package org.apache.syncope.common.reqres;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import java.util.ArrayList;

Copied: syncope/trunk/common/src/main/java/org/apache/syncope/common/reqres/BulkActionResult.java (from r1550061, syncope/trunk/common/src/main/java/org/apache/syncope/common/to/BulkActionRes.java)
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/reqres/BulkActionResult.java?p2=syncope/trunk/common/src/main/java/org/apache/syncope/common/reqres/BulkActionResult.java&p1=syncope/trunk/common/src/main/java/org/apache/syncope/common/to/BulkActionRes.java&r1=1550061&r2=1551172&rev=1551172&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/to/BulkActionRes.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/reqres/BulkActionResult.java Mon Dec 16 11:04:52 2013
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.syncope.common.to;
+package org.apache.syncope.common.reqres;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonProperty;
@@ -31,9 +31,9 @@ import javax.xml.bind.annotation.XmlRoot
 import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.AbstractBaseBean;
 
-@XmlRootElement(name = "bulkActionRes")
+@XmlRootElement(name = "bulkActionResult")
 @XmlType
-public class BulkActionRes extends AbstractBaseBean {
+public class BulkActionResult extends AbstractBaseBean {
 
     private static final long serialVersionUID = 2868894178821778133L;
 
@@ -48,10 +48,10 @@ public class BulkActionRes extends Abstr
 
     private final List<Result> results = new ArrayList<Result>();
 
-    @XmlElementWrapper(name = "results")
-    @XmlElement(name = "result")
-    @JsonProperty("results")
-    public List<Result> getResults() {
+    @XmlElementWrapper(name = "result")
+    @XmlElement(name = "item")
+    @JsonProperty("result")
+    public List<Result> getResult() {
         return results;
     }
 

Copied: syncope/trunk/common/src/main/java/org/apache/syncope/common/reqres/BulkAssociationAction.java (from r1550061, syncope/trunk/common/src/main/java/org/apache/syncope/common/to/BulkAssociationAction.java)
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/reqres/BulkAssociationAction.java?p2=syncope/trunk/common/src/main/java/org/apache/syncope/common/reqres/BulkAssociationAction.java&p1=syncope/trunk/common/src/main/java/org/apache/syncope/common/to/BulkAssociationAction.java&r1=1550061&r2=1551172&rev=1551172&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/to/BulkAssociationAction.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/reqres/BulkAssociationAction.java Mon Dec 16 11:04:52 2013
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.syncope.common.to;
+package org.apache.syncope.common.reqres;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import java.util.ArrayList;

Added: syncope/trunk/common/src/main/java/org/apache/syncope/common/reqres/PagedResult.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/reqres/PagedResult.java?rev=1551172&view=auto
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/reqres/PagedResult.java (added)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/reqres/PagedResult.java Mon Dec 16 11:04:52 2013
@@ -0,0 +1,98 @@
+/*
+ * 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.common.reqres;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import org.apache.syncope.common.AbstractBaseBean;
+
+@XmlRootElement(name = "pagedResult")
+@XmlType
+public class PagedResult<T extends AbstractBaseBean> extends AbstractBaseBean {
+
+    private static final long serialVersionUID = 3472875885259250934L;
+
+    private URI prev;
+
+    private URI next;
+
+    private final List<T> result = new ArrayList<T>();
+
+    private int page;
+
+    private int size;
+
+    private int totalCount;
+
+    public URI getPrev() {
+        return prev;
+    }
+
+    public void setPrev(final URI prev) {
+        this.prev = prev;
+    }
+
+    public URI getNext() {
+        return next;
+    }
+
+    public void setNext(final URI next) {
+        this.next = next;
+    }
+
+    @XmlElementWrapper(name = "result")
+    @XmlElement(name = "item")
+    @JsonProperty("result")
+    @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY, property = "@class")
+    public List<T> getResult() {
+        return result;
+    }
+
+    public int getPage() {
+        return page;
+    }
+
+    public void setPage(final int page) {
+        this.page = page;
+    }
+
+    public int getSize() {
+        return size;
+    }
+
+    public void setSize(final int size) {
+        this.size = size;
+    }
+
+    public int getTotalCount() {
+        return totalCount;
+    }
+
+    public void setTotalCount(final int totalCount) {
+        this.totalCount = totalCount;
+    }
+
+}

Propchange: syncope/trunk/common/src/main/java/org/apache/syncope/common/reqres/PagedResult.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: syncope/trunk/common/src/main/java/org/apache/syncope/common/reqres/PagedResult.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: syncope/trunk/common/src/main/java/org/apache/syncope/common/reqres/PagedResult.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SearchableFields.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SearchableFields.java?rev=1551172&view=auto
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SearchableFields.java (added)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SearchableFields.java Mon Dec 16 11:04:52 2013
@@ -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.common.search;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import org.apache.commons.lang3.ArrayUtils;
+import org.apache.syncope.common.to.AbstractAttributableTO;
+import org.apache.syncope.common.to.RoleTO;
+import org.apache.syncope.common.to.UserTO;
+import org.apache.syncope.common.types.AttributableType;
+
+public class SearchableFields {
+
+    protected static final String[] ATTRIBUTES_NOTINCLUDED = {
+        "attrs", "derAttrs", "virAttrs",
+        "serialVersionUID", "memberships", "entitlements", "resources", "password",
+        "propagationTOs", "propagationStatusMap"
+    };
+
+    public static final List<String> get(final AttributableType attributableType) {
+        return get(attributableType == AttributableType.USER
+                ? UserTO.class
+                : RoleTO.class);
+    }
+
+    public static final List<String> get(final Class<? extends AbstractAttributableTO> attributableRef) {
+        final List<String> fieldNames = new ArrayList<String>();
+
+        // loop on class and all superclasses searching for field
+        Class<?> clazz = attributableRef;
+        while (clazz != null && clazz != Object.class) {
+            for (Field field : clazz.getDeclaredFields()) {
+                if (!ArrayUtils.contains(ATTRIBUTES_NOTINCLUDED, field.getName())) {
+                    fieldNames.add(field.getName());
+                }
+            }
+            clazz = clazz.getSuperclass();
+        }
+
+        Collections.reverse(fieldNames);
+        return fieldNames;
+
+    }
+
+    private SearchableFields() {
+        // empty constructor for static utility class
+    }
+}

Propchange: syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SearchableFields.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SearchableFields.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SearchableFields.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SpecialAttr.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SpecialAttr.java?rev=1551172&view=auto
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SpecialAttr.java (added)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SpecialAttr.java Mon Dec 16 11:04:52 2013
@@ -0,0 +1,50 @@
+/*
+ * 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.common.search;
+
+public enum SpecialAttr {
+
+    NULL("$null"),
+    RESOURCES("$resources"),
+    ROLES("$roles"),
+    ENTITLEMENTS("$entitlements");
+
+    private final String literal;
+
+    SpecialAttr(final String literal) {
+        this.literal = literal;
+    }
+
+    public static SpecialAttr fromString(final String value) {
+        SpecialAttr result = null;
+        for (SpecialAttr specialAttr : values()) {
+            if (specialAttr.literal.equals(value)) {
+                result = specialAttr;
+            }
+        }
+
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        return literal;
+    }
+
+}

Propchange: syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SpecialAttr.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SpecialAttr.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SpecialAttr.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SyncopeFiqlSearchConditionBuilder.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SyncopeFiqlSearchConditionBuilder.java?rev=1551172&view=auto
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SyncopeFiqlSearchConditionBuilder.java (added)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SyncopeFiqlSearchConditionBuilder.java Mon Dec 16 11:04:52 2013
@@ -0,0 +1,158 @@
+/*
+ * 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.common.search;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.cxf.jaxrs.ext.search.SearchUtils;
+import org.apache.cxf.jaxrs.ext.search.client.CompleteCondition;
+import org.apache.cxf.jaxrs.ext.search.client.FiqlSearchConditionBuilder;
+import org.apache.cxf.jaxrs.ext.search.fiql.FiqlParser;
+
+/**
+ * Extends <tt>FiqlSearchConditionBuilder</tt> by providing some additional facilities for searching in Syncope.
+ */
+public class SyncopeFiqlSearchConditionBuilder extends FiqlSearchConditionBuilder {
+
+    public static final Map<String, String> CONTEXTUAL_PROPERTIES;
+
+    static {
+        CONTEXTUAL_PROPERTIES = new HashMap<String, String>();
+        CONTEXTUAL_PROPERTIES.put(SearchUtils.LAX_PROPERTY_MATCH, "true");
+    }
+
+    public SyncopeFiqlSearchConditionBuilder() {
+        super();
+    }
+
+    public SyncopeFiqlSearchConditionBuilder(final Map<String, String> properties) {
+        super(properties);
+    }
+
+    @Override
+    protected Builder newBuilderInstance() {
+        return new Builder(properties);
+    }
+
+    @Override
+    public SyncopeProperty is(final String property) {
+        return newBuilderInstance().is(property);
+    }
+
+    public CompleteCondition isNull(final String property) {
+        return newBuilderInstance().is(property).nullValue();
+    }
+
+    public CompleteCondition isNotNull(final String property) {
+        return newBuilderInstance().is(property).notNullValue();
+    }
+
+    public CompleteCondition hasRoles(final Long role, final Long... moreRoles) {
+        return newBuilderInstance().is(SpecialAttr.ROLES.toString()).hasRoles(role, moreRoles);
+    }
+
+    public CompleteCondition hasNotRoles(final Long role, final Long... moreRoles) {
+        return newBuilderInstance().is(SpecialAttr.ROLES.toString()).hasNotRoles(role, moreRoles);
+    }
+
+    public CompleteCondition hasResources(final String resource, final String... moreResources) {
+        return newBuilderInstance().is(SpecialAttr.RESOURCES.toString()).hasResources(resource, moreResources);
+    }
+
+    public CompleteCondition hasNotResources(final String resource, final String... moreResources) {
+        return newBuilderInstance().is(SpecialAttr.RESOURCES.toString()).hasNotResources(resource, moreResources);
+    }
+
+    public CompleteCondition hasEntitlements(final String entitlement, final String... moreEntitlements) {
+        return newBuilderInstance().is(SpecialAttr.ENTITLEMENTS.toString()).
+                hasEntitlements(entitlement, moreEntitlements);
+    }
+
+    public CompleteCondition hasNotEntitlements(final String entitlement, final String... moreEntitlements) {
+        return newBuilderInstance().is(SpecialAttr.ENTITLEMENTS.toString()).
+                hasNotEntitlements(entitlement, moreEntitlements);
+    }
+
+    protected static class Builder extends FiqlSearchConditionBuilder.Builder
+            implements SyncopeProperty, CompleteCondition {
+
+        public Builder(final Map<String, String> properties) {
+            super(properties);
+        }
+
+        public Builder(final Builder parent) {
+            super(parent);
+        }
+
+        @Override
+        public SyncopeProperty is(final String property) {
+            Builder b = new Builder(this);
+            b.result = property;
+            return b;
+        }
+
+        @Override
+        public CompleteCondition nullValue() {
+            return condition(FiqlParser.EQ, SpecialAttr.NULL);
+        }
+
+        @Override
+        public CompleteCondition notNullValue() {
+            return condition(FiqlParser.NEQ, SpecialAttr.NULL);
+        }
+
+        @Override
+        public CompleteCondition hasRoles(final Long role, final Long... moreRoles) {
+            this.result = SpecialAttr.ROLES.toString();
+            return condition(FiqlParser.EQ, role, (Object[]) moreRoles);
+        }
+
+        @Override
+        public CompleteCondition hasNotRoles(final Long role, final Long... moreRoles) {
+            this.result = SpecialAttr.ROLES.toString();
+            return condition(FiqlParser.NEQ, role, (Object[]) moreRoles);
+        }
+
+        @Override
+        public CompleteCondition hasResources(final String resource, final String... moreResources) {
+            this.result = SpecialAttr.RESOURCES.toString();
+            return condition(FiqlParser.EQ, resource, (Object[]) moreResources);
+        }
+
+        @Override
+        public CompleteCondition hasNotResources(final String resource, final String... moreResources) {
+            this.result = SpecialAttr.RESOURCES.toString();
+            return condition(FiqlParser.NEQ, resource, (Object[]) moreResources);
+        }
+
+        @Override
+        public CompleteCondition hasEntitlements(final String entitlement, final String... moreEntitlements) {
+            this.result = SpecialAttr.ENTITLEMENTS.toString();
+            return condition(FiqlParser.EQ, entitlement, (Object[]) moreEntitlements);
+        }
+
+        @Override
+        public CompleteCondition hasNotEntitlements(final String entitlement, final String... moreEntitlements) {
+            this.result = SpecialAttr.ENTITLEMENTS.toString();
+            return condition(FiqlParser.NEQ, entitlement, (Object[]) moreEntitlements);
+        }
+
+    }
+
+}

Propchange: syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SyncopeFiqlSearchConditionBuilder.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SyncopeFiqlSearchConditionBuilder.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SyncopeFiqlSearchConditionBuilder.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SyncopeProperty.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SyncopeProperty.java?rev=1551172&view=auto
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SyncopeProperty.java (added)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SyncopeProperty.java Mon Dec 16 11:04:52 2013
@@ -0,0 +1,45 @@
+/*
+ * 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.common.search;
+
+import org.apache.cxf.jaxrs.ext.search.client.CompleteCondition;
+import org.apache.cxf.jaxrs.ext.search.client.Property;
+
+/**
+ * Extension of fluent interface, for {@link SyncopeFiqlSearchConditionBuilder}.
+ */
+public interface SyncopeProperty extends Property {
+
+    CompleteCondition nullValue();
+
+    CompleteCondition notNullValue();
+
+    CompleteCondition hasRoles(Long role, Long... moreRoles);
+
+    CompleteCondition hasNotRoles(Long role, Long... moreRoles);
+
+    CompleteCondition hasResources(String resource, String... moreResources);
+
+    CompleteCondition hasNotResources(String resource, String... moreResources);
+
+    CompleteCondition hasEntitlements(String entitlement, String... moreEntitlements);
+
+    CompleteCondition hasNotEntitlements(String entitlement, String... moreEntitlements);
+
+}

Propchange: syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SyncopeProperty.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SyncopeProperty.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SyncopeProperty.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ConfigurationService.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ConfigurationService.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ConfigurationService.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ConfigurationService.java Mon Dec 16 11:04:52 2013
@@ -30,11 +30,11 @@ import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 import org.apache.syncope.common.to.ConfigurationTO;
-import org.apache.syncope.common.to.MailTemplateTO;
-import org.apache.syncope.common.to.ValidatorTO;
+import org.apache.syncope.common.wrap.MailTemplate;
+import org.apache.syncope.common.wrap.Validator;
 
 @Path("configurations")
-public interface ConfigurationService {
+public interface ConfigurationService extends JAXRSService {
 
     /**
      * Creates a new configuration element.
@@ -68,7 +68,7 @@ public interface ConfigurationService {
     @GET
     @Path("mailTemplates")
     @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
-    List<MailTemplateTO> getMailTemplates();
+    List<MailTemplate> getMailTemplates();
 
     /**
      * @return Returns a list of known validator names.
@@ -76,7 +76,7 @@ public interface ConfigurationService {
     @GET
     @Path("validators")
     @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
-    List<ValidatorTO> getValidators();
+    List<Validator> getValidators();
 
     /**
      * @return list of all configuration elements.

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ConnectorService.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ConnectorService.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ConnectorService.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ConnectorService.java Mon Dec 16 11:04:52 2013
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.services;
 
+import org.apache.syncope.common.reqres.BulkAction;
+import org.apache.syncope.common.reqres.BulkActionResult;
 import java.util.List;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.DELETE;
@@ -31,8 +33,6 @@ import javax.ws.rs.Produces;
 import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
-import org.apache.syncope.common.to.BulkAction;
-import org.apache.syncope.common.to.BulkActionRes;
 import org.apache.syncope.common.to.ConnBundleTO;
 import org.apache.syncope.common.to.ConnIdObjectClassTO;
 import org.apache.syncope.common.to.ConnInstanceTO;
@@ -42,7 +42,7 @@ import org.apache.syncope.common.types.C
 @Path("connectors")
 @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
 @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
-public interface ConnectorService {
+public interface ConnectorService extends JAXRSService {
 
     /**
      * Create a new connector instance.
@@ -149,5 +149,5 @@ public interface ConnectorService {
 
     @POST
     @Path("bulk")
-    BulkActionRes bulk(BulkAction bulkAction);
+    BulkActionResult bulk(BulkAction bulkAction);
 }

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/services/EntitlementService.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/services/EntitlementService.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/services/EntitlementService.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/services/EntitlementService.java Mon Dec 16 11:04:52 2013
@@ -26,12 +26,12 @@ import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;
 
-import org.apache.syncope.common.to.EntitlementTO;
+import org.apache.syncope.common.wrap.EntitlementTO;
 
 @Path("entitlements")
 @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
 @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
-public interface EntitlementService {
+public interface EntitlementService extends JAXRSService {
 
     /**
      * @return Returns a collection of all known entitlements.

Added: syncope/trunk/common/src/main/java/org/apache/syncope/common/services/JAXRSService.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/services/JAXRSService.java?rev=1551172&view=auto
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/services/JAXRSService.java (added)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/services/JAXRSService.java Mon Dec 16 11:04:52 2013
@@ -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.common.services;
+
+public interface JAXRSService {
+
+    static final String PARAM_PAGE = "page";
+
+    static final String DEFAULT_PARAM_PAGE = "1";
+
+    static final int DEFAULT_PARAM_PAGE_VALUE = Integer.valueOf(DEFAULT_PARAM_PAGE);
+
+    static final String PARAM_SIZE = "size";
+
+    static final String DEFAULT_PARAM_SIZE = "25";
+
+    static final int DEFAULT_PARAM_SIZE_VALUE = Integer.valueOf(DEFAULT_PARAM_SIZE);
+
+}

Propchange: syncope/trunk/common/src/main/java/org/apache/syncope/common/services/JAXRSService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: syncope/trunk/common/src/main/java/org/apache/syncope/common/services/JAXRSService.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: syncope/trunk/common/src/main/java/org/apache/syncope/common/services/JAXRSService.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/services/LoggerService.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/services/LoggerService.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/services/LoggerService.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/services/LoggerService.java Mon Dec 16 11:04:52 2013
@@ -34,9 +34,9 @@ import org.apache.syncope.common.to.Logg
 import org.apache.syncope.common.types.LoggerType;
 
 @Path("logger")
-@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
-@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
-public interface LoggerService {
+@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
+@Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
+public interface LoggerService extends JAXRSService {
 
     /**
      * @param type LoggerType to be selected.

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/services/NotificationService.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/services/NotificationService.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/services/NotificationService.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/services/NotificationService.java Mon Dec 16 11:04:52 2013
@@ -35,7 +35,7 @@ import org.apache.syncope.common.to.Noti
 @Path("notifications")
 @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
 @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
-public interface NotificationService {
+public interface NotificationService extends JAXRSService {
 
     /**
      * @param notificationTO Creates a new notification.

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/services/PolicyService.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/services/PolicyService.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/services/PolicyService.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/services/PolicyService.java Mon Dec 16 11:04:52 2013
@@ -30,14 +30,14 @@ import javax.ws.rs.PathParam;
 import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
-import org.apache.syncope.common.to.CorrelationRuleClassTO;
+import org.apache.syncope.common.wrap.CorrelationRuleClass;
 import org.apache.syncope.common.to.AbstractPolicyTO;
 import org.apache.syncope.common.types.PolicyType;
 
 @Path("policies")
 @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
 @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
-public interface PolicyService {
+public interface PolicyService extends JAXRSService {
 
     /**
      * @param policyTO Policy to be created (needs to match type)
@@ -95,5 +95,5 @@ public interface PolicyService {
      */
     @GET
     @Path("syncCorrelationRuleClasses")
-    List<CorrelationRuleClassTO> getSyncCorrelationRuleClasses();
+    List<CorrelationRuleClass> getSyncCorrelationRuleClasses();
 }

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ReportService.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ReportService.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ReportService.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ReportService.java Mon Dec 16 11:04:52 2013
@@ -18,7 +18,7 @@
  */
 package org.apache.syncope.common.services;
 
-import org.apache.syncope.common.types.ReportletConfClasses;
+import org.apache.syncope.common.reqres.PagedResult;
 import java.util.List;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.DELETE;
@@ -35,11 +35,12 @@ import javax.ws.rs.core.Response;
 import org.apache.syncope.common.to.ReportExecTO;
 import org.apache.syncope.common.to.ReportTO;
 import org.apache.syncope.common.types.ReportExecExportFormat;
+import org.apache.syncope.common.wrap.ReportletConfClass;
 
 @Path("reports")
 @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
 @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
-public interface ReportService {
+public interface ReportService extends JAXRSService {
 
     /**
      * @param reportTO Report to be created
@@ -85,28 +86,22 @@ public interface ReportService {
      */
     @GET
     @Path("reportletConfClasses")
-    ReportletConfClasses getReportletConfClasses();
+    List<ReportletConfClass> getReportletConfClasses();
 
     /**
-     * @return Returns a list of all reports
+     * @return Paged list of all existing reports
      */
     @GET
-    List<ReportTO> list();
-
-    /**
-     * @return Returns number of existing reports
-     */
-    @GET
-    @Path("count")
-    int count();
+    PagedResult<ReportTO> list();
 
     /**
      * @param page selected page in relation to size
-     * @param size Number of items per page
-     * @return Returns a list of reports according to pagination
+     * @param size number of entries per page
+     * @return Paged list of existing reports matching page/size conditions
      */
     @GET
-    List<ReportTO> list(@QueryParam("page") int page, @QueryParam("size") @DefaultValue("25") int size);
+    PagedResult<ReportTO> list(@QueryParam(PARAM_PAGE) @DefaultValue(DEFAULT_PARAM_PAGE) int page,
+            @QueryParam(PARAM_SIZE) @DefaultValue(DEFAULT_PARAM_SIZE) int size);
 
     /**
      * @param reportId ID of report to be read

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ResourceService.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ResourceService.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ResourceService.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ResourceService.java Mon Dec 16 11:04:52 2013
@@ -18,6 +18,9 @@
  */
 package org.apache.syncope.common.services;
 
+import org.apache.syncope.common.reqres.BulkAssociationAction;
+import org.apache.syncope.common.reqres.BulkAction;
+import org.apache.syncope.common.reqres.BulkActionResult;
 import java.util.List;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.DELETE;
@@ -30,18 +33,15 @@ import javax.ws.rs.PathParam;
 import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
-import org.apache.syncope.common.to.BulkAction;
-import org.apache.syncope.common.to.BulkActionRes;
-import org.apache.syncope.common.to.BulkAssociationAction;
 import org.apache.syncope.common.to.ConnObjectTO;
-import org.apache.syncope.common.to.PropagationActionClassTO;
+import org.apache.syncope.common.wrap.PropagationActionClass;
 import org.apache.syncope.common.to.ResourceTO;
 import org.apache.syncope.common.types.AttributableType;
 
 @Path("resources")
 @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
 @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
-public interface ResourceService {
+public interface ResourceService extends JAXRSService {
 
     /**
      * @param resourceTO Resource to be checked
@@ -81,7 +81,7 @@ public interface ResourceService {
      */
     @GET
     @Path("propagationActionsClasses")
-    List<PropagationActionClassTO> getPropagationActionsClasses();
+    List<PropagationActionClass> getPropagationActionsClasses();
 
     /**
      * @return Returns list of all Resources
@@ -114,10 +114,10 @@ public interface ResourceService {
 
     @POST
     @Path("bulk")
-    BulkActionRes bulk(BulkAction bulkAction);
+    BulkActionResult bulk(BulkAction bulkAction);
 
     @POST
     @Path("{resourceName}/bulkAssociation/{type}")
-    BulkActionRes bulkAssociation(@PathParam("resourceName") String resourceName,
+    BulkActionResult bulkAssociation(@PathParam("resourceName") String resourceName,
             BulkAssociationAction bulkAssociationAction, @PathParam("type") AttributableType type);
 }

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/services/RoleService.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/services/RoleService.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/services/RoleService.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/services/RoleService.java Mon Dec 16 11:04:52 2013
@@ -18,6 +18,7 @@
  */
 package org.apache.syncope.common.services;
 
+import org.apache.syncope.common.reqres.PagedResult;
 import java.util.List;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.DELETE;
@@ -31,16 +32,17 @@ import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
-import org.apache.syncope.common.search.NodeCond;
+import org.apache.cxf.jaxrs.model.wadl.Description;
+
 import org.apache.syncope.common.mod.RoleMod;
-import org.apache.syncope.common.to.ResourceNameTO;
 import org.apache.syncope.common.to.RoleTO;
 import org.apache.syncope.common.types.ResourceAssociationActionType;
+import org.apache.syncope.common.wrap.ResourceName;
 
 @Path("roles")
 @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
 @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
-public interface RoleService {
+public interface RoleService extends JAXRSService {
 
     /**
      * @param roleId ID of role to get children from
@@ -51,13 +53,6 @@ public interface RoleService {
     List<RoleTO> children(@PathParam("roleId") Long roleId);
 
     /**
-     * @return Returns number of known roles. (size of list)
-     */
-    @GET
-    @Path("count")
-    int count();
-
-    /**
      * @param roleTO Role to be created
      * @return <tt>Response</tt> object featuring <tt>Location</tt> header of created role as well as the role itself
      * enriched with propagation status information, as <tt>Entity</tt>
@@ -75,19 +70,19 @@ public interface RoleService {
     Response delete(@PathParam("roleId") Long roleId);
 
     /**
-     * @return Returns list of all knwon roles
+     * @return Paged list of all existing roles
      */
     @GET
-    List<RoleTO> list();
+    PagedResult<RoleTO> list();
 
     /**
-     * @param page Page of roles in relation to size parameter
-     * @param size Number of roles to be displayed per page
-     * @return Returns paginated list of roles
+     * @param page result page number
+     * @param size number of entries per page
+     * @return Paged list of existing roles matching page/size conditions
      */
     @GET
-    List<RoleTO> list(@QueryParam("page") @DefaultValue("1") int page,
-            @QueryParam("size") @DefaultValue("25") int size);
+    PagedResult<RoleTO> list(@QueryParam(PARAM_PAGE) @DefaultValue(DEFAULT_PARAM_PAGE) int page,
+            @QueryParam(PARAM_SIZE) @DefaultValue(DEFAULT_PARAM_SIZE) int size);
 
     /**
      * @param roleId Id of role to get parent role from
@@ -106,34 +101,24 @@ public interface RoleService {
     RoleTO read(@PathParam("roleId") Long roleId);
 
     /**
-     * @param searchCondition Filter condition for role list
-     * @return Returns list of roles with matching filter conditions
-     * @throws InvalidSearchConditionException if given search condition is not valid
+     * @param fiql FIQL search expression
+     * @return Paged list of roles matching the provided FIQL search condition
      */
-    @POST
+    @GET
     @Path("search")
-    List<RoleTO> search(NodeCond searchCondition) throws InvalidSearchConditionException;
+    PagedResult<RoleTO> search(@Description("FIQL search expression") @QueryParam("fiql") String fiql);
 
     /**
-     * @param searchCondition Filter condition for role list
-     * @param page Page of roles in relation to size parameter
-     * @param size Number of roles to be displayed per page
-     * @return Returns paginated list of roles with matching filter conditions
-     * @throws InvalidSearchConditionException if given search condition is not valid
+     * @param fiql FIQL search expression
+     * @param page result page number
+     * @param size number of entries per page
+     * @return Paged list of roles matching the provided FIQL search condition
      */
-    @POST
+    @GET
     @Path("search")
-    List<RoleTO> search(NodeCond searchCondition, @QueryParam("page") @DefaultValue("1") int page,
-            @QueryParam("size") @DefaultValue("25") int size) throws InvalidSearchConditionException;
-
-    /**
-     * @param searchCondition Filter condition for role list
-     * @return Returns number of roles matching provided filter conditions
-     * @throws InvalidSearchConditionException if given search condition is not valid
-     */
-    @POST
-    @Path("search/count")
-    int searchCount(NodeCond searchCondition) throws InvalidSearchConditionException;
+    PagedResult<RoleTO> search(@Description("FIQL search expression") @QueryParam("fiql") String fiql,
+            @QueryParam(PARAM_PAGE) @DefaultValue(DEFAULT_PARAM_PAGE) int page,
+            @QueryParam(PARAM_SIZE) @DefaultValue(DEFAULT_PARAM_SIZE) int size);
 
     /**
      * This method is similar to {@link #read(Long)}, but uses different authentication handling to ensure that a user
@@ -168,5 +153,5 @@ public interface RoleService {
     @POST
     @Path("{roleId}/associate/{type}")
     Response associate(@PathParam("roleId") Long roleId, @PathParam("type") ResourceAssociationActionType type,
-            List<ResourceNameTO> resourceNames);
+            List<ResourceName> resourceNames);
 }

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/services/SchemaService.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/services/SchemaService.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/services/SchemaService.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/services/SchemaService.java Mon Dec 16 11:04:52 2013
@@ -36,7 +36,7 @@ import org.apache.syncope.common.types.S
 @Path("schemas/{kind}/{type}")
 @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
 @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
-public interface SchemaService {
+public interface SchemaService extends JAXRSService {
 
     /**
      * @param <T> actual SchemaTO

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/services/TaskService.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/services/TaskService.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/services/TaskService.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/services/TaskService.java Mon Dec 16 11:04:52 2013
@@ -18,6 +18,9 @@
  */
 package org.apache.syncope.common.services;
 
+import org.apache.syncope.common.reqres.PagedResult;
+import org.apache.syncope.common.reqres.BulkAction;
+import org.apache.syncope.common.reqres.BulkActionResult;
 import java.util.List;
 import javax.ws.rs.Consumes;
 
@@ -33,12 +36,10 @@ import javax.ws.rs.Produces;
 import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
-import org.apache.syncope.common.to.BulkAction;
-import org.apache.syncope.common.to.BulkActionRes;
 
-import org.apache.syncope.common.to.JobClassTO;
+import org.apache.syncope.common.wrap.JobClass;
 import org.apache.syncope.common.to.ReportExecTO;
-import org.apache.syncope.common.to.SyncActionClassTO;
+import org.apache.syncope.common.wrap.SyncActionClass;
 import org.apache.syncope.common.to.TaskExecTO;
 import org.apache.syncope.common.to.AbstractTaskTO;
 import org.apache.syncope.common.to.SchedTaskTO;
@@ -47,15 +48,7 @@ import org.apache.syncope.common.types.T
 @Path("tasks")
 @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
 @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
-public interface TaskService {
-
-    /**
-     * @param taskType filter for task count
-     * @return Returns number of tasks with matching type
-     */
-    @GET
-    @Path("count")
-    int count(@MatrixParam("type") TaskType taskType);
+public interface TaskService extends JAXRSService {
 
     /**
      * @param taskTO Task to be created
@@ -93,14 +86,14 @@ public interface TaskService {
      */
     @GET
     @Path("jobClasses")
-    List<JobClassTO> getJobClasses();
+    List<JobClass> getJobClasses();
 
     /**
      * @return Returns list of SyncActionClasses
      */
     @GET
     @Path("syncActionsClasses")
-    List<SyncActionClassTO> getSyncActionsClasses();
+    List<SyncActionClass> getSyncActionsClasses();
 
     /**
      * @param taskType Type of tasks to be listed
@@ -108,7 +101,7 @@ public interface TaskService {
      * @return Returns list of tasks with matching type
      */
     @GET
-    <T extends AbstractTaskTO> List<T> list(@MatrixParam("type") TaskType taskType);
+    <T extends AbstractTaskTO> PagedResult<T> list(@MatrixParam("type") TaskType taskType);
 
     /**
      * @param taskType Type of tasks to be listed
@@ -118,8 +111,9 @@ public interface TaskService {
      * @return Returns paginated list of task with matching type
      */
     @GET
-    <T extends AbstractTaskTO> List<T> list(@MatrixParam("type") TaskType taskType,
-            @QueryParam("page") int page, @QueryParam("size") @DefaultValue("25") int size);
+    <T extends AbstractTaskTO> PagedResult<T> list(@MatrixParam("type") TaskType taskType,
+            @QueryParam(PARAM_PAGE) @DefaultValue(DEFAULT_PARAM_PAGE) int page,
+            @QueryParam(PARAM_SIZE) @DefaultValue(DEFAULT_PARAM_SIZE) int size);
 
     /**
      * @param taskId Id of task to be read
@@ -156,5 +150,5 @@ public interface TaskService {
 
     @POST
     @Path("bulk")
-    BulkActionRes bulk(BulkAction bulkAction);
+    BulkActionResult bulk(BulkAction bulkAction);
 }