You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2014/06/20 17:48:12 UTC
svn commit: r1604193 - in /jena/Experimental/jena-fuseki2/src:
main/java/org/apache/jena/fuseki/ main/java/org/apache/jena/fuseki/mgt/
test/java/org/apache/jena/fuseki/
Author: andy
Date: Fri Jun 20 15:48:12 2014
New Revision: 1604193
URL: http://svn.apache.org/r1604193
Log:
JENA-719 : Server uptime
Modified:
jena/Experimental/jena-fuseki2/src/main/java/org/apache/jena/fuseki/Fuseki.java
jena/Experimental/jena-fuseki2/src/main/java/org/apache/jena/fuseki/mgt/ActionServerStatus.java
jena/Experimental/jena-fuseki2/src/main/java/org/apache/jena/fuseki/mgt/JsonConst.java
jena/Experimental/jena-fuseki2/src/test/java/org/apache/jena/fuseki/TestAdmin.java
Modified: jena/Experimental/jena-fuseki2/src/main/java/org/apache/jena/fuseki/Fuseki.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-fuseki2/src/main/java/org/apache/jena/fuseki/Fuseki.java?rev=1604193&r1=1604192&r2=1604193&view=diff
==============================================================================
--- jena/Experimental/jena-fuseki2/src/main/java/org/apache/jena/fuseki/Fuseki.java (original)
+++ jena/Experimental/jena-fuseki2/src/main/java/org/apache/jena/fuseki/Fuseki.java Fri Jun 20 15:48:12 2014
@@ -18,6 +18,11 @@
package org.apache.jena.fuseki ;
+import java.util.Calendar ;
+import java.util.GregorianCalendar ;
+import java.util.TimeZone ;
+import java.util.concurrent.TimeUnit ;
+
import org.apache.jena.riot.RIOT ;
import org.apache.jena.riot.stream.LocatorFTP ;
import org.apache.jena.riot.stream.LocatorHTTP ;
@@ -31,6 +36,7 @@ import com.hp.hpl.jena.sparql.lib.Metada
import com.hp.hpl.jena.sparql.mgt.SystemInfo ;
import com.hp.hpl.jena.sparql.util.Context ;
import com.hp.hpl.jena.sparql.util.MappingRegistry ;
+import com.hp.hpl.jena.sparql.util.Utils ;
import com.hp.hpl.jena.tdb.TDB ;
import com.hp.hpl.jena.tdb.transaction.TransactionManager ;
@@ -158,6 +164,31 @@ public class Fuseki {
public static String DFT_FUSEKI_BASE = "." ;
private static boolean initialized = false ;
+
+ // Serevr start time and uptime.
+ private static final long startMillis = System.currentTimeMillis() ;
+ // Hide server locale
+ private static final Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("00:00")) ;
+ static { cal.setTimeInMillis(startMillis) ; } // Exactly the same start point!
+
+ private static final String startDateTime = Utils.calendarToXSDDateTimeString(cal) ;
+
+ /** Return the number of milliseconds since the server started */
+ public static long serverUptimeMillis() {
+ return System.currentTimeMillis() - startMillis ;
+ }
+
+ /** Server uptime in seconds */
+ public static long serverUptimeSeconds() {
+ long x = System.currentTimeMillis() - startMillis ;
+ return TimeUnit.MILLISECONDS.toSeconds(x) ;
+ }
+
+ /** XSD DateTime for when the server started */
+ public static String serverStartedAt() {
+ return startDateTime ;
+ }
+
/**
* Initialize an instance of the Fuseki server stack.
Modified: jena/Experimental/jena-fuseki2/src/main/java/org/apache/jena/fuseki/mgt/ActionServerStatus.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-fuseki2/src/main/java/org/apache/jena/fuseki/mgt/ActionServerStatus.java?rev=1604193&r1=1604192&r2=1604193&view=diff
==============================================================================
--- jena/Experimental/jena-fuseki2/src/main/java/org/apache/jena/fuseki/mgt/ActionServerStatus.java (original)
+++ jena/Experimental/jena-fuseki2/src/main/java/org/apache/jena/fuseki/mgt/ActionServerStatus.java Fri Jun 20 15:48:12 2014
@@ -98,7 +98,11 @@ public class ActionServerStatus extends
builder
.key(JsonConst.version).value(versionStr)
- .key(JsonConst.built).value(builtDateStr) ;
+ .key(JsonConst.built).value(builtDateStr)
+ .key(JsonConst.startDT).value(Fuseki.serverStartedAt())
+ .key(JsonConst.uptime).value(Fuseki.serverUptimeSeconds())
+ ;
+
}
private void describeDataset(JsonBuilder builder) {
Modified: jena/Experimental/jena-fuseki2/src/main/java/org/apache/jena/fuseki/mgt/JsonConst.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-fuseki2/src/main/java/org/apache/jena/fuseki/mgt/JsonConst.java?rev=1604193&r1=1604192&r2=1604193&view=diff
==============================================================================
--- jena/Experimental/jena-fuseki2/src/main/java/org/apache/jena/fuseki/mgt/JsonConst.java (original)
+++ jena/Experimental/jena-fuseki2/src/main/java/org/apache/jena/fuseki/mgt/JsonConst.java Fri Jun 20 15:48:12 2014
@@ -27,6 +27,8 @@ public class JsonConst
public static final String finished = "finished" ;
public static final String started = "started" ;
+ public static final String uptime = "uptime" ;
+ public static final String startDT = "startDateTime" ;
public static final String server = "server" ;
public static final String port = "port" ;
public static final String hostname = "hostname" ;
Modified: jena/Experimental/jena-fuseki2/src/test/java/org/apache/jena/fuseki/TestAdmin.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-fuseki2/src/test/java/org/apache/jena/fuseki/TestAdmin.java?rev=1604193&r1=1604192&r2=1604193&view=diff
==============================================================================
--- jena/Experimental/jena-fuseki2/src/test/java/org/apache/jena/fuseki/TestAdmin.java (original)
+++ jena/Experimental/jena-fuseki2/src/test/java/org/apache/jena/fuseki/TestAdmin.java Fri Jun 20 15:48:12 2014
@@ -21,8 +21,6 @@ package org.apache.jena.fuseki;
import static org.apache.jena.fuseki.ServerTest.datasetPath ;
import static org.apache.jena.fuseki.ServerTest.urlRoot ;
import static org.apache.jena.fuseki.mgt.MgtConst.* ;
-import static org.apache.jena.fuseki.mgt.MgtConst.opPing ;
-import static org.apache.jena.fuseki.mgt.MgtConst.opStats ;
import static org.apache.jena.riot.web.HttpOp.execHttpDelete ;
import static org.apache.jena.riot.web.HttpOp.execHttpGet ;
import static org.apache.jena.riot.web.HttpOp.execHttpPost ;
@@ -48,6 +46,7 @@ import org.apache.jena.atlas.junit.BaseT
import org.apache.jena.atlas.lib.Lib ;
import org.apache.jena.atlas.web.HttpException ;
import org.apache.jena.atlas.web.TypedInputStream ;
+import org.apache.jena.fuseki.mgt.JsonConst ;
import org.apache.jena.riot.WebContent ;
import org.apache.jena.riot.web.HttpOp ;
import org.apache.jena.riot.web.HttpResponseHandler ;
@@ -91,13 +90,18 @@ public class TestAdmin extends BaseTest
// --- Server status
@Test public void server_1() {
- execHttpGet(ServerTest.urlRoot+"$/"+opServer) ;
+ JsonValue jv = httpGetJson(ServerTest.urlRoot+"$/"+opServer) ;
+ JsonObject obj = jv.getAsObject() ;
+ assertTrue(obj.hasKey(JsonConst.admin)) ;
+ assertTrue(obj.hasKey(JsonConst.datasets)) ;
+ assertTrue(obj.hasKey(JsonConst.uptime)) ;
+ assertTrue(obj.hasKey(JsonConst.startDT)) ;
}
@Test public void server_2() {
execHttpPost(ServerTest.urlRoot+"$/"+opServer, null) ;
}
-
+
// --- List all datasets
@Test public void list_datasets_1() {