Author: andy
Date: Mon Nov 11 17:00:56 2013
New Revision: 1540778
URL: http://svn.apache.org/r1540778
Log:
Convenience setup for an embedded Fuseki server.\nConvert to use in testing.
Added:
jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/EmbeddedFusekiServer.java
Modified:
jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/server/SPARQLServer.java
jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/server/ServerConfig.java
jena/trunk/jena-fuseki/src/test/java/org/apache/jena/fuseki/ServerTest.java
Added:
jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/EmbeddedFusekiServer.java
URL:
http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/EmbeddedFusekiServer.java?rev=1540778&view=auto
==============================================================================
---
jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/EmbeddedFusekiServer.java
(added)
+++
jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/EmbeddedFusekiServer.java
Mon Nov 11 17:00:56 2013
@@ -0,0 +1,86 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.fuseki;
+
+import org.apache.jena.atlas.lib.FileOps ;
+import org.apache.jena.fuseki.server.FusekiConfig ;
+import org.apache.jena.fuseki.server.SPARQLServer ;
+import org.apache.jena.fuseki.server.ServerConfig ;
+
+import com.hp.hpl.jena.sparql.core.DatasetGraph ;
+import com.hp.hpl.jena.sparql.core.DatasetGraphFactory ;
+import com.hp.hpl.jena.tdb.TDBFactory ;
+
+/** Embedded (same JVM) server.
+ * <p>Example for one server per test suite:
+ * <pre>
+ private static EmbeddedFusekiServer server = null ;
+ \@BeforeClass public static void beforeClass() {
+ server = EmbeddedFusekiServer.createMemByPath(3030, "/test") ;
+ server.start() ;
+ \@AfterClass public static void afterClass() {
+ server.stop() ;
+ }
+ </pre>
+ */
+public class EmbeddedFusekiServer
+{
+
+ public static EmbeddedFusekiServer mem(int port, String datasetPath) {
+ DatasetGraph dsg = DatasetGraphFactory.createMem() ;
+ return EmbeddedFusekiServer.create(port, dsg, datasetPath) ;
+ }
+
+ public static EmbeddedFusekiServer memTDB(int port, String datasetPath) {
+ DatasetGraph dsg = TDBFactory.createDatasetGraph() ;
+ return EmbeddedFusekiServer.create(port, dsg, datasetPath) ;
+ }
+
+ public static EmbeddedFusekiServer create(int port, DatasetGraph dsg,
String datasetPath) {
+ ServerConfig conf = FusekiConfig.defaultConfiguration(datasetPath,
dsg, true, true) ;
+ conf.port = port ;
+ conf.pagesPort = port ;
+ if ( ! FileOps.exists(conf.pages) )
+ conf.pages = null ;
+ return new EmbeddedFusekiServer(conf) ;
+ }
+
+ public static EmbeddedFusekiServer configure(int port, String fileConfig) {
+ ServerConfig conf = FusekiConfig.configure(fileConfig) ;
+ conf.port = port ;
+ conf.pagesPort = port ;
+ if ( ! FileOps.exists(conf.pages) )
+ conf.pages = null ;
+ return new EmbeddedFusekiServer(conf) ;
+ }
+
+ private SPARQLServer server = null ;
+
+ public EmbeddedFusekiServer(ServerConfig conf) {
+ server = new SPARQLServer(conf) ;
+ }
+
+ public void start() {
+ server.start() ;
+ }
+
+ public void stop() {
+ server.stop() ;
+ }
+}
Modified:
jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/server/SPARQLServer.java
URL:
http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/server/SPARQLServer.java?rev=1540778&r1=1540777&r2=1540778&view=diff
==============================================================================
---
jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/server/SPARQLServer.java
(original)
+++
jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/server/SPARQLServer.java
Mon Nov 11 17:00:56 2013
@@ -27,6 +27,7 @@ import java.util.* ;
import javax.servlet.DispatcherType ;
import javax.servlet.http.HttpServlet ;
+import org.apache.jena.atlas.lib.FileOps ;
import org.apache.jena.fuseki.Fuseki ;
import org.apache.jena.fuseki.FusekiException ;
import org.apache.jena.fuseki.HttpNames ;
@@ -241,6 +242,8 @@ public class SPARQLServer {
if ( serverConfig.pagesPort != serverConfig.port )
serverLog.warn("Not supported yet - pages on a different port
to services") ;
if ( serverConfig.pages != null ) {
+ if ( ! FileOps.exists(serverConfig.pages) )
+ serverLog.warn("No pages directory -
"+serverConfig.pages) ;
String base = serverConfig.pages ;
Map<String, Object> data = new HashMap<String, Object>() ;
data.put("mgt", new MgtFunctions()) ;
Modified:
jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/server/ServerConfig.java
URL:
http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/server/ServerConfig.java?rev=1540778&r1=1540777&r2=1540778&view=diff
==============================================================================
---
jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/server/ServerConfig.java
(original)
+++
jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/server/ServerConfig.java
Mon Nov 11 17:00:56 2013
@@ -29,7 +29,7 @@ public class ServerConfig
/** Port to run the server service on */
public int port ;
- /** Port for the management interface : -1 for no mamangement interface */
+ /** Port for the management interface : -1 for no management interface */
public int mgtPort ;
/** Port for the pages UI : this can be the same as the services port. */
public int pagesPort ;
Modified:
jena/trunk/jena-fuseki/src/test/java/org/apache/jena/fuseki/ServerTest.java
URL:
http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/src/test/java/org/apache/jena/fuseki/ServerTest.java?rev=1540778&r1=1540777&r2=1540778&view=diff
==============================================================================
--- jena/trunk/jena-fuseki/src/test/java/org/apache/jena/fuseki/ServerTest.java
(original)
+++ jena/trunk/jena-fuseki/src/test/java/org/apache/jena/fuseki/ServerTest.java
Mon Nov 11 17:00:56 2013
@@ -18,10 +18,6 @@
package org.apache.jena.fuseki;
-import org.apache.jena.fuseki.server.FusekiConfig ;
-import org.apache.jena.fuseki.server.SPARQLServer ;
-import org.apache.jena.fuseki.server.ServerConfig ;
-
import com.hp.hpl.jena.graph.Graph ;
import com.hp.hpl.jena.graph.Node ;
import com.hp.hpl.jena.graph.NodeFactory ;
@@ -69,7 +65,7 @@ public class ServerTest
public static final Model model1 =
ModelFactory.createModelForGraph(graph1) ;
public static final Model model2 =
ModelFactory.createModelForGraph(graph2) ;
- private static SPARQLServer server = null ;
+ private static EmbeddedFusekiServer server = null ;
// reference count of start/stop server
private static int countServer = 0 ;
@@ -97,11 +93,7 @@ public class ServerTest
protected static void setupServer()
{
DatasetGraph dsg = DatasetGraphFactory.createMem() ;
- // This must agree with ServerTest
- ServerConfig conf =
FusekiConfig.defaultConfiguration(ServerTest.datasetPath, dsg, true, true) ;
- conf.port = ServerTest.port ;
- conf.pagesPort = ServerTest.port ;
- server = new SPARQLServer(conf) ;
+ server = EmbeddedFusekiServer.create(port, dsg, datasetPath) ;
server.start() ;
}