Strabon
changeset 73:c0ff52c25cb3
adding endpoint component
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/endpoint/WebContent/WEB-INF/beans.xml Thu Mar 22 12:34:16 2012 +0100 1.3 @@ -0,0 +1,74 @@ 1.4 +<?xml version="1.0" encoding="UTF-8"?> 1.5 +<beans xmlns="http://www.springframework.org/schema/beans" 1.6 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws" 1.7 + xsi:schemaLocation="http://www.springframework.org/schema/beans 1.8 + http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 1.9 + http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"> 1.10 + <import resource="classpath:META-INF/cxf/cxf.xml" /> 1.11 + <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> 1.12 + <import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> 1.13 + 1.14 + <bean id="strabonBean" class="eu.earthobservatory.org.StrabonEndpoint.StrabonBeanWrapper" destroy-method="destroy"> 1.15 + <constructor-arg type="java.lang.String"> 1.16 + <!-- Database name --> 1.17 + <value>endpoint</value> 1.18 + </constructor-arg> 1.19 + <constructor-arg type="java.lang.String"> 1.20 + <!-- Username --> 1.21 + <value>postgres</value> 1.22 + </constructor-arg> 1.23 + <constructor-arg type="java.lang.String"> 1.24 + <!-- Password --> 1.25 + <value>p1r3as</value> 1.26 + </constructor-arg> 1.27 + <constructor-arg type="int"> 1.28 + <!-- Port --> 1.29 + <value>5432</value> 1.30 + </constructor-arg> 1.31 + <constructor-arg type="java.lang.String"> 1.32 + <!-- Database server --> 1.33 + <value>localhost</value> 1.34 + </constructor-arg> 1.35 + <constructor-arg type="boolean"> 1.36 + <!-- Check for locks and remove them (in case of a crash) --> 1.37 + <value>true</value> 1.38 + </constructor-arg> 1.39 + <constructor-arg type="java.lang.String"> 1.40 + <!-- Query1 --> 1.41 + <value><![CDATA[%23+Get+all+hotspots+%0D%0A%23+-+in+Pelloponesus+%0D%0A%23+-+at+2007-08-23%0D%0A%23+-+of+firms%0D%0A%0D%0APREFIX+noa%3A+<http%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FnoaOntology.owl%23>%0D%0APREFIX+clc%3A+<http%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FclcOntology.owl%23>%0D%0APREFIX+rdf%3A+<http%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23>%0D%0APREFIX+rdfs%3A+<http%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23>%0D%0APREFIX+strdf%3A+<http%3A%2F%2Fstrdf.di.uoa.gr%2Fontology%23>%0D%0APREFIX+teleios%3A+<http%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FnoaOntology.owl%23>%0D%0APREFIX+gag%3A+<http%3A%2F%2Fwww.semanticweb.org%2Fontologies%2F2011%2FgagKallikratis.rdf%23>%0D%0APREFIX+geo%3A+<http%3A%2F%2Fwww.w3.org%2F2003%2F01%2Fgeo%2Fwgs84_pos%23>%0D%0APREFIX+georss%3A+<http%3A%2F%2Fwww.georss.org%2Fgeorss%2F>%0D%0APREFIX+xsd%3A+<http%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema%23>%0D%0APREFIX+lgdo%3A+<http%3A%2F%2Flinkedgeodata.org%2Fontology%2F>%0D%0APREFIX+gn%3A+<http%3A%2F%2Fwww.geonames.org%2Fontology%23>%0D%0A%0D%0ASELECT+%3Fh+%3FhGeo+%3FhAcqTime+%3FhConfidence+%3FhConfirmation+%3FhProvider+%3FhSensor+%3FhSatellite%0D%0AWHERE+{%0D%0A++++%3Fh++a+noa%3AHotspot+%3B+%23+all%0D%0A++++++++noa%3AhasGeometry+%3FhGeo+%3B+%23+all%0D%0A++++++++noa%3AhasAcquisitionTime+%3FhAcqTime+%3B+%23+all%0D%0A++++++++noa%3AhasConfidence+%3FhConfidence+%3B+%23+all%0D%0A++++++++noa%3AisProducedBy+%3FhProvider+%3B+%23+all%0D%0A++++++++noa%3AhasConfirmation+%3FhConfirmation+%3B+%23+all+(only+value+unknown)%0D%0A++++++++noa%3AisDerivedFromSensor+%3FhSensor+%3B+%23+all%0D%0A++++++++noa%3AisDerivedFromSatellite+%3FhSatellite+.+%23+only+firms+noa%0D%0A++++++++FILTER(+%222007-08-23T00%3A00%3A00%22^^xsd%3AdateTime+<%3D+%3FhAcqTime+%26%26+%3FhAcqTime+<%3D+%222007-08-23T23%3A59%3A59%22^^xsd%3AdateTime+)+.%0D%0A++++++++FILTER(+%3FhProvider+%3D+noa%3Afirms+)+.%0D%0A++++++++FILTER(++strdf%3Acontains(%22POLYGON((21.027+38.36%2C+23.77+38.36%2C+23.77+36.05%2C+21.027+36.05%2C+21.027+38.36))%22^^strdf%3AWKT%2C+%3FhGeo)+)+.%0D%0A}&format=KML]]></value> 1.42 + </constructor-arg> 1.43 + <constructor-arg type="java.lang.String"> 1.44 + <!-- Query2 --> 1.45 + <value><![CDATA[%23+Get+all+ArtificialSurfaces%0D%0A%23+-+in+Pelloponesus%0D%0A%0D%0APREFIX+noa%3A+<http%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FnoaOntology.owl%23>%0D%0APREFIX+clc%3A+<http%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FclcOntology.owl%23>%0D%0APREFIX+rdf%3A+<http%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23>%0D%0APREFIX+rdfs%3A+<http%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23>%0D%0APREFIX+strdf%3A+<http%3A%2F%2Fstrdf.di.uoa.gr%2Fontology%23>%0D%0APREFIX+teleios%3A+<http%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FnoaOntology.owl%23>%0D%0APREFIX+gag%3A+<http%3A%2F%2Fwww.semanticweb.org%2Fontologies%2F2011%2FgagKallikratis.rdf%23>%0D%0APREFIX+geo%3A+<http%3A%2F%2Fwww.w3.org%2F2003%2F01%2Fgeo%2Fwgs84_pos%23>%0D%0APREFIX+georss%3A+<http%3A%2F%2Fwww.georss.org%2Fgeorss%2F>%0D%0APREFIX+xsd%3A+<http%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema%23>%0D%0APREFIX+lgdo%3A+<http%3A%2F%2Flinkedgeodata.org%2Fontology%2F>%0D%0APREFIX+gn%3A+<http%3A%2F%2Fwww.geonames.org%2Fontology%23>%0D%0APREFIX+owl%3A+<http%3A%2F%2Fwww.w3.org%2F2002%2F07%2Fowl%23>%0D%0A%0D%0ASELECT+%3Fa+%3FaGeo%0D%0AWHERE+{%0D%0A++++%3Fa++a+clc%3AArea+%3B%0D%0A++++++++clc%3AhasLandUse+%3FaLandUse+%3B%0D%0A++++++++noa%3AhasGeometry+%3FaGeo+.%0D%0A++++%3FaLandUse+a+%3FaLandUseType+.%0D%0A++++FILTER(+%3FaLandUseType+%3D+clc%3AArtificialSurfaces+)+.%0D%0A++++FILTER(++strdf%3Acontains(%22POLYGON((21.027+38.36%2C+23.77+38.36%2C+23.77+36.05%2C+21.027+36.05%2C+21.027+38.36))%22^^strdf%3AWKT%2C+%3FaGeo)+)+.%0D%0A}&format=KML]]></value> 1.46 + </constructor-arg> 1.47 + <constructor-arg type="java.lang.String"> 1.48 + <!-- Query3 --> 1.49 + <value><![CDATA[PREFIX+noa%3A+<http%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FnoaOntology.owl%23>%0D%0APREFIX+clc%3A+<http%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FclcOntology.owl%23>%0D%0APREFIX+rdf%3A+<http%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23>%0D%0APREFIX+rdfs%3A+<http%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23>%0D%0APREFIX+strdf%3A+<http%3A%2F%2Fstrdf.di.uoa.gr%2Fontology%23>%0D%0APREFIX+teleios%3A+<http%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FnoaOntology.owl%23>%0D%0APREFIX+gag%3A+<http%3A%2F%2Fwww.semanticweb.org%2Fontologies%2F2011%2FgagKallikratis.rdf%23>%0D%0APREFIX+geo%3A+<http%3A%2F%2Fwww.w3.org%2F2003%2F01%2Fgeo%2Fwgs84_pos%23>%0D%0APREFIX+georss%3A+<http%3A%2F%2Fwww.georss.org%2Fgeorss%2F>%0D%0APREFIX+xsd%3A+<http%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema%23>%0D%0APREFIX+lgdo%3A+<http%3A%2F%2Flinkedgeodata.org%2Fontology%2F>%0D%0APREFIX+gn%3A+<http%3A%2F%2Fwww.geonames.org%2Fontology%23>%0D%0A%0D%0ASELECT+%3Fn+%3FnGeo+%3FnType+%3FnLabel%0D%0A{%0D%0A++++%3Fn++a+%3FnType+%3B%0D%0A++++++++geo%3Ageometry+%3FnGeo+%3B%0D%0A++++++++rdfs%3Alabel+%3FnLabel+.%0D%0A++++++++FILTER(+%3FnType+%3D+lgdo%3AHospital+||+%3FnType+%3D+lgdo%3AAerodrome+||+%3FnType+%3D+lgdo%3ARailway+)+.%0D%0A++++++++FILTER(++strdf%3Acontains(%22POLYGON((21.027+38.36%2C+23.77+38.36%2C+23.77+36.05%2C+21.027+36.05%2C+21.027+38.36))%22^^strdf%3AWKT%2C+%3FnGeo)+)+.%0D%0A}&format=KML]]></value> 1.50 + </constructor-arg> 1.51 + <constructor-arg type="java.lang.String"> 1.52 + <!-- Query4 --> 1.53 + <value><![CDATA[%23+Get+all+Perfectures%0D%0A%23+-+in+Pelloponesus%0D%0A%0D%0A%23real%090m31.239s%0D%0A%23user%090m8.060s%0D%0A%23sys%090m0.480s%0D%0A%0D%0APREFIX+noa%3A+<http%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FnoaOntology.owl%23>%0D%0APREFIX+clc%3A+<http%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FclcOntology.owl%23>%0D%0APREFIX+rdf%3A+<http%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23>%0D%0APREFIX+rdfs%3A+<http%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23>%0D%0APREFIX+strdf%3A+<http%3A%2F%2Fstrdf.di.uoa.gr%2Fontology%23>%0D%0APREFIX+teleios%3A+<http%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FnoaOntology.owl%23>%0D%0APREFIX+gag%3A+<http%3A%2F%2Fwww.semanticweb.org%2Fontologies%2F2011%2FgagKallikratis.rdf%23>%0D%0APREFIX+geo%3A+<http%3A%2F%2Fwww.w3.org%2F2003%2F01%2Fgeo%2Fwgs84_pos%23>%0D%0APREFIX+georss%3A+<http%3A%2F%2Fwww.georss.org%2Fgeorss%2F>%0D%0APREFIX+xsd%3A+<http%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema%23>%0D%0APREFIX+lgdo%3A+<http%3A%2F%2Flinkedgeodata.org%2Fontology%2F>%0D%0APREFIX+gn%3A+<http%3A%2F%2Fwww.geonames.org%2Fontology%23>%0D%0A%0D%0ASELECT+%3Fg+%3FgYpesCode+%3FgContainer+%3FgLabel+(+strdf%3Aboundary(%3FgGeog)+as+%3FgBoundary+)%0D%0AWHERE+{%0D%0A++++%3Fg++a+gag%3ADhmos+%3B%0D%0A++++++++noa%3AhasYpesCode+%3FgYpesCode+%3B%0D%0A++++++++gag%3AisPartOf+%3FgContainer+%3B%0D%0A++++++++rdfs%3Alabel+%3FgLabel+%3B%0D%0A++++++++strdf%3AhasGeometry+%3FgGeog+.%0D%0A++++FILTER(++strdf%3Acontains(%22POLYGON((21.027+38.36%2C+23.77+38.36%2C+23.77+36.05%2C+21.027+36.05%2C+21.027+38.36))%22^^strdf%3AWKT%2C+%3FgGeog)+)+.%0D%0A}&format=KML]]></value> 1.54 + </constructor-arg> 1.55 + <constructor-arg type="java.lang.String"> 1.56 + <!-- Query5 --> 1.57 + <value><![CDATA[%23+Get+all+Prefectures%0D%0A%23+-+in+Pelloponesus%0D%0A%0D%0A%23real%090m31.239s%0D%0A%23user%090m8.060s%0D%0A%23sys%090m0.480s%0D%0A%0D%0APREFIX+noa%3A+<http%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FnoaOntology.owl%23>%0D%0APREFIX+clc%3A+<http%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FclcOntology.owl%23>%0D%0APREFIX+rdf%3A+<http%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23>%0D%0APREFIX+rdfs%3A+<http%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23>%0D%0APREFIX+strdf%3A+<http%3A%2F%2Fstrdf.di.uoa.gr%2Fontology%23>%0D%0APREFIX+teleios%3A+<http%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FnoaOntology.owl%23>%0D%0APREFIX+gag%3A+<http%3A%2F%2Fwww.semanticweb.org%2Fontologies%2F2011%2FgagKallikratis.rdf%23>%0D%0APREFIX+geo%3A+<http%3A%2F%2Fwww.w3.org%2F2003%2F01%2Fgeo%2Fwgs84_pos%23>%0D%0APREFIX+georss%3A+<http%3A%2F%2Fwww.georss.org%2Fgeorss%2F>%0D%0APREFIX+xsd%3A+<http%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema%23>%0D%0APREFIX+lgdo%3A+<http%3A%2F%2Flinkedgeodata.org%2Fontology%2F>%0D%0APREFIX+gn%3A+<http%3A%2F%2Fwww.geonames.org%2Fontology%23>%0D%0A%0D%0ASELECT+%3Fg+%3FgYpesCode+%3FgContainer+%3FgLabel+(+strdf%3Aboundary(%3FgGeog)+as+%3FgBoundary+)%0D%0AWHERE+{%0D%0A++++%3Fg++a+gag%3ADhmos+%3B%0D%0A++++++++noa%3AhasYpesCode+%3FgYpesCode+%3B%0D%0A++++++++gag%3AisPartOf+%3FgContainer+%3B%0D%0A++++++++rdfs%3Alabel+%3FgLabel+%3B%0D%0A++++++++strdf%3AhasGeometry+%3FgGeog+.%0D%0A++++FILTER(++strdf%3Acontains(%22POLYGON((21.027+38.36%2C+23.77+38.36%2C+23.77+36.05%2C+21.027+36.05%2C+21.027+38.36))%22^^strdf%3AWKT%2C+%3FgGeog)+)+.%0D%0A}&format=KML]]></value> 1.58 + </constructor-arg> 1.59 + <constructor-arg type="java.lang.String"> 1.60 + <!-- Query6 --> 1.61 + <value><![CDATA[]]></value> 1.62 + </constructor-arg> 1.63 + <constructor-arg type="java.lang.String"> 1.64 + <!-- Query7 --> 1.65 + <value><![CDATA[]]></value> 1.66 + </constructor-arg> 1.67 + <constructor-arg type="java.lang.String"> 1.68 + <!-- Query8 --> 1.69 + <value><![CDATA[]]></value> 1.70 + </constructor-arg> 1.71 + </bean> 1.72 + 1.73 +<!-- <bean id="queryBean" class="eu.earthobservatory.org.StrabonEndpoint.QueryBean"> --> 1.74 +<!-- <property name="strabon" ref="strabonBean" /> --> 1.75 +<!-- </bean> --> 1.76 + 1.77 +</beans>
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 2.2 +++ b/endpoint/WebContent/WEB-INF/web.xml Thu Mar 22 12:34:16 2012 +0100 2.3 @@ -0,0 +1,53 @@ 2.4 +<?xml version="1.0" encoding="UTF-8"?> 2.5 +<web-app id="WebApp_ID" version="2.4" 2.6 + xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 2.7 + xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 2.8 + <display-name>StrabonEndpoint</display-name> 2.9 + <context-param> 2.10 + <param-name>contextConfigLocation</param-name> 2.11 + <param-value>WEB-INF/beans.xml</param-value> 2.12 + </context-param> 2.13 + <listener> 2.14 + <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 2.15 + </listener> 2.16 + 2.17 + <servlet> 2.18 + <display-name>Query</display-name> 2.19 + <servlet-name>Query</servlet-name> 2.20 + <servlet-class>eu.earthobservatory.org.StrabonEndpoint.QueryBean</servlet-class> 2.21 + <load-on-startup>1</load-on-startup> 2.22 + </servlet> 2.23 + <servlet-mapping> 2.24 + <servlet-name>Query</servlet-name> 2.25 + <url-pattern>/Query</url-pattern> 2.26 + </servlet-mapping> 2.27 + 2.28 + <servlet> 2.29 + <display-name>Store</display-name> 2.30 + <servlet-name>Store</servlet-name> 2.31 + <servlet-class>eu.earthobservatory.org.StrabonEndpoint.StoreBean</servlet-class> 2.32 + <load-on-startup>1</load-on-startup> 2.33 + </servlet> 2.34 + <servlet-mapping> 2.35 + <servlet-name>Store</servlet-name> 2.36 + <url-pattern>/Store</url-pattern> 2.37 + </servlet-mapping> 2.38 + 2.39 +<!-- <servlet> --> 2.40 +<!-- <display-name>QueryServlet</display-name> --> 2.41 +<!-- <servlet-name>QueryServlet</servlet-name> --> 2.42 +<!-- <servlet-class>eu.earthobservatory.QueryServlet</servlet-class> --> 2.43 +<!-- <load-on-startup>1</load-on-startup> --> 2.44 +<!-- </servlet> --> 2.45 +<!-- <servlet-mapping> --> 2.46 +<!-- <servlet-name>QueryServlet</servlet-name> --> 2.47 +<!-- <url-pattern>/QueryServlet</url-pattern> --> 2.48 +<!-- </servlet-mapping> --> 2.49 + 2.50 + <session-config> 2.51 + <session-timeout>60</session-timeout> 2.52 + </session-config> 2.53 + <welcome-file-list> 2.54 + <welcome-file>Query</welcome-file> 2.55 + </welcome-file-list> 2.56 +</web-app>
3.1 Binary file endpoint/WebContent/images/base_bg1.gif has changed
4.1 Binary file endpoint/WebContent/images/base_bg2.gif has changed
5.1 Binary file endpoint/WebContent/images/nav1_bg1.gif has changed
6.1 Binary file endpoint/WebContent/images/nav2_bg.gif has changed
7.1 Binary file endpoint/WebContent/images/pixi_white.gif has changed
8.1 Binary file endpoint/WebContent/images/spacer.gif has changed
9.1 Binary file endpoint/WebContent/images/teleios_logo.png has changed
10.1 Binary file endpoint/WebContent/images/top_bg_blue.gif has changed
11.1 Binary file endpoint/WebContent/images/top_twogreys.gif has changed
12.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 12.2 +++ b/endpoint/WebContent/store.jsp Thu Mar 22 12:34:16 2012 +0100 12.3 @@ -0,0 +1,139 @@ 12.4 +<%@ page import = "eu.earthobservatory.org.StrabonEndpoint.StoreBean" %> 12.5 +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 12.6 +<html> 12.7 +<head> 12.8 +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 12.9 +<link rel="stylesheet" href="style.css" type="text/css" /> 12.10 +<style type="text/css"> 12.11 +<!-- 12.12 +.style3 {font-size: 15px} 12.13 +.style4 {font-size: 12px} 12.14 +.style5 {font-size: 15px;font-weight: bold;} 12.15 +.style6 {color: #FF0000} 12.16 +.style7 {font-size: 14px} 12.17 + .hidden { visibility: hidden } 12.18 +--> 12.19 +</style> 12.20 +<title>TELEIOS: Strabon Endpoint</title> 12.21 +</head> 12.22 +<body topmargin="0" leftmargin="0" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF"> 12.23 + <TABLE width="100%" BORDER=0 CELLPADDING=0 CELLSPACING=0> 12.24 + <TR> 12.25 + 12.26 + <TD height="16" background="images/pixi_white.gif"><img src="images/pixi_white.gif" width="16" height="16"></TD> 12.27 + </TR> 12.28 + <TR> 12.29 + <TD height="1" background="images/top_bg_blue.gif"></TD> 12.30 + </TR> 12.31 + <TR> 12.32 + <TD height="60" background="images/nav2_bg.gif"> 12.33 + <table width="100%" border="0"> 12.34 + <tr> 12.35 + <td width="1"><img src="images/nav2_bg.gif" width="1" height="60"></td> 12.36 + <td valign="top" width="80px"><img border="0" src="images/teleios_logo.png"/></td> 12.37 + <td valign="top" align="left"> 12.38 + <span class="logo">Strabon Endpoint</span><br><span class="style4">based on Strabon</span></td> 12.39 + </tr> 12.40 + </table> </TD> 12.41 + </TR> 12.42 + <TR> 12.43 + <TD height="21" background="images/nav1_bg1.gif"> 12.44 + </TD> 12.45 + </TR> 12.46 + <TR> 12.47 + <TD height="2" background="images/top_bg_blue.gif"></TD> 12.48 + </TR> 12.49 +</TABLE> 12.50 + 12.51 +<FORM method="get" action=Store> 12.52 +<INPUT type=hidden name="<%=StoreBean.SRC_REQ%>" value="browser"/> 12.53 + 12.54 +<TABLE border="0" width="100%"> 12.55 +<tr> 12.56 + <td width="90" valign="top" bgcolor="#dfe8f0"> 12.57 + <TABLE border="0" cellspacing="0" cellpadding="0" width="165" id="navigation"> 12.58 + <tr><td width="90" class="style4"><a href="Query" class="navText">Query</a></td></tr> 12.59 + <tr><td width="90" class="style4"><a href="javascript:history.go(0)" class="navText">Clear</a></td></tr> 12.60 + </TABLE> 12.61 + </td> 12.62 + <td width="*" valign="top" > 12.63 + <TABLE cellspacing="5"> 12.64 +<% 12.65 + if (request.getParameter(StoreBean.DATA_ERROR) != null) { 12.66 + %> 12.67 + <TR><TD colspan=3> 12.68 + <CENTER><P style="color: red;">No data provided!</P></CENTER> 12.69 + </TD></TR> 12.70 + <% 12.71 + } 12.72 + 12.73 + if (request.getParameter(StoreBean.FORMAT_ERROR) != null) { 12.74 + %> 12.75 + <TR><TD colspan=3> 12.76 + <CENTER><P style="color: red;">Unknown RDF Format!</P></CENTER> 12.77 + </TD></TR> 12.78 + <% 12.79 + } 12.80 + 12.81 + if (request.getParameter(StoreBean.STORE_ERROR) != null) { 12.82 + %> 12.83 + <TR><TD colspan=3> 12.84 + <CENTER><P style="color: red;">An error occurred while storing input data!</P></CENTER> 12.85 + </TD></TR> 12.86 + <% 12.87 + } 12.88 + 12.89 + if (request.getParameter(StoreBean.STORE_OK) != null) { 12.90 + %> 12.91 + <TR><TD colspan=3> 12.92 + <CENTER><P>Data stored successfully!</P></CENTER> 12.93 + </TD></TR> 12.94 + <% 12.95 + } 12.96 +%> 12.97 + <tr> 12.98 + <!-- direct input form --> 12.99 + <td style="border: 1px dashed #bbbbbb;">Direct Input:</td> 12.100 + <td style="border: 1px dashed #bbbbbb;"> 12.101 + <textarea name="<%=StoreBean.PARAM_DATA%>" rows="15" cols="100"></textarea></td> 12.102 + <td rowspan=4 style="border: 1px dashed #bbbbbb;"> 12.103 + <CENTER>RDF Format:<br/> 12.104 + <SELECT name="<%=StoreBean.PARAM_FORMAT%>"> 12.105 + <% for (String format : StoreBean.registeredFormats) {%> 12.106 + <OPTION value="<%=format%>"><%=format%></OPTION> 12.107 + <%}%> 12.108 + </SELECT> 12.109 + </CENTER> 12.110 + </td> 12.111 + </tr> 12.112 + <tr> 12.113 + <td colspan=2 style="border: 1px dashed #bbbbbb;"><br/> 12.114 + <CENTER> 12.115 + <input type="submit" value="Store Input" name="<%=StoreBean.SUBMIT_INPUT%>" style="width: 400px"/> 12.116 + </CENTER><br/> 12.117 + </td> 12.118 + </tr> 12.119 + 12.120 + <tr> 12.121 + <td style="border: 1px dashed #bbbbbb;">URI Input:</td> 12.122 + <td style="border: 1px dashed #bbbbbb;"> 12.123 + <textarea name="<%=StoreBean.PARAM_DATA_URL%>" rows="1" cols="100"></textarea> 12.124 + </td> 12.125 + </tr> 12.126 + 12.127 + <tr> 12.128 + <td colspan=2 style="border: 1px dashed #bbbbbb;"><br/> 12.129 + <CENTER> 12.130 + <INPUT type="submit" value="Store from URI" name="<%=StoreBean.SUBMIT_URL%>" style="width: 400px"/> 12.131 + </CENTER><br/> 12.132 + </td> 12.133 + </tr> 12.134 + 12.135 + </TABLE> 12.136 + </td> 12.137 +</tr> 12.138 +</TABLE> 12.139 +</FORM> 12.140 +<br/><br/><br/><br/><br/> 12.141 +</BODY> 12.142 +</HTML> 12.143 \ No newline at end of file
13.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 13.2 +++ b/endpoint/WebContent/style.css Thu Mar 22 12:34:16 2012 +0100 13.3 @@ -0,0 +1,101 @@ 13.4 +/* Global Styles */ 13.5 + 13.6 +body { 13.7 + margin:0px; 13.8 + } 13.9 + 13.10 +td { 13.11 + font:11px Arial, Helvetica, sans-serif; 13.12 + color:#222222; 13.13 + font-size: 15px 13.14 + } 13.15 + 13.16 +a { 13.17 + color: darkblue; 13.18 + } 13.19 +a:hover { 13.20 + color: blue; 13.21 + } 13.22 + 13.23 +p { 13.24 + text-align: justify 13.25 +} 13.26 + 13.27 +/* ID Styles */ 13.28 + 13.29 +#navigation td { 13.30 + border-bottom: 1px solid #8da3b1; 13.31 + } 13.32 + 13.33 +#navigation a { 13.34 + font: bold 11px Arial, Helvetica, sans-serif; 13.35 + color: #5f7383; 13.36 + line-height:16px; 13.37 + letter-spacing:.1em; 13.38 + text-decoration: none; 13.39 + display:block; 13.40 + padding:8px 6px 10px 20px; 13.41 + } 13.42 + 13.43 +#navigation a:hover { 13.44 + background: #5f7383; 13.45 + color:#dfe8f0; 13.46 + } 13.47 + 13.48 +.logo { 13.49 + font:24px Arial, Helvetica, sans-serif; 13.50 + color: #333333; 13.51 + letter-spacing:.2em; 13.52 + line-height:30px; 13.53 + } 13.54 + 13.55 +#tagline { 13.56 + font:11px Arial, Helvetica, sans-serif; 13.57 + color: #993300; 13.58 + letter-spacing:.4em; 13.59 + line-height:18px; 13.60 + } 13.61 + 13.62 +/* Class Styles */ 13.63 + 13.64 +.bodyText { 13.65 + font:11px Arial, Helvetica, sans-serif; 13.66 + color:#666666; 13.67 + line-height:20px; 13.68 + margin-top:0px; 13.69 + } 13.70 + 13.71 +.pageName{ 13.72 + font: 18px Arial, Helvetica, sans-serif; 13.73 + color: #99CC66; 13.74 + line-height:26px; 13.75 + letter-spacing:.21em; 13.76 + } 13.77 + 13.78 +.subHeader { 13.79 + font:bold 11px Arial, Helvetica, sans-serif; 13.80 + color: #993300; 13.81 + line-height:22px; 13.82 + letter-spacing:.2em; 13.83 + } 13.84 + 13.85 +.quote { 13.86 + font: 20px Arial, Helvetica, sans-serif; 13.87 + color: #759DA1; 13.88 + line-height:30px; 13.89 + } 13.90 + 13.91 +.smallText { 13.92 + font: 10px Arial, Helvetica, sans-serif; 13.93 + color: #666666; 13.94 + line-height: 22px; 13.95 + } 13.96 + 13.97 +.navText { 13.98 + font: 11px Arial, Helvetica, sans-serif; 13.99 + color: #003366; 13.100 + line-height:16px; 13.101 + letter-spacing:.1em; 13.102 + text-decoration: none; 13.103 + } 13.104 +
14.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 14.2 +++ b/endpoint/pom.xml Thu Mar 22 12:34:16 2012 +0100 14.3 @@ -0,0 +1,217 @@ 14.4 +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 14.5 + <modelVersion>4.0.0</modelVersion> 14.6 + 14.7 + <parent> 14.8 + <groupId>eu.earthobservatory</groupId> 14.9 + <artifactId>strabon</artifactId> 14.10 + <version>3.1.8-SNAPSHOT</version> 14.11 + </parent> 14.12 + 14.13 + <artifactId>strabon-endpoint</artifactId> 14.14 + <packaging>war</packaging> 14.15 + 14.16 + <name>StrabonEndpoint</name> 14.17 + <description>An endpoint for Strabon</description> 14.18 + 14.19 + <properties> 14.20 + <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir> 14.21 + </properties> 14.22 + 14.23 + <dependencies> 14.24 + <dependency> 14.25 + <groupId>javax</groupId> 14.26 + <artifactId>javaee-web-api</artifactId> 14.27 + <scope>provided</scope> 14.28 + </dependency> 14.29 + 14.30 + <dependency> 14.31 + <groupId>eu.earthobservatory</groupId> 14.32 + <artifactId>strabon-runtime</artifactId> 14.33 + <type>jar</type> 14.34 + <scope>compile</scope> 14.35 + </dependency> 14.36 + 14.37 + <!-- GeoTools --> 14.38 + <dependency> 14.39 + <groupId>org.geotools.xsd</groupId> 14.40 + <artifactId>gt-xsd-kml</artifactId> 14.41 + </dependency> 14.42 + 14.43 + <dependency> 14.44 + <groupId>org.geotools</groupId> 14.45 + <artifactId>gt-xml</artifactId> 14.46 + </dependency> 14.47 + 14.48 + <dependency> 14.49 + <groupId>org.geotools</groupId> 14.50 + <artifactId>gt-epsg-hsql</artifactId> 14.51 + </dependency> 14.52 + <dependency> 14.53 + <groupId>org.geotools</groupId> 14.54 + <artifactId>gt-shapefile</artifactId> 14.55 + </dependency> 14.56 + 14.57 + <!-- Testing: JUnit --> 14.58 + <dependency> 14.59 + <groupId>junit</groupId> 14.60 + <artifactId>junit</artifactId> 14.61 + <scope>test</scope> 14.62 + </dependency> 14.63 + 14.64 + <!-- JDBC Drivers --> 14.65 + 14.66 + <dependency> 14.67 + <groupId>postgresql</groupId> 14.68 + <artifactId>postgresql</artifactId> 14.69 + </dependency> 14.70 + 14.71 + <!-- Spring framework --> 14.72 + <dependency> 14.73 + <groupId>org.springframework</groupId> 14.74 + <artifactId>spring-webmvc</artifactId> 14.75 + <exclusions> 14.76 + <exclusion> 14.77 + <groupId>commons-logging</groupId> 14.78 + <artifactId>commons-logging</artifactId> 14.79 + </exclusion> 14.80 + </exclusions> 14.81 + </dependency> 14.82 + <dependency> 14.83 + <groupId>org.springframework</groupId> 14.84 + <artifactId>spring-aop</artifactId> 14.85 + <exclusions> 14.86 + <exclusion> 14.87 + <groupId>commons-logging</groupId> 14.88 + <artifactId>commons-logging</artifactId> 14.89 + </exclusion> 14.90 + </exclusions> 14.91 + </dependency> 14.92 + 14.93 + <dependency> 14.94 + <groupId>org.apache.cxf</groupId> 14.95 + <artifactId>cxf-rt-frontend-jaxws</artifactId> 14.96 + </dependency> 14.97 + 14.98 + <dependency> 14.99 + <groupId>org.apache.cxf</groupId> 14.100 + <artifactId>cxf-rt-transports-http</artifactId> 14.101 + </dependency> 14.102 + 14.103 + <dependency> 14.104 + <groupId>org.apache.cxf</groupId> 14.105 + <artifactId>cxf-rt-transports-http-jetty</artifactId> 14.106 + </dependency> 14.107 + 14.108 + <dependency> 14.109 + <groupId>commons-validator</groupId> 14.110 + <artifactId>commons-validator</artifactId> 14.111 + </dependency> 14.112 + </dependencies> 14.113 + 14.114 + <build> 14.115 + <plugins> 14.116 + <plugin> 14.117 + <groupId>org.apache.maven.plugins</groupId> 14.118 + <artifactId>maven-compiler-plugin</artifactId> 14.119 + <version>2.3.2</version> 14.120 + <configuration> 14.121 + <source>1.6</source> 14.122 + <target>1.6</target> 14.123 + <compilerArguments> 14.124 + <endorseddirs>${endorsed.dir}</endorseddirs> 14.125 + </compilerArguments> 14.126 + </configuration> 14.127 + </plugin> 14.128 + <plugin> 14.129 + <groupId>org.apache.maven.plugins</groupId> 14.130 + <artifactId>maven-war-plugin</artifactId> 14.131 + <version>2.1.1</version> 14.132 + <configuration> 14.133 + <webXml>${basedir}/WebContent/WEB-INF/web.xml</webXml> 14.134 + <webResources> 14.135 + <resource> 14.136 + <targetPath>/WEB-INF</targetPath> 14.137 + <directory>${basedir}/WebContent/WEB-INF</directory> 14.138 + <includes> 14.139 + <include>lib/**</include> 14.140 + </includes> 14.141 + </resource> 14.142 + 14.143 + <resource> 14.144 + <targetPath>/WEB-INF</targetPath> 14.145 + <directory>${basedir}</directory> 14.146 + <includes> 14.147 + <include>wsdl/**</include> 14.148 + </includes> 14.149 + </resource> 14.150 + 14.151 + <resource> 14.152 + <targetPath>/WEB-INF</targetPath> 14.153 + <directory>${basedir}/WebContent/WEB-INF</directory> 14.154 + <includes> 14.155 + <include>beans.xml</include> 14.156 + </includes> 14.157 + </resource> 14.158 + 14.159 + <resource> 14.160 + <targetPath>/</targetPath> 14.161 + <directory>${basedir}/WebContent</directory> 14.162 + <includes> 14.163 + <include>style.css</include> 14.164 + <include>store.jsp</include> 14.165 + </includes> 14.166 + </resource> 14.167 + 14.168 + <resource> 14.169 + <targetPath>/</targetPath> 14.170 + <directory>${basedir}/WebContent</directory> 14.171 + <includes> 14.172 + <include>images/**</include> 14.173 + </includes> 14.174 + </resource> 14.175 + </webResources> 14.176 + <!-- 14.177 + <archive> 14.178 + <manifest> 14.179 + <addClasspath>true</addClasspath> 14.180 + </manifest> 14.181 + </archive> 14.182 + --> 14.183 + </configuration> 14.184 + </plugin> 14.185 + <plugin> 14.186 + <groupId>org.apache.maven.plugins</groupId> 14.187 + <artifactId>maven-dependency-plugin</artifactId> 14.188 + <version>2.1</version> 14.189 + <executions> 14.190 + <execution> 14.191 + <phase>validate</phase> 14.192 + <goals> 14.193 + <goal>copy</goal> 14.194 + </goals> 14.195 + <configuration> 14.196 + <outputDirectory>${endorsed.dir}</outputDirectory> 14.197 + <silent>true</silent> 14.198 + <artifactItems> 14.199 + <artifactItem> 14.200 + <groupId>javax</groupId> 14.201 + <artifactId>javaee-endorsed-api</artifactId> 14.202 + <version>6.0</version> 14.203 + <type>jar</type> 14.204 + </artifactItem> 14.205 + </artifactItems> 14.206 + </configuration> 14.207 + </execution> 14.208 + </executions> 14.209 + </plugin> 14.210 + <plugin> 14.211 + <artifactId>maven-release-plugin</artifactId> 14.212 + <version>2.2.2</version> 14.213 + <configuration> 14.214 + <tagNameFormat>v@{project.version}</tagNameFormat> 14.215 + <autoVersionSubmodules>true</autoVersionSubmodules> 14.216 + </configuration> 14.217 + </plugin> 14.218 + </plugins> 14.219 + </build> 14.220 +</project>
15.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 15.2 +++ b/endpoint/pom.xml~ Thu Mar 22 12:34:16 2012 +0100 15.3 @@ -0,0 +1,212 @@ 15.4 +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 15.5 + <modelVersion>4.0.0</modelVersion> 15.6 + 15.7 + <groupId>eu.earthobservatory</groupId> 15.8 + <artifactId>StrabonEndpoint</artifactId> 15.9 + <version>0.0.9-SNAPSHOT</version> 15.10 + <packaging>war</packaging> 15.11 + 15.12 + <name>StrabonEndpoint</name> 15.13 + 15.14 + <properties> 15.15 + <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir> 15.16 + </properties> 15.17 + 15.18 + <dependencies> 15.19 + <dependency> 15.20 + <groupId>javax</groupId> 15.21 + <artifactId>javaee-web-api</artifactId> 15.22 + <scope>provided</scope> 15.23 + </dependency> 15.24 + 15.25 + <dependency> 15.26 + <groupId>eu.earthobservatory</groupId> 15.27 + <artifactId>strabon-runtime</artifactId> 15.28 + <type>jar</type> 15.29 + <scope>compile</scope> 15.30 + </dependency> 15.31 + 15.32 + <!-- GeoTools --> 15.33 + <dependency> 15.34 + <groupId>org.geotools.xsd</groupId> 15.35 + <artifactId>gt-xsd-kml</artifactId> 15.36 + </dependency> 15.37 + 15.38 + <dependency> 15.39 + <groupId>org.geotools</groupId> 15.40 + <artifactId>gt-xml</artifactId> 15.41 + </dependency> 15.42 + 15.43 + <dependency> 15.44 + <groupId>org.geotools</groupId> 15.45 + <artifactId>gt-epsg-hsql</artifactId> 15.46 + </dependency> 15.47 + <dependency> 15.48 + <groupId>org.geotools</groupId> 15.49 + <artifactId>gt-shapefile</artifactId> 15.50 + </dependency> 15.51 + 15.52 + <!-- Testing: JUnit --> 15.53 + <dependency> 15.54 + <groupId>junit</groupId> 15.55 + <artifactId>junit</artifactId> 15.56 + <scope>test</scope> 15.57 + </dependency> 15.58 + 15.59 + <!-- JDBC Drivers --> 15.60 + 15.61 + <dependency> 15.62 + <groupId>postgresql</groupId> 15.63 + <artifactId>postgresql</artifactId> 15.64 + </dependency> 15.65 + 15.66 + <!-- Spring framework --> 15.67 + <dependency> 15.68 + <groupId>org.springframework</groupId> 15.69 + <artifactId>spring-webmvc</artifactId> 15.70 + <exclusions> 15.71 + <exclusion> 15.72 + <groupId>commons-logging</groupId> 15.73 + <artifactId>commons-logging</artifactId> 15.74 + </exclusion> 15.75 + </exclusions> 15.76 + </dependency> 15.77 + <dependency> 15.78 + <groupId>org.springframework</groupId> 15.79 + <artifactId>spring-aop</artifactId> 15.80 + <exclusions> 15.81 + <exclusion> 15.82 + <groupId>commons-logging</groupId> 15.83 + <artifactId>commons-logging</artifactId> 15.84 + </exclusion> 15.85 + </exclusions> 15.86 + </dependency> 15.87 + 15.88 + <dependency> 15.89 + <groupId>org.apache.cxf</groupId> 15.90 + <artifactId>cxf-rt-frontend-jaxws</artifactId> 15.91 + </dependency> 15.92 + 15.93 + <dependency> 15.94 + <groupId>org.apache.cxf</groupId> 15.95 + <artifactId>cxf-rt-transports-http</artifactId> 15.96 + </dependency> 15.97 + 15.98 + <dependency> 15.99 + <groupId>org.apache.cxf</groupId> 15.100 + <artifactId>cxf-rt-transports-http-jetty</artifactId> 15.101 + </dependency> 15.102 + 15.103 + <dependency> 15.104 + <groupId>commons-validator</groupId> 15.105 + <artifactId>commons-validator</artifactId> 15.106 + </dependency> 15.107 + </dependencies> 15.108 + 15.109 + <build> 15.110 + <plugins> 15.111 + <plugin> 15.112 + <groupId>org.apache.maven.plugins</groupId> 15.113 + <artifactId>maven-compiler-plugin</artifactId> 15.114 + <version>2.3.2</version> 15.115 + <configuration> 15.116 + <source>1.6</source> 15.117 + <target>1.6</target> 15.118 + <compilerArguments> 15.119 + <endorseddirs>${endorsed.dir}</endorseddirs> 15.120 + </compilerArguments> 15.121 + </configuration> 15.122 + </plugin> 15.123 + <plugin> 15.124 + <groupId>org.apache.maven.plugins</groupId> 15.125 + <artifactId>maven-war-plugin</artifactId> 15.126 + <version>2.1.1</version> 15.127 + <configuration> 15.128 + <webXml>${basedir}/WebContent/WEB-INF/web.xml</webXml> 15.129 + <webResources> 15.130 + <resource> 15.131 + <targetPath>/WEB-INF</targetPath> 15.132 + <directory>${basedir}/WebContent/WEB-INF</directory> 15.133 + <includes> 15.134 + <include>lib/**</include> 15.135 + </includes> 15.136 + </resource> 15.137 + 15.138 + <resource> 15.139 + <targetPath>/WEB-INF</targetPath> 15.140 + <directory>${basedir}</directory> 15.141 + <includes> 15.142 + <include>wsdl/**</include> 15.143 + </includes> 15.144 + </resource> 15.145 + 15.146 + <resource> 15.147 + <targetPath>/WEB-INF</targetPath> 15.148 + <directory>${basedir}/WebContent/WEB-INF</directory> 15.149 + <includes> 15.150 + <include>beans.xml</include> 15.151 + </includes> 15.152 + </resource> 15.153 + 15.154 + <resource> 15.155 + <targetPath>/</targetPath> 15.156 + <directory>${basedir}/WebContent</directory> 15.157 + <includes> 15.158 + <include>style.css</include> 15.159 + <include>store.jsp</include> 15.160 + </includes> 15.161 + </resource> 15.162 + 15.163 + <resource> 15.164 + <targetPath>/</targetPath> 15.165 + <directory>${basedir}/WebContent</directory> 15.166 + <includes> 15.167 + <include>images/**</include> 15.168 + </includes> 15.169 + </resource> 15.170 + </webResources> 15.171 + <!-- 15.172 + <archive> 15.173 + <manifest> 15.174 + <addClasspath>true</addClasspath> 15.175 + </manifest> 15.176 + </archive> 15.177 + --> 15.178 + </configuration> 15.179 + </plugin> 15.180 + <plugin> 15.181 + <groupId>org.apache.maven.plugins</groupId> 15.182 + <artifactId>maven-dependency-plugin</artifactId> 15.183 + <version>2.1</version> 15.184 + <executions> 15.185 + <execution> 15.186 + <phase>validate</phase> 15.187 + <goals> 15.188 + <goal>copy</goal> 15.189 + </goals> 15.190 + <configuration> 15.191 + <outputDirectory>${endorsed.dir}</outputDirectory> 15.192 + <silent>true</silent> 15.193 + <artifactItems> 15.194 + <artifactItem> 15.195 + <groupId>javax</groupId> 15.196 + <artifactId>javaee-endorsed-api</artifactId> 15.197 + <version>6.0</version> 15.198 + <type>jar</type> 15.199 + </artifactItem> 15.200 + </artifactItems> 15.201 + </configuration> 15.202 + </execution> 15.203 + </executions> 15.204 + </plugin> 15.205 + <plugin> 15.206 + <artifactId>maven-release-plugin</artifactId> 15.207 + <version>2.2.2</version> 15.208 + <configuration> 15.209 + <tagNameFormat>v@{project.version}</tagNameFormat> 15.210 + <autoVersionSubmodules>true</autoVersionSubmodules> 15.211 + </configuration> 15.212 + </plugin> 15.213 + </plugins> 15.214 + </build> 15.215 +</project>
16.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 16.2 +++ b/endpoint/src/main/java/eu/earthobservatory/org/StrabonEndpoint/QueryBean.java Thu Mar 22 12:34:16 2012 +0100 16.3 @@ -0,0 +1,523 @@ 16.4 +package eu.earthobservatory.org.StrabonEndpoint; 16.5 + 16.6 +import java.io.BufferedWriter; 16.7 +import java.io.File; 16.8 +import java.io.FileWriter; 16.9 +import java.io.IOException; 16.10 +import java.io.PrintWriter; 16.11 +import java.math.BigInteger; 16.12 +import java.net.InetAddress; 16.13 +import java.security.SecureRandom; 16.14 +import java.util.Date; 16.15 +import java.util.Iterator; 16.16 + 16.17 +import javax.servlet.ServletConfig; 16.18 +import javax.servlet.ServletContext; 16.19 +import javax.servlet.ServletException; 16.20 +import javax.servlet.http.HttpServlet; 16.21 +import javax.servlet.http.HttpServletRequest; 16.22 +import javax.servlet.http.HttpServletResponse; 16.23 + 16.24 +import org.apache.commons.httpclient.HttpClient; 16.25 +import org.apache.commons.httpclient.HttpException; 16.26 +import org.apache.commons.httpclient.HttpMethod; 16.27 +import org.apache.commons.httpclient.NameValuePair; 16.28 +import org.apache.commons.httpclient.methods.GetMethod; 16.29 +import org.apache.commons.io.FileUtils; 16.30 +import org.openrdf.query.MalformedQueryException; 16.31 +import org.openrdf.query.QueryEvaluationException; 16.32 +import org.openrdf.query.TupleQueryResultHandlerException; 16.33 +import org.openrdf.repository.RepositoryException; 16.34 +import org.springframework.web.context.WebApplicationContext; 16.35 +import org.springframework.web.context.support.WebApplicationContextUtils; 16.36 + 16.37 + 16.38 +public class QueryBean extends HttpServlet { 16.39 + 16.40 + private static final long serialVersionUID = -378175118289907707L; 16.41 + 16.42 + public QueryBean() {} 16.43 + 16.44 + public void doGet(HttpServletRequest request, HttpServletResponse response) 16.45 + throws ServletException, IOException 16.46 + { 16.47 + doPost(request, response); 16.48 + } 16.49 + 16.50 + public void doPost(HttpServletRequest request, HttpServletResponse response) 16.51 + throws ServletException, IOException 16.52 + { 16.53 + final class DataHive{ 16.54 + private String format; 16.55 + private String SPARQLQuery; 16.56 + private String errorMessage; 16.57 + 16.58 + DataHive(){ 16.59 + this.format = null; 16.60 + this.SPARQLQuery = null; 16.61 + this.errorMessage = null; 16.62 + } 16.63 + 16.64 + public String getTinyURL(String fullURL){ 16.65 + String tinyUrl = null; 16.66 + 16.67 + try { 16.68 + HttpClient httpclient = new HttpClient(); 16.69 + HttpMethod method = new GetMethod("http://tinyurl.com/api-create.php"); 16.70 + method.setQueryString(new NameValuePair[]{new NameValuePair("url",fullURL)}); 16.71 + httpclient.executeMethod(method); 16.72 + tinyUrl = method.getResponseBodyAsString(); 16.73 + method.releaseConnection(); 16.74 + 16.75 + } catch (HttpException e) { 16.76 + // TODO Auto-generated catch block 16.77 + e.printStackTrace(); 16.78 + } catch (IOException e) { 16.79 + // TODO Auto-generated catch block 16.80 + e.printStackTrace(); 16.81 + } 16.82 + 16.83 + return tinyUrl; 16.84 + } 16.85 + 16.86 + public String getSPARQLQuery() { 16.87 + return SPARQLQuery; 16.88 + } 16.89 + 16.90 + public void setSPARQLQuery(String sPARQLQuery) { 16.91 + SPARQLQuery = sPARQLQuery; 16.92 + } 16.93 + 16.94 + public String getFormat() { 16.95 + return format; 16.96 + } 16.97 + 16.98 + public void setFormat(String fFormat) { 16.99 + format = fFormat; 16.100 + } 16.101 + 16.102 + public String getErrorMessage() { 16.103 + return errorMessage; 16.104 + } 16.105 + 16.106 + public void setErrorMessage(String error) { 16.107 + this.errorMessage = error; 16.108 + } 16.109 + } 16.110 + 16.111 +// System.out.println("\n\n\n\n\n\n\nrequest: "); 16.112 +// System.out.println("HEADERS"); 16.113 +// Enumeration headerNames = request.getHeaderNames(); 16.114 +// while(headerNames.hasMoreElements()) { 16.115 +// String headerName = (String)headerNames.nextElement(); 16.116 +// System.out.println(headerName + ":" +request.getHeader(headerName)); 16.117 +// } 16.118 +// System.out.println("ATTRIBUTES"); 16.119 +// Enumeration attributeNames = request.getAttributeNames(); 16.120 +// while(attributeNames.hasMoreElements()) { 16.121 +// String attributeName = (String)attributeNames.nextElement(); 16.122 +// System.out.println(attributeName + ":" +request.getAttribute(attributeName).toString()); 16.123 +// } 16.124 +// Enumeration paramNames = request.getParameterNames(); 16.125 +// while(paramNames.hasMoreElements()) { 16.126 +// String paramName = (String)paramNames.nextElement(); 16.127 +// System.out.print(paramName + ":"); 16.128 +// String[] paramValues = request.getParameterValues(paramName); 16.129 +// if (paramValues.length == 1) { 16.130 +// String paramValue = paramValues[0]; 16.131 +// if (paramValue.length() == 0) 16.132 +// System.out.print("No Value"); 16.133 +// else 16.134 +// System.out.print(paramValue + " "); 16.135 +// } else { 16.136 +// for(int i=0; i<paramValues.length; i++) { 16.137 +// System.out.println(":" + paramValues[i]); 16.138 +// } 16.139 +// } 16.140 +// } 16.141 +// 16.142 +// System.out.println("\n\n\n\n\nREQUEST.CONTENTTYPE='"+request.getContentType()+"'\n\n\n\n\n"); 16.143 + 16.144 + DataHive hive = new DataHive(); 16.145 + 16.146 + hive.setSPARQLQuery(request.getParameter("SPARQLQuery")); 16.147 + //System.out.println("SPARQLQuery = " + this.SPARQLQuery); 16.148 + 16.149 + String reqFormat = (request.getParameter("format") == null) ? "" : request.getParameter("format"); 16.150 + String reqAccept = (request.getHeader("accept") == null) ? "" : request.getHeader("accept"); 16.151 + String reqFuncionality = (request.getParameter("submit") == null) ? "" : request.getParameter("submit"); 16.152 + 16.153 + // check whether Update submit button was fired 16.154 + boolean isUpdate = (reqFuncionality.equals("Update") ? true:false); 16.155 + 16.156 + if ((reqFormat == "") && (reqAccept == "")) { 16.157 + hive.setFormat("HTML"); 16.158 + response.setContentType("text/html; charset=UTF-8"); 16.159 + } else if (reqAccept.contains("application/vnd.google-earth.kml+xml")) { 16.160 + response.setContentType("application/vnd.google-earth.kml+xml; charset=UTF-8"); 16.161 + hive.setFormat("KML"); 16.162 + } else if (reqAccept.contains("application/sparql-results+xml")) { 16.163 + response.setContentType("application/sparql-results+xml; charset=UTF-8"); 16.164 + hive.setFormat("XML"); 16.165 + } else if (reqAccept.contains("text/xml")) { 16.166 + response.setContentType("text/xml; charset=UTF-8"); 16.167 + hive.setFormat("XML"); 16.168 + } else if (reqFormat.equalsIgnoreCase("KML")) { 16.169 + response.setContentType("application/vnd.google-earth.kml+xml; charset=UTF-8"); 16.170 + hive.setFormat("KML"); 16.171 + } else if (reqFormat.equalsIgnoreCase("SPARQLRESULTS")) { 16.172 + response.setContentType("application/sparql-results+xml; charset=UTF-8"); 16.173 + hive.setFormat("XML"); 16.174 + } else if (reqFormat.equalsIgnoreCase("XML")) { 16.175 + response.setContentType("text/xml; charset=UTF-8"); 16.176 + hive.setFormat("XML"); 16.177 + } else { 16.178 + response.setContentType("text/html; charset=UTF-8"); 16.179 + hive.setFormat("HTML"); 16.180 + } 16.181 + //System.out.println("\n\n\n\n\format='"+this.format+"'\n\n\n\n\n"); 16.182 + 16.183 + ServletContext context = getServletContext(); 16.184 + WebApplicationContext applicationContext = WebApplicationContextUtils.getWebApplicationContext(context); 16.185 + StrabonBeanWrapper strabonWrapper = (StrabonBeanWrapper)applicationContext.getBean("strabonBean"); 16.186 + 16.187 + if (isUpdate) { 16.188 + try { 16.189 + strabonWrapper.getStrabon().update(hive.getSPARQLQuery(), strabonWrapper.getStrabon().getSailRepoConnection()); 16.190 + response.setStatus(HttpServletResponse.SC_OK); 16.191 + 16.192 + } catch(MalformedQueryException e) { 16.193 + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); 16.194 + PrintWriter out = response.getWriter(); 16.195 + e.printStackTrace(out); 16.196 + } 16.197 + 16.198 + return; 16.199 + } 16.200 + 16.201 + PrintWriter out = response.getWriter(); 16.202 + 16.203 + if ((hive.getFormat().equalsIgnoreCase("KML"))) { 16.204 + //try { 16.205 + // String url = "http://www.google.com"; 16.206 + // java.awt.Desktop.getDesktop().browse(java.net.URI.create(url)); 16.207 + // } 16.208 + // catch (java.io.IOException e) { 16.209 + // System.out.println(e.getMessage()); 16.210 + // } 16.211 + 16.212 + StringBuilder errorMessage = new StringBuilder (); 16.213 + String answer = evaluateQuery(strabonWrapper, hive.getFormat(), reqFuncionality, hive.getSPARQLQuery(), errorMessage); 16.214 + hive.setErrorMessage(errorMessage.toString()); 16.215 + SecureRandom random = new SecureRandom(); 16.216 + String temp = new BigInteger(130, random).toString(32); 16.217 + 16.218 + try{ 16.219 + Date date = new Date(); 16.220 + 16.221 + FileUtils.forceMkdir(new File((String) context.getRealPath("/") + "/../ROOT/tmp/")); 16.222 + 16.223 + Iterator it = FileUtils.iterateFiles(new File((String) context.getRealPath("/") + "/../ROOT/tmp/"), null, false); 16.224 + while(it.hasNext()){ 16.225 + File tbd = new File(((File) it.next()).getAbsolutePath()); 16.226 + if (FileUtils.isFileOlder( new File(tbd.getAbsolutePath()), date.getTime())){ 16.227 + FileUtils.forceDelete(new File(tbd.getAbsolutePath())); 16.228 + } 16.229 + } 16.230 + 16.231 + File file =new File((String) context.getRealPath("/") + "/../ROOT/tmp/" + temp + ".kml"); 16.232 + 16.233 + //if file doesnt exists, then create it 16.234 + if(!file.exists()){ 16.235 + file.createNewFile(); 16.236 + } 16.237 + 16.238 + FileWriter fw = new FileWriter((String) context.getRealPath("/") + "/../ROOT/tmp/" + temp + ".kml"); 16.239 + BufferedWriter bw = new BufferedWriter(fw); 16.240 + bw.write(answer); 16.241 + bw.close(); 16.242 + //FileUtils.forceDeleteOnExit(new File((String) context.getRealPath("/") + "/../ROOT/tmp/" + temp + ".kml")); 16.243 + 16.244 + //System.out.println("Done"); 16.245 + 16.246 + }catch(IOException e){ 16.247 + e.printStackTrace(); 16.248 + } 16.249 + 16.250 + response.setContentType("application/vnd.google-earth.kml+xml; charset=UTF-8"); 16.251 + response.setDateHeader("Expires", 0); 16.252 + InetAddress thisIp =InetAddress.getLocalHost(); 16.253 + response.setHeader("Location", request.getScheme() + "://" + request.getServerName() +":" + request.getServerPort() +"/tmp/" + temp + ".kml"); 16.254 + response.setStatus(301); 16.255 + 16.256 + //out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">"); 16.257 + //out.println("<html>"); 16.258 + //out.println("<head>"); 16.259 + //out.println("<title>:)</title>"); 16.260 + //out.println("<meta http-equiv=\"REFRESH\" content=\"0;url=http://maps.google.com/maps?q=http://localhost:8080/tmp/temp.kml\"></HEAD>"); 16.261 + //out.println("<BODY>"); 16.262 + //out.println("Redirection WILL occur!"); 16.263 + //out.println("</BODY>"); 16.264 + //out.println("</HTML>"); 16.265 + //out.println(answer); 16.266 + 16.267 + 16.268 + String pathToKML = ""; 16.269 + //InetAddress thisIp = InetAddress.getLocalHost(); 16.270 + 16.271 + if (answer!="") 16.272 + pathToKML = request.getScheme() + "://" + request.getServerName() +":" + request.getServerPort() +"/tmp/" + temp + ".kml";//"http://dl.dropbox.com/u/19752551/dlr.kml"; 16.273 + 16.274 + appendHTML1a(out,pathToKML); 16.275 + 16.276 + appendHTMLQ(out, strabonWrapper); 16.277 + 16.278 + appendHTML1b(out); 16.279 + 16.280 + if (hive.getSPARQLQuery() != null) 16.281 + out.write(hive.getSPARQLQuery()); 16.282 + 16.283 + appendHTML2(out); 16.284 + 16.285 + out.append("</table></td></tr></table>"); 16.286 + 16.287 + appendHTML4(out); 16.288 + if (answer!="") 16.289 + //out.append("<div id=\"map_canvas\"></div>"); 16.290 + out.append(""); 16.291 + appendHTML5(out); 16.292 + } 16.293 + else if ((hive.getFormat().equalsIgnoreCase("XML"))) { 16.294 + response.setContentType("text/xml; charset=UTF-8"); 16.295 + StringBuilder errorMessage = new StringBuilder (); 16.296 + String answer = evaluateQuery(strabonWrapper, hive.getFormat(), reqFuncionality, hive.getSPARQLQuery(), errorMessage); 16.297 + hive.setErrorMessage(errorMessage.toString()); 16.298 + out.println(answer); 16.299 + 16.300 + } 16.301 + else { 16.302 + 16.303 + appendHTML1a(out,""); 16.304 + 16.305 + appendHTMLQ(out, strabonWrapper); 16.306 + 16.307 + appendHTML1b(out); 16.308 + 16.309 + if (hive.getSPARQLQuery() != null) 16.310 + out.write(hive.getSPARQLQuery()); 16.311 + 16.312 + appendHTML2(out); 16.313 + 16.314 + String answer = ""; 16.315 + if (hive.getSPARQLQuery() != null) { 16.316 + StringBuilder errorMessage = new StringBuilder (); 16.317 + answer = evaluateQuery(strabonWrapper, hive.getFormat(), reqFuncionality, hive.getSPARQLQuery(), errorMessage); 16.318 + hive.setErrorMessage(errorMessage.toString()); 16.319 + if (hive.getErrorMessage() != null) { 16.320 + appendHTML3(out, hive.getErrorMessage()); 16.321 + } 16.322 + } 16.323 + 16.324 + out.append("</table></td></tr></table>"); 16.325 + if (!answer.equals("")) { 16.326 + out.println("<style type=\"text/css\">"); 16.327 + out.println("table.result {border:1px solid #777777;}"); 16.328 + out.println("table.result tr {border:1px dashed grey;}"); 16.329 + out.println("table.result th {background-color:grey;color:black;}"); 16.330 + out.println("</style>"); 16.331 + out.println("<table class=\"result\">"); 16.332 + out.append(answer); 16.333 + out.append("</table>"); 16.334 + } 16.335 + appendHTML4(out); 16.336 + appendHTML5(out); 16.337 + } 16.338 + out.flush(); 16.339 + } 16.340 + 16.341 + public void init(ServletConfig servletConfig) throws ServletException { 16.342 + super.init(servletConfig); 16.343 + } 16.344 + 16.345 + public String evaluateQuery(StrabonBeanWrapper strabonWrapper, String resultFormat, String reqFunctionality, String SPARQLQuery, StringBuilder errorMessage) { 16.346 + String answer = ""; 16.347 + 16.348 +// System.out.println("evaluateQuery: will call wrapper. Query = " + this.SPARQLQuery); 16.349 +// System.out.println("evaluateQuery: will call wrapper. result = " + resultFormat); 16.350 + 16.351 + try { 16.352 + if (SPARQLQuery == null) { 16.353 + answer = ""; 16.354 + } else { 16.355 + //System.out.println("evaluateQuery: Calling..."); 16.356 + if (reqFunctionality.equals("Update")) { 16.357 + //if (((String)this.SPARQLQuery).toLowerCase().contains("insert") || ((String)this.SPARQLQuery).toLowerCase().contains("delete")) { 16.358 + answer = (String)strabonWrapper.update(SPARQLQuery, resultFormat); 16.359 + } 16.360 + else{ 16.361 + answer = (String)strabonWrapper.query(SPARQLQuery, resultFormat); 16.362 + } 16.363 + //System.out.println("evaluateQuery: Called..."); 16.364 + } 16.365 + } catch (MalformedQueryException e) { 16.366 + e.printStackTrace(); 16.367 + errorMessage.append(e.getMessage()); 16.368 + } catch (RepositoryException e) { 16.369 + e.printStackTrace(); 16.370 + errorMessage.append(e.getMessage()); 16.371 + } catch (QueryEvaluationException e) { 16.372 + e.printStackTrace(); 16.373 + errorMessage.append(e.getMessage()); 16.374 + } catch (TupleQueryResultHandlerException e) { 16.375 + e.printStackTrace(); 16.376 + errorMessage.append(e.getMessage()); 16.377 + } catch (IOException e) { 16.378 + e.printStackTrace(); 16.379 + errorMessage.append(e.getMessage()); 16.380 + } catch (ClassNotFoundException e) { 16.381 + e.printStackTrace(); 16.382 + errorMessage.append(e.getMessage()); 16.383 + } catch (Exception e) { 16.384 + e.printStackTrace(); 16.385 + errorMessage.append(e.getMessage()); 16.386 + } 16.387 + 16.388 + //System.out.println("evaluateQuery: called wrapper. answer = " + answer); 16.389 + //System.out.println("evaluateQuery: called wrapper. error = " + ((this.errorMessage == null) ? "" : this.errorMessage)); 16.390 + 16.391 + 16.392 + return answer; 16.393 + } 16.394 + 16.395 + protected static void appendHTML1a(PrintWriter out, String pathToKML) { 16.396 + out.println("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">"); 16.397 + out.println("<html>"); 16.398 + out.println("<head>"); 16.399 + out.println("<meta name=\"viewport\" content=\"initial-scale=1.0, user-scalable=no\" />"); 16.400 + out.println("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />"); 16.401 + out.println("<link href=\"http://code.google.com/apis/maps/documentation/javascript/examples/default.css\" rel=\"stylesheet\" type=\"text/css\" />"); 16.402 + out.println("<link rel=\"stylesheet\" href=\"style.css\" type=\"text/css\" /> "); 16.403 + out.println("<script type=\"text/javascript\" src=\"http://maps.googleapis.com/maps/api/js?sensor=false\"></script>"); 16.404 + out.println("<script type=\"text/javascript\">"); 16.405 + out.println("function initialize() {"); 16.406 + out.println(" var chicago = new google.maps.LatLng(41.875696,-87.624207);"); 16.407 + out.println(" var myOptions = {"); 16.408 + out.println(" zoom: 11,"); 16.409 + out.println(" center: chicago,"); 16.410 + out.println(" mapTypeId: google.maps.MapTypeId.ROADMAP"); 16.411 + out.println(" }"); 16.412 + out.println(""); 16.413 + out.println(" var map = new google.maps.Map(document.getElementById(\"map_canvas\"), myOptions);"); 16.414 + out.println(""); 16.415 + out.println(" var ctaLayer = new google.maps.KmlLayer('" + pathToKML + "');"); 16.416 + out.println(" ctaLayer.setMap(map);"); 16.417 + out.println("}"); 16.418 + out.println("</script>"); 16.419 + out.println("<style type=\"text/css\"> "); 16.420 + out.println("<!--"); 16.421 + out.println(".style3 {font-size: 15px}"); 16.422 + out.println(".style4 {font-size: 12px}"); 16.423 + out.println(".style5 {font-size: 15px;font-weight: bold;}"); 16.424 + out.println(".style6 {color: #FF0000}"); 16.425 + out.println(".style7 {font-size: 14px}"); 16.426 + out.println(" .hidden { visibility: hidden }"); 16.427 + out.println("-->"); 16.428 + out.println("</style> "); 16.429 + out.println("<title>TELEIOS: Strabon Endpoint</title>"); 16.430 + out.println("</head>"); 16.431 + out.println("<body topmargin=\"0\" leftmargin=\"0\" link=\"#FFFFFF\" vlink=\"#FFFFFF\" alink=\"#FFFFFF\" onload=\"initialize()\">"); 16.432 + out.println(" <TABLE width=\"100%\" BORDER=0 CELLPADDING=0 CELLSPACING=0>"); 16.433 + out.println(" <TR>"); 16.434 + out.println(" "); 16.435 + out.println(" <TD height=\"16\" background=\"images/pixi_white.gif\"><img src=\"images/pixi_white.gif\" width=\"16\" height=\"16\"></TD>"); 16.436 + out.println(" </TR>"); 16.437 + out.println(" <TR>"); 16.438 + out.println(" <TD height=\"1\" background=\"images/top_bg_blue.gif\"></TD>"); 16.439 + out.println(" </TR> "); 16.440 + out.println(" <TR>"); 16.441 + out.println(" <TD height=\"60\" background=\"images/nav2_bg.gif\"> "); 16.442 + out.println(" <table width=\"100%\" border=\"0\">"); 16.443 + out.println(" <tr>"); 16.444 + out.println(" <td width=\"1\"><img src=\"images/nav2_bg.gif\" width=\"1\" height=\"60\"></td>"); 16.445 + out.println(" <td valign=\"top\" width=\"80px\"><img border=\"0\" src=\"images/teleios_logo.png\"/></td>"); 16.446 + out.println(" <td valign=\"top\" align=\"left\">"); 16.447 + out.println(" <span class=\"logo\">Strabon Endpoint</span><br><span class=\"style4\">based on Strabon</span></td>"); 16.448 + out.println(" </tr>"); 16.449 + out.println(" </table> </TD>"); 16.450 + out.println(" </TR>"); 16.451 + out.println(" <TR>"); 16.452 + out.println(" <TD height=\"21\" background=\"images/nav1_bg1.gif\">"); 16.453 + out.println(" </TD>"); 16.454 + out.println(" </TR>"); 16.455 + out.println(" <TR>"); 16.456 + out.println(" <TD height=\"2\" background=\"images/top_bg_blue.gif\"></TD>"); 16.457 + out.println(" </TR>"); 16.458 + out.println("</TABLE>"); 16.459 + out.println("<form method=\"get\">"); 16.460 + 16.461 + out.println("<table border=\"0\" width=\"100%\"><tr> "); 16.462 + out.println("<td width=\"90\" valign=\"top\" bgcolor=\"#dfe8f0\"> "); 16.463 + out.println("<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"165\" id=\"navigation\"> "); 16.464 + out.println("<tr><td width=\"90\" class=\"style4\"><a href=\"Query\" class=\"navText\">Query</a></td></tr> "); 16.465 + } 16.466 + 16.467 + protected static void appendHTML1b(PrintWriter out) { 16.468 + out.println("<tr><td width=\"90\" class=\"style4\"><a href=\"store.jsp\" class=\"navText\">Store</a></td></tr> "); 16.469 + out.println("<tr><td width=\"90\" class=\"style4\"><a href=\"javascript:history.go(0)\" class=\"navText\">Clear</a></td></tr> "); 16.470 + out.println("</table>"); 16.471 + out.println("</td>"); 16.472 + out.println("<td width=\"*\" valign=\"top\" >"); 16.473 + 16.474 + out.println("<table cellspacing=\"5\">"); 16.475 + out.println("<tr>"); 16.476 + out.println("<td style=\"border: 1px dashed #bbbbbb;\">stSPARQL Query:</td>"); 16.477 + out.println("<td style=\"border: 1px dashed #bbbbbb;\"><textarea name=\"SPARQLQuery\" rows=\"15\" cols=\"100\">"); 16.478 + } 16.479 + 16.480 + protected static void appendHTML2(PrintWriter out) { 16.481 + out.println("</textarea></td>"); 16.482 +// out.println("<td style=\"border: 1px dashed #bbbbbb;\"><input type=\"radio\" name=\"format\" value=\"KML\">KML<br/>"); 16.483 +// out.println("<input type=\"radio\" name=\"format\" value=\"HTML\">HTML</td>"); 16.484 + out.println("<td style=\"border: 1px dashed #bbbbbb;\"><center>Output Format:<br/><select name=\"format\">"); 16.485 + out.println(" <option value=\"HTML\">HTML</option>"); 16.486 + out.println(" <option value=\"KML\">KML</option>"); 16.487 + out.println(" <option value=\"XML\">XML</option>"); 16.488 + out.println("</select></center></td>"); 16.489 + out.println("</tr>"); 16.490 + out.println("<tr>"); 16.491 + out.println("<td colspan=2 style=\"border: 1px dashed #bbbbbb;\"><br/><center><input type=\"submit\" value=\"Query\" name=\"submit\" style=\"width: 400px\"/><br/><input type=\"submit\" value=\"Update\" name=\"submit\" style=\"width: 400px\"/></center><br/></td>"); 16.492 + out.println("</tr>"); 16.493 + } 16.494 + 16.495 + protected static void appendHTML3(PrintWriter out, String errorMessage) { 16.496 + out.println("<tr>"); 16.497 + out.println("<td style=\"border: 1px dashed #bbbbbb;\">Result: </td>"); 16.498 + out.println("<td style=\"border: 1px dashed #bbbbbb;\">"); 16.499 + out.println(errorMessage); 16.500 + out.println("</td>"); 16.501 + out.println("</tr>"); 16.502 + } 16.503 + 16.504 + protected static void appendHTML4(PrintWriter out) { 16.505 + out.println("<br/><br/>"); 16.506 + out.println("</form>"); 16.507 + } 16.508 + 16.509 + protected static void appendHTML5(PrintWriter out) { 16.510 + out.println("</body>"); 16.511 + out.println("</html>"); 16.512 + } 16.513 + 16.514 + protected static void appendHTMLQ(PrintWriter out, StrabonBeanWrapper strabonWrapper) { 16.515 + out.println("<tr><td width=\"90\">"); 16.516 + out.println("<a href=\"Query?SPARQLQuery="+strabonWrapper.getQuery1()+"\"> · Query 1</a></br> "); 16.517 + out.println("<a href=\"Query?SPARQLQuery="+strabonWrapper.getQuery2()+"\"> · Query 2</a></br> "); 16.518 + out.println("<a href=\"Query?SPARQLQuery="+strabonWrapper.getQuery3()+"\"> · Query 3</a></br> "); 16.519 + out.println("<a href=\"Query?SPARQLQuery="+strabonWrapper.getQuery4()+"\"> · Query 4</a></br> "); 16.520 + out.println("<a href=\"Query?SPARQLQuery="+strabonWrapper.getQuery5()+"\"> · Query 5</a></br> "); 16.521 + out.println("<a href=\"Query?SPARQLQuery="+strabonWrapper.getQuery6()+"\"> · Query 6</a></br> "); 16.522 + out.println("<a href=\"Query?SPARQLQuery="+strabonWrapper.getQuery7()+"\"> · Query 7</a></br>"); 16.523 + out.println("<a href=\"Query?SPARQLQuery="+strabonWrapper.getQuery8()+"\"> · Query 8</a> "); 16.524 + out.println("</td></tr> "); 16.525 + } 16.526 +}
17.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 17.2 +++ b/endpoint/src/main/java/eu/earthobservatory/org/StrabonEndpoint/StoreBean.java Thu Mar 22 12:34:16 2012 +0100 17.3 @@ -0,0 +1,156 @@ 17.4 +/** 17.5 + * 17.6 + */ 17.7 +package eu.earthobservatory.org.StrabonEndpoint; 17.8 + 17.9 +import java.io.IOException; 17.10 +import java.util.ArrayList; 17.11 + 17.12 +import javax.servlet.ServletConfig; 17.13 +import javax.servlet.ServletContext; 17.14 +import javax.servlet.ServletException; 17.15 +import javax.servlet.http.HttpServlet; 17.16 +import javax.servlet.http.HttpServletRequest; 17.17 +import javax.servlet.http.HttpServletResponse; 17.18 + 17.19 +import org.openrdf.rio.RDFFormat; 17.20 +import org.openrdf.rio.RDFParseException; 17.21 +import org.springframework.web.context.WebApplicationContext; 17.22 +import org.springframework.web.context.support.WebApplicationContextUtils; 17.23 + 17.24 +/** 17.25 + * @author charnik 17.26 + * 17.27 + */ 17.28 +public class StoreBean extends HttpServlet { 17.29 + 17.30 + private static final long serialVersionUID = -7541662133934957148L; 17.31 + 17.32 + /** 17.33 + * Parameters used in the store.jsp file 17.34 + */ 17.35 + public static final String PARAM_DATA = "data"; 17.36 + public static final String PARAM_FORMAT = "format"; 17.37 + public static final String PARAM_DATA_URL = "url"; 17.38 + public static final String SRC_REQ = "source_request"; 17.39 + 17.40 + /** 17.41 + * Error parameters used in the store.jsp file 17.42 + */ 17.43 + public static final String DATA_ERROR = "edata"; 17.44 + public static final String FORMAT_ERROR = "eformat"; 17.45 + public static final String STORE_ERROR = "estore"; 17.46 + 17.47 + /** 17.48 + * Submit buttons 17.49 + */ 17.50 + public static final String SUBMIT_INPUT = "dsubmit"; 17.51 + public static final String SUBMIT_URL = "fromurl"; 17.52 + 17.53 + /** 17.54 + * Parameter for successful store used in the store.jsp file 17.55 + */ 17.56 + public static final String STORE_OK = "storeOK"; 17.57 + 17.58 + /** 17.59 + * Keeps the registered and available RDF formats. 17.60 + */ 17.61 + public static ArrayList<String> registeredFormats; 17.62 + 17.63 + /** 17.64 + * Strabon wrapper 17.65 + */ 17.66 + private StrabonBeanWrapper strabon; 17.67 + 17.68 + @Override 17.69 + public void init(ServletConfig servletConfig) throws ServletException { 17.70 + super.init(servletConfig); 17.71 + 17.72 + // get strabon wrapper 17.73 + ServletContext context = getServletContext(); 17.74 + WebApplicationContext applicationContext = WebApplicationContextUtils.getWebApplicationContext(context); 17.75 + strabon = (StrabonBeanWrapper) applicationContext.getBean("strabonBean"); 17.76 + 17.77 + // initialize registered and available formats 17.78 + registeredFormats = new ArrayList<String>(); 17.79 + for (RDFFormat format : RDFFormat.values()) { 17.80 + registeredFormats.add(format.getName()); 17.81 + } 17.82 + } 17.83 + 17.84 + @Override 17.85 + public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 17.86 + doPost(request, response); 17.87 + } 17.88 + 17.89 + @Override 17.90 + public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 17.91 + // check whether we read from INPUT or URL 17.92 + boolean input = (request.getParameter(SUBMIT_URL) != null) ? false:true; 17.93 + 17.94 + // check if the request was from store.jsp 17.95 + boolean browser = (request.getParameter(SRC_REQ) != null) ? true:false; 17.96 + 17.97 + // RDF data to store 17.98 + String data = null; 17.99 + 17.100 + // the format of the data 17.101 + String format = null; 17.102 + 17.103 + format = request.getParameter(PARAM_FORMAT); 17.104 + data = input ? request.getParameter(PARAM_DATA):request.getParameter(PARAM_DATA_URL); 17.105 + 17.106 + if (data == null) { 17.107 + if (browser) { 17.108 + redirect(response, DATA_ERROR); 17.109 + 17.110 + } else { 17.111 + response.sendError(HttpServletResponse.SC_NO_CONTENT); 17.112 + } 17.113 + return ; 17.114 + } 17.115 + 17.116 + // get input format 17.117 + RDFFormat rdfFormat = RDFFormat.valueOf(format); 17.118 + 17.119 + if (rdfFormat == null) { // unknown format 17.120 + if (browser) { 17.121 + redirect(response, FORMAT_ERROR); 17.122 + 17.123 + } else { 17.124 + response.sendError(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE); 17.125 + } 17.126 + 17.127 + return ; 17.128 + } 17.129 + 17.130 + // store data 17.131 + try { 17.132 + strabon.store(data, rdfFormat, !input); 17.133 + 17.134 + // store was successful, return the respective message 17.135 + if (browser) { 17.136 + redirect(response, STORE_OK); 17.137 + 17.138 + } else { 17.139 + response.sendError(HttpServletResponse.SC_OK); 17.140 + } 17.141 + } catch (Exception e) { 17.142 + if (browser) { 17.143 + redirect(response, STORE_ERROR); 17.144 + } else { 17.145 + if (e instanceof RDFParseException) { 17.146 + response.sendError(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE); 17.147 + } else { 17.148 + response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); 17.149 + } 17.150 + } 17.151 + System.err.println(e.getMessage()); 17.152 + } 17.153 + } 17.154 + 17.155 + private void redirect(HttpServletResponse response, String error) { 17.156 + response.setStatus(HttpServletResponse.SC_MOVED_TEMPORARILY); 17.157 + response.setHeader("Location", "store.jsp?" + error + "="); 17.158 + } 17.159 +}
18.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 18.2 +++ b/endpoint/src/main/java/eu/earthobservatory/org/StrabonEndpoint/StrabonBeanWrapper.java Thu Mar 22 12:34:16 2012 +0100 18.3 @@ -0,0 +1,262 @@ 18.4 +package eu.earthobservatory.org.StrabonEndpoint; 18.5 + 18.6 +import java.io.IOException; 18.7 +import java.io.StringReader; 18.8 +import java.net.URL; 18.9 +import java.sql.SQLException; 18.10 + 18.11 +import org.openrdf.model.Resource; 18.12 +import org.openrdf.query.MalformedQueryException; 18.13 +import org.openrdf.query.QueryEvaluationException; 18.14 +import org.openrdf.query.TupleQueryResultHandlerException; 18.15 +import org.openrdf.repository.RepositoryException; 18.16 +import org.openrdf.repository.sail.SailRepositoryConnection; 18.17 +import org.openrdf.rio.RDFFormat; 18.18 +import org.openrdf.rio.RDFParseException; 18.19 + 18.20 +import eu.earthobservatory.runtime.postgis.Strabon; 18.21 + 18.22 +public class StrabonBeanWrapper implements org.springframework.beans.factory.DisposableBean { 18.23 + private String serverName; 18.24 + private int port; 18.25 + private String databaseName; 18.26 + private String user; 18.27 + private String password; 18.28 + 18.29 + private Strabon strabon = null; 18.30 + private boolean checkForLockTable; 18.31 + private String query1; 18.32 + private String query2; 18.33 + private String query3; 18.34 + private String query4; 18.35 + private String query5; 18.36 + private String query6; 18.37 + private String query7; 18.38 + private String query8; 18.39 + 18.40 + public StrabonBeanWrapper() { 18.41 + this.strabon = null; 18.42 + } 18.43 + 18.44 + public StrabonBeanWrapper(Strabon strabon) { 18.45 + this.strabon = strabon; 18.46 + } 18.47 + 18.48 + public StrabonBeanWrapper(String databaseName, String user, String password, int port, String serverName, boolean checkForLockTable, String query1, String query2, String query3, String query4, String query5, String query6, String query7, String query8) { 18.49 + this.serverName = serverName; 18.50 + this.port = port; 18.51 + this.databaseName = databaseName; 18.52 + this.user = user; 18.53 + this.password = password; 18.54 + this.checkForLockTable = checkForLockTable; 18.55 + //this.strabon = new Strabon(databaseName, user, password, port, serverName, checkForLockTable); 18.56 + this.query1 = query1; 18.57 + this.query2 = query2; 18.58 + this.query3 = query3; 18.59 + this.query4 = query4; 18.60 + this.query5 = query5; 18.61 + this.query6 = query6; 18.62 + this.query7 = query7; 18.63 + this.query8 = query8; 18.64 + 18.65 + init(); 18.66 + } 18.67 + 18.68 + private boolean init() { 18.69 + if (this.strabon == null) { 18.70 + try { 18.71 + System.err.println("Strabon not initialized yet."); 18.72 + System.err.println("Initializing strabon."); 18.73 + System.out.println(this.getDetails()); 18.74 + this.strabon = new Strabon(databaseName, user, password, port, serverName, checkForLockTable); 18.75 + } catch (Exception e) { 18.76 + System.err.println("Exception occured while creating Strabon.\n"+this.getDetails()); 18.77 + e.printStackTrace(); 18.78 + return false; 18.79 + } 18.80 + } 18.81 + 18.82 + return true; 18.83 + } 18.84 + 18.85 + public StrabonBeanWrapper(String databaseName, String user, String password, int port, String serverName) throws SQLException, ClassNotFoundException { 18.86 + this.strabon = new Strabon(databaseName, user, password, port, serverName, true); 18.87 + } 18.88 + 18.89 + public Strabon getStrabon() { 18.90 + return strabon; 18.91 + } 18.92 + 18.93 + public void setStrabon(Strabon strabon) { 18.94 + this.strabon = strabon; 18.95 + } 18.96 + 18.97 + public void destroy() throws Exception { 18.98 + strabon.close(); 18.99 + } 18.100 + 18.101 + 18.102 + 18.103 + public Object query(String queryString, String answerFormatStrabon) throws MalformedQueryException, RepositoryException, QueryEvaluationException, TupleQueryResultHandlerException, IOException, ClassNotFoundException { 18.104 + if ((this.strabon == null) && (!init())) { 18.105 + throw new RepositoryException("Could not connect to Strabon."); 18.106 + } 18.107 + 18.108 + //String newQueryString = TemporalWrapper.rebuildQuery(queryString); 18.109 + 18.110 + System.out.println("================================================================"); 18.111 + System.out.println("Query:"); 18.112 + System.out.println(queryString); 18.113 + System.out.println("================================================================"); 18.114 + System.out.println("Answer format: " + answerFormatStrabon); 18.115 + System.out.println("================================================================"); 18.116 + //System.out.println("Rewritten query:"); 18.117 + //System.out.println(newQueryString); 18.118 + //System.out.println("================================================================"); 18.119 + 18.120 + //return strabon.query(newQueryString, answerFormatStrabon, strabon.getSailRepoConnection()); 18.121 + return strabon.query(queryString, answerFormatStrabon, strabon.getSailRepoConnection()); 18.122 + } 18.123 + 18.124 + public Object update(String updateString, String answerFormatStrabon) throws MalformedQueryException, RepositoryException, QueryEvaluationException, TupleQueryResultHandlerException, IOException, ClassNotFoundException { 18.125 + if ((this.strabon == null) && (!init())) { 18.126 + throw new RepositoryException("Could not connect to Strabon."); 18.127 + } 18.128 + 18.129 + //String newQueryString = TemporalWrapper.rebuildQuery(queryString); 18.130 + 18.131 + System.out.println("================================================================"); 18.132 + System.out.println("Update:"); 18.133 + System.out.println(updateString); 18.134 + System.out.println("================================================================"); 18.135 + System.out.println("Answer format: " + answerFormatStrabon); 18.136 + System.out.println("================================================================"); 18.137 + //System.out.println("Rewritten query:"); 18.138 + //System.out.println(newQueryString); 18.139 + //System.out.println("================================================================"); 18.140 + 18.141 + //return strabon.query(newQueryString, answerFormatStrabon, strabon.getSailRepoConnection()); 18.142 + strabon.update(updateString, strabon.getSailRepoConnection()); 18.143 + return "OK!"; 18.144 + } 18.145 + 18.146 + /** 18.147 + * Store the given data in the given format into Strabon repository. If url is true, then 18.148 + * input comes from a URL. 18.149 + * 18.150 + * Returns true on success, false otherwise. 18.151 + * 18.152 + * @param source_data 18.153 + * @param format 18.154 + * @param url 18.155 + * @return 18.156 + * @throws MalformedQueryException 18.157 + * @throws RepositoryException 18.158 + * @throws QueryEvaluationException 18.159 + * @throws TupleQueryResultHandlerException 18.160 + * @throws IOException 18.161 + * @throws ClassNotFoundException 18.162 + */ 18.163 + public boolean store(String source_data, RDFFormat format, boolean url) throws Exception { 18.164 + if ((this.strabon == null) && (!init())) { 18.165 + throw new RepositoryException("Could not connect to Strabon."); 18.166 + } 18.167 + 18.168 + // get sail connection 18.169 + SailRepositoryConnection conn = strabon.getSailRepoConnection(); 18.170 + 18.171 + try { 18.172 + // store data 18.173 + if (url) { 18.174 + conn.add(new URL(source_data), "", format, new Resource[1]); 18.175 + 18.176 + } else { 18.177 + conn.add(new StringReader(source_data), "", format, new Resource[1]); 18.178 + } 18.179 + 18.180 + } catch (Exception e) { 18.181 + throw e; 18.182 + } 18.183 + 18.184 + return true; 18.185 + } 18.186 + 18.187 + private String getDetails() { 18.188 + String details = "-----------------------------------------\n"; 18.189 + details += "Connection details:\n"; 18.190 + details += "host : " + serverName + "\n"; 18.191 + details += "port : " + port + "\n"; 18.192 + details += "database : " + databaseName + "\n"; 18.193 + details += "user : " + user + "\n"; 18.194 + details += "password : " + password + "\n"; 18.195 + details += "-----------------------------------------\n"; 18.196 + 18.197 + return details; 18.198 + } 18.199 + 18.200 + public String getQuery1() { 18.201 + return query1; 18.202 + } 18.203 + 18.204 + public void setQuery1(String query1) { 18.205 + this.query1 = query1; 18.206 + } 18.207 + 18.208 + public String getQuery2() { 18.209 + return query2; 18.210 + } 18.211 + 18.212 + public void setQuery2(String query2) { 18.213 + this.query2 = query2; 18.214 + } 18.215 + 18.216 + public String getQuery3() { 18.217 + return query3; 18.218 + } 18.219 + 18.220 + public void setQuery3(String query3) { 18.221 + this.query3 = query3; 18.222 + } 18.223 + 18.224 + public String getQuery4() { 18.225 + return query4; 18.226 + } 18.227 + 18.228 + public void setQuery4(String query4) { 18.229 + this.query4 = query4; 18.230 + } 18.231 + 18.232 + public String getQuery5() { 18.233 + return query5; 18.234 + } 18.235 + 18.236 + public void setQuery5(String query5) { 18.237 + this.query5 = query5; 18.238 + } 18.239 + 18.240 + public String getQuery6() { 18.241 + return query6; 18.242 + } 18.243 + 18.244 + public void setQuery6(String query6) { 18.245 + this.query6 = query6; 18.246 + } 18.247 + 18.248 + public String getQuery7() { 18.249 + return query7; 18.250 + } 18.251 + 18.252 + public void setQuery7(String query7) { 18.253 + this.query7 = query7; 18.254 + } 18.255 + public String getQuery8() { 18.256 + return query8; 18.257 + } 18.258 + 18.259 + public void setQuery8(String query8) { 18.260 + this.query8 = query8; 18.261 + } 18.262 + 18.263 + 18.264 +} 18.265 +
19.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 19.2 +++ b/endpoint/src/main/webapp/WEB-INF/web.xml Thu Mar 22 12:34:16 2012 +0100 19.3 @@ -0,0 +1,12 @@ 19.4 +<?xml version="1.0" encoding="UTF-8"?> 19.5 +<web-app xmlns="http://java.sun.com/xml/ns/j2ee" version="2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" id="WebApp_ID"> 19.6 + <display-name>StrabonEndpoint</display-name> 19.7 + <welcome-file-list> 19.8 + <welcome-file>index.html</welcome-file> 19.9 + <welcome-file>index.htm</welcome-file> 19.10 + <welcome-file>index.jsp</welcome-file> 19.11 + <welcome-file>default.html</welcome-file> 19.12 + <welcome-file>default.htm</welcome-file> 19.13 + <welcome-file>default.jsp</welcome-file> 19.14 + </welcome-file-list> 19.15 +</web-app>
20.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 20.2 +++ b/endpoint/src/main/webapp/index.jsp Thu Mar 22 12:34:16 2012 +0100 20.3 @@ -0,0 +1,13 @@ 20.4 +<%@page contentType="text/html" pageEncoding="UTF-8"%> 20.5 +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 20.6 + "http://www.w3.org/TR/html4/loose.dtd"> 20.7 + 20.8 +<html> 20.9 + <head> 20.10 + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 20.11 + <title>JSP Page</title> 20.12 + </head> 20.13 + <body> 20.14 + <h1>Hello World!</h1> 20.15 + </body> 20.16 +</html>
21.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 21.2 +++ b/pom.xml~ Thu Mar 22 12:34:16 2012 +0100 21.3 @@ -0,0 +1,617 @@ 21.4 +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 21.5 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 21.6 + 21.7 + <modelVersion>4.0.0</modelVersion> 21.8 + 21.9 + <groupId>eu.earthobservatory</groupId> 21.10 + <artifactId>strabon</artifactId> 21.11 + <version>3.1.8-SNAPSHOT</version> 21.12 + <packaging>pom</packaging> 21.13 + 21.14 + <parent> 21.15 + <groupId>org.openrdf</groupId> 21.16 + <artifactId>openrdf-root-pom</artifactId> 21.17 + <version>5</version> 21.18 + </parent> 21.19 + 21.20 + <name>Strabon</name> 21.21 + <description>Strabon is a storage and query evaluation module for stRDF/stSPARQL.</description> 21.22 + <url>http://www.strabon.di.uoa.gr/</url> 21.23 + <inceptionYear>2008</inceptionYear> 21.24 + 21.25 + <modules> 21.26 + <module>evaluation</module> 21.27 + <module>runtime</module> 21.28 + <module>postgis</module> 21.29 + <module>monetdb</module> 21.30 + <module>generaldb</module> 21.31 + <module>resultio</module> 21.32 + <module>endpoint</module> 21.33 + </modules> 21.34 + 21.35 + <properties> 21.36 + <sesame.version>2.6.3</sesame.version> 21.37 + <eu.earthobservatory.version>3.1.8-SNAPSHOT</eu.earthobservatory.version> 21.38 + <aduna.appbase.version>3.5.0</aduna.appbase.version> 21.39 + <slf4j.version>1.6.1</slf4j.version> 21.40 + <spring.version>2.5.6</spring.version> 21.41 + <jts.version>1.8</jts.version> 21.42 + <geotools.version>2.7.4</geotools.version> 21.43 + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 21.44 + <project.build.targetEncoding>UTF-8</project.build.targetEncoding> 21.45 + </properties> 21.46 + 21.47 + <dependencyManagement> 21.48 + <dependencies> 21.49 + <!-- Strabon dependencies --> 21.50 + <dependency> 21.51 + <groupId>org.openrdf.sesame</groupId> 21.52 + <artifactId>sesame-queryalgebra-evaluation-spatial</artifactId> 21.53 + <version>${eu.earthobservatory.version}</version> 21.54 + </dependency> 21.55 + 21.56 + <dependency> 21.57 + <groupId>org.openrdf.sesame</groupId> 21.58 + <artifactId>sesame-queryresultio-sparqlxml-spatial</artifactId> 21.59 + <version>${eu.earthobservatory.version}</version> 21.60 + </dependency> 21.61 + 21.62 + <dependency> 21.63 + <groupId>org.openrdf.sesame</groupId> 21.64 + <artifactId>sesame-sail-generaldb</artifactId> 21.65 + <version>${eu.earthobservatory.version}</version> 21.66 + </dependency> 21.67 + 21.68 + <dependency> 21.69 + <groupId>org.openrdf.sesame</groupId> 21.70 + <artifactId>sesame-sail-monetdb</artifactId> 21.71 + <version>${eu.earthobservatory.version}</version> 21.72 + </dependency> 21.73 + 21.74 + <dependency> 21.75 + <groupId>org.openrdf.sesame</groupId> 21.76 + <artifactId>strabon-runtime</artifactId> 21.77 + <version>${eu.earthobservatory.version}</version> 21.78 + </dependency> 21.79 + 21.80 + <dependency> 21.81 + <groupId>org.openrdf.sesame</groupId> 21.82 + <artifactId>strabon-endpoint</artifactId> 21.83 + <version>${eu.earthobservatory.version}</version> 21.84 + </dependency> 21.85 + 21.86 + <dependency> 21.87 + <groupId>org.openrdf.sesame</groupId> 21.88 + <artifactId>sesame-sail-postgis</artifactId> 21.89 + <version>${eu.earthobservatory.version}</version> 21.90 + </dependency> 21.91 + 21.92 + <!-- Sesame dependencies --> 21.93 + <dependency> 21.94 + <groupId>org.openrdf.sesame</groupId> 21.95 + <artifactId>sesame-repository-sail</artifactId> 21.96 + <version>${sesame.version}</version> 21.97 + </dependency> 21.98 + 21.99 + <dependency> 21.100 + <groupId>eu.earthobservatory</groupId> 21.101 + <artifactId>strabon-runtime</artifactId> 21.102 + <version>${eu.earthobservatory.version}</version> 21.103 + </dependency> 21.104 + 21.105 + <dependency> 21.106 + <groupId>org.openrdf.sesame</groupId> 21.107 + <artifactId>sesame-queryalgebra-evaluation-spatial</artifactId> 21.108 + <version>${eu.earthobservatory.version}</version> 21.109 + </dependency> 21.110 + 21.111 + <dependency> 21.112 + <groupId>org.openrdf.sesame</groupId> 21.113 + <artifactId>sesame-queryalgebra</artifactId> 21.114 + <version>${sesame.version}</version> 21.115 + </dependency> 21.116 + 21.117 + <dependency> 21.118 + <groupId>org.openrdf.sesame</groupId> 21.119 + <artifactId>sesame-queryalgebra-evaluation</artifactId> 21.120 + <version>${sesame.version}</version> 21.121 + </dependency> 21.122 + 21.123 + <dependency> 21.124 + <groupId>org.openrdf.sesame</groupId> 21.125 + <artifactId>sesame-queryalgebra-model</artifactId> 21.126 + <version>${sesame.version}</version> 21.127 + </dependency> 21.128 + 21.129 + <dependency> 21.130 + <groupId>org.openrdf.sesame</groupId> 21.131 + <artifactId>sesame-queryparser-api</artifactId> 21.132 + <version>${sesame.version}</version> 21.133 + </dependency> 21.134 + 21.135 + <dependency> 21.136 + <groupId>org.openrdf.sesame</groupId> 21.137 + <artifactId>sesame-queryparser-sparql</artifactId> 21.138 + <version>${sesame.version}</version> 21.139 + </dependency> 21.140 + 21.141 + <dependency> 21.142 + <groupId>org.openrdf.sesame</groupId> 21.143 + <artifactId>sesame-model</artifactId> 21.144 + <version>${sesame.version}</version> 21.145 + </dependency> 21.146 + 21.147 + <dependency> 21.148 + <groupId>org.openrdf.sesame</groupId> 21.149 + <artifactId>sesame-sail-api</artifactId> 21.150 + <version>${sesame.version}</version> 21.151 + </dependency> 21.152 + 21.153 + <dependency> 21.154 + <groupId>org.openrdf.sesame</groupId> 21.155 + <artifactId>sesame-query</artifactId> 21.156 + <version>${sesame.version}</version> 21.157 + </dependency> 21.158 + 21.159 + <dependency> 21.160 + <groupId>org.openrdf.sesame</groupId> 21.161 + <artifactId>sesame-sail-rdbms</artifactId> 21.162 + <version>${sesame.version}</version> 21.163 + </dependency> 21.164 + 21.165 + <dependency> 21.166 + <groupId>org.openrdf.sesame</groupId> 21.167 + <artifactId>sesame-repository-sparql</artifactId> 21.168 + <version>${sesame.version}</version> 21.169 + </dependency> 21.170 + 21.171 + <!-- Aduna Commons --> 21.172 + <dependency> 21.173 + <groupId>info.aduna.appbase</groupId> 21.174 + <artifactId>aduna-appbase</artifactId> 21.175 + <version>${aduna.appbase.version}</version> 21.176 + <type>pom</type> 21.177 + </dependency> 21.178 + 21.179 + <dependency> 21.180 + <groupId>info.aduna.commons</groupId> 21.181 + <artifactId>aduna-commons-collections</artifactId> 21.182 + <version>2.8.0</version> 21.183 + </dependency> 21.184 + 21.185 + <dependency> 21.186 + <groupId>info.aduna.commons</groupId> 21.187 + <artifactId>aduna-commons-concurrent</artifactId> 21.188 + <version>2.7.0</version> 21.189 + </dependency> 21.190 + 21.191 + <dependency> 21.192 + <groupId>info.aduna.commons</groupId> 21.193 + <artifactId>aduna-commons-i18n</artifactId> 21.194 + <version>1.4.0</version> 21.195 + </dependency> 21.196 + 21.197 + <dependency> 21.198 + <groupId>info.aduna.commons</groupId> 21.199 + <artifactId>aduna-commons-iteration</artifactId> 21.200 + <version>2.10.0</version> 21.201 + </dependency> 21.202 + 21.203 + <dependency> 21.204 + <groupId>info.aduna.commons</groupId> 21.205 + <artifactId>aduna-commons-net-http-server-embedded</artifactId> 21.206 + <version>2.5.0</version> 21.207 + </dependency> 21.208 + 21.209 + <!-- RIO --> 21.210 + <dependency> 21.211 + <groupId>org.openrdf.sesame</groupId> 21.212 + <artifactId>sesame-rio-rdfxml</artifactId> 21.213 + <version>${sesame.version}</version> 21.214 + </dependency> 21.215 + 21.216 + <dependency> 21.217 + <groupId>org.openrdf.sesame</groupId> 21.218 + <artifactId>sesame-rio-ntriples</artifactId> 21.219 + <version>${sesame.version}</version> 21.220 + </dependency> 21.221 + 21.222 + <dependency> 21.223 + <groupId>org.openrdf.sesame</groupId> 21.224 + <artifactId>sesame-rio-turtle</artifactId> 21.225 + <version>${sesame.version}</version> 21.226 + </dependency> 21.227 + 21.228 + <dependency> 21.229 + <groupId>org.openrdf.sesame</groupId> 21.230 + <artifactId>sesame-rio-trig</artifactId> 21.231 + <version>${sesame.version}</version> 21.232 + </dependency> 21.233 + 21.234 + <dependency> 21.235 + <groupId>org.openrdf.sesame</groupId> 21.236 + <artifactId>sesame-rio-trix</artifactId> 21.237 + <version>${sesame.version}</version> 21.238 + </dependency> 21.239 + 21.240 + <dependency> 21.241 + <groupId>org.openrdf.sesame</groupId> 21.242 + <artifactId>sesame-rio-n3</artifactId> 21.243 + <version>${sesame.version}</version> 21.244 + </dependency> 21.245 + 21.246 + <dependency> 21.247 + <groupId>org.openrdf.sesame</groupId> 21.248 + <artifactId>sesame-rio-binary</artifactId> 21.249 + <version>${sesame.version}</version> 21.250 + </dependency> 21.251 + 21.252 + <!-- GeoTools --> 21.253 + <dependency> 21.254 + <groupId>org.geotools.xsd</groupId> 21.255 + <artifactId>gt-xsd-kml</artifactId> 21.256 + <version>${geotools.version}</version> 21.257 + </dependency> 21.258 + 21.259 + <dependency> 21.260 + <groupId>org.geotools</groupId> 21.261 + <artifactId>gt-xml</artifactId> 21.262 + <version>${geotools.version}</version> 21.263 + </dependency> 21.264 + 21.265 + <dependency> 21.266 + <groupId>org.geotools</groupId> 21.267 + <artifactId>gt-epsg-hsql</artifactId> 21.268 + <version>${geotools.version}</version> 21.269 + </dependency> 21.270 + <dependency> 21.271 + <groupId>org.geotools</groupId> 21.272 + <artifactId>gt-shapefile</artifactId> 21.273 + <version>${geotools.version}</version> 21.274 + </dependency> 21.275 + 21.276 + <dependency> 21.277 + <groupId>org.geotools</groupId> 21.278 + <artifactId>gt-referencing</artifactId> 21.279 + <version>${geotools.version}</version> 21.280 + </dependency> 21.281 + 21.282 + <dependency> 21.283 + <groupId>org.geotools</groupId> 21.284 + <artifactId>gt-jts-wrapper</artifactId> 21.285 + <version>${geotools.version}</version> 21.286 + </dependency> 21.287 + 21.288 + <dependency> 21.289 + <groupId>org.geotools</groupId> 21.290 + <artifactId>gt-opengis</artifactId> 21.291 + <version>${geotools.version}</version> 21.292 + </dependency> 21.293 + 21.294 + <!-- JTS --> 21.295 + <dependency> 21.296 + <groupId>com.vividsolutions</groupId> 21.297 + <artifactId>jts</artifactId> 21.298 + <version>${jts.version}</version> 21.299 + <type>jar</type> 21.300 + </dependency> 21.301 + 21.302 + <!-- JDBC Drivers --> 21.303 + <dependency> 21.304 + <groupId>monetdb</groupId> 21.305 + <artifactId>jdbcclient</artifactId> 21.306 + <version>3.4.0</version> 21.307 + </dependency> 21.308 + 21.309 + <dependency> 21.310 + <groupId>postgresql</groupId> 21.311 + <artifactId>postgresql</artifactId> 21.312 + <version>9.0-801.jdbc4</version> 21.313 + </dependency> 21.314 + 21.315 + <dependency> 21.316 + <groupId>mysql</groupId> 21.317 + <artifactId>mysql-connector-java</artifactId> 21.318 + <version>5.1.15</version> 21.319 + </dependency> 21.320 + 21.321 + <!-- SLF4J --> 21.322 + <dependency> 21.323 + <groupId>org.slf4j</groupId> 21.324 + <artifactId>slf4j-api</artifactId> 21.325 + <version>${slf4j.version}</version> 21.326 + </dependency> 21.327 + 21.328 + <dependency> 21.329 + <groupId>org.slf4j</groupId> 21.330 + <artifactId>slf4j-simple</artifactId> 21.331 + <version>${slf4j.version}</version> 21.332 + </dependency> 21.333 + 21.334 + <dependency> 21.335 + <groupId>net.sf</groupId> 21.336 + <artifactId>log4jdbc4</artifactId> 21.337 + <version>1.2</version> 21.338 + </dependency> 21.339 + 21.340 + <!-- Apache Commons --> 21.341 + <dependency> 21.342 + <groupId>commons-cli</groupId> 21.343 + <artifactId>commons-cli</artifactId> 21.344 + <version>1.2</version> 21.345 + </dependency> 21.346 + 21.347 + <dependency> 21.348 + <groupId>commons-dbcp</groupId> 21.349 + <artifactId>commons-dbcp</artifactId> 21.350 + <version>1.3</version> 21.351 + </dependency> 21.352 + 21.353 + <dependency> 21.354 + <groupId>commons-fileupload</groupId> 21.355 + <artifactId>commons-fileupload</artifactId> 21.356 + <version>1.2.1</version> 21.357 + </dependency> 21.358 + 21.359 + <dependency> 21.360 + <groupId>commons-io</groupId> 21.361 + <artifactId>commons-io</artifactId> 21.362 + 21.363 + <version>1.3.2</version> 21.364 + </dependency> 21.365 + 21.366 + <dependency> 21.367 + <groupId>commons-httpclient</groupId> 21.368 + <artifactId>commons-httpclient</artifactId> 21.369 + <version>3.1</version> 21.370 + <exclusions> 21.371 + <exclusion> 21.372 + <groupId>commons-logging</groupId> 21.373 + <artifactId>commons-logging</artifactId> 21.374 + </exclusion> 21.375 + <exclusion> 21.376 + <!-- httpclient includes older codec --> 21.377 + <groupId>commons-codec</groupId> 21.378 + <artifactId>commons-codec</artifactId> 21.379 + </exclusion> 21.380 + </exclusions> 21.381 + </dependency> 21.382 + 21.383 + <dependency> 21.384 + <groupId>commons-codec</groupId> 21.385 + <artifactId>commons-codec</artifactId> 21.386 + <version>1.4</version> 21.387 + <scope>runtime</scope> 21.388 + </dependency> 21.389 + 21.390 + <dependency> 21.391 + <groupId>commons-validator</groupId> 21.392 + <artifactId>commons-validator</artifactId> 21.393 + <version>1.3.1</version> 21.394 + </dependency> 21.395 + 21.396 + <!-- Spring framework --> 21.397 + <dependency> 21.398 + <groupId>org.springframework</groupId> 21.399 + <artifactId>spring-aop</artifactId> 21.400 + <version>${spring.version}</version> 21.401 + <exclusions> 21.402 + <exclusion> 21.403 + <groupId>commons-logging</groupId> 21.404 + <artifactId>commons-logging</artifactId> 21.405 + </exclusion> 21.406 + </exclusions> 21.407 + </dependency> 21.408 + 21.409 + <dependency> 21.410 + <groupId>org.springframework</groupId> 21.411 + <artifactId>spring-webmvc</artifactId> 21.412 + <version>${spring.version}</version> 21.413 + <exclusions> 21.414 + <exclusion> 21.415 + <groupId>commons-logging</groupId> 21.416 + <artifactId>commons-logging</artifactId> 21.417 + </exclusion> 21.418 + </exclusions> 21.419 + </dependency> 21.420 + 21.421 + <!-- Apache CXF framework --> 21.422 + <dependency> 21.423 + <groupId>org.apache.cxf</groupId> 21.424 + <artifactId>cxf-rt-frontend-jaxws</artifactId> 21.425 + <version>2.2.5</version> 21.426 + </dependency> 21.427 + 21.428 + <dependency> 21.429 + <groupId>org.apache.cxf</groupId> 21.430 + <artifactId>cxf-rt-transports-http</artifactId> 21.431 + <version>2.2.5</version> 21.432 + </dependency> 21.433 + 21.434 + <dependency> 21.435 + <groupId>org.apache.cxf</groupId> 21.436 + <artifactId>cxf-rt-transports-http-jetty</artifactId> 21.437 + <version>2.2.5</version> 21.438 + </dependency> 21.439 + 21.440 + <!-- Compliance tests --> 21.441 + <dependency> 21.442 + <groupId>edu.lehigh.swat.bench</groupId> 21.443 + <artifactId>uba</artifactId> 21.444 + <version>1.7</version> 21.445 + </dependency> 21.446 + 21.447 + <dependency> 21.448 + <groupId>edu.lehigh.swat.bench</groupId> 21.449 + <artifactId>ubt</artifactId> 21.450 + <version>1.1</version> 21.451 + </dependency> 21.452 + 21.453 + <!-- Testing: JUnit --> 21.454 + <dependency> 21.455 + <groupId>junit</groupId> 21.456 + <artifactId>junit</artifactId> 21.457 + <version>4.7</version> 21.458 + <scope>test</scope> 21.459 + </dependency> 21.460 + 21.461 + <!-- Various --> 21.462 + <dependency> 21.463 + <groupId>cglib</groupId> 21.464 + <artifactId>cglib</artifactId> 21.465 + <version>2.2</version> 21.466 + </dependency> 21.467 + 21.468 + <dependency> 21.469 + <groupId>javax</groupId> 21.470 + <artifactId>javaee-web-api</artifactId> 21.471 + <version>6.0</version> 21.472 + <scope>provided</scope> 21.473 + </dependency> 21.474 + </dependencies> 21.475 + </dependencyManagement> 21.476 + 21.477 + <build> 21.478 + <pluginManagement> 21.479 + <plugins> 21.480 + <plugin> 21.481 + <groupId>org.apache.maven.plugins</groupId> 21.482 + <artifactId>maven-assembly-plugin</artifactId> 21.483 + <version>2.3</version> 21.484 + </plugin> 21.485 + </plugins> 21.486 + </pluginManagement> 21.487 + 21.488 + <plugins> 21.489 + <plugin> 21.490 + <groupId>org.apache.maven.plugins</groupId> 21.491 + <artifactId>maven-compiler-plugin</artifactId> 21.492 + <version>2.3.2</version> 21.493 + <configuration> 21.494 + <source>1.6</source> 21.495 + <target>1.6</target> 21.496 + <encoding>utf8</encoding> 21.497 + </configuration> 21.498 + </plugin> 21.499 + <!-- <plugin> <groupId>ch.elca.el4j.maven.plugins</groupId> <artifactId>maven-depgraph-plugin</artifactId> 21.500 + <configuration> <outDir>target/site/images</outDir> <dotFile>${pom.artifactId}.dot</dotFile> 21.501 + <outFile>${pom.artifactId}.png</outFile> <filterEmptyArtifacts>true</filterEmptyArtifacts> 21.502 + </configuration> </plugin> --> 21.503 + <plugin> 21.504 + <artifactId>maven-release-plugin</artifactId> 21.505 + <version>2.2.2</version> 21.506 + <configuration> 21.507 + <tagNameFormat>v@{project.version}</tagNameFormat> 21.508 + <autoVersionSubmodules>true</autoVersionSubmodules> 21.509 + </configuration> 21.510 + </plugin> 21.511 + </plugins> 21.512 + </build> 21.513 + 21.514 + <reporting> 21.515 + <plugins> 21.516 + <plugin> 21.517 + <groupId>org.apache.maven.plugins</groupId> 21.518 + <artifactId>maven-javadoc-plugin</artifactId> 21.519 + <version>2.8.1</version> 21.520 + <configuration> 21.521 + <source>1.6</source> 21.522 + <encoding>utf8</encoding> 21.523 + </configuration> 21.524 + </plugin> 21.525 + </plugins> 21.526 + </reporting> 21.527 + 21.528 + 21.529 + <!-- <pluginRepositories> <pluginRepository> <id>elca-services</id> <url>http://el4.elca-services.ch/el4j/maven2repository</url> 21.530 + <releases> <enabled>true</enabled> </releases> </pluginRepository> </pluginRepositories> --> 21.531 + 21.532 + <scm> 21.533 + <connection>scm:hg:ssh://hg.strabon.di.uoa.gr//opt/hg/Strabon/</connection> 21.534 + <developerConnection>scm:hg:ssh://hg.strabon.di.uoa.gr//opt/hg/Strabon/</developerConnection> 21.535 + <url>http://hg.strabon.di.uoa.gr/Strabon/</url> 21.536 + </scm> 21.537 + 21.538 + <repositories> 21.539 + 21.540 + <repository> 21.541 + <releases> 21.542 + <enabled>true</enabled> 21.543 + </releases> 21.544 + <snapshots> 21.545 + <enabled>false</enabled> 21.546 + </snapshots> 21.547 + <id>strabon.testing</id> 21.548 + <name>Strabon - maven repository</name> 21.549 + <url>http://maven.strabon.di.uoa.gr/content/repositories/testing</url> 21.550 + </repository> 21.551 + 21.552 + <repository> 21.553 + <releases> 21.554 + <enabled>true</enabled> 21.555 + </releases> 21.556 + <snapshots> 21.557 + <enabled>false</enabled> 21.558 + </snapshots> 21.559 + <id>strabon</id> 21.560 + <name>Strabon - maven repository</name> 21.561 + <url>http://maven.strabon.di.uoa.gr/content/repositories/releases</url> 21.562 + </repository> 21.563 + <repository> 21.564 + <releases> 21.565 + <enabled>false</enabled> 21.566 + </releases> 21.567 + <snapshots> 21.568 + <enabled>true</enabled> 21.569 + </snapshots> 21.570 + <id>strabon.snapshot</id> 21.571 + <name>Strabon - maven repository - snapshots</name> 21.572 + <url>http://maven.strabon.di.uoa.gr/content/repositories/snapshots</url> 21.573 + </repository> 21.574 + 21.575 + 21.576 + <repository> 21.577 + <releases> 21.578 + <enabled>true</enabled> 21.579 + </releases> 21.580 + <snapshots> 21.581 + <enabled>false</enabled> 21.582 + </snapshots> 21.583 + <id>aduna-opensource.releases</id> 21.584 + <name>Aduna Open Source - Maven releases</name> 21.585 + <url>http://repo.aduna-software.org/maven2/releases</url> 21.586 + </repository> 21.587 + <repository> 21.588 + <releases> 21.589 + <enabled>false</enabled> 21.590 + </releases> 21.591 + <snapshots> 21.592 + <enabled>true</enabled> 21.593 + </snapshots> 21.594 + <id>aduna-opensource.snapshots</id> 21.595 + <name>Aduna Open Source - Maven snapshots</name> 21.596 + <url>http://repo.aduna-software.org/maven2/snapshots</url> 21.597 + </repository> 21.598 + <repository> 21.599 + <snapshots> 21.600 + <enabled>true</enabled> 21.601 + </snapshots> 21.602 + <id>opengeo</id> 21.603 + <name>OpenGeo Maven Repository</name> 21.604 + <url>http://download.osgeo.org/webdav/geotools/</url> 21.605 + </repository> 21.606 + </repositories> 21.607 + 21.608 + <distributionManagement> 21.609 + <repository> 21.610 + <id>strabon</id> 21.611 + <name>Strabon maven repo</name> 21.612 + <url>http://maven.strabon.di.uoa.gr/content/repositories/releases</url> 21.613 + </repository> 21.614 + <snapshotRepository> 21.615 + <id>strabon.snapshot</id> 21.616 + <name>Strabon maven repo</name> 21.617 + <url>http://maven.strabon.di.uoa.gr/content/repositories/snapshots</url> 21.618 + </snapshotRepository> 21.619 + </distributionManagement> 21.620 +</project>