You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by jd...@apache.org on 2008/09/14 11:53:11 UTC

svn commit: r695171 - in /geronimo/gshell/trunk: gshell-commands/gshell-builtins/src/main/java/org/apache/geronimo/gshell/commands/builtins/ gshell-commands/gshell-builtins/src/main/resources/org/apache/geronimo/gshell/commands/builtins/ gshell-support...

Author: jdillon
Date: Sun Sep 14 02:53:08 2008
New Revision: 695171

URL: http://svn.apache.org/viewvc?rev=695171&view=rev
Log:
Hook up i18n support for clp printing

Modified:
    geronimo/gshell/trunk/gshell-commands/gshell-builtins/src/main/java/org/apache/geronimo/gshell/commands/builtins/EchoCommand.java
    geronimo/gshell/trunk/gshell-commands/gshell-builtins/src/main/resources/org/apache/geronimo/gshell/commands/builtins/EchoCommand.properties
    geronimo/gshell/trunk/gshell-support/gshell-clp/pom.xml
    geronimo/gshell/trunk/gshell-support/gshell-clp/src/main/java/org/apache/geronimo/gshell/clp/CommandLineProcessor.java
    geronimo/gshell/trunk/gshell-support/gshell-clp/src/main/java/org/apache/geronimo/gshell/clp/Printer.java
    geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/command/CommandDocumenterImpl.java

Modified: geronimo/gshell/trunk/gshell-commands/gshell-builtins/src/main/java/org/apache/geronimo/gshell/commands/builtins/EchoCommand.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-commands/gshell-builtins/src/main/java/org/apache/geronimo/gshell/commands/builtins/EchoCommand.java?rev=695171&r1=695170&r2=695171&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-commands/gshell-builtins/src/main/java/org/apache/geronimo/gshell/commands/builtins/EchoCommand.java (original)
+++ geronimo/gshell/trunk/gshell-commands/gshell-builtins/src/main/java/org/apache/geronimo/gshell/commands/builtins/EchoCommand.java Sun Sep 14 02:53:08 2008
@@ -39,11 +39,11 @@
 {
     private final Logger log = LoggerFactory.getLogger(getClass());
     
-    @Option(name="-n", description="Do not print the trailing newline character")
+    @Option(name="-n", description="command.option.trailingNewline")
     private boolean trailingNewline = true;
 
     @SuppressWarnings({"MismatchedQueryAndUpdateOfCollection"})
-    @Argument(description="Arguments")
+    @Argument(description="command.argument.args")
     private List<String> args;
 
     public Object execute(final CommandContext context) throws Exception {

Modified: geronimo/gshell/trunk/gshell-commands/gshell-builtins/src/main/resources/org/apache/geronimo/gshell/commands/builtins/EchoCommand.properties
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-commands/gshell-builtins/src/main/resources/org/apache/geronimo/gshell/commands/builtins/EchoCommand.properties?rev=695171&r1=695170&r2=695171&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-commands/gshell-builtins/src/main/resources/org/apache/geronimo/gshell/commands/builtins/EchoCommand.properties (original)
+++ geronimo/gshell/trunk/gshell-commands/gshell-builtins/src/main/resources/org/apache/geronimo/gshell/commands/builtins/EchoCommand.properties Sun Sep 14 02:53:08 2008
@@ -25,5 +25,11 @@
 
 command.description=Print arguments to standard output.
 
+command.option.help=Display this help message
+
+command.option.trailingNewline=Do not print the trailing newline character
+
+command.argument.args=Arguments
+
 command.manual=\
   TODO: echo manual
\ No newline at end of file

Modified: geronimo/gshell/trunk/gshell-support/gshell-clp/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-support/gshell-clp/pom.xml?rev=695171&r1=695170&r2=695171&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-support/gshell-clp/pom.xml (original)
+++ geronimo/gshell/trunk/gshell-support/gshell-clp/pom.xml Sun Sep 14 02:53:08 2008
@@ -37,4 +37,11 @@
         Annotation-based command-line processing support.
     </description>
 
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.geronimo.gshell.support</groupId>
+            <artifactId>gshell-i18n</artifactId>
+        </dependency>
+    </dependencies>
+
 </project>
\ No newline at end of file

Modified: geronimo/gshell/trunk/gshell-support/gshell-clp/src/main/java/org/apache/geronimo/gshell/clp/CommandLineProcessor.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-support/gshell-clp/src/main/java/org/apache/geronimo/gshell/clp/CommandLineProcessor.java?rev=695171&r1=695170&r2=695171&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-support/gshell-clp/src/main/java/org/apache/geronimo/gshell/clp/CommandLineProcessor.java (original)
+++ geronimo/gshell/trunk/gshell-support/gshell-clp/src/main/java/org/apache/geronimo/gshell/clp/CommandLineProcessor.java Sun Sep 14 02:53:08 2008
@@ -30,6 +30,7 @@
 import java.util.Set;
 import java.util.TreeMap;
 
+import org.apache.geronimo.gshell.i18n.MessageSource;
 import org.apache.geronimo.gshell.clp.handler.Handler;
 import org.apache.geronimo.gshell.clp.handler.Handlers;
 import org.apache.geronimo.gshell.clp.handler.Parameters;
@@ -58,7 +59,7 @@
 
         addBean(bean);
     }
-    
+
     public List<Handler> getOptionHandlers() {
         return Collections.unmodifiableList(optionHandlers);
     }

Modified: geronimo/gshell/trunk/gshell-support/gshell-clp/src/main/java/org/apache/geronimo/gshell/clp/Printer.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-support/gshell-clp/src/main/java/org/apache/geronimo/gshell/clp/Printer.java?rev=695171&r1=695170&r2=695171&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-support/gshell-clp/src/main/java/org/apache/geronimo/gshell/clp/Printer.java (original)
+++ geronimo/gshell/trunk/gshell-support/gshell-clp/src/main/java/org/apache/geronimo/gshell/clp/Printer.java Sun Sep 14 02:53:08 2008
@@ -28,6 +28,8 @@
 import java.util.ResourceBundle;
 
 import org.apache.geronimo.gshell.clp.handler.Handler;
+import org.apache.geronimo.gshell.i18n.MessageSource;
+import org.apache.geronimo.gshell.i18n.ResourceNotFoundException;
 
 /**
  * Helper to print formatted help and usage text.
@@ -38,12 +40,20 @@
 {
     private CommandLineProcessor processor;
 
+    private MessageSource messages;
+
     public Printer(final CommandLineProcessor processor) {
         assert processor != null;
         
         this.processor = processor;
     }
 
+    public void setMessageSource(final MessageSource messages) {
+        assert messages != null;
+
+        this.messages = messages;
+    }
+
     private String getMetaVariable(final Handler handler, final ResourceBundle bundle) {
         assert handler != null;
 
@@ -110,6 +120,10 @@
                 return a.descriptor.toString().compareTo(b.descriptor.toString());
             }
         });
+
+        //
+        // TODO: i18n, pull for standard messages, not from command's messages
+        //
         
         if (name != null) {
         	String syntax = "syntax: " + name;
@@ -164,6 +178,26 @@
     	printUsage(writer, null, name);
     }
 
+    /**
+     * Get the description for the given descriptor, using any configured messages for i18n support.
+     */
+    private String getDescription(final Descriptor descriptor) {
+        assert descriptor != null;
+
+        String message = descriptor.description();
+
+        if (message != null && messages != null) {
+            try {
+                message = messages.getMessage(message);
+            }
+            catch (ResourceNotFoundException e) {
+                // Just use the code
+            }
+        }
+
+        return message;
+    }
+
     private void printHandler(final PrintWriter out, final Handler handler, final int len, final ResourceBundle bundle) {
         assert out != null;
         assert handler != null;
@@ -179,7 +213,7 @@
         int descriptionWidth = terminalWidth - len - prefixSeperatorWidth;
 
         // Only render if their is a discription, else its hidden
-        String desc = handler.descriptor.description();
+        String desc = getDescription(handler.descriptor);
         if (desc.length() == 0) {
             return;
         }
@@ -203,7 +237,7 @@
         // Render the description splitting it over multipule lines if its longer than column size
         while (desc != null && desc.length() > 0) {
             //
-            // TODO: Should relaly only split on words here...
+            // FIXME: Only split on words
             //
 
             int i = desc.indexOf('\n');

Modified: geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/command/CommandDocumenterImpl.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/command/CommandDocumenterImpl.java?rev=695171&r1=695170&r2=695171&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/command/CommandDocumenterImpl.java (original)
+++ geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/command/CommandDocumenterImpl.java Sun Sep 14 02:53:08 2008
@@ -45,7 +45,7 @@
 
     public String getName() {
         if (name == null) {
-            name = getMessage("command.name");
+            name = getContainer().getMessages().getMessage("command.name");
         }
         return name;
     }
@@ -56,7 +56,7 @@
 
     public String getDescription() {
         if (description == null) {
-            description = getMessage("command.description");
+            description = getContainer().getMessages().getMessage("command.description");
         }
         return description;
     }
@@ -67,7 +67,7 @@
 
     public String getManual() {
         if (manual == null) {
-            manual = getMessage("command.manual");
+            manual = getContainer().getMessages().getMessage("command.manual");
         }
         return manual;
     }
@@ -76,15 +76,6 @@
         this.manual = manual;
     }
 
-    private String getMessage(final String code) {
-        assert code != null;
-
-        MessageSource messages = getContainer().getMessages();
-        assert messages != null;
-        
-        return messages.getMessage(code);
-    }
-
     // CommandDocumenter
 
     public void renderUsage(final CommandInfo info, final PrintWriter out) {
@@ -94,7 +85,7 @@
         log.debug("Rendering command usage");
         
         CommandLineProcessor clp = new CommandLineProcessor();
-
+        
         // Attach our helper to inject --help
         CommandContainerImpl.HelpSupport help = new CommandContainerImpl.HelpSupport();
         clp.addBean(help);
@@ -107,15 +98,12 @@
         String name = getName();
         String desc = getDescription();
 
-        //
-        // TODO: Add some nice ANSI muck
-        //
-
         // Render the help
         out.println(desc);
         out.println();
 
         Printer printer = new Printer(clp);
+        printer.setMessageSource(getContainer().getMessages());
         printer.printUsage(out, name);
         
         out.println();