Changeset 38847
- Timestamp:
- 2024-03-14T10:58:02+13:00 (2 months ago)
- Location:
- main/trunk/greenstone3/src/java/org/greenstone/gsdl3
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/action/Action.java
r37513 r38847 170 170 protected void addSiteMetadata(Element element, UserContext userContext) 171 171 { 172 Document doc = element.getOwnerDocument(); 173 172 173 Document doc = XMLConverter.newDOM(); 174 174 //ADD SITE METADATA 175 175 Element metadata_request = GSXML.createBasicRequest(doc, GSXML.REQUEST_TYPE_DESCRIBE, "", userContext); … … 184 184 Element metadata_message = doc.createElement(GSXML.MESSAGE_ELEM); 185 185 metadata_message.appendChild(metadata_request); 186 186 187 //get response 187 188 Element metadata_response_message = (Element) this.mr.process(metadata_message); 188 189 //drill down to response 189 190 Element metadata_response = (Element) GSXML.getChildByTagName(metadata_response_message, GSXML.RESPONSE_ELEM); 191 190 192 //merge in metadata 191 193 // *************** need to merge the displayItem lists too 192 194 GSXML.mergeMetadataLists(element, metadata_response); 193 195 GSXML.mergeSpecifiedLists(element, metadata_response, GSXML.DISPLAY_TEXT_ELEM); 196 194 197 } 195 198 -
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/action/QueryAction.java
r37514 r38847 299 299 String collectionsHierarchy = "CollectionsHierarchy"; 300 300 if (checkServiceAvailable(userContext, collectionsHierarchy)){ 301 Element groupQueryMessage = doc.createElement(GSXML.MESSAGE_ELEM); 302 Element groupQueryRequest = GSXML.createBasicRequest(doc, GSXML.REQUEST_TYPE_PROCESS, collectionsHierarchy, userContext); 301 Document new_doc = XMLConverter.newDOM(); 302 Element groupQueryMessage = new_doc.createElement(GSXML.MESSAGE_ELEM); 303 Element groupQueryRequest = GSXML.createBasicRequest(new_doc, GSXML.REQUEST_TYPE_PROCESS, collectionsHierarchy, userContext); 303 304 groupQueryMessage.appendChild(groupQueryRequest); 304 305 Element groupQueryResult = (Element) this.mr.process(groupQueryMessage); … … 311 312 } 312 313 Element hierarchy = (Element) GSXML.getChildByTagName(groupQueryResponse, GSXML.HIERARCHY_ELEM); 313 page_response.appendChild(doc.importNode(hierarchy, true)); 314 if (hierarchy != null) { 315 page_response.appendChild(doc.importNode(hierarchy, true)); 316 } 314 317 } 315 318 -
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/collection/ServiceCluster.java
r35362 r38847 674 674 Element di_list = result_doc.createElement(GSXML.DISPLAY_TEXT_ELEM + GSXML.LIST_MODIFIER); 675 675 description.appendChild(di_list); 676 DisplayItemUtil.addLanguageSpecificDisplayItems(di_list, this.display_item_list, lang, DEFAULT_LANG, this.class_loader); 676 synchronized (this.display_item_list) { 677 DisplayItemUtil.addLanguageSpecificDisplayItems(di_list, this.display_item_list, lang, DEFAULT_LANG, this.class_loader); 678 } 677 679 description.appendChild(result_doc.importNode(this.service_list, true)); 678 680 description.appendChild(result_doc.importNode(this.metadata_list, true)); -
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/collection/XMLCollection.java
r30837 r38847 89 89 Element di_list = response_doc.createElement(GSXML.DISPLAY_TEXT_ELEM + GSXML.LIST_MODIFIER); 90 90 description.appendChild(di_list); 91 DisplayItemUtil.addLanguageSpecificDisplayItems(di_list, this.display_item_list, lang, DEFAULT_LANG, this.class_loader); 92 91 synchronized(this.display_item_list) { 92 DisplayItemUtil.addLanguageSpecificDisplayItems(di_list, this.display_item_list, lang, DEFAULT_LANG, this.class_loader); 93 } 93 94 description.appendChild(response_doc.importNode(this.service_list, true)); 94 95 description.appendChild(response_doc.importNode(this.metadata_list, true)); -
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/core/MessageRouter.java
r38372 r38847 392 392 if (this.module_map != null) 393 393 { 394 // call cleanUp on each module referenced in the map 394 395 Iterator<ModuleInterface> i = this.module_map.values().iterator(); 395 396 while (i.hasNext()) … … 398 399 399 400 i_next.cleanUp(); 400 i.remove(); 401 } 401 // i.remove(); 402 } 403 // now remove all mappings from the HashMap 404 this.module_map.clear(); 402 405 } 403 406 } … … 480 483 481 484 this.config_info = config_doc.getDocumentElement(); 482 483 485 // load up the services: serviceRackList 484 486 Document doc = XMLConverter.newDOM(); … … 511 513 Element display_item_list_elem = (Element) GSXML.getChildByTagName(config_info, GSXML.DISPLAY_TEXT_ELEM + GSXML.LIST_MODIFIER); 512 514 DisplayItemUtil.storeDisplayItems(this.display_item_list, display_item_list_elem); 515 516 // load up any site format info 513 517 Element format_elem = (Element) GSXML.getChildByTagName(config_info, GSXML.FORMAT_ELEM); 514 518 configureFormat(format_elem); … … 1124 1128 Element di_list = doc.createElement(GSXML.DISPLAY_TEXT_ELEM + GSXML.LIST_MODIFIER); 1125 1129 response.appendChild(di_list); 1126 DisplayItemUtil.addLanguageSpecificDisplayItems(di_list, this.display_item_list, lang, DEFAULT_LANG, this.class_loader); 1127 return response; 1130 1131 if (this.display_item_list != null) { 1132 synchronized (this.display_item_list) { 1133 DisplayItemUtil.addLanguageSpecificDisplayItems(di_list, this.display_item_list, lang, DEFAULT_LANG, this.class_loader); 1134 return response; 1135 } 1136 } 1128 1137 } 1129 1138 … … 1163 1172 Element di_list = doc.createElement(GSXML.DISPLAY_TEXT_ELEM + GSXML.LIST_MODIFIER); 1164 1173 response.appendChild(di_list); 1165 DisplayItemUtil.addLanguageSpecificDisplayItems(di_list, this.display_item_list, lang, DEFAULT_LANG, this.class_loader); 1166 1174 1175 if (this.display_item_list != null) { 1176 synchronized (this.display_item_list) { 1177 1178 DisplayItemUtil.addLanguageSpecificDisplayItems(di_list, this.display_item_list, lang, DEFAULT_LANG, this.class_loader); 1179 1180 } 1181 } 1167 1182 } 1168 1183 } -
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/util/DisplayItemUtil.java
r36970 r38847 59 59 Document doc = display_item_list.getOwnerDocument(); 60 60 NodeList displaynodes = config.getElementsByTagName(GSXML.DISPLAY_TEXT_ELEM); 61 if (displaynodes.getLength() > 0) { 61 int num_nodes = displaynodes.getLength(); 62 if (num_nodes > 0) { 62 63 63 for (int k = 0; k < displaynodes.getLength(); k++) {64 for (int k = 0; k < num_nodes; k++) { 64 65 Element d = (Element) displaynodes.item(k); 65 66 String name = d.getAttribute(GSXML.NAME_ATT); … … 81 82 /** Choose the best displayItem from a list - that matches lang - and return a copy of it created by doc. */ 82 83 public static Element chooseBestMatchDisplayItem(Document doc, Element display_item_list, String lang, String default_lang, ClassLoader class_loader) { 83 84 if (display_item_list == null) { 85 return null; 86 } 84 87 85 88 // is there one with the specified language? … … 96 99 if (value != null) { 97 100 // copy the node now. Don't want to be modifying the underlying list as can lead to concurrent access problems. 98 best_di = (Element)doc.importNode(best_di, true);99 GSXML.setNodeText( best_di, value);100 return best_di;101 Element new_di = (Element)doc.importNode(best_di, true); 102 GSXML.setNodeText(new_di, value); 103 return new_di; 101 104 } 102 105 } … … 122 125 Document doc = description.getOwnerDocument(); 123 126 NodeList items = display_item_list.getChildNodes(); 127 124 128 for (int i = 0; i < items.getLength(); i++) 125 129 { // for each key 126 130 Element di_list = (Element) items.item(i); 131 // takes a copy of the best matching item 127 132 Element new_m = chooseBestMatchDisplayItem(doc, di_list, lang, default_lang, class_loader); 128 133
Note:
See TracChangeset
for help on using the changeset viewer.