Author: jawi
Date: Wed Jul 12 13:53:04 2017
New Revision: 1801736
URL: http://svn.apache.org/viewvc?rev=1801736&view=rev
Log:
Fixed some annoyances and abbeyances:
- log information to the log service in case a generic action like "store" or
"revert" fails;
- in case a login fails due to problems with the backend, do not show the main
grid (causing multiple grids to appear when trying to login again);
- show more information about the state changes of a target in the status line
(instead of `Target foo null` message).
Modified:
ace/trunk/org.apache.ace.webui.vaadin/src/org/apache/ace/webui/vaadin/LoginWindow.java
ace/trunk/org.apache.ace.webui.vaadin/src/org/apache/ace/webui/vaadin/VaadinClient.java
ace/trunk/org.apache.ace.webui.vaadin/src/org/apache/ace/webui/vaadin/component/MainActionToolbar.java
ace/trunk/org.apache.ace.webui.vaadin/src/org/apache/ace/webui/vaadin/component/StatusLine.java
Modified:
ace/trunk/org.apache.ace.webui.vaadin/src/org/apache/ace/webui/vaadin/LoginWindow.java
URL:
http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.webui.vaadin/src/org/apache/ace/webui/vaadin/LoginWindow.java?rev=1801736&r1=1801735&r2=1801736&view=diff
==============================================================================
---
ace/trunk/org.apache.ace.webui.vaadin/src/org/apache/ace/webui/vaadin/LoginWindow.java
(original)
+++
ace/trunk/org.apache.ace.webui.vaadin/src/org/apache/ace/webui/vaadin/LoginWindow.java
Wed Jul 12 13:53:04 2017
@@ -18,6 +18,9 @@
*/
package org.apache.ace.webui.vaadin;
+import static org.osgi.service.log.LogService.LOG_INFO;
+import static org.osgi.service.log.LogService.LOG_WARNING;
+
import java.util.Map;
import org.osgi.service.log.LogService;
@@ -40,7 +43,7 @@ import com.vaadin.ui.themes.Reindeer;
*/
public class LoginWindow extends Window {
/**
- *
+ *
*/
public static interface LoginFunction {
boolean login(String name, String password);
@@ -53,7 +56,7 @@ public class LoginWindow extends Window
/**
* Creates a new {@link LoginWindow} instance.
- *
+ *
* @param log
* the log service to use;
* @param loginFunction
@@ -109,12 +112,12 @@ public class LoginWindow extends Window
String password = (String) passwordField.getValue();
if (m_loginFunction.login(username, password)) {
- m_log.log(LogService.LOG_INFO, "Apache Ace WebUI
succesfull login by user: " + username);
+ m_log.log(LOG_INFO, "Apache Ace WebUI succesfull login
by user: " + username);
closeWindow();
}
else {
- m_log.log(LogService.LOG_WARNING, "Apache Ace WebUI
invalid username or password entered.");
+ m_log.log(LOG_WARNING, "Apache Ace WebUI invalid
username or password entered.");
m_additionalInfo.setValue("Invalid username or
password!");
@@ -145,7 +148,7 @@ public class LoginWindow extends Window
/**
* Shows this login window on screen.
- *
+ *
* @param parent
* the parent window, cannot be <code>null</code>.
*/
Modified:
ace/trunk/org.apache.ace.webui.vaadin/src/org/apache/ace/webui/vaadin/VaadinClient.java
URL:
http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.webui.vaadin/src/org/apache/ace/webui/vaadin/VaadinClient.java?rev=1801736&r1=1801735&r2=1801736&view=diff
==============================================================================
---
ace/trunk/org.apache.ace.webui.vaadin/src/org/apache/ace/webui/vaadin/VaadinClient.java
(original)
+++
ace/trunk/org.apache.ace.webui.vaadin/src/org/apache/ace/webui/vaadin/VaadinClient.java
Wed Jul 12 13:53:04 2017
@@ -106,7 +106,6 @@ import com.vaadin.ui.Window.Notification
/**
* Main application entry point.
*/
-@SuppressWarnings("serial")
public class VaadinClient extends com.vaadin.Application implements
AssociationManager, LoginFunction {
// basic session ID generator
@@ -116,7 +115,7 @@ public class VaadinClient extends com.va
/**
* Remove the given directory and all it's files and subdirectories
- *
+ *
* @param directory
* the name of the directory to remove
*/
@@ -202,9 +201,9 @@ public class VaadinClient extends com.va
/**
* Creates a new {@link VaadinClient} instance.
- *
+ *
* @param m_manager2
- *
+ *
* @param aceHost
* the hostname where the management service can be reached;
* @param obrUrl
@@ -470,7 +469,7 @@ public class VaadinClient extends com.va
/**
* Create a new distribution in the distribution repository
- *
+ *
* @param name
* the name of the new distribution;
* @param description
@@ -486,7 +485,7 @@ public class VaadinClient extends com.va
/**
* Create a new feature in the feature repository.
- *
+ *
* @param name
* the name of the new feature;
* @param description
@@ -502,7 +501,7 @@ public class VaadinClient extends com.va
/**
* Create a new target in the stateful target repository.
- *
+ *
* @param name
* the name of the new target;
*/
@@ -573,9 +572,9 @@ public class VaadinClient extends com.va
/**
* Create a button to show a pop window for adding new features.
- *
+ *
* @param user
- *
+ *
* @param main
* Main Window
* @return Button
@@ -594,9 +593,9 @@ public class VaadinClient extends com.va
/**
* Create a button to show a popup window for adding a new distribution.
On success this calls the
* createDistribution() method.
- *
+ *
* @param user
- *
+ *
* @return the add-distribution button instance.
*/
private Button createAddDistributionButton() {
@@ -624,9 +623,9 @@ public class VaadinClient extends com.va
/***
* Create a button to show popup window for adding a new feature. On
success this calls the createFeature() method.
- *
+ *
* @param user
- *
+ *
* @return the add-feature button instance.
*/
private Button createAddFeatureButton() {
@@ -653,9 +652,9 @@ public class VaadinClient extends com.va
/**
* Create a button to show a popup window for adding a new target. On
success this calls the createTarget() method
- *
+ *
* @param user
- *
+ *
* @return the add-target button instance.
*/
private Button createAddTargetButton() {
@@ -977,6 +976,11 @@ public class VaadinClient extends com.va
return m_admin;
}
+ @Override
+ protected void log(int level, String msg, Exception e, Object...
args) {
+ m_log.log(level, String.format(msg, args), e);
+ }
+
private void updateTableData() {
m_artifactsPanel.populate();
m_featuresPanel.populate();
@@ -990,7 +994,7 @@ public class VaadinClient extends com.va
/**
* Authenticates the given user by creating all dependent services.
- *
+ *
* @param user
* @throws IOException
* in case of I/O problems.
@@ -1010,9 +1014,10 @@ public class VaadinClient extends com.va
// @formatter:on
m_admin.login(context);
- initGrid();
m_admin.checkout();
+ initGrid();
+
return true;
}
catch (Exception e) {
Modified:
ace/trunk/org.apache.ace.webui.vaadin/src/org/apache/ace/webui/vaadin/component/MainActionToolbar.java
URL:
http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.webui.vaadin/src/org/apache/ace/webui/vaadin/component/MainActionToolbar.java?rev=1801736&r1=1801735&r2=1801736&view=diff
==============================================================================
---
ace/trunk/org.apache.ace.webui.vaadin/src/org/apache/ace/webui/vaadin/component/MainActionToolbar.java
(original)
+++
ace/trunk/org.apache.ace.webui.vaadin/src/org/apache/ace/webui/vaadin/component/MainActionToolbar.java
Wed Jul 12 13:53:04 2017
@@ -18,6 +18,9 @@
*/
package org.apache.ace.webui.vaadin.component;
+import static org.osgi.service.log.LogService.LOG_ERROR;
+import static org.osgi.service.log.LogService.LOG_WARNING;
+
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
@@ -87,7 +90,7 @@ public abstract class MainActionToolbar
/**
* Does the actual logout of the user.
- *
+ *
* @throws IOException
* in case of I/O problems during the logout.
*/
@@ -140,7 +143,7 @@ public abstract class MainActionToolbar
/**
* Does the actual retrieval of the latest version.
- *
+ *
* @throws IOException
* in case of I/O problems during the retrieve.
*/
@@ -193,7 +196,7 @@ public abstract class MainActionToolbar
/**
* Does the actual revert of changes.
- *
+ *
* @throws IOException
* in case of problems during I/O exception.
*/
@@ -234,7 +237,7 @@ public abstract class MainActionToolbar
/**
* Does the actual commit of changes.
- *
+ *
* @throws IOException
* in case of I/O problems during the commit.
*/
@@ -256,10 +259,10 @@ public abstract class MainActionToolbar
/**
* Creates a new {@link MainActionToolbar} instance.
- *
+ *
* @param user
* @param manager
- *
+ *
* @param showLogoutButton
* <code>true</code> if a logout button should be shown,
<code>false</code> if it should not.
*/
@@ -317,28 +320,28 @@ public abstract class MainActionToolbar
/**
* Called after a commit/store has taken place, allows additional
UI-updates to be performed.
- *
+ *
* @throws IOException
*/
protected abstract void doAfterCommit() throws IOException;
/**
* Called after a logout has taken place, allows additional UI-updates to
be performed.
- *
+ *
* @throws IOException
*/
protected abstract void doAfterLogout() throws IOException;
/**
* Called after a retrieve has taken place, allows additional UI-updates
to be performed.
- *
+ *
* @throws IOException
*/
protected abstract void doAfterRetrieve() throws IOException;
/**
* Called after a revert has taken place, allows additional UI-updates to
be performed.
- *
+ *
* @throws IOException
*/
protected abstract void doAfterRevert() throws IOException;
@@ -375,8 +378,7 @@ public abstract class MainActionToolbar
component.add(dm.createServiceDependency()
.setService(UIExtensionFactory.class, "(" +
UIExtensionFactory.EXTENSION_POINT_KEY + "=" +
UIExtensionFactory.EXTENSION_POINT_VALUE_MENU + ")")
.setCallbacks("add", "remove")
- .setRequired(false)
- );
+ .setRequired(false));
}
protected final void remove(ServiceReference<UIExtensionFactory> ref,
UIExtensionFactory factory) {
@@ -393,13 +395,21 @@ public abstract class MainActionToolbar
else {
sb.append("<br/>unknown error!");
}
+ log(LOG_ERROR, message, e);
getWindow().showNotification(title, sb.toString(),
Notification.TYPE_ERROR_MESSAGE);
}
protected void showWarning(String title, String message) {
+ log(LOG_WARNING, message);
getWindow().showNotification(title, String.format("<br/>%s", message),
Notification.TYPE_WARNING_MESSAGE);
}
+ protected final void log(int level, String msg, Object... args) {
+ log(level, msg, null, args);
+ }
+
+ protected abstract void log(int level, String msg, Exception e, Object...
args);
+
private void addCrossPlatformShortcut(Button button, int key, String
description) {
// ACE-427 - NPE when using getMainWindow() if no authentication is
used...
WebApplicationContext context = (WebApplicationContext)
getApplication().getContext();
Modified:
ace/trunk/org.apache.ace.webui.vaadin/src/org/apache/ace/webui/vaadin/component/StatusLine.java
URL:
http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.webui.vaadin/src/org/apache/ace/webui/vaadin/component/StatusLine.java?rev=1801736&r1=1801735&r2=1801736&view=diff
==============================================================================
---
ace/trunk/org.apache.ace.webui.vaadin/src/org/apache/ace/webui/vaadin/component/StatusLine.java
(original)
+++
ace/trunk/org.apache.ace.webui.vaadin/src/org/apache/ace/webui/vaadin/component/StatusLine.java
Wed Jul 12 13:53:04 2017
@@ -36,7 +36,6 @@ import com.vaadin.ui.Label;
/**
* Denotes a status line in which a short summary of the latest actions in the
UI are displayed.
*/
-@SuppressWarnings("unchecked")
public class StatusLine extends Label implements EventHandler {
/**
@@ -52,22 +51,25 @@ public class StatusLine extends Label im
RepositoryObject entity = (RepositoryObject)
event.getProperty(RepositoryObject.EVENT_ENTITY);
String type = getType(topic);
+ if (type == null) {
+ // Nothing to do...
+ return;
+ }
+
String action = getAction(topic);
String name = getName(entity);
- if (type != null) {
- if (name != null) {
- setStatus("%s '%s' %s...", type, name, action);
- }
- else if (action != null) {
- setStatus("%s %s...", type, action);
- }
+ if (name != null && action != null) {
+ setStatus("%s '%s' %s...", type, name, action);
+ }
+ else if (action != null) {
+ setStatus("%s %s...", type, action);
}
}
/**
* Sets the status to the given message.
- *
+ *
* @param msg
* the message;
* @param args
@@ -82,15 +84,23 @@ public class StatusLine extends Label im
* @return
*/
private String getAction(String topic) {
- if (topic.endsWith("/" + RepositoryObject.TOPIC_REMOVED_SUFFIX)) {
+ if (topic.endsWith("/REMOVED")) {
return "removed";
}
- else if (topic.endsWith("/" + RepositoryObject.TOPIC_ADDED_SUFFIX)) {
+ else if (topic.endsWith("/ADDED")) {
return "added";
}
- else if (topic.endsWith("/" + RepositoryObject.TOPIC_CHANGED_SUFFIX)) {
+ else if (topic.endsWith("/CHANGED")) {
return "changed";
}
+ else if (topic.endsWith("/STATUS_CHANGED")) {
+ // for stateful target objects only...
+ return "status updated";
+ }
+ else if (topic.endsWith("/AUDITEVENTS_CHANGED")) {
+ // for stateful target objects only...
+ return "audit log updated";
+ }
return null;
}