Author: lahiru
Date: Mon Nov 26 16:21:55 2012
New Revision: 1413707
URL: http://svn.apache.org/viewvc?rev=1413707&view=rev
Log:
committing amilas patch for https://issues.apache.org/jira/browse/AIRAVATA-658.
Added:
airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/context/
airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/context/RequestContext.java
airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/context/WorkflowContext.java
Added:
airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/context/RequestContext.java
URL:
http://svn.apache.org/viewvc/airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/context/RequestContext.java?rev=1413707&view=auto
==============================================================================
---
airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/context/RequestContext.java
(added)
+++
airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/context/RequestContext.java
Mon Nov 26 16:21:55 2012
@@ -0,0 +1,26 @@
+package org.apache.airavata.common.context;
+
+/**
+ * The request context class. This will be local to a thread.
+ * User data that needs to propagate relevant to a request will be stored here.
+ * We use thread local globals to store request data.
+ * Currently we only store user identity.
+ */
+public class RequestContext {
+
+ public String getUserIdentity() {
+ return userIdentity;
+ }
+
+ public void setUserIdentity(String userIdentity) {
+ this.userIdentity = userIdentity;
+ }
+
+ /**
+ * User associated with current request.
+ */
+ private String userIdentity;
+
+
+
+}
Added:
airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/context/WorkflowContext.java
URL:
http://svn.apache.org/viewvc/airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/context/WorkflowContext.java?rev=1413707&view=auto
==============================================================================
---
airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/context/WorkflowContext.java
(added)
+++
airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/context/WorkflowContext.java
Mon Nov 26 16:21:55 2012
@@ -0,0 +1,51 @@
+package org.apache.airavata.common.context;
+
+/**
+ * The workflow context class. This will be local to a thread.
+ * Workflow data that needs to propagate relevant to a request will be stored
here.
+ * We use thread local globals to store request data.
+ * Currently we only store user identity.
+ */
+public class WorkflowContext {
+
+ private static final ThreadLocal userThreadLocal = new ThreadLocal();
+
+ /**
+ * Sets the context.
+ * @param context The context to be set. - Careful when calling this.
+ * Make sure other data relevant to context is preserved.
+ */
+ public static void set(RequestContext context) {
+ userThreadLocal.set(context);
+ }
+
+ /**
+ * Clears the context
+ */
+ public static void unset() {
+ userThreadLocal.remove();
+ }
+
+ /**
+ * Gets the context associated with current context.
+ * @return The context associated with current thread.
+ */
+ public static RequestContext get() {
+ return (RequestContext) userThreadLocal.get();
+ }
+
+ /**
+ * Gets the user associated with current user.
+ * @return User id associated with current request.
+ */
+ public static synchronized String getRequestUser() {
+
+ RequestContext requestContext = (RequestContext) userThreadLocal.get();
+
+ if (requestContext != null) {
+ return requestContext.getUserIdentity();
+ }
+
+ return null;
+ }
+}