Changeset 675:92b2b31e150d


Ignore:
Timestamp:
10/31/12 16:56:53 (5 years ago)
Author:
Babis Nikolaou <charnik@…>
Branch:
default
Message:

added Parameters and Parameter classes for hosting the HTTP parameters required from the various beans of the endpoint. Updated also the auto-discovery mechanism of old endpoints (still incomplete)

Location:
endpoint/src/main/java/eu/earthobservatory/org/StrabonEndpoint/capabilities
Files:
2 added
8 edited

Legend:

Unmodified
Added
Removed
  • endpoint/src/main/java/eu/earthobservatory/org/StrabonEndpoint/capabilities/AutoDiscoveryCapabilities.java

    r661 r675  
    1010package eu.earthobservatory.org.StrabonEndpoint.capabilities; 
    1111 
     12import java.io.IOException; 
     13 
     14import org.apache.commons.httpclient.HttpClient; 
     15import org.apache.commons.httpclient.methods.PostMethod; 
    1216import org.slf4j.Logger; 
    1317import org.slf4j.LoggerFactory; 
     
    3438 
    3539        private static Logger logger = LoggerFactory.getLogger(eu.earthobservatory.org.StrabonEndpoint.capabilities.AutoDiscoveryCapabilities.class); 
     40         
     41        /** 
     42         * The host of the endpoint to discovery its capabilities 
     43         */ 
     44        private String host; 
     45         
     46        /** 
     47         * The port to use 
     48         */ 
     49        private int port; 
     50         
     51        /** 
     52         * The name of the web application 
     53         */ 
     54        private String appName; 
    3655         
    3756        @Override 
     
    7796        @Override 
    7897        public RequestCapabilities getQueryCapabilities() { 
    79                 // TODO Auto-generated method stub 
     98                String query = "SELECT * WHERE {?s ?p ?o. FILTER(regex(str(?p), \"geometry\"))} LIMIT 1"; 
     99                String[] queryParams = {"sparqlQuery", "query"}; 
     100                String[] formatParams = {"format", null}; 
     101                String[] formatValues = {"XML", "KML", "KMZ", "GeoJSON", "HTML", "TSV"}; 
     102                String[] acceptValues = {null, "application/sparql-results+xml", "text/tab-separated-values",  
     103                                "application/vnd.google-earth.kml+xml", "application/vnd.google-earth.kmz", "text/html",  
     104                                "application/json"}; 
     105                 
     106                for (int q = 0; q < queryParams.length; q++) { 
     107                        for (int f = 0; f < formatParams.length; f++) { 
     108                                for (int v = 0; v < formatValues.length; v++) { 
     109                                        for (int a = 0; a < acceptValues.length; a++) { 
     110                                                HttpClient hc = new HttpClient(); 
     111                                                 
     112                                                // create a post method to execute 
     113                                                PostMethod method = new PostMethod(getConnectionURL() + "/Query"); 
     114                                                 
     115                                                // set the query parameter 
     116                                                method.setParameter(queryParams[q], query); 
     117                                                if (formatParams[f] != null) { 
     118                                                        method.setParameter(formatParams[f], formatValues[v]); 
     119                                                         
     120                                                } else { // check for accept value as well, but only when 
     121                                                                 // we are not using the format parameter  
     122                                                 
     123                                                        // set the accept format 
     124                                                        if (acceptValues[a] != null) { 
     125                                                                method.addRequestHeader("Accept", acceptValues[a]); 
     126                                                        } 
     127                                                } 
     128                                                 
     129                                                try { 
     130                                                        // execute the method 
     131                                                        int statusCode = hc.executeMethod(method); 
     132                                                         
     133                                                        //System.out.println(method.getResponseBodyAsString()); 
     134                                                        System.out.println(statusCode); 
     135                                                         
     136                                                        if (statusCode == 200) { 
     137                                                                if (formatParams[f] != null) { 
     138                                                                        System.err.println(queryParams[q] + ", " + formatParams[f] + ", " + formatValues[v]); 
     139                                                                         
     140                                                                } else { 
     141                                                                        System.err.println(queryParams[q] + ", " + acceptValues[a]);     
     142                                                                } 
     143                                                                 
     144                                                        } 
     145         
     146                                                } catch (IOException e) { 
     147                                                        e.printStackTrace(); 
     148                                                         
     149                                                } finally { 
     150                                                        // release the connection. 
     151                                                        method.releaseConnection(); 
     152                                                } 
     153                                        } 
     154                                } 
     155                        } 
     156                } 
     157                 
    80158                return null; 
    81159        } 
     
    139217                } 
    140218        } 
     219 
     220        public void setEndpointDetails(String host, int port, String appName) { 
     221                this.host = host; 
     222                this.port = port; 
     223                this.appName = appName; 
     224        } 
     225         
     226        private String getConnectionURL() { 
     227                return "http://" + host + ":" + port + "/" + appName; 
     228        } 
    141229} 
  • endpoint/src/main/java/eu/earthobservatory/org/StrabonEndpoint/capabilities/BrowseBeanCapabilities.java

    r661 r675  
    1010package eu.earthobservatory.org.StrabonEndpoint.capabilities; 
    1111 
     12import java.util.Collection; 
    1213import java.util.List; 
    1314 
     
    3435         
    3536        @Override 
    36         public List<String> getParameters() { 
     37        public Collection<Parameter> getParameters() { 
    3738                // TODO Auto-generated method stub 
    3839                return null; 
  • endpoint/src/main/java/eu/earthobservatory/org/StrabonEndpoint/capabilities/CapabilitiesBean.java

    r661 r675  
    3737         */ 
    3838        private ServletContext context; 
     39 
     40        /** 
     41         * The name of this web application 
     42         */ 
     43        private String appName; 
    3944         
    4045        /** 
     
    5459                // the the strabon wrapper 
    5560                CapabilitiesDelegateBean capsBean = (CapabilitiesDelegateBean) applicationContext.getBean("capsBean"); 
    56                  
     61 
     62                // get the name of this web application 
     63                appName = context.getContextPath().replace("/", ""); 
     64                                 
    5765                // get capabilities 
    5866                caps = capsBean.getEndpointCapabilities(); 
     
    107115                out.println("Supports CONSTRUCT                         : " + getYesNo(caps.supportsDescribing())); 
    108116                out.println("Supports browsing                          : "     + getYesNo(caps.supportsBrowsing())); 
     117                 
     118                if (caps instanceof AutoDiscoveryCapabilities) { 
     119                        AutoDiscoveryCapabilities autocaps = (AutoDiscoveryCapabilities) caps; 
     120                        autocaps.setEndpointDetails(request.getServerName(), request.getServerPort(), appName); 
     121                } 
     122                 
     123                caps.getQueryCapabilities(); 
    109124        } 
    110125         
  • endpoint/src/main/java/eu/earthobservatory/org/StrabonEndpoint/capabilities/ConnectionBeanCapabilities.java

    r661 r675  
    1010package eu.earthobservatory.org.StrabonEndpoint.capabilities; 
    1111 
     12import java.util.Collection; 
    1213import java.util.List; 
    1314 
     
    3435         
    3536        @Override 
    36         public List<String> getParameters() { 
     37        public Collection<Parameter> getParameters() { 
    3738                // TODO Auto-generated method stub 
    3839                return null; 
  • endpoint/src/main/java/eu/earthobservatory/org/StrabonEndpoint/capabilities/QueryBeanCapabilities.java

    r661 r675  
    1010package eu.earthobservatory.org.StrabonEndpoint.capabilities; 
    1111 
     12import java.util.Collection; 
    1213import java.util.List; 
    1314 
     
    3435         
    3536        @Override 
    36         public List<String> getParameters() { 
    37                 // TODO Auto-generated method stub 
     37        public Collection<Parameter> getParameters() { 
    3838                return null; 
    3939        } 
     
    4141        @Override 
    4242        public List<String> getAcceptedValues(String param) { 
    43                 // TODO Auto-generated method stub 
    4443                return null; 
    4544        } 
     
    4746        @Override 
    4847        public boolean isOptional(String param) { 
    49                 // TODO Auto-generated method stub 
    5048                return false; 
    5149        } 
  • endpoint/src/main/java/eu/earthobservatory/org/StrabonEndpoint/capabilities/RequestCapabilities.java

    r661 r675  
    1010package eu.earthobservatory.org.StrabonEndpoint.capabilities; 
    1111 
     12import java.util.Collection; 
    1213import java.util.List; 
    1314 
     
    2728         * @return 
    2829         */ 
    29         public List<String> getParameters(); 
     30        public Collection<Parameter> getParameters(); 
    3031         
    3132        /** 
  • endpoint/src/main/java/eu/earthobservatory/org/StrabonEndpoint/capabilities/StoreBeanCapabilities.java

    r661 r675  
    1010package eu.earthobservatory.org.StrabonEndpoint.capabilities; 
    1111 
     12import java.util.Collection; 
    1213import java.util.List; 
    1314 
     
    3435         
    3536        @Override 
    36         public List<String> getParameters() { 
     37        public Collection<Parameter> getParameters() { 
    3738                // TODO Auto-generated method stub 
    3839                return null; 
  • endpoint/src/main/java/eu/earthobservatory/org/StrabonEndpoint/capabilities/UpdateBeanCapabilities.java

    r661 r675  
    1010package eu.earthobservatory.org.StrabonEndpoint.capabilities; 
    1111 
     12import java.util.Collection; 
    1213import java.util.List; 
    1314 
     
    3435         
    3536        @Override 
    36         public List<String> getParameters() { 
     37        public Collection<Parameter> getParameters() { 
    3738                // TODO Auto-generated method stub 
    3839                return null; 
Note: See TracChangeset for help on using the changeset viewer.