Author: tveronezi
Date: Wed Oct 17 22:23:54 2012
New Revision: 1399464

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

Added:
    
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/command/impl/GetWebServices.java
      - copied, changed from r1399201, 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/command/impl/GetLog.java
    
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/templates/application-tab-webservices-table.handlebars
    
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/templates/application-tab-webservices.handlebars
    
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/panels/webservices.js
Modified:
    
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/ApplicationController.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-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/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/tomee.less
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/index.html

Copied: 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/command/impl/GetWebServices.java
 (from r1399201, 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/command/impl/GetLog.java)
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/command/impl/GetWebServices.java?p2=openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/command/impl/GetWebServices.java&p1=openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/command/impl/GetLog.java&r1=1399201&r2=1399464&rev=1399464&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/command/impl/GetLog.java
 (original)
+++ 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/command/impl/GetWebServices.java
 Wed Oct 17 22:23:54 2012
@@ -17,17 +17,28 @@
 
 package org.apache.tomee.webapp.command.impl;
 
-import org.apache.commons.lang3.StringEscapeUtils;
 import org.apache.tomee.webapp.command.Command;
 import org.apache.tomee.webapp.command.CommandSession;
+import org.apache.tomee.webapp.helper.rest.Application;
+import org.apache.tomee.webapp.helper.rest.Services;
+import org.apache.tomee.webapp.helper.rest.WebServiceHelperImpl;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class GetWebServices implements Command {
+
+    private Map<String, Object> getServicesMap(final Services services) {
+        final Map<String, Object> result = new HashMap<String, Object>();
+        final List<Application> applications = services.getApplications();
+        for (Application application : applications) {
+            result.put("name", application.getName());
+            result.put("services", application.getServices());
 
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.util.*;
-
-public class GetLog implements Command {
+        }
+        return result;
+    }
 
     @Override
     public Object execute(final CommandSession session, final Map<String, 
Object> params) throws Exception {
@@ -35,122 +46,9 @@ public class GetLog implements Command {
         session.assertAuthenticated();
 
         final Map<String, Object> json = new HashMap<String, Object>();
-
-        final File logFolder = new File(System.getProperty("catalina.base"),
-                "logs");
-
-        final File[] files = logFolder.listFiles();
-        final Set<String> names = new TreeSet<String>();
-        if (files != null) {
-            for (File file : files) {
-                if (file.length() > 0) {
-                    names.add(file.getName());
-                }
-            }
-        }
-
-        json.put("files", names);
-
-        final String loadFileName = (String) params.get("file");
-        if (loadFileName != null) {
-            Map<String, Object> log = new HashMap<String, Object>();
-            log.put("name", loadFileName);
-
-            log.put("lines", read(
-                    Boolean.valueOf((String) params.get("escapeHtml")),
-                    new File(logFolder, loadFileName),
-                    Integer.getInteger((String) params.get("tail"))
-            ));
-
-            json.put("log", log);
-        }
+        json.put("rest", 
getServicesMap(WebServiceHelperImpl.restWebServices()));
+        json.put("soap", 
getServicesMap(WebServiceHelperImpl.soapWebServices()));
 
         return json;
     }
-
-
-    private Collection<String> read(final boolean escapeHtml, final File file,
-                                    final Integer tail) throws IOException {
-        final Queue<String> lines = new LinkedList<String>();
-
-        BufferedReader br = null;
-
-        try {
-            br = new BufferedReader(new FileReader(file));
-
-            final AddLine addLine = new AddLine(lines, tail);
-            String line;
-
-            if (escapeHtml) {
-                while ((line = br.readLine()) != null) {
-                    addLine.add(StringEscapeUtils.escapeHtml4(line));
-                }
-            } else {
-                while ((line = br.readLine()) != null) {
-                    addLine.add(line);
-                }
-            }
-
-        } finally {
-            if (br != null) {
-                br.close();
-            }
-        }
-
-        return lines;
-    }
-
-    private interface AddItemStrategy {
-        void add(String newLine);
-    }
-
-    private class AddLine {
-        final Queue<String> lines;
-        AddItemStrategy strategy;
-        final int tail;
-
-        private AddLine(Queue<String> lines, Integer tail) {
-            this.lines = lines;
-
-            if (tail == null) {
-                this.tail = -1;
-                this.strategy = justAddIt;
-            } else {
-                this.tail = tail;
-                this.strategy = addToEmptyList;
-            }
-        }
-
-        final AddItemStrategy justAddIt = new AddItemStrategy() {
-
-            @Override
-            public void add(String newLine) {
-                lines.add(newLine);
-            }
-        };
-
-        final AddItemStrategy addToEmptyList = new AddItemStrategy() {
-
-            @Override
-            public void add(String newLine) {
-                lines.add(newLine);
-                if (lines.size() > tail) {
-                    strategy = addToFullList;
-                }
-            }
-        };
-
-        final AddItemStrategy addToFullList = new AddItemStrategy() {
-
-            @Override
-            public void add(String newLine) {
-                lines.add(newLine);
-                lines.remove();
-            }
-        };
-
-        public void add(String newLine) {
-            strategy.add(newLine);
-        }
-    }
 }

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=1399464&r1=1399463&r2=1399464&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 17 22:23:54 2012
@@ -55,6 +55,12 @@ TOMEE.ApplicationController = function (
         });
     });
 
+    channel.bind('ui-actions', 'reload-webservices-table', function () {
+        model.sendMessage({
+            cmdName:'GetWebServices'
+        });
+    });
+
     channel.bind('server-command-callback', 'RunScript', function (data) {
         $.meow({
             message:TOMEE.I18N.get('application.console.done')

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=1399464&r1=1399463&r2=1399464&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 17 22:23:54 2012
@@ -54,5 +54,7 @@ TOMEE.ApplicationTemplates = (function (
     'application-tab-log',
     'application-tab-log-file',
     'application-tab-log-lines',
-    'application-disconnected-popup'
+    'application-disconnected-popup',
+    'application-tab-webservices',
+    'application-tab-webservices-table'
 ]);
\ No newline at end of file

Added: 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/templates/application-tab-webservices-table.handlebars
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/templates/application-tab-webservices-table.handlebars?rev=1399464&view=auto
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/templates/application-tab-webservices-table.handlebars
 (added)
+++ 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/templates/application-tab-webservices-table.handlebars
 Wed Oct 17 22:23:54 2012
@@ -0,0 +1,20 @@
+<table class="table">
+    <thead>
+    <tr>
+        <th>{{i18n "application.webservices.app.name"}}</th>
+        <th>{{i18n "application.webservices.ws.name"}}</th>
+        <th>{{i18n "application.webservices.ws.addr"}}</th>
+        <th>{{i18n "application.webservices.ws.port"}}</th>
+    </tr>
+    </thead>
+    <tbody>
+    {{#webservices}}
+    <tr>
+        <td>{{app}}</td>
+        <td>{{data.name}}</td>
+        <td>{{data.address}}</td>
+        <td>{{data.port}}</td>
+    </tr>
+    {{/webservices}}
+    </tbody>
+</table>
\ No newline at end of file

Added: 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/templates/application-tab-webservices.handlebars
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/templates/application-tab-webservices.handlebars?rev=1399464&view=auto
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/templates/application-tab-webservices.handlebars
 (added)
+++ 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/templates/application-tab-webservices.handlebars
 Wed Oct 17 22:23:54 2012
@@ -0,0 +1 @@
+<div class="tomee-webservices"></div>
\ No newline at end of file

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=1399464&r1=1399463&r2=1399464&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 17 22:23:54 2012
@@ -4,6 +4,7 @@
             <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 webservices"><a href="#">{{i18n 
"application.webservices"}}</a></li>
                 <li class="toolbar-item log"><a href="#">{{i18n 
"application.log"}}</a></li>
             </ul>
             <div class="pull-right">

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=1399464&r1=1399463&r2=1399464&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 17 22:23:54 2012
@@ -24,8 +24,8 @@ TOMEE.I18N = (function () {
 
         'ms':'ms',
 
-        'connection.exception': 'Connection exception',
-        'connection.exception.message': 'The application is waiting for the 
server.',
+        'connection.exception':'Connection exception',
+        'connection.exception.message':'The application is waiting for the 
server.',
 
         'application.console':'Console',
         'application.console.run':'Execute',
@@ -37,6 +37,12 @@ TOMEE.I18N = (function () {
         'application.log':'Log',
         'application.log.select.a.file':'Select a file',
 
+        'application.webservices':'Webservices',
+        'application.webservices.app.name':'Application',
+        'application.webservices.ws.name':'Name',
+        'application.webservices.ws.addr':'Address',
+        'application.webservices.ws.port':'Port',
+
         'application.sign.in':'Sign In',
         'application.sign.out':'Sign Out',
         'application.log.in':'Login',

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=1399464&r1=1399463&r2=1399464&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 17 22:23:54 2012
@@ -30,7 +30,7 @@ TOMEE.ApplicationToolbarView = function 
             }));
         });
 
-    })(['home', 'console', 'log']);
+    })(['home', 'console', 'webservices', 'log']);
 
     el.find('.tomee-login-btn').on('click', function () {
         var user = el.find('.tomee-login').val(),

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=1399464&r1=1399463&r2=1399464&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 17 22:23:54 2012
@@ -22,7 +22,8 @@ TOMEE.ApplicationView = function () {
     var channel = TOMEE.ApplicationChannel,
         panelMap = {
             'console':TOMEE.ApplicationTabConsole(),
-            'log':TOMEE.ApplicationTabLog()
+            'log':TOMEE.ApplicationTabLog(),
+            'webservices': TOMEE.ApplicationTabWebservices()
         },
         selected = null,
         container = $(TOMEE.ApplicationTemplates.getValue('application', {})),

Added: 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/panels/webservices.js
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/panels/webservices.js?rev=1399464&view=auto
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/panels/webservices.js
 (added)
+++ 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/panels/webservices.js
 Wed Oct 17 22:23:54 2012
@@ -0,0 +1,88 @@
+/**
+ *
+ * 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.
+ */
+
+TOMEE.ApplicationTabWebservices = function () {
+    "use strict";
+
+    var channel = TOMEE.ApplicationChannel,
+        container = 
$(TOMEE.ApplicationTemplates.getValue('application-tab-webservices', {})),
+        active = false;
+
+    channel.bind('ui-actions', 'container-resized', function (data) {
+        var outputHeight = data.containerHeight - 10;
+        container.height(outputHeight);
+    });
+
+    channel.bind('ui-actions', 'window-F5-pressed', function () {
+        triggerRefresh();
+    });
+
+    channel.bind('server-command-callback-success', 'GetWebServices', function 
(data) {
+        var table = 
$(TOMEE.ApplicationTemplates.getValue('application-tab-webservices-table', {
+            webservices:buildTableData(data.output)
+        }));
+
+        container.empty();
+        container.append(table);
+    });
+
+    function buildTableData(data) {
+        var rest = TOMEE.utils.getArray(data.rest),
+            soap = TOMEE.utils.getArray(data.soap),
+            result = [];
+
+        function buildAppData(app, wsType) {
+            var services = TOMEE.utils.getArray(app.services);
+
+            TOMEE.utils.forEach(services, function (value) {
+                result.push({
+                    'wsType':wsType,
+                    'app':app.name,
+                    'data':value
+                });
+            });
+        }
+
+        TOMEE.utils.forEach(rest, function (app) {
+            buildAppData(app, 'rest');
+        });
+
+        TOMEE.utils.forEach(soap, function (app) {
+            buildAppData(app, 'soap');
+        });
+
+        return result;
+    }
+
+    function triggerRefresh() {
+        channel.send('ui-actions', 'reload-webservices-table', {});
+    }
+
+    return {
+        getEl:function () {
+            return container;
+        },
+        onAppend:function () {
+            active = true;
+            triggerRefresh();
+        },
+        onDetach:function () {
+            active = false;
+        }
+    };
+};
\ No newline at end of file

Modified: 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/tomee.less
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/tomee.less?rev=1399464&r1=1399463&r2=1399464&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/tomee.less 
(original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/tomee.less Wed 
Oct 17 22:23:54 2012
@@ -117,4 +117,8 @@ body {
         }
     }
 
+    .tomee-webservices {
+        padding: 5px;
+    }
+
 }
\ No newline at end of file

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=1399464&r1=1399463&r2=1399464&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 
17 22:23:54 2012
@@ -50,6 +50,7 @@
 
     <script src="app/js/view/panels/console.js"></script>
     <script src="app/js/view/panels/log.js"></script>
+    <script src="app/js/view/panels/webservices.js"></script>
 
 </head>
 <body></body>


Reply via email to