Ignore:
Timestamp:
29/05/08 13:50:04 (11 years ago)
Author:
cbyrom
Message:

Add new methods to DiscoveryServiceClient? to invoke each of the different
avaiable webservices - to allow this to be used by JUnit test.
Add basic JUNIT test to call each of the services.
Fix NPE in Skeleton class by adding extra checks.

Location:
TI01-discovery/branches/ws-Discovery2-upgrade
Files:
6 added
4 edited

Legend:

Unmodified
Added
Removed
  • TI01-discovery/branches/ws-Discovery2-upgrade/.classpath

    r3951 r3959  
    44        <classpathentry kind="src" path="src"/> 
    55        <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> 
     6        <classpathentry kind="lib" path="resources/xmlrpc-1.2-patched.jar"/> 
     7        <classpathentry kind="lib" path="resources/postgresql-8.3-603.jdbc4.jar"/> 
     8        <classpathentry kind="lib" path="resources/jdom.jar"/> 
     9        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/activation-1.1.jar"/> 
     10        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/annogen-0.1.0.jar"/> 
     11        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/axiom-api-1.2.7.jar"/> 
     12        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/axiom-dom-1.2.7.jar"/> 
     13        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/axiom-impl-1.2.7.jar"/> 
     14        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/axis2-adb-1.4.jar"/> 
     15        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/axis2-adb-codegen-1.4.jar"/> 
     16        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/axis2-ant-plugin-1.4.jar"/> 
     17        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/axis2-clustering-1.4.jar"/> 
     18        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/axis2-codegen-1.4.jar"/> 
     19        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/axis2-corba-1.4.jar"/> 
     20        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/axis2-fastinfoset-1.4.jar"/> 
     21        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/axis2-java2wsdl-1.4.jar"/> 
     22        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/axis2-jaxbri-1.4.jar"/> 
     23        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/axis2-jaxws-1.4.jar"/> 
     24        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/axis2-jaxws-api-1.4.jar"/> 
     25        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/axis2-jibx-1.4.jar"/> 
     26        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/axis2-json-1.4.jar"/> 
     27        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/axis2-jws-api-1.4.jar"/> 
     28        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/axis2-kernel-1.4.jar"/> 
     29        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/axis2-metadata-1.4.jar"/> 
     30        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/axis2-mtompolicy-1.4.jar"/> 
     31        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/axis2-saaj-1.4.jar"/> 
     32        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/axis2-saaj-api-1.4.jar"/> 
     33        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/axis2-spring-1.4.jar"/> 
     34        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/axis2-xmlbeans-1.4.jar"/> 
     35        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/backport-util-concurrent-3.1.jar"/> 
     36        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/commons-codec-1.3.jar"/> 
     37        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/commons-fileupload-1.2.jar"/> 
     38        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/commons-httpclient-3.1.jar"/> 
     39        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/commons-io-1.4.jar"/> 
     40        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/commons-logging-1.1.1.jar"/> 
     41        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/geronimo-annotation_1.0_spec-1.1.jar"/> 
     42        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/geronimo-stax-api_1.0_spec-1.0.1.jar"/> 
     43        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/httpcore-4.0-beta1.jar"/> 
     44        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/httpcore-nio-4.0-beta1.jar"/> 
     45        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/jalopy-1.5rc3.jar"/> 
     46        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/jaxb-api-2.1.jar"/> 
     47        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/jaxb-impl-2.1.6.jar"/> 
     48        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/jaxb-xjc-2.1.6.jar"/> 
     49        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/jaxen-1.1.1.jar"/> 
     50        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/jettison-1.0-RC2.jar"/> 
     51        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/jibx-bind-1.1.5.jar"/> 
     52        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/jibx-run-1.1.5.jar"/> 
     53        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/log4j-1.2.15.jar"/> 
     54        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/mail-1.4.jar"/> 
     55        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/mex-1.4.jar"/> 
     56        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/neethi-2.0.4.jar"/> 
     57        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/soapmonitor-1.4.jar"/> 
     58        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/woden-api-1.0M8.jar"/> 
     59        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/woden-impl-dom-1.0M8.jar"/> 
     60        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/wsdl4j-1.6.2.jar"/> 
     61        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/wstx-asl-3.2.4.jar"/> 
     62        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/xalan-2.7.0.jar"/> 
     63        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/xercesImpl-2.8.1.jar"/> 
     64        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/xml-apis-1.3.04.jar"/> 
     65        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/xmlbeans-2.3.0.jar"/> 
     66        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/xml-resolver-1.2.jar"/> 
     67        <classpathentry kind="lib" path="/misc/humid1/cbyrom/opt/axis2-1.4/lib/XmlSchema-1.4.2.jar"/> 
     68        <classpathentry kind="lib" path="srcgen/build/lib/XBeans-packaged.jar"/> 
     69        <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/> 
    670        <classpathentry kind="output" path="bin"/> 
    771</classpath> 
  • TI01-discovery/branches/ws-Discovery2-upgrade/src/ndg/services/discovery/DiscoveryServiceSkeleton.java

    r3957 r3959  
    2121    private static Logger logger = Logger.getLogger(DiscoveryServiceSkeleton.class.getName()); 
    2222     
    23     private static final String[] LIST_NAMES = {"presentFormatList", "orderByFieldList", "scopeList", 
     23    public static final String[] LIST_NAMES = {"presentFormatList", "orderByFieldList", "scopeList", 
    2424        "termTypeList", "spatialOperatorList"}; 
    2525 
     
    134134                        logger.info("Term type set - checking for term value"); 
    135135 
    136                         if ( requestContent.getTerm().length() > 0 ) 
     136                        if (requestContent.getTerm() != null && requestContent.getTerm().length() > 0 ) 
    137137                        { 
    138138                                logger.info("Term set - will do term search"); 
  • TI01-discovery/branches/ws-Discovery2-upgrade/src/ndg/testclient/discovery/DiscoveryServiceClient.java

    r3944 r3959  
    4848                try 
    4949                { 
    50                         DiscoveryServiceClient client = new DiscoveryServiceClient("http://localhost/axis2/services/DiscoveryService"); 
     50                        DiscoveryServiceClient client = new DiscoveryServiceClient("http://localhost:8080/axis2/services/DiscoveryService"); 
    5151 
    5252                        // Method 1: request documents passed as strings 
     
    130130                } 
    131131        } 
     132         
     133        /** 
     134         * Test if a string has a value set 
     135         * @param str - string to test 
     136         * @return true if str is non null and not empty, false otherwise 
     137         */ 
     138        private boolean isStringDefined(String str) 
     139        { 
     140                if (str != null && str.length() > 0) 
     141                        return true; 
     142                return false; 
     143        } 
     144         
     145        /** 
     146         * Run a search - return results as a String 
     147         *  
     148         * @param term 
     149         * @param termType 
     150         * @param start 
     151         * @param howMany 
     152         * @param orderBy 
     153         * @param orderByDirection 
     154         * @param scope 
     155         * @param spatialOperator 
     156         * @param limitNorth 
     157         * @param limitSouth 
     158         * @param limitWest 
     159         * @param limitEast 
     160         * @param temporalOperator 
     161         * @param dateRangeStart 
     162         * @param dateRangeEnd 
     163         * @return Search results 
     164         *  
     165         */ 
     166        public String runSearch(String term, String termType, String start, String howMany,  
     167                        String orderBy, String orderByDirection, String scope, String spatialOperator, 
     168                        String limitNorth, String limitSouth, String limitWest, String limitEast, 
     169                        String temporalOperator, String dateRangeStart, String dateRangeEnd) 
     170        { 
     171                System.out.println("Trying a doSearch()"); 
     172                 
     173                String doSearchResult = null; 
     174                 
     175                StringBuilder soapMessage = new StringBuilder("<doSearch xmlns=\"urn:DiscoveryServiceAPI\">"); 
     176 
     177                if (isStringDefined(term)) 
     178                        soapMessage.append("<term>" + term + "</term>"); 
     179                if (isStringDefined(termType)) 
     180                        soapMessage.append("<termType>" + termType + "</termType>"); 
     181 
     182                if (isStringDefined(start)) 
     183                { 
     184                        // NB, check the input val is a valid int 
     185                        int startVal = Integer.parseInt(start); 
     186                        soapMessage.append("<start>" + startVal + "</start>"); 
     187                } 
     188 
     189                if (isStringDefined(howMany)) 
     190                { 
     191                        // NB, check the input val is a valid int 
     192                        int howManyVal = Integer.parseInt(howMany); 
     193                        soapMessage.append("<howMany>" + howManyVal + "</howMany>"); 
     194                } 
     195 
     196                if (isStringDefined(orderBy)) 
     197                        soapMessage.append("<orderBy>" + orderBy + "</orderBy>"); 
     198 
     199                if (isStringDefined(orderByDirection)) 
     200                        soapMessage.append("<orderByDirection>" + orderByDirection + "</orderByDirection>"); 
     201 
     202                if (isStringDefined(scope)) 
     203                        soapMessage.append("<scope>" + scope + "</scope>"); 
     204 
     205                if (isStringDefined(spatialOperator)) 
     206                        soapMessage.append("<spatialOperator>" + spatialOperator + "</spatialOperator>"); 
     207 
     208                if (isStringDefined(limitNorth)) 
     209                { 
     210                        soapMessage.append("<BoundingBox>"); 
     211                        // NB, check the input vals are valid floats 
     212                        float limitNorthVal = Float.parseFloat(limitNorth); 
     213                        soapMessage.append("<LimitNorth>" + limitNorthVal + "</LimitNorth>"); 
     214                        float limitSouthVal = Float.parseFloat(limitSouth); 
     215                        soapMessage.append("<LimitSouth>" + limitSouthVal + "</LimitSouth>"); 
     216                        float limitEastVal = Float.parseFloat(limitEast); 
     217                        soapMessage.append("<LimitEast>" + limitEastVal + "</LimitEast>"); 
     218                        float limitWestVal = Float.parseFloat(limitWest); 
     219                        soapMessage.append("<LimitWest>" + limitWestVal + "</LimitWest>"); 
     220                        soapMessage.append("</BoundingBox>"); 
     221                } 
     222                 
     223 
     224                if (isStringDefined(temporalOperator)) 
     225                        soapMessage.append("<temporalOperator>" + temporalOperator + "</temporalOperator>"); 
     226 
     227                if (isStringDefined(dateRangeStart)) 
     228                { 
     229                        soapMessage.append("<DateRange>"); 
     230                        soapMessage.append("<DateRangeStart>" + dateRangeStart + "</DateRangeStart>"); 
     231                        soapMessage.append("<DateRangeEnd>" + dateRangeEnd + "</DateRangeEnd>"); 
     232                        soapMessage.append("</DateRange>"); 
     233                } 
     234 
     235                soapMessage.append("</doSearch>"); 
     236                 
     237                System.out.println("Sending soap message: " + soapMessage.toString()); 
     238 
     239                try 
     240                { 
     241                        doSearchResult = doSearch(soapMessage.toString()); 
     242                        System.out.println("Results:"); 
     243                        System.out.println( doSearchResult ); 
     244                } 
     245                catch (Exception e) 
     246                { 
     247                        System.out.println( e.toString() ); 
     248                } 
     249                return doSearchResult;  
     250        } 
     251         
     252         
     253        public String runPresent(String[] documents, String format) 
     254        { 
     255                String doPresentResult = null; 
     256                StringBuilder soapMessage = new StringBuilder("<doPresent xmlns=\"urn:DiscoveryServiceAPI\"><documents>"); 
     257                 
     258                for (int i = 0; i < documents.length; i++) 
     259                { 
     260                        soapMessage.append("<document>" + documents[i] + "</document>"); 
     261                } 
     262                soapMessage.append("</documents>"); 
     263                 
     264                if (isStringDefined(format)) 
     265                        soapMessage.append("<format>" + format + "</format>"); 
     266                 
     267                soapMessage.append("</doPresent>"); 
     268                 
     269                System.out.println("Sending soap message: " + soapMessage.toString()); 
     270 
     271                try 
     272                { 
     273                        System.out.println( "Trying a doPresent..." ); 
     274                        doPresentResult = doPresent(soapMessage.toString()); 
     275                        System.out.println( doPresentResult ); 
     276                } 
     277                catch (Exception e) 
     278                { 
     279                        System.out.println( e.toString() ); 
     280                } 
     281                return doPresentResult; 
     282        } 
     283         
     284         
     285        public String runGetListNames() 
     286        { 
     287                String result = null; 
     288                try 
     289                { 
     290                        System.out.println( "Trying a getListNames..." ); 
     291                        result = getListNames("<getListNames xmlns=\"urn:DiscoveryServiceAPI\"/>"); 
     292                        System.out.println("Result:"); 
     293                        System.out.println(result); 
     294                } 
     295                catch (Exception e) 
     296                { 
     297                        System.out.println( e.toString() ); 
     298                } 
     299                return result; 
     300        } 
     301         
     302         
     303        public String runGetList(String listName) 
     304        { 
     305                String result = null; 
     306                StringBuilder soapMessage = new StringBuilder("<getList xmlns=\"urn:DiscoveryServiceAPI\">" + 
     307                                "<listName>" + listName + "</listName></getList>"); 
     308                System.out.println("Sending soap message: " + soapMessage.toString()); 
     309                 
     310                try 
     311                { 
     312                        System.out.println( "Trying a getList..." ); 
     313                        result = getList(soapMessage.toString()); 
     314                        System.out.println("Result:"); 
     315                        System.out.println(result); 
     316                } 
     317                catch (Exception e) 
     318                { 
     319                        System.out.println( e.toString() ); 
     320                } 
     321                return result; 
     322        } 
    132323 
    133324        // class variable for Service stub 
     
    176367 
    177368        /** 
     369         * Acts as proxy method for getListNames operation 
     370         * @param reqDocAsString String containing XML request doc (see WSDL for structure) 
     371         * @return String containing PresentReturn (see WSDL for structure) 
     372         */ 
     373        public String getListNames( 
     374                String reqDocAsString 
     375        ) throws java.rmi.RemoteException, org.apache.xmlbeans.XmlException 
     376        { 
     377                discoveryserviceapi.GetListNamesDocument reqDoc= discoveryserviceapi.GetListNamesDocument.Factory.parse( reqDocAsString ); 
     378                discoveryserviceapi.GetListNamesReturnDocument resDoc= _service.getListNames( reqDoc ); 
     379                return resDoc.toString(); 
     380        } 
     381 
     382        /** 
     383         * Acts as proxy method for getListNames operation 
     384         * @param reqDocAsString String containing XML request doc (see WSDL for structure) 
     385         * @return String containing PresentReturn (see WSDL for structure) 
     386         */ 
     387        public String getList( 
     388                String reqDocAsString 
     389        ) throws java.rmi.RemoteException, org.apache.xmlbeans.XmlException 
     390        { 
     391                discoveryserviceapi.GetListDocument reqDoc= discoveryserviceapi.GetListDocument.Factory.parse( reqDocAsString ); 
     392                discoveryserviceapi.GetListReturnDocument resDoc= _service.getList( reqDoc ); 
     393                return resDoc.toString(); 
     394        } 
     395 
     396        /** 
    178397         * Acts as proxy method for doSearch operation 
    179398         * @param reqDocAsString String containing XML request doc (see WSDL for structure) 
  • TI01-discovery/branches/ws-Discovery2-upgrade/srcgen/buildDiscovery.xml

    r3944 r3959  
    201201                <!-- <setproxy proxyHost="wwwcache.rl.ac.uk" proxyPort="8080"/> --> 
    202202                <echo message="JAVA_HOME = ${env.JAVA_HOME}"/> 
    203                 <echo message="AXIS_CLASSPATH = ${axis2.class.path}"/> 
    204203                <java classname="ndg.testclient.discovery.DiscoveryServiceClient" fork="true"> 
    205204                        <!-- <arg value="${build}/repo"/> --> 
     
    212211        <target depends="" name="test.client" if="jars.ok"> 
    213212                <echo message="JAVA_HOME = ${env.JAVA_HOME}"/> 
     213                <echo message="CLASSPATH = ${env.CLASSPATH}"/> 
    214214                <java classname="ndg.testclient.discovery.DiscoveryServiceClient" fork="true"> 
    215                         <!-- <arg value="${build}/repo"/> --> 
    216215                        <classpath refid="axis2.class.path"/> 
    217216                        <classpath location="${lib}/${name}-test-client.jar"/> 
    218                         <sysproperty key="verbose" value="true"/> 
    219217                        <arg value="string"/> 
    220218                </java> 
Note: See TracChangeset for help on using the changeset viewer.