You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by ma...@apache.org on 2015/11/03 16:56:12 UTC

syncope git commit: bugfix in schema output and refactoring, SYNCOPE-158

Repository: syncope
Updated Branches:
  refs/heads/master 2d036afe2 -> 3082eb0d6


bugfix in schema output and refactoring, SYNCOPE-158


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

Branch: refs/heads/master
Commit: 3082eb0d6728681d6a5f8dc86d343cebd65aa3be
Parents: 2d036af
Author: massi <ma...@tirasa.net>
Authored: Tue Nov 3 16:52:42 2015 +0100
Committer: massi <ma...@tirasa.net>
Committed: Tue Nov 3 16:52:42 2015 +0100

----------------------------------------------------------------------
 .../cli/commands/policy/PolicyCommand.java      |  6 +-
 .../cli/commands/policy/PolicyDetails.java      |  8 +--
 .../client/cli/commands/policy/PolicyList.java  |  7 +-
 .../commands/policy/PolicyResultManager.java    |  3 +-
 .../policy/PolicySyncopeOperations.java         |  4 +-
 .../commands/report/ReportExportExecution.java  | 30 +--------
 .../cli/commands/report/ReportListJobs.java     |  2 +-
 .../report/ReportSyncopeOperations.java         | 35 ++++++++--
 .../cli/commands/schema/SchemaDelete.java       |  2 +-
 .../client/cli/commands/schema/SchemaList.java  | 17 +----
 .../cli/commands/schema/SchemaListAll.java      | 16 +----
 .../cli/commands/schema/SchemaListPlain.java    |  2 +-
 .../client/cli/commands/schema/SchemaRead.java  | 17 +----
 .../commands/schema/SchemaResultManager.java    | 68 +++++++++++---------
 .../schema/SchemaSyncopeOperations.java         | 12 ++--
 .../commands/self/WorkflowExportDefinition.java |  5 +-
 .../commands/self/WorkflowExportDiagram.java    |  3 +-
 .../self/WorkflowSyncopeOperations.java         |  8 +--
 .../client/cli/commands/task/TaskCommand.java   |  8 +--
 .../client/cli/commands/task/TaskDetails.java   | 11 ++--
 .../client/cli/commands/task/TaskList.java      |  7 +-
 .../cli/commands/task/TaskResultManager.java    |  4 +-
 .../commands/task/TaskSyncopeOperations.java    |  4 +-
 23 files changed, 124 insertions(+), 155 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/3082eb0d/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyCommand.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyCommand.java
index 6c11f02..6403049 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyCommand.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyCommand.java
@@ -32,7 +32,7 @@ public class PolicyCommand extends AbstractCommand {
             + "  Options:\n"
             + "    --help \n"
             + "    --details \n"
-            + "    --list-policy \n"
+            + "    --list \n"
             + "       Syntax: --list-policy {POLICY-TYPE} \n"
             + "          Policy type: ACCOUNT / PASSWORD / SYNC / PUSH\n"
             + "    --read \n"
@@ -50,7 +50,7 @@ public class PolicyCommand extends AbstractCommand {
             case DETAILS:
                 new PolicyDetails(input).details();
                 break;
-            case LIST_POLICY:
+            case LIST:
                 new PolicyList(input).list();
                 break;
             case READ:
@@ -76,7 +76,7 @@ public class PolicyCommand extends AbstractCommand {
 
         HELP("--help"),
         DETAILS("--details"),
-        LIST_POLICY("--list-policy"),
+        LIST("--list"),
         READ("--read"),
         DELETE("--delete");
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/3082eb0d/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyDetails.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyDetails.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyDetails.java
index bb4fdb6..077ab45 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyDetails.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyDetails.java
@@ -41,10 +41,10 @@ public class PolicyDetails extends AbstractPolicyCommand {
         if (input.parameterNumber() == 0) {
             try {
                 final Map<String, String> details = new LinkedMap<>();
-                final int accountPolicySize = policySyncopeOperations.list(PolicyType.ACCOUNT).size();
-                final int passwordPolicySize = policySyncopeOperations.list(PolicyType.PASSWORD).size();
-                final int syncPolicySize = policySyncopeOperations.list(PolicyType.SYNC).size();
-                final int pushPolicySize = policySyncopeOperations.list(PolicyType.PUSH).size();
+                final int accountPolicySize = policySyncopeOperations.list(PolicyType.ACCOUNT.name()).size();
+                final int passwordPolicySize = policySyncopeOperations.list(PolicyType.PASSWORD.name()).size();
+                final int syncPolicySize = policySyncopeOperations.list(PolicyType.SYNC.name()).size();
+                final int pushPolicySize = policySyncopeOperations.list(PolicyType.PUSH.name()).size();
                 details.put("total number", String.valueOf(accountPolicySize
                         + passwordPolicySize
                         + syncPolicySize

http://git-wip-us.apache.org/repos/asf/syncope/blob/3082eb0d/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyList.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyList.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyList.java
index 9720abf..95a7d98 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyList.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyList.java
@@ -31,7 +31,7 @@ public class PolicyList extends AbstractPolicyCommand {
 
     private static final Logger LOG = LoggerFactory.getLogger(PolicyList.class);
 
-    private static final String LIST_HELP_MESSAGE = "policy --list-policy {POLICY-TYPE}\n"
+    private static final String LIST_HELP_MESSAGE = "policy --list {POLICY-TYPE}\n"
             + "   Policy type: ACCOUNT / PASSWORD / SYNC / PUSH";
 
     private final Input input;
@@ -43,12 +43,11 @@ public class PolicyList extends AbstractPolicyCommand {
     public void list() {
         if (input.parameterNumber() == 1) {
             try {
-                final PolicyType policyType = PolicyType.valueOf(input.firstParameter());
                 final LinkedList<AbstractPolicyTO> policyTOs = new LinkedList<>();
-                for (final AbstractPolicyTO policyTO : policySyncopeOperations.list(policyType)) {
+                for (final AbstractPolicyTO policyTO : policySyncopeOperations.list(input.firstParameter())) {
                     policyTOs.add(policyTO);
                 }
-                policyResultManager.printPoliciesByType(policyType, policyTOs);
+                policyResultManager.printPoliciesByType(input.firstParameter(), policyTOs);
             } catch (final SyncopeClientException ex) {
                 LOG.error("Error listing policy", ex);
                 policyResultManager.genericError(ex.getMessage());

http://git-wip-us.apache.org/repos/asf/syncope/blob/3082eb0d/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyResultManager.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyResultManager.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyResultManager.java
index 16995a6..acd7eb3 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyResultManager.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyResultManager.java
@@ -55,8 +55,9 @@ public class PolicyResultManager extends CommonsResultManager {
 
     }
 
-    public void printPoliciesByType(final PolicyType policyType, final LinkedList<AbstractPolicyTO> policyTOs) {
+    public void printPoliciesByType(final String policyTypeString, final LinkedList<AbstractPolicyTO> policyTOs) {
         System.out.println("");
+        final PolicyType policyType = PolicyType.valueOf(policyTypeString);
         switch (policyType) {
             case ACCOUNT:
                 for (final AbstractPolicyTO policyTO : policyTOs) {

http://git-wip-us.apache.org/repos/asf/syncope/blob/3082eb0d/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicySyncopeOperations.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicySyncopeOperations.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicySyncopeOperations.java
index 7c478f8..e2d4070 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicySyncopeOperations.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicySyncopeOperations.java
@@ -32,8 +32,8 @@ public class PolicySyncopeOperations {
         return policyService.read(Long.valueOf(policyId));
     }
 
-    public <T extends AbstractPolicyTO> List<T> list(final PolicyType policyType) {
-        return policyService.list(policyType);
+    public <T extends AbstractPolicyTO> List<T> list(final String policyType) {
+        return policyService.list(PolicyType.valueOf(policyType));
     }
 
     public void delete(final String policyId) {

http://git-wip-us.apache.org/repos/asf/syncope/blob/3082eb0d/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportExportExecution.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportExportExecution.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportExportExecution.java
index eadcbbc..0dd7fb8 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportExportExecution.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportExportExecution.java
@@ -19,14 +19,12 @@
 package org.apache.syncope.client.cli.commands.report;
 
 import java.io.IOException;
-import java.io.SequenceInputStream;
 import java.util.Arrays;
 import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.transform.TransformerException;
 import javax.xml.ws.WebServiceException;
 import org.apache.syncope.client.cli.Input;
 import org.apache.syncope.client.cli.util.CommandUtils;
-import org.apache.syncope.client.cli.util.XMLUtils;
 import org.apache.syncope.common.lib.SyncopeClientException;
 import org.apache.syncope.common.lib.types.ReportExecExportFormat;
 import org.slf4j.Logger;
@@ -52,31 +50,9 @@ public class ReportExportExecution extends AbstractReportCommand {
             final String[] parameters = Arrays.copyOf(input.getParameters(), input.parameterNumber() - 1);
             for (final String parameter : parameters) {
                 try {
-                    final ReportExecExportFormat format = ReportExecExportFormat.valueOf(input.lastParameter());
-                    final SequenceInputStream report = (SequenceInputStream) reportSyncopeOperations.
-                            exportExecutionResult(parameter, format).getEntity();
-                    switch (format) {
-                        case XML:
-                            final String xmlFinalName = "export_" + parameter + ".xml";
-                            XMLUtils.createXMLFile(report, xmlFinalName);
-                            reportResultManager.genericMessage(xmlFinalName + " successfully created");
-                            break;
-                        case CSV:
-                            reportResultManager.genericError(format + " doesn't supported");
-                            break;
-                        case PDF:
-                            reportResultManager.genericError(format + " doesn't supported");
-                            break;
-                        case HTML:
-                            reportResultManager.genericError(format + " doesn't supported");
-                            break;
-                        case RTF:
-                            reportResultManager.genericError(format + " doesn't supported");
-                            break;
-                        default:
-                            reportResultManager.genericError(format + " doesn't supported");
-                            break;
-                    }
+                    final String result = reportSyncopeOperations.exportExecutionResult(
+                            parameter, input.lastParameter());
+                    reportResultManager.genericMessage(result);
                 } catch (final WebServiceException | SyncopeClientException ex) {
                     LOG.error("Error exporting execution", ex);
                     if (ex.getMessage().startsWith("NotFound")) {

http://git-wip-us.apache.org/repos/asf/syncope/blob/3082eb0d/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportListJobs.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportListJobs.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportListJobs.java
index d9ce475..ff743dc 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportListJobs.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportListJobs.java
@@ -40,7 +40,7 @@ public class ReportListJobs extends AbstractReportCommand {
         if (input.parameterNumber() == 0) {
             try {
                 for (final JobStatusType jobStatusType : JobStatusType.values()) {
-                    reportResultManager.printReportExecution(reportSyncopeOperations.listJobs(jobStatusType));
+                    reportResultManager.printReportExecution(reportSyncopeOperations.listJobs(jobStatusType.name()));
                 }
             } catch (final SyncopeClientException ex) {
                 LOG.error("Error listing report", ex);

http://git-wip-us.apache.org/repos/asf/syncope/blob/3082eb0d/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportSyncopeOperations.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportSyncopeOperations.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportSyncopeOperations.java
index 1cf4514..a02ae76 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportSyncopeOperations.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportSyncopeOperations.java
@@ -18,14 +18,19 @@
  */
 package org.apache.syncope.client.cli.commands.report;
 
+import java.io.IOException;
+import java.io.SequenceInputStream;
 import java.util.List;
-import javax.ws.rs.core.Response;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.TransformerException;
 import org.apache.syncope.client.cli.SyncopeServices;
+import org.apache.syncope.client.cli.util.XMLUtils;
 import org.apache.syncope.common.lib.to.ReportExecTO;
 import org.apache.syncope.common.lib.to.ReportTO;
 import org.apache.syncope.common.lib.types.JobStatusType;
 import org.apache.syncope.common.lib.types.ReportExecExportFormat;
 import org.apache.syncope.common.rest.api.service.ReportService;
+import org.xml.sax.SAXException;
 
 public class ReportSyncopeOperations {
 
@@ -39,16 +44,36 @@ public class ReportSyncopeOperations {
         return reportService.read(Long.valueOf(reportId));
     }
 
-    public List<ReportExecTO> listJobs(final JobStatusType jobStatusType) {
-        return reportService.listJobs(jobStatusType);
+    public List<ReportExecTO> listJobs(final String jobStatusType) {
+        return reportService.listJobs(JobStatusType.valueOf(jobStatusType));
     }
 
     public List<ReportTO> list() {
         return reportService.list();
     }
 
-    public Response exportExecutionResult(final String executionKey, final ReportExecExportFormat fmt) {
-        return reportService.exportExecutionResult(Long.valueOf(executionKey), fmt);
+    public String exportExecutionResult(final String executionKey, final String reportExecExportFormat)
+            throws TransformerException, SAXException, IOException, ParserConfigurationException {
+        final ReportExecExportFormat format = ReportExecExportFormat.valueOf(reportExecExportFormat);
+        final SequenceInputStream report = (SequenceInputStream) reportService.exportExecutionResult(Long.valueOf(
+                executionKey), format).getEntity();
+        final String xmlFinalName = "export_" + executionKey + ".xml";
+        switch (format) {
+            case XML:
+                XMLUtils.createXMLFile(report, xmlFinalName);
+                break;
+            case CSV:
+                return format + " doesn't supported";
+            case PDF:
+                return format + " doesn't supported";
+            case HTML:
+                return format + " doesn't supported";
+            case RTF:
+                return format + " doesn't supported";
+            default:
+                return format + " doesn't supported";
+        }
+        return xmlFinalName;
     }
 
     public void execute(final String reportId) {

http://git-wip-us.apache.org/repos/asf/syncope/blob/3082eb0d/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaDelete.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaDelete.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaDelete.java
index 5b33f93..beae088 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaDelete.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaDelete.java
@@ -45,7 +45,7 @@ public class SchemaDelete extends AbstractSchemaCommand {
             final String[] parameters = Arrays.copyOfRange(input.getParameters(), 1, input.parameterNumber());
             try {
                 for (final String parameter : parameters) {
-                    schemaSyncopeOperations.delete(SchemaType.valueOf(input.firstParameter()), parameter);
+                    schemaSyncopeOperations.delete(input.firstParameter(), parameter);
                     schemaResultManager.deletedMessage("Schema", parameter);
                 }
             } catch (final SyncopeClientException | WebServiceException ex) {

http://git-wip-us.apache.org/repos/asf/syncope/blob/3082eb0d/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaList.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaList.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaList.java
index 3b2bc83..5615b50 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaList.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaList.java
@@ -43,24 +43,11 @@ public class SchemaList extends AbstractSchemaCommand {
     public void list() {
         if (input.parameterNumber() == 1) {
             try {
-                final SchemaType schemaType = SchemaType.valueOf(input.firstParameter());
                 final LinkedList<AbstractSchemaTO> schemaTOs = new LinkedList<>();
-                for (final AbstractSchemaTO schemaTO : schemaSyncopeOperations.list(schemaType)) {
+                for (final AbstractSchemaTO schemaTO : schemaSyncopeOperations.list(input.firstParameter())) {
                     schemaTOs.add(schemaTO);
                 }
-                switch (schemaType) {
-                    case PLAIN:
-                        schemaResultManager.printSchemas(schemaTOs);
-                        break;
-                    case DERIVED:
-                        schemaResultManager.fromListDerived(schemaTOs);
-                        break;
-                    case VIRTUAL:
-                        schemaResultManager.fromListVirtual(schemaTOs);
-                        break;
-                    default:
-                        break;
-                }
+                schemaResultManager.toView(input.firstParameter(), schemaTOs);
             } catch (final SyncopeClientException ex) {
                 LOG.error("Error listing schema", ex);
                 schemaResultManager.genericError(ex.getMessage());

http://git-wip-us.apache.org/repos/asf/syncope/blob/3082eb0d/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaListAll.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaListAll.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaListAll.java
index 490eab0..fb03347 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaListAll.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaListAll.java
@@ -44,22 +44,10 @@ public class SchemaListAll extends AbstractSchemaCommand {
             try {
                 for (final SchemaType schemaType : SchemaType.values()) {
                     final LinkedList<AbstractSchemaTO> schemaTOs = new LinkedList<>();
-                    for (final AbstractSchemaTO schemaTO : schemaSyncopeOperations.list(schemaType)) {
+                    for (final AbstractSchemaTO schemaTO : schemaSyncopeOperations.list(schemaType.name())) {
                         schemaTOs.add(schemaTO);
                     }
-                    switch (schemaType) {
-                        case PLAIN:
-                            schemaResultManager.printSchemas(schemaTOs);
-                            break;
-                        case DERIVED:
-                            schemaResultManager.fromListDerived(schemaTOs);
-                            break;
-                        case VIRTUAL:
-                            schemaResultManager.fromListVirtual(schemaTOs);
-                            break;
-                        default:
-                            break;
-                    }
+                    schemaResultManager.toView(schemaType.name(), schemaTOs);
                 }
             } catch (final SyncopeClientException | WebServiceException ex) {
                 LOG.error("Error listing schema", ex);

http://git-wip-us.apache.org/repos/asf/syncope/blob/3082eb0d/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaListPlain.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaListPlain.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaListPlain.java
index cbb6f77..5b18219 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaListPlain.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaListPlain.java
@@ -45,7 +45,7 @@ public class SchemaListPlain extends AbstractSchemaCommand {
                 for (final AbstractSchemaTO schemaTO : schemaSyncopeOperations.listPlain()) {
                     schemaTOs.add(schemaTO);
                 }
-                schemaResultManager.printSchemas(schemaTOs);
+                schemaResultManager.printPlainSchemas(schemaTOs);
             } catch (final SyncopeClientException | WebServiceException ex) {
                 LOG.error("Error listing schema", ex);
                 schemaResultManager.genericError(ex.getMessage());

http://git-wip-us.apache.org/repos/asf/syncope/blob/3082eb0d/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaRead.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaRead.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaRead.java
index 599148e..0459cac 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaRead.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaRead.java
@@ -46,24 +46,11 @@ public class SchemaRead extends AbstractSchemaCommand {
         if (input.parameterNumber() >= 2) {
             final String[] parameters = Arrays.copyOfRange(input.getParameters(), 1, input.parameterNumber());
             try {
-                final SchemaType schemaType = SchemaType.valueOf(input.firstParameter());
                 final LinkedList<AbstractSchemaTO> schemaTOs = new LinkedList<>();
                 for (final String parameter : parameters) {
-                    schemaTOs.add(schemaSyncopeOperations.read(schemaType, parameter));
-                }
-                switch (schemaType) {
-                    case PLAIN:
-                        schemaResultManager.printSchemasWithDetails(schemaTOs);
-                        break;
-                    case DERIVED:
-                        schemaResultManager.fromListDerived(schemaTOs);
-                        break;
-                    case VIRTUAL:
-                        schemaResultManager.fromListVirtual(schemaTOs);
-                        break;
-                    default:
-                        break;
+                    schemaTOs.add(schemaSyncopeOperations.read(input.firstParameter(), parameter));
                 }
+                schemaResultManager.toView(input.firstParameter(), schemaTOs);
             } catch (final SyncopeClientException | WebServiceException ex) {
                 LOG.error("Error reading schema", ex);
                 if (ex.getMessage().startsWith("NotFound")) {

http://git-wip-us.apache.org/repos/asf/syncope/blob/3082eb0d/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaResultManager.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaResultManager.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaResultManager.java
index 2ff8712..7dbdfd8 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaResultManager.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaResultManager.java
@@ -27,48 +27,54 @@ import org.apache.syncope.common.lib.to.AbstractSchemaTO;
 import org.apache.syncope.common.lib.to.DerSchemaTO;
 import org.apache.syncope.common.lib.to.PlainSchemaTO;
 import org.apache.syncope.common.lib.to.VirSchemaTO;
+import org.apache.syncope.common.lib.types.SchemaType;
 
 public class SchemaResultManager extends CommonsResultManager {
 
-    public void printSchemas(final LinkedList<? extends AbstractSchemaTO> schemaTOs) {
-        final Table.TableBuilder tableBuilder
-                = new Table.TableBuilder("plain schemas").header("schema key").header("type").header("mandatory");
+    public void toView(final String schemaTypeString, final LinkedList<? extends AbstractSchemaTO> schemaTOs) {
+        switch (SchemaType.valueOf(schemaTypeString)) {
+            case PLAIN:
+                printPlainSchemasDetailed(schemaTOs);
+                break;
+            case DERIVED:
+                fromListDerived(schemaTOs);
+                break;
+            case VIRTUAL:
+                fromListVirtual(schemaTOs);
+                break;
+            default:
+                break;
+        }
+    }
+
+    private void printPlainSchemasDetailed(final LinkedList<? extends AbstractSchemaTO> schemaTOs) {
+        System.out.println("");
         for (final AbstractSchemaTO schemaTO : schemaTOs) {
-            tableBuilder.rowValues(new LinkedList(Arrays.asList(
-                    ((PlainSchemaTO) schemaTO).getKey(),
-                    ((PlainSchemaTO) schemaTO).getType().toString(),
-                    ((PlainSchemaTO) schemaTO).getMandatoryCondition())));
+            printPlanSchemaDetailed((PlainSchemaTO) schemaTO);
         }
-        tableBuilder.build().print();
     }
 
-    public void printSchemasWithDetails(final LinkedList<? extends AbstractSchemaTO> schemaTOs) {
+    private void printPlanSchemaDetailed(final PlainSchemaTO schemaTO) {
+        System.out.println(" > SCHEMA ID: " + schemaTO.getKey());
+        System.out.println("    type: " + schemaTO.getType().toString());
+        System.out.println("    any type class: " + schemaTO.getAnyTypeClass());
+        System.out.println("    conversion pattern: " + schemaTO.getConversionPattern());
+        System.out.println("    mandatory condition: " + schemaTO.getMandatoryCondition());
+        System.out.println("    mime type: " + schemaTO.getMimeType());
+        System.out.println("    validator class: " + schemaTO.getValidatorClass());
+        System.out.println("    chiper algorithm: " + (schemaTO.getCipherAlgorithm() == null
+                ? "" : schemaTO.getCipherAlgorithm().getAlgorithm()));
+        System.out.println("");
+    }
+
+    public void printPlainSchemas(final LinkedList<? extends AbstractSchemaTO> schemaTOs) {
         final Table.TableBuilder tableBuilder
-                = new Table.TableBuilder("plain schema details ")
-                .header("schema key")
-                .header("type class")
-                .header("pattern")
-                .header("enum keys")
-                .header("enum values")
-                .header("mandatory condition")
-                .header("mime type")
-                .header("secret key")
-                .header("class validator")
-                .header("chiper")
-                .header("type");
+                = new Table.TableBuilder("plain schemas").header("schema key").header("type").header("mandatory");
         for (final AbstractSchemaTO schemaTO : schemaTOs) {
             tableBuilder.rowValues(new LinkedList(Arrays.asList(
                     ((PlainSchemaTO) schemaTO).getKey(),
-                    ((PlainSchemaTO) schemaTO).getAnyTypeClass(),
-                    ((PlainSchemaTO) schemaTO).getConversionPattern(),
-                    ((PlainSchemaTO) schemaTO).getEnumerationKeys(),
-                    ((PlainSchemaTO) schemaTO).getEnumerationValues(),
-                    ((PlainSchemaTO) schemaTO).getMandatoryCondition(),
-                    ((PlainSchemaTO) schemaTO).getMimeType(),
-                    ((PlainSchemaTO) schemaTO).getSecretKey(),
-                    ((PlainSchemaTO) schemaTO).getValidatorClass(),
-                    ((PlainSchemaTO) schemaTO).getCipherAlgorithm(),
-                    ((PlainSchemaTO) schemaTO).getType().toString())));
+                    ((PlainSchemaTO) schemaTO).getType().toString(),
+                    ((PlainSchemaTO) schemaTO).getMandatoryCondition())));
         }
         tableBuilder.build().print();
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/3082eb0d/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaSyncopeOperations.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaSyncopeOperations.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaSyncopeOperations.java
index c5e8097..757e2d6 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaSyncopeOperations.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaSyncopeOperations.java
@@ -28,12 +28,12 @@ public class SchemaSyncopeOperations {
 
     private final SchemaService schemaService = SyncopeServices.get(SchemaService.class);
 
-    public <T extends AbstractSchemaTO> T read(final SchemaType schemaType, final String schemaName) {
-        return schemaService.read(schemaType, schemaName);
+    public <T extends AbstractSchemaTO> T read(final String schemaTypeString, final String schemaName) {
+        return schemaService.read(SchemaType.valueOf(schemaTypeString), schemaName);
     }
 
-    public <T extends AbstractSchemaTO> List<T> list(final SchemaType schemaType) {
-        return schemaService.list(schemaType, null);
+    public <T extends AbstractSchemaTO> List<T> list(final String schemaTypeString) {
+        return schemaService.list(SchemaType.valueOf(schemaTypeString), null);
     }
 
     public <T extends AbstractSchemaTO> List<T> listVirtual() {
@@ -48,7 +48,7 @@ public class SchemaSyncopeOperations {
         return schemaService.list(SchemaType.DERIVED, null);
     }
 
-    public void delete(final SchemaType schemaType, final String schemaName) {
-        schemaService.delete(schemaType, schemaName);
+    public void delete(final String schemaTypeString, final String schemaName) {
+        schemaService.delete(SchemaType.valueOf(schemaTypeString), schemaName);
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/3082eb0d/client/cli/src/main/java/org/apache/syncope/client/cli/commands/self/WorkflowExportDefinition.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/self/WorkflowExportDefinition.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/self/WorkflowExportDefinition.java
index 25d326a..2b09a92 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/self/WorkflowExportDefinition.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/self/WorkflowExportDefinition.java
@@ -18,6 +18,7 @@
  */
 package org.apache.syncope.client.cli.commands.self;
 
+import javax.ws.rs.core.Response;
 import javax.xml.ws.WebServiceException;
 import org.apache.syncope.client.cli.Input;
 import org.apache.syncope.client.cli.util.CommandUtils;
@@ -41,8 +42,8 @@ public class WorkflowExportDefinition extends AbstractWorkflowCommand {
     public void export() {
         if (input.parameterNumber() == 1) {
             try {
-                final AnyTypeKind anyTypeKind = AnyTypeKind.valueOf(input.firstParameter());
-                System.out.println(" > > > > " + workflowSyncopeOperations.exportDefinition(anyTypeKind).getEntity());
+
+                final Response response = workflowSyncopeOperations.exportDefinition(input.firstParameter());
             } catch (final SyncopeClientException | WebServiceException ex) {
                 LOG.error("Error", ex);
                 if (ex.getMessage().startsWith("NotFound")) {

http://git-wip-us.apache.org/repos/asf/syncope/blob/3082eb0d/client/cli/src/main/java/org/apache/syncope/client/cli/commands/self/WorkflowExportDiagram.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/self/WorkflowExportDiagram.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/self/WorkflowExportDiagram.java
index abc4c61..7d98d70 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/self/WorkflowExportDiagram.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/self/WorkflowExportDiagram.java
@@ -42,8 +42,7 @@ public class WorkflowExportDiagram extends AbstractWorkflowCommand {
     public void export() {
         if (input.parameterNumber() == 1) {
             try {
-                final AnyTypeKind anyTypeKind = AnyTypeKind.valueOf(input.firstParameter());
-                final Response response = workflowSyncopeOperations.exportDiagram(anyTypeKind);
+                final Response response = workflowSyncopeOperations.exportDiagram(input.firstParameter());
                 final byte[] diagram = IOUtils.readBytesFromStream((InputStream) response.getEntity());
                 final FileOutputStream fos = new FileOutputStream("/tmp/diagram.png");
                 fos.write(diagram);

http://git-wip-us.apache.org/repos/asf/syncope/blob/3082eb0d/client/cli/src/main/java/org/apache/syncope/client/cli/commands/self/WorkflowSyncopeOperations.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/self/WorkflowSyncopeOperations.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/self/WorkflowSyncopeOperations.java
index 173db43..6d0f3b2 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/self/WorkflowSyncopeOperations.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/self/WorkflowSyncopeOperations.java
@@ -29,12 +29,12 @@ public class WorkflowSyncopeOperations {
 
     private final WorkflowService workflowService = SyncopeServices.get(WorkflowService.class);
 
-    public Response exportDiagram(final AnyTypeKind anyTypeKind) {
+    public Response exportDiagram(final String anyTypeKindString) {
         WebClient.client(workflowService).accept(RESTHeaders.MEDIATYPE_IMAGE_PNG);
-        return workflowService.exportDiagram(anyTypeKind);
+        return workflowService.exportDiagram(AnyTypeKind.valueOf(anyTypeKindString));
     }
 
-    public Response exportDefinition(final AnyTypeKind anyTypeKind) {
-        return workflowService.exportDefinition(anyTypeKind);
+    public Response exportDefinition(final String anyTypeKindString) {
+        return workflowService.exportDefinition(AnyTypeKind.valueOf(anyTypeKindString));
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/3082eb0d/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskCommand.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskCommand.java
index bf76ff0..6794667 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskCommand.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskCommand.java
@@ -32,8 +32,8 @@ public class TaskCommand extends AbstractCommand {
             + "  Options:\n"
             + "    --help \n"
             + "    --details\n"
-            + "    --list-task \n"
-            + "       Syntax: --list-task {TASK-TYPE} \n"
+            + "    --list\n"
+            + "       Syntax: --list {TASK-TYPE} \n"
             + "          Task type: NOTIFICATION / PROPAGATION / PUSH / SCHEDULED / SYNCHRONIZATION\n"
             + "    --list-running-jobs \n"
             + "    --list-scheduled-jobs \n"
@@ -59,7 +59,7 @@ public class TaskCommand extends AbstractCommand {
             case DETAILS:
                 new TaskDetails(input).details();
                 break;
-            case LIST_TASK:
+            case LIST:
                 new TaskList(input).list();
                 break;
             case LIST_RUNNING_JOBS:
@@ -100,7 +100,7 @@ public class TaskCommand extends AbstractCommand {
 
         HELP("--help"),
         DETAILS("--details"),
-        LIST_TASK("--list-task"),
+        LIST("--list"),
         LIST_RUNNING_JOBS("--list-running-jobs"),
         LIST_SCHEDULED_JOBS("--list-scheduled-jobs"),
         READ("--read"),

http://git-wip-us.apache.org/repos/asf/syncope/blob/3082eb0d/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskDetails.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskDetails.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskDetails.java
index e4a325e..0e12590 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskDetails.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskDetails.java
@@ -51,11 +51,12 @@ public class TaskDetails extends AbstractTaskCommand {
         if (input.parameterNumber() == 0) {
             try {
                 final Map<String, String> details = new LinkedMap<>();
-                final List<AbstractTaskTO> notificationTaskTOs = taskSyncopeOperations.list(TaskType.NOTIFICATION);
-                final List<AbstractTaskTO> propagationTaskTOs = taskSyncopeOperations.list(TaskType.PROPAGATION);
-                final List<AbstractTaskTO> pushTaskTOs = taskSyncopeOperations.list(TaskType.PUSH);
-                final List<AbstractTaskTO> scheduledTaskTOs = taskSyncopeOperations.list(TaskType.SCHEDULED);
-                final List<AbstractTaskTO> syncTaskTOs = taskSyncopeOperations.list(TaskType.SYNCHRONIZATION);
+                final List<AbstractTaskTO> notificationTaskTOs
+                        = taskSyncopeOperations.list(TaskType.NOTIFICATION.name());
+                final List<AbstractTaskTO> propagationTaskTOs = taskSyncopeOperations.list(TaskType.PROPAGATION.name());
+                final List<AbstractTaskTO> pushTaskTOs = taskSyncopeOperations.list(TaskType.PUSH.name());
+                final List<AbstractTaskTO> scheduledTaskTOs = taskSyncopeOperations.list(TaskType.SCHEDULED.name());
+                final List<AbstractTaskTO> syncTaskTOs = taskSyncopeOperations.list(TaskType.SYNCHRONIZATION.name());
                 final List<TaskExecTO> runningTOs = taskSyncopeOperations.listRunningJobs();
                 final List<TaskExecTO> scheduledTOs = taskSyncopeOperations.listScheduledJobs();
                 final int notificationTaskSize = notificationTaskTOs.size();

http://git-wip-us.apache.org/repos/asf/syncope/blob/3082eb0d/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskList.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskList.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskList.java
index 699b287..02a22b0 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskList.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskList.java
@@ -31,7 +31,7 @@ public class TaskList extends AbstractTaskCommand {
 
     private static final Logger LOG = LoggerFactory.getLogger(TaskList.class);
 
-    private static final String LIST_HELP_MESSAGE = "task --list-task {TASK-TYPE}\n"
+    private static final String LIST_HELP_MESSAGE = "task --list {TASK-TYPE}\n"
             + "   Task type: NOTIFICATION / PROPAGATION / PUSH / SCHEDULED / SYNCHRONIZATION";
 
     private final Input input;
@@ -43,12 +43,11 @@ public class TaskList extends AbstractTaskCommand {
     public void list() {
         if (input.parameterNumber() == 1) {
             try {
-                final TaskType taskType = TaskType.valueOf(input.firstParameter());
                 final LinkedList<AbstractTaskTO> taskTOs = new LinkedList<>();
-                for (final AbstractTaskTO taskTO : taskSyncopeOperations.list(taskType)) {
+                for (final AbstractTaskTO taskTO : taskSyncopeOperations.list(input.firstParameter())) {
                     taskTOs.add(taskTO);
                 }
-                taskResultManager.printTasksType(taskType, taskTOs);
+                taskResultManager.printTasksType(input.firstParameter(), taskTOs);
             } catch (final SyncopeClientException ex) {
                 LOG.error("Error listing task", ex);
                 taskResultManager.genericError(ex.getMessage());

http://git-wip-us.apache.org/repos/asf/syncope/blob/3082eb0d/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskResultManager.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskResultManager.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskResultManager.java
index 6ca0c6c..2441864 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskResultManager.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskResultManager.java
@@ -51,9 +51,9 @@ public class TaskResultManager extends CommonsResultManager {
         }
     }
 
-    public void printTasksType(final TaskType taskType, final LinkedList<AbstractTaskTO> taskTOs) {
+    public void printTasksType(final String taskTypeString, final LinkedList<AbstractTaskTO> taskTOs) {
         System.out.println("");
-        switch (taskType) {
+        switch (TaskType.valueOf(taskTypeString)) {
             case NOTIFICATION:
                 for (final AbstractTaskTO taskTO : taskTOs) {
                     printNotificationTask(((NotificationTaskTO) taskTO));

http://git-wip-us.apache.org/repos/asf/syncope/blob/3082eb0d/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskSyncopeOperations.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskSyncopeOperations.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskSyncopeOperations.java
index 756efa6..cecb2b8 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskSyncopeOperations.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskSyncopeOperations.java
@@ -47,8 +47,8 @@ public class TaskSyncopeOperations {
         taskService.read(Long.valueOf(taskId));
     }
 
-    public List<AbstractTaskTO> list(final TaskType type) {
-        return taskService.list(type, new TaskQuery()).getResult();
+    public List<AbstractTaskTO> list(final String type) {
+        return taskService.list(TaskType.valueOf(type), new TaskQuery()).getResult();
     }
 
     public TaskExecTO readExecution(final String executionId) {