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/11 20:31:40 UTC

svn commit: r694400 - in /geronimo/gshell/trunk/gshell-wisdom: gshell-wisdom-bootstrap/ gshell-wisdom-bootstrap/src/main/java/org/apache/geronimo/gshell/wisdom/builder/ gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/command/ gshell-...

Author: jdillon
Date: Thu Sep 11 11:31:38 2008
New Revision: 694400

URL: http://svn.apache.org/viewvc?rev=694400&view=rev
Log:
Reduce some code dup with CommandContainerComponentSupport
Add timeing logs for building a Shell via ShellBuilderImpl

Added:
    geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/command/CommandContainerComponentSupport.java   (contents, props changed)
      - copied, changed from r694366, geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/command/CommandCompleterImpl.java
Modified:
    geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-bootstrap/pom.xml
    geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-bootstrap/src/main/java/org/apache/geronimo/gshell/wisdom/builder/ShellBuilderImpl.java
    geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/command/CommandCompleterImpl.java
    geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/command/CommandDocumenterImpl.java
    geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/shell/LayoutManagerImpl.java

Modified: geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-bootstrap/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-bootstrap/pom.xml?rev=694400&r1=694399&r2=694400&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-bootstrap/pom.xml (original)
+++ geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-bootstrap/pom.xml Thu Sep 11 11:31:38 2008
@@ -54,6 +54,11 @@
         </dependency>
 
         <dependency>
+            <groupId>org.apache.geronimo.gshell.support</groupId>
+            <artifactId>gshell-chronos</artifactId>
+        </dependency>
+
+        <dependency>
             <groupId>org.apache.geronimo.gshell</groupId>
             <artifactId>gshell-api</artifactId>
         </dependency>

Modified: geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-bootstrap/src/main/java/org/apache/geronimo/gshell/wisdom/builder/ShellBuilderImpl.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-bootstrap/src/main/java/org/apache/geronimo/gshell/wisdom/builder/ShellBuilderImpl.java?rev=694400&r1=694399&r2=694400&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-bootstrap/src/main/java/org/apache/geronimo/gshell/wisdom/builder/ShellBuilderImpl.java (original)
+++ geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-bootstrap/src/main/java/org/apache/geronimo/gshell/wisdom/builder/ShellBuilderImpl.java Thu Sep 11 11:31:38 2008
@@ -33,6 +33,7 @@
 import org.apache.geronimo.gshell.shell.Shell;
 import org.apache.geronimo.gshell.spring.BeanContainer;
 import org.apache.geronimo.gshell.spring.BeanContainerImpl;
+import org.apache.geronimo.gshell.chronos.StopWatch;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -60,8 +61,6 @@
 
     private ArtifactManager artifactManager;
 
-    public ShellBuilderImpl() {}
-
     private BeanContainer createContainer() {
         return new BeanContainerImpl(getClassLoader());
     }
@@ -168,6 +167,9 @@
     public Shell create() throws Exception {
         log.debug("Building");
 
+        StopWatch watch = new StopWatch();
+        watch.start();
+        
         // Set some defaults
         if (applicationConfig.getIo() == null) {
             applicationConfig.setIo(new IO());
@@ -202,6 +204,10 @@
         // Configure application
         getApplicationManager().configure(applicationConfig);
 
-        return getApplicationManager().create();
+        Shell shell = getApplicationManager().create();
+
+        log.debug("Created shell in {}", watch);
+
+        return shell;
     }
 }
\ No newline at end of file

Modified: geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/command/CommandCompleterImpl.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/command/CommandCompleterImpl.java?rev=694400&r1=694399&r2=694400&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/command/CommandCompleterImpl.java (original)
+++ geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/command/CommandCompleterImpl.java Thu Sep 11 11:31:38 2008
@@ -33,18 +33,9 @@
  * @version $Rev$ $Date$
  */
 public class CommandCompleterImpl
-    implements CommandCompleter, CommandContainerAware
+    extends CommandContainerComponentSupport
+    implements CommandCompleter
 {
-    private final Logger log = LoggerFactory.getLogger(getClass());
-
-    private CommandContainer container;
-
-    public void setCommandContainer(final CommandContainer container) {
-        assert container != null;
-
-        this.container = container;
-    }
-
     public Completor createCompletor(final CommandInfo info) {
         assert info != null;
 

Copied: geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/command/CommandContainerComponentSupport.java (from r694366, geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/command/CommandCompleterImpl.java)
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/command/CommandContainerComponentSupport.java?p2=geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/command/CommandContainerComponentSupport.java&p1=geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/command/CommandCompleterImpl.java&r1=694366&r2=694400&rev=694400&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/command/CommandCompleterImpl.java (original)
+++ geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/command/CommandContainerComponentSupport.java Thu Sep 11 11:31:38 2008
@@ -19,37 +19,26 @@
 
 package org.apache.geronimo.gshell.wisdom.command;
 
-import jline.Completor;
-import org.apache.geronimo.gshell.command.CommandCompleter;
-import org.apache.geronimo.gshell.command.CommandInfo;
-import org.apache.geronimo.gshell.command.CommandContainerAware;
 import org.apache.geronimo.gshell.command.CommandContainer;
+import org.apache.geronimo.gshell.command.CommandContainerAware;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
- * The default {@link CommandCompleter} component.
+ * Support for componets of a {@link CommandContainer}.
  *
  * @version $Rev$ $Date$
  */
-public class CommandCompleterImpl
-    implements CommandCompleter, CommandContainerAware
+public class CommandContainerComponentSupport
+    implements CommandContainerAware
 {
-    private final Logger log = LoggerFactory.getLogger(getClass());
+    protected final Logger log = LoggerFactory.getLogger(getClass());
 
-    private CommandContainer container;
+    protected CommandContainer container;
 
     public void setCommandContainer(final CommandContainer container) {
         assert container != null;
 
         this.container = container;
     }
-
-    public Completor createCompletor(final CommandInfo info) {
-        assert info != null;
-
-        // TODO:
-
-        throw new Error("Not implemented");
-    }
 }
\ No newline at end of file

Propchange: geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/command/CommandContainerComponentSupport.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/command/CommandContainerComponentSupport.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/command/CommandContainerComponentSupport.java
------------------------------------------------------------------------------
    svn:mergeinfo = 

Propchange: geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/command/CommandContainerComponentSupport.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

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=694400&r1=694399&r2=694400&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 Thu Sep 11 11:31:38 2008
@@ -37,18 +37,9 @@
  * @version $Rev$ $Date$
  */
 public class CommandDocumenterImpl
-    implements CommandDocumenter, CommandContainerAware
+    extends CommandContainerComponentSupport
+    implements CommandDocumenter
 {
-    private final Logger log = LoggerFactory.getLogger(getClass());
-
-    private CommandContainer container;
-
-    public void setCommandContainer(final CommandContainer container) {
-        assert container != null;
-
-        this.container = container;
-    }
-
     /**
      * Get the action instance for the given command context.
      *

Modified: geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/shell/LayoutManagerImpl.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/shell/LayoutManagerImpl.java?rev=694400&r1=694399&r2=694400&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/shell/LayoutManagerImpl.java (original)
+++ geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/shell/LayoutManagerImpl.java Thu Sep 11 11:31:38 2008
@@ -25,9 +25,12 @@
 import org.apache.geronimo.gshell.model.layout.GroupNode;
 import org.apache.geronimo.gshell.model.layout.Layout;
 import org.apache.geronimo.gshell.model.layout.Node;
+import org.apache.geronimo.gshell.wisdom.application.event.ApplicationConfiguredEvent;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationEvent;
+import org.springframework.context.ApplicationListener;
 
 /**
  * The default implementation of the {@link LayoutManager} component.
@@ -35,7 +38,7 @@
  * @version $Rev$ $Date$
  */
 public class LayoutManagerImpl
-    implements LayoutManager
+    implements LayoutManager, ApplicationListener
 {
     private final Logger log = LoggerFactory.getLogger(getClass());
 
@@ -46,23 +49,21 @@
 
     public LayoutManagerImpl() {}
 
-    private Layout lookupLayout() {
-        assert applicationManager != null;
+    public void onApplicationEvent(final ApplicationEvent event) {
+        assert event != null;
 
-        Layout layout = applicationManager.getApplication().getModel().getLayout();
+        if (event instanceof ApplicationConfiguredEvent) {
+            ApplicationConfiguredEvent targetEvent = (ApplicationConfiguredEvent)event;
 
-        if (layout == null) {
-            throw new IllegalStateException("Layout has not been configured for application");
-        }
+            layout = targetEvent.getApplication().getModel().getLayout();
 
-        return layout;
+            log.debug("Using layout: {}", layout);
+        }
     }
 
     public Layout getLayout() {
         if (layout == null) {
-            layout = lookupLayout();
-
-            log.debug("Using layout: {}", layout);
+            throw new IllegalStateException("Layout not configured");
         }
 
         return layout;