From 5daba06f77a4e62c534153bcb69760c4981549ec Mon Sep 17 00:00:00 2001 From: Timm Fitschen <t.fitschen@indiscale.com> Date: Fri, 17 Jan 2020 11:19:15 +0100 Subject: [PATCH] WIP: json --- .../converter/misc/AbstractContainerHelper.java | 6 +++++- .../server/converter/misc/HttpStatusConverter.java | 11 ++++++++--- .../server/resource/AuthenticationResource.java | 4 +--- .../caosdb/server/resource/XMLServerResource.java | 8 ++++---- 4 files changed, 18 insertions(+), 11 deletions(-) diff --git a/src/main/java/caosdb/server/converter/misc/AbstractContainerHelper.java b/src/main/java/caosdb/server/converter/misc/AbstractContainerHelper.java index 9bace44d..ebcba786 100644 --- a/src/main/java/caosdb/server/converter/misc/AbstractContainerHelper.java +++ b/src/main/java/caosdb/server/converter/misc/AbstractContainerHelper.java @@ -58,10 +58,14 @@ public abstract class AbstractContainerHelper extends ConverterHelper { return -1.0F; } + public List<VariantInfo> getVariants() { + return variants; + } + @Override public List<VariantInfo> getVariants(Class<?> source) throws IOException { if (source != null && TransactionContainer.class.isAssignableFrom(source)) { - return variants; + return getVariants(); } return null; diff --git a/src/main/java/caosdb/server/converter/misc/HttpStatusConverter.java b/src/main/java/caosdb/server/converter/misc/HttpStatusConverter.java index d58f0280..80de82dc 100644 --- a/src/main/java/caosdb/server/converter/misc/HttpStatusConverter.java +++ b/src/main/java/caosdb/server/converter/misc/HttpStatusConverter.java @@ -34,7 +34,8 @@ public class HttpStatusConverter extends ConverterHelper { @Override public List<VariantInfo> getVariants(Class<?> source) throws IOException { if (isCompatible(source)) { - return containerConverter.getVariants(TransactionContainer.class); + List<VariantInfo> result = containerConverter.getVariants(TransactionContainer.class); + return result; } return null; } @@ -45,7 +46,11 @@ public class HttpStatusConverter extends ConverterHelper { @Override public float score(Object source, Variant target, Resource resource) { - return containerConverter.score(dummyContainer, target, resource); + if (source instanceof StatusInfo) { + return containerConverter.score(dummyContainer, target, resource); + } else { + return -1.0F; + } } @Override @@ -66,7 +71,7 @@ public class HttpStatusConverter extends ConverterHelper { throws IOException { Representation result = null; - if (source != null && StatusInfo.class.isAssignableFrom(source.getClass())) { + if (source != null && source instanceof StatusInfo) { StatusInfo status = (StatusInfo) source; result = toJdomRepresentation(status, target, resource); } diff --git a/src/main/java/caosdb/server/resource/AuthenticationResource.java b/src/main/java/caosdb/server/resource/AuthenticationResource.java index 556763b2..58e11132 100644 --- a/src/main/java/caosdb/server/resource/AuthenticationResource.java +++ b/src/main/java/caosdb/server/resource/AuthenticationResource.java @@ -38,7 +38,6 @@ import org.restlet.data.Form; import org.restlet.data.Reference; import org.restlet.data.Status; import org.restlet.engine.application.StatusInfo; -import org.restlet.representation.Representation; import org.restlet.resource.Delete; import org.restlet.resource.Post; import org.restlet.resource.ResourceException; @@ -60,7 +59,7 @@ public class AuthenticationResource extends AbstractCaosDBServerResource { } @Post - public StatusInfo login(final Representation entity) { + public StatusInfo login(final Form f) { getUser().logout(); @@ -69,7 +68,6 @@ public class AuthenticationResource extends AbstractCaosDBServerResource { String password = null; // get realm, username and password from HTTP Form - final Form f = new Form(entity); if (!f.isEmpty()) { username = f.getFirstValue("username"); realm = diff --git a/src/main/java/caosdb/server/resource/XMLServerResource.java b/src/main/java/caosdb/server/resource/XMLServerResource.java index 66ed8c5b..36a4e25b 100644 --- a/src/main/java/caosdb/server/resource/XMLServerResource.java +++ b/src/main/java/caosdb/server/resource/XMLServerResource.java @@ -145,7 +145,7 @@ public abstract class XMLServerResource extends AbstractCaosDBServerResource { userInfo.setAttribute("realm", ((Principal) user.getPrincipal()).getRealm()); } - @Get + @Get("xml") public Representation httpGet() { try { return httpGetInChildClass(); @@ -158,7 +158,7 @@ public abstract class XMLServerResource extends AbstractCaosDBServerResource { throws ConnectionException, IOException, SQLException, CaosDBException, NoSuchAlgorithmException, Exception; - @Post + @Post("form|xml:xml") public Representation httpPost(final Representation entity) { try { return httpPostInChildClass(entity); @@ -167,7 +167,7 @@ public abstract class XMLServerResource extends AbstractCaosDBServerResource { } } - @Put + @Put("form|xml:xml") public Representation httpPut(final Representation entity) { try { // catch empty post entity. @@ -194,7 +194,7 @@ public abstract class XMLServerResource extends AbstractCaosDBServerResource { return null; } - @Delete + @Delete("xml") public Representation httpDelete() { try { return httpDeleteInChildClass(); -- GitLab