package org.xenei.jdbc4sparql; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.net.URL; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Iterator; import java.util.List; import java.util.Properties; import org.apache.log4j.Level; import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; import org.xenei.jdbc4sparql.iface.Catalog; import com.hp.hpl.jena.query.Query; import com.hp.hpl.jena.query.QueryExecution; import com.hp.hpl.jena.query.QueryExecutionFactory; import com.hp.hpl.jena.query.QueryFactory; import com.hp.hpl.jena.query.QuerySolution; import com.hp.hpl.jena.rdf.model.Model; import com.hp.hpl.jena.util.iterator.WrappedIterator; public class J4SStatementMemTest extends AbstractJ4SStatementTest { // file URL private URL fUrl; // J4SUrl private String url; @Before public void setup() throws Exception { LoggingConfig.setConsole(Level.DEBUG); LoggingConfig.setRootLogger(Level.INFO); LoggingConfig.setLogger("com.hp.hpl.jena.", Level.INFO); LoggingConfig.setLogger("org.xenei.jdbc4sparql", Level.INFO); LoggingConfig.setLogger("org.xenei.jdbc4sparql.sparql", Level.DEBUG ); Class.forName("org.xenei.jdbc4sparql.J4SDriver"); fUrl = J4SDriverTest.class.getResource("./J4SStatementTest.ttl"); url = "jdbc:j4s?catalog=test&type=turtle&builder=org.xenei.jdbc4sparql.sparql.builders.SimpleNullableBuilder:" + fUrl.toString(); final Properties prop = new Properties(); prop.setProperty(J4SPropertyNames.USER_PROPERTY, "myschema"); prop.setProperty(J4SPropertyNames.PASSWORD_PROPERTY, "mypassw"); conn = DriverManager.getConnection(url, prop); conn.setAutoCommit(false); stmt = conn.createStatement(); // This is here to generate the zip file for reading config // ((J4SConnection)conn).saveConfig( new // java.io.File("/tmp/J4SStatementTest.zip")); } @After public void teardown() throws SQLException { stmt.close(); } @Test @Ignore public void arbitraryQuery() throws Exception { final String queryStr = "SELECT ?StringCol ?IntCol ?type ?NullableStringCol ?NullableIntCol " + "WHERE" + " { { { ?v_a8445f5a_4be0_3251_ace0_6443e9719b01 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/jdbc4sparql#fooTable> . " + " ?v_a8445f5a_4be0_3251_ace0_6443e9719b01 <http://example.com/jdbc4sparql#StringCol> ?v_88b57d74_b9f7_3ae1_84d5_303f1b18058b . " + " ?v_a8445f5a_4be0_3251_ace0_6443e9719b01 <http://example.com/jdbc4sparql#IntCol> ?v_c46431c9_f473_33bc_a521_873ebb1d0854 . " + " ?v_a8445f5a_4be0_3251_ace0_6443e9719b01 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ?v_01b7f5c9_44ab_3338_a788_6c35c335963f" + " OPTIONAL" + " { ?v_a8445f5a_4be0_3251_ace0_6443e9719b01 <http://example.com/jdbc4sparql#NullableStringCol> ?v_caccfc47_d184_3d13_9990_16067ed22a39}" + " OPTIONAL" + " { ?v_a8445f5a_4be0_3251_ace0_6443e9719b01 <http://example.com/jdbc4sparql#NullableIntCol> ?v_270611a8_6b7e_3a2b_b560_4709cb515f5a}" + " FILTER ( ( ( ( <java:org.xenei.jdbc4sparql.sparql.CheckTypeF>(?v_88b57d74_b9f7_3ae1_84d5_303f1b18058b, 12, false) && <java:org.xenei.jdbc4sparql.sparql.CheckTypeF>(?v_c46431c9_f473_33bc_a521_873ebb1d0854, 4, false) ) && <java:org.xenei.jdbc4sparql.sparql.CheckTypeF>(?v_01b7f5c9_44ab_3338_a788_6c35c335963f, 12, false) ) && <java:org.xenei.jdbc4sparql.sparql.CheckTypeF>(?v_caccfc47_d184_3d13_9990_16067ed22a39, 12, true) ) && <java:org.xenei.jdbc4sparql.sparql.CheckTypeF>(?v_270611a8_6b7e_3a2b_b560_4709cb515f5a, 4, true) )" + " }" + " BIND(<java:org.xenei.jdbc4sparql.sparql.ForceTypeF>(?v_caccfc47_d184_3d13_9990_16067ed22a39, 12, true) AS ?NullableStringCol)" + " BIND(<java:org.xenei.jdbc4sparql.sparql.ForceTypeF>(?v_01b7f5c9_44ab_3338_a788_6c35c335963f, 12, false) AS ?type)" + " BIND(<java:org.xenei.jdbc4sparql.sparql.ForceTypeF>(?v_270611a8_6b7e_3a2b_b560_4709cb515f5a, 4, true) AS ?NullableIntCol)" + " BIND(<java:org.xenei.jdbc4sparql.sparql.ForceTypeF>(?v_c46431c9_f473_33bc_a521_873ebb1d0854, 4, false) AS ?IntCol)" + " BIND(<java:org.xenei.jdbc4sparql.sparql.ForceTypeF>(?v_88b57d74_b9f7_3ae1_84d5_303f1b18058b, 12, false) AS ?StringCol)" + " }" + " FILTER ( ?StringCol = \"Foo2String\" )" + " }" + " "; final Query query = QueryFactory.create(queryStr); //final Model model = dp.getMetaDatasetUnionModel(); Field f = J4SStatement.class.getDeclaredField("catalog"); f.setAccessible(true); Catalog c = (Catalog) f.get(stmt); List<QuerySolution> lst = c.executeLocalQuery(query); System.out.println( "yeah"); } }