http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/00397eff/taverna-server-webapp/src/main/java/org/taverna/server/master/rest/handler/package-info.java ---------------------------------------------------------------------- diff --git a/taverna-server-webapp/src/main/java/org/taverna/server/master/rest/handler/package-info.java b/taverna-server-webapp/src/main/java/org/taverna/server/master/rest/handler/package-info.java deleted file mode 100644 index 8404ead..0000000 --- a/taverna-server-webapp/src/main/java/org/taverna/server/master/rest/handler/package-info.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - */ -/** - * 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; -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -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/00397eff/taverna-server-webapp/src/main/java/org/taverna/server/master/rest/package-info.java ---------------------------------------------------------------------- diff --git a/taverna-server-webapp/src/main/java/org/taverna/server/master/rest/package-info.java b/taverna-server-webapp/src/main/java/org/taverna/server/master/rest/package-info.java deleted file mode 100644 index d35dc7b..0000000 --- a/taverna-server-webapp/src/main/java/org/taverna/server/master/rest/package-info.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - */ -/** - * 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; -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -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/00397eff/taverna-server-webapp/src/main/java/org/taverna/server/master/soap/DirEntry.java ---------------------------------------------------------------------- diff --git a/taverna-server-webapp/src/main/java/org/taverna/server/master/soap/DirEntry.java b/taverna-server-webapp/src/main/java/org/taverna/server/master/soap/DirEntry.java deleted file mode 100644 index 752c6b1..0000000 --- a/taverna-server-webapp/src/main/java/org/taverna/server/master/soap/DirEntry.java +++ /dev/null @@ -1,113 +0,0 @@ -/* - */ -package org.taverna.server.master.soap; -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -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/00397eff/taverna-server-webapp/src/main/java/org/taverna/server/master/soap/FileContents.java ---------------------------------------------------------------------- diff --git a/taverna-server-webapp/src/main/java/org/taverna/server/master/soap/FileContents.java b/taverna-server-webapp/src/main/java/org/taverna/server/master/soap/FileContents.java deleted file mode 100644 index fa9978b..0000000 --- a/taverna-server-webapp/src/main/java/org/taverna/server/master/soap/FileContents.java +++ /dev/null @@ -1,184 +0,0 @@ -/* - */ -package org.taverna.server.master.soap; -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -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/00397eff/taverna-server-webapp/src/main/java/org/taverna/server/master/soap/PermissionList.java ---------------------------------------------------------------------- diff --git a/taverna-server-webapp/src/main/java/org/taverna/server/master/soap/PermissionList.java b/taverna-server-webapp/src/main/java/org/taverna/server/master/soap/PermissionList.java deleted file mode 100644 index 6568ab2..0000000 --- a/taverna-server-webapp/src/main/java/org/taverna/server/master/soap/PermissionList.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - */ -package org.taverna.server.master.soap; -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -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 http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/00397eff/taverna-server-webapp/src/main/java/org/taverna/server/master/soap/TavernaServerSOAP.java ---------------------------------------------------------------------- diff --git a/taverna-server-webapp/src/main/java/org/taverna/server/master/soap/TavernaServerSOAP.java b/taverna-server-webapp/src/main/java/org/taverna/server/master/soap/TavernaServerSOAP.java deleted file mode 100644 index f41539c..0000000 --- a/taverna-server-webapp/src/main/java/org/taverna/server/master/soap/TavernaServerSOAP.java +++ /dev/null @@ -1,1566 +0,0 @@ -/* - */ -package org.taverna.server.master.soap; -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import static org.taverna.server.master.common.Namespaces.SERVER_SOAP; -import static org.taverna.server.master.common.Roles.USER; - -import java.net.URI; -import java.util.Date; -import java.util.List; - -import javax.annotation.security.RolesAllowed; -import javax.jws.WebMethod; -import javax.jws.WebParam; -import javax.jws.WebResult; -import javax.jws.WebService; -import javax.xml.bind.annotation.XmlElement; - -import org.apache.cxf.annotations.WSDLDocumentation; -import org.apache.taverna.server.usagerecord.JobUsageRecord; -import org.taverna.server.master.common.Capability; -import org.taverna.server.master.common.Credential; -import org.taverna.server.master.common.DirEntryReference; -import org.taverna.server.master.common.InputDescription; -import org.taverna.server.master.common.Permission; -import org.taverna.server.master.common.ProfileList; -import org.taverna.server.master.common.RunReference; -import org.taverna.server.master.common.Status; -import org.taverna.server.master.common.Trust; -import org.taverna.server.master.common.Workflow; -import org.taverna.server.master.common.version.Version; -import org.taverna.server.master.exceptions.BadPropertyValueException; -import org.taverna.server.master.exceptions.BadStateChangeException; -import org.taverna.server.master.exceptions.FilesystemAccessException; -import org.taverna.server.master.exceptions.InvalidCredentialException; -import org.taverna.server.master.exceptions.NoCreateException; -import org.taverna.server.master.exceptions.NoCredentialException; -import org.taverna.server.master.exceptions.NoDirectoryEntryException; -import org.taverna.server.master.exceptions.NoListenerException; -import org.taverna.server.master.exceptions.NoUpdateException; -import org.taverna.server.master.exceptions.NotOwnerException; -import org.taverna.server.master.exceptions.UnknownRunException; -import org.taverna.server.master.rest.TavernaServerREST; -import org.taverna.server.port_description.OutputDescription; - -/** - * The SOAP service interface to Taverna 3 Server. - * - * @author Donal Fellows - * @see TavernaServerREST - */ -@RolesAllowed(USER) -@WebService(name = "tavernaService", targetNamespace = SERVER_SOAP) -@WSDLDocumentation("The SOAP service interface to Taverna " + Version.JAVA - + " Server.") -public interface TavernaServerSOAP { - /** - * Make a run for a particular workflow. - * - * @param workflow - * The workflow to instantiate. - * @return Annotated handle for created run. - * @throws NoUpdateException - * @throws NoCreateException - */ - @WebResult(name = "Run") - @WSDLDocumentation("Make a run for a particular workflow.") - RunReference submitWorkflow( - @WebParam(name = "workflow") @XmlElement(required = true) Workflow workflow) - throws NoUpdateException, NoCreateException; - - /** - * Make a run for a particular workflow. - * - * @param workflow - * The workflow to instantiate. - * @return Annotated handle for created run. - * @throws NoUpdateException - * @throws NoCreateException - */ - @WebResult(name = "Run") - @WSDLDocumentation("Make a run for a particular workflow.") - RunReference submitWorkflowMTOM( - @WebParam(name = "workflow") @XmlElement(required = true) WrappedWorkflow workflow) - throws NoUpdateException; - - /** - * Make a run for a particular workflow, where that workflow will be - * downloaded from elsewhere. The URI <i>must</i> be publicly readable. - * - * @param workflowURI - * The URI to the workflow to instantiate. - * @return Annotated handle for created run. - * @throws NoUpdateException - * @throws NoCreateException - */ - @WebResult(name = "Run") - @WSDLDocumentation("Make a run for a particular workflow where that " - + "workflow is given by publicly readable URI.") - RunReference submitWorkflowByURI( - @WebParam(name = "workflowURI") @XmlElement(required = true) URI workflowURI) - throws NoCreateException, NoUpdateException; - - /** - * Get the list of existing runs owned by the user. - * - * @return Annotated handle list. - */ - @WebResult(name = "Run") - @WSDLDocumentation("Get the list of existing runs owned by the user.") - RunReference[] listRuns(); - - /** - * Get the upper limit on the number of runs that the user may create at - * once. - * - * @return The limit. <b>NB:</b> the number currently operating may be - * larger, but in that case no further runs can be made until some - * of the old ones are destroyed. - */ - @WebResult(name = "MaxSimultaneousRuns") - @WSDLDocumentation("Get the upper limit on the number of runs that the user may create at once.") - int getServerMaxRuns(); - - /** - * Get the list of allowed workflows. If the list is empty, <i>any</i> - * workflow may be used. - * - * @return A list of workflow documents. - */ - @WebMethod(operationName = "getPermittedWorkflowURIs") - @WebResult(name = "PermittedWorkflowURI") - @WSDLDocumentation("Get the list of URIs to allowed workflows. If the list is empty, any workflow may be used including those not submitted via URI.") - URI[] getServerWorkflows(); - - /** - * Get the list of allowed event listeners. - * - * @return A list of listener names. - */ - @WebMethod(operationName = "getPermittedListenerTypes") - @WebResult(name = "PermittedListenerType") - @WSDLDocumentation("Get the list of allowed types of event listeners.") - String[] getServerListeners(); - - /** - * Get the list of notification fabrics. - * - * @return A list of listener names. - */ - @WebMethod(operationName = "getEnabledNotificationFabrics") - @WebResult(name = "EnabledNotifierFabric") - @WSDLDocumentation("Get the list of notification fabrics. Each is a URI scheme.") - String[] getServerNotifiers(); - - @WebMethod(operationName = "getCapabilities") - @WebResult(name = "Capabilities") - @WSDLDocumentation("Get the workflow execution capabilities of this " - + "Taverna Server instance.") - List<Capability> getServerCapabilities(); - - /** - * Destroy a run immediately. This might or might not actually relinquish - * resources; that's up to the service implementation and deployment. - * - * @param runName - * The handle of the run. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws NoUpdateException - * If the user isn't allowed to manipulate the lifetime of the - * run. - */ - @WSDLDocumentation("Destroy a run immediately.") - void destroyRun( - @WebParam(name = "runName") @XmlElement(required = true) String runName) - throws UnknownRunException, NoUpdateException; - - /** - * Get the workflow document used to create the given run. - * - * @param runName - * The handle of the run. - * @return The workflow document. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - */ - @WebResult(name = "CreationWorkflow") - @WSDLDocumentation("Get the workflow document used to create the given run.") - Workflow getRunWorkflow( - @WebParam(name = "runName") @XmlElement(required = true) String runName) - throws UnknownRunException; - - /** - * Get the workflow document used to create the given run. - * - * @param runName - * The handle of the run. - * @return The workflow document. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - */ - @WebResult(name = "CreationWorkflow") - @WSDLDocumentation("Get the workflow document used to create the given run.") - WrappedWorkflow getRunWorkflowMTOM( - @WebParam(name = "runName") String runName) - throws UnknownRunException; - - /** - * Get a description of the profiles supported by the workflow document used - * to create the given run. - * - * @param runName - * The handle of the run. - * @return A description of the supported profiles. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - */ - @WebResult(name = "Profiles") - @WSDLDocumentation("Get a description of the profiles supported by the workflow document used to create the given run.") - ProfileList getRunWorkflowProfiles( - @WebParam(name = "runName") String runName) - throws UnknownRunException; - - /** - * Get the descriptive name of the workflow run. The descriptive name - * carries no deep information. - * - * @param runName - * The handle of the run. - * @return The descriptive name of the run. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - */ - @WebResult(name = "DescriptiveName") - @WSDLDocumentation("Get the descriptive name of the workflow run. Carries no deep information.") - String getRunDescriptiveName( - @WebParam(name = "runName") @XmlElement(required = true) String runName) - throws UnknownRunException; - - /** - * Set the descriptive name of the workflow run. The descriptive name - * carries no deep information. - * - * @param runName - * The handle of the run. - * @param descriptiveName - * The new descriptive name to set. Note that the implementation - * is allowed to arbitrarily truncate this value. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws NoUpdateException - * If the user is not permitted to update this run. - */ - @WSDLDocumentation("Set the descriptive name of the workflow run. Carries no deep information.") - void setRunDescriptiveName( - @WebParam(name = "runName") @XmlElement(required = true) String runName, - @WebParam(name = "descriptiveName") @XmlElement(required = true) String descriptiveName) - throws UnknownRunException, NoUpdateException; - - /** - * Get the description of the inputs to the workflow run. - * - * @param runName - * The handle of the run. - * @return The input description - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - */ - @WebResult(name = "RunInputDescription") - @WSDLDocumentation("Get the description of the inputs currently set up for the given workflow run.") - InputDescription getRunInputs( - @WebParam(name = "runName") @XmlElement(required = true) String runName) - throws UnknownRunException; - - /** - * Get a description of what inputs the workflow run <i>expects</i> to - * receive. - * - * @param runName - * The handle of the run. - * @return The description document. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - */ - @WebResult(name = "RunInputDescriptor") - @WSDLDocumentation("Get a description of what inputs the given workflow run expects to receive.") - org.taverna.server.port_description.InputDescription getRunInputDescriptor( - @WebParam(name = "runName") @XmlElement(required = true) String runName) - throws UnknownRunException; - - /** - * Tells the run to use the given Baclava file for all inputs. - * - * @param runName - * The handle of the run. - * @param fileName - * The name of the file to use. Must not start with a <tt>/</tt> - * or contain a <tt>..</tt> element. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws NoUpdateException - * If the user isn't allowed to manipulate the run. - * @throws FilesystemAccessException - * If the filename is illegal. - * @throws BadStateChangeException - * If the run is not in the {@link Status#Initialized - * Initialized} state - */ - @WSDLDocumentation("Tells the given run to use the given already-uploaded Baclava file for all inputs.") - void setRunInputBaclavaFile( - @WebParam(name = "runName") @XmlElement(required = true) String runName, - @WebParam(name = "baclavaFileName") String fileName) - throws UnknownRunException, NoUpdateException, - FilesystemAccessException, BadStateChangeException; - - /** - * Tells the run to use the given file for input on the given port. This - * overrides any previously set file or value on the port and causes the - * server to forget about using a Baclava file for all inputs. - * - * @param runName - * The handle of the run. - * @param portName - * The port to use the file for. - * @param portFilename - * The file to use on the port. Must not start with a <tt>/</tt> - * or contain a <tt>..</tt> element. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws NoUpdateException - * If the user isn't allowed to manipulate the run. - * @throws FilesystemAccessException - * If the filename is illegal. - * @throws BadStateChangeException - * If the run is not in the {@link Status#Initialized - * Initialized} state. - * @throws BadPropertyValueException - * If the input port may not be changed to the contents of the - * given file. - */ - @WSDLDocumentation("Tells the given run to use the given file for input on the given port.") - void setRunInputPortFile( - @WebParam(name = "runName") @XmlElement(required = true) String runName, - @WebParam(name = "portName") @XmlElement(required = true) String portName, - @WebParam(name = "portFileName") @XmlElement(required = true) String portFilename) - throws UnknownRunException, NoUpdateException, - FilesystemAccessException, BadStateChangeException, - BadPropertyValueException; - - /** - * Tells the run to use the given value for input on the given port. This - * overrides any previously set file or value on the port and causes the - * server to forget about using a Baclava file for all inputs. Note that - * this is wholly unsuitable for use with binary data. - * - * @param runName - * The handle of the run. - * @param portName - * The port to use the file for. - * @param portValue - * The literal value to use on the port. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws NoUpdateException - * If the user isn't allowed to manipulate the run. - * @throws BadStateChangeException - * If the run is not in the {@link Status#Initialized - * Initialized} state. - * @throws BadPropertyValueException - * If the input port may not be changed to the given literal - * value. - */ - @WSDLDocumentation("Tells the given run to use the given literal string value for input on the given port.") - void setRunInputPortValue( - @WebParam(name = "runName") @XmlElement(required = true) String runName, - @WebParam(name = "portName") @XmlElement(required = true) String portName, - @WebParam(name = "portValue") @XmlElement(required = true) String portValue) - throws UnknownRunException, NoUpdateException, - BadStateChangeException, BadPropertyValueException; - - /** - * Tells the given run to use the given list delimiter (a single-character - * string value) for splitting the input on the given port. Note that - * nullability of the delimiter is supported here. - * - * @param runName - * The handle of the run. - * @param portName - * The port to set the list delimiter for. - * @param delimiter - * The single-character value (in range U+00001..U+0007F) to use - * as the delimiter, or <tt>null</tt> for no delimiter at all. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws NoUpdateException - * If the user isn't allowed to manipulate the run. - * @throws BadStateChangeException - * If the run is not in the {@link Status#Initialized - * Initialized} state. - * @throws BadPropertyValueException - * If the delimiter may not be changed to the given literal - * value. - */ - @WSDLDocumentation("Tells the given run to use the given list delimiter (a single-character string value) for splitting the input on the given port. Note that nullability of the delimiter is supported here.") - void setRunInputPortListDelimiter( - @WebParam(name = "runName") @XmlElement(required = true) String runName, - @WebParam(name = "portName") @XmlElement(required = true) String portName, - @WebParam(name = "delimiter") String delimiter) - throws UnknownRunException, NoUpdateException, - BadStateChangeException, BadPropertyValueException; - - /** - * Get the Baclava file where the output of the run will be written. - * - * @param runName - * The handle of the run. - * @return The filename, or <tt>null</tt> if the results will be written to - * a subdirectory <tt>out</tt> of the run's working directory. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - */ - @WebResult(name = "OutputBaclavaFile") - @WSDLDocumentation("Get the Baclava file where the output of the run will be written.") - String getRunOutputBaclavaFile( - @WebParam(name = "runName") @XmlElement(required = true) String runName) - throws UnknownRunException; - - /** - * Set the Baclava file where the output of the run will be written. - * - * @param runName - * The handle of the run. - * @param outputFile - * The filename for the Baclava file, or <tt>null</tt> or the - * empty string to indicate that the results are to be written to - * the subdirectory <tt>out</tt> of the run's working directory. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws NoUpdateException - * If the user isn't allowed to manipulate the run. - * @throws FilesystemAccessException - * If the filename is illegal (starts with a <tt>/</tt> or - * contains a <tt>..</tt> element. - * @throws BadStateChangeException - * If the run is not in the {@link Status#Initialized - * Initialized} state - */ - @WSDLDocumentation("Set the Baclava file where the output of the run will be written.") - void setRunOutputBaclavaFile( - @WebParam(name = "runName") @XmlElement(required = true) String runName, - @WebParam(name = "baclavaFileName") String outputFile) - throws UnknownRunException, NoUpdateException, - FilesystemAccessException, BadStateChangeException; - - /** - * Return a description of the outputs of a run. - * - * @param runName - * The handle of the run. - * @return Description document (higher level than filesystem traverse). - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws BadStateChangeException - * If the run is in the {@link Status#Initialized Initialized} - * state - * @throws FilesystemAccessException - * If there is an exception when accessing the filesystem. - * @throws NoDirectoryEntryException - * If things are odd in the filesystem. - */ - @WebResult(name = "OutputDescription") - @WSDLDocumentation("Return a description of the outputs of a run. Only known during/after the run.") - OutputDescription getRunOutputDescription( - @WebParam(name = "runName") @XmlElement(required = true) String runName) - throws UnknownRunException, BadStateChangeException, - FilesystemAccessException, NoDirectoryEntryException; - - /** - * Get the time when the run will be eligible to be automatically deleted. - * - * @param runName - * The handle of the run. - * @return A date at which the expiry will be scheduled. The actual deletion - * will happen an arbitrary amount of time later (depending on - * system policy). - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - */ - @WebResult(name = "Expiry") - @WSDLDocumentation("Get the time when the run will be eligible to be automatically deleted.") - Date getRunExpiry( - @WebParam(name = "runName") @XmlElement(required = true) String runName) - throws UnknownRunException; - - /** - * Set when the run will be eligible to be automatically deleted. - * - * @param runName - * The handle of the run. - * @param expiry - * A date at which the expiry will be scheduled. The actual - * deletion will happen an arbitrary amount of time later - * (depending on system policy). - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws NoUpdateException - * If the user isn't allowed to manipulate the lifetime of the - * run. - */ - @WSDLDocumentation("Set when the run will be eligible to be automatically deleted.") - void setRunExpiry( - @WebParam(name = "runName") @XmlElement(required = true) String runName, - @WebParam(name = "expiry") @XmlElement(required = true) Date expiry) - throws UnknownRunException, NoUpdateException; - - /** - * Get the time when the run was created. - * - * @param runName - * The handle of the run. - * @return The moment when the run was created (modulo some internal - * overhead). - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - */ - @WebResult(name = "CreationTime") - @WSDLDocumentation("Get the time when the run was created.") - Date getRunCreationTime( - @WebParam(name = "runName") @XmlElement(required = true) String runName) - throws UnknownRunException; - - /** - * Get the time when the run was started. - * - * @param runName - * The handle of the run. - * @return The moment when the run was started (modulo some internal - * overhead) or <tt>null</tt> to indicate that it has never started. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - */ - @WebResult(name = "StartTime") - @WSDLDocumentation("Get the time when the run was started.") - Date getRunStartTime( - @WebParam(name = "runName") @XmlElement(required = true) String runName) - throws UnknownRunException; - - /** - * Get the time when the run was detected as having finished. - * - * @param runName - * The handle of the run. - * @return The moment when the run was believed stopped. Note that this may - * not be when the run <i>actually</i> finished; promptness of - * detection depends on many factors. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - */ - @WebResult(name = "FinishTime") - @WSDLDocumentation("Get the time when the run was detected as having finished.") - Date getRunFinishTime( - @WebParam(name = "runName") @XmlElement(required = true) String runName) - throws UnknownRunException; - - /** - * Get the current status of the run. - * - * @param runName - * The handle of the run. - * @return The status code. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - */ - @WebResult(name = "Status") - @WSDLDocumentation("Get the current status of the given workflow run.") - Status getRunStatus( - @WebParam(name = "runName") @XmlElement(required = true) String runName) - throws UnknownRunException; - - /** - * Set the status of a run. This is used to start it executing, make it stop - * executing, etc. Note that changing the status of a run can <i>never</i> - * cause the run to be destroyed. - * - * @param runName - * The handle of the run. - * @param status - * The status to change to. Changing to the current status will - * always have no effect. - * @return An empty string if the state change was completed, or a - * description (never empty) of why the state change is ongoing. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws NoUpdateException - * If the user isn't allowed to manipulate the run. - * @throws BadStateChangeException - * If the state change requested is impossible. - */ - @WebResult(name = "PartialityReason") - @WSDLDocumentation("Set the status of a given workflow run.") - String setRunStatus( - @WebParam(name = "runName") @XmlElement(required = true) String runName, - @WebParam(name = "status") @XmlElement(required = true) Status status) - throws UnknownRunException, NoUpdateException, - BadStateChangeException; - - /** - * Get the names of the event listeners attached to the run. - * - * @param runName - * The handle of the run. - * @return The listener names. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - */ - @WebResult(name = "ListenerName") - @WSDLDocumentation("Get the names of the event listeners attached to the run.") - String[] getRunListeners( - @WebParam(name = "runName") @XmlElement(required = true) String runName) - throws UnknownRunException; - - /** - * Adds an event listener to the run. - * - * @param runName - * The handle of the run. - * @param listenerType - * The type of event listener to add. Must be one of the names - * returned by the {@link #getServerListeners()} operation. - * @param configuration - * The configuration document for the event listener; the - * interpretation of the configuration is up to the listener. - * @return The actual name of the listener. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws NoUpdateException - * If the user isn't allowed to manipulate the run. - * @throws NoListenerException - * If the listener construction fails (<i>e.g.</i>, due to an - * unsupported <b>listenerType</b> or a problem with the - * <b>configuration</b>). - */ - @WebResult(name = "ListenerName") - @WSDLDocumentation("Adds an event listener to the run.") - String addRunListener( - @WebParam(name = "runName") @XmlElement(required = true) String runName, - @WebParam(name = "listenerType") @XmlElement(required = true) String listenerType, - @WebParam(name = "configuration") @XmlElement(required = true) String configuration) - throws UnknownRunException, NoUpdateException, NoListenerException; - - /** - * Returns the standard output of the workflow run. Unstarted runs return - * the empty string. - * <p> - * The equivalent thing can also be fetched from the relevant listener - * property (i.e., io/stdout). - * - * @param runName - * The handle of the run. - * @return Whatever the run engine printed on its stdout. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - */ - @WebResult(name = "StandardOutput") - @WSDLDocumentation("Returns the stdout from the run engine.") - String getRunStdout( - @WebParam(name = "runName") @XmlElement(required = true) String runName) - throws UnknownRunException; - - /** - * Returns the standard error of the workflow run. Unstarted runs return the - * empty string. - * <p> - * The equivalent thing can also be fetched from the relevant listener - * property (i.e., io/stderr). - * - * @param runName - * The handle of the run. - * @return Whatever the run engine printed on its stderr. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - */ - @WebResult(name = "StandardError") - @WSDLDocumentation("Returns the stderr from the run engine.") - String getRunStderr( - @WebParam(name = "runName") @XmlElement(required = true) String runName) - throws UnknownRunException; - - /** - * Returns the usage record for the workflow run. Unfinished runs return - * <tt>null</tt>. - * <p> - * The equivalent thing can also be fetched from the relevant listener - * property (i.e., io/usage). - * - * @param runName - * The handle of the run. - * @return The usage record, or <tt>null</tt>. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - */ - @WebResult(name = "ResourceUsage") - @WSDLDocumentation("Returns the resource usage from the run engine.") - JobUsageRecord getRunUsageRecord( - @WebParam(name = "runName") @XmlElement(required = true) String runName) - throws UnknownRunException; - - /** - * Returns the log of the workflow run. Unstarted runs return the empty - * string. - * <p> - * This can also be fetched from the appropriate file (i.e., - * <tt>logs/detail.log</tt>). - * - * @param runName - * The handle of the run. - * @return Whatever the run engine wrote to its log. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - */ - @WebResult(name = "Log") - @WSDLDocumentation("Returns the detailed log from the run engine.") - String getRunLog( - @WebParam(name = "runName") @XmlElement(required = true) String runName) - throws UnknownRunException; - - /** - * Returns the run bundle of a run. The run must be <i>finished</i> for this - * to be guaranteed to be present, and must <i>not</i> have had its output - * generated as Baclava. - * - * @param runName - * The handle of the run. - * @return The contents of the run bundle. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws FilesystemAccessException - * If there was a problem reading the bundle. - * @throws NoDirectoryEntryException - * If the bundle doesn't exist currently. - */ - @WebResult(name = "RunBundle") - @WSDLDocumentation("Gets the run bundle of a finished run. MTOM support recommended!") - FileContents getRunBundle( - @WebParam(name = "runName") @XmlElement(required = true) String runName) - throws UnknownRunException, FilesystemAccessException, - NoDirectoryEntryException; - - /** - * Gets whether to generate provenance (in a run bundle) for a run. - * - * @param runName - * The handle of the run. - * @return Whether provenance will be generated. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - */ - @WebResult(name = "GenerateProvenance") - @WSDLDocumentation("Gets whether a run generates provenance.") - boolean getRunGenerateProvenance( - @WebParam(name = "runName") @XmlElement(required = true) String runName) - throws UnknownRunException; - - /** - * Sets whether to generate provenance (in a run bundle) for a run. - * - * @param runName - * The handle of the run. - * @param generateProvenance - * Whether to generate provenance. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws NoUpdateException - * If the user is not allowed to manipulate the run. - */ - @WSDLDocumentation("Sets whether a run generates provenance. " - + "Only usefully settable before the run is started.") - void setRunGenerateProvenance( - @WebParam(name = "runName") @XmlElement(required = true) String runName, - @WebParam(name = "generateProvenance") @XmlElement(required = true) boolean generateProvenance) - throws UnknownRunException, NoUpdateException; - - /** - * Get the owner of the run. - * - * @param runName - * The handle of the run. - * @return The status code. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - */ - @WebResult(name = "Owner") - @WSDLDocumentation("Get the owner of the given workflow run.") - String getRunOwner( - @WebParam(name = "runName") @XmlElement(required = true) String runName) - throws UnknownRunException; - - /** - * Get the list of permissions associated with a workflow run. - * - * @param runName - * The name of the run whose permissions are to be obtained. - * @return A description of the non-<tt>none</tt> permissions. - * @throws UnknownRunException - * If the server doesn't know about the run or if the current - * user is not permitted to see it. - * @throws NotOwnerException - * If asked to provide this information about a run that the - * current user may see but where they are not the owner of it. - */ - @WebResult(name = "PermissionList") - @WSDLDocumentation("Get the list of permissions associated with a given workflow run.") - PermissionList listRunPermissions( - @WebParam(name = "runName") @XmlElement(required = true) String runName) - throws UnknownRunException, NotOwnerException; - - /** - * Set the permission for a user to access and update a particular workflow - * run. - * - * @param runName - * The name of the run whose permissions are to be updated. - * @param userName - * The name of the user about whom this call is talking. - * @param permission - * The permission level to set. - * @throws UnknownRunException - * If the server doesn't know about the run or if the current - * user is not permitted to see it. - * @throws NotOwnerException - * If asked to provide this information about a run that the - * current user may see but where they are not the owner of it. - */ - @WSDLDocumentation("Set the permission for a user to access and update a given workflow run.") - void setRunPermission( - @WebParam(name = "runName") @XmlElement(required = true) String runName, - @WebParam(name = "userName") @XmlElement(required = true) String userName, - @WebParam(name = "permission") @XmlElement(required = true) Permission permission) - throws UnknownRunException, NotOwnerException; - - /** - * Get the credentials associated with the run. - * - * @param runName - * The handle of the run. - * @return The collection of credentials. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws NotOwnerException - * If the user is permitted to see the run, but isn't the owner; - * only the owner may see the credentials. - */ - @WebResult(name = "Credentials") - @WSDLDocumentation("Get the credentials (passwords, private keys) associated with the given workflow run. Only the owner may do this.") - Credential[] getRunCredentials( - @WebParam(name = "runName") @XmlElement(required = true) String runName) - throws UnknownRunException, NotOwnerException; - - /** - * Set a credential associated with the run. - * - * @param runName - * The handle of the run. - * @param credentialID - * The handle of the credential to set. If empty, a new - * credential will be created. - * @param credential - * The credential to set. - * @return The handle of the credential that was created or updated. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws NotOwnerException - * If the user is permitted to see the run, but isn't the owner; - * only the owner may manipulate the credentials. - * @throws InvalidCredentialException - * If the <b>credential</b> fails its checks. - * @throws NoCredentialException - * If the <b>credentialID</b> is not empty but does not - * correspond to an existing credential. - * @throws BadStateChangeException - * If an attempt to manipulate the credentials is done after the - * workflow has started running. - */ - @WebResult(name = "credentialID") - @WSDLDocumentation("Set a credential (password, private key, etc.) associated with the given run. Only the owner may do this.") - String setRunCredential( - @WebParam(name = "runName") @XmlElement(required = true) String runName, - @WebParam(name = "credentialID") @XmlElement(required = true) String credentialID, - @WebParam(name = "credential") @XmlElement(required = true) Credential credential) - throws UnknownRunException, NotOwnerException, - InvalidCredentialException, NoCredentialException, - BadStateChangeException; - - /** - * Delete a credential associated with the run. - * - * @param runName - * The handle of the run. - * @param credentialID - * The handle of the credential to delete. If empty, a new - * credential will be created. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws NotOwnerException - * If the user is permitted to see the run, but isn't the owner; - * only the owner may manipulate the credentials. - * @throws NoCredentialException - * If the given credentialID does not exist. - * @throws BadStateChangeException - * If an attempt to manipulate the credentials is done after the - * workflow has started running. - */ - @WSDLDocumentation("Delete a credential associated with the given run. Only the owner may do this.") - void deleteRunCredential( - @WebParam(name = "runName") @XmlElement(required = true) String runName, - @WebParam(name = "credentialID") @XmlElement(required = true) String credentialID) - throws UnknownRunException, NotOwnerException, - NoCredentialException, BadStateChangeException; - - /** - * Get the certificate collections associated with the run. - * - * @param runName - * The handle of the run. - * @return The collection of credentials. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws NotOwnerException - * If the user is permitted to see the run, but isn't the owner; - * only the owner may see the credentials. - */ - @WebResult(name = "CertificateCollections") - @WSDLDocumentation("Get the trusted (server or CA) certificates associated with the run. Only the owner may do this.") - Trust[] getRunCertificates( - @WebParam(name = "runName") @XmlElement(required = true) String runName) - throws UnknownRunException, NotOwnerException; - - /** - * Set a certificate collection associated with the run. - * - * @param runName - * The handle of the run. - * @param certificateID - * The handle of the certificate collection to set. If empty, a - * new certificate collection will be created. - * @param certificate - * The certificate collection to set. - * @return The handle of the certificate set that was created or updated. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws NotOwnerException - * If the user is permitted to see the run, but isn't the owner; - * only the owner may manipulate the certificates. - * @throws InvalidCredentialException - * If the <b>certificate</b> fails its checks. - * @throws NoCredentialException - * If the <b>credentialID</b> is not empty but does not - * correspond to an existing certificate collection. - * @throws BadStateChangeException - * If an attempt to manipulate the credentials is done after the - * workflow has started running. - */ - @WebResult(name = "certificateID") - @WSDLDocumentation("Set a trusted (server or CA) certificate associated with the run. Only the owner may do this.") - String setRunCertificates( - @WebParam(name = "runName") @XmlElement(required = true) String runName, - @WebParam(name = "certificateID") String certificateID, - @WebParam(name = "certificate") @XmlElement(required = true) Trust certificate) - throws UnknownRunException, NotOwnerException, - InvalidCredentialException, NoCredentialException, - BadStateChangeException; - - /** - * Delete a certificate collection associated with the run. - * - * @param runName - * The handle of the run. - * @param certificateID - * The handle of the credential to delete. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws NotOwnerException - * If the user is permitted to see the run, but isn't the owner; - * only the owner may manipulate the certificates. - * @throws NoCredentialException - * If the given certificateID does not exist. - * @throws BadStateChangeException - * If an attempt to manipulate the credentials is done after the - * workflow has started running. - */ - @WSDLDocumentation("Delete a trusted (server or CA) certificate associated with the run. Only the owner may do this.") - void deleteRunCertificates( - @WebParam(name = "runName") @XmlElement(required = true) String runName, - @WebParam(name = "certificateID") @XmlElement(required = true) String certificateID) - throws UnknownRunException, NotOwnerException, - NoCredentialException, BadStateChangeException; - - /** - * Get the contents of any directory at/under the run's working directory. - * Runs do not share working directories. - * - * @param runName - * The handle of the run. - * @param directory - * The name of the directory to fetch; the main working directory - * is <tt>/</tt> and <tt>..</tt> is always disallowed. - * @return A list of entries. They are assumed to be all directories or - * files. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws FilesystemAccessException - * If some assumption is violated (e.g., reading the contents of - * a file). - * @throws NoDirectoryEntryException - * If the name of the directory can't be looked up. - */ - @WebResult(name = "DirectoryEntry") - @WSDLDocumentation("Get the contents of any directory at/under the run's working directory.") - DirEntry[] getRunDirectoryContents( - @WebParam(name = "runName") @XmlElement(required = true) String runName, - @WebParam(name = "directory") @XmlElement(required = true) DirEntry directory) - throws UnknownRunException, FilesystemAccessException, - NoDirectoryEntryException; - - /** - * Get the contents of any directory (and its subdirectories) at/under the - * run's working directory, returning it as a compressed ZIP file. Runs do - * not share working directories. - * - * @param runName - * The handle of the run. - * @param directory - * The name of the directory to fetch; the main working directory - * is <tt>/</tt> and <tt>..</tt> is always disallowed. - * @return A serialized ZIP file. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws FilesystemAccessException - * If some assumption is violated (e.g., reading the contents of - * a file). - * @throws NoDirectoryEntryException - * If the name of the directory can't be looked up. - */ - @WebResult(name = "ZipFile") - @WSDLDocumentation("Get the contents of any directory (and its subdirectories) at/under the run's working directory, returning it as a compressed ZIP file.") - byte[] getRunDirectoryAsZip( - @WebParam(name = "runName") @XmlElement(required = true) String runName, - @WebParam(name = "directory") @XmlElement(required = true) DirEntry directory) - throws UnknownRunException, FilesystemAccessException, - NoDirectoryEntryException; - - /** - * Get the contents of any directory (and its subdirectories) at/under the - * run's working directory, returning it as a compressed ZIP file that is - * streamed via MTOM. Runs do not share working directories. - * - * @param runName - * The handle of the run. - * @param directory - * The name of the directory to fetch; the main working directory - * is <tt>/</tt> and <tt>..</tt> is always disallowed. - * @return An MTOM-streamable ZIP file reference. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws FilesystemAccessException - * If some assumption is violated (e.g., reading the contents of - * a file). - * @throws NoDirectoryEntryException - * If the name of the directory can't be looked up. - */ - @WebResult(name = "ZipStream") - @WSDLDocumentation("Get the contents of any directory (and its subdirectories) at/under the run's working directory, returning it as a compressed ZIP file that is streamed by MTOM.") - ZippedDirectory getRunDirectoryAsZipMTOM( - @WebParam(name = "runName") @XmlElement(required = true) String runName, - @WebParam(name = "directory") @XmlElement(required = true) DirEntry directory) - throws UnknownRunException, FilesystemAccessException, - NoDirectoryEntryException; - - /** - * Make a new empty directory beneath an existing one, which must be the - * run's working directory or a directory beneath it. Runs do not share - * working directories. - * - * @param runName - * The handle of the run. - * @param parent - * The parent directory that will have the new directory added - * beneath it. - * @param name - * The name of the directory to create. Must not be the same as - * any other file or directory in the <i>parent</i> directory. - * The name <i>must not</i> consist of <tt>..</tt> or have a - * <tt>/</tt> in it. - * @return A reference to the created directory. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws NoUpdateException - * If the user is not allowed to make modifications to the run. - * @throws FilesystemAccessException - * If some assumption is violated (e.g., making something with - * the same name as something that already exists). - * @throws NoDirectoryEntryException - * If the name of the containing directory can't be looked up. - */ - @WebResult(name = "CreatedDirectory") - @WSDLDocumentation("Make a new empty directory beneath an existing one, all relative to the given run's main working directory.") - DirEntry makeRunDirectory( - @WebParam(name = "runName") @XmlElement(required = true) String runName, - @WebParam(name = "parentDirectory") @XmlElement(required = true) DirEntry parent, - @WebParam(name = "directoryName") @XmlElement(required = true) String name) - throws UnknownRunException, NoUpdateException, - FilesystemAccessException, NoDirectoryEntryException; - - /** - * Make a new empty file in an existing directory, which may be the run's - * working directory or any directory beneath it. Runs do not share working - * directories. - * - * @param runName - * The handle of the run. - * @param parent - * The parent directory that will have the new file added to it. - * @param name - * The name of the file to create. Must not be the same as any - * other file or directory in the <i>parent</i> directory. The - * name <i>must not</i> consist of <tt>..</tt> or have a - * <tt>/</tt> in it. - * @return A reference to the created file. The file will be empty. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws NoUpdateException - * If the user is not allowed to make modifications to the run. - * @throws FilesystemAccessException - * If some assumption is violated (e.g., making something with - * the same name as something that already exists). - * @throws NoDirectoryEntryException - * If the name of the containing directory can't be looked up. - */ - @WebResult(name = "CreatedFile") - @WSDLDocumentation("Make a new empty file in an existing directory, which may be the run's working directory or any directory beneath it.") - DirEntry makeRunFile( - @WebParam(name = "runName") @XmlElement(required = true) String runName, - @WebParam(name = "parentDirectory") @XmlElement(required = true) DirEntry parent, - @WebParam(name = "fileNameTail") @XmlElement(required = true) String name) - throws UnknownRunException, NoUpdateException, - FilesystemAccessException, NoDirectoryEntryException; - - /** - * Destroy an entry (file or directory) in or beneath a run's working - * directory. Runs do not share working directories. - * - * @param runName - * The handle of the run. - * @param dirEntry - * Reference to an existing item in a directory that will be - * destroyed. May be a reference to either a file or a directory. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws NoUpdateException - * If the user is not allowed to make modifications to the run. - * @throws FilesystemAccessException - * If some assumption is violated (e.g., deleting something - * which doesn't exist or attempting to delete the main working - * directory). - * @throws NoDirectoryEntryException - * If the name of the file or directory can't be looked up. - */ - @WSDLDocumentation("Destroy an entry (file or directory) in or beneath a run's working directory.") - void destroyRunDirectoryEntry( - @WebParam(name = "runName") @XmlElement(required = true) String runName, - @WebParam(name = "directoryEntry") @XmlElement(required = true) DirEntry dirEntry) - throws UnknownRunException, NoUpdateException, - FilesystemAccessException, NoDirectoryEntryException; - - /** - * Get the contents of a file under the run's working directory. Runs do not - * share working directories. - * - * @param runName - * The handle of the run. - * @param file - * The name of the file to fetch; the main working directory is - * <tt>/</tt> and <tt>..</tt> is always disallowed. - * @return The literal byte contents of the file. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws FilesystemAccessException - * If some assumption is violated (e.g., reading the contents of - * a directory). - * @throws NoDirectoryEntryException - * If the file doesn't exist. - */ - @WebResult(name = "FileContents") - @WSDLDocumentation("Get the contents of a file under the run's working directory.") - byte[] getRunFileContents( - @WebParam(name = "runName") @XmlElement(required = true) String runName, - @WebParam(name = "fileName") @XmlElement(required = true) DirEntry file) - throws UnknownRunException, FilesystemAccessException, - NoDirectoryEntryException; - - /** - * Get the contents of a file under the run's working directory via MTOM. - * Runs do not share working directories. - * - * @param runName - * The handle of the run. - * @param file - * The name of the file to fetch; the main working directory is - * <tt>/</tt> and <tt>..</tt> is always disallowed. - * @return The contents, described for transfer via MTOM. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws FilesystemAccessException - * If some assumption is violated (e.g., reading the contents of - * a directory). - * @throws NoDirectoryEntryException - * If the file doesn't exist. - */ - @WebResult(name = "FileContentsMTOM") - @WSDLDocumentation("Get the contents of a file via MTOM.") - FileContents getRunFileContentsMTOM( - @WebParam(name = "runName") @XmlElement(required = true) String runName, - @WebParam(name = "fileName") @XmlElement(required = true) DirEntry file) - throws UnknownRunException, FilesystemAccessException, - NoDirectoryEntryException; - - /** - * Set the contents of a file under the run's working directory. Runs do not - * share working directories. - * - * @param runName - * The handle of the run. - * @param file - * The name of the file to update; the main working directory is - * <tt>/</tt> and <tt>..</tt> is always disallowed. - * @param newContents - * The literal bytes to set the file contents to. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws NoUpdateException - * If the user is not allowed to make modifications to the run. - * @throws FilesystemAccessException - * If some assumption is violated (e.g., writing the contents of - * a directory). - * @throws NoDirectoryEntryException - * If the file doesn't exist. - */ - @WSDLDocumentation("Set the contents of a file under the run's working directory.") - void setRunFileContents( - @WebParam(name = "runName") @XmlElement(required = true) String runName, - @WebParam(name = "fileName") @XmlElement(required = true) DirEntry file, - @WebParam(name = "contents") @XmlElement(required = true) byte[] newContents) - throws UnknownRunException, NoUpdateException, - FilesystemAccessException, NoDirectoryEntryException; - - /** - * Set the contents of a file under the run's working directory. Runs do not - * share working directories. - * - * @param runName - * The handle of the run. - * @param newContents - * The description of what file to set, and what to the file - * contents should be set to. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws NoUpdateException - * If the user is not allowed to make modifications to the run. - * @throws FilesystemAccessException - * If some assumption is violated (e.g., writing the contents of - * a directory). - * @throws NoDirectoryEntryException - * If the file doesn't exist. - */ - @WSDLDocumentation("Set the contents of a file under the run's working directory.") - void setRunFileContentsMTOM( - @WebParam(name = "runName") @XmlElement(required = true) String runName, - @WebParam(name = "contents") @XmlElement(required = true) FileContents newContents) - throws UnknownRunException, NoUpdateException, - FilesystemAccessException, NoDirectoryEntryException; - - /** - * Set the contents of a file under the run's working directory to the - * contents of a publicly readable URI. Runs do not share working - * directories. - * - * @param runName - * The handle of the run. - * @param file - * The name of the file to update; the main working directory is - * <tt>/</tt> and <tt>..</tt> is always disallowed. - * @param reference - * The publicly readable URI whose contents are to become the - * literal bytes of the file's contents. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws NoUpdateException - * If the user is not allowed to make modifications to the run. - * @throws FilesystemAccessException - * If some assumption is violated (e.g., writing the contents of - * a directory). - * @throws NoDirectoryEntryException - * If the file doesn't exist. - */ - @WSDLDocumentation("Set the contents of a file under the run's working directory from the contents of a publicly readable URI.") - void setRunFileContentsFromURI(@WebParam(name = "runName") String runName, - @WebParam(name = "fileName") DirEntryReference file, - @WebParam(name = "contents") URI reference) - throws UnknownRunException, NoUpdateException, - FilesystemAccessException, NoDirectoryEntryException; - - /** - * Get the length of any file (in bytes) at/under the run's working - * directory. Runs do not share working directories. - * - * @param runName - * The handle of the run. - * @param file - * The name of the file to get the length of; the main working - * directory is <tt>/</tt> and <tt>..</tt> is always disallowed. - * @return The number of bytes in the file. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws FilesystemAccessException - * If some assumption is violated (e.g., reading the length of a - * directory). - * @throws NoDirectoryEntryException - * If the file doesn't exist. - */ - @WebResult(name = "FileLength") - @WSDLDocumentation("Get the length of any file (in bytes) at/under the run's working directory.") - long getRunFileLength( - @WebParam(name = "runName") @XmlElement(required = true) String runName, - @WebParam(name = "fileName") @XmlElement(required = true) DirEntry file) - throws UnknownRunException, FilesystemAccessException, - NoDirectoryEntryException; - - /** - * Get the time that the file or directory (at/under the run's working - * directory) was last modified. Runs do not share working directories. - * - * @param runName - * The handle of the run. - * @param file - * The name of the file to get the modification date of; the main - * working directory is <tt>/</tt> and <tt>..</tt> is always - * disallowed. - * @return The modification date of the file or directory, as understood by - * the underlying operating system. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws FilesystemAccessException - * If some assumption is violated. - * @throws NoDirectoryEntryException - * If the file or directory doesn't exist. - */ - @WebResult(name = "FileModified") - @WSDLDocumentation("Get the length of any file (in bytes) at/under the run's working directory.") - Date getRunFileModified( - @WebParam(name = "runName") @XmlElement(required = true) String runName, - @WebParam(name = "fileName") @XmlElement(required = true) DirEntry file) - throws UnknownRunException, FilesystemAccessException, - NoDirectoryEntryException; - - /** - * Get the content type of any file at/under the run's working directory. - * Runs do not share working directories. - * - * @param runName - * The handle of the run. - * @param file - * The name of the file to get the length of; the main working - * directory is <tt>/</tt> and <tt>..</tt> is always disallowed. - * @return The content type of the file. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws FilesystemAccessException - * If some assumption is violated (e.g., reading the length of a - * directory). - * @throws NoDirectoryEntryException - * If the file doesn't exist. - */ - @WebResult(name = "FileContentType") - @WSDLDocumentation("Get the content type of any file at/under the run's working directory.") - String getRunFileType( - @WebParam(name = "runName") @XmlElement(required = true) String runName, - @WebParam(name = "fileName") @XmlElement(required = true) DirEntry file) - throws UnknownRunException, FilesystemAccessException, - NoDirectoryEntryException; - - /** - * Get the configuration document for an event listener attached to a run. - * - * @param runName - * The handle of the run. - * @param listenerName - * The name of the listener attached. - * @return The configuration document. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws NoListenerException - * If no such listener exists. - */ - @WebResult(name = "ListenerConfiguration") - @WSDLDocumentation("Get the configuration document for an event listener attached to a run.") - String getRunListenerConfiguration( - @WebParam(name = "runName") @XmlElement(required = true) String runName, - @WebParam(name = "listenerName") @XmlElement(required = true) String listenerName) - throws UnknownRunException, NoListenerException; - - /** - * Get the list of properties supported by an event listener attached to a - * run. - * - * @param runName - * The handle of the run. - * @param listenerName - * The name of the listener attached. - * @return The list of property names. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws NoListenerException - * If no such listener exists. - */ - @WebResult(name = "ListenerPropertyName") - @WSDLDocumentation("Get the list of properties supported by an event listener attached to a run.") - String[] getRunListenerProperties( - @WebParam(name = "runName") @XmlElement(required = true) String runName, - @WebParam(name = "listenerName") @XmlElement(required = true) String listenerName) - throws UnknownRunException, NoListenerException; - - /** - * Get the value of a property for an event listener attached to a run. - * - * @param runName - * The handle of the run. - * @param listenerName - * The name of the listener attached. - * @param propertyName - * The name of the property to read. - * @return The configuration document. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws NoListenerException - * If no such listener exists or if the listener has no such - * property. - */ - @WebResult(name = "ListenerPropertyValue") - @WSDLDocumentation("Get the value of a property for an event listener attached to a run.") - String getRunListenerProperty( - @WebParam(name = "runName") @XmlElement(required = true) String runName, - @WebParam(name = "listenerName") @XmlElement(required = true) String listenerName, - @WebParam(name = "propertyName") @XmlElement(required = true) String propertyName) - throws UnknownRunException, NoListenerException; - - /** - * Set the value of a property for an event listener attached to a run. - * - * @param runName - * The handle of the run. - * @param listenerName - * The name of the listener attached. - * @param propertyName - * The name of the property to write. - * @param value - * The value to set the property to. - * @throws UnknownRunException - * If the server doesn't know about the run or if the user is - * not permitted to see it. - * @throws NoListenerException - * If no such listener exists, the listener has no such - * property, or the value is considered "unacceptable" in some - * way. - * @throws NoUpdateException - * If the user is not allowed to make modifications to the run. - */ - @WSDLDocumentation("Set the value of a property for an event listener attached to a run.") - void setRunListenerProperty( - @WebParam(name = "runName") @XmlElement(required = true) String runName, - @WebParam(name = "listenerName") @XmlElement(required = true) String listenerName, - @WebParam(name = "propertyName") @XmlElement(required = true) String propertyName, - @WebParam(name = "propertyValue") @XmlElement(required = true) String value) - throws UnknownRunException, NoUpdateException, NoListenerException; - - /** - * Gets the status of the server. Follows the HELIO Monitoring Service - * protocol. - * - * @return A status string. - */ - @WSDLDocumentation("A simple way to get the status of the overall server.") - @WebResult(name = "ServerStatus") - String getServerStatus(); -}
