http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-webapp/src/main/java/org/taverna/server/master/rest/handler/FileSegmentHandler.java ---------------------------------------------------------------------- diff --git a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/FileSegmentHandler.java b/server-webapp/src/main/java/org/taverna/server/master/rest/handler/FileSegmentHandler.java deleted file mode 100644 index f387cf6..0000000 --- a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/FileSegmentHandler.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (C) 2011 The University of Manchester - * - * See the file "LICENSE" for license terms. - */ -package org.taverna.server.master.rest.handler; - -import static java.lang.Math.min; - -import java.io.IOException; -import java.io.OutputStream; -import java.lang.annotation.Annotation; -import java.lang.reflect.Type; - -import javax.ws.rs.WebApplicationException; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.ext.MessageBodyWriter; -import javax.ws.rs.ext.Provider; - -import org.taverna.server.master.exceptions.FilesystemAccessException; -import org.taverna.server.master.rest.FileSegment; - -/** - * How to write out a segment of a file with JAX-RS. - * - * @author Donal Fellows - */ -@Provider -public class FileSegmentHandler implements MessageBodyWriter<FileSegment> { - /** How much to pull from the worker in one read. */ - private int maxChunkSize; - - /** - * @param maxChunkSize - * How much to pull from the worker in one read. - */ - public void setMaxChunkSize(int maxChunkSize) { - this.maxChunkSize = maxChunkSize; - } - - @Override - public boolean isWriteable(Class<?> type, Type genericType, - Annotation[] annotations, MediaType mediaType) { - return FileSegment.class.isAssignableFrom(type); - } - - @Override - public long getSize(FileSegment t, Class<?> type, Type genericType, - Annotation[] annotations, MediaType mediaType) { - return t.to - t.from; - } - - @Override - public void writeTo(FileSegment t, Class<?> type, Type genericType, - Annotation[] annotations, MediaType mediaType, - MultivaluedMap<String, Object> httpHeaders, - OutputStream entityStream) throws IOException, - WebApplicationException { - try { - int off = t.from; - while (off < t.to) { - byte[] buffer = t.file.getContents(off, - min(maxChunkSize, t.to - off)); - if (buffer == null || buffer.length == 0) - break; - entityStream.write(buffer); - off += buffer.length; - } - } catch (FilesystemAccessException e) { - throw new IOException("problem when reading file", e); - } - } -}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-webapp/src/main/java/org/taverna/server/master/rest/handler/FilesystemAccessHandler.java ---------------------------------------------------------------------- diff --git a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/FilesystemAccessHandler.java b/server-webapp/src/main/java/org/taverna/server/master/rest/handler/FilesystemAccessHandler.java deleted file mode 100644 index 12c137e..0000000 --- a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/FilesystemAccessHandler.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (C) 2010-2011 The University of Manchester - * - * See the file "LICENSE" for license terms. - */ -package org.taverna.server.master.rest.handler; - -import static javax.ws.rs.core.Response.Status.FORBIDDEN; - -import javax.ws.rs.core.Response; -import javax.ws.rs.ext.ExceptionMapper; -import javax.ws.rs.ext.Provider; - -import org.taverna.server.master.exceptions.FilesystemAccessException; - -@Provider -public class FilesystemAccessHandler extends HandlerCore implements - ExceptionMapper<FilesystemAccessException> { - @Override - public Response toResponse(FilesystemAccessException exn) { - return respond(FORBIDDEN, exn); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-webapp/src/main/java/org/taverna/server/master/rest/handler/GeneralFailureHandler.java ---------------------------------------------------------------------- diff --git a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/GeneralFailureHandler.java b/server-webapp/src/main/java/org/taverna/server/master/rest/handler/GeneralFailureHandler.java deleted file mode 100644 index 775805b..0000000 --- a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/GeneralFailureHandler.java +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright (C) 2011 The University of Manchester - * - * See the file "LICENSE" for license terms. - */ -package org.taverna.server.master.rest.handler; - -import static javax.ws.rs.core.Response.Status.INTERNAL_SERVER_ERROR; - -import javax.ws.rs.core.Response; -import javax.ws.rs.ext.ExceptionMapper; - -import org.taverna.server.master.exceptions.GeneralFailureException; - -public class GeneralFailureHandler extends HandlerCore implements - ExceptionMapper<GeneralFailureException> { - @Override - public Response toResponse(GeneralFailureException exception) { - return respond(INTERNAL_SERVER_ERROR, exception); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-webapp/src/main/java/org/taverna/server/master/rest/handler/HandlerCore.java ---------------------------------------------------------------------- diff --git a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/HandlerCore.java b/server-webapp/src/main/java/org/taverna/server/master/rest/handler/HandlerCore.java deleted file mode 100644 index 0e3fb51..0000000 --- a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/HandlerCore.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (C) 2010-2011 The University of Manchester - * - * See the file "LICENSE" for license terms. - */ -package org.taverna.server.master.rest.handler; - -import static javax.ws.rs.core.MediaType.TEXT_PLAIN_TYPE; -import static javax.ws.rs.core.Response.status; -import static org.apache.commons.logging.LogFactory.getLog; - -import javax.ws.rs.core.Response; - -import org.apache.commons.logging.Log; -import org.taverna.server.master.api.ManagementModel; - -/** - * Base class for handlers that grants Spring-enabled access to the management - * model. - * - * @author Donal Fellows - */ -public class HandlerCore { - private Log log = getLog("Taverna.Server.Webapp"); - private ManagementModel managementModel; - - /** - * @param managementModel - * the managementModel to set - */ - public void setManagementModel(ManagementModel managementModel) { - this.managementModel = managementModel; - } - - /** - * Simplified interface for building responses. - * - * @param status - * What status code to use? - * @param exception - * What exception to report on? - * @return The build response. - */ - protected Response respond(Response.Status status, Exception exception) { - if (managementModel.getLogOutgoingExceptions() - || status.getStatusCode() >= 500) - log.info("converting exception to response", exception); - return status(status).type(TEXT_PLAIN_TYPE) - .entity(exception.getMessage()).build(); - } - - /** - * Simplified interface for building responses. - * - * @param status - * What status code to use? - * @param partialMessage - * The prefix to the message. - * @param exception - * What exception to report on? - * @return The build response. - */ - protected Response respond(Response.Status status, String partialMessage, - Exception exception) { - if (managementModel.getLogOutgoingExceptions() - || status.getStatusCode() >= 500) - log.info("converting exception to response", exception); - return status(status).type(TEXT_PLAIN_TYPE) - .entity(partialMessage + "\n" + exception.getMessage()).build(); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-webapp/src/main/java/org/taverna/server/master/rest/handler/IllegalArgumentHandler.java ---------------------------------------------------------------------- diff --git a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/IllegalArgumentHandler.java b/server-webapp/src/main/java/org/taverna/server/master/rest/handler/IllegalArgumentHandler.java deleted file mode 100644 index ac02015..0000000 --- a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/IllegalArgumentHandler.java +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright (C) 2011 The University of Manchester - * - * See the file "LICENSE" for license terms. - */ -package org.taverna.server.master.rest.handler; - -import static javax.ws.rs.core.Response.Status.UNSUPPORTED_MEDIA_TYPE; - -import javax.ws.rs.core.Response; -import javax.ws.rs.ext.ExceptionMapper; -import javax.ws.rs.ext.Provider; - -@Provider -public class IllegalArgumentHandler extends HandlerCore implements - ExceptionMapper<IllegalArgumentException> { - @Override - public Response toResponse(IllegalArgumentException exn) { - return respond(UNSUPPORTED_MEDIA_TYPE, exn); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-webapp/src/main/java/org/taverna/server/master/rest/handler/ImplementationProblemHandler.java ---------------------------------------------------------------------- diff --git a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/ImplementationProblemHandler.java b/server-webapp/src/main/java/org/taverna/server/master/rest/handler/ImplementationProblemHandler.java deleted file mode 100644 index 1458667..0000000 --- a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/ImplementationProblemHandler.java +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright (C) 2011 The University of Manchester - * - * See the file "LICENSE" for license terms. - */ -package org.taverna.server.master.rest.handler; - -import static javax.ws.rs.core.Response.Status.INTERNAL_SERVER_ERROR; - -import javax.ws.rs.core.Response; -import javax.ws.rs.ext.ExceptionMapper; - -import org.taverna.server.localworker.remote.ImplementationException; - -public class ImplementationProblemHandler extends HandlerCore implements - ExceptionMapper<ImplementationException> { - @Override - public Response toResponse(ImplementationException exception) { - return respond(INTERNAL_SERVER_ERROR, exception); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-webapp/src/main/java/org/taverna/server/master/rest/handler/InputStreamMessageHandler.java ---------------------------------------------------------------------- diff --git a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/InputStreamMessageHandler.java b/server-webapp/src/main/java/org/taverna/server/master/rest/handler/InputStreamMessageHandler.java deleted file mode 100644 index 2c0c092..0000000 --- a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/InputStreamMessageHandler.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright (C) 2010-2012 The University of Manchester - * - * See the file "LICENSE" for license terms. - */ -package org.taverna.server.master.rest.handler; - -import static java.lang.Long.parseLong; -import static javax.ws.rs.core.MediaType.APPLICATION_OCTET_STREAM; -import static org.apache.commons.logging.LogFactory.getLog; - -import java.io.BufferedInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.lang.annotation.Annotation; -import java.lang.reflect.Type; -import java.util.List; - -import javax.ws.rs.Consumes; -import javax.ws.rs.WebApplicationException; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.ext.MessageBodyReader; -import javax.ws.rs.ext.Provider; - -import org.apache.commons.logging.Log; - -/** - * Maps a stream from a client into a bounded ordinary input stream that the - * webapp can work with more easily. - * - * @author Donal Fellows - */ -@Provider -@Consumes(APPLICATION_OCTET_STREAM) -public class InputStreamMessageHandler implements - MessageBodyReader<InputStream> { - @Override - public boolean isReadable(Class<?> type, Type genericType, - Annotation[] annotations, MediaType mediaType) { - return InputStream.class.isAssignableFrom(type); - } - - @Override - public InputStream readFrom(Class<InputStream> type, Type genericType, - Annotation[] annotations, MediaType mediaType, - MultivaluedMap<String, String> httpHeaders, InputStream entityStream) - throws IOException, WebApplicationException { - return new TransferStream(entityStream, - httpHeaders.get("Content-Length")); - } -} - -/** - * The actual transfer thunk. - * - * @author Donal Fellows - */ -class TransferStream extends InputStream { - private Log log = getLog("Taverna.Server.Handlers"); - - public TransferStream(InputStream entityStream, List<String> contentLength) { - this.entityStream = new BufferedInputStream(entityStream); - if (contentLength != null && contentLength.size() > 0) { - this.limit = parseLong(contentLength.get(0)); - if (log.isDebugEnabled()) - log.debug("will attempt to transfer " + this.limit + " bytes"); - } else { - this.limit = -1; - if (log.isDebugEnabled()) - log.debug("will attempt to transfer until EOF"); - } - } - - InputStream entityStream; - long limit; - long doneBytes = 0; - - @Override - public int read() throws IOException { - if (limit >= 0 && doneBytes >= limit) - return -1; - int result = entityStream.read(); - if (result >= 0) - doneBytes++; - return result; - } - - @Override - public int read(byte[] ary, int off, int len) throws IOException { - if (limit >= 0) { - if (doneBytes >= limit) - return -1; - if (doneBytes + len > limit) - len = (int) (limit - doneBytes); - } - int readBytes = entityStream.read(ary, off, len); - if (readBytes >= 0) - doneBytes += readBytes; - return readBytes; - } - - @Override - public void close() throws IOException { - entityStream.close(); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-webapp/src/main/java/org/taverna/server/master/rest/handler/InvalidCredentialHandler.java ---------------------------------------------------------------------- diff --git a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/InvalidCredentialHandler.java b/server-webapp/src/main/java/org/taverna/server/master/rest/handler/InvalidCredentialHandler.java deleted file mode 100644 index fe11de8..0000000 --- a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/InvalidCredentialHandler.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (C) 2011 The University of Manchester - * - * See the file "LICENSE" for license terms. - */ -package org.taverna.server.master.rest.handler; - -import static javax.ws.rs.core.Response.Status.BAD_REQUEST; - -import javax.ws.rs.core.Response; -import javax.ws.rs.ext.ExceptionMapper; -import javax.ws.rs.ext.Provider; - -import org.taverna.server.master.exceptions.InvalidCredentialException; - -@Provider -public class InvalidCredentialHandler extends HandlerCore implements - ExceptionMapper<InvalidCredentialException> { - @Override - public Response toResponse(InvalidCredentialException exn) { - return respond(BAD_REQUEST, exn); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-webapp/src/main/java/org/taverna/server/master/rest/handler/JAXBExceptionHandler.java ---------------------------------------------------------------------- diff --git a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/JAXBExceptionHandler.java b/server-webapp/src/main/java/org/taverna/server/master/rest/handler/JAXBExceptionHandler.java deleted file mode 100644 index 33ac6a0..0000000 --- a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/JAXBExceptionHandler.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (C) 2011 The University of Manchester - * - * See the file "LICENSE" for license terms. - */ -package org.taverna.server.master.rest.handler; - -import static javax.ws.rs.core.Response.Status.BAD_REQUEST; - -import javax.ws.rs.core.Response; -import javax.ws.rs.ext.ExceptionMapper; -import javax.ws.rs.ext.Provider; -import javax.xml.bind.JAXBException; - -@Provider -public class JAXBExceptionHandler extends HandlerCore implements - ExceptionMapper<JAXBException> { - @Override - public Response toResponse(JAXBException exn) { - return respond(BAD_REQUEST, "APIEpicFail: " + exn.getErrorCode(), exn); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-webapp/src/main/java/org/taverna/server/master/rest/handler/NegotiationFailedHandler.java ---------------------------------------------------------------------- diff --git a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/NegotiationFailedHandler.java b/server-webapp/src/main/java/org/taverna/server/master/rest/handler/NegotiationFailedHandler.java deleted file mode 100644 index 47153e7..0000000 --- a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/NegotiationFailedHandler.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (C) 2012 The University of Manchester - * - * See the file "LICENSE" for license terms. - */ -package org.taverna.server.master.rest.handler; - -import static javax.ws.rs.core.MediaType.TEXT_PLAIN; -import static javax.ws.rs.core.Response.notAcceptable; - -import javax.ws.rs.core.Response; -import javax.ws.rs.ext.ExceptionMapper; -import javax.ws.rs.ext.Provider; - -import org.taverna.server.master.rest.TavernaServerDirectoryREST.NegotiationFailedException; - -@Provider -public class NegotiationFailedHandler implements - ExceptionMapper<NegotiationFailedException> { - @Override - public Response toResponse(NegotiationFailedException exn) { - return notAcceptable(exn.accepted).type(TEXT_PLAIN) - .entity(exn.getMessage()).build(); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-webapp/src/main/java/org/taverna/server/master/rest/handler/NoCreateHandler.java ---------------------------------------------------------------------- diff --git a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/NoCreateHandler.java b/server-webapp/src/main/java/org/taverna/server/master/rest/handler/NoCreateHandler.java deleted file mode 100644 index e4215a1..0000000 --- a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/NoCreateHandler.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (C) 2010-2011 The University of Manchester - * - * See the file "LICENSE" for license terms. - */ -package org.taverna.server.master.rest.handler; - -import static javax.ws.rs.core.Response.Status.SERVICE_UNAVAILABLE; - -import javax.ws.rs.core.Response; -import javax.ws.rs.ext.ExceptionMapper; -import javax.ws.rs.ext.Provider; - -import org.taverna.server.master.exceptions.NoCreateException; - -@Provider -public class NoCreateHandler extends HandlerCore implements - ExceptionMapper<NoCreateException> { - @Override - public Response toResponse(NoCreateException exn) { - return respond(SERVICE_UNAVAILABLE, exn); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-webapp/src/main/java/org/taverna/server/master/rest/handler/NoCredentialHandler.java ---------------------------------------------------------------------- diff --git a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/NoCredentialHandler.java b/server-webapp/src/main/java/org/taverna/server/master/rest/handler/NoCredentialHandler.java deleted file mode 100644 index d81f6ba..0000000 --- a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/NoCredentialHandler.java +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright (C) 2011 The University of Manchester - * - * See the file "LICENSE" for license terms. - */ -package org.taverna.server.master.rest.handler; - -import static javax.ws.rs.core.Response.Status.NOT_FOUND; - -import javax.ws.rs.core.Response; -import javax.ws.rs.ext.ExceptionMapper; - -import org.taverna.server.master.exceptions.NoCredentialException; - -public class NoCredentialHandler extends HandlerCore implements - ExceptionMapper<NoCredentialException> { - @Override - public Response toResponse(NoCredentialException exn) { - return respond(NOT_FOUND, exn); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-webapp/src/main/java/org/taverna/server/master/rest/handler/NoDestroyHandler.java ---------------------------------------------------------------------- diff --git a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/NoDestroyHandler.java b/server-webapp/src/main/java/org/taverna/server/master/rest/handler/NoDestroyHandler.java deleted file mode 100644 index 927af4b..0000000 --- a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/NoDestroyHandler.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (C) 2010-2011 The University of Manchester - * - * See the file "LICENSE" for license terms. - */ -package org.taverna.server.master.rest.handler; - -import static javax.ws.rs.core.Response.Status.FORBIDDEN; - -import javax.ws.rs.core.Response; -import javax.ws.rs.ext.ExceptionMapper; -import javax.ws.rs.ext.Provider; - -import org.taverna.server.master.exceptions.NoDestroyException; - -@Provider -public class NoDestroyHandler extends HandlerCore implements - ExceptionMapper<NoDestroyException> { - @Override - public Response toResponse(NoDestroyException exn) { - return respond(FORBIDDEN, exn); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-webapp/src/main/java/org/taverna/server/master/rest/handler/NoDirectoryEntryHandler.java ---------------------------------------------------------------------- diff --git a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/NoDirectoryEntryHandler.java b/server-webapp/src/main/java/org/taverna/server/master/rest/handler/NoDirectoryEntryHandler.java deleted file mode 100644 index ab2e54d..0000000 --- a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/NoDirectoryEntryHandler.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (C) 2010-2011 The University of Manchester - * - * See the file "LICENSE" for license terms. - */ -package org.taverna.server.master.rest.handler; - -import static javax.ws.rs.core.Response.Status.NOT_FOUND; - -import javax.ws.rs.core.Response; -import javax.ws.rs.ext.ExceptionMapper; -import javax.ws.rs.ext.Provider; - -import org.taverna.server.master.exceptions.NoDirectoryEntryException; - -@Provider -public class NoDirectoryEntryHandler extends HandlerCore implements - ExceptionMapper<NoDirectoryEntryException> { - @Override - public Response toResponse(NoDirectoryEntryException exn) { - return respond(NOT_FOUND, exn); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-webapp/src/main/java/org/taverna/server/master/rest/handler/NoListenerHandler.java ---------------------------------------------------------------------- diff --git a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/NoListenerHandler.java b/server-webapp/src/main/java/org/taverna/server/master/rest/handler/NoListenerHandler.java deleted file mode 100644 index 36e3053..0000000 --- a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/NoListenerHandler.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (C) 2010-2011 The University of Manchester - * - * See the file "LICENSE" for license terms. - */ -package org.taverna.server.master.rest.handler; - -import static javax.ws.rs.core.Response.Status.BAD_REQUEST; - -import javax.ws.rs.core.Response; -import javax.ws.rs.ext.ExceptionMapper; -import javax.ws.rs.ext.Provider; - -import org.taverna.server.master.exceptions.NoListenerException; - -@Provider -public class NoListenerHandler extends HandlerCore implements - ExceptionMapper<NoListenerException> { - @Override - public Response toResponse(NoListenerException exn) { - return respond(BAD_REQUEST, exn); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-webapp/src/main/java/org/taverna/server/master/rest/handler/NoUpdateHandler.java ---------------------------------------------------------------------- diff --git a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/NoUpdateHandler.java b/server-webapp/src/main/java/org/taverna/server/master/rest/handler/NoUpdateHandler.java deleted file mode 100644 index 61a89d4..0000000 --- a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/NoUpdateHandler.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (C) 2010-2011 The University of Manchester - * - * See the file "LICENSE" for license terms. - */ -package org.taverna.server.master.rest.handler; - -import static javax.ws.rs.core.Response.Status.FORBIDDEN; - -import javax.ws.rs.core.Response; -import javax.ws.rs.ext.ExceptionMapper; -import javax.ws.rs.ext.Provider; - -import org.taverna.server.master.exceptions.NoUpdateException; - -@Provider -public class NoUpdateHandler extends HandlerCore implements - ExceptionMapper<NoUpdateException> { - @Override - public Response toResponse(NoUpdateException exn) { - return respond(FORBIDDEN, exn); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-webapp/src/main/java/org/taverna/server/master/rest/handler/NotOwnerHandler.java ---------------------------------------------------------------------- diff --git a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/NotOwnerHandler.java b/server-webapp/src/main/java/org/taverna/server/master/rest/handler/NotOwnerHandler.java deleted file mode 100644 index 44de871..0000000 --- a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/NotOwnerHandler.java +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright (C) 2011 The University of Manchester - * - * See the file "LICENSE" for license terms. - */ -package org.taverna.server.master.rest.handler; - -import static javax.ws.rs.core.Response.Status.FORBIDDEN; - -import javax.ws.rs.core.Response; -import javax.ws.rs.ext.ExceptionMapper; - -import org.taverna.server.master.exceptions.NotOwnerException; - -public class NotOwnerHandler extends HandlerCore implements - ExceptionMapper<NotOwnerException> { - @Override - public Response toResponse(NotOwnerException exn) { - return respond(FORBIDDEN, exn); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-webapp/src/main/java/org/taverna/server/master/rest/handler/OverloadedHandler.java ---------------------------------------------------------------------- diff --git a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/OverloadedHandler.java b/server-webapp/src/main/java/org/taverna/server/master/rest/handler/OverloadedHandler.java deleted file mode 100644 index 21e5e68..0000000 --- a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/OverloadedHandler.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (C) 2013 The University of Manchester - * - * See the file "LICENSE" for license terms. - */ -package org.taverna.server.master.rest.handler; - -import static javax.ws.rs.core.Response.Status.SERVICE_UNAVAILABLE; -import javax.ws.rs.core.Response; -import javax.ws.rs.ext.ExceptionMapper; -import javax.ws.rs.ext.Provider; - -import org.taverna.server.master.exceptions.OverloadedException; - -@Provider -public class OverloadedHandler extends HandlerCore implements - ExceptionMapper<OverloadedException> { - @Override - public Response toResponse(OverloadedException exn) { - return respond(SERVICE_UNAVAILABLE, exn); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-webapp/src/main/java/org/taverna/server/master/rest/handler/PermissionHandler.java ---------------------------------------------------------------------- diff --git a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/PermissionHandler.java b/server-webapp/src/main/java/org/taverna/server/master/rest/handler/PermissionHandler.java deleted file mode 100644 index 03a4dd4..0000000 --- a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/PermissionHandler.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (C) 2011 The University of Manchester - * - * See the file "LICENSE" for license terms. - */ -package org.taverna.server.master.rest.handler; - -import static javax.ws.rs.core.MediaType.TEXT_PLAIN_TYPE; - -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.OutputStream; -import java.io.OutputStreamWriter; -import java.lang.annotation.Annotation; -import java.lang.reflect.Type; - -import javax.ws.rs.WebApplicationException; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.ext.MessageBodyReader; -import javax.ws.rs.ext.MessageBodyWriter; - -import org.taverna.server.master.common.Permission; - -/** - * Handler that allows CXF to send and receive {@linkplain Permission - * permissions} as plain text directly. - * - * @author Donal Fellows - */ -public class PermissionHandler implements MessageBodyReader<Permission>, - MessageBodyWriter<Permission> { - @Override - public boolean isWriteable(Class<?> type, Type genericType, - Annotation[] annotations, MediaType mediaType) { - return type.isAssignableFrom(Permission.class) - && mediaType.isCompatible(TEXT_PLAIN_TYPE); - } - - @Override - public long getSize(Permission t, Class<?> type, Type genericType, - Annotation[] annotations, MediaType mediaType) { - return t.toString().length(); - } - - @Override - public void writeTo(Permission t, Class<?> type, Type genericType, - Annotation[] annotations, MediaType mediaType, - MultivaluedMap<String, Object> httpHeaders, - OutputStream entityStream) throws IOException, - WebApplicationException { - new OutputStreamWriter(entityStream).write(t.toString()); - } - - @Override - public boolean isReadable(Class<?> type, Type genericType, - Annotation[] annotations, MediaType mediaType) { - return type.isAssignableFrom(Permission.class) - && mediaType.isCompatible(TEXT_PLAIN_TYPE); - } - - @Override - public Permission readFrom(Class<Permission> type, Type genericType, - Annotation[] annotations, MediaType mediaType, - MultivaluedMap<String, String> httpHeaders, InputStream entityStream) - throws IOException, WebApplicationException { - char[] cbuf = new char[7]; - int len = new InputStreamReader(entityStream).read(cbuf); - if (len < 0) - throw new IllegalArgumentException("no entity supplied"); - return Permission.valueOf(new String(cbuf, 0, len)); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-webapp/src/main/java/org/taverna/server/master/rest/handler/Scufl2DocumentHandler.java ---------------------------------------------------------------------- diff --git a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/Scufl2DocumentHandler.java b/server-webapp/src/main/java/org/taverna/server/master/rest/handler/Scufl2DocumentHandler.java deleted file mode 100644 index edeac63..0000000 --- a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/Scufl2DocumentHandler.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright (C) 2011 The University of Manchester - * - * See the file "LICENSE.txt" for license terms. - */ -package org.taverna.server.master.rest.handler; - -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.lang.annotation.Annotation; -import java.lang.reflect.Type; - -import javax.ws.rs.WebApplicationException; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.ext.MessageBodyReader; -import javax.ws.rs.ext.MessageBodyWriter; -import javax.ws.rs.ext.Provider; - -import org.taverna.server.master.common.Workflow; - -import uk.org.taverna.scufl2.api.io.ReaderException; -import uk.org.taverna.scufl2.api.io.WorkflowBundleIO; -import uk.org.taverna.scufl2.api.io.WriterException; - -/** - * Handler that allows a .scufl2 document to be read from and written to a REST - * message directly. - * - * @author Donal Fellows - */ -@Provider -public class Scufl2DocumentHandler implements MessageBodyReader<Workflow>, - MessageBodyWriter<Workflow> { - private static final MediaType SCUFL2_TYPE = new MediaType("application", - "vnd.taverna.scufl2.workflow-bundle"); - public static final String SCUFL2 = "application/vnd.taverna.scufl2.workflow-bundle"; - private WorkflowBundleIO io = new WorkflowBundleIO(); - - @Override - public boolean isReadable(Class<?> type, Type genericType, - Annotation[] annotations, MediaType mediaType) { - if (type.isAssignableFrom(Workflow.class)) - return mediaType.isCompatible(SCUFL2_TYPE); - return false; - } - - @Override - public Workflow readFrom(Class<Workflow> type, Type genericType, - Annotation[] annotations, MediaType mediaType, - MultivaluedMap<String, String> httpHeaders, InputStream entityStream) - throws IOException, WebApplicationException { - try { - return new Workflow(io.readBundle(entityStream, SCUFL2)); - } catch (ReaderException e) { - throw new WebApplicationException(e, 403); - } - } - - @Override - public boolean isWriteable(Class<?> type, Type genericType, - Annotation[] annotations, MediaType mediaType) { - if (Workflow.class.isAssignableFrom(type)) - return mediaType.isCompatible(SCUFL2_TYPE); - return false; - } - - @Override - public long getSize(Workflow workflow, Class<?> type, Type genericType, - Annotation[] annotations, MediaType mediaType) { - return -1; - } - - @Override - public void writeTo(Workflow workflow, Class<?> type, Type genericType, - Annotation[] annotations, MediaType mediaType, - MultivaluedMap<String, Object> httpHeaders, - OutputStream entityStream) throws IOException, - WebApplicationException { - try { - io.writeBundle(workflow.getScufl2Workflow(), entityStream, SCUFL2); - } catch (WriterException e) { - throw new WebApplicationException(e); - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-webapp/src/main/java/org/taverna/server/master/rest/handler/T2FlowDocumentHandler.java ---------------------------------------------------------------------- diff --git a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/T2FlowDocumentHandler.java b/server-webapp/src/main/java/org/taverna/server/master/rest/handler/T2FlowDocumentHandler.java deleted file mode 100644 index 4227d80..0000000 --- a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/T2FlowDocumentHandler.java +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Copyright (C) 2011 The University of Manchester - * - * See the file "LICENSE" for license terms. - */ -package org.taverna.server.master.rest.handler; - -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.lang.annotation.Annotation; -import java.lang.reflect.Type; - -import javax.ws.rs.WebApplicationException; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.Response; -import javax.ws.rs.ext.MessageBodyReader; -import javax.ws.rs.ext.MessageBodyWriter; -import javax.ws.rs.ext.Provider; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.transform.TransformerConfigurationException; -import javax.xml.transform.TransformerException; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.dom.DOMSource; -import javax.xml.transform.stream.StreamResult; - -import org.taverna.server.master.common.Workflow; -import org.w3c.dom.Document; -import org.xml.sax.SAXException; - -/** - * Handler that allows a .t2flow document to be read from and written to a REST - * message directly. - * - * @author Donal Fellows - */ -@Provider -public class T2FlowDocumentHandler implements MessageBodyReader<Workflow>, - MessageBodyWriter<Workflow> { - private static final MediaType T2FLOW_TYPE = new MediaType("application", - "vnd.taverna.t2flow+xml"); - public static final String T2FLOW = "application/vnd.taverna.t2flow+xml"; - public static final String T2FLOW_ROOTNAME = "workflow"; - public static final String T2FLOW_NS = "http://taverna.sf.net/2008/xml/t2flow"; - private DocumentBuilderFactory db; - private TransformerFactory transformer; - - public T2FlowDocumentHandler() throws ParserConfigurationException, - TransformerConfigurationException { - db = DocumentBuilderFactory.newInstance(); - db.setNamespaceAware(true); - transformer = TransformerFactory.newInstance(); - } - - @Override - public boolean isReadable(Class<?> type, Type genericType, - Annotation[] annotations, MediaType mediaType) { - if (type.isAssignableFrom(Workflow.class)) - return mediaType.isCompatible(T2FLOW_TYPE); - return false; - } - - @Override - public Workflow readFrom(Class<Workflow> type, Type genericType, - Annotation[] annotations, MediaType mediaType, - MultivaluedMap<String, String> httpHeaders, InputStream entityStream) - throws IOException, WebApplicationException { - Document doc; - try { - doc = db.newDocumentBuilder().parse(entityStream); - } catch (SAXException e) { - throw new WebApplicationException(e, 403); - } catch (ParserConfigurationException e) { - throw new WebApplicationException(e); - } - Workflow workflow = new Workflow(doc.getDocumentElement()); - if (doc.getDocumentElement().getNamespaceURI().equals(T2FLOW_NS) - && doc.getDocumentElement().getNodeName() - .equals(T2FLOW_ROOTNAME)) - return workflow; - throw new WebApplicationException(Response.status(403) - .entity("invalid T2flow document; bad root element") - .type("text/plain").build()); - } - - @Override - public boolean isWriteable(Class<?> type, Type genericType, - Annotation[] annotations, MediaType mediaType) { - if (Workflow.class.isAssignableFrom(type)) - return mediaType.isCompatible(T2FLOW_TYPE); - return false; - } - - @Override - public long getSize(Workflow workflow, Class<?> type, Type genericType, - Annotation[] annotations, MediaType mediaType) { - return -1; - } - - @Override - public void writeTo(Workflow workflow, Class<?> type, Type genericType, - Annotation[] annotations, MediaType mediaType, - MultivaluedMap<String, Object> httpHeaders, - OutputStream entityStream) throws IOException, - WebApplicationException { - try { - transformer.newTransformer().transform( - new DOMSource(workflow.getT2flowWorkflow()), - new StreamResult(entityStream)); - } catch (TransformerException e) { - if (e.getCause() != null && e.getCause() instanceof IOException) - throw (IOException) e.getCause(); - throw new WebApplicationException(e); - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-webapp/src/main/java/org/taverna/server/master/rest/handler/URIListHandler.java ---------------------------------------------------------------------- diff --git a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/URIListHandler.java b/server-webapp/src/main/java/org/taverna/server/master/rest/handler/URIListHandler.java deleted file mode 100644 index a90a229..0000000 --- a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/URIListHandler.java +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Copyright (C) 2012 The University of Manchester - * - * See the file "LICENSE" for license terms. - */ -package org.taverna.server.master.rest.handler; - -import static javax.ws.rs.core.Response.status; -import static org.taverna.server.master.rest.handler.URIListHandler.URI_LIST; - -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.OutputStream; -import java.io.OutputStreamWriter; -import java.lang.annotation.Annotation; -import java.lang.reflect.ParameterizedType; -import java.lang.reflect.Type; -import java.net.URI; -import java.net.URISyntaxException; -import java.nio.charset.Charset; -import java.util.ArrayList; -import java.util.List; - -import javax.ws.rs.Consumes; -import javax.ws.rs.WebApplicationException; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.ext.MessageBodyReader; -import javax.ws.rs.ext.MessageBodyWriter; -import javax.ws.rs.ext.Provider; - -/** - * Deserialization and serialization engine for the <tt>{@value #URI_LIST}</tt> - * content type. - * - * @author Donal Fellows - */ -@Provider -@Consumes(URI_LIST) -public class URIListHandler implements MessageBodyReader<List<URI>>, - MessageBodyWriter<List<URI>> { - /** The content type we handle. */ - public static final String URI_LIST = "text/uri-list"; - private static final MediaType URILIST = new MediaType("text", "uri-list"); - - @Override - public boolean isReadable(Class<?> type, Type genericType, - Annotation[] annotations, MediaType mediaType) { - return type.isAssignableFrom(ArrayList.class) - && genericType instanceof ParameterizedType - && ((Class<?>) ((ParameterizedType) genericType) - .getActualTypeArguments()[0]) - .isAssignableFrom(URI.class) - && URILIST.isCompatible(mediaType); - } - - @Override - public List<URI> readFrom(Class<List<URI>> type, Type genericType, - Annotation[] annotations, MediaType mediaType, - MultivaluedMap<String, String> httpHeaders, InputStream entityStream) - throws IOException, WebApplicationException { - String enc = mediaType.getParameters().get("encoding"); - Charset c = (enc == null) ? Charset.defaultCharset() : Charset - .forName(enc); - BufferedReader br = new BufferedReader(new InputStreamReader( - entityStream, c)); - ArrayList<URI> uris = new ArrayList<>(); - String line; - while ((line = br.readLine()) != null) { - if (line.startsWith("#")) - continue; - try { - uris.add(new URI(line)); - } catch (URISyntaxException e) { - throw new WebApplicationException(e, status(422).entity( - "ill-formed URI").build()); - } - } - return uris; - } - - @Override - public boolean isWriteable(Class<?> type, Type genericType, - Annotation[] annotations, MediaType mediaType) { - return List.class.isAssignableFrom(type) - && genericType instanceof ParameterizedType - && ((ParameterizedType) genericType).getActualTypeArguments()[0] == URI.class - && URILIST.isCompatible(mediaType); - } - - @Override - public long getSize(List<URI> list, Class<?> type, Type genericType, - Annotation[] annotations, MediaType mediaType) { - return -1; - } - - private static final String PREFERRED_ENCODING = "UTF-8"; - - @Override - public void writeTo(List<URI> list, Class<?> type, Type genericType, - Annotation[] annotations, MediaType mediaType, - MultivaluedMap<String, Object> httpHeaders, - OutputStream entityStream) throws IOException { - String encoding = mediaType.getParameters().get("encoding"); - if (encoding == null) { - encoding = PREFERRED_ENCODING; - httpHeaders.putSingle("Content-Type", URI_LIST + ";encoding=" - + encoding); - } - BufferedWriter w = new BufferedWriter(new OutputStreamWriter( - entityStream, encoding)); - for (URI uri : list) { - w.write(uri.toString()); - w.newLine(); - } - w.flush(); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-webapp/src/main/java/org/taverna/server/master/rest/handler/UnknownRunHandler.java ---------------------------------------------------------------------- diff --git a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/UnknownRunHandler.java b/server-webapp/src/main/java/org/taverna/server/master/rest/handler/UnknownRunHandler.java deleted file mode 100644 index 4542237..0000000 --- a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/UnknownRunHandler.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (C) 2010-2011 The University of Manchester - * - * See the file "LICENSE" for license terms. - */ -package org.taverna.server.master.rest.handler; - -import static javax.ws.rs.core.Response.Status.NOT_FOUND; - -import javax.ws.rs.core.Response; -import javax.ws.rs.ext.ExceptionMapper; -import javax.ws.rs.ext.Provider; - -import org.taverna.server.master.exceptions.UnknownRunException; - -@Provider -public class UnknownRunHandler extends HandlerCore implements - ExceptionMapper<UnknownRunException> { - @Override - public Response toResponse(UnknownRunException exn) { - return respond(NOT_FOUND, exn); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-webapp/src/main/java/org/taverna/server/master/rest/handler/ZipStreamHandler.java ---------------------------------------------------------------------- diff --git a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/ZipStreamHandler.java b/server-webapp/src/main/java/org/taverna/server/master/rest/handler/ZipStreamHandler.java deleted file mode 100644 index 2241220..0000000 --- a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/ZipStreamHandler.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (C) 2012 The University of Manchester - * - * See the file "LICENSE" for license terms. - */ -package org.taverna.server.master.rest.handler; - -import static org.apache.commons.io.IOUtils.copy; -import static org.taverna.server.master.api.ContentTypes.APPLICATION_ZIP_TYPE; - -import java.io.IOException; -import java.io.OutputStream; -import java.lang.annotation.Annotation; -import java.lang.reflect.Type; - -import javax.ws.rs.Produces; -import javax.ws.rs.WebApplicationException; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.ext.MessageBodyWriter; -import javax.ws.rs.ext.Provider; - -import org.taverna.server.master.interfaces.Directory.ZipStream; - -/** - * How to write a ZIP file as the result entity of a request. - * - * @author Donal Fellows - */ -@Provider -@Produces("application/zip") -public class ZipStreamHandler implements MessageBodyWriter<ZipStream> { - @Override - public boolean isWriteable(Class<?> type, Type genericType, - Annotation[] annotations, MediaType mediaType) { - return ZipStream.class.isAssignableFrom(type) - && mediaType.equals(APPLICATION_ZIP_TYPE); - } - - @Override - public long getSize(ZipStream t, Class<?> type, Type genericType, - Annotation[] annotations, MediaType mediaType) { - return -1; - } - - @Override - public void writeTo(ZipStream zipStream, Class<?> type, Type genericType, - Annotation[] annotations, MediaType mediaType, - MultivaluedMap<String, Object> httpHeaders, - OutputStream entityStream) throws IOException, - WebApplicationException { - copy(zipStream, entityStream); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-webapp/src/main/java/org/taverna/server/master/rest/handler/package-info.java ---------------------------------------------------------------------- diff --git a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/package-info.java b/server-webapp/src/main/java/org/taverna/server/master/rest/handler/package-info.java deleted file mode 100644 index e72af22..0000000 --- a/server-webapp/src/main/java/org/taverna/server/master/rest/handler/package-info.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (C) 2011 The University of Manchester - * - * See the file "LICENSE" for license terms. - */ -/** - * This package contains type handlers for the RESTful interface to Taverna Server. - * @author Donal Fellows - */ -@XmlSchema(namespace = SERVER_REST, elementFormDefault = QUALIFIED, attributeFormDefault = QUALIFIED, xmlns = { - @XmlNs(prefix = "xlink", namespaceURI = XLINK), - @XmlNs(prefix = "ts", namespaceURI = SERVER), - @XmlNs(prefix = "ts-rest", namespaceURI = SERVER_REST), - @XmlNs(prefix = "ts-soap", namespaceURI = SERVER_SOAP), - @XmlNs(prefix = "port", namespaceURI = DATA), - @XmlNs(prefix = "feed", namespaceURI = FEED), - @XmlNs(prefix = "admin", namespaceURI = ADMIN) }) -package org.taverna.server.master.rest.handler; - -import static javax.xml.bind.annotation.XmlNsForm.QUALIFIED; -import static org.taverna.server.master.common.Namespaces.ADMIN; -import static org.taverna.server.master.common.Namespaces.FEED; -import static org.taverna.server.master.common.Namespaces.SERVER; -import static org.taverna.server.master.common.Namespaces.SERVER_REST; -import static org.taverna.server.master.common.Namespaces.SERVER_SOAP; -import static org.taverna.server.master.common.Namespaces.XLINK; -import static org.taverna.server.port_description.Namespaces.DATA; - -import javax.xml.bind.annotation.XmlNs; -import javax.xml.bind.annotation.XmlSchema; - http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-webapp/src/main/java/org/taverna/server/master/rest/package-info.java ---------------------------------------------------------------------- diff --git a/server-webapp/src/main/java/org/taverna/server/master/rest/package-info.java b/server-webapp/src/main/java/org/taverna/server/master/rest/package-info.java deleted file mode 100644 index 0a0b069..0000000 --- a/server-webapp/src/main/java/org/taverna/server/master/rest/package-info.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (C) 2011 The University of Manchester - * - * See the file "LICENSE" for license terms. - */ -/** - * This package contains the RESTful interface to Taverna Server. - * @author Donal Fellows - */ -@XmlSchema(namespace = SERVER_REST, elementFormDefault = QUALIFIED, attributeFormDefault = QUALIFIED, xmlns = { - @XmlNs(prefix = "xlink", namespaceURI = XLINK), - @XmlNs(prefix = "ts", namespaceURI = SERVER), - @XmlNs(prefix = "ts-rest", namespaceURI = SERVER_REST), - @XmlNs(prefix = "ts-soap", namespaceURI = SERVER_SOAP), - @XmlNs(prefix = "port", namespaceURI = DATA), - @XmlNs(prefix = "feed", namespaceURI = FEED), - @XmlNs(prefix = "admin", namespaceURI = ADMIN) }) -package org.taverna.server.master.rest; - -import static javax.xml.bind.annotation.XmlNsForm.QUALIFIED; -import static org.taverna.server.master.common.Namespaces.ADMIN; -import static org.taverna.server.master.common.Namespaces.FEED; -import static org.taverna.server.master.common.Namespaces.SERVER; -import static org.taverna.server.master.common.Namespaces.SERVER_REST; -import static org.taverna.server.master.common.Namespaces.SERVER_SOAP; -import static org.taverna.server.master.common.Namespaces.XLINK; -import static org.taverna.server.port_description.Namespaces.DATA; - -import javax.xml.bind.annotation.XmlNs; -import javax.xml.bind.annotation.XmlSchema; - http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-webapp/src/main/java/org/taverna/server/master/soap/DirEntry.java ---------------------------------------------------------------------- diff --git a/server-webapp/src/main/java/org/taverna/server/master/soap/DirEntry.java b/server-webapp/src/main/java/org/taverna/server/master/soap/DirEntry.java deleted file mode 100644 index bb8d73f..0000000 --- a/server-webapp/src/main/java/org/taverna/server/master/soap/DirEntry.java +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright (C) 2013 The University of Manchester - * - * See the file "LICENSE" for license terms. - */ -package org.taverna.server.master.soap; - -import static org.taverna.server.master.common.Namespaces.XLINK; - -import java.net.URI; - -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlSeeAlso; -import javax.xml.bind.annotation.XmlType; - -import org.taverna.server.master.common.DirEntryReference; - -/** - * A more Taverna-friendly version of the directory entry descriptor classes. - * - * @author Donal Fellows - */ -@XmlType(name = "DirectoryEntry") -@XmlRootElement(name = "entry") -@XmlSeeAlso({ DirEntry.File.class, DirEntry.Directory.class }) -public class DirEntry { - /** A link to the entry. Ignored on input. */ - @XmlAttribute(name = "href", namespace = XLINK) - @XmlSchemaType(name = "anyURI") - public URI link; - @XmlAttribute - public String name; - @XmlElement(required = true) - public String path; - - /** - * A file in a directory. - * - * @author Donal Fellows - */ - @XmlType(name = "FileDirEntry") - @XmlRootElement(name = "file") - public static class File extends DirEntry { - } - - /** - * A directory in a directory. That is, a sub-directory. - * - * @author Donal Fellows - */ - @XmlType(name = "DirectoryDirEntry") - @XmlRootElement(name = "dir") - public static class Directory extends DirEntry { - } - - /** - * Converts from the "common" format to the subclasses of this class. - * - * @param deref - * The "common" format handle to convert. - * @return The converted handle - */ - public static DirEntry convert(DirEntryReference deref) { - DirEntry result; - if (deref instanceof DirEntryReference.DirectoryReference) - result = new Directory(); - else if (deref instanceof DirEntryReference.FileReference) - result = new File(); - else - result = new DirEntry(); - result.link = deref.link; - result.name = deref.name; - result.path = deref.path; - return result; - } - - /** - * Converts to the "common" format from the subclasses of this class. - * - * @param deref - * The subclass of this class to convert. - * @return The converted reference. - */ - public static DirEntryReference convert(DirEntry de) { - DirEntryReference result; - if (de instanceof Directory) - result = new DirEntryReference.DirectoryReference(); - else if (de instanceof File) - result = new DirEntryReference.FileReference(); - else - result = new DirEntryReference(); - result.link = de.link; - result.name = de.name; - result.path = de.path; - return result; - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-webapp/src/main/java/org/taverna/server/master/soap/FileContents.java ---------------------------------------------------------------------- diff --git a/server-webapp/src/main/java/org/taverna/server/master/soap/FileContents.java b/server-webapp/src/main/java/org/taverna/server/master/soap/FileContents.java deleted file mode 100644 index 7ebc991..0000000 --- a/server-webapp/src/main/java/org/taverna/server/master/soap/FileContents.java +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Copyright (C) 2011 The University of Manchester - * - * See the file "LICENSE" for license terms. - */ -package org.taverna.server.master.soap; - -import static java.lang.Math.min; -import static java.lang.System.arraycopy; - -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; - -import javax.activation.DataHandler; -import javax.activation.DataSource; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlMimeType; -import javax.xml.bind.annotation.XmlType; - -import org.taverna.server.master.exceptions.FilesystemAccessException; -import org.taverna.server.master.interfaces.File; - -/** - * An MTOM-capable description of how to transfer the contents of a file. - * - * @author Donal Fellows - */ -@XmlType(name = "FileContents") -public class FileContents { - @XmlElement - public String name; - @XmlMimeType("application/octet-stream") // JAXB bug: must be this - public DataHandler fileData; - - /** - * Initialize the contents of this descriptor from the given file and - * content type. - * - * @param file - * The file that is to be reported. - * @param contentType - * The estimated content type of the file. - */ - public void setFile(File file, String contentType) { - name = file.getFullName(); - fileData = new DataHandler(new TavernaFileSource(file, contentType)); - } - - /** - * Write the content described by this class to the specified file. - * @param file The file to write to; must already exist. - * @throws IOException - * @throws FilesystemAccessException - */ - public void writeToFile(File file) throws IOException, - FilesystemAccessException { - try (InputStream is = fileData.getInputStream()) { - byte[] buf = new byte[65536]; - file.setContents(new byte[0]); - while (true) { - int len = is.read(buf); - if (len <= 0) - return; - if (len == buf.length) - file.appendContents(buf); - else { - byte[] shortbuf = new byte[len]; - arraycopy(buf, 0, shortbuf, 0, len); - file.appendContents(shortbuf); - } - } - } - } -} - -/** - * A data source that knows how to communicate with the Taverna Server back-end. - * - * @author Donal Fellows - */ -class TavernaFileSource implements DataSource { - TavernaFileSource(File f, String type) { - this.f = f; - this.type = type; - } - - private final File f; - private final String type; - - @Override - public String getContentType() { - return type; - } - - @Override - public String getName() { - return f.getName(); - } - - @Override - public InputStream getInputStream() throws IOException { - final File f = this.f; - return new InputStream() { - private int idx; - - @Override - public int read(byte[] b, int off, int len) throws IOException { - byte[] r; - try { - r = f.getContents(idx, len); - } catch (FilesystemAccessException e) { - throw new IOException(e); - } - if (r == null) - return -1; - len = min(len, r.length); - arraycopy(r, 0, b, off, len); - idx += len; - return len; - } - - @Override - public int read() throws IOException { - byte[] r; - try { - r = f.getContents(idx, 1); - } catch (FilesystemAccessException e) { - throw new IOException(e); - } - if (r == null) - return -1; - idx++; - return r[0]; - } - }; - } - - @Override - public OutputStream getOutputStream() throws IOException { - final File f = this.f; - return new OutputStream() { - private boolean append = false; - - @Override - public void write(int b) throws IOException { - write(new byte[] { (byte) b }); - } - - @Override - public void write(byte[] b) throws IOException { - try { - if (append) - f.appendContents(b); - else - f.setContents(b); - append = true; - } catch (FilesystemAccessException e) { - throw new IOException(e); - } - } - - @Override - public void write(byte[] b, int off, int len) throws IOException { - byte[] ary = new byte[len]; - arraycopy(b, off, ary, 0, len); - write(ary); - } - }; - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/2c71f9a9/server-webapp/src/main/java/org/taverna/server/master/soap/PermissionList.java ---------------------------------------------------------------------- diff --git a/server-webapp/src/main/java/org/taverna/server/master/soap/PermissionList.java b/server-webapp/src/main/java/org/taverna/server/master/soap/PermissionList.java deleted file mode 100644 index 3ab6d0c..0000000 --- a/server-webapp/src/main/java/org/taverna/server/master/soap/PermissionList.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (C) 2011 The University of Manchester - * - * See the file "LICENSE" for license terms. - */ -package org.taverna.server.master.soap; - -import java.util.List; - -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlType; - -import org.taverna.server.master.common.Permission; - -/** - * The list of permissions to access a workflow run of users <i>other than the - * owner</i>. This class exists to support the JAXB mapping. - * - * @author Donal Fellows - */ -@XmlType(name = "PermissionList") -@XmlRootElement(name = "permissionList") -public class PermissionList { - /** - * The type of a single mapped permission. This class exists to support the - * JAXB mapping. - * - * @author Donal Fellows - */ - @XmlType(name = "") - public static class SinglePermissionMapping { - public SinglePermissionMapping() { - } - - public SinglePermissionMapping(String user, Permission permission) { - this.userName = user; - this.permission = permission; - } - - /** The name of the user that this talks about. */ - public String userName; - /** The permission level that the user is granted. */ - public Permission permission; - } - - /** The list of (non-default) permissions granted. */ - @XmlElement - public List<SinglePermissionMapping> permission; -} \ No newline at end of file
