Changeset 3950


Ignore:
Timestamp:
27/05/08 15:38:03 (11 years ago)
Author:
cbyrom
Message:

Simplify workflow in Skeleton class + add logging using log4j + add new
class, DBClient, to wrapper comms to Postgres DB - implemented using
the postgres JDBC library + add new user defined exception to handle, and
log, general service exceptions +
also add in files previously deleted (by eclipse)

Location:
TI01-discovery/branches/ws-Discovery2-upgrade/src/ndg/services/discovery
Files:
6 added
2 edited

Legend:

Unmodified
Added
Removed
  • TI01-discovery/branches/ws-Discovery2-upgrade/src/ndg/services/discovery/DiscoveryServiceSkeleton.java

    r3148 r3950  
    77import java.util.Hashtable; 
    88import java.util.Vector; 
     9import java.util.logging.Logger; 
    910 
    1011/** 
     
    1516public class DiscoveryServiceSkeleton{ 
    1617 
     18        // Obtain a suitable logger. 
     19    private static Logger logger = Logger.getLogger(DiscoveryServiceSkeleton.class.getName()); 
     20     
     21    private static final String[] LIST_NAMES = {"presentFormatList", "orderByFieldList", "scopeList", 
     22        "termTypeList", "spatialOperatorList"}; 
    1723        /** 
    18          * Performs the doFullTextSearch operation 
     24         * Performs the doFullTextSearch operation  
    1925         * @param discoveryserviceapi.DoSearchDocument containing search request 
    2026         * @return discoveryserviceapi.DoSearchReturnDocument containing search result 
     
    2430          
    2531        {  
     32                logger.info("doSearch() invoked"); 
    2633                discoveryserviceapi.DoSearchReturnDocument response = discoveryserviceapi.DoSearchReturnDocument.Factory.newInstance(); 
    2734                discoveryserviceapi.SearchReturnType responseContent = response.addNewDoSearchReturn(); 
     
    4552                else 
    4653                { 
    47                         throw new UnsupportedOperationException("Invalid termType: please use getListNames to get the valid list term types"); 
    48                 } 
    49  
    50                 if ( agent != null ) 
    51                 { 
    52                         if ( requestContent.getTerm().length() > 0 ) 
    53                         { 
    54                                 agent.setDoTerm( true ); 
    55                         } 
    56  
    57                         if ( requestContent.isSetStart() ) 
    58                         { 
    59                                 agent.setStart( requestContent.getStart() ); 
    60                         } 
     54                        String errorMessage = "Invalid termType: please use getListNames to get the valid list term types"; 
     55                        logger.warning(errorMessage); 
     56                        throw new UnsupportedOperationException(errorMessage); 
     57                } 
     58 
     59                if ( requestContent.getTerm().length() > 0 ) 
     60                { 
     61                        logger.info("Term set - will do term search"); 
     62                        agent.setDoTerm( true ); 
     63                } 
     64 
     65                if ( requestContent.isSetStart() ) 
     66                { 
     67                        logger.info("Start position of results set set to: " + requestContent.getStart()); 
     68                        agent.setStart( requestContent.getStart() ); 
     69                } 
    6170                         
    62                         if ( requestContent.isSetHowMany() ) 
    63                         { 
    64                                 agent.setHowMany( requestContent.getHowMany() ); 
    65                         } 
    66  
    67                         if ( requestContent.isSetOrderBy() ) 
    68                         { 
    69                                 agent.setOrderBy( requestContent.getOrderBy().toString() ); 
    70                                 agent.setDoOrderBy( true ); 
    71                                 if ( requestContent.isSetOrderByDirection() ) 
    72                                 { 
    73                                         agent.setOrderByDirection( requestContent.getOrderByDirection().toString() ); 
    74                                 } 
    75                         } 
    76  
    77                         if ( requestContent.sizeOfScopeArray() > 0) 
    78                         { 
    79                                 for (int i=0; i<requestContent.sizeOfScopeArray(); i++) 
    80                                 { 
    81                                         agent.addNewScope( requestContent.getScopeArray(i).toString() ); 
    82                                 } 
    83                                 agent.setDoScope( true ); 
    84                         } 
    85  
    86                         if ( requestContent.isSetBoundingBox() ) 
    87                         { 
    88                                 agent.setLimitWest( requestContent.getBoundingBox().getLimitWest() ); 
    89                                 agent.setLimitSouth( requestContent.getBoundingBox().getLimitSouth() ); 
    90                                 agent.setLimitEast( requestContent.getBoundingBox().getLimitEast() ); 
    91                                 agent.setLimitNorth( requestContent.getBoundingBox().getLimitNorth() ); 
    92                                 agent.setDoSpatio( true ); 
    93                                 if ( requestContent.isSetSpatialOperator() ) 
    94                                 { 
    95                                         agent.setSpatialOperator( requestContent.getSpatialOperator() ); 
    96                                 } 
    97                         } 
    98  
    99                         if ( requestContent.isSetDateRange() ) 
    100                         { 
    101                                 agent.setDateRangeStart( requestContent.getDateRange().getDateRangeStart() ); 
    102                                 agent.setDateRangeEnd( requestContent.getDateRange().getDateRangeEnd() ); 
    103                                 agent.setDoTemporal( true ); 
    104                         } 
    105  
    106                         SearchSummary myResult = null; 
    107                          
    108                         // Execute the search 
    109                         try 
    110                         { 
    111                                 myResult = agent.doSearch(); 
    112                         } 
    113                         catch (Exception e) 
    114                         { 
    115                                 responseContent.setStatus( false ); 
    116                                 responseContent.setStatusMessage( "Unable to retrieve result - reason : " + e.toString() ); 
    117                         } 
    118  
    119                         if (myResult != null) 
    120                         { 
    121                                 responseContent.setStatus( myResult.getStatus() ); 
    122                                 responseContent.setStatusMessage( myResult.getStatusMessage() ); 
    123                                 responseContent.setResultId( myResult.getResultId()     ); 
    124  
    125                                 if ( myResult.getStatus() ) // successful search 
    126                                 { 
    127                                         responseContent.setHits( myResult.getHits() ); 
    128                                 } 
    129                                 else //unsuccessful search 
    130                                 { 
    131                                         responseContent.setHits( 0 ); 
    132                                 } 
     71                if ( requestContent.isSetHowMany() ) 
     72                { 
     73                        logger.info("Result set size set to: " + requestContent.getHowMany()); 
     74                        agent.setHowMany( requestContent.getHowMany() ); 
     75                } 
     76 
     77                if ( requestContent.isSetOrderBy() ) 
     78                { 
     79                        logger.info("Results ordered by: " + requestContent.getOrderBy()); 
     80                        agent.setOrderBy( requestContent.getOrderBy().toString() ); 
     81                        agent.setDoOrderBy( true ); 
     82                        if ( requestContent.isSetOrderByDirection() ) 
     83                        { 
     84                                logger.info("Results ordering direction: " + requestContent.getOrderByDirection().toString()); 
     85                                agent.setOrderByDirection( requestContent.getOrderByDirection().toString() ); 
     86                        } 
     87                } 
     88 
     89                if ( requestContent.sizeOfScopeArray() > 0) 
     90                { 
     91                        for (int i=0; i<requestContent.sizeOfScopeArray(); i++) 
     92                        { 
     93                                logger.info("Adding search scope: " + requestContent.getScopeArray(i)); 
     94                                agent.addNewScope( requestContent.getScopeArray(i).toString() ); 
     95                        } 
     96                        agent.setDoScope( true ); 
     97                } 
     98 
     99                if ( requestContent.isSetBoundingBox() ) 
     100                { 
     101                        logger.info("Adding bounding box data"); 
     102                        agent.setLimitWest( requestContent.getBoundingBox().getLimitWest() ); 
     103                        agent.setLimitSouth( requestContent.getBoundingBox().getLimitSouth() ); 
     104                        agent.setLimitEast( requestContent.getBoundingBox().getLimitEast() ); 
     105                        agent.setLimitNorth( requestContent.getBoundingBox().getLimitNorth() ); 
     106                        agent.setDoSpatio( true ); 
     107                        if ( requestContent.isSetSpatialOperator() ) 
     108                        { 
     109                                logger.info("Adding spatial operator: " + requestContent.getSpatialOperator()); 
     110                                agent.setSpatialOperator( requestContent.getSpatialOperator() ); 
     111                        } 
     112                } 
     113 
     114                if ( requestContent.isSetDateRange() ) 
     115                { 
     116                        logger.info("Adding temporal range"); 
     117                        agent.setDateRangeStart( requestContent.getDateRange().getDateRangeStart() ); 
     118                        agent.setDateRangeEnd( requestContent.getDateRange().getDateRangeEnd() ); 
     119                        agent.setDoTemporal( true ); 
     120                } 
     121 
     122                SearchSummary myResult = null; 
     123                 
     124                // Execute the search 
     125                try 
     126                { 
     127                        logger.info("Running search..."); 
     128                        myResult = agent.doSearch(); 
     129                        logger.info("Search completed"); 
     130                } 
     131                catch (Exception e) 
     132                { 
     133                        String errorMessage = "Unable to retrieve result - reason : " + e.toString();  
     134                        logger.severe(errorMessage); 
     135                        responseContent.setStatus( false ); 
     136                        responseContent.setStatusMessage(errorMessage); 
     137                } 
     138 
     139                if (myResult != null) 
     140                { 
     141                        logger.info("Checking results..."); 
     142                        responseContent.setStatus( myResult.getStatus() ); 
     143                        responseContent.setStatusMessage( myResult.getStatusMessage() ); 
     144                        responseContent.setResultId( myResult.getResultId()     ); 
     145                        if ( myResult.getStatus() ) // successful search 
     146                        { 
     147                                logger.info("Search successfully returned results"); 
     148                                responseContent.setHits( myResult.getHits() ); 
    133149 
    134150                                Vector summaryDocuments = myResult.getDocuments(); 
    135151                                 
    136                                 if ( myResult.getStatus() && summaryDocuments != null ) 
     152                                if (summaryDocuments != null ) 
    137153                                { 
     154                                        logger.info("Search returned some matching documents"); 
    138155                                        discoveryserviceapi.DocumentsType responseDocuments = responseContent.addNewDocuments(); 
    139  
    140156                                        for (Iterator i = summaryDocuments.iterator(); i.hasNext(); ) 
    141157                                        { 
     
    144160                                        } 
    145161 
     162                                        logger.info("Adding found documents to response"); 
    146163                                        responseContent.setDocuments( responseDocuments ); 
    147  
    148164                                } 
    149                                  
    150  
    151                         } 
    152                 } 
     165                                else 
     166                                { 
     167                                        logger.info("null data set returned from search - this may indicate a problem"); 
     168                                } 
     169                        } 
     170                        else //unsuccessful search 
     171                        { 
     172                                logger.warning("Search status was unsuccessful - this may indicate a problem"); 
     173                                responseContent.setHits( 0 ); 
     174                        } 
     175                } 
     176                else 
     177                { 
     178                        logger.warning("null data set returned from search - this may indicate a problem"); 
     179                } 
     180                 
     181                logger.info("doSearch() completed successfully"); 
    153182 
    154183                return response; 
     
    164193                 (discoveryserviceapi.DoPresentDocument request ) 
    165194        { 
     195                 logger.info("doPresent() invoked"); 
    166196                discoveryserviceapi.DoPresentReturnDocument response = discoveryserviceapi.DoPresentReturnDocument.Factory.newInstance(); 
    167197                discoveryserviceapi.PresentReturnType responseContent = response.addNewDoPresentReturn(); 
     
    209239                        responseContent.setStatusMessage("Error creating doPresentReturnDocument : " + e.toString() ); 
    210240                } 
     241                logger.info("doPresent() completed successfully"); 
    211242 
    212243                return response; 
     
    215246    /** 
    216247         * Performs the getListNames operation 
     248         * - returns list of valid strings to use as input to the getList service 
    217249         * @param discoveryserviceapi.GetListNamesDocument containing request 
    218250         * @return discoveryserviceapi.GetListNamesReturnDocument containing result 
     
    221253                 (discoveryserviceapi.GetListNamesDocument request ) 
    222254        { 
     255                 logger.info("getListNames() invoked"); 
    223256                discoveryserviceapi.GetListNamesReturnDocument response = discoveryserviceapi.GetListNamesReturnDocument.Factory.newInstance(); 
    224257                discoveryserviceapi.GetListNamesReturnType responseContent = response.addNewGetListNamesReturn(); 
    225258                discoveryserviceapi.GetListNamesReturnType.ListNames listNames =  responseContent.addNewListNames(); 
    226259 
    227                 listNames.addListName("presentFormatList"); 
    228                 listNames.addListName("orderByFieldList"); 
    229                 listNames.addListName("scopeList"); 
    230                 listNames.addListName("termTypeList"); 
    231                 listNames.addListName("spatialOperatorList"); 
    232  
     260                for (int i = 0; i < LIST_NAMES.length; i++) 
     261                        listNames.addListName(LIST_NAMES[i]); 
     262 
     263                logger.info("getListNames() completed successfully"); 
    233264                return response; 
    234265        } 
     
    242273                 (discoveryserviceapi.GetListDocument request ) 
    243274        { 
     275                 logger.info("getList() invoked"); 
    244276                discoveryserviceapi.GetListReturnDocument response = discoveryserviceapi.GetListReturnDocument.Factory.newInstance(); 
    245277                discoveryserviceapi.GetListReturnType responseContent = response.addNewGetListReturn(); 
     
    249281                discoveryserviceapi.GetListType requestContent = request.getGetList(); 
    250282                String listName = requestContent.getListName(); 
     283                list.setName( listName ); 
    251284 
    252285                if ( listName.equals("presentFormatList") ) 
    253286                { 
    254                         list.setName( listName ); 
    255287                        list.addListMember("original"); 
    256288                        list.addListMember("DC"); 
     
    262294                else if ( requestContent.getListName().equals("orderByFieldList") ) 
    263295                { 
    264                         list.setName( listName ); 
    265296                        list.addListMember("date"); 
    266297                        list.addListMember("dataCentre"); 
     
    268299                else if ( requestContent.getListName().equals("scopeList") ) 
    269300                { 
    270                         list.setName( listName ); 
    271301                        list.addListMember("NERC"); 
    272302                        list.addListMember("NERC_DDC"); 
     
    276306                else if ( requestContent.getListName().equals("termTypeList") ) 
    277307                { 
    278                         list.setName( listName ); 
    279308                        list.addListMember("fullText"); 
    280309                        list.addListMember("author"); 
     
    283312                else if ( requestContent.getListName().equals("spatialOperatorList") ) 
    284313                { 
    285                         list.setName( listName ); 
    286314                        list.addListMember("overlaps"); 
    287315                        list.addListMember("doesNotOverlap"); 
     
    290318                else  
    291319                { 
    292                         throw new UnsupportedOperationException("Invalid list name: please use getListNames to get the valid list names"); 
     320                        String errorMessage = "Invalid list name: please use getListNames to get the valid list names"; 
     321                        logger.warning(errorMessage); 
     322                        throw new UnsupportedOperationException(errorMessage); 
    293323                } 
    294324                 
     325                logger.info("getList() completed successfully"); 
    295326                return response; 
    296327        } 
  • TI01-discovery/branches/ws-Discovery2-upgrade/src/ndg/services/discovery/ParameterSearchAgent.java

    r3054 r3950  
    2828        public void setTerm(String s) 
    2929        { 
    30                 this.term = "collection('/db/discovery/moles')[./moles:dgMetadata/moles:dgMetadataRecord/moles:dgDataEntity/moles:dgDataSummary/moles:dgParameterSummary &= '"+ s +"']"; 
     30                this.term = s; 
    3131        } 
    3232 
Note: See TracChangeset for help on using the changeset viewer.