You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by tv...@apache.org on 2012/10/10 02:06:49 UTC

svn commit: r1396427 - in /openejb/trunk/openejb/tomee: tomee-plus-webapp/src/main/assembly/ tomee-webapp/src/main/java/org/apache/tomee/webapp/command/ tomee-webapp/src/main/java/org/apache/tomee/webapp/command/impl/ tomee-webapp/src/main/java/org/apa...

Author: tveronezi
Date: Wed Oct 10 00:06:48 2012
New Revision: 1396427

URL: http://svn.apache.org/viewvc?rev=1396427&view=rev
Log:
https://issues.apache.org/jira/browse/TOMEE-447

Added:
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/command/impl/Login.java
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/templates/application-tab-console-sample.handlebars
Removed:
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/SampleScript.js
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/util/Storage.js
Modified:
    openejb/trunk/openejb/tomee/tomee-plus-webapp/src/main/assembly/war.xml
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/command/CommandSession.java
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/ApplicationSocketConnection.java
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/Application.js
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/ApplicationChannel.js
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/ApplicationController.js
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/ApplicationModel.js
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/ApplicationTemplates.js
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/templates/application-tab-log.handlebars
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/templates/application-toolbar.handlebars
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/util/I18N.js
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/util/Log.js
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/util/Obj.js
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/util/Sequence.js
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/ApplicationToolbarView.js
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/ApplicationView.js
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/panels/console.js
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/panels/log.js
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/index.html
    openejb/trunk/openejb/tomee/tomee-webapp/src/test/java/org/apache/tomee/webapp/test/RunScriptTest.java
    openejb/trunk/openejb/tomee/tomee-webapp/src/test/java/org/apache/tomee/webapp/test/TestCommandExecution.java

Modified: openejb/trunk/openejb/tomee/tomee-plus-webapp/src/main/assembly/war.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-plus-webapp/src/main/assembly/war.xml?rev=1396427&r1=1396426&r2=1396427&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-plus-webapp/src/main/assembly/war.xml (original)
+++ openejb/trunk/openejb/tomee/tomee-plus-webapp/src/main/assembly/war.xml Wed Oct 10 00:06:48 2012
@@ -67,6 +67,7 @@
         <include>**/*.png</include>
         <include>**/*.js</include>
         <include>**/*.html</include>
+        <include>**/*.handlebars</include>
         <include>images/*.gif</include>
         <include>lib/*.jar</include>
       </includes>

Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/command/CommandSession.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/command/CommandSession.java?rev=1396427&r1=1396426&r2=1396427&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/command/CommandSession.java (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/command/CommandSession.java Wed Oct 10 00:06:48 2012
@@ -19,6 +19,7 @@ package org.apache.tomee.webapp.command;
 
 public interface CommandSession {
 
+    boolean login(String user, String password);
     Object get(String key);
     void set(String key, Object value);
 

Added: openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/command/impl/Login.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/command/impl/Login.java?rev=1396427&view=auto
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/command/impl/Login.java (added)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/command/impl/Login.java Wed Oct 10 00:06:48 2012
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.tomee.webapp.command.impl;
+
+import org.apache.tomee.webapp.command.Command;
+import org.apache.tomee.webapp.command.CommandSession;
+
+import java.util.Map;
+
+public class Login implements Command {
+
+    @Override
+    public Object execute(CommandSession session, Map<String, Object> params) throws Exception {
+        final String user = (String) params.get("user");
+        final String pass = (String) params.get("pass");
+        final boolean result = session.login(user, pass);
+
+        if (result) {
+            session.set("user", user);
+            session.set("pass", pass);
+        } else {
+            session.set("user", null);
+            session.set("pass", null);
+        }
+
+        return result;
+    }
+}

Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/ApplicationSocketConnection.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/ApplicationSocketConnection.java?rev=1396427&r1=1396426&r2=1396427&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/ApplicationSocketConnection.java (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/ApplicationSocketConnection.java Wed Oct 10 00:06:48 2012
@@ -23,12 +23,16 @@ import org.apache.catalina.websocket.WsO
 import org.apache.tomee.webapp.command.CommandExecutor;
 import org.apache.tomee.webapp.command.CommandSession;
 
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.Reader;
 import java.nio.CharBuffer;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Properties;
 
 public class ApplicationSocketConnection extends StreamInbound implements CommandSession {
     private Gson gson = new Gson();
@@ -71,6 +75,21 @@ public class ApplicationSocketConnection
     }
 
     @Override
+    public boolean login(String user, String password) {
+        Properties props = new Properties();
+        props.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.RemoteInitialContextFactory");
+        props.put("java.naming.provider.url", "http://127.0.0.1:8080/openejb/ejb");
+        props.setProperty(Context.SECURITY_PRINCIPAL, user);
+        props.setProperty(Context.SECURITY_CREDENTIALS, password);
+        try {
+            new InitialContext(props);
+            return true;
+        } catch (NamingException e) {
+            return false;
+        }
+    }
+
+    @Override
     public Object get(String key) {
         return this.attributes.get(key);
     }

Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/Application.js
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/Application.js?rev=1396427&r1=1396426&r2=1396427&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/Application.js (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/Application.js Wed Oct 10 00:06:48 2012
@@ -26,8 +26,3 @@ var TOMEE = {};
 $(document).ready(function () {
     TOMEE.ApplicationController();
 });
-
-TOMEE.baseURL = function (url) {
-    return '/tomee/' + url;
-};
-

Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/ApplicationChannel.js
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/ApplicationChannel.js?rev=1396427&r1=1396426&r2=1396427&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/ApplicationChannel.js (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/ApplicationChannel.js Wed Oct 10 00:06:48 2012
@@ -28,6 +28,8 @@
  */
 TOMEE.ApplicationChannel = (function () {
 
+    var channels = {};
+
     function createChannel(channelName) {
         "use strict";
 
@@ -122,10 +124,6 @@ TOMEE.ApplicationChannel = (function () 
         };
     }
 
-    ;
-
-    var channels = {};
-
     function getChannel(name) {
         if (!channels[name]) {
             channels[name] = createChannel(name);

Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/ApplicationController.js
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/ApplicationController.js?rev=1396427&r1=1396426&r2=1396427&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/ApplicationController.js (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/ApplicationController.js Wed Oct 10 00:06:48 2012
@@ -29,27 +29,35 @@ TOMEE.ApplicationController = function (
 
     view.render();
     model.sendMessage({
-        cmdName: 'GetLog',
-        aNumber: 1
+        cmdName:'GetLog',
+        aNumber:1
     });
 
-    channel.bind('ui-actions', 'execute-script', function(data) {
+    channel.bind('ui-actions', 'execute-script', function (data) {
         model.sendMessage({
-            cmdName: 'RunScript',
-            scriptCode: data.text
+            cmdName:'RunScript',
+            scriptCode:data.text
+        });
+    });
+
+    channel.bind('ui-actions', 'login-btn-click', function (data) {
+        model.sendMessage({
+            cmdName:'Login',
+            user:data.user,
+            pass:data.pass
         });
     });
 
     channel.bind('ui-actions', 'log-file-selected', function (param) {
         model.sendMessage({
-            cmdName: 'GetLog',
-            file: param.file
+            cmdName:'GetLog',
+            file:param.file
         });
     });
 
-    channel.bind('server-callback', 'RunScript', function(data) {
+    channel.bind('server-command-callback', 'RunScript', function (data) {
         $.meow({
-            message: TOMEE.I18N.get('application.console.done')
+            message:TOMEE.I18N.get('application.console.done')
         });
     });
 

Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/ApplicationModel.js
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/ApplicationModel.js?rev=1396427&r1=1396426&r2=1396427&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/ApplicationModel.js (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/ApplicationModel.js Wed Oct 10 00:06:48 2012
@@ -87,9 +87,14 @@ TOMEE.ApplicationModel = function () {
             var data = JSON.parse(message.data);
             if (data.cmdName) {
                 // Commands callback calls
-                channel.send('server-callback', data.cmdName, {
-                    data:data
-                });
+                channel.send('server-command-callback', data.cmdName, data);
+
+                if (data.success) {
+                    channel.send('server-command-callback-success', data.cmdName, data);
+                } else {
+                    channel.send('server-command-callback-error', data.cmdName, data);
+                }
+
             } else {
                 channel.send('server-callback', 'socket-message-received', {
                     data:data

Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/ApplicationTemplates.js
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/ApplicationTemplates.js?rev=1396427&r1=1396426&r2=1396427&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/ApplicationTemplates.js (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/ApplicationTemplates.js Wed Oct 10 00:06:48 2012
@@ -32,7 +32,6 @@ TOMEE.ApplicationTemplates = (function (
                 }
             }
         );
-
     });
 
     return {
@@ -48,6 +47,7 @@ TOMEE.ApplicationTemplates = (function (
     'application',
     'application-toolbar',
     'application-tab-console',
+    'application-tab-console-sample',
     'application-tab-console-output-line',
     'application-tab-log',
     'application-tab-log-file',

Added: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/templates/application-tab-console-sample.handlebars
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/templates/application-tab-console-sample.handlebars?rev=1396427&view=auto
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/templates/application-tab-console-sample.handlebars (added)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/templates/application-tab-console-sample.handlebars Wed Oct 10 00:06:48 2012
@@ -0,0 +1,14 @@
+// Sample script
+var myImports = new JavaImporter(
+  java.util.Properties,
+  javax.naming.InitialContext
+);
+
+with (myImports) {
+  var p = new Properties();
+  p.put("java.naming.factory.initial", "org.apache.openejb.client.LocalInitialContextFactory");
+
+  var ctx = new InitialContext(p);
+  var myBean =  ctx.lookup("openejb/DeployerBusinessRemote");
+  myBean.getUniqueFile();
+}
\ No newline at end of file

Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/templates/application-tab-log.handlebars
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/templates/application-tab-log.handlebars?rev=1396427&r1=1396426&r2=1396427&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/templates/application-tab-log.handlebars (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/templates/application-tab-log.handlebars Wed Oct 10 00:06:48 2012
@@ -4,11 +4,16 @@
         <div class="navbar-inner">
             <div class="container" style="width: auto; padding: 0 20px;">
                 <ul class="nav pull-right">
-                    <li class="dropdown open">
-                        <a href="#" class="dropdown-toggle"
-                           data-toggle="dropdown">
-                            <span class="log-file-name">{{i18n "application.log.select.a.file"}}</span></a>
-                        <ul class="dropdown-menu tomee-log-files"></ul>
+                    <li class="dropdown">
+                        <div class="btn-group">
+                            <button class="btn btn-primary">
+                                <span class="log-file-name">{{i18n "application.log.select.a.file"}}</span>
+                            </button>
+                            <button class="btn btn-primary dropdown-toggle" data-toggle="dropdown">
+                                <span class="caret"></span>
+                            </button>
+                            <ul class="dropdown-menu tomee-log-files"></ul>
+                        </div>
                     </li>
                 </ul>
             </div>

Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/templates/application-toolbar.handlebars
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/templates/application-toolbar.handlebars?rev=1396427&r1=1396426&r2=1396427&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/templates/application-toolbar.handlebars (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/templates/application-toolbar.handlebars Wed Oct 10 00:06:48 2012
@@ -1,21 +1,25 @@
-    <div class="navbar navbar-inverse navbar-fixed-top">
-      <div class="navbar-inner">
-        <div class="container-fluid">
-          <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
-            <span class="icon-bar"></span>
-            <span class="icon-bar"></span>
-            <span class="icon-bar"></span>
-          </a>
-          <a class="brand" href="#">{{i18n "application.name"}}</a>
-          <div class="nav-collapse collapse">
-            <p class="navbar-text pull-right">
-              Logged in as <a href="#" class="navbar-link">Username</a>
-            </p>
+<div class="navbar navbar-fixed-top">
+    <div class="navbar-inner">
+        <div class="container" style="width: auto; padding: 0 20px;">
+            <a class="brand" href="#">{{i18n "application.name"}}</a>
             <ul class="nav">
-              <li class="toolbar-item active console"><a href="#">{{i18n "application.console"}}</a></li>
-              <li class="toolbar-item log"><a href="#">{{i18n "application.log"}}</a></li>
+                <li class="toolbar-item active console"><a href="#">{{i18n "application.console"}}</a></li>
+                <li class="toolbar-item log"><a href="#">{{i18n "application.log"}}</a></li>
+            </ul>
+            <ul class="nav pull-right">
+                <li class="dropdown">
+                    <a class="dropdown-toggle tomee-user-name" href="#" data-toggle="dropdown">{{i18n "application.sign.in"}}</a>
+                    <div class="dropdown-menu" style="padding: 15px; padding-bottom: 0px;">
+                        <form>
+                            <input type="text" class="span3 tomee-login" placeholder="{{i18n 'application.log.in'}}">
+                            <input type="password" class="span3 tomee-password" placeholder="{{i18n 'application.password'}}">
+                            <button type="button" class="btn btn-primary pull-right tomee-login-btn">
+                                {{i18n "application.sign.in"}}
+                            </button>
+                        </form>
+                    </div>
+                </li>
             </ul>
-          </div><!--/.nav-collapse -->
         </div>
-      </div>
-    </div>
\ No newline at end of file
+    </div>
+</div>        

Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/util/I18N.js
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/util/I18N.js?rev=1396427&r1=1396426&r2=1396427&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/util/I18N.js (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/util/I18N.js Wed Oct 10 00:06:48 2012
@@ -22,17 +22,21 @@ TOMEE.I18N = (function () {
     var messages = {
         'application.name':'Apache TomEE',
 
-        'ms': 'ms',
+        'ms':'ms',
 
         'application.console':'Console',
-        'application.console.run': 'Execute',
-        'application.console.clear.output': 'Clear output',
-        'application.console.done': 'Script executed.',
-        'application.console.run.time': 'Time',
-        'application.console.run.output.empty': 'Empty',
+        'application.console.run':'Execute',
+        'application.console.clear.output':'Clear output',
+        'application.console.done':'Script executed.',
+        'application.console.run.time':'Time',
+        'application.console.run.output.empty':'Empty',
 
         'application.log':'Log',
-        'application.log.select.a.file': 'Select a file',
+        'application.log.select.a.file':'Select a file',
+
+        'application.sign.in':'Sign In',
+        'application.log.in':'Login',
+        'application.password':'Password',
 
         'dummy':'dummy'
     };
@@ -46,7 +50,7 @@ TOMEE.I18N = (function () {
         return result;
     };
 
-    Handlebars.registerHelper('i18n', function(key) {
+    Handlebars.registerHelper('i18n', function (key) {
         return get(key);
     });
 

Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/util/Log.js
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/util/Log.js?rev=1396427&r1=1396426&r2=1396427&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/util/Log.js (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/util/Log.js Wed Oct 10 00:06:48 2012
@@ -14,31 +14,30 @@
  *  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.
-    "use strict";
+ "use strict";
  */
 
-(function() {
+(function () {
     var winConsole = window.console,
 
-        // These are the available methods.
-        // Add more to this list if necessary.
+        // These are the available methods. Add more to this list if necessary.
         consoleEmpty = {
-            error: function() {},
-            log: function() {}
+            error:function () {},
+            log:function () {}
         },
 
-        consoleProxy = (function() {
+        consoleProxy = (function () {
             // This object wraps the "window.console"
             var consoleWrapper = {};
 
             function buildMethodProxy(key) {
                 if (winConsole[key] && typeof winConsole[key] === 'function') {
-                    consoleWrapper[key] = function() {
+                    consoleWrapper[key] = function () {
                         var cFunc = winConsole[key];
                         cFunc.call(winConsole, arguments);
                     };
                 } else {
-                    consoleWrapper[key] = function() {
+                    consoleWrapper[key] = function () {
                         consoleEmpty[key]();
                     };
                 }

Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/util/Obj.js
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/util/Obj.js?rev=1396427&r1=1396426&r2=1396427&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/util/Obj.js (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/util/Obj.js Wed Oct 10 00:06:48 2012
@@ -19,7 +19,7 @@
 
 TOMEE.utils = (function () {
 
-    var isPrimitive = function (value) {
+    function isPrimitive(value) {
         if ('number' === (typeof value)) {
             return true;
         }
@@ -33,9 +33,9 @@ TOMEE.utils = (function () {
         }
 
         return false;
-    };
+    }
 
-    var getSafe = function (obj, defaultValue) {
+    function getSafe(obj, defaultValue) {
         if (obj instanceof Function) {
             try {
                 return obj();
@@ -49,9 +49,9 @@ TOMEE.utils = (function () {
             return obj;
         }
         return defaultValue;
-    };
+    }
 
-    var toArray = function (obj, objBuilder) {
+    function toArray(obj, objBuilder) {
         if (!obj) {
             return [];
         }
@@ -66,9 +66,9 @@ TOMEE.utils = (function () {
         }
 
         return result;
-    };
+    }
 
-    var getArray = function (obj) {
+    function getArray(obj) {
         if (!obj) {
             return [];
         }
@@ -78,30 +78,30 @@ TOMEE.utils = (function () {
         }
 
         return [obj];
-    };
+    }
 
-    var getObject = function (obj) {
+    function getObject(obj) {
         if (!obj) {
             return {};
         }
         return obj;
-    };
+    }
 
-    var stringFormat = function (str, values) {
+    function stringFormat(str, values) {
         var result = str;
         for (var key in values) {
             var reg = new RegExp("\\{" + key + "\\}", "gm");
             result = result.replace(reg, values[key]);
         }
         return result;
-    };
+    }
 
-    var forEach = function (value, callback) {
+    function forEach(value, callback) {
         var arr = getArray(value);
-        for(var i = 0; i < arr.length; i++) {
+        for (var i = 0; i < arr.length; i++) {
             callback(arr[i], i);
         }
-    };
+    }
 
     return {
         isPrimitive:isPrimitive,

Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/util/Sequence.js
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/util/Sequence.js?rev=1396427&r1=1396426&r2=1396427&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/util/Sequence.js (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/util/Sequence.js Wed Oct 10 00:06:48 2012
@@ -21,7 +21,7 @@ TOMEE.Sequence = (function () {
 
     var sequenceMap = {};
 
-    var next = function (prefix) {
+    function next(prefix) {
         var myPrefix = prefix;
         if (!myPrefix || myPrefix === '') {
             myPrefix = 'TOMEE';
@@ -35,9 +35,9 @@ TOMEE.Sequence = (function () {
 
         sequenceMap[myPrefix] = sequence + 1;
         return myPrefix + '-' + sequence;
-    };
+    }
 
     return {
-        next: next
+        next:next
     };
 })();
\ No newline at end of file

Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/ApplicationToolbarView.js
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/ApplicationToolbarView.js?rev=1396427&r1=1396426&r2=1396427&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/ApplicationToolbarView.js (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/ApplicationToolbarView.js Wed Oct 10 00:06:48 2012
@@ -22,25 +22,42 @@ TOMEE.ApplicationToolbarView = function 
     var channel = TOMEE.ApplicationChannel,
         el = $(TOMEE.ApplicationTemplates.getValue('application-toolbar', {}));
 
-    (function(keys) {
-        TOMEE.utils.forEach(keys, function(key) {
-            el.find('.' + key).bind('click', (function() {
+    (function (keys) {
+        TOMEE.utils.forEach(keys, function (key) {
+            el.find('.' + key).bind('click', (function () {
                 updateSelected(key);
             }));
         });
 
     })(['home', 'console', 'log']);
 
-    var updateSelected = function(key) {
+    el.find('.tomee-login-btn').on('click', function () {
+        var user = el.find('.tomee-login').val(),
+            pass = el.find('.tomee-password').val(),
+            btn = el.find('.tomee-login-btn');
+
+        channel.send('ui-actions', 'login-btn-click', {
+            user:user,
+            pass:pass
+        });
+        btn.prop('disabled', true);
+    });
+
+    channel.bind('server-command-callback', 'Login', function (params) {
+        var btn = el.find('.tomee-login-btn');
+        btn.prop('disabled', false);
+    });
+
+    var updateSelected = function (key) {
         el.find('.toolbar-item').removeClass('active');
         el.find('.' + key).addClass('active');
 
         channel.send('ui-actions', 'toolbar-click', {
-            key: key
+            key:key
         });
     };
 
-   return {
+    return {
         getEl:function () {
             return el;
         }

Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/ApplicationView.js
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/ApplicationView.js?rev=1396427&r1=1396426&r2=1396427&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/ApplicationView.js (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/ApplicationView.js Wed Oct 10 00:06:48 2012
@@ -71,7 +71,7 @@ TOMEE.ApplicationView = function () {
         channel.send('ui-actions', 'container-resized', {
             containerHeight:containerHeight,
             containerWidth:containerWidth,
-            toolbarHeight: toolbarHeight
+            toolbarHeight:toolbarHeight
         });
     }
 

Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/panels/console.js
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/panels/console.js?rev=1396427&r1=1396426&r2=1396427&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/panels/console.js (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/panels/console.js Wed Oct 10 00:06:48 2012
@@ -24,6 +24,9 @@ TOMEE.ApplicationTabConsole = function (
         codeArea = null;
 
     container.find('.tomee-execute-btn').on('click', function () {
+        var btn = container.find('.tomee-execute-btn');
+        btn.prop('disabled', true);
+
         channel.send('ui-actions', 'execute-script', {
             text:codeArea.getValue()
         });
@@ -42,15 +45,17 @@ TOMEE.ApplicationTabConsole = function (
         consoleOutput.height(outputHeight);
     });
 
-    channel.bind('server-callback', 'RunScript', function (params) {
-        var consoleOutput = container.find('.tomee-console-output'),
+    channel.bind('server-command-callback', 'RunScript', function (data) {
+        var btn = container.find('.tomee-execute-btn'),
+            consoleOutput = container.find('.tomee-console-output'),
             newLineData = {
-                time: params.data.timeSpent,
-                output: params.data.output
+                time:data.timeSpent,
+                output:data.output
             },
             newLine = $(TOMEE.ApplicationTemplates.getValue(
                 'application-tab-console-output-line', newLineData));
 
+        btn.prop('disabled', false);
         consoleOutput.prepend(newLine);
     });
 
@@ -62,7 +67,7 @@ TOMEE.ApplicationTabConsole = function (
             if (!codeArea) {
                 codeArea = CodeMirror(container.children('.tomee-code').get(0), {
                     lineNumbers:true,
-                    value:'// Add your code here.\n'
+                    value:TOMEE.ApplicationTemplates.getValue('application-tab-console-sample', {})
                 });
             }
             codeArea.focus();

Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/panels/log.js
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/panels/log.js?rev=1396427&r1=1396426&r2=1396427&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/panels/log.js (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/panels/log.js Wed Oct 10 00:06:48 2012
@@ -20,7 +20,8 @@ TOMEE.ApplicationTabLog = function () {
     "use strict";
 
     var channel = TOMEE.ApplicationChannel,
-        container = $(TOMEE.ApplicationTemplates.getValue('application-tab-log', {}));
+        container = $(TOMEE.ApplicationTemplates.getValue('application-tab-log', {})),
+        selectedFile = null;
 
     channel.bind('ui-actions', 'container-resized', function (data) {
         var consoleOutput = container.find('.tomee-log-output'),
@@ -30,15 +31,11 @@ TOMEE.ApplicationTabLog = function () {
         consoleOutput.height(outputHeight);
     });
 
-    channel.bind('server-callback', 'GetLog', function (params) {
-        if (!params.data.success) {
-            return;
-        }
-
+    channel.bind('server-command-callback-success', 'GetLog', function (data) {
         var logFiles = container.find('.tomee-log-files');
         logFiles.empty();
 
-        TOMEE.utils.forEach(params.data.output.files, function (value) {
+        TOMEE.utils.forEach(data.output.files, function (value) {
             var file = $(TOMEE.ApplicationTemplates.getValue('application-tab-log-file', {
                 file:value
             }));
@@ -50,16 +47,29 @@ TOMEE.ApplicationTabLog = function () {
             logFiles.append(file);
         });
 
-        if (params.data.output.log) {
-            setFileName(params.data.output.log.name);
+        if (data.output.log) {
+            setFileName(data.output.log.name);
             var lines = container.find('.tomee-log-output');
             lines.empty();
             lines.append($(TOMEE.ApplicationTemplates.getValue('application-tab-log-lines', {
-                lines: params.data.output.log.lines
+                lines:data.output.log.lines
             })));
+
+            lines.animate({
+                scrollTop: lines.prop("scrollHeight") - lines.height()
+            }, 500);
         }
     });
 
+    container.find('.log-file-name').on('click', function() {
+        if(!selectedFile) {
+            return;
+        }
+        channel.send('ui-actions', 'log-file-selected', {
+            file:selectedFile
+        });
+    });
+
     channel.bind('ui-actions', 'log-file-selected', function (param) {
         setFileName(param.file);
     });
@@ -67,6 +77,7 @@ TOMEE.ApplicationTabLog = function () {
     function setFileName(name) {
         var el = container.find('.log-file-name');
         el.html(name);
+        selectedFile = name;
     }
 
     return {

Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/index.html
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/index.html?rev=1396427&r1=1396426&r2=1396427&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/index.html (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/index.html Wed Oct 10 00:06:48 2012
@@ -38,10 +38,8 @@
     <script src="app/js/util/Log.js"></script>
     <script src="app/js/util/Obj.js"></script>
     <script src="app/js/util/Sequence.js"></script>
-    <script src="app/js/util/Storage.js"></script>
 
     <script src="app/js/ApplicationTemplates.js"></script>
-
     <script src="app/js/ApplicationChannel.js"></script>
     <script src="app/js/ApplicationController.js"></script>
     <script src="app/js/ApplicationModel.js"></script>

Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/test/java/org/apache/tomee/webapp/test/RunScriptTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/test/java/org/apache/tomee/webapp/test/RunScriptTest.java?rev=1396427&r1=1396426&r2=1396427&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/test/java/org/apache/tomee/webapp/test/RunScriptTest.java (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/test/java/org/apache/tomee/webapp/test/RunScriptTest.java Wed Oct 10 00:06:48 2012
@@ -41,6 +41,11 @@ public class RunScriptTest {
         final RunScript shell = new RunScript();
         final Object result = shell.execute(new CommandSession() {
             @Override
+            public boolean login(String user, String password) {
+                return false;
+            }
+
+            @Override
             public Object get(String key) {
                 return null;
             }

Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/test/java/org/apache/tomee/webapp/test/TestCommandExecution.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/test/java/org/apache/tomee/webapp/test/TestCommandExecution.java?rev=1396427&r1=1396426&r2=1396427&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/test/java/org/apache/tomee/webapp/test/TestCommandExecution.java (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/test/java/org/apache/tomee/webapp/test/TestCommandExecution.java Wed Oct 10 00:06:48 2012
@@ -18,7 +18,6 @@
 package org.apache.tomee.webapp.test;
 
 import com.google.gson.Gson;
-import junit.framework.Assert;
 import org.apache.catalina.websocket.WsOutbound;
 import org.apache.tomee.webapp.servlet.ApplicationSocketConnection;
 import org.junit.Test;