Repository: syncope Updated Branches: refs/heads/master 462289dce -> 6b9cd592b
refactoring for configuration stack, SYNCOPE-158 Project: http://git-wip-us.apache.org/repos/asf/syncope/repo Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/6b9cd592 Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/6b9cd592 Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/6b9cd592 Branch: refs/heads/master Commit: 6b9cd592b21440d54fabd6012616c4f6a18a81f3 Parents: 462289d Author: massi <massimiliano.perr...@tirasa.net> Authored: Wed Oct 21 10:54:47 2015 +0200 Committer: massi <massimiliano.perr...@tirasa.net> Committed: Wed Oct 21 10:54:47 2015 +0200 ---------------------------------------------------------------------- .../apache/syncope/client/cli/SyncopeAdm.java | 8 +- .../cli/commands/CommonsResultManager.java | 50 ++++ .../cli/commands/ConfigurationCommand.java | 297 ------------------- .../AbstractConfigurationCommand.java | 30 ++ .../configuration/ConfigurationCommand.java | 124 ++++++++ .../configuration/ConfigurationDelete.java | 57 ++++ .../configuration/ConfigurationExport.java | 71 +++++ .../configuration/ConfigurationGet.java | 36 +++ .../configuration/ConfigurationRead.java | 62 ++++ .../ConfigurationResultManager.java | 53 ++++ .../configuration/ConfigurationUpdate.java | 76 +++++ .../commands/logger/AbstractLoggerCommand.java | 2 +- .../cli/commands/logger/LoggerCommand.java | 3 +- .../cli/commands/logger/LoggerCreate.java | 6 +- .../cli/commands/logger/LoggerDelete.java | 15 +- .../client/cli/commands/logger/LoggerList.java | 4 +- .../client/cli/commands/logger/LoggerRead.java | 8 +- .../commands/logger/LoggerResultManager.java | 61 ++++ .../cli/commands/logger/LoggerUpdate.java | 12 +- .../cli/commands/logger/LoggerUpdateAll.java | 8 +- .../cli/commands/logger/ResultManager.java | 79 ----- 21 files changed, 649 insertions(+), 413 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/syncope/blob/6b9cd592/client/cli/src/main/java/org/apache/syncope/client/cli/SyncopeAdm.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/SyncopeAdm.java b/client/cli/src/main/java/org/apache/syncope/client/cli/SyncopeAdm.java index 78e2f54..b5a1365 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/SyncopeAdm.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/SyncopeAdm.java @@ -20,7 +20,7 @@ package org.apache.syncope.client.cli; import javax.ws.rs.ProcessingException; import org.apache.syncope.client.cli.commands.AbstractCommand; -import org.apache.syncope.client.cli.commands.logger.ResultManager; +import org.apache.syncope.client.cli.commands.logger.LoggerResultManager; import org.apache.syncope.client.cli.util.CommandUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -49,12 +49,12 @@ public final class SyncopeAdm { System.out.println(helpMessage()); } catch (final IllegalArgumentException ex) { LOG.error("Error in main", ex); - new ResultManager().genericError(ex.getMessage()); + new LoggerResultManager().genericError(ex.getMessage()); if (!ex.getMessage().startsWith("It seems you")) { System.out.println(helpMessage()); } } catch (final ProcessingException e) { - new ResultManager().genericError("Syncope server offline", e.getCause().getMessage()); + new LoggerResultManager().genericError("Syncope server offline", e.getCause().getMessage()); } } @@ -72,7 +72,7 @@ public final class SyncopeAdm { helpMessageBuilder.append("\n"); } } catch (final IllegalAccessException | IllegalArgumentException | InstantiationException ex) { - new ResultManager().genericError(ex.getMessage()); + new LoggerResultManager().genericError(ex.getMessage()); } return helpMessageBuilder.toString(); http://git-wip-us.apache.org/repos/asf/syncope/blob/6b9cd592/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 new file mode 100644 index 0000000..9bfde8d --- /dev/null +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/CommonsResultManager.java @@ -0,0 +1,50 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.syncope.client.cli.commands; + +import org.apache.syncope.client.cli.messages.Messages; +import org.apache.syncope.client.cli.util.CommandUtils; +import org.apache.syncope.common.lib.types.LoggerLevel; + +public abstract class CommonsResultManager { + + public void deletedMessage(final String what, final String key) { + Messages.printDeletedMessage(what, key); + } + + public void notFoundError(final String what, final String parameter) { + Messages.printNofFoundMessage(what, parameter); + } + + public void typeNotValidError(final String parameter) { + Messages.printTypeNotValidMessage("logger level", parameter, CommandUtils.fromEnumToArray(LoggerLevel.class)); + } + + public void commandOptionError(final String message) { + Messages.printCommandOptionMessage(message); + } + + public void defaultError(final String option, final String helpMessage) { + Messages.printDefaultMessage(option, helpMessage); + } + + public void genericError(final String... messages) { + Messages.printMessage(messages); + } +} http://git-wip-us.apache.org/repos/asf/syncope/blob/6b9cd592/client/cli/src/main/java/org/apache/syncope/client/cli/commands/ConfigurationCommand.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/ConfigurationCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/ConfigurationCommand.java deleted file mode 100644 index e7d8938..0000000 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/ConfigurationCommand.java +++ /dev/null @@ -1,297 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.syncope.client.cli.commands; - -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.SequenceInputStream; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.transform.TransformerConfigurationException; -import javax.xml.transform.TransformerException; -import javax.xml.ws.WebServiceException; -import org.apache.commons.lang3.StringUtils; -import org.apache.syncope.client.cli.Command; -import org.apache.syncope.client.cli.Input; -import org.apache.syncope.client.cli.SyncopeServices; -import org.apache.syncope.client.cli.messages.Messages; -import org.apache.syncope.client.cli.messages.TwoColumnTable; -import org.apache.syncope.client.cli.util.XMLUtils; -import org.apache.syncope.common.lib.SyncopeClientException; -import org.apache.syncope.common.lib.to.AttrTO; -import org.apache.syncope.common.lib.to.ConfTO; -import org.apache.syncope.common.rest.api.service.ConfigurationService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.xml.sax.SAXException; - -@Command(name = "configuration") -public class ConfigurationCommand extends AbstractCommand { - - private static final Logger LOG = LoggerFactory.getLogger(ConfigurationCommand.class); - - private static final String EXPORT_FILE_NAME = "/content.xml"; - - private static final String HELP_MESSAGE = "Usage: 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}"; - - @Override - public void execute(final Input input) { - LOG.debug("Logger service successfully created"); - LOG.debug("Option: {}", input.getOption()); - LOG.debug("Parameters:"); - for (final String parameter : input.getParameters()) { - LOG.debug(" > " + parameter); - } - - final String[] parameters = input.getParameters(); - - if (StringUtils.isBlank(input.getOption())) { - input.setOption(Options.HELP.getOptionName()); - } - - final ConfigurationService configurationService = SyncopeServices.get(ConfigurationService.class); - switch (Options.fromName(input.getOption())) { - case GET: - try { - final ConfTO confTO = configurationService.list(); - toTable("Syncope configuration", "attribute", "value", confTO.getPlainAttrs()); - } catch (final Exception ex) { - Messages.printMessage(ex.getMessage()); - break; - } - break; - case READ: - final String readErrorMessage = "configuration --read {CONF-NAME} {CONF-NAME} [...]"; - if (parameters.length >= 1) { - final Set<AttrTO> attrList = new HashSet<>(); - boolean failed = false; - for (final String parameter : parameters) { - try { - attrList.add(configurationService.get(parameter)); - } catch (final SyncopeClientException | WebServiceException ex) { - if (ex.getMessage().startsWith("NotFound")) { - Messages.printNofFoundMessage("Logger", parameter); - } else { - Messages.printMessage(ex.getMessage()); - } - failed = true; - break; - } - } - if (!failed) { - toTable("Read result", "attribute", "value", attrList); - } - } else { - Messages.printCommandOptionMessage(readErrorMessage); - } - break; - case UPDATE: - final String updateErrorMessage - = "configuration --update {CONF-NAME}={CONF-VALUE} {CONF-NAME}={CONF-VALUE} [...]"; - if (parameters.length >= 1) { - Input.PairParameter pairParameter = null; - AttrTO attrTO; - final Set<AttrTO> attrList = new HashSet<>(); - boolean failed = false; - for (final String parameter : parameters) { - try { - pairParameter = input.toPairParameter(parameter); - attrTO = configurationService.get(pairParameter.getKey()); - attrTO.getValues().clear(); - attrTO.getValues().add(pairParameter.getValue()); - configurationService.set(attrTO); - attrList.add(attrTO); - } catch (final IllegalArgumentException ex) { - Messages.printMessage(ex.getMessage(), updateErrorMessage); - failed = true; - break; - } catch (final SyncopeClientException | WebServiceException ex) { - if (ex.getMessage().startsWith("NotFound")) { - Messages.printNofFoundMessage("Configuration", pairParameter.getKey()); - } else if (ex.getMessage().startsWith("InvalidValues")) { - Messages.printMessage( - pairParameter.getValue() + " is not a valid value for " - + pairParameter.getKey()); - } else { - Messages.printMessage(ex.getMessage()); - } - failed = true; - break; - } - } - if (!failed) { - toTable("updated attribute", "attribute", "new value", attrList); - } - } else { - Messages.printCommandOptionMessage(updateErrorMessage); - } - break; - case DELETE: - final String deleteErrorMessage = "configuration --delete {CONF-NAME} {CONF-NAME} [...]"; - if (parameters.length >= 1) { - for (final String parameter : parameters) { - try { - configurationService.delete(parameter); - Messages.printDeletedMessage("Configuration", parameter); - } catch (final SyncopeClientException | WebServiceException ex) { - if (ex.getMessage().startsWith("NotFound")) { - Messages.printNofFoundMessage("Configuration", parameter); - } else if (ex.getMessage().startsWith("DataIntegrityViolation")) { - Messages.printMessage("You cannot delete configuration", parameter); - } else { - Messages.printMessage(ex.getMessage()); - } - break; - } - } - } else { - Messages.printCommandOptionMessage(deleteErrorMessage); - } - break; - case EXPORT: - final String exportErrorMessage = "configuration --export {WHERE-DIR}"; - if (parameters.length == 1) { - try { - XMLUtils.createXMLFile((SequenceInputStream) configurationService.export().getEntity(), - parameters[0] + EXPORT_FILE_NAME); - System.out.println(" - " + parameters[0] + EXPORT_FILE_NAME + " successfully created"); - } catch (final IOException ex) { - Messages.printMessage(ex.getMessage()); - } catch (ParserConfigurationException | SAXException | TransformerConfigurationException ex) { - LOG.error("Error creating content.xml file in {} directory", parameters[0], ex); - Messages.printMessage( - "Error creating " + parameters[0] + EXPORT_FILE_NAME + " " + ex.getMessage()); - break; - } catch (final TransformerException ex) { - LOG.error("Error creating content.xml file in {} directory", parameters[0], ex); - if (ex.getCause() instanceof FileNotFoundException) { - Messages.printMessage("Permission denied on " + parameters[0]); - } else { - Messages.printMessage( - "Error creating " + parameters[0] + EXPORT_FILE_NAME + " " + ex.getMessage()); - } - break; - } catch (final SyncopeClientException ex) { - LOG.error("Error calling configuration service", ex); - Messages.printMessage("Error calling configuration service " + ex.getMessage()); - break; - } - } else { - Messages.printCommandOptionMessage(exportErrorMessage); - } - break; - case HELP: - System.out.println(HELP_MESSAGE); - break; - default: - Messages.printDefaultMessage(input.getOption(), HELP_MESSAGE); - break; - } - } - - private void toTable(final String tableTitle, - final String firstHeader, - final String seconHeader, - final Set<AttrTO> attrList) { - int maxFirstColumnLenght = 0; - int maxSecondColumnLenght = 0; - final Map<String, String> attributes = new HashMap<>(); - for (final AttrTO attrTO : attrList) { - String value = attrTO.getValues().toString(); - value = value.substring(0, value.length() - 1); - value = value.substring(1, value.length()); - attributes.put(attrTO.getSchema(), value); - if (attrTO.getSchema().length() > maxFirstColumnLenght) { - maxFirstColumnLenght = attrTO.getSchema().length(); - } - - if (value.length() > maxSecondColumnLenght) { - maxSecondColumnLenght = attrTO.getSchema().length(); - } - } - final TwoColumnTable loggerTableResult = new TwoColumnTable( - tableTitle, - firstHeader, maxFirstColumnLenght, - seconHeader, maxSecondColumnLenght); - loggerTableResult.printTable(attributes); - } - - @Override - public String getHelpMessage() { - return HELP_MESSAGE; - } - - private enum Options { - - HELP("--help"), - GET("--get"), - READ("--read"), - UPDATE("--update"), - DELETE("--delete"), - EXPORT("--export"); - - private final String optionName; - - Options(final String optionName) { - this.optionName = optionName; - } - - public String getOptionName() { - return optionName; - } - - public boolean equalsOptionName(final String otherName) { - return (otherName == null) ? false : optionName.equals(otherName); - } - - public static Options fromName(final String name) { - Options optionToReturn = HELP; - for (final Options option : Options.values()) { - if (option.equalsOptionName(name)) { - optionToReturn = option; - } - } - return optionToReturn; - } - - public static List<String> toList() { - final List<String> options = new ArrayList<>(); - for (final Options value : values()) { - options.add(value.getOptionName()); - } - return options; - } - } -} http://git-wip-us.apache.org/repos/asf/syncope/blob/6b9cd592/client/cli/src/main/java/org/apache/syncope/client/cli/commands/configuration/AbstractConfigurationCommand.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/configuration/AbstractConfigurationCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/configuration/AbstractConfigurationCommand.java new file mode 100644 index 0000000..59fc423 --- /dev/null +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/configuration/AbstractConfigurationCommand.java @@ -0,0 +1,30 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.syncope.client.cli.commands.configuration; + +import org.apache.syncope.client.cli.SyncopeServices; +import org.apache.syncope.common.rest.api.service.ConfigurationService; + +public class AbstractConfigurationCommand { + + protected final ConfigurationService configurationService = SyncopeServices.get(ConfigurationService.class); + + protected final ConfigurationResultManager configurationResultManager = new ConfigurationResultManager(); + +} http://git-wip-us.apache.org/repos/asf/syncope/blob/6b9cd592/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 new file mode 100644 index 0000000..d74ea78 --- /dev/null +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/configuration/ConfigurationCommand.java @@ -0,0 +1,124 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.syncope.client.cli.commands.configuration; + +import java.util.ArrayList; +import java.util.List; +import org.apache.commons.lang3.StringUtils; +import org.apache.syncope.client.cli.Command; +import org.apache.syncope.client.cli.Input; +import org.apache.syncope.client.cli.commands.AbstractCommand; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +@Command(name = "configuration") +public class ConfigurationCommand extends AbstractCommand { + + private static final Logger LOG = LoggerFactory.getLogger(ConfigurationCommand.class); + + private static final String HELP_MESSAGE = "Usage: 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}"; + + @Override + public void execute(final Input input) { + if (StringUtils.isBlank(input.getOption())) { + input.setOption(Options.HELP.getOptionName()); + } + + switch (Options.fromName(input.getOption())) { + case GET: + new ConfigurationGet().get(); + break; + case READ: + new ConfigurationRead(input).read(); + break; + case UPDATE: + new ConfigurationUpdate(input).update(); + break; + case DELETE: + new ConfigurationDelete(input).delete(); + break; + case EXPORT: + break; + case HELP: + System.out.println(HELP_MESSAGE); + break; + default: + new ConfigurationResultManager().defaultError(input.getOption(), HELP_MESSAGE); + break; + } + } + + @Override + public String getHelpMessage() { + return HELP_MESSAGE; + } + + private enum Options { + + HELP("--help"), + GET("--get"), + READ("--read"), + UPDATE("--update"), + DELETE("--delete"), + EXPORT("--export"); + + private final String optionName; + + Options(final String optionName) { + this.optionName = optionName; + } + + public String getOptionName() { + return optionName; + } + + public boolean equalsOptionName(final String otherName) { + return (otherName == null) ? false : optionName.equals(otherName); + } + + public static Options fromName(final String name) { + Options optionToReturn = HELP; + for (final Options option : Options.values()) { + if (option.equalsOptionName(name)) { + optionToReturn = option; + } + } + return optionToReturn; + } + + public static List<String> toList() { + final List<String> options = new ArrayList<>(); + for (final Options value : values()) { + options.add(value.getOptionName()); + } + return options; + } + } +} http://git-wip-us.apache.org/repos/asf/syncope/blob/6b9cd592/client/cli/src/main/java/org/apache/syncope/client/cli/commands/configuration/ConfigurationDelete.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/configuration/ConfigurationDelete.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/configuration/ConfigurationDelete.java new file mode 100644 index 0000000..4f8c227 --- /dev/null +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/configuration/ConfigurationDelete.java @@ -0,0 +1,57 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.syncope.client.cli.commands.configuration; + +import javax.xml.ws.WebServiceException; +import org.apache.syncope.client.cli.Input; +import org.apache.syncope.common.lib.SyncopeClientException; + +public class ConfigurationDelete extends AbstractConfigurationCommand { + + private static final String DELETE_HELP_MESSAGE = "configuration --delete {CONF-NAME} {CONF-NAME} [...]"; + + private final Input input; + + public ConfigurationDelete(final Input input) { + this.input = input; + } + + public void delete() { + if (input.parameterNumber() >= 1) { + for (final String parameter : input.getParameters()) { + try { + configurationService.delete(parameter); + configurationResultManager.deletedMessage("Configuration", parameter); + } catch (final SyncopeClientException | WebServiceException ex) { + if (ex.getMessage().startsWith("NotFound")) { + configurationResultManager.notFoundError("Configuration", parameter); + } else if (ex.getMessage().startsWith("DataIntegrityViolation")) { + configurationResultManager.genericError("You cannot delete configuration", parameter); + } else { + configurationResultManager.genericError(ex.getMessage()); + } + break; + } + } + } else { + configurationResultManager.commandOptionError(DELETE_HELP_MESSAGE); + } + } + +} http://git-wip-us.apache.org/repos/asf/syncope/blob/6b9cd592/client/cli/src/main/java/org/apache/syncope/client/cli/commands/configuration/ConfigurationExport.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/configuration/ConfigurationExport.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/configuration/ConfigurationExport.java new file mode 100644 index 0000000..0bc274f --- /dev/null +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/configuration/ConfigurationExport.java @@ -0,0 +1,71 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.syncope.client.cli.commands.configuration; + +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.SequenceInputStream; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.TransformerConfigurationException; +import javax.xml.transform.TransformerException; +import org.apache.syncope.client.cli.Input; +import org.apache.syncope.client.cli.util.XMLUtils; +import org.apache.syncope.common.lib.SyncopeClientException; +import org.xml.sax.SAXException; + +public class ConfigurationExport extends AbstractConfigurationCommand { + + private static final String EXPORT_HELP_MESSAGE = "configuration --export {WHERE-DIR}"; + + private static final String EXPORT_FILE_NAME = "/content.xml"; + + private final Input input; + + public ConfigurationExport(final Input input) { + this.input = input; + } + + public void export() { + if (input.parameterNumber() == 1) { + try { + XMLUtils.createXMLFile( + (SequenceInputStream) configurationService.export().getEntity(), + input.firstParameter() + EXPORT_FILE_NAME); + configurationResultManager.genericError( + input.firstParameter() + EXPORT_FILE_NAME + " successfully created"); + } catch (final IOException ex) { + configurationResultManager.genericError(ex.getMessage()); + } catch (ParserConfigurationException | SAXException | TransformerConfigurationException ex) { + configurationResultManager.genericError( + "Error creating " + input.firstParameter() + EXPORT_FILE_NAME + " " + ex.getMessage()); + } catch (final TransformerException ex) { + if (ex.getCause() instanceof FileNotFoundException) { + configurationResultManager.genericError("Permission denied on " + input.firstParameter()); + } else { + configurationResultManager.genericError( + "Error creating " + input.firstParameter() + EXPORT_FILE_NAME + " " + ex.getMessage()); + } + } catch (final SyncopeClientException ex) { + configurationResultManager.genericError("Error calling configuration service " + ex.getMessage()); + } + } else { + configurationResultManager.commandOptionError(EXPORT_HELP_MESSAGE); + } + } +} http://git-wip-us.apache.org/repos/asf/syncope/blob/6b9cd592/client/cli/src/main/java/org/apache/syncope/client/cli/commands/configuration/ConfigurationGet.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/configuration/ConfigurationGet.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/configuration/ConfigurationGet.java new file mode 100644 index 0000000..91f3dce --- /dev/null +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/configuration/ConfigurationGet.java @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.syncope.client.cli.commands.configuration; + +import java.util.LinkedList; + +public class ConfigurationGet extends AbstractConfigurationCommand { + + public ConfigurationGet() { + } + + public void get() { + try { + configurationResultManager.fromGet(new LinkedList<>(configurationService.list().getPlainAttrs())); + } catch (final Exception ex) { + configurationResultManager.genericError(ex.getMessage()); + } + } + +} http://git-wip-us.apache.org/repos/asf/syncope/blob/6b9cd592/client/cli/src/main/java/org/apache/syncope/client/cli/commands/configuration/ConfigurationRead.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/configuration/ConfigurationRead.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/configuration/ConfigurationRead.java new file mode 100644 index 0000000..801f01d --- /dev/null +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/configuration/ConfigurationRead.java @@ -0,0 +1,62 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.syncope.client.cli.commands.configuration; + +import java.util.LinkedList; +import javax.xml.ws.WebServiceException; +import org.apache.syncope.client.cli.Input; +import org.apache.syncope.common.lib.SyncopeClientException; +import org.apache.syncope.common.lib.to.AttrTO; + +public class ConfigurationRead extends AbstractConfigurationCommand { + + private static final String READ_HELP_MESSAGE = "configuration --read {CONF-NAME} {CONF-NAME} [...]"; + + private final Input input; + + public ConfigurationRead(final Input input) { + this.input = input; + } + + public void read() { + if (input.parameterNumber() >= 1) { + final LinkedList<AttrTO> attrList = new LinkedList<>(); + boolean failed = false; + for (final String parameter : input.getParameters()) { + try { + attrList.add(configurationService.get(parameter)); + } catch (final SyncopeClientException | WebServiceException ex) { + if (ex.getMessage().startsWith("NotFound")) { + configurationResultManager.notFoundError("Configuration", parameter); + } else { + configurationResultManager.genericError(ex.getMessage()); + } + failed = true; + break; + } + } + if (!failed) { + configurationResultManager.fromGet(attrList); + } + } else { + configurationResultManager.commandOptionError(READ_HELP_MESSAGE); + } + } + +} http://git-wip-us.apache.org/repos/asf/syncope/blob/6b9cd592/client/cli/src/main/java/org/apache/syncope/client/cli/commands/configuration/ConfigurationResultManager.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/configuration/ConfigurationResultManager.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/configuration/ConfigurationResultManager.java new file mode 100644 index 0000000..446d08a --- /dev/null +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/configuration/ConfigurationResultManager.java @@ -0,0 +1,53 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.syncope.client.cli.commands.configuration; + +import java.util.Arrays; +import java.util.LinkedList; +import org.apache.syncope.client.cli.commands.CommonsResultManager; +import org.apache.syncope.client.cli.messages.Table; +import org.apache.syncope.common.lib.to.AttrTO; + +public class ConfigurationResultManager extends CommonsResultManager { + + public void fromGet(final LinkedList<AttrTO> attrTOs) { + fromCommandToView("syncope configuration", attrTOs); + } + + public void fromRead(final LinkedList<AttrTO> attrTOs) { + fromCommandToView("selected configuration attributes", attrTOs); + } + + public void fromUpdate(final LinkedList<AttrTO> attrTOs) { + fromCommandToView("updated configuration attributes", attrTOs); + } + + private void fromCommandToView(final String title, final LinkedList<AttrTO> attrTOs) { + final Table.TableBuilder tableBuilder + = new Table.TableBuilder(title).header("attribute").header("value"); + for (final AttrTO attrTO : attrTOs) { + String attrValue = attrTO.getValues().toString(); + attrValue = attrValue.substring(0, attrValue.length() - 1); + attrValue = attrValue.substring(1, attrValue.length()); + tableBuilder.rowValues( + new LinkedList(Arrays.asList(attrTO.getSchema(), attrValue))); + } + tableBuilder.build().print(); + } +} http://git-wip-us.apache.org/repos/asf/syncope/blob/6b9cd592/client/cli/src/main/java/org/apache/syncope/client/cli/commands/configuration/ConfigurationUpdate.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/configuration/ConfigurationUpdate.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/configuration/ConfigurationUpdate.java new file mode 100644 index 0000000..9be74e2 --- /dev/null +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/configuration/ConfigurationUpdate.java @@ -0,0 +1,76 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.syncope.client.cli.commands.configuration; + +import java.util.LinkedList; +import javax.xml.ws.WebServiceException; +import org.apache.syncope.client.cli.Input; +import org.apache.syncope.common.lib.SyncopeClientException; +import org.apache.syncope.common.lib.to.AttrTO; + +public class ConfigurationUpdate extends AbstractConfigurationCommand { + + private static final String UPDATE_HELP_MESSAGE + = "configuration --update {CONF-NAME}={CONF-VALUE} {CONF-NAME}={CONF-VALUE} [...]"; + + private final Input input; + + public ConfigurationUpdate(final Input input) { + this.input = input; + } + + public void update() { + if (input.parameterNumber() >= 1) { + Input.PairParameter pairParameter = null; + AttrTO attrTO; + final LinkedList<AttrTO> attrList = new LinkedList<>(); + boolean failed = false; + for (final String parameter : input.getParameters()) { + try { + pairParameter = input.toPairParameter(parameter); + attrTO = configurationService.get(pairParameter.getKey()); + attrTO.getValues().clear(); + attrTO.getValues().add(pairParameter.getValue()); + configurationService.set(attrTO); + attrList.add(attrTO); + } catch (final IllegalArgumentException ex) { + configurationResultManager.genericError(ex.getMessage(), UPDATE_HELP_MESSAGE); + failed = true; + break; + } catch (final SyncopeClientException | WebServiceException ex) { + if (ex.getMessage().startsWith("NotFound")) { + configurationResultManager.notFoundError("Configuration", pairParameter.getKey()); + } else if (ex.getMessage().startsWith("InvalidValues")) { + configurationResultManager.genericError( + pairParameter.getValue() + " is not a valid value for " + pairParameter.getKey()); + } else { + configurationResultManager.genericError(ex.getMessage()); + } + failed = true; + break; + } + } + if (!failed) { + configurationResultManager.fromUpdate(attrList); + } + } else { + configurationResultManager.commandOptionError(UPDATE_HELP_MESSAGE); + } + } +} http://git-wip-us.apache.org/repos/asf/syncope/blob/6b9cd592/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/AbstractLoggerCommand.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/AbstractLoggerCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/AbstractLoggerCommand.java index 4654cb6..3782eac 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/AbstractLoggerCommand.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/AbstractLoggerCommand.java @@ -25,6 +25,6 @@ public class AbstractLoggerCommand { protected final LoggerService loggerService = SyncopeServices.get(LoggerService.class); - protected final ResultManager resultManager = new ResultManager(); + protected final LoggerResultManager loggerResultManager = new LoggerResultManager(); } http://git-wip-us.apache.org/repos/asf/syncope/blob/6b9cd592/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 34acc25..134c294 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 @@ -24,7 +24,6 @@ import org.apache.commons.lang3.StringUtils; import org.apache.syncope.client.cli.Command; import org.apache.syncope.client.cli.Input; import org.apache.syncope.client.cli.commands.AbstractCommand; -import org.apache.syncope.client.cli.messages.Messages; @Command(name = "logger") public class LoggerCommand extends AbstractCommand { @@ -73,7 +72,7 @@ public class LoggerCommand extends AbstractCommand { System.out.println(HELP_MESSAGE); break; default: - Messages.printDefaultMessage(input.getOption(), HELP_MESSAGE); + new LoggerResultManager().defaultError(input.getOption(), HELP_MESSAGE); } } http://git-wip-us.apache.org/repos/asf/syncope/blob/6b9cd592/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerCreate.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerCreate.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerCreate.java index d70aad1..29d60ad 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerCreate.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerCreate.java @@ -52,16 +52,16 @@ public class LoggerCreate extends AbstractLoggerCommand { loggerService.update(LoggerType.LOG, loggerTO); loggerTOs.add(loggerTO); } catch (final WebServiceException | SyncopeClientException | IllegalArgumentException ex) { - resultManager.typeNotValidError(input.firstParameter()); + loggerResultManager.typeNotValidError(input.firstParameter()); failed = true; break; } } if (!failed) { - resultManager.fromUpdate(loggerTOs); + loggerResultManager.fromUpdate(loggerTOs); } } else { - resultManager.commandOptionError(CREATE_HELP_MESSAGE); + loggerResultManager.commandOptionError(CREATE_HELP_MESSAGE); } } http://git-wip-us.apache.org/repos/asf/syncope/blob/6b9cd592/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerDelete.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerDelete.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerDelete.java index 44f39ee..6614f07 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerDelete.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerDelete.java @@ -18,11 +18,9 @@ */ package org.apache.syncope.client.cli.commands.logger; -import java.util.LinkedList; import javax.xml.ws.WebServiceException; import org.apache.syncope.client.cli.Input; import org.apache.syncope.common.lib.SyncopeClientException; -import org.apache.syncope.common.lib.to.LoggerTO; import org.apache.syncope.common.lib.types.LoggerType; public class LoggerDelete extends AbstractLoggerCommand { @@ -37,25 +35,20 @@ public class LoggerDelete extends AbstractLoggerCommand { public void delete() { if (input.parameterNumber() >= 1) { - final LinkedList<LoggerTO> loggerTOs = new LinkedList<>(); - boolean failed = false; for (final String parameter : input.getParameters()) { try { loggerService.delete(LoggerType.LOG, parameter); + loggerResultManager.deletedMessage("Logger", parameter); } catch (final WebServiceException | SyncopeClientException ex) { if (ex.getMessage().startsWith("NotFound")) { - resultManager.notFoundError(parameter); + loggerResultManager.notFoundError("Logger", parameter); } else { - resultManager.genericError(ex.getMessage()); + loggerResultManager.genericError(ex.getMessage()); } - failed = true; } } - if (!failed) { - resultManager.fromDelete(loggerTOs); - } } else { - resultManager.commandOptionError(DELETE_HELP_MESSAGE); + loggerResultManager.commandOptionError(DELETE_HELP_MESSAGE); } } http://git-wip-us.apache.org/repos/asf/syncope/blob/6b9cd592/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerList.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerList.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerList.java index bee7e7c..f65da34 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerList.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerList.java @@ -29,9 +29,9 @@ public class LoggerList extends AbstractLoggerCommand { public void list() { try { - resultManager.fromList(new LinkedList<>(loggerService.list(LoggerType.LOG))); + loggerResultManager.fromList(new LinkedList<>(loggerService.list(LoggerType.LOG))); } catch (final SyncopeClientException ex) { - resultManager.genericError("Error: " + ex.getMessage()); + loggerResultManager.genericError("Error: " + ex.getMessage()); } } } http://git-wip-us.apache.org/repos/asf/syncope/blob/6b9cd592/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerRead.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerRead.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerRead.java index 3cbca46..c796c47 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerRead.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerRead.java @@ -44,19 +44,19 @@ public class LoggerRead extends AbstractLoggerCommand { loggerTOs.add(loggerService.read(LoggerType.LOG, parameter)); } catch (final SyncopeClientException | WebServiceException ex) { if (ex.getMessage().startsWith("NotFound")) { - resultManager.notFoundError(parameter); + loggerResultManager.notFoundError("Logger", parameter); } else { - resultManager.genericError("Error: " + ex.getMessage()); + loggerResultManager.genericError("Error: " + ex.getMessage()); } failed = true; break; } } if (!failed) { - resultManager.fromRead(loggerTOs); + loggerResultManager.fromRead(loggerTOs); } } else { - resultManager.commandOptionError(READ_HELP_MESSAGE); + loggerResultManager.commandOptionError(READ_HELP_MESSAGE); } } } http://git-wip-us.apache.org/repos/asf/syncope/blob/6b9cd592/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerResultManager.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerResultManager.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerResultManager.java new file mode 100644 index 0000000..1a686cd --- /dev/null +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerResultManager.java @@ -0,0 +1,61 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.syncope.client.cli.commands.logger; + +import java.util.Arrays; +import java.util.LinkedList; +import org.apache.syncope.client.cli.commands.CommonsResultManager; +import org.apache.syncope.client.cli.messages.Table; +import org.apache.syncope.common.lib.to.LoggerTO; + +public class LoggerResultManager extends CommonsResultManager { + + public void fromList(final LinkedList<LoggerTO> loggerTOs) { + fromCommandToView("list loggers", "level", loggerTOs); + } + + public void fromRead(final LinkedList<LoggerTO> loggerTOs) { + fromCommandToView("read loggers", "level", loggerTOs); + } + + public void fromCreate(final LinkedList<LoggerTO> loggerTOs) { + fromCommandToView("created loggers", "level", loggerTOs); + } + + public void fromUpdate(final LinkedList<LoggerTO> loggerTOs) { + fromCommandToView("updated loggers", "new level", loggerTOs); + } + + public void fromDelete(final LinkedList<LoggerTO> loggerTOs) { + fromCommandToView("deleted loggers", "new level", loggerTOs); + } + + private void fromCommandToView(final String title, + final String secondHeader, + final LinkedList<LoggerTO> loggerTOs) { + final Table.TableBuilder tableBuilder + = new Table.TableBuilder(title).header("logger").header(secondHeader); + for (final LoggerTO loggerTO : loggerTOs) { + tableBuilder.rowValues( + new LinkedList(Arrays.asList(loggerTO.getKey(), loggerTO.getLevel().getLevel().name()))); + } + tableBuilder.build().print(); + } + +} http://git-wip-us.apache.org/repos/asf/syncope/blob/6b9cd592/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerUpdate.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerUpdate.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerUpdate.java index d309c4c..cbfc196 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerUpdate.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerUpdate.java @@ -52,23 +52,23 @@ public class LoggerUpdate extends AbstractLoggerCommand { loggerTOs.add(loggerTO); } catch (final WebServiceException | SyncopeClientException | IllegalArgumentException ex) { if (ex.getMessage().startsWith("No enum constant org.apache.syncope.common.lib.types.")) { - resultManager.typeNotValidError(input.firstParameter()); + loggerResultManager.typeNotValidError(input.firstParameter()); } else if ("Parameter syntax error!".equalsIgnoreCase(ex.getMessage())) { - resultManager.genericError(ex.getMessage(), UPDATE_HELP_MESSAGE); + loggerResultManager.genericError(ex.getMessage(), UPDATE_HELP_MESSAGE); } else if (ex.getMessage().startsWith("NotFound")) { - resultManager.notFoundError(parameter); + loggerResultManager.notFoundError("Logger", parameter); } else { - resultManager.genericError(ex.getMessage(), UPDATE_HELP_MESSAGE); + loggerResultManager.genericError(ex.getMessage(), UPDATE_HELP_MESSAGE); } failed = true; break; } } if (!failed) { - resultManager.fromUpdate(loggerTOs); + loggerResultManager.fromUpdate(loggerTOs); } } else { - resultManager.commandOptionError(UPDATE_HELP_MESSAGE); + loggerResultManager.commandOptionError(UPDATE_HELP_MESSAGE); } } } http://git-wip-us.apache.org/repos/asf/syncope/blob/6b9cd592/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerUpdateAll.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerUpdateAll.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerUpdateAll.java index 3393ae4..305fa30 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerUpdateAll.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerUpdateAll.java @@ -47,19 +47,19 @@ public class LoggerUpdateAll extends AbstractLoggerCommand { loggerTOs.add(loggerTO); } catch (final WebServiceException | SyncopeClientException | IllegalArgumentException ex) { if (ex.getMessage().startsWith("No enum constant org.apache.syncope.common.lib.types.")) { - resultManager.typeNotValidError(input.firstParameter()); + loggerResultManager.typeNotValidError(input.firstParameter()); } else { - resultManager.genericError(ex.getMessage(), UPDATE_ALL_HELP_MESSAGE); + loggerResultManager.genericError(ex.getMessage(), UPDATE_ALL_HELP_MESSAGE); } failed = true; break; } } if (!failed) { - resultManager.fromUpdate(loggerTOs); + loggerResultManager.fromUpdate(loggerTOs); } } else { - resultManager.commandOptionError(UPDATE_ALL_HELP_MESSAGE); + loggerResultManager.commandOptionError(UPDATE_ALL_HELP_MESSAGE); } } } http://git-wip-us.apache.org/repos/asf/syncope/blob/6b9cd592/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/ResultManager.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/ResultManager.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/ResultManager.java deleted file mode 100644 index e993eb7..0000000 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/ResultManager.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.syncope.client.cli.commands.logger; - -import java.util.Arrays; -import java.util.LinkedList; -import org.apache.syncope.client.cli.messages.Messages; -import org.apache.syncope.client.cli.messages.Table; -import org.apache.syncope.client.cli.util.CommandUtils; -import org.apache.syncope.common.lib.to.LoggerTO; -import org.apache.syncope.common.lib.types.LoggerLevel; - -public class ResultManager { - - public void notFoundError(final String parameter) { - Messages.printNofFoundMessage("Logger", parameter); - } - - public void typeNotValidError(final String parameter) { - Messages.printTypeNotValidMessage("logger level", parameter, CommandUtils.fromEnumToArray(LoggerLevel.class)); - } - - public void commandOptionError(final String message) { - Messages.printCommandOptionMessage(message); - } - - public void genericError(final String... messages) { - Messages.printMessage(messages); - } - - public void fromList(final LinkedList<LoggerTO> loggerTOs) { - fromCommandToView("list loggers", "level", loggerTOs); - } - - public void fromRead(final LinkedList<LoggerTO> loggerTOs) { - fromCommandToView("read loggers", "level", loggerTOs); - } - - public void fromCreate(final LinkedList<LoggerTO> loggerTOs) { - fromCommandToView("created loggers", "level", loggerTOs); - } - - public void fromUpdate(final LinkedList<LoggerTO> loggerTOs) { - fromCommandToView("updated loggers", "new level", loggerTOs); - } - - public void fromDelete(final LinkedList<LoggerTO> loggerTOs) { - fromCommandToView("deleted loggers", "new level", loggerTOs); - } - - private void fromCommandToView(final String title, - final String secondHeader, - final LinkedList<LoggerTO> loggerTOs) { - final Table.TableBuilder tableBuilder - = new Table.TableBuilder(title).header("logger").header(secondHeader); - for (final LoggerTO loggerTO : loggerTOs) { - tableBuilder.rowValues( - new LinkedList(Arrays.asList(loggerTO.getKey(), loggerTO.getLevel().getLevel().name()))); - } - tableBuilder.build().print(); - } - -}