Constraint query parameters order
diff --git a/platform/northbound/rest-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/rest/internal/http/HttpRegisteringEndpoint.java b/platform/northbound/rest-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/rest/internal/http/HttpRegisteringEndpoint.java
index e1f8dd1..7396914 100644
--- a/platform/northbound/rest-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/rest/internal/http/HttpRegisteringEndpoint.java
+++ b/platform/northbound/rest-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/rest/internal/http/HttpRegisteringEndpoint.java
@@ -11,8 +11,10 @@
package org.eclipse.sensinact.gateway.nthbnd.rest.internal.http;
import java.io.IOException;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
@@ -22,6 +24,7 @@
import org.eclipse.sensinact.gateway.nthbnd.endpoint.NorthboundMediator;
import org.eclipse.sensinact.gateway.nthbnd.endpoint.NorthboundRequest;
+import org.eclipse.sensinact.gateway.nthbnd.endpoint.NorthboundRequestWrapper.QueryKey;
import org.eclipse.sensinact.gateway.nthbnd.endpoint.RegisteringResponse;
import org.eclipse.sensinact.gateway.nthbnd.rest.internal.RestAccessConstants;
import org.eclipse.sensinact.gateway.util.IOUtils;
@@ -62,17 +65,31 @@
if(queryString == null) {
response.sendError(400, "'create' or 'renew' request parameter expected");
}
- Map<String,List<String>> map = NorthboundRequest.processRequestQuery(queryString);
String query = null;
- List<String> list = map.get("request");
- if(list!= null){
- query = list.get(list.size()-1);
- }else {
- query = map.get("create")!=null?"create":(map.get("renew")!=null?"renew":null);
+ Map<QueryKey,List<String>> map = NorthboundRequest.processRequestQuery(queryString);
+ Set<QueryKey> queryKeys = map.keySet();
+ Iterator<QueryKey> iterator = queryKeys.iterator();
+ while(iterator.hasNext()) {
+ QueryKey queryKey = iterator.next();
+ switch(queryKey.name) {
+ case "request":
+ List<String> list = map.get(queryKey);
+ if(list != null)
+ query = list.get(list.size()-1);
+ break;
+ case "create":
+ case "renew":
+ query = queryKey.name;
+ break;
+ default:
+ break;
+ }
+ if(query!=null)
+ break;
}
- if(query == null) {
+ if(query == null)
response.sendError(400, "'create' or 'renew' request parameter expected");
- }
+
byte[] content = IOUtils.read(request.getInputStream(),false);
JSONObject jcontent = new JSONObject(new String(content));
diff --git a/platform/northbound/rest-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/rest/internal/http/HttpRestAccess.java b/platform/northbound/rest-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/rest/internal/http/HttpRestAccess.java
index dd1e58f..9536552 100644
--- a/platform/northbound/rest-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/rest/internal/http/HttpRestAccess.java
+++ b/platform/northbound/rest-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/rest/internal/http/HttpRestAccess.java
@@ -20,12 +20,15 @@
import org.eclipse.sensinact.gateway.nthbnd.endpoint.NorthboundMediator;
import org.eclipse.sensinact.gateway.nthbnd.endpoint.NorthboundRequest;
import org.eclipse.sensinact.gateway.nthbnd.endpoint.NorthboundRequestBuilder;
+import org.eclipse.sensinact.gateway.nthbnd.endpoint.NorthboundRequestWrapper.QueryKey;
import org.eclipse.sensinact.gateway.nthbnd.rest.internal.RestAccessConstants;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponseWrapper;
import java.io.IOException;
+import java.util.Iterator;
import java.util.List;
+import java.util.Map;
/**
* @author <a href="mailto:cmunilla@kentyou.com">Christophe Munilla</a>
@@ -90,8 +93,16 @@
return false;
}
String result = null;
- List<String> rawList = super.request.getQueryMap().get("rawDescribe");
-
+ List<String> rawList = null;
+ Map<QueryKey, List<String>> queryMap = super.request.getQueryMap();
+ Iterator<QueryKey> iterator = queryMap.keySet().iterator();
+ while(iterator.hasNext()) {
+ QueryKey queryKey = iterator.next();
+ if("rawDescribe".equals(queryKey.name)) {
+ rawList = queryMap.get(queryKey);
+ break;
+ }
+ }
if (rawList != null && (rawList.contains("true") || rawList.contains("True") || rawList.contains("yes") || rawList.contains("Yes")) && DescribeResponse.class.isAssignableFrom(cap.getClass()))
result = ((DescribeResponse<?>) cap).getJSON(true);
else
diff --git a/platform/northbound/rest-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/rest/internal/http/HttpRestAccessRequest.java b/platform/northbound/rest-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/rest/internal/http/HttpRestAccessRequest.java
index 82844f9..3a73407 100644
--- a/platform/northbound/rest-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/rest/internal/http/HttpRestAccessRequest.java
+++ b/platform/northbound/rest-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/rest/internal/http/HttpRestAccessRequest.java
@@ -33,7 +33,7 @@
public class HttpRestAccessRequest extends HttpServletRequestWrapper implements NorthboundRequestWrapper {
private NorthboundMediator mediator;
- private Map<String, List<String>> queryMap;
+ private Map<QueryKey, List<String>> queryMap;
private Authentication<?> authentication;
private String content;
@@ -57,13 +57,13 @@
}
@Override
- public Map<String, List<String>> getQueryMap() {
+ public Map<QueryKey, List<String>> getQueryMap() {
if (this.queryMap == null) {
try {
this.queryMap = NorthboundRequest.processRequestQuery(super.getQueryString());
} catch (UnsupportedEncodingException e) {
mediator.error(e.getMessage(), e);
- this.queryMap = Collections.<String, List<String>>emptyMap();
+ this.queryMap = Collections.<QueryKey, List<String>>emptyMap();
}
}
return queryMap;
diff --git a/platform/northbound/rest-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/rest/internal/ws/WsRestAccess.java b/platform/northbound/rest-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/rest/internal/ws/WsRestAccess.java
index 51053a1..665a391 100644
--- a/platform/northbound/rest-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/rest/internal/ws/WsRestAccess.java
+++ b/platform/northbound/rest-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/rest/internal/ws/WsRestAccess.java
@@ -17,11 +17,14 @@
import org.eclipse.sensinact.gateway.nthbnd.endpoint.NorthboundMediator;
import org.eclipse.sensinact.gateway.nthbnd.endpoint.NorthboundRequest;
import org.eclipse.sensinact.gateway.nthbnd.endpoint.NorthboundRequestBuilder;
+import org.eclipse.sensinact.gateway.nthbnd.endpoint.NorthboundRequestWrapper.QueryKey;
import org.json.JSONObject;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
+import java.util.Iterator;
import java.util.List;
+import java.util.Map;
/**
* Extended {@link NorthboundAccess} dedicated to websocket connections
@@ -64,15 +67,24 @@
return false;
}
String result = null;
- List<String> rawList = super.request.getQueryMap().get("rawDescribe");
-
+ List<String> rawList = null;
+ List<String> acceptEncoding = null;
+
+ Map<QueryKey, List<String>> queryMap = super.request.getQueryMap();
+ Iterator<QueryKey> iterator = queryMap.keySet().iterator();
+ while(iterator.hasNext()) {
+ QueryKey queryKey = iterator.next();
+ if("rawDescribe".equals(queryKey.name))
+ rawList = queryMap.get(queryKey);
+ if("Accept-Encoding".equals(queryKey.name))
+ acceptEncoding= queryMap.get(queryKey);
+ }
if (rawList != null && (rawList.contains("true") || rawList.contains("True") || rawList.contains("yes") || rawList.contains("Yes")) && DescribeResponse.class.isAssignableFrom(cap.getClass())) {
result = ((DescribeResponse<?>) cap).getJSON(true);
} else {
result = cap.getJSON();
}
byte[] resultBytes;
- List<String> acceptEncoding = super.request.getQueryMap().get("Accept-Encoding");
try {
if (acceptEncoding != null && acceptEncoding.contains("gzip")) {
resultBytes = NorthboundAccess.compress(result);
diff --git a/platform/northbound/rest-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/rest/internal/ws/WsRestAccessRequest.java b/platform/northbound/rest-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/rest/internal/ws/WsRestAccessRequest.java
index f9d5462..ada8b5e 100644
--- a/platform/northbound/rest-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/rest/internal/ws/WsRestAccessRequest.java
+++ b/platform/northbound/rest-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/rest/internal/ws/WsRestAccessRequest.java
@@ -35,34 +35,22 @@
this.mediator = mediator;
this.wsConnection = wsConnection;
}
-
- /* (non-Javadoc)
- * @see org.eclipse.sensinact.gateway.nthbnd.endpoint.NorthboundRequestWrapper#getMediator()
- */
+
@Override
public NorthboundMediator getMediator() {
return this.mediator;
}
- /* (non-Javadoc)
- * @see org.eclipse.sensinact.gateway.nthbnd.endpoint.NorthboundRequestWrapper#getRequestID()
- */
@Override
public String getRequestIdProperty() {
return "rid";
}
- /* (non-Javadoc)
- * @see org.eclipse.sensinact.gateway.nthbnd.endpoint.NorthboundRequestWrapper#getRequestID()
- */
@Override
public String getRequestId() {
return (String) this.request.opt(getRequestIdProperty());
}
- /* (non-Javadoc)
- * @see org.eclipse.sensinact.gateway.nthbnd.endpoint.NorthboundRequestWrapper#getRequestURI()
- */
@Override
public String getRequestURI() {
String uri = request.optString("uri");
@@ -70,11 +58,8 @@
return uriElements[0];
}
- /* (non-Javadoc)
- * @see org.eclipse.sensinact.gateway.nthbnd.endpoint.NorthboundRequestWrapper#getQueryMap()
- */
@Override
- public Map<String, List<String>> getQueryMap() {
+ public Map<QueryKey, List<String>> getQueryMap() {
String uri = request.optString("uri");
String[] uriElements = uri.split("\\?");
if (uriElements.length == 2) {
@@ -84,12 +69,9 @@
this.mediator.error(e);
}
}
- return Collections.<String, List<String>>emptyMap();
+ return Collections.<QueryKey, List<String>>emptyMap();
}
- /* (non-Javadoc)
- * @see org.eclipse.sensinact.gateway.nthbnd.endpoint.NorthboundRequestWrapper#getContent()
- */
@Override
public String getContent() {
if (this.content == null) {
@@ -102,17 +84,11 @@
return this.content;
}
- /* (non-Javadoc)
- * @see org.eclipse.sensinact.gateway.nthbnd.endpoint.NorthboundRequestWrapper#getAuthentication()
- */
@Override
public Authentication<?> getAuthentication() {
return null;
}
- /* (non-Javadoc)
- * @see org.eclipse.sensinact.gateway.nthbnd.endpoint.NorthboundRequestWrapper#createRecipient(org.eclipse.sensinact.gateway.core.api.method.Parameter[])
- */
@Override
public NorthboundRecipient createRecipient(List<Parameter> parameters) {
return new WebSocketRecipient(mediator, wsConnection);
diff --git a/platform/northbound/sensinact-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/endpoint/Argument.java b/platform/northbound/sensinact-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/endpoint/Argument.java
index b3bac26..5616c43 100644
--- a/platform/northbound/sensinact-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/endpoint/Argument.java
+++ b/platform/northbound/sensinact-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/endpoint/Argument.java
@@ -18,14 +18,11 @@
public static Object[] getParameters(Argument[] arguments) {
int index = 0;
int length = arguments == null ? 0 : arguments.length;
-
- if (length == 0) {
+ if (length == 0)
return null;
- }
- Object[] parameters = new Object[length];
- for (; index < length; index++) {
+ Object[] parameters = new Object[length];
+ for (; index < length; index++)
parameters[index] = arguments[index].value;
- }
return parameters;
}
diff --git a/platform/northbound/sensinact-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/endpoint/DefaultNorthboundRequestHandler.java b/platform/northbound/sensinact-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/endpoint/DefaultNorthboundRequestHandler.java
index 79dab68..225f6b5 100644
--- a/platform/northbound/sensinact-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/endpoint/DefaultNorthboundRequestHandler.java
+++ b/platform/northbound/sensinact-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/endpoint/DefaultNorthboundRequestHandler.java
@@ -31,6 +31,7 @@
import org.eclipse.sensinact.gateway.core.message.SnaMessage;
import org.eclipse.sensinact.gateway.core.method.AccessMethod;
import org.eclipse.sensinact.gateway.core.method.Parameter;
+import org.eclipse.sensinact.gateway.nthbnd.endpoint.NorthboundRequestWrapper.QueryKey;
import org.eclipse.sensinact.gateway.util.CastUtils;
import org.eclipse.sensinact.gateway.util.UriUtils;
import org.json.JSONArray;
@@ -74,7 +75,7 @@
protected String rid;
protected String method = null;
- private Map<String, List<String>> query;
+ private Map<NorthboundRequestWrapper.QueryKey, List<String>> query;
private NorthboundRequestWrapper request;
private NorthboundResponseBuildError buildError;
private Set<String> methods;
@@ -217,13 +218,17 @@
}
parametersList.add(parameter);
}
- Iterator<Map.Entry<String, List<String>>> iterator = this.query.entrySet().iterator();
+ Iterator<Map.Entry<QueryKey, List<String>>> iterator = this.query.entrySet().iterator();
while (iterator.hasNext()) {
- Map.Entry<String, List<String>> entry = iterator.next();
+ Map.Entry<QueryKey, List<String>> entry = iterator.next();
Parameter parameter = null;
try {
- parameter = new Parameter(mediator, entry.getKey(), entry.getValue().size() > 1 ? JSONArray.class : String.class, entry.getValue().size() == 0 ? "true" : (entry.getValue().size() == 1 ? entry.getValue().get(0) : new JSONArray(entry.getValue())));
+ parameter = new Parameter(mediator,
+ entry.getKey().name,
+ entry.getValue().size() > 1 ? JSONArray.class : String.class,
+ entry.getValue().size() == 0 ? "true" : (entry.getValue().size() == 1 ? entry.getValue().get(0) : new JSONArray(entry.getValue()))
+ );
} catch (InvalidValueException e) {
throw new JSONException(e);
}
diff --git a/platform/northbound/sensinact-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/endpoint/NorthboundEndpoint.java b/platform/northbound/sensinact-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/endpoint/NorthboundEndpoint.java
index 273bc43..cb0ef1c 100644
--- a/platform/northbound/sensinact-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/endpoint/NorthboundEndpoint.java
+++ b/platform/northbound/sensinact-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/endpoint/NorthboundEndpoint.java
@@ -93,11 +93,15 @@
if(!m.getName().equals(meth))
return false;
Class<?>[] types = m.getParameterTypes();
- if(types.length > (parameterTypes.length +1) || types.length < parameterTypes.length)
+ if(types.length < parameterTypes.length && !m.isVarArgs())
return false;
if(types.length == (parameterTypes.length +1) && !m.isVarArgs())
return false;
- for(int i=0;i<parameterTypes.length;i++) {
+ if(types.length > (parameterTypes.length +1))
+ return false;
+ for(int i=0;i<types.length;i++) {
+ if(i == (types.length-1) && (types.length == (parameterTypes.length +1)||types.length < parameterTypes.length))
+ continue;
if(!types[i].isAssignableFrom(parameterTypes[i]))
return false;
}
@@ -107,15 +111,29 @@
Method[] methods = getClass().getDeclaredMethods();
Optional<Method> opt = Arrays.stream(methods).filter(predicate).findFirst();
Method method = opt.isPresent()?opt.get():null;
- Object[] args = Argument.getParameters(arguments);
- if(method.isVarArgs() && method.getParameterTypes().length == parameterTypes.length+1) {
- Object[] _args = new Object[parameterTypes.length+1];
- System.arraycopy(args, 0, _args, 0, parameterTypes.length);
- _args[parameterTypes.length] = (Object[])null;
- args = _args;
+ if(method != null) {
+ Object[] args = Argument.getParameters(arguments);
+ if(method.isVarArgs()) {
+ if(method.getParameterTypes().length == parameterTypes.length+1) {
+ Object[] _args = new Object[parameterTypes.length+1];
+ System.arraycopy(args, 0, _args, 0, parameterTypes.length);
+ _args[parameterTypes.length] = (Object[])null;
+ args = _args;
+ } else if(method.getParameterTypes().length < parameterTypes.length) {
+ Object[] _args = new Object[method.getParameterTypes().length];
+ Object[] _var = new Object[(parameterTypes.length - method.getParameterTypes().length) + 1];
+ if(method.getParameterTypes().length>1)
+ System.arraycopy(args, 0, _args, 0, method.getParameterTypes().length-1);
+ int n=0;
+ for(int i=method.getParameterTypes().length - 1; i < parameterTypes.length; i++)
+ _var[n++]=args[i];
+ _args[method.getParameterTypes().length-1] = _var;
+ args = _args;
+ }
+ }
+ result = (AccessMethodResponse<?>) method.invoke(this, args);
}
- result = (AccessMethodResponse<?>) method.invoke(this, args);
} catch (Exception e) {
e.printStackTrace();
this.mediator.error(e);
diff --git a/platform/northbound/sensinact-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/endpoint/NorthboundRequest.java b/platform/northbound/sensinact-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/endpoint/NorthboundRequest.java
index caef646..faab27d 100644
--- a/platform/northbound/sensinact-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/endpoint/NorthboundRequest.java
+++ b/platform/northbound/sensinact-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/endpoint/NorthboundRequest.java
@@ -23,7 +23,8 @@
import java.util.Map;
public abstract class NorthboundRequest implements PathElement, Nameable {
- public static final String ROOT = "/sensinact";
+
+ public static final String ROOT = "/sensinact";
/**
* Builds a map of parameters according to the query String
@@ -34,14 +35,15 @@
* into a map of parameters
* @throws UnsupportedEncodingException
*/
- public static Map<String, List<String>> processRequestQuery(String queryString) throws UnsupportedEncodingException {
- if (queryString == null) {
- return Collections.<String, List<String>>emptyMap();
- }
- Map<String, List<String>> queryMap = new HashMap<String, List<String>>();
+ public static Map<NorthboundRequestWrapper.QueryKey, List<String>> processRequestQuery(String queryString) throws UnsupportedEncodingException {
+ if (queryString == null)
+ return Collections.<NorthboundRequestWrapper.QueryKey, List<String>>emptyMap();
+
+ Map<NorthboundRequestWrapper.QueryKey, List<String>> queryMap = new HashMap<NorthboundRequestWrapper.QueryKey, List<String>>();
char[] characters = queryString.toCharArray();
int index = 0;
+ int pos = 0;
int length = characters.length;
boolean escape = false;
@@ -71,7 +73,7 @@
break;
case '&':
value = element.toString();
- addQueryParameter(queryMap, name, value);
+ addQueryParameter(queryMap, pos++, name, value);
name = null;
value = null;
element = new StringBuilder();
@@ -82,11 +84,11 @@
}
if(name == null && element.length()>0) {
name = element.toString();
- addQueryParameter(queryMap, name, Boolean.TRUE.toString());
+ addQueryParameter(queryMap, pos++, name, Boolean.TRUE.toString());
return queryMap;
}
value = element.toString();
- addQueryParameter(queryMap, name, value);
+ addQueryParameter(queryMap, pos++, name, value);
return queryMap;
}
@@ -103,17 +105,18 @@
* added to the map argument
* @throws UnsupportedEncodingException
*/
- private static void addQueryParameter(Map<String, List<String>> queryMap, String name, String value) throws UnsupportedEncodingException {
- if (name == null || name.length() == 0) {
+ private static void addQueryParameter(Map<NorthboundRequestWrapper.QueryKey, List<String>> queryMap, int pos, String name, String value) throws UnsupportedEncodingException {
+ if (name == null || name.length() == 0)
name = DefaultNorthboundRequestHandler.RAW_QUERY_PARAMETER;
-
- } else {
+ else
name = URLDecoder.decode(name, "UTF-8");
- }
- List<String> values = queryMap.get(name);
+ NorthboundRequestWrapper.QueryKey key = new NorthboundRequestWrapper.QueryKey();
+ key.index = pos;
+ key.name = name;
+ List<String> values = queryMap.get(key);
if (values == null) {
values = new ArrayList<String>();
- queryMap.put(name, values);
+ queryMap.put(key, values);
}
values.add(URLDecoder.decode(value, "UTF-8"));
}
diff --git a/platform/northbound/sensinact-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/endpoint/NorthboundRequestWrapper.java b/platform/northbound/sensinact-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/endpoint/NorthboundRequestWrapper.java
index 4e7cd08..5f2768e 100644
--- a/platform/northbound/sensinact-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/endpoint/NorthboundRequestWrapper.java
+++ b/platform/northbound/sensinact-access/src/main/java/org/eclipse/sensinact/gateway/nthbnd/endpoint/NorthboundRequestWrapper.java
@@ -15,6 +15,7 @@
import org.eclipse.sensinact.gateway.core.method.Parameter;
import org.eclipse.sensinact.gateway.core.security.Authentication;
+import org.eclipse.sensinact.gateway.nthbnd.endpoint.NorthboundRequestWrapper.QueryKey;
/**
* Northbound request wrapper service.
@@ -23,7 +24,17 @@
* characteristics of the request, allowing to treat it
*/
public interface NorthboundRequestWrapper {
- /**
+
+ class QueryKey {
+ public int index;
+ public String name;
+
+ public int hashCode() {
+ return index;
+ }
+ }
+
+ /**
* Returns the {@link NorthboundMediator} of this
* NorthboundAccessWrapper, allowing to interact with
* the OSGi host environment
@@ -65,7 +76,7 @@
* @return the query String of the wrapped request as a
* map
*/
- Map<String, List<String>> getQueryMap();
+ Map<NorthboundRequestWrapper.QueryKey, List<String>> getQueryMap();
/**
* Returns the String content the wrapped request
diff --git a/platform/northbound/sensinact-access/src/test/java/org/eclipse/sensinact/gateway/nthbnd/endpoint/test/NorthboundRequestHandlerTest.java b/platform/northbound/sensinact-access/src/test/java/org/eclipse/sensinact/gateway/nthbnd/endpoint/test/NorthboundRequestHandlerTest.java
index 4972638..64e8695 100644
--- a/platform/northbound/sensinact-access/src/test/java/org/eclipse/sensinact/gateway/nthbnd/endpoint/test/NorthboundRequestHandlerTest.java
+++ b/platform/northbound/sensinact-access/src/test/java/org/eclipse/sensinact/gateway/nthbnd/endpoint/test/NorthboundRequestHandlerTest.java
@@ -193,10 +193,16 @@
}
@Override
- public Map<String, List<String>> getQueryMap() {
- return new HashMap<String, List<String>>() {{
- put("yfilter."+ranky, yfilter);
- put("xfilter."+rankx, xfilter);
+ public Map<QueryKey, List<String>> getQueryMap() {
+ return new HashMap<QueryKey, List<String>>() {{
+ QueryKey k0 = new QueryKey();
+ k0.index = 0;
+ k0.name = "yfilter."+ranky;
+ put(k0 , yfilter);
+ QueryKey k1 = new QueryKey();
+ k1.index = 1;
+ k1.name = "xfilter."+rankx;
+ put(k1, xfilter);
/*put("hideFilter",Arrays.asList("true")); */
}};
}