- Timestamp:
- 2016-05-16T14:24:50+12:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/action/PageAction.java
r28964 r30540 26 26 27 27 public Node process(Node message_node) 28 28 29 { 29 30 Element message = GSXML.nodeToElement(message_node); … … 92 93 Document doc = XMLConverter.newDOM(); 93 94 95 94 96 UserContext userContext = new UserContext(request); 95 97 // first, get the message router info 96 98 Element info_message = doc.createElement(GSXML.MESSAGE_ELEM); 97 Element coll_list_request = GSXML.createBasicRequest(doc, GSXML.REQUEST_TYPE_DESCRIBE, "", userContext); 98 info_message.appendChild(coll_list_request); 99 Element info_request = GSXML.createBasicRequest(doc, GSXML.REQUEST_TYPE_DESCRIBE, "", userContext); 100 //Create param list 101 Element param_list_element = doc.createElement(GSXML.PARAM_ELEM + GSXML.LIST_MODIFIER); 102 info_request.appendChild(param_list_element); 103 //Describe params without collectionlist. Collectionlist provided by CollectionGroup service 104 GSXML.addParameterToList(param_list_element, GSXML.SUBSET_PARAM, GSXML.CLUSTER_ELEM + GSXML.LIST_MODIFIER); 105 GSXML.addParameterToList(param_list_element, GSXML.SUBSET_PARAM, GSXML.SERVICE_ELEM + GSXML.LIST_MODIFIER); 106 GSXML.addParameterToList(param_list_element, GSXML.SUBSET_PARAM, GSXML.SITE_ELEM + GSXML.LIST_MODIFIER); 107 GSXML.addParameterToList(param_list_element, GSXML.SUBSET_PARAM, GSXML.METADATA_ELEM + GSXML.LIST_MODIFIER); 108 info_message.appendChild(info_request); 109 //Send request to message router 99 110 Element info_response_message = (Element) this.mr.process(info_message); 111 //Check if it is not null 100 112 if (info_response_message == null) 101 113 { … … 103 115 return null; 104 116 } 117 //Check if it is not null 105 118 Element info_response = (Element) GSXML.getChildByTagName(info_response_message, GSXML.RESPONSE_ELEM); 106 119 if (info_response == null) … … 108 121 logger.error("couldn't query the message router!"); 109 122 return null; 123 } 124 125 Element resp_service_list = (Element) GSXML.getChildByTagName(info_response, GSXML.SERVICE_ELEM + GSXML.LIST_MODIFIER); 126 127 if (resp_service_list == null) { 128 logger.error("No services available. Couldn't query the message router!"); 129 return null; 130 } 131 Element groupInfoService = GSXML.getNamedElement(resp_service_list, GSXML.SERVICE_ELEM, GSXML.TYPE_ATT, 132 GSXML.SERVICE_TYPE_GROUPINFO); 133 if (groupInfoService != null) { 134 // Prepare request for CollectionGroup service to get current 135 // collections and groups list 136 Element group_info_message = doc.createElement(GSXML.MESSAGE_ELEM); 137 Element group_info_request = GSXML.createBasicRequest(doc, GSXML.TO_ATT, 138 groupInfoService.getAttribute(GSXML.NAME_ATT), userContext); 139 group_info_message.appendChild(group_info_request); 140 //Append group request if exists 141 Element paramList = (Element) GSXML.getChildByTagName(request, GSXML.PARAM_ELEM + GSXML.LIST_MODIFIER); 142 if (paramList != null) { 143 group_info_request.appendChild(doc.importNode(paramList, true)); 144 } 145 Element group_info_response_message = (Element) this.mr.process(group_info_message); 146 Element group_info_response = (Element) GSXML.getChildByTagName(group_info_response_message, 147 GSXML.RESPONSE_ELEM); 148 Element collection_list = (Element) GSXML.getChildByTagName(group_info_response, 149 GSXML.COLLECTION_ELEM + GSXML.LIST_MODIFIER); 150 // Add Collection List from CollectionGroup Service to response 151 // from message router 152 info_response = (Element) doc.importNode(info_response, true); 153 if (collection_list != null) { 154 info_response.appendChild(doc.importNode(collection_list, true)); 155 } 156 Element group_list = (Element) GSXML.getChildByTagName(group_info_response, 157 GSXML.GROUP_ELEM + GSXML.LIST_MODIFIER); 158 if (group_list != null) { 159 info_response.appendChild(doc.importNode(group_list, true)); 160 } 161 // Send message to groupInfoType Services 162 } else { 163 // If no service with type SERVICE_TYPE_GROUPINFO could be provided 164 // request message router for all available collections 165 GSXML.addParameterToList(param_list_element, GSXML.SUBSET_PARAM, 166 GSXML.COLLECTION_ELEM + GSXML.LIST_MODIFIER); 167 info_response_message = (Element) this.mr.process(info_message); 168 169 if (info_response_message == null) { 170 logger.error(" couldn't query the message router!"); 171 return null; 172 } 173 info_response = (Element) GSXML.getChildByTagName(info_response_message, GSXML.RESPONSE_ELEM); 174 if (info_response == null) { 175 logger.error("couldn't query the message router!"); 176 return null; 177 } 110 178 } 111 179 … … 113 181 // elements but for now, we'll just get it all 114 182 Element collection_list = (Element) GSXML.getChildByTagName(info_response, GSXML.COLLECTION_ELEM + GSXML.LIST_MODIFIER); 115 logger.debug(GSXML.xmlNodeToString(collection_list));183 //logger.debug(GSXML.xmlNodeToString(collection_list)); 116 184 if (collection_list != null) 117 185 {
Note:
See TracChangeset
for help on using the changeset viewer.