Changeset 7267 for RevitalizationWS/ws/DiscoveryService/trunk/src/main/java
- Timestamp:
- 04/08/10 10:38:59 (9 years ago)
- Location:
- RevitalizationWS/ws/DiscoveryService/trunk/src/main/java/ndg/services
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
RevitalizationWS/ws/DiscoveryService/trunk/src/main/java/ndg/services/discovery/model/CommonMethods.java
r7217 r7267 11 11 import ndg.common.NdgMessage; 12 12 import ndg.common.exception.AssembleQueryException; 13 import ndg.common.exception.NdgException;14 13 import ndg.common.exception.NdgSQLException; 15 14 import ndg.common.exception.ResourceNotAvailable; … … 121 120 122 121 String assembleSearch(SearchCriteria criteria, RetrieveCriteriaType retrieveType) 123 throws NdgException{122 throws AssembleQueryException{ 124 123 125 124 // NB, we use the postgres text search function to do term searches -
RevitalizationWS/ws/DiscoveryService/trunk/src/main/java/ndg/services/discovery/model/PresentAgent.java
r7217 r7267 15 15 import ndg.common.NdgLogger; 16 16 import ndg.common.NdgMessage; 17 import ndg.common.exception.AssembleQueryException; 17 18 import ndg.common.exception.NdgException; 18 19 import ndg.common.exception.NdgSQLException; … … 21 22 import ndg.services.discovery.basic.DiscoveryDictionary; 22 23 import ndg.services.discovery.basic.DiscoveryDictionary.OriginalDocumentToTable; 24 import ndg.services.jpa.OriginalDocument; 23 25 import ndg.services.schemas.discovery.BoundingBoxType; 24 26 import ndg.services.schemas.discovery.DateRangeType; … … 28 30 import ndg.services.schemas.discovery.TemporalType; 29 31 import ndg.services.schemas.discovery.SearchType.SearchCriteria; 30 import ndg.services.jpa.OriginalDocument;31 32 32 33 import org.apache.log4j.Level; … … 203 204 */ 204 205 public List<OriginalDocument> doPresent(Connection conn, List<String> documentsId, RetrieveCriteriaType type) 205 throws Ndg Exception{206 throws NdgSQLException, AssembleQueryException, ResourceNotAvailable { 206 207 if (documentsId == null || documentsId.size() == 0) 207 208 return new ArrayList<OriginalDocument>(); … … 276 277 start = rs.getTimestamp("start_time"); 277 278 if (start != null) { 278 calendar = calendar.getInstance();279 calendar = Calendar.getInstance(); 279 280 calendar.setTimeInMillis(start.getTime()); 280 281 } else { … … 287 288 end = rs.getTimestamp("end_time"); 288 289 if (end != null) { 289 calendar = calendar.getInstance();290 calendar = Calendar.getInstance(); 290 291 calendar.setTimeInMillis(end.getTime()); 291 292 } else { -
RevitalizationWS/ws/DiscoveryService/trunk/src/main/java/ndg/services/discovery/model/SearchAgent.java
r7217 r7267 90 90 // NdgMessage msg = new NdgMessage("sql.resultset.parsing.error", 91 91 // new Object[] { sqlQuery }); 92 } catch (NdgException e) {93 logHelper.logMessage(e, Level.ERROR);94 throw new NdgException(e.getBundlMessage());95 92 } finally { 96 93 commitOrRollback(conn, commit); … … 112 109 * if an error during the database access 113 110 **/ 114 private List<OriginalDocument> searchDocuments(Connection conn, SearchCriteria criteria) throws NdgException{111 private List<OriginalDocument> searchDocuments(Connection conn, SearchCriteria criteria) throws AssembleQueryException, NdgSQLException, ResourceNotAvailable { 115 112 List<OriginalDocument> res = new ArrayList<OriginalDocument>(); 116 113 List<String> toFilter = executeSearch(conn, assembleSearch(criteria, searchType.getRetrieveCriteria())); -
RevitalizationWS/ws/DiscoveryService/trunk/src/main/java/ndg/services/schemas/discovery/DiscoveryServiceSkeleton.java
r7240 r7267 4 4 import java.lang.reflect.InvocationTargetException; 5 5 import java.sql.Connection; 6 import java.sql.PreparedStatement;7 6 import java.sql.SQLException; 8 import java.sql.Timestamp;9 7 import java.util.ArrayList; 10 import java.util.Calendar;11 8 import java.util.List; 12 9 … … 14 11 import ndg.common.NdgMessage; 15 12 import ndg.common.exception.NdgException; 16 import ndg.common.exception.ResourceNotAvailable;17 13 import ndg.services.discovery.basic.DiscoveryBasic; 18 14 import ndg.services.discovery.basic.DiscoveryDictionary; … … 23 19 import ndg.services.discovery.model.SearchAgent; 24 20 import ndg.services.jpa.OriginalDocument; 25 import ndg.services.schemas.discovery.CustomInfo;26 import ndg.services.schemas.discovery.DiscoveryServiceSkeletonInterface;27 import ndg.services.schemas.discovery.DoPresentDocument;28 import ndg.services.schemas.discovery.DoPresentReturnDocument;29 import ndg.services.schemas.discovery.DoSearchDocument;30 import ndg.services.schemas.discovery.DoSearchReturnDocument;31 import ndg.services.schemas.discovery.Documents;32 import ndg.services.schemas.discovery.GetListDocument;33 import ndg.services.schemas.discovery.GetListNamesDocument;34 import ndg.services.schemas.discovery.GetListNamesReturnDocument;35 import ndg.services.schemas.discovery.GetListNamesReturnType;36 import ndg.services.schemas.discovery.GetListReturnDocument;37 import ndg.services.schemas.discovery.GetListReturnType;38 import ndg.services.schemas.discovery.GetListType;39 import ndg.services.schemas.discovery.OrderByType;40 import ndg.services.schemas.discovery.OrderingMetricType;41 import ndg.services.schemas.discovery.PresentReturnType;42 import ndg.services.schemas.discovery.RetrieveCriteriaType;43 import ndg.services.schemas.discovery.ReturnBriefType;44 import ndg.services.schemas.discovery.ReturnFullType;45 import ndg.services.schemas.discovery.ReturnSimpleType;46 import ndg.services.schemas.discovery.ReturnSummaryType;47 import ndg.services.schemas.discovery.SearchReturnType;48 import ndg.services.schemas.discovery.SearchType;49 import ndg.services.schemas.discovery.SimpleDocument1;50 import ndg.services.schemas.discovery.TermSearchType;51 21 import ndg.services.schemas.discovery.SearchType.SearchCriteria; 52 22 53 import org.apache.axis2.context.MessageContext;54 23 import org.apache.log4j.Level; 55 24 … … 60 29 */ 61 30 public class DiscoveryServiceSkeleton implements DiscoveryServiceSkeletonInterface { 62 63 private static String insLogSQL = "INSERT INTO discoverySearchLogging(search_term, date_of_search, scope, originator_IP, number_results_returned) values (?,?,?,?,?)";64 31 65 32 private NdgLogger logHelper = DiscoveryBasic.getInstance().getNdgInstance( … … 431 398 type.setDocumentId(result.getOriginalDocumentFilename()); 432 399 } 433 434 private void logClientIP(SearchReturnType responseContent, DoSearchDocument doSearch) {435 String ipAddress = "";436 MessageContext messageContext = MessageContext.getCurrentMessageContext();437 if (messageContext != null) {438 ipAddress = (String) messageContext.getProperty(MessageContext.REMOTE_ADDR);439 }440 try {441 insertInLogDB(doSearch, responseContent, ipAddress);442 } catch (ResourceNotAvailable e) {443 // TODO Auto-generated catch block444 e.printStackTrace();445 } catch (SQLException e) {446 // TODO Auto-generated catch block447 e.printStackTrace();448 }449 NdgMessage msg = new NdgMessage("client.ip", new Object[] { ipAddress });450 logHelper.logMessage(msg, Level.INFO);451 }452 453 private void insertInLogDB(DoSearchDocument doSearch, SearchReturnType responseContent, String clientIP)454 throws SQLException, ResourceNotAvailable {455 Connection conn = DiscoveryBasic.getInstance().getLogConnection();456 PreparedStatement stat = conn.prepareStatement(insLogSQL);457 String termSearch = doSearch.getDoSearch() != null ? assembleTermSearch(doSearch.getDoSearch()458 .getSearchCriteria()) : null;459 stat.setString(1, termSearch);460 stat.setTimestamp(2, new Timestamp(Calendar.getInstance().getTimeInMillis()));461 String scope = doSearch.getDoSearch() != null ? getScope(doSearch.getDoSearch().getScopeArray()) : null;462 stat.setString(3, scope);463 stat.setString(4, clientIP);464 stat.setInt(5, responseContent.getHits());465 stat.executeUpdate();466 if (conn != null)467 conn.close();468 }469 470 private String getScope(String[] scopes) {471 StringBuffer sb = new StringBuffer();472 for (String item : scopes) {473 sb.append(item);474 sb.append(", ");475 }476 if (sb.length() > 0)477 sb.delete(sb.length() - 2, sb.length());478 return sb.toString();479 }480 481 private String assembleTermSearch(SearchCriteria criteria) {482 StringBuffer sb = new StringBuffer();483 for (TermSearchType ts : criteria.getTermSearchArray()) {484 sb.append(ts.getTerm());485 sb.append(", ");486 }487 if (sb.length() > 0)488 sb.delete(sb.length() - 2, sb.length());489 return sb.toString();490 }491 400 }
Note: See TracChangeset
for help on using the changeset viewer.