Changeset 28966 for main/trunk/greenstone3/src/java/org/greenstone/gsdl3/collection/ServiceCluster.java
- Timestamp:
- 2014-04-10T14:39:33+12:00 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/collection/ServiceCluster.java
r27940 r28966 83 83 protected SimpleMacroResolver macro_resolver = null; 84 84 85 /** container doc for description elements */ 86 protected Document doc = null; 85 /** container doc for description elements 86 only use this document for creating the below stored lists. */ 87 protected Document desc_doc = null; 87 88 /** list of services */ 88 89 protected Element service_list = null; … … 139 140 this.converter = new XMLConverter(); 140 141 this.macro_resolver = new SimpleMacroResolver(); 141 this.d oc = this.converter.newDOM();142 this.description = this.d oc.createElement(GSXML.CLUSTER_ELEM);143 this.display_item_list = this.d oc.createElement(GSXML.DISPLAY_TEXT_ELEM + GSXML.LIST_MODIFIER);144 this.metadata_list = this.d oc.createElement(GSXML.METADATA_ELEM + GSXML.LIST_MODIFIER);145 this.library_param_list = this.d oc.createElement("libraryParamList");146 this.service_list = this.d oc.createElement(GSXML.SERVICE_ELEM + GSXML.LIST_MODIFIER);147 //this.plugin_item_list = this.d oc.createElement(GSXML.PLUGIN_ELEM + GSXML.LIST_MODIFIER);142 this.desc_doc = XMLConverter.newDOM(); 143 this.description = this.desc_doc.createElement(GSXML.CLUSTER_ELEM); 144 this.display_item_list = this.desc_doc.createElement(GSXML.DISPLAY_TEXT_ELEM + GSXML.LIST_MODIFIER); 145 this.metadata_list = this.desc_doc.createElement(GSXML.METADATA_ELEM + GSXML.LIST_MODIFIER); 146 this.library_param_list = this.desc_doc.createElement(GSXML.LIBRARY_PARAM_ELEM+GSXML.LIST_MODIFIER); 147 this.service_list = this.desc_doc.createElement(GSXML.SERVICE_ELEM + GSXML.LIST_MODIFIER); 148 //this.plugin_item_list = this.desc_doc.createElement(GSXML.PLUGIN_ELEM + GSXML.LIST_MODIFIER); 148 149 } 149 150 … … 266 267 267 268 // get the servlet params 268 Element param_list = (Element) GSXML.getChildByTagName(service_cluster_info, "libraryParamList");269 Element param_list = (Element) GSXML.getChildByTagName(service_cluster_info, GSXML.LIBRARY_PARAM_ELEM+GSXML.LIST_MODIFIER); 269 270 if (param_list != null) { 270 271 if (!addLibraryParams(param_list)) { … … 286 287 for (int k = 0; k < metanodes.getLength(); k++) 287 288 { 288 this.metadata_list.appendChild(this.d oc.importNode(metanodes.item(k), true));289 this.metadata_list.appendChild(this.desc_doc.importNode(metanodes.item(k), true)); 289 290 } 290 291 } … … 294 295 /** adds an individual metadata element into the list */ 295 296 protected boolean addMetadata(String name, String value) { 296 return GSXML.addMetadata(this. doc, this.metadata_list, name, value);297 return GSXML.addMetadata(this.metadata_list, name, value); 297 298 } 298 299 … … 324 325 if (this_item == null) 325 326 { 326 this_item = this.d oc.createElement(GSXML.DISPLAY_TEXT_ELEM);327 this_item = this.desc_doc.createElement(GSXML.DISPLAY_TEXT_ELEM); 327 328 this_item.setAttribute(GSXML.NAME_ATT, name); 328 329 this.display_item_list.appendChild(this_item); 329 330 } 330 331 331 this_item.appendChild(this.d oc.importNode(d, true));332 this_item.appendChild(this.desc_doc.importNode(d, true)); 332 333 } 333 334 } … … 385 386 for (int k = 0; k < paramnodes.getLength(); k++) 386 387 { 387 this.library_param_list.appendChild(this.d oc.importNode(paramnodes.item(k), true));388 this.library_param_list.appendChild(this.desc_doc.importNode(paramnodes.item(k), true)); 388 389 } 389 390 } … … 396 397 service_map.clear(); 397 398 service_name_map.clear(); 398 this.service_list = this.d oc.createElement(GSXML.SERVICE_ELEM + GSXML.LIST_MODIFIER);399 this.service_list = this.desc_doc.createElement(GSXML.SERVICE_ELEM + GSXML.LIST_MODIFIER); 399 400 } 400 401 401 402 protected void clearLocalData() { 402 this.description = this.d oc.createElement(GSXML.CLUSTER_ELEM);403 this.display_item_list = this.d oc.createElement(GSXML.DISPLAY_TEXT_ELEM + GSXML.LIST_MODIFIER);404 this.metadata_list = this.d oc.createElement(GSXML.METADATA_ELEM + GSXML.LIST_MODIFIER);405 this.library_param_list = this.d oc.createElement("libraryParamList");403 this.description = this.desc_doc.createElement(GSXML.CLUSTER_ELEM); 404 this.display_item_list = this.desc_doc.createElement(GSXML.DISPLAY_TEXT_ELEM + GSXML.LIST_MODIFIER); 405 this.metadata_list = this.desc_doc.createElement(GSXML.METADATA_ELEM + GSXML.LIST_MODIFIER); 406 this.library_param_list = this.desc_doc.createElement(GSXML.LIBRARY_PARAM_ELEM+GSXML.LIST_MODIFIER); 406 407 407 408 } … … 422 423 } 423 424 425 // the xml request to send to the serviceRacks to query what 426 // services they provide 427 // can send same message to each service rack 428 Document doc = XMLConverter.newDOM(); 429 Element message = doc.createElement(GSXML.MESSAGE_ELEM); 430 Element request = GSXML.createBasicRequest(doc, GSXML.REQUEST_TYPE_DESCRIBE, "", new UserContext()); 431 message.appendChild(request); 424 432 for (int i = 0; i < nodes.getLength(); i++) 425 433 { 426 434 427 // the xml request to send to the serviceRack to query what428 // services it provides429 Element message = this.doc.createElement(GSXML.MESSAGE_ELEM);430 Element request = GSXML.createBasicRequest(this.doc, GSXML.REQUEST_TYPE_DESCRIBE, "", new UserContext());431 message.appendChild(request);432 435 433 436 Element n = (Element) nodes.item(i); … … 499 502 this.service_map.put(service, s); 500 503 // also add info to the ServiceInfo XML element 501 this.service_list.appendChild(this.d oc.importNode(typenodes.item(j), true));504 this.service_list.appendChild(this.desc_doc.importNode(typenodes.item(j), true)); 502 505 } 503 506 } … … 532 535 public Node process(Node message_node) 533 536 { 534 Element message = this.converter.nodeToElement(message_node);537 Element message = GSXML.nodeToElement(message_node); 535 538 536 539 NodeList requests = message.getElementsByTagName(GSXML.REQUEST_ELEM); 537 540 Document mess_doc = message.getOwnerDocument(); 538 Element mainResult = this.doc.createElement(GSXML.MESSAGE_ELEM); 541 Document result_doc = XMLConverter.newDOM(); 542 Element mainResult = result_doc.createElement(GSXML.MESSAGE_ELEM); 539 543 if (requests.getLength() == 0) 540 544 { … … 560 564 if (to.equals("")) 561 565 { // this command is for me 562 Element response = processMessage(request);566 Element response = processMessage(result_doc, request); 563 567 mainResult.appendChild(response); 564 568 … … 606 610 from = GSPath.prependLink(from, this.cluster_name); 607 611 response.setAttribute(GSXML.FROM_ATT, from); 608 mainResult.appendChild( this.doc.importNode(response, true));612 mainResult.appendChild(result_doc.importNode(response, true)); 609 613 } 610 614 … … 622 626 * @return the result Element - should be <response> 623 627 */ 624 protected Element processMessage(Element request) 625 { 626 Element response = this.doc.createElement(GSXML.RESPONSE_ELEM); 628 protected Element processMessage(Document result_doc, Element request) 629 { 630 631 Element response = result_doc.createElement(GSXML.RESPONSE_ELEM); 627 632 response.setAttribute(GSXML.FROM_ATT, this.cluster_name); 628 633 String type = request.getAttribute(GSXML.TYPE_ATT); … … 633 638 { 634 639 // create the collection element 635 Element description = (Element) this.description.cloneNode(false);640 Element description = (Element) result_doc.importNode(this.description, false); 636 641 // set collection type : mg, mgpp, lucene or solr 637 642 //description.setAttribute(GSXML.TYPE_ATT, col_type); … … 644 649 { 645 650 addAllDisplayInfo(description, lang); 646 description.appendChild( this.service_list);647 description.appendChild( this.metadata_list);648 description.appendChild( this.library_param_list);651 description.appendChild(result_doc.importNode(this.service_list, true)); 652 description.appendChild(result_doc.importNode(this.metadata_list, true)); 653 description.appendChild(result_doc.importNode(this.library_param_list, true)); 649 654 //description.appendChild(this.plugin_item_list); 650 655 return response; … … 663 668 if (info.equals(GSXML.SERVICE_ELEM + GSXML.LIST_MODIFIER)) 664 669 { 665 description.appendChild(this.service_list);670 description.appendChild(result_doc.importNode(this.service_list, true)); 666 671 } 667 672 else if (info.equals(GSXML.METADATA_ELEM + GSXML.LIST_MODIFIER)) 668 673 { 669 description.appendChild(this.metadata_list);674 description.appendChild(result_doc.importNode(this.metadata_list, true)); 670 675 } 671 676 else if (info.equals(GSXML.DISPLAY_TEXT_ELEM + GSXML.LIST_MODIFIER)) … … 673 678 addAllDisplayInfo(description, lang); 674 679 } 675 else if (info.equals( "libraryParamlist"))680 else if (info.equals(GSXML.LIBRARY_PARAM_ELEM+GSXML.LIST_MODIFIER)) 676 681 { 677 description.appendChild( this.library_param_list);682 description.appendChild(result_doc.importNode(this.library_param_list, true)); 678 683 } 679 684 } … … 778 783 protected Element processSystemRequest(Element request) 779 784 { 780 781 Element response = this.doc.createElement(GSXML.RESPONSE_ELEM);785 Document result_doc = XMLConverter.newDOM(); 786 Element response = result_doc.createElement(GSXML.RESPONSE_ELEM); 782 787 response.setAttribute(GSXML.FROM_ATT, this.cluster_name); 783 788 response.setAttribute(GSXML.TYPE_ATT, GSXML.REQUEST_TYPE_SYSTEM); … … 801 806 if (this.configure()) 802 807 { 803 Element s = GSXML.createTextElement( this.doc, GSXML.STATUS_ELEM, this.cluster_name + " reconfigured");808 Element s = GSXML.createTextElement(result_doc, GSXML.STATUS_ELEM, this.cluster_name + " reconfigured"); 804 809 response.appendChild(s); 805 810 … … 807 812 else 808 813 { 809 Element s = GSXML.createTextElement( this.doc, GSXML.STATUS_ELEM, this.cluster_name + " could not be reconfigured");814 Element s = GSXML.createTextElement(result_doc, GSXML.STATUS_ELEM, this.cluster_name + " could not be reconfigured"); 810 815 response.appendChild(s); 811 816 } … … 813 818 else if (this.configureSubset(subset)) 814 819 { 815 Element s = GSXML.createTextElement( this.doc, GSXML.STATUS_ELEM, this.cluster_name + " " + subset + " reconfigured");820 Element s = GSXML.createTextElement(result_doc, GSXML.STATUS_ELEM, this.cluster_name + " " + subset + " reconfigured"); 816 821 response.appendChild(s); 817 822 } 818 823 else 819 824 { 820 Element s = GSXML.createTextElement( this.doc, GSXML.STATUS_ELEM, this.cluster_name + " " + subset + " could not be reconfigured");825 Element s = GSXML.createTextElement(result_doc, GSXML.STATUS_ELEM, this.cluster_name + " " + subset + " could not be reconfigured"); 821 826 response.appendChild(s); 822 827 } … … 828 833 if (action.equals(GSXML.SYSTEM_TYPE_ACTIVATE)) 829 834 { 830 Element s = GSXML.createTextElement( this.doc, GSXML.STATUS_ELEM, "activate action not yet implemented - does it even make sense in this context??");835 Element s = GSXML.createTextElement(result_doc, GSXML.STATUS_ELEM, "activate action not yet implemented - does it even make sense in this context??"); 831 836 response.appendChild(s); 832 837 } … … 846 851 message = "Can't deactivate " + module_type + " type modules!"; 847 852 } 848 Element s = GSXML.createTextElement( this.doc, GSXML.STATUS_ELEM, message);853 Element s = GSXML.createTextElement(result_doc, GSXML.STATUS_ELEM, message); 849 854 response.appendChild(s); 850 855 } … … 897 902 else if (subset.equals(GSXML.METADATA_ELEM + GSXML.LIST_MODIFIER)) 898 903 { 899 this.metadata_list = this.d oc.createElement(GSXML.METADATA_ELEM + GSXML.LIST_MODIFIER);904 this.metadata_list = this.desc_doc.createElement(GSXML.METADATA_ELEM + GSXML.LIST_MODIFIER); 900 905 Element metadata_list = (Element) GSXML.getChildByTagName(cluster_config_elem, GSXML.METADATA_ELEM + GSXML.LIST_MODIFIER); 901 906 return addMetadata(metadata_list); … … 923 928 protected boolean addAllDisplayInfo(Element description, String lang) 924 929 { 925 930 Document doc = description.getOwnerDocument(); 926 931 NodeList items = this.display_item_list.getChildNodes(); 927 932 for (int i = 0; i < items.getLength(); i++) … … 940 945 new_m = (Element) GSXML.getChildByTagName(m, GSXML.DISPLAY_TEXT_ELEM); 941 946 } 942 description.appendChild( new_m.cloneNode(true));947 description.appendChild(doc.importNode(new_m, true)); 943 948 } 944 949 return true;
Note:
See TracChangeset
for help on using the changeset viewer.