You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by de...@apache.org on 2013/03/12 23:24:08 UTC
svn commit: r1455734 - in
/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main:
java/org/apache/uima/ducc/ws/registry/ java/org/apache/uima/ducc/ws/server/
webapp/root/ webapp/root/js/ webapp/root/opensources/images/
Author: degenaro
Date: Tue Mar 12 22:24:08 2013
New Revision: 1455734
URL: http://svn.apache.org/r1455734
Log:
UIMA-2676 DUCC webserver (WS) Services presentation improvements...support for modify instances, autostart
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccCookies.java
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/opensources/images/220px-Harlem_viaduct.jpg (with props)
Modified:
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/registry/IServicesRegistry.java
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccAbstractHandler.java
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccConstants.java
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerLegacy.java
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccWebJobSpecificationProperties.java
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccWebUtil.java
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/js/ducc.js
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/service.details.jsp
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/registry/IServicesRegistry.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/registry/IServicesRegistry.java?rev=1455734&r1=1455733&r2=1455734&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/registry/IServicesRegistry.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/registry/IServicesRegistry.java Tue Mar 12 22:24:08 2013
@@ -40,6 +40,7 @@ public class IServicesRegistry {
public static final String constant_Available = "Available";
public static final String constant_true = "true";
+ public static final String constant_false = "false";
public static final String constant_NotKnown = "NotKnown";
public static final String constant_NotAvailable = "NotAvailable";
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccAbstractHandler.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccAbstractHandler.java?rev=1455734&r1=1455733&r2=1455734&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccAbstractHandler.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccAbstractHandler.java Tue Mar 12 22:24:08 2013
@@ -48,6 +48,7 @@ import org.apache.uima.ducc.transport.ev
import org.apache.uima.ducc.ws.DuccMachinesData;
import org.apache.uima.ducc.ws.registry.IServicesRegistry;
import org.apache.uima.ducc.ws.registry.ServicesRegistry;
+import org.apache.uima.ducc.ws.server.DuccCookies.DateStyle;
import org.eclipse.jetty.server.handler.AbstractHandler;
public abstract class DuccAbstractHandler extends AbstractHandler {
@@ -77,8 +78,6 @@ public abstract class DuccAbstractHandle
public final int defaultRecordsReservations = 8;
public final int maximumRecordsServices = 4096;
public final int defaultRecordsServices = 12;
-
- public final String defaultStyleDate = DuccWebUtil.valueStyleDateLong;
public String dir_home = Utils.findDuccHome();
public String dir_resources = "resources";
@@ -176,7 +175,7 @@ public abstract class DuccAbstractHandle
}
public String getTimeStamp(HttpServletRequest request, DuccId jobId, String millis) {
- return getTimeStamp(getDateStyle(request),getTimeStamp(jobId, millis));
+ return getTimeStamp(DuccCookies.getDateStyle(request),getTimeStamp(jobId, millis));
}
private String getTimeStamp(DuccId jobId, String millis) {
@@ -222,7 +221,7 @@ public abstract class DuccAbstractHandle
retVal = AuthorizationStatus.LoggedInOwner;
}
else {
- RequestRole requestRole = getRole(request);
+ DuccCookies.RequestRole requestRole = DuccCookies.getRole(request);
switch(requestRole) {
case User:
text = "user "+userId+" is not resource owner "+resourceOwnerUserid;
@@ -263,6 +262,7 @@ public abstract class DuccAbstractHandle
switch(authorizationStatus) {
case LoggedInOwner:
case LoggedInAdministrator:
+ retVal = true;
break;
case LoggedInNotOwner:
case LoggedInNotAdministrator:
@@ -294,7 +294,7 @@ public abstract class DuccAbstractHandle
retVal = true;
}
else {
- RequestRole requestRole = getRole(request);
+ DuccCookies.RequestRole requestRole = DuccCookies.getRole(request);
switch(requestRole) {
case User:
text = "user "+userId+" is not resource owner "+resourceOwnerUserid;
@@ -372,17 +372,17 @@ public abstract class DuccAbstractHandle
}
public ArrayList<String> getJobsUsers(HttpServletRequest request) {
- String cookie = DuccWebUtil.getCookie(request,DuccWebUtil.cookieJobsUsers);
+ String cookie = DuccCookies.getCookie(request,DuccCookies.cookieJobsUsers);
return getUsers(cookie);
}
public ArrayList<String> getReservationsUsers(HttpServletRequest request) {
- String cookie = DuccWebUtil.getCookie(request,DuccWebUtil.cookieReservationsUsers);
+ String cookie = DuccCookies.getCookie(request,DuccCookies.cookieReservationsUsers);
return getUsers(cookie);
}
public ArrayList<String> getServicesUsers(HttpServletRequest request) {
- String cookie = DuccWebUtil.getCookie(request,DuccWebUtil.cookieServicesUsers);
+ String cookie = DuccCookies.getCookie(request,DuccCookies.cookieServicesUsers);
return getUsers(cookie);
}
@@ -528,93 +528,10 @@ public abstract class DuccAbstractHandle
return retVal;
}
- public enum DateStyle { Long, Medium, Short };
-
- public DateStyle getDateStyle(HttpServletRequest request) {
- DateStyle dateStyle = DateStyle.Long;
- try {
- String cookie = DuccWebUtil.getCookie(request,DuccWebUtil.cookieStyleDate);
- if(cookie.equals(DuccWebUtil.valueStyleDateLong)) {
- dateStyle = DateStyle.Long;
- }
- else if(cookie.equals(DuccWebUtil.valueStyleDateMedium)) {
- dateStyle = DateStyle.Medium;
- }
- else if(cookie.equals(DuccWebUtil.valueStyleDateShort)) {
- dateStyle = DateStyle.Short;
- }
- }
- catch(Exception e) {
- }
- return dateStyle;
- }
-
- public enum DescriptionStyle { Long, Short };
-
- public DescriptionStyle getDescriptionStyle(HttpServletRequest request) {
- DescriptionStyle descriptionStyle = DescriptionStyle.Long;
- try {
- String cookie = DuccWebUtil.getCookie(request,DuccWebUtil.cookieStyleDescription);
- if(cookie.equals(DuccWebUtil.valueStyleDescriptionLong)) {
- descriptionStyle = DescriptionStyle.Long;
- }
- else if(cookie.equals(DuccWebUtil.valueStyleDescriptionShort)) {
- descriptionStyle = DescriptionStyle.Short;
- }
- }
- catch(Exception e) {
- }
- return descriptionStyle;
- }
-
- public enum FilterUsersStyle { Include, IncludePlusActive, Exclude, ExcludePlusActive };
-
- public FilterUsersStyle getFilterUsersStyle(HttpServletRequest request) {
- FilterUsersStyle filterUsersStyle = FilterUsersStyle.Include;
- try {
- String cookie = DuccWebUtil.getCookie(request,DuccWebUtil.cookieStyleFilterUsers);
- if(cookie.equals(DuccWebUtil.valueStyleFilterUsersInclude)) {
- filterUsersStyle = FilterUsersStyle.Include;;
- }
- else if(cookie.equals(DuccWebUtil.valueStyleFilterUsersIncludePlusActive)) {
- filterUsersStyle = FilterUsersStyle.IncludePlusActive;
- }
- else if(cookie.equals(DuccWebUtil.valueStyleFilterUsersExclude)) {
- filterUsersStyle = FilterUsersStyle.Exclude;
- }
- else if(cookie.equals(DuccWebUtil.valueStyleFilterUsersExcludePlusActive)) {
- filterUsersStyle = FilterUsersStyle.ExcludePlusActive;
- }
- }
- catch(Exception e) {
- }
- return filterUsersStyle;
- }
-
- public enum RequestRole { Administrator, User};
-
- public RequestRole getRole(HttpServletRequest request) {
- RequestRole role = RequestRole.User;
- try {
- String cookie = DuccWebUtil.getCookie(request,DuccWebUtil.cookieRole);
- if(cookie.equals(DuccWebUtil.valueRoleAdministrator)) {
- role = RequestRole.Administrator;;
- }
- /*
- else if(cookie.equals(DuccWebUtil.valueRoleUser)) {
- role = RequestRole.User;
- }
- */
- }
- catch(Exception e) {
- }
- return role;
- }
-
public int getJobsMax(HttpServletRequest request) {
int maxRecords = defaultRecordsJobs;
try {
- String cookie = DuccWebUtil.getCookie(request,DuccWebUtil.cookieJobsMax);
+ String cookie = DuccCookies.getCookie(request,DuccCookies.cookieJobsMax);
int reqRecords = Integer.parseInt(cookie);
if(reqRecords <= maximumRecordsJobs) {
if(reqRecords > 0) {
@@ -630,7 +547,7 @@ public abstract class DuccAbstractHandle
public int getReservationsMax(HttpServletRequest request) {
int maxRecords = defaultRecordsReservations;
try {
- String cookie = DuccWebUtil.getCookie(request,DuccWebUtil.cookieReservationsMax);
+ String cookie = DuccCookies.getCookie(request,DuccCookies.cookieReservationsMax);
int reqRecords = Integer.parseInt(cookie);
if(reqRecords <= maximumRecordsReservations) {
if(reqRecords > 0) {
@@ -646,7 +563,7 @@ public abstract class DuccAbstractHandle
public int getServicesMax(HttpServletRequest request) {
int maxRecords = defaultRecordsServices;
try {
- String cookie = DuccWebUtil.getCookie(request,DuccWebUtil.cookieServicesMax);
+ String cookie = DuccCookies.getCookie(request,DuccCookies.cookieServicesMax);
int reqRecords = Integer.parseInt(cookie);
if(reqRecords <= maximumRecordsServices) {
if(reqRecords > 0) {
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccConstants.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccConstants.java?rev=1455734&r1=1455733&r2=1455734&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccConstants.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccConstants.java Tue Mar 12 22:24:08 2013
@@ -32,4 +32,7 @@ public class DuccConstants {
public static final String hintPreferencesRoleAdministrator = "Hint: use Preferences -> Role [Administrator] to enable";
public static final String hintPreferencesDateStyle = "Hint: use Preferences -> Date Style to alter format";
public static final String hintLogin = "Hint: use Login to enable";
+ public static final String hintLoginAndManual = "Hint: use Login to enable and switch to Refresh = Manual";
+ public static final String hintManual = "Hint: switch to Refresh = Manual";
+ public static final String hintNotAuthorized = "Hint: not authorized";
}
Added: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccCookies.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccCookies.java?rev=1455734&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccCookies.java (added)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccCookies.java Tue Mar 12 22:24:08 2013
@@ -0,0 +1,247 @@
+/*
+ * 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.uima.ducc.ws.server;
+
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.uima.ducc.common.internationalization.Messages;
+import org.apache.uima.ducc.common.utils.DuccLogger;
+import org.apache.uima.ducc.common.utils.DuccLoggerComponents;
+
+public class DuccCookies {
+
+ private static DuccLogger duccLogger = DuccLoggerComponents.getWsLogger(DuccCookies.class.getName());
+ private static Messages messages = Messages.getInstance();
+
+ public static final String cookieUri = "/";
+
+ private static final String join = ":";
+
+ private static final String application = "ducc";
+
+ private static final String refreshmode = "refreshmode";
+ private static final String valueRefreshmodeAutomatic = "automatic";
+ private static final String valueRefreshmodeManual = "manual";
+
+ private static final String jobs = "jobs";
+ private static final String reservations = "reservations";
+ private static final String services = "services";
+
+ private static final String max = "max";
+ private static final String users = "users";
+ //private static final String qualifier = "qualifier";
+
+ public static final String cookieRefreshMode = application+join+refreshmode;
+ public static final String cookieJobsMax = application+join+jobs+max;
+ public static final String cookieJobsUsers = application+join+jobs+users;
+ //public static final String cookieJobsUsersQualifier = application+join+jobs+users+qualifier;
+ public static final String cookieReservationsMax = application+join+reservations+max;
+ public static final String cookieReservationsUsers = application+join+reservations+users;
+ //public static final String cookieReservationsUsersQualifier = application+join+reservations+users+qualifier;
+ public static final String cookieServicesMax = application+join+services+max;
+ public static final String cookieServicesUsers = application+join+services+users;
+ //public static final String cookieServicesUsersQualifier = application+join+services+users+qualifier;
+
+ private static final String agents = "agents";
+
+ public static final String cookieAgents = application+join+agents;
+ public static final String valueAgentsShow = "show";
+
+ private static final String table_style = "table_style";
+ private static final String date_style = "date_style";
+ private static final String description_style = "description_style";
+ private static final String filter_users_style = "filter_users_style";
+ private static final String role = "role";
+
+ public static final String cookieStyleTable = application+join+table_style;
+ public static final String cookieStyleDate = application+join+date_style;
+ public static final String cookieStyleDescription = application+join+description_style;
+ public static final String cookieStyleFilterUsers = application+join+filter_users_style;
+ public static final String cookieRole = application+join+role;
+
+ public static final String valueStyleDateLong = "long";
+ public static final String valueStyleDateMedium = "medium";
+ public static final String valueStyleDateShort = "short";
+ public static final String valueStyleDateDefault = valueStyleDateLong;
+
+ public static final String valueStyleDescriptionLong = "long";
+ public static final String valueStyleDescriptionShort = "short";
+ public static final String valueStyleDescriptionDefault = valueStyleDescriptionLong;
+
+ public static final String valueStyleFilterUsersInclude = "include";
+ public static final String valueStyleFilterUsersIncludePlusActive = "include+active";
+ public static final String valueStyleFilterUsersExclude = "exclude";
+ public static final String valueStyleFilterUsersExcludePlusActive = "exclude+active";
+
+ public static final String valueRoleAdministrator = "administrator";
+ public static final String valueRoleUser = "user";
+
+ protected static final String getCookieKey(String name) {
+ return application+join+"name";
+ }
+
+ protected static String getCookie(String defaultValue, HttpServletRequest request, String name) {
+ String methodName = "getCookie";
+ String retVal = defaultValue;
+ Cookie[] cookies = request.getCookies();
+ if(cookies != null) {
+ for(int i=0; i < cookies.length; i++) {
+ Cookie cookie = cookies[i];
+ if(cookie != null) {
+ String cookieName = cookie.getName();
+ if(cookieName != null) {
+ if(cookieName.equals(name)) {
+ retVal = cookie.getValue();
+ break;
+ }
+ }
+ }
+ }
+ }
+ duccLogger.debug(methodName, null, messages.fetchLabel("name")+name+" "+messages.fetchLabel("value")+retVal);
+ return retVal;
+ }
+
+ protected static String getCookie(HttpServletRequest request, String name) {
+ return getCookie("",request,name);
+ }
+
+ protected static String getCookieOrNull(HttpServletRequest request, String name) {
+ return getCookie(null,request,name);
+ }
+
+ protected static void putCookie(HttpServletResponse response, String name, String value) {
+ String methodName = "putCookie";
+ Cookie cookie = new Cookie(name, value);
+ cookie.setPath(cookieUri);
+ response.addCookie(cookie);
+ duccLogger.debug(methodName, null, messages.fetchLabel("name")+name+" "+messages.fetchLabel("value")+value);
+ }
+
+ protected static void expireCookie(HttpServletResponse response, String name, String value) {
+ String methodName = "expireCookie";
+ Cookie cookie = new Cookie(name, value);
+ cookie.setMaxAge(0);
+ response.addCookie(cookie);
+ duccLogger.debug(methodName, null, messages.fetchLabel("name")+name+" "+messages.fetchLabel("value")+value);
+ }
+
+ public static enum DateStyle { Long, Medium, Short };
+
+ public static DateStyle getDateStyle(HttpServletRequest request) {
+ DateStyle dateStyle = DateStyle.Long;
+ try {
+ String cookie = getCookie(request,cookieStyleDate);
+ if(cookie.equals(valueStyleDateLong)) {
+ dateStyle = DateStyle.Long;
+ }
+ else if(cookie.equals(valueStyleDateMedium)) {
+ dateStyle = DateStyle.Medium;
+ }
+ else if(cookie.equals(valueStyleDateShort)) {
+ dateStyle = DateStyle.Short;
+ }
+ }
+ catch(Exception e) {
+ }
+ return dateStyle;
+ }
+
+ public static enum RefreshMode { Automatic, Manual };
+
+ public static RefreshMode getRefreshMode(HttpServletRequest request) {
+ RefreshMode refreshMode = RefreshMode.Automatic;
+ try {
+ String cookie = getCookie(request,cookieRefreshMode);
+ if(cookie.equals(valueRefreshmodeAutomatic)) {
+ refreshMode = RefreshMode.Automatic;
+ }
+ else if(cookie.equals(valueRefreshmodeManual)) {
+ refreshMode = RefreshMode.Manual;
+ }
+ }
+ catch(Exception e) {
+ }
+ return refreshMode;
+ }
+
+ public static enum DescriptionStyle { Long, Short };
+
+ public static DescriptionStyle getDescriptionStyle(HttpServletRequest request) {
+ DescriptionStyle descriptionStyle = DescriptionStyle.Long;
+ try {
+ String cookie = getCookie(request,cookieStyleDescription);
+ if(cookie.equals(valueStyleDescriptionLong)) {
+ descriptionStyle = DescriptionStyle.Long;
+ }
+ else if(cookie.equals(valueStyleDescriptionShort)) {
+ descriptionStyle = DescriptionStyle.Short;
+ }
+ }
+ catch(Exception e) {
+ }
+ return descriptionStyle;
+ }
+
+ public static enum FilterUsersStyle { Include, IncludePlusActive, Exclude, ExcludePlusActive };
+
+ public static FilterUsersStyle getFilterUsersStyle(HttpServletRequest request) {
+ FilterUsersStyle filterUsersStyle = FilterUsersStyle.Include;
+ try {
+ String cookie = getCookie(request,cookieStyleFilterUsers);
+ if(cookie.equals(valueStyleFilterUsersInclude)) {
+ filterUsersStyle = FilterUsersStyle.Include;;
+ }
+ else if(cookie.equals(valueStyleFilterUsersIncludePlusActive)) {
+ filterUsersStyle = FilterUsersStyle.IncludePlusActive;
+ }
+ else if(cookie.equals(valueStyleFilterUsersExclude)) {
+ filterUsersStyle = FilterUsersStyle.Exclude;
+ }
+ else if(cookie.equals(valueStyleFilterUsersExcludePlusActive)) {
+ filterUsersStyle = FilterUsersStyle.ExcludePlusActive;
+ }
+ }
+ catch(Exception e) {
+ }
+ return filterUsersStyle;
+ }
+
+ public static enum RequestRole { Administrator, User};
+
+ public static RequestRole getRole(HttpServletRequest request) {
+ RequestRole role = RequestRole.User;
+ try {
+ String cookie = getCookie(request,cookieRole);
+ if(cookie.equals(valueRoleAdministrator)) {
+ role = RequestRole.Administrator;;
+ }
+ /*
+ else if(cookie.equals(valueRoleUser)) {
+ role = RequestRole.User;
+ }
+ */
+ }
+ catch(Exception e) {
+ }
+ return role;
+ }
+}
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java?rev=1455734&r1=1455733&r2=1455734&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java Tue Mar 12 22:24:08 2013
@@ -135,6 +135,8 @@ public class DuccHandler extends DuccAbs
private String duccServiceStart = duccContext+"/service-start-request";
private String duccServiceStop = duccContext+"/service-stop-request";
+ private String duccServiceUpdate = duccContext+"/service-update-request";
+
private String jsonMachinesData = duccContext+"/json-machines-data";
private String jsonSystemClassesData = duccContext+"/json-system-classes-data";
private String jsonSystemDaemonsData = duccContext+"/json-system-daemons-data";
@@ -144,6 +146,7 @@ public class DuccHandler extends DuccAbs
private String duccJobSubmitButton = duccContext+"/job-get-submit-button";
private String duccReservationFormButton = duccContext+"/reservation-get-form-button";
private String duccReservationSubmitButton = duccContext+"/reservation-get-submit-button";
+ private String duccServiceUpdateFormButton = duccContext+"/service-update-get-form-button";
private String duccReservationSchedulingClasses = duccContext+"/reservation-scheduling-classes";
private String duccReservationInstanceMemorySizes = duccContext+"/reservation-instance-memory-sizes";
@@ -1533,6 +1536,8 @@ public class DuccHandler extends DuccAbs
String name = request.getParameter("name");
ServicesRegistry servicesRegistry = new ServicesRegistry();
ServicesRegistryMapPayload payload = servicesRegistry.findService(name);
+ String hint = getLoginRefreshHint(request, response);
+ String enable_or_disable = getEnabledOrDisabled(request, response);;
sb.append("<table>");
sb.append("<tr class=\"ducc-head\">");
sb.append("<th>");
@@ -1542,60 +1547,133 @@ public class DuccHandler extends DuccAbs
sb.append("Value");
sb.append("</th>");
sb.append("</tr>");
- String prefix;
Properties properties;
- TreeMap<String,String> map;
- Enumeration<?> enumeration;
- Iterator<String> iterator;
- int i = 0;
- int counter = 0;
- //
- prefix = "svc.";
- properties = payload.svc;
- map = new TreeMap<String,String>();
- enumeration = properties.keys();
- while(enumeration.hasMoreElements()) {
- String key = (String)enumeration.nextElement();
- map.put(key, key);
- }
- iterator = map.keySet().iterator();
- while(iterator.hasNext()) {
- String key = iterator.next();
- String value = properties.getProperty(key);
- if(key.endsWith("classpath")) {
- value = formatClasspath(value);
- String show = "<div class=\"hidedata\"><input type=\"submit\" name=\"showcp\" value=\"Show\" id=\"showbutton"+i+"\"/></div>";
- String hide = "<div class=\"showdata\"><input type=\"submit\" name=\"hidecp\" value=\"Hide\" id=\"hidebutton"+i+"\"/>"+" "+value+"</div>";
- value = show+hide;
- i++;
- }
- putJobSpecEntry(properties, prefix+key, value, sb, counter++);
- }
- //
- prefix = "meta.";
- properties = payload.meta;
- map = new TreeMap<String,String>();
- enumeration = properties.keys();
- while(enumeration.hasMoreElements()) {
- String key = (String)enumeration.nextElement();
- map.put(key, key);
- }
- iterator = map.keySet().iterator();
- while(iterator.hasNext()) {
- String key = iterator.next();
- String value = properties.getProperty(key);
- if(key.endsWith("classpath")) {
- value = formatClasspath(value);
- String show = "<div class=\"hidedata\"><input type=\"submit\" name=\"showcp\" value=\"Show\" id=\"showbutton"+i+"\"/></div>";
- String hide = "<div class=\"showdata\"><input type=\"submit\" name=\"hidecp\" value=\"Hide\" id=\"hidebutton"+i+"\"/>"+" "+value+"</div>";
- value = show+hide;
- i++;
+ if(payload != null) {
+ properties = payload.meta;
+ String resourceOwnerUserId = properties.getProperty(IServicesRegistry.user).trim();
+ if(!isUserAuthorized(request,resourceOwnerUserId)) {
+ if(hint.length() == 0) {
+ AuthorizationStatus authorizationStatus = getAuthorizationStatus(request, resourceOwnerUserId);
+ switch(authorizationStatus) {
+ case LoggedInOwner:
+ case LoggedInAdministrator:
+ break;
+ case LoggedInNotOwner:
+ case LoggedInNotAdministrator:
+ enable_or_disable = "disabled=\"disabled\"";
+ String userid = DuccWebSessionManager.getInstance().getUserId(request);
+ boolean administrator = DuccWebAdministrators.getInstance().isAdministrator(userid);
+ if(administrator) {
+ hint = "title=\""+DuccConstants.hintPreferencesRoleAdministrator+"\"";
+ }
+ else {
+ hint = "title=\""+DuccConstants.hintNotAuthorized+"\"";
+ }
+ break;
+ case NotLoggedIn:
+ break;
+ default:
+ break;
+ }
+ }
}
- putJobSpecEntry(properties, prefix+key, value, sb, counter++);
+ String prefix;
+ TreeMap<String,String> map;
+ Enumeration<?> enumeration;
+ Iterator<String> iterator;
+ int i = 0;
+ int counter = 0;
+ //
+ prefix = "svc.";
+ properties = payload.svc;
+ map = new TreeMap<String,String>();
+ enumeration = properties.keys();
+ while(enumeration.hasMoreElements()) {
+ String key = (String)enumeration.nextElement();
+ map.put(key, key);
+ }
+ iterator = map.keySet().iterator();
+ while(iterator.hasNext()) {
+ String key = iterator.next();
+ String value = properties.getProperty(key);
+ if(key.endsWith("classpath")) {
+ value = formatClasspath(value);
+ String show = "<div class=\"hidedata\"><input type=\"submit\" name=\"showcp\" value=\"Show\" id=\"showbutton"+i+"\"/></div>";
+ String hide = "<div class=\"showdata\"><input type=\"submit\" name=\"hidecp\" value=\"Hide\" id=\"hidebutton"+i+"\"/>"+" "+value+"</div>";
+ value = show+hide;
+ i++;
+ }
+ putJobSpecEntry(properties, prefix+key, value, sb, counter++);
+ }
+ //
+ prefix = "meta.";
+ properties = payload.meta;
+ map = new TreeMap<String,String>();
+ enumeration = properties.keys();
+ while(enumeration.hasMoreElements()) {
+ String key = (String)enumeration.nextElement();
+ map.put(key, key);
+ }
+ iterator = map.keySet().iterator();
+ while(iterator.hasNext()) {
+ String key = iterator.next();
+ String value = properties.getProperty(key);
+ if(key.endsWith("classpath")) {
+ value = formatClasspath(value);
+ String show = "<div class=\"hidedata\"><input type=\"submit\" name=\"showcp\" value=\"Show\" id=\"showbutton"+i+"\"/></div>";
+ String hide = "<div class=\"showdata\"><input type=\"submit\" name=\"hidecp\" value=\"Hide\" id=\"hidebutton"+i+"\"/>"+" "+value+"</div>";
+ value = show+hide;
+ i++;
+ }
+ key = key.trim();
+ // autostart
+ if(key.equalsIgnoreCase(IServicesRegistry.autostart)) {
+ if(value != null) {
+ value = value.trim();
+ if(value.equalsIgnoreCase(IServicesRegistry.constant_true)) {
+ StringBuffer replacement = new StringBuffer();
+ replacement.append("<select id=\"autostart\""+enable_or_disable+" "+hint+">");
+ replacement.append("<option value=\"true\" selected=\"selected\">true</option>");
+ replacement.append("<option value=\"false\" >false</option>");
+ replacement.append("</select>");
+ value = replacement.toString();
+ }
+ else if(value.equalsIgnoreCase(IServicesRegistry.constant_false)) {
+ StringBuffer replacement = new StringBuffer();
+ replacement.append("<select id=\"autostart\""+enable_or_disable+" "+hint+">");
+ replacement.append("<option value=\"false\" selected=\"selected\">false</option>");
+ replacement.append("<option value=\"true\" >true</option>");
+ replacement.append("</select>");
+ value = replacement.toString();
+ }
+ }
+ }
+ // instances
+ if(key.equalsIgnoreCase(IServicesRegistry.instances)) {
+ if(value != null) {
+ value = value.trim();
+ StringBuffer replacement = new StringBuffer();
+ replacement.append("<span id=\"instances_area\">");
+ replacement.append("<input type=\"text\" size=\"5\" id=\"instances\" value=\""+value+"\""+enable_or_disable+" "+hint+">");
+ replacement.append("</span>");
+ value = replacement.toString();
+ }
+ }
+ putJobSpecEntry(properties, prefix+key, value, sb, counter++);
+ }
+ sb.append("</table>");
+ sb.append("<br>");
+ sb.append("<br>");
+ }
+ else {
+ sb.append("<tr>");
+ sb.append("<td>");
+ sb.append("not found");
+ sb.append("</td>");
+ sb.append("<td>");
+ sb.append("</td>");
+ sb.append("</tr>");
}
- sb.append("</table>");
- sb.append("<br>");
- sb.append("<br>");
}
catch(Exception e) {
duccLogger.warn(methodName, null, e);
@@ -2040,7 +2118,7 @@ public class DuccHandler extends DuccAbs
sb.append(",");
sb.append(quote(getPropertiesValue(properties,DuccDaemonRuntimeProperties.keyDaemonName,daemonName.toString())));
sb.append(",");
- sb.append(quote(getTimeStamp(getDateStyle(request),getPropertiesValue(properties,DuccDaemonRuntimeProperties.keyBootTime,""))));
+ sb.append(quote(getTimeStamp(DuccCookies.getDateStyle(request),getPropertiesValue(properties,DuccDaemonRuntimeProperties.keyBootTime,""))));
sb.append(",");
sb.append(quote(getPropertiesValue(properties,DuccDaemonRuntimeProperties.keyNodeIpAddress,"")));
sb.append(",");
@@ -2059,7 +2137,7 @@ public class DuccHandler extends DuccAbs
sb.append(quote(heartmax));
sb.append(",");
try {
- heartmaxTOD = getTimeStamp(getDateStyle(request),heartmaxTOD);
+ heartmaxTOD = getTimeStamp(DuccCookies.getDateStyle(request),heartmaxTOD);
}
catch(Exception e) {
}
@@ -2072,8 +2150,8 @@ public class DuccHandler extends DuccAbs
sb.append("]");
}
// <Agents>
- String cookie = DuccWebUtil.getCookie(request,DuccWebUtil.cookieAgents);
- if(cookie.equals(DuccWebUtil.valueAgentsShow)) {
+ String cookie = DuccCookies.getCookie(request,DuccCookies.cookieAgents);
+ if(cookie.equals(DuccCookies.valueAgentsShow)) {
duccLogger.trace(methodName, jobid, "== show: "+cookie);
ConcurrentSkipListMap<String,MachineInfo> machines = DuccMachinesData.getInstance().getMachines();
Iterator<String> iterator = machines.keySet().iterator();
@@ -2111,7 +2189,7 @@ public class DuccHandler extends DuccAbs
sb.append(quote(daemonName));
// Boot Time
sb.append(",");
- String bootTime = getTimeStamp(getDateStyle(request),getPropertiesValue(properties,DuccDaemonRuntimeProperties.keyBootTime,""));
+ String bootTime = getTimeStamp(DuccCookies.getDateStyle(request),getPropertiesValue(properties,DuccDaemonRuntimeProperties.keyBootTime,""));
sb.append(quote(bootTime));
// Host IP
sb.append(",");
@@ -2152,7 +2230,7 @@ public class DuccHandler extends DuccAbs
if(heartbeatMaxTOD > 0) {
fmtHeartbeatMaxTOD = TimeStamp.simpleFormat(""+heartbeatMaxTOD);
try {
- fmtHeartbeatMaxTOD = getTimeStamp(getDateStyle(request),fmtHeartbeatMaxTOD);
+ fmtHeartbeatMaxTOD = getTimeStamp(DuccCookies.getDateStyle(request),fmtHeartbeatMaxTOD);
}
catch(Exception e) {
}
@@ -2303,6 +2381,78 @@ public class DuccHandler extends DuccAbs
duccLogger.trace(methodName, null, messages.fetch("exit"));
}
+ private String getLoginRefreshHint(HttpServletRequest request,HttpServletResponse response) {
+ String retVal = "";
+ DuccCookies.RefreshMode refreshMode = DuccCookies.getRefreshMode(request);
+ if(!isAuthenticated(request,response)) {
+ switch(refreshMode) {
+ default:
+ case Automatic:
+ retVal = "title=\""+DuccConstants.hintLoginAndManual+"\"";
+ break;
+ case Manual:
+ retVal = "title=\""+DuccConstants.hintLogin+"\"";
+ break;
+ }
+ }
+ else {
+ switch(refreshMode) {
+ default:
+ case Automatic:
+ retVal = "title=\""+DuccConstants.hintManual+"\"";
+ break;
+ case Manual:
+ break;
+ }
+ }
+ return retVal;
+ }
+
+ private String getEnabledOrDisabled(HttpServletRequest request,HttpServletResponse response) {
+ String retVal = "";
+ DuccCookies.RefreshMode refreshMode = DuccCookies.getRefreshMode(request);
+ if(!isAuthenticated(request,response)) {
+ switch(refreshMode) {
+ default:
+ case Automatic:
+ retVal = "disabled=\"disabled\"";
+ break;
+ case Manual:
+ retVal = "disabled=\"disabled\"";
+ break;
+ }
+ }
+ else {
+ switch(refreshMode) {
+ default:
+ case Automatic:
+ retVal = "disabled=\"disabled\"";
+ break;
+ case Manual:
+ break;
+ }
+ }
+ return retVal;
+ }
+
+ private void handleDuccServletServiceUpdateFormButton(String target,Request baseRequest,HttpServletRequest request,HttpServletResponse response)
+ throws IOException, ServletException
+ {
+ String methodName = "handleDuccServletServiceUpdateFormButton";
+ duccLogger.trace(methodName, null, messages.fetch("enter"));
+ String name = request.getParameter("name");
+ StringBuffer sb = new StringBuffer();
+ String hint = getLoginRefreshHint(request, response);
+ String enable_or_disable = getEnabledOrDisabled(request, response);
+ String button = "<button id=\"update_button\" "+hint+" onclick=\"ducc_update_service('"+name+"')\" style=\"font-size:8pt; background-color:green; color:ffffff;\">Update</button>";
+ if(enable_or_disable.length() > 0) {
+ button = "<button id=\"update_button\" "+enable_or_disable+" "+hint+" style=\"font-size:8pt;\">Update</button>";
+ }
+ sb.append(button);
+ response.getWriter().println(sb);
+ duccLogger.trace(methodName, null, messages.fetch("exit"));
+ }
+
private void handleDuccServletReservationSubmitButton(String target,Request baseRequest,HttpServletRequest request,HttpServletResponse response)
throws IOException, ServletException
{
@@ -2454,7 +2604,7 @@ public class DuccHandler extends DuccAbs
String java = "/bin/java";
String jclass = "org.apache.uima.ducc.cli.DuccJobCancel";
String jhome = System.getProperty("java.home");
- RequestRole requestRole = getRole(request);
+ DuccCookies.RequestRole requestRole = DuccCookies.getRole(request);
switch(requestRole) {
case Administrator:
String arg3 = "--"+SpecificationProperties.key_role_administrator;
@@ -2570,7 +2720,7 @@ public class DuccHandler extends DuccAbs
String java = "/bin/java";
String jclass = "org.apache.uima.ducc.cli.DuccReservationCancel";
String jhome = System.getProperty("java.home");
- RequestRole requestRole = getRole(request);
+ DuccCookies.RequestRole requestRole = DuccCookies.getRole(request);
switch(requestRole) {
case Administrator:
String arg3 = "--"+SpecificationProperties.key_role_administrator;
@@ -2637,7 +2787,7 @@ public class DuccHandler extends DuccAbs
String java = "/bin/java";
String jclass = "org.apache.uima.ducc.cli.DuccServiceCancel";
String jhome = System.getProperty("java.home");
- RequestRole requestRole = getRole(request);
+ DuccCookies.RequestRole requestRole = DuccCookies.getRole(request);
switch(requestRole) {
case Administrator:
String arg3 = "--"+SpecificationProperties.key_role_administrator;
@@ -2669,6 +2819,80 @@ public class DuccHandler extends DuccAbs
duccLogger.trace(methodName, null, messages.fetch("exit"));
}
+ private void duccServletServiceCommand(String target,Request baseRequest,HttpServletRequest request,HttpServletResponse response, String command, ArrayList<String> parms)
+ {
+ String methodName = "duccServletServiceCommand";
+ duccLogger.trace(methodName, null, messages.fetch("enter"));
+ try {
+ String name = "id";
+ String value = request.getParameter(name).trim();
+ duccLogger.info(methodName, null, command+" "+messages.fetchLabel("name:")+value);
+ String text;
+ String result;
+ name = value.trim();
+ ServicesRegistry servicesRegistry = new ServicesRegistry();
+ ServicesRegistryMapPayload payload = servicesRegistry.findService(name);
+ if(payload != null) {
+ Properties properties = payload.meta;
+ String id = properties.getProperty(IServicesRegistry.numeric_id);
+ String resourceOwnerUserId = servicesRegistry.findServiceUser(id);
+ if(resourceOwnerUserId != null) {
+ if(isUserAuthorized(request,resourceOwnerUserId)) {
+ String arg1 = "--"+command;
+ String arg2 = id;
+ String userId = duccWebSessionManager.getUserId(request);
+ String cp = System.getProperty("java.class.path");
+ String java = "/bin/java";
+ String jclass = "org.apache.uima.ducc.cli.DuccServiceApi";
+ String jhome = System.getProperty("java.home");
+ DuccCookies.RequestRole requestRole = DuccCookies.getRole(request);
+ switch(requestRole) {
+ /*
+ case Administrator:
+ String arg3 = "--"+SpecificationProperties.key_role_administrator;
+ String[] arglistAdministrator = { "-u", userId, "--", jhome+java, "-cp", cp, jclass, arg1, arg2, arg3 };
+ result = DuccAsUser.duckling(userId, arglistAdministrator);
+ response.getWriter().println(result);
+ break;
+ case User:
+ */
+ default:
+ ArrayList<String> arglist = new ArrayList<String>();
+ arglist.add("-u");
+ arglist.add(userId);
+ arglist.add("--");
+ arglist.add(jhome+java);
+ arglist.add("-cp");
+ arglist.add(cp);
+ arglist.add(jclass);
+ arglist.add(arg1);
+ arglist.add(arg2);
+ for(String parm : parms) {
+ arglist.add(parm);
+ }
+ String[] arglistUser = arglist.toArray(new String[0]);
+ result = DuccAsUser.duckling(userId, arglistUser);
+ response.getWriter().println(result);
+ break;
+ }
+ }
+ }
+ else {
+ text = "name "+value+" not found";
+ duccLogger.debug(methodName, null, messages.fetch(text));
+ }
+ }
+ else {
+ result = text = "name "+value+" not found";
+ duccLogger.debug(methodName, null, messages.fetch(text));
+ }
+ }
+ catch(Exception e) {
+ duccLogger.error(methodName, null, e);
+ }
+ duccLogger.trace(methodName, null, messages.fetch("exit"));
+ }
+
private void duccServletServiceCommand(String target,Request baseRequest,HttpServletRequest request,HttpServletResponse response, String command)
{
String methodName = "duccServletServiceCommand";
@@ -2691,7 +2915,7 @@ public class DuccHandler extends DuccAbs
String java = "/bin/java";
String jclass = "org.apache.uima.ducc.cli.DuccServiceApi";
String jhome = System.getProperty("java.home");
- RequestRole requestRole = getRole(request);
+ DuccCookies.RequestRole requestRole = DuccCookies.getRole(request);
switch(requestRole) {
/*
case Administrator:
@@ -2742,7 +2966,27 @@ public class DuccHandler extends DuccAbs
duccLogger.trace(methodName, null, messages.fetch("exit"));
}
-
+
+ private void handleDuccServletServiceUpdate(String target,Request baseRequest,HttpServletRequest request,HttpServletResponse response)
+ throws IOException, ServletException
+ {
+ String methodName = "handleDuccServletServiceUpdate";
+ duccLogger.trace(methodName, null, messages.fetch("enter"));
+
+ String instances = request.getParameter("instances");
+ String autostart = request.getParameter("autostart");
+
+ ArrayList<String> parms = new ArrayList<String>();
+ parms.add("--instances");
+ parms.add(instances);
+ parms.add("--autostart");
+ parms.add(autostart);
+
+ duccServletServiceCommand(target,baseRequest,request,response,"modify",parms);
+
+ duccLogger.trace(methodName, null, messages.fetch("exit"));
+ }
+
private void handleDuccRequest(String target,Request baseRequest,HttpServletRequest request,HttpServletResponse response)
throws IOException, ServletException
{
@@ -2891,6 +3135,11 @@ public class DuccHandler extends DuccAbs
handleDuccServletServiceStop(target, baseRequest, request, response);
DuccWebUtil.noCache(response);
}
+ else if(reqURI.startsWith(duccServiceUpdate)) {
+ duccLogger.info(methodName, null,"getRequestURI():"+request.getRequestURI());
+ handleDuccServletServiceUpdate(target, baseRequest, request, response);
+ DuccWebUtil.noCache(response);
+ }
else if(reqURI.startsWith(duccReservationSchedulingClasses)) {
handleDuccServletReservationSchedulingClasses(target, baseRequest, request, response);
DuccWebUtil.noCache(response);
@@ -2919,6 +3168,10 @@ public class DuccHandler extends DuccAbs
handleDuccServletReservationFormButton(target, baseRequest, request, response);
DuccWebUtil.noCache(response);
}
+ else if(reqURI.startsWith(duccServiceUpdateFormButton)) {
+ handleDuccServletServiceUpdateFormButton(target, baseRequest, request, response);
+ DuccWebUtil.noCache(response);
+ }
else if(reqURI.startsWith(duccJobSubmitForm)) {
handleDuccServletJobSubmitForm(target, baseRequest, request, response);
DuccWebUtil.noCache(response);
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java?rev=1455734&r1=1455733&r2=1455734&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java Tue Mar 12 22:24:08 2013
@@ -326,7 +326,7 @@ public class DuccHandlerJsonFormat exten
// Description
sb = new StringBuffer();
String description = stringNormalize(job.getStandardInfo().getDescription(),messages.fetch("none"));
- switch(getDescriptionStyle(request)) {
+ switch(DuccCookies.getDescriptionStyle(request)) {
case Long:
default:
sb.append("<span title=\""+DuccConstants.hintPreferencesDescriptionStyleShort+"\">");
@@ -367,7 +367,7 @@ public class DuccHandlerJsonFormat exten
ArrayList<String> users = getJobsUsers(request);
DuccData duccData = DuccData.getInstance();
ConcurrentSkipListMap<JobInfo,JobInfo> sortedJobs = duccData.getSortedJobs();
- FilterUsersStyle filterUsersStyle = getFilterUsersStyle(request);
+ DuccCookies.FilterUsersStyle filterUsersStyle = DuccCookies.getFilterUsersStyle(request);
if(sortedJobs.size()> 0) {
Iterator<Entry<JobInfo, JobInfo>> iterator = sortedJobs.entrySet().iterator();
int counter = 0;
@@ -814,7 +814,7 @@ public class DuccHandlerJsonFormat exten
// Description
sb = new StringBuffer();
String description = stringNormalize(duccwork.getStandardInfo().getDescription(),messages.fetch("none"));
- switch(getDescriptionStyle(request)) {
+ switch(DuccCookies.getDescriptionStyle(request)) {
case Long:
default:
sb.append("<span title=\""+DuccConstants.hintPreferencesDescriptionStyleShort+"\">");
@@ -840,7 +840,7 @@ public class DuccHandlerJsonFormat exten
return row;
}
- private boolean isListEligible(ArrayList<String> users, FilterUsersStyle filterUsersStyle, String user, boolean completed) {
+ private boolean isListEligible(ArrayList<String> users, DuccCookies.FilterUsersStyle filterUsersStyle, String user, boolean completed) {
boolean list = false;
if(!users.isEmpty()) {
switch(filterUsersStyle) {
@@ -898,7 +898,7 @@ public class DuccHandlerJsonFormat exten
ConcurrentSkipListMap<Info,Info> sortedCombinedReservations = duccData.getSortedCombinedReservations();
ArrayList<String> users = getReservationsUsers(request);
- FilterUsersStyle filterUsersStyle = getFilterUsersStyle(request);
+ DuccCookies.FilterUsersStyle filterUsersStyle = DuccCookies.getFilterUsersStyle(request);
if((sortedCombinedReservations.size() > 0)) {
int counter = 0;
@@ -1148,7 +1148,7 @@ public class DuccHandlerJsonFormat exten
// Description
StringBuffer sb = new StringBuffer();
String description = getValue(propertiesSvc,IStateServices.description,"");
- switch(getDescriptionStyle(request)) {
+ switch(DuccCookies.getDescriptionStyle(request)) {
case Long:
default:
sb.append("<span title=\""+DuccConstants.hintPreferencesDescriptionStyleShort+"\">");
@@ -1552,7 +1552,7 @@ public class DuccHandlerJsonFormat exten
String name = getPropertiesValue(properties,DuccDaemonRuntimeProperties.keyDaemonName,daemonName.toString());
row.add(new JsonPrimitive(name));
// Boot Time
- String boot = getTimeStamp(getDateStyle(request),getPropertiesValue(properties,DuccDaemonRuntimeProperties.keyBootTime,""));
+ String boot = getTimeStamp(DuccCookies.getDateStyle(request),getPropertiesValue(properties,DuccDaemonRuntimeProperties.keyBootTime,""));
row.add(new JsonPrimitive(boot));
// Host IP
String ip = getPropertiesValue(properties,DuccDaemonRuntimeProperties.keyNodeIpAddress,"");
@@ -1576,7 +1576,7 @@ public class DuccHandlerJsonFormat exten
// Heartbeat (max) TOD
String heartmaxTOD = TimeStamp.simpleFormat(DuccDaemonsData.getInstance().getMaxHeartbeatTOD(daemonName));
try {
- heartmaxTOD = getTimeStamp(getDateStyle(request),heartmaxTOD);
+ heartmaxTOD = getTimeStamp(DuccCookies.getDateStyle(request),heartmaxTOD);
}
catch(Exception e) {
}
@@ -1593,8 +1593,8 @@ public class DuccHandlerJsonFormat exten
}
// <Agents>
- String cookie = DuccWebUtil.getCookie(request,DuccWebUtil.cookieAgents);
- if(cookie.equals(DuccWebUtil.valueAgentsShow)) {
+ String cookie = DuccCookies.getCookie(request,DuccCookies.cookieAgents);
+ if(cookie.equals(DuccCookies.valueAgentsShow)) {
duccLogger.trace(methodName, jobid, "== show: "+cookie);
ConcurrentSkipListMap<String,MachineInfo> machines = DuccMachinesData.getInstance().getMachines();
@@ -1625,7 +1625,7 @@ public class DuccHandlerJsonFormat exten
String daemonName = "Agent";
row.add(new JsonPrimitive(daemonName));
// Boot Time
- String bootTime = getTimeStamp(getDateStyle(request),getPropertiesValue(properties,DuccDaemonRuntimeProperties.keyBootTime,""));
+ String bootTime = getTimeStamp(DuccCookies.getDateStyle(request),getPropertiesValue(properties,DuccDaemonRuntimeProperties.keyBootTime,""));
row.add(new JsonPrimitive(bootTime));
// Host IP
String hostIP = getPropertiesValue(properties,DuccDaemonRuntimeProperties.keyNodeIpAddress,"");
@@ -1659,7 +1659,7 @@ public class DuccHandlerJsonFormat exten
if(heartbeatMaxTOD > 0) {
fmtHeartbeatMaxTOD = TimeStamp.simpleFormat(""+heartbeatMaxTOD);
try {
- fmtHeartbeatMaxTOD = getTimeStamp(getDateStyle(request),fmtHeartbeatMaxTOD);
+ fmtHeartbeatMaxTOD = getTimeStamp(DuccCookies.getDateStyle(request),fmtHeartbeatMaxTOD);
}
catch(Exception e) {
}
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerLegacy.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerLegacy.java?rev=1455734&r1=1455733&r2=1455734&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerLegacy.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerLegacy.java Tue Mar 12 22:24:08 2013
@@ -284,7 +284,7 @@ public class DuccHandlerLegacy extends D
// Description
sb.append("<td valign=\"bottom\">");
String description = stringNormalize(job.getStandardInfo().getDescription(),messages.fetch("none"));
- switch(getDescriptionStyle(request)) {
+ switch(DuccCookies.getDescriptionStyle(request)) {
case Long:
default:
sb.append("<span title=\""+DuccConstants.hintPreferencesDescriptionStyleShort+"\">");
@@ -322,7 +322,7 @@ public class DuccHandlerLegacy extends D
ArrayList<String> users = getJobsUsers(request);
DuccData duccData = DuccData.getInstance();
ConcurrentSkipListMap<JobInfo,JobInfo> sortedJobs = duccData.getSortedJobs();
- FilterUsersStyle filterUsersStyle = getFilterUsersStyle(request);
+ DuccCookies.FilterUsersStyle filterUsersStyle = DuccCookies.getFilterUsersStyle(request);
if(sortedJobs.size()> 0) {
Iterator<Entry<JobInfo, JobInfo>> iterator = sortedJobs.entrySet().iterator();
int counter = 0;
@@ -721,7 +721,7 @@ public class DuccHandlerLegacy extends D
// Description
sb.append("<td>");
String description = stringNormalize(duccwork.getStandardInfo().getDescription(),messages.fetch("none"));
- switch(getDescriptionStyle(request)) {
+ switch(DuccCookies.getDescriptionStyle(request)) {
case Long:
default:
sb.append("<span title=\""+DuccConstants.hintPreferencesDescriptionStyleShort+"\">");
@@ -746,7 +746,7 @@ public class DuccHandlerLegacy extends D
sb.append("</tr>");
}
- private boolean isListEligible(ArrayList<String> users, FilterUsersStyle filterUsersStyle, String user, boolean completed) {
+ private boolean isListEligible(ArrayList<String> users, DuccCookies.FilterUsersStyle filterUsersStyle, String user, boolean completed) {
boolean list = false;
if(!users.isEmpty()) {
switch(filterUsersStyle) {
@@ -802,7 +802,7 @@ public class DuccHandlerLegacy extends D
ConcurrentSkipListMap<Info,Info> sortedCombinedReservations = duccData.getSortedCombinedReservations();
ArrayList<String> users = getReservationsUsers(request);
- FilterUsersStyle filterUsersStyle = getFilterUsersStyle(request);
+ DuccCookies.FilterUsersStyle filterUsersStyle = DuccCookies.getFilterUsersStyle(request);
if((sortedCombinedReservations.size() > 0)) {
int counter = 0;
@@ -1029,7 +1029,7 @@ public class DuccHandlerLegacy extends D
// Description
sb.append("<td>");
String description = getValue(propertiesSvc,IServicesRegistry.description,"");
- switch(getDescriptionStyle(request)) {
+ switch(DuccCookies.getDescriptionStyle(request)) {
case Long:
default:
sb.append("<span title=\""+DuccConstants.hintPreferencesDescriptionStyleShort+"\">");
@@ -1252,7 +1252,7 @@ public class DuccHandlerLegacy extends D
sb.append("</td>");
// Boot Time
sb.append("<td>");
- sb.append(getTimeStamp(getDateStyle(request),getPropertiesValue(properties,DuccDaemonRuntimeProperties.keyBootTime,"")));
+ sb.append(getTimeStamp(DuccCookies.getDateStyle(request),getPropertiesValue(properties,DuccDaemonRuntimeProperties.keyBootTime,"")));
sb.append("</td>");
// Host IP
sb.append("<td>");
@@ -1288,7 +1288,7 @@ public class DuccHandlerLegacy extends D
sb.append("<td>");
String heartmaxTOD = TimeStamp.simpleFormat(DuccDaemonsData.getInstance().getMaxHeartbeatTOD(daemonName));
try {
- heartmaxTOD = getTimeStamp(getDateStyle(request),heartmaxTOD);
+ heartmaxTOD = getTimeStamp(DuccCookies.getDateStyle(request),heartmaxTOD);
}
catch(Exception e) {
}
@@ -1306,8 +1306,8 @@ public class DuccHandlerLegacy extends D
counter++;
}
// <Agents>
- String cookie = DuccWebUtil.getCookie(request,DuccWebUtil.cookieAgents);
- if(cookie.equals(DuccWebUtil.valueAgentsShow)) {
+ String cookie = DuccCookies.getCookie(request,DuccCookies.cookieAgents);
+ if(cookie.equals(DuccCookies.valueAgentsShow)) {
duccLogger.trace(methodName, jobid, "== show: "+cookie);
ConcurrentSkipListMap<String,MachineInfo> machines = DuccMachinesData.getInstance().getMachines();
@@ -1343,7 +1343,7 @@ public class DuccHandlerLegacy extends D
sb.append(daemonName);
sb.append("</td>");
// Boot Time
- String bootTime = getTimeStamp(getDateStyle(request),getPropertiesValue(properties,DuccDaemonRuntimeProperties.keyBootTime,""));
+ String bootTime = getTimeStamp(DuccCookies.getDateStyle(request),getPropertiesValue(properties,DuccDaemonRuntimeProperties.keyBootTime,""));
sb.append("<td>");
sb.append(bootTime);
sb.append("</td>");
@@ -1390,7 +1390,7 @@ public class DuccHandlerLegacy extends D
if(heartbeatMaxTOD > 0) {
fmtHeartbeatMaxTOD = TimeStamp.simpleFormat(""+heartbeatMaxTOD);
try {
- fmtHeartbeatMaxTOD = getTimeStamp(getDateStyle(request),fmtHeartbeatMaxTOD);
+ fmtHeartbeatMaxTOD = getTimeStamp(DuccCookies.getDateStyle(request),fmtHeartbeatMaxTOD);
}
catch(Exception e) {
}
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccWebJobSpecificationProperties.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccWebJobSpecificationProperties.java?rev=1455734&r1=1455733&r2=1455734&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccWebJobSpecificationProperties.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccWebJobSpecificationProperties.java Tue Mar 12 22:24:08 2013
@@ -113,28 +113,28 @@ public class DuccWebJobSpecificationProp
sb.append(entry(descriptionWithExample(DuccUiConstants.desc_jvm,DuccUiConstants.exmp_jvm),
key_jvm,
DuccUiConstants.labl_jvm,
- presetValue(DuccWebUtil.getCookieOrNull(request,DuccWebUtil.getCookieKey(DuccUiConstants.name_jvm)),DuccUiConstants.dval_jvm),
+ presetValue(DuccCookies.getCookieOrNull(request,DuccCookies.getCookieKey(DuccUiConstants.name_jvm)),DuccUiConstants.dval_jvm),
null
));
sb.append(entry(descriptionWithExample(DuccUiConstants.desc_scheduling_class,DuccUiConstants.exmp_scheduling_class),
key_scheduling_class,
DuccUiConstants.labl_scheduling_class,
- presetValue(DuccWebUtil.getCookieOrNull(request,DuccWebUtil.getCookieKey(DuccUiConstants.name_scheduling_class)),DuccUiConstants.dval_scheduling_class),
+ presetValue(DuccCookies.getCookieOrNull(request,DuccCookies.getCookieKey(DuccUiConstants.name_scheduling_class)),DuccUiConstants.dval_scheduling_class),
schedulerClasses.getJobClasses()
));
sb.append(entry(descriptionWithExample(DuccUiConstants.desc_log_directory,DuccUiConstants.exmp_log_directory),
key_log_directory,
DuccUiConstants.labl_log_directory,
- presetValue(DuccWebUtil.getCookieOrNull(request,DuccWebUtil.getCookieKey(DuccUiConstants.name_log_directory)),DuccUiConstants.dval_log_directory),
+ presetValue(DuccCookies.getCookieOrNull(request,DuccCookies.getCookieKey(DuccUiConstants.name_log_directory)),DuccUiConstants.dval_log_directory),
null
));
sb.append(entry(descriptionWithExample(DuccUiConstants.desc_working_directory,DuccUiConstants.exmp_working_directory),
key_working_directory,
DuccUiConstants.labl_working_directory,
- presetValue(DuccWebUtil.getCookieOrNull(request,DuccWebUtil.getCookieKey(DuccUiConstants.name_working_directory)),DuccUiConstants.dval_working_directory),
+ presetValue(DuccCookies.getCookieOrNull(request,DuccCookies.getCookieKey(DuccUiConstants.name_working_directory)),DuccUiConstants.dval_working_directory),
null
));
@@ -246,33 +246,33 @@ public class DuccWebJobSpecificationProp
sb.append(entry(DuccUiConstants.desc_process_deployments_max,
key_process_deployments_max,
DuccUiConstants.labl_process_deployments_max,
- presetValue(DuccWebUtil.getCookieOrNull(request,DuccWebUtil.getCookieKey(DuccUiConstants.name_process_deployments_max)),DuccUiConstants.dval_process_deployments_max),
+ presetValue(DuccCookies.getCookieOrNull(request,DuccCookies.getCookieKey(DuccUiConstants.name_process_deployments_max)),DuccUiConstants.dval_process_deployments_max),
null
));
/*
sb.append(entry(DuccUiConstants.desc_process_deployments_min,
key_process_deployments_min,
DuccUiConstants.labl_process_deployments_min,
- presetValue(DuccWebUtil.getCookieOrNull(request,DuccWebUtil.getCookieKey(DuccUiConstants.name_process_deployments_min)),DuccUiConstants.dval_process_deployments_min),
+ presetValue(DuccCookies.getCookieOrNull(request,DuccCookies.getCookieKey(DuccUiConstants.name_process_deployments_min)),DuccUiConstants.dval_process_deployments_min),
null
));
*/
sb.append(entry(DuccUiConstants.desc_process_thread_count,
key_process_thread_count,
DuccUiConstants.labl_process_thread_count,
- presetValue(DuccWebUtil.getCookieOrNull(request,DuccWebUtil.getCookieKey(DuccUiConstants.name_process_thread_count)),DuccUiConstants.dval_process_thread_count),
+ presetValue(DuccCookies.getCookieOrNull(request,DuccCookies.getCookieKey(DuccUiConstants.name_process_thread_count)),DuccUiConstants.dval_process_thread_count),
null
));
sb.append(entry(DuccUiConstants.desc_process_get_meta_time_max,
key_process_get_meta_time_max,
DuccUiConstants.labl_process_get_meta_time_max,
- presetValue(DuccWebUtil.getCookieOrNull(request,DuccWebUtil.getCookieKey(DuccUiConstants.name_process_get_meta_time_max)),DuccUiConstants.dval_process_get_meta_time_max),
+ presetValue(DuccCookies.getCookieOrNull(request,DuccCookies.getCookieKey(DuccUiConstants.name_process_get_meta_time_max)),DuccUiConstants.dval_process_get_meta_time_max),
null
));
sb.append(entry(DuccUiConstants.desc_process_per_item_time_max,
key_process_per_item_time_max,
DuccUiConstants.labl_process_per_item_time_max,
- presetValue(DuccWebUtil.getCookieOrNull(request,DuccWebUtil.getCookieKey(DuccUiConstants.name_process_per_item_time_max)),DuccUiConstants.dval_process_per_item_time_max),
+ presetValue(DuccCookies.getCookieOrNull(request,DuccCookies.getCookieKey(DuccUiConstants.name_process_per_item_time_max)),DuccUiConstants.dval_process_per_item_time_max),
null
));
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccWebUtil.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccWebUtil.java?rev=1455734&r1=1455733&r2=1455734&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccWebUtil.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccWebUtil.java Tue Mar 12 22:24:08 2013
@@ -18,128 +18,10 @@
*/
package org.apache.uima.ducc.ws.server;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.apache.uima.ducc.common.internationalization.Messages;
-import org.apache.uima.ducc.common.utils.DuccLogger;
-import org.apache.uima.ducc.common.utils.DuccLoggerComponents;
-
-
public class DuccWebUtil {
-
- private static DuccLogger duccLogger = DuccLoggerComponents.getWsLogger(DuccWebUtil.class.getName());
- private static Messages messages = Messages.getInstance();
-
- public static final String cookieUri = "/";
-
- private static final String join = ":";
-
- private static final String application = "ducc";
-
- private static final String jobs = "jobs";
- private static final String reservations = "reservations";
- private static final String services = "services";
-
- private static final String max = "max";
- private static final String users = "users";
- //private static final String qualifier = "qualifier";
-
- public static final String cookieJobsMax = application+join+jobs+max;
- public static final String cookieJobsUsers = application+join+jobs+users;
- //public static final String cookieJobsUsersQualifier = application+join+jobs+users+qualifier;
- public static final String cookieReservationsMax = application+join+reservations+max;
- public static final String cookieReservationsUsers = application+join+reservations+users;
- //public static final String cookieReservationsUsersQualifier = application+join+reservations+users+qualifier;
- public static final String cookieServicesMax = application+join+services+max;
- public static final String cookieServicesUsers = application+join+services+users;
- //public static final String cookieServicesUsersQualifier = application+join+services+users+qualifier;
-
- private static final String agents = "agents";
-
- public static final String cookieAgents = application+join+agents;
- public static final String valueAgentsShow = "show";
-
- private static final String table_style = "table_style";
- private static final String date_style = "date_style";
- private static final String description_style = "description_style";
- private static final String filter_users_style = "filter_users_style";
- private static final String role = "role";
-
- public static final String cookieStyleTable = application+join+table_style;
- public static final String cookieStyleDate = application+join+date_style;
- public static final String cookieStyleDescription = application+join+description_style;
- public static final String cookieStyleFilterUsers = application+join+filter_users_style;
- public static final String cookieRole = application+join+role;
-
- public static final String valueStyleDateLong = "long";
- public static final String valueStyleDateMedium = "medium";
- public static final String valueStyleDateShort = "short";
- public static final String valueStyleDateDefault = valueStyleDateLong;
-
- public static final String valueStyleDescriptionLong = "long";
- public static final String valueStyleDescriptionShort = "short";
- public static final String valueStyleDescriptionDefault = valueStyleDescriptionLong;
-
- public static final String valueStyleFilterUsersInclude = "include";
- public static final String valueStyleFilterUsersIncludePlusActive = "include+active";
- public static final String valueStyleFilterUsersExclude = "exclude";
- public static final String valueStyleFilterUsersExcludePlusActive = "exclude+active";
-
- public static final String valueRoleAdministrator = "administrator";
- public static final String valueRoleUser = "user";
- protected static final String getCookieKey(String name) {
- return application+join+"name";
- }
-
- protected static String getCookie(String defaultValue, HttpServletRequest request, String name) {
- String methodName = "getCookie";
- String retVal = defaultValue;
- Cookie[] cookies = request.getCookies();
- if(cookies != null) {
- for(int i=0; i < cookies.length; i++) {
- Cookie cookie = cookies[i];
- if(cookie != null) {
- String cookieName = cookie.getName();
- if(cookieName != null) {
- if(cookieName.equals(name)) {
- retVal = cookie.getValue();
- break;
- }
- }
- }
- }
- }
- duccLogger.debug(methodName, null, messages.fetchLabel("name")+name+" "+messages.fetchLabel("value")+retVal);
- return retVal;
- }
-
- protected static String getCookie(HttpServletRequest request, String name) {
- return getCookie("",request,name);
- }
-
- protected static String getCookieOrNull(HttpServletRequest request, String name) {
- return getCookie(null,request,name);
- }
-
- protected static void putCookie(HttpServletResponse response, String name, String value) {
- String methodName = "putCookie";
- Cookie cookie = new Cookie(name, value);
- cookie.setPath(cookieUri);
- response.addCookie(cookie);
- duccLogger.debug(methodName, null, messages.fetchLabel("name")+name+" "+messages.fetchLabel("value")+value);
- }
-
- protected static void expireCookie(HttpServletResponse response, String name, String value) {
- String methodName = "expireCookie";
- Cookie cookie = new Cookie(name, value);
- cookie.setMaxAge(0);
- response.addCookie(cookie);
- duccLogger.debug(methodName, null, messages.fetchLabel("name")+name+" "+messages.fetchLabel("value")+value);
- }
-
/*
@Deprecated
protected String getUserHome(String userName) throws IOException{
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/js/ducc.js
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/js/ducc.js?rev=1455734&r1=1455733&r2=1455734&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/js/ducc.js (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/js/ducc.js Tue Mar 12 22:24:08 2013
@@ -553,6 +553,23 @@ function ducc_load_service_registry_data
}
}
+function ducc_service_update_form_button()
+{
+ try {
+ $.ajax(
+ {
+ url : "/ducc-servlet/service-update-get-form-button"+location.search,
+ success : function (data)
+ {
+ $("#service_update_form_button").html(data);
+ }
+ });
+ }
+ catch(err) {
+ ducc_error("ducc_service_update_form_button",err);
+ }
+}
+
function ducc_load_service_deployments_data()
{
try {
@@ -1303,6 +1320,7 @@ function ducc_init(type)
ducc_load_service_summary_data();
ducc_load_service_deployments_data();
ducc_load_service_registry_data();
+ ducc_service_update_form_button();
}
if(type == "system-machines") {
ducc_init_machines_data();
@@ -2168,6 +2186,35 @@ function ducc_submit_reservation()
return false;
}
+function ducc_update_service(name)
+{
+ try {
+ var e = document.getElementById("autostart");
+ var autostart = e.options[e.selectedIndex].value;
+ var e = document.getElementById("instances");
+ var instances = e.value;
+ document.getElementById("update_button").disabled = 'disabled';
+ $.ajax(
+ {
+ type: 'POST',
+ async: false,
+ url : "/ducc-servlet/service-update-request",
+ data: {'id':name,'autostart':autostart,'instances':instances},
+ success : function (data)
+ {
+ $.jGrowl(data, { life: 15000 });
+ setTimeout(function(){window.close();}, 15000);
+ }
+ });
+ setTimeout(function(){window.close();}, 15000);
+ document.getElementById("update_button").disabled = '';
+ }
+ catch(err) {
+ ducc_error("ducc_update_service",err);
+ }
+ return false;
+}
+
function ducc_put_cookie(name,value)
{
try {
Added: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/opensources/images/220px-Harlem_viaduct.jpg
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/opensources/images/220px-Harlem_viaduct.jpg?rev=1455734&view=auto
==============================================================================
Binary file - no diff available.
Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/opensources/images/220px-Harlem_viaduct.jpg
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/service.details.jsp
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/service.details.jsp?rev=1455734&r1=1455733&r2=1455734&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/service.details.jsp (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/service.details.jsp Tue Mar 12 22:24:08 2013
@@ -85,6 +85,9 @@ under the License.
<%@ include file="service.details.table.deployments.jsp" %>
</div>
<div id="tabs-2">
+ <div id="service_update_form_button">
+ <button title="Hint: Login" disabled style="font-size:8pt;">Update</button>
+ </div>
<div class="registry_data_div">
<span id="registry_data_area"></span>
</div>