You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by la...@apache.org on 2013/12/26 18:31:40 UTC
svn commit: r1553518 [14/15] - in /airavata/sandbox: orchestrator-service/
orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/
orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/context/
o...
Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/InvalidApplicationJobIDException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/InvalidApplicationJobIDException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/InvalidApplicationJobIDException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/InvalidApplicationJobIDException.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,34 @@
+/*
+ *
+ * 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.airavata.registry.api.exception.worker;
+
+import org.apache.airavata.registry.api.exception.RegistryException;
+
+public class InvalidApplicationJobIDException extends RegistryException {
+
+ private static final long serialVersionUID = -8006347245307495767L;
+
+ public InvalidApplicationJobIDException() {
+ super("The Application job ID cannot be null or empty!!!");
+ }
+
+}
Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/UserWorkflowAlreadyExistsException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/UserWorkflowAlreadyExistsException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/UserWorkflowAlreadyExistsException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/UserWorkflowAlreadyExistsException.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,34 @@
+/*
+ *
+ * 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.airavata.registry.api.exception.worker;
+
+import org.apache.airavata.registry.api.exception.RegistryException;
+
+public class UserWorkflowAlreadyExistsException extends RegistryException {
+
+ private static final long serialVersionUID = -8006347245307495767L;
+
+ public UserWorkflowAlreadyExistsException(String workflowTemplateName) {
+ super("The workflow "+workflowTemplateName+" already exists in user space!!!");
+ }
+
+}
Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/UserWorkflowDoesNotExistsException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/UserWorkflowDoesNotExistsException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/UserWorkflowDoesNotExistsException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/UserWorkflowDoesNotExistsException.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,34 @@
+/*
+ *
+ * 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.airavata.registry.api.exception.worker;
+
+import org.apache.airavata.registry.api.exception.RegistryException;
+
+public class UserWorkflowDoesNotExistsException extends RegistryException {
+
+ private static final long serialVersionUID = -8006347245307495767L;
+
+ public UserWorkflowDoesNotExistsException(String workflowTemplateName) {
+ super("The workflow "+workflowTemplateName+" does not exists in user space!!!");
+ }
+
+}
Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/WorkflowInstanceAlreadyExistsException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/WorkflowInstanceAlreadyExistsException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/WorkflowInstanceAlreadyExistsException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/WorkflowInstanceAlreadyExistsException.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,34 @@
+/*
+ *
+ * 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.airavata.registry.api.exception.worker;
+
+import org.apache.airavata.registry.api.exception.RegistryException;
+
+public class WorkflowInstanceAlreadyExistsException extends RegistryException {
+
+ private static final long serialVersionUID = -8006347245307495767L;
+
+ public WorkflowInstanceAlreadyExistsException(String instanceId) {
+ super("The workflow instance "+instanceId+" is already added to the registry & workflowInstanceId should be unique for the system!!!");
+ }
+
+}
Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/WorkflowInstanceDoesNotExistsException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/WorkflowInstanceDoesNotExistsException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/WorkflowInstanceDoesNotExistsException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/WorkflowInstanceDoesNotExistsException.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,34 @@
+/*
+ *
+ * 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.airavata.registry.api.exception.worker;
+
+import org.apache.airavata.registry.api.exception.RegistryException;
+
+public class WorkflowInstanceDoesNotExistsException extends RegistryException {
+
+ private static final long serialVersionUID = -8006347245307495767L;
+
+ public WorkflowInstanceDoesNotExistsException(String instanceId) {
+ super("The workflow instance "+instanceId+" is not present in the registry!!!");
+ }
+
+}
Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/WorkflowInstanceNodeAlreadyExistsException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/WorkflowInstanceNodeAlreadyExistsException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/WorkflowInstanceNodeAlreadyExistsException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/WorkflowInstanceNodeAlreadyExistsException.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,34 @@
+/*
+ *
+ * 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.airavata.registry.api.exception.worker;
+
+import org.apache.airavata.registry.api.exception.RegistryException;
+
+public class WorkflowInstanceNodeAlreadyExistsException extends RegistryException {
+
+ private static final long serialVersionUID = -8006347245307495767L;
+
+ public WorkflowInstanceNodeAlreadyExistsException(String instanceId, String nodeId) {
+ super("The node "+nodeId+" for the workflow instance "+instanceId+" is already in the registry!!!");
+ }
+
+}
Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/WorkflowInstanceNodeDoesNotExistsException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/WorkflowInstanceNodeDoesNotExistsException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/WorkflowInstanceNodeDoesNotExistsException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/WorkflowInstanceNodeDoesNotExistsException.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,34 @@
+/*
+ *
+ * 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.airavata.registry.api.exception.worker;
+
+import org.apache.airavata.registry.api.exception.RegistryException;
+
+public class WorkflowInstanceNodeDoesNotExistsException extends RegistryException {
+
+ private static final long serialVersionUID = -8006347245307495767L;
+
+ public WorkflowInstanceNodeDoesNotExistsException(String instanceId, String nodeId) {
+ super("The node "+nodeId+" for the workflow instance "+instanceId+" is not present in the registry!!!");
+ }
+
+}
Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/WorkspaceProjectAlreadyExistsException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/WorkspaceProjectAlreadyExistsException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/WorkspaceProjectAlreadyExistsException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/WorkspaceProjectAlreadyExistsException.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,34 @@
+/*
+ *
+ * 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.airavata.registry.api.exception.worker;
+
+import org.apache.airavata.registry.api.exception.RegistryException;
+
+public class WorkspaceProjectAlreadyExistsException extends RegistryException {
+
+ private static final long serialVersionUID = -8006347245307495767L;
+
+ public WorkspaceProjectAlreadyExistsException(String projectName) {
+ super("The workspace project "+projectName+" already exists!!!");
+ }
+
+}
Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/WorkspaceProjectDoesNotExistsException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/WorkspaceProjectDoesNotExistsException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/WorkspaceProjectDoesNotExistsException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/WorkspaceProjectDoesNotExistsException.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,34 @@
+/*
+ *
+ * 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.airavata.registry.api.exception.worker;
+
+import org.apache.airavata.registry.api.exception.RegistryException;
+
+public class WorkspaceProjectDoesNotExistsException extends RegistryException {
+
+ private static final long serialVersionUID = -8006347245307495767L;
+
+ public WorkspaceProjectDoesNotExistsException(String projectName) {
+ super("The workspace project "+projectName+" does not exists!!!");
+ }
+
+}
Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/impl/ExperimentDataImpl.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/impl/ExperimentDataImpl.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/impl/ExperimentDataImpl.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/impl/ExperimentDataImpl.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,221 @@
+/*
+ *
+ * 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.airavata.registry.api.impl;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.apache.airavata.registry.api.exception.worker.ExperimentLazyLoadedException;
+import org.apache.airavata.registry.api.workflow.*;
+import org.apache.airavata.registry.api.workflow.WorkflowNodeType.WorkflowNode;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlRootElement
+public class ExperimentDataImpl implements ExperimentData{
+ private WorkflowExecutionStatus executionStatus;
+ private String user;
+ private List<WorkflowIOData> output;
+ private String experimentId;
+ private String metadata;
+ private String workflowInstanceName;
+ private List<WorkflowExecutionDataImpl> workflowInstanceDataList=new ArrayList<WorkflowExecutionDataImpl>();
+ private boolean lazyLoaded=false;
+
+ public ExperimentDataImpl() {
+ this(false);
+ }
+
+ public ExperimentDataImpl(boolean lazyLoaded) {
+ this.lazyLoaded = lazyLoaded;
+ }
+
+ public String getMetadata() {
+ return metadata;
+ }
+ public void setMetadata(String metadata) {
+ this.metadata = metadata;
+ }
+ public String getExperimentId() {
+ return experimentId;
+ }
+
+ @Override
+ public String getTemplateName() throws ExperimentLazyLoadedException {
+ return getWorkflowExecutionDataList().get(0).getTemplateName();
+ }
+
+ @Override
+ public WorkflowExecutionStatus.State getState() throws ExperimentLazyLoadedException {
+ if (executionStatus != null)
+ return executionStatus.getExecutionStatus();
+ else
+ return getWorkflowExecutionDataList().get(0).getState();
+ }
+
+ @Override
+ public Date getStatusUpdateTime() throws ExperimentLazyLoadedException {
+ if (executionStatus != null)
+ return executionStatus.getStatusUpdateTime();
+ else
+ return getWorkflowExecutionDataList().get(0).getStatusUpdateTime();
+ }
+
+ @Override
+ public ExperimentData getExperimentData() throws ExperimentLazyLoadedException {
+ return getWorkflowExecutionDataList().get(0).getExperimentData();
+ }
+
+ @Override
+ public void setExperimentData(ExperimentDataImpl experimentData) throws ExperimentLazyLoadedException {
+ getWorkflowExecutionDataList().get(0).setExperimentData(experimentData);
+ }
+
+ public void setExperimentId(String experimentId) {
+ this.experimentId = experimentId;
+ }
+ public String getTopic() {
+ return experimentId;
+ }
+ public void setTopic(String topic) {
+ this.experimentId = topic;
+ }
+ public WorkflowExecutionStatus getExecutionStatus() {
+ return executionStatus;
+ }
+ public void setExecutionStatus(WorkflowExecutionStatus executionStatus) {
+ this.executionStatus = executionStatus;
+ }
+ public String getUser() {
+ return user;
+ }
+ public void setUser(String user) {
+ this.user = user;
+ }
+ public List<WorkflowIOData> getOutput() {
+ if (output==null){
+ output=new ArrayList<WorkflowIOData>();
+ }
+ return output;
+ }
+ public void setOutput(List<WorkflowIOData> output) {
+ this.output = output;
+ }
+ public void addOutput(WorkflowIOData output) {
+ getOutput().add(output);
+ }
+ public WorkflowIOData getOutput(String nodeId) {
+ return (WorkflowNodeIOData)getIOData(nodeId, getOutput());
+ }
+
+ private WorkflowIOData getIOData(String nodeId, List<?> list) {
+ for (Object data : list) {
+ WorkflowIOData iodata=(WorkflowIOData)data;
+ if (iodata.getNodeId().equals(nodeId)){
+ return iodata;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public String getExperimentName() {
+ return workflowInstanceName;
+ }
+
+ @Override
+ public void setExperimentName(String workflowInstanceName) {
+ this.workflowInstanceName=workflowInstanceName;
+
+ }
+
+ @Override
+ public WorkflowExecutionData getWorkflowExecutionData(String workflowInstanceID) throws ExperimentLazyLoadedException {
+ for(WorkflowExecutionData workflowInstanceData : getWorkflowExecutionDataList()){
+ if(workflowInstanceData.getId().equals(workflowInstanceID)){
+ return workflowInstanceData;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public List<WorkflowExecutionDataImpl> getWorkflowExecutionDataList() throws ExperimentLazyLoadedException{
+ if (isLazyLoaded()){
+ throw new ExperimentLazyLoadedException(getExperimentId());
+ }
+ return workflowInstanceDataList;
+ }
+
+ public boolean isLazyLoaded() {
+ return lazyLoaded;
+ }
+
+ public void setLazyLoaded(boolean lazyLoaded) {
+ this.lazyLoaded = lazyLoaded;
+ }
+
+ @Override
+ public WorkflowExecution getWorkflowExecution() throws ExperimentLazyLoadedException{
+ return getWorkflowExecutionDataList().get(0).getWorkflowExecution();
+ }
+
+ @Override
+ public List<NodeExecutionData> getNodeDataList() throws ExperimentLazyLoadedException{
+ return getWorkflowExecutionDataList().get(0).getNodeDataList();
+ }
+
+ @Override
+ public void addNodeData(NodeExecutionData... nodeData) throws ExperimentLazyLoadedException {
+ getWorkflowExecutionDataList().get(0).addNodeData(nodeData);
+ }
+
+ @Override
+ public NodeExecutionData getNodeData(String nodeId) throws ExperimentLazyLoadedException {
+ return getWorkflowExecutionDataList().get(0).getNodeData(nodeId);
+ }
+
+ @Override
+ public String getId() {
+ return getExperimentId();
+ }
+
+ @Override
+ public List<NodeExecutionData> getNodeDataList(WorkflowNode type)
+ throws ExperimentLazyLoadedException {
+ return getWorkflowExecutionDataList().get(0).getNodeDataList(type);
+ }
+
+ @Override
+ public List<InputData> getWorkflowInputs() throws ExperimentLazyLoadedException{
+ return getWorkflowExecutionDataList().get(0).getWorkflowInputs();
+ }
+
+ @Override
+ public List<OutputData> getWorkflowOutputs()throws ExperimentLazyLoadedException {
+ return getWorkflowExecutionDataList().get(0).getWorkflowOutputs();
+ }
+}
Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/impl/WorkflowExecutionDataImpl.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/impl/WorkflowExecutionDataImpl.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/impl/WorkflowExecutionDataImpl.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/impl/WorkflowExecutionDataImpl.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,182 @@
+/*
+ *
+ * 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.airavata.registry.api.impl;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+
+import org.apache.airavata.registry.api.impl.ExperimentDataImpl;
+import org.apache.airavata.registry.api.workflow.*;
+import org.apache.airavata.registry.api.workflow.WorkflowExecutionStatus.State;
+import org.apache.airavata.registry.api.workflow.WorkflowNodeType.WorkflowNode;
+
+import javax.xml.bind.annotation.*;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlRootElement
+public class WorkflowExecutionDataImpl implements WorkflowExecutionData {
+ private WorkflowExecution workflowInstance;
+
+ @XmlTransient
+ private ExperimentDataImpl experimentData;
+
+ private WorkflowExecutionStatus workflowInstanceStatus;
+
+ private List<NodeExecutionData> nodeDataList;
+
+ public WorkflowExecutionDataImpl() {
+ }
+
+ public WorkflowExecutionDataImpl(ExperimentData experimentData,
+ WorkflowExecution workflowInstance,
+ WorkflowExecutionStatus workflowInstanceStatus,
+ List<NodeExecutionData> nodeDataList) {
+ this.experimentData = (ExperimentDataImpl) experimentData;
+ this.workflowInstance = workflowInstance;
+ this.workflowInstanceStatus = workflowInstanceStatus;
+ this.nodeDataList = nodeDataList;
+ }
+
+ public WorkflowExecution getWorkflowExecution() {
+ return workflowInstance;
+ }
+
+ public List<NodeExecutionData> getNodeDataList() {
+ if (nodeDataList == null) {
+ nodeDataList = new ArrayList<NodeExecutionData>();
+ }
+ return nodeDataList;
+ }
+
+ public void addNodeData(NodeExecutionData... nodeData) {
+ getNodeDataList().addAll(Arrays.asList(nodeData));
+ }
+
+ public String getExperimentId() {
+ return workflowInstance.getExperimentId();
+ }
+
+ /**
+ * @deprecated Use "getWorkflowInstanceID() instead
+ * @return
+ */
+ public String getTopicId() {
+ return workflowInstance.getWorkflowExecutionId();
+ }
+
+ /**
+ * @deprecated Use getId() instead
+ */
+ public String getWorkflowInstanceId() {
+ return workflowInstance.getWorkflowExecutionId();
+ }
+
+ /**
+ * @deprecated Use "WorkflowInstanceData.getTemplateName()" instead
+ * @return
+ */
+ public String getWorkflowName() {
+ return getTemplateName();
+ }
+
+ public String getTemplateName() {
+ return workflowInstance.getTemplateName();
+ }
+
+ public State getState() {
+ return workflowInstanceStatus.getExecutionStatus();
+ }
+
+ public Date getStatusUpdateTime() {
+ return workflowInstanceStatus.getStatusUpdateTime();
+ }
+
+ public NodeExecutionData getNodeData(String nodeId) {
+ for (NodeExecutionData nodeData : getNodeDataList()) {
+ if (nodeData.getWorkflowInstanceNode().getNodeId().equals(nodeId)) {
+ return nodeData;
+ }
+ }
+ return null;
+ }
+
+ public ExperimentData getExperimentData() {
+ return experimentData;
+ }
+
+ public void setExperimentData(ExperimentDataImpl experimentData) {
+ this.experimentData = experimentData;
+ }
+
+ public String getId() {
+ return workflowInstance.getWorkflowExecutionId();
+ }
+
+ @Override
+ public List<InputData> getWorkflowInputs() {
+ List<InputData> workflowInstanceNodePortDatas = new ArrayList<InputData>();
+ for (NodeExecutionData workflowInstanceNodeData : getNodeDataList(WorkflowNodeType.WorkflowNode.INPUTNODE)) {
+ workflowInstanceNodePortDatas.addAll(convertToInputDataList(workflowInstanceNodeData.getOutputData()));
+ }
+ return workflowInstanceNodePortDatas;
+ }
+
+ private List<InputData> convertToInputDataList(List<OutputData> outputData) {
+ List<InputData> i = new ArrayList<InputData>();
+ for (OutputData o : outputData) {
+ i.add(new InputData(o.getWorkflowInstanceNode(),o.getName(),o.getValue()));
+ }
+ return i;
+ }
+ private List<OutputData> convertToOutputDataList(List<InputData> outputData) {
+ List<OutputData> i = new ArrayList<OutputData>();
+ for (InputData o : outputData) {
+ i.add(new OutputData(o.getWorkflowInstanceNode(),o.getName(),o.getValue()));
+ }
+ return i;
+ }
+
+ @Override
+ public List<NodeExecutionData> getNodeDataList(WorkflowNode type) {
+ List<NodeExecutionData> workflowInstanceNodePortDatas = new ArrayList<NodeExecutionData>();
+ for (NodeExecutionData workflowInstanceNodeData : getNodeDataList()) {
+ if (workflowInstanceNodeData.getType().equals(type)) {
+ workflowInstanceNodePortDatas.add(workflowInstanceNodeData);
+ }
+ }
+ return workflowInstanceNodePortDatas;
+ }
+
+ @Override
+ public List<OutputData> getWorkflowOutputs() {
+ List<OutputData> workflowInstanceNodePortDatas = new ArrayList<OutputData>();
+ for (NodeExecutionData workflowInstanceNodeData : getNodeDataList(WorkflowNodeType.WorkflowNode.OUTPUTNODE)) {
+ workflowInstanceNodePortDatas.addAll(convertToOutputDataList(workflowInstanceNodeData
+ .getInputData()));
+ }
+ return workflowInstanceNodePortDatas;
+
+ }
+
+}
Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/util/RegistryConstants.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/util/RegistryConstants.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/util/RegistryConstants.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/util/RegistryConstants.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,36 @@
+/*
+ *
+ * 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.airavata.registry.api.util;
+
+public class RegistryConstants {
+ public static final String KEY_DEFAULT_GATEWAY_ID = "default.registry.gateway";
+ public static final String KEY_DEFAULT_REGISTRY_USER = "registry.user";
+ public static final String KEY_DEFAULT_REGISTRY_URL = "registry.jdbc.url";
+ public static final String CONFIGURATION_REGISTRY_ACCESSOR_CLASS = "class.configuration.registry.accessor";
+ public static final String DESCRIPTOR_REGISTRY_ACCESSOR_CLASS = "class.descriptor.registry.accessor";
+ public static final String PROJECT_REGISTRY_ACCESSOR_CLASS = "class.project.registry.accessor";
+ public static final String PROVENANCE_REGISTRY_ACCESSOR_CLASS = "class.provenance.registry.accessor";
+ public static final String USER_WF_REGISTRY_ACCESSOR_CLASS = "class.user.workflow.registry.accessor";
+ public static final String PUBLISHED_WF_REGISTRY_ACCESSOR_CLASS = "class.published.workflow.registry.accessor";
+ public static final String USER_REGISTRY_ACCESSOR_CLASS = "class.user.registry.accessor";
+
+}
Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/util/RegistrySettings.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/util/RegistrySettings.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/util/RegistrySettings.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/util/RegistrySettings.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,102 @@
+/*
+ *
+ * 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.airavata.registry.api.util;
+
+import java.net.URL;
+import java.util.Properties;
+
+import org.apache.airavata.common.utils.AiravataUtils;
+import org.apache.airavata.common.utils.ApplicationSettings;
+import org.apache.airavata.registry.api.exception.RegistrySettingsException;
+import org.apache.airavata.registry.api.exception.RegistrySettingsLoadException;
+
+public class RegistrySettings {
+ private static final String REPOSITORY_PROPERTIES = "registry.properties";
+ private static Properties properties = new Properties();
+ private static Exception propertyLoadException;
+ private static final String REGISTRY_ACCESSOR_CLASS = "class.registry.accessor";
+ private static final String SAVE_APPLICATION_JOB_STATUS_HISTORY="enable.application.job.status.history";
+
+ static{
+ URL url = RegistrySettings.class.getClassLoader()
+ .getResource(REPOSITORY_PROPERTIES);
+ if (url == null) {
+ if (AiravataUtils.isServer()){
+ url=RegistrySettings.class.getClassLoader().getResource(ApplicationSettings.SERVER_PROPERTIES);
+ if(url == null){
+ url=RegistrySettings.class.getClassLoader().getResource(ApplicationSettings.CLIENT_PROPERTIES);
+ }
+ }else if (AiravataUtils.isClient()){
+ url=RegistrySettings.class.getClassLoader().getResource(ApplicationSettings.CLIENT_PROPERTIES);
+ if(url == null){
+ url=RegistrySettings.class.getClassLoader().getResource(ApplicationSettings.SERVER_PROPERTIES);
+ }
+ }else{
+ //unknown execution mode... If so, first assume its client, if not server...
+ url=RegistrySettings.class.getClassLoader().getResource(ApplicationSettings.CLIENT_PROPERTIES);
+ if (url==null){
+ url=RegistrySettings.class.getClassLoader().getResource(ApplicationSettings.SERVER_PROPERTIES);
+ }
+ }
+ }
+ try {
+ properties.load(url.openStream());
+ } catch (Exception e) {
+ propertyLoadException=e;
+ }
+ }
+
+ private static void validateSuccessfulPropertyFileLoad() throws RegistrySettingsException{
+ if (propertyLoadException!=null){
+ throw new RegistrySettingsLoadException(propertyLoadException);
+ }
+ }
+
+ public static String getSetting(String key) throws RegistrySettingsException{
+ validateSuccessfulPropertyFileLoad();
+ if (properties.containsKey(key)){
+ return properties.getProperty(key);
+ }
+ return null;
+// throw new UnspecifiedRegistrySettingsException(key);
+ }
+
+ public static String getSetting(String key, String defaultValue){
+ try {
+ validateSuccessfulPropertyFileLoad();
+ if (properties.containsKey(key)){
+ return properties.getProperty(key);
+ }
+ } catch (RegistrySettingsException e) {
+ //we'll ignore this error since a default value is provided
+ }
+ return defaultValue;
+ }
+
+ public static String getRegistryAccessorClass() throws RegistrySettingsException{
+ return getSetting(REGISTRY_ACCESSOR_CLASS);
+ }
+
+ public static boolean isApplicationJobStatusHistoryEnabled(){
+ return "true".equalsIgnoreCase(getSetting(SAVE_APPLICATION_JOB_STATUS_HISTORY, "false"));
+ }
+}
Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/util/RegistryUtils.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/util/RegistryUtils.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/util/RegistryUtils.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/util/RegistryUtils.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,127 @@
+/*
+ *
+ * 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.airavata.registry.api.util;
+
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLConnection;
+
+import org.apache.airavata.common.exception.AiravataConfigurationException;
+import org.apache.airavata.common.exception.ApplicationSettingsException;
+import org.apache.airavata.common.utils.ServerSettings;
+import org.apache.airavata.registry.api.AiravataRegistry2;
+import org.apache.airavata.registry.api.AiravataRegistryFactory;
+import org.apache.airavata.registry.api.AiravataUser;
+import org.apache.airavata.registry.api.Gateway;
+import org.apache.airavata.registry.api.exception.RegistryAccessorInstantiateException;
+import org.apache.airavata.registry.api.exception.RegistryAccessorInvalidException;
+import org.apache.airavata.registry.api.exception.RegistryAccessorNotFoundException;
+import org.apache.airavata.registry.api.exception.RegistryAccessorUndefinedException;
+import org.apache.airavata.registry.api.exception.RegistryException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class RegistryUtils {
+ private static final Logger log = LoggerFactory.getLogger(RegistryUtils.class);
+
+
+ public static String validateAxisService(String urlString)throws RegistryException {
+ if(!urlString.endsWith("?wsdl")){
+ urlString = urlString + "?wsdl";
+ }
+ try {
+ URL url = new URL(urlString);
+ URLConnection conn = url.openConnection();
+ conn.connect();
+ } catch (MalformedURLException e) {
+ // the URL is not in a valid form
+ throw new RegistryException("Given Axis2 Service URL : " + urlString + " is Invalid",e);
+ } catch (IOException e) {
+ // the connection couldn't be established
+ throw new RegistryException("Given Axis2 Service URL : " + urlString + " is Invalid",e);
+ }
+ return urlString;
+ }
+ public static String validateURL(String urlString)throws RegistryException{
+ try {
+ URL url = new URL(urlString);
+ URLConnection conn = url.openConnection();
+ conn.connect();
+ } catch (MalformedURLException e) {
+ // the URL is not in a valid form
+ throw new RegistryException("Given URL: " + urlString + " is Invalid",e);
+ } catch (IOException e) {
+ // the connection couldn't be established
+ throw new RegistryException("Given URL: " + urlString + " is Invalid",e);
+ }
+ return urlString;
+ }
+// public static boolean validateRegistryCredentials(String userName,String password,String url)throws RegistryException{
+// HashMap<String, String> map = new HashMap<String, String>();
+// map.put("org.apache.jackrabbit.repository.uri", url);
+// try {
+// AiravataJCRRegistry airavataJCRRegistry = new AiravataJCRRegistry(new URI(url), "org.apache.jackrabbit.rmi.repository.RmiRepositoryFactory", userName, password, map);
+// airavataJCRRegistry.saveGFacDescriptor("dummy");
+//// airavataJCRRegistry.deleteGFacDescriptor("dummy");
+// } catch (Exception e) {
+// throw new RegistryException("Check the properties file for JCR Registry Configuration",e);
+// }
+// return true;
+// }
+
+ public static AiravataRegistry2 getRegistryFromServerSettings() {
+ String username = "";
+// Properties properties = new Properties();
+ AiravataRegistry2 registry = null;
+// try {
+//// properties.load(url.openStream());
+// username=ServerSettings.getSystemUser();
+//// if (properties.get(REGISTRY_USER) != null) {
+//// username = (String) properties.get(REGISTRY_USER);
+//// }
+// } catch (MalformedURLException e) {
+// e.printStackTrace();
+// } catch (IOException e) {
+// e.printStackTrace();
+// }
+ try {
+ username=ServerSettings.getSystemUser();
+ registry = AiravataRegistryFactory.getRegistry(new Gateway(ServerSettings.getSystemUserGateway()),
+ new AiravataUser(username));
+ } catch (AiravataConfigurationException e) {
+ log.error("Error initializing AiravataRegistry2");
+ } catch (RegistryAccessorNotFoundException e) {
+ log.error("Error initializing AiravataRegistry2");
+ } catch (RegistryAccessorInstantiateException e) {
+ log.error("Error initializing AiravataRegistry2");
+ } catch (RegistryAccessorInvalidException e) {
+ log.error("Error initializing AiravataRegistry2");
+ } catch (RegistryAccessorUndefinedException e) {
+ log.error("Error initializing AiravataRegistry2");
+ } catch (ApplicationSettingsException e) {
+ log.error("Error initializing AiravataRegistry2",e);
+ } catch (RegistryException e) {
+ log.error("Error initializing AiravataRegistry2",e);
+ }
+ return registry;
+ }
+}
Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/util/WebServiceUtil.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/util/WebServiceUtil.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/util/WebServiceUtil.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/util/WebServiceUtil.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,202 @@
+/*
+ *
+ * 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.airavata.registry.api.util;
+
+import org.apache.airavata.commons.gfac.type.ServiceDescription;
+import org.apache.airavata.commons.gfac.wsdl.WSDLConstants;
+import org.apache.airavata.commons.gfac.wsdl.WSDLGenerator;
+import org.apache.airavata.schemas.gfac.*;
+
+import java.util.Hashtable;
+
+public class WebServiceUtil {
+
+
+
+ public static String generateWSDL(ServiceDescription service) {
+ StringBuilder builder = new StringBuilder();
+ builder.append("<wsdl:definitions xmlns:wsdl=\"http://schemas.xmlsoap.org/wsdl/\" xmlns:ns1=\"http://org.apache.axis2/xsd\" xmlns:ns=\"http://www.wso2.org/types\" xmlns:wsaw=\"http://www.w3.org/2006/05/addressing/wsdl\" xmlns:http=\"http://schemas.xmlsoap.org/wsdl/http/\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/wsdl/soap/\" xmlns:mime=\"http://schemas.xmlsoap.org/wsdl/mime/\" xmlns:soap12=\"http://schemas.xmlsoap.org/wsdl/soap12/\" targetNamespace=\"http://www.wso2.org/types\">");
+ builder.append("<wsdl:documentation>");
+ builder.append(service.getType().getName());
+ builder.append("</wsdl:documentation>");
+ builder.append("<wsdl:types>");
+ builder.append("<xs:schema attributeFormDefault=\"qualified\" elementFormDefault=\"unqualified\" targetNamespace=\"http://www.wso2.org/types\">");
+
+ boolean isInputParametersPresent = service.getType().getInputParametersArray() != null
+ && service.getType().getInputParametersArray().length > 0;
+ if (isInputParametersPresent) {
+ builder.append("<xs:element name=\"invoke\">");
+ builder.append("<xs:complexType>");
+ builder.append("<xs:sequence>");
+
+ ServiceDescriptionType p = service.getType();
+
+ for (int i = 0; i < p.getInputParametersArray().length; i++) {
+ generateElementFromInputType(p.getInputParametersArray(i), builder);
+ }
+
+ builder.append("</xs:sequence>");
+ builder.append("</xs:complexType>");
+ builder.append("</xs:element>");
+ }
+
+ boolean isOutputParametersPresent = service.getType().getOutputParametersArray() != null
+ && service.getType().getOutputParametersArray().length > 0;
+ if (isOutputParametersPresent) {
+ builder.append("<xs:element name=\"invokeResponse\">");
+ builder.append("<xs:complexType>");
+ builder.append("<xs:sequence>");
+
+ ServiceDescriptionType p = service.getType();
+
+ for (int i = 0; i < p.getOutputParametersArray().length; i++) {
+ generateElementFromOutputType(p.getOutputParametersArray(i), builder);
+ }
+
+ builder.append("</xs:sequence>");
+ builder.append("</xs:complexType>");
+ builder.append("</xs:element>");
+ }
+
+ builder.append("</xs:schema>");
+ builder.append("</wsdl:types>");
+
+ builder.append("<wsdl:message name=\"invokeRequest\">");
+ if (isInputParametersPresent) {
+ builder.append("<wsdl:part name=\"parameters\" element=\"ns:invoke\"/>");
+ }
+ builder.append("</wsdl:message>");
+ if (isOutputParametersPresent) {
+ builder.append("<wsdl:message name=\"invokeResponse\">");
+ builder.append("<wsdl:part name=\"parameters\" element=\"ns:invokeResponse\"/>");
+ builder.append("</wsdl:message>");
+ }
+
+ builder.append("<wsdl:portType name=\"");
+ builder.append(service.getType().getName());
+ builder.append("\">");
+ builder.append("<wsdl:operation name=\"invoke\">");
+ builder.append("<wsdl:input message=\"ns:invokeRequest\" wsaw:Action=\"urn:invoke\"/>");
+ if (isOutputParametersPresent) {
+ builder.append("<wsdl:output message=\"ns:invokeResponse\" wsaw:Action=\"urn:invokeResponse\"/>");
+ }
+ builder.append("</wsdl:operation>");
+ builder.append("</wsdl:portType>");
+
+ builder.append("</wsdl:definitions>");
+
+ return builder.toString();
+ }
+
+ private static void generateElementFromInputType(InputParameterType parameter, StringBuilder builder) {
+
+ String type = parameter.getParameterType().getName();
+ if (type.equals("String")) {
+ builder.append("<xs:element minOccurs=\"0\" name=\"");
+ builder.append(parameter.getParameterName());
+ builder.append("\" nillable=\"true\" type=\"xs:string\"/>");
+ } else if (type.equals("Integer")) {
+ builder.append("<xs:element minOccurs=\"0\" name=\"");
+ builder.append(parameter.getParameterName());
+ builder.append("\" type=\"xs:int\"/>");
+ } else if (type.equals("Boolean")) {
+ builder.append("<xs:element minOccurs=\"0\" name=\"");
+ builder.append(parameter.getParameterName());
+ builder.append("\" type=\"xs:boolean\"/>");
+ } else if (type.equals("Double")) {
+ builder.append("<xs:element minOccurs=\"0\" name=\"");
+ builder.append(parameter.getParameterName());
+ builder.append("\" type=\"xs:double\"/>");
+ } else if (type.equals("Float")) {
+ builder.append("<xs:element minOccurs=\"0\" name=\"");
+ builder.append(parameter.getParameterName());
+ builder.append("\" type=\"xs:float\"/>");
+ } else if (type.equals("File")) {
+ // TODO adding this means adding a new complex type for File type
+ // builder.append("<xs:element minOccurs=\"0\" name=\"");
+ // builder.append(parameter.getName());
+ // builder.append("\" nillable=\"true\" type=\"ax22:File\"/>");
+ }
+
+ }
+
+ private static void generateElementFromOutputType(OutputParameterType parameter, StringBuilder builder) {
+
+ String type = parameter.getParameterType().getName();
+ if (type.equals("String")) {
+ builder.append("<xs:element minOccurs=\"0\" name=\"");
+ builder.append(parameter.getParameterName());
+ builder.append("\" nillable=\"true\" type=\"xs:string\"/>");
+ } else if (type.equals("Integer")) {
+ builder.append("<xs:element minOccurs=\"0\" name=\"");
+ builder.append(parameter.getParameterName());
+ builder.append("\" type=\"xs:int\"/>");
+ } else if (type.equals("Boolean")) {
+ builder.append("<xs:element minOccurs=\"0\" name=\"");
+ builder.append(parameter.getParameterName());
+ builder.append("\" type=\"xs:boolean\"/>");
+ } else if (type.equals("Double")) {
+ builder.append("<xs:element minOccurs=\"0\" name=\"");
+ builder.append(parameter.getParameterName());
+ builder.append("\" type=\"xs:double\"/>");
+ } else if (type.equals("Float")) {
+ builder.append("<xs:element minOccurs=\"0\" name=\"");
+ builder.append(parameter.getParameterName());
+ builder.append("\" type=\"xs:float\"/>");
+ } else if (type.equals("File")) {
+ // TODO adding this means adding a new complex type for File type
+ // builder.append("<xs:element minOccurs=\"0\" name=\"");
+ // builder.append(parameter.getName());
+ // builder.append("\" nillable=\"true\" type=\"ax22:File\"/>");
+ }
+
+ }
+
+ public static String getWSDL(ServiceDescription service) throws Exception{
+ try {
+
+ ServiceType type = service.getType().addNewService();
+ ServiceType.ServiceName name = type.addNewServiceName();
+ name.setStringValue(service.getType().getName());
+ name.setTargetNamespace("http://airavata.apache.org/schemas/gfac/2012/12");
+ if(service.getType().getPortType() == null){
+ PortTypeType portType = service.getType().addNewPortType();
+ MethodType methodType = portType.addNewMethod();
+ methodType.setMethodName("invoke");
+ }else{
+ MethodType method = service.getType().getPortType().getMethod();
+ if (method == null) {
+ MethodType methodType = service.getType().getPortType().addNewMethod();
+ methodType.setMethodName("invoke");
+ } else {
+ service.getType().getPortType().getMethod().setMethodName("invoke");
+ }
+ }
+ WSDLGenerator generator = new WSDLGenerator();
+ Hashtable table = generator.generateWSDL(null, null, null, service.getType(), true);
+ return (String) table.get(WSDLConstants.AWSDL);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+}
Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ApplicationJob.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ApplicationJob.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ApplicationJob.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ApplicationJob.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,295 @@
+/*
+ *
+ * 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.airavata.registry.api.workflow;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+import java.util.Date;
+
+@XmlRootElement
+@XmlAccessorType(XmlAccessType.FIELD)
+public class ApplicationJob {
+ /**
+ * Represents the status of the application job execution life cycle.<br />
+ * <em><strong>Note</strong> : The applicable <code>ApplicationJobStatus</code> values and the
+ * particular actions that define or lead to those <code>ApplicationJobStatus</code> values is
+ * based on type of application (eg: GRAM, EC2) being executed</em>.
+ */
+ public static enum ApplicationJobStatus{
+
+ /**
+ * Job not yet submitted to Gram
+ */
+ UN_SUBMITTED,
+ /**
+ * Validating the application job input data and configurations
+ */
+ VALIDATE_INPUT,
+ /**
+ * Input data/files is being staged for the application job.
+ */
+ STAGING,
+ /**
+ * Authenticating
+ */
+ AUTHENTICATE,
+ /**
+ * Application job is being initialized.
+ */
+ INITIALIZE,
+ /**
+ * Application job is submitted, possibly waiting to start executing.
+ */
+ SUBMITTED,
+ /**
+ * Application job is waiting to start/continue its executing.
+ */
+ PENDING,
+ /**
+ * Application job is being executed.
+ */
+ EXECUTING,
+ /**
+ * Application job is being active.
+ */
+ ACTIVE,
+ /**
+ * Application job is paused/suspended
+ */
+ SUSPENDED,
+ /**
+ * Application job is waiting for data or a trigger to continue its execution.
+ */
+ WAIT_FOR_DATA,
+ /**
+ * Finalizing the execution of the application job.
+ */
+ FINALIZE,
+ /**
+ * Results of the application job execution are being generated.
+ */
+ RESULTS_GEN,
+ /**
+ * Generated results from the application job execution is being retrieved.
+ */
+ RESULTS_RETRIEVE,
+ /**
+ * Validating the application job execution results
+ */
+ VALIDATE_OUTPUT,
+ /**
+ * Application job completed successfully.
+ */
+ FINISHED,
+ /**
+ * Error occurred during the application job execution and the job was terminated.
+ */
+ FAILED,
+ /**
+ * Execution of the application job was cancelled.
+ */
+ CANCELLED,
+ /**
+ * Execution of the application job was cancelled.
+ */
+ CANCELED,
+ /**
+ * Unable to determine the current status of the application job. <br />
+ * <em><strong>Note: </strong>More information may be available on the application job
+ * </em><code>metadata</code>.
+ */
+ UNKNOWN
+ }
+
+ private String experimentId;
+ private String workflowExecutionId;
+ private String nodeId;
+
+ private String serviceDescriptionId;
+ private String hostDescriptionId;
+ private String applicationDescriptionId;
+
+ private String jobId;
+ private String jobData;
+
+ private Date submittedTime;
+ private Date statusUpdateTime;
+ private ApplicationJobStatus status;
+
+ private String metadata;
+
+ /**
+ * The id of the experiment which this application job corresponds to
+ * @return
+ */
+ public String getExperimentId() {
+ return experimentId;
+ }
+
+ public void setExperimentId(String experimentId) {
+ this.experimentId = experimentId;
+ }
+
+ /**
+ * The id of the workflow instance execution which this application job corresponds to
+ */
+ public String getWorkflowExecutionId() {
+ return workflowExecutionId;
+ }
+
+ public void setWorkflowExecutionId(String workflowExecutionId) {
+ this.workflowExecutionId = workflowExecutionId;
+ }
+
+ /**
+ * The id of the node which this application job corresponds to
+ */
+ public String getNodeId() {
+ return nodeId;
+ }
+
+ public void setNodeId(String nodeId) {
+ this.nodeId = nodeId;
+ }
+
+ /**
+ * The id of the service description which this application job corresponds to
+ */
+ public String getServiceDescriptionId() {
+ return serviceDescriptionId;
+ }
+
+ public void setServiceDescriptionId(String serviceDescriptionId) {
+ this.serviceDescriptionId = serviceDescriptionId;
+ }
+
+ /**
+ * The id of the host description which this application job corresponds to <br />
+ * <em><strong>Note: </strong>For data saved using the deprecated API function
+ * {@code updateWorkflowNodeGramData(...)} this will be the address of the host</em>
+ */
+ public String getHostDescriptionId() {
+ return hostDescriptionId;
+ }
+
+ public void setHostDescriptionId(String hostDescriptionId) {
+ this.hostDescriptionId = hostDescriptionId;
+ }
+
+ /**
+ * The id of the application description which this application job corresponds to
+ */
+ public String getApplicationDescriptionId() {
+ return applicationDescriptionId;
+ }
+
+ public void setApplicationDescriptionId(String applicationDescriptionId) {
+ this.applicationDescriptionId = applicationDescriptionId;
+ }
+
+ /**
+ * id representing the application job uniquely identified in the Airavata system <br />
+ * <em><strong>Note: </strong>This id may or may not correspond to an id that can identify a
+ * resource execution in the computational middleware</em>
+ */
+ public String getJobId() {
+ return jobId;
+ }
+
+ /**
+ * Set a unique id which represents this job in the Airavata system.
+ */
+ public void setJobId(String jobId) {
+ this.jobId = jobId;
+ }
+
+ /**
+ * Configuration, execution and input data relating to the execution of the application job. <br />
+ * <em><strong>Note: </strong>The structure of the data is determined by the type of application
+ * <code>(eg: GRAM, EC2) being executed.</code></em>
+ */
+ public String getJobData() {
+ return jobData;
+ }
+
+ /**
+ * Set the configuration, execution and input data relating to the execution of the application.
+ * job. <br />
+ * <em><strong>Note: </strong>The structure of the data is up to the Provider implementation
+ * <code>(eg: GRAMProvider, EC2Provider)</code>. It is strongly encouraged to include in this
+ * field all the information (excluding descriptor data & any sensitive data such as password
+ * credentials) necessary for a 3rd party to repeat the execution of application job if
+ * necessary.</em>
+ */
+ public void setJobData(String jobData) {
+ this.jobData = jobData;
+ }
+
+ /**
+ * When was this application job was submitted.
+ */
+ public Date getSubmittedTime() {
+ return submittedTime;
+ }
+
+ public void setSubmittedTime(Date submittedTime) {
+ this.submittedTime = submittedTime;
+ }
+
+ /**
+ * When was the status of this application job was last updated.
+ * @return
+ */
+ public Date getStatusUpdateTime() {
+ return statusUpdateTime;
+ }
+
+ public void setStatusUpdateTime(Date statusUpdateTime) {
+ this.statusUpdateTime = statusUpdateTime;
+ }
+
+ /**
+ * Get the currently recorded status of the application job.
+ * @return
+ */
+ public ApplicationJobStatus getStatus() {
+ return status;
+ }
+
+ public void setStatus(ApplicationJobStatus status) {
+ this.status = status;
+ }
+
+ /**
+ * Custom metadata maintained for the application job containing that may contain any additional
+ * information relating to the execution.
+ * @return
+ */
+ public String getMetadata() {
+ return metadata;
+ }
+
+ public void setMetadata(String metadata) {
+ this.metadata = metadata;
+ }
+}
Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ApplicationJobExecutionError.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ApplicationJobExecutionError.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ApplicationJobExecutionError.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ApplicationJobExecutionError.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,67 @@
+/*
+ *
+ * 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.airavata.registry.api.workflow;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+
+@XmlRootElement
+@XmlAccessorType(XmlAccessType.FIELD)
+public class ApplicationJobExecutionError extends ExecutionError {
+ private String experimentId;
+ private String workflowInstanceId;
+ private String nodeId;
+ private String jobId;
+
+ public String getExperimentId() {
+ return experimentId;
+ }
+
+ public void setExperimentId(String experimentId) {
+ this.experimentId = experimentId;
+ }
+
+ public String getWorkflowInstanceId() {
+ return workflowInstanceId;
+ }
+
+ public void setWorkflowInstanceId(String workflowInstanceId) {
+ this.workflowInstanceId = workflowInstanceId;
+ }
+
+ public String getNodeId() {
+ return nodeId;
+ }
+
+ public void setNodeId(String nodeId) {
+ this.nodeId = nodeId;
+ }
+
+ public String getJobId() {
+ return jobId;
+ }
+
+ public void setJobId(String jobId) {
+ this.jobId = jobId;
+ }
+}
Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ApplicationJobStatusData.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ApplicationJobStatusData.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ApplicationJobStatusData.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ApplicationJobStatusData.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,63 @@
+/*
+ *
+ * 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.airavata.registry.api.workflow;
+
+import java.util.Date;
+
+import org.apache.airavata.registry.api.workflow.ApplicationJob.ApplicationJobStatus;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+
+@XmlRootElement
+@XmlAccessorType(XmlAccessType.FIELD)
+public class ApplicationJobStatusData {
+ private String jobId;
+ private ApplicationJobStatus status;
+ private Date time;
+
+ public ApplicationJobStatusData(String jobId, ApplicationJobStatus status, Date time) {
+ setJobId(jobId);
+ setStatus(status);
+ setTime(time);
+ }
+
+ public String getJobId() {
+ return jobId;
+ }
+ private void setJobId(String jobId) {
+ this.jobId = jobId;
+ }
+ public ApplicationJobStatus getStatus() {
+ return status;
+ }
+ private void setStatus(ApplicationJobStatus status) {
+ this.status = status;
+ }
+ public Date getTime() {
+ return time;
+ }
+ private void setTime(Date time) {
+ this.time = time;
+ }
+}
Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ExecutionError.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ExecutionError.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ExecutionError.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ExecutionError.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,103 @@
+/*
+ *
+ * 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.airavata.registry.api.workflow;
+
+import java.util.Date;
+
+import org.apache.airavata.registry.api.ExecutionErrors;
+import org.codehaus.jackson.annotate.JsonTypeInfo;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlSeeAlso;
+
+@XmlRootElement
+@XmlAccessorType(XmlAccessType.FIELD)
+@JsonTypeInfo(use=JsonTypeInfo.Id.CLASS, include=JsonTypeInfo.As.PROPERTY, property="@class")
+public abstract class ExecutionError {
+ public ExecutionErrors.Source source;
+ public Date errorTime;
+ public String errorCode;
+ public String errorMessage;
+ public String errorDescription;
+ public String errorLocation;
+ public String actionTaken;
+ private String errorReported;
+ private int errorReference;
+
+ public ExecutionErrors.Source getSource() {
+ return source;
+ }
+ public void setSource(ExecutionErrors.Source source) {
+ this.source = source;
+ }
+ public Date getErrorTime() {
+ return errorTime;
+ }
+ public void setErrorTime(Date errorTime) {
+ this.errorTime = errorTime;
+ }
+ public String getErrorCode() {
+ return errorCode;
+ }
+ public void setErrorCode(String errorCode) {
+ this.errorCode = errorCode;
+ }
+ public String getErrorMessage() {
+ return errorMessage;
+ }
+ public void setErrorMessage(String errorMessage) {
+ this.errorMessage = errorMessage;
+ }
+ public String getErrorDescription() {
+ return errorDescription;
+ }
+ public void setErrorDescription(String errorDescription) {
+ this.errorDescription = errorDescription;
+ }
+ public String getErrorLocation() {
+ return errorLocation;
+ }
+ public void setErrorLocation(String errorLocation) {
+ this.errorLocation = errorLocation;
+ }
+ public String getActionTaken() {
+ return actionTaken;
+ }
+ public void setActionTaken(String actionTaken) {
+ this.actionTaken = actionTaken;
+ }
+ public String getErrorReported() {
+ return errorReported;
+ }
+ public void setErrorReported(String errorReported) {
+ this.errorReported = errorReported;
+ }
+ public int getErrorReference() {
+ return errorReference;
+ }
+ public void setErrorReference(int errorReference) {
+ this.errorReference = errorReference;
+ }
+
+}
Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ExperimentData.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ExperimentData.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ExperimentData.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ExperimentData.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,123 @@
+/*
+ *
+ * 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.airavata.registry.api.workflow;
+
+import java.util.List;
+
+import org.apache.airavata.registry.api.exception.worker.ExperimentLazyLoadedException;
+import org.apache.airavata.registry.api.impl.ExperimentDataImpl;
+import org.apache.airavata.registry.api.impl.WorkflowExecutionDataImpl;
+
+import javax.jws.WebService;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlSeeAlso;
+
+//@XmlRootElement
+//@XmlAccessorType(XmlAccessType.FIELD)
+@WebService
+@XmlSeeAlso(ExperimentDataImpl.class)
+public interface ExperimentData extends WorkflowExecutionData {
+ //Current Id and Topic values are similar
+
+ /**
+ * Returns the ExperimentID of the workflow Run
+ * @return
+ */
+ public String getId();
+
+ /**
+ * Returns the Experiment Topic... Currently the ID and the Topic are identical
+ * @return
+ */
+ public String getTopic();
+
+ /**
+ * Returns the user of the workflow run
+ * @return
+ */
+ public String getUser();
+
+ /**
+ * Returns metadata related to the workflow run
+ * @return
+ */
+ public String getMetadata();
+
+ /**
+ * Returns the Experiment Name of the workflow run, This is given in the XBaya-GUI when you user run a workflow
+ * @return
+ */
+ public String getExperimentName();
+
+ /**
+ * get data related to a particular experiment, this returns all the workflow runs for the given Experiment
+ * @return
+ * @throws ExperimentLazyLoadedException
+ */
+ public List<WorkflowExecutionDataImpl> getWorkflowExecutionDataList() throws ExperimentLazyLoadedException;
+
+ /**
+ * Reut
+ * @param workflowExecutionID
+ * @return
+ * @throws ExperimentLazyLoadedException
+ */
+ public WorkflowExecutionData getWorkflowExecutionData(String workflowExecutionID) throws ExperimentLazyLoadedException;
+
+ /**
+ *
+ * @param experimentId
+ */
+ public void setExperimentId(String experimentId);
+
+ /**
+ *
+ * @param topic
+ */
+ public void setTopic(String topic);
+
+ /**
+ *
+ * @param user
+ */
+ public void setUser(String user);
+
+ /**
+ *
+ * @param metadata
+ */
+ public void setMetadata(String metadata);
+
+ /**
+ *
+ * @param experimentName
+ */
+ public void setExperimentName(String experimentName);
+
+ /**
+ *
+ * @return
+ */
+ public String getExperimentId();
+}
Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ExperimentExecutionError.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ExperimentExecutionError.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ExperimentExecutionError.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ExperimentExecutionError.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,40 @@
+/*
+ *
+ * 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.airavata.registry.api.workflow;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+
+@XmlRootElement
+@XmlAccessorType(XmlAccessType.FIELD)
+public class ExperimentExecutionError extends ExecutionError {
+ private String experimentId;
+
+ public String getExperimentId() {
+ return experimentId;
+ }
+
+ public void setExperimentId(String experimentId) {
+ this.experimentId = experimentId;
+ }
+}
Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ExperimentMetadata.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ExperimentMetadata.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ExperimentMetadata.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ExperimentMetadata.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,49 @@
+/*
+ *
+ * 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.airavata.registry.api.workflow;
+
+public class ExperimentMetadata {
+ private String experimentId;
+ private String metadata;
+
+ public ExperimentMetadata(String experimentId, String metadata) {
+ setExperimentId(experimentId);
+ setMetadata(metadata);
+ }
+
+ public String getMetadata() {
+ return metadata;
+ }
+
+ public void setMetadata(String metadata) {
+ this.metadata = metadata;
+ }
+
+ public String getExperimentId() {
+ return experimentId;
+ }
+
+ public void setExperimentId(String experimentId) {
+ this.experimentId = experimentId;
+ }
+
+}
Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ExperimentName.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ExperimentName.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ExperimentName.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ExperimentName.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,49 @@
+/*
+ *
+ * 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.airavata.registry.api.workflow;
+
+public class ExperimentName {
+ private String experimentId;
+ private String instanceName;
+
+ public ExperimentName(String experimentId, String instanceName) {
+ setExperimentId(experimentId);
+ setInstanceName(instanceName);
+ }
+
+ public String getInstanceName() {
+ return instanceName;
+ }
+
+ public void setInstanceName(String instanceName) {
+ this.instanceName = instanceName;
+ }
+
+ public String getExperimentId() {
+ return experimentId;
+ }
+
+ public void setExperimentId(String experimentId) {
+ this.experimentId = experimentId;
+ }
+
+}
Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ExperimentUser.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ExperimentUser.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ExperimentUser.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ExperimentUser.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,48 @@
+/*
+ *
+ * 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.airavata.registry.api.workflow;
+
+public class ExperimentUser {
+ private String experimentId;
+ private String user;
+
+ public ExperimentUser(String experimentId, String user) {
+ setExperimentId(experimentId);
+ setUser(user);
+ }
+
+ public String getUser() {
+ return user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+
+ public String getExperimentId() {
+ return experimentId;
+ }
+
+ public void setExperimentId(String experimentId) {
+ this.experimentId = experimentId;
+ }
+}
Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/InputData.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/InputData.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/InputData.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/InputData.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,34 @@
+/*
+ *
+ * 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.airavata.registry.api.workflow;
+
+public class InputData extends WorkflowInstanceNodePortData {
+ public InputData() {
+ super();
+ }
+ public InputData(WorkflowInstanceNode workflowInstanceNode, String portName, String portValue) {
+ super(workflowInstanceNode, portName, portValue);
+ }
+ public InputData(WorkflowInstanceNode workflowInstanceNode, String data) {
+ super(workflowInstanceNode, data);
+ }
+}