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() ;
     }
     


Reply via email to