Return-Path: Delivered-To: apmail-oodt-commits-archive@www.apache.org Received: (qmail 32304 invoked from network); 23 Dec 2010 02:45:22 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 23 Dec 2010 02:45:22 -0000 Received: (qmail 62838 invoked by uid 500); 23 Dec 2010 02:45:22 -0000 Delivered-To: apmail-oodt-commits-archive@oodt.apache.org Received: (qmail 62816 invoked by uid 500); 23 Dec 2010 02:45:22 -0000 Mailing-List: contact commits-help@oodt.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@oodt.apache.org Delivered-To: mailing list commits@oodt.apache.org Received: (qmail 62809 invoked by uid 99); 23 Dec 2010 02:45:22 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 23 Dec 2010 02:45:22 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED,T_FILL_THIS_FORM_SHORT X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 23 Dec 2010 02:45:18 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 5D6772388C16; Thu, 23 Dec 2010 02:44:34 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1052143 [8/11] - in /oodt/branches/wengine-branch: ./ src/ src/main/ src/main/assembly/ src/main/bin/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/oodt/ src/main/java/org/apache/oodt/cas/ src/main/ja... Date: Thu, 23 Dec 2010 02:44:31 -0000 To: commits@oodt.apache.org From: bfoster@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20101223024434.5D6772388C16@eris.apache.org> Added: oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/server/channel/xmlrpc/XmlRpcCommunicationChannelClient.java URL: http://svn.apache.org/viewvc/oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/server/channel/xmlrpc/XmlRpcCommunicationChannelClient.java?rev=1052143&view=auto ============================================================================== --- oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/server/channel/xmlrpc/XmlRpcCommunicationChannelClient.java (added) +++ oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/server/channel/xmlrpc/XmlRpcCommunicationChannelClient.java Thu Dec 23 02:44:23 2010 @@ -0,0 +1,414 @@ +/* + * 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. + */ +package org.apache.oodt.cas.workflow.server.channel.xmlrpc; + +//JDK imports +import java.io.IOException; +import java.net.URL; +import java.util.Comparator; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Vector; + +//APACHE imports +import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.HttpMethod; +import org.apache.commons.httpclient.HttpMethodRetryHandler; +import org.apache.commons.httpclient.params.HttpMethodParams; +import org.apache.xmlrpc.CommonsXmlRpcTransport; +import org.apache.xmlrpc.XmlRpcClient; +import org.apache.xmlrpc.XmlRpcClientException; +import org.apache.xmlrpc.XmlRpcTransport; +import org.apache.xmlrpc.XmlRpcTransportFactory; + +//OODT imports +import org.apache.oodt.cas.catalog.page.PageInfo; +import org.apache.oodt.cas.catalog.query.QueryExpression; +import org.apache.oodt.cas.metadata.Metadata; +import org.apache.oodt.cas.workflow.event.WorkflowEngineEvent; +import org.apache.oodt.cas.workflow.instance.repo.WorkflowInstanceRepository; +import org.apache.oodt.cas.workflow.model.WorkflowGraph; +import org.apache.oodt.cas.workflow.model.WorkflowModel; +import org.apache.oodt.cas.workflow.page.PageFilter; +import org.apache.oodt.cas.workflow.page.QueryPage; +import org.apache.oodt.cas.workflow.page.QueuePage; +import org.apache.oodt.cas.workflow.page.RunnablesPage; +import org.apache.oodt.cas.workflow.priority.Priority; +import org.apache.oodt.cas.workflow.processor.ProcessorInfo; +import org.apache.oodt.cas.workflow.processor.ProcessorSkeleton; +import org.apache.oodt.cas.workflow.processor.ProcessorStub; +import org.apache.oodt.cas.workflow.server.channel.AbstractCommunicationChannelClient; +import org.apache.oodt.cas.workflow.state.WorkflowState; + +/** + * @author bfoster + * @version $Revision$ + * + *

+ * XML-RPC communication channel client + *

+ */ +public class XmlRpcCommunicationChannelClient extends + AbstractCommunicationChannelClient { + + protected XmlRpcClient client; + protected int chunkSize; + + public XmlRpcCommunicationChannelClient(final URL serverUrl, final int connectionTimeout, final int requestTimeout, final int chunkSize, final int connectionRetries, final int connectionRetryIntervalSecs) { + super(); + XmlRpcTransportFactory transportFactory = new XmlRpcTransportFactory() { + + public XmlRpcTransport createTransport() + throws XmlRpcClientException { + HttpClient client = new HttpClient(); + client.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, + new HttpMethodRetryHandler() { + + public boolean retryMethod(HttpMethod method, IOException e, + int count) { + if (count < connectionRetries) { + try { + Thread.sleep(connectionRetryIntervalSecs * 1000); + return true; + }catch (Exception e1) {} + } + return false; + } + + }); + CommonsXmlRpcTransport transport = new CommonsXmlRpcTransport(serverUrl, client); + transport.setConnectionTimeout(connectionTimeout * 60 * 1000); + transport.setTimeout(requestTimeout * 60 * 1000); + + return transport; + } + + public void setProperty(String arg0, Object arg1) {} + + }; + this.client = new XmlRpcClient(serverUrl, transportFactory); + this.chunkSize = chunkSize; + } + + public void shutdown() throws Exception { + Vector args = new Vector(); + this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_shutdown", args); + } + + public void pauseRunner() throws Exception { + Vector args = new Vector(); + this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_pauseRunner", args); + } + + public void resumeRunner() throws Exception { + Vector args = new Vector(); + this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_resumeRunner", args); + } + + public Date getLaunchDate() throws Exception { + Vector args = new Vector(); + return this.serializer.deserializeObject(Date.class, (String) this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_getLaunchDate", args)); + } + + public void deleteWorkflow(String instanceId) + throws Exception { + Vector args = new Vector(); + args.add(instanceId); + this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_deleteWorkflow", args); + } + + public Metadata getInstanceMetadata(String jobId) throws Exception { + Vector args = new Vector(); + args.add(jobId); + return this.serializer.deserializeObject(Metadata.class, (String) this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_getInstanceMetadata", args)); + } + + public WorkflowInstanceRepository getInstanceRepository() throws Exception { + Vector args = new Vector(); + return this.serializer.deserializeObject(WorkflowInstanceRepository.class, (String) this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_getInstanceRepository", args)); + } + + public Set getSupportedProcessorIds() throws Exception { + Vector args = new Vector(); + return this.serializer.deserializeObject(Set.class, (String) this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_getSupportedProcessorIds", args)); + } + + public WorkflowModel getModel(String modelId) throws Exception { + Vector args = new Vector(); + args.add(modelId); + return this.serializer.deserializeObject(WorkflowModel.class, (String) this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_getModel", args)); + } + + public List getModels() throws Exception { + Vector args = new Vector(); + return this.serializer.deserializeObject(List.class, (String) this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_getModels", args)); + } + + public WorkflowGraph getWorkflowGraph(String modelId) throws Exception { + Vector args = new Vector(); + args.add(modelId); + return this.serializer.deserializeObject(WorkflowGraph.class, (String) this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_getWorkflowGraph", args)); + } + + public List getWorkflowGraphs() throws Exception { + Vector args = new Vector(); + return this.serializer.deserializeObject(List.class, (String) this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_getWorkflowGraphs", args)); + } + + public ProcessorInfo getProcessorInfo(String instanceId, String modelId) throws Exception { + Vector args = new Vector(); + args.add(instanceId); + args.add(modelId); + return this.serializer.deserializeObject(ProcessorInfo.class, (String) this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_getProcessorInfo", args)); + } + + public Metadata getWorkflowMetadata(String instanceId, + String modelId) throws Exception { + Vector args = new Vector(); + args.add(instanceId); + args.add(modelId); + return this.serializer.deserializeObject(Metadata.class, (String) this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_getWorkflowMetadata", args)); + } + + public void pauseWorkflow(String instanceId) + throws Exception { + Vector args = new Vector(); + args.add(instanceId); + this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_pauseWorkflow", args); + } + + public void resumeWorkflow(String instanceId) + throws Exception { + Vector args = new Vector(); + args.add(instanceId); + this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_resumeWorkflow", args); + } + + public void setWorkflowState(String instanceId, + String modelId, WorkflowState state) throws Exception { + Vector args = new Vector(); + args.add(instanceId); + args.add(modelId); + args.add(this.serializer.serializeObject(state)); + this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_setWorkflowState", args); + } + + public void setWorkflowPriority(String instanceId, + String modelId, Priority priority) throws Exception { + Vector args = new Vector(); + args.add(instanceId); + args.add(modelId); + args.add(this.serializer.serializeObject(priority)); + this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_setWorkflowPriority", args); + } + + public String startWorkflow(WorkflowGraph workflow, Metadata metadata) + throws Exception { + Vector args = new Vector(); + args.add(this.serializer.serializeObject(workflow)); + args.add(this.serializer.serializeObject(metadata)); + return (String) this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_startWorkflow", args); + } + + public String startWorkflow(WorkflowGraph workflow, Metadata metadata, Priority priority) throws Exception { + Vector args = new Vector(); + args.add(this.serializer.serializeObject(workflow)); + args.add(this.serializer.serializeObject(metadata)); + args.add(this.serializer.serializeObject(priority)); + return (String) this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_startWorkflow", args); + } + + public String startWorkflow(String modelId, Metadata inputMetadata) + throws Exception { + Vector args = new Vector(); + args.add(modelId); + args.add(this.serializer.serializeObject(inputMetadata)); + return (String) this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_startWorkflow2", args); + } + + public String startWorkflow(String modelId, Metadata inputMetadata, Priority priority) throws Exception { + Vector args = new Vector(); + args.add(modelId); + args.add(this.serializer.serializeObject(inputMetadata)); + args.add(this.serializer.serializeObject(priority)); + return (String) this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_startWorkflow2", args); + } + + public void stopWorkflow(String instanceId) + throws Exception { + Vector args = new Vector(); + args.add(instanceId); + this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_stopWorkflow", args); + } + + public void updateInstanceMetadata(String jobId, Metadata metadata) + throws Exception { + Vector args = new Vector(); + args.add(jobId); + args.add(this.serializer.serializeObject(metadata)); + this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_updateInstanceMetadata", args); + } + + public void updateWorkflowMetadata(String instanceId, + String modelId, Metadata metadata) throws Exception { + Vector args = new Vector(); + args.add(instanceId); + args.add(modelId); + args.add(this.serializer.serializeObject(metadata)); + this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_updateWorkflowMetadata", args); + } + + public void updateWorkflowAndInstance(String instanceId, + String modelId, WorkflowState state, Metadata metadata, String jobId, Metadata instanceMetadata) throws Exception { + Vector args = new Vector(); + args.add(instanceId); + args.add(modelId); + args.add(this.serializer.serializeObject(state)); + args.add(this.serializer.serializeObject(metadata)); + args.add(jobId); + args.add(this.serializer.serializeObject(instanceMetadata)); + this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_updateWorkflowAndInstance", args); + } + + public void registerEvent(WorkflowEngineEvent event) throws Exception { + Vector args = new Vector(); + args.add(this.serializer.serializeObject(event)); + this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_registerEvent", args); + } + + public void triggerEvent(String eventId, Metadata inputMetadata) throws Exception { + Vector args = new Vector(); + args.add(eventId); + args.add(this.serializer.serializeObject(inputMetadata)); + this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_triggerEvent", args); + } + + public List getRegisteredEvents() throws Exception { + Vector args = new Vector(); + return this.serializer.deserializeObject(List.class, (String) this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_getRegisteredEvents", args)); + } + + public List getSupportedStates() throws Exception { + Vector args = new Vector(); + return this.serializer.deserializeObject(List.class, (String) this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_getSupportedStates", args)); + } + + public int getNumOfLoadedProcessors() throws Exception { + Vector args = new Vector(); + return this.serializer.deserializeObject(Integer.class, (String) this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_getNumOfLoadedProcessors", args)); + } + + public int getNumOfWorkflows() throws Exception { + Vector args = new Vector(); + return this.serializer.deserializeObject(Integer.class, (String) this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_getNumOfWorkflows", args)); + } + + public RunnablesPage getExecutingPage(PageInfo pageInfo) throws Exception { + Vector args = new Vector(); + args.add(this.serializer.serializeObject(pageInfo)); + return this.serializer.deserializeObject(RunnablesPage.class, (String) this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_getExecutingPage", args)); + } + + public RunnablesPage getRunnablesPage(PageInfo pageInfo) throws Exception { + Vector args = new Vector(); + args.add(this.serializer.serializeObject(pageInfo)); + return this.serializer.deserializeObject(RunnablesPage.class, (String) this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_getRunnablesPage", args)); + } + + public QueuePage getPage(PageInfo pageInfo) throws Exception { + Vector args = new Vector(); + args.add(this.serializer.serializeObject(pageInfo)); + return this.serializer.deserializeObject(QueuePage.class, (String) this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_getPage", args)); + } + + public QueuePage getPage(PageInfo pageInfo, PageFilter filter) throws Exception { + Vector args = new Vector(); + args.add(this.serializer.serializeObject(pageInfo)); + args.add(this.serializer.serializeObject(filter)); + return this.serializer.deserializeObject(QueuePage.class, (String) this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_getPage_filtered", args)); + } + + public QueuePage getPage(PageInfo pageInfo, Comparator comparator) throws Exception { + Vector args = new Vector(); + args.add(this.serializer.serializeObject(pageInfo)); + args.add(this.serializer.serializeObject(comparator)); + return this.serializer.deserializeObject(QueuePage.class, (String) this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_getPage2", args)); + } + + public QueuePage getPage(PageInfo pageInfo, WorkflowState state) throws Exception { + Vector args = new Vector(); + args.add(this.serializer.serializeObject(pageInfo)); + args.add(this.serializer.serializeObject(state)); + return this.serializer.deserializeObject(QueuePage.class, (String) this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_getPage3", args)); + } + + public QueuePage getPage(PageInfo pageInfo, WorkflowState.Category category) throws Exception { + Vector args = new Vector(); + args.add(this.serializer.serializeObject(pageInfo)); + args.add(this.serializer.serializeObject(category)); + return this.serializer.deserializeObject(QueuePage.class, (String) this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_getPage4", args)); + } + + public QueuePage getPage(PageInfo pageInfo, String modelId) throws Exception { + Vector args = new Vector(); + args.add(this.serializer.serializeObject(pageInfo)); + args.add(modelId); + return this.serializer.deserializeObject(QueuePage.class, (String) this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_getPage5", args)); + } + + public QueuePage getPage(PageInfo pageInfo, Map> keyValPairs) throws Exception { + Vector args = new Vector(); + args.add(this.serializer.serializeObject(pageInfo)); + args.add(this.serializer.serializeObject(keyValPairs)); + return this.serializer.deserializeObject(QueuePage.class, (String) this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_getPage7", args)); + } + + public QueuePage getNextPage(QueuePage page) throws Exception { + Vector args = new Vector(); + args.add(this.serializer.serializeObject(page)); + return this.serializer.deserializeObject(QueuePage.class, (String) this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_getNextPage", args)); + } + + public ProcessorSkeleton getWorkflow(String instanceId) throws Exception { + Vector args = new Vector(); + args.add(instanceId); + return this.serializer.deserializeObject(ProcessorSkeleton.class, (String) this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_getWorkflow", args)); + } + + public List getMetadata(QueryPage page) throws Exception { + Vector args = new Vector(); + args.add(this.serializer.serializeObject(page)); + return this.serializer.deserializeObject(List.class, (String) this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_getMetadata", args)); + } + + public QueryPage getNextPage(QueryPage page) throws Exception { + Vector args = new Vector(); + args.add(this.serializer.serializeObject(page)); + return this.serializer.deserializeObject(QueryPage.class, (String) this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_getNextPage2", args)); + } + + public QueryPage getPage(PageInfo pageInfo, QueryExpression queryExpression) + throws Exception { + Vector args = new Vector(); + args.add(this.serializer.serializeObject(pageInfo)); + args.add(this.serializer.serializeObject(queryExpression)); + return this.serializer.deserializeObject(QueryPage.class, (String) this.client.execute(XmlRpcCommunicationChannelServer.class.getSimpleName() + ".xmlrpc_getPage6", args)); + } + +} Added: oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/server/channel/xmlrpc/XmlRpcCommunicationChannelClientFactory.java URL: http://svn.apache.org/viewvc/oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/server/channel/xmlrpc/XmlRpcCommunicationChannelClientFactory.java?rev=1052143&view=auto ============================================================================== --- oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/server/channel/xmlrpc/XmlRpcCommunicationChannelClientFactory.java (added) +++ oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/server/channel/xmlrpc/XmlRpcCommunicationChannelClientFactory.java Thu Dec 23 02:44:23 2010 @@ -0,0 +1,100 @@ +/* + * 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. + */ +package org.apache.oodt.cas.workflow.server.channel.xmlrpc; + +//JDK imports +import java.net.URL; + +//OODT imports +import org.apache.oodt.cas.workflow.server.channel.CommunicationChannelClientFactory; + +/** + * @author bfoster + * @version $Revision$ + * + *

+ * Factory for creating XML-RPC communication channel client + *

+ */ +public class XmlRpcCommunicationChannelClientFactory implements + CommunicationChannelClientFactory { + + private String serverUrl = "http://localhost:9000"; + private int connectionTimeout = 60; + private int requestTimeout = 90; + private int chunkSize = 1024; + private int connectionRetries = 3; + private int connectionRetryIntervalSecs = 0; + + public XmlRpcCommunicationChannelClient createCommunicationChannelClient() { + try { + return new XmlRpcCommunicationChannelClient(new URL(this.serverUrl), this.connectionTimeout, this.requestTimeout, this.chunkSize, this.connectionRetries, this.connectionRetryIntervalSecs); + }catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + public String getServerUrl() { + return this.serverUrl; + } + + public void setServerUrl(String serverUrl) { + this.serverUrl = serverUrl; + } + + public int getConnectionTimeout() { + return connectionTimeout; + } + + public void setConnectionTimeout(int connectionTimeout) { + this.connectionTimeout = connectionTimeout; + } + + public int getRequestTimeout() { + return requestTimeout; + } + + public void setRequestTimeout(int requestTimeout) { + this.requestTimeout = requestTimeout; + } + + public int getChunkSize() { + return chunkSize; + } + + public void setChunkSize(int chunkSize) { + this.chunkSize = chunkSize; + } + + public int getConnectionRetries() { + return connectionRetries; + } + + public void setConnectionRetries(int connectionRetries) { + this.connectionRetries = connectionRetries; + } + + public int getConnectionRetryIntervalSecs() { + return connectionRetryIntervalSecs; + } + + public void setConnectionRetryIntervalSecs(int connectionRetryIntervalSecs) { + this.connectionRetryIntervalSecs = connectionRetryIntervalSecs; + } + +} Added: oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/server/channel/xmlrpc/XmlRpcCommunicationChannelServer.java URL: http://svn.apache.org/viewvc/oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/server/channel/xmlrpc/XmlRpcCommunicationChannelServer.java?rev=1052143&view=auto ============================================================================== --- oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/server/channel/xmlrpc/XmlRpcCommunicationChannelServer.java (added) +++ oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/server/channel/xmlrpc/XmlRpcCommunicationChannelServer.java Thu Dec 23 02:44:23 2010 @@ -0,0 +1,263 @@ +/* + * 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. + */ +package org.apache.oodt.cas.workflow.server.channel.xmlrpc; + +//JDK imports +import java.util.Comparator; +import java.util.Map; + +//APACHE imports +import org.apache.xmlrpc.WebServer; + +//OODT imports +import org.apache.oodt.cas.catalog.page.PageInfo; +import org.apache.oodt.cas.catalog.query.QueryExpression; +import org.apache.oodt.cas.metadata.Metadata; +import org.apache.oodt.cas.workflow.event.WorkflowEngineEvent; +import org.apache.oodt.cas.workflow.model.WorkflowGraph; +import org.apache.oodt.cas.workflow.page.PageFilter; +import org.apache.oodt.cas.workflow.page.QueryPage; +import org.apache.oodt.cas.workflow.page.QueuePage; +import org.apache.oodt.cas.workflow.priority.Priority; +import org.apache.oodt.cas.workflow.server.channel.AbstractCommunicationChannelServer; +import org.apache.oodt.cas.workflow.state.WorkflowState; + +/** + * @author bfoster + * @version $Revision$ + * + *

+ * XML-RPC communication channel server + *

+ */ +public class XmlRpcCommunicationChannelServer extends + AbstractCommunicationChannelServer implements XmlRpcCommunicationServerInterface { + + private WebServer webServer; + + public XmlRpcCommunicationChannelServer() { + super(); + } + + public void startup() throws Exception { + this.webServer = new WebServer(this.port); + this.webServer.addHandler(this.getClass().getSimpleName(), this); + this.webServer.start(); + } + + public boolean xmlrpc_shutdown() throws Exception { + this.shutdown(); + this.webServer.shutdown(); + this.webServer = null; + return true; + } + + public boolean xmlrpc_pauseRunner() throws Exception { + this.pauseRunner(); + return true; + } + + public boolean xmlrpc_resumeRunner() throws Exception { + this.resumeRunner(); + return true; + } + + public String xmlrpc_getLaunchDate() throws Exception { + return this.serializer.serializeObject(this.getLaunchDate()); + } + + public String xmlrpc_deleteWorkflow(String instanceId) throws Exception { + this.deleteWorkflow(instanceId); + return this.serializer.serializeObject(Boolean.TRUE); + } + + public String xmlrpc_getInstanceMetadata(String jobId) throws Exception { + return this.serializer.serializeObject(this.getInstanceMetadata(jobId)); + } + + public String xmlrpc_getInstanceRepository() throws Exception { + return this.serializer.serializeObject(this.getInstanceRepository()); + } + + public String xmlrpc_getModel(String modelId) throws Exception { + return this.serializer.serializeObject(this.getModel(modelId)); + } + + public String xmlrpc_getModels() throws Exception { + return this.serializer.serializeObject(this.getModels()); + } + + public String xmlrpc_getWorkflowGraph(String modelId) throws Exception { + return this.serializer.serializeObject(this.getWorkflowGraph(modelId)); + } + + public String xmlrpc_getWorkflowGraphs() throws Exception { + return this.serializer.serializeObject(this.getWorkflowGraphs()); + } + + public String xmlrpc_getSupportedProcessorIds() throws Exception { + return this.serializer.serializeObject(this.xmlrpc_getSupportedProcessorIds()); + } + + public String xmlrpc_getProcessorInfo(String instanceId, String modelId) throws Exception { + return this.serializer.serializeObject(this.getProcessorInfo(instanceId, modelId)); + } + + public String xmlrpc_getWorkflowMetadata(String instanceId, String modelId) throws Exception { + return this.serializer.serializeObject(this.getWorkflowMetadata(instanceId, modelId)); + } + + public String xmlrpc_pauseWorkflow(String instanceId) throws Exception { + this.pauseWorkflow(instanceId); + return this.serializer.serializeObject(Boolean.TRUE); + } + + public String xmlrpc_resumeWorkflow(String instanceId) throws Exception { + this.resumeWorkflow(instanceId); + return this.serializer.serializeObject(Boolean.TRUE); + } + + public String xmlrpc_setWorkflowState(String instanceId, String modelId, String state) throws Exception { + this.setWorkflowState(instanceId, modelId, this.serializer.deserializeObject(WorkflowState.class, state)); + return this.serializer.serializeObject(Boolean.TRUE); + } + + public String xmlrpc_setWorkflowPriority(String instanceId, String modelId, String priority) throws Exception { + this.setWorkflowPriority(instanceId, modelId, this.serializer.deserializeObject(Priority.class, priority)); + return this.serializer.serializeObject(Boolean.TRUE); + } + + public String xmlrpc_startWorkflow(String workflow, String metadata) throws Exception { + return this.startWorkflow(this.serializer.deserializeObject(WorkflowGraph.class, workflow), this.serializer.deserializeObject(Metadata.class, metadata)); + } + + public String xmlrpc_startWorkflow(String workflow, String metadata, String priority) throws Exception { + return this.startWorkflow(this.serializer.deserializeObject(WorkflowGraph.class, workflow), this.serializer.deserializeObject(Metadata.class, metadata), this.serializer.deserializeObject(Priority.class, priority)); + } + + public String xmlrpc_startWorkflow2(String modelId, String inputMetadata) throws Exception { + return this.startWorkflow(modelId, this.serializer.deserializeObject(Metadata.class, inputMetadata)); + } + + public String xmlrpc_startWorkflow2(String modelId, String inputMetadata, String priority) throws Exception { + return this.startWorkflow(modelId, this.serializer.deserializeObject(Metadata.class, inputMetadata), this.serializer.deserializeObject(Priority.class, priority)); + } + + public String xmlrpc_stopWorkflow(String instanceId) throws Exception { + this.stopWorkflow(instanceId); + return this.serializer.serializeObject(Boolean.TRUE); + } + + public String xmlrpc_updateInstanceMetadata(String jobId, String metadata) throws Exception { + this.updateInstanceMetadata(jobId, this.serializer.deserializeObject(Metadata.class, metadata)); + return this.serializer.serializeObject(Boolean.TRUE); + } + + public String xmlrpc_updateWorkflowMetadata(String instanceId, String modelId, String metadata) throws Exception { + this.updateWorkflowMetadata(instanceId, modelId, this.serializer.deserializeObject(Metadata.class, metadata)); + return this.serializer.serializeObject(Boolean.TRUE); + } + + public String xmlrpc_updateWorkflowAndInstance(String instanceId, String modelId, String state, String metadata, String jobId, String instanceMetadata) throws Exception { + this.updateWorkflowAndInstance(instanceId, modelId, this.serializer.deserializeObject(WorkflowState.class, state), this.serializer.deserializeObject(Metadata.class, metadata), jobId, this.serializer.deserializeObject(Metadata.class, instanceMetadata)); + return this.serializer.serializeObject(Boolean.TRUE); + } + + public String xmlrpc_registerEvent(String event) throws Exception { + this.registerEvent(this.serializer.deserializeObject(WorkflowEngineEvent.class, event)); + return this.serializer.serializeObject(Boolean.TRUE); + } + + public String xmlrpc_triggerEvent(String eventId, String inputMetadata) throws Exception { + this.triggerEvent(eventId, this.serializer.deserializeObject(Metadata.class, inputMetadata)); + return this.serializer.serializeObject(Boolean.TRUE); + } + + public String xmlrpc_getRegisteredEvents() throws Exception { + return this.serializer.serializeObject(this.getRegisteredEvents()); + } + + public String xmlrpc_getSupportedStates() throws Exception { + return this.serializer.serializeObject(this.getSupportedStates()); + } + + public String xmlrpc_getNumOfLoadedProcessors() throws Exception { + return this.serializer.serializeObject(Integer.valueOf(this.getNumOfLoadedProcessors())); + } + + public String xmlrpc_getNumOfWorkflows() throws Exception { + return this.serializer.serializeObject(Integer.valueOf(this.getNumOfWorkflows())); + } + + public String xmlrpc_getExecutingPage(String pageInfo) throws Exception { + return this.serializer.serializeObject(this.getExecutingPage(this.serializer.deserializeObject(PageInfo.class, pageInfo))); + } + + public String xmlrpc_getRunnablesPage(String pageInfo) throws Exception { + return this.serializer.serializeObject(this.getRunnablesPage(this.serializer.deserializeObject(PageInfo.class, pageInfo))); + } + + public String xmlrpc_getPage(String pageInfo) throws Exception { + return this.serializer.serializeObject(this.getPage(this.serializer.deserializeObject(PageInfo.class, pageInfo))); + } + + public String xmlrpc_getPage_filtered(String pageInfo, String pageFilter) throws Exception { + return this.serializer.serializeObject(this.getPage(this.serializer.deserializeObject(PageInfo.class, pageInfo), this.serializer.deserializeObject(PageFilter.class, pageFilter))); + } + + public String xmlrpc_getPage2(String pageInfo, String comparator) throws Exception { + return this.serializer.serializeObject(this.getPage(this.serializer.deserializeObject(PageInfo.class, pageInfo), this.serializer.deserializeObject(Comparator.class, comparator))); + } + + public String xmlrpc_getPage3(String pageInfo, String state) throws Exception { + return this.serializer.serializeObject(this.getPage(this.serializer.deserializeObject(PageInfo.class, pageInfo), this.serializer.deserializeObject(WorkflowState.class, state))); + } + + public String xmlrpc_getPage4(String pageInfo, String category) throws Exception { + return this.serializer.serializeObject(this.getPage(this.serializer.deserializeObject(PageInfo.class, pageInfo), this.serializer.deserializeObject(WorkflowState.Category.class, category))); + } + + public String xmlrpc_getPage5(String pageInfo, String modelId) throws Exception { + return this.serializer.serializeObject(this.getPage(this.serializer.deserializeObject(PageInfo.class, pageInfo), modelId)); + } + + public String xmlrpc_getPage7(String pageInfo, String keyValPairs) throws Exception { + return this.serializer.serializeObject(this.getPage(this.serializer.deserializeObject(PageInfo.class, pageInfo), this.serializer.deserializeObject(Map.class, keyValPairs))); + } + + public String xmlrpc_getNextPage(String page) throws Exception { + return this.serializer.serializeObject(this.getNextPage(this.serializer.deserializeObject(QueuePage.class, page))); + } + + public String xmlrpc_getWorkflow(String instanceId) throws Exception { + return this.serializer.serializeObject(this.getWorkflow(instanceId)); + } + + public String xmlrpc_getMetadata(String page) throws Exception { + return this.serializer.serializeObject(this.getMetadata(this.serializer.deserializeObject(QueryPage.class, page))); + } + + public String xmlrpc_getNextPage2(String page) throws Exception { + return this.serializer.serializeObject(this.getNextPage(this.serializer.deserializeObject(QueryPage.class, page))); + } + + public String xmlrpc_getPage6(String pageInfo, String queryExpression) + throws Exception { + return this.serializer.serializeObject(this.getPage(this.serializer.deserializeObject(PageInfo.class, pageInfo), this.serializer.deserializeObject(QueryExpression.class, queryExpression))); + } + +} Added: oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/server/channel/xmlrpc/XmlRpcCommunicationChannelServerFactory.java URL: http://svn.apache.org/viewvc/oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/server/channel/xmlrpc/XmlRpcCommunicationChannelServerFactory.java?rev=1052143&view=auto ============================================================================== --- oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/server/channel/xmlrpc/XmlRpcCommunicationChannelServerFactory.java (added) +++ oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/server/channel/xmlrpc/XmlRpcCommunicationChannelServerFactory.java Thu Dec 23 02:44:23 2010 @@ -0,0 +1,57 @@ +/* + * 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. + */ +package org.apache.oodt.cas.workflow.server.channel.xmlrpc; + +//OODT imports +import org.apache.oodt.cas.workflow.engine.WorkflowEngineFactory; +import org.apache.oodt.cas.workflow.server.channel.CommunicationChannelServerFactory; + + +/** + * @author bfoster + * @version $Revision$ + * + *

+ * Factory for creating XML-RPC communication channel server + *

+ */ +public class XmlRpcCommunicationChannelServerFactory implements + CommunicationChannelServerFactory { + + private int port; + private WorkflowEngineFactory workflowEngineFactory; + + public XmlRpcCommunicationChannelServer createCommunicationChannelServer() { + XmlRpcCommunicationChannelServer xmlrpcServer = new XmlRpcCommunicationChannelServer(); + xmlrpcServer.setPort(this.port); + xmlrpcServer.setWorkflowEngine(this.workflowEngineFactory.createEngine()); + return xmlrpcServer; + } + + public int getPort() { + return this.port; + } + + public void setPort(int port) { + this.port = port; + } + + public void setWorkflowEngineFactory(WorkflowEngineFactory workflowEngineFactory) { + this.workflowEngineFactory = workflowEngineFactory; + } + +} Added: oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/server/channel/xmlrpc/XmlRpcCommunicationServerInterface.java URL: http://svn.apache.org/viewvc/oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/server/channel/xmlrpc/XmlRpcCommunicationServerInterface.java?rev=1052143&view=auto ============================================================================== --- oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/server/channel/xmlrpc/XmlRpcCommunicationServerInterface.java (added) +++ oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/server/channel/xmlrpc/XmlRpcCommunicationServerInterface.java Thu Dec 23 02:44:23 2010 @@ -0,0 +1,115 @@ +/* + * 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. + */ +package org.apache.oodt.cas.workflow.server.channel.xmlrpc; + +/** + * @author bfoster + * @version $Revision$ + * + *

+ * XML-RPC communication channel server interface + *

+ */ +public interface XmlRpcCommunicationServerInterface { + + public boolean xmlrpc_shutdown() throws Exception; + + public boolean xmlrpc_pauseRunner() throws Exception; + + public boolean xmlrpc_resumeRunner() throws Exception; + + public String xmlrpc_getLaunchDate() throws Exception; + + public String xmlrpc_deleteWorkflow(String instanceId) throws Exception; + + public String xmlrpc_getInstanceMetadata(String jobId) throws Exception; + + public String xmlrpc_getInstanceRepository() throws Exception; + + public String xmlrpc_getModel(String modelId) throws Exception; + + public String xmlrpc_getModels() throws Exception; + + public String xmlrpc_getWorkflowGraph(String modelId) throws Exception; + + public String xmlrpc_getWorkflowGraphs() throws Exception; + + public String xmlrpc_getProcessorInfo(String instanceId, String modelId) throws Exception; + + public String xmlrpc_getWorkflowMetadata(String instanceId, String modelId) throws Exception; + + public String xmlrpc_pauseWorkflow(String instanceId) throws Exception; + + public String xmlrpc_resumeWorkflow(String instanceId) throws Exception; + + public String xmlrpc_setWorkflowState(String instanceId, String modelId, String state) throws Exception; + + public String xmlrpc_setWorkflowPriority(String instanceId, String modelId, String priority) throws Exception; + + public String xmlrpc_startWorkflow(String workflow, String metadata) throws Exception; + + public String xmlrpc_startWorkflow(String workflow, String metadata, String priority) throws Exception; + + public String xmlrpc_startWorkflow2(String modelId, String inputMetadata) throws Exception; + + public String xmlrpc_startWorkflow2(String modelId, String inputMetadata, String priority) throws Exception; + + public String xmlrpc_stopWorkflow(String instanceId) throws Exception; + + public String xmlrpc_updateInstanceMetadata(String jobId, String metadata) throws Exception; + + public String xmlrpc_updateWorkflowMetadata(String instanceId, String modelId, String metadata) throws Exception; + + public String xmlrpc_registerEvent(String event) throws Exception; + + public String xmlrpc_triggerEvent(String eventId, String inputMetadata) throws Exception; + + public String xmlrpc_getRegisteredEvents() throws Exception; + + public String xmlrpc_getSupportedStates() throws Exception; + + public String xmlrpc_getNumOfLoadedProcessors() throws Exception; + + public String xmlrpc_getNumOfWorkflows() throws Exception; + + public String xmlrpc_getExecutingPage(String pageInfo) throws Exception; + + public String xmlrpc_getRunnablesPage(String pageInfo) throws Exception; + + public String xmlrpc_getPage(String pageInfo) throws Exception; + + public String xmlrpc_getPage2(String pageInfo, String comparator) throws Exception; + + public String xmlrpc_getPage3(String pageInfo, String state) throws Exception; + + public String xmlrpc_getPage4(String pageInfo, String category) throws Exception; + + public String xmlrpc_getPage5(String pageInfo, String modelId) throws Exception; + + public String xmlrpc_getPage7(String pageInfo, String keyValPairs) throws Exception; + + public String xmlrpc_getNextPage(String page) throws Exception; + + public String xmlrpc_getWorkflow(String instanceId) throws Exception; + + public String xmlrpc_getNextPage2(String page) throws Exception; + + public String xmlrpc_getPage6(String pageInfo, String queryExpression) throws Exception; + + public String xmlrpc_getMetadata(String page) throws Exception; + +} Added: oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/server/option/PrintSupportedActionsHandler.java URL: http://svn.apache.org/viewvc/oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/server/option/PrintSupportedActionsHandler.java?rev=1052143&view=auto ============================================================================== --- oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/server/option/PrintSupportedActionsHandler.java (added) +++ oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/server/option/PrintSupportedActionsHandler.java Thu Dec 23 02:44:23 2010 @@ -0,0 +1,76 @@ +/* + * 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. + */ +package org.apache.oodt.cas.workflow.server.option; + +//JDK imports +import java.io.PrintStream; +import java.util.List; +import java.util.Map; + +//Spring imports +import org.springframework.context.support.FileSystemXmlApplicationContext; + +//OODT imports +import org.apache.oodt.cas.workflow.server.action.WorkflowEngineServerAction; +import org.apache.oodt.cas.workflow.util.Serializer; +import org.apache.oodt.commons.option.CmdLineOption; +import org.apache.oodt.commons.option.CmdLineOptionInstance; +import org.apache.oodt.commons.option.handler.CmdLineOptionHandler; + +/** + * @author bfoster + * @version $Revision$ + * + *

+ * Command line handler for printing out support actions + *

+ */ +public class PrintSupportedActionsHandler extends CmdLineOptionHandler { + + protected String beanRepo; + + @Override + public String getCustomOptionUsage(CmdLineOption option) { + return ""; + } + + @Override + public void handleOption(CmdLineOption option, List values) { + FileSystemXmlApplicationContext appContext = new FileSystemXmlApplicationContext(new String[] { this.beanRepo }, false); + appContext.setClassLoader(new Serializer().getClassLoader()); + appContext.refresh(); + PrintStream ps = new PrintStream(System.out); + ps.println("Actions:"); + for (WorkflowEngineServerAction action : ((Map) appContext.getBeansOfType(WorkflowEngineServerAction.class)).values()) { + ps.println(" Action:"); + ps.println(" Id: " + action.getId()); + ps.println(" Description: " + action.getDescription()); + ps.println(); + } + ps.close(); + } + + public void setBeanRepo(String beanRepo) { + this.beanRepo = beanRepo; + } + + @Override + public boolean affectsOption(CmdLineOptionInstance arg0) { + return false; + } + +} Added: oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/server/option/PrintSupportedClientsHandler.java URL: http://svn.apache.org/viewvc/oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/server/option/PrintSupportedClientsHandler.java?rev=1052143&view=auto ============================================================================== --- oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/server/option/PrintSupportedClientsHandler.java (added) +++ oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/server/option/PrintSupportedClientsHandler.java Thu Dec 23 02:44:23 2010 @@ -0,0 +1,76 @@ +/* + * 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. + */ +package org.apache.oodt.cas.workflow.server.option; + +//JDK imports +import java.io.PrintStream; +import java.util.List; + +//Spring imports +import org.springframework.context.support.FileSystemXmlApplicationContext; + +//OODT imports +import org.apache.oodt.cas.workflow.engine.WorkflowEngineClientFactory; +import org.apache.oodt.cas.workflow.util.Serializer; +import org.apache.oodt.commons.option.CmdLineOption; +import org.apache.oodt.commons.option.CmdLineOptionInstance; +import org.apache.oodt.commons.option.handler.CmdLineOptionHandler; + +/** + * @author bfoster + * @version $Revision$ + * + *

+ * Command line handler for printing out support clients + *

+ */ +public class PrintSupportedClientsHandler extends CmdLineOptionHandler { + + protected String beanRepo; + + @Override + public String getCustomOptionUsage(CmdLineOption option) { + return ""; + } + + @Override + public void handleOption(CmdLineOption option, List values) { + FileSystemXmlApplicationContext appContext = new FileSystemXmlApplicationContext(new String[] { this.beanRepo }, false); + appContext.setClassLoader(new Serializer().getClassLoader()); + appContext.refresh(); + PrintStream ps = new PrintStream(System.out); + ps.println("ClientFactories:"); + for (String clientId : appContext.getBeanNamesForType(WorkflowEngineClientFactory.class)) { + WorkflowEngineClientFactory clientFactory = (WorkflowEngineClientFactory) appContext.getBean(clientId, WorkflowEngineClientFactory.class); + ps.println(" ClientFactory:"); + ps.println(" Id: " + clientId); + ps.println(" URL: " + clientFactory.getServerUrl()); + ps.println(); + } + ps.close(); + } + + public void setBeanRepo(String beanRepo) { + this.beanRepo = beanRepo; + } + + @Override + public boolean affectsOption(CmdLineOptionInstance arg0) { + return false; + } + +} Added: oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/server/option/PrintSupportedServersHandler.java URL: http://svn.apache.org/viewvc/oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/server/option/PrintSupportedServersHandler.java?rev=1052143&view=auto ============================================================================== --- oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/server/option/PrintSupportedServersHandler.java (added) +++ oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/server/option/PrintSupportedServersHandler.java Thu Dec 23 02:44:23 2010 @@ -0,0 +1,76 @@ +/* + * 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. + */ +package org.apache.oodt.cas.workflow.server.option; + +//JDK imports +import java.io.PrintStream; +import java.util.List; + +//Spring imports +import org.springframework.context.support.FileSystemXmlApplicationContext; + +//OODT imports +import org.apache.oodt.cas.workflow.server.channel.CommunicationChannelServerFactory; +import org.apache.oodt.cas.workflow.util.Serializer; +import org.apache.oodt.commons.option.CmdLineOption; +import org.apache.oodt.commons.option.CmdLineOptionInstance; +import org.apache.oodt.commons.option.handler.CmdLineOptionHandler; + +/** + * @author bfoster + * @version $Revision$ + * + *

+ * Command line handler for printing out support servers + *

+ */ +public class PrintSupportedServersHandler extends CmdLineOptionHandler { + + protected String beanRepo; + + @Override + public String getCustomOptionUsage(CmdLineOption option) { + return ""; + } + + @Override + public void handleOption(CmdLineOption option, List values) { + FileSystemXmlApplicationContext appContext = new FileSystemXmlApplicationContext(new String[] { this.beanRepo }, false); + appContext.setClassLoader(new Serializer().getClassLoader()); + appContext.refresh(); + PrintStream ps = new PrintStream(System.out); + ps.println("ServerFactories:"); + for (String serverId : appContext.getBeanNamesForType(CommunicationChannelServerFactory.class)) { + CommunicationChannelServerFactory serverFactory = (CommunicationChannelServerFactory) appContext.getBean(serverId, CommunicationChannelServerFactory.class); + ps.println(" ServerFactory:"); + ps.println(" Id: " + serverId); + ps.println(" Port: " + serverFactory.getPort()); + ps.println(); + } + ps.close(); + } + + public void setBeanRepo(String beanRepo) { + this.beanRepo = beanRepo; + } + + @Override + public boolean affectsOption(CmdLineOptionInstance arg0) { + return false; + } + +} Added: oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/RevertableWorkflowState.java URL: http://svn.apache.org/viewvc/oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/RevertableWorkflowState.java?rev=1052143&view=auto ============================================================================== --- oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/RevertableWorkflowState.java (added) +++ oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/RevertableWorkflowState.java Thu Dec 23 02:44:23 2010 @@ -0,0 +1,55 @@ +/* + * 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. + */ +package org.apache.oodt.cas.workflow.state; + +/** + * @author bfoster + * @version $Revision$ + * + *

+ * WorkflowState which stores previous state + *

+ */ +public abstract class RevertableWorkflowState extends WorkflowState { + + private WorkflowState prevState; + private String name; + + public RevertableWorkflowState(String name, String message) { + super(message); + this.name = name; + } + + public void setPrevState(WorkflowState prevState) { + this.prevState = prevState; + } + + public WorkflowState getPrevState() { + return this.prevState; + } + + public boolean equals(Object obj) { + if (obj instanceof RevertableWorkflowState && ((RevertableWorkflowState) obj).getClass().equals(this.getClass())) + return (((RevertableWorkflowState) obj).prevState == null) || (this.prevState != null && this.prevState.equals(((RevertableWorkflowState) obj).prevState)); + return false; + } + + public String getName() { + return this.name + (this.prevState != null ? "(" + this.prevState.getName() + ")" : ""); + } + +} Added: oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/StateUtils.java URL: http://svn.apache.org/viewvc/oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/StateUtils.java?rev=1052143&view=auto ============================================================================== --- oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/StateUtils.java (added) +++ oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/StateUtils.java Thu Dec 23 02:44:23 2010 @@ -0,0 +1,144 @@ +/* + * 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. + */ +package org.apache.oodt.cas.workflow.state; + +//JDK imports +import java.util.List; +import java.util.Stack; +import java.util.Vector; + +//OODT imports +import org.apache.oodt.cas.workflow.processor.TaskProcessor; +import org.apache.oodt.cas.workflow.processor.WorkflowProcessor; + +/** + * @author bfoster + * @version $Revision$ + * + *

+ * Utilities for working with WorkflowState + *

+ */ +public class StateUtils { + + private StateUtils() {} + + public static boolean allOfGivenState(List workflowProcessors, Class stateClass) { + for (WorkflowProcessor workflowProcessor : workflowProcessors) + if (stateClass.isAssignableFrom(workflowProcessor.getState().getClass())) + return false; + return true; + } + + public static boolean containsGivenState(List workflowProcessors, Class stateClass) { + for (WorkflowProcessor workflowProcessor : workflowProcessors) + if (stateClass.isAssignableFrom(workflowProcessor.getState().getClass())) + return true; + return false; + } + + public static boolean allOfGivenCategory(List workflowProcessors, WorkflowState.Category category) { + for (WorkflowProcessor workflowProcessor : workflowProcessors) + if (!workflowProcessor.getState().getCategory().equals(category)) + return false; + return true; + } + + public static boolean containsTaskInGivenCategory(WorkflowProcessor workflowProcessor, WorkflowState.Category category) { + Stack stack = new Stack(); + stack.add(workflowProcessor); + while (!stack.empty()) { + WorkflowProcessor wp = stack.pop(); + if (wp instanceof TaskProcessor && wp.getState().getCategory().equals(category)) + return true; + stack.addAll(wp.getSubProcessors()); + } + return false; + } + + public static boolean constainsGivenCategory(List workflowProcessors, WorkflowState.Category category) { + for (WorkflowProcessor workflowProcessor : workflowProcessors) + if (workflowProcessor.getState().getCategory().equals(category)) + return true; + return false; + } + + public static List getWorkflowProcessorsOfGivenState(List workflowProcessors, Class stateClass) { + List returnProcessors = new Vector(); + for (WorkflowProcessor workflowProcessor : workflowProcessors) + if (stateClass.isAssignableFrom(workflowProcessor.getState().getClass())) + returnProcessors.add(workflowProcessor); + return returnProcessors; + } + + public static List getWorkflowProcessorsOfGivenCategory(List workflowProcessors, WorkflowState.Category category) { + List returnProcessors = new Vector(); + for (WorkflowProcessor workflowProcessor : workflowProcessors) + if (workflowProcessor.getState().getCategory().equals(category)) + returnProcessors.add(workflowProcessor); + return returnProcessors; + } + + public static List getWorkflowProcessorsNotOfGivenState(List workflowProcessors, Class stateClass) { + List returnProcessors = new Vector(); + for (WorkflowProcessor workflowProcessor : workflowProcessors) + if (!stateClass.isAssignableFrom(workflowProcessor.getState().getClass())) + returnProcessors.add(workflowProcessor); + return returnProcessors; + } + + public static List getWorkflowProcessorsNotOfGivenCategory(List workflowProcessors, WorkflowState.Category category) { + List returnProcessors = new Vector(); + for (WorkflowProcessor workflowProcessor : workflowProcessors) + if (!workflowProcessor.getState().getCategory().equals(category)) + returnProcessors.add(workflowProcessor); + return returnProcessors; + } + + public static WorkflowState.Category getCategoryByName(List states, String name) { + for (WorkflowState state : states) { + if (state.getCategory().toString().toLowerCase().equals(name.toLowerCase())) + return state.getCategory(); + } + return null; + } + + public static WorkflowState getStateByName(List states, String name) { + String[] splitName = name.split("[\\(\\)]{1}"); + String revertState = null; + if (splitName.length == 2) { + name = splitName[0]; + revertState = splitName[1]; + } + WorkflowState state = _getStateByName(states, name); + if (state != null && state instanceof RevertableWorkflowState && revertState != null) + ((RevertableWorkflowState) state).setPrevState(_getStateByName(states, revertState)); + return state; + } + + private static WorkflowState _getStateByName(List states, String name) { + for (WorkflowState state : states) { + if (state instanceof RevertableWorkflowState) { + if (state.getName().toLowerCase().startsWith(name.toLowerCase())) + return state; + }else if (state.getName().toLowerCase().equals(name.toLowerCase())) + return state; + } + return null; + } + +} Added: oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/WorkflowState.java URL: http://svn.apache.org/viewvc/oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/WorkflowState.java?rev=1052143&view=auto ============================================================================== --- oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/WorkflowState.java (added) +++ oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/WorkflowState.java Thu Dec 23 02:44:23 2010 @@ -0,0 +1,68 @@ +/* + * 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. + */ +package org.apache.oodt.cas.workflow.state; + +//JDK imports +import java.util.Date; +import java.util.Vector; + +/** + * @author bfoster + * @version $Revision$ + * + *

+ * The state of a WorkflowProcessor + *

+ */ +public abstract class WorkflowState { + + protected String message; + protected Vector subStates; + protected Date startTime; + public enum Category { INITIAL, WAITING, RUNNING, RESULTS, TRANSITION, HOLDING, DONE } + + public WorkflowState(String message) { + this.message = message; + this.startTime = new Date(); + } + + public String getMessage() { + return this.message; + } + + public Date getStartTime() { + return this.startTime; + } + + public boolean equals(Object obj) { + if (obj instanceof WorkflowState) + return ((WorkflowState) obj).getName().equals(this.getName()); + else + return false; + } + + public String toString() { + return this.getName() + " : " + this.getMessage(); + } + + public abstract String getName(); + + public abstract String getDescription(); + + public abstract Category getCategory(); + +} Added: oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/done/FailureState.java URL: http://svn.apache.org/viewvc/oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/done/FailureState.java?rev=1052143&view=auto ============================================================================== --- oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/done/FailureState.java (added) +++ oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/done/FailureState.java Thu Dec 23 02:44:23 2010 @@ -0,0 +1,51 @@ +/* + * 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. + */ +package org.apache.oodt.cas.workflow.state.done; + +//OODT imports +import org.apache.oodt.cas.workflow.state.WorkflowState; + +/** + * @author bfoster + * @version $Revision$ + * + *

+ * Failure State + *

+ */ +public class FailureState extends WorkflowState { + + public FailureState(String message) { + super(message); + } + + @Override + public String getName() { + return "Failure"; + } + + @Override + public String getDescription() { + return "Execution Failed"; + } + + @Override + public Category getCategory() { + return Category.DONE; + } + +} Added: oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/done/OFFState.java URL: http://svn.apache.org/viewvc/oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/done/OFFState.java?rev=1052143&view=auto ============================================================================== --- oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/done/OFFState.java (added) +++ oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/done/OFFState.java Thu Dec 23 02:44:23 2010 @@ -0,0 +1,43 @@ +/* + * 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. + */ +package org.apache.oodt.cas.workflow.state.done; + +/** + * @author bfoster + * @version $Revision$ + * + *

+ * OFF State + *

+ */ +public class OFFState extends SuccessState { + + public OFFState(String message) { + super(message); + } + + @Override + public String getName() { + return "Off"; + } + + @Override + public String getDescription() { + return "Turned OFF"; + } + +} Added: oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/done/StoppedState.java URL: http://svn.apache.org/viewvc/oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/done/StoppedState.java?rev=1052143&view=auto ============================================================================== --- oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/done/StoppedState.java (added) +++ oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/done/StoppedState.java Thu Dec 23 02:44:23 2010 @@ -0,0 +1,51 @@ +/* + * 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. + */ +package org.apache.oodt.cas.workflow.state.done; + +//OODT imports +import org.apache.oodt.cas.workflow.state.WorkflowState; + +/** + * @author bfoster + * @version $Revision$ + * + *

+ * Stopped State + *

+ */ +public class StoppedState extends WorkflowState { + + public StoppedState(String message) { + super(message); + } + + @Override + public Category getCategory() { + return Category.DONE; + } + + @Override + public String getDescription() { + return "Force Killed"; + } + + @Override + public String getName() { + return "Stopped"; + } + +} Added: oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/done/SuccessState.java URL: http://svn.apache.org/viewvc/oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/done/SuccessState.java?rev=1052143&view=auto ============================================================================== --- oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/done/SuccessState.java (added) +++ oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/done/SuccessState.java Thu Dec 23 02:44:23 2010 @@ -0,0 +1,51 @@ +/* + * 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. + */ +package org.apache.oodt.cas.workflow.state.done; + +//OODT imports +import org.apache.oodt.cas.workflow.state.WorkflowState; + +/** + * @author bfoster + * @version $Revision$ + * + *

+ * Success State + *

+ */ +public class SuccessState extends WorkflowState { + + public SuccessState(String message) { + super(message); + } + + @Override + public String getName() { + return "Success"; + } + + @Override + public String getDescription() { + return "Successfully Completed"; + } + + @Override + public Category getCategory() { + return Category.DONE; + } + +} Added: oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/holding/PausedState.java URL: http://svn.apache.org/viewvc/oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/holding/PausedState.java?rev=1052143&view=auto ============================================================================== --- oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/holding/PausedState.java (added) +++ oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/holding/PausedState.java Thu Dec 23 02:44:23 2010 @@ -0,0 +1,46 @@ +/* + * 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. + */ +package org.apache.oodt.cas.workflow.state.holding; + +//OODT imports +import org.apache.oodt.cas.workflow.state.RevertableWorkflowState; + +/** + * @author bfoster + * @version $Revision$ + * + *

+ * Paused State + *

+ */ +public class PausedState extends RevertableWorkflowState { + + public PausedState(String message) { + super("Paused", message); + } + + @Override + public Category getCategory() { + return Category.HOLDING; + } + + @Override + public String getDescription() { + return "Has been manually paused"; + } + +} Added: oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/holding/UnknownState.java URL: http://svn.apache.org/viewvc/oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/holding/UnknownState.java?rev=1052143&view=auto ============================================================================== --- oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/holding/UnknownState.java (added) +++ oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/holding/UnknownState.java Thu Dec 23 02:44:23 2010 @@ -0,0 +1,51 @@ +/* + * 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. + */ +package org.apache.oodt.cas.workflow.state.holding; + +//OODT imports +import org.apache.oodt.cas.workflow.state.WorkflowState; + +/** + * @author bfoster + * @version $Revision$ + * + *

+ * Unknown State + *

+ */ +public class UnknownState extends WorkflowState { + + public UnknownState(String message) { + super(message); + } + + @Override + public Category getCategory() { + return Category.HOLDING; + } + + @Override + public String getDescription() { + return "State is Unknown"; + } + + @Override + public String getName() { + return "Unknown"; + } + +} Added: oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/initial/LoadedState.java URL: http://svn.apache.org/viewvc/oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/initial/LoadedState.java?rev=1052143&view=auto ============================================================================== --- oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/initial/LoadedState.java (added) +++ oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/initial/LoadedState.java Thu Dec 23 02:44:23 2010 @@ -0,0 +1,51 @@ +/* + * 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. + */ +package org.apache.oodt.cas.workflow.state.initial; + +//OODT imports +import org.apache.oodt.cas.workflow.state.WorkflowState; + +/** + * @author bfoster + * @version $Revision$ + * + *

+ * Loaded State + *

+ */ +public class LoadedState extends WorkflowState { + + public LoadedState(String message) { + super(message); + } + + @Override + public Category getCategory() { + return Category.INITIAL; + } + + @Override + public String getDescription() { + return "Loading Complete"; + } + + @Override + public String getName() { + return "Loaded"; + } + +} Added: oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/initial/NullState.java URL: http://svn.apache.org/viewvc/oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/initial/NullState.java?rev=1052143&view=auto ============================================================================== --- oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/initial/NullState.java (added) +++ oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/initial/NullState.java Thu Dec 23 02:44:23 2010 @@ -0,0 +1,51 @@ +/* + * 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. + */ +package org.apache.oodt.cas.workflow.state.initial; + +//OODT imports +import org.apache.oodt.cas.workflow.state.WorkflowState; + +/** + * @author bfoster + * @version $Revision$ + * + *

+ * NULL State + *

+ */ +public class NullState extends WorkflowState { + + public NullState() { + super("I am the null value of the state world"); + } + + @Override + public String getName() { + return "Null"; + } + + @Override + public String getDescription() { + return "Uninitialied State"; + } + + @Override + public Category getCategory() { + return Category.INITIAL; + } + +} Added: oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/results/ResultsBailState.java URL: http://svn.apache.org/viewvc/oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/results/ResultsBailState.java?rev=1052143&view=auto ============================================================================== --- oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/results/ResultsBailState.java (added) +++ oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/results/ResultsBailState.java Thu Dec 23 02:44:23 2010 @@ -0,0 +1,43 @@ +/* + * 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. + */ +package org.apache.oodt.cas.workflow.state.results; + +/** + * @author bfoster + * @version $Revision$ + * + *

+ * Results Bail State + *

+ */ +public class ResultsBailState extends ResultsState { + + public ResultsBailState(String message) { + super(message); + } + + @Override + public String getDescription() { + return "Notification to bail workflow"; + } + + @Override + public String getName() { + return "ResultsBail"; + } + +} Added: oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/results/ResultsFailureState.java URL: http://svn.apache.org/viewvc/oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/results/ResultsFailureState.java?rev=1052143&view=auto ============================================================================== --- oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/results/ResultsFailureState.java (added) +++ oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/results/ResultsFailureState.java Thu Dec 23 02:44:23 2010 @@ -0,0 +1,43 @@ +/* + * 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. + */ +package org.apache.oodt.cas.workflow.state.results; + +/** + * @author bfoster + * @version $Revision$ + * + *

+ * Results Failure State + *

+ */ +public class ResultsFailureState extends ResultsState { + + public ResultsFailureState(String message) { + super(message); + } + + @Override + public String getDescription() { + return "Notification of failure"; + } + + @Override + public String getName() { + return "ResultsFailure"; + } + +} Added: oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/results/ResultsState.java URL: http://svn.apache.org/viewvc/oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/results/ResultsState.java?rev=1052143&view=auto ============================================================================== --- oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/results/ResultsState.java (added) +++ oodt/branches/wengine-branch/src/main/java/org/apache/oodt/cas/workflow/state/results/ResultsState.java Thu Dec 23 02:44:23 2010 @@ -0,0 +1,41 @@ +/* + * 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. + */ +package org.apache.oodt.cas.workflow.state.results; + +//OODT imports +import org.apache.oodt.cas.workflow.state.WorkflowState; + +/** + * @author bfoster + * @version $Revision$ + * + *

+ * Results State return by a TaskInstance + *

+ */ +public abstract class ResultsState extends WorkflowState { + + public ResultsState(String message) { + super(message); + } + + @Override + public Category getCategory() { + return Category.RESULTS; + } + +}