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/06 17:57:41 UTC

[4/4] syncope git commit: Fixed SYNCOPE-724

Fixed SYNCOPE-724


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

Branch: refs/heads/master
Commit: d59380af6f3be5412fa283c7c59e759f34ae71f1
Parents: 03b341e
Author: massi <ma...@tirasa.net>
Authored: Fri Nov 6 12:00:43 2015 +0100
Committer: massi <ma...@tirasa.net>
Committed: Fri Nov 6 17:57:22 2015 +0100

----------------------------------------------------------------------
 .../cli/commands/CommonsResultManager.java      |  7 ++++-
 .../client/cli/commands/any/AnyCommand.java     | 20 +++-----------
 .../configuration/ConfigurationCommand.java     | 19 +++----------
 .../commands/connector/ConnectorCommand.java    | 19 +++----------
 .../cli/commands/domain/DomainCommand.java      | 14 +++-------
 .../entitlement/EntitlementCommand.java         | 21 ++++-----------
 .../client/cli/commands/group/GroupCommand.java | 20 +++-----------
 .../cli/commands/install/InstallSetup.java      |  8 +++++-
 .../cli/commands/logger/LoggerCommand.java      | 22 +++------------
 .../notification/NotificationCommand.java       | 15 +++--------
 .../cli/commands/policy/PolicyCommand.java      | 18 +++----------
 .../cli/commands/question/QuestionCommand.java  | 15 +++--------
 .../client/cli/commands/realm/RealmCommand.java | 12 +++------
 .../cli/commands/report/ReportCommand.java      | 26 +++---------------
 .../cli/commands/resource/ResourceCommand.java  | 16 +++--------
 .../client/cli/commands/role/RoleCommand.java   | 16 +++--------
 .../cli/commands/schema/SchemaCommand.java      | 19 +++----------
 .../cli/commands/self/WorkflowCommand.java      | 14 +++-------
 .../client/cli/commands/task/TaskCommand.java   | 27 +++----------------
 .../client/cli/commands/user/UserCommand.java   | 28 ++++----------------
 .../syncope/client/cli/view/Messages.java       | 10 ++++++-
 .../cli/src/main/resources/messages.properties  | 18 +++++++++++++
 22 files changed, 114 insertions(+), 270 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/d59380af/client/cli/src/main/java/org/apache/syncope/client/cli/commands/CommonsResultManager.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/CommonsResultManager.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/CommonsResultManager.java
index e0f7986..c3f553a 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/CommonsResultManager.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/CommonsResultManager.java
@@ -23,6 +23,7 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import org.apache.syncope.client.cli.Command;
 import org.apache.syncope.client.cli.view.Messages;
 import org.apache.syncope.client.cli.view.Table;
 import org.apache.syncope.common.lib.types.ConnConfProperty;
@@ -69,6 +70,10 @@ public abstract class CommonsResultManager {
         Messages.printMessage("Error: " + error);
     }
 
+    public String commandHelpMessage(final Class name) {
+        return Messages.commandHelpMessage(((Command) name.getAnnotation(Command.class)).name());
+    }
+
     protected void printConfiguration(final Set<ConnConfProperty> configurationPropertys) {
         for (final ConnConfProperty configuration : configurationPropertys) {
             System.out.println("       name: " + configuration.getSchema().getName());
@@ -84,7 +89,7 @@ public abstract class CommonsResultManager {
             System.out.println("");
         }
     }
-    
+
     protected void printDetails(final String title, final Map<String, String> details) {
         final Table.TableBuilder tableBuilder
                 = new Table.TableBuilder(title).header("detail").header("value");

http://git-wip-us.apache.org/repos/asf/syncope/blob/d59380af/client/cli/src/main/java/org/apache/syncope/client/cli/commands/any/AnyCommand.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/any/AnyCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/any/AnyCommand.java
index a8bed99..c4b2159 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/any/AnyCommand.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/any/AnyCommand.java
@@ -28,19 +28,7 @@ import org.apache.syncope.client.cli.commands.AbstractCommand;
 @Command(name = "any")
 public class AnyCommand extends AbstractCommand {
 
-    private static final String HELP_MESSAGE = "\nUsage: any [options]\n"
-            + "  Options:\n"
-            + "    --help \n"
-            + "    --details \n"
-            + "    --list \n"
-            + "    --read \n"
-            + "       Syntax: --read {ANY-ID} {ANY-ID} [...]\n"
-            + "    --read-attr-by-schema-type {ANY-ID} {SCHEMA-TYPE}\n"
-            + "       Schema type: PLAIN / DERIVED / VIRTUAL\n"
-            + "    --read-attr-by-schema {ANY-ID} {SCHEMA-TYPE} {SCHEMA-NAME}\n"
-            + "       Schema type: PLAIN / DERIVED / VIRTUAL\n"
-            + "    --delete \n"
-            + "       Syntax: --delete {ANY-ID} {ANY-ID} [...]\n";
+    private final AnyResultManager anyResultManager = new AnyResultManager();
 
     @Override
     public void execute(final Input input) {
@@ -66,16 +54,16 @@ public class AnyCommand extends AbstractCommand {
                 new AnyDelete(input).delete();
                 break;
             case HELP:
-                System.out.println(HELP_MESSAGE);
+                System.out.println(getHelpMessage());
                 break;
             default:
-                new AnyResultManager().defaultOptionMessage(input.getOption(), HELP_MESSAGE);
+                anyResultManager.defaultOptionMessage(input.getOption(), getHelpMessage());
         }
     }
 
     @Override
     public String getHelpMessage() {
-        return HELP_MESSAGE;
+        return anyResultManager.commandHelpMessage(getClass());
     }
 
     private enum AnyOptions {

http://git-wip-us.apache.org/repos/asf/syncope/blob/d59380af/client/cli/src/main/java/org/apache/syncope/client/cli/commands/configuration/ConfigurationCommand.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/configuration/ConfigurationCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/configuration/ConfigurationCommand.java
index 4ab4a38..00fcdfd 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/configuration/ConfigurationCommand.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/configuration/ConfigurationCommand.java
@@ -28,18 +28,7 @@ import org.apache.syncope.client.cli.commands.AbstractCommand;
 @Command(name = "configuration")
 public class ConfigurationCommand extends AbstractCommand {
 
-    private static final String HELP_MESSAGE = "\nUsage: configuration [options]\n"
-            + "  Options:\n"
-            + "    --help \n"
-            + "    --get \n"
-            + "    --read \n"
-            + "       Syntax: --read {CONF-NAME} {CONF-NAME} [...] \n"
-            + "    --update \n"
-            + "       Syntax: --update {CONF-NAME}={CONF-VALUE} {CONF-NAME}={CONF-VALUE} [...]\n"
-            + "    --delete \n"
-            + "       Syntax: --delete {CONF-NAME} {CONF-NAME} [...]\n"
-            + "    --export \n"
-            + "       Syntax: --export {WHERE-DIR}\n";
+    private final ConfigurationResultManager configurationResultManager = new ConfigurationResultManager();
 
     @Override
     public void execute(final Input input) {
@@ -63,17 +52,17 @@ public class ConfigurationCommand extends AbstractCommand {
             case EXPORT:
                 break;
             case HELP:
-                System.out.println(HELP_MESSAGE);
+                System.out.println(getHelpMessage());
                 break;
             default:
-                new ConfigurationResultManager().defaultOptionMessage(input.getOption(), HELP_MESSAGE);
+                new ConfigurationResultManager().defaultOptionMessage(input.getOption(), getHelpMessage());
                 break;
         }
     }
 
     @Override
     public String getHelpMessage() {
-        return HELP_MESSAGE;
+        return configurationResultManager.commandHelpMessage(getClass());
     }
 
     private enum Options {

http://git-wip-us.apache.org/repos/asf/syncope/blob/d59380af/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorCommand.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorCommand.java
index 22892a9..b08ecd5 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorCommand.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorCommand.java
@@ -28,18 +28,7 @@ import org.apache.syncope.client.cli.commands.AbstractCommand;
 @Command(name = "connector")
 public class ConnectorCommand extends AbstractCommand {
 
-    private static final String HELP_MESSAGE = "\nUsage: connector [options]\n"
-            + "  Options:\n"
-            + "    --help \n"
-            + "    --details \n"
-            + "    --list \n"
-            + "    --list-bundles \n"
-            + "    --list-configuration-properties\n"
-            + "       Syntax: --list-configuration-properties {CONNECTOR-ID} {CONNECTOR-ID} [...]\n"
-            + "    --read \n"
-            + "       Syntax: --read {CONNECTOR-ID} {CONNECTOR-ID} [...]\n"
-            + "    --delete \n"
-            + "       Syntax: --delete {CONNECTOR-ID} {CONNECTOR-ID} [...]\n";
+    private final ConnectorResultManager connectorResultManager = new ConnectorResultManager();
 
     @Override
     public void execute(final Input input) {
@@ -70,16 +59,16 @@ public class ConnectorCommand extends AbstractCommand {
                 new ConnectorDelete(input).delete();
                 break;
             case HELP:
-                System.out.println(HELP_MESSAGE);
+                System.out.println(getHelpMessage());
                 break;
             default:
-                new ConnectorResultManager().defaultOptionMessage(input.getOption(), HELP_MESSAGE);
+                connectorResultManager.defaultOptionMessage(input.getOption(), getHelpMessage());
         }
     }
 
     @Override
     public String getHelpMessage() {
-        return HELP_MESSAGE;
+        return connectorResultManager.commandHelpMessage(getClass());
     }
 
     private enum ConnectorOptions {

http://git-wip-us.apache.org/repos/asf/syncope/blob/d59380af/client/cli/src/main/java/org/apache/syncope/client/cli/commands/domain/DomainCommand.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/domain/DomainCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/domain/DomainCommand.java
index ee3213e..c3a023a 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/domain/DomainCommand.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/domain/DomainCommand.java
@@ -28,13 +28,7 @@ import org.apache.syncope.client.cli.commands.AbstractCommand;
 @Command(name = "domain")
 public class DomainCommand extends AbstractCommand {
 
-    private static final String HELP_MESSAGE = "\nUsage: domain [options]\n"
-            + "  Options:\n"
-            + "    --help \n"
-            + "    --details \n"
-            + "    --list \n"
-            + "    --delete \n"
-            + "       Syntax: --delete {DOMAIN-NAME} {DOMAIN-NAME} [...]\n";
+    private final DomainResultManager domainResultManager = new DomainResultManager();
 
     @Override
     public void execute(final Input input) {
@@ -52,16 +46,16 @@ public class DomainCommand extends AbstractCommand {
                 new DomainDelete(input).delete();
                 break;
             case HELP:
-                System.out.println(HELP_MESSAGE);
+                System.out.println(getHelpMessage());
                 break;
             default:
-                new DomainResultManager().deletedMessage(input.getOption(), HELP_MESSAGE);
+                new DomainResultManager().deletedMessage(input.getOption(), getHelpMessage());
         }
     }
 
     @Override
     public String getHelpMessage() {
-        return HELP_MESSAGE;
+        return domainResultManager.commandHelpMessage(getClass());
     }
 
     private enum Options {

http://git-wip-us.apache.org/repos/asf/syncope/blob/d59380af/client/cli/src/main/java/org/apache/syncope/client/cli/commands/entitlement/EntitlementCommand.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/entitlement/EntitlementCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/entitlement/EntitlementCommand.java
index d380bd4..de35fc3 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/entitlement/EntitlementCommand.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/entitlement/EntitlementCommand.java
@@ -28,19 +28,8 @@ import org.apache.syncope.client.cli.commands.AbstractCommand;
 @Command(name = "entitlement")
 public class EntitlementCommand extends AbstractCommand {
 
-    private static final String HELP_MESSAGE = "\nUsage: entitlement [options]\n"
-            + "  Options:\n"
-            + "    --help \n"
-            + "    --list\n"
-            + "    --list-role\n"
-            + "       Syntax: --list-role {ENTITLEMENT-NAME}\n"
-            + "    --read-by-username\n"
-            + "       Syntax: --read-by-username {USERNAME}\n"
-            + "    --read-by-userid\n"
-            + "       Syntax: --read-by-userid {USER-ID}\n"
-            + "    --search-by-role\n"
-            + "       Syntax: --search-by-role {ROLE-ID}\n";
-
+    private final EntitlementResultManager entitlementResultManager = new EntitlementResultManager();
+    
     @Override
     public void execute(final Input input) {
         if (StringUtils.isBlank(input.getOption())) {
@@ -64,16 +53,16 @@ public class EntitlementCommand extends AbstractCommand {
                 new EntitlementListRole(input).list();
                 break;
             case HELP:
-                System.out.println(HELP_MESSAGE);
+                System.out.println(getHelpMessage());
                 break;
             default:
-                new EntitlementResultManager().defaultOptionMessage(input.getOption(), HELP_MESSAGE);
+                entitlementResultManager.defaultOptionMessage(input.getOption(), getHelpMessage());
         }
     }
 
     @Override
     public String getHelpMessage() {
-        return HELP_MESSAGE;
+        return entitlementResultManager.commandHelpMessage(getClass());
     }
 
     private enum EntitlementOptions {

http://git-wip-us.apache.org/repos/asf/syncope/blob/d59380af/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupCommand.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupCommand.java
index 97edbc5..e5d4e39 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupCommand.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupCommand.java
@@ -28,19 +28,7 @@ import org.apache.syncope.client.cli.commands.AbstractCommand;
 @Command(name = "group")
 public class GroupCommand extends AbstractCommand {
 
-    private static final String HELP_MESSAGE = "\nUsage: group [options]\n"
-            + "  Options:\n"
-            + "    --help \n"
-            + "    --details \n"
-            + "    --list \n"
-            + "    --read \n"
-            + "       Syntax: --read {GROUP-ID} {GROUP-ID} [...]\n"
-            + "    --read-attr-by-schema-type {GROUP-ID} {SCHEMA-TYPE}\n"
-            + "       Schema type: PLAIN / DERIVED / VIRTUAL\n"
-            + "    --read-attr-by-schema {GROUP-ID} {SCHEMA-TYPE} {SCHEMA-NAME}\n"
-            + "       Schema type: PLAIN / DERIVED / VIRTUAL\n"
-            + "    --delete \n"
-            + "       Syntax: --delete {GROUP-ID} {GROUP-ID} [...]\n";
+    private final GroupResultManager groupResultManager = new GroupResultManager();
 
     @Override
     public void execute(final Input input) {
@@ -67,16 +55,16 @@ public class GroupCommand extends AbstractCommand {
                 new GroupDelete(input).delete();
                 break;
             case HELP:
-                System.out.println(HELP_MESSAGE);
+                System.out.println(getHelpMessage());
                 break;
             default:
-                new GroupResultManager().defaultOptionMessage(input.getOption(), HELP_MESSAGE);
+                groupResultManager.defaultOptionMessage(input.getOption(), getHelpMessage());
         }
     }
 
     @Override
     public String getHelpMessage() {
-        return HELP_MESSAGE;
+        return groupResultManager.commandHelpMessage(getClass());
     }
 
     private enum GroupOptions {

http://git-wip-us.apache.org/repos/asf/syncope/blob/d59380af/client/cli/src/main/java/org/apache/syncope/client/cli/commands/install/InstallSetup.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/install/InstallSetup.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/install/InstallSetup.java
index 003540e..d14a3fd 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/install/InstallSetup.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/install/InstallSetup.java
@@ -19,6 +19,7 @@
 package org.apache.syncope.client.cli.commands.install;
 
 import java.io.FileNotFoundException;
+import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.util.Scanner;
 import javax.ws.rs.ProcessingException;
@@ -169,10 +170,15 @@ public class InstallSetup {
 
         try {
             final SyncopeService syncopeService = SyncopeServices.get(SyncopeService.class);
-            installResultManager.installationSuccessful(syncopeService.info().getVersion());
+            final String syncopeVersion = syncopeService.info().getVersion();
+            FileSystemUtils.createScriptFile();
+            installResultManager.installationSuccessful(syncopeVersion);
         } catch (final ProcessingException ex) {
             LOG.error("Error installing CLI", ex);
             installResultManager.manageProcessingException(ex);
+        } catch (final FileNotFoundException | UnsupportedEncodingException e) {
+            LOG.error("Error writing script file", e);
+            installResultManager.manageException(e);
         } catch (final Exception e) {
             LOG.error("Error installing CLI", e);
             installResultManager.manageException(e);

http://git-wip-us.apache.org/repos/asf/syncope/blob/d59380af/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerCommand.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerCommand.java
index 482c14e..7452726 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerCommand.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerCommand.java
@@ -28,21 +28,7 @@ import org.apache.syncope.client.cli.commands.AbstractCommand;
 @Command(name = "logger")
 public class LoggerCommand extends AbstractCommand {
 
-    private static final String HELP_MESSAGE = "\nUsage: logger [options]\n"
-            + "  Options:\n"
-            + "    --help \n"
-            + "    --details \n"
-            + "    --list \n"
-            + "    --read \n"
-            + "       Syntax: --read {LOG-NAME} {LOG-NAME} [...]\n"
-            + "    --update \n"
-            + "       Syntax: --update {LOG-NAME}={LOG-LEVEL} {LOG-NAME}={LOG-LEVEL} [...]\n"
-            + "    --update-all \n"
-            + "       Syntax: --update-all {LOG-LEVEL} \n"
-            + "    --create \n"
-            + "       Syntax: --create {LOG-NAME}={LOG-LEVEL} {LOG-NAME}={LOG-LEVEL} [...]\n"
-            + "    --delete \n"
-            + "       Syntax: --delete {LOG-NAME} {LOG-NAME} [...]\n";
+    private final LoggerResultManager loggerResultManager = new LoggerResultManager();
 
     @Override
     public void execute(final Input input) {
@@ -73,16 +59,16 @@ public class LoggerCommand extends AbstractCommand {
                 new LoggerDelete(input).delete();
                 break;
             case HELP:
-                System.out.println(HELP_MESSAGE);
+                System.out.println(getHelpMessage());
                 break;
             default:
-                new LoggerResultManager().defaultOptionMessage(input.getOption(), HELP_MESSAGE);
+                loggerResultManager.defaultOptionMessage(input.getOption(), getHelpMessage());
         }
     }
 
     @Override
     public String getHelpMessage() {
-        return HELP_MESSAGE;
+        return loggerResultManager.commandHelpMessage(getClass());
     }
 
     private enum LoggerOptions {

http://git-wip-us.apache.org/repos/asf/syncope/blob/d59380af/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationCommand.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationCommand.java
index 36c4b3d..3acbda3 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationCommand.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationCommand.java
@@ -28,14 +28,7 @@ import org.apache.syncope.client.cli.commands.AbstractCommand;
 @Command(name = "notification")
 public class NotificationCommand extends AbstractCommand {
 
-    private static final String HELP_MESSAGE = "\nUsage: notification [options]\n"
-            + "  Options:\n"
-            + "    --help \n"
-            + "    --list \n"
-            + "    --read \n"
-            + "       Syntax: --read {NOTIFICATION-ID} \n"
-            + "    --delete \n"
-            + "       Syntax: --delete {NOTIFICATION-ID}\n";
+    private final NotificationResultManager notificationResultManager = new NotificationResultManager();
 
     @Override
     public void execute(final Input input) {
@@ -54,16 +47,16 @@ public class NotificationCommand extends AbstractCommand {
                 new NotificationDelete(input).delete();
                 break;
             case HELP:
-                System.out.println(HELP_MESSAGE);
+                System.out.println(getHelpMessage());
                 break;
             default:
-                new NotificationResultManager().deletedMessage(input.getOption(), HELP_MESSAGE);
+                notificationResultManager.deletedMessage(input.getOption(), getHelpMessage());
         }
     }
 
     @Override
     public String getHelpMessage() {
-        return HELP_MESSAGE;
+        return notificationResultManager.commandHelpMessage(getClass());
     }
 
     private enum Options {

http://git-wip-us.apache.org/repos/asf/syncope/blob/d59380af/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 6403049..bceb0d6 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
@@ -28,17 +28,7 @@ import org.apache.syncope.client.cli.commands.AbstractCommand;
 @Command(name = "policy")
 public class PolicyCommand extends AbstractCommand {
 
-    private static final String HELP_MESSAGE = "\nUsage: policy [options]\n"
-            + "  Options:\n"
-            + "    --help \n"
-            + "    --details \n"
-            + "    --list \n"
-            + "       Syntax: --list-policy {POLICY-TYPE} \n"
-            + "          Policy type: ACCOUNT / PASSWORD / SYNC / PUSH\n"
-            + "    --read \n"
-            + "       Syntax: --read {POLICY-ID} {POLICY-ID} [...]\n"
-            + "    --delete \n"
-            + "       Syntax: --delete {POLICY-ID} {POLICY-ID} [...]\n";
+    private final PolicyResultManager policyResultManager = new PolicyResultManager();
 
     @Override
     public void execute(final Input input) {
@@ -60,16 +50,16 @@ public class PolicyCommand extends AbstractCommand {
                 new PolicyDelete(input).delete();
                 break;
             case HELP:
-                System.out.println(HELP_MESSAGE);
+                System.out.println(getHelpMessage());
                 break;
             default:
-                new PolicyResultManager().defaultOptionMessage(input.getOption(), HELP_MESSAGE);
+                policyResultManager.defaultOptionMessage(input.getOption(), getHelpMessage());
         }
     }
 
     @Override
     public String getHelpMessage() {
-        return HELP_MESSAGE;
+        return policyResultManager.commandHelpMessage(getClass());
     }
 
     private enum Options {

http://git-wip-us.apache.org/repos/asf/syncope/blob/d59380af/client/cli/src/main/java/org/apache/syncope/client/cli/commands/question/QuestionCommand.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/question/QuestionCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/question/QuestionCommand.java
index 9ed995b..bcb2a5f 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/question/QuestionCommand.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/question/QuestionCommand.java
@@ -28,14 +28,7 @@ import org.apache.syncope.client.cli.commands.AbstractCommand;
 @Command(name = "question")
 public class QuestionCommand extends AbstractCommand {
 
-    private static final String HELP_MESSAGE = "\nUsage: question [options]\n"
-            + "  Options:\n"
-            + "    --help \n"
-            + "    --list \n"
-            + "    --read \n"
-            + "       Syntax: --read {QUESTION-ID} {QUESTION-ID} [...]\n"
-            + "    --delete \n"
-            + "       Syntax: --delete {QUESTION-ID} {QUESTION-ID} [...]\n";
+    private final QuestionResultManager questionResultManager = new QuestionResultManager();
 
     @Override
     public void execute(final Input input) {
@@ -53,16 +46,16 @@ public class QuestionCommand extends AbstractCommand {
             case DELETE:
                 break;
             case HELP:
-                System.out.println(HELP_MESSAGE);
+                System.out.println(getHelpMessage());
                 break;
             default:
-                new QuestionResultManager().defaultOptionMessage(input.getOption(), HELP_MESSAGE);
+                questionResultManager.defaultOptionMessage(input.getOption(), getHelpMessage());
         }
     }
 
     @Override
     public String getHelpMessage() {
-        return HELP_MESSAGE;
+        return questionResultManager.commandHelpMessage(getClass());
     }
 
     private enum QuestionOptions {

http://git-wip-us.apache.org/repos/asf/syncope/blob/d59380af/client/cli/src/main/java/org/apache/syncope/client/cli/commands/realm/RealmCommand.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/realm/RealmCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/realm/RealmCommand.java
index 1fcf380..db62d91 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/realm/RealmCommand.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/realm/RealmCommand.java
@@ -28,11 +28,7 @@ import org.apache.syncope.client.cli.commands.AbstractCommand;
 @Command(name = "realm")
 public class RealmCommand extends AbstractCommand {
 
-    private static final String HELP_MESSAGE = "\nUsage: realm [options]\n"
-            + "  Options:\n"
-            + "    --help \n"
-            + "    --details \n"
-            + "    --list \n";
+    private final RealmResultManager realmResultManager = new RealmResultManager();
 
     @Override
     public void execute(final Input input) {
@@ -47,16 +43,16 @@ public class RealmCommand extends AbstractCommand {
                 new RealmList(input).list();
                 break;
             case HELP:
-                System.out.println(HELP_MESSAGE);
+                System.out.println(getHelpMessage());
                 break;
             default:
-                new RealmResultManager().defaultOptionMessage(input.getOption(), HELP_MESSAGE);
+                realmResultManager.defaultOptionMessage(input.getOption(), getHelpMessage());
         }
     }
 
     @Override
     public String getHelpMessage() {
-        return HELP_MESSAGE;
+        return realmResultManager.commandHelpMessage(getClass());
     }
 
     private enum RealmOptions {

http://git-wip-us.apache.org/repos/asf/syncope/blob/d59380af/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportCommand.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportCommand.java
index 560cf25..fcbf1ae 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportCommand.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportCommand.java
@@ -28,25 +28,7 @@ import org.apache.syncope.client.cli.commands.AbstractCommand;
 @Command(name = "report")
 public class ReportCommand extends AbstractCommand {
 
-    private static final String HELP_MESSAGE = "\nUsage: report [options]\n"
-            + "  Options:\n"
-            + "    --help \n"
-            + "    --details\n"
-            + "    --list \n"
-            + "    --list-jobs \n"
-            + "    --read \n"
-            + "       Syntax: --read {REPORT-ID} {REPORT-ID} [...] \n"
-            + "    --delete \n"
-            + "       Syntax: --delete {REPORT-ID} {REPORT-ID} [...]\n"
-            + "    --execute \n"
-            + "       Syntax: --execute {REPORT-ID} \n"
-            + "    --read-execution \n"
-            + "       Syntax: --read-execution {EXECUTION-ID} {EXECUTION-ID} [...]\n"
-            + "    --delete-execution \n"
-            + "       Syntax: --delete-execution {EXECUTION-ID} {EXECUTION-ID} [...]\n"
-            + "    --export-execution-result \n"
-            + "       Syntax: --export-execution-result {EXECUTION-ID} {EXECUTION-ID} [...] {FORMAT}\n"
-            + "          Format: CSV / HTML / PDF / XML / RTF\n";
+    private final ReportResultManager reportResultManager = new ReportResultManager();
 
     @Override
     public void execute(final Input input) {
@@ -83,16 +65,16 @@ public class ReportCommand extends AbstractCommand {
                 new ReportExportExecution(input).export();
                 break;
             case HELP:
-                System.out.println(HELP_MESSAGE);
+                System.out.println(getHelpMessage());
                 break;
             default:
-                new ReportResultManager().defaultOptionMessage(input.getOption(), HELP_MESSAGE);
+                reportResultManager.defaultOptionMessage(input.getOption(), getHelpMessage());
         }
     }
 
     @Override
     public String getHelpMessage() {
-        return HELP_MESSAGE;
+        return reportResultManager.commandHelpMessage(getClass());
     }
 
     private enum Options {

http://git-wip-us.apache.org/repos/asf/syncope/blob/d59380af/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceCommand.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceCommand.java
index 4c137c0..ee7a252 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceCommand.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceCommand.java
@@ -28,15 +28,7 @@ import org.apache.syncope.client.cli.commands.AbstractCommand;
 @Command(name = "resource")
 public class ResourceCommand extends AbstractCommand {
 
-    private static final String HELP_MESSAGE = "\nUsage: resource [options]\n"
-            + "  Options:\n"
-            + "    --help \n"
-            + "    --details \n"
-            + "    --list \n"
-            + "    --read \n"
-            + "       Syntax: --read {CONNECTOR-ID} {CONNECTOR-ID} [...]\n"
-            + "    --delete \n"
-            + "       Syntax: --delete {CONNECTOR-ID} {CONNECTOR-ID} [...]\n";
+    private final ResourceResultManager resourceResultManager = new ResourceResultManager();
 
     @Override
     public void execute(final Input input) {
@@ -58,16 +50,16 @@ public class ResourceCommand extends AbstractCommand {
                 new ResourceDelete(input).delete();
                 break;
             case HELP:
-                System.out.println(HELP_MESSAGE);
+                System.out.println(getHelpMessage());
                 break;
             default:
-                new ResourceResultManager().defaultOptionMessage(input.getOption(), HELP_MESSAGE);
+                resourceResultManager.defaultOptionMessage(input.getOption(), getHelpMessage());
         }
     }
 
     @Override
     public String getHelpMessage() {
-        return HELP_MESSAGE;
+        return resourceResultManager.commandHelpMessage(getClass());
     }
 
     private enum ResourceOptions {

http://git-wip-us.apache.org/repos/asf/syncope/blob/d59380af/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleCommand.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleCommand.java
index 9d73020..818d707 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleCommand.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleCommand.java
@@ -28,15 +28,7 @@ import org.apache.syncope.client.cli.commands.AbstractCommand;
 @Command(name = "role")
 public class RoleCommand extends AbstractCommand {
 
-    private static final String HELP_MESSAGE = "\nUsage: role [options]\n"
-            + "  Options:\n"
-            + "    --help \n"
-            + "    --details \n"
-            + "    --list \n"
-            + "    --read \n"
-            + "       Syntax: --read {ROLE-ID} {ROLE-ID} [...]\n"
-            + "    --delete \n"
-            + "       Syntax: --delete {ROLE-ID} {ROLE-ID} [...]\n";
+    private final RoleResultManager roleResultManager = new RoleResultManager();
 
     @Override
     public void execute(final Input input) {
@@ -58,16 +50,16 @@ public class RoleCommand extends AbstractCommand {
                 new RoleDelete(input).delete();
                 break;
             case HELP:
-                System.out.println(HELP_MESSAGE);
+                System.out.println(getHelpMessage());
                 break;
             default:
-                new RoleResultManager().defaultOptionMessage(input.getOption(), HELP_MESSAGE);
+                roleResultManager.defaultOptionMessage(input.getOption(), getHelpMessage());
         }
     }
 
     @Override
     public String getHelpMessage() {
-        return HELP_MESSAGE;
+        return roleResultManager.commandHelpMessage(getClass());
     }
 
     private enum RoleOptions {

http://git-wip-us.apache.org/repos/asf/syncope/blob/d59380af/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaCommand.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaCommand.java
index 8e7f146..c4a44ac 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaCommand.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaCommand.java
@@ -28,18 +28,7 @@ import org.apache.syncope.client.cli.commands.AbstractCommand;
 @Command(name = "schema")
 public class SchemaCommand extends AbstractCommand {
 
-    private static final String HELP_MESSAGE = "\nUsage: schema [options]\n"
-            + "  Options:\n"
-            + "    --help \n"
-            + "    --details \n"
-            + "    --list-all\n"
-            + "    --list-plain\n"
-            + "    --list-derived\n"
-            + "    --list-virtual\n"
-            + "    --read {SCHEMA-TYPE} {SCHEMA-KEY}\n"
-            + "        Schema type: PLAIN / DERIVED / VIRTUAL\n"
-            + "    --delete {SCHEMA-TYPE} {SCHEMA-KEY}\n"
-            + "        Schema type: PLAIN / DERIVED / VIRTUAL\n";
+    private final SchemaResultManager schemaResultManager = new SchemaResultManager();
 
     @Override
     public void execute(final Input input) {
@@ -73,16 +62,16 @@ public class SchemaCommand extends AbstractCommand {
                 new SchemaDelete(input).delete();
                 break;
             case HELP:
-                System.out.println(HELP_MESSAGE);
+                System.out.println(getHelpMessage());
                 break;
             default:
-                new SchemaResultManager().defaultOptionMessage(input.getOption(), HELP_MESSAGE);
+                schemaResultManager.defaultOptionMessage(input.getOption(), getHelpMessage());
         }
     }
 
     @Override
     public String getHelpMessage() {
-        return HELP_MESSAGE;
+        return schemaResultManager.commandHelpMessage(getClass());
     }
 
     private enum Options {

http://git-wip-us.apache.org/repos/asf/syncope/blob/d59380af/client/cli/src/main/java/org/apache/syncope/client/cli/commands/self/WorkflowCommand.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/self/WorkflowCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/self/WorkflowCommand.java
index 96643ea..215c865 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/self/WorkflowCommand.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/self/WorkflowCommand.java
@@ -28,13 +28,7 @@ import org.apache.syncope.client.cli.commands.AbstractCommand;
 @Command(name = "workflow")
 public class WorkflowCommand extends AbstractCommand {
 
-    private static final String HELP_MESSAGE = "\nUsage: workflow [options]\n"
-            + "  Options:\n"
-            + "    --help \n"
-            + "    --export-diagram {ANY-TYPE-KIND}\n"
-            + "        Any type kind: ANY_OBJECT / USER / GROUP\n"
-            + "    --export-definition {ANY-TYPE-KIND}\n"
-            + "        Any type kind: ANY_OBJECT / USER / GROUP\n";
+    private final WorkflowResultManager workflowResultManager = new WorkflowResultManager();
 
     @Override
     public void execute(final Input input) {
@@ -50,16 +44,16 @@ public class WorkflowCommand extends AbstractCommand {
                 new WorkflowExportDefinition(input).export();
                 break;
             case HELP:
-                System.out.println(HELP_MESSAGE);
+                System.out.println(getHelpMessage());
                 break;
             default:
-                new WorkflowResultManager().defaultOptionMessage(input.getOption(), HELP_MESSAGE);
+                workflowResultManager.defaultOptionMessage(input.getOption(), getHelpMessage());
         }
     }
 
     @Override
     public String getHelpMessage() {
-        return HELP_MESSAGE;
+        return workflowResultManager.commandHelpMessage(getClass());
     }
 
     private enum UserWorkflowOptions {

http://git-wip-us.apache.org/repos/asf/syncope/blob/d59380af/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 6794667..074e17c 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
@@ -28,26 +28,7 @@ import org.apache.syncope.client.cli.commands.AbstractCommand;
 @Command(name = "task")
 public class TaskCommand extends AbstractCommand {
 
-    private static final String HELP_MESSAGE = "\nUsage: task [options]\n"
-            + "  Options:\n"
-            + "    --help \n"
-            + "    --details\n"
-            + "    --list\n"
-            + "       Syntax: --list {TASK-TYPE} \n"
-            + "          Task type: NOTIFICATION / PROPAGATION / PUSH / SCHEDULED / SYNCHRONIZATION\n"
-            + "    --list-running-jobs \n"
-            + "    --list-scheduled-jobs \n"
-            + "    --read \n"
-            + "       Syntax: --read {TASK-ID} {TASK-ID} [...]\n"
-            + "    --read-execution \n"
-            + "       Syntax: --read-execution {TASK-EXEC-ID} {TASK-EXEC-ID} [...]\n"
-            + "    --delete \n"
-            + "       Syntax: --delete {TASK-ID} {TASK-ID} [...]\n"
-            + "    --delete-execution \n"
-            + "       Syntax: --delete-execution {TASK-EXEC-ID} {TASK-EXEC-ID} [...]\n"
-            + "    --execute \n"
-            + "       Syntax: --execute {TASK-ID} {DRY-RUN}\n"
-            + "          Dry run: true / false\n";
+    private final TaskResultManager taskResultManager = new TaskResultManager();
 
     @Override
     public void execute(final Input input) {
@@ -84,16 +65,16 @@ public class TaskCommand extends AbstractCommand {
                 new TaskExecute(input).execute();
                 break;
             case HELP:
-                System.out.println(HELP_MESSAGE);
+                System.out.println(getHelpMessage());
                 break;
             default:
-                new TaskResultManager().defaultOptionMessage(input.getOption(), HELP_MESSAGE);
+                taskResultManager.defaultOptionMessage(input.getOption(), getHelpMessage());
         }
     }
 
     @Override
     public String getHelpMessage() {
-        return HELP_MESSAGE;
+        return taskResultManager.commandHelpMessage(getClass());
     }
 
     private enum Options {

http://git-wip-us.apache.org/repos/asf/syncope/blob/d59380af/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserCommand.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserCommand.java
index 2637c20..7339f25 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserCommand.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserCommand.java
@@ -28,26 +28,8 @@ import org.apache.syncope.client.cli.commands.AbstractCommand;
 @Command(name = "user")
 public class UserCommand extends AbstractCommand {
 
-    private static final String HELP_MESSAGE = "\nUsage: user [options]\n"
-            + "  Options:\n"
-            + "    --help \n"
-            + "    --list \n"
-            + "    --details \n"
-            + "    --get-user-key\n"
-            + "       Syntax: --get-user-key {USERNAME} {USERNAME} [...]\n"
-            + "    --get-username\n"
-            + "       Syntax: --get-username {USER-ID} {USER-ID} [...]\n"
-            + "    --read \n"
-            + "       Syntax: --read {USER-ID} {USER-ID} [...]\n"
-            + "    --search-by-attribute \n"
-            + "       Syntax: --search-by-attribute {REALM} {ATTR-NAME}={ATTR-VALUE}\n"
-            + "    --search-by-role \n"
-            + "       Syntax: --search-by-role {REALM} {ROLE-ID}\n"
-            + "    --search-by-resource \n"
-            + "       Syntax: --search-by-resource {REALM} {RESOURCE-NAME}\n"
-            + "    --delete \n"
-            + "       Syntax: --delete {USER-ID} {USER-ID} [...]\n";
-
+    private final UserResultManager userResultManager = new UserResultManager();
+    
     @Override
     public void execute(final Input input) {
         if (StringUtils.isBlank(input.getOption())) {
@@ -83,16 +65,16 @@ public class UserCommand extends AbstractCommand {
                 new UserDelete(input).delete();
                 break;
             case HELP:
-                System.out.println(HELP_MESSAGE);
+                System.out.println(getHelpMessage());
                 break;
             default:
-                new UserResultManager().defaultOptionMessage(input.getOption(), HELP_MESSAGE);
+                userResultManager.defaultOptionMessage(input.getOption(), getHelpMessage());
         }
     }
 
     @Override
     public String getHelpMessage() {
-        return HELP_MESSAGE;
+        return userResultManager.commandHelpMessage(getClass());
     }
 
     private enum UserOptions {

http://git-wip-us.apache.org/repos/asf/syncope/blob/d59380af/client/cli/src/main/java/org/apache/syncope/client/cli/view/Messages.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/view/Messages.java b/client/cli/src/main/java/org/apache/syncope/client/cli/view/Messages.java
index c062524..c634f84 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/view/Messages.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/view/Messages.java
@@ -19,9 +19,12 @@
 package org.apache.syncope.client.cli.view;
 
 import java.util.List;
+import java.util.ResourceBundle;
 
 public final class Messages {
 
+    private static final ResourceBundle MESSAGES = ResourceBundle.getBundle("messages");
+
     private static final String OPTION_COMMAND_MESSAGE_TEMPLATE = "\n - Usage: %s\n";
 
     private static final String CREATED_MESSAGE_TEMPLATE = "%s %s successfully created";
@@ -89,10 +92,15 @@ public final class Messages {
     public static void printDefaultMessage(final String option, final String helpMessage) {
         printMessage(String.format(DEFAULT_MESSAGE_TEMPLATE, option, helpMessage));
     }
-    
+
     public static void printUnnecessaryParameters(final List<String> parameters, final String helpMessage) {
         printMessage("Unnecessary parameter: " + parameters, "Usage: " + helpMessage);
     }
+
+    public static String commandHelpMessage(String name) {
+        return MESSAGES.getString(name + ".help.message");
+    }
+
     private Messages() {
 
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/d59380af/client/cli/src/main/resources/messages.properties
----------------------------------------------------------------------
diff --git a/client/cli/src/main/resources/messages.properties b/client/cli/src/main/resources/messages.properties
new file mode 100644
index 0000000..9c3a38f
--- /dev/null
+++ b/client/cli/src/main/resources/messages.properties
@@ -0,0 +1,18 @@
+any.help.message=\nUsage: any [options]\n   Options:\n     --help \n     --details \n     --list \n     --read \n        Syntax: --read {ANY-ID} {ANY-ID} [...]\n     --read-attr-by-schema-type {ANY-ID} {SCHEMA-TYPE}\n        Schema type: PLAIN / DERIVED / VIRTUAL\n     --read-attr-by-schema {ANY-ID} {SCHEMA-TYPE} {SCHEMA-NAME}\n        Schema type: PLAIN / DERIVED / VIRTUAL\n     --delete \n        Syntax: --delete {ANY-ID} {ANY-ID} [...]\n
+configuration.help.message=\nUsage: configuration [options]\n  Options:\n    --help \n    --get \n    --read \n       Syntax: --read {CONF-NAME} {CONF-NAME} [...] \n    --update \n       Syntax: --update {CONF-NAME}={CONF-VALUE} {CONF-NAME}={CONF-VALUE} [...]\n    --delete \n       Syntax: --delete {CONF-NAME} {CONF-NAME} [...]\n    --export \n       Syntax: --export {WHERE-DIR}\n
+connector.help.message=\nUsage: connector [options]\n  Options:\n    --help \n    --details \n    --list \n    --list-bundles \n    --list-configuration-properties\n       Syntax: --list-configuration-properties {CONNECTOR-ID} {CONNECTOR-ID} [...]\n    --read \n       Syntax: --read {CONNECTOR-ID} {CONNECTOR-ID} [...]\n    --delete \n       Syntax: --delete {CONNECTOR-ID} {CONNECTOR-ID} [...]\n
+domain.help.message=\nUsage: domain [options]\n  Options:\n    --help \n    --details \n    --list \n    --delete \n       Syntax: --delete {DOMAIN-NAME} {DOMAIN-NAME} [...]\n
+entitlement.help.message=\nUsage: entitlement [options]\n  Options:\n    --help \n    --list\n    --list-role\n       Syntax: --list-role {ENTITLEMENT-NAME}\n    --read-by-username\n       Syntax: --read-by-username {USERNAME}\n    --read-by-userid\n       Syntax: --read-by-userid {USER-ID}\n    --search-by-role\n       Syntax: --search-by-role {ROLE-ID}\n
+group.help.message=\nUsage: group [options]\n  Options:\n    --help \n    --details \n    --list \n    --read \n       Syntax: --read {GROUP-ID} {GROUP-ID} [...]\n    --read-attr-by-schema-type {GROUP-ID} {SCHEMA-TYPE}\n       Schema type: PLAIN / DERIVED / VIRTUAL\n    --read-attr-by-schema {GROUP-ID} {SCHEMA-TYPE} {SCHEMA-NAME}\n       Schema type: PLAIN / DERIVED / VIRTUAL\n    --delete \n       Syntax: --delete {GROUP-ID} {GROUP-ID} [...]\n
+logger.help.message=\nUsage: logger [options]\n  Options:\n    --help \n    --details \n    --list \n    --read \n       Syntax: --read {LOG-NAME} {LOG-NAME} [...]\n    --update \n       Syntax: --update {LOG-NAME}={LOG-LEVEL} {LOG-NAME}={LOG-LEVEL} [...]\n    --update-all \n       Syntax: --update-all {LOG-LEVEL} \n    --create \n       Syntax: --create {LOG-NAME}={LOG-LEVEL} {LOG-NAME}={LOG-LEVEL} [...]\n    --delete \n       Syntax: --delete {LOG-NAME} {LOG-NAME} [...]\n
+notification.help.message=\nUsage: notification [options]\n  Options:\n    --help \n    --list \n    --read \n       Syntax: --read {NOTIFICATION-ID} \n    --delete \n       Syntax: --delete {NOTIFICATION-ID}\n
+policy.help.message=\nUsage: policy [options]\n  Options:\n    --help \n    --details \n    --list \n       Syntax: --list-policy {POLICY-TYPE} \n          Policy type: ACCOUNT / PASSWORD / SYNC / PUSH\n    --read \n       Syntax: --read {POLICY-ID} {POLICY-ID} [...]\n    --delete \n       Syntax: --delete {POLICY-ID} {POLICY-ID} [...]\n
+question.help.message=\nUsage: question [options]\n  Options:\n    --help \n    --list \n    --read \n       Syntax: --read {QUESTION-ID} {QUESTION-ID} [...]\n    --delete \n       Syntax: --delete {QUESTION-ID} {QUESTION-ID} [...]\n
+realm.help.message=\nUsage: realm [options]\n  Options:\n    --help \n    --details \n    --list \n
+report.help.message=\nUsage: report [options]\n  Options:\n    --help \n    --details\n    --list \n    --list-jobs \n    --read \n       Syntax: --read {REPORT-ID} {REPORT-ID} [...] \n    --delete \n       Syntax: --delete {REPORT-ID} {REPORT-ID} [...]\n    --execute \n       Syntax: --execute {REPORT-ID} \n    --read-execution \n       Syntax: --read-execution {EXECUTION-ID} {EXECUTION-ID} [...]\n    --delete-execution \n       Syntax: --delete-execution {EXECUTION-ID} {EXECUTION-ID} [...]\n    --export-execution-result \n       Syntax: --export-execution-result {EXECUTION-ID} {EXECUTION-ID} [...] {FORMAT}\n          Format: CSV / HTML / PDF / XML / RTF\n
+resource.help.message=\nUsage: resource [options]\n  Options:\n    --help \n    --details \n    --list \n    --read \n       Syntax: --read {CONNECTOR-ID} {CONNECTOR-ID} [...]\n    --delete \n       Syntax: --delete {CONNECTOR-ID} {CONNECTOR-ID} [...]\n
+role.help.message=\nUsage: role [options]\n  Options:\n    --help \n    --details \n    --list \n    --read \n       Syntax: --read {ROLE-ID} {ROLE-ID} [...]\n    --delete \n       Syntax: --delete {ROLE-ID} {ROLE-ID} [...]\n
+schema.help.message=\nUsage: schema [options]\n  Options:\n    --help \n    --details \n    --list-all\n    --list-plain\n    --list-derived\n    --list-virtual\n    --read {SCHEMA-TYPE} {SCHEMA-KEY}\n        Schema type: PLAIN / DERIVED / VIRTUAL\n    --delete {SCHEMA-TYPE} {SCHEMA-KEY}\n        Schema type: PLAIN / DERIVED / VIRTUAL\n
+task.help.message=\nUsage: task [options]\n  Options:\n    --help \n    --details\n    --list\n       Syntax: --list {TASK-TYPE} \n          Task type: NOTIFICATION / PROPAGATION / PUSH / SCHEDULED / SYNCHRONIZATION\n    --list-running-jobs \n    --list-scheduled-jobs \n    --read \n       Syntax: --read {TASK-ID} {TASK-ID} [...]\n    --read-execution \n       Syntax: --read-execution {TASK-EXEC-ID} {TASK-EXEC-ID} [...]\n    --delete \n       Syntax: --delete {TASK-ID} {TASK-ID} [...]\n    --delete-execution \n       Syntax: --delete-execution {TASK-EXEC-ID} {TASK-EXEC-ID} [...]\n    --execute \n       Syntax: --execute {TASK-ID} {DRY-RUN}\n          Dry run: true / false\n
+user.help.message=\nUsage: user [options]\n  Options:\n    --help \n    --list \n    --details \n    --get-user-key\n       Syntax: --get-user-key {USERNAME} {USERNAME} [...]\n    --get-username\n       Syntax: --get-username {USER-ID} {USER-ID} [...]\n    --read \n       Syntax: --read {USER-ID} {USER-ID} [...]\n    --search-by-attribute \n       Syntax: --search-by-attribute {REALM} {ATTR-NAME}={ATTR-VALUE}\n    --search-by-role \n       Syntax: --search-by-role {REALM} {ROLE-ID}\n    --search-by-resource \n       Syntax: --search-by-resource {REALM} {RESOURCE-NAME}\n    --delete \n       Syntax: --delete {USER-ID} {USER-ID} [...]\n
+workflow.help.message=\nUsage: workflow [options]\n  Options:\n    --help \n    --export-diagram {ANY-TYPE-KIND}\n        Any type kind: ANY_OBJECT / USER / GROUP\n    --export-definition {ANY-TYPE-KIND}\n        Any type kind: ANY_OBJECT / USER / GROUP\n
\ No newline at end of file