From 509eb6fd4564b06e8ef019cff25a3033a2fc0bcf Mon Sep 17 00:00:00 2001 From: Mark Pollack Date: Wed, 18 Jul 2012 00:33:17 -0400 Subject: [PATCH] SHL-23 - Create docbook based reference guide --- .../docbook/images/shell-example-enum.jpg | Bin 0 -> 22274 bytes .../docbook/images/shell-example.jpg | Bin 0 -> 127150 bytes docs/src/reference/docbook/index.xml | 12 +- .../docbook/introduction/introduction.xml | 2 +- .../docbook/introduction/requirements.xml | 10 +- docs/src/reference/docbook/preface.xml | 37 ++--- .../reference/dev-guide/dev-spring-shell.xml | 144 ++++++++++++++++-- .../src/reference/docbook/reference/shell.xml | 82 ++++++++-- .../docbook/samples/simple-application.xml | 124 ++++++++++++++- samples/helloworld/.gitignore | 2 +- .../commands/HelloWorldCommands.java | 25 ++- .../shell/core/annotation/CliCommand.java | 8 + .../shell/core/annotation/CliOption.java | 8 +- 13 files changed, 387 insertions(+), 67 deletions(-) create mode 100644 docs/src/reference/docbook/images/shell-example-enum.jpg create mode 100644 docs/src/reference/docbook/images/shell-example.jpg diff --git a/docs/src/reference/docbook/images/shell-example-enum.jpg b/docs/src/reference/docbook/images/shell-example-enum.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a12af2d40fd1ee955a119e9d5d4ca07f9beae33d GIT binary patch literal 22274 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 F(XWCZNf7`5 literal 0 HcmV?d00001 diff --git a/docs/src/reference/docbook/images/shell-example.jpg b/docs/src/reference/docbook/images/shell-example.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4148897cf5c868c86b4df8bf25558a514074a936 GIT binary patch literal 127150 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 z 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 z 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 SpringSource - - Jarred - Li - VMware - Costin Leau SpringSource + + Jarred + Li + VMware + @@ -63,7 +63,7 @@ Spring Shell Sample application - + \ No newline at end of file diff --git a/docs/src/reference/docbook/introduction/introduction.xml b/docs/src/reference/docbook/introduction/introduction.xml index 212f77ab..f794e8aa 100644 --- a/docs/src/reference/docbook/introduction/introduction.xml +++ b/docs/src/reference/docbook/introduction/introduction.xml @@ -6,7 +6,7 @@ xmlns:ns2="http://www.w3.org/1999/xlink" xmlns:ns="http://docbook.org/ns/docbook"> The Spring Shell provides an interactive shell that lets you - contribute commands using a simple POJO based programming model. + contribute commands using a simple Spring based programming model. This document is the reference guide for the Spring Shell and covers the key classes that are part of the Shell infrastructure, the plugin model, diff --git a/docs/src/reference/docbook/introduction/requirements.xml b/docs/src/reference/docbook/introduction/requirements.xml index 19dde886..f3175eef 100644 --- a/docs/src/reference/docbook/introduction/requirements.xml +++ b/docs/src/reference/docbook/introduction/requirements.xml @@ -8,11 +8,7 @@ xmlns:ns="http://docbook.org/ns/docbook"> Requirements - The Spring Shell requires JDK level 6.0 (just like Hadoop) and above - and the Spring Framework 3.0 (3.1 - recommended) and above. + The Spring Shell requires JDK level 6.0 and above as well as the + Spring Framework 3.0 + (3.1 recommended) and above. diff --git a/docs/src/reference/docbook/preface.xml b/docs/src/reference/docbook/preface.xml index 74418e05..a6bc3f99 100644 --- a/docs/src/reference/docbook/preface.xml +++ b/docs/src/reference/docbook/preface.xml @@ -8,45 +8,40 @@ Preface The Spring Shell provides an interactive shell that allows you to - plugin your own custom commands using a Spring based POJO programming + plugin your own custom commands using a Spring based programming model. - The shell has been extracted from the Spring Roo project, giving it a - strong foundation and rich feature set. One significant change from Spring - Roo is that the plugin model is no longer based on OSGi but instead uses - Spring IoC container to discover commands through classpath scanning. There - is currently no classloader isolation between plugins, however that maybe - added in future versions. + The shell has been extracted from the Spring Roo + project, giving it a strong foundation and rich feature set. One + significant change from Spring Roo is that the plugin model is no longer + based on OSGi but instead uses Spring IoC container to discover commands + through classpath scanning. There is currently no classloader isolation + between plugins, however that maybe added in future versions. Spring Shell's features include - A POJO based programming model to contribute custom - commands + A simple, annotation driven, programming model to contribute + custom commands - Use Spring's classpath scanning functionality as a basis for a - command plugin strategy + Use of Spring's classpath scanning functionality asthe basis for a + command plugin strategy and command develoment Inheritance of the Roo - Shell features + Shell features, most notably tab completion, colorization, and + script execution. - Tab completion - - - - Scripting and Script recording - - - - Customize command prompt, banner, shell history file name. + Customizatin of command prompt, banner, shell history file + name. diff --git a/docs/src/reference/docbook/reference/dev-guide/dev-spring-shell.xml b/docs/src/reference/docbook/reference/dev-guide/dev-spring-shell.xml index 1ac18fde..35554e18 100644 --- a/docs/src/reference/docbook/reference/dev-guide/dev-spring-shell.xml +++ b/docs/src/reference/docbook/reference/dev-guide/dev-spring-shell.xml @@ -10,35 +10,151 @@ Developing Spring Shell Applications Contributing commands to the shell is very easy. There are only a few - annotations you need to learn. The implementation style of the command is in - the style of developing an application that uses dependency injection as you - can leverage all the features of the Spring container. + annotations you need to learn. The implementation style of the command is + the same as developing classes in for application that uses dependency + injection. You can leverage all the features of the Spring container to + implement your command classes.

Marker Interface - The first step to creating a command is to implement the market - interface CommandMarker and to annotate your class with Spring's - @Component annotation. (Note there is an open JIRA issue to provide a - @CliCommand meta-annotation to avoid having to use a market interface) - Taking the -
+ The first step to creating a command is to implement the marker + interface CommandMarker and to annotate + your class with Spring's @Component annotation. + (Note there is an open JIRA issue to provide a + @CliCommand meta-annotation to avoid having to use + a marker interface). Using the code from the helloworld sample + application, the shell of a HelloWorldCommands + class is shown below -
- CLI Annotations + @Component +public class HelloWorldCommands implements CommandMarker { + + // use any Spring annotations for Dependency Injection or other Spring interfaces as required. - annotations + // methods with @Cli annotations go here + +}
Logging - + Logging is done using JDK logging. Simply add a LOG declaration as + shown below to use a logger. + + @Component +public class HelloWorldCommands implements CommandMarker { + + protected final Logger LOG = Logger.getLogger(getClass().getName()); + + // methods with @Cli annotations go here + +} +
+ +
+ CLI Annotations + + There are three annotations used on methods and method arguments + that define main contract for interacting with the shell. These are + + + + CliAvailabilityIndicator - Placed on a + method that returns a boolean value and indicates if a particular + command can be presented in the shell. This decision is usually based + on the history of commands that have been executed previously. It + prevents extraneous commands being presented until some preconditions + are met, for example the execution of a 'configuration' + command. + + + + CliCommand - Placed on a method that + provides a command to the shell. Its value provides one or more + strings that serve as the start of a particular command name. These + must be unique within the entire application, across all + plugins. + + + + CliOptions - Placed on the arguments of a + command methods, allowing it to declare the argument value as + mandatory or optional with a default value. + + + + Here is a simple use of these annotations in a command class + + @Component +public class HelloWorldCommands implements CommandMarker { + + protected final Logger LOG = Logger.getLogger(getClass().getName()); + + @CliAvailabilityIndicator({"hw simple"}) + public boolean isCommandAvailable() { + return true; + } + + @CliCommand(value = "hw simple", help = "Print a simple hello world message") + public void simple( + @CliOption(key = { "message" }, mandatory = true, help = "The hello world message") final String message, + @CliOption(key = { "location" }, mandatory = false, help = "Where you are saying hello", specifiedDefaultValue="At work") final String location) { + + LOG.info("Message = [" + message + "] Location = [" + location + "]"); + + } +} + + The method annotated with @CliAvailabilityIndicator + is returning true so that the one and only command in this + class is exposed to the shell to be invoked. If there were more commands + in the class, you would list them as comma separated value. + + The @CliCommand annotation is creating the + command 'hw simple' in the shell. The help message is + what will be printed if you use the build in help + command. The method name is 'simple' but it could + just have well been any other name. + + The @CliOption annotation on each of the + command arguments is where you will spend most of your time authoring + commands. You need to decide which arguments are required, which are + optional, and if they are optional is there a default value. In this case + there are two arguments or keys to the command, message and location. The + key message is required and a help message is provided to give guidance to + the user when tabbing to get completion for the command. + + The implementation of the 'simple' method is trivial, just a log + statement, but this is where you would typically call other collaborating + objects that were injected into the class via Spring. + + The method argument types in this example are + String, which doesn't present any issue with type + conversion. You can specify methods with any rich object type including + basic primitive types such as int, float etc. For all types other than + those handled by the shell by default (basic types, + Date, File) you will need to + register your own implementation of the + org.springframework.shell.core.Converter + interface with the container in your plugin.
Building and running the shell - + In our opinion, the easiest way to build an execute the shell is to + cut-n-paste the gradle script in the example application. This uses the + application plugin from gradle to create a bin directory with a startup + script for windows and Unix and places all dependent jars in a lib + directory. Maven has a similar plugin - the AppAssembler + plugin. + + The main class of the shell is + org.springframework.shell.Bootstrap. As long as you + place other plugins, perhaps developed independently, on the classpath, + the Bootstrap class will incorporate them into the shell.
diff --git a/docs/src/reference/docbook/reference/shell.xml b/docs/src/reference/docbook/reference/shell.xml index bbae8319..e8a8c9c0 100644 --- a/docs/src/reference/docbook/reference/shell.xml +++ b/docs/src/reference/docbook/reference/shell.xml @@ -23,8 +23,8 @@ looks like thisnew ClassPathXmlApplicationContext("classpath*:/META-INF/spring/spring-shell-plugin.xml"); In the spring-shell-plugin.xml file you should - define the command classes and any other collaboration objects that - support the commands actions. The plugin model is depicted in the + define the command classes and any other collaborating objects that + support the command's actions. The plugin model is depicted in the following diagram @@ -41,7 +41,7 @@ Commands An easy way to declare the commands is to use Spring's component - scanning functionality.Here is an example + scanning functionality. Here is an example spring-shell-plugin.xml that from the sample application. @@ -56,7 +56,7 @@ </beans> The commands are Spring components, demarcated as such using the - @Component annotation. For example, the + @Component annotation. For example, the shell of the HelloWorldCommands class from the sample application looks like this @@ -82,7 +82,7 @@ public class HelloWorldCommands implements CommandMarker { The org.springframework.shell.core.Converter interface provides the contract to convert the strings that are entered - in the command to rich Java types passed into the arguments of + on the command line to rich Java types passed into the arguments of @Cli-annotated methods. By default converters for common types are registered. These cover @@ -122,6 +122,30 @@ public class HelloWorldCommands implements CommandMarker { executed. + + There are also a few commands that are provided by the + AbstractShell class, these are + + + + date - Displays the local date and + time + + + + script - Parses the specified resource file + and executes its commands + + + + system properties - Shows the shell's + properties + + + + version - Displays current CLI version + +
@@ -133,13 +157,14 @@ public class HelloWorldCommands implements CommandMarker { BannerProvider - Specifies the - banner text , welcome message, and version number that will be + banner text, welcome message, and version number that will be displayed when the shell is started PromptProvider - Specifies the - command prompt text + command prompt text, eg. "shell>" or + "#" or "$" @@ -176,10 +201,10 @@ public class HelloWorldCommands implements CommandMarker { It has shown to be useful to provide a simple form of interception around the invocation of a command method. This enables the command class to check for updates to state, such as configuration information modified - by other plugins, before the command is executed. The interface + by other plugins, before the command method is executed. The interface ExecutionProcess should be implemented instead of CommandMarker to access this - functionlatiy. The ExecutionProcess + functionality. The ExecutionProcess interface is shown below public interface ExecutionProcessor extends CommandMarker { @@ -212,4 +237,43 @@ public class HelloWorldCommands implements CommandMarker { }
+ +
+ Command line options + + There are a few command line options that can be specified when + starting the shell. They are + + + + --profiles - Specifies values for the system + property spring.profiles.active so that Spring 3.1 and greater profile + support is enabled. + + + + --cmdfile - Specifies a file to read that + contains shell commands + + + + --histsize - Specifies the maximum number of + lines to store in the command history file. Default value is + 3000. + + +
+ +
+ Scripts and comments + + Scripts can be executed either by passing in the + --cmdfile argument at startup or by executing the + script command inside the shell. When using scripts it + helps to add comments and this can be done using block comments that start + and end with /* and */ or an inline + one line command using // or ; + characters. +
diff --git a/docs/src/reference/docbook/samples/simple-application.xml b/docs/src/reference/docbook/samples/simple-application.xml index cad272a1..9d5f4544 100644 --- a/docs/src/reference/docbook/samples/simple-application.xml +++ b/docs/src/reference/docbook/samples/simple-application.xml @@ -1,5 +1,6 @@ - Simple sample application using the Spring Shell -
+
Introduction - This sample demonstrates how to execute a MapReduce application and a script that interacts with HDFS inside a Spring based application. It does not use spring Batch or Spring Integration. + The sample application named 'helloworld' contains three + 'hw' commands, they are 'hw simple', + 'hw complex' and 'hw enum' and + demonstrate simple to intermediate level usage of the + @Cli annotation classes for creating commands. The example code is located in the distribution directory - <spring-hadoop-install-dir>/samples/wordcount. + <spring-shell-install-dir>/samples/helloworld. + + To build the example cd to the helloworld directory and execute + ..\..\gradlew installApp. To run the application cd to + build\install\helloworld\bin and execute the helloworld + script. +
+ +
+ HelloWorldCommands + + The HelloWorldCommands class is show + below + + package org.springframework.shell.samples.helloworld.commands; + + +import java.util.logging.Logger; + +import org.springframework.shell.core.CommandMarker; +import org.springframework.shell.core.annotation.CliAvailabilityIndicator; +import org.springframework.shell.core.annotation.CliCommand; +import org.springframework.shell.core.annotation.CliOption; +import org.springframework.stereotype.Component; + +@Component +public class HelloWorldCommands implements CommandMarker { + + protected final Logger LOG = Logger.getLogger(getClass().getName()); + + private boolean simpleCommandExecuted = false; + + @CliAvailabilityIndicator({"hw simple"}) + public boolean isSimpleAvailable() { + //always available + return true; + } + + @CliAvailabilityIndicator({"hw complex", "hw enum"}) + public boolean isComplexAvailable() { + if (simpleCommandExecuted) { + return true; + } else { + return false; + } + } + + @CliCommand(value = "hw simple", help = "Print a simple hello world message") + public void simple( + @CliOption(key = { "message" }, mandatory = true, help = "The hello world message") final String message, + @CliOption(key = { "location" }, mandatory = false, help = "Where you are saying hello", specifiedDefaultValue="At work") final String location) { + LOG.info("Message = [" + message + "] Location = [" + location + "]"); + simpleCommandExecuted = true; + } + + @CliCommand(value = "hw complex", help = "Print a complex hello world message") + public void hello( + @CliOption(key = { "message" }, mandatory = true, help = "The hello world message") final String message, + @CliOption(key = { "name1"}, mandatory = true, help = "Say hello to the first name") final String name1, + @CliOption(key = { "name2" }, mandatory = true, help = "Say hello to a second name") final String name2, + @CliOption(key = { "time" }, mandatory = false, specifiedDefaultValue="now", help = "When you are saying hello") final String time, + @CliOption(key = { "location" }, mandatory = false, help = "Where you are saying hello") final String location) { + LOG.info("Hello " + name1 + " and " + name2 + ". Your special message is " + message + ". time=[" + time + "] location=[" + location + "]"); + } + + @CliCommand(value = "hw enum", help = "Print a simple hello world message from an enumerated value") + public void eenum( + @CliOption(key = { "message" }, mandatory = true, help = "The hello world message") final MessageType message){ + LOG.info("Hello. You special enumerated message is " + message); + } + + enum MessageType { + Type1("type1"), + Type2("type2"), + Type3("type3"); + + private String type; + + private MessageType(String type){ + this.type = type; + } + + public String getType(){ + return type; + } + } +} + + + The use of the @CliAvailabilityIndicator + annotation on two methods, isSimpleAvailable and + isComplexAvailable shows how you can enable the + presence of the 'hw complex' and 'hw + enum' commands only if the 'hw simple' + command was executed. + + Here is an example session showing the behavior. + + + + + + + + The 'hw enum' command shows how the shell + supports the use of Enumeration as command method arguments. + + + + + +
diff --git a/samples/helloworld/.gitignore b/samples/helloworld/.gitignore index 9a55f4ea..5d1172ac 100644 --- a/samples/helloworld/.gitignore +++ b/samples/helloworld/.gitignore @@ -5,4 +5,4 @@ target/ /log.roo *.log - +/bin/ diff --git a/samples/helloworld/src/main/java/org/springframework/shell/samples/helloworld/commands/HelloWorldCommands.java b/samples/helloworld/src/main/java/org/springframework/shell/samples/helloworld/commands/HelloWorldCommands.java index 8f1babcd..490ab14a 100644 --- a/samples/helloworld/src/main/java/org/springframework/shell/samples/helloworld/commands/HelloWorldCommands.java +++ b/samples/helloworld/src/main/java/org/springframework/shell/samples/helloworld/commands/HelloWorldCommands.java @@ -11,15 +11,34 @@ import org.springframework.stereotype.Component; @Component public class HelloWorldCommands implements CommandMarker { - protected final Logger LOG = Logger.getLogger(getClass().getName()); - @CliAvailabilityIndicator({"hw echo"}) - public boolean isCommandAvailable() { + private boolean simpleCommandExecuted = false; + + @CliAvailabilityIndicator({"hw simple"}) + public boolean isSimpleAvailable() { + //always available return true; } + @CliAvailabilityIndicator({"hw complex", "hw enum"}) + public boolean isComplexCommandAvailable() { + if (simpleCommandExecuted) { + return true; + } else { + return false; + } + } + + @CliCommand(value = "hw simple", help = "Print a simple hello world message") + public void simple( + @CliOption(key = { "message" }, mandatory = true, help = "The hello world message") final String message, + @CliOption(key = { "location" }, mandatory = false, help = "Where you are saying hello", specifiedDefaultValue="At work") final String location) { + LOG.info("Message = [" + message + "] Location = [" + location + "]"); + simpleCommandExecuted = true; + } + @CliCommand(value = "hw complex", help = "Print a complex hello world message") public void hello( @CliOption(key = { "message" }, mandatory = true, help = "The hello world message") final String message, diff --git a/src/main/java/org/springframework/shell/core/annotation/CliCommand.java b/src/main/java/org/springframework/shell/core/annotation/CliCommand.java index dc633108..6be3334c 100644 --- a/src/main/java/org/springframework/shell/core/annotation/CliCommand.java +++ b/src/main/java/org/springframework/shell/core/annotation/CliCommand.java @@ -20,6 +20,14 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +/** + * + * Annotates a method that provides a command to the shell. + * + * @author Ben Alex + * @since 1.0 + * + */ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface CliCommand { diff --git a/src/main/java/org/springframework/shell/core/annotation/CliOption.java b/src/main/java/org/springframework/shell/core/annotation/CliOption.java index 1d3ab0c4..ff3ce45b 100644 --- a/src/main/java/org/springframework/shell/core/annotation/CliOption.java +++ b/src/main/java/org/springframework/shell/core/annotation/CliOption.java @@ -22,7 +22,13 @@ import java.lang.annotation.Target; import org.springframework.shell.core.Converter; - +/** + * Annotates the arguments of a command methods, allowing it to declare the argument value as mandatory or optional with a default value. + * + * @author Ben Alex + * @since 1.0 + * + */ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.PARAMETER) public @interface CliOption {