diff --git a/src/main/java/caosdb/server/converter/misc/AbstractContainerHelper.java b/src/main/java/caosdb/server/converter/misc/AbstractContainerHelper.java index 9bace44d7756ff95ed523cc7be1f87275d175d67..ebcba786382e0c1c5b93cfda5ecae1b308d03308 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 d58f0280eb2e8a94228b9b876c7505e48ec7e000..80de82dc7c226e836f1c102680785c6ffe2335cb 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 556763b2e135e36edd562b332a2faa9609e395d6..58e111328e92d1b840f5ffb9ac9bdfa51d2b5b4c 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 66ed8c5ba5cf61b3e44d5de6d29252507f9c43d2..36a4e25b4e0f87bd697cab532aed90927931fd88 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();