Fixes double-slash issue with component context
Change-Id: I58d623554ea35aab6db056bf5b5d28a34c3bbe5f
Signed-off-by: Daniel Espen <Daniel.Espen@iese.fraunhofer.de>
diff --git a/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/configuration/BaSyxContextConfiguration.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/configuration/BaSyxContextConfiguration.java
index 7d0f5f5..46c0325 100644
--- a/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/configuration/BaSyxContextConfiguration.java
+++ b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/configuration/BaSyxContextConfiguration.java
@@ -3,6 +3,7 @@
import java.util.HashMap;
import java.util.Map;
+import org.eclipse.basyx.vab.modelprovider.VABPathTools;
import org.eclipse.basyx.vab.protocol.http.server.BaSyxContext;
/**
@@ -17,7 +18,7 @@
public static final String ENV_PREFIX = "BaSyxContext_";
// Default BaSyx Context configuration
- public static final String DEFAULT_CONTEXTPATH = "/basys.sdk";
+ public static final String DEFAULT_CONTEXTPATH = "basys.sdk";
public static final String DEFAULT_DOCBASE = System.getProperty("java.io.tmpdir");
public static final String DEFAULT_HOSTNAME = "localhost";
public static final int DEFAULT_PORT = 4000;
@@ -107,7 +108,7 @@
}
public void setContextPath(String contextPath) {
- setProperty(CONTEXTPATH, contextPath);
+ setProperty(CONTEXTPATH, VABPathTools.stripSlashes(contextPath));
}
public String getDocBasePath() {
@@ -135,6 +136,12 @@
}
public String getUrl() {
- return "http://" + getHostname() + ":" + getPort() + "/" + getContextPath();
+ String contextPath = getContextPath();
+ String base = "http://" + getHostname() + ":" + getPort();
+ if (contextPath.isEmpty()) {
+ return base;
+ } else {
+ return VABPathTools.concatenatePaths(base, contextPath);
+ }
}
}