# HG changeset patch # User Konstantina Mpereta # Date 1334834280 -10800 # Node ID 036ab5c5d2c0159c3f8e0be94eb69fbc9e5c94e3 # Parent b2667f7bc05118332620a69ee2f702dce180c0b7# Parent 22fd30137096049b5eb0a186b369c5f2456fe8fd "merge" diff -r b2667f7bc051 -r 036ab5c5d2c0 .hgignore --- a/.hgignore Thu Apr 19 14:04:35 2012 +0300 +++ b/.hgignore Thu Apr 19 14:18:00 2012 +0300 @@ -3,3 +3,5 @@ .settings$ .classpath pom.xml~ +~$ +.extract$ diff -r b2667f7bc051 -r 036ab5c5d2c0 .hgtags --- a/.hgtags Thu Apr 19 14:04:35 2012 +0300 +++ b/.hgtags Thu Apr 19 14:18:00 2012 +0300 @@ -5,3 +5,4 @@ e986f499c057472c01a500b3a845b6b8905b3f55 v3.1.5 5a6948d2bfc5027b833d97276ec4e0e7ee1b292c v3.1.6 3eaccd928b81b85e19b0d929e364643d794a2aa5 v3.1.7 +2338da4560729e5e48ef6822c516c7f1a4fc87db v3.1.8 diff -r b2667f7bc051 -r 036ab5c5d2c0 endpoint/WebContent/WEB-INF/web.xml --- a/endpoint/WebContent/WEB-INF/web.xml Thu Apr 19 14:04:35 2012 +0300 +++ b/endpoint/WebContent/WEB-INF/web.xml Thu Apr 19 14:18:00 2012 +0300 @@ -33,6 +33,17 @@ /Store + + Update + Update + eu.earthobservatory.org.StrabonEndpoint.UpdateBean + 1 + + + Update + /Update + + diff -r b2667f7bc051 -r 036ab5c5d2c0 endpoint/pom.xml --- a/endpoint/pom.xml Thu Apr 19 14:04:35 2012 +0300 +++ b/endpoint/pom.xml Thu Apr 19 14:18:00 2012 +0300 @@ -1,11 +1,10 @@ - + 4.0.0 eu.earthobservatory strabon - 3.1.8-SNAPSHOT + 3.1.9-SNAPSHOT strabon-endpoint @@ -175,32 +174,13 @@ --> - + org.apache.maven.plugins maven-dependency-plugin @@ -235,11 +215,35 @@ true + - org.eclipse.m2e lifecycle-mapping @@ -251,7 +255,7 @@ org.apache.maven.plugins maven-dependency-plugin - [2.3,) + [2.1,) copy-dependencies @@ -264,31 +268,6 @@ - --> - - org.eclipse.m2e - lifecycle-mapping - 1.0.0 - - - - - - org.apache.maven.plugins - maven-dependency-plugin - [2.1,) - - copy-dependencies - - - - - - - - - - diff -r b2667f7bc051 -r 036ab5c5d2c0 endpoint/src/main/java/eu/earthobservatory/org/StrabonEndpoint/QueryBean.java --- a/endpoint/src/main/java/eu/earthobservatory/org/StrabonEndpoint/QueryBean.java Thu Apr 19 14:04:35 2012 +0300 +++ b/endpoint/src/main/java/eu/earthobservatory/org/StrabonEndpoint/QueryBean.java Thu Apr 19 14:18:00 2012 +0300 @@ -30,7 +30,8 @@ private static final long serialVersionUID = -378175118289907707L; - public QueryBean() {} + private ServletContext context; + private StrabonBeanWrapper strabonWrapper; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException @@ -86,7 +87,12 @@ String reqFuncionality = (request.getParameter("submit") == null) ? "" : request.getParameter("submit"); // check whether Update submit button was fired - boolean isUpdate = (reqFuncionality.equals("Update") ? true:false); + if (reqFuncionality.equals("Update")) { // only for executions from web browsers + response.setStatus(HttpServletResponse.SC_TEMPORARY_REDIRECT); + response.sendRedirect("Update?SPARQLQuery=" + hive.getSPARQLQuery()); + + return; + } if ((reqFormat == "") && (reqAccept == "")) { hive.setFormat("HTML"); @@ -113,33 +119,7 @@ response.setContentType("text/html; charset=UTF-8"); hive.setFormat("HTML"); } - //System.out.println("\n\n\n\n\format='"+this.format+"'\n\n\n\n\n"); - ServletContext context = getServletContext(); - WebApplicationContext applicationContext = WebApplicationContextUtils.getWebApplicationContext(context); - StrabonBeanWrapper strabonWrapper = (StrabonBeanWrapper)applicationContext.getBean("strabonBean"); - - /* Execution of UPDATE query */ - if (isUpdate) { - String answer = ""; - try { - strabonWrapper.getStrabon().update(hive.getSPARQLQuery(), strabonWrapper.getStrabon().getSailRepoConnection()); - response.setStatus(HttpServletResponse.SC_OK); - answer = "true"; - - } catch(MalformedQueryException e) { - response.setStatus(HttpServletResponse.SC_BAD_REQUEST); - answer = "\n"+e.getMessage()+"\n\t"; - } - - // write response to client - response.getWriter().append(getUPDATEHeaderResponse()); - response.getWriter().append(answer); - response.getWriter().append(getUPDATEFooterResponse()); - return; - } - /* Execution of UPDATE query */ - PrintWriter out = response.getWriter(); if ((hive.getFormat().equalsIgnoreCase("KML"))) { @@ -177,9 +157,9 @@ //System.out.println("Done"); - }catch(IOException e){ + } catch(IOException e) { e.printStackTrace(); - } + } response.setContentType("application/vnd.google-earth.kml+xml; charset=UTF-8"); response.setDateHeader("Expires", 0); @@ -209,16 +189,49 @@ //out.append("
"); out.append(""); appendHTML5(out); - } - else if ((hive.getFormat().equalsIgnoreCase("XML"))) { + + } else if ((hive.getFormat().equalsIgnoreCase("XML"))) { + int status_code = HttpServletResponse.SC_OK; + String answer = ""; + + try { + // execute query + answer = (String) strabonWrapper.query(hive.getSPARQLQuery(), hive.getFormat()); + + } catch (MalformedQueryException e) { + status_code = HttpServletResponse.SC_BAD_REQUEST; + answer = e.getMessage(); + + } catch (RepositoryException e) { + status_code = HttpServletResponse.SC_INTERNAL_SERVER_ERROR; + answer = e.getMessage(); + + } catch (QueryEvaluationException e) { + status_code = HttpServletResponse.SC_INTERNAL_SERVER_ERROR; + answer = e.getMessage(); + + } catch (TupleQueryResultHandlerException e) { + status_code = HttpServletResponse.SC_INTERNAL_SERVER_ERROR; + answer = e.getMessage(); + + } catch (ClassNotFoundException e) { + status_code = HttpServletResponse.SC_INTERNAL_SERVER_ERROR; + answer = e.getMessage(); + } + + // write response to client response.setContentType("text/xml; charset=UTF-8"); - StringBuilder errorMessage = new StringBuilder (); - String answer = evaluateQuery(strabonWrapper, hive.getFormat(), reqFuncionality, hive.getSPARQLQuery(), errorMessage); - hive.setErrorMessage(errorMessage.toString()); - out.println(answer); - - } - else { + response.setStatus(status_code); + if (status_code == HttpServletResponse.SC_OK) { + response.getWriter().append(answer); + + } else { + response.getWriter().append(ResponseMessages.getXMLHeader()); + response.getWriter().append(ResponseMessages.getXMLException(answer)); + response.getWriter().append(ResponseMessages.getXMLFooter()); + } + + } else { // HTML appendHTML1a(out,""); @@ -258,47 +271,24 @@ out.flush(); } - /** - * Used as the template answer for UPDATE queries. - * @return - */ - private String getUPDATEHeaderResponse() { - return "\n" + - "\n" + - "\t"; - } - - /** - * Used as the template answer for UPDATE queries. - * @return - */ - private String getUPDATEFooterResponse() { - return "\n\n"; - } - public void init(ServletConfig servletConfig) throws ServletException { super.init(servletConfig); + + // get StrabonWrapper + context = getServletContext(); + WebApplicationContext applicationContext = WebApplicationContextUtils.getWebApplicationContext(context); + + strabonWrapper = (StrabonBeanWrapper) applicationContext.getBean("strabonBean"); } public String evaluateQuery(StrabonBeanWrapper strabonWrapper, String resultFormat, String reqFunctionality, String SPARQLQuery, StringBuilder errorMessage) { String answer = ""; - -// System.out.println("evaluateQuery: will call wrapper. Query = " + this.SPARQLQuery); -// System.out.println("evaluateQuery: will call wrapper. result = " + resultFormat); - + try { if (SPARQLQuery == null) { answer = ""; } else { - //System.out.println("evaluateQuery: Calling..."); - if (reqFunctionality.equals("Update")) { - //if (((String)this.SPARQLQuery).toLowerCase().contains("insert") || ((String)this.SPARQLQuery).toLowerCase().contains("delete")) { - answer = (String)strabonWrapper.update(SPARQLQuery, resultFormat); - } - else{ - answer = (String)strabonWrapper.query(SPARQLQuery, resultFormat); - } - //System.out.println("evaluateQuery: Called..."); + answer = (String) strabonWrapper.query(SPARQLQuery, resultFormat); } } catch (MalformedQueryException e) { e.printStackTrace(); @@ -323,10 +313,6 @@ errorMessage.append(e.getMessage()); } - //System.out.println("evaluateQuery: called wrapper. answer = " + answer); - //System.out.println("evaluateQuery: called wrapper. error = " + ((this.errorMessage == null) ? "" : this.errorMessage)); - - return answer; } diff -r b2667f7bc051 -r 036ab5c5d2c0 endpoint/src/main/java/eu/earthobservatory/org/StrabonEndpoint/ResponseMessages.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/endpoint/src/main/java/eu/earthobservatory/org/StrabonEndpoint/ResponseMessages.java Thu Apr 19 14:18:00 2012 +0300 @@ -0,0 +1,47 @@ +/** + * + */ +package eu.earthobservatory.org.StrabonEndpoint; + +/** + * This class holds the methods constructing the various + * responses to a client issuing a query, update, or store + * request. + * + * @author charnik + * + */ +public class ResponseMessages { + + /** + * Used as the template answer for UPDATE queries. + * @return + */ + public static String getXMLHeader() { + return "\n" + + "\n" + + "\t"; + } + + /** + * Used as the template answer for UPDATE queries. + * Actually, it encloses msg around an + * XML element tag. + * @param msg + * @return + */ + public static String getXMLException(String msg) { + return "\n"+msg+"\n\t"; + } + + /** + * Used as the template answer for UPDATE queries. + * @return + */ + public static String getXMLFooter() { + return "\n\n"; + } + + + +} diff -r b2667f7bc051 -r 036ab5c5d2c0 endpoint/src/main/java/eu/earthobservatory/org/StrabonEndpoint/StrabonBeanWrapper.java --- a/endpoint/src/main/java/eu/earthobservatory/org/StrabonEndpoint/StrabonBeanWrapper.java Thu Apr 19 14:04:35 2012 +0300 +++ b/endpoint/src/main/java/eu/earthobservatory/org/StrabonEndpoint/StrabonBeanWrapper.java Thu Apr 19 14:18:00 2012 +0300 @@ -101,19 +101,6 @@ throw new RepositoryException("Could not connect to Strabon."); } - //String newQueryString = TemporalWrapper.rebuildQuery(queryString); - - System.out.println("================================================================"); - System.out.println("Query:"); - System.out.println(queryString); - System.out.println("================================================================"); - System.out.println("Answer format: " + answerFormatStrabon); - System.out.println("================================================================"); - //System.out.println("Rewritten query:"); - //System.out.println(newQueryString); - //System.out.println("================================================================"); - - //return strabon.query(newQueryString, answerFormatStrabon, strabon.getSailRepoConnection()); return strabon.query(queryString, answerFormatStrabon, strabon.getSailRepoConnection()); } diff -r b2667f7bc051 -r 036ab5c5d2c0 endpoint/src/main/java/eu/earthobservatory/org/StrabonEndpoint/UpdateBean.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/endpoint/src/main/java/eu/earthobservatory/org/StrabonEndpoint/UpdateBean.java Thu Apr 19 14:18:00 2012 +0300 @@ -0,0 +1,67 @@ +/** + * + */ +package eu.earthobservatory.org.StrabonEndpoint; + +import java.io.IOException; + +import javax.servlet.ServletConfig; +import javax.servlet.ServletContext; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.openrdf.query.MalformedQueryException; +import org.springframework.web.context.WebApplicationContext; +import org.springframework.web.context.support.WebApplicationContextUtils; + +/** + * @author charnik + * + */ +public class UpdateBean extends HttpServlet { + + private static final long serialVersionUID = -633279376188071670L; + + private StrabonBeanWrapper strabonWrapper; + + public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + doPost(request, response); + } + + @Override + public void init(ServletConfig servletConfig) throws ServletException { + super.init(servletConfig); + + // get strabon wrapper + ServletContext context = getServletContext(); + WebApplicationContext applicationContext = WebApplicationContextUtils.getWebApplicationContext(context); + + strabonWrapper = (StrabonBeanWrapper) applicationContext.getBean("strabonBean"); + } + + public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + String query = request.getParameter("SPARQLQuery"); + + String answer = ""; + try { + if (query == null) { + throw new MalformedQueryException("No SPARQL Update query specified."); + } + + strabonWrapper.getStrabon().update(query, strabonWrapper.getStrabon().getSailRepoConnection()); + response.setStatus(HttpServletResponse.SC_OK); + answer = "true"; + + } catch(MalformedQueryException e) { + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + answer = ResponseMessages.getXMLException(e.getMessage()); + } + + // write response to client + response.getWriter().append(ResponseMessages.getXMLHeader()); + response.getWriter().append(answer); + response.getWriter().append(ResponseMessages.getXMLFooter()); + } +} diff -r b2667f7bc051 -r 036ab5c5d2c0 evaluation/pom.xml --- a/evaluation/pom.xml Thu Apr 19 14:04:35 2012 +0300 +++ b/evaluation/pom.xml Thu Apr 19 14:18:00 2012 +0300 @@ -5,7 +5,7 @@ eu.earthobservatory strabon - 3.1.8-SNAPSHOT + 3.1.9-SNAPSHOT org.openrdf.sesame diff -r b2667f7bc051 -r 036ab5c5d2c0 evaluation/src/main/java/org/openrdf/query/algebra/evaluation/impl/SpatialJoinOptimizer.java --- a/evaluation/src/main/java/org/openrdf/query/algebra/evaluation/impl/SpatialJoinOptimizer.java Thu Apr 19 14:04:35 2012 +0300 +++ b/evaluation/src/main/java/org/openrdf/query/algebra/evaluation/impl/SpatialJoinOptimizer.java Thu Apr 19 14:18:00 2012 +0300 @@ -195,6 +195,7 @@ } //Checking graph to be sure + /* for(int a = 0; a < allNodes; a++) { for(int b = 0; b < allNodes; b++) @@ -204,6 +205,7 @@ } System.out.println(""); } + */ //Time to construct ordered sequence of joins + filters List orderedJoinArgs = new ArrayList(allNodes); @@ -223,9 +225,11 @@ } } + + /* System.out.println("*--REWRITTEN TREE--**"); System.out.println(finalList.toString()); - + */ int varsMapSize = varsMap.size(); for(Integer position : finalList) @@ -724,4 +728,4 @@ } -} \ No newline at end of file +} diff -r b2667f7bc051 -r 036ab5c5d2c0 generaldb/pom.xml --- a/generaldb/pom.xml Thu Apr 19 14:04:35 2012 +0300 +++ b/generaldb/pom.xml Thu Apr 19 14:18:00 2012 +0300 @@ -6,7 +6,7 @@ eu.earthobservatory strabon - 3.1.8-SNAPSHOT + 3.1.9-SNAPSHOT org.openrdf.sesame diff -r b2667f7bc051 -r 036ab5c5d2c0 generaldb/src/main/java/org/openrdf/sail/generaldb/GeneralDBSqlTable.java --- a/generaldb/src/main/java/org/openrdf/sail/generaldb/GeneralDBSqlTable.java Thu Apr 19 14:04:35 2012 +0300 +++ b/generaldb/src/main/java/org/openrdf/sail/generaldb/GeneralDBSqlTable.java Thu Apr 19 14:18:00 2012 +0300 @@ -48,4 +48,6 @@ public abstract String buildDummyFromAndWhere(String fromDummy); public abstract String buildDynamicParameterInteger(); + + public abstract String buildWhere(); } diff -r b2667f7bc051 -r 036ab5c5d2c0 generaldb/src/main/java/org/openrdf/sail/generaldb/GeneralDBTripleRepository.java --- a/generaldb/src/main/java/org/openrdf/sail/generaldb/GeneralDBTripleRepository.java Thu Apr 19 14:04:35 2012 +0300 +++ b/generaldb/src/main/java/org/openrdf/sail/generaldb/GeneralDBTripleRepository.java Thu Apr 19 14:18:00 2012 +0300 @@ -156,17 +156,8 @@ conn.setAutoCommit(false); } - public synchronized void close() - throws SQLException - { - manager.close(); - if (!conn.getAutoCommit()) { - conn.rollback(); - } - conn.setAutoCommit(true); - conn.close(); - releaseLock(); - } + abstract public void close() + throws SQLException; public synchronized void commit() throws SQLException, RdbmsException, InterruptedException diff -r b2667f7bc051 -r 036ab5c5d2c0 generaldb/src/main/java/org/openrdf/sail/generaldb/optimizers/GeneralDBSelectQueryOptimizer.java --- a/generaldb/src/main/java/org/openrdf/sail/generaldb/optimizers/GeneralDBSelectQueryOptimizer.java Thu Apr 19 14:04:35 2012 +0300 +++ b/generaldb/src/main/java/org/openrdf/sail/generaldb/optimizers/GeneralDBSelectQueryOptimizer.java Thu Apr 19 14:18:00 2012 +0300 @@ -187,7 +187,7 @@ this.dataset = dataset; this.bindings = bindings; tupleExpr.visit(this); - System.out.println("placeholder"); + //System.out.println("placeholder"); } @Override diff -r b2667f7bc051 -r 036ab5c5d2c0 generaldb/src/main/java/org/openrdf/sail/generaldb/schema/GeoValueTable.java --- a/generaldb/src/main/java/org/openrdf/sail/generaldb/schema/GeoValueTable.java Thu Apr 19 14:04:35 2012 +0300 +++ b/generaldb/src/main/java/org/openrdf/sail/generaldb/schema/GeoValueTable.java Thu Apr 19 14:18:00 2012 +0300 @@ -139,7 +139,7 @@ INSERT = sb.toString(); sb.delete(0, sb.length()); sb.append("DELETE FROM ").append(table.getName()).append("\n"); - sb.append("WHERE 1=1 "); + sb.append(((GeneralDBSqlTable)table).buildWhere()); EXPUNGE = sb.toString(); if (temporary != null) { sb.delete(0, sb.length()); diff -r b2667f7bc051 -r 036ab5c5d2c0 generaldb/src/main/java/org/openrdf/sail/generaldb/schema/LiteralTable.java --- a/generaldb/src/main/java/org/openrdf/sail/generaldb/schema/LiteralTable.java Thu Apr 19 14:04:35 2012 +0300 +++ b/generaldb/src/main/java/org/openrdf/sail/generaldb/schema/LiteralTable.java Thu Apr 19 14:18:00 2012 +0300 @@ -262,7 +262,7 @@ String[] crs=label.split(";"); if((crs.length == 1)) { - System.out.println("srid not specified. 4326 will be used as default."); + //System.out.println("The coordinate reference system for the spatial literal is not specified. WGS84 (srid 4326) is used (default)."); return 4326; //use this as default } String prefix="http://www.opengis.net/def/crs/EPSG/0/"; @@ -270,9 +270,9 @@ int index=crs[1].lastIndexOf('/'); index++; Integer srid = Integer.parseInt(crs[1].substring(index)); - System.out.println("The EPSG code: " + srid); + //System.out.println("The EPSG code: " + srid); - System.out.println("SRS FOUND:"+srid); + //System.out.println("SRS FOUND:"+srid); return srid; }else{ throw new IllegalArgumentException("MALFORMED URI FOR SRID!!!"); diff -r b2667f7bc051 -r 036ab5c5d2c0 generaldb/src/main/java/org/openrdf/sail/generaldb/schema/ValueTable.java --- a/generaldb/src/main/java/org/openrdf/sail/generaldb/schema/ValueTable.java Thu Apr 19 14:04:35 2012 +0300 +++ b/generaldb/src/main/java/org/openrdf/sail/generaldb/schema/ValueTable.java Thu Apr 19 14:18:00 2012 +0300 @@ -136,7 +136,7 @@ INSERT = sb.toString(); sb.delete(0, sb.length()); sb.append("DELETE FROM ").append(table.getName()).append("\n"); - sb.append("WHERE 1=1 "); + sb.append(table.buildWhere()); EXPUNGE = sb.toString(); if (temporary != null) { sb.delete(0, sb.length()); diff -r b2667f7bc051 -r 036ab5c5d2c0 generaldb/src/main/java/org/openrdf/sail/generaldb/schema/ValueTableFactory.java --- a/generaldb/src/main/java/org/openrdf/sail/generaldb/schema/ValueTableFactory.java Thu Apr 19 14:04:35 2012 +0300 +++ b/generaldb/src/main/java/org/openrdf/sail/generaldb/schema/ValueTableFactory.java Thu Apr 19 14:18:00 2012 +0300 @@ -171,7 +171,7 @@ int sqlType, int length) throws SQLException { - System.out.println("Create GeoValueTable!!"); + //System.out.println("Create GeoValueTable!!"); GeoValueTable table = newGeoValueTable(); table.setRdbmsTable(createTable(conn, name)); diff -r b2667f7bc051 -r 036ab5c5d2c0 monetdb/pom.xml --- a/monetdb/pom.xml Thu Apr 19 14:04:35 2012 +0300 +++ b/monetdb/pom.xml Thu Apr 19 14:18:00 2012 +0300 @@ -6,7 +6,7 @@ eu.earthobservatory strabon - 3.1.8-SNAPSHOT + 3.1.9-SNAPSHOT org.openrdf.sesame diff -r b2667f7bc051 -r 036ab5c5d2c0 monetdb/src/main/java/org/openrdf/sail/monetdb/MonetDBSqlTable.java --- a/monetdb/src/main/java/org/openrdf/sail/monetdb/MonetDBSqlTable.java Thu Apr 19 14:04:35 2012 +0300 +++ b/monetdb/src/main/java/org/openrdf/sail/monetdb/MonetDBSqlTable.java Thu Apr 19 14:18:00 2012 +0300 @@ -74,4 +74,9 @@ public String buildDynamicParameterInteger() { return "CAST( ? AS INTEGER)"; } + + @Override + public String buildWhere() { + return " WHERE (1=1 OR 1=1) "; + } } \ No newline at end of file diff -r b2667f7bc051 -r 036ab5c5d2c0 monetdb/src/main/java/org/openrdf/sail/monetdb/MonetDBTripleRepository.java --- a/monetdb/src/main/java/org/openrdf/sail/monetdb/MonetDBTripleRepository.java Thu Apr 19 14:04:35 2012 +0300 +++ b/monetdb/src/main/java/org/openrdf/sail/monetdb/MonetDBTripleRepository.java Thu Apr 19 14:18:00 2012 +0300 @@ -147,4 +147,24 @@ // } // return sb.toString(); // } + + @Override + public synchronized void close() + throws SQLException + { + manager.close(); + if (!conn.getAutoCommit()) { + conn.rollback(); + } + + /** + * In MonetDBConnectionFactory.createConnection() + * instead of creating a new connection () the connection is shared. + * Here the connection would be closed. This should not be done because it + * would cause to close too. + * */ +// conn.setAutoCommit(true); +// conn.close(); + releaseLock(); + } } diff -r b2667f7bc051 -r 036ab5c5d2c0 monetdb/src/main/java/org/openrdf/sail/monetdb/evaluation/MonetDBSqlExprBuilder.java --- a/monetdb/src/main/java/org/openrdf/sail/monetdb/evaluation/MonetDBSqlExprBuilder.java Thu Apr 19 14:04:35 2012 +0300 +++ b/monetdb/src/main/java/org/openrdf/sail/monetdb/evaluation/MonetDBSqlExprBuilder.java Thu Apr 19 14:18:00 2012 +0300 @@ -25,10 +25,10 @@ @Override public void appendBoolean(boolean booleanValue) { if (booleanValue) { - where.append(" (1=1) "); + where.append(" (1=1 or 1=1) "); } else { - where.append(" (0=1) "); + where.append(" (0=1 or 0=1) "); } } diff -r b2667f7bc051 -r 036ab5c5d2c0 pom.xml --- a/pom.xml Thu Apr 19 14:04:35 2012 +0300 +++ b/pom.xml Thu Apr 19 14:18:00 2012 +0300 @@ -1,11 +1,10 @@ - + 4.0.0 eu.earthobservatory strabon - 3.1.8-SNAPSHOT + 3.1.9-SNAPSHOT pom @@ -30,7 +29,7 @@ - ${project.version} + 3.1.9-SNAPSHOT 2.6.3 3.5.0 1.6.1 @@ -473,6 +472,15 @@ maven-assembly-plugin 2.3 + + + @@ -519,6 +527,23 @@ + + + + + scm:hg:ssh://hg.strabon.di.uoa.gr//opt/hg/Strabon/ diff -r b2667f7bc051 -r 036ab5c5d2c0 postgis/pom.xml --- a/postgis/pom.xml Thu Apr 19 14:04:35 2012 +0300 +++ b/postgis/pom.xml Thu Apr 19 14:18:00 2012 +0300 @@ -6,7 +6,7 @@ eu.earthobservatory strabon - 3.1.8-SNAPSHOT + 3.1.9-SNAPSHOT org.openrdf.sesame diff -r b2667f7bc051 -r 036ab5c5d2c0 postgis/src/main/java/org/openrdf/sail/postgis/PostGISConnectionFactory.java --- a/postgis/src/main/java/org/openrdf/sail/postgis/PostGISConnectionFactory.java Thu Apr 19 14:04:35 2012 +0300 +++ b/postgis/src/main/java/org/openrdf/sail/postgis/PostGISConnectionFactory.java Thu Apr 19 14:18:00 2012 +0300 @@ -67,68 +67,67 @@ @Override public SailConnection createConnection() throws SailException -{ - try { - Connection db = getConnection(); - db.setAutoCommit(true); - if (db.getTransactionIsolation() != TRANSACTION_READ_COMMITTED) { - db.setTransactionIsolation(TRANSACTION_READ_COMMITTED); + { + try { + Connection db = getConnection(); + db.setAutoCommit(true); + if (db.getTransactionIsolation() != TRANSACTION_READ_COMMITTED) { + db.setTransactionIsolation(TRANSACTION_READ_COMMITTED); + } + TripleManager tripleManager = new TripleManager(); + GeneralDBTripleRepository s = new PostGISTripleRepository(); + s.setTripleManager(tripleManager); + s.setValueFactory(vf); + s.setConnection(db); + s.setBNodeTable(bnodeTable); + s.setURITable(uriTable); + s.setLiteralTable(literalTable); + s.setIdSequence(ids); + DefaultSailChangedEvent sailChangedEvent = new DefaultSailChangedEvent(sail); + s.setSailChangedEvent(sailChangedEvent); + TableFactory tables = createTableFactory(); + TransTableManager trans = createTransTableManager(); + trans.setIdSequence(ids); + tripleManager.setTransTableManager(trans); + trans.setBatchQueue(tripleManager.getQueue()); + trans.setSailChangedEvent(sailChangedEvent); + trans.setConnection(db); + trans.setTemporaryTableFactory(tables); + trans.setStatementsTable(tripleTableManager); + trans.setFromDummyTable(getFromDummyTable()); + trans.initialize(); + s.setTransaction(trans); + GeneralDBQueryBuilderFactory bfactory = createQueryBuilderFactory(); + bfactory.setValueFactory(vf); + bfactory.setUsingHashTable(hashManager != null); + s.setQueryBuilderFactory(bfactory); + GeneralDBConnection conn = new GeneralDBConnection(sail, s); + conn.setNamespaces(namespaces); + GeneralDBEvaluationFactory efactory = new PostGISEvaluationFactory(); + efactory.setQueryBuilderFactory(bfactory); + efactory.setRdbmsTripleRepository(s); + efactory.setIdSequence(ids); + conn.setRdbmsEvaluationFactory(efactory); + GeneralDBQueryOptimizer optimizer = createOptimizer(); + GeneralDBSelectQueryOptimizerFactory selectOptimizerFactory = createSelectQueryOptimizerFactory(); + selectOptimizerFactory.setTransTableManager(trans); + selectOptimizerFactory.setValueFactory(vf); + selectOptimizerFactory.setIdSequence(ids); + optimizer.setSelectQueryOptimizerFactory(selectOptimizerFactory); + optimizer.setValueFactory(vf); + optimizer.setBnodeTable(bnodeTable); + optimizer.setUriTable(uriTable); + optimizer.setLiteralTable(literalTable); + optimizer.setHashTable(hashTable); + conn.setRdbmsQueryOptimizer(optimizer); + conn.setLockManager(lock); + return conn; } - TripleManager tripleManager = new TripleManager(); - GeneralDBTripleRepository s = new PostGISTripleRepository(); - s.setTripleManager(tripleManager); - s.setValueFactory(vf); - s.setConnection(db); - s.setBNodeTable(bnodeTable); - s.setURITable(uriTable); - s.setLiteralTable(literalTable); - s.setIdSequence(ids); - DefaultSailChangedEvent sailChangedEvent = new DefaultSailChangedEvent(sail); - s.setSailChangedEvent(sailChangedEvent); - TableFactory tables = createTableFactory(); - TransTableManager trans = createTransTableManager(); - trans.setIdSequence(ids); - tripleManager.setTransTableManager(trans); - trans.setBatchQueue(tripleManager.getQueue()); - trans.setSailChangedEvent(sailChangedEvent); - trans.setConnection(db); - trans.setTemporaryTableFactory(tables); - trans.setStatementsTable(tripleTableManager); - trans.setFromDummyTable(getFromDummyTable()); - trans.initialize(); - s.setTransaction(trans); - GeneralDBQueryBuilderFactory bfactory = createQueryBuilderFactory(); - bfactory.setValueFactory(vf); - bfactory.setUsingHashTable(hashManager != null); - s.setQueryBuilderFactory(bfactory); - GeneralDBConnection conn = new GeneralDBConnection(sail, s); - conn.setNamespaces(namespaces); - GeneralDBEvaluationFactory efactory = new PostGISEvaluationFactory(); - efactory.setQueryBuilderFactory(bfactory); - efactory.setRdbmsTripleRepository(s); - efactory.setIdSequence(ids); - conn.setRdbmsEvaluationFactory(efactory); - GeneralDBQueryOptimizer optimizer = createOptimizer(); - GeneralDBSelectQueryOptimizerFactory selectOptimizerFactory = createSelectQueryOptimizerFactory(); - selectOptimizerFactory.setTransTableManager(trans); - selectOptimizerFactory.setValueFactory(vf); - selectOptimizerFactory.setIdSequence(ids); - optimizer.setSelectQueryOptimizerFactory(selectOptimizerFactory); - optimizer.setValueFactory(vf); - optimizer.setBnodeTable(bnodeTable); - optimizer.setUriTable(uriTable); - optimizer.setLiteralTable(literalTable); - optimizer.setHashTable(hashTable); - conn.setRdbmsQueryOptimizer(optimizer); - conn.setLockManager(lock); - return conn; + catch (SQLException e) { + throw new RdbmsException(e); + } } - catch (SQLException e) { - throw new RdbmsException(e); - } -} - /** * FROM DUAL * diff -r b2667f7bc051 -r 036ab5c5d2c0 postgis/src/main/java/org/openrdf/sail/postgis/PostGISSqlTable.java --- a/postgis/src/main/java/org/openrdf/sail/postgis/PostGISSqlTable.java Thu Apr 19 14:04:35 2012 +0300 +++ b/postgis/src/main/java/org/openrdf/sail/postgis/PostGISSqlTable.java Thu Apr 19 14:18:00 2012 +0300 @@ -75,4 +75,9 @@ public String buildDynamicParameterInteger() { return "?"; } + + @Override + public String buildWhere() { + return " WHERE (1=1) "; + } } \ No newline at end of file diff -r b2667f7bc051 -r 036ab5c5d2c0 postgis/src/main/java/org/openrdf/sail/postgis/PostGISTripleRepository.java --- a/postgis/src/main/java/org/openrdf/sail/postgis/PostGISTripleRepository.java Thu Apr 19 14:04:35 2012 +0300 +++ b/postgis/src/main/java/org/openrdf/sail/postgis/PostGISTripleRepository.java Thu Apr 19 14:18:00 2012 +0300 @@ -110,4 +110,17 @@ } return sb.toString(); } + + @Override + public synchronized void close() + throws SQLException + { + manager.close(); + if (!conn.getAutoCommit()) { + conn.rollback(); + } + conn.setAutoCommit(true); + conn.close(); + releaseLock(); + } } diff -r b2667f7bc051 -r 036ab5c5d2c0 postgis/src/main/java/org/openrdf/sail/postgis/evaluation/PostGISEvaluation.java --- a/postgis/src/main/java/org/openrdf/sail/postgis/evaluation/PostGISEvaluation.java Thu Apr 19 14:04:35 2012 +0300 +++ b/postgis/src/main/java/org/openrdf/sail/postgis/evaluation/PostGISEvaluation.java Thu Apr 19 14:18:00 2012 +0300 @@ -64,8 +64,8 @@ stmt.setObject(++p, o); } Collection proj = qb.getProjections(); - System.out.println("In PostGIS Evaluation, query is: "); - System.out.println(stmt.toString()); + //System.out.println("The SQL query is: "); + //System.out.println(stmt.toString().replaceAll("\n"," "); GeneralDBBindingIteration result = new PostGISBindingIteration(stmt); result.setProjections(proj); result.setBindings(bindings); @@ -87,4 +87,4 @@ throw new RdbmsQueryEvaluationException(e); } } -} \ No newline at end of file +} diff -r b2667f7bc051 -r 036ab5c5d2c0 resultio/pom.xml --- a/resultio/pom.xml Thu Apr 19 14:04:35 2012 +0300 +++ b/resultio/pom.xml Thu Apr 19 14:18:00 2012 +0300 @@ -5,7 +5,7 @@ eu.earthobservatory strabon - 3.1.8-SNAPSHOT + 3.1.9-SNAPSHOT org.openrdf.sesame diff -r b2667f7bc051 -r 036ab5c5d2c0 runtime/pom.xml --- a/runtime/pom.xml Thu Apr 19 14:04:35 2012 +0300 +++ b/runtime/pom.xml Thu Apr 19 14:18:00 2012 +0300 @@ -5,7 +5,7 @@ eu.earthobservatory strabon - 3.1.8-SNAPSHOT + 3.1.9-SNAPSHOT strabon-runtime diff -r b2667f7bc051 -r 036ab5c5d2c0 runtime/src/main/java/eu/earthobservatory/runtime/generaldb/Strabon.java --- a/runtime/src/main/java/eu/earthobservatory/runtime/generaldb/Strabon.java Thu Apr 19 14:04:35 2012 +0300 +++ b/runtime/src/main/java/eu/earthobservatory/runtime/generaldb/Strabon.java Thu Apr 19 14:18:00 2012 +0300 @@ -150,6 +150,18 @@ } } + public Object query(String queryString) + throws MalformedQueryException, QueryEvaluationException, IOException, TupleQueryResultHandlerException + { + return query(queryString, "", this.getSailRepoConnection()); + } + + public Object query(String queryString, String resultsFormat) + throws MalformedQueryException , QueryEvaluationException, IOException, TupleQueryResultHandlerException + { + return query (queryString, resultsFormat, this.getSailRepoConnection()); + } + public Object query(String queryString, SailRepositoryConnection con) throws MalformedQueryException, QueryEvaluationException, IOException, TupleQueryResultHandlerException { @@ -715,7 +727,7 @@ } // Print results. - System.out.println(retStream.toString()); + //System.out.println(retStream.toString()); //return ret; return retStream.toString(); diff -r b2667f7bc051 -r 036ab5c5d2c0 runtime/src/main/java/eu/earthobservatory/runtime/postgis/DescribeOp.java --- a/runtime/src/main/java/eu/earthobservatory/runtime/postgis/DescribeOp.java Thu Apr 19 14:04:35 2012 +0300 +++ b/runtime/src/main/java/eu/earthobservatory/runtime/postgis/DescribeOp.java Thu Apr 19 14:18:00 2012 +0300 @@ -17,7 +17,7 @@ System.err.println(" is the username to use when connecting to the database "); System.err.println(" is the password to use when connecting to the database"); System.err.println(" is the stSPARQL query to evaluate."); - System.err.println(" is the stSPARQL query to evaluate."); + System.err.println(" is the output file."); System.exit(0); } diff -r b2667f7bc051 -r 036ab5c5d2c0 scripts/endpoint --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/endpoint Thu Apr 19 14:18:00 2012 +0300 @@ -0,0 +1,144 @@ +#!/bin/bash +# +# Script for executing SPARQL queries and SPARQL Update queries +# as well as storing RDF triples on a Strabon Endpoint. +# +# Author: Charalampos (Babis) Nikolaou +# + +function help() { + echo "Usage: `basename ${0}` [OPTIONS] COMMAND ENDPOINT ARGS" + echo + echo "Execute SPARQL and SPARQL Update queries as well as store RDF triples on a Strabon endpoint." + echo + echo " COMMAND : one of query, update, store, or help" + echo " ENDPOINT : the URL of the Strabon Endpoint (e.g., http://localhost:8080/StrabonEndpoint)" + echo " ARGS : arguments according to selected command" + echo + echo "OPTIONS can be any of the following" + echo " -d : don't run, just print what shall be executed" +} + +function help_query() { + echo "Usage: `basename ${0}` query ENDPOINT SPARQL_QUERY" + echo + echo " ENDPOINT : the URL of Strabon Endpoint (e.g., http://localhost:8080/StrabonEndpoint/)" + echo " SPARQL_QUERY : the SPARQL query to execute" +} + +function help_update() { + echo "Usage: `basename ${0}` update ENDPOINT SPARQL_QUERY" + echo + echo " ENDPOINT : the URL of Strabon Endpoint (e.g., http://localhost:8080/StrabonEndpoint/)" + echo " SPARQL_QUERY : the SPARQL update query to execute" +} + +function help_store() { + echo "Usage: `basename ${0}` store ENDPOINT FORMAT -t TRIPLES|-u TRIPLES_URL" + echo + echo " ENDPOINT : the URL of Strabon Endpoint (e.g., http://localhost:8080/StrabonEndpoint/)" + echo " FORMAT : the RDF format of the input (one of RDF/XML, N-Triples, Turtle, N3, TriX, TriG, or BinaryRDF)" + echo " TRIPLES : the RDF triples to store" + echo " TRIPLES_URL : the URL containing the RDF triples to store" +} + +CURL_OPTS="-w HTTP_CODE='%{http_code}\n' -H \"Content-Type:application/x-www-form-urlencoded\" -H \"Accept:text/xml\"" + +# if set to 1, then only the command to be executed is printed +DEBUG=0 + +case "${1}" in + -d) + shift + DEBUG=1 + ;; +esac + +case "${1}" in + help) + shift + if test $# -eq 1; then + case "${1}" in + query) + help_query + ;; + update) + help_update + ;; + store) + help_store + ;; + *) + help + ;; + esac + exit 1 + fi + help + exit 0 + ;; + query) + shift + if ! test $# -eq 2; then + help_query + exit 1 + fi + URL="${1}/Query" + QUERY="${2}" + + # TODO: make it an argument + FORMAT="XML" + + CMD="curl ${CURL_OPTS} -d \"format=${FORMAT}\" --data-urlencode \"SPARQLQuery=${QUERY}\" ${URL}" + ;; + update) + shift + if ! test $# -eq 2; then + help_update + exit 1 + fi + URL="${1}/Update" + QUERY="${2}" + + CMD="curl ${CURL_OPTS} --data-urlencode \"SPARQLQuery=${QUERY}\" ${URL}" + ;; + store) + shift + if ! test $# -eq 4; then + help_store + exit 1 + fi + URL="${1}/Store" + FORMAT="${2}" + case "${3}" in + -t) + TRIPLES="${4}" + CMD="curl ${CURL_OPTS} -d \"format=${FORMAT}\" --data-urlencode \"data=${TRIPLES}\" ${URL}" + ;; + -u) + URL_TRIPLES="${4}" + CMD="curl ${CURL_OPTS} -d \"format=${FORMAT}\" --data-urlencode \"url=${URL_TRIPLES}\" -d \"fromurl=\" ${URL}" + ;; + *) + help_store + exit 1 + ;; + esac + ;; + *) + help + echo + echo "ERROR: Unknown command \"${1}\"." + exit 1 + ;; +esac + +# execute or debug +if test $DEBUG -eq 1; then + echo "`basename ${0}`: Debug is ON" + echo "`basename ${0}`: Printing command for execution" + echo " $CMD" +else + eval ${CMD} +fi +