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 2014/08/05 13:20:02 UTC

svn commit: r1615910 [12/12] - in /syncope/trunk: ./ archetype/src/main/resources/ archetype/src/main/resources/archetype-resources/console/ archetype/src/main/resources/archetype-resources/core/ build-tools/src/main/resources/ client/src/main/java/org...

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/services/LoggerServiceImpl.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/services/LoggerServiceImpl.java?rev=1615910&r1=1615909&r2=1615910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/services/LoggerServiceImpl.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/services/LoggerServiceImpl.java Tue Aug  5 11:20:00 2014
@@ -1,116 +1,116 @@
-/*
- * 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.core.services;
-
-import java.text.ParseException;
-import java.util.List;
-
-import javax.ws.rs.BadRequestException;
-import javax.ws.rs.NotFoundException;
-
-import org.apache.syncope.common.services.LoggerService;
-import org.apache.syncope.common.to.EventCategoryTO;
-import org.apache.syncope.common.to.LoggerTO;
-import org.apache.syncope.common.types.AuditLoggerName;
-import org.apache.syncope.common.types.LoggerType;
-import org.apache.syncope.common.util.CollectionWrapper;
-import org.apache.syncope.core.rest.controller.LoggerController;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-@Service
-public class LoggerServiceImpl extends AbstractServiceImpl implements LoggerService {
-
-    @Autowired
-    private LoggerController controller;
-
-    @Override
-    public void delete(final LoggerType type, final String name) {
-        switch (type) {
-            case LOG:
-                controller.deleteLog(name);
-                break;
-
-            case AUDIT:
-                try {
-                    controller.disableAudit(AuditLoggerName.fromLoggerName(name));
-                } catch (IllegalArgumentException e) {
-                    throw new BadRequestException(e);
-                } catch (ParseException e) {
-                    throw new BadRequestException(e);
-                }
-                break;
-
-            default:
-                throw new BadRequestException();
-        }
-
-    }
-
-    @Override
-    public List<LoggerTO> list(final LoggerType type) {
-        switch (type) {
-            case LOG:
-                return controller.listLogs();
-
-            case AUDIT:
-                List<AuditLoggerName> auditLogger = controller.listAudits();
-                return CollectionWrapper.unwrapLogger(auditLogger);
-
-            default:
-                throw new BadRequestException();
-        }
-    }
-
-    @Override
-    public LoggerTO read(final LoggerType type, final String name) {
-        List<LoggerTO> logger = list(type);
-        for (LoggerTO l : logger) {
-            if (l.getName().equals(name)) {
-                return l;
-            }
-        }
-        throw new NotFoundException();
-    }
-
-    @Override
-    public void update(final LoggerType type, final String name, final LoggerTO logger) {
-        switch (type) {
-            case LOG:
-                controller.setLogLevel(name, logger.getLevel().getLevel());
-                break;
-
-            case AUDIT:
-                try {
-                    controller.enableAudit(AuditLoggerName.fromLoggerName(name));
-                } catch (Exception e) {
-                    throw new BadRequestException(e);
-                }
-                break;
-
-            default:
-                throw new BadRequestException();
-        }
-    }
-
-    @Override
-    public List<EventCategoryTO> events() {
-        return controller.listAuditEvents();
-    }
-}
+/*
+ * 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.core.services;
+
+import java.text.ParseException;
+import java.util.List;
+
+import javax.ws.rs.BadRequestException;
+import javax.ws.rs.NotFoundException;
+
+import org.apache.syncope.common.services.LoggerService;
+import org.apache.syncope.common.to.EventCategoryTO;
+import org.apache.syncope.common.to.LoggerTO;
+import org.apache.syncope.common.types.AuditLoggerName;
+import org.apache.syncope.common.types.LoggerType;
+import org.apache.syncope.common.util.CollectionWrapper;
+import org.apache.syncope.core.rest.controller.LoggerController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class LoggerServiceImpl extends AbstractServiceImpl implements LoggerService {
+
+    @Autowired
+    private LoggerController controller;
+
+    @Override
+    public void delete(final LoggerType type, final String name) {
+        switch (type) {
+            case LOG:
+                controller.deleteLog(name);
+                break;
+
+            case AUDIT:
+                try {
+                    controller.disableAudit(AuditLoggerName.fromLoggerName(name));
+                } catch (IllegalArgumentException e) {
+                    throw new BadRequestException(e);
+                } catch (ParseException e) {
+                    throw new BadRequestException(e);
+                }
+                break;
+
+            default:
+                throw new BadRequestException();
+        }
+
+    }
+
+    @Override
+    public List<LoggerTO> list(final LoggerType type) {
+        switch (type) {
+            case LOG:
+                return controller.listLogs();
+
+            case AUDIT:
+                List<AuditLoggerName> auditLogger = controller.listAudits();
+                return CollectionWrapper.unwrapLogger(auditLogger);
+
+            default:
+                throw new BadRequestException();
+        }
+    }
+
+    @Override
+    public LoggerTO read(final LoggerType type, final String name) {
+        List<LoggerTO> logger = list(type);
+        for (LoggerTO l : logger) {
+            if (l.getName().equals(name)) {
+                return l;
+            }
+        }
+        throw new NotFoundException();
+    }
+
+    @Override
+    public void update(final LoggerType type, final String name, final LoggerTO logger) {
+        switch (type) {
+            case LOG:
+                controller.setLogLevel(name, logger.getLevel().getLevel());
+                break;
+
+            case AUDIT:
+                try {
+                    controller.enableAudit(AuditLoggerName.fromLoggerName(name));
+                } catch (Exception e) {
+                    throw new BadRequestException(e);
+                }
+                break;
+
+            default:
+                throw new BadRequestException();
+        }
+    }
+
+    @Override
+    public List<EventCategoryTO> events() {
+        return controller.listAuditEvents();
+    }
+}

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/services/PolicyServiceImpl.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/services/PolicyServiceImpl.java?rev=1615910&r1=1615909&r2=1615910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/services/PolicyServiceImpl.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/services/PolicyServiceImpl.java Tue Aug  5 11:20:00 2014
@@ -1,125 +1,125 @@
-/*
- * 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.core.services;
-
-import java.net.URI;
-import java.util.List;
-import javax.ws.rs.BadRequestException;
-import javax.ws.rs.core.Response;
-import org.apache.syncope.common.services.PolicyService;
-import org.apache.syncope.common.to.AccountPolicyTO;
-import org.apache.syncope.common.wrap.CorrelationRuleClass;
-import org.apache.syncope.common.to.PasswordPolicyTO;
-import org.apache.syncope.common.to.AbstractPolicyTO;
-import org.apache.syncope.common.to.SyncPolicyTO;
-import org.apache.syncope.common.types.RESTHeaders;
-import org.apache.syncope.common.types.PolicyType;
-import org.apache.syncope.common.util.CollectionWrapper;
-import org.apache.syncope.core.rest.controller.PolicyController;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-@Service
-public class PolicyServiceImpl extends AbstractServiceImpl implements PolicyService {
-
-    @Autowired
-    private PolicyController policyController;
-
-    @Override
-    public <T extends AbstractPolicyTO> Response create(final T policyTO) {
-        AbstractPolicyTO policy = policyController.create(policyTO);
-        URI location = uriInfo.getAbsolutePathBuilder().path(String.valueOf(policy.getId())).build();
-        return Response.created(location).
-                header(RESTHeaders.RESOURCE_ID.toString(), policy.getId()).
-                build();
-    }
-
-    @Override
-    public void delete(final Long policyId) {
-        policyController.delete(policyId);
-    }
-
-    @Override
-    public <T extends AbstractPolicyTO> List<T> list(final PolicyType type) {
-        return policyController.list(type);
-    }
-
-    @Override
-    public <T extends AbstractPolicyTO> T read(final Long policyId) {
-        return policyController.read(policyId);
-    }
-
-    @SuppressWarnings("unchecked")
-    @Override
-    public <T extends AbstractPolicyTO> T readGlobal(final PolicyType type) {
-        T result = null;
-
-        switch (type) {
-            case ACCOUNT:
-            case GLOBAL_ACCOUNT:
-                result = (T) policyController.getGlobalAccountPolicy();
-                break;
-
-            case PASSWORD:
-            case GLOBAL_PASSWORD:
-                result = (T) policyController.getGlobalPasswordPolicy();
-                break;
-
-            case SYNC:
-            case GLOBAL_SYNC:
-                result = (T) policyController.getGlobalSyncPolicy();
-                break;
-
-            default:
-                throw new BadRequestException();
-        }
-
-        return result;
-    }
-
-    @Override
-    public <T extends AbstractPolicyTO> void update(final Long policyId, final T policyTO) {
-        policyTO.setId(policyId);
-        
-        switch (policyTO.getType()) {
-            case ACCOUNT:
-            case GLOBAL_ACCOUNT:
-                policyController.update((AccountPolicyTO) policyTO);
-                break;
-
-            case PASSWORD:
-            case GLOBAL_PASSWORD:
-                policyController.update((PasswordPolicyTO) policyTO);
-                break;
-
-            case SYNC:
-            case GLOBAL_SYNC:
-                policyController.update((SyncPolicyTO) policyTO);
-                break;
-
-            default:
-                break;
-        }
-    }
-
-    @Override
-    public List<CorrelationRuleClass> getSyncCorrelationRuleClasses() {
-        return CollectionWrapper.wrap(policyController.getSyncCorrelationRuleClasses(), CorrelationRuleClass.class);
-    }
-}
+/*
+ * 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.core.services;
+
+import java.net.URI;
+import java.util.List;
+import javax.ws.rs.BadRequestException;
+import javax.ws.rs.core.Response;
+import org.apache.syncope.common.services.PolicyService;
+import org.apache.syncope.common.to.AccountPolicyTO;
+import org.apache.syncope.common.wrap.CorrelationRuleClass;
+import org.apache.syncope.common.to.PasswordPolicyTO;
+import org.apache.syncope.common.to.AbstractPolicyTO;
+import org.apache.syncope.common.to.SyncPolicyTO;
+import org.apache.syncope.common.types.RESTHeaders;
+import org.apache.syncope.common.types.PolicyType;
+import org.apache.syncope.common.util.CollectionWrapper;
+import org.apache.syncope.core.rest.controller.PolicyController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class PolicyServiceImpl extends AbstractServiceImpl implements PolicyService {
+
+    @Autowired
+    private PolicyController policyController;
+
+    @Override
+    public <T extends AbstractPolicyTO> Response create(final T policyTO) {
+        AbstractPolicyTO policy = policyController.create(policyTO);
+        URI location = uriInfo.getAbsolutePathBuilder().path(String.valueOf(policy.getId())).build();
+        return Response.created(location).
+                header(RESTHeaders.RESOURCE_ID.toString(), policy.getId()).
+                build();
+    }
+
+    @Override
+    public void delete(final Long policyId) {
+        policyController.delete(policyId);
+    }
+
+    @Override
+    public <T extends AbstractPolicyTO> List<T> list(final PolicyType type) {
+        return policyController.list(type);
+    }
+
+    @Override
+    public <T extends AbstractPolicyTO> T read(final Long policyId) {
+        return policyController.read(policyId);
+    }
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public <T extends AbstractPolicyTO> T readGlobal(final PolicyType type) {
+        T result = null;
+
+        switch (type) {
+            case ACCOUNT:
+            case GLOBAL_ACCOUNT:
+                result = (T) policyController.getGlobalAccountPolicy();
+                break;
+
+            case PASSWORD:
+            case GLOBAL_PASSWORD:
+                result = (T) policyController.getGlobalPasswordPolicy();
+                break;
+
+            case SYNC:
+            case GLOBAL_SYNC:
+                result = (T) policyController.getGlobalSyncPolicy();
+                break;
+
+            default:
+                throw new BadRequestException();
+        }
+
+        return result;
+    }
+
+    @Override
+    public <T extends AbstractPolicyTO> void update(final Long policyId, final T policyTO) {
+        policyTO.setId(policyId);
+        
+        switch (policyTO.getType()) {
+            case ACCOUNT:
+            case GLOBAL_ACCOUNT:
+                policyController.update((AccountPolicyTO) policyTO);
+                break;
+
+            case PASSWORD:
+            case GLOBAL_PASSWORD:
+                policyController.update((PasswordPolicyTO) policyTO);
+                break;
+
+            case SYNC:
+            case GLOBAL_SYNC:
+                policyController.update((SyncPolicyTO) policyTO);
+                break;
+
+            default:
+                break;
+        }
+    }
+
+    @Override
+    public List<CorrelationRuleClass> getSyncCorrelationRuleClasses() {
+        return CollectionWrapper.wrap(policyController.getSyncCorrelationRuleClasses(), CorrelationRuleClass.class);
+    }
+}

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/services/ResourceServiceImpl.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/services/ResourceServiceImpl.java?rev=1615910&r1=1615909&r2=1615910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/services/ResourceServiceImpl.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/services/ResourceServiceImpl.java Tue Aug  5 11:20:00 2014
@@ -1,151 +1,151 @@
-/*
- * 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.core.services;
-
-import java.net.URI;
-import java.util.Collections;
-import java.util.List;
-import java.util.Set;
-import javax.ws.rs.core.Response;
-import org.apache.syncope.common.reqres.BulkAction;
-import org.apache.syncope.common.reqres.BulkActionResult;
-import org.apache.syncope.common.services.ResourceService;
-import org.apache.syncope.common.to.AbstractAttributableTO;
-import org.apache.syncope.common.to.ConnObjectTO;
-import org.apache.syncope.common.to.ResourceTO;
-import org.apache.syncope.common.types.RESTHeaders;
-import org.apache.syncope.common.types.ResourceDeassociationActionType;
-import org.apache.syncope.common.types.SubjectType;
-import org.apache.syncope.common.util.CollectionWrapper;
-import org.apache.syncope.common.wrap.PropagationActionClass;
-import org.apache.syncope.common.wrap.SubjectId;
-import org.apache.syncope.core.rest.controller.AbstractResourceAssociator;
-import org.apache.syncope.core.rest.controller.ResourceController;
-import org.apache.syncope.core.rest.controller.RoleController;
-import org.apache.syncope.core.rest.controller.UserController;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-@Service
-public class ResourceServiceImpl extends AbstractServiceImpl implements ResourceService {
-
-    @Autowired
-    private ResourceController controller;
-
-    @Autowired
-    private UserController userController;
-
-    @Autowired
-    private RoleController roleController;
-
-    @Override
-    public Response create(final ResourceTO resourceTO) {
-        ResourceTO created = controller.create(resourceTO);
-        URI location = uriInfo.getAbsolutePathBuilder().path(created.getName()).build();
-        return Response.created(location).
-                header(RESTHeaders.RESOURCE_ID, created.getName()).
-                build();
-    }
-
-    @Override
-    public void update(final String resourceName, final ResourceTO resourceTO) {
-        resourceTO.setName(resourceName);
-        controller.update(resourceTO);
-    }
-
-    @Override
-    public void delete(final String resourceName) {
-        controller.delete(resourceName);
-    }
-
-    @Override
-    public ResourceTO read(final String resourceName) {
-        return controller.read(resourceName);
-    }
-
-    @Override
-    public List<PropagationActionClass> getPropagationActionsClasses() {
-        return CollectionWrapper.wrap(controller.getPropagationActionsClasses(), PropagationActionClass.class);
-    }
-
-    @Override
-    public List<ResourceTO> list() {
-        return controller.list(null);
-    }
-
-    @Override
-    public List<ResourceTO> list(final Long connInstanceId) {
-        return controller.list(connInstanceId);
-    }
-
-    @Override
-    public ConnObjectTO getConnectorObject(final String resourceName, final SubjectType type, final Long id) {
-        return controller.getConnectorObject(resourceName, type, id);
-    }
-
-    @Override
-    public boolean check(final ResourceTO resourceTO) {
-        return controller.check(resourceTO);
-    }
-
-    @Override
-    public BulkActionResult bulk(final BulkAction bulkAction) {
-        return controller.bulk(bulkAction);
-    }
-
-    @Override
-    public BulkActionResult bulkDeassociation(final String resourceName, final SubjectType subjectType,
-            final ResourceDeassociationActionType type, final List<SubjectId> subjectIds) {
-
-        AbstractResourceAssociator<? extends AbstractAttributableTO> associator = subjectType == SubjectType.USER
-                ? userController
-                : roleController;
-
-        final BulkActionResult res = new BulkActionResult();
-
-        for (SubjectId id : subjectIds) {
-            final Set<String> resources = Collections.singleton(resourceName);
-            try {
-                switch (type) {
-                    case DEPROVISION:
-                        associator.deprovision(id.getElement(), resources);
-                        break;
-
-                    case UNASSIGN:
-                        associator.unassign(id.getElement(), resources);
-                        break;
-
-                    case UNLINK:
-                        associator.unlink(id.getElement(), resources);
-                        break;
-
-                    default:
-                }
-
-                res.add(id, BulkActionResult.Status.SUCCESS);
-            } catch (Exception e) {
-                LOG.warn("While executing {} on {} {}", type, subjectType, id.getElement(), e);
-                res.add(id, BulkActionResult.Status.FAILURE);
-            }
-        }
-
-        return res;
-    }
-
-}
+/*
+ * 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.core.services;
+
+import java.net.URI;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+import javax.ws.rs.core.Response;
+import org.apache.syncope.common.reqres.BulkAction;
+import org.apache.syncope.common.reqres.BulkActionResult;
+import org.apache.syncope.common.services.ResourceService;
+import org.apache.syncope.common.to.AbstractAttributableTO;
+import org.apache.syncope.common.to.ConnObjectTO;
+import org.apache.syncope.common.to.ResourceTO;
+import org.apache.syncope.common.types.RESTHeaders;
+import org.apache.syncope.common.types.ResourceDeassociationActionType;
+import org.apache.syncope.common.types.SubjectType;
+import org.apache.syncope.common.util.CollectionWrapper;
+import org.apache.syncope.common.wrap.PropagationActionClass;
+import org.apache.syncope.common.wrap.SubjectId;
+import org.apache.syncope.core.rest.controller.AbstractResourceAssociator;
+import org.apache.syncope.core.rest.controller.ResourceController;
+import org.apache.syncope.core.rest.controller.RoleController;
+import org.apache.syncope.core.rest.controller.UserController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class ResourceServiceImpl extends AbstractServiceImpl implements ResourceService {
+
+    @Autowired
+    private ResourceController controller;
+
+    @Autowired
+    private UserController userController;
+
+    @Autowired
+    private RoleController roleController;
+
+    @Override
+    public Response create(final ResourceTO resourceTO) {
+        ResourceTO created = controller.create(resourceTO);
+        URI location = uriInfo.getAbsolutePathBuilder().path(created.getName()).build();
+        return Response.created(location).
+                header(RESTHeaders.RESOURCE_ID, created.getName()).
+                build();
+    }
+
+    @Override
+    public void update(final String resourceName, final ResourceTO resourceTO) {
+        resourceTO.setName(resourceName);
+        controller.update(resourceTO);
+    }
+
+    @Override
+    public void delete(final String resourceName) {
+        controller.delete(resourceName);
+    }
+
+    @Override
+    public ResourceTO read(final String resourceName) {
+        return controller.read(resourceName);
+    }
+
+    @Override
+    public List<PropagationActionClass> getPropagationActionsClasses() {
+        return CollectionWrapper.wrap(controller.getPropagationActionsClasses(), PropagationActionClass.class);
+    }
+
+    @Override
+    public List<ResourceTO> list() {
+        return controller.list(null);
+    }
+
+    @Override
+    public List<ResourceTO> list(final Long connInstanceId) {
+        return controller.list(connInstanceId);
+    }
+
+    @Override
+    public ConnObjectTO getConnectorObject(final String resourceName, final SubjectType type, final Long id) {
+        return controller.getConnectorObject(resourceName, type, id);
+    }
+
+    @Override
+    public boolean check(final ResourceTO resourceTO) {
+        return controller.check(resourceTO);
+    }
+
+    @Override
+    public BulkActionResult bulk(final BulkAction bulkAction) {
+        return controller.bulk(bulkAction);
+    }
+
+    @Override
+    public BulkActionResult bulkDeassociation(final String resourceName, final SubjectType subjectType,
+            final ResourceDeassociationActionType type, final List<SubjectId> subjectIds) {
+
+        AbstractResourceAssociator<? extends AbstractAttributableTO> associator = subjectType == SubjectType.USER
+                ? userController
+                : roleController;
+
+        final BulkActionResult res = new BulkActionResult();
+
+        for (SubjectId id : subjectIds) {
+            final Set<String> resources = Collections.singleton(resourceName);
+            try {
+                switch (type) {
+                    case DEPROVISION:
+                        associator.deprovision(id.getElement(), resources);
+                        break;
+
+                    case UNASSIGN:
+                        associator.unassign(id.getElement(), resources);
+                        break;
+
+                    case UNLINK:
+                        associator.unlink(id.getElement(), resources);
+                        break;
+
+                    default:
+                }
+
+                res.add(id, BulkActionResult.Status.SUCCESS);
+            } catch (Exception e) {
+                LOG.warn("While executing {} on {} {}", type, subjectType, id.getElement(), e);
+                res.add(id, BulkActionResult.Status.FAILURE);
+            }
+        }
+
+        return res;
+    }
+
+}

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/services/RoleServiceImpl.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/services/RoleServiceImpl.java?rev=1615910&r1=1615909&r2=1615910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/services/RoleServiceImpl.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/services/RoleServiceImpl.java Tue Aug  5 11:20:00 2014
@@ -1,222 +1,222 @@
-/*
- * 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.core.services;
-
-import java.util.List;
-
-import javax.ws.rs.core.Response;
-import org.apache.syncope.common.mod.RoleMod;
-import org.apache.syncope.common.reqres.BulkActionResult;
-import org.apache.syncope.common.services.RoleService;
-import org.apache.syncope.common.reqres.PagedResult;
-import org.apache.syncope.common.to.PropagationStatus;
-import org.apache.syncope.common.wrap.ResourceName;
-import org.apache.syncope.common.to.RoleTO;
-import org.apache.syncope.common.types.ResourceAssociationActionType;
-import org.apache.syncope.common.types.ResourceDeassociationActionType;
-import org.apache.syncope.common.util.CollectionWrapper;
-import org.apache.syncope.core.persistence.dao.search.OrderByClause;
-import org.apache.syncope.core.persistence.dao.search.SearchCond;
-import org.apache.syncope.core.rest.controller.RoleController;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-@Service
-public class RoleServiceImpl extends AbstractServiceImpl implements RoleService {
-
-    @Autowired
-    private RoleController controller;
-
-    @Override
-    public List<RoleTO> children(final Long roleId) {
-        return controller.children(roleId);
-    }
-
-    @Override
-    public Response create(final RoleTO roleTO) {
-        RoleTO created = controller.create(roleTO);
-        return createResponse(created.getId(), created);
-    }
-
-    @Override
-    public Response delete(final Long roleId) {
-        RoleTO role = controller.read(roleId);
-
-        checkETag(role.getETagValue());
-
-        RoleTO deleted = controller.delete(roleId);
-        return modificationResponse(deleted);
-    }
-
-    @Override
-    public PagedResult<RoleTO> list() {
-        return list(DEFAULT_PARAM_PAGE_VALUE, DEFAULT_PARAM_SIZE_VALUE, null);
-    }
-
-    @Override
-    public PagedResult<RoleTO> list(final String orderBy) {
-        return list(DEFAULT_PARAM_PAGE_VALUE, DEFAULT_PARAM_SIZE_VALUE, orderBy);
-    }
-
-    @Override
-    public PagedResult<RoleTO> list(final Integer page, final Integer size) {
-        return list(page, size, null);
-    }
-
-    @Override
-    public PagedResult<RoleTO> list(final Integer page, final Integer size, final String orderBy) {
-        List<OrderByClause> orderByClauses = getOrderByClauses(orderBy);
-        return buildPagedResult(controller.list(page, size, orderByClauses), page, size, controller.count());
-    }
-
-    @Override
-    public RoleTO parent(final Long roleId) {
-        return controller.parent(roleId);
-    }
-
-    @Override
-    public RoleTO read(final Long roleId) {
-        return controller.read(roleId);
-    }
-
-    @Override
-    public PagedResult<RoleTO> search(final String fiql) {
-        return search(fiql, DEFAULT_PARAM_PAGE_VALUE, DEFAULT_PARAM_SIZE_VALUE, null);
-    }
-
-    @Override
-    public PagedResult<RoleTO> search(final String fiql, final String orderBy) {
-        return search(fiql, DEFAULT_PARAM_PAGE_VALUE, DEFAULT_PARAM_SIZE_VALUE, orderBy);
-    }
-
-    @Override
-    public PagedResult<RoleTO> search(final String fiql, final Integer page, final Integer size) {
-        return search(fiql, page, size, null);
-    }
-
-    @Override
-    public PagedResult<RoleTO> search(final String fiql, final Integer page, final Integer size, final String orderBy) {
-        SearchCond cond = getSearchCond(fiql);
-        List<OrderByClause> orderByClauses = getOrderByClauses(orderBy);
-        return buildPagedResult(
-                controller.search(cond, page, size, orderByClauses), page, size, controller.searchCount(cond));
-    }
-
-    @Override
-    public RoleTO readSelf(final Long roleId) {
-        return controller.readSelf(roleId);
-    }
-
-    @Override
-    public Response update(final Long roleId, final RoleMod roleMod) {
-        RoleTO role = controller.read(roleId);
-
-        checkETag(role.getETagValue());
-
-        roleMod.setId(roleId);
-        RoleTO updated = controller.update(roleMod);
-        return modificationResponse(updated);
-    }
-
-    @Override
-    public Response bulkDeassociation(
-            final Long roleId, final ResourceDeassociationActionType type, final List<ResourceName> resourceNames) {
-
-        RoleTO role = controller.read(roleId);
-
-        checkETag(role.getETagValue());
-
-        RoleTO updated;
-        switch (type) {
-            case UNLINK:
-                updated = controller.unlink(roleId, CollectionWrapper.unwrap(resourceNames));
-                break;
-
-            case UNASSIGN:
-                updated = controller.unassign(roleId, CollectionWrapper.unwrap(resourceNames));
-                break;
-
-            case DEPROVISION:
-                updated = controller.deprovision(roleId, CollectionWrapper.unwrap(resourceNames));
-                break;
-
-            default:
-                updated = controller.read(roleId);
-        }
-
-        final BulkActionResult res = new BulkActionResult();
-
-        if (type == ResourceDeassociationActionType.UNLINK) {
-            for (ResourceName resourceName : resourceNames) {
-                res.add(resourceName.getElement(), updated.getResources().contains(resourceName.getElement())
-                        ? BulkActionResult.Status.FAILURE
-                        : BulkActionResult.Status.SUCCESS);
-            }
-        } else {
-            for (PropagationStatus propagationStatusTO : updated.getPropagationStatusTOs()) {
-                res.add(propagationStatusTO.getResource(), propagationStatusTO.getStatus().toString());
-            }
-        }
-
-        return modificationResponse(res);
-    }
-
-    @Override
-    public Response bulkAssociation(
-            final Long roleId, final ResourceAssociationActionType type, final List<ResourceName> resourceNames) {
-
-        RoleTO role = controller.read(roleId);
-
-        checkETag(role.getETagValue());
-
-        RoleTO updated;
-        switch (type) {
-            case LINK:
-                updated = controller.link(roleId, CollectionWrapper.unwrap(resourceNames));
-                break;
-
-            case ASSIGN:
-                updated = controller.assign(roleId, CollectionWrapper.unwrap(resourceNames), false, null);
-                break;
-
-            case PROVISION:
-                updated = controller.provision(roleId, CollectionWrapper.unwrap(resourceNames), false, null);
-                break;
-
-            default:
-                updated = controller.read(roleId);
-        }
-
-        final BulkActionResult res = new BulkActionResult();
-
-        if (type == ResourceAssociationActionType.LINK) {
-            for (ResourceName resourceName : resourceNames) {
-                res.add(resourceName.getElement(), updated.getResources().contains(resourceName.getElement())
-                        ? BulkActionResult.Status.FAILURE
-                        : BulkActionResult.Status.SUCCESS);
-            }
-        } else {
-            for (PropagationStatus propagationStatusTO : updated.getPropagationStatusTOs()) {
-                res.add(propagationStatusTO.getResource(), propagationStatusTO.getStatus().toString());
-            }
-        }
-
-        return modificationResponse(res);
-    }
-}
+/*
+ * 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.core.services;
+
+import java.util.List;
+
+import javax.ws.rs.core.Response;
+import org.apache.syncope.common.mod.RoleMod;
+import org.apache.syncope.common.reqres.BulkActionResult;
+import org.apache.syncope.common.services.RoleService;
+import org.apache.syncope.common.reqres.PagedResult;
+import org.apache.syncope.common.to.PropagationStatus;
+import org.apache.syncope.common.wrap.ResourceName;
+import org.apache.syncope.common.to.RoleTO;
+import org.apache.syncope.common.types.ResourceAssociationActionType;
+import org.apache.syncope.common.types.ResourceDeassociationActionType;
+import org.apache.syncope.common.util.CollectionWrapper;
+import org.apache.syncope.core.persistence.dao.search.OrderByClause;
+import org.apache.syncope.core.persistence.dao.search.SearchCond;
+import org.apache.syncope.core.rest.controller.RoleController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class RoleServiceImpl extends AbstractServiceImpl implements RoleService {
+
+    @Autowired
+    private RoleController controller;
+
+    @Override
+    public List<RoleTO> children(final Long roleId) {
+        return controller.children(roleId);
+    }
+
+    @Override
+    public Response create(final RoleTO roleTO) {
+        RoleTO created = controller.create(roleTO);
+        return createResponse(created.getId(), created);
+    }
+
+    @Override
+    public Response delete(final Long roleId) {
+        RoleTO role = controller.read(roleId);
+
+        checkETag(role.getETagValue());
+
+        RoleTO deleted = controller.delete(roleId);
+        return modificationResponse(deleted);
+    }
+
+    @Override
+    public PagedResult<RoleTO> list() {
+        return list(DEFAULT_PARAM_PAGE_VALUE, DEFAULT_PARAM_SIZE_VALUE, null);
+    }
+
+    @Override
+    public PagedResult<RoleTO> list(final String orderBy) {
+        return list(DEFAULT_PARAM_PAGE_VALUE, DEFAULT_PARAM_SIZE_VALUE, orderBy);
+    }
+
+    @Override
+    public PagedResult<RoleTO> list(final Integer page, final Integer size) {
+        return list(page, size, null);
+    }
+
+    @Override
+    public PagedResult<RoleTO> list(final Integer page, final Integer size, final String orderBy) {
+        List<OrderByClause> orderByClauses = getOrderByClauses(orderBy);
+        return buildPagedResult(controller.list(page, size, orderByClauses), page, size, controller.count());
+    }
+
+    @Override
+    public RoleTO parent(final Long roleId) {
+        return controller.parent(roleId);
+    }
+
+    @Override
+    public RoleTO read(final Long roleId) {
+        return controller.read(roleId);
+    }
+
+    @Override
+    public PagedResult<RoleTO> search(final String fiql) {
+        return search(fiql, DEFAULT_PARAM_PAGE_VALUE, DEFAULT_PARAM_SIZE_VALUE, null);
+    }
+
+    @Override
+    public PagedResult<RoleTO> search(final String fiql, final String orderBy) {
+        return search(fiql, DEFAULT_PARAM_PAGE_VALUE, DEFAULT_PARAM_SIZE_VALUE, orderBy);
+    }
+
+    @Override
+    public PagedResult<RoleTO> search(final String fiql, final Integer page, final Integer size) {
+        return search(fiql, page, size, null);
+    }
+
+    @Override
+    public PagedResult<RoleTO> search(final String fiql, final Integer page, final Integer size, final String orderBy) {
+        SearchCond cond = getSearchCond(fiql);
+        List<OrderByClause> orderByClauses = getOrderByClauses(orderBy);
+        return buildPagedResult(
+                controller.search(cond, page, size, orderByClauses), page, size, controller.searchCount(cond));
+    }
+
+    @Override
+    public RoleTO readSelf(final Long roleId) {
+        return controller.readSelf(roleId);
+    }
+
+    @Override
+    public Response update(final Long roleId, final RoleMod roleMod) {
+        RoleTO role = controller.read(roleId);
+
+        checkETag(role.getETagValue());
+
+        roleMod.setId(roleId);
+        RoleTO updated = controller.update(roleMod);
+        return modificationResponse(updated);
+    }
+
+    @Override
+    public Response bulkDeassociation(
+            final Long roleId, final ResourceDeassociationActionType type, final List<ResourceName> resourceNames) {
+
+        RoleTO role = controller.read(roleId);
+
+        checkETag(role.getETagValue());
+
+        RoleTO updated;
+        switch (type) {
+            case UNLINK:
+                updated = controller.unlink(roleId, CollectionWrapper.unwrap(resourceNames));
+                break;
+
+            case UNASSIGN:
+                updated = controller.unassign(roleId, CollectionWrapper.unwrap(resourceNames));
+                break;
+
+            case DEPROVISION:
+                updated = controller.deprovision(roleId, CollectionWrapper.unwrap(resourceNames));
+                break;
+
+            default:
+                updated = controller.read(roleId);
+        }
+
+        final BulkActionResult res = new BulkActionResult();
+
+        if (type == ResourceDeassociationActionType.UNLINK) {
+            for (ResourceName resourceName : resourceNames) {
+                res.add(resourceName.getElement(), updated.getResources().contains(resourceName.getElement())
+                        ? BulkActionResult.Status.FAILURE
+                        : BulkActionResult.Status.SUCCESS);
+            }
+        } else {
+            for (PropagationStatus propagationStatusTO : updated.getPropagationStatusTOs()) {
+                res.add(propagationStatusTO.getResource(), propagationStatusTO.getStatus().toString());
+            }
+        }
+
+        return modificationResponse(res);
+    }
+
+    @Override
+    public Response bulkAssociation(
+            final Long roleId, final ResourceAssociationActionType type, final List<ResourceName> resourceNames) {
+
+        RoleTO role = controller.read(roleId);
+
+        checkETag(role.getETagValue());
+
+        RoleTO updated;
+        switch (type) {
+            case LINK:
+                updated = controller.link(roleId, CollectionWrapper.unwrap(resourceNames));
+                break;
+
+            case ASSIGN:
+                updated = controller.assign(roleId, CollectionWrapper.unwrap(resourceNames), false, null);
+                break;
+
+            case PROVISION:
+                updated = controller.provision(roleId, CollectionWrapper.unwrap(resourceNames), false, null);
+                break;
+
+            default:
+                updated = controller.read(roleId);
+        }
+
+        final BulkActionResult res = new BulkActionResult();
+
+        if (type == ResourceAssociationActionType.LINK) {
+            for (ResourceName resourceName : resourceNames) {
+                res.add(resourceName.getElement(), updated.getResources().contains(resourceName.getElement())
+                        ? BulkActionResult.Status.FAILURE
+                        : BulkActionResult.Status.SUCCESS);
+            }
+        } else {
+            for (PropagationStatus propagationStatusTO : updated.getPropagationStatusTOs()) {
+                res.add(propagationStatusTO.getResource(), propagationStatusTO.getStatus().toString());
+            }
+        }
+
+        return modificationResponse(res);
+    }
+}

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/services/SchemaServiceImpl.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/services/SchemaServiceImpl.java?rev=1615910&r1=1615909&r2=1615910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/services/SchemaServiceImpl.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/services/SchemaServiceImpl.java Tue Aug  5 11:20:00 2014
@@ -1,77 +1,77 @@
-/*
- * 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.core.services;
-
-import java.net.URI;
-import java.util.List;
-
-import javax.ws.rs.core.Response;
-
-import org.apache.syncope.common.services.SchemaService;
-import org.apache.syncope.common.to.AbstractSchemaTO;
-import org.apache.syncope.common.types.AttributableType;
-import org.apache.syncope.common.types.RESTHeaders;
-import org.apache.syncope.common.types.SchemaType;
-import org.apache.syncope.core.rest.controller.SchemaController;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-@Service
-public class SchemaServiceImpl extends AbstractServiceImpl implements SchemaService {
-
-    @Autowired
-    private SchemaController controller;
-
-    @Override
-    public <T extends AbstractSchemaTO> Response create(final AttributableType attrType, final SchemaType schemaType,
-            final T schemaTO) {
-
-        T response = controller.create(attrType, schemaType, schemaTO);
-
-        URI location = uriInfo.getAbsolutePathBuilder().path(response.getName()).build();
-        return Response.created(location).
-                header(RESTHeaders.RESOURCE_ID, response.getName()).
-                build();
-    }
-
-    @Override
-    public void delete(final AttributableType attrType, final SchemaType schemaType, final String schemaName) {
-        controller.delete(attrType, schemaType, schemaName);
-    }
-
-    @Override
-    public <T extends AbstractSchemaTO> List<T> list(final AttributableType attrType, final SchemaType schemaType) {
-        return controller.list(attrType, schemaType);
-    }
-
-    @Override
-    public <T extends AbstractSchemaTO> T read(final AttributableType attrType, final SchemaType schemaType,
-            final String schemaName) {
-
-        return controller.read(attrType, schemaType, schemaName);
-    }
-
-    @Override
-    public <T extends AbstractSchemaTO> void update(final AttributableType attrType, final SchemaType schemaType,
-            final String schemaName, final T schemaTO) {
-
-        schemaTO.setName(schemaName);
-        controller.update(attrType, schemaType, schemaTO);
-    }
-}
+/*
+ * 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.core.services;
+
+import java.net.URI;
+import java.util.List;
+
+import javax.ws.rs.core.Response;
+
+import org.apache.syncope.common.services.SchemaService;
+import org.apache.syncope.common.to.AbstractSchemaTO;
+import org.apache.syncope.common.types.AttributableType;
+import org.apache.syncope.common.types.RESTHeaders;
+import org.apache.syncope.common.types.SchemaType;
+import org.apache.syncope.core.rest.controller.SchemaController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class SchemaServiceImpl extends AbstractServiceImpl implements SchemaService {
+
+    @Autowired
+    private SchemaController controller;
+
+    @Override
+    public <T extends AbstractSchemaTO> Response create(final AttributableType attrType, final SchemaType schemaType,
+            final T schemaTO) {
+
+        T response = controller.create(attrType, schemaType, schemaTO);
+
+        URI location = uriInfo.getAbsolutePathBuilder().path(response.getName()).build();
+        return Response.created(location).
+                header(RESTHeaders.RESOURCE_ID, response.getName()).
+                build();
+    }
+
+    @Override
+    public void delete(final AttributableType attrType, final SchemaType schemaType, final String schemaName) {
+        controller.delete(attrType, schemaType, schemaName);
+    }
+
+    @Override
+    public <T extends AbstractSchemaTO> List<T> list(final AttributableType attrType, final SchemaType schemaType) {
+        return controller.list(attrType, schemaType);
+    }
+
+    @Override
+    public <T extends AbstractSchemaTO> T read(final AttributableType attrType, final SchemaType schemaType,
+            final String schemaName) {
+
+        return controller.read(attrType, schemaType, schemaName);
+    }
+
+    @Override
+    public <T extends AbstractSchemaTO> void update(final AttributableType attrType, final SchemaType schemaType,
+            final String schemaName, final T schemaTO) {
+
+        schemaTO.setName(schemaName);
+        controller.update(attrType, schemaType, schemaTO);
+    }
+}

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/services/TaskServiceImpl.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/services/TaskServiceImpl.java?rev=1615910&r1=1615909&r2=1615910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/services/TaskServiceImpl.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/services/TaskServiceImpl.java Tue Aug  5 11:20:00 2014
@@ -1,158 +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.core.services;
-
-import java.net.URI;
-import java.util.List;
-import javax.ws.rs.BadRequestException;
-import javax.ws.rs.core.Response;
-import org.apache.syncope.common.services.TaskService;
-import org.apache.syncope.common.reqres.BulkAction;
-import org.apache.syncope.common.reqres.BulkActionResult;
-import org.apache.syncope.common.wrap.JobClass;
-import org.apache.syncope.common.to.ReportExecTO;
-import org.apache.syncope.common.to.SchedTaskTO;
-import org.apache.syncope.common.wrap.SyncActionClass;
-import org.apache.syncope.common.to.SyncTaskTO;
-import org.apache.syncope.common.to.TaskExecTO;
-import org.apache.syncope.common.to.AbstractTaskTO;
-import org.apache.syncope.common.reqres.PagedResult;
-import org.apache.syncope.common.to.PushTaskTO;
-import org.apache.syncope.common.types.RESTHeaders;
-import org.apache.syncope.common.types.PropagationTaskExecStatus;
-import org.apache.syncope.common.types.TaskType;
-import org.apache.syncope.common.util.CollectionWrapper;
-import org.apache.syncope.common.wrap.PushActionClass;
-import org.apache.syncope.core.persistence.dao.search.OrderByClause;
-import org.apache.syncope.core.rest.controller.TaskController;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-@Service
-public class TaskServiceImpl extends AbstractServiceImpl implements TaskService {
-
-    @Autowired
-    private TaskController controller;
-
-    @Override
-    public <T extends SchedTaskTO> Response create(final T taskTO) {
-        T createdTask;
-        if (taskTO instanceof SyncTaskTO || taskTO instanceof PushTaskTO || taskTO instanceof SchedTaskTO) {
-            createdTask = controller.createSchedTask(taskTO);
-        } else {
-            throw new BadRequestException();
-        }
-
-        URI location = uriInfo.getAbsolutePathBuilder().path(String.valueOf(createdTask.getId())).build();
-        return Response.created(location).
-                header(RESTHeaders.RESOURCE_ID, createdTask.getId()).
-                build();
-    }
-
-    @Override
-    public void delete(final Long taskId) {
-        controller.delete(taskId);
-    }
-
-    @Override
-    public void deleteExecution(final Long executionId) {
-        controller.deleteExecution(executionId);
-    }
-
-    @Override
-    public TaskExecTO execute(final Long taskId, final boolean dryRun) {
-        return controller.execute(taskId, dryRun);
-    }
-
-    @Override
-    public List<JobClass> getJobClasses() {
-        return CollectionWrapper.wrap(controller.getJobClasses(), JobClass.class);
-    }
-
-    @Override
-    public List<SyncActionClass> getSyncActionsClasses() {
-        return CollectionWrapper.wrap(controller.getSyncActionsClasses(), SyncActionClass.class);
-    }
-
-    @Override
-    public List<PushActionClass> getPushActionsClasses() {
-        return CollectionWrapper.wrap(controller.getPushActionsClasses(), PushActionClass.class);
-    }
-
-    @Override
-    public <T extends AbstractTaskTO> PagedResult<T> list(final TaskType taskType) {
-        return list(taskType, DEFAULT_PARAM_PAGE_VALUE, DEFAULT_PARAM_SIZE_VALUE, null);
-    }
-
-    @Override
-    public <T extends AbstractTaskTO> PagedResult<T> list(final TaskType taskType, final String orderBy) {
-        return list(taskType, DEFAULT_PARAM_PAGE_VALUE, DEFAULT_PARAM_SIZE_VALUE, orderBy);
-    }
-
-    @Override
-    public <T extends AbstractTaskTO> PagedResult<T> list(
-            final TaskType taskType, final Integer page, final Integer size) {
-
-        return list(taskType, page, size, null);
-    }
-
-    @Override
-    @SuppressWarnings("unchecked")
-    public <T extends AbstractTaskTO> PagedResult<T> list(final TaskType taskType,
-            final Integer page, final Integer size, final String orderBy) {
-
-        List<OrderByClause> orderByClauses = getOrderByClauses(orderBy);
-        return (PagedResult<T>) buildPagedResult(
-                controller.list(taskType, page, size, orderByClauses), page, size, controller.count(taskType));
-    }
-
-    @Override
-    public <T extends AbstractTaskTO> T read(final Long taskId) {
-        return controller.read(taskId);
-    }
-
-    @Override
-    public TaskExecTO readExecution(final Long executionId) {
-        return controller.readExecution(executionId);
-    }
-
-    @Override
-    public void report(final Long executionId, final ReportExecTO reportExec) {
-        reportExec.setId(executionId);
-        controller.report(
-                executionId, PropagationTaskExecStatus.fromString(reportExec.getStatus()), reportExec.getMessage());
-    }
-
-    @Override
-    public void update(final Long taskId, final AbstractTaskTO taskTO) {
-        taskTO.setId(taskId);
-        if (taskTO instanceof SyncTaskTO) {
-            controller.updateSync((SyncTaskTO) taskTO);
-        } else if (taskTO instanceof SchedTaskTO) {
-            controller.updateSched((SchedTaskTO) taskTO);
-        } else {
-            throw new BadRequestException();
-        }
-    }
-
-    @Override
-    public BulkActionResult bulk(final BulkAction bulkAction) {
-        return controller.bulk(bulkAction);
-    }
-}
+/*
+ * 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.core.services;
+
+import java.net.URI;
+import java.util.List;
+import javax.ws.rs.BadRequestException;
+import javax.ws.rs.core.Response;
+import org.apache.syncope.common.services.TaskService;
+import org.apache.syncope.common.reqres.BulkAction;
+import org.apache.syncope.common.reqres.BulkActionResult;
+import org.apache.syncope.common.wrap.JobClass;
+import org.apache.syncope.common.to.ReportExecTO;
+import org.apache.syncope.common.to.SchedTaskTO;
+import org.apache.syncope.common.wrap.SyncActionClass;
+import org.apache.syncope.common.to.SyncTaskTO;
+import org.apache.syncope.common.to.TaskExecTO;
+import org.apache.syncope.common.to.AbstractTaskTO;
+import org.apache.syncope.common.reqres.PagedResult;
+import org.apache.syncope.common.to.PushTaskTO;
+import org.apache.syncope.common.types.RESTHeaders;
+import org.apache.syncope.common.types.PropagationTaskExecStatus;
+import org.apache.syncope.common.types.TaskType;
+import org.apache.syncope.common.util.CollectionWrapper;
+import org.apache.syncope.common.wrap.PushActionClass;
+import org.apache.syncope.core.persistence.dao.search.OrderByClause;
+import org.apache.syncope.core.rest.controller.TaskController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class TaskServiceImpl extends AbstractServiceImpl implements TaskService {
+
+    @Autowired
+    private TaskController controller;
+
+    @Override
+    public <T extends SchedTaskTO> Response create(final T taskTO) {
+        T createdTask;
+        if (taskTO instanceof SyncTaskTO || taskTO instanceof PushTaskTO || taskTO instanceof SchedTaskTO) {
+            createdTask = controller.createSchedTask(taskTO);
+        } else {
+            throw new BadRequestException();
+        }
+
+        URI location = uriInfo.getAbsolutePathBuilder().path(String.valueOf(createdTask.getId())).build();
+        return Response.created(location).
+                header(RESTHeaders.RESOURCE_ID, createdTask.getId()).
+                build();
+    }
+
+    @Override
+    public void delete(final Long taskId) {
+        controller.delete(taskId);
+    }
+
+    @Override
+    public void deleteExecution(final Long executionId) {
+        controller.deleteExecution(executionId);
+    }
+
+    @Override
+    public TaskExecTO execute(final Long taskId, final boolean dryRun) {
+        return controller.execute(taskId, dryRun);
+    }
+
+    @Override
+    public List<JobClass> getJobClasses() {
+        return CollectionWrapper.wrap(controller.getJobClasses(), JobClass.class);
+    }
+
+    @Override
+    public List<SyncActionClass> getSyncActionsClasses() {
+        return CollectionWrapper.wrap(controller.getSyncActionsClasses(), SyncActionClass.class);
+    }
+
+    @Override
+    public List<PushActionClass> getPushActionsClasses() {
+        return CollectionWrapper.wrap(controller.getPushActionsClasses(), PushActionClass.class);
+    }
+
+    @Override
+    public <T extends AbstractTaskTO> PagedResult<T> list(final TaskType taskType) {
+        return list(taskType, DEFAULT_PARAM_PAGE_VALUE, DEFAULT_PARAM_SIZE_VALUE, null);
+    }
+
+    @Override
+    public <T extends AbstractTaskTO> PagedResult<T> list(final TaskType taskType, final String orderBy) {
+        return list(taskType, DEFAULT_PARAM_PAGE_VALUE, DEFAULT_PARAM_SIZE_VALUE, orderBy);
+    }
+
+    @Override
+    public <T extends AbstractTaskTO> PagedResult<T> list(
+            final TaskType taskType, final Integer page, final Integer size) {
+
+        return list(taskType, page, size, null);
+    }
+
+    @Override
+    @SuppressWarnings("unchecked")
+    public <T extends AbstractTaskTO> PagedResult<T> list(final TaskType taskType,
+            final Integer page, final Integer size, final String orderBy) {
+
+        List<OrderByClause> orderByClauses = getOrderByClauses(orderBy);
+        return (PagedResult<T>) buildPagedResult(
+                controller.list(taskType, page, size, orderByClauses), page, size, controller.count(taskType));
+    }
+
+    @Override
+    public <T extends AbstractTaskTO> T read(final Long taskId) {
+        return controller.read(taskId);
+    }
+
+    @Override
+    public TaskExecTO readExecution(final Long executionId) {
+        return controller.readExecution(executionId);
+    }
+
+    @Override
+    public void report(final Long executionId, final ReportExecTO reportExec) {
+        reportExec.setId(executionId);
+        controller.report(
+                executionId, PropagationTaskExecStatus.fromString(reportExec.getStatus()), reportExec.getMessage());
+    }
+
+    @Override
+    public void update(final Long taskId, final AbstractTaskTO taskTO) {
+        taskTO.setId(taskId);
+        if (taskTO instanceof SyncTaskTO) {
+            controller.updateSync((SyncTaskTO) taskTO);
+        } else if (taskTO instanceof SchedTaskTO) {
+            controller.updateSched((SchedTaskTO) taskTO);
+        } else {
+            throw new BadRequestException();
+        }
+    }
+
+    @Override
+    public BulkActionResult bulk(final BulkAction bulkAction) {
+        return controller.bulk(bulkAction);
+    }
+}

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/services/WorkflowServiceImpl.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/services/WorkflowServiceImpl.java?rev=1615910&r1=1615909&r2=1615910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/services/WorkflowServiceImpl.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/services/WorkflowServiceImpl.java Tue Aug  5 11:20:00 2014
@@ -1,116 +1,116 @@
-/*
- * 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.core.services;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.StreamingOutput;
-import org.apache.syncope.common.services.WorkflowService;
-import org.apache.syncope.common.types.RESTHeaders;
-import org.apache.syncope.common.types.SubjectType;
-import org.apache.syncope.core.rest.controller.WorkflowController;
-import org.apache.syncope.core.workflow.ActivitiDetector;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-@Service
-public class WorkflowServiceImpl extends AbstractServiceImpl implements WorkflowService {
-
-    @Autowired
-    private WorkflowController controller;
-
-    @Override
-    public Response getOptions(final SubjectType kind) {
-        String key;
-        String value;
-        if (kind == SubjectType.USER) {
-            key = RESTHeaders.ACTIVITI_USER_ENABLED;
-            value = Boolean.toString(ActivitiDetector.isActivitiEnabledForUsers());
-        } else {
-            key = RESTHeaders.ACTIVITI_ROLE_ENABLED;
-            value = Boolean.toString(ActivitiDetector.isActivitiEnabledForRoles());
-        }
-
-        Response.ResponseBuilder builder = Response.ok().header(HttpHeaders.ALLOW, OPTIONS_ALLOW);
-        if (key != null && value != null) {
-            builder.header(key, value);
-        }
-        return builder.build();
-    }
-
-    @Override
-    public Response exportDefinition(final SubjectType kind) {
-        final MediaType accept =
-                messageContext.getHttpHeaders().getAcceptableMediaTypes().contains(MediaType.APPLICATION_JSON_TYPE)
-                ? MediaType.APPLICATION_JSON_TYPE
-                : MediaType.APPLICATION_XML_TYPE;
-
-        StreamingOutput sout = new StreamingOutput() {
-
-            @Override
-            public void write(final OutputStream os) throws IOException {
-                if (kind == SubjectType.USER) {
-                    controller.exportUserDefinition(accept, os);
-                } else {
-                    controller.exportRoleDefinition(accept, os);
-                }
-            }
-        };
-
-        return Response.ok(sout).
-                type(accept).
-                build();
-    }
-
-    @Override
-    public Response exportDiagram(final SubjectType kind) {
-        StreamingOutput sout = new StreamingOutput() {
-
-            @Override
-            public void write(final OutputStream os) throws IOException {
-                if (kind == SubjectType.USER) {
-                    controller.exportUserDiagram(os);
-                } else {
-                    controller.exportRoleDiagram(os);
-                }
-            }
-        };
-
-        return Response.ok(sout).
-                type(RESTHeaders.MEDIATYPE_IMAGE_PNG).
-                build();
-    }
-
-    @Override
-    public void importDefinition(final SubjectType kind, final String definition) {
-        final MediaType contentType =
-                messageContext.getHttpHeaders().getMediaType().equals(MediaType.APPLICATION_JSON_TYPE)
-                ? MediaType.APPLICATION_JSON_TYPE
-                : MediaType.APPLICATION_XML_TYPE;
-
-        if (kind == SubjectType.USER) {
-            controller.importUserDefinition(contentType, definition);
-        } else {
-            controller.importRoleDefinition(contentType, definition);
-        }
-    }
-}
+/*
+ * 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.core.services;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.StreamingOutput;
+import org.apache.syncope.common.services.WorkflowService;
+import org.apache.syncope.common.types.RESTHeaders;
+import org.apache.syncope.common.types.SubjectType;
+import org.apache.syncope.core.rest.controller.WorkflowController;
+import org.apache.syncope.core.workflow.ActivitiDetector;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class WorkflowServiceImpl extends AbstractServiceImpl implements WorkflowService {
+
+    @Autowired
+    private WorkflowController controller;
+
+    @Override
+    public Response getOptions(final SubjectType kind) {
+        String key;
+        String value;
+        if (kind == SubjectType.USER) {
+            key = RESTHeaders.ACTIVITI_USER_ENABLED;
+            value = Boolean.toString(ActivitiDetector.isActivitiEnabledForUsers());
+        } else {
+            key = RESTHeaders.ACTIVITI_ROLE_ENABLED;
+            value = Boolean.toString(ActivitiDetector.isActivitiEnabledForRoles());
+        }
+
+        Response.ResponseBuilder builder = Response.ok().header(HttpHeaders.ALLOW, OPTIONS_ALLOW);
+        if (key != null && value != null) {
+            builder.header(key, value);
+        }
+        return builder.build();
+    }
+
+    @Override
+    public Response exportDefinition(final SubjectType kind) {
+        final MediaType accept =
+                messageContext.getHttpHeaders().getAcceptableMediaTypes().contains(MediaType.APPLICATION_JSON_TYPE)
+                ? MediaType.APPLICATION_JSON_TYPE
+                : MediaType.APPLICATION_XML_TYPE;
+
+        StreamingOutput sout = new StreamingOutput() {
+
+            @Override
+            public void write(final OutputStream os) throws IOException {
+                if (kind == SubjectType.USER) {
+                    controller.exportUserDefinition(accept, os);
+                } else {
+                    controller.exportRoleDefinition(accept, os);
+                }
+            }
+        };
+
+        return Response.ok(sout).
+                type(accept).
+                build();
+    }
+
+    @Override
+    public Response exportDiagram(final SubjectType kind) {
+        StreamingOutput sout = new StreamingOutput() {
+
+            @Override
+            public void write(final OutputStream os) throws IOException {
+                if (kind == SubjectType.USER) {
+                    controller.exportUserDiagram(os);
+                } else {
+                    controller.exportRoleDiagram(os);
+                }
+            }
+        };
+
+        return Response.ok(sout).
+                type(RESTHeaders.MEDIATYPE_IMAGE_PNG).
+                build();
+    }
+
+    @Override
+    public void importDefinition(final SubjectType kind, final String definition) {
+        final MediaType contentType =
+                messageContext.getHttpHeaders().getMediaType().equals(MediaType.APPLICATION_JSON_TYPE)
+                ? MediaType.APPLICATION_JSON_TYPE
+                : MediaType.APPLICATION_XML_TYPE;
+
+        if (kind == SubjectType.USER) {
+            controller.importUserDefinition(contentType, definition);
+        } else {
+            controller.importRoleDefinition(contentType, definition);
+        }
+    }
+}

Modified: syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/WorkflowTestITCase.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/WorkflowTestITCase.java?rev=1615910&r1=1615909&r2=1615910&view=diff
==============================================================================
--- syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/WorkflowTestITCase.java (original)
+++ syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/WorkflowTestITCase.java Tue Aug  5 11:20:00 2014
@@ -1,87 +1,87 @@
-/*
- * 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.core.rest;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.assertFalse;
-
-import java.io.IOException;
-import java.io.InputStream;
-import javax.ws.rs.core.Response;
-import org.apache.commons.io.IOUtils;
-import org.apache.syncope.common.types.SubjectType;
-import org.apache.syncope.core.workflow.ActivitiDetector;
-import org.junit.Assume;
-import org.junit.Test;
-
-public class WorkflowTestITCase extends AbstractTest {
-
-    @Test
-    public void isActivitiEnabled() {
-        assertEquals(ActivitiDetector.isActivitiEnabledForUsers(),
-                adminClient.isActivitiEnabledFor(SubjectType.USER));
-        assertEquals(ActivitiDetector.isActivitiEnabledForRoles(),
-                adminClient.isActivitiEnabledFor(SubjectType.ROLE));
-    }
-
-    private void exportDefinition(final SubjectType type) throws IOException {
-        Response response = workflowService.exportDefinition(type);
-        assertTrue(response.getMediaType().toString().
-                startsWith(clientFactory.getContentType().getMediaType().toString()));
-        assertTrue(response.getEntity() instanceof InputStream);
-        String definition = IOUtils.toString((InputStream) response.getEntity());
-        assertNotNull(definition);
-        assertFalse(definition.isEmpty());
-    }
-
-    @Test
-    public void exportUserDefinition() throws IOException {
-        Assume.assumeTrue(ActivitiDetector.isActivitiEnabledForUsers());
-        exportDefinition(SubjectType.USER);
-    }
-
-    @Test
-    public void getRoleDefinition() throws IOException {
-        Assume.assumeTrue(ActivitiDetector.isActivitiEnabledForRoles());
-        exportDefinition(SubjectType.ROLE);
-    }
-
-    private void importDefinition(final SubjectType type) throws IOException {
-        Response response = workflowService.exportDefinition(type);
-        String definition = IOUtils.toString((InputStream) response.getEntity());
-
-        workflowService.importDefinition(type, definition);
-    }
-
-    @Test
-    public void updateUserDefinition() throws IOException {
-        Assume.assumeTrue(ActivitiDetector.isActivitiEnabledForUsers());
-
-        importDefinition(SubjectType.USER);
-    }
-
-    @Test
-    public void updateRoleDefinition() throws IOException {
-        Assume.assumeTrue(ActivitiDetector.isActivitiEnabledForRoles());
-
-        importDefinition(SubjectType.ROLE);
-    }
-}
+/*
+ * 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.core.rest;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertFalse;
+
+import java.io.IOException;
+import java.io.InputStream;
+import javax.ws.rs.core.Response;
+import org.apache.commons.io.IOUtils;
+import org.apache.syncope.common.types.SubjectType;
+import org.apache.syncope.core.workflow.ActivitiDetector;
+import org.junit.Assume;
+import org.junit.Test;
+
+public class WorkflowTestITCase extends AbstractTest {
+
+    @Test
+    public void isActivitiEnabled() {
+        assertEquals(ActivitiDetector.isActivitiEnabledForUsers(),
+                adminClient.isActivitiEnabledFor(SubjectType.USER));
+        assertEquals(ActivitiDetector.isActivitiEnabledForRoles(),
+                adminClient.isActivitiEnabledFor(SubjectType.ROLE));
+    }
+
+    private void exportDefinition(final SubjectType type) throws IOException {
+        Response response = workflowService.exportDefinition(type);
+        assertTrue(response.getMediaType().toString().
+                startsWith(clientFactory.getContentType().getMediaType().toString()));
+        assertTrue(response.getEntity() instanceof InputStream);
+        String definition = IOUtils.toString((InputStream) response.getEntity());
+        assertNotNull(definition);
+        assertFalse(definition.isEmpty());
+    }
+
+    @Test
+    public void exportUserDefinition() throws IOException {
+        Assume.assumeTrue(ActivitiDetector.isActivitiEnabledForUsers());
+        exportDefinition(SubjectType.USER);
+    }
+
+    @Test
+    public void getRoleDefinition() throws IOException {
+        Assume.assumeTrue(ActivitiDetector.isActivitiEnabledForRoles());
+        exportDefinition(SubjectType.ROLE);
+    }
+
+    private void importDefinition(final SubjectType type) throws IOException {
+        Response response = workflowService.exportDefinition(type);
+        String definition = IOUtils.toString((InputStream) response.getEntity());
+
+        workflowService.importDefinition(type, definition);
+    }
+
+    @Test
+    public void updateUserDefinition() throws IOException {
+        Assume.assumeTrue(ActivitiDetector.isActivitiEnabledForUsers());
+
+        importDefinition(SubjectType.USER);
+    }
+
+    @Test
+    public void updateRoleDefinition() throws IOException {
+        Assume.assumeTrue(ActivitiDetector.isActivitiEnabledForRoles());
+
+        importDefinition(SubjectType.ROLE);
+    }
+}

Modified: syncope/trunk/core/src/test/resources/jboss/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/test/resources/jboss/META-INF/MANIFEST.MF?rev=1615910&r1=1615909&r2=1615910&view=diff
==============================================================================
--- syncope/trunk/core/src/test/resources/jboss/META-INF/MANIFEST.MF (original)
+++ syncope/trunk/core/src/test/resources/jboss/META-INF/MANIFEST.MF Tue Aug  5 11:20:00 2014
@@ -1,6 +1,6 @@
-Manifest-Version: 1.0
-Built-By: developer
-Build-Jdk: ${java.version}
-Created-By: Apache Maven 3.0.4
-Archiver-Version: Plexus Archiver
-
+Manifest-Version: 1.0
+Built-By: developer
+Build-Jdk: ${java.version}
+Created-By: Apache Maven 3.0.4
+Archiver-Version: Plexus Archiver
+