You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by pa...@apache.org on 2011/09/09 22:52:36 UTC
svn commit: r1167358 - in /incubator/airavata/trunk/modules/gfac-core/src:
main/java/org/apache/airavata/core/gfac/context/invocation/impl/
main/java/org/apache/airavata/core/gfac/exception/
main/java/org/apache/airavata/core/gfac/extension/ main/java/...
Author: patanachai
Date: Fri Sep 9 20:52:34 2011
New Revision: 1167358
URL: http://svn.apache.org/viewvc?rev=1167358&view=rev
Log:
JavaDoc comments
Modified:
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/context/invocation/impl/DefaultExecutionContext.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/context/invocation/impl/DefaultInvocationContext.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/ExtensionException.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/GfacException.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/JobSubmissionFault.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/ProviderException.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/SchedulerException.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/SecurityException.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/ServiceException.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/ToolsException.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/Chain.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/DataServiceChain.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/ExitableChain.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/PostExecuteChain.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/PreExecuteChain.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/data/RegistryDataService.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/post/GridFtpOutputStaging.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/pre/GridFtpInputStaging.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/pre/HttpInputStaging.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/external/GridFtp.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/factory/AbstractServiceFactory.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/factory/PropertyServiceFactory.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/Notifiable.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/Notifier.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/Subject.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/impl/DefaultNotifier.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/impl/LoggingNotification.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/impl/StandardOutNotification.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/impl/WorkflowTrackingNotification.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/AbstractProvider.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/GramProvider.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/LocalProvider.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/Provider.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/SSHProvider.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/GramRSLGenerator.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/JobSubmissionListener.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/scheduler/Scheduler.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/scheduler/impl/POJOSchedulerImpl.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/scheduler/impl/SchedulerImpl.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/services/GenericService.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/services/impl/AbstractSimpleService.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/services/impl/POJOServiceImpl.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/services/impl/PropertiesBasedServiceImpl.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/utils/GridFTPContactInfo.java
incubator/airavata/trunk/modules/gfac-core/src/main/resources/service.properties
incubator/airavata/trunk/modules/gfac-core/src/test/resources/service.properties
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/context/invocation/impl/DefaultExecutionContext.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/context/invocation/impl/DefaultExecutionContext.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/context/invocation/impl/DefaultExecutionContext.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/context/invocation/impl/DefaultExecutionContext.java Fri Sep 9 20:52:34 2011
@@ -27,6 +27,11 @@ import org.apache.airavata.core.gfac.not
import org.apache.airavata.core.gfac.notification.Notifier;
import org.apache.airavata.core.gfac.notification.impl.DefaultNotifier;
+/**
+ * DefaultExecutionContext is a simple implementation of ExecutionContext.
+ * It uses DefaultNotifier as its base notifier.
+ *
+ */
public class DefaultExecutionContext implements ExecutionContext {
private Notifier notificationService = new DefaultNotifier();
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/context/invocation/impl/DefaultInvocationContext.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/context/invocation/impl/DefaultInvocationContext.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/context/invocation/impl/DefaultInvocationContext.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/context/invocation/impl/DefaultInvocationContext.java Fri Sep 9 20:52:34 2011
@@ -32,8 +32,6 @@ import org.apache.airavata.core.gfac.con
/**
* Main context that is used throughout the service
- *
- *
*/
public class DefaultInvocationContext implements InvocationContext{
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/ExtensionException.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/ExtensionException.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/ExtensionException.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/ExtensionException.java Fri Sep 9 20:52:34 2011
@@ -21,6 +21,9 @@
package org.apache.airavata.core.gfac.exception;
+/**
+ * ExtensionException is risen from Extension e.g. file transfer, etc.
+ */
public class ExtensionException extends GfacException {
public ExtensionException(String message) {
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/GfacException.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/GfacException.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/GfacException.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/GfacException.java Fri Sep 9 20:52:34 2011
@@ -21,6 +21,10 @@
package org.apache.airavata.core.gfac.exception;
+/**
+ * The main exception for the GFac Service
+ *
+ */
public class GfacException extends Exception {
private static final long serialVersionUID = 1L;
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/JobSubmissionFault.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/JobSubmissionFault.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/JobSubmissionFault.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/JobSubmissionFault.java Fri Sep 9 20:52:34 2011
@@ -23,6 +23,9 @@ package org.apache.airavata.core.gfac.ex
import org.apache.airavata.core.gfac.provider.Provider;
+/**
+ * JobSubmissionFault represents an error from Provider which uses submission.
+ */
public class JobSubmissionFault extends ProviderException {
public static final String JOB_CANCEL = "JOB_CANCEL";
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/ProviderException.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/ProviderException.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/ProviderException.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/ProviderException.java Fri Sep 9 20:52:34 2011
@@ -21,6 +21,12 @@
package org.apache.airavata.core.gfac.exception;
+import org.apache.airavata.core.gfac.provider.Provider;
+
+/**
+ * The exception for {@link Provider}
+ *
+ */
public class ProviderException extends GfacException {
public ProviderException(String message){
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/SchedulerException.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/SchedulerException.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/SchedulerException.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/SchedulerException.java Fri Sep 9 20:52:34 2011
@@ -21,6 +21,12 @@
package org.apache.airavata.core.gfac.exception;
+import org.apache.airavata.core.gfac.scheduler.Scheduler;
+
+/**
+ * The exception for {@link Scheduler}
+ *
+ */
public class SchedulerException extends GfacException {
public SchedulerException(String message){
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/SecurityException.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/SecurityException.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/SecurityException.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/SecurityException.java Fri Sep 9 20:52:34 2011
@@ -21,6 +21,10 @@
package org.apache.airavata.core.gfac.exception;
+/**
+ * Exception for all Security related issue.
+ *
+ */
public class SecurityException extends GfacException {
public SecurityException(String message) {
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/ServiceException.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/ServiceException.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/ServiceException.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/ServiceException.java Fri Sep 9 20:52:34 2011
@@ -21,6 +21,11 @@
package org.apache.airavata.core.gfac.exception;
+
+/**
+ * Exception for Service
+ *
+ */
public class ServiceException extends GfacException {
public ServiceException(String message) {
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/ToolsException.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/ToolsException.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/ToolsException.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/ToolsException.java Fri Sep 9 20:52:34 2011
@@ -21,6 +21,9 @@
package org.apache.airavata.core.gfac.exception;
+/**
+ * Exception for all utilities
+ */
public class ToolsException extends GfacException {
public ToolsException(String message) {
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/Chain.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/Chain.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/Chain.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/Chain.java Fri Sep 9 20:52:34 2011
@@ -24,14 +24,28 @@ package org.apache.airavata.core.gfac.ex
import org.apache.airavata.core.gfac.context.invocation.InvocationContext;
import org.apache.airavata.core.gfac.exception.ExtensionException;
+/**
+ * Class implements the Chain of Responsibility Pattern
+ */
public abstract class Chain<T> {
private T next;
+ /**
+ * Set the next item in the chain
+ *
+ * @param nextChain
+ * @return the next item
+ */
public T setNext(T nextChain) {
this.next = nextChain;
return this.next;
}
+ /**
+ * Get the next item in the Chain
+ *
+ * @return next items
+ */
protected T getNext(){
return next;
}
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/DataServiceChain.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/DataServiceChain.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/DataServiceChain.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/DataServiceChain.java Fri Sep 9 20:52:34 2011
@@ -21,6 +21,11 @@
package org.apache.airavata.core.gfac.extension;
-public abstract class DataServiceChain extends ExitableChain {
+import org.apache.airavata.core.gfac.provider.Provider;
+/**
+ * The data service chain is a plugin which will be executed before
+ * {@link Provider} initialization
+ */
+public abstract class DataServiceChain extends ExitableChain {
}
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/ExitableChain.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/ExitableChain.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/ExitableChain.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/ExitableChain.java Fri Sep 9 20:52:34 2011
@@ -24,6 +24,11 @@ package org.apache.airavata.core.gfac.ex
import org.apache.airavata.core.gfac.context.invocation.InvocationContext;
import org.apache.airavata.core.gfac.exception.ExtensionException;
+/**
+ * The implementation of Chain of Responsibility with twist. The item in the
+ * chain can stop the process by return <code>true</code> from execution method.
+ *
+ */
public abstract class ExitableChain extends Chain<ExitableChain> {
public final void start(InvocationContext context) throws ExtensionException {
boolean breakTheChain = this.execute(context);
@@ -33,10 +38,11 @@ public abstract class ExitableChain exte
}
/**
+ * Execution method to be called for each item
*
* @param context
* @return true if no need for further processing
- * @throws ExtensionException TODO
+ * @throws ExtensionException
*/
protected abstract boolean execute(InvocationContext context) throws ExtensionException;
}
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/PostExecuteChain.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/PostExecuteChain.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/PostExecuteChain.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/PostExecuteChain.java Fri Sep 9 20:52:34 2011
@@ -21,6 +21,12 @@
package org.apache.airavata.core.gfac.extension;
+import org.apache.airavata.core.gfac.provider.Provider;
+
+/**
+ * The data service chain is a plugin which will be executed after
+ * {@link Provider} execution
+ */
public abstract class PostExecuteChain extends ExitableChain {
}
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/PreExecuteChain.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/PreExecuteChain.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/PreExecuteChain.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/PreExecuteChain.java Fri Sep 9 20:52:34 2011
@@ -21,5 +21,11 @@
package org.apache.airavata.core.gfac.extension;
+import org.apache.airavata.core.gfac.provider.Provider;
+
+/**
+ * The data service chain is a plugin which will be executed before
+ * {@link Provider} execution
+ */
public abstract class PreExecuteChain extends ExitableChain {
}
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/data/RegistryDataService.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/data/RegistryDataService.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/data/RegistryDataService.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/data/RegistryDataService.java Fri Sep 9 20:52:34 2011
@@ -33,71 +33,69 @@ import org.apache.airavata.core.gfac.con
import org.apache.airavata.core.gfac.exception.ExtensionException;
import org.apache.airavata.core.gfac.extension.DataServiceChain;
+/**
+ * This plugin fills out all information that is missing in
+ * {@link ApplicationDeploymentDescription} based on Unix system. For instance,
+ * it will use "/tmp" as default temporary directory.
+ *
+ */
public class RegistryDataService extends DataServiceChain {
- public boolean execute(InvocationContext context) throws ExtensionException {
+ public boolean execute(InvocationContext context) throws ExtensionException {
- ServiceDescription serviceDesc = context.getExecutionDescription().getService();
- HostDescription hostDesc = context.getExecutionDescription().getHost();
- ApplicationDeploymentDescription appDesc = context.getExecutionDescription()
- .getApp();
- if (serviceDesc != null && hostDesc != null && appDesc != null) {
- /*
- * if there is no setting in deployment description, use from host
- */
- if (appDesc.getTmpDir() == null) {
- appDesc.setTmpDir("/tmp");
- }
-
- /*
- * Working dir
- */
- if (appDesc.getWorkingDir() == null) {
- String date = new Date().toString();
- date = date.replaceAll(" ", "_");
- date = date.replaceAll(":", "_");
-
- String tmpDir = appDesc.getTmpDir() + File.separator
- + appDesc.getName() + "_" + date + "_"
- + UUID.randomUUID();
-
- appDesc.setWorkingDir(tmpDir);
- }
-
- /*
- * Input and Output Directory
- */
- if (appDesc.getInputDir() == null) {
- appDesc.setInputDir(appDesc.getWorkingDir() + File.separator
- + "inputData");
- }
- if (appDesc.getOutputDir() == null) {
- appDesc.setInputDir(appDesc.getWorkingDir() + File.separator
- + "outputData");
- }
-
- /*
- * Stdout and Stderr for Shell
- */
- if(appDesc.getClass().isAssignableFrom(ShellApplicationDeployment.class)){
- ShellApplicationDeployment shell = (ShellApplicationDeployment)appDesc;
- if(shell.getStdOut() == null){
- shell.setStdOut(appDesc.getWorkingDir() + File.separator
- + appDesc.getName() + ".stdout");
- }
- if(shell.getStdErr() == null){
- shell.setStdOut(appDesc.getWorkingDir() + File.separator
- + appDesc.getName() + ".stderr");
- }
- }
-
- } else {
- throw new ExtensionException("Service Map for "
- + context.getServiceName()
- + " does not found on resource Catalog "
- + context.getExecutionContext().getRegistryService());
- }
+ ServiceDescription serviceDesc = context.getExecutionDescription().getService();
+ HostDescription hostDesc = context.getExecutionDescription().getHost();
+ ApplicationDeploymentDescription appDesc = context.getExecutionDescription().getApp();
+ if (serviceDesc != null && hostDesc != null && appDesc != null) {
+ /*
+ * if there is no setting in deployment description, use from host
+ */
+ if (appDesc.getTmpDir() == null) {
+ appDesc.setTmpDir("/tmp");
+ }
+
+ /*
+ * Working dir
+ */
+ if (appDesc.getWorkingDir() == null) {
+ String date = new Date().toString();
+ date = date.replaceAll(" ", "_");
+ date = date.replaceAll(":", "_");
+
+ String tmpDir = appDesc.getTmpDir() + File.separator + appDesc.getName() + "_" + date + "_"
+ + UUID.randomUUID();
+
+ appDesc.setWorkingDir(tmpDir);
+ }
+
+ /*
+ * Input and Output Directory
+ */
+ if (appDesc.getInputDir() == null) {
+ appDesc.setInputDir(appDesc.getWorkingDir() + File.separator + "inputData");
+ }
+ if (appDesc.getOutputDir() == null) {
+ appDesc.setInputDir(appDesc.getWorkingDir() + File.separator + "outputData");
+ }
+
+ /*
+ * Stdout and Stderr for Shell
+ */
+ if (appDesc.getClass().isAssignableFrom(ShellApplicationDeployment.class)) {
+ ShellApplicationDeployment shell = (ShellApplicationDeployment) appDesc;
+ if (shell.getStdOut() == null) {
+ shell.setStdOut(appDesc.getWorkingDir() + File.separator + appDesc.getName() + ".stdout");
+ }
+ if (shell.getStdErr() == null) {
+ shell.setStdOut(appDesc.getWorkingDir() + File.separator + appDesc.getName() + ".stderr");
+ }
+ }
+
+ } else {
+ throw new ExtensionException("Service Map for " + context.getServiceName()
+ + " does not found on resource Catalog " + context.getExecutionContext().getRegistryService());
+ }
- return false;
- }
+ return false;
+ }
}
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/post/GridFtpOutputStaging.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/post/GridFtpOutputStaging.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/post/GridFtpOutputStaging.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/post/GridFtpOutputStaging.java Fri Sep 9 20:52:34 2011
@@ -47,6 +47,9 @@ import org.ietf.jgss.GSSCredential;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+/**
+ * Output plugin to transfer file from GridFTP host to location given in output parameter
+ */
public class GridFtpOutputStaging extends PostExecuteChain {
public static final Logger log = LoggerFactory.getLogger(GridFtpOutputStaging.class);
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/pre/GridFtpInputStaging.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/pre/GridFtpInputStaging.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/pre/GridFtpInputStaging.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/pre/GridFtpInputStaging.java Fri Sep 9 20:52:34 2011
@@ -47,6 +47,9 @@ import org.ietf.jgss.GSSCredential;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+/**
+ * Input plugin to transfer file from GridFTP host to target GridFTP host
+ */
public class GridFtpInputStaging extends PreExecuteChain {
public static final Logger log = LoggerFactory.getLogger(GridFtpInputStaging.class);
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/pre/HttpInputStaging.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/pre/HttpInputStaging.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/pre/HttpInputStaging.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/extension/pre/HttpInputStaging.java Fri Sep 9 20:52:34 2011
@@ -51,6 +51,9 @@ import org.ietf.jgss.GSSCredential;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+/**
+ * Input plugin to transfer file from Http location to target GridFTP host
+ */
public class HttpInputStaging extends PreExecuteChain {
public static final Logger log = LoggerFactory.getLogger(HttpInputStaging.class);
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/external/GridFtp.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/external/GridFtp.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/external/GridFtp.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/external/GridFtp.java Fri Sep 9 20:52:34 2011
@@ -47,6 +47,9 @@ import org.ietf.jgss.GSSCredential;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+/**
+ * GridFTP tools
+ */
public class GridFtp {
public static final Logger log = LoggerFactory.getLogger(GridFtp.class);
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/factory/AbstractServiceFactory.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/factory/AbstractServiceFactory.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/factory/AbstractServiceFactory.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/factory/AbstractServiceFactory.java Fri Sep 9 20:52:34 2011
@@ -26,6 +26,10 @@ import org.apache.airavata.core.gfac.ser
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+/**
+ * Abstract Factory to create a generic service
+ *
+ */
public abstract class AbstractServiceFactory {
protected final Logger log = LoggerFactory.getLogger(AbstractServiceFactory.class);
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/factory/PropertyServiceFactory.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/factory/PropertyServiceFactory.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/factory/PropertyServiceFactory.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/factory/PropertyServiceFactory.java Fri Sep 9 20:52:34 2011
@@ -24,14 +24,24 @@ package org.apache.airavata.core.gfac.fa
import org.apache.airavata.core.gfac.services.GenericService;
import org.apache.airavata.core.gfac.services.impl.PropertiesBasedServiceImpl;
+/**
+ * Factory for {@link PropertiesBasedServiceImpl}
+ *
+ */
public class PropertyServiceFactory extends AbstractServiceFactory {
private GenericService service;
private String fileName;
+ /**
+ * Default constructor with used file "service.properties"
+ */
public PropertyServiceFactory(){
}
+ /**
+ * Construct the {@link PropertiesBasedServiceImpl} with a given property file
+ */
public PropertyServiceFactory(String fileName){
this.fileName = fileName;
}
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/Notifiable.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/Notifiable.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/Notifiable.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/Notifiable.java Fri Sep 9 20:52:34 2011
@@ -21,5 +21,8 @@
package org.apache.airavata.core.gfac.notification;
+/**
+ * Object that will be notified
+ */
public interface Notifiable extends Subject {
}
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/Notifier.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/Notifier.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/Notifier.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/Notifier.java Fri Sep 9 20:52:34 2011
@@ -21,7 +21,19 @@
package org.apache.airavata.core.gfac.notification;
+/**
+ * Object which sends out notification
+ */
public interface Notifier extends Subject {
+ /**
+ * Add {@link Notifiable} object to be notified
+ * @param notif
+ */
void addNotifiable(Notifiable notif);
+
+ /**
+ * Get the current {@link Notifiable} objects
+ * @return array of objects
+ */
Notifiable[] getNotifiable();
}
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/Subject.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/Subject.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/Subject.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/Subject.java Fri Sep 9 20:52:34 2011
@@ -23,33 +23,48 @@ package org.apache.airavata.core.gfac.no
import org.apache.airavata.core.gfac.context.invocation.InvocationContext;
+/**
+ * This class represents a topic or subject that can be notified from
+ * {@link Notifier} to {@link Notifiable}.
+ *
+ * TODO: Think about a better way
+ */
public interface Subject {
/*
*
*/
void startSchedule(Object notifier, InvocationContext context);
+
void finishSchedule(Object notifier, InvocationContext context);
-
+
/*
*
*/
void input(Object notifier, InvocationContext context, String... data);
+
void output(Object notifier, InvocationContext context, String... data);
-
+
/*
*
*/
void startExecution(Object notifier, InvocationContext context);
+
void applicationInfo(Object notifier, InvocationContext context, String... data);
+
void finishExecution(Object notifier, InvocationContext context);
+
void statusChanged(Object notifier, InvocationContext context, String... data);
- void executionFail(Object notifier, InvocationContext context, Exception e, String... data);
+
+ void executionFail(Object notifier, InvocationContext context, Exception e, String... data);
/*
* Interface for developer to use
*/
void debug(Object notifier, InvocationContext context, String... data);
+
void info(Object notifier, InvocationContext context, String... data);
+
void warning(Object notifier, InvocationContext context, String... data);
- void exception(Object notifier, InvocationContext context, String... data);
+
+ void exception(Object notifier, InvocationContext context, String... data);
}
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/impl/DefaultNotifier.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/impl/DefaultNotifier.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/impl/DefaultNotifier.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/impl/DefaultNotifier.java Fri Sep 9 20:52:34 2011
@@ -27,97 +27,157 @@ import java.util.List;
import org.apache.airavata.core.gfac.context.invocation.InvocationContext;
import org.apache.airavata.core.gfac.notification.Notifiable;
import org.apache.airavata.core.gfac.notification.Notifier;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
-
+/**
+ * The default notifier which uses {@link ArrayList} to store {@link Notifiable}
+ * objects. Notification method is done by a single thread. It ignore all errors
+ * from {@link Notifiable} object.
+ */
public class DefaultNotifier implements Notifier {
-
+
+ private static final Logger logger = LoggerFactory.getLogger(DefaultNotifier.class);
+
private List<Notifiable> notifiableObjects = new ArrayList<Notifiable>();
-
- public void addNotifiable(Notifiable notif){
+
+ public void addNotifiable(Notifiable notif) {
notifiableObjects.add(notif);
}
-
- public Notifiable[] getNotifiable(){
+
+ public Notifiable[] getNotifiable() {
return (Notifiable[]) notifiableObjects.toArray();
}
public void startSchedule(Object notifier, InvocationContext context) {
for (Notifiable notif : notifiableObjects) {
- notif.startSchedule(notifier, context);
- }
+ try {
+ notif.startSchedule(notifier, context);
+ } catch (Exception e) {
+ logger.error(e.getMessage(), e);
+ }
+ }
}
public void finishSchedule(Object notifier, InvocationContext context) {
for (Notifiable notif : notifiableObjects) {
- notif.finishSchedule(notifier, context);
- }
+ try {
+ notif.finishSchedule(notifier, context);
+ } catch (Exception e) {
+ logger.error(e.getMessage(), e);
+ }
+ }
}
public void input(Object notifier, InvocationContext context, String... data) {
for (Notifiable notif : notifiableObjects) {
- notif.info(notifier, context, data);
- }
+ try {
+ notif.info(notifier, context, data);
+ } catch (Exception e) {
+ logger.error(e.getMessage(), e);
+ }
+ }
}
public void output(Object notifier, InvocationContext context, String... data) {
for (Notifiable notif : notifiableObjects) {
- notif.output(notifier, context, data);
+ try {
+ notif.output(notifier, context, data);
+ } catch (Exception e) {
+ logger.error(e.getMessage(), e);
+ }
}
}
public void startExecution(Object notifier, InvocationContext context) {
for (Notifiable notif : notifiableObjects) {
- notif.startExecution(notifier, context);
+ try {
+ notif.startExecution(notifier, context);
+ } catch (Exception e) {
+ logger.error(e.getMessage(), e);
+ }
}
}
public void applicationInfo(Object notifier, InvocationContext context, String... data) {
for (Notifiable notif : notifiableObjects) {
- notif.applicationInfo(notifier, context, data);
+ try {
+ notif.applicationInfo(notifier, context, data);
+ } catch (Exception e) {
+ logger.error(e.getMessage(), e);
+ }
}
}
public void finishExecution(Object notifier, InvocationContext context) {
for (Notifiable notif : notifiableObjects) {
- notif.finishExecution(notifier, context);
- }
+ try {
+ notif.finishExecution(notifier, context);
+ } catch (Exception e) {
+ logger.error(e.getMessage(), e);
+ }
+ }
}
public void statusChanged(Object notifier, InvocationContext context, String... data) {
for (Notifiable notif : notifiableObjects) {
- notif.statusChanged(notifier, context, data);
- }
+ try {
+ notif.statusChanged(notifier, context, data);
+ } catch (Exception e) {
+ logger.error(e.getMessage(), e);
+ }
+ }
}
public void executionFail(Object notifier, InvocationContext context, Exception e, String... data) {
for (Notifiable notif : notifiableObjects) {
- notif.executionFail(notifier, context, e, data);
+ try {
+ notif.executionFail(notifier, context, e, data);
+ } catch (Exception ex) {
+ logger.error(ex.getMessage(), ex);
+ }
}
}
public void debug(Object notifier, InvocationContext context, String... data) {
for (Notifiable notif : notifiableObjects) {
- notif.debug(notifier, context, data);
+ try {
+ notif.debug(notifier, context, data);
+ } catch (Exception e) {
+ logger.error(e.getMessage(), e);
+ }
}
}
public void info(Object notifier, InvocationContext context, String... data) {
for (Notifiable notif : notifiableObjects) {
- notif.info(notifier, context, data);
+ try {
+ notif.info(notifier, context, data);
+ } catch (Exception e) {
+ logger.error(e.getMessage(), e);
+ }
}
-
+
}
public void warning(Object notifier, InvocationContext context, String... data) {
for (Notifiable notif : notifiableObjects) {
- notif.warning(notifier, context, data);
+ try {
+ notif.warning(notifier, context, data);
+ } catch (Exception e) {
+ logger.error(e.getMessage(), e);
+ }
}
-
+
}
public void exception(Object notifier, InvocationContext context, String... data) {
for (Notifiable notif : notifiableObjects) {
- notif.exception(notifier, context, data);
- }
- }
+ try {
+ notif.exception(notifier, context, data);
+ } catch (Exception e) {
+ logger.error(e.getMessage(), e);
+ }
+ }
+ }
}
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/impl/LoggingNotification.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/impl/LoggingNotification.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/impl/LoggingNotification.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/impl/LoggingNotification.java Fri Sep 9 20:52:34 2011
@@ -25,8 +25,12 @@ import org.apache.airavata.core.gfac.not
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+/**
+ * {@link Notifiable} object as a SLF4J logger. Log out all the message as
+ * configured in SLF4J
+ */
public class LoggingNotification implements Notifiable {
-
+
protected final Logger log = LoggerFactory.getLogger(LoggingNotification.class);
public void startSchedule(Object notifier, InvocationContext context) {
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/impl/StandardOutNotification.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/impl/StandardOutNotification.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/impl/StandardOutNotification.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/impl/StandardOutNotification.java Fri Sep 9 20:52:34 2011
@@ -23,6 +23,9 @@ package org.apache.airavata.core.gfac.no
import org.apache.airavata.core.gfac.context.invocation.InvocationContext;
import org.apache.airavata.core.gfac.notification.Notifiable;
+/**
+ * Print out all notification to System.out
+ */
public class StandardOutNotification implements Notifiable {
public void startSchedule(Object notifier, InvocationContext context) {
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/impl/WorkflowTrackingNotification.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/impl/WorkflowTrackingNotification.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/impl/WorkflowTrackingNotification.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/impl/WorkflowTrackingNotification.java Fri Sep 9 20:52:34 2011
@@ -32,8 +32,12 @@ import org.apache.airavata.workflow.trac
import org.apache.airavata.workflow.tracking.common.InvocationEntity;
import org.apache.airavata.workflow.tracking.common.WorkflowTrackingContext;
+/**
+ * Workflow Tracking notification
+ * TODO:: implement properly
+ */
public class WorkflowTrackingNotification implements Notifiable {
-
+
private Notifier notifier;
private String topic;
@@ -41,15 +45,15 @@ public class WorkflowTrackingNotificatio
private URI workflowID;
private WorkflowTrackingContext context;
-
+
private InvocationEntity initiator;
private InvocationEntity receiver;
-
+
private DurationObj duration;
private org.apache.airavata.workflow.tracking.common.InvocationContext invocationContext;
-
+
public WorkflowTrackingNotification(String brokerURL, String topic) {
this.topic = topic;
this.workflowID = URI.create(this.topic);
@@ -60,8 +64,8 @@ public class WorkflowTrackingNotificatio
URI initiatorServiceID = URI.create(topic);
String initiatorWorkflowNodeID = null;
Integer initiatorWorkflowTimeStep = null;
- this.context = this.notifier.createTrackingContext(props, brokerURL, initiatorWorkflowID,
- initiatorServiceID, initiatorWorkflowNodeID, initiatorWorkflowTimeStep);
+ this.context = this.notifier.createTrackingContext(props, brokerURL, initiatorWorkflowID, initiatorServiceID,
+ initiatorWorkflowNodeID, initiatorWorkflowTimeStep);
this.context.setTopic(topic);
this.initiator = this.notifier.createEntity(initiatorWorkflowID, initiatorServiceID, initiatorWorkflowNodeID,
initiatorWorkflowTimeStep);
@@ -72,8 +76,8 @@ public class WorkflowTrackingNotificatio
Integer receiverWorkflowTimeStep = null;
this.receiver = this.notifier.createEntity(receiverWorkflowID, receiverServiceID, receiverWorkflowNodeID,
receiverWorkflowTimeStep);
-
- //send start workflow
+
+ // send start workflow
this.invocationContext = this.notifier.workflowInvoked(this.context, this.initiator);
}
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/AbstractProvider.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/AbstractProvider.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/AbstractProvider.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/AbstractProvider.java Fri Sep 9 20:52:34 2011
@@ -29,7 +29,11 @@ import org.slf4j.LoggerFactory;
/**
* AbstractProvider wraps up steps of execution for Provider.
- *
+ * The steps in execution are
+ * - makeDirectory
+ * - setupEnvironment
+ * - executeApplication
+ * - retrieveOutput
*/
public abstract class AbstractProvider implements Provider {
protected final Logger log = LoggerFactory.getLogger(this.getClass());
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/GramProvider.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/GramProvider.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/GramProvider.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/GramProvider.java Fri Sep 9 20:52:34 2011
@@ -48,6 +48,9 @@ import org.globus.gram.GramJob;
import org.ietf.jgss.GSSCredential;
import org.ietf.jgss.GSSException;
+/**
+ * Provider uses Gram for job submission
+ */
public class GramProvider extends AbstractProvider {
public static final String MYPROXY_SECURITY_CONTEXT = "myproxy";
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/LocalProvider.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/LocalProvider.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/LocalProvider.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/LocalProvider.java Fri Sep 9 20:52:34 2011
@@ -42,6 +42,10 @@ import org.apache.airavata.core.gfac.uti
import org.apache.airavata.core.gfac.utils.GfacUtils;
import org.apache.airavata.core.gfac.utils.OutputUtils;
+/**
+ * {@link LocalProvider} will execute jobs (application) on local machine.
+ *
+ */
public class LocalProvider extends AbstractProvider {
private static final String SPACE = " ";
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/Provider.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/Provider.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/Provider.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/Provider.java Fri Sep 9 20:52:34 2011
@@ -21,10 +21,15 @@
package org.apache.airavata.core.gfac.provider;
+import org.apache.airavata.commons.gfac.type.ApplicationDeploymentDescription;
import org.apache.airavata.core.gfac.context.invocation.InvocationContext;
import org.apache.airavata.core.gfac.exception.GfacException;
import org.apache.airavata.core.gfac.exception.ProviderException;
+/**
+ * Main component in GFAC. It executes an application according to
+ * {@link ApplicationDeploymentDescription}.
+ */
public interface Provider {
void initialize(InvocationContext invocationContext) throws ProviderException;
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/SSHProvider.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/SSHProvider.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/SSHProvider.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/SSHProvider.java Fri Sep 9 20:52:34 2011
@@ -50,6 +50,9 @@ import org.apache.airavata.core.gfac.uti
import org.apache.airavata.core.gfac.utils.GfacUtils;
import org.apache.airavata.core.gfac.utils.OutputUtils;
+/**
+ * Execute application using remote SSH
+ */
public class SSHProvider extends AbstractProvider {
private static final String SPACE = " ";
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/GramRSLGenerator.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/GramRSLGenerator.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/GramRSLGenerator.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/GramRSLGenerator.java Fri Sep 9 20:52:34 2011
@@ -33,6 +33,9 @@ import org.globus.gram.GramAttributes;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+/**
+ * Utilities for generating GRAM RSL
+ */
public class GramRSLGenerator {
protected static final Logger log = LoggerFactory.getLogger(GramRSLGenerator.class);
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/JobSubmissionListener.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/JobSubmissionListener.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/JobSubmissionListener.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/JobSubmissionListener.java Fri Sep 9 20:52:34 2011
@@ -32,6 +32,10 @@ import org.ietf.jgss.GSSException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+/**
+ * Gram job listener to check for status changed in job submission
+ *
+ */
public class JobSubmissionListener implements GramJobListener {
public static final String MYPROXY_SECURITY_CONTEXT = "myproxy";
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/scheduler/Scheduler.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/scheduler/Scheduler.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/scheduler/Scheduler.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/scheduler/Scheduler.java Fri Sep 9 20:52:34 2011
@@ -25,6 +25,10 @@ import org.apache.airavata.core.gfac.con
import org.apache.airavata.core.gfac.exception.SchedulerException;
import org.apache.airavata.core.gfac.provider.Provider;
+/**
+ * Scheduler selects a {@link Provider} according to the information.
+ *
+ */
public interface Scheduler {
Provider schedule(InvocationContext context) throws SchedulerException;
}
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/scheduler/impl/SchedulerImpl.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/scheduler/impl/SchedulerImpl.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/scheduler/impl/SchedulerImpl.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/scheduler/impl/SchedulerImpl.java Fri Sep 9 20:52:34 2011
@@ -40,6 +40,9 @@ import org.apache.airavata.core.gfac.uti
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+/**
+ * This class selects {@link Provider} based on information in {@link Registry}
+ */
public class SchedulerImpl implements Scheduler {
private static Logger log = LoggerFactory.getLogger(SchedulerImpl.class);
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/services/GenericService.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/services/GenericService.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/services/GenericService.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/services/GenericService.java Fri Sep 9 20:52:34 2011
@@ -24,6 +24,9 @@ package org.apache.airavata.core.gfac.se
import org.apache.airavata.core.gfac.context.invocation.InvocationContext;
import org.apache.airavata.core.gfac.exception.GfacException;
+/**
+ * The description for generic service in GFAC.
+ */
public interface GenericService {
void init() throws GfacException;
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/services/impl/AbstractSimpleService.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/services/impl/AbstractSimpleService.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/services/impl/AbstractSimpleService.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/services/impl/AbstractSimpleService.java Fri Sep 9 20:52:34 2011
@@ -35,6 +35,20 @@ import org.apache.airavata.core.gfac.ser
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+/**
+ * The abstract service wraps up steps of execution for {@link GenericService}.
+ * Also, it adds input/output plug-ins before/after {@link Provider} execution.
+ * The steps in execution are
+ * - preProcess
+ * - Determine Provider (Scheduling)
+ * - {@link DataServiceChain} Plugins
+ * - {@link Provider} initialization
+ * - {@link PreExecuteChain} Plugins
+ * - {@link Provider} execution
+ * - {@link PostExecuteChain} Plugins
+ * - {@link Provider} disposal
+ * - postProcess
+ */
public abstract class AbstractSimpleService implements GenericService {
private static Logger log = LoggerFactory.getLogger(AbstractSimpleService.class);
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/services/impl/PropertiesBasedServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/services/impl/PropertiesBasedServiceImpl.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/services/impl/PropertiesBasedServiceImpl.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/services/impl/PropertiesBasedServiceImpl.java Fri Sep 9 20:52:34 2011
@@ -49,8 +49,8 @@ import org.slf4j.LoggerFactory;
/**
* This generic service implementation will load Registry service and Data
- * Catalog from property file. It selects provider and execute it base on
- * execution context.
+ * Catalog from property file using (Apache Commons-Configuration). It selects
+ * provider and execute it base on execution context.
*
*/
public class PropertiesBasedServiceImpl extends AbstractSimpleService {
@@ -98,13 +98,12 @@ public class PropertiesBasedServiceImpl
public static final String MYPROXY_PASS = "myproxy.pass";
public static final String MYPROXY_LIFE = "myproxy.life";
-
private Scheduler scheduler;
private PreExecuteChain[] preChain;
private PostExecuteChain[] postChain;
private DataServiceChain[] dataChain;
private Registry registryService;
-
+
private String fileName = DEFAULT_FILENAME;
private Configuration config;
@@ -213,7 +212,7 @@ public class PropertiesBasedServiceImpl
/*
* Remove unnecessary key
*/
- Map<String, String> map = new HashMap<String, String>((Map)getProperties());
+ Map<String, String> map = new HashMap<String, String>((Map) getProperties());
map.remove(JCR_CLASS);
map.remove(JCR_USER);
map.remove(JCR_PASS);
@@ -243,7 +242,7 @@ public class PropertiesBasedServiceImpl
/*
* If there is no specific registry service, use the default one.
*/
- ((DefaultExecutionContext)context.getExecutionContext()).setRegistryService(this.registryService);
+ ((DefaultExecutionContext) context.getExecutionContext()).setRegistryService(this.registryService);
}
}
@@ -333,16 +332,15 @@ public class PropertiesBasedServiceImpl
return dataChain;
}
- private Properties getProperties(){
+ private Properties getProperties() {
Properties prop = new Properties();
for (Iterator iterator = this.config.getKeys(); iterator.hasNext();) {
String key = (String) iterator.next();
- prop.put(key, this.config.getString(key));
+ prop.put(key, this.config.getString(key));
}
return prop;
}
-
-
+
/**
*
* @param propertyName
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/utils/GridFTPContactInfo.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/utils/GridFTPContactInfo.java?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/utils/GridFTPContactInfo.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/utils/GridFTPContactInfo.java Fri Sep 9 20:52:34 2011
@@ -24,6 +24,10 @@ package org.apache.airavata.core.gfac.ut
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+/**
+ * Class represents GridFTP Endpoint
+ *
+ */
public class GridFTPContactInfo {
protected final static Logger log = LoggerFactory.getLogger(GridFTPContactInfo.class);
public String hostName;
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/resources/service.properties
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/resources/service.properties?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/resources/service.properties (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/resources/service.properties Fri Sep 9 20:52:34 2011
@@ -19,28 +19,48 @@
#
#
+#
+# Properties for JCR Registry interface. By default, Apache Jackrabbit is used.
+#
+# org.apache.jackrabbit.repository.uri=http://localhost:8080/rmi
+# jcr.class=org.apache.jackrabbit.rmi.repository.RmiRepositoryFactory
jcr.class=org.apache.jackrabbit.core.RepositoryFactoryImpl
-#jcr.class=org.apache.jackrabbit.rmi.repository.RmiRepositoryFactory
-#org.apache.jackrabbit.repository.uri=http://localhost:8080/rmi
jcr.user=admin
jcr.pass=admin
+
+#
+# Class which implemented Scheduler interface. It will be used to determine a Provider
+#
scheduler.class= org.apache.airavata.core.gfac.scheduler.impl.SchedulerImpl
+#
+# Data Service Plugins classes
+#
datachain.classes= org.apache.airavata.core.gfac.extension.data.RegistryDataService
+#
+# Pre execution Plugins classes. For example, GridFTP Input Staging
+#
prechain.classes= org.apache.airavata.core.gfac.extension.pre.GridFtpInputStaging
prechain.classes= org.apache.airavata.core.gfac.extension.pre.HttpInputStaging
+#
+# Post execution Plugins classes. For example, GridFTP Output Staging
+#
postchain.classes= org.apache.airavata.core.gfac.extension.post.GridFtpOutputStaging
-#SSH key
-#ssh.key=/home/user/.ssh/id_rsa
-#ssh.keypass=
-#ssh.username=usernameAtHost
-
-#My proxy
-#myproxy.server=myproxy.teragrid.org
-#myproxy.user=username
-#myproxy.pass=password
-#myproxy.life=3600
\ No newline at end of file
+#
+# SSH private key location. It will be used by SSHProvider
+#
+# ssh.key=/home/user/.ssh/id_rsa
+# ssh.keypass=
+# ssh.username=usernameAtHost
+
+#
+# MyProxy credential. It will be used by GridFTP Plugins and GramProvider.
+#
+# myproxy.server=myproxy.teragrid.org
+# myproxy.user=username
+# myproxy.pass=password
+# myproxy.life=3600
\ No newline at end of file
Modified: incubator/airavata/trunk/modules/gfac-core/src/test/resources/service.properties
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/test/resources/service.properties?rev=1167358&r1=1167357&r2=1167358&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/test/resources/service.properties (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/test/resources/service.properties Fri Sep 9 20:52:34 2011
@@ -19,28 +19,48 @@
#
#
+#
+# Properties for JCR Registry interface. By default, Apache Jackrabbit is used.
+#
+# org.apache.jackrabbit.repository.uri=http://localhost:8080/rmi
+# jcr.class=org.apache.jackrabbit.rmi.repository.RmiRepositoryFactory
jcr.class=org.apache.jackrabbit.core.RepositoryFactoryImpl
-#jcr.class=org.apache.jackrabbit.rmi.repository.RmiRepositoryFactory
-#org.apache.jackrabbit.repository.uri=http://localhost:8080/rmi
jcr.user=admin
jcr.pass=admin
+
+#
+# Class which implemented Scheduler interface. It will be used to determine a Provider
+#
scheduler.class= org.apache.airavata.core.gfac.scheduler.impl.SchedulerImpl
+#
+# Data Service Plugins classes
+#
datachain.classes= org.apache.airavata.core.gfac.extension.data.RegistryDataService
+#
+# Pre execution Plugins classes. For example, GridFTP Input Staging
+#
prechain.classes= org.apache.airavata.core.gfac.extension.pre.GridFtpInputStaging
prechain.classes= org.apache.airavata.core.gfac.extension.pre.HttpInputStaging
+#
+# Post execution Plugins classes. For example, GridFTP Output Staging
+#
postchain.classes= org.apache.airavata.core.gfac.extension.post.GridFtpOutputStaging
-#SSH key
-#ssh.key=/home/user/.ssh/id_rsa
-#ssh.keypass=
-#ssh.username=usernameAtHost
-
-#My proxy
-#myproxy.server=myproxy.teragrid.org
-#myproxy.user=username
-#myproxy.pass=password
-#myproxy.life=3600
\ No newline at end of file
+#
+# SSH private key location. It will be used by SSHProvider
+#
+# ssh.key=/home/user/.ssh/id_rsa
+# ssh.keypass=
+# ssh.username=usernameAtHost
+
+#
+# MyProxy credential. It will be used by GridFTP Plugins and GramProvider.
+#
+# myproxy.server=myproxy.teragrid.org
+# myproxy.user=username
+# myproxy.pass=password
+# myproxy.life=3600
\ No newline at end of file