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 2013/08/04 22:02:06 UTC

svn commit: r1510329 - in /jena/trunk/jena-fuseki: ./ src/main/java/org/apache/jena/fuseki/ src/main/java/org/apache/jena/fuseki/server/ src/test/java/org/apache/jena/fuseki/

Author: andy
Date: Sun Aug  4 20:02:05 2013
New Revision: 1510329

URL: http://svn.apache.org/r1510329
Log:
JENA-499 : Add --localhost to have the server only listen to the loopback interface.

Modified:
    jena/trunk/jena-fuseki/ReleaseNotes.txt
    jena/trunk/jena-fuseki/pom.xml
    jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/FusekiCmd.java
    jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/server/FusekiConfig.java
    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
    jena/trunk/jena-fuseki/src/test/java/org/apache/jena/fuseki/TestAuth.java

Modified: jena/trunk/jena-fuseki/ReleaseNotes.txt
URL: http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/ReleaseNotes.txt?rev=1510329&r1=1510328&r2=1510329&view=diff
==============================================================================
--- jena/trunk/jena-fuseki/ReleaseNotes.txt (original)
+++ jena/trunk/jena-fuseki/ReleaseNotes.txt Sun Aug  4 20:02:05 2013
@@ -4,6 +4,8 @@
 
 + jena-text added to the server : Lucene/solr backed search:
   http://jena.apache.org/documentation/query/text-query.html
++ Upgrade to Jetty 8.1.11.v20130520  
++ JENA-499 : --localhost will cause the server to oonly listen to the loopback interface
 
 == Fuseki 0.2.7
 

Modified: jena/trunk/jena-fuseki/pom.xml
URL: http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/pom.xml?rev=1510329&r1=1510328&r2=1510329&view=diff
==============================================================================
--- jena/trunk/jena-fuseki/pom.xml (original)
+++ jena/trunk/jena-fuseki/pom.xml Sun Aug  4 20:02:05 2013
@@ -75,8 +75,6 @@
     <assembly.zip.name>${this.root}</assembly.zip.name>
 
     <ver.jetty>8.1.11.v20130520</ver.jetty>
-    <!--<ver.jetty>8.1.8.v20121106</ver.jetty>  < ! - - Has stray print "Null identity service..." -->
-    <!-- <ver.jetty>8.1.7.v20120910</ver.jetty> -->
     <ver.velocity>1.7</ver.velocity>
 
     <ver.commons-fileupload>1.2.2</ver.commons-fileupload>

Modified: jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/FusekiCmd.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/FusekiCmd.java?rev=1510329&r1=1510328&r2=1510329&view=diff
==============================================================================
--- jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/FusekiCmd.java (original)
+++ jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/FusekiCmd.java Sun Aug  4 20:02:05 2013
@@ -21,8 +21,6 @@ package org.apache.jena.fuseki;
 import static org.apache.jena.fuseki.Fuseki.serverLog ;
 
 import java.io.InputStream ;
-import java.net.InetAddress ;
-import java.net.UnknownHostException ;
 import java.util.List ;
 
 import org.apache.jena.atlas.io.IO ;
@@ -115,7 +113,7 @@ public class FusekiCmd extends CmdARQ
     private static ArgDecl argMemTDB        = new ArgDecl(ArgDecl.NoValue,  "memtdb", "memTDB") ;
     private static ArgDecl argTDB           = new ArgDecl(ArgDecl.HasValue, "loc", "location") ;
     private static ArgDecl argPort          = new ArgDecl(ArgDecl.HasValue, "port") ;
-    private static ArgDecl argHost          = new ArgDecl(ArgDecl.HasValue, "host") ;
+    private static ArgDecl argLocalhost     = new ArgDecl(ArgDecl.NoValue, "localhost", "local") ;
     private static ArgDecl argTimeout       = new ArgDecl(ArgDecl.HasValue, "timeout") ;
     private static ArgDecl argFusekiConfig  = new ArgDecl(ArgDecl.HasValue, "config", "conf") ;
     private static ArgDecl argJettyConfig   = new ArgDecl(ArgDecl.HasValue, "jetty-config") ;
@@ -144,7 +142,7 @@ public class FusekiCmd extends CmdARQ
     
     private int port                    = 3030 ;
     private int mgtPort                 = -1 ;
-    private String clientHost           = null;
+    private boolean listenLocal         = false ;
 
     private DatasetGraph dsg            = null ; 
     private String datasetPath          = null ;
@@ -174,7 +172,7 @@ public class FusekiCmd extends CmdARQ
         add(argPort,    "--port",               "Listen on this port number") ;
         add(argPages,   "--pages=DIR",          "Set of pages to serve as static content") ; 
         // Set via jetty config file.
-        //add(argHost,    "--host=name or IP",    "Listen on a particular interface (e.g. localhost)") ;
+        add(argLocalhost,   "--localhost",      "Listen only on the localhost interface") ;
         add(argTimeout, "--timeout=",           "Global timeout applied to queries (value in ms) -- format is X[,Y] ") ;
         add(argAllowUpdate, "--update",         "Allow updates (via SPARQL Update and SPARQL HTTP Update)") ;
         add(argFusekiConfig, "--config=",       "Use a configuration file to determine the services") ;
@@ -191,7 +189,7 @@ public class FusekiCmd extends CmdARQ
         super.modVersion.addClass(Fuseki.class) ;
     }
 
-    static String argUsage = "[--config=FILE] [--mem|--desc=AssemblerFile|--file=FILE] [--port PORT] [--host HOST] /DatasetPathName" ; 
+    static String argUsage = "[--config=FILE] [--mem|--desc=AssemblerFile|--file=FILE] [--port PORT] /DatasetPathName" ; 
     
     @Override
     protected String getSummary()
@@ -311,15 +309,8 @@ public class FusekiCmd extends CmdARQ
             }
         }
 
-        if ( contains(argHost) )
-        {
-        	clientHost = getValue(argHost);
-        	try {
-        		InetAddress.getByName(clientHost);
-        	} catch (UnknownHostException e) {
-        		throw new CmdException("unknown host name");
-        	}
-        }
+        if ( contains(argLocalhost) )
+            listenLocal = true ;
             
         if ( fusekiConfigFile == null && dsg == null )
             throw new CmdException("No dataset defined and no configuration file: "+argUsage) ;
@@ -433,13 +424,14 @@ public class FusekiCmd extends CmdARQ
             serverConfig = FusekiConfig.configure(fusekiConfigFile) ;
         }
         else
-            serverConfig = FusekiConfig.defaultConfiguration(datasetPath, dsg, allowUpdate) ;
+            serverConfig = FusekiConfig.defaultConfiguration(datasetPath, dsg, allowUpdate, listenLocal) ;
         
         // TODO Get from parsing config file.
         serverConfig.port = port ;
         serverConfig.pages = staticContentDir ;
         serverConfig.mgtPort = mgtPort ;
         serverConfig.pagesPort = port ;
+        serverConfig.loopback = listenLocal ;
         serverConfig.enableCompression = enableCompression ;
         serverConfig.jettyConfigFile = jettyConfigFile ;
         serverConfig.authConfigFile = authConfigFile ;

Modified: jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/server/FusekiConfig.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/server/FusekiConfig.java?rev=1510329&r1=1510328&r2=1510329&view=diff
==============================================================================
--- jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/server/FusekiConfig.java (original)
+++ jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/server/FusekiConfig.java Sun Aug  4 20:02:05 2013
@@ -84,7 +84,7 @@ public class FusekiConfig
     "PREFIX afn:     <http://jena.hpl.hp.com/ARQ/function#>" ,
     "") ;
     
-    public static ServerConfig defaultConfiguration(String datasetPath, DatasetGraph dsg, boolean allowUpdate)
+    public static ServerConfig defaultConfiguration(String datasetPath, DatasetGraph dsg, boolean allowUpdate, boolean listenLocal)
     {
         DatasetRef dbDesc = new DatasetRef() ;
         dbDesc.name = datasetPath ;
@@ -106,6 +106,7 @@ public class FusekiConfig
         config.port = 3030 ;
         config.mgtPort = 3031 ;
         config.pagesPort = config.port ;
+        config.loopback = listenLocal ;
         config.jettyConfigFile = null ;
         config.pages = Fuseki.PagesStatic ;
         config.enableCompression = true ;

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=1510329&r1=1510328&r2=1510329&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 Sun Aug  4 20:02:05 2013
@@ -168,7 +168,7 @@ public class SPARQLServer {
             // for detailed configuration of the server using Jetty features.
             server = configServer(jettyConfig) ;
         } else
-            server = defaultServerConfig(serverConfig.port) ;
+            server = defaultServerConfig(serverConfig.port, serverConfig.loopback) ;
         // Keep the server to a maximum number of threads.
         // server.setThreadPool(new QueuedThreadPool(ThreadPoolSize)) ;
 
@@ -256,7 +256,7 @@ public class SPARQLServer {
 
             HttpServlet dumpService = new DumpServlet() ;
             HttpServlet generalQueryService = new SPARQL_QueryGeneral() ;
-            // TODO Name management
+
             addServlet(context, validateQuery, validationRoot + "/query", false) ;
             addServlet(context, validateUpdate, validationRoot + "/update", false) ;
             addServlet(context, validateData, validationRoot + "/data", false) ;
@@ -346,7 +346,7 @@ public class SPARQLServer {
         }
     }
 
-    private static Server defaultServerConfig(int port) {
+    private static Server defaultServerConfig(int port, boolean loopback) {
         // Server, with one NIO-based connector, large input buffer size (for
         // long URLs, POSTed forms (queries, updates)).
         Server server = new Server() ;
@@ -369,6 +369,8 @@ public class SPARQLServer {
         // and you get a lot of log messages.
         connector.setMaxIdleTime(0) ; // Jetty outputs a lot of messages if this
                                       // goes off.
+        if ( loopback )
+            connector.setHost("localhost");
         connector.setPort(port) ;
         // Some people do try very large operations ...
         connector.setRequestHeaderSize(64 * 1024) ;

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=1510329&r1=1510328&r2=1510329&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 Sun Aug  4 20:02:05 2013
@@ -34,7 +34,9 @@ public class ServerConfig
     /** 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 ;
+    public String jettyConfigFile = null ;
+    /** Listen only on the loopback (localhost) interface */
+    public boolean loopback = false ;
     /** The local directory for serving the static pages */ 
     public String pages ;
     /** The list of datasets */

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=1510329&r1=1510328&r2=1510329&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 Sun Aug  4 20:02:05 2013
@@ -111,7 +111,7 @@ public class ServerTest
     {
         DatasetGraph dsg = DatasetGraphFactory.createMem() ;
         // This must agree with ServerTest
-        ServerConfig conf = FusekiConfig.defaultConfiguration(ServerTest.datasetPath, dsg, true) ;
+        ServerConfig conf = FusekiConfig.defaultConfiguration(ServerTest.datasetPath, dsg, true, true) ;
         conf.port = ServerTest.port ;
         conf.pagesPort = ServerTest.port ;
         server = new SPARQLServer(conf) ;

Modified: jena/trunk/jena-fuseki/src/test/java/org/apache/jena/fuseki/TestAuth.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/src/test/java/org/apache/jena/fuseki/TestAuth.java?rev=1510329&r1=1510328&r2=1510329&view=diff
==============================================================================
--- jena/trunk/jena-fuseki/src/test/java/org/apache/jena/fuseki/TestAuth.java (original)
+++ jena/trunk/jena-fuseki/src/test/java/org/apache/jena/fuseki/TestAuth.java Sun Aug  4 20:02:05 2013
@@ -83,7 +83,7 @@ public class TestAuth extends ServerTest
 
         DatasetGraph dsg = DatasetGraphFactory.createMem();
         // This must agree with ServerTest
-        ServerConfig conf = FusekiConfig.defaultConfiguration(datasetPath, dsg, true);
+        ServerConfig conf = FusekiConfig.defaultConfiguration(datasetPath, dsg, true, true);
         conf.port = ServerTest.port;
         conf.pagesPort = ServerTest.port;
         conf.authConfigFile = realmFile.getAbsolutePath();