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/03 15:11:58 UTC

svn commit: r1452044 - in /uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main: java/org/apache/uima/ducc/ws/server/ webapp/root/ webapp/root/$banner/ webapp/root/js/ webapp/root/opensources/images/

Author: degenaro
Date: Sun Mar  3 14:11:58 2013
New Revision: 1452044

URL: http://svn.apache.org/r1452044
Log:
UIMA-2691 DUCC webserver (WS) support for "managed reservations", part II comprising display of specification and process(es)

Added:
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/$banner/c1-refresh-reservation-details.jsp
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/$banner/c2-status-reservation-details.jsp
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/$banner/c3-image-reservation-details.jsp
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/opensources/images/Ducklings_in_Shaw_Creek.jpg   (with props)
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/reservation.details.html
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/reservation.details.jsp
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/reservation.details.table.processes.jsp
Modified:
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccFile.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/DuccWebMonitor.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/js/ducc.js

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccFile.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccFile.java?rev=1452044&r1=1452043&r2=1452044&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccFile.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccFile.java Sun Mar  3 14:11:58 2013
@@ -28,13 +28,20 @@ import org.apache.uima.ducc.transport.ev
 
 public class DuccFile {
 	
-	public static Properties getProperties(IDuccWorkJob job) throws IOException {
+	public static Properties getJobProperties(IDuccWorkJob job) throws IOException {
 		String directory = job.getUserLogsDir()+job.getDuccId().getFriendly()+File.separator;
 		String name = "job-specification.properties";
 		Properties properties = DuccFile.getProperties(directory, name);
 		return properties;
 	}
 	
+	public static Properties getManagedReservationProperties(IDuccWorkJob job) throws IOException {
+		String directory = job.getUserLogsDir()+job.getDuccId().getFriendly()+File.separator;
+		String name = "service-specification.properties";
+		Properties properties = DuccFile.getProperties(directory, name);
+		return properties;
+	}
+	
 	public static Properties getProperties(String directory, String name) throws IOException {
 		return getProperties(directory+name);
 	}

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=1452044&r1=1452043&r2=1452044&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 Sun Mar  3 14:11:58 2013
@@ -103,6 +103,7 @@ public class DuccHandler extends DuccAbs
 	private String duccLoginLink					= duccContext+"/login-link";
 	private String duccAuthenticationStatus 		= duccContext+"/authentication-status";
 	private String duccAuthenticatorVersion 		= duccContext+"/authenticator-version";
+	
 	private String duccJobIdData					= duccContext+"/job-id-data";
 	private String duccJobWorkitemsCountData		= duccContext+"/job-workitems-count-data";
 	private String duccJobProcessesData    			= duccContext+"/job-processes-data";
@@ -111,6 +112,10 @@ public class DuccHandler extends DuccAbs
 	private String duccJobSpecificationData 		= duccContext+"/job-specification-data";
 	private String duccJobInitializationFailData	= duccContext+"/job-initialization-fail-data";
 	private String duccJobRuntimeFailData			= duccContext+"/job-runtime-fail-data";
+	
+	private String duccReservationProcessesData    	= duccContext+"/reservation-processes-data";
+	private String duccReservationSpecificationData = duccContext+"/reservation-specification-data";
+	
 	private String duccServiceDeploymentsData    	= duccContext+"/service-deployments-data";
 	private String duccServiceRegistryData 			= duccContext+"/service-registry-data";
 	private String duccServiceSummaryData			= duccContext+"/service-summary-data";
@@ -255,6 +260,10 @@ public class DuccHandler extends DuccAbs
 			String fType = type;
 			retVal = job.getDuccId().getFriendly()+"-"+fType+"-"+process.getNodeIdentity().getName()+"-"+process.getPID()+".log";
 		}
+		if(type == "MR") {
+			String fType = "POP";
+			retVal = job.getDuccId().getFriendly()+"-"+fType+"-"+process.getNodeIdentity().getName()+"-"+process.getPID()+".log";
+		}
 		else if(type == "SP") {
 			String fType = "UIMA";
 			retVal = job.getDuccId().getFriendly()+"-"+fType+"-"+process.getNodeIdentity().getName()+"-"+process.getPID()+".log";
@@ -330,6 +339,9 @@ public class DuccHandler extends DuccAbs
 		if(type.equals("SP")) {
 			sb.append(job.getDuccId().getFriendly()+"."+process.getDuccId().getFriendly());
 		}
+		else if(type.equals("MR")) {
+			sb.append(job.getDuccId().getFriendly()+"."+process.getDuccId().getFriendly());
+		}
 		else {
 			sb.append(process.getDuccId().getFriendly());
 		}
@@ -415,75 +427,79 @@ public class DuccHandler extends DuccAbs
 			sb.append(process.getReasonForStoppingProcess());
 		}
 		sb.append("</td>");
-		// Time:initialization
-		List<IUimaPipelineAEComponent> upcList = jp.getUimaPipelineComponents();
-		TimeWindow t;
-		t = (TimeWindow) process.getTimeWindowInit();
+		// Time:initializationTimeWindow t;
 		long timeInitMillis = 0;
-		try {
-			timeInitMillis = t.getElapsedMillis();
-		}
-		catch(Exception e) {
-		}
-		String initTime = "?";
-		if(t != null) {
-			initTime = t.getElapsed(job);
-		}
-		
-		sb.append("<td align=\"right\">");
-		if((t != null) && (t.isEstimated())) {
-			sb.append("<span title=\"estimated\" class=\"health_green\">");
+		if(type.equals("MR")) {
+			// 
 		}
 		else {
-			sb.append("<span class=\"health_black\">");
-		}
-		if(initTime == null) {
-			initTime = "0";
-		}
-		if(!job.isOperational()) {
-			if(upcList == null) {
-				initTime = "";
+			sb.append("<td align=\"right\">");
+			List<IUimaPipelineAEComponent> upcList = jp.getUimaPipelineComponents();
+			TimeWindow t;
+			t = (TimeWindow) process.getTimeWindowInit();
+			try {
+				timeInitMillis = t.getElapsedMillis();
+			}
+			catch(Exception e) {
+			}
+			String initTime = "?";
+			if(t != null) {
+				initTime = t.getElapsed(job);
+			}
+			if((t != null) && (t.isEstimated())) {
+				sb.append("<span title=\"estimated\" class=\"health_green\">");
 			}
 			else {
-				if(upcList.isEmpty()) {
+				sb.append("<span class=\"health_black\">");
+			}
+			if(initTime == null) {
+				initTime = "0";
+			}
+			if(!job.isOperational()) {
+				if(upcList == null) {
 					initTime = "";
 				}
+				else {
+					if(upcList.isEmpty()) {
+						initTime = "";
+					}
+				}
 			}
-		}
-		initTime = chomp("00:", initTime);
-		if(upcList != null) {
-			if(!upcList.isEmpty()) {
-				String id = ""+process.getDuccId().getFriendly();
-				initTime = "<a class=\"classLoad\" title=\""+id+"\" href=\"#loadme"+id+"\" rel=\"#loadme"+id+"\">"+initTime+"</a>";
-				StringBuffer loadme = new StringBuffer();
-				loadme.append("<div id=\"loadme"+id+"\">");
-				loadme.append("<table>");
-				loadme.append("<tr>");
-				String ch1 = "Name";
-				String ch2 = "State";
-				String ch3 = "Time";
-				loadme.append("<td>"+"<b>"+ch1+"</b>");
-				loadme.append("<td>"+"<b>"+ch2+"</b>");
-				loadme.append("<td>"+"<b>"+ch3+"</b>");
-				Iterator<IUimaPipelineAEComponent> upcIterator = upcList.iterator();
-				while(upcIterator.hasNext()) {
-					IUimaPipelineAEComponent upc = upcIterator.next();
-					String iName = upc.getAeName();
-					String iState = upc.getAeState().toString();
-					String iTime = formatDuration(upc.getInitializationTime());
+			initTime = chomp("00:", initTime);
+			if(upcList != null) {
+				if(!upcList.isEmpty()) {
+					String id = ""+process.getDuccId().getFriendly();
+					initTime = "<a class=\"classLoad\" title=\""+id+"\" href=\"#loadme"+id+"\" rel=\"#loadme"+id+"\">"+initTime+"</a>";
+					StringBuffer loadme = new StringBuffer();
+					loadme.append("<div id=\"loadme"+id+"\">");
+					loadme.append("<table>");
 					loadme.append("<tr>");
-					loadme.append("<td>"+iName);
-					loadme.append("<td>"+iState);
-					loadme.append("<td>"+iTime);
+					String ch1 = "Name";
+					String ch2 = "State";
+					String ch3 = "Time";
+					loadme.append("<td>"+"<b>"+ch1+"</b>");
+					loadme.append("<td>"+"<b>"+ch2+"</b>");
+					loadme.append("<td>"+"<b>"+ch3+"</b>");
+					Iterator<IUimaPipelineAEComponent> upcIterator = upcList.iterator();
+					while(upcIterator.hasNext()) {
+						IUimaPipelineAEComponent upc = upcIterator.next();
+						String iName = upc.getAeName();
+						String iState = upc.getAeState().toString();
+						String iTime = formatDuration(upc.getInitializationTime());
+						loadme.append("<tr>");
+						loadme.append("<td>"+iName);
+						loadme.append("<td>"+iState);
+						loadme.append("<td>"+iTime);
+					}
+					loadme.append("</table>");
+					loadme.append("</div>");
+					sb.append(loadme);
 				}
-				loadme.append("</table>");
-				loadme.append("</div>");
-				sb.append(loadme);
 			}
+			sb.append(initTime);
+			sb.append("</span>");
+			sb.append("</td>");
 		}
-		sb.append(initTime);
-		sb.append("</span>");
-		sb.append("</td>");
 		/*
 		try {
 			long diff = 0;
@@ -498,6 +514,7 @@ public class DuccHandler extends DuccAbs
 		}
 		*/
 		// Time:run
+		TimeWindow t;
 		t = (TimeWindow) process.getTimeWindowRun();
 		long timeRunMillis = 0;
 		try {
@@ -536,42 +553,47 @@ public class DuccHandler extends DuccAbs
 		catch(Exception e) {
 		}
 		*/
-		SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
-		// Time:gc
-		long timeGC = 0;
-		try {
-			timeGC = process.getGarbageCollectionStats().getCollectionTime();
-		}
-		catch(Exception e) {
-		}
-		dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
-		String displayGC = dateFormat.format(new Date(timeGC));
-		displayGC = chomp("00:", displayGC);
-		sb.append("<td align=\"right\">");
-		sb.append(displayGC);
-		sb.append("</td>");
-		// Count:gc
-		long countGC = 0;
-		try {
-			countGC = process.getGarbageCollectionStats().getCollectionCount();
-		}
-		catch(Exception e) {
+		DecimalFormat formatter = new DecimalFormat("##0.0");
+		if(type.equals("MR")) {
+			// 
 		}
-		sb.append("<td align=\"right\">");
-		sb.append(countGC);
-		sb.append("</td>");
-		// %gc
-		double pctGC = 0;
-		double timeTotal = timeInitMillis + timeRunMillis;
-		if(timeTotal > 0) {
-			double denom = timeTotal;
-			double numer = timeGC;
-			pctGC = (numer/denom)*100;
+		else {
+			SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
+			// Time:gc
+			long timeGC = 0;
+			try {
+				timeGC = process.getGarbageCollectionStats().getCollectionTime();
+			}
+			catch(Exception e) {
+			}
+			dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
+			String displayGC = dateFormat.format(new Date(timeGC));
+			displayGC = chomp("00:", displayGC);
+			sb.append("<td align=\"right\">");
+			sb.append(displayGC);
+			sb.append("</td>");
+			// Count:gc
+			long countGC = 0;
+			try {
+				countGC = process.getGarbageCollectionStats().getCollectionCount();
+			}
+			catch(Exception e) {
+			}
+			sb.append("<td align=\"right\">");
+			sb.append(countGC);
+			sb.append("</td>");
+			// %gc
+			double pctGC = 0;
+			double timeTotal = timeInitMillis + timeRunMillis;
+			if(timeTotal > 0) {
+				double denom = timeTotal;
+				double numer = timeGC;
+				pctGC = (numer/denom)*100;
+			}
+			sb.append("<td align=\"right\">");
+			sb.append(formatter.format(pctGC));
+			sb.append("</td>");
 		}
-		DecimalFormat formatter = new DecimalFormat("##0.0");
-		sb.append("<td align=\"right\">");
-		sb.append(formatter.format(pctGC));
-		sb.append("</td>");
 		/*
 		// Time:cpu
 		sb.append("<td align=\"right\">");
@@ -611,6 +633,9 @@ public class DuccHandler extends DuccAbs
 		if(type.equals("SP")) {
 			// 
 		}
+		else if(type.equals("MR")) {
+			// 
+		}
 		else {
 			// Time:avg
 			IDuccProcessWorkItems pwi = process.getProcessWorkItems();
@@ -657,39 +682,44 @@ public class DuccHandler extends DuccAbs
 			sb.append("</td>");
 		}
 		// Jconsole:Url
-		sb.append("<td>");
-		switch(process.getProcessState()) {
-		case Initializing:
-		case Running:
-			String jmxUrl = process.getProcessJmxUrl();
-			if(jmxUrl != null) {
-				sb.append(buildjConsoleLink(jmxUrl));
-			}
+		if(type.equals("MR")) {
+			// 
 		}
-		sb.append("</td>");
-		sb.append("</tr>");
-		if(fileExists(logsjobdir+errfile)) {
-			String href2 = null;
-			if(type == "JD") {
-				href2 = buildErrorLink(job,errfile);
-				if(href2.equals("0")) {
-					href2 = null;
+		else {
+			sb.append("<td>");
+			switch(process.getProcessState()) {
+			case Initializing:
+			case Running:
+				String jmxUrl = process.getProcessJmxUrl();
+				if(jmxUrl != null) {
+					sb.append(buildjConsoleLink(jmxUrl));
 				}
 			}
-			if(href2 != null) {
-				sb.append(tr);
-				// Id
-				sb.append("<td>");
-				sb.append("</td>");
-				// Err Log
-				sb.append("<td>");
-				sb.append(href2);
-				sb.append("</td>");
-				// Err Log Size (in MB)
-				sb.append("<td align=\"right\">");
-				sb.append(getFileSize(logsjobdir+errfile));
-				sb.append("</td>");
-				sb.append("</tr>");
+			sb.append("</td>");
+			sb.append("</tr>");
+			if(fileExists(logsjobdir+errfile)) {
+				String href2 = null;
+				if(type == "JD") {
+					href2 = buildErrorLink(job,errfile);
+					if(href2.equals("0")) {
+						href2 = null;
+					}
+				}
+				if(href2 != null) {
+					sb.append(tr);
+					// Id
+					sb.append("<td>");
+					sb.append("</td>");
+					// Err Log
+					sb.append("<td>");
+					sb.append(href2);
+					sb.append("</td>");
+					// Err Log Size (in MB)
+					sb.append("<td align=\"right\">");
+					sb.append(getFileSize(logsjobdir+errfile));
+					sb.append("</td>");
+					sb.append("</tr>");
+				}
 			}
 		}
 	}
@@ -870,6 +900,24 @@ public class DuccHandler extends DuccAbs
 		return job;
 	}
 	
+	private DuccWorkJob getManagedReservation(String reservationNo) {
+		DuccWorkJob managedReservation = null;
+		DuccWorkMap duccWorkMap = DuccData.getInstance().get();
+		if(duccWorkMap.getServiceKeySet().size()> 0) {
+			Iterator<DuccId> iterator = null;
+			iterator = duccWorkMap.getServiceKeySet().iterator();
+			while(iterator.hasNext()) {
+				DuccId jobId = iterator.next();
+				String fid = ""+jobId.getFriendly();
+				if(reservationNo.equals(fid)) {
+					managedReservation = (DuccWorkJob) duccWorkMap.findDuccWork(jobId);
+					break;
+				}
+			}
+		}
+		return managedReservation;
+	}
+	
 	private long getAdjustedTime(long time, IDuccWorkJob job) {
 		long adjustedTime = time;
 		if(job.isCompleted()) {
@@ -1181,7 +1229,7 @@ public class DuccHandler extends DuccAbs
 		DuccWorkJob job = getJob(jobNo);
 		if(job != null) {
 			try {
-				Properties properties = DuccFile.getProperties(job);
+				Properties properties = DuccFile.getJobProperties(job);
 				TreeMap<String,String> map = new TreeMap<String,String>();
 				Enumeration<?> enumeration = properties.keys();
 				while(enumeration.hasMoreElements()) {
@@ -1325,6 +1373,107 @@ public class DuccHandler extends DuccAbs
 		buildJobProcessListEntry(sb, job, process, type, counter);
 	}
 	
+	private void handleDuccServletReservationProcessesData(String target,Request baseRequest,HttpServletRequest request,HttpServletResponse response) 
+	throws IOException, ServletException
+	{
+		String methodName = "handleDuccServletReservationProcessesData";
+		duccLogger.trace(methodName, null, messages.fetch("enter"));
+		StringBuffer sb = new StringBuffer();
+		String reservationNo = request.getParameter("id");
+		
+		DuccWorkMap duccWorkMap = DuccData.getInstance().get();
+		DuccWorkJob managedReservation = null;
+		if(duccWorkMap.getServiceKeySet().size()> 0) {
+			Iterator<DuccId> iterator = null;
+			iterator = duccWorkMap.getServiceKeySet().iterator();
+			while(iterator.hasNext()) {
+				DuccId jobId = iterator.next();
+				String fid = ""+jobId.getFriendly();
+				if(reservationNo.equals(fid)) {
+					managedReservation = (DuccWorkJob) duccWorkMap.findDuccWork(jobId);
+					break;
+				}
+			}
+		}
+		if(managedReservation != null) {
+			Iterator<DuccId> iterator = null;
+			int counter = 0;
+			String type = "MR";
+			iterator = managedReservation.getProcessMap().keySet().iterator();
+			while(iterator.hasNext()) {
+				DuccId processId = iterator.next();
+				IDuccProcess process = managedReservation.getProcessMap().get(processId);
+				buildServiceProcessListEntry(sb, managedReservation, process, type, ++counter);
+			}
+		}
+		if(sb.length() == 0) {
+			sb.append("<tr>");
+			sb.append("<td>");
+			sb.append("not found");
+			sb.append("</td>");
+			sb.append("</tr>");
+		}
+		
+		response.getWriter().println(sb);
+		duccLogger.trace(methodName, null, messages.fetch("exit"));
+	}
+	
+	private void handleDuccServletReservationSpecificationData(String target,Request baseRequest,HttpServletRequest request,HttpServletResponse response) 
+	throws IOException, ServletException
+	{
+		String methodName = "handleDuccServletReservationSpecificationData";
+		duccLogger.trace(methodName, null, messages.fetch("enter"));
+		StringBuffer sb = new StringBuffer();
+		String reservationNo = request.getParameter("id");
+		
+		DuccWorkJob managedReservation = getManagedReservation(reservationNo);
+		if(managedReservation != null) {
+			try {
+				Properties properties = DuccFile.getManagedReservationProperties(managedReservation);
+				TreeMap<String,String> map = new TreeMap<String,String>();
+				Enumeration<?> enumeration = properties.keys();
+				while(enumeration.hasMoreElements()) {
+					String key = (String)enumeration.nextElement();
+					map.put(key, key);
+				}
+				Iterator<String> iterator = map.keySet().iterator();
+				sb.append("<table>");
+				sb.append("<tr class=\"ducc-head\">");
+				sb.append("<th>");
+				sb.append("Key");
+				sb.append("</th>");
+				sb.append("<th>");
+				sb.append("Value");
+				sb.append("</th>");
+				sb.append("</tr>");
+				int i = 0;
+				int counter = 0;
+				while(iterator.hasNext()) {
+					String key = iterator.next();
+					String value = properties.getProperty(key);
+					if(key.endsWith("classpath")) {
+						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, key, value, sb, counter++);
+				}
+				sb.append("</table>");
+				sb.append("<br>");
+				sb.append("<br>");
+			}
+			catch(Exception e) {
+				duccLogger.warn(methodName, null, e);
+				sb = new StringBuffer();
+				sb.append("no data");
+			}
+		}
+		
+		response.getWriter().println(sb);
+		duccLogger.trace(methodName, null, messages.fetch("exit"));
+	}
+	
 	private void handleDuccServletServiceDeploymentsData(String target,Request baseRequest,HttpServletRequest request,HttpServletResponse response) 
 	throws IOException, ServletException
 	{
@@ -2648,6 +2797,14 @@ public class DuccHandler extends DuccAbs
 				handleDuccServletJobRuntimeFailData(target, baseRequest, request, response);
 				DuccWebUtil.noCache(response);
 			}
+			else if(reqURI.startsWith(duccReservationProcessesData)) {
+				handleDuccServletReservationProcessesData(target, baseRequest, request, response);
+				DuccWebUtil.noCache(response);
+			}
+			else if(reqURI.startsWith(duccReservationSpecificationData)) {
+				handleDuccServletReservationSpecificationData(target, baseRequest, request, response);
+				DuccWebUtil.noCache(response);
+			}
 			else if(reqURI.startsWith(duccServiceDeploymentsData)) {
 				handleDuccServletServiceDeploymentsData(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=1452044&r1=1452043&r2=1452044&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 Sun Mar  3 14:11:58 2013
@@ -535,6 +535,10 @@ public class DuccHandlerJsonFormat exten
 	private JsonArray buildReservationRow(HttpServletRequest request, IDuccWork duccwork, DuccData duccData) {
 		String type="Reservation";
 		JsonArray row = new JsonArray();
+		String reservationType = "Unmanaged";
+		if(duccwork instanceof DuccWorkJob) {
+			reservationType = "Managed";
+		}
 		StringBuffer sb;
 		DuccId duccId = duccwork.getDuccId();
 		// Terminate
@@ -557,9 +561,16 @@ public class DuccHandlerJsonFormat exten
 		row.add(new JsonPrimitive(sb.toString()));
 		// Id
 		sb = new StringBuffer();
-		sb.append("<span>");
-		sb.append(id);
-		sb.append("</span>");
+		if(reservationType.equals("Managed")) {
+			sb.append("<span>");
+			sb.append("<a href=\"reservation.details.html?id="+id+"\">"+id+"</a>");
+			sb.append("</span>");
+		}
+		else {
+			sb.append("<span>");
+			sb.append(id);
+			sb.append("</span>");
+		}
 		row.add(new JsonPrimitive(sb.toString()));
 		// Start
 		row.add(new JsonPrimitive(getTimeStamp(request,duccwork.getDuccId(), duccwork.getStandardInfo().getDateOfSubmission())));
@@ -604,10 +615,6 @@ public class DuccHandlerJsonFormat exten
 		row.add(new JsonPrimitive(stringNormalize(duccwork.getSchedulingInfo().getSchedulingClass(),messages.fetch("default"))));
 		// Type
 		sb = new StringBuffer();
-		String reservationType = "Unmanaged";
-		if(duccwork instanceof DuccWorkJob) {
-			reservationType = "Managed";
-		}
 		sb.append(reservationType);
 		row.add(new JsonPrimitive(sb.toString()));
 		// State

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=1452044&r1=1452043&r2=1452044&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 Sun Mar  3 14:11:58 2013
@@ -451,6 +451,10 @@ public class DuccHandlerLegacy extends D
 	private void buildReservationsListEntry(HttpServletRequest request, StringBuffer sb, DuccId duccId, IDuccWork duccwork, DuccData duccData) {
 		String type="Reservation";
 		String id = normalize(duccId);
+		String reservationType = "Unmanaged";
+		if(duccwork instanceof DuccWorkJob) {
+			reservationType = "Managed";
+		}
 		sb.append("<td class=\"ducc-col-terminate\">");
 		if(terminateEnabled) {
 			if(!duccwork.isCompleted()) {
@@ -474,9 +478,16 @@ public class DuccHandlerLegacy extends D
 		}
 		sb.append("</td>");
 		// Id
-		sb.append("<td>");
-		sb.append(id);
-		sb.append("</td>");
+		if(reservationType.equals("Managed")) {
+			sb.append("<td valign=\"bottom\">");
+			sb.append("<a href=\"reservation.details.html?id="+id+"\">"+id+"</a>");
+			sb.append("</td>");
+		}
+		else {
+			sb.append("<td>");
+			sb.append(id);
+			sb.append("</td>");
+		}
 		// Start
 		sb.append("<td>");
 		sb.append(getTimeStamp(request,duccwork.getDuccId(),duccwork.getStandardInfo().getDateOfSubmission()));
@@ -519,10 +530,6 @@ public class DuccHandlerLegacy extends D
 		sb.append(stringNormalize(duccwork.getSchedulingInfo().getSchedulingClass(),messages.fetch("default")));
 		sb.append("</td>");
 		// Type
-		String reservationType = "Unmanaged";
-		if(duccwork instanceof DuccWorkJob) {
-			reservationType = "Managed";
-		}
 		sb.append("<td>");
 		sb.append(reservationType);
 		sb.append("</td>");

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccWebMonitor.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccWebMonitor.java?rev=1452044&r1=1452043&r2=1452044&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccWebMonitor.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccWebMonitor.java Sun Mar  3 14:11:58 2013
@@ -250,7 +250,7 @@ public class DuccWebMonitor implements I
 				duccLogger.info(location, duccId, "Job monitor start");
 				if(!tMap.containsKey(duccId)) {
 					try {
-						Properties properties = DuccFile.getProperties(dwj);
+						Properties properties = DuccFile.getJobProperties(dwj);
 						if(properties.containsKey(DuccUiConstants.name_monitor_cancel_job_on_interrupt)) {
 							TrackingInfo ti = new TrackingInfo();
 							ti.time = expiryMillis;

Added: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/$banner/c1-refresh-reservation-details.jsp
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/%24banner/c1-refresh-reservation-details.jsp?rev=1452044&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/$banner/c1-refresh-reservation-details.jsp (added)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/$banner/c1-refresh-reservation-details.jsp Sun Mar  3 14:11:58 2013
@@ -0,0 +1,44 @@
+<!--
+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.
+-->
+<div>
+<table>
+<tr>
+<td>
+<span id="refreshbutton">
+<input type="image" onclick="ducc_refresh('reservation-details');" title="Refresh" alt="Refresh" src="opensources/images/1284662827_refresh.png">
+</span>
+<span id="loading" style="display:none;">
+<img title="loading" src="opensources/images/indicator.gif" style="border:1px solid #000000" alt="Loading...">
+</span>
+<td>
+<table>
+<tr>
+<td align="left">
+<form name="duccform" style="margin-bottom:0;">
+<fieldset>
+<legend>Refresh</legend>
+<input type="radio" name="refresh" value="manual"            onclick="ducc_put_cookie('ducc:refreshmode','manual'   )" /> Manual
+<br>
+<input type="radio" name="refresh" value="automatic" checked onclick="ducc_put_cookie('ducc:refreshmode','automatic')" /> Automatic
+</fieldset>
+</form>
+</table>
+</tr>
+</table>
+</div> 
\ No newline at end of file

Added: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/$banner/c2-status-reservation-details.jsp
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/%24banner/c2-status-reservation-details.jsp?rev=1452044&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/$banner/c2-status-reservation-details.jsp (added)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/$banner/c2-status-reservation-details.jsp Sun Mar  3 14:11:58 2013
@@ -0,0 +1,33 @@
+<!--
+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.
+-->
+<div>
+<b><big><span class="idtitle" id="identity"></span></big></b>
+<form name="form_selectors" style="margin-bottom:0;">
+<table>
+<tr>
+<td valign="top" align="right" title="The time of last Orchestrator publication">Updated:&nbsp
+<td valign="top"><span class="timestamptitle" id="timestamp_area"></span>
+</tr>
+<tr>
+<td valign="top" align="right">Authentication:&nbsp
+<td valign="top"><span class="authenticationtitle" id="authentication_area">?</span>
+</tr>
+</table>
+</form>
+</div> 
\ No newline at end of file

Added: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/$banner/c3-image-reservation-details.jsp
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/%24banner/c3-image-reservation-details.jsp?rev=1452044&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/$banner/c3-image-reservation-details.jsp (added)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/$banner/c3-image-reservation-details.jsp Sun Mar  3 14:11:58 2013
@@ -0,0 +1,23 @@
+<!--
+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.
+-->
+<div>
+<b><big><span class="subtitle">Managed Reservation Details</span></big></b>
+<br>
+<img src="opensources/images/Ducklings_in_Shaw_Creek.jpg" height="64" style="border:3px solid #ffff7a" alt="logo">
+</div> 
\ No newline at end of file

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=1452044&r1=1452043&r2=1452044&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 Sun Mar  3 14:11:58 2013
@@ -493,6 +493,36 @@ function ducc_load_job_specification_dat
 	}	
 }
 
+function ducc_init_reservation_specification_data()
+{
+	try {
+		data = "<img src=\"opensources/images/indicator.gif\" alt=\"waiting...\">"
+		$("#specification_data_area").html(data);
+	}
+	catch(err) {
+		ducc_error("ducc_init_reservation_specification_data",err);
+	}
+}
+
+function ducc_load_reservation_specification_data()
+{
+	try {
+		server_url= "/ducc-servlet/reservation-specification-data"+location.search;
+		$.ajax(
+		{
+			url : server_url,
+			success : function (data) 
+			{
+				$("#specification_data_area").html(data);
+				hide_show();
+			}
+		});
+	}
+	catch(err) {
+		ducc_error("ducc_load_reservation_specification_data",err);
+	}	
+}
+
 function ducc_init_service_registry_data()
 {
 	try {
@@ -633,6 +663,43 @@ function ducc_init_job_processes_data()
 	}
 }
 
+function ducc_load_reservation_processes_data()
+{
+	try {
+		server_url= "/ducc-servlet/reservation-processes-data"+location.search;
+		$.ajax(
+		{
+			url : server_url,
+			success : function (data) 
+			{
+				$("#processes_list_area").html(data);
+				ducc_cluetips();
+				hide_show();
+     			ducc_timestamp();
+				ducc_authentication();
+			}
+		});
+	}
+	catch(err) {
+		ducc_error("ducc_load_reservation_processes_data",err);
+	}
+}
+
+function ducc_init_reservation_processes_data()
+{
+	try {
+		data = "<img src=\"opensources/images/indicator.gif\" alt=\"waiting...\">"
+		$("#processes_list_area").html(data);
+		data = "...?"
+		$("#timestamp_area").html(data);
+		data = "...?"
+		$("#authentication_area").html(data);
+	}
+	catch(err) {
+		ducc_error("ducc_init_reservation_processes_data",err);
+	}
+}
+
 function ducc_load_machines_data()
 {
 	var table_style = ducc_preferences_get("table_style");
@@ -934,32 +1001,6 @@ function ducc_load_job_submit_button()
 	}	
 }
 
-function ducc_load_submit_job_data()
-{
-	try {
-		ducc_load_job_form();
-		ducc_load_job_submit_button();
-		ducc_timestamp();
-		ducc_authentication();
-	}
-	catch(err) {
-		ducc_error("ducc_load_submit_job_data",err);
-	}
-}
-
-function ducc_init_submit_job_data()
-{
-	try {
-		data = "...?"
-		$("#timestamp_area").html(data);
-		data = "...?"
-		$("#authentication_area").html(data);
-	}
-	catch(err) {
-		ducc_error("ducc_init_submit_job_data",err);
-	}
-}
-
 function ducc_load_system_administration_data()
 {
 	try {
@@ -1249,6 +1290,12 @@ function ducc_init(type)
 			ducc_load_job_performance_data();
 			ducc_load_job_processes_data();
 		}
+		if(type == "reservation-details") {
+			ducc_init_reservation_processes_data();
+			ducc_init_reservation_specification_data();
+			ducc_load_reservation_processes_data();
+			ducc_load_reservation_specification_data();
+		}
 		if(type == "service-details") {
 			ducc_init_service_summary_data();
 			ducc_init_service_deployments_data();
@@ -1274,10 +1321,6 @@ function ducc_init(type)
 			ducc_init_submit_reservation_data();
 			ducc_load_submit_reservation_data();
 		}
-		if(type == "submit-job") {
-			ducc_init_submit_job_data();
-			ducc_load_submit_job_data();
-		}
 		if(type == "system-administration") {
 			ducc_init_system_administration_data();
 			ducc_load_system_administration_data();
@@ -1682,6 +1725,10 @@ function ducc_update_page(type)
 						ducc_load_job_processes_data();
 						ducc_load_job_workitems_count_data();
 					}
+					if(type == "reservation-details") {
+						//ducc_load_reservation_specification_data();
+						ducc_load_reservation_processes_data();
+					}
 					if(type == "service-details") {
 						//ducc_load_service_registry_data();
 						ducc_load_service_deployments_data();
@@ -2069,119 +2116,6 @@ function ducc_cancel_submit_reservation(
 	}	
 }
 
-function ducc_confirm_submit_job()
-{
-	try {
-		var result=confirm("Submit?");
-		if (result==true) {
-  			ducc_submit_job();
-  			alert("Request sent");
-  			window.close();
-  		}
-   	}
-	catch(err) {
-		ducc_error("ducc_confirm_submit_job",err);
-	}	 		
-}
-
-function ducc_submit_job()
-{
-	try {
-		var e = document.getElementById("description");
-		var description = e.value;
-		var e = document.getElementById("jvm");
-		var jvm = e.value;
-		var e = document.getElementById("scheduling_class");
-		var scheduling_class = e.value;
-		var e = document.getElementById("log_directory");
-		var log_directory = e.value;
-		var e = document.getElementById("working_directory");
-		var working_directory = e.value;
-		var e = document.getElementById("driver_jvm_args");
-		var driver_jvm_args = e.value;
-		var e = document.getElementById("driver_classpath");
-		var driver_classpath = e.value;
-		var e = document.getElementById("driver_environment");
-		var driver_environment = e.value;
-		var e = document.getElementById("driver_memory_size");
-		var driver_memory_size = e.value;
-		var e = document.getElementById("driver_descriptor_CR");
-		var driver_descriptor_CR = e.value;
-		var e = document.getElementById("driver_descriptor_CR_overrides");
-		var driver_descriptor_CR_overrides = e.value;
-		var e = document.getElementById("process_jvm_args");
-		var process_jvm_args = e.value;
-		var e = document.getElementById("process_classpath");
-		var process_classpath = e.value;
-		var e = document.getElementById("process_environment");
-		var process_environment = e.value;
-		var e = document.getElementById("process_memory_size");
-		var process_memory_size = e.value;
-		var e = document.getElementById("process_descriptor_CM");
-		var process_descriptor_CM = e.value;
-		var e = document.getElementById("process_descriptor_AE");
-		var process_descriptor_AE = e.value;
-		var e = document.getElementById("process_descriptor_CC");
-		var process_descriptor_CC = e.value;
-		var e = document.getElementById("process_deployments_max");
-		var process_deployments_max = e.value;
-		var e = document.getElementById("process_deployments_min");
-		var process_deployments_min = e.value;
-		var e = document.getElementById("process_thread_count");
-		var process_thread_count = e.value;
-		var e = document.getElementById("process_get_meta_time_max");
-		var process_get_meta_time_max = e.value;
-		var e = document.getElementById("process_per_item_time_max");
-		var process_per_item_time_max = e.value;
-		$.ajax(
-		{
-			type: 'POST',
-			url : "/ducc-servlet/job-submit-request",
-			data: {'description':description,
-			   'jvm':jvm,
-			   'scheduling_class':scheduling_class,
-			   'log_directory':log_directory,
-			   'working_directory':working_directory,
-			   'driver_jvm_args':driver_jvm_args,
-			   'driver_classpath':driver_classpath,
-			   'driver_environment':driver_environment,
-			   'driver_memory_size':driver_memory_size,
-			   'driver_descriptor_CR':driver_descriptor_CR,
-			   'driver_descriptor_CR_overrides':driver_descriptor_CR_overrides,
-			   'process_jvm_args':process_jvm_args,
-			   'process_classpath':process_classpath,
-			   'process_environment':process_environment,
-			   'process_memory_size':process_memory_size,
-			   'process_descriptor_CM':process_descriptor_CM,
-			   'process_descriptor_AE':process_descriptor_AE,
-			   'process_descriptor_CC':process_descriptor_CC,
-			   'process_deployments_max':process_deployments_max,
-			   'process_deployments_min':process_deployments_min,
-			   'process_thread_count':process_thread_count,
-			   'process_get_meta_time_max':process_get_meta_time_max,
-			   'process_per_item_time_max':process_per_item_time_max,
-			  },
-			success : function (data) 
-			{
-				alert('success');
-			}
-		});
-	}
-	catch(err) {
-		ducc_error("ducc_submit_job",err);
-	}		
-}
-
-function ducc_cancel_submit_job()
-{
-  	try {
-  		window.close();
-  	}
-	catch(err) {
-		ducc_error("ducc_cancel_submit_job",err);
-	}	
-}
-
 function ducc_submit_reservation()
 {
 	try {

Added: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/opensources/images/Ducklings_in_Shaw_Creek.jpg
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/opensources/images/Ducklings_in_Shaw_Creek.jpg?rev=1452044&view=auto
==============================================================================
Binary file - no diff available.

Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/opensources/images/Ducklings_in_Shaw_Creek.jpg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/reservation.details.html
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/reservation.details.html?rev=1452044&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/reservation.details.html (added)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/reservation.details.html Sun Mar  3 14:11:58 2013
@@ -0,0 +1,29 @@
+<!--
+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.
+-->
+<html>
+<head>
+<script language="javascript">
+<!--
+location.replace("reservation.details.jsp"+location.search)
+//-->
+</script>
+</head>
+<body>
+</body>
+</html>

Added: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/reservation.details.jsp
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/reservation.details.jsp?rev=1452044&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/reservation.details.jsp (added)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/reservation.details.jsp Sun Mar  3 14:11:58 2013
@@ -0,0 +1,95 @@
+<!--
+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.
+-->
+<%@ page language="java" %>
+<html>
+<head>
+  <link rel="shortcut icon" href="uima.ico" />
+  <title>ducc-mon</title>
+  <meta http-equiv="CACHE-CONTROL" content="NO-CACHE">
+  <%@ include file="$imports-classic.jsp" %>
+  <script type="text/javascript">
+	$(function() {
+		$("#tabs").tabs();
+	});
+  </script>
+  
+</head>
+<body onload="ducc_init('reservation-details');">
+
+<!-- ####################### common ######################## -->
+<div class="flex-page">
+<!-- *********************** table ************************* -->
+<table class="flex-heading">
+<!-- *********************** row *************************** -->
+<tr class="heading">
+<!-- *********************** column ************************ -->
+<td valign="middle" align="center">
+<%@ include file="$banner/c0-menu.jsp" %>
+</td>
+<!-- *********************** column ************************ -->
+<%@ include file="$banner/$runmode.jsp" %>
+<!-- *********************** column ************************ -->
+<td valign="middle" align="center">
+<%@ include file="$banner/c1-refresh-reservation-details.jsp" %>
+</td>
+<!-- *********************** column ************************ -->
+<td valign="middle" align="center">
+<%@ include file="$banner/c2-status-reservation-details.jsp" %>
+</td>
+<!-- *********************** column ************************ -->
+<td valign="middle" align="center">
+<%@ include file="$banner/c3-image-reservation-details.jsp" %>
+</td>
+<!-- *********************** column ************************ -->
+<td valign="middle" align="center">
+<%@ include file="$banner/c4-ducc-mon.jsp" %>
+</td>
+</table>
+<!-- *********************** /table ************************ -->
+</div>
+<!-- ####################### /common ####################### -->
+
+<table>
+<!-- *********************** row ************************ -->
+<tr>
+<td>
+<table class="body">
+<tr>
+<td valign="middle" colspan="5">
+
+		<div id="tabs"> 
+		<ul>
+			<li><a href="#tabs-1">Processes</a></li>
+			<li><a href="#tabs-2">Specification</a></li>
+		</ul>
+			<div id="tabs-1">
+			    <%@ include file="reservation.details.table.processes.jsp" %>
+			</div>
+			<div id="tabs-2">
+   				<div class="specification_data_div">
+   					<span id="specification_data_area"></span>
+   				</div>
+			</div>
+		</div>
+</td>
+</table>
+</table>
+<script src="opensources/navigation/menu.js"></script>
+</body>
+</html>

Added: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/reservation.details.table.processes.jsp
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/reservation.details.table.processes.jsp?rev=1452044&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/reservation.details.table.processes.jsp (added)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/reservation.details.table.processes.jsp Sun Mar  3 14:11:58 2013
@@ -0,0 +1,67 @@
+<!--
+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.
+-->
+<table>
+<caption><b>Processes List</b><br><i><small>click column heading to sort</small></i></caption>
+<tr>
+<td>
+	<table class="sortable">
+	<thead>
+	<tr class="ducc-head">
+	<th title="The system assigned id for this process" class="sorttable_numeric">Id</th>
+	<th title="The log file name associated with this process">Log</th>
+	<th title="The log file size, in MB">Size</th>
+	<th title="The host for this process">Host<br>Name</th>
+	<!--
+	<th title="The host IP for this process">Host<br>ip</th>
+	-->
+	<th title="The OS assigned PID for this process"class="sorttable_numeric">PID</th>
+	<th title="Process scheduling state">State<br>Scheduler</th>
+	<th title="Process scheduling reason (for scheduling state)">Reason<br>Scheduler<br><small>or extraordinary status</small></th>
+	<th title="Process agent state">State<br>Agent</th>
+	<th title="Process agent reason (for agent state)">Reason<br>Agent</th>
+	<!--
+	<th title="Process initialization time, hh:mm:ss, as reported by the agent managing the process. The agent reports initialization start and end times. The time reported here is the difference between them, unless initialization is ongoing then the end time is estimated as now.">Time<br>Init</th>
+	-->
+	<th title="Process run time (not including process initialization time), hh:mm:ss, as reported by the agent managing the process. The agent reports run start and end times. The time reported here is the difference between them, unless the process is still running then the end time is estimated as now.">Time<br>Run</th>
+	<!--
+	<th title="Process total time spent performing garbage collections, hh:mm:ss">Time<br>GC</th>
+	<th title="Process total number of garbage collections that have occurred">Count<br>GC</th>
+	<th title="Process percentage of time spent in garbage collections, relative to total of initialization + run times">%GC</th>
+	-->
+	<!--
+	<th title="Cumulative CPU time, hh:mm:ss">CPU</th>
+	-->
+	<th title="Resident Storage Size, as a percentage of process memory requirement in specification">%RSS</th>
+	<!--
+	<th title="Average seconds per work item">Time<br>Avg</th>
+	<th title="Maximum seconds for any work item">Time<br>Max</th>
+	<th title="Minimum seconds for any work item">Time<br>Min</th>
+	<th title="The number of work items that completed successfully">Done</th>
+	<th title="The number of work items that failed to complete successfully">Error</th>
+	<th title="The number of work items that were retried, excluding preemptions">Retry</th>
+	<th title="The number of work items that were preempted">Pre-<br>empt</th>
+	<th title="The JConsole URL for this process">JConsole<br>URL</th>
+	-->
+	</tr>
+	</thead>
+	<tbody id="processes_list_area">
+	</tbody>
+	</table> 				
+</table>
+   
\ No newline at end of file