From 0deb01239cd7f5ca24c9724a149e760de9262e3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A5le=20Pedersen?= Date: Wed, 1 Apr 2026 17:25:00 +0200 Subject: [PATCH] Simplify converters and remove obsolete GraalVM reflection generator Merge redirection operators and stop instantiating Null* objects Simplify provider abstraction: remove 5 Aesh*Provider classes and unnecessary generics --- .../command/AeshCommandRuntimeBuilder.java | 53 ++----- .../activator/CommandActivatorProvider.java | 6 +- .../activator/OptionActivatorProvider.java | 6 +- .../CompleterInvocationProvider.java | 6 +- .../ConverterInvocationProvider.java | 6 +- .../aesh/command/impl/AeshCommandRuntime.java | 12 +- .../org/aesh/command/impl/Executions.java | 14 +- .../AeshCommandActivatorProvider.java | 34 ---- .../AeshOptionActivatorProvider.java | 34 ---- .../AeshCompleterInvocationProvider.java | 35 ----- .../completer/CommandSuggestionProvider.java | 2 +- .../AeshCommandContainerBuilder.java | 11 +- .../AeshConverterInvocationProvider.java | 34 ---- .../command/impl/converter/ByteConverter.java | 33 ---- .../impl/converter/CharacterConverter.java | 36 ----- .../impl/converter/DoubleConverter.java | 33 ---- .../impl/converter/FloatConverter.java | 33 ---- ...onverter.java => FunctionalConverter.java} | 18 ++- .../impl/converter/IntegerConverter.java | 33 ---- .../command/impl/converter/LongConverter.java | 33 ---- .../impl/converter/ShortConverter.java | 33 ---- .../impl/converter/StringConverter.java | 33 ---- .../impl/internal/ProcessedCommand.java | 36 ++--- .../internal/ProcessedCommandBuilder.java | 15 +- .../impl/internal/ProcessedOption.java | 7 +- .../impl/internal/ProcessedOptionBuilder.java | 13 +- .../invocation/AeshInvocationProviders.java | 35 +++-- .../AppendOutputRedirectionOperator.java | 75 --------- .../operator/OutputRedirectionOperator.java | 12 +- .../AeshCommandLineCompletionParser.java | 11 +- .../registry/MutableCommandRegistryImpl.java | 4 +- .../AeshValidatorInvocationProvider.java | 34 ---- .../invocation/InvocationProviders.java | 17 +- .../aesh/command/map/MapProcessedCommand.java | 4 +- .../map/MapProcessedCommandBuilder.java | 15 +- .../command/settings/RuntimeSettings.java | 12 +- .../org/aesh/command/settings/Settings.java | 19 +-- .../command/settings/SettingsBuilder.java | 134 +++++++--------- .../aesh/command/settings/SettingsImpl.java | 45 +++--- .../ValidatorInvocationProvider.java | 7 +- .../org/aesh/console/ReadlineConsole.java | 10 +- .../aesh/converter/CLConverterManager.java | 30 ++-- .../aesh/util/GraalReflectionGenerator.java | 15 -- .../util/graal/GraalReflectionCommand.java | 84 ---------- .../graal/GraalReflectionFileGenerator.java | 119 -------------- .../java/org/aesh/AeshConsoleRunnerTest.java | 9 +- .../aesh/command/AeshCommandInputTest.java | 7 +- .../AeshCommandMultipleInvocations.java | 11 +- .../AeshCommandNotFoundHandlerTest.java | 7 +- .../AeshCommandOverrideRequiredTest.java | 7 +- .../aesh/command/AeshCommandPasteTest.java | 9 +- .../aesh/command/AeshCommandRequiredTest.java | 11 +- .../command/AeshCommandResultHandlerTest.java | 7 +- .../org/aesh/command/AeshConsoleTest.java | 10 +- .../java/org/aesh/command/AeshScriptTest.java | 7 +- .../java/org/aesh/command/ConfigTest.java | 7 +- .../java/org/aesh/command/HyperlinkTest.java | 11 +- .../activator/AeshCommandActivatorTest.java | 5 +- .../AeshCommandOptionActivatorTest.java | 5 +- .../builder/AeshCommandCustomCommand.java | 7 +- .../builder/AeshCommandDynamicTest.java | 7 +- .../completer/AeshCommandCompletionTest.java | 38 +++-- .../AeshCommandOperatorCompletionTest.java | 10 +- .../CommandSuggestionProviderTest.java | 6 +- .../completer/CompletionConsoleTest.java | 8 +- .../AeshConverterInvocationProviderTest.java | 10 +- .../command/export/ExportCommandTest.java | 9 +- .../command/help/AeshHelpCommandTest.java | 7 +- .../AeshCommandInvocationServiceTest.java | 9 +- .../aesh/command/man/AeshManProviderTest.java | 7 +- .../AeshCommandConditionalOperatorTest.java | 7 +- .../operator/AeshCommandEndOperatorTest.java | 7 +- .../operator/AeshCommandPipelineTest.java | 9 +- .../operator/ConsoleRedirectionTest.java | 19 +-- .../command/parser/CommandLineParserTest.java | 12 +- .../command/parser/ParentCommandTest.java | 12 +- .../populator/CommandLinePopulatorTest.java | 12 +- .../populator/FieldSetterPopulatorTest.java | 12 +- .../MetadataProviderFieldSetterTest.java | 12 +- .../registry/AeshCommandRegistryTest.java | 11 +- .../settings/SubCommandModeSettingsTest.java | 4 +- .../AeshCommandOptionValidatorTest.java | 16 +- .../validator/AeshCommandValidatorTest.java | 6 +- .../console/AeshConnectionClosedTest.java | 7 +- .../GraalReflectionFileGeneratorTest.java | 147 ------------------ aesh/src/test/resources/graal1 | 21 --- aesh/src/test/resources/graal2 | 51 ------ aesh/src/test/resources/graal3 | 57 ------- 88 files changed, 332 insertions(+), 1612 deletions(-) delete mode 100644 aesh/src/main/java/org/aesh/command/impl/activator/AeshCommandActivatorProvider.java delete mode 100644 aesh/src/main/java/org/aesh/command/impl/activator/AeshOptionActivatorProvider.java delete mode 100644 aesh/src/main/java/org/aesh/command/impl/completer/AeshCompleterInvocationProvider.java delete mode 100644 aesh/src/main/java/org/aesh/command/impl/converter/AeshConverterInvocationProvider.java delete mode 100644 aesh/src/main/java/org/aesh/command/impl/converter/ByteConverter.java delete mode 100644 aesh/src/main/java/org/aesh/command/impl/converter/CharacterConverter.java delete mode 100644 aesh/src/main/java/org/aesh/command/impl/converter/DoubleConverter.java delete mode 100644 aesh/src/main/java/org/aesh/command/impl/converter/FloatConverter.java rename aesh/src/main/java/org/aesh/command/impl/converter/{BooleanConverter.java => FunctionalConverter.java} (68%) delete mode 100644 aesh/src/main/java/org/aesh/command/impl/converter/IntegerConverter.java delete mode 100644 aesh/src/main/java/org/aesh/command/impl/converter/LongConverter.java delete mode 100644 aesh/src/main/java/org/aesh/command/impl/converter/ShortConverter.java delete mode 100644 aesh/src/main/java/org/aesh/command/impl/converter/StringConverter.java delete mode 100644 aesh/src/main/java/org/aesh/command/impl/operator/AppendOutputRedirectionOperator.java delete mode 100644 aesh/src/main/java/org/aesh/command/impl/validator/AeshValidatorInvocationProvider.java delete mode 100644 aesh/src/main/java/org/aesh/util/GraalReflectionGenerator.java delete mode 100644 aesh/src/main/java/org/aesh/util/graal/GraalReflectionCommand.java delete mode 100644 aesh/src/main/java/org/aesh/util/graal/GraalReflectionFileGenerator.java delete mode 100644 aesh/src/test/java/org/aesh/util/graal/GraalReflectionFileGeneratorTest.java delete mode 100644 aesh/src/test/resources/graal1 delete mode 100644 aesh/src/test/resources/graal2 delete mode 100644 aesh/src/test/resources/graal3 diff --git a/aesh/src/main/java/org/aesh/command/AeshCommandRuntimeBuilder.java b/aesh/src/main/java/org/aesh/command/AeshCommandRuntimeBuilder.java index 97d054fa8..3f68b4669 100644 --- a/aesh/src/main/java/org/aesh/command/AeshCommandRuntimeBuilder.java +++ b/aesh/src/main/java/org/aesh/command/AeshCommandRuntimeBuilder.java @@ -23,23 +23,14 @@ import java.util.EnumSet; import java.util.function.Consumer; -import org.aesh.command.activator.CommandActivator; import org.aesh.command.activator.CommandActivatorProvider; -import org.aesh.command.activator.OptionActivator; import org.aesh.command.activator.OptionActivatorProvider; -import org.aesh.command.completer.CompleterInvocation; import org.aesh.command.completer.CompleterInvocationProvider; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.converter.ConverterInvocationProvider; import org.aesh.command.impl.AeshCommandRuntime; -import org.aesh.command.impl.activator.AeshCommandActivatorProvider; -import org.aesh.command.impl.activator.AeshOptionActivatorProvider; -import org.aesh.command.impl.completer.AeshCompleterInvocationProvider; -import org.aesh.command.impl.converter.AeshConverterInvocationProvider; import org.aesh.command.impl.invocation.AeshCommandInvocationProvider; import org.aesh.command.impl.invocation.DefaultCommandInvocationBuilder; import org.aesh.command.impl.registry.MutableCommandRegistryImpl; -import org.aesh.command.impl.validator.AeshValidatorInvocationProvider; import org.aesh.command.invocation.CommandInvocation; import org.aesh.command.invocation.CommandInvocationBuilder; import org.aesh.command.invocation.CommandInvocationProvider; @@ -47,7 +38,6 @@ import org.aesh.command.registry.CommandRegistry; import org.aesh.command.settings.Settings; import org.aesh.command.shell.Shell; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.command.validator.ValidatorInvocationProvider; import org.aesh.console.AeshContext; import org.aesh.console.DefaultAeshContext; @@ -65,11 +55,11 @@ public class AeshCommandRuntimeBuilder { private CommandRegistry registry; private CommandInvocationProvider commandInvocationProvider; private CommandNotFoundHandler commandNotFoundHandler; - private CompleterInvocationProvider completerInvocationProvider; - private ConverterInvocationProvider converterInvocationProvider; - private ValidatorInvocationProvider validatorInvocationProvider; - private OptionActivatorProvider optionActivatorProvider; - private CommandActivatorProvider commandActivatorProvider; + private CompleterInvocationProvider completerInvocationProvider; + private ConverterInvocationProvider converterInvocationProvider; + private ValidatorInvocationProvider validatorInvocationProvider; + private OptionActivatorProvider optionActivatorProvider; + private CommandActivatorProvider commandActivatorProvider; private AeshContext ctx; private CommandInvocationBuilder commandInvocationBuilder; private Shell shell; @@ -113,27 +103,27 @@ public AeshCommandRuntimeBuilder commandNotFoundHandler(CommandNotFoundHandl } public AeshCommandRuntimeBuilder completerInvocationProvider( - CompleterInvocationProvider completerInvocationProvider) { + CompleterInvocationProvider completerInvocationProvider) { return apply(c -> c.completerInvocationProvider = completerInvocationProvider); } public AeshCommandRuntimeBuilder converterInvocationProvider( - ConverterInvocationProvider converterInvocationProvider) { + ConverterInvocationProvider converterInvocationProvider) { return apply(c -> c.converterInvocationProvider = converterInvocationProvider); } public AeshCommandRuntimeBuilder validatorInvocationProvider( - ValidatorInvocationProvider validatorInvocationProvider) { + ValidatorInvocationProvider validatorInvocationProvider) { return apply(c -> c.validatorInvocationProvider = validatorInvocationProvider); } public AeshCommandRuntimeBuilder optionActivatorProvider( - OptionActivatorProvider optionActivatorProvider) { + OptionActivatorProvider optionActivatorProvider) { return apply(c -> c.optionActivatorProvider = optionActivatorProvider); } public AeshCommandRuntimeBuilder commandActivatorProvider( - CommandActivatorProvider commandActivatorProvider) { + CommandActivatorProvider commandActivatorProvider) { return apply(c -> c.commandActivatorProvider = commandActivatorProvider); } @@ -151,8 +141,7 @@ public AeshCommandRuntimeBuilder aeshContext(AeshContext ctx) { } @SuppressWarnings("unchecked") - public AeshCommandRuntimeBuilder settings( - Settings settings) { + public AeshCommandRuntimeBuilder settings(Settings settings) { return apply(c -> { c.commandInvocationProvider = (CommandInvocationProvider) settings.commandInvocationProvider(); c.commandNotFoundHandler = settings.commandNotFoundHandler(); @@ -177,26 +166,6 @@ public CommandRuntime build() { commandInvocationProvider = new AeshCommandInvocationProvider<>(); } - if (completerInvocationProvider == null) { - completerInvocationProvider = new AeshCompleterInvocationProvider(); - } - - if (converterInvocationProvider == null) { - converterInvocationProvider = new AeshConverterInvocationProvider(); - } - - if (validatorInvocationProvider == null) { - validatorInvocationProvider = new AeshValidatorInvocationProvider(); - } - - if (optionActivatorProvider == null) { - optionActivatorProvider = new AeshOptionActivatorProvider(); - } - - if (commandActivatorProvider == null) { - commandActivatorProvider = new AeshCommandActivatorProvider(); - } - if (commandInvocationBuilder == null) commandInvocationBuilder = (CommandInvocationBuilder) new DefaultCommandInvocationBuilder(shell); diff --git a/aesh/src/main/java/org/aesh/command/activator/CommandActivatorProvider.java b/aesh/src/main/java/org/aesh/command/activator/CommandActivatorProvider.java index bdaaff7b2..60676dee0 100644 --- a/aesh/src/main/java/org/aesh/command/activator/CommandActivatorProvider.java +++ b/aesh/src/main/java/org/aesh/command/activator/CommandActivatorProvider.java @@ -22,7 +22,9 @@ /** * @author Aesh team */ -public interface CommandActivatorProvider { +public interface CommandActivatorProvider { - CA enhanceCommandActivator(CommandActivator commandActivator); + default CommandActivator enhanceCommandActivator(CommandActivator commandActivator) { + return commandActivator; + } } diff --git a/aesh/src/main/java/org/aesh/command/activator/OptionActivatorProvider.java b/aesh/src/main/java/org/aesh/command/activator/OptionActivatorProvider.java index 1c70bd6b2..09a65acf0 100644 --- a/aesh/src/main/java/org/aesh/command/activator/OptionActivatorProvider.java +++ b/aesh/src/main/java/org/aesh/command/activator/OptionActivatorProvider.java @@ -22,7 +22,9 @@ /** * @author Aesh team */ -public interface OptionActivatorProvider { +public interface OptionActivatorProvider { - OA enhanceOptionActivator(OptionActivator optionActivator); + default OptionActivator enhanceOptionActivator(OptionActivator optionActivator) { + return optionActivator; + } } diff --git a/aesh/src/main/java/org/aesh/command/completer/CompleterInvocationProvider.java b/aesh/src/main/java/org/aesh/command/completer/CompleterInvocationProvider.java index f0be1e52e..65cd144d2 100644 --- a/aesh/src/main/java/org/aesh/command/completer/CompleterInvocationProvider.java +++ b/aesh/src/main/java/org/aesh/command/completer/CompleterInvocationProvider.java @@ -22,7 +22,9 @@ /** * @author Aesh team */ -public interface CompleterInvocationProvider { +public interface CompleterInvocationProvider { - CI enhanceCompleterInvocation(CompleterInvocation completerInvocation); + default CompleterInvocation enhanceCompleterInvocation(CompleterInvocation completerInvocation) { + return completerInvocation; + } } diff --git a/aesh/src/main/java/org/aesh/command/converter/ConverterInvocationProvider.java b/aesh/src/main/java/org/aesh/command/converter/ConverterInvocationProvider.java index 440958355..48a54df5b 100644 --- a/aesh/src/main/java/org/aesh/command/converter/ConverterInvocationProvider.java +++ b/aesh/src/main/java/org/aesh/command/converter/ConverterInvocationProvider.java @@ -22,7 +22,9 @@ /** * @author Aesh team */ -public interface ConverterInvocationProvider { +public interface ConverterInvocationProvider { - CI enhanceConverterInvocation(ConverterInvocation converterInvocation); + default ConverterInvocation enhanceConverterInvocation(ConverterInvocation converterInvocation) { + return converterInvocation; + } } diff --git a/aesh/src/main/java/org/aesh/command/impl/AeshCommandRuntime.java b/aesh/src/main/java/org/aesh/command/impl/AeshCommandRuntime.java index 4db720103..bdb01d7ca 100644 --- a/aesh/src/main/java/org/aesh/command/impl/AeshCommandRuntime.java +++ b/aesh/src/main/java/org/aesh/command/impl/AeshCommandRuntime.java @@ -40,7 +40,6 @@ import org.aesh.command.completer.CompleterInvocationProvider; import org.aesh.command.container.CommandContainer; import org.aesh.command.converter.ConverterInvocationProvider; -import org.aesh.command.impl.activator.AeshOptionActivatorProvider; import org.aesh.command.impl.completer.CompleterData; import org.aesh.command.impl.completer.FileOptionCompleter; import org.aesh.command.impl.internal.ProcessedCommand; @@ -202,8 +201,6 @@ public CommandResult executeCommand(String... lines) throws CommandNotFoundExcep } private void processAfterInit() { - if (invocationProviders.getOptionActivatorProvider() instanceof AeshOptionActivatorProvider) - return; try { for (String commandName : registry.getAllCommandNames()) { updateCommand(commandName); @@ -216,12 +213,9 @@ private void processAfterInit() { private void updateCommand(String commandName) throws CommandNotFoundException { ProcessedCommand, CI> cmd = registry.getCommand(commandName, "").getParser().getProcessedCommand(); List> childParsers = registry.getChildCommandParsers(commandName); - if (!(invocationProviders.getOptionActivatorProvider() instanceof AeshOptionActivatorProvider)) { - //we have a custom OptionActivatorProvider, and need to process all options - cmd.updateInvocationProviders(invocationProviders); - for (CommandLineParser child : childParsers) { - child.getProcessedCommand().updateInvocationProviders(invocationProviders); - } + cmd.updateInvocationProviders(invocationProviders); + for (CommandLineParser child : childParsers) { + child.getProcessedCommand().updateInvocationProviders(invocationProviders); } } diff --git a/aesh/src/main/java/org/aesh/command/impl/Executions.java b/aesh/src/main/java/org/aesh/command/impl/Executions.java index 68d705b8b..c75789b10 100644 --- a/aesh/src/main/java/org/aesh/command/impl/Executions.java +++ b/aesh/src/main/java/org/aesh/command/impl/Executions.java @@ -34,14 +34,12 @@ import org.aesh.command.Execution; import org.aesh.command.container.CommandContainer; import org.aesh.command.impl.completer.CompleterData; -import org.aesh.command.impl.completer.NullOptionCompleter; import org.aesh.command.impl.context.CommandContext; import org.aesh.command.impl.internal.OptionType; import org.aesh.command.impl.internal.ParsedCommand; import org.aesh.command.impl.internal.ProcessedCommand; import org.aesh.command.impl.internal.ProcessedOption; import org.aesh.command.impl.operator.AndOperator; -import org.aesh.command.impl.operator.AppendOutputRedirectionOperator; import org.aesh.command.impl.operator.ConfigurationOperator; import org.aesh.command.impl.operator.DataProvider; import org.aesh.command.impl.operator.EndOperator; @@ -150,11 +148,9 @@ public CommandResult execute() throws CommandException, InterruptedException, Co if (cmd.validator() != null && !cmd.hasOptionWithOverrideRequired()) { cmd.validator().validate(getCommand()); } - if (cmd.getActivator() != null) { - if (!cmd.getActivator().isActivated(new ParsedCommand(cmd))) { - result = CommandResult.FAILURE; - throw new CommandException("The command is not available in the current context."); - } + if (!cmd.isActivated(new ParsedCommand(cmd))) { + result = CommandResult.FAILURE; + throw new CommandException("The command is not available in the current context."); } if (hasRedirectIn()) { @@ -197,7 +193,7 @@ public CommandResult execute() throws CommandException, InterruptedException, Co for (ProcessedOption option : cmd.getAllSelectors()) { //if we do not have any default values, check if we can use the completer if ((option.getDefaultValues() == null || option.getDefaultValues().size() == 0) && - (option.completer() != null && !(option.completer() instanceof NullOptionCompleter))) { + option.completer() != null) { //first create a mock CompleterInvocation, then get all the values CompleterData completerMock = new CompleterData(null, "", null); option.completer().complete(completerMock); @@ -423,7 +419,7 @@ private static Operator buildOperator(OperatorType op, AeshContext context) { return new OutputRedirectionOperator(context); } case APPEND_OUT: { - return new AppendOutputRedirectionOperator(context); + return new OutputRedirectionOperator(context, true); } case PIPE: { return new PipeOperator(context); diff --git a/aesh/src/main/java/org/aesh/command/impl/activator/AeshCommandActivatorProvider.java b/aesh/src/main/java/org/aesh/command/impl/activator/AeshCommandActivatorProvider.java deleted file mode 100644 index c4a300dd6..000000000 --- a/aesh/src/main/java/org/aesh/command/impl/activator/AeshCommandActivatorProvider.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * JBoss, Home of Professional Open Source - * Copyright 2014 Red Hat Inc. and/or its affiliates and other contributors - * as indicated by the @authors tag - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * - * Licensed 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.aesh.command.impl.activator; - -import org.aesh.command.activator.CommandActivator; -import org.aesh.command.activator.CommandActivatorProvider; - -/** - * @author Aesh team - */ -public class AeshCommandActivatorProvider implements CommandActivatorProvider { - @Override - public CommandActivator enhanceCommandActivator(CommandActivator commandActivator) { - return commandActivator; - } -} diff --git a/aesh/src/main/java/org/aesh/command/impl/activator/AeshOptionActivatorProvider.java b/aesh/src/main/java/org/aesh/command/impl/activator/AeshOptionActivatorProvider.java deleted file mode 100644 index 51f7d0975..000000000 --- a/aesh/src/main/java/org/aesh/command/impl/activator/AeshOptionActivatorProvider.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * JBoss, Home of Professional Open Source - * Copyright 2014 Red Hat Inc. and/or its affiliates and other contributors - * as indicated by the @authors tag - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * - * Licensed 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.aesh.command.impl.activator; - -import org.aesh.command.activator.OptionActivator; -import org.aesh.command.activator.OptionActivatorProvider; - -/** - * @author Aesh team - */ -public class AeshOptionActivatorProvider implements OptionActivatorProvider { - @Override - public OptionActivator enhanceOptionActivator(OptionActivator optionActivator) { - return optionActivator; - } -} diff --git a/aesh/src/main/java/org/aesh/command/impl/completer/AeshCompleterInvocationProvider.java b/aesh/src/main/java/org/aesh/command/impl/completer/AeshCompleterInvocationProvider.java deleted file mode 100644 index 5ef58fc80..000000000 --- a/aesh/src/main/java/org/aesh/command/impl/completer/AeshCompleterInvocationProvider.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * JBoss, Home of Professional Open Source - * Copyright 2014 Red Hat Inc. and/or its affiliates and other contributors - * as indicated by the @authors tag - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * - * Licensed 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.aesh.command.impl.completer; - -import org.aesh.command.completer.CompleterInvocation; -import org.aesh.command.completer.CompleterInvocationProvider; - -/** - * @author Aesh team - */ -public class AeshCompleterInvocationProvider implements CompleterInvocationProvider { - @Override - @SuppressWarnings("unchecked") - public CI enhanceCompleterInvocation(CompleterInvocation completerInvocation) { - return (CI) completerInvocation; - } -} diff --git a/aesh/src/main/java/org/aesh/command/impl/completer/CommandSuggestionProvider.java b/aesh/src/main/java/org/aesh/command/impl/completer/CommandSuggestionProvider.java index 102127b95..e6b9bd1f8 100644 --- a/aesh/src/main/java/org/aesh/command/impl/completer/CommandSuggestionProvider.java +++ b/aesh/src/main/java/org/aesh/command/impl/completer/CommandSuggestionProvider.java @@ -169,7 +169,7 @@ private String suggestOption(String trimmed, String lastWord) { private boolean isCommandActivated(String name) { try { CommandContainer container = registry.getCommand(name, name); - return container.getParser().getProcessedCommand().getActivator().isActivated(null); + return container.getParser().getProcessedCommand().isActivated(null); } catch (Exception e) { return true; // default to activated if we can't check } diff --git a/aesh/src/main/java/org/aesh/command/impl/container/AeshCommandContainerBuilder.java b/aesh/src/main/java/org/aesh/command/impl/container/AeshCommandContainerBuilder.java index 898757ebe..b0e80cf62 100644 --- a/aesh/src/main/java/org/aesh/command/impl/container/AeshCommandContainerBuilder.java +++ b/aesh/src/main/java/org/aesh/command/impl/container/AeshCommandContainerBuilder.java @@ -33,10 +33,6 @@ import org.aesh.command.GroupCommandDefinition; import org.aesh.command.container.CommandContainer; import org.aesh.command.container.CommandContainerBuilder; -import org.aesh.command.impl.activator.AeshCommandActivatorProvider; -import org.aesh.command.impl.activator.AeshOptionActivatorProvider; -import org.aesh.command.impl.completer.AeshCompleterInvocationProvider; -import org.aesh.command.impl.converter.AeshConverterInvocationProvider; import org.aesh.command.impl.internal.OptionType; import org.aesh.command.impl.internal.ProcessedCommand; import org.aesh.command.impl.internal.ProcessedCommandBuilder; @@ -44,7 +40,6 @@ import org.aesh.command.impl.invocation.AeshInvocationProviders; import org.aesh.command.impl.parser.CommandLineParser; import org.aesh.command.impl.parser.CommandLineParserBuilder; -import org.aesh.command.impl.validator.AeshValidatorInvocationProvider; import org.aesh.command.invocation.CommandInvocation; import org.aesh.command.invocation.InvocationProviders; import org.aesh.command.metadata.CommandMetadataProvider; @@ -367,11 +362,7 @@ public static void parseAndPopulate(Command instance, String AeshCommandContainerBuilder builder = new AeshCommandContainerBuilder<>(); CommandLineParser cl = builder.doGenerateCommandLineParser(instance).getParser(); InvocationProviders invocationProviders = new AeshInvocationProviders( - new AeshConverterInvocationProvider(), - new AeshCompleterInvocationProvider(), - new AeshValidatorInvocationProvider(), - new AeshOptionActivatorProvider(), - new AeshCommandActivatorProvider()); + null, null, null, null, null); cl.parse(input); cl.getCommandPopulator().populateObject(cl.getProcessedCommand(), invocationProviders, null, CommandLineParser.Mode.VALIDATE); diff --git a/aesh/src/main/java/org/aesh/command/impl/converter/AeshConverterInvocationProvider.java b/aesh/src/main/java/org/aesh/command/impl/converter/AeshConverterInvocationProvider.java deleted file mode 100644 index 43c9558e0..000000000 --- a/aesh/src/main/java/org/aesh/command/impl/converter/AeshConverterInvocationProvider.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * JBoss, Home of Professional Open Source - * Copyright 2014 Red Hat Inc. and/or its affiliates and other contributors - * as indicated by the @authors tag - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * - * Licensed 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.aesh.command.impl.converter; - -import org.aesh.command.converter.ConverterInvocation; -import org.aesh.command.converter.ConverterInvocationProvider; - -/** - * @author Aesh team - */ -public class AeshConverterInvocationProvider implements ConverterInvocationProvider { - @Override - public ConverterInvocation enhanceConverterInvocation(ConverterInvocation converterInvocation) { - return converterInvocation; - } -} diff --git a/aesh/src/main/java/org/aesh/command/impl/converter/ByteConverter.java b/aesh/src/main/java/org/aesh/command/impl/converter/ByteConverter.java deleted file mode 100644 index 618c4b03a..000000000 --- a/aesh/src/main/java/org/aesh/command/impl/converter/ByteConverter.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * JBoss, Home of Professional Open Source - * Copyright 2014 Red Hat Inc. and/or its affiliates and other contributors - * as indicated by the @authors tag - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * - * Licensed 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.aesh.command.impl.converter; - -import org.aesh.command.converter.Converter; -import org.aesh.command.converter.ConverterInvocation; - -/** - * @author Aesh team - */ -public class ByteConverter implements Converter { - @Override - public Byte convert(ConverterInvocation input) { - return Byte.valueOf(input.getInput()); - } -} diff --git a/aesh/src/main/java/org/aesh/command/impl/converter/CharacterConverter.java b/aesh/src/main/java/org/aesh/command/impl/converter/CharacterConverter.java deleted file mode 100644 index 5151273ca..000000000 --- a/aesh/src/main/java/org/aesh/command/impl/converter/CharacterConverter.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * JBoss, Home of Professional Open Source - * Copyright 2014 Red Hat Inc. and/or its affiliates and other contributors - * as indicated by the @authors tag - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * - * Licensed 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.aesh.command.impl.converter; - -import org.aesh.command.converter.Converter; -import org.aesh.command.converter.ConverterInvocation; - -/** - * @author Aesh team - */ -public class CharacterConverter implements Converter { - @Override - public Character convert(ConverterInvocation input) { - if (input != null && input.getInput().length() > 0) - return input.getInput().charAt(0); - else - return '\u0000'; - } -} diff --git a/aesh/src/main/java/org/aesh/command/impl/converter/DoubleConverter.java b/aesh/src/main/java/org/aesh/command/impl/converter/DoubleConverter.java deleted file mode 100644 index 6052b4cc1..000000000 --- a/aesh/src/main/java/org/aesh/command/impl/converter/DoubleConverter.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * JBoss, Home of Professional Open Source - * Copyright 2014 Red Hat Inc. and/or its affiliates and other contributors - * as indicated by the @authors tag - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * - * Licensed 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.aesh.command.impl.converter; - -import org.aesh.command.converter.Converter; -import org.aesh.command.converter.ConverterInvocation; - -/** - * @author Aesh team - */ -public class DoubleConverter implements Converter { - @Override - public Double convert(ConverterInvocation input) { - return Double.parseDouble(input.getInput()); - } -} diff --git a/aesh/src/main/java/org/aesh/command/impl/converter/FloatConverter.java b/aesh/src/main/java/org/aesh/command/impl/converter/FloatConverter.java deleted file mode 100644 index 0a53befe1..000000000 --- a/aesh/src/main/java/org/aesh/command/impl/converter/FloatConverter.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * JBoss, Home of Professional Open Source - * Copyright 2014 Red Hat Inc. and/or its affiliates and other contributors - * as indicated by the @authors tag - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * - * Licensed 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.aesh.command.impl.converter; - -import org.aesh.command.converter.Converter; -import org.aesh.command.converter.ConverterInvocation; - -/** - * @author Aesh team - */ -public class FloatConverter implements Converter { - @Override - public Float convert(ConverterInvocation input) { - return Float.parseFloat(input.getInput()); - } -} diff --git a/aesh/src/main/java/org/aesh/command/impl/converter/BooleanConverter.java b/aesh/src/main/java/org/aesh/command/impl/converter/FunctionalConverter.java similarity index 68% rename from aesh/src/main/java/org/aesh/command/impl/converter/BooleanConverter.java rename to aesh/src/main/java/org/aesh/command/impl/converter/FunctionalConverter.java index ae6662b1d..3b3c8cdd6 100644 --- a/aesh/src/main/java/org/aesh/command/impl/converter/BooleanConverter.java +++ b/aesh/src/main/java/org/aesh/command/impl/converter/FunctionalConverter.java @@ -19,15 +19,27 @@ */ package org.aesh.command.impl.converter; +import java.util.function.Function; + import org.aesh.command.converter.Converter; import org.aesh.command.converter.ConverterInvocation; /** + * A generic converter that delegates to a Function. + * Replaces the individual IntegerConverter, LongConverter, etc. classes. + * * @author Aesh team */ -public class BooleanConverter implements Converter { +public class FunctionalConverter implements Converter { + + private final Function fn; + + public FunctionalConverter(Function fn) { + this.fn = fn; + } + @Override - public Boolean convert(ConverterInvocation input) { - return Boolean.parseBoolean(input.getInput()); + public T convert(ConverterInvocation input) { + return fn.apply(input); } } diff --git a/aesh/src/main/java/org/aesh/command/impl/converter/IntegerConverter.java b/aesh/src/main/java/org/aesh/command/impl/converter/IntegerConverter.java deleted file mode 100644 index 47267f111..000000000 --- a/aesh/src/main/java/org/aesh/command/impl/converter/IntegerConverter.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * JBoss, Home of Professional Open Source - * Copyright 2014 Red Hat Inc. and/or its affiliates and other contributors - * as indicated by the @authors tag - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * - * Licensed 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.aesh.command.impl.converter; - -import org.aesh.command.converter.Converter; -import org.aesh.command.converter.ConverterInvocation; - -/** - * @author Aesh team - */ -public class IntegerConverter implements Converter { - @Override - public Integer convert(ConverterInvocation input) { - return Integer.parseInt(input.getInput()); - } -} diff --git a/aesh/src/main/java/org/aesh/command/impl/converter/LongConverter.java b/aesh/src/main/java/org/aesh/command/impl/converter/LongConverter.java deleted file mode 100644 index da8e97f92..000000000 --- a/aesh/src/main/java/org/aesh/command/impl/converter/LongConverter.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * JBoss, Home of Professional Open Source - * Copyright 2014 Red Hat Inc. and/or its affiliates and other contributors - * as indicated by the @authors tag - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * - * Licensed 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.aesh.command.impl.converter; - -import org.aesh.command.converter.Converter; -import org.aesh.command.converter.ConverterInvocation; - -/** - * @author Aesh team - */ -public class LongConverter implements Converter { - @Override - public Long convert(ConverterInvocation input) { - return Long.parseLong(input.getInput()); - } -} diff --git a/aesh/src/main/java/org/aesh/command/impl/converter/ShortConverter.java b/aesh/src/main/java/org/aesh/command/impl/converter/ShortConverter.java deleted file mode 100644 index 2d4820486..000000000 --- a/aesh/src/main/java/org/aesh/command/impl/converter/ShortConverter.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * JBoss, Home of Professional Open Source - * Copyright 2014 Red Hat Inc. and/or its affiliates and other contributors - * as indicated by the @authors tag - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * - * Licensed 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.aesh.command.impl.converter; - -import org.aesh.command.converter.Converter; -import org.aesh.command.converter.ConverterInvocation; - -/** - * @author Aesh team - */ -public class ShortConverter implements Converter { - @Override - public Short convert(ConverterInvocation input) { - return Short.valueOf(input.getInput()); - } -} diff --git a/aesh/src/main/java/org/aesh/command/impl/converter/StringConverter.java b/aesh/src/main/java/org/aesh/command/impl/converter/StringConverter.java deleted file mode 100644 index 11612e792..000000000 --- a/aesh/src/main/java/org/aesh/command/impl/converter/StringConverter.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * JBoss, Home of Professional Open Source - * Copyright 2014 Red Hat Inc. and/or its affiliates and other contributors - * as indicated by the @authors tag - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * - * Licensed 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.aesh.command.impl.converter; - -import org.aesh.command.converter.Converter; -import org.aesh.command.converter.ConverterInvocation; - -/** - * @author Aesh team - */ -public class StringConverter implements Converter { - @Override - public String convert(ConverterInvocation input) { - return input.getInput(); - } -} diff --git a/aesh/src/main/java/org/aesh/command/impl/internal/ProcessedCommand.java b/aesh/src/main/java/org/aesh/command/impl/internal/ProcessedCommand.java index 156016b35..791d11871 100644 --- a/aesh/src/main/java/org/aesh/command/impl/internal/ProcessedCommand.java +++ b/aesh/src/main/java/org/aesh/command/impl/internal/ProcessedCommand.java @@ -25,10 +25,8 @@ import org.aesh.command.Command; import org.aesh.command.activator.CommandActivator; -import org.aesh.command.impl.activator.NullCommandActivator; import org.aesh.command.impl.parser.CompleteStatus; import org.aesh.command.impl.populator.AeshCommandPopulator; -import org.aesh.command.impl.result.NullResultHandler; import org.aesh.command.invocation.CommandInvocation; import org.aesh.command.invocation.InvocationProviders; import org.aesh.command.parser.CommandLineParserException; @@ -94,17 +92,14 @@ public ProcessedCommand(String name, List aliases, C command, this.generateHelp = generateHelp; this.disableParsing = disableParsing; this.helpUrl = helpUrl; - if (resultHandler != null) - this.resultHandler = resultHandler; - else - this.resultHandler = new NullResultHandler(); + this.resultHandler = resultHandler; this.arguments = arguments; this.argument = argument; if (argument != null && arguments != null) throw new OptionParserException("Argument and Arguments cannot be defined in the same Command"); this.options = new ArrayList<>(); this.command = command; - this.activator = activator == null ? new NullCommandActivator() : activator; + this.activator = activator; if (populator == null) this.populator = new AeshCommandPopulator<>(this.command); else @@ -130,6 +125,10 @@ public CommandActivator getActivator() { return activator; } + public boolean isActivated(ParsedCommand parsedCommand) { + return activator == null || activator.isActivated(parsedCommand); + } + public List getAliases() { return aliases; } @@ -258,7 +257,7 @@ public ProcessedOption findOption(String name) { for (ProcessedOption option : getOptions()) if (option.shortName() != null && option.shortName().equals(name) && - option.activator().isActivated(new ParsedCommand(this))) + option.isActivated(new ParsedCommand(this))) return option; return null; @@ -323,7 +322,7 @@ public ProcessedOption findLongOption(String name) { for (ProcessedOption option : getOptions()) if (option.name() != null && option.name().equals(name) && - option.activator().isActivated(new ParsedCommand(this))) + option.isActivated(new ParsedCommand(this))) return option; return null; @@ -348,7 +347,7 @@ public ProcessedOption findNegatedOption(String name) { for (ProcessedOption option : getOptions()) { if (option.isNegatable() && option.getNegatedName() != null && option.getNegatedName().equals(name) && - option.activator().isActivated(new ParsedCommand(this))) { + option.isActivated(new ParsedCommand(this))) { option.setNegatedByUser(true); return option; } @@ -395,7 +394,7 @@ public List findPossibleBareLongNamesWithDash(String name) { public ProcessedOption startWithOption(String name) { for (ProcessedOption option : getOptions()) if (option.shortName() != null && name.startsWith(option.shortName()) && - option.activator().isActivated(new ParsedCommand(this))) + option.isActivated(new ParsedCommand(this))) return option; return null; @@ -404,7 +403,7 @@ public ProcessedOption startWithOption(String name) { public ProcessedOption startWithLongOption(String name) { for (ProcessedOption option : getOptions()) if (name.startsWith(option.name()) && - option.activator().isActivated(new ParsedCommand(this))) + option.isActivated(new ParsedCommand(this))) return option; return null; @@ -508,7 +507,7 @@ public List getOptionLongNamesWithDash() { List names = new ArrayList<>(opts.size()); for (ProcessedOption o : opts) { if (o.getValues().size() == 0 && - o.activator().isActivated(new ParsedCommand(this))) { + o.isActivated(new ParsedCommand(this))) { names.add(o.getRenderedNameWithDashes()); // Also add the negated form for negatable options TerminalString negated = o.getRenderedNegatedNameWithDashes(); @@ -528,12 +527,12 @@ public List findPossibleLongNamesWithDash(String name) { if (((o.shortName() != null && o.shortName().equals(name) && !o.isLongNameUsed() && o.getValues().size() == 0) || (o.name().startsWith(name) && o.getValues().size() == 0)) && - o.activator().isActivated(new ParsedCommand(this))) + o.isActivated(new ParsedCommand(this))) names.add(o.getRenderedNameWithDashes()); // Also check negated option names for negatable options if (o.isNegatable() && o.getNegatedName() != null && o.getNegatedName().startsWith(name) && o.getValues().size() == 0 && - o.activator().isActivated(new ParsedCommand(this))) { + o.isActivated(new ParsedCommand(this))) { TerminalString negated = o.getRenderedNegatedNameWithDashes(); if (negated != null) { names.add(negated); @@ -552,12 +551,12 @@ public List findPossibleLongNames(String name) { if (((o.shortName() != null && o.shortName().equals(name) && !o.isLongNameUsed() && o.getValues().size() == 0) || (o.name().startsWith(name) && o.getValues().size() == 0)) && - o.activator().isActivated(new ParsedCommand(this))) + o.isActivated(new ParsedCommand(this))) names.add(o.name()); // Also check negated option names for negatable options if (o.isNegatable() && o.getNegatedName() != null && o.getNegatedName().startsWith(name) && o.getValues().size() == 0 && - o.activator().isActivated(new ParsedCommand(this))) + o.isActivated(new ParsedCommand(this))) names.add(o.getNegatedName()); } return names; @@ -751,7 +750,8 @@ public void updateInvocationProviders(InvocationProviders invocationProviders) { if (arguments != null) { arguments.updateInvocationProviders(invocationProviders); } - activator = invocationProviders.getCommandActivatorProvider().enhanceCommandActivator(activator); + if (activator != null) + activator = invocationProviders.getCommandActivatorProvider().enhanceCommandActivator(activator); } protected void updateOptionsInvocationProviders(InvocationProviders invocationProviders) { diff --git a/aesh/src/main/java/org/aesh/command/impl/internal/ProcessedCommandBuilder.java b/aesh/src/main/java/org/aesh/command/impl/internal/ProcessedCommandBuilder.java index fce97969b..25b3ed99f 100644 --- a/aesh/src/main/java/org/aesh/command/impl/internal/ProcessedCommandBuilder.java +++ b/aesh/src/main/java/org/aesh/command/impl/internal/ProcessedCommandBuilder.java @@ -26,7 +26,6 @@ import org.aesh.command.Command; import org.aesh.command.activator.CommandActivator; import org.aesh.command.impl.activator.NullCommandActivator; -import org.aesh.command.impl.result.NullResultHandler; import org.aesh.command.impl.validator.NullCommandValidator; import org.aesh.command.invocation.CommandInvocation; import org.aesh.command.parser.CommandLineParserException; @@ -128,7 +127,7 @@ private CommandValidator initValidator(Class) new NullCommandValidator(); + return null; } public ProcessedCommandBuilder resultHandler(Class resultHandler) { @@ -137,10 +136,10 @@ public ProcessedCommandBuilder resultHandler(Class resultHandler) { - if (resultHandler != null && !resultHandler.equals(NullResultHandler.class)) + if (resultHandler != null && !resultHandler.equals(org.aesh.command.impl.result.NullResultHandler.class)) return ReflectionUtil.newInstance(resultHandler); else - return new NullResultHandler(); + return null; } public ProcessedCommandBuilder resultHandler(ResultHandler resultHandler) { @@ -167,7 +166,7 @@ private CommandActivator initActivator(Class activat if (activator != null && activator != NullCommandActivator.class) return ReflectionUtil.newInstance(activator); else - return new NullCommandActivator(); + return null; } public ProcessedCommandBuilder command(C command) { @@ -197,12 +196,6 @@ public ProcessedCommand create() throws CommandLineParserException { if (name == null || name.length() < 1) throw new CommandLineParserException("The parameter name must be defined"); - if (validator == null) - validator = (CommandValidator) new NullCommandValidator(); - - if (resultHandler == null) - resultHandler = new NullResultHandler(); - return new ProcessedCommand<>(name, aliases, command, description, validator, resultHandler, generateHelp, disableParsing, version, arguments, options, arg, populator, activator, helpUrl); diff --git a/aesh/src/main/java/org/aesh/command/impl/internal/ProcessedOption.java b/aesh/src/main/java/org/aesh/command/impl/internal/ProcessedOption.java index 34426f701..b3af913a9 100644 --- a/aesh/src/main/java/org/aesh/command/impl/internal/ProcessedOption.java +++ b/aesh/src/main/java/org/aesh/command/impl/internal/ProcessedOption.java @@ -323,6 +323,10 @@ public OptionActivator activator() { return activator; } + public boolean isActivated(ParsedCommand parsedCommand) { + return activator == null || activator.isActivated(parsedCommand); + } + public OptionParser parser() { return parser; } @@ -704,7 +708,8 @@ public void injectResource(PipelineResource resource, Object instance) { } public void updateInvocationProviders(InvocationProviders invocationProviders) { - activator = invocationProviders.getOptionActivatorProvider().enhanceOptionActivator(activator); + if (activator != null) + activator = invocationProviders.getOptionActivatorProvider().enhanceOptionActivator(activator); } public void updateAnsiMode(boolean ansiMode) { diff --git a/aesh/src/main/java/org/aesh/command/impl/internal/ProcessedOptionBuilder.java b/aesh/src/main/java/org/aesh/command/impl/internal/ProcessedOptionBuilder.java index 25a8b864e..89b0ff8cb 100644 --- a/aesh/src/main/java/org/aesh/command/impl/internal/ProcessedOptionBuilder.java +++ b/aesh/src/main/java/org/aesh/command/impl/internal/ProcessedOptionBuilder.java @@ -29,7 +29,6 @@ import org.aesh.command.activator.OptionActivator; import org.aesh.command.completer.OptionCompleter; import org.aesh.command.converter.Converter; -import org.aesh.command.impl.activator.NullActivator; import org.aesh.command.impl.completer.BooleanOptionCompleter; import org.aesh.command.impl.completer.FileOptionCompleter; import org.aesh.command.impl.completer.NullOptionCompleter; @@ -253,7 +252,7 @@ private OptionValidator initValidator(Class validator if (validator != null && validator != NullValidator.class) return ReflectionUtil.newInstance(validator); else - return new NullValidator(); + return null; } public ProcessedOptionBuilder activator(OptionActivator activator) { @@ -265,10 +264,10 @@ public ProcessedOptionBuilder activator(Class activat } private OptionActivator initActivator(Class activator) { - if (activator != null && activator != NullActivator.class) + if (activator != null && activator != org.aesh.command.impl.activator.NullActivator.class) return ReflectionUtil.newInstance(activator); else - return new NullActivator(); + return null; } public ProcessedOptionBuilder renderer(OptionRenderer renderer) { @@ -381,15 +380,9 @@ else if (hasMultipleValues) throw new OptionParserException("Either shortName or name must be set."); } - if (validator == null) - validator = new NullValidator(); - if (converter == null) converter = CLConverterManager.getInstance().getConverter(type); - if (activator == null) - activator = new NullActivator(); - if (parser == null) parser = new AeshOptionParser(); diff --git a/aesh/src/main/java/org/aesh/command/impl/invocation/AeshInvocationProviders.java b/aesh/src/main/java/org/aesh/command/impl/invocation/AeshInvocationProviders.java index 2bb5d690d..02f7dc200 100644 --- a/aesh/src/main/java/org/aesh/command/impl/invocation/AeshInvocationProviders.java +++ b/aesh/src/main/java/org/aesh/command/impl/invocation/AeshInvocationProviders.java @@ -33,6 +33,17 @@ */ public class AeshInvocationProviders implements InvocationProviders { + private static final ConverterInvocationProvider DEFAULT_CONVERTER = new ConverterInvocationProvider() { + }; + private static final CompleterInvocationProvider DEFAULT_COMPLETER = new CompleterInvocationProvider() { + }; + private static final ValidatorInvocationProvider DEFAULT_VALIDATOR = new ValidatorInvocationProvider() { + }; + private static final OptionActivatorProvider DEFAULT_OPTION_ACTIVATOR = new OptionActivatorProvider() { + }; + private static final CommandActivatorProvider DEFAULT_COMMAND_ACTIVATOR = new CommandActivatorProvider() { + }; + private final ConverterInvocationProvider converterInvocationProvider; private final CompleterInvocationProvider completerInvocationProvider; private final ValidatorInvocationProvider validatorInvocationProvider; @@ -40,11 +51,11 @@ public class AeshInvocationProviders implements InvocationProviders { private final CommandActivatorProvider commandActivatorProvider; public AeshInvocationProviders(Settings settings) { - this.converterInvocationProvider = settings.converterInvocationProvider(); - this.completerInvocationProvider = settings.completerInvocationProvider(); - this.validatorInvocationProvider = settings.validatorInvocationProvider(); - this.optionActivatorProvider = settings.optionActivatorProvider(); - this.commandActivatorProvider = settings.commandActivatorProvider(); + this.converterInvocationProvider = defaultIfNull(settings.converterInvocationProvider(), DEFAULT_CONVERTER); + this.completerInvocationProvider = defaultIfNull(settings.completerInvocationProvider(), DEFAULT_COMPLETER); + this.validatorInvocationProvider = defaultIfNull(settings.validatorInvocationProvider(), DEFAULT_VALIDATOR); + this.optionActivatorProvider = defaultIfNull(settings.optionActivatorProvider(), DEFAULT_OPTION_ACTIVATOR); + this.commandActivatorProvider = defaultIfNull(settings.commandActivatorProvider(), DEFAULT_COMMAND_ACTIVATOR); } public AeshInvocationProviders(ConverterInvocationProvider converterInvocationProvider, @@ -52,11 +63,15 @@ public AeshInvocationProviders(ConverterInvocationProvider converterInvocationPr ValidatorInvocationProvider validatorInvocationProvider, OptionActivatorProvider optionActivatorProvider, CommandActivatorProvider commandActivatorProvider) { - this.converterInvocationProvider = converterInvocationProvider; - this.completerInvocationProvider = completerInvocationProvider; - this.validatorInvocationProvider = validatorInvocationProvider; - this.optionActivatorProvider = optionActivatorProvider; - this.commandActivatorProvider = commandActivatorProvider; + this.converterInvocationProvider = defaultIfNull(converterInvocationProvider, DEFAULT_CONVERTER); + this.completerInvocationProvider = defaultIfNull(completerInvocationProvider, DEFAULT_COMPLETER); + this.validatorInvocationProvider = defaultIfNull(validatorInvocationProvider, DEFAULT_VALIDATOR); + this.optionActivatorProvider = defaultIfNull(optionActivatorProvider, DEFAULT_OPTION_ACTIVATOR); + this.commandActivatorProvider = defaultIfNull(commandActivatorProvider, DEFAULT_COMMAND_ACTIVATOR); + } + + private static T defaultIfNull(T value, T defaultValue) { + return value != null ? value : defaultValue; } @Override diff --git a/aesh/src/main/java/org/aesh/command/impl/operator/AppendOutputRedirectionOperator.java b/aesh/src/main/java/org/aesh/command/impl/operator/AppendOutputRedirectionOperator.java deleted file mode 100644 index e363fb8a5..000000000 --- a/aesh/src/main/java/org/aesh/command/impl/operator/AppendOutputRedirectionOperator.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * JBoss, Home of Professional Open Source - * Copyright 2018 Red Hat Inc. and/or its affiliates and other contributors - * as indicated by the @authors tag - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * - * Licensed 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.aesh.command.impl.operator; - -import java.io.BufferedWriter; -import java.io.File; -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.nio.file.StandardOpenOption; - -import org.aesh.command.invocation.CommandInvocationConfiguration; -import org.aesh.console.AeshContext; - -/** - * - * @author Aesh team - */ -/** - * - * @author Aesh team - */ -public class AppendOutputRedirectionOperator implements ConfigurationOperator { - - private class OutputDelegateImpl extends FileOutputDelegate { - - private OutputDelegateImpl(String file) throws IOException { - super(context, file); - } - - @Override - protected BufferedWriter buildWriter(File f) throws IOException { - return Files.newBufferedWriter(f.toPath(), StandardCharsets.UTF_8, - StandardOpenOption.APPEND, StandardOpenOption.CREATE); - } - } - - private CommandInvocationConfiguration config; - private String argument; - private final AeshContext context; - - public AppendOutputRedirectionOperator(AeshContext context) { - this.context = context; - } - - @Override - public CommandInvocationConfiguration getConfiguration() throws IOException { - if (config == null) { - config = new CommandInvocationConfiguration(context, new OutputDelegateImpl(argument)); - } - return config; - } - - @Override - public void setArgument(String argument) { - this.argument = argument; - } -} diff --git a/aesh/src/main/java/org/aesh/command/impl/operator/OutputRedirectionOperator.java b/aesh/src/main/java/org/aesh/command/impl/operator/OutputRedirectionOperator.java index 4a0d0ff5a..badb9fd13 100644 --- a/aesh/src/main/java/org/aesh/command/impl/operator/OutputRedirectionOperator.java +++ b/aesh/src/main/java/org/aesh/command/impl/operator/OutputRedirectionOperator.java @@ -24,12 +24,12 @@ import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; +import java.nio.file.StandardOpenOption; import org.aesh.command.invocation.CommandInvocationConfiguration; import org.aesh.console.AeshContext; /** - * * @author Aesh team */ public class OutputRedirectionOperator implements ConfigurationOperator { @@ -42,6 +42,10 @@ private OutputDelegateImpl(String file) throws IOException { @Override protected BufferedWriter buildWriter(File f) throws IOException { + if (append) { + return Files.newBufferedWriter(f.toPath(), StandardCharsets.UTF_8, + StandardOpenOption.APPEND, StandardOpenOption.CREATE); + } return Files.newBufferedWriter(f.toPath(), StandardCharsets.UTF_8); } } @@ -49,9 +53,15 @@ protected BufferedWriter buildWriter(File f) throws IOException { private CommandInvocationConfiguration config; private String argument; private final AeshContext context; + private final boolean append; public OutputRedirectionOperator(AeshContext context) { + this(context, false); + } + + public OutputRedirectionOperator(AeshContext context, boolean append) { this.context = context; + this.append = append; } @Override diff --git a/aesh/src/main/java/org/aesh/command/impl/parser/AeshCommandLineCompletionParser.java b/aesh/src/main/java/org/aesh/command/impl/parser/AeshCommandLineCompletionParser.java index 43098e65b..5ecf34550 100644 --- a/aesh/src/main/java/org/aesh/command/impl/parser/AeshCommandLineCompletionParser.java +++ b/aesh/src/main/java/org/aesh/command/impl/parser/AeshCommandLineCompletionParser.java @@ -182,7 +182,7 @@ else if (parser.getProcessedCommand().completeStatus().status().equals(CompleteS private void doProcessGroupCommand(AeshCompleteOperation completeOperation, String name, ParsedLine line) { if (name.length() == 0) { for (CommandLineParser clp : parser.getAllChildParsers()) { - if (clp.getProcessedCommand().getActivator().isActivated(new ParsedCommand(clp.getProcessedCommand()))) + if (clp.getProcessedCommand().isActivated(new ParsedCommand(clp.getProcessedCommand()))) completeOperation.addCompletionCandidate(clp.getProcessedCommand().name()); } if (completeOperation.getCompletionCandidates().size() == 1) @@ -190,8 +190,7 @@ private void doProcessGroupCommand(AeshCompleteOperation completeOperation, Stri } else { for (CommandLineParser child : parser.getAllChildParsers()) { if (child.getProcessedCommand().name().startsWith(name) && - child.getProcessedCommand().getActivator() - .isActivated(new ParsedCommand(child.getProcessedCommand()))) { + child.getProcessedCommand().isActivated(new ParsedCommand(child.getProcessedCommand()))) { completeOperation.addCompletionCandidate(child.getProcessedCommand().name()); completeOperation.setOffset(completeOperation.getCursor() - name.length()); } @@ -207,13 +206,13 @@ private void doProcessArgument(AeshCompleteOperation completeOperation, Invocati : parser.getProcessedCommand().getArgument(); //first check if arg is argument, if so check if it already have a value, if so to an option complete if (arg.getOptionType() == OptionType.ARGUMENT && - (arg.getValue() != null || !arg.activator().isActivated(new ParsedCommand(parser.getProcessedCommand())))) { + (arg.getValue() != null || !arg.isActivated(new ParsedCommand(parser.getProcessedCommand())))) { //list options doListOptions(completeOperation, ""); } //if arguments, but not activated else if (arg.getOptionType() == OptionType.ARGUMENTS - && !arg.activator().isActivated(new ParsedCommand(parser.getProcessedCommand()))) + && !arg.isActivated(new ParsedCommand(parser.getProcessedCommand()))) //list options doListOptions(completeOperation, ""); //argument(s) @@ -299,7 +298,7 @@ private boolean doCompleteOptionValue(InvocationProviders invocationProviders, A value = ""; if (currentOption.completer() != null && currentOption.hasValue() && - currentOption.activator().isActivated(new ParsedCommand(parser.getProcessedCommand()))) { + currentOption.isActivated(new ParsedCommand(parser.getProcessedCommand()))) { CompleterInvocation completions = invocationProviders.getCompleterProvider().enhanceCompleterInvocation( new CompleterData(completeOperation.getContext(), value, parser.getCommand())); diff --git a/aesh/src/main/java/org/aesh/command/impl/registry/MutableCommandRegistryImpl.java b/aesh/src/main/java/org/aesh/command/impl/registry/MutableCommandRegistryImpl.java index 7921522af..329e8ea6e 100644 --- a/aesh/src/main/java/org/aesh/command/impl/registry/MutableCommandRegistryImpl.java +++ b/aesh/src/main/java/org/aesh/command/impl/registry/MutableCommandRegistryImpl.java @@ -88,14 +88,14 @@ public void completeCommandName(CompleteOperation co, ParsedLine parsedLine) { //add all for (CommandContainer command : registry.values()) { ProcessedCommand, CI> com = command.getParser().getProcessedCommand(); - if (com.getActivator().isActivated(new ParsedCommand(com))) + if (com.isActivated(new ParsedCommand(com))) co.addCompletionCandidate(com.name()); } } else { for (CommandContainer command : registry.values()) { ProcessedCommand, CI> com = command.getParser().getProcessedCommand(); if (com.name().startsWith(parsedLine.selectedWord().word()) && - com.getActivator().isActivated(new ParsedCommand(com))) { + com.isActivated(new ParsedCommand(com))) { co.addCompletionCandidate(com.name()); co.setOffset(co.getCursor() - parsedLine.selectedWord().word().length()); if (parsedLine.selectedIndex() < parsedLine.size() - 1) diff --git a/aesh/src/main/java/org/aesh/command/impl/validator/AeshValidatorInvocationProvider.java b/aesh/src/main/java/org/aesh/command/impl/validator/AeshValidatorInvocationProvider.java deleted file mode 100644 index e6e671e5e..000000000 --- a/aesh/src/main/java/org/aesh/command/impl/validator/AeshValidatorInvocationProvider.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * JBoss, Home of Professional Open Source - * Copyright 2014 Red Hat Inc. and/or its affiliates and other contributors - * as indicated by the @authors tag - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * - * Licensed 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.aesh.command.impl.validator; - -import org.aesh.command.validator.ValidatorInvocation; -import org.aesh.command.validator.ValidatorInvocationProvider; - -/** - * @author Aesh team - */ -public class AeshValidatorInvocationProvider implements ValidatorInvocationProvider { - @Override - public ValidatorInvocation enhanceValidatorInvocation(ValidatorInvocation validatorInvocation) { - return validatorInvocation; - } -} diff --git a/aesh/src/main/java/org/aesh/command/invocation/InvocationProviders.java b/aesh/src/main/java/org/aesh/command/invocation/InvocationProviders.java index 560bd719f..b95ce2ed5 100644 --- a/aesh/src/main/java/org/aesh/command/invocation/InvocationProviders.java +++ b/aesh/src/main/java/org/aesh/command/invocation/InvocationProviders.java @@ -20,29 +20,24 @@ package org.aesh.command.invocation; -import org.aesh.command.activator.CommandActivator; import org.aesh.command.activator.CommandActivatorProvider; -import org.aesh.command.activator.OptionActivator; import org.aesh.command.activator.OptionActivatorProvider; -import org.aesh.command.completer.CompleterInvocation; import org.aesh.command.completer.CompleterInvocationProvider; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.converter.ConverterInvocationProvider; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.command.validator.ValidatorInvocationProvider; /** * @author Aesh team */ -public interface InvocationProviders { +public interface InvocationProviders { - ConverterInvocationProvider getConverterProvider(); + ConverterInvocationProvider getConverterProvider(); - CompleterInvocationProvider getCompleterProvider(); + CompleterInvocationProvider getCompleterProvider(); - ValidatorInvocationProvider getValidatorProvider(); + ValidatorInvocationProvider getValidatorProvider(); - OptionActivatorProvider getOptionActivatorProvider(); + OptionActivatorProvider getOptionActivatorProvider(); - CommandActivatorProvider getCommandActivatorProvider(); + CommandActivatorProvider getCommandActivatorProvider(); } diff --git a/aesh/src/main/java/org/aesh/command/map/MapProcessedCommand.java b/aesh/src/main/java/org/aesh/command/map/MapProcessedCommand.java index 68e57aa69..d4a4a4b65 100644 --- a/aesh/src/main/java/org/aesh/command/map/MapProcessedCommand.java +++ b/aesh/src/main/java/org/aesh/command/map/MapProcessedCommand.java @@ -135,14 +135,14 @@ public ProcessedOption findLongOption(String name) { for (ProcessedOption option : getOptions(false)) { if (option.name() != null && option.name().equals(name) - && option.activator().isActivated(new ParsedCommand(this))) { + && option.isActivated(new ParsedCommand(this))) { return option; } } for (ProcessedOption option : getOptions(true)) { if (option.name() != null && option.name().equals(name) - && option.activator().isActivated(new ParsedCommand(this))) { + && option.isActivated(new ParsedCommand(this))) { return option; } } diff --git a/aesh/src/main/java/org/aesh/command/map/MapProcessedCommandBuilder.java b/aesh/src/main/java/org/aesh/command/map/MapProcessedCommandBuilder.java index f456d8cf3..2d93ddba9 100644 --- a/aesh/src/main/java/org/aesh/command/map/MapProcessedCommandBuilder.java +++ b/aesh/src/main/java/org/aesh/command/map/MapProcessedCommandBuilder.java @@ -25,7 +25,6 @@ import org.aesh.command.activator.CommandActivator; import org.aesh.command.impl.internal.ProcessedOption; -import org.aesh.command.impl.result.NullResultHandler; import org.aesh.command.impl.validator.NullCommandValidator; import org.aesh.command.invocation.CommandInvocation; import org.aesh.command.parser.CommandLineParserException; @@ -127,7 +126,7 @@ private CommandValidator initValidator(Class validat if (validator != null && !validator.equals(NullCommandValidator.class)) { return ReflectionUtil.newInstance(validator); } else { - return new NullCommandValidator(); + return null; } } @@ -137,10 +136,10 @@ public MapProcessedCommandBuilder resultHandler(Class resultHandler) { - if (resultHandler != null && !resultHandler.equals(NullResultHandler.class)) { + if (resultHandler != null && !resultHandler.equals(org.aesh.command.impl.result.NullResultHandler.class)) { return ReflectionUtil.newInstance(resultHandler); } else { - return new NullResultHandler(); + return null; } } @@ -193,14 +192,6 @@ public MapProcessedCommand create() throws CommandLineParserException { throw new CommandLineParserException("The parameter name must be defined"); } - if (validator == null) { - validator = (CommandValidator) new NullCommandValidator(); - } - - if (resultHandler == null) { - resultHandler = new NullResultHandler(); - } - if (populator == null) { populator = new MapCommandPopulator<>(command); } diff --git a/aesh/src/main/java/org/aesh/command/settings/RuntimeSettings.java b/aesh/src/main/java/org/aesh/command/settings/RuntimeSettings.java index 45cb4511c..d5436131f 100644 --- a/aesh/src/main/java/org/aesh/command/settings/RuntimeSettings.java +++ b/aesh/src/main/java/org/aesh/command/settings/RuntimeSettings.java @@ -21,12 +21,7 @@ import java.io.File; -import org.aesh.command.activator.CommandActivator; -import org.aesh.command.activator.OptionActivator; -import org.aesh.command.completer.CompleterInvocation; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.invocation.CommandInvocation; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.io.FileResource; import org.aesh.io.Resource; import org.aesh.readline.editing.EditMode; @@ -36,10 +31,9 @@ */ public class RuntimeSettings { - public static Settings readRuntimeProperties( - Settings settings) { - SettingsBuilder builder = new SettingsBuilder<>( - settings); + public static Settings readRuntimeProperties( + Settings settings) { + SettingsBuilder builder = new SettingsBuilder<>(settings); String editMode = System.getProperty("aesh.editmode"); if (editMode != null && editMode.length() > 0) { diff --git a/aesh/src/main/java/org/aesh/command/settings/Settings.java b/aesh/src/main/java/org/aesh/command/settings/Settings.java index 69f4700fe..d867ebb12 100644 --- a/aesh/src/main/java/org/aesh/command/settings/Settings.java +++ b/aesh/src/main/java/org/aesh/command/settings/Settings.java @@ -25,20 +25,15 @@ import java.util.function.Consumer; import org.aesh.command.CommandNotFoundHandler; -import org.aesh.command.activator.CommandActivator; import org.aesh.command.activator.CommandActivatorProvider; -import org.aesh.command.activator.OptionActivator; import org.aesh.command.activator.OptionActivatorProvider; -import org.aesh.command.completer.CompleterInvocation; import org.aesh.command.completer.CompleterInvocationProvider; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.converter.ConverterInvocationProvider; import org.aesh.command.export.ExportChangeListener; import org.aesh.command.invocation.CommandInvocation; import org.aesh.command.invocation.CommandInvocationProvider; import org.aesh.command.invocation.InvocationProviders; import org.aesh.command.registry.CommandRegistry; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.command.validator.ValidatorInvocationProvider; import org.aesh.console.AeshContext; import org.aesh.io.Resource; @@ -51,7 +46,7 @@ * * @author Aesh team */ -public interface Settings +public interface Settings extends Cloneable { /** @@ -264,23 +259,23 @@ public interface Settings completerInvocationProvider(); + CompleterInvocationProvider completerInvocationProvider(); - ConverterInvocationProvider converterInvocationProvider(); + ConverterInvocationProvider converterInvocationProvider(); - ValidatorInvocationProvider validatorInvocationProvider(); + ValidatorInvocationProvider validatorInvocationProvider(); - OptionActivatorProvider optionActivatorProvider(); + OptionActivatorProvider optionActivatorProvider(); ManProvider manProvider(); - CommandActivatorProvider commandActivatorProvider(); + CommandActivatorProvider commandActivatorProvider(); Connection connection(); Object clone(); - InvocationProviders invocationProviders(); + InvocationProviders invocationProviders(); ExportChangeListener exportListener(); diff --git a/aesh/src/main/java/org/aesh/command/settings/SettingsBuilder.java b/aesh/src/main/java/org/aesh/command/settings/SettingsBuilder.java index 8b559d521..c8728ddab 100644 --- a/aesh/src/main/java/org/aesh/command/settings/SettingsBuilder.java +++ b/aesh/src/main/java/org/aesh/command/settings/SettingsBuilder.java @@ -25,13 +25,9 @@ import java.util.function.Consumer; import org.aesh.command.CommandNotFoundHandler; -import org.aesh.command.activator.CommandActivator; import org.aesh.command.activator.CommandActivatorProvider; -import org.aesh.command.activator.OptionActivator; import org.aesh.command.activator.OptionActivatorProvider; -import org.aesh.command.completer.CompleterInvocation; import org.aesh.command.completer.CompleterInvocationProvider; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.converter.ConverterInvocationProvider; import org.aesh.command.export.ExportChangeListener; import org.aesh.command.impl.invocation.AeshInvocationProviders; @@ -39,7 +35,6 @@ import org.aesh.command.invocation.CommandInvocationProvider; import org.aesh.command.invocation.InvocationProviders; import org.aesh.command.registry.CommandRegistry; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.command.validator.ValidatorInvocationProvider; import org.aesh.console.AeshContext; import org.aesh.io.Resource; @@ -52,16 +47,16 @@ * @author Aesh team */ @SuppressWarnings("unchecked") -public class SettingsBuilder { +public class SettingsBuilder { - private SettingsImpl settings; + private SettingsImpl settings; - private SettingsBuilder apply(Consumer> consumer) { + private SettingsBuilder apply(Consumer> consumer) { consumer.accept(this); return this; } - public static SettingsBuilder builder() { + public static SettingsBuilder builder() { return new SettingsBuilder<>(); } @@ -69,238 +64,223 @@ private SettingsBuilder() { settings = new SettingsImpl<>(); } - public SettingsBuilder(Settings baseSettings) { + public SettingsBuilder(Settings baseSettings) { settings = new SettingsImpl<>(baseSettings); } - public SettingsBuilder mode(EditMode.Mode mode) { + public SettingsBuilder mode(EditMode.Mode mode) { return apply(c -> c.settings.setMode(mode)); } - public SettingsBuilder historyFile(File history) { + public SettingsBuilder historyFile(File history) { return apply(c -> c.settings.setHistoryFile(history)); } - public SettingsBuilder historyFilePermission(FileAccessPermission fileAccessPermission) { + public SettingsBuilder historyFilePermission(FileAccessPermission fileAccessPermission) { return apply(c -> c.settings.setHistoryFilePermission(fileAccessPermission)); } - public SettingsBuilder historySize(int size) { + public SettingsBuilder historySize(int size) { return apply(c -> c.settings.setHistorySize(size)); } - public SettingsBuilder bellStyle(String bellStyle) { + public SettingsBuilder bellStyle(String bellStyle) { return apply(c -> c.settings.setBellStyle(bellStyle)); } - public SettingsBuilder inputStream(InputStream inputStream) { + public SettingsBuilder inputStream(InputStream inputStream) { return apply(c -> c.settings.setStdIn(inputStream)); } - public SettingsBuilder outputStream(PrintStream outputStream) { + public SettingsBuilder outputStream(PrintStream outputStream) { return apply(c -> c.settings.setStdOut(outputStream)); } - public SettingsBuilder outputStreamError(PrintStream error) { + public SettingsBuilder outputStreamError(PrintStream error) { return apply(c -> c.settings.setStdErr(error)); } - public SettingsBuilder inputrc(File inputrc) { + public SettingsBuilder inputrc(File inputrc) { return apply(c -> c.settings.setInputrc(inputrc)); } - public SettingsBuilder logging(boolean logging) { + public SettingsBuilder logging(boolean logging) { return apply(c -> c.settings.setLogging(logging)); } - public SettingsBuilder disableCompletion(boolean disableCompletion) { + public SettingsBuilder disableCompletion(boolean disableCompletion) { return apply(c -> c.settings.setDisableCompletion(disableCompletion)); } - public SettingsBuilder logfile(String logFile) { + public SettingsBuilder logfile(String logFile) { return apply(c -> c.settings.setLogFile(logFile)); } - public SettingsBuilder readInputrc(boolean readInputrc) { + public SettingsBuilder readInputrc(boolean readInputrc) { return apply(c -> c.settings.setReadInputrc(readInputrc)); } - public SettingsBuilder disableHistory(boolean disableHistory) { + public SettingsBuilder disableHistory(boolean disableHistory) { return apply(c -> c.settings.setHistoryDisabled(disableHistory)); } - public SettingsBuilder persistHistory(boolean persistHistory) { + public SettingsBuilder persistHistory(boolean persistHistory) { return apply(c -> c.settings.setHistoryPersistent(persistHistory)); } - public SettingsBuilder aliasFile(File aliasFile) { + public SettingsBuilder aliasFile(File aliasFile) { return apply(c -> c.settings.setAliasFile(aliasFile)); } - public SettingsBuilder enableAlias(boolean enableAlias) { + public SettingsBuilder enableAlias(boolean enableAlias) { return apply(c -> c.settings.setAliasEnabled(enableAlias)); } - public SettingsBuilder persistAlias(boolean persistAlias) { + public SettingsBuilder persistAlias(boolean persistAlias) { return apply(c -> c.settings.setPersistAlias(persistAlias)); } - public SettingsBuilder aliasManager(AliasManager aliasManager) { + public SettingsBuilder aliasManager(AliasManager aliasManager) { return apply(c -> c.settings.setAliasManager(aliasManager)); } - public SettingsBuilder quitHandler(QuitHandler quitHandler) { + public SettingsBuilder quitHandler(QuitHandler quitHandler) { return apply(c -> c.settings.setQuitHandler(quitHandler)); } - public SettingsBuilder parseOperators(boolean parseOperators) { + public SettingsBuilder parseOperators(boolean parseOperators) { return apply(c -> c.settings.enableOperatorParser(parseOperators)); } - public SettingsBuilder enableMan(boolean enableMan) { + public SettingsBuilder enableMan(boolean enableMan) { return apply(c -> c.settings.setManEnabled(enableMan)); } - public SettingsBuilder aeshContext(AeshContext aeshContext) { + public SettingsBuilder aeshContext(AeshContext aeshContext) { return apply(c -> c.settings.setAeshContext(aeshContext)); } - public SettingsBuilder enableExport(boolean enableExport) { + public SettingsBuilder enableExport(boolean enableExport) { return apply(c -> c.settings.setExportEnabled(enableExport)); } - public SettingsBuilder exportFile(File exportFile) { + public SettingsBuilder exportFile(File exportFile) { return apply(c -> c.settings.setExportFile(exportFile)); } - public SettingsBuilder setPersistExport(boolean persistExport) { + public SettingsBuilder setPersistExport(boolean persistExport) { return apply(c -> c.settings.setPersistExport(persistExport)); } - public SettingsBuilder setExportUsesSystemEnvironment(boolean isLoad) { + public SettingsBuilder setExportUsesSystemEnvironment(boolean isLoad) { return apply(c -> c.settings.setExportUsesSystemEnvironment(isLoad)); } - public SettingsBuilder setFileResource(Resource resource) { + public SettingsBuilder setFileResource(Resource resource) { return apply(c -> c.settings.setResource(resource)); } - public SettingsBuilder setExecuteAtStart(String execute) { + public SettingsBuilder setExecuteAtStart(String execute) { return apply(c -> c.settings.setExecuteAtStart(execute)); } - public SettingsBuilder setExecuteFileAtStart(Resource executeFile) { + public SettingsBuilder setExecuteFileAtStart(Resource executeFile) { return apply(c -> c.settings.setExecuteFileAtStart(executeFile)); } - public SettingsBuilder commandActivatorProvider( + public SettingsBuilder commandActivatorProvider( CommandActivatorProvider commandActivatorProvider) { return apply(c -> c.settings.setCommandActivatorProvider(commandActivatorProvider)); } - public SettingsBuilder optionActivatorProvider(OptionActivatorProvider optionActivatorProvider) { + public SettingsBuilder optionActivatorProvider(OptionActivatorProvider optionActivatorProvider) { return apply(c -> c.settings.setOptionActivatorProvider(optionActivatorProvider)); } - public SettingsBuilder commandRegistry(CommandRegistry commandRegistry) { + public SettingsBuilder commandRegistry(CommandRegistry commandRegistry) { return apply(c -> c.settings.setCommandRegistry(commandRegistry)); } - public SettingsBuilder commandInvocationProvider( + public SettingsBuilder commandInvocationProvider( CommandInvocationProvider commandInvocationProvider) { return apply(c -> c.settings.setCommandInvocationProvider(commandInvocationProvider)); } - public SettingsBuilder commandNotFoundHandler(CommandNotFoundHandler commandNotFoundHandler) { + public SettingsBuilder commandNotFoundHandler(CommandNotFoundHandler commandNotFoundHandler) { return apply(c -> c.settings.setCommandNotFoundHandler(commandNotFoundHandler)); } - public SettingsBuilder completerInvocationProvider( + public SettingsBuilder completerInvocationProvider( CompleterInvocationProvider completerInvocationProvider) { return apply(c -> c.settings.setCompleterInvocationProvider(completerInvocationProvider)); } - public SettingsBuilder converterInvocationProvider( + public SettingsBuilder converterInvocationProvider( ConverterInvocationProvider converterInvocationProvider) { return apply(c -> c.settings.setConverterInvocationProvider(converterInvocationProvider)); } - public SettingsBuilder validatorInvocationProvider( + public SettingsBuilder validatorInvocationProvider( ValidatorInvocationProvider validatorInvocationProvider) { return apply(c -> c.settings.setValidatorInvocationProvider(validatorInvocationProvider)); } - public SettingsBuilder manProvider(ManProvider manProvider) { + public SettingsBuilder manProvider(ManProvider manProvider) { return apply(c -> c.settings.setManProvider(manProvider)); } - public SettingsBuilder invocationProviders( - InvocationProviders invocationProviders) { + public SettingsBuilder invocationProviders( + InvocationProviders invocationProviders) { return apply(c -> c.settings.setInvocationProviders(invocationProviders)); } - public SettingsBuilder connection(Connection connection) { + public SettingsBuilder connection(Connection connection) { return apply(c -> c.settings.setConnection(connection)); } - public SettingsBuilder enableOperatorParser(boolean enabled) { + public SettingsBuilder enableOperatorParser(boolean enabled) { return apply(c -> c.settings.enableOperatorParser(enabled)); } - public SettingsBuilder exportListener(ExportChangeListener listener) { + public SettingsBuilder exportListener(ExportChangeListener listener) { return apply(c -> c.settings.setExportListener(listener)); } - public SettingsBuilder echoCtrl(boolean echo) { + public SettingsBuilder echoCtrl(boolean echo) { return apply(c -> c.settings.echoCtrl(echo)); } - public SettingsBuilder redrawPromptOnInterrupt(boolean redraw) { + public SettingsBuilder redrawPromptOnInterrupt(boolean redraw) { return apply(c -> c.settings.redrawPromptOnInterrupt(redraw)); } - public SettingsBuilder setInterruptHandler(Consumer consumer) { + public SettingsBuilder setInterruptHandler(Consumer consumer) { return apply(c -> c.settings.setInterruptHandler(consumer)); } - public SettingsBuilder setConnectionClosedHandler(Consumer consumer) { + public SettingsBuilder setConnectionClosedHandler(Consumer consumer) { return apply(c -> c.settings.setConnectionClosedHandler(consumer)); } - public SettingsBuilder setScanForCommandPackages(String... packages) { + public SettingsBuilder setScanForCommandPackages(String... packages) { return apply(c -> c.settings.setScanForCommandPackages(packages)); } - public SettingsBuilder enableSearchInPaging(boolean enable) { + public SettingsBuilder enableSearchInPaging(boolean enable) { return apply(c -> c.settings.setEnableSearchInPaging(enable)); } - public SettingsBuilder subCommandModeSettings(SubCommandModeSettings subCommandModeSettings) { + public SettingsBuilder subCommandModeSettings(SubCommandModeSettings subCommandModeSettings) { return apply(c -> c.settings.setSubCommandModeSettings(subCommandModeSettings)); } - public Settings build() { + public Settings build() { if (settings.logging()) LoggerUtil.doLog(); if (settings.commandInvocationProvider() == null) settings.setCommandInvocationProvider(commandInvocation -> (CI) commandInvocation); - if (settings.completerInvocationProvider() == null) - settings.setCompleterInvocationProvider(completerInvocation -> (COM) completerInvocation); - - if (settings.converterInvocationProvider() == null) - settings.setConverterInvocationProvider(converterInvocation -> (CO) converterInvocation); - - if (settings.validatorInvocationProvider() == null) - settings.setValidatorInvocationProvider(validatorInvocation -> (VI) validatorInvocation); - - if (settings.optionActivatorProvider() == null) - settings.setOptionActivatorProvider(optionActivator -> (OA) optionActivator); - - if (settings.commandActivatorProvider() == null) - settings.setCommandActivatorProvider(commandActivator -> (CA) commandActivator); - if (settings.invocationProviders() == null) settings.setInvocationProviders(new AeshInvocationProviders(settings.converterInvocationProvider(), settings.completerInvocationProvider(), settings.validatorInvocationProvider(), diff --git a/aesh/src/main/java/org/aesh/command/settings/SettingsImpl.java b/aesh/src/main/java/org/aesh/command/settings/SettingsImpl.java index 2f6e3f17c..7a3ccb825 100644 --- a/aesh/src/main/java/org/aesh/command/settings/SettingsImpl.java +++ b/aesh/src/main/java/org/aesh/command/settings/SettingsImpl.java @@ -27,20 +27,15 @@ import java.util.function.Consumer; import org.aesh.command.CommandNotFoundHandler; -import org.aesh.command.activator.CommandActivator; import org.aesh.command.activator.CommandActivatorProvider; -import org.aesh.command.activator.OptionActivator; import org.aesh.command.activator.OptionActivatorProvider; -import org.aesh.command.completer.CompleterInvocation; import org.aesh.command.completer.CompleterInvocationProvider; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.converter.ConverterInvocationProvider; import org.aesh.command.export.ExportChangeListener; import org.aesh.command.invocation.CommandInvocation; import org.aesh.command.invocation.CommandInvocationProvider; import org.aesh.command.invocation.InvocationProviders; import org.aesh.command.registry.CommandRegistry; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.command.validator.ValidatorInvocationProvider; import org.aesh.console.AeshContext; import org.aesh.console.DefaultAeshContext; @@ -57,7 +52,7 @@ * * @author Aesh team */ -public class SettingsImpl +public class SettingsImpl implements Settings { private EditMode.Mode editMode = EditMode.Mode.EMACS; @@ -89,17 +84,17 @@ public class SettingsImpl commandActivatorProvider; - private OptionActivatorProvider optionActivatorProvider; + private CommandActivatorProvider commandActivatorProvider; + private OptionActivatorProvider optionActivatorProvider; private CommandRegistry commandRegistry; private CommandInvocationProvider commandInvocationProvider; private CommandNotFoundHandler commandNotFoundHandler; - private CompleterInvocationProvider completerInvocationProvider; - private ConverterInvocationProvider converterInvocationProvider; - private ValidatorInvocationProvider validatorInvocationProvider; + private CompleterInvocationProvider completerInvocationProvider; + private ConverterInvocationProvider converterInvocationProvider; + private ValidatorInvocationProvider validatorInvocationProvider; private ManProvider manProvider; private Connection connection; - private InvocationProviders invocationProviders; + private InvocationProviders invocationProviders; private ExportChangeListener exportListener; private boolean redrawPrompt = true; private boolean echoCtrl = true; @@ -113,7 +108,7 @@ public class SettingsImpl baseSettings) { + protected SettingsImpl(Settings baseSettings) { setMode(baseSettings.mode()); setHistoryFile(baseSettings.historyFile()); setHistoryFilePermission(baseSettings.historyFilePermission()); @@ -665,22 +660,22 @@ public CommandNotFoundHandler commandNotFoundHandler() { } @Override - public CompleterInvocationProvider completerInvocationProvider() { + public CompleterInvocationProvider completerInvocationProvider() { return completerInvocationProvider; } @Override - public ConverterInvocationProvider converterInvocationProvider() { + public ConverterInvocationProvider converterInvocationProvider() { return converterInvocationProvider; } @Override - public ValidatorInvocationProvider validatorInvocationProvider() { + public ValidatorInvocationProvider validatorInvocationProvider() { return validatorInvocationProvider; } @Override - public OptionActivatorProvider optionActivatorProvider() { + public OptionActivatorProvider optionActivatorProvider() { return optionActivatorProvider; } @@ -690,7 +685,7 @@ public ManProvider manProvider() { } @Override - public CommandActivatorProvider commandActivatorProvider() { + public CommandActivatorProvider commandActivatorProvider() { return commandActivatorProvider; } @@ -699,11 +694,11 @@ public Connection connection() { return connection; } - public void setCommandActivatorProvider(CommandActivatorProvider commandActivatorProvider) { + public void setCommandActivatorProvider(CommandActivatorProvider commandActivatorProvider) { this.commandActivatorProvider = commandActivatorProvider; } - public void setOptionActivatorProvider(OptionActivatorProvider optionActivatorProvider) { + public void setOptionActivatorProvider(OptionActivatorProvider optionActivatorProvider) { this.optionActivatorProvider = optionActivatorProvider; } @@ -719,15 +714,15 @@ public void setCommandNotFoundHandler(CommandNotFoundHandler commandNotFoundHand this.commandNotFoundHandler = commandNotFoundHandler; } - public void setCompleterInvocationProvider(CompleterInvocationProvider completerInvocationProvider) { + public void setCompleterInvocationProvider(CompleterInvocationProvider completerInvocationProvider) { this.completerInvocationProvider = completerInvocationProvider; } - public void setConverterInvocationProvider(ConverterInvocationProvider converterInvocationProvider) { + public void setConverterInvocationProvider(ConverterInvocationProvider converterInvocationProvider) { this.converterInvocationProvider = converterInvocationProvider; } - public void setValidatorInvocationProvider(ValidatorInvocationProvider validatorInvocationProvider) { + public void setValidatorInvocationProvider(ValidatorInvocationProvider validatorInvocationProvider) { this.validatorInvocationProvider = validatorInvocationProvider; } @@ -744,7 +739,7 @@ public Object clone() { } @Override - public InvocationProviders invocationProviders() { + public InvocationProviders invocationProviders() { return invocationProviders; } @@ -761,7 +756,7 @@ public void setConnection(Connection connection) { this.connection = connection; } - public void setInvocationProviders(InvocationProviders invocationProviders) { + public void setInvocationProviders(InvocationProviders invocationProviders) { this.invocationProviders = invocationProviders; } diff --git a/aesh/src/main/java/org/aesh/command/validator/ValidatorInvocationProvider.java b/aesh/src/main/java/org/aesh/command/validator/ValidatorInvocationProvider.java index d9e3ad454..669ed5f06 100644 --- a/aesh/src/main/java/org/aesh/command/validator/ValidatorInvocationProvider.java +++ b/aesh/src/main/java/org/aesh/command/validator/ValidatorInvocationProvider.java @@ -22,6 +22,9 @@ /** * @author Aesh team */ -public interface ValidatorInvocationProvider { - VI enhanceValidatorInvocation(ValidatorInvocation validatorInvocation); +public interface ValidatorInvocationProvider { + + default ValidatorInvocation enhanceValidatorInvocation(ValidatorInvocation validatorInvocation) { + return validatorInvocation; + } } diff --git a/aesh/src/main/java/org/aesh/console/ReadlineConsole.java b/aesh/src/main/java/org/aesh/console/ReadlineConsole.java index 6f3d82a18..332b3b6ba 100644 --- a/aesh/src/main/java/org/aesh/console/ReadlineConsole.java +++ b/aesh/src/main/java/org/aesh/console/ReadlineConsole.java @@ -36,14 +36,10 @@ import org.aesh.command.CommandNotFoundException; import org.aesh.command.CommandRuntime; import org.aesh.command.Executor; -import org.aesh.command.activator.CommandActivator; -import org.aesh.command.activator.OptionActivator; import org.aesh.command.alias.AeshAliasManager; import org.aesh.command.alias.AliasCommand; import org.aesh.command.alias.UnAliasCommand; -import org.aesh.command.completer.CompleterInvocation; import org.aesh.command.container.CommandContainer; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.export.ExportCommand; import org.aesh.command.export.ExportCompletion; import org.aesh.command.export.ExportManager; @@ -63,7 +59,6 @@ import org.aesh.command.settings.SettingsBuilder; import org.aesh.command.validator.CommandValidatorException; import org.aesh.command.validator.OptionValidatorException; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.complete.AeshCompleteOperation; import org.aesh.io.scanner.AnnotationDetector; import org.aesh.io.scanner.CommandDefinitionReporter; @@ -93,7 +88,7 @@ public class ReadlineConsole implements Console, Consumer { private AliasManager aliasManager; - private Settings settings; + private Settings settings; private Prompt prompt; private List completions; private Connection connection; @@ -117,8 +112,7 @@ public class ReadlineConsole implements Console, Consumer { private final EnumMap readlineFlags = new EnumMap<>(ReadlineFlag.class); - public ReadlineConsole( - Settings givenSettings) { + public ReadlineConsole(Settings givenSettings) { if (givenSettings == null) settings = SettingsBuilder.builder().build(); else diff --git a/aesh/src/main/java/org/aesh/converter/CLConverterManager.java b/aesh/src/main/java/org/aesh/converter/CLConverterManager.java index cac9c4256..7ac1db68b 100644 --- a/aesh/src/main/java/org/aesh/converter/CLConverterManager.java +++ b/aesh/src/main/java/org/aesh/converter/CLConverterManager.java @@ -32,17 +32,9 @@ import java.util.function.Supplier; import org.aesh.command.converter.Converter; -import org.aesh.command.impl.converter.BooleanConverter; -import org.aesh.command.impl.converter.ByteConverter; -import org.aesh.command.impl.converter.CharacterConverter; -import org.aesh.command.impl.converter.DoubleConverter; import org.aesh.command.impl.converter.FileConverter; import org.aesh.command.impl.converter.FileResourceConverter; -import org.aesh.command.impl.converter.FloatConverter; -import org.aesh.command.impl.converter.IntegerConverter; -import org.aesh.command.impl.converter.LongConverter; -import org.aesh.command.impl.converter.ShortConverter; -import org.aesh.command.impl.converter.StringConverter; +import org.aesh.command.impl.converter.FunctionalConverter; import org.aesh.command.impl.converter.URIConverter; import org.aesh.command.impl.converter.URLConverter; import org.aesh.io.Resource; @@ -65,15 +57,17 @@ public static CLConverterManager getInstance() { private CLConverterManager() { factories = new HashMap<>(22); - addFactory(Integer.class, int.class, () -> new IntegerConverter()); - addFactory(Boolean.class, boolean.class, () -> new BooleanConverter()); - addFactory(Character.class, char.class, () -> new CharacterConverter()); - addFactory(Double.class, double.class, () -> new DoubleConverter()); - addFactory(Float.class, float.class, () -> new FloatConverter()); - addFactory(Long.class, long.class, () -> new LongConverter()); - addFactory(Short.class, short.class, () -> new ShortConverter()); - addFactory(Byte.class, byte.class, () -> new ByteConverter()); - factories.put(String.class, () -> new StringConverter()); + addFactory(Integer.class, int.class, () -> new FunctionalConverter<>(input -> Integer.parseInt(input.getInput()))); + addFactory(Boolean.class, boolean.class, + () -> new FunctionalConverter<>(input -> Boolean.parseBoolean(input.getInput()))); + addFactory(Character.class, char.class, () -> new FunctionalConverter<>( + input -> input != null && input.getInput().length() > 0 ? input.getInput().charAt(0) : '\u0000')); + addFactory(Double.class, double.class, () -> new FunctionalConverter<>(input -> Double.parseDouble(input.getInput()))); + addFactory(Float.class, float.class, () -> new FunctionalConverter<>(input -> Float.parseFloat(input.getInput()))); + addFactory(Long.class, long.class, () -> new FunctionalConverter<>(input -> Long.parseLong(input.getInput()))); + addFactory(Short.class, short.class, () -> new FunctionalConverter<>(input -> Short.valueOf(input.getInput()))); + addFactory(Byte.class, byte.class, () -> new FunctionalConverter<>(input -> Byte.valueOf(input.getInput()))); + factories.put(String.class, () -> new FunctionalConverter<>(input -> input.getInput())); factories.put(File.class, () -> new FileConverter()); factories.put(Resource.class, () -> new FileResourceConverter()); factories.put(URL.class, () -> new URLConverter()); diff --git a/aesh/src/main/java/org/aesh/util/GraalReflectionGenerator.java b/aesh/src/main/java/org/aesh/util/GraalReflectionGenerator.java deleted file mode 100644 index 9f039013a..000000000 --- a/aesh/src/main/java/org/aesh/util/GraalReflectionGenerator.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.aesh.util; - -import org.aesh.AeshRuntimeRunner; -import org.aesh.command.registry.CommandRegistryException; -import org.aesh.util.graal.GraalReflectionCommand; - -/** - * @author Aesh team - */ -public class GraalReflectionGenerator { - - public static void main(String[] args) throws CommandRegistryException { - AeshRuntimeRunner.builder().command(GraalReflectionCommand.class).args(args).execute(); - } -} diff --git a/aesh/src/main/java/org/aesh/util/graal/GraalReflectionCommand.java b/aesh/src/main/java/org/aesh/util/graal/GraalReflectionCommand.java deleted file mode 100644 index 868aeed71..000000000 --- a/aesh/src/main/java/org/aesh/util/graal/GraalReflectionCommand.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright 2019 Red Hat, Inc. - * - * Licensed 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.aesh.util.graal; - -import java.io.BufferedWriter; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.nio.file.StandardOpenOption; - -import org.aesh.command.Command; -import org.aesh.command.CommandDefinition; -import org.aesh.command.CommandException; -import org.aesh.command.CommandResult; -import org.aesh.command.container.CommandContainer; -import org.aesh.command.container.CommandContainerBuilder; -import org.aesh.command.impl.container.AeshCommandContainerBuilder; -import org.aesh.command.invocation.CommandInvocation; -import org.aesh.command.option.Argument; -import org.aesh.command.option.Option; -import org.aesh.command.parser.CommandLineParserException; - -/** - * @author Aesh team - */ -@CommandDefinition(name = "graalreflection", description = "Generates a json file to help graal generate a native image") -public class GraalReflectionCommand implements Command { - - @Option(hasValue = false) - private boolean help; - - @Argument(required = true, description = "Command class name") - private String command; - - @Override - public CommandResult execute(CommandInvocation commandInvocation) throws CommandException, InterruptedException { - if (help) { - commandInvocation.getHelpInfo("graalreflection"); - } else { - Class> clazz = loadCommand(command); - if (clazz != null) { - CommandContainerBuilder builder = new AeshCommandContainerBuilder<>(); - try { - CommandContainer container = builder.create(clazz); - GraalReflectionFileGenerator graalFileGenerator = new GraalReflectionFileGenerator(); - try (BufferedWriter w = Files.newBufferedWriter( - Paths.get(container.getParser().getProcessedCommand().name().toLowerCase() + "_reflection.json"), - StandardOpenOption.CREATE)) { - graalFileGenerator.generateReflection(container.getParser(), w); - } - - } catch (CommandLineParserException | IOException e) { - throw new CommandException("Failed to generate reflection file: " + e.getMessage(), e); - } - } else - commandInvocation.println("Could not load command: " + command); - } - return CommandResult.SUCCESS; - } - - @SuppressWarnings("unchecked") - private Class> loadCommand(String commandName) { - try { - return (Class>) Class.forName(commandName); - } catch (ClassNotFoundException | ClassCastException e) { - // Class not found or wrong type, return null to let caller handle it - } - - return null; - } -} diff --git a/aesh/src/main/java/org/aesh/util/graal/GraalReflectionFileGenerator.java b/aesh/src/main/java/org/aesh/util/graal/GraalReflectionFileGenerator.java deleted file mode 100644 index 6a2e1ff21..000000000 --- a/aesh/src/main/java/org/aesh/util/graal/GraalReflectionFileGenerator.java +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Copyright 2019 Red Hat, Inc. - * - * Licensed 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.aesh.util.graal; - -import static org.aesh.terminal.utils.Config.getLineSeparator; - -import java.io.IOException; -import java.io.Writer; -import java.util.HashSet; -import java.util.Set; - -import org.aesh.command.Command; -import org.aesh.command.impl.internal.ProcessedCommand; -import org.aesh.command.impl.internal.ProcessedOption; -import org.aesh.command.impl.parser.AeshOptionParser; -import org.aesh.command.impl.parser.CommandLineParser; -import org.aesh.command.invocation.CommandInvocation; - -/** - * @author Aesh team - */ -public class GraalReflectionFileGenerator { - - Set klasses = new HashSet<>(); - - public GraalReflectionFileGenerator() { - klasses.add(AeshOptionParser.class.getName()); - } - - public void generateReflection(CommandLineParser parser, Writer w) throws IOException { - w.append('[').append(getLineSeparator()); - processCommand(parser, w); - appendOptions(w); - w.append(getLineSeparator()).append("]"); - } - - private void processCommand(CommandLineParser parser, Writer w) throws IOException { - parseCommand(parser.getProcessedCommand(), w); - if (parser.isGroupCommand()) { - for (CommandLineParser child : parser.getAllChildParsers()) { - w.append(" },").append(getLineSeparator()); - processCommand(child, w); - } - } - } - - private void parseCommand(ProcessedCommand, CommandInvocation> command, Writer w) - throws IOException { - w.append(" {").append(getLineSeparator()); - appendCommand(command, w); - } - - private void appendOptions(Writer w) throws IOException { - for (String klass : klasses) { - w.append(" },") - .append(getLineSeparator()) - .append(" {") - .append(getLineSeparator()) - .append(" \"name\" : \"") - .append(klass).append("\", ") - .append(getLineSeparator()); - appendDefaults(w); - } - w.append(getLineSeparator()).append(" }"); - } - - private void appendDefaults(Writer w) throws IOException { - w.append(" \"allDeclaredConstructors\" : true,").append(getLineSeparator()) - .append(" \"allPublicConstructors\" : true,").append(getLineSeparator()) - .append(" \"allDeclaredMethods\" : true,").append(getLineSeparator()) - .append(" \"allPublicMethods\" : true"); - } - - private void appendCommand(ProcessedCommand, CommandInvocation> command, Writer w) - throws IOException { - w.append(" \"name\" : \"").append(command.getCommand().getClass().getName()).append("\",") - .append(getLineSeparator()); - appendDefaults(w); - if (command.getActivator() != null) { - klasses.add(command.getActivator().getClass().getName()); - } - if (command.getOptions().size() > 0) { - w.append(",").append(getLineSeparator()) - .append(" \"fields\" : [").append(getLineSeparator()); - boolean comma = false; - for (ProcessedOption option : command.getOptions()) { - if (comma) - w.append(",").append(getLineSeparator()); - else - comma = true; - w.append(" { \"name\" : \"").append(option.getFieldName()).append("\" }"); - //w.append(getLineSeparator()); - if (option.completer() != null) { - klasses.add(option.completer().getClass().getName()); - } - if (option.activator() != null) { - klasses.add(option.activator().getClass().getName()); - } - if (option.converter() != null) { - klasses.add(option.converter().getClass().getName()); - } - } - w.append(getLineSeparator()).append(" ]").append(getLineSeparator()); - } - } -} diff --git a/aesh/src/test/java/org/aesh/AeshConsoleRunnerTest.java b/aesh/src/test/java/org/aesh/AeshConsoleRunnerTest.java index 2379ccefc..b0b77d698 100644 --- a/aesh/src/test/java/org/aesh/AeshConsoleRunnerTest.java +++ b/aesh/src/test/java/org/aesh/AeshConsoleRunnerTest.java @@ -25,16 +25,11 @@ import org.aesh.command.Command; import org.aesh.command.CommandDefinition; import org.aesh.command.CommandResult; -import org.aesh.command.activator.CommandActivator; -import org.aesh.command.activator.OptionActivator; -import org.aesh.command.completer.CompleterInvocation; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.impl.registry.AeshCommandRegistryBuilder; import org.aesh.command.invocation.CommandInvocation; import org.aesh.command.registry.CommandRegistry; import org.aesh.command.settings.Settings; import org.aesh.command.settings.SettingsBuilder; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.tty.TestConnection; import org.junit.Test; @@ -72,7 +67,7 @@ public void testNoCommandInSettings() { CommandRegistry registry = AeshCommandRegistryBuilder.builder().create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .connection(connection) @@ -133,7 +128,7 @@ public void testDuplicateCommandRegistry() throws Exception { .command(HelloCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .connection(connection) diff --git a/aesh/src/test/java/org/aesh/command/AeshCommandInputTest.java b/aesh/src/test/java/org/aesh/command/AeshCommandInputTest.java index 661aeaf86..a21411e07 100644 --- a/aesh/src/test/java/org/aesh/command/AeshCommandInputTest.java +++ b/aesh/src/test/java/org/aesh/command/AeshCommandInputTest.java @@ -5,10 +5,6 @@ import java.io.IOException; import java.util.concurrent.TimeUnit; -import org.aesh.command.activator.CommandActivator; -import org.aesh.command.activator.OptionActivator; -import org.aesh.command.completer.CompleterInvocation; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.impl.registry.AeshCommandRegistryBuilder; import org.aesh.command.invocation.CommandInvocation; import org.aesh.command.option.Option; @@ -16,7 +12,6 @@ import org.aesh.command.registry.CommandRegistryException; import org.aesh.command.settings.Settings; import org.aesh.command.settings.SettingsBuilder; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.console.ReadlineConsole; import org.aesh.terminal.Key; import org.aesh.terminal.KeyAction; @@ -34,7 +29,7 @@ public void testCommandInvocationTest() throws IOException, InterruptedException .command(FooCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .commandRegistry(registry) .enableOperatorParser(true) diff --git a/aesh/src/test/java/org/aesh/command/AeshCommandMultipleInvocations.java b/aesh/src/test/java/org/aesh/command/AeshCommandMultipleInvocations.java index b3f681a9a..822ed07fc 100644 --- a/aesh/src/test/java/org/aesh/command/AeshCommandMultipleInvocations.java +++ b/aesh/src/test/java/org/aesh/command/AeshCommandMultipleInvocations.java @@ -24,10 +24,6 @@ import java.io.IOException; -import org.aesh.command.activator.CommandActivator; -import org.aesh.command.activator.OptionActivator; -import org.aesh.command.completer.CompleterInvocation; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.impl.registry.AeshCommandRegistryBuilder; import org.aesh.command.invocation.CommandInvocation; import org.aesh.command.option.Option; @@ -35,7 +31,6 @@ import org.aesh.command.registry.CommandRegistryException; import org.aesh.command.settings.Settings; import org.aesh.command.settings.SettingsBuilder; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.console.ReadlineConsole; import org.aesh.terminal.utils.Config; import org.aesh.tty.TestConnection; @@ -57,7 +52,7 @@ public void testMultipleInvocations() throws CommandRegistryException, IOExcepti .command(BarCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .commandRegistry(registry) .enableOperatorParser(true) @@ -86,7 +81,7 @@ public void testMultipleInvocationsClearLine() throws CommandRegistryException, .command(BarBarCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .commandRegistry(registry) .enableOperatorParser(true) @@ -119,7 +114,7 @@ public void testMultipleInvocationsRequiredOption() throws CommandRegistryExcept .command(RequiredBarCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .commandRegistry(registry) .enableOperatorParser(true) diff --git a/aesh/src/test/java/org/aesh/command/AeshCommandNotFoundHandlerTest.java b/aesh/src/test/java/org/aesh/command/AeshCommandNotFoundHandlerTest.java index 68fe714e4..f3c161089 100644 --- a/aesh/src/test/java/org/aesh/command/AeshCommandNotFoundHandlerTest.java +++ b/aesh/src/test/java/org/aesh/command/AeshCommandNotFoundHandlerTest.java @@ -23,17 +23,12 @@ import java.io.IOException; -import org.aesh.command.activator.CommandActivator; -import org.aesh.command.activator.OptionActivator; -import org.aesh.command.completer.CompleterInvocation; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.impl.registry.AeshCommandRegistryBuilder; import org.aesh.command.invocation.CommandInvocation; import org.aesh.command.registry.CommandRegistry; import org.aesh.command.settings.Settings; import org.aesh.command.settings.SettingsBuilder; import org.aesh.command.shell.Shell; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.console.ReadlineConsole; import org.aesh.terminal.utils.Config; import org.aesh.tty.TestConnection; @@ -51,7 +46,7 @@ public void testCommandNotFoundHandler() throws InterruptedException, IOExceptio CommandRegistry registry = AeshCommandRegistryBuilder.builder() .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .commandRegistry(registry) .connection(connection) diff --git a/aesh/src/test/java/org/aesh/command/AeshCommandOverrideRequiredTest.java b/aesh/src/test/java/org/aesh/command/AeshCommandOverrideRequiredTest.java index fe12568cc..c43902257 100644 --- a/aesh/src/test/java/org/aesh/command/AeshCommandOverrideRequiredTest.java +++ b/aesh/src/test/java/org/aesh/command/AeshCommandOverrideRequiredTest.java @@ -23,10 +23,6 @@ import java.io.IOException; -import org.aesh.command.activator.CommandActivator; -import org.aesh.command.activator.OptionActivator; -import org.aesh.command.completer.CompleterInvocation; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.impl.registry.AeshCommandRegistryBuilder; import org.aesh.command.invocation.CommandInvocation; import org.aesh.command.option.Option; @@ -35,7 +31,6 @@ import org.aesh.command.settings.Settings; import org.aesh.command.settings.SettingsBuilder; import org.aesh.command.validator.CommandValidator; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.console.ReadlineConsole; import org.aesh.terminal.utils.Config; import org.aesh.tty.TestConnection; @@ -54,7 +49,7 @@ public void testOverrideRequired() throws IOException, InterruptedException, Com .command(FooCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .commandRegistry(registry) .connection(connection) diff --git a/aesh/src/test/java/org/aesh/command/AeshCommandPasteTest.java b/aesh/src/test/java/org/aesh/command/AeshCommandPasteTest.java index 49f1d525b..70bbb36e5 100644 --- a/aesh/src/test/java/org/aesh/command/AeshCommandPasteTest.java +++ b/aesh/src/test/java/org/aesh/command/AeshCommandPasteTest.java @@ -21,17 +21,12 @@ import java.io.IOException; -import org.aesh.command.activator.CommandActivator; -import org.aesh.command.activator.OptionActivator; -import org.aesh.command.completer.CompleterInvocation; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.impl.registry.AeshCommandRegistryBuilder; import org.aesh.command.invocation.CommandInvocation; import org.aesh.command.registry.CommandRegistry; import org.aesh.command.registry.CommandRegistryException; import org.aesh.command.settings.Settings; import org.aesh.command.settings.SettingsBuilder; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.console.ReadlineConsole; import org.aesh.terminal.utils.Config; import org.aesh.tty.TestConnection; @@ -50,7 +45,7 @@ public void testPaste() throws IOException, InterruptedException { CommandRegistry registry = AeshCommandRegistryBuilder.builder().create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .connection(connection) .commandRegistry(registry) @@ -77,7 +72,7 @@ public void testPasteWhileACommandIsRunning() throws IOException, InterruptedExc .command(FooCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .connection(connection) .commandRegistry(registry) diff --git a/aesh/src/test/java/org/aesh/command/AeshCommandRequiredTest.java b/aesh/src/test/java/org/aesh/command/AeshCommandRequiredTest.java index 1e2701171..cd7c1d8ee 100644 --- a/aesh/src/test/java/org/aesh/command/AeshCommandRequiredTest.java +++ b/aesh/src/test/java/org/aesh/command/AeshCommandRequiredTest.java @@ -19,10 +19,6 @@ */ package org.aesh.command; -import org.aesh.command.activator.CommandActivator; -import org.aesh.command.activator.OptionActivator; -import org.aesh.command.completer.CompleterInvocation; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.impl.registry.AeshCommandRegistryBuilder; import org.aesh.command.invocation.CommandInvocation; import org.aesh.command.option.Argument; @@ -30,7 +26,6 @@ import org.aesh.command.registry.CommandRegistry; import org.aesh.command.settings.Settings; import org.aesh.command.settings.SettingsBuilder; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.console.ReadlineConsole; import org.aesh.readline.Prompt; import org.aesh.terminal.utils.Config; @@ -50,7 +45,7 @@ public void testOptionRequired() throws Exception { .command(ReqCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .connection(connection) @@ -77,7 +72,7 @@ public void testArgumentAndOptionRequired() throws Exception { .command(ReqCommand2.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .connection(connection) @@ -104,7 +99,7 @@ public void testArgumentAndOptionRequiredGroupCommand() throws Exception { .command(GroupReqCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .connection(connection) diff --git a/aesh/src/test/java/org/aesh/command/AeshCommandResultHandlerTest.java b/aesh/src/test/java/org/aesh/command/AeshCommandResultHandlerTest.java index c2604d652..4751e9283 100644 --- a/aesh/src/test/java/org/aesh/command/AeshCommandResultHandlerTest.java +++ b/aesh/src/test/java/org/aesh/command/AeshCommandResultHandlerTest.java @@ -24,10 +24,6 @@ import java.io.IOException; import java.util.List; -import org.aesh.command.activator.CommandActivator; -import org.aesh.command.activator.OptionActivator; -import org.aesh.command.completer.CompleterInvocation; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.impl.registry.AeshCommandRegistryBuilder; import org.aesh.command.invocation.CommandInvocation; import org.aesh.command.option.Arguments; @@ -37,7 +33,6 @@ import org.aesh.command.result.ResultHandler; import org.aesh.command.settings.Settings; import org.aesh.command.settings.SettingsBuilder; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.console.ReadlineConsole; import org.aesh.terminal.utils.Config; import org.aesh.tty.TestConnection; @@ -56,7 +51,7 @@ public void testResultHandler() throws IOException, InterruptedException, Comman .command(FooCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .commandRegistry(registry) .connection(connection) diff --git a/aesh/src/test/java/org/aesh/command/AeshConsoleTest.java b/aesh/src/test/java/org/aesh/command/AeshConsoleTest.java index 91731733c..fc8d5a266 100644 --- a/aesh/src/test/java/org/aesh/command/AeshConsoleTest.java +++ b/aesh/src/test/java/org/aesh/command/AeshConsoleTest.java @@ -25,10 +25,6 @@ import java.io.IOException; import java.util.List; -import org.aesh.command.activator.CommandActivator; -import org.aesh.command.activator.OptionActivator; -import org.aesh.command.completer.CompleterInvocation; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.impl.internal.ProcessedCommand; import org.aesh.command.impl.internal.ProcessedCommandBuilder; import org.aesh.command.impl.internal.ProcessedOptionBuilder; @@ -84,7 +80,7 @@ public void testAeshConsole() .command(LsCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .commandRegistry(registry) @@ -180,10 +176,10 @@ public AeshContext getAeshContext() { } public static class DirectoryValidatorInvocationProvider - implements ValidatorInvocationProvider> { + implements ValidatorInvocationProvider { @Override - public ValidatorInvocation enhanceValidatorInvocation(ValidatorInvocation validatorInvocation) { + public ValidatorInvocation enhanceValidatorInvocation(ValidatorInvocation validatorInvocation) { if (validatorInvocation.getValue() instanceof File) return new DirectoryValidatorInvocation((File) validatorInvocation.getValue(), (Command) validatorInvocation.getCommand(), validatorInvocation.getAeshContext()); diff --git a/aesh/src/test/java/org/aesh/command/AeshScriptTest.java b/aesh/src/test/java/org/aesh/command/AeshScriptTest.java index c51ac5f98..fac28974d 100644 --- a/aesh/src/test/java/org/aesh/command/AeshScriptTest.java +++ b/aesh/src/test/java/org/aesh/command/AeshScriptTest.java @@ -30,10 +30,6 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; -import org.aesh.command.activator.CommandActivator; -import org.aesh.command.activator.OptionActivator; -import org.aesh.command.completer.CompleterInvocation; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.impl.internal.ProcessedCommand; import org.aesh.command.impl.internal.ProcessedCommandBuilder; import org.aesh.command.impl.registry.AeshCommandRegistryBuilder; @@ -45,7 +41,6 @@ import org.aesh.command.settings.Settings; import org.aesh.command.settings.SettingsBuilder; import org.aesh.command.shell.Shell; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.console.ReadlineConsole; import org.aesh.terminal.utils.Config; import org.aesh.tty.TestConnection; @@ -88,7 +83,7 @@ public void scriptPoc() throws IOException, CommandLineParserException, Interrup .command(ExitCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .commandRegistry(registry) diff --git a/aesh/src/test/java/org/aesh/command/ConfigTest.java b/aesh/src/test/java/org/aesh/command/ConfigTest.java index 5e0df6ea6..860022291 100644 --- a/aesh/src/test/java/org/aesh/command/ConfigTest.java +++ b/aesh/src/test/java/org/aesh/command/ConfigTest.java @@ -24,15 +24,10 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; -import org.aesh.command.activator.CommandActivator; -import org.aesh.command.activator.OptionActivator; -import org.aesh.command.completer.CompleterInvocation; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.invocation.CommandInvocation; import org.aesh.command.settings.RuntimeSettings; import org.aesh.command.settings.Settings; import org.aesh.command.settings.SettingsBuilder; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.readline.editing.EditMode; import org.aesh.terminal.utils.Config; import org.junit.Test; @@ -53,7 +48,7 @@ public void testParseProperties() { System.setProperty("aesh.disablecompletion", "true"); System.setProperty("aesh.execute", "foo -f --bar"); - SettingsBuilder builder = SettingsBuilder + SettingsBuilder builder = SettingsBuilder .builder(); Settings settings = RuntimeSettings.readRuntimeProperties(builder.build()); diff --git a/aesh/src/test/java/org/aesh/command/HyperlinkTest.java b/aesh/src/test/java/org/aesh/command/HyperlinkTest.java index a7728b86d..695e09a00 100644 --- a/aesh/src/test/java/org/aesh/command/HyperlinkTest.java +++ b/aesh/src/test/java/org/aesh/command/HyperlinkTest.java @@ -9,10 +9,6 @@ import java.net.URI; import java.net.URL; -import org.aesh.command.activator.CommandActivator; -import org.aesh.command.activator.OptionActivator; -import org.aesh.command.completer.CompleterInvocation; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.impl.internal.ProcessedCommand; import org.aesh.command.impl.internal.ProcessedCommandBuilder; import org.aesh.command.impl.internal.ProcessedOption; @@ -24,7 +20,6 @@ import org.aesh.command.registry.CommandRegistryException; import org.aesh.command.settings.Settings; import org.aesh.command.settings.SettingsBuilder; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.console.ReadlineConsole; import org.aesh.converter.CLConverterManager; import org.aesh.terminal.utils.ANSI; @@ -178,7 +173,7 @@ public void testCommandDefinitionHelpUrl() throws IOException, InterruptedExcept .command(HelpUrlCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .commandRegistry(registry) .enableOperatorParser(true) @@ -219,7 +214,7 @@ public void testCommandWithDescriptionUrl() throws IOException, InterruptedExcep .command(DescUrlCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .commandRegistry(registry) .enableOperatorParser(true) @@ -249,7 +244,7 @@ public void testPrintHyperlinkFromCommand() throws Exception { .command(HyperlinkOutputCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .commandRegistry(registry) .enableOperatorParser(true) diff --git a/aesh/src/test/java/org/aesh/command/activator/AeshCommandActivatorTest.java b/aesh/src/test/java/org/aesh/command/activator/AeshCommandActivatorTest.java index 1be17adf3..1ba2b853a 100644 --- a/aesh/src/test/java/org/aesh/command/activator/AeshCommandActivatorTest.java +++ b/aesh/src/test/java/org/aesh/command/activator/AeshCommandActivatorTest.java @@ -23,15 +23,12 @@ import org.aesh.command.CommandDefinition; import org.aesh.command.CommandException; import org.aesh.command.CommandResult; -import org.aesh.command.completer.CompleterInvocation; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.impl.internal.ParsedCommand; import org.aesh.command.impl.registry.AeshCommandRegistryBuilder; import org.aesh.command.invocation.CommandInvocation; import org.aesh.command.registry.CommandRegistry; import org.aesh.command.settings.Settings; import org.aesh.command.settings.SettingsBuilder; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.console.ReadlineConsole; import org.aesh.readline.Prompt; import org.aesh.terminal.utils.Config; @@ -53,7 +50,7 @@ public void testActivatorFail() throws Exception { .command(FooCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .connection(connection) diff --git a/aesh/src/test/java/org/aesh/command/activator/AeshCommandOptionActivatorTest.java b/aesh/src/test/java/org/aesh/command/activator/AeshCommandOptionActivatorTest.java index b2774da66..663e284b8 100644 --- a/aesh/src/test/java/org/aesh/command/activator/AeshCommandOptionActivatorTest.java +++ b/aesh/src/test/java/org/aesh/command/activator/AeshCommandOptionActivatorTest.java @@ -25,8 +25,6 @@ import org.aesh.command.CommandDefinition; import org.aesh.command.CommandException; import org.aesh.command.CommandResult; -import org.aesh.command.completer.CompleterInvocation; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.impl.internal.ParsedCommand; import org.aesh.command.impl.registry.AeshCommandRegistryBuilder; import org.aesh.command.invocation.CommandInvocation; @@ -35,7 +33,6 @@ import org.aesh.command.registry.CommandRegistryException; import org.aesh.command.settings.Settings; import org.aesh.command.settings.SettingsBuilder; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.console.ReadlineConsole; import org.aesh.terminal.Key; import org.aesh.tty.TestConnection; @@ -56,7 +53,7 @@ public void testOptionActivator() throws IOException, InterruptedException, Comm .command(ValCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .connection(connection) .commandRegistry(registry) diff --git a/aesh/src/test/java/org/aesh/command/builder/AeshCommandCustomCommand.java b/aesh/src/test/java/org/aesh/command/builder/AeshCommandCustomCommand.java index 9eb4a8c2a..9a9731bc3 100644 --- a/aesh/src/test/java/org/aesh/command/builder/AeshCommandCustomCommand.java +++ b/aesh/src/test/java/org/aesh/command/builder/AeshCommandCustomCommand.java @@ -29,11 +29,7 @@ import org.aesh.command.Command; import org.aesh.command.CommandException; import org.aesh.command.CommandResult; -import org.aesh.command.activator.CommandActivator; -import org.aesh.command.activator.OptionActivator; -import org.aesh.command.completer.CompleterInvocation; import org.aesh.command.container.CommandContainer; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.impl.container.AeshCommandContainer; import org.aesh.command.impl.internal.ProcessedCommand; import org.aesh.command.impl.internal.ProcessedCommandBuilder; @@ -49,7 +45,6 @@ import org.aesh.command.registry.CommandRegistry; import org.aesh.command.settings.Settings; import org.aesh.command.settings.SettingsBuilder; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.console.AeshContext; import org.aesh.console.ReadlineConsole; import org.aesh.terminal.utils.Config; @@ -72,7 +67,7 @@ public void testCustom() throws Exception { .command(createBuilder()) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .commandRegistry(registry) .connection(connection) diff --git a/aesh/src/test/java/org/aesh/command/builder/AeshCommandDynamicTest.java b/aesh/src/test/java/org/aesh/command/builder/AeshCommandDynamicTest.java index 9da94cfea..e6152459d 100644 --- a/aesh/src/test/java/org/aesh/command/builder/AeshCommandDynamicTest.java +++ b/aesh/src/test/java/org/aesh/command/builder/AeshCommandDynamicTest.java @@ -24,10 +24,6 @@ import org.aesh.command.Command; import org.aesh.command.CommandException; import org.aesh.command.CommandResult; -import org.aesh.command.activator.CommandActivator; -import org.aesh.command.activator.OptionActivator; -import org.aesh.command.completer.CompleterInvocation; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.impl.internal.OptionType; import org.aesh.command.impl.internal.ProcessedOptionBuilder; import org.aesh.command.impl.registry.AeshCommandRegistryBuilder; @@ -36,7 +32,6 @@ import org.aesh.command.registry.CommandRegistry; import org.aesh.command.settings.Settings; import org.aesh.command.settings.SettingsBuilder; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.complete.AeshCompleteOperation; import org.aesh.console.DefaultAeshContext; import org.aesh.console.ReadlineConsole; @@ -59,7 +54,7 @@ public void testDynamic() throws Exception { .command(createGroupCommand().create()) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .connection(connection) .commandRegistry(registry) diff --git a/aesh/src/test/java/org/aesh/command/completer/AeshCommandCompletionTest.java b/aesh/src/test/java/org/aesh/command/completer/AeshCommandCompletionTest.java index 460934b4b..f60ab00c7 100644 --- a/aesh/src/test/java/org/aesh/command/completer/AeshCommandCompletionTest.java +++ b/aesh/src/test/java/org/aesh/command/completer/AeshCommandCompletionTest.java @@ -32,7 +32,6 @@ import org.aesh.command.GroupCommandDefinition; import org.aesh.command.activator.CommandActivator; import org.aesh.command.activator.OptionActivator; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.impl.internal.ParsedCommand; import org.aesh.command.impl.internal.ParsedOption; import org.aesh.command.impl.registry.AeshCommandRegistryBuilder; @@ -45,7 +44,6 @@ import org.aesh.command.renderer.OptionRenderer; import org.aesh.command.settings.Settings; import org.aesh.command.settings.SettingsBuilder; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.console.ReadlineConsole; import org.aesh.readline.Prompt; import org.aesh.terminal.Key; @@ -75,7 +73,7 @@ public void testCompletion() throws Exception { .command(FooCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .enableAlias(false) @@ -179,7 +177,7 @@ public void testCompletionWithFormatting() throws IOException, CommandRegistryEx .command(FooFormattedCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .connection(connection) @@ -206,7 +204,7 @@ public void testCommandActivator() throws Exception { .command(TotoCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .connection(connection) //.inputStream(pipedInputStream) @@ -249,7 +247,7 @@ public void testCompletionArgument() throws IOException, CommandRegistryExceptio .command(GroupArgCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .connection(connection) @@ -329,7 +327,7 @@ public void testRequiredAndActivatorOption() throws IOException, InterruptedExce .command(ArqCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .connection(connection) @@ -357,7 +355,7 @@ public void testGroupCommand() throws IOException, InterruptedException, Command .command(GitCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .connection(connection) @@ -438,7 +436,7 @@ public void testSuperGroupCommand() throws IOException, CommandRegistryException .command(SuperGitCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .connection(connection) @@ -476,7 +474,7 @@ public void testCommandTest4() throws IOException, CommandRegistryException, Int .command(CommandTest4.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .connection(connection) @@ -522,7 +520,7 @@ public void testCommandTest4B() throws IOException, CommandRegistryException, In .command(CommandTest4B.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .connection(connection) @@ -565,7 +563,7 @@ public void testCommandTest4C() throws IOException, CommandRegistryException, In .command(CommandTest4C.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .connection(connection) @@ -602,7 +600,7 @@ public void testCommandTest5() throws IOException, CommandRegistryException, Int .command(CommandTest5.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .connection(connection) @@ -631,7 +629,7 @@ public void testCommandTest6() throws IOException, CommandRegistryException, Int .command(CommandTest6.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .connection(connection) @@ -669,7 +667,7 @@ public void testCommandTest7() throws IOException, CommandRegistryException, Int .command(CommandTest7a.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .connection(connection) @@ -713,7 +711,7 @@ public void testCommandTest8() throws IOException, CommandRegistryException, Int .command(CommandTest8.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .connection(connection) @@ -747,7 +745,7 @@ public void testCommandTest9() throws IOException, CommandRegistryException, Int .command(CommandTest9.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .connection(connection) @@ -780,7 +778,7 @@ public void testCommandTest10() throws IOException, CommandRegistryException, In .command(CommandTest10.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .connection(connection) @@ -806,7 +804,7 @@ public void testCompletionInsideBuffer() throws IOException, CommandRegistryExce .command(GitCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .connection(connection) @@ -846,7 +844,7 @@ public void testWithEndOperator() throws IOException, CommandRegistryException, .command(GitCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .enableAlias(false) diff --git a/aesh/src/test/java/org/aesh/command/completer/AeshCommandOperatorCompletionTest.java b/aesh/src/test/java/org/aesh/command/completer/AeshCommandOperatorCompletionTest.java index 71c81e0a6..abdb46c63 100644 --- a/aesh/src/test/java/org/aesh/command/completer/AeshCommandOperatorCompletionTest.java +++ b/aesh/src/test/java/org/aesh/command/completer/AeshCommandOperatorCompletionTest.java @@ -9,9 +9,6 @@ import org.aesh.command.CommandDefinition; import org.aesh.command.CommandException; import org.aesh.command.CommandResult; -import org.aesh.command.activator.CommandActivator; -import org.aesh.command.activator.OptionActivator; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.impl.registry.AeshCommandRegistryBuilder; import org.aesh.command.invocation.CommandInvocation; import org.aesh.command.option.Argument; @@ -20,7 +17,6 @@ import org.aesh.command.registry.CommandRegistryException; import org.aesh.command.settings.Settings; import org.aesh.command.settings.SettingsBuilder; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.console.ReadlineConsole; import org.aesh.io.FileResource; import org.aesh.terminal.Key; @@ -47,7 +43,7 @@ public void testCompletionWithEndOperator() throws IOException, CommandRegistryE .command(FooCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .connection(connection) @@ -76,7 +72,7 @@ public void testCompletionWithRedirectOutOperator() throws IOException, CommandR .command(FooCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .connection(connection) @@ -122,7 +118,7 @@ public void testCompletionWithPipeOperator() throws IOException, CommandRegistry .command(FooCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .connection(connection) diff --git a/aesh/src/test/java/org/aesh/command/completer/CommandSuggestionProviderTest.java b/aesh/src/test/java/org/aesh/command/completer/CommandSuggestionProviderTest.java index ee9f2c765..87bc80994 100644 --- a/aesh/src/test/java/org/aesh/command/completer/CommandSuggestionProviderTest.java +++ b/aesh/src/test/java/org/aesh/command/completer/CommandSuggestionProviderTest.java @@ -8,9 +8,6 @@ import org.aesh.command.CommandException; import org.aesh.command.CommandResult; import org.aesh.command.GroupCommandDefinition; -import org.aesh.command.activator.CommandActivator; -import org.aesh.command.activator.OptionActivator; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.impl.completer.CommandSuggestionProvider; import org.aesh.command.impl.registry.AeshCommandRegistryBuilder; import org.aesh.command.invocation.CommandInvocation; @@ -19,7 +16,6 @@ import org.aesh.command.registry.CommandRegistryException; import org.aesh.command.settings.Settings; import org.aesh.command.settings.SettingsBuilder; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.console.ReadlineConsole; import org.aesh.readline.CompositeSuggestionProvider; import org.aesh.readline.Prompt; @@ -134,7 +130,7 @@ public void testIntegrationWithConsole() throws Exception { .command(ConnectCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .enableAlias(false) diff --git a/aesh/src/test/java/org/aesh/command/completer/CompletionConsoleTest.java b/aesh/src/test/java/org/aesh/command/completer/CompletionConsoleTest.java index 79bf32c1f..fa3e726fc 100644 --- a/aesh/src/test/java/org/aesh/command/completer/CompletionConsoleTest.java +++ b/aesh/src/test/java/org/aesh/command/completer/CompletionConsoleTest.java @@ -25,9 +25,6 @@ import java.io.IOException; import org.aesh.command.Command; -import org.aesh.command.activator.CommandActivator; -import org.aesh.command.activator.OptionActivator; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.impl.internal.ProcessedCommand; import org.aesh.command.impl.internal.ProcessedCommandBuilder; import org.aesh.command.impl.internal.ProcessedOption; @@ -38,7 +35,6 @@ import org.aesh.command.parser.CommandLineParserException; import org.aesh.command.settings.Settings; import org.aesh.command.settings.SettingsBuilder; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.console.ReadlineConsole; import org.aesh.readline.Prompt; import org.aesh.readline.completion.Completion; @@ -89,7 +85,7 @@ else if (co.getBuffer().startsWith(parser.getProcessedCommand().name())) { }; TestConnection con = new TestConnection(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .connection(con) .logging(true) @@ -122,7 +118,7 @@ public void askDisplayCompletion() throws Exception { }; TestConnection con = new TestConnection(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .connection(con) .logging(true) diff --git a/aesh/src/test/java/org/aesh/command/converter/AeshConverterInvocationProviderTest.java b/aesh/src/test/java/org/aesh/command/converter/AeshConverterInvocationProviderTest.java index 4fbc2d894..835d007f4 100644 --- a/aesh/src/test/java/org/aesh/command/converter/AeshConverterInvocationProviderTest.java +++ b/aesh/src/test/java/org/aesh/command/converter/AeshConverterInvocationProviderTest.java @@ -27,9 +27,6 @@ import org.aesh.command.CommandDefinition; import org.aesh.command.CommandException; import org.aesh.command.CommandResult; -import org.aesh.command.activator.CommandActivator; -import org.aesh.command.activator.OptionActivator; -import org.aesh.command.completer.CompleterInvocation; import org.aesh.command.impl.registry.AeshCommandRegistryBuilder; import org.aesh.command.invocation.CommandInvocation; import org.aesh.command.option.Option; @@ -37,7 +34,6 @@ import org.aesh.command.registry.CommandRegistryException; import org.aesh.command.settings.Settings; import org.aesh.command.settings.SettingsBuilder; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.console.AeshContext; import org.aesh.console.ReadlineConsole; import org.aesh.terminal.utils.Config; @@ -58,8 +54,8 @@ public void testConverterInvocationProvider() throws IOException, InterruptedExc .command(new ConCommand()) .create(); - Settings settings = SettingsBuilder - .builder() + Settings settings = SettingsBuilder + . builder() .commandRegistry(registry) .converterInvocationProvider(new FooConverterProvider()) .connection(connection) @@ -129,7 +125,7 @@ public String convert(FooConverterInvocation converterInvocation) { } } - public static class FooConverterProvider implements ConverterInvocationProvider { + public static class FooConverterProvider implements ConverterInvocationProvider { @Override public FooConverterInvocation enhanceConverterInvocation(ConverterInvocation converterInvocation) { return new FooConverterInvocation(converterInvocation.getInput(), converterInvocation.getAeshContext()); diff --git a/aesh/src/test/java/org/aesh/command/export/ExportCommandTest.java b/aesh/src/test/java/org/aesh/command/export/ExportCommandTest.java index 68a211ee9..181236757 100644 --- a/aesh/src/test/java/org/aesh/command/export/ExportCommandTest.java +++ b/aesh/src/test/java/org/aesh/command/export/ExportCommandTest.java @@ -28,17 +28,12 @@ import org.aesh.command.CommandDefinition; import org.aesh.command.CommandException; import org.aesh.command.CommandResult; -import org.aesh.command.activator.CommandActivator; -import org.aesh.command.activator.OptionActivator; -import org.aesh.command.completer.CompleterInvocation; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.impl.registry.AeshCommandRegistryBuilder; import org.aesh.command.invocation.CommandInvocation; import org.aesh.command.registry.CommandRegistry; import org.aesh.command.registry.CommandRegistryException; import org.aesh.command.settings.Settings; import org.aesh.command.settings.SettingsBuilder; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.console.ReadlineConsole; import org.aesh.readline.editing.EditMode; import org.aesh.terminal.Key; @@ -63,7 +58,7 @@ public void testExportCompletionAndCommand() throws IOException, CommandRegistry .command(FooCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .connection(connection) .commandRegistry(registry) @@ -138,7 +133,7 @@ public void testExportListener() throws IOException, InterruptedException { CommandRegistry registry = AeshCommandRegistryBuilder.builder().create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .connection(connection) .commandRegistry(registry) diff --git a/aesh/src/test/java/org/aesh/command/help/AeshHelpCommandTest.java b/aesh/src/test/java/org/aesh/command/help/AeshHelpCommandTest.java index 96b070ac9..047a553ae 100644 --- a/aesh/src/test/java/org/aesh/command/help/AeshHelpCommandTest.java +++ b/aesh/src/test/java/org/aesh/command/help/AeshHelpCommandTest.java @@ -6,10 +6,6 @@ import org.aesh.command.CommandDefinition; import org.aesh.command.CommandException; import org.aesh.command.CommandResult; -import org.aesh.command.activator.CommandActivator; -import org.aesh.command.activator.OptionActivator; -import org.aesh.command.completer.CompleterInvocation; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.impl.registry.AeshCommandRegistryBuilder; import org.aesh.command.invocation.CommandInvocation; import org.aesh.command.option.Option; @@ -17,7 +13,6 @@ import org.aesh.command.registry.CommandRegistryException; import org.aesh.command.settings.Settings; import org.aesh.command.settings.SettingsBuilder; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.console.ReadlineConsole; import org.aesh.terminal.utils.Config; import org.aesh.tty.TestConnection; @@ -35,7 +30,7 @@ public void testCommandInvocationTest() throws IOException, InterruptedException .command(FooBarCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .commandRegistry(registry) .enableOperatorParser(true) diff --git a/aesh/src/test/java/org/aesh/command/invocation/AeshCommandInvocationServiceTest.java b/aesh/src/test/java/org/aesh/command/invocation/AeshCommandInvocationServiceTest.java index 1253ff275..9cee3fa5b 100644 --- a/aesh/src/test/java/org/aesh/command/invocation/AeshCommandInvocationServiceTest.java +++ b/aesh/src/test/java/org/aesh/command/invocation/AeshCommandInvocationServiceTest.java @@ -28,10 +28,6 @@ import org.aesh.command.CommandNotFoundException; import org.aesh.command.CommandResult; import org.aesh.command.Executor; -import org.aesh.command.activator.CommandActivator; -import org.aesh.command.activator.OptionActivator; -import org.aesh.command.completer.CompleterInvocation; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.impl.registry.AeshCommandRegistryBuilder; import org.aesh.command.parser.CommandLineParserException; import org.aesh.command.registry.CommandRegistry; @@ -41,7 +37,6 @@ import org.aesh.command.shell.Shell; import org.aesh.command.validator.CommandValidatorException; import org.aesh.command.validator.OptionValidatorException; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.console.ReadlineConsole; import org.aesh.readline.Prompt; import org.aesh.terminal.KeyAction; @@ -63,8 +58,8 @@ public void testCommandInvocationExtension() throws IOException, InterruptedExce .command(new BarCommand()) .create(); - Settings>, OptionActivator, CommandActivator> settings = SettingsBuilder - .>, OptionActivator, CommandActivator> builder() + Settings settings = SettingsBuilder + . builder() .commandRegistry(registry) .connection(connection) .logging(true) diff --git a/aesh/src/test/java/org/aesh/command/man/AeshManProviderTest.java b/aesh/src/test/java/org/aesh/command/man/AeshManProviderTest.java index a347159cd..26a21d56c 100644 --- a/aesh/src/test/java/org/aesh/command/man/AeshManProviderTest.java +++ b/aesh/src/test/java/org/aesh/command/man/AeshManProviderTest.java @@ -24,17 +24,12 @@ import java.io.IOException; import java.io.InputStream; -import org.aesh.command.activator.CommandActivator; -import org.aesh.command.activator.OptionActivator; -import org.aesh.command.completer.CompleterInvocation; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.impl.registry.AeshCommandRegistryBuilder; import org.aesh.command.invocation.CommandInvocation; import org.aesh.command.registry.CommandRegistry; import org.aesh.command.settings.ManProvider; import org.aesh.command.settings.Settings; import org.aesh.command.settings.SettingsBuilder; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.console.ReadlineConsole; import org.aesh.tty.TestConnection; import org.junit.Test; @@ -51,7 +46,7 @@ public void testManProvider() throws IOException { CommandRegistry registry = AeshCommandRegistryBuilder.builder() .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .commandRegistry(registry) .connection(connection) diff --git a/aesh/src/test/java/org/aesh/command/operator/AeshCommandConditionalOperatorTest.java b/aesh/src/test/java/org/aesh/command/operator/AeshCommandConditionalOperatorTest.java index 9350582eb..3f6757b88 100644 --- a/aesh/src/test/java/org/aesh/command/operator/AeshCommandConditionalOperatorTest.java +++ b/aesh/src/test/java/org/aesh/command/operator/AeshCommandConditionalOperatorTest.java @@ -30,17 +30,12 @@ import org.aesh.command.CommandDefinition; import org.aesh.command.CommandException; import org.aesh.command.CommandResult; -import org.aesh.command.activator.CommandActivator; -import org.aesh.command.activator.OptionActivator; -import org.aesh.command.completer.CompleterInvocation; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.impl.registry.AeshCommandRegistryBuilder; import org.aesh.command.invocation.CommandInvocation; import org.aesh.command.registry.CommandRegistry; import org.aesh.command.registry.CommandRegistryException; import org.aesh.command.settings.Settings; import org.aesh.command.settings.SettingsBuilder; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.console.ReadlineConsole; import org.aesh.terminal.utils.Config; import org.aesh.tty.TestConnection; @@ -63,7 +58,7 @@ public void testEnd() throws IOException, InterruptedException, CommandRegistryE .command(FailureCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .commandRegistry(registry) .enableOperatorParser(true) diff --git a/aesh/src/test/java/org/aesh/command/operator/AeshCommandEndOperatorTest.java b/aesh/src/test/java/org/aesh/command/operator/AeshCommandEndOperatorTest.java index 71a3c4383..55c6136a2 100644 --- a/aesh/src/test/java/org/aesh/command/operator/AeshCommandEndOperatorTest.java +++ b/aesh/src/test/java/org/aesh/command/operator/AeshCommandEndOperatorTest.java @@ -27,10 +27,6 @@ import org.aesh.command.CommandDefinition; import org.aesh.command.CommandException; import org.aesh.command.CommandResult; -import org.aesh.command.activator.CommandActivator; -import org.aesh.command.activator.OptionActivator; -import org.aesh.command.completer.CompleterInvocation; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.impl.registry.AeshCommandRegistryBuilder; import org.aesh.command.invocation.CommandInvocation; import org.aesh.command.option.Option; @@ -38,7 +34,6 @@ import org.aesh.command.registry.CommandRegistryException; import org.aesh.command.settings.Settings; import org.aesh.command.settings.SettingsBuilder; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.console.ReadlineConsole; import org.aesh.terminal.utils.Config; import org.aesh.tty.TestConnection; @@ -61,7 +56,7 @@ public void testEnd() throws IOException, InterruptedException, CommandRegistryE .command(BarCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .commandRegistry(registry) .enableOperatorParser(true) diff --git a/aesh/src/test/java/org/aesh/command/operator/AeshCommandPipelineTest.java b/aesh/src/test/java/org/aesh/command/operator/AeshCommandPipelineTest.java index c0aefaef2..84be32480 100644 --- a/aesh/src/test/java/org/aesh/command/operator/AeshCommandPipelineTest.java +++ b/aesh/src/test/java/org/aesh/command/operator/AeshCommandPipelineTest.java @@ -29,10 +29,6 @@ import org.aesh.command.CommandDefinition; import org.aesh.command.CommandException; import org.aesh.command.CommandResult; -import org.aesh.command.activator.CommandActivator; -import org.aesh.command.activator.OptionActivator; -import org.aesh.command.completer.CompleterInvocation; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.impl.registry.AeshCommandRegistryBuilder; import org.aesh.command.invocation.CommandInvocation; import org.aesh.command.option.Argument; @@ -40,7 +36,6 @@ import org.aesh.command.registry.CommandRegistryException; import org.aesh.command.settings.Settings; import org.aesh.command.settings.SettingsBuilder; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.console.ReadlineConsole; import org.aesh.io.Resource; import org.aesh.terminal.utils.Config; @@ -64,7 +59,7 @@ public void testPipeline() throws InterruptedException, IOException, CommandRegi .command(foo) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .connection(connection) .enableOperatorParser(true) @@ -97,7 +92,7 @@ public void testEmptyBeforeOperator() throws InterruptedException, IOException, .command(foo) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .connection(connection) .enableOperatorParser(true) diff --git a/aesh/src/test/java/org/aesh/command/operator/ConsoleRedirectionTest.java b/aesh/src/test/java/org/aesh/command/operator/ConsoleRedirectionTest.java index 9017c6f8e..27fa318a7 100644 --- a/aesh/src/test/java/org/aesh/command/operator/ConsoleRedirectionTest.java +++ b/aesh/src/test/java/org/aesh/command/operator/ConsoleRedirectionTest.java @@ -35,17 +35,12 @@ import org.aesh.command.CommandDefinition; import org.aesh.command.CommandException; import org.aesh.command.CommandResult; -import org.aesh.command.activator.CommandActivator; -import org.aesh.command.activator.OptionActivator; -import org.aesh.command.completer.CompleterInvocation; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.impl.registry.AeshCommandRegistryBuilder; import org.aesh.command.invocation.CommandInvocation; import org.aesh.command.option.Argument; import org.aesh.command.registry.CommandRegistry; import org.aesh.command.settings.Settings; import org.aesh.command.settings.SettingsBuilder; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.console.ReadlineConsole; import org.aesh.io.Resource; import org.aesh.terminal.utils.Config; @@ -77,7 +72,7 @@ public void endOperator() throws Throwable { .command(AfterCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .connection(connection) @@ -101,7 +96,7 @@ public void redirectOutOperator() throws Throwable { .command(FooCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .connection(connection) @@ -133,7 +128,7 @@ public void pipeRedirectOutOperator() throws Throwable { .command(PrintCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .connection(connection) @@ -164,7 +159,7 @@ public void redirectInOperator() throws Throwable { .command(BarCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .connection(connection) @@ -196,7 +191,7 @@ public void redirectInAndPipeOperator() throws Throwable { .command(ManCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .connection(connection) @@ -228,7 +223,7 @@ public void redirectInPipeAndRedirectOutOperator() throws Throwable { .command(ManCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .connection(connection) @@ -263,7 +258,7 @@ public void redirectInAndRedirectOutOperator() throws Throwable { .command(BarCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .logging(true) .connection(connection) diff --git a/aesh/src/test/java/org/aesh/command/parser/CommandLineParserTest.java b/aesh/src/test/java/org/aesh/command/parser/CommandLineParserTest.java index 25b65695f..89d169dd2 100644 --- a/aesh/src/test/java/org/aesh/command/parser/CommandLineParserTest.java +++ b/aesh/src/test/java/org/aesh/command/parser/CommandLineParserTest.java @@ -32,14 +32,9 @@ import org.aesh.command.CommandException; import org.aesh.command.CommandResult; import org.aesh.command.GroupCommandDefinition; -import org.aesh.command.impl.activator.AeshCommandActivatorProvider; -import org.aesh.command.impl.activator.AeshOptionActivatorProvider; -import org.aesh.command.impl.completer.AeshCompleterInvocationProvider; import org.aesh.command.impl.container.AeshCommandContainerBuilder; -import org.aesh.command.impl.converter.AeshConverterInvocationProvider; import org.aesh.command.impl.invocation.AeshInvocationProviders; import org.aesh.command.impl.parser.CommandLineParser; -import org.aesh.command.impl.validator.AeshValidatorInvocationProvider; import org.aesh.command.invocation.CommandInvocation; import org.aesh.command.invocation.InvocationProviders; import org.aesh.command.option.Argument; @@ -57,12 +52,7 @@ public class CommandLineParserTest { private final InvocationProviders invocationProviders = new AeshInvocationProviders( - SettingsBuilder.builder() - .converterInvocationProvider(new AeshConverterInvocationProvider()) - .completerInvocationProvider(new AeshCompleterInvocationProvider<>()) - .validatorInvocationProvider(new AeshValidatorInvocationProvider()) - .optionActivatorProvider(new AeshOptionActivatorProvider()) - .commandActivatorProvider(new AeshCommandActivatorProvider()).build()); + null, null, null, null, null); @Test public void testParseCommandLine1() throws Exception { diff --git a/aesh/src/test/java/org/aesh/command/parser/ParentCommandTest.java b/aesh/src/test/java/org/aesh/command/parser/ParentCommandTest.java index a231bf8c7..ca113d377 100644 --- a/aesh/src/test/java/org/aesh/command/parser/ParentCommandTest.java +++ b/aesh/src/test/java/org/aesh/command/parser/ParentCommandTest.java @@ -26,15 +26,10 @@ import org.aesh.command.CommandException; import org.aesh.command.CommandResult; import org.aesh.command.GroupCommandDefinition; -import org.aesh.command.impl.activator.AeshCommandActivatorProvider; -import org.aesh.command.impl.activator.AeshOptionActivatorProvider; -import org.aesh.command.impl.completer.AeshCompleterInvocationProvider; import org.aesh.command.impl.container.AeshCommandContainerBuilder; import org.aesh.command.impl.context.CommandContext; -import org.aesh.command.impl.converter.AeshConverterInvocationProvider; import org.aesh.command.impl.invocation.AeshInvocationProviders; import org.aesh.command.impl.parser.CommandLineParser; -import org.aesh.command.impl.validator.AeshValidatorInvocationProvider; import org.aesh.command.invocation.CommandInvocation; import org.aesh.command.invocation.InvocationProviders; import org.aesh.command.option.Argument; @@ -52,12 +47,7 @@ public class ParentCommandTest { private final InvocationProviders invocationProviders = new AeshInvocationProviders( - SettingsBuilder.builder() - .converterInvocationProvider(new AeshConverterInvocationProvider()) - .completerInvocationProvider(new AeshCompleterInvocationProvider<>()) - .validatorInvocationProvider(new AeshValidatorInvocationProvider()) - .optionActivatorProvider(new AeshOptionActivatorProvider()) - .commandActivatorProvider(new AeshCommandActivatorProvider()).build()); + null, null, null, null, null); @Test public void testCommandContext() throws Exception { diff --git a/aesh/src/test/java/org/aesh/command/populator/CommandLinePopulatorTest.java b/aesh/src/test/java/org/aesh/command/populator/CommandLinePopulatorTest.java index 5219c1bf1..dea8f225e 100644 --- a/aesh/src/test/java/org/aesh/command/populator/CommandLinePopulatorTest.java +++ b/aesh/src/test/java/org/aesh/command/populator/CommandLinePopulatorTest.java @@ -30,11 +30,7 @@ import java.util.Currency; import org.aesh.command.Command; -import org.aesh.command.impl.activator.AeshCommandActivatorProvider; -import org.aesh.command.impl.activator.AeshOptionActivatorProvider; -import org.aesh.command.impl.completer.AeshCompleterInvocationProvider; import org.aesh.command.impl.container.AeshCommandContainerBuilder; -import org.aesh.command.impl.converter.AeshConverterInvocationProvider; import org.aesh.command.impl.internal.OptionType; import org.aesh.command.impl.internal.ProcessedCommand; import org.aesh.command.impl.internal.ProcessedCommandBuilder; @@ -44,7 +40,6 @@ import org.aesh.command.impl.parser.CommandLineParser; import org.aesh.command.impl.parser.CommandLineParserBuilder; import org.aesh.command.impl.populator.AeshCommandPopulator; -import org.aesh.command.impl.validator.AeshValidatorInvocationProvider; import org.aesh.command.invocation.CommandInvocation; import org.aesh.command.invocation.InvocationProviders; import org.aesh.command.parser.CommandLineParserException; @@ -63,12 +58,7 @@ public class CommandLinePopulatorTest { private final InvocationProviders invocationProviders = new AeshInvocationProviders( - SettingsBuilder.builder() - .converterInvocationProvider(new AeshConverterInvocationProvider()) - .completerInvocationProvider(new AeshCompleterInvocationProvider()) - .validatorInvocationProvider(new AeshValidatorInvocationProvider()) - .optionActivatorProvider(new AeshOptionActivatorProvider()) - .commandActivatorProvider(new AeshCommandActivatorProvider()).build()); + null, null, null, null, null); @Rule public final ExpectedException exception = ExpectedException.none(); diff --git a/aesh/src/test/java/org/aesh/command/populator/FieldSetterPopulatorTest.java b/aesh/src/test/java/org/aesh/command/populator/FieldSetterPopulatorTest.java index 3b37a094a..a1be85ebf 100644 --- a/aesh/src/test/java/org/aesh/command/populator/FieldSetterPopulatorTest.java +++ b/aesh/src/test/java/org/aesh/command/populator/FieldSetterPopulatorTest.java @@ -14,10 +14,6 @@ import org.aesh.command.Command; import org.aesh.command.CommandDefinition; import org.aesh.command.CommandResult; -import org.aesh.command.impl.activator.AeshCommandActivatorProvider; -import org.aesh.command.impl.activator.AeshOptionActivatorProvider; -import org.aesh.command.impl.completer.AeshCompleterInvocationProvider; -import org.aesh.command.impl.converter.AeshConverterInvocationProvider; import org.aesh.command.impl.internal.OptionType; import org.aesh.command.impl.internal.ProcessedCommand; import org.aesh.command.impl.internal.ProcessedCommandBuilder; @@ -25,7 +21,6 @@ import org.aesh.command.impl.invocation.AeshInvocationProviders; import org.aesh.command.impl.parser.CommandLineParser; import org.aesh.command.impl.parser.CommandLineParserBuilder; -import org.aesh.command.impl.validator.AeshValidatorInvocationProvider; import org.aesh.command.invocation.CommandInvocation; import org.aesh.command.invocation.InvocationProviders; import org.aesh.command.option.Option; @@ -40,12 +35,7 @@ public class FieldSetterPopulatorTest { private final InvocationProviders invocationProviders = new AeshInvocationProviders( - SettingsBuilder.builder() - .converterInvocationProvider(new AeshConverterInvocationProvider()) - .completerInvocationProvider(new AeshCompleterInvocationProvider()) - .validatorInvocationProvider(new AeshValidatorInvocationProvider()) - .optionActivatorProvider(new AeshOptionActivatorProvider()) - .commandActivatorProvider(new AeshCommandActivatorProvider()).build()); + null, null, null, null, null); @CommandDefinition(name = "test", description = "test command") public static class TestCommand implements Command { diff --git a/aesh/src/test/java/org/aesh/command/populator/MetadataProviderFieldSetterTest.java b/aesh/src/test/java/org/aesh/command/populator/MetadataProviderFieldSetterTest.java index 06d7903a3..34c080c4f 100644 --- a/aesh/src/test/java/org/aesh/command/populator/MetadataProviderFieldSetterTest.java +++ b/aesh/src/test/java/org/aesh/command/populator/MetadataProviderFieldSetterTest.java @@ -15,11 +15,7 @@ import org.aesh.command.Command; import org.aesh.command.CommandDefinition; import org.aesh.command.CommandResult; -import org.aesh.command.impl.activator.AeshCommandActivatorProvider; -import org.aesh.command.impl.activator.AeshOptionActivatorProvider; -import org.aesh.command.impl.completer.AeshCompleterInvocationProvider; import org.aesh.command.impl.container.AeshCommandContainerBuilder; -import org.aesh.command.impl.converter.AeshConverterInvocationProvider; import org.aesh.command.impl.internal.OptionType; import org.aesh.command.impl.internal.ProcessedCommand; import org.aesh.command.impl.internal.ProcessedCommandBuilder; @@ -27,7 +23,6 @@ import org.aesh.command.impl.internal.ProcessedOptionBuilder; import org.aesh.command.impl.invocation.AeshInvocationProviders; import org.aesh.command.impl.parser.CommandLineParser; -import org.aesh.command.impl.validator.AeshValidatorInvocationProvider; import org.aesh.command.invocation.CommandInvocation; import org.aesh.command.invocation.InvocationProviders; import org.aesh.command.metadata.CommandMetadataProvider; @@ -44,12 +39,7 @@ public class MetadataProviderFieldSetterTest { private final InvocationProviders invocationProviders = new AeshInvocationProviders( - SettingsBuilder.builder() - .converterInvocationProvider(new AeshConverterInvocationProvider()) - .completerInvocationProvider(new AeshCompleterInvocationProvider()) - .validatorInvocationProvider(new AeshValidatorInvocationProvider()) - .optionActivatorProvider(new AeshOptionActivatorProvider()) - .commandActivatorProvider(new AeshCommandActivatorProvider()).build()); + null, null, null, null, null); @CommandDefinition(name = "mytest", description = "test") public static class MyTestCommand implements Command { diff --git a/aesh/src/test/java/org/aesh/command/registry/AeshCommandRegistryTest.java b/aesh/src/test/java/org/aesh/command/registry/AeshCommandRegistryTest.java index a8cb92973..d7caed41e 100644 --- a/aesh/src/test/java/org/aesh/command/registry/AeshCommandRegistryTest.java +++ b/aesh/src/test/java/org/aesh/command/registry/AeshCommandRegistryTest.java @@ -24,16 +24,11 @@ import java.util.List; import java.util.Set; -import org.aesh.command.activator.CommandActivator; -import org.aesh.command.activator.OptionActivator; -import org.aesh.command.completer.CompleterInvocation; import org.aesh.command.container.CommandContainer; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.impl.parser.CommandLineParser; import org.aesh.command.invocation.CommandInvocation; import org.aesh.command.settings.Settings; import org.aesh.command.settings.SettingsBuilder; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.console.ReadlineConsole; import org.aesh.parser.ParsedLine; import org.aesh.readline.completion.CompleteOperation; @@ -94,7 +89,7 @@ public void removeRegistrationListener(CommandRegistry.CommandRegistrationListen } }; - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .commandRegistry(registry) .connection(connection) @@ -159,7 +154,7 @@ public void removeRegistrationListener(CommandRegistry.CommandRegistrationListen } }; - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .connection(connection) .commandRegistry(registry) @@ -225,7 +220,7 @@ public void removeRegistrationListener(CommandRegistry.CommandRegistrationListen } }; - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .commandRegistry(registry) .connection(connection) diff --git a/aesh/src/test/java/org/aesh/command/settings/SubCommandModeSettingsTest.java b/aesh/src/test/java/org/aesh/command/settings/SubCommandModeSettingsTest.java index 842257788..ccbee0ef2 100644 --- a/aesh/src/test/java/org/aesh/command/settings/SubCommandModeSettingsTest.java +++ b/aesh/src/test/java/org/aesh/command/settings/SubCommandModeSettingsTest.java @@ -116,7 +116,7 @@ public void testSettingsIntegrationWithMainSettings() { .exitCommand("bye") .build(); - Settings settings = SettingsBuilder.builder() + Settings settings = SettingsBuilder.builder() .subCommandModeSettings(subSettings) .build(); @@ -125,7 +125,7 @@ public void testSettingsIntegrationWithMainSettings() { @Test public void testDefaultSettingsFromMainSettings() { - Settings settings = SettingsBuilder.builder().build(); + Settings settings = SettingsBuilder.builder().build(); // Should return default settings assertNotNull(settings.subCommandModeSettings()); diff --git a/aesh/src/test/java/org/aesh/command/validator/AeshCommandOptionValidatorTest.java b/aesh/src/test/java/org/aesh/command/validator/AeshCommandOptionValidatorTest.java index ff56c2783..f4fe6cd00 100644 --- a/aesh/src/test/java/org/aesh/command/validator/AeshCommandOptionValidatorTest.java +++ b/aesh/src/test/java/org/aesh/command/validator/AeshCommandOptionValidatorTest.java @@ -25,10 +25,6 @@ import org.aesh.command.CommandDefinition; import org.aesh.command.CommandException; import org.aesh.command.CommandResult; -import org.aesh.command.activator.CommandActivator; -import org.aesh.command.activator.OptionActivator; -import org.aesh.command.completer.CompleterInvocation; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.impl.registry.AeshCommandRegistryBuilder; import org.aesh.command.impl.validator.AeshValidatorInvocation; import org.aesh.command.invocation.CommandInvocation; @@ -57,7 +53,7 @@ public void testOptionValidator() throws IOException, CommandRegistryException, .command(ValCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .commandRegistry(registry) .connection(connection) @@ -85,7 +81,7 @@ public void testMultipleOptionValidators() throws IOException, CommandRegistryEx .command(IntCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .commandRegistry(registry) .connection(connection) @@ -119,7 +115,7 @@ public void testMultipleOptionWithProvidersValidators() throws IOException, Comm .command(IntCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .commandRegistry(registry) .connection(connection) @@ -154,7 +150,7 @@ public void testRequiredOption() throws IOException, CommandRegistryException, I .command(ValidatorOptionCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .commandRegistry(registry) .connection(connection) @@ -278,10 +274,10 @@ public AeshContext getAeshContext() { } public static class TestValidatorInvocationProvider - implements ValidatorInvocationProvider> { + implements ValidatorInvocationProvider { @Override @SuppressWarnings("unchecked") - public ValidatorInvocation enhanceValidatorInvocation(ValidatorInvocation validatorInvocation) { + public ValidatorInvocation enhanceValidatorInvocation(ValidatorInvocation validatorInvocation) { if (validatorInvocation.getValue() instanceof String) return new TestValidatorInvocation((String) validatorInvocation.getValue(), (Command) validatorInvocation.getCommand(), validatorInvocation.getAeshContext()); diff --git a/aesh/src/test/java/org/aesh/command/validator/AeshCommandValidatorTest.java b/aesh/src/test/java/org/aesh/command/validator/AeshCommandValidatorTest.java index 8e4b7710c..e7e9819e5 100644 --- a/aesh/src/test/java/org/aesh/command/validator/AeshCommandValidatorTest.java +++ b/aesh/src/test/java/org/aesh/command/validator/AeshCommandValidatorTest.java @@ -28,11 +28,9 @@ import org.aesh.command.CommandException; import org.aesh.command.CommandResult; import org.aesh.command.GroupCommandDefinition; -import org.aesh.command.activator.CommandActivator; import org.aesh.command.activator.OptionActivator; import org.aesh.command.completer.CompleterInvocation; import org.aesh.command.completer.OptionCompleter; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.impl.internal.ParsedCommand; import org.aesh.command.impl.internal.ParsedOption; import org.aesh.command.impl.registry.AeshCommandRegistryBuilder; @@ -60,7 +58,7 @@ public void testCommandValidator() throws IOException, InterruptedException, Com .command(FooCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .commandRegistry(registry) .connection(connection) @@ -86,7 +84,7 @@ public void testGroupCommandValidator() throws IOException, InterruptedException .command(GitCommand.class) .create(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .connection(connection) .commandRegistry(registry) diff --git a/aesh/src/test/java/org/aesh/console/AeshConnectionClosedTest.java b/aesh/src/test/java/org/aesh/console/AeshConnectionClosedTest.java index 5e4f31402..eed6a2741 100644 --- a/aesh/src/test/java/org/aesh/console/AeshConnectionClosedTest.java +++ b/aesh/src/test/java/org/aesh/console/AeshConnectionClosedTest.java @@ -28,14 +28,9 @@ import org.aesh.command.CommandDefinition; import org.aesh.command.CommandException; import org.aesh.command.CommandResult; -import org.aesh.command.activator.CommandActivator; -import org.aesh.command.activator.OptionActivator; -import org.aesh.command.completer.CompleterInvocation; -import org.aesh.command.converter.ConverterInvocation; import org.aesh.command.invocation.CommandInvocation; import org.aesh.command.settings.Settings; import org.aesh.command.settings.SettingsBuilder; -import org.aesh.command.validator.ValidatorInvocation; import org.aesh.terminal.Key; import org.aesh.terminal.utils.Config; import org.aesh.tty.TestConnection; @@ -49,7 +44,7 @@ public void testConnectionClosed() throws InterruptedException { ConnectionClosed closed = new ConnectionClosed(); - Settings settings = SettingsBuilder + Settings settings = SettingsBuilder .builder() .connection(connection) .setConnectionClosedHandler(closed) diff --git a/aesh/src/test/java/org/aesh/util/graal/GraalReflectionFileGeneratorTest.java b/aesh/src/test/java/org/aesh/util/graal/GraalReflectionFileGeneratorTest.java deleted file mode 100644 index 6a5822a45..000000000 --- a/aesh/src/test/java/org/aesh/util/graal/GraalReflectionFileGeneratorTest.java +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Copyright 2019 Red Hat, Inc. - * - * Licensed 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.aesh.util.graal; - -import static org.aesh.terminal.utils.Config.getLineSeparator; -import static org.junit.Assert.assertEquals; - -import java.io.BufferedReader; -import java.io.FileReader; -import java.io.IOException; -import java.io.StringWriter; - -import org.aesh.command.Command; -import org.aesh.command.CommandDefinition; -import org.aesh.command.CommandException; -import org.aesh.command.CommandResult; -import org.aesh.command.container.CommandContainer; -import org.aesh.command.container.CommandContainerBuilder; -import org.aesh.command.impl.container.AeshCommandContainerBuilder; -import org.aesh.command.impl.parser.CommandLineParser; -import org.aesh.command.invocation.CommandInvocation; -import org.aesh.command.option.Option; -import org.aesh.command.parser.CommandLineParserException; -import org.aesh.io.Resource; -import org.junit.Test; - -/** - * @author Aesh team - */ -public class GraalReflectionFileGeneratorTest { - - @Test - public void testSimpleCommand() throws IOException { - - GraalReflectionFileGenerator generator = new GraalReflectionFileGenerator(); - CommandLineParser parser = getParser(TestCommand1.class); - - StringWriter writer = new StringWriter(); - generator.generateReflection(parser, writer); - assertEquals(readFile("src/test/resources/graal1"), writer.toString()); - } - - @Test - public void testCommand() throws IOException { - - GraalReflectionFileGenerator generator = new GraalReflectionFileGenerator(); - CommandLineParser parser = getParser(TestCommand2.class); - - StringWriter writer = new StringWriter(); - generator.generateReflection(parser, writer); - assertEquals(readFile("src/test/resources/graal2"), writer.toString()); - } - - @Test - public void testCommandWithFileOption() throws IOException { - - GraalReflectionFileGenerator generator = new GraalReflectionFileGenerator(); - CommandLineParser parser = getParser(TestCommand3.class); - - StringWriter writer = new StringWriter(); - generator.generateReflection(parser, writer); - assertEquals(readFile("src/test/resources/graal3"), writer.toString()); - } - - private String readFile(String path) throws IOException { - StringBuilder builder = new StringBuilder(); - BufferedReader br = new BufferedReader(new FileReader(path)); - br.lines().forEach(line -> { - if (builder.length() > 0) - builder.append(getLineSeparator()); - builder.append(line); - }); - return builder.toString(); - } - - private CommandLineParser getParser(Class clazz) { - if (clazz != null) { - CommandContainerBuilder builder = new AeshCommandContainerBuilder<>(); - try { - CommandContainer container = builder.create(clazz); - return container.getParser(); - } catch (CommandLineParserException e) { - e.printStackTrace(); - } - } - return null; - } - - @CommandDefinition(name = "test1", description = "") - public static class TestCommand1 implements Command { - - @Override - public CommandResult execute(CommandInvocation commandInvocation) throws CommandException, InterruptedException { - return CommandResult.SUCCESS; - } - } - - @CommandDefinition(name = "test2", description = "") - public static class TestCommand2 implements Command { - - @Option(shortName = 'h', hasValue = false) - private boolean help; - - @Option(shortName = 'o') - private boolean override; - - @Option(shortName = 't', defaultValue = { "FOO", "BAR" }) - private String test; - - @Override - public CommandResult execute(CommandInvocation commandInvocation) throws CommandException, InterruptedException { - return CommandResult.SUCCESS; - } - } - - @CommandDefinition(name = "test3", description = "") - public static class TestCommand3 implements Command { - - @Option(shortName = 'h', hasValue = false) - private boolean help; - - @Option(shortName = 'o') - private boolean override; - - @Option(shortName = 't') - private Resource test; - - @Override - public CommandResult execute(CommandInvocation commandInvocation) throws CommandException, InterruptedException { - return CommandResult.SUCCESS; - } - } - -} diff --git a/aesh/src/test/resources/graal1 b/aesh/src/test/resources/graal1 deleted file mode 100644 index 5e9a01a68..000000000 --- a/aesh/src/test/resources/graal1 +++ /dev/null @@ -1,21 +0,0 @@ -[ - { - "name" : "org.aesh.util.graal.GraalReflectionFileGeneratorTest$TestCommand1", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true }, - { - "name" : "org.aesh.command.impl.activator.NullCommandActivator", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true }, - { - "name" : "org.aesh.command.impl.parser.AeshOptionParser", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true - } -] diff --git a/aesh/src/test/resources/graal2 b/aesh/src/test/resources/graal2 deleted file mode 100644 index 2c70f5a9d..000000000 --- a/aesh/src/test/resources/graal2 +++ /dev/null @@ -1,51 +0,0 @@ -[ - { - "name" : "org.aesh.util.graal.GraalReflectionFileGeneratorTest$TestCommand2", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "fields" : [ - { "name" : "help" }, - { "name" : "override" }, - { "name" : "test" } - ] - }, - { - "name" : "org.aesh.command.impl.completer.BooleanOptionCompleter", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true }, - { - "name" : "org.aesh.command.impl.activator.NullCommandActivator", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true }, - { - "name" : "org.aesh.command.impl.converter.StringConverter", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true }, - { - "name" : "org.aesh.command.impl.activator.NullActivator", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true }, - { - "name" : "org.aesh.command.impl.converter.BooleanConverter", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true }, - { - "name" : "org.aesh.command.impl.parser.AeshOptionParser", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true - } -] diff --git a/aesh/src/test/resources/graal3 b/aesh/src/test/resources/graal3 deleted file mode 100644 index 5cae78c28..000000000 --- a/aesh/src/test/resources/graal3 +++ /dev/null @@ -1,57 +0,0 @@ -[ - { - "name" : "org.aesh.util.graal.GraalReflectionFileGeneratorTest$TestCommand3", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "fields" : [ - { "name" : "help" }, - { "name" : "override" }, - { "name" : "test" } - ] - }, - { - "name" : "org.aesh.command.impl.completer.BooleanOptionCompleter", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true }, - { - "name" : "org.aesh.command.impl.completer.FileOptionCompleter", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true }, - { - "name" : "org.aesh.command.impl.activator.NullCommandActivator", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true }, - { - "name" : "org.aesh.command.impl.converter.FileResourceConverter", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true }, - { - "name" : "org.aesh.command.impl.activator.NullActivator", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true }, - { - "name" : "org.aesh.command.impl.converter.BooleanConverter", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true }, - { - "name" : "org.aesh.command.impl.parser.AeshOptionParser", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true - } -]