|
From: <ha...@us...> - 2006-12-30 17:34:25
|
Revision: 1501
http://svn.sourceforge.net/cogkit/?rev=1501&view=rev
Author: hategan
Date: 2006-12-30 09:34:24 -0800 (Sat, 30 Dec 2006)
Log Message:
-----------
added FILEINFO and cleaned up a bit
Modified Paths:
--------------
trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/TaskHandlerImpl.java
Modified: trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/TaskHandlerImpl.java
===================================================================
--- trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/TaskHandlerImpl.java 2006-12-30 17:33:34 UTC (rev 1500)
+++ trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/TaskHandlerImpl.java 2006-12-30 17:34:24 UTC (rev 1501)
@@ -9,10 +9,11 @@
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.HashMap;
import java.util.HashSet;
-import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.Map;
import java.util.Set;
-import java.util.Vector;
import org.apache.log4j.Logger;
import org.globus.cog.abstraction.impl.common.AbstractionFactory;
@@ -40,15 +41,9 @@
* The base class for task handlers in all file providers
*/
public class TaskHandlerImpl implements TaskHandler, StatusListener {
- private Vector submittedList = null;
- private Vector activeList = null;
- private Vector suspendedList = null;
- private Vector resumedList = null;
- private Vector failedList = null;
- private Vector canceledList = null;
- private Vector completedList = null;
- private Hashtable handleMap = null;
- private Hashtable activeFileResources;
+ private Set tasks;
+ private Map handleMap = null;
+ private Map activeFileResources;
private Identity defaultSessionId = null;
private static final Set oneWordCommands, twoWordCommands,
@@ -74,6 +69,7 @@
twoWordCommands.add(FileOperationSpecification.EXISTS);
twoWordCommands.add(FileOperationSpecification.CD);
twoWordCommands.add(FileOperationSpecification.ISDIRECTORY);
+ twoWordCommands.add(FileOperationSpecification.FILEINFO);
// Add all three word commands
threeWordCommands.add(FileOperationSpecification.RMDIR);
@@ -93,16 +89,10 @@
static Logger logger = Logger.getLogger(TaskHandlerImpl.class.getName());
public TaskHandlerImpl() {
- this.submittedList = new Vector();
- this.activeList = new Vector();
- this.suspendedList = new Vector();
- this.resumedList = new Vector();
- this.failedList = new Vector();
- this.canceledList = new Vector();
- this.completedList = new Vector();
- this.handleMap = new Hashtable();
+ this.handleMap = new HashMap();
this.type = TaskHandler.FILE_OPERATION;
- this.activeFileResources = new Hashtable();
+ this.activeFileResources = new HashMap();
+ this.tasks = new HashSet();
}
/** set type of task handler */
@@ -129,6 +119,9 @@
}
try {
+ synchronized (tasks){
+ tasks.add(task);
+ }
this.task = task;
task.setStatus(Status.SUBMITTED);
FileOperationSpecification spec = (FileOperationSpecification) task
@@ -332,6 +325,11 @@
.getArgument(0)));
}
else if (operation
+ .equalsIgnoreCase(FileOperationSpecification.FILEINFO)
+ && spec.getArgumentSize() == 1) {
+ output = fileResource.getGridFile(spec.getArgument(0));
+ }
+ else if (operation
.equalsIgnoreCase(FileOperationSpecification.GETFILE)
&& spec.getArgumentSize() == 2) {
fileResource.getFile(spec.getArgument(0), spec.getArgument(1));
@@ -448,12 +446,9 @@
"Cannot remove an active or suspended Task");
}
else {
- this.failedList.remove(task);
- this.canceledList.remove(task);
- this.completedList.remove(task);
- this.activeList.remove(task);
- this.suspendedList.remove(task);
- this.submittedList.remove(task);
+ synchronized(tasks) {
+ this.tasks.remove(task);
+ }
this.handleMap.remove(task);
}
}
@@ -467,95 +462,53 @@
return null;
}
}
+
+ protected Collection getTasksWithStatus(int code) {
+ ArrayList l = new ArrayList();
+ synchronized(tasks) {
+ Iterator i = tasks.iterator();
+ while (i.hasNext()) {
+ Task t = (Task) i.next();
+ if (t.getStatus().getStatusCode() == code) {
+ l.add(t);
+ }
+ }
+ }
+ return l;
+ }
/** return a collection of active tasks */
public Collection getActiveTasks() {
- return new ArrayList(this.activeList);
+ return getTasksWithStatus(Status.ACTIVE);
}
/** return a collection of failed tasks */
public Collection getFailedTasks() {
- return new ArrayList(this.failedList);
+ return getTasksWithStatus(Status.FAILED);
}
/** return a collection of completed tasks */
public Collection getCompletedTasks() {
- return new ArrayList(this.completedList);
+ return getTasksWithStatus(Status.COMPLETED);
}
/** return a collection of suspended tasks */
public Collection getSuspendedTasks() {
- return new ArrayList(this.suspendedList);
+ return getTasksWithStatus(Status.SUSPENDED);
}
/** return a collection of resumed tasks */
public Collection getResumedTasks() {
- return new ArrayList(this.resumedList);
+ return getTasksWithStatus(Status.RESUMED);
}
/** return a collection of canceled tasks */
public Collection getCanceledTasks() {
- return new ArrayList(this.canceledList);
+ return getTasksWithStatus(Status.CANCELED);
}
/** listen to the status changes of the task */
public void statusChanged(StatusEvent event) {
- Task task = (Task) event.getSource();
- Status status = event.getStatus();
- int prevStatus = status.getPrevStatusCode();
- int curStatus = status.getStatusCode();
- switch (prevStatus) {
- case Status.SUBMITTED:
- this.submittedList.remove(task);
- break;
- case Status.ACTIVE:
- this.activeList.remove(task);
- break;
- case Status.SUSPENDED:
- this.suspendedList.remove(task);
- break;
- case Status.RESUMED:
- this.resumedList.remove(task);
- break;
- case Status.FAILED:
- this.failedList.remove(task);
- break;
- case Status.CANCELED:
- this.canceledList.remove(task);
- break;
- case Status.COMPLETED:
- this.completedList.remove(task);
- break;
- default:
- break;
- }
- if (task != null) {
- switch (curStatus) {
- case Status.SUBMITTED:
- this.submittedList.add(task);
- break;
- case Status.ACTIVE:
- this.activeList.add(task);
- break;
- case Status.SUSPENDED:
- this.suspendedList.add(task);
- break;
- case Status.RESUMED:
- this.resumedList.add(task);
- break;
- case Status.FAILED:
- this.failedList.add(task);
- break;
- case Status.CANCELED:
- this.canceledList.add(task);
- break;
- case Status.COMPLETED:
- this.completedList.add(task);
- break;
- default:
- break;
- }
- }
}
private SecurityContext getSecurityContext() {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2007-03-11 19:43:35
|
Revision: 1604
http://svn.sourceforge.net/cogkit/?rev=1604&view=rev
Author: hategan
Date: 2007-03-11 12:43:28 -0700 (Sun, 11 Mar 2007)
Log Message:
-----------
calling too many equalsIgnoreCase is not that good of an idea
Modified Paths:
--------------
trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/TaskHandlerImpl.java
Modified: trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/TaskHandlerImpl.java
===================================================================
--- trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/TaskHandlerImpl.java 2007-03-11 19:41:26 UTC (rev 1603)
+++ trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/TaskHandlerImpl.java 2007-03-11 19:43:28 UTC (rev 1604)
@@ -273,91 +273,91 @@
FileOperationSpecification spec) throws FileResourceException,
IOException {
Object output = null;
- String operation = spec.getOperation();
+ //FileOperationSpecification commands are lowercase
+ String operation = spec.getOperation().toLowerCase();
try {
- // System.err.println(operation + " + " + Thread.currentThread());
- if (operation.equalsIgnoreCase(FileOperationSpecification.LS)
+ if (operation.equals(FileOperationSpecification.LS)
&& spec.getArgumentSize() == 0) {
output = fileResource.list();
}
- else if (operation.equalsIgnoreCase(FileOperationSpecification.LS)
+ else if (operation.equals(FileOperationSpecification.LS)
&& spec.getArgumentSize() == 1) {
output = fileResource.list(spec.getArgument(0));
}
- else if (operation.equalsIgnoreCase(FileOperationSpecification.PWD)) {
+ else if (operation.equals(FileOperationSpecification.PWD)) {
output = fileResource.getCurrentDirectory();
}
- else if (operation.equalsIgnoreCase(FileOperationSpecification.CD)
+ else if (operation.equals(FileOperationSpecification.CD)
&& spec.getArgumentSize() == 1) {
fileResource.setCurrentDirectory(spec.getArgument(0));
}
else if (operation
- .equalsIgnoreCase(FileOperationSpecification.MKDIR)
+ .equals(FileOperationSpecification.MKDIR)
&& spec.getArgumentSize() == 1) {
fileResource.createDirectory(spec.getArgument(0));
}
else if (operation
- .equalsIgnoreCase(FileOperationSpecification.MKDIRS)
+ .equals(FileOperationSpecification.MKDIRS)
&& spec.getArgumentSize() == 1) {
fileResource.createDirectories(spec.getArgument(0));
}
else if (operation
- .equalsIgnoreCase(FileOperationSpecification.RMDIR)
+ .equals(FileOperationSpecification.RMDIR)
&& spec.getArgumentSize() == 2) {
fileResource.deleteDirectory(spec.getArgument(0), Boolean
.valueOf(spec.getArgument(1)).booleanValue());
}
else if (operation
- .equalsIgnoreCase(FileOperationSpecification.RMFILE)
+ .equals(FileOperationSpecification.RMFILE)
&& spec.getArgumentSize() == 1) {
fileResource.deleteFile(spec.getArgument(0));
}
else if (operation
- .equalsIgnoreCase(FileOperationSpecification.ISDIRECTORY)
+ .equals(FileOperationSpecification.ISDIRECTORY)
&& spec.getArgumentSize() == 1) {
output = Boolean.valueOf(fileResource.isDirectory(spec
.getArgument(0)));
}
else if (operation
- .equalsIgnoreCase(FileOperationSpecification.EXISTS)
+ .equals(FileOperationSpecification.EXISTS)
&& spec.getArgumentSize() == 1) {
output = Boolean.valueOf(fileResource.exists(spec
.getArgument(0)));
}
else if (operation
- .equalsIgnoreCase(FileOperationSpecification.FILEINFO)
+ .equals(FileOperationSpecification.FILEINFO)
&& spec.getArgumentSize() == 1) {
output = fileResource.getGridFile(spec.getArgument(0));
}
else if (operation
- .equalsIgnoreCase(FileOperationSpecification.GETFILE)
+ .equals(FileOperationSpecification.GETFILE)
&& spec.getArgumentSize() == 2) {
fileResource.getFile(spec.getArgument(0), spec.getArgument(1));
}
else if (operation
- .equalsIgnoreCase(FileOperationSpecification.PUTFILE)
+ .equals(FileOperationSpecification.PUTFILE)
&& spec.getArgumentSize() == 2) {
fileResource.putFile(spec.getArgument(0), spec.getArgument(1));
}
else if (operation
- .equalsIgnoreCase(FileOperationSpecification.GETDIR)
+ .equals(FileOperationSpecification.GETDIR)
&& spec.getArgumentSize() == 2) {
fileResource.getDirectory(spec.getArgument(0), spec
.getArgument(1));
}
else if (operation
- .equalsIgnoreCase(FileOperationSpecification.PUTDIR)
+ .equals(FileOperationSpecification.PUTDIR)
&& spec.getArgumentSize() == 2) {
fileResource.putDirectory(spec.getArgument(0), spec
.getArgument(1));
}
else if (operation
- .equalsIgnoreCase(FileOperationSpecification.RENAME)
+ .equals(FileOperationSpecification.RENAME)
&& spec.getArgumentSize() == 2) {
fileResource.rename(spec.getArgument(0), spec.getArgument(1));
}
else if (operation
- .equalsIgnoreCase(FileOperationSpecification.CHMOD)
+ .equals(FileOperationSpecification.CHMOD)
&& spec.getArgumentSize() == 2) {
fileResource.changeMode(spec.getArgument(0), Integer.valueOf(
spec.getArgument(1)).intValue());
@@ -372,8 +372,8 @@
/** is the specification valid */
public boolean isValidSpecification(FileOperationSpecification spec) {
- if (spec.getOperation().equalsIgnoreCase(
- FileOperationSpecification.START) == true) {
+ String operation = spec.getOperation().toLowerCase();
+ if (operation.equals(FileOperationSpecification.START)) {
if (task.getService(0).getServiceContact() == null) {
return false;
}
@@ -383,15 +383,15 @@
}
if ((spec.getArgumentSize() == 0)
- && !oneWordCommands.contains(spec.getOperation())) {
+ && !oneWordCommands.contains(operation)) {
return false;
}
else if ((spec.getArgumentSize() == 1)
- && !twoWordCommands.contains(spec.getOperation())) {
+ && !twoWordCommands.contains(operation)) {
return false;
}
else if ((spec.getArgumentSize() == 2)
- && !threeWordCommands.contains(spec.getOperation())) {
+ && !threeWordCommands.contains(operation)) {
return false;
}
else {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2007-09-06 22:16:56
|
Revision: 1733
http://cogkit.svn.sourceforge.net/cogkit/?rev=1733&view=rev
Author: hategan
Date: 2007-09-06 15:16:54 -0700 (Thu, 06 Sep 2007)
Log Message:
-----------
honor cwd attribute, if specified
Modified Paths:
--------------
trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/TaskHandlerImpl.java
Modified: trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/TaskHandlerImpl.java
===================================================================
--- trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/TaskHandlerImpl.java 2007-09-06 22:15:49 UTC (rev 1732)
+++ trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/TaskHandlerImpl.java 2007-09-06 22:16:54 UTC (rev 1733)
@@ -275,7 +275,13 @@
Object output = null;
//FileOperationSpecification commands are lowercase
String operation = spec.getOperation().toLowerCase();
+ String cwd = null;
+ String taskCwd = (String) spec.getAttribute("cwd");
try {
+ if (taskCwd != null) {
+ cwd = fileResource.getCurrentDirectory();
+ fileResource.setCurrentDirectory(taskCwd);
+ }
if (operation.equals(FileOperationSpecification.LS)
&& spec.getArgumentSize() == 0) {
output = fileResource.list();
@@ -362,10 +368,14 @@
fileResource.changeMode(spec.getArgument(0), Integer.valueOf(
spec.getArgument(1)).intValue());
}
+ fileResource.setCurrentDirectory(cwd);
return output;
}
finally {
// System.err.println(operation + " - " + Thread.currentThread());
+ if (cwd != null) {
+ fileResource.setCurrentDirectory(cwd);
+ }
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2007-09-10 15:46:40
|
Revision: 1737
http://cogkit.svn.sourceforge.net/cogkit/?rev=1737&view=rev
Author: hategan
Date: 2007-09-10 08:46:32 -0700 (Mon, 10 Sep 2007)
Log Message:
-----------
removed bogus line
Modified Paths:
--------------
trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/TaskHandlerImpl.java
Modified: trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/TaskHandlerImpl.java
===================================================================
--- trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/TaskHandlerImpl.java 2007-09-10 15:44:43 UTC (rev 1736)
+++ trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/TaskHandlerImpl.java 2007-09-10 15:46:32 UTC (rev 1737)
@@ -368,7 +368,6 @@
fileResource.changeMode(spec.getArgument(0), Integer.valueOf(
spec.getArgument(1)).intValue());
}
- fileResource.setCurrentDirectory(cwd);
return output;
}
finally {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2007-09-19 20:49:29
|
Revision: 1753
http://cogkit.svn.sourceforge.net/cogkit/?rev=1753&view=rev
Author: hategan
Date: 2007-09-19 13:49:28 -0700 (Wed, 19 Sep 2007)
Log Message:
-----------
don't set status if exception is thrown
Modified Paths:
--------------
trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/TaskHandlerImpl.java
Modified: trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/TaskHandlerImpl.java
===================================================================
--- trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/TaskHandlerImpl.java 2007-09-19 20:44:23 UTC (rev 1752)
+++ trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/TaskHandlerImpl.java 2007-09-19 20:49:28 UTC (rev 1753)
@@ -166,11 +166,7 @@
}
}
catch (Exception e) {
- Status status = new StatusImpl();
- status.setStatusCode(Status.FAILED);
- status.setException(e);
- task.setStatus(status);
- return;
+ throw new TaskSubmissionException(e);
}
task.setStatus(Status.COMPLETED);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2007-10-01 19:10:59
|
Revision: 1763
http://cogkit.svn.sourceforge.net/cogkit/?rev=1763&view=rev
Author: hategan
Date: 2007-10-01 12:10:51 -0700 (Mon, 01 Oct 2007)
Log Message:
-----------
removed unused import
Modified Paths:
--------------
trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/TaskHandlerImpl.java
Modified: trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/TaskHandlerImpl.java
===================================================================
--- trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/TaskHandlerImpl.java 2007-10-01 14:08:23 UTC (rev 1762)
+++ trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/TaskHandlerImpl.java 2007-10-01 19:10:51 UTC (rev 1763)
@@ -20,7 +20,6 @@
import org.globus.cog.abstraction.impl.common.IdentityImpl;
import org.globus.cog.abstraction.impl.common.ProviderMethodException;
import org.globus.cog.abstraction.impl.common.StatusEvent;
-import org.globus.cog.abstraction.impl.common.StatusImpl;
import org.globus.cog.abstraction.impl.common.task.ActiveTaskException;
import org.globus.cog.abstraction.impl.common.task.IllegalSpecException;
import org.globus.cog.abstraction.impl.common.task.InvalidProviderException;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|