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 2012/02/05 21:26:05 UTC

svn commit: r1240797 - in /incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki: FusekiCmd.java server/FusekiConfig.java server/SPARQLServer.java server/ServerConfig.java

Author: andy
Date: Sun Feb  5 20:26:04 2012
New Revision: 1240797

URL: http://svn.apache.org/viewvc?rev=1240797&view=rev
Log:
Restructure to have a server configuration struct.

Added:
    incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/server/ServerConfig.java
Modified:
    incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/FusekiCmd.java
    incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/server/FusekiConfig.java
    incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/server/SPARQLServer.java

Modified: incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/FusekiCmd.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/FusekiCmd.java?rev=1240797&r1=1240796&r2=1240797&view=diff
==============================================================================
--- incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/FusekiCmd.java (original)
+++ incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/FusekiCmd.java Sun Feb  5 20:26:04 2012
@@ -23,13 +23,12 @@ import static org.apache.jena.fuseki.Fus
 import java.io.InputStream ;
 import java.net.InetAddress ;
 import java.net.UnknownHostException ;
-import java.util.Arrays ;
 import java.util.List ;
 
 import org.apache.jena.fuseki.mgt.ManagementServer ;
-import org.apache.jena.fuseki.server.DatasetRef ;
 import org.apache.jena.fuseki.server.FusekiConfig ;
 import org.apache.jena.fuseki.server.SPARQLServer ;
+import org.apache.jena.fuseki.server.ServerConfig ;
 import org.eclipse.jetty.server.Server ;
 import org.openjena.atlas.io.IO ;
 import org.openjena.atlas.lib.FileOps ;
@@ -322,8 +321,6 @@ public class FusekiCmd extends CmdARQ
                  homeDir = "." ;
         }
         
-        SPARQLServer server ;
-
         homeDir = sort_out_dir(homeDir) ;
         
         String pagesDir = homeDir+Fuseki.PagesAll ;
@@ -333,17 +330,25 @@ public class FusekiCmd extends CmdARQ
         if ( jettyConfigFile != null )
             Fuseki.configLog.info("Jetty configuration: "+jettyConfigFile) ;
         
+        ServerConfig serverConfig ;
+        
         if ( fusekiConfigFile != null )
         {
             Fuseki.configLog.info("Configuration file: "+fusekiConfigFile) ;
-            List<DatasetRef> services = FusekiConfig.configure(fusekiConfigFile) ;
-            server =  new SPARQLServer(jettyConfigFile, port, services, pagesDir) ;
+            serverConfig = FusekiConfig.configure(fusekiConfigFile) ;
         }
         else
-        {
-            DatasetRef sDesc = FusekiConfig.defaultConfiguration(datasetPath, dsg, allowUpdate) ;
-            server = new SPARQLServer(jettyConfigFile, port, Arrays.asList(sDesc), pagesDir ) ;
-        }
+            serverConfig = FusekiConfig.defaultConfiguration(datasetPath, dsg, allowUpdate) ;
+        
+        // TODO Get from parsing config file.
+        serverConfig.port = port ;
+        serverConfig.pages = pagesDir ;
+        serverConfig.mgtPort = mgtPort ;
+        serverConfig.pagesPort = port ;
+        serverConfig.jettyConfigFile = jettyConfigFile ;
+        
+        SPARQLServer server = new SPARQLServer(serverConfig) ;
+        
         // Temporary
         Fuseki.setServer(server) ;
         

Modified: incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/server/FusekiConfig.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/server/FusekiConfig.java?rev=1240797&r1=1240796&r2=1240797&view=diff
==============================================================================
--- incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/server/FusekiConfig.java (original)
+++ incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/server/FusekiConfig.java Sun Feb  5 20:26:04 2012
@@ -20,6 +20,7 @@ package org.apache.jena.fuseki.server;
 
 import java.lang.reflect.Method ;
 import java.util.ArrayList ;
+import java.util.Arrays ;
 import java.util.List ;
 
 import org.apache.jena.fuseki.Fuseki ;
@@ -83,7 +84,7 @@ public class FusekiConfig
     "PREFIX afn:     <http://jena.hpl.hp.com/ARQ/function#>" ,
     "") ;
     
-    public static DatasetRef defaultConfiguration(String datasetPath, DatasetGraph dsg, boolean allowUpdate)
+    public static ServerConfig defaultConfiguration(String datasetPath, DatasetGraph dsg, boolean allowUpdate)
     {
         DatasetRef sDesc = new DatasetRef() ;
         sDesc.name = datasetPath ;
@@ -99,10 +100,18 @@ public class FusekiConfig
         }
         else
             sDesc.readGraphStoreEP.add(HttpNames.ServiceData) ;
-        return sDesc ;
+        
+        ServerConfig config = new ServerConfig() ;
+        config.services = Arrays.asList(sDesc) ;
+        config.port = 3030 ;
+        config.mgtPort = 3031 ;
+        config.pagesPort = config.port ;
+        config.jettyConfigFile = null ;
+        config.pages = "Pages-Update" ;
+        return config ;
     }
     
-    public static List<DatasetRef> configure(String filename)
+    public static ServerConfig configure(String filename)
     {
         // Be absolutely sure everything has initaialized.
         // Some initialization registers assemblers and sets abbreviation vocabulary. 
@@ -137,7 +146,15 @@ public class FusekiConfig
             services.add(sd) ;
         }
         
-        return services ;
+        // TODO Properties for the other fields.
+        ServerConfig config = new ServerConfig() ;
+        config.services = services ;
+        config.port = 3030 ;
+        config.mgtPort = 3031 ;
+        config.pagesPort = config.port ;
+        config.jettyConfigFile = null ;
+        config.pages = "Pages-Update" ;
+        return config ;
     }
 
     private static void processServer(Resource server)

Modified: incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/server/SPARQLServer.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/server/SPARQLServer.java?rev=1240797&r1=1240796&r2=1240797&view=diff
==============================================================================
--- incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/server/SPARQLServer.java (original)
+++ incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/server/SPARQLServer.java Sun Feb  5 20:26:04 2012
@@ -56,23 +56,22 @@ public class SPARQLServer
 {
     static { Fuseki.init() ; }
     
+    private ServerConfig serverConfig ;
+    
     private Server server = null ;
-    private String datasetPath ;
-    private int port ;
+//    private int port ;
     private boolean verbose = false ;
-    private List<DatasetRef> datasetRefs ;
-    private String pagesDir ;
+//    private List<DatasetRef> datasetRefs ;
+//    private String pagesDir ;
     
     //private static int ThreadPoolSize = 100 ;
     
-    public SPARQLServer(String jettyConfig, int port, List<DatasetRef> services, String pages)
+    public SPARQLServer(ServerConfig config)
     {
-        this.port = port ; 
-        this.datasetRefs = services ;
-        this.pagesDir = pages ;
-        ServletContextHandler context = buildServer(jettyConfig) ;
+        this.serverConfig = config ;  
+        ServletContextHandler context = buildServer(serverConfig.jettyConfigFile) ;
         // Build them all.
-        for ( DatasetRef sDesc : services )
+        for ( DatasetRef sDesc : serverConfig.services )
             configureOneDataset(context, sDesc) ;
     }
     
@@ -107,7 +106,7 @@ public class SPARQLServer
     }
     
     public Server getServer() { return server ; }
-    public List<DatasetRef> getDatasets() { return datasetRefs ; }
+    public List<DatasetRef> getDatasets() { return serverConfig.services ; }
     
     // Later : private and in constructor.
     private ServletContextHandler buildServer(String jettyConfig)
@@ -119,7 +118,7 @@ public class SPARQLServer
             server = configServer(jettyConfig) ;
         }
         else 
-            server = defaultServerConfig(port) ; 
+            server = defaultServerConfig(serverConfig.port) ; 
         // Keep the server to a maximum number of threads.
         //server.setThreadPool(new QueuedThreadPool(ThreadPoolSize)) ;
         
@@ -138,7 +137,7 @@ public class SPARQLServer
         mt.addMimeMapping("trig",   WebContent.contentTypeTriG+";charset=utf-8") ;
         context.setMimeTypes(mt) ;
         
-        serverLog.debug("Pages = "+pagesDir) ;
+        serverLog.debug("Pages = "+serverConfig.pages) ;
         
         boolean installManager = true ;
         boolean installServices = true ;
@@ -150,12 +149,16 @@ public class SPARQLServer
         
         if ( installManager || installServices)
         {
+            // TODO Respect port.
+            if ( serverConfig.pagesPort != serverConfig.port )
+                serverLog.warn("Not supported yet - pages on a different port to services") ;
+            
             server.setHandler(context);
 
             HttpServlet jspServlet = new org.apache.jasper.servlet.JspServlet() ;
             ServletHolder jspContent = new ServletHolder(jspServlet) ;
             //?? Need separate context for admin stuff??
-            context.setResourceBase(pagesDir) ;
+            context.setResourceBase(serverConfig.pages) ;
             addServlet(context, jspContent, "*.jsp") ;
         }
         
@@ -192,7 +195,7 @@ public class SPARQLServer
             String [] files = { "fuseki.html" } ;
             context.setWelcomeFiles(files) ;
             //  if this is /* then don't see *.jsp. Why?
-            addContent(context, "/", pagesDir) ;
+            addContent(context, "/", serverConfig.pages) ;
         }
         
         return context ; 

Added: incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/server/ServerConfig.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/server/ServerConfig.java?rev=1240797&view=auto
==============================================================================
--- incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/server/ServerConfig.java (added)
+++ incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/server/ServerConfig.java Sun Feb  5 20:26:04 2012
@@ -0,0 +1,43 @@
+/**
+ * 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.server;
+
+import java.util.List ;
+
+/** This represents a configuration of a SPARQL server.
+ */
+
+// Not yet used.
+
+public class ServerConfig
+{
+    /** Port to run the server service on */
+    public int port ;
+    /** Port for the management interface : -1 for no mamangement interface */ 
+    public int mgtPort ;
+    /** Port for the pages UI : this can be the same as the services port. */ 
+    public int pagesPort ;
+    /** Jetty config file - if null, use the built-in configuration of Jetty */
+    public String jettyConfigFile ;
+    /** The local directory for serving the static pages */ 
+    public String pages ;
+    /** The list of services */
+    public List<DatasetRef> services ;
+}
+