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>