You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by va...@apache.org on 2008/09/13 02:31:13 UTC

svn commit: r694856 [3/15] - in /ode/branches/APACHE_ODE_1.X: ./ axis2-war/src/main/webapp/ axis2-war/src/main/webapp/WEB-INF/ axis2-war/src/main/webapp/WEB-INF/classes/ axis2-war/src/main/webapp/axis2-web/ axis2-war/src/main/webapp/css/ axis2-war/src/...

Added: ode/branches/APACHE_ODE_1.X/axis2-war/src/main/webapp/js/ODE.js
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/axis2-war/src/main/webapp/js/ODE.js?rev=694856&view=auto
==============================================================================
--- ode/branches/APACHE_ODE_1.X/axis2-war/src/main/webapp/js/ODE.js (added)
+++ ode/branches/APACHE_ODE_1.X/axis2-war/src/main/webapp/js/ODE.js Fri Sep 12 17:31:09 2008
@@ -0,0 +1,1387 @@
+/*
+ * 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.
+ */
+var org;
+if (!org) {
+    org = {};
+}
+else if (typeof org != "object") {
+        throw new Error("org already exists and is not an object");
+}
+
+if (!org.apache) {
+    org.apache = {};
+}
+else if (typeof org.apache != "object") {
+        throw new Error("org.apache already exists and is not an object");
+}
+
+if (!org.apache.ode) {
+    org.apache.ode = {};
+}
+else if (typeof org.apache.ode != "object") {
+        throw new Error("org.apache.ode already exists");
+}
+
+if(org.apache.ode.XHRObject){
+	throw new Error("org.apache.ode.XHRObject already exists");	
+}
+
+org.apache.ode.XHRObject = {};
+
+(function (){
+	var msxml_progid = [
+		'Microsoft.XMLHTTP',
+		'MSXML2.XMLHTTP.3.0',
+		'MSXML2.XMLHTTP'
+		]
+	function createXhrObject(){
+		var xhr;
+		try
+		{
+			// Instantiates XMLHttpRequest in non-IE browsers and assigns to http.
+			xhr = new XMLHttpRequest();		
+		}
+		catch(e)
+		{
+			for(var i=0; i<msxml_progid.length; ++i){
+				try
+				{
+					// Instantiates XMLHttpRequest for IE and assign to http
+					xhr = new ActiveXObject(msxml_progid[i]);				
+					break;
+				}
+				catch(e){}
+			}
+		}
+		finally
+		{
+			return xhr;
+		}
+	}
+	
+	function xhrSyncGetRequest(url, text){
+		var request = createXhrObject();
+		request.open('GET', url, false);
+		request.send(null);
+		
+		if (request.status == 200) {  // Make sure there were no errors     // Make sure the response is an XML document 
+            if(text == true){
+                return request.responseText;
+            }
+		    if (request.getResponseHeader("Content-Type").match(/text\/xml/) != null || request.getResponseHeader("Content-Type").match(/application\/xml/) != null) { 
+		        return request.responseXML;		        
+		    }else{
+				return request.responseText;
+			} 
+			
+		}else {
+			aler("Error occurred during the GET request");
+			return null;
+		}	
+	}
+	var ns = org.apache.ode.XHRObject;
+	ns.xhrSyncGetRequest = xhrSyncGetRequest;
+	
+})();
+
+if (org.apache.ode.DOMHelper) {
+    throw new Error("org.apache.ode.DOMHelper already exists");
+}
+
+// Utility methods for handling DOM in cross browser way.
+org.apache.ode.DOMHelper = {};
+
+(function(){
+    
+	function getElementsByTagName(tagName, ns, prefix, scope){
+		var elementListForReturn = scope.getElementsByTagName(prefix+":"+tagName);
+		if(elementListForReturn.length == 0){
+			elementListForReturn = scope.getElementsByTagName(tagName);
+			if(elementListForReturn.length == 0){
+				elementListForReturn = scope.getElementsByTagName("ns:"+tagName);
+				if(elementListForReturn.length == 0 && document.getElementsByTagNameNS){
+					elementListForReturn = scope.getElementsByTagNameNS(ns, tagName);
+				}
+			}
+		}     
+		
+		return elementListForReturn;
+    }
+    
+	// Find all Text nodes at or beneath the node n. 
+ 	// Concatenate their content and return it as a string. 
+    function getText(n){ 
+        var strings = [];
+        getStrings(n, strings);
+        return strings.join("");
+        
+		function getStrings(n, strings){
+            if (n.nodeType == 3 /* Node.TEXT_NODE */) 
+                strings.push(n.data);
+            else if (n.nodeType == 1 /* Node.ELEMENT_NODE */) {
+                    for (var m = n.firstChild; m != null; m = m.nextSibling) {
+                        getStrings(m, strings);
+                    }
+            }
+		}
+    }
+	
+	var ns = org.apache.ode.DOMHelper;
+	ns.getElementsByTagName = getElementsByTagName;
+	ns.getText = getText;
+})();
+
+if(org.apache.ode.Widgets){
+	throw new Error("org.apache.ode.Widgets already exists");
+}
+
+org.apache.ode.Widgets = {};
+
+(function(){
+	function operationConfirmation(msg, handleYes, handleNo){
+		
+		var handleYesWrapper= function(){
+			this.hide();
+			handleYes();
+			
+		}
+		
+		var handleNoWrapper = function(){
+			this.hide();
+			handleNo();
+			
+		}
+		
+		var simpleDiag = new YAHOO.widget.SimpleDialog('confimationdialogue',{
+			width:'350px',
+			fixedcenter:true,
+			visible:true,
+			draggable:true,
+			close:false,
+			text:msg,
+			icon:YAHOO.widget.SimpleDialog.ICON_WARN,
+			constraintoviewport:true,
+			buttons:[{
+				text:'Yes',
+				handler:handleYesWrapper,
+				isDefault:true
+			},{
+				text:'No',
+				handler:handleNoWrapper
+			}]
+		});
+		
+		simpleDiag.setHeader('Apache ODE');
+		simpleDiag.render('content');
+		simpleDiag.show();
+		
+	}
+	
+	function alert(msg, iconT){
+		if(iconT == 'undefined')
+			iconT = YAHOO.widget.SimpleDialog.ICON_INFO;
+		
+		var handleOK = function(){
+			this.hide();
+		}
+		
+		var simpleAlert = new YAHOO.widget.SimpleDialog('alertbox',{
+			width:'350px',
+			fixedcenter:true,
+			visible:true,
+			draggable:true,
+			close:false,
+			text:msg,
+			icon:iconT,
+			constraintoviewport:true,
+			buttons:[{text:'OK',
+			handler:handleOK,
+			isDefault:true}]
+		});
+		
+		simpleAlert.setHeader('Apache ODE');
+		simpleAlert.render('content');
+		simpleAlert.show();		
+	}
+	
+	var ns = org.apache.ode.Widgets;
+	ns.operationConfirm = operationConfirmation;
+	ns.alert = alert;
+})();
+
+
+
+// Definition of Process Information processing class start from here.
+// This class will be used to get the details of processes from ODE 
+// process management service and visualize them in Web interface.
+// Process retiring, activation is also handle from this class.
+if (org.apache.ode.ProcessHandling) {
+    throw new Error("org.apache.ode.ProcessHandling already exists");
+}
+
+org.apache.ode.ProcessHandling = {};
+
+(function(){
+	var processInfoNS = "http://www.apache.org/ode/pmapi/types/2006/08/02/";
+	var processInfoNSPrefix = "ns";
+	var processInfoTagName = "process-info";
+	
+    function loadProcessInfo(){
+        // Use ProcessManagementService to get the details about currently available
+        // processes in the engine. This method returns a XML document like following:
+        // <?xml version='1.0' encoding='UTF-8'?>
+        //<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
+        //    <soapenv:Body>
+        //        <axis2ns8:listAllProcessesResponse xmlns:axis2ns8="http://www.apache.org/ode/pmapi">
+        //            <process-info-list>
+        //                <ns:process-info xmlns:ns="http://www.apache.org/ode/pmapi/types/2006/08/02/">
+        //                    <ns:pid>{http://ode/bpel/unit-test}HelloWorld2-3</ns:pid>
+        //                    <ns:status>ACTIVE</ns:status>
+        //                    <ns:version>3
+        //                    </ns:version>
+        //                    <ns:definition-info>
+        //                        <ns:process-name xmlns:unit="http://ode/bpel/unit-test">unit:HelloWorld2
+        //                        </ns:process-name>
+        //                    </ns:definition-info>
+        //                    <ns:deployment-info>
+        //                        <ns:package>HelloWorld2</ns:package>
+        //                        <ns:document>HelloWorld2.bpel
+        //                        </ns:document>
+        //                        <ns:deploy-date>2008-06-15T17:52:04.523+05:30</ns:deploy-date>
+        //                    </ns:deployment-info>
+        //                    <ns:instance-summary>
+        //                        <ns:instances state="ACTIVE" count="0"/>
+        //                        <ns:instances state="COMPLETED" count="0"/>
+        //                        <ns:instances state="ERROR" count="0"/>
+        //                        <ns:instances state="FAILED" count="0"/>
+        //                        <ns:instances state="SUSPENDED" count="0"/>
+        //                        <ns:instances state="TERMINATED" count="0"/>
+        //                    </ns:instance-summary>
+        //                    <ns:properties />
+        //                    <ns:endpoints/>
+        //                    <ns:documents>
+        //                        <ns:document>
+        //                            <ns:name>HelloWorld2.bpel</ns:name>
+        //                           <ns:type>http://schemas.xmlsoap.org/ws/2004/03/business-process/
+        //                            </ns:type>
+        //                            <ns:source>file:/home/milinda/programs/apache-tomcat-5.5.26/webapps/ode/WEB-INF/processes/HelloWorld2/HelloWorld2.bpel
+        //                            </ns:source>
+        //                        </ns:document>
+        //                        <ns:document>
+        //                            <ns:name>HelloWorld2.wsdl</ns:name>
+        //                            <ns:type>http://schemas.xmlsoap.org/wsdl/</ns:type>
+        //                            <ns:source>
+        //                                file:/home/milinda/programs/apache-tomcat-5.5.26/webapps/ode/WEB-INF/processes/HelloWorld2/HelloWorld2.wsdl
+        //                            </ns:source>
+        //                        </ns:document>
+        //                        <ns:document>
+        //                            <ns:name>HelloWorld2.cbp</ns:name>
+        //                            <ns:type>http://www.fivesight.com/schemas/2005/12/19/CompiledBPEL
+        //                            </ns:type>
+        //                            <ns:source>file:/home/milinda/programs/apache-tomcat-5.5.26/webapps/ode/WEB-INF/processes/HelloWorld2/HelloWorld2.cbp
+        //                            </ns:source>
+        //                        </ns:document>
+        //                    </ns:documents>
+        //                </ns:process-info>
+        //			</process-info-list>
+        //		</axis2ns8:listAllProcessesResponse>
+        //	</soapenv:Body>
+        //</soapenv:Envelope>
+        
+        try {
+            var listAllProcessesRes = ProcessManagementService.listAllProcesses();
+            return listAllProcessesRes;
+        } 
+        catch (e) {
+            if (typeof e == "string") {
+                alert("Exception Occurred " + e.toString());
+            }
+            else {
+                alert("Exception Occurred!" + e);
+            }
+			return null;
+        }
+    }
+	
+	function InstanceSummary(activeIns, completedIns, errorIns, failedIns, suspendedIns, terminatedIns){
+		this.activeInstances = activeIns;
+		this.completedInstances = completedIns;
+		this.errorInstances = errorIns;
+		this.failedInstances = failedIns;
+		this.suspendedInstances = suspendedIns;
+		this.terminatedInstances = terminatedIns;
+	}
+	
+	function Process(
+		pid, version, status, depDate, nameWithVer, processName, urlOfName, prefixOfName, instanceSummary){
+		this.pid = pid;
+		this.version = version;
+		this.status = status;
+		this.depDate = depDate;
+		this.nameWithVer = nameWithVer;
+		this.processName = processName;
+		this.urlOfName = urlOfName;
+		this.prefixOfName = prefixOfName;
+		this.instanceSummary = instanceSummary;		
+	}
+    
+    function processProcessInfoList(listAllProcessesRes){
+		var returnInfoArray = [];
+    	var processInfoList = org.apache.ode.DOMHelper.getElementsByTagName(
+			processInfoTagName, 
+			processInfoNS, 
+			processInfoNSPrefix, 
+			listAllProcessesRes);
+		if(processInfoList.length == 0){
+			return 0;
+		}else{
+			
+			for(var i = 0; i < processInfoList.length; i++){
+				var activeInstances = 0;
+    			var completedInstances = 0;
+    			var errorInstances = 0;
+    			var failedInstances = 0;
+    			var suspendedInstances = 0;
+    			var terminatedInstances = 0;
+	
+				var scopeEle = processInfoList[i];
+				
+				var pidEle = org.apache.ode.DOMHelper.getElementsByTagName("pid", processInfoNS, processInfoNSPrefix, scopeEle)[0];
+				var pid = org.apache.ode.DOMHelper.getText(pidEle);
+				
+				var versionEle = org.apache.ode.DOMHelper.getElementsByTagName('version', processInfoNS, processInfoNSPrefix, scopeEle)[0];
+				var version = org.apache.ode.DOMHelper.getText(versionEle);
+				
+				var statusEle = org.apache.ode.DOMHelper.getElementsByTagName('status', processInfoNS, processInfoNSPrefix, scopeEle)[0];
+				var status = org.apache.ode.DOMHelper.getText(statusEle);
+				
+				var depInfoEle = org.apache.ode.DOMHelper.getElementsByTagName("deployment-info", processInfoNS, processInfoNSPrefix, scopeEle)[0];
+				var depDateEle = org.apache.ode.DOMHelper.getElementsByTagName("deploy-date", processInfoNS, processInfoNSPrefix, scopeEle)[0];
+				var depDate = org.apache.ode.DOMHelper.getText(depDateEle);
+				
+				var defInfoEle = org.apache.ode.DOMHelper.getElementsByTagName("definition-info", processInfoNS, processInfoNSPrefix, scopeEle)[0];
+				var processNameEle = org.apache.ode.DOMHelper.getElementsByTagName("process-name", processInfoNS, processInfoNSPrefix, scopeEle)[0];
+				var processName = org.apache.ode.DOMHelper.getText(processNameEle);
+
+				var len = pid.length;
+		        var endPos = pid.indexOf('}');
+		        var startPos = pid.indexOf('{');
+		        var nameWithVersion = pid.substr(++endPos, len);	
+				var indexOfColon = processName.indexOf(':');
+		        var prefixOfName = processName.substring(0, indexOfColon);
+		        var urlOfName = pid.substr(++startPos, (endPos - 2));		
+				
+				var instanceSummaryEle = org.apache.ode.DOMHelper.getElementsByTagName("instance-summary", processInfoNS, processInfoNSPrefix, scopeEle)[0];	
+				
+				for(var m = instanceSummaryEle.firstChild; m != null; m = m.nextSibling){
+					var state = m.getAttribute("state");
+					var count = m.getAttribute("count");
+					if (state == 'ACTIVE') {
+		                activeInstances = parseInt(count);
+		            }else if (state == 'COMPLETED') {
+		                completedInstances = parseInt(count);
+		            }else if (state == 'ERROR') {
+		                errorInstances = parseInt(count);
+		            }else if (state == 'FAILED') {
+		                failedInstances = parseInt(count);
+		            }else if (state == 'SUSPENDED') {
+		                suspendedInstances = parseInt(count);
+		            }else if (state == 'TERMINATED') {
+		                terminatedInstances = parseInt(count);
+		            }					
+				} 
+				
+				var instanceSummary = new InstanceSummary(
+										activeInstances, 
+										completedInstances, 
+										errorInstances, 
+										failedInstances, 
+										suspendedInstances, 
+										terminatedInstances);
+				
+				var processInfo = new Process(pid, 
+										version, 
+										status, 
+										depDate, 
+										nameWithVersion, 
+										processName, 
+										urlOfName, 
+										prefixOfName, 
+										instanceSummary);
+				
+				returnInfoArray[i] = processInfo;				
+			}
+		}
+		
+		return returnInfoArray;
+    }
+	
+	function createProcessWidget(process, i){
+		var retireBtnID = 'retire' + i;
+		var retierBtnVar = 'retireBtn' + i;
+		var activateBtnID = 'activate'+i;
+		var activateVar = 'activateBtn' + i;
+		var viewProDetID = 'viewProcessDet'+i;
+		var viewProDetVar = 'viewProcessDetVar'+i;
+        var active = "true";
+        var retire = "false";
+		if(process.status.toUpperCase() == 'ACTIVE'){
+            active = "true";
+            retire = "false";
+        }else{
+            active = "false";
+            retire = "true";
+        }
+		str = '<div class="yui-cms-item yui-panel selected"><div class="hd">'+
+		 	  process.pid +
+			  '</div><div class="bd"><div class="fixed">'+
+			  '<table><tr><td class="alt"> Process Summary</td></tr><tr><th>' +
+        	  'Deploy Date:</th><td>' +
+			  process.depDate +
+	          '</td><th>Status:</th><td>' +
+	          process.status +
+	          '</td><th>Version:</th><td>' +
+	          process.version +
+	          '</td></tr>' +
+	          '<table><tr><td class="alt"> Instance Summary</td></tr><tr><th>Active:</th><td>' +
+	          process.instanceSummary.activeInstances +
+	          '</td><th>Terminated:</th><td>' +
+	          process.instanceSummary.terminatedInstances +
+	          '</td><th>Completed:</th><td>' +
+	          process.instanceSummary.completedInstances +
+	          '</td><th>Error:</th><td>' +
+	          process.instanceSummary.errorInstances +
+	          '</td><th>Failed:</th><td>' +
+	          process.instanceSummary.failedInstances +
+	          '</td><th>Suspended:</th><td>' +
+	          process.instanceSummary.suspendedInstances +
+	          '</td> </tr></table></table>' +
+              '</div></div><div class="ft">'+
+			  '<span id="'+ retireBtnID +
+			  '" class="yui-button yui-push-button"><span class="first-child"><input type="button" name="'+ retireBtnID +'name" value="Retire"></span></span>'+
+			  '<span id="'+ activateBtnID +
+			  '" class="yui-button yui-push-button"><span class="first-child"><input type="button" name="'+ activateVar +'name" value="Activate"></span></span>'+
+			  '<span id="'+ viewProDetID +
+			  '" class="yui-button yui-push-button"><span class="first-child"><input type="button" name="'+ viewProDetVar +'name" value="Details"></span></span>'+
+			  '<script type="text/javascript">'+
+			  'function '+retierBtnVar+'retireProcess(){org.apache.ode.ProcessHandling.retireProcess("'+ process.nameWithVer +'","'+ process.urlOfName +'","'+process.prefixOfName+'");}'+
+			  'function '+activateVar+'activateProcess(){org.apache.ode.ProcessHandling.activateProcess("'+ process.nameWithVer +'","'+ process.urlOfName +'","'+process.prefixOfName+'");}'+
+			  'function '+viewProDetVar+'viewProcessDetails(){org.apache.ode.ProcessHandling.viewProcessDetails("'+ process.nameWithVer +'","'+ process.urlOfName +'","'+process.prefixOfName+'");}'+
+			 
+			  'var ' + retierBtnVar + '=new YAHOO.widget.Button("'+ retireBtnID +'");'+
+			  retierBtnVar + '.addListener("click", '+retierBtnVar+'retireProcess); '+
+              retierBtnVar+'.set("disabled",'+retire+');'+			  
+			  'var ' + activateVar + '=new YAHOO.widget.Button("'+ activateBtnID + '");'	+
+			  activateVar+'.addListener("click", '+activateVar+'activateProcess); '	+
+              activateVar+'.set("disabled",'+active+');'+			  
+			  'var ' + viewProDetVar + '=new YAHOO.widget.Button("'+ viewProDetID + '");'	+
+			  viewProDetVar+'.addListener("click", '+viewProDetVar+'viewProcessDetails); '	+	  	  
+			  '</script>'+
+			  '</div> <div class="actions"><a href="#" class="accordionToggleItem">&nbsp;</a>'+
+			  '</div><div class="actions"><a href="#" class="accordionToggleItem">&nbsp;</a>'+
+			  '</div></div>'
+			  
+		return str;
+	}
+	
+	function populateContentArea(){
+		
+		var contentHTML = '<h2>Currently Deployed Processes</h2>'; 
+		var processesInfo = loadProcessInfo();
+		
+		var processArray = processProcessInfoList(processesInfo);
+		if (processArray != 0 ) {
+			for (var i = 0; i < processArray.length; i++) {
+				contentHTML += createProcessWidget(processArray[i], i);
+			}
+		}else{
+			contentHTML += '<p>Currently no processes are available.</p>'
+		}
+		var content = document.getElementById('content');
+		var newDiv = document.createElement('div');
+		YAHOO.util.Dom.addClass(newDiv, 'myAccordion');
+		var innerDiv = document.createElement('div');
+		YAHOO.util.Dom.addClass(innerDiv, 'yui-cms-accordion multiple fade fixIE');
+		innerDiv.innerHTML = contentHTML;
+		newDiv.appendChild(innerDiv);
+		if(content.firstChild){
+			content.replaceChild(newDiv, content.firstChild);	
+		}else{
+			content.appendChild(newDiv);	
+		}
+				
+	}
+
+    function getStatistics(){
+        function Statistics(numOfProces, active, terminated, error, failed, suspended, completed){
+            this.numOfProcesses = numOfProces;
+            this.activeInst = active;
+            this.terminatedInst = terminated;
+            this.errorInst = error;
+            this.failedInst = failed;
+            this.suspendedInst = suspended;
+            this.completedInst = completed;
+            this.totalInst = active + terminated + error + failed + suspended + completed;
+        }
+        var stat;
+        var processes = processProcessInfoList(loadProcessInfo());
+        var numOfProcesses = processes.length;
+        var _ter = 0;
+        var _act = 0;
+        var _error = 0;
+        var _fail = 0;
+        var _susp = 0;
+        var _com = 0;
+        if(numOfProcesses != 0){
+            for(var i = 0; i < processes.length; i++){
+                _act += processes[i].instanceSummary.activeInstances;
+                _ter += processes[i].instanceSummary.terminatedInstances;
+                _error += processes[i].instanceSummary.errorInstances;
+                _fail += processes[i].instanceSummary.failedInstances;
+                _susp += processes[i].instanceSummary.suspendedInstances;
+                _com += processes[i].instanceSummary.completedInstances;
+            }
+            stat = new Statistics(numOfProcesses, _act, _ter, _error, _fail, _susp, _com);
+        }else{
+            stat = new Statistics(0,0,0,0,0,0,0);
+        }
+        return stat;
+    }
+	
+	function _populateContentArea(){
+		setTimeout("populateContentArea()", 5000);
+	} 
+	
+	function retireProcess(processName, url, prefix){
+	    try {
+			
+			function handleYes(){
+				var response;
+				try{
+					response = ProcessManagementService.setRetired(true, processName, url, prefix);
+				}catch(e){
+					if (typeof(e) == "string") {
+			            org.apache.ode.Widgets.alert("Exception occured:\n" + e.toString(), YAHOO.widget.SimpleDialog.ICON_ALARM);
+			        }
+			        else {
+			            org.apache.ode.Widgets.alert("Exception occurred!", YAHOO.widget.SimpleDialog.ICON_ALARM);
+			        }
+				}
+	        	var prefixWithName = prefix + ':' + processName;
+		        var defInfoEle = org.apache.ode.DOMHelper.getElementsByTagName('definition-info', 'http://www.apache.org/ode/pmapi/types/2006/08/02/', 'ns', response)[0];
+                
+                if (defInfoEle) {
+                    var processNameEle = org.apache.ode.DOMHelper.getElementsByTagName('process-name', 'http://www.apache.org/ode/pmapi/types/2006/08/02/', 'ns', defInfoEle)[0];
+                    if (processNameEle) {
+                        var proNameFromRes = org.apache.ode.DOMHelper.getText(processNameEle);
+                        if (prefixWithName == proNameFromRes) {
+                            org.apache.ode.ProcessHandling.populateContent();
+                        }
+                        else {
+                            org.apache.ode.Widgets.alert('Error occurred during retiring the process!', YAHOO.widget.SimpleDialog.ICON_ALARM);
+                        }
+                    }
+				}else{
+					org.apache.ode.Widgets.alert('Error occurred during retiring the process!', YAHOO.widget.SimpleDialog.ICON_ALARM);
+				}
+				return true;
+				
+			}
+			
+			function handleNo(){
+				org.apache.ode.Widgets..alert('Retiring cancelled!', YAHOO.widget.SimpleDialog.ICON_INFO);	
+			}
+			var msg = 'Do you want to retire the process '+ processName + '?';
+			org.apache.ode.Widgets.operationConfirm(msg, handleYes, handleNo);	       
+	    } 
+	    catch (e) {
+	        if (typeof(e) == "string") {
+	            org.apache.ode.Widgets.alert("Exception occured:\n" + e.toString());
+	        }
+	        else {
+	            org.apache.ode.Widgets.alert("Exception occurred!");
+	        }
+			
+	    }
+	    return false;
+	}
+
+	function activateProcess(processName, url, prefix){
+	    try {
+			function handleYes(){
+				var response;
+				try{
+					response = ProcessManagementService.activate(processName, url, prefix);
+				}catch(e){
+					if (typeof(e) == "string") {
+			            org.apache.ode.Widgets.alert("Exception occured:\n" + e.toString());
+			        }
+			        else {
+			            org.apache.ode.Widgets.alert("Exception occurred!");
+			        }
+				}
+		        var prefixWithName = prefix + ':' + processName;
+		        var defInfoEle = org.apache.ode.DOMHelper.getElementsByTagName('definition-info', 'http://www.apache.org/ode/pmapi/types/2006/08/02/', 'ns', response)[0];
+				if (defInfoEle) {
+					var processNameEle = org.apache.ode.DOMHelper.getElementsByTagName('process-name', 'http://www.apache.org/ode/pmapi/types/2006/08/02/', 'ns', defInfoEle)[0];
+					
+					if(processNameEle){
+						var proNameFromRes = org.apache.ode.DOMHelper.getText(processNameEle);
+				        if (prefixWithName == proNameFromRes) {
+				            org.apache.ode.ProcessHandling.populateContent();
+				       	}else{
+							org.apache.ode.Widgets.alert('Error occurred while activating process!');
+						}		
+					} 
+				}else{
+					org.apache.ode.Widgets.alert('Error occurred while activating process!');
+				}				
+			}
+			
+			function handleNo(){
+				org.apache.ode.Widgets.alert('Process Activation Cancelled!');
+			}
+			
+			var msg = 'Do you want to activate the process '+ processName+'?';
+			org.apache.ode.Widgets.operationConfirm(msg, handleYes, handleNo);
+	        
+	    }catch (e) {
+	        if (typeof(e) == "string") {
+	            org.apache.ode.Widgets.alert("Exception occured:\n" + e.toString());
+	        }
+	        else {
+	            org.apache.ode.Widgets.alert("Exception occurred!");
+	        }
+	    }
+	    return false;
+	}
+	
+	function viewProcessDetails(processName, url, prefix){
+		var proPID = 'prodet'+processName;
+		var processDefURL = '';
+		var processN = processName.substring(0, (processName.indexOf('-')));
+		
+		var urlRequestURL = 'http://localhost:8080/ode/deployment/getProcessDefinition/' + processN ;
+		try{
+			var response = ProcessManagementService.getProcessInfo(processName, url, prefix);
+			var processInfoEle = org.apache.ode.DOMHelper.getElementsByTagName(
+			processInfoTagName, 
+			processInfoNS, 
+			processInfoNSPrefix, 
+			response)[0];
+			
+			
+				
+			var handleSuccess = function(o){
+				if(o.responseXML){
+					var proDefURLEle = o.responseXML.getElementsByTagName('url')[0];
+					var proDefURL = org.apache.ode.DOMHelper.getText(proDefURLEle);
+					
+					var handleSuccessIn = function(o){
+						var myPanel = new YAHOO.widget.Panel(proPID, {
+								width:"600px", 
+								fixedcenter: true, 
+								underlay:"shadow", 
+								close:true, 
+								visible:true, 
+								draggable: true, 
+								zindex:4,
+								modal:true} );	
+						
+						myPanel.setHeader("Process Details: " + processName);
+			
+						var processInfoStr = ProcessManagementService.text.replace(/>/g, '>\n');
+						processInfoStr = processInfoStr.replace(/<\//g, '\n</');
+						processInfoStr = processInfoStr.replace(/>\n>\n<\//g, '>\n</');
+						
+						var processDefStr = o.responseText;
+						processDefStr = processDefStr.replace(/<\//g, '\n</');
+						processDefStr = processDefStr.replace(/>\n>\n<\//g, '>\n</');
+						
+						var detailsTabs = new YAHOO.widget.TabView();
+	
+						var proInfoTab = new YAHOO.widget.Tab( {
+					        label: 'Process Info',
+							content:'<textarea id="proinfo" class="codepress html" style="width: 568px; height: 570px;"></textarea>'
+							
+					    });
+						detailsTabs.addTab(proInfoTab);
+						
+					    var proDefTab = new YAHOO.widget.Tab({
+					        label: 'Process Definition',
+							content:'<textarea id="prodef" class="codepress html" style="width: 568px; height: 570px;"></textarea>',
+							active: true		        
+					    });
+						
+					    detailsTabs.addTab(proDefTab);
+					    
+					    	
+						var tabDiv = document.createElement('div');
+						detailsTabs.appendTo(tabDiv);
+			
+						
+						myPanel.setBody(tabDiv);
+						myPanel.cfg.setProperty("underlay","matte");
+						myPanel.render("content");
+						var proInfoEle = document.getElementById('proinfo');
+						proInfoEle.appendChild(document.createTextNode(processInfoStr));
+						var proDefEle = document.getElementById('prodef');
+						proDefEle.appendChild(document.createTextNode(processDefStr));
+					}
+					
+					var handleFailureIn = function(o){
+						org.apache.ode.Widgets.alert("Request Failed: Getting Process Definition.");	
+					}
+					
+					var callbackIn = {
+						success: handleSuccessIn,
+						failure: handleFailureIn,						
+					}
+					
+					var requestIn = YAHOO.util.Connect.asyncRequest('GET', proDefURL, callbackIn);
+				}
+			}
+			
+			var handleFailure = function(o){
+				org.apache.ode.Widgets.alert("Request failed: Geting process definition URL");
+			}
+			
+			var callback = {
+				success: handleSuccess,
+				failure: handleFailure,				
+			} 
+			
+			var request = YAHOO.util.Connect.asyncRequest('GET', urlRequestURL, callback);						
+			
+		}catch(e){
+			if (typeof(e) == "string") {
+	            org.apache.ode.Widgets.alert("Exception occured in viewProcessDetails :\n" + e.toString());
+	        }
+	        else {
+	            org.apache.ode.Widgets.alert("Exception occurred in viewProcessDetails !");
+	        }	
+		}
+		return false;
+	}
+    
+    var ns = org.apache.ode.ProcessHandling;
+    ns.loadProcessInfo = loadProcessInfo;
+    ns.processInfo = processProcessInfoList;
+	ns.activateProcess = activateProcess;
+	ns.retireProcess = retireProcess;
+	ns.populateContent = populateContentArea;
+	ns.viewProcessDetails = viewProcessDetails;
+    ns.stats = getStatistics;
+    
+})();
+
+if (org.apache.ode.InstanceHandling) {
+    throw new Error("org.apache.ode.InstanceHandling already exists");
+}
+
+org.apache.ode.InstanceHandling = {};
+
+(function(){
+	var instanceInfoNS = "http://www.apache.org/ode/pmapi/types/2006/08/02/";
+	var instanceInfoNSPrefix = "ns";
+	var instanceInfoTagName = "instance-info";
+	
+    function loadInstanceInfo(){
+        try {
+            var responseDoc = InstanceManagementService.listAllInstances();
+            return responseDoc;            
+        } 
+        catch (e) {
+            if (typeof(e) == "string") {
+                org.apache.ode.Widgets.alert("Exception occured in loadInstanceInfo():\n" + e.toString());
+            }
+            else {
+                org.apache.ode.Widgets.alert("Exception occurred in loadInstanceInfo()!");
+            }
+        }        
+    }
+	
+	function InstanceInfo(iid, pid,	rootScope, siid, statusR, nameR, modelID, statusI, dateStarted, dateLastActive){
+		this.iid = iid;
+		this.pid = pid;
+		this.rootScope = rootScope;
+		this.siid = siid;
+		this.statusR = statusR;
+		this.nameR = nameR;
+		this.modelID = modelID;
+		this.statuI = statusI;
+		this.dateStarted = dateStarted;
+		this.dateLastActive = dateLastActive;		
+	}
+	
+	function processInstanceInfo(instanceInfoDoc){
+		var returnInstanceArray = [];
+		var instanceInfoList = org.apache.ode.DOMHelper.getElementsByTagName(
+			instanceInfoTagName,
+			instanceInfoNS,
+			instanceInfoNSPrefix,
+			instanceInfoDoc);
+		if (instanceInfoList.length == 0){
+			return 0;
+		}else{
+			for(var i = 0; i < instanceInfoList.length; i++){
+				var scopeEle = instanceInfoList[i];
+				var iidEle = org.apache.ode.DOMHelper.getElementsByTagName('iid', instanceInfoNS, instanceInfoNSPrefix, scopeEle)[0];
+				var iid = org.apache.ode.DOMHelper.getText(iidEle);
+				
+				var pidEle = org.apache.ode.DOMHelper.getElementsByTagName('pid', instanceInfoNS, instanceInfoNSPrefix, scopeEle)[0];
+				var pid = org.apache.ode.DOMHelper.getText(pidEle);
+				
+				var rootScopeEle = org.apache.ode.DOMHelper.getElementsByTagName('root-scope', instanceInfoNS, instanceInfoNSPrefix, scopeEle)[0];
+				var siid = rootScopeEle.getAttribute('siid');
+				var statusR = rootScopeEle.getAttribute('status');
+				var nameR = rootScopeEle.getAttribute('name');
+				var modelID = rootScopeEle.getAttribute('modelId');
+				
+				var statusIEle = org.apache.ode.DOMHelper.getElementsByTagName('status', instanceInfoNS, instanceInfoNSPrefix, scopeEle)[0];
+				var statusI = org.apache.ode.DOMHelper.getText(statusIEle);
+				
+				var dateSEle = org.apache.ode.DOMHelper.getElementsByTagName('dt-started', instanceInfoNS, instanceInfoNSPrefix, scopeEle)[0];
+				var dateStarted = org.apache.ode.DOMHelper.getText(dateSEle);
+				
+				var lastAEle = org.apache.ode.DOMHelper.getElementsByTagName('dt-last-active', instanceInfoNS, instanceInfoNSPrefix, scopeEle)[0];
+				var lastActive = org.apache.ode.DOMHelper.getText(lastAEle);
+				
+				var instance = new InstanceInfo(iid, pid, rootScopeEle, siid, statusR, nameR, modelID, statusI, dateStarted, lastActive);
+				
+				returnInstanceArray[i] = instance;				
+			}
+		}
+		
+		return returnInstanceArray;
+	}
+	
+	function createInstanceWidget(instance, i){
+		var terminateBtnID = 'terminateIns'+i;
+		var terminateBtnVar = 'terminateVar'+i;
+		var suspendBtnID = 'suspendBtn' + i;
+		var suspenBtnVar = 'suspendBtnVar' + i;
+		var resumeBtnID = 'resumeBtn' + i;
+		var resumeBtnVar = 'resumeBtnVar' + i;
+        var _term = "false";
+        var _susp = "false";
+        var _resu = "true";
+        if(instance.statuI.toUpperCase() == 'ACTIVE'){
+            _term = "false";
+            _susp = "false";
+            _resu = "true";
+        }else if(instance.statuI.toUpperCase() == 'COMPLETED' || instance.statuI.toUpperCase() == 'ERROR'
+                || instance.statuI.toUpperCase() == 'FAILED'){
+            _term = "false";
+            _susp = "true";
+            _resu = "true";
+        }else if(instance.statuI.toUpperCase() == 'SUSPENDED'){
+            _term = "false";
+            _susp = "true";
+            _resu = "false";
+        }else if(instance.statuI.toUpperCase() == 'TERMINATED'){
+            _term = "true";
+            _susp = "true";
+            _resu = "true";
+        }
+		
+		str = '<div class="yui-cms-item yui-panel selected"><div class="hd">Instance ID: '+
+		 	  instance.iid +
+			  '</div><div class="bd"><div class="fixed">'+
+			  '<table><tr><td class="alt">Instance Summary</td></tr><tr><th>' +
+              'Process:</th><td>' + instance.pid + '</td><th>Status:</th><td>' +
+              instance.statuI + '</td></tr><tr><th>Date Started:</th><td>' +
+              instance.dateStarted + '</td><th>Date Last Active</th><td>' +
+              instance.dateLastActive + '</td></tr></table>' + 
+              '</div></div><div class="ft">'+
+			  '<span id="'+ terminateBtnID +
+			  '" class="yui-button yui-push-button"><span class="first-child"><input type="button" name="'+ terminateBtnID +'name" value="Terminate"></span></span>'+
+			  '<span id="'+ suspendBtnID +
+			  '" class="yui-button yui-push-button"><span class="first-child"><input type="button" name="'+ suspendBtnID +'name" value="Suspend"></span></span>'+
+			  '<span id="'+ resumeBtnID +
+			  '" class="yui-button yui-push-button"><span class="first-child"><input type="button" name="'+ resumeBtnID +'name" value="Resume"></span></span>'+
+			  '<script type="text/javascript">'+
+			  'function '+terminateBtnVar+'terminateIns(){org.apache.ode.InstanceHandling.terminateInstance("'+instance.iid +'");}'+
+			  'function '+suspenBtnVar+'suspendIns(){org.apache.ode.InstanceHandling.suspendInstance("'+instance.iid +'");}'+
+			  'function '+resumeBtnVar+'resumeIns(){org.apache.ode.InstanceHandling.resumeInstance("'+instance.iid +'");}'+
+			  
+			  'var ' + terminateBtnVar + '=new YAHOO.widget.Button("'+ terminateBtnID + '");'+
+			  terminateBtnVar + '.addListener("click", '+terminateBtnVar+'terminateIns); '+
+              terminateBtnVar+ '.set("disabled",' + _term + ');'+
+			  'var ' + suspenBtnVar + '=new YAHOO.widget.Button("'+ suspendBtnID + '");'	+
+			  suspenBtnVar+'.addListener("click", '+suspenBtnVar+'suspendIns); '	+
+             suspenBtnVar+ '.set("disabled",' + _susp + ');' +
+			  'var ' + resumeBtnVar + '=new YAHOO.widget.Button("'+ resumeBtnID + '");'	+
+			  resumeBtnVar+'.addListener("click", '+resumeBtnVar+'resumeIns); '	+				  
+              resumeBtnVar+ '.set("disabled",' + _resu + ');' +
+			  '</script>'+
+			  '</div> <div class="actions"><a href="#" class="accordionToggleItem">&nbsp;</a>'+
+			  '</div></div>'
+			  
+		return str;
+	}
+	
+	function populateContentArea(){
+		
+		var contentHTML = '<h2>Currently Available Instances</h2>'; 
+		var instanceInfo = loadInstanceInfo();
+		
+		var instanceArray = processInstanceInfo(instanceInfo);
+		if (instanceArray != 0 ) {
+			for (var i = 0; i < instanceArray.length; i++) {
+				contentHTML += createInstanceWidget(instanceArray[i], i);
+			}
+		}else{
+			contentHTML += '<p>Currently no instances are available.</p>'
+		}
+		var content = document.getElementById('content');
+		var newDiv = document.createElement('div');
+		YAHOO.util.Dom.addClass(newDiv, 'myAccordion');
+		var innerDiv = document.createElement('div');
+		YAHOO.util.Dom.addClass(innerDiv, 'yui-cms-accordion multiple fade fixIE');
+		innerDiv.innerHTML = contentHTML;
+		newDiv.appendChild(innerDiv);
+		if(content.firstChild){
+			content.replaceChild(newDiv, content.firstChild);	
+		}else{
+			content.appendChild(newDiv);	
+		}
+				
+	}
+    
+	function terminateInstance(instanceID){
+        try {
+
+            function handleYes(){
+				var response;
+				try{
+                	response = InstanceManagementService.terminate(instanceID);
+				} catch (e) {
+		            if (typeof(e) == "string") {
+		                org.apache.ode.Widgets.alert("Exception occured:\n" + e.toString());
+		            }
+		            else {
+		                org.apache.ode.Widgets.alert("Exception occurred!");
+		            }
+		        }
+                var insEle = org.apache.ode.DOMHelper.getElementsByTagName('instance-info', 'http://www.apache.org/ode/pmapi/types/2006/08/02/', 'ns', response)[0];
+                if(insEle){
+                    var iidEle = org.apache.ode.DOMHelper.getElementsByTagName('iid', 'http://www.apache.org/ode/pmapi/types/2006/08/02/', 'ns', insEle)[0];
+                    if(iidEle){
+                        var iidFromRes = org.apache.ode.DOMHelper.getText(iidEle);
+                        if (iidFromRes == instanceID) {
+                            org.apache.ode.InstanceHandling.populateContent();
+                        }else{
+                            org.apache.ode.Widgets.alert('Error occurred during termination of instance!');
+                        }
+                    }else{
+                        org.apache.ode.Widgets.alert('Error occurred during termination of instance!');
+                    }
+                }else{
+                    org.apache.ode.Widgets.alert('Error occurred during instance termination!');
+                }
+			    
+            }
+            function handleNo(){
+                org.apache.ode.Widgets.alert('Instance terminating cancelled!');
+            }
+
+            var msg = 'Do you want to terminate instance '+ instanceID + '?';
+            org.apache.ode.Widgets.operationConfirm(msg, handleYes, handleNo);            
+        } catch (e) {
+            if (typeof(e) == "string") {
+                org.apache.ode.Widgets.alert("Exception occured:\n" + e.toString());
+            }
+            else {
+                org.apache.ode.Widgets.alert("Exception occurred!");
+            }
+        }
+        return false;
+    }
+    
+    function suspendInstance(instanceID){
+        try {
+            function handleYes(){
+				var response;
+				try{
+                	response = InstanceManagementService.suspend(instanceID);
+				} catch (e) {
+		            if (typeof(e) == "string") {
+		                org.apache.ode.Widgets.alert("Exception occured:\n" + e.toString());
+		            }
+		            else {
+		                org.apache.ode.Widgets.alert("Exception occurred!");
+		            }
+		        }
+                var insEle = org.apache.ode.DOMHelper.getElementsByTagName('instance-info', 'http://www.apache.org/ode/pmapi/types/2006/08/02/', 'ns', response)[0];
+                if(insEle){
+                    var iidEle = org.apache.ode.DOMHelper.getElementsByTagName('iid', 'http://www.apache.org/ode/pmapi/types/2006/08/02/', 'ns', insEle)[0];
+                    if(iidEle){
+                        var iidFromRes = org.apache.ode.DOMHelper.getText(iidEle);
+                        if (iidFromRes == instanceID) {
+                            org.apache.ode.InstanceHandling.populateContent();
+                        }else{
+                            org.apache.ode.Widgets.alert('Error occurred during suspending of instance!');
+                        }
+                    }else{
+                        org.apache.ode.Widgets.alert('Error occurred during suspending of instance!');
+                    }
+                }else{
+                    org.apache.ode.Widgets.alert('Error occurred during instance suspending!');
+                }
+            }
+
+            function handleNo(){
+                org.apache.ode.Widgets.alert('Instance suspending cancelled!');
+            }
+            var msg = 'Do you want to suspend instance ' + instanceID + '?';
+            org.apache.ode.Widgets.operationConfirm(msg, handleYes, handleNo);
+        } catch (e) {
+            if (typeof(e) == "string") {
+                org.apache.ode.Widgets.alert("Exception occured:\n" + e.toString());
+            }
+            else {
+                org.apache.ode.Widgets.alert("Exception occurred!");
+            }
+        }
+        
+    }
+    
+    function resumeInstance(instanceID){
+        try {
+            function handleYes(){
+				var response;
+				try{
+                	response = InstanceManagementService.resume(instanceID);
+				} catch (e) {
+		            if (typeof(e) == "string") {
+		                org.apache.ode.Widgets.alert("Exception occured:\n" + e.toString());
+		            }
+		            else {
+		                org.apache.ode.Widgets.alert("Exception occurred!");
+		            }
+		        }
+					
+                var insEle = org.apache.ode.DOMHelper.getElementsByTagName('instance-info', 'http://www.apache.org/ode/pmapi/types/2006/08/02/', 'ns', response)[0];
+                 if(insEle){
+                    var iidEle = org.apache.ode.DOMHelper.getElementsByTagName('iid', 'http://www.apache.org/ode/pmapi/types/2006/08/02/', 'ns', insEle)[0];
+                    if(iidEle){
+                        var iidFromRes = org.apache.ode.DOMHelper.getText(iidEle);
+                        if (iidFromRes == instanceID) {
+                            org.apache.ode.InstanceHandling.populateContent();
+                        }else{
+                            org.apache.ode.Widgets.alert('Error occurred during resuming of instance!');
+                        }
+                    }else{
+                        org.apache.ode.Widgets.alert('Error occurred during resuming of instance!');
+                    }
+                }else{
+                    org.apache.ode.Widgets.alert('Error occurred during instance resuming!');
+                }
+
+            }
+
+            function handleNo(){
+                org.apache.ode.Widgets.alert('Instance resuming cancelled!');
+            }
+
+            var msg = 'Do you want to resume instance'+ instanceID + '?';
+            org.apache.ode.Widgets.operationConfirm(msg, handleYes, handleNo);
+        } catch (e) {
+            if (typeof(e) == "string") {
+                org.apache.ode.Widgets.alert("Exception occured:\n" + e.toString());
+            }
+            else {
+                org.apache.ode.Widgets.alert("Exception occurred!");
+            }
+        }
+        return false;
+    }
+	
+	var ns = org.apache.ode.InstanceHandling;
+	ns.terminateInstance = terminateInstance;
+	ns.suspendInstance = suspendInstance;
+	ns.resumeInstance = resumeInstance;
+	ns.populateContent = populateContentArea;    
+})();
+
+if(org.apache.ode.DeploymentHandling){
+	throw new Error("org.apache.ode.DeploymentHandling already exists");	
+}
+
+org.apache.ode.DeploymentHandling = {};
+
+(function(){
+	var bundleDataUrl = 'http://localhost:8080/ode/deployment/bundles/';
+	var packageDocsUrl = 'http://localhost:8080/ode/deployment/getBundleDocs/';
+	
+	function loadDeployedPackages(){
+		try{
+			var response = DeploymentService.listDeployedPackages();
+			return response;	
+		}catch(e){
+			if(typeof e == 'string'){
+				org.apache.ode.Widgets.alert("Exception occured:\n" + e.toString());
+			}else{
+				org.apache.ode.Widgets.alert("Exception occurred in loadDeployedBundles.");
+			}
+		}
+	}
+	
+	function getDeployedPackages(){
+		var packageNames = [];
+		var response = loadDeployedPackages();
+		var names = response.getElementsByTagName('name');
+		if (names.length != 0) {
+			for (var i = 0; i < names.length; i++) {
+				packageNames[i] = org.apache.ode.DOMHelper.getText(names[i]);
+			}
+			return packageNames;
+		}else{
+			return 0;
+		}
+		
+	}
+	
+	function getProcesses(packageName){
+		try{
+			var processes = [];
+			var response = DeploymentService.listProcesses(packageName);
+			var ids = response.getElementsByTagName('id');
+			if(ids.length != 0){
+				for(var i =0; i < ids.length; i++){
+					processes[i] = org.apache.ode.DOMHelper.getText(ids[i]);
+				}
+				return processes;
+			}else{
+				return 0;
+			}
+			
+		}catch(e){
+			if(typeof e == 'string'){
+				org.apache.ode.Widgets.alert("Exception occured:\n" + e.toString());
+			}else{
+				org.apache.ode.Widgets.alert("Exception occurred in getProcesses.");
+			}	
+		}
+	}
+	function getPackageContents(packageName){
+		var contents = [];
+		var i = 0;
+		var url = packageDocsUrl + packageName;
+		try{
+		var response = org.apache.ode.XHRObject.xhrSyncGetRequest(url, false);
+		}catch(e){
+			org.apache.ode.Widgets.alert("Exception occurred during getting paackage contents.");
+			return null;
+		}
+		if(response != null && typeof response != 'string'){
+			var processEle = response.getElementsByTagName('process')[0];
+			for(var m = processEle.firstChild; m != null; m = m.nextSibling){
+                if(m.localName != 'pid'){
+				    contents[i] = org.apache.ode.DOMHelper.getText(m);	
+                    i++;
+                }
+				
+			}
+			return contents;			
+		}else{
+			return null;
+		}		
+	}
+	
+	function populateDeployedPackages(){
+		var contentHtml = '';
+		var deployedPacks = getDeployedPackages();
+		for(var i = 0; i < deployedPacks.length; i++){
+			var packageundepId = deployedPacks[i].replace(/-/, "_")+"undeployid";
+			var packageundepVar = deployedPacks[i].replace(/-/,"_")+"undeployvar";
+			var packageDetailsId = deployedPacks[i].replace(/-/,"_")+"detid";
+			var packageDetailsVar = deployedPacks[i].replace(/-/,"_")+"detvar";
+			contentHtml += '<div class="yui-cms-item yui-panel selected"><div class="hd">'+
+		 	  			deployedPacks[i] +
+			  			'</div><div class="bd"><div class="fixed">'+
+						'<table><tr class="alt"><td>Processes:</td></tr><tr><td>'
+			var processes = getProcesses(deployedPacks[i]);
+			if(processes != 0){
+				for(var j = 0; j < processes.length; j++){
+					contentHtml += processes[j]+', ';
+				}
+			}else{
+				contentHtml += 'Error occurred during getting processes or no processes.';
+			}
+			contentHtml += '</td></tr><tr class="alt"><td>Contents:</td></tr><tr><td>';
+			var content  = getPackageContents(deployedPacks[i]);
+			if(content != null){
+				for(var k =0; k < content.length; k++){
+					var strC = content[k];
+					var index = strC.indexOf('/');
+					contentHtml += strC.substr(index+1) + ", ";
+				}
+			}else{
+				contentHtml += 'Error occurred during getting package Content or no content.'
+			}
+			contentHtml += '</td></tr></table></div></div><div class="ft">'+
+						'<span id="'+ packageundepId + '" class="yui-button yui-push-button">'+
+                        '<span class="first-child"><input type="button" name="'+ packageundepVar +
+                        'name" value="Undeploy"></span></span>'+
+						'<span id="'+ packageDetailsId +
+			  			'" class="yui-button yui-push-button"><span class="first-child">'+
+                        '<input type="button" name="'+ packageDetailsVar +'name" value="Details"></span></span>'+			
+						'<script type="text/javascript">'+
+						'function '+ packageundepVar + 
+                        'undeployPackage(){org.apache.ode.DeploymentHandling.undeployPackage("'+ 
+                        deployedPacks[i] +'");}' +
+						'function '+ packageDetailsVar + 
+                        'viewDetails(){org.apache.ode.DeploymentHandling.viewPackDetails("'+ 
+                        deployedPacks[i] +'"'+ ');}' +
+						'var ' + packageundepVar + '=new YAHOO.widget.Button("'+ packageundepId + '");'+
+						packageundepVar + '.addListener("click", ' + packageundepVar + 'undeployPackage); '+
+                        'var ' + packageDetailsVar + '=new YAHOO.widget.Button("'+ packageDetailsId + '");'	+
+						packageDetailsVar +'.addListener("click", ' + packageDetailsVar + 'viewDetails); '	+
+						'</script>'+
+			 			'</div> <div class="actions"><a href="#" class="accordionToggleItem">&nbsp;</a>'+
+			  			'</div></div>'
+            //alert(contentHtml);
+											
+		}
+        var deployed = document.getElementById('deployed');
+		var newDiv = document.createElement('div');
+		YAHOO.util.Dom.addClass(newDiv, 'myAccordion');
+		var innerDiv = document.createElement('div');
+		YAHOO.util.Dom.addClass(innerDiv, 'yui-cms-accordion multiple fade fixIE');
+		innerDiv.innerHTML = contentHtml;
+		newDiv.appendChild(innerDiv);
+        if(deployed.firstChild){
+            deployed.replaceChild(newDiv, deployed.firstChild);
+        }else{
+            deployed.appendChild(newDiv);
+        }
+
+
+	}
+
+    function viewPackDetails(packageName){
+		var winID = 'deployedPack'+packageName;
+        var bundleDocs = [];
+
+        bundleDocs = getPackageContents(packageName);
+        
+        var packPanel = new YAHOO.widget.Panel(winID, {
+                            width:"600px",
+                            fixedcenter:true,
+                            underlay:"shadow",
+                            close:true,
+                            visible:true,
+                            draggable:true,
+                            zindex:4,
+                            modal:true});
+
+        packPanel.setHeader("Package Details: " + packageName);
+
+        var packDetTabs = new YAHOO.widget.TabView();
+
+        for(var j = 0; j < bundleDocs.length; j++){
+            var activeS = false;
+            var strC = bundleDocs[j];
+            if (j == 0){
+                activeS = true;
+            }
+			var index = strC.indexOf('/');
+			var docName = strC.substr(index+1);
+            var indexDot = docName.indexOf('.');
+            var idTxt = docName.substr(0, (indexDot-1)) + j;
+            var textAreaStr = '<textarea id="'+ idTxt + '"` class="codepress html" style="width: 568px; height:570px;"></textarea>';
+            packDetTabs.addTab(new YAHOO.widget.Tab({
+                            label:docName,
+                            content:textAreaStr,
+                            active:activeS}));
+        }
+
+        var tabsDiv = document.createElement('div');
+        packDetTabs.appendTo(tabsDiv);
+
+       	packPanel.setBody(tabsDiv);
+		packPanel.cfg.setProperty("underlay","matte");
+		packPanel.render("content");
+
+        for(var k = 0; k < bundleDocs.length; k++){
+            var strC = bundleDocs[k];
+			var index = strC.indexOf('/');
+			var docName = strC.substr(index+1);
+            var indexDot = docName.indexOf('.');
+            var idTxt = docName.substr(0, (indexDot-1)) + k;
+            var bundleUrl = bundleDataUrl + strC;
+            var responseText = org.apache.ode.XHRObject.xhrSyncGetRequest(bundleUrl, true);
+           	//var resStr = responseText.replace(/<\//g, '\n</');
+            //resStr = resStr.replace(/>\n>\n<\//g, '>\n</');
+
+            if(typeof responseText == 'string'){
+                var textAreaEle = document.getElementById(idTxt);
+                textAreaEle.appendChild(document.createTextNode(responseText));
+            }else{
+                org.apache.ode.Widgets.alert('Response Type not recognized for document: '+ docName);
+            }
+        }
+    }
+
+    function undeployPackage(packageName){
+        try{
+            function handleYes(){
+				var response;
+				try{
+                	response = DeploymentService.undeploy(packageName);
+				} catch (e) {
+		            if (typeof(e) == "string") {
+		                org.apache.ode.Widgets.alert("Exception occured:\n" + e.toString());
+		            }
+		            else {
+		                org.apache.ode.Widgets.alert("Exception occurred!");
+		            }
+		        }
+                if(response == true){
+                    org.apache.ode.Widgets.alert('Package '+ packageName + 'undeployed successfully.');
+                    org.apache.ode.DeploymentHandling.populateDeployedPacks();
+                }else{
+                    org.apache.ode.Widgets.alert('Error occurred during undeployment or undeplyment unsuccessful.');
+                }
+            }
+
+            function handleNo(){
+                org.apache.ode.Widgets.alert('Package undeployment cancelled!');
+            }
+
+            var msg = 'Dou you want to undeploy package ' + packageName + '?';
+
+            org.apache.ode.Widgets.operationConfirm(msg,handleYes, handleNo);
+
+        }catch(e){
+            if(typeof e == 'string'){
+                org.apache.ode.Widgets.alert("Exception occurred while undeploying the package: " + e.toString());
+            }else{
+                org.apache.ode.Widgets.alert("Exception occurred while undeploying the package.");
+            }
+        }
+    }
+	
+	var ns = org.apache.ode.DeploymentHandling;
+	ns.getDeployedPackages = getDeployedPackages;
+    ns.undeployPackage = undeployPackage;
+    ns.viewPackDetails = viewPackDetails;
+    ns.populateDeployedPacks = populateDeployedPackages;
+})();
+