Added: ode/trunk/axis2-war/src/main/webapp/js/ODE.js
URL: 
http://svn.apache.org/viewvc/ode/trunk/axis2-war/src/main/webapp/js/ODE.js?rev=696246&view=auto
==============================================================================
--- ode/trunk/axis2-war/src/main/webapp/js/ODE.js (added)
+++ ode/trunk/axis2-war/src/main/webapp/js/ODE.js Wed Sep 17 04:20:14 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;
+})();
+


Reply via email to