From 68f5fe3827735560c289881d02adfca08baec16f Mon Sep 17 00:00:00 2001
From: Tobias Pietzsch <tobias.pietzsch@gmail.com>
Date: Wed, 11 Feb 2015 19:49:17 +0100
Subject: [PATCH] Constants defines reserved names ("json", "manager") that
cannot be used as dataset names.
---
src/main/java/bdv/server/BigDataServer.java | 3 +++
src/main/java/bdv/server/Constants.java | 14 ++++++++++++++
src/main/java/bdv/server/JsonHandler.java | 2 +-
src/main/java/bdv/server/ManagerHandler.java | 4 +++-
4 files changed, 21 insertions(+), 2 deletions(-)
create mode 100644 src/main/java/bdv/server/Constants.java
diff --git a/src/main/java/bdv/server/BigDataServer.java b/src/main/java/bdv/server/BigDataServer.java
index 07e480b..dd6dbd5 100644
--- a/src/main/java/bdv/server/BigDataServer.java
+++ b/src/main/java/bdv/server/BigDataServer.java
@@ -256,6 +256,9 @@ public class BigDataServer
private static void tryAddDataset( final HashMap< String, String > datasetNameToXML, final String name, final String xmlpath ) throws IllegalArgumentException
{
+ for ( final String reserved : Constants.RESERVED_CONTEXT_NAMES )
+ if ( name.equals( reserved ) )
+ throw new IllegalArgumentException( "Cannot use dataset name: \"" + name + "\" (reserved for internal use)." );
if ( datasetNameToXML.containsKey( name ) )
throw new IllegalArgumentException( "Duplicate dataset name: \"" + name + "\"" );
if ( Files.notExists( Paths.get( xmlpath ) ) )
diff --git a/src/main/java/bdv/server/Constants.java b/src/main/java/bdv/server/Constants.java
new file mode 100644
index 0000000..8b59187
--- /dev/null
+++ b/src/main/java/bdv/server/Constants.java
@@ -0,0 +1,14 @@
+package bdv.server;
+
+public class Constants
+{
+ public static final String DATASETLIST_CONTEXT_NAME = "json";
+
+ public static final String MANAGER_CONTEXT_NAME = "manager";
+
+ public static final String[] RESERVED_CONTEXT_NAMES = new String[]
+ {
+ DATASETLIST_CONTEXT_NAME,
+ MANAGER_CONTEXT_NAME
+ };
+}
diff --git a/src/main/java/bdv/server/JsonHandler.java b/src/main/java/bdv/server/JsonHandler.java
index d356ce2..33f9c45 100644
--- a/src/main/java/bdv/server/JsonHandler.java
+++ b/src/main/java/bdv/server/JsonHandler.java
@@ -25,7 +25,7 @@ public class JsonHandler extends ContextHandler
public JsonHandler( final Server server, final ContextHandlerCollection handlers ) throws IOException, URISyntaxException
{
this.server = server;
- setContextPath( "/json" );
+ setContextPath( "/" + Constants.DATASETLIST_CONTEXT_NAME );
}
@Override
diff --git a/src/main/java/bdv/server/ManagerHandler.java b/src/main/java/bdv/server/ManagerHandler.java
index a50ecad..ef23e50 100644
--- a/src/main/java/bdv/server/ManagerHandler.java
+++ b/src/main/java/bdv/server/ManagerHandler.java
@@ -1,6 +1,7 @@
package bdv.server;
import mpicbg.spim.data.SpimDataException;
+
import org.antlr.stringtemplate.StringTemplate;
import org.antlr.stringtemplate.StringTemplateGroup;
import org.eclipse.jetty.server.ConnectorStatistics;
@@ -15,6 +16,7 @@ import org.eclipse.jetty.util.log.Log;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
@@ -48,7 +50,7 @@ public class ManagerHandler extends ContextHandler
this.handlers = handlers;
this.statHandler = statHandler;
this.connectorStats = connectorStats;
- setContextPath( "/manager" );
+ setContextPath( "/" + Constants.MANAGER_CONTEXT_NAME );
}
@Override
--
GitLab