diff --git a/experimental/uloapi/src/main/java/info/mathhub/uloapi/query/GraphDB.java b/experimental/uloapi/src/main/java/info/mathhub/uloapi/query/GraphDB.java index 055c86d57b8618c4da4ab5c1adc50a7d9cf8722c..7d3983d1d67fa76cd468f0ec99040134e8e66067 100644 --- a/experimental/uloapi/src/main/java/info/mathhub/uloapi/query/GraphDB.java +++ b/experimental/uloapi/src/main/java/info/mathhub/uloapi/query/GraphDB.java @@ -23,7 +23,7 @@ public class GraphDB { * Functional interface that defines a function for running operations on * a GraphDB database. */ - private interface Operation<T> { + public interface Operation<T> { /** * Run some operation connected to a database. * diff --git a/experimental/uloapi/src/main/java/info/mathhub/uloapi/query/Query.java b/experimental/uloapi/src/main/java/info/mathhub/uloapi/query/Query.java index c3d861222bf8b3c884ab43102b30452eb1c34760..70175d7ee0b7dd5866e132e0876b71fb9f0a4b24 100644 --- a/experimental/uloapi/src/main/java/info/mathhub/uloapi/query/Query.java +++ b/experimental/uloapi/src/main/java/info/mathhub/uloapi/query/Query.java @@ -1,7 +1,32 @@ package info.mathhub.uloapi.query; +import info.mathhub.uloapi.config.Config; + public class Query { + private final String serverUrl; + private final String repository; + + private static Query singleton; + + public Query(String serverUrl, String repository) { + this.serverUrl = serverUrl; + this.repository = repository; + } + + public static synchronized Query getSingleton() { + if (Query.singleton == null) { + Query.singleton = new Query(Config.serverUrl(), Config.repository()); + } + + return Query.singleton; + } + public Statistics getStatistics() { - return new Statistics(10); + final GraphDB.Operation<Long> operation = (manager, repository, connection) -> { + return connection.size(); + }; + + final long numTriplets = GraphDB.execute(this.serverUrl, this.repository, operation); + return new Statistics(numTriplets); } } diff --git a/experimental/uloapi/src/main/java/info/mathhub/uloapi/query/Statistics.java b/experimental/uloapi/src/main/java/info/mathhub/uloapi/query/Statistics.java index f32b9dbb4063094e28e3b677d17b2721cbbe45db..380e6ca9d46f6c31d9c247c943d25f563ce77e3f 100644 --- a/experimental/uloapi/src/main/java/info/mathhub/uloapi/query/Statistics.java +++ b/experimental/uloapi/src/main/java/info/mathhub/uloapi/query/Statistics.java @@ -9,7 +9,7 @@ public class Statistics { */ public long numTriplets; - Statistics(int numTriplets) { + Statistics(long numTriplets) { this.numTriplets = numTriplets; } } diff --git a/experimental/uloapi/src/main/java/info/mathhub/uloapi/rest/Routes.java b/experimental/uloapi/src/main/java/info/mathhub/uloapi/rest/Routes.java index 9202dfb6299ada0ed00ff177a40bf3756d284969..d563690a489f55464333dc31d1237627a0fd142b 100644 --- a/experimental/uloapi/src/main/java/info/mathhub/uloapi/rest/Routes.java +++ b/experimental/uloapi/src/main/java/info/mathhub/uloapi/rest/Routes.java @@ -18,7 +18,7 @@ public class Routes { }; public static final Route statistics = (Request request, Response response) -> { - return new Query().getStatistics(); + return Query.getSingleton().getStatistics(); }; public static final Route name = (Request request, Response response) -> { diff --git a/experimental/uloapi/src/main/resources/uloapi.properties b/experimental/uloapi/src/main/resources/uloapi.properties index b67e220c850e1e1e15f99bec3a5f4f78697306ae..ee82139db6ca7f3e43ec82a1f0da0121399fdd08 100644 --- a/experimental/uloapi/src/main/resources/uloapi.properties +++ b/experimental/uloapi/src/main/resources/uloapi.properties @@ -1,2 +1,2 @@ -info.mathhub.uloapi.config.serverurl="http://graphdb:7200" -info.mathhub.uloapi.config.repository="myulo" \ No newline at end of file +info.mathhub.uloapi.config.serverurl=http://rdf:7200 +info.mathhub.uloapi.config.repository=myulo \ No newline at end of file