|
From: <ha...@us...> - 2006-10-05 20:55:50
|
Revision: 859
http://svn.sourceforge.net/cogkit/?rev=859&view=rev
Author: hategan
Date: 2006-10-05 13:55:43 -0700 (Thu, 05 Oct 2006)
Log Message:
-----------
added str:quote()
Modified Paths:
--------------
trunk/current/src/cog/modules/karajan/resources/sys-common.xml
trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/functions/Misc.java
Modified: trunk/current/src/cog/modules/karajan/resources/sys-common.xml
===================================================================
--- trunk/current/src/cog/modules/karajan/resources/sys-common.xml 2006-10-05 19:34:00 UTC (rev 858)
+++ trunk/current/src/cog/modules/karajan/resources/sys-common.xml 2006-10-05 20:55:43 UTC (rev 859)
@@ -75,6 +75,7 @@
<export name="matches"><elementDef classname="org.globus.cog.karajan.workflow.nodes.functions.Misc"/></export>
<export name="chr"><elementDef classname="org.globus.cog.karajan.workflow.nodes.functions.Misc"/></export>
<export name="substring"><elementDef classname="org.globus.cog.karajan.workflow.nodes.functions.Misc"/></export>
+ <export name="quote"><elementDef classname="org.globus.cog.karajan.workflow.nodes.functions.Misc"/></export>
</namespace>
<export name="time"><elementDef classname="org.globus.cog.karajan.workflow.nodes.functions.Time"/></export>
@@ -105,8 +106,6 @@
<export name="and"><elementDef classname="org.globus.cog.karajan.workflow.nodes.functions.Logic"/></export>
<export name="or"><elementDef classname="org.globus.cog.karajan.workflow.nodes.functions.Logic"/></export>
<export name="not"><elementDef classname="org.globus.cog.karajan.workflow.nodes.functions.Logic"/></export>
- <export name="true"><elementDef classname="org.globus.cog.karajan.workflow.nodes.functions.Logic"/></export>
- <export name="false"><elementDef classname="org.globus.cog.karajan.workflow.nodes.functions.Logic"/></export>
<namespace prefix="math">
<export name="sum"><elementDef classname="org.globus.cog.karajan.workflow.nodes.functions.Sum"/></export>
Modified: trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/functions/Misc.java
===================================================================
--- trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/functions/Misc.java 2006-10-05 19:34:00 UTC (rev 858)
+++ trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/functions/Misc.java 2006-10-05 20:55:43 UTC (rev 859)
@@ -344,6 +344,15 @@
}
static {
+ setArguments("str_quote", new Arg[] { PA_STRING });
+ }
+
+ public Object str_quote(VariableStack stack) throws ExecutionException {
+ String str = TypeUtil.toString(PA_STRING.getValue(stack));
+ return "\"" + str + "\"";
+ }
+
+ static {
setArguments("sys_discard", new Arg[] { Arg.VARGS });
}
@@ -362,8 +371,8 @@
}
public RangeIterator sys_range(VariableStack stack) throws ExecutionException {
- return new RangeIterator(TypeUtil.toInt(PA_FROM.getValue(stack)), TypeUtil.toInt(
- PA_TO.getValue(stack)), TypeUtil.toInt(OA_STEP.getValue(stack)));
+ return new RangeIterator(TypeUtil.toInt(PA_FROM.getValue(stack)),
+ TypeUtil.toInt(PA_TO.getValue(stack)), TypeUtil.toInt(OA_STEP.getValue(stack)));
}
public static final Arg OA_INVERT = new Arg.Optional("invert", Boolean.FALSE);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2006-10-11 20:17:37
|
Revision: 894
http://svn.sourceforge.net/cogkit/?rev=894&view=rev
Author: hategan
Date: 2006-10-11 13:17:27 -0700 (Wed, 11 Oct 2006)
Log Message:
-----------
added unique()
Modified Paths:
--------------
trunk/current/src/cog/modules/karajan/CHANGES.txt
trunk/current/src/cog/modules/karajan/resources/sys-common.xml
Added Paths:
-----------
trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/functions/Unique.java
Modified: trunk/current/src/cog/modules/karajan/CHANGES.txt
===================================================================
--- trunk/current/src/cog/modules/karajan/CHANGES.txt 2006-10-11 19:46:04 UTC (rev 893)
+++ trunk/current/src/cog/modules/karajan/CHANGES.txt 2006-10-11 20:17:27 UTC (rev 894)
@@ -1,3 +1,8 @@
+(10/11/2006)
+
+*** Added sys:unique(). It returns its arguments asynchronously, but
+ each argument is returned only once
+
(10/05/2006)
*** Added str:quote() to put quotes around a string
Modified: trunk/current/src/cog/modules/karajan/resources/sys-common.xml
===================================================================
--- trunk/current/src/cog/modules/karajan/resources/sys-common.xml 2006-10-11 19:46:04 UTC (rev 893)
+++ trunk/current/src/cog/modules/karajan/resources/sys-common.xml 2006-10-11 20:17:27 UTC (rev 894)
@@ -66,6 +66,7 @@
<export name="dot"><elementDef classname="org.globus.cog.karajan.workflow.nodes.functions.Misc"/></export>
<export name="cross"><elementDef classname="org.globus.cog.karajan.workflow.nodes.functions.Misc"/></export>
+ <export name="unique"><elementDef classname="org.globus.cog.karajan.workflow.nodes.functions.Unique"/></export>
<namespace prefix="str">
<export name="concat"><elementDef classname="org.globus.cog.karajan.workflow.nodes.functions.Misc"/></export>
Added: trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/functions/Unique.java
===================================================================
--- trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/functions/Unique.java (rev 0)
+++ trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/functions/Unique.java 2006-10-11 20:17:27 UTC (rev 894)
@@ -0,0 +1,59 @@
+// ----------------------------------------------------------------------
+//This code is developed as part of the Java CoG Kit project
+//The terms of the license can be found at http://www.cogkit.org/license
+//This message may not be removed or altered.
+//----------------------------------------------------------------------
+
+/*
+ * Created on Feb 19, 2005
+ */
+package org.globus.cog.karajan.workflow.nodes.functions;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.globus.cog.karajan.arguments.Arg;
+import org.globus.cog.karajan.arguments.ArgUtil;
+import org.globus.cog.karajan.arguments.VariableArguments;
+import org.globus.cog.karajan.stack.VariableStack;
+import org.globus.cog.karajan.workflow.ExecutionException;
+import org.globus.cog.karajan.workflow.nodes.Sequential;
+
+public class Unique extends Sequential {
+
+ public void pre(VariableStack stack) throws ExecutionException {
+ super.pre(stack);
+ ArgUtil.setVariableArguments(stack, new Op(Arg.VARGS.getReturn(stack)));
+ }
+
+ public void post(VariableStack stack) throws ExecutionException {
+ super.post(stack);
+ }
+
+ private static class Op extends VariableArgumentsOperator {
+ public Set set;
+ public VariableArguments vargs;
+
+ public Op(VariableArguments vargs) {
+ this.set = new HashSet();
+ this.vargs = vargs;
+ }
+
+ public Object initialValue() {
+ return null;
+ }
+
+ public Object update(Object old, Object value) {
+ // this should be synchronized by now
+ if (!set.contains(value)) {
+ set.add(value);
+ vargs.append(value);
+ }
+ return null;
+ }
+
+ public boolean isCommutative() {
+ return true;
+ }
+ }
+}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2006-10-14 17:26:23
|
Revision: 946
http://svn.sourceforge.net/cogkit/?rev=946&view=rev
Author: hategan
Date: 2006-10-14 10:26:12 -0700 (Sat, 14 Oct 2006)
Log Message:
-----------
fixed some tests and added missing class
Modified Paths:
--------------
trunk/current/src/cog/modules/karajan/resources/sys-common.xml
trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/ExecutionContext.java
trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/AbstractSequentialWithArguments.java
trunk/current/src/cog/modules/karajan/test/settings.k
trunk/current/src/cog/modules/karajan/test/settings.xml
Added Paths:
-----------
trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/futures/FutureEvaluationException.java
Modified: trunk/current/src/cog/modules/karajan/resources/sys-common.xml
===================================================================
--- trunk/current/src/cog/modules/karajan/resources/sys-common.xml 2006-10-14 03:54:13 UTC (rev 945)
+++ trunk/current/src/cog/modules/karajan/resources/sys-common.xml 2006-10-14 17:26:12 UTC (rev 946)
@@ -107,6 +107,8 @@
<export name="and"><elementDef classname="org.globus.cog.karajan.workflow.nodes.functions.Logic"/></export>
<export name="or"><elementDef classname="org.globus.cog.karajan.workflow.nodes.functions.Logic"/></export>
<export name="not"><elementDef classname="org.globus.cog.karajan.workflow.nodes.functions.Logic"/></export>
+ <export name="true"><elementDef classname="org.globus.cog.karajan.workflow.nodes.functions.Logic"/></export>
+ <export name="false"><elementDef classname="org.globus.cog.karajan.workflow.nodes.functions.Logic"/></export>
<namespace prefix="math">
<export name="sum"><elementDef classname="org.globus.cog.karajan.workflow.nodes.functions.Sum"/></export>
Modified: trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/ExecutionContext.java
===================================================================
--- trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/ExecutionContext.java 2006-10-14 03:54:13 UTC (rev 945)
+++ trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/ExecutionContext.java 2006-10-14 17:26:12 UTC (rev 946)
@@ -161,6 +161,7 @@
define(stack, "quotedlist", QuotedList.class);
define(stack, "project", ProjectNode.class);
define(stack, "karajan", ProjectNode.class);
+
stack.firstFrame().setVar("false", Boolean.FALSE);
stack.firstFrame().setVar("true", Boolean.TRUE);
}
Added: trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/futures/FutureEvaluationException.java
===================================================================
--- trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/futures/FutureEvaluationException.java (rev 0)
+++ trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/futures/FutureEvaluationException.java 2006-10-14 17:26:12 UTC (rev 946)
@@ -0,0 +1,26 @@
+//----------------------------------------------------------------------
+//This code is developed as part of the Java CoG Kit project
+//The terms of the license can be found at http://www.cogkit.org/license
+//This message may not be removed or altered.
+//----------------------------------------------------------------------
+
+/*
+ * Created on Oct 6, 2006
+ */
+package org.globus.cog.karajan.workflow.futures;
+
+import org.globus.cog.karajan.workflow.KarajanRuntimeException;
+import org.globus.cog.karajan.workflow.events.FailureNotificationEvent;
+
+
+public class FutureEvaluationException extends KarajanRuntimeException {
+ private FailureNotificationEvent failure;
+
+ public FutureEvaluationException(FailureNotificationEvent failure) {
+ this.failure = failure;
+ }
+
+ public FailureNotificationEvent getFailure() {
+ return failure;
+ }
+}
Modified: trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/AbstractSequentialWithArguments.java
===================================================================
--- trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/AbstractSequentialWithArguments.java 2006-10-14 03:54:13 UTC (rev 945)
+++ trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/AbstractSequentialWithArguments.java 2006-10-14 17:26:12 UTC (rev 946)
@@ -36,13 +36,6 @@
public static final String QUOTED = "#quoted";
- public static Set commonArguments;
-
- static {
- commonArguments = new HashSet();
- commonArguments.add("annotation");
- }
-
private int argElements = 0;
private boolean quotedArgs;
private boolean nestedArgs, hasVargs, hasChannels;
@@ -362,9 +355,6 @@
for (Iterator i = getStaticArguments().keySet().iterator(); i.hasNext();) {
String name = (String) i.next();
if (args == null || !args.containsKey(name)) {
- if (commonArguments.contains(name)) {
- continue;
- }
if (args != null) {
throw new KarajanRuntimeException("\tUnsupported argument: " + name
+ ". Valid arguments are: " + args.keySet());
Modified: trunk/current/src/cog/modules/karajan/test/settings.k
===================================================================
--- trunk/current/src/cog/modules/karajan/test/settings.k 2006-10-14 03:54:13 UTC (rev 945)
+++ trunk/current/src/cog/modules/karajan/test/settings.k 2006-10-14 17:26:12 UTC (rev 946)
@@ -6,7 +6,7 @@
global(grid_resources
list(
- host("plussed.mcs.anl.gov:4010", cpus=2
+ host("plussed.mcs.anl.gov:4020", cpus=2
service("execution", provider="gt2")
service("file", provider="gt2")
)
Modified: trunk/current/src/cog/modules/karajan/test/settings.xml
===================================================================
--- trunk/current/src/cog/modules/karajan/test/settings.xml 2006-10-14 03:54:13 UTC (rev 945)
+++ trunk/current/src/cog/modules/karajan/test/settings.xml 2006-10-14 17:26:12 UTC (rev 946)
@@ -7,7 +7,7 @@
<global name="grid_resources">
<list>
- <host name="plussed.mcs.anl.gov:4010" cpus="2">
+ <host name="plussed.mcs.anl.gov:4020" cpus="2">
<service type="execution" provider="gt2"/>
<service type="file" provider="gt2"/>
</host>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2006-10-16 21:03:16
|
Revision: 971
http://svn.sourceforge.net/cogkit/?rev=971&view=rev
Author: hategan
Date: 2006-10-16 14:03:11 -0700 (Mon, 16 Oct 2006)
Log Message:
-----------
fix for task:exec and channels
Modified Paths:
--------------
trunk/current/src/cog/modules/karajan/CHANGES.txt
trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/grid/GridExec.java
Modified: trunk/current/src/cog/modules/karajan/CHANGES.txt
===================================================================
--- trunk/current/src/cog/modules/karajan/CHANGES.txt 2006-10-16 16:22:57 UTC (rev 970)
+++ trunk/current/src/cog/modules/karajan/CHANGES.txt 2006-10-16 21:03:11 UTC (rev 971)
@@ -1,3 +1,7 @@
+(10/16/2006)
+
+*** Make task:execute(arguments=...) work with vargs
+
(10/14/2006)
*** Fixed some of the examples
Modified: trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/grid/GridExec.java
===================================================================
--- trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/grid/GridExec.java 2006-10-16 16:22:57 UTC (rev 970)
+++ trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/grid/GridExec.java 2006-10-16 21:03:11 UTC (rev 971)
@@ -10,7 +10,6 @@
import java.util.List;
import java.util.Map;
import java.util.StringTokenizer;
-import java.util.Vector;
import org.apache.log4j.Logger;
import org.globus.cog.abstraction.impl.common.StatusEvent;
@@ -85,12 +84,10 @@
js.setExecutable(TypeUtil.toString(value));
}
else if (name.equals(A_ARGS.getName()) || name.equals(A_ARGUMENTS.getName())) {
- if (value instanceof List) {
- Vector v = new Vector();
- v.addAll((List) value);
- js.setArguments(v);
+ try {
+ js.setArguments(TypeUtil.toList(value));
}
- else {
+ catch (Exception e) {
js.setArguments(TypeUtil.toString(value));
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2006-10-17 22:08:30
|
Revision: 987
http://svn.sourceforge.net/cogkit/?rev=987&view=rev
Author: hategan
Date: 2006-10-17 15:08:22 -0700 (Tue, 17 Oct 2006)
Log Message:
-----------
shared schedulers
Modified Paths:
--------------
trunk/current/src/cog/modules/karajan/CHANGES.txt
trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/ExecutionContext.java
trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/grid/GridExec.java
trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/grid/SchedulerNode.java
Modified: trunk/current/src/cog/modules/karajan/CHANGES.txt
===================================================================
--- trunk/current/src/cog/modules/karajan/CHANGES.txt 2006-10-17 21:16:04 UTC (rev 986)
+++ trunk/current/src/cog/modules/karajan/CHANGES.txt 2006-10-17 22:08:22 UTC (rev 987)
@@ -1,3 +1,10 @@
+(10/17/2006)
+
+*** Added the possibility to share schedulers (if in the same JVM
+ instance) between executions.
+
+*** Made sure the event bus is initialized in all cases
+
(10/16/2006)
*** Make task:execute(arguments=...) work with vargs
Modified: trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/ExecutionContext.java
===================================================================
--- trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/ExecutionContext.java 2006-10-17 21:16:04 UTC (rev 986)
+++ trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/ExecutionContext.java 2006-10-17 22:08:22 UTC (rev 987)
@@ -112,11 +112,11 @@
}
public void start() {
- EventBus.initialize();
start(new LinkedStack(this));
}
public void start(VariableStack stack) {
+ EventBus.initialize();
startTime = System.currentTimeMillis();
if (arguments == null) {
arguments = Collections.EMPTY_LIST;
Modified: trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/grid/GridExec.java
===================================================================
--- trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/grid/GridExec.java 2006-10-17 21:16:04 UTC (rev 986)
+++ trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/grid/GridExec.java 2006-10-17 22:08:22 UTC (rev 987)
@@ -78,7 +78,7 @@
String provider = null;
while (i.hasNext()) {
String name = (String) i.next();
-
+
Object value = named.getArgument(name);
if (name.equals(A_EXECUTABLE.getName())) {
js.setExecutable(TypeUtil.toString(value));
@@ -154,7 +154,7 @@
js.setAttribute(name, value);
}
}
-
+
VariableArguments env = C_ENVIRONMENT.get(stack);
Iterator j = env.iterator();
while (j.hasNext()) {
Modified: trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/grid/SchedulerNode.java
===================================================================
--- trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/grid/SchedulerNode.java 2006-10-17 21:16:04 UTC (rev 986)
+++ trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/grid/SchedulerNode.java 2006-10-17 22:08:22 UTC (rev 987)
@@ -6,7 +6,7 @@
package org.globus.cog.karajan.workflow.nodes.grid;
-import java.util.Hashtable;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
@@ -26,6 +26,7 @@
public static final Logger logger = Logger.getLogger(SchedulerNode.class);
public static final Arg A_TYPE = new Arg.Positional("type", 0);
+ public static final Arg A_SHARE_ID = new Arg.Optional("shareID");
public static final Arg A_RESOURCES = new Arg.Positional("resources", 1);
public static final Arg.Channel A_PROPERTIES = new Arg.Channel("properties");
public static final Arg.Channel A_TASK_TRANSFORMERS = new Arg.Channel("taskTransformers");
@@ -36,12 +37,14 @@
static {
setArguments(SchedulerNode.class, new Arg[] { A_TYPE, A_RESOURCES, A_PROPERTIES,
A_TASK_TRANSFORMERS, A_HANDLERS });
+ sharedInstances = new HashMap();
}
private static Map schedulers;
+ private static Map sharedInstances;
private void initializeSchedulers(KarajanProperties properties) {
- schedulers = new Hashtable();
+ schedulers = new HashMap();
Iterator i = properties.keySet().iterator();
while (i.hasNext()) {
String name = (String) i.next();
@@ -53,6 +56,25 @@
public void post(VariableStack stack) throws ExecutionException {
Scheduler s = null;
+ String shareID = TypeUtil.toString(A_SHARE_ID.getValue(stack, null));
+ if (shareID != null) {
+ synchronized(sharedInstances) {
+ s = (Scheduler) sharedInstances.get(shareID);
+ if (s == null) {
+ s = newScheduler(stack);
+ sharedInstances.put(shareID, s);
+ }
+ }
+ }
+ else {
+ s = newScheduler(stack);
+ }
+ stack.parentFrame().setVar(SCHEDULER, s);
+ super.post(stack);
+ }
+
+ protected Scheduler newScheduler(VariableStack stack) throws ExecutionException {
+ Scheduler s;
String type = TypeUtil.toString(A_TYPE.getValue(stack));
synchronized (SchedulerNode.class) {
if (schedulers == null) {
@@ -106,7 +128,6 @@
s.addTaskHandler((TaskHandlerWrapper) i.next());
}
- stack.parentFrame().setVar(SCHEDULER, s);
- super.post(stack);
+ return s;
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2006-10-18 20:59:49
|
Revision: 1018
http://svn.sourceforge.net/cogkit/?rev=1018&view=rev
Author: hategan
Date: 2006-10-18 13:59:44 -0700 (Wed, 18 Oct 2006)
Log Message:
-----------
changed dir:make() to do mkdirs() instead of mkdir()
Modified Paths:
--------------
trunk/current/src/cog/modules/karajan/CHANGES.txt
trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/grid/MakeDir.java
Modified: trunk/current/src/cog/modules/karajan/CHANGES.txt
===================================================================
--- trunk/current/src/cog/modules/karajan/CHANGES.txt 2006-10-18 20:59:32 UTC (rev 1017)
+++ trunk/current/src/cog/modules/karajan/CHANGES.txt 2006-10-18 20:59:44 UTC (rev 1018)
@@ -1,3 +1,7 @@
+(10/18/2006)
+
+*** dir:make() now does a mkdirs() rather than mkdir()
+
(10/17/2006)
*** Added the possibility to share schedulers (if in the same JVM
Modified: trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/grid/MakeDir.java
===================================================================
--- trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/grid/MakeDir.java 2006-10-18 20:59:32 UTC (rev 1017)
+++ trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/grid/MakeDir.java 2006-10-18 20:59:44 UTC (rev 1018)
@@ -23,7 +23,7 @@
}
protected String getOperation(VariableStack stack) throws ExecutionException {
- return FileOperationSpecification.MKDIR;
+ return FileOperationSpecification.MKDIRS;
}
protected String[] getArguments(VariableStack stack) throws ExecutionException {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2006-10-23 22:33:52
|
Revision: 1115
http://svn.sourceforge.net/cogkit/?rev=1115&view=rev
Author: hategan
Date: 2006-10-23 15:33:46 -0700 (Mon, 23 Oct 2006)
Log Message:
-----------
fixed task:execute again
Modified Paths:
--------------
trunk/current/src/cog/modules/karajan/CHANGES.txt
trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/grid/GridExec.java
Modified: trunk/current/src/cog/modules/karajan/CHANGES.txt
===================================================================
--- trunk/current/src/cog/modules/karajan/CHANGES.txt 2006-10-23 21:53:57 UTC (rev 1114)
+++ trunk/current/src/cog/modules/karajan/CHANGES.txt 2006-10-23 22:33:46 UTC (rev 1115)
@@ -1,3 +1,8 @@
+(10/23/2006)
+
+*** the fix on task:execute(arguments=...) broke passing
+ arguments as a string. Hopefully it's fixed this time
+
(10/18/2006)
*** dir:make() now does a mkdirs() rather than mkdir()
Modified: trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/grid/GridExec.java
===================================================================
--- trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/grid/GridExec.java 2006-10-23 21:53:57 UTC (rev 1114)
+++ trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/grid/GridExec.java 2006-10-23 22:33:46 UTC (rev 1115)
@@ -84,10 +84,13 @@
js.setExecutable(TypeUtil.toString(value));
}
else if (name.equals(A_ARGS.getName()) || name.equals(A_ARGUMENTS.getName())) {
- try {
- js.setArguments(TypeUtil.toList(value));
+ if (value instanceof List) {
+ js.setArguments((List) value);
}
- catch (Exception e) {
+ else if (value instanceof VariableArguments) {
+ js.setArguments(((VariableArguments) value).getAll());
+ }
+ else {
js.setArguments(TypeUtil.toString(value));
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2006-11-22 20:29:40
|
Revision: 1403
http://svn.sourceforge.net/cogkit/?rev=1403&view=rev
Author: hategan
Date: 2006-11-22 12:29:38 -0800 (Wed, 22 Nov 2006)
Log Message:
-----------
added once() - a guaranteed version of cacheOn()
Modified Paths:
--------------
trunk/current/src/cog/modules/karajan/resources/sys-common.xml
Added Paths:
-----------
trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/Once.java
Modified: trunk/current/src/cog/modules/karajan/resources/sys-common.xml
===================================================================
--- trunk/current/src/cog/modules/karajan/resources/sys-common.xml 2006-11-22 20:28:39 UTC (rev 1402)
+++ trunk/current/src/cog/modules/karajan/resources/sys-common.xml 2006-11-22 20:29:38 UTC (rev 1403)
@@ -81,6 +81,7 @@
<export name="time"><elementDef classname="org.globus.cog.karajan.workflow.nodes.functions.Time"/></export>
<export name="cacheon"><elementDef classname="org.globus.cog.karajan.workflow.nodes.CacheOn"/></export>
+ <export name="once"><elementDef classname="org.globus.cog.karajan.workflow.nodes.Once"/></export>
<export name="checkpoint"><elementDef classname="org.globus.cog.karajan.workflow.nodes.CheckpointNode"/></export>
<export name="wait"><elementDef classname="org.globus.cog.karajan.workflow.nodes.WaitNode"/></export>
Added: trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/Once.java
===================================================================
--- trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/Once.java (rev 0)
+++ trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/Once.java 2006-11-22 20:29:38 UTC (rev 1403)
@@ -0,0 +1,39 @@
+// ----------------------------------------------------------------------
+//This code is developed as part of the Java CoG Kit project
+//The terms of the license can be found at http://www.cogkit.org/license
+//This message may not be removed or altered.
+//----------------------------------------------------------------------
+
+/*
+ * Created on Apr 26, 2005
+ */
+package org.globus.cog.karajan.workflow.nodes;
+
+import org.globus.cog.karajan.arguments.Arg;
+import org.globus.cog.karajan.stack.VariableStack;
+import org.globus.cog.karajan.util.Cache;
+import org.globus.cog.karajan.workflow.ExecutionException;
+
+public class Once extends CacheNode {
+ public static final String CACHE = "##cache";
+
+ public static final Arg A_VALUE = new Arg.Positional("value", 0);
+
+ static {
+ setArguments(Once.class, new Arg[] { A_VALUE });
+ }
+
+ protected void partialArgumentsEvaluated(VariableStack stack) throws ExecutionException {
+ cpre(A_VALUE.getValue(stack), stack);
+ }
+
+ protected synchronized Cache getCache(VariableStack stack) throws ExecutionException {
+ Cache cache = (Cache) stack.getGlobal(CACHE);
+ if (cache == null) {
+ cache = new Cache();
+ cache.setMaxCacheSize(-1);
+ stack.setGlobal(CACHE, cache);
+ }
+ return cache;
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2006-12-05 23:28:42
|
Revision: 1446
http://svn.sourceforge.net/cogkit/?rev=1446&view=rev
Author: hategan
Date: 2006-12-05 15:28:40 -0800 (Tue, 05 Dec 2006)
Log Message:
-----------
fixed exit code
Modified Paths:
--------------
trunk/current/src/cog/modules/karajan/CHANGES.txt
trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/Loader.java
Modified: trunk/current/src/cog/modules/karajan/CHANGES.txt
===================================================================
--- trunk/current/src/cog/modules/karajan/CHANGES.txt 2006-12-05 19:17:16 UTC (rev 1445)
+++ trunk/current/src/cog/modules/karajan/CHANGES.txt 2006-12-05 23:28:40 UTC (rev 1446)
@@ -7,6 +7,8 @@
*** Added DOTALL mode to str:matches()
+*** Fixed the exit code to not be 0 if the execution fails
+
(11/30/2006)
*** Updated the adaptive scheduler
Modified: trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/Loader.java
===================================================================
--- trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/Loader.java 2006-12-05 19:17:16 UTC (rev 1445)
+++ trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/Loader.java 2006-12-05 23:28:40 UTC (rev 1446)
@@ -108,6 +108,8 @@
System.exit(1);
}
+ boolean runerror = false;
+
try {
ElementTree tree;
if (project != null) {
@@ -158,6 +160,9 @@
* already done.
*/
ec.waitFor();
+ if (ec.isFailed()) {
+ runerror = true;
+ }
}
if (cache) {
try {
@@ -199,7 +204,7 @@
/ 1024 + "KB");
}
- System.exit(0);
+ System.exit(runerror ? 2 : 0);
}
public static ElementTree load(String project) throws SpecificationException, IOException {
@@ -260,8 +265,8 @@
ap.addAlias(ARG_HELP, "h");
ap.addFlag(ARG_CACHE, "EXPERIMENTAL! Enables cache persistance");
ap.addFlag(ARG_CSTDOUT,
- "Make print() invocations produce produce results in the order they are executed. By default" +
- " the order is lexical.");
+ "Make print() invocations produce produce results in the order they are executed. By default"
+ + " the order is lexical.");
return ap;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2006-12-12 20:31:19
|
Revision: 1469
http://svn.sourceforge.net/cogkit/?rev=1469&view=rev
Author: hategan
Date: 2006-12-12 12:31:17 -0800 (Tue, 12 Dec 2006)
Log Message:
-----------
removed old service files
Removed Paths:
-------------
trunk/current/src/cog/modules/karajan/resources/karajan-deploy.wsdd
trunk/current/src/cog/modules/karajan/resources/karajan-undeploy.wsdd
trunk/current/src/cog/modules/karajan/service.properties
trunk/current/src/cog/modules/karajan/service.xml
Deleted: trunk/current/src/cog/modules/karajan/resources/karajan-deploy.wsdd
===================================================================
--- trunk/current/src/cog/modules/karajan/resources/karajan-deploy.wsdd 2006-12-12 20:27:19 UTC (rev 1468)
+++ trunk/current/src/cog/modules/karajan/resources/karajan-deploy.wsdd 2006-12-12 20:31:17 UTC (rev 1469)
@@ -1,7 +0,0 @@
-<deployment xmlns="http://xml.apache.org/axis/wsdd/"
- xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
- <service name="KarajanService" provider="java:RPC">
- <parameter name="className" value="org.globus.cog.karajan.workflow.remote.ProjectNodeWrapper"/>
- <parameter name="allowedMethods" value="*"/>
- </service>
-</deployment>
\ No newline at end of file
Deleted: trunk/current/src/cog/modules/karajan/resources/karajan-undeploy.wsdd
===================================================================
--- trunk/current/src/cog/modules/karajan/resources/karajan-undeploy.wsdd 2006-12-12 20:27:19 UTC (rev 1468)
+++ trunk/current/src/cog/modules/karajan/resources/karajan-undeploy.wsdd 2006-12-12 20:31:17 UTC (rev 1469)
@@ -1,5 +0,0 @@
-<undeployment
- xmlns="http://xml.apache.org/axis/wsdd/">
- <service name="KarajanService"/>
-</undeployment>
-
Deleted: trunk/current/src/cog/modules/karajan/service.properties
===================================================================
--- trunk/current/src/cog/modules/karajan/service.properties 2006-12-12 20:27:19 UTC (rev 1468)
+++ trunk/current/src/cog/modules/karajan/service.properties 2006-12-12 20:31:17 UTC (rev 1469)
@@ -1,3 +0,0 @@
-axis.dir = /path/to/axis
-axis.url = http://localhost:8080/axis/servlet/AxisServlet
-
Deleted: trunk/current/src/cog/modules/karajan/service.xml
===================================================================
--- trunk/current/src/cog/modules/karajan/service.xml 2006-12-12 20:27:19 UTC (rev 1468)
+++ trunk/current/src/cog/modules/karajan/service.xml 2006-12-12 20:31:17 UTC (rev 1469)
@@ -1,52 +0,0 @@
-<project name="service" default="help">
-
- <property file="service.properties"/>
- <property file="project.properties"/>
-
- <property name="axis.lib.dir" value="${axis.dir}/WEB-INF/lib"/>
- <property name="dist.dir" value="dist/${module.name}-${version}"/>
- <property name="dist.lib.dir" value="${dist.dir}/lib"/>
-
- <path id="classpath">
- <fileset dir="${dist.lib.dir}">
- <include name="*.jar"/>
- </fileset>
- <fileset dir="lib">
- <include name="*.jar"/>
- </fileset>
- </path>
-
- <target name="help">
- <echo>
-Be sure to edit the service.properties file.
-
-Targets:
- deploy - deploys the web service
- undeploy - undeploys the web service
- copy - copies the required files to the axis lib directory
- help - you are looking at it
- </echo>
- </target>
-
- <target name="copy">
- <ant antfile="build.xml" target="dist" inheritAll="false"/>
- <copy todir="${axis.lib.dir}">
- <fileset dir="${dist.lib.dir}" includes="*.jar" excludes="axis*.jar,jaxrpc*.jar"/>
- </copy>
- </target>
-
- <target name="deploy" depends="copy">
- <java classname="org.apache.axis.client.AdminClient"
- classpathref="classpath" fork="yes">
- <arg value="-l${axis.url}"/>
- <arg value="resources/karajan-deploy.wsdd"/>
- </java>
- </target>
- <target name="undeploy">
- <java classname="org.apache.axis.client.AdminClient"
- classpathref="classpath" fork="yes">
- <arg value="-l${axis.url}"/>
- <arg value="resources/karajan-undeploy.wsdd"/>
- </java>
- </target>
-</project>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2006-12-22 23:14:50
|
Revision: 1483
http://svn.sourceforge.net/cogkit/?rev=1483&view=rev
Author: hategan
Date: 2006-12-22 15:14:47 -0800 (Fri, 22 Dec 2006)
Log Message:
-----------
updated version, changelog
Modified Paths:
--------------
trunk/current/src/cog/modules/karajan/CHANGES.txt
trunk/current/src/cog/modules/karajan/project.properties
Modified: trunk/current/src/cog/modules/karajan/CHANGES.txt
===================================================================
--- trunk/current/src/cog/modules/karajan/CHANGES.txt 2006-12-22 23:13:35 UTC (rev 1482)
+++ trunk/current/src/cog/modules/karajan/CHANGES.txt 2006-12-22 23:14:47 UTC (rev 1483)
@@ -1,3 +1,5 @@
+************************** v0.34 ***************************
+
(12/13/2006)
*** Sped up the parser a little
Modified: trunk/current/src/cog/modules/karajan/project.properties
===================================================================
--- trunk/current/src/cog/modules/karajan/project.properties 2006-12-22 23:13:35 UTC (rev 1482)
+++ trunk/current/src/cog/modules/karajan/project.properties 2006-12-22 23:14:47 UTC (rev 1483)
@@ -1,6 +1,6 @@
module.name = karajan
long.name = Karajan Workflow Engine
-version = 0.33
+version = 0.34
project = Java CoG Kit
lib.deps = xpp3*.jar, xstream*.jar, backport-util-concurrent.jar
exclude.dirs = com/thoughtworks/xstream/**/*.*
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2006-12-28 20:40:51
|
Revision: 1496
http://svn.sourceforge.net/cogkit/?rev=1496&view=rev
Author: hategan
Date: 2006-12-28 12:40:45 -0800 (Thu, 28 Dec 2006)
Log Message:
-----------
changes and version
Modified Paths:
--------------
trunk/current/src/cog/modules/karajan/CHANGES.txt
trunk/current/src/cog/modules/karajan/project.properties
Modified: trunk/current/src/cog/modules/karajan/CHANGES.txt
===================================================================
--- trunk/current/src/cog/modules/karajan/CHANGES.txt 2006-12-28 20:37:00 UTC (rev 1495)
+++ trunk/current/src/cog/modules/karajan/CHANGES.txt 2006-12-28 20:40:45 UTC (rev 1496)
@@ -1,3 +1,17 @@
+************************** v0.35 ***************************
+
+(12/28/2006)
+
+*** Added a mechanism in the schedulers to distinguish between
+ resources not being found because of permanently unsatisfiable
+ constraints or temporary load conditions. The heuristics used
+ before were broken.
+
+*** Fixed a memory leak in the schedulers with constraints not
+ being removed after a task was done or failed.
+
+*** Some cleanups in the schedulers.
+
************************** v0.34 ***************************
(12/13/2006)
Modified: trunk/current/src/cog/modules/karajan/project.properties
===================================================================
--- trunk/current/src/cog/modules/karajan/project.properties 2006-12-28 20:37:00 UTC (rev 1495)
+++ trunk/current/src/cog/modules/karajan/project.properties 2006-12-28 20:40:45 UTC (rev 1496)
@@ -1,6 +1,6 @@
module.name = karajan
long.name = Karajan Workflow Engine
-version = 0.34
+version = 0.35
project = Java CoG Kit
lib.deps = xpp3*.jar, xstream*.jar, backport-util-concurrent.jar
exclude.dirs = com/thoughtworks/xstream/**/*.*
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2008-02-22 16:32:56
|
Revision: 1908
http://cogkit.svn.sourceforge.net/cogkit/?rev=1908&view=rev
Author: hategan
Date: 2008-02-22 08:32:52 -0800 (Fri, 22 Feb 2008)
Log Message:
-----------
added dateFormat
Modified Paths:
--------------
trunk/current/src/cog/modules/karajan/CHANGES.txt
trunk/current/src/cog/modules/karajan/resources/sys-common.xml
Modified: trunk/current/src/cog/modules/karajan/CHANGES.txt
===================================================================
--- trunk/current/src/cog/modules/karajan/CHANGES.txt 2008-02-22 16:31:35 UTC (rev 1907)
+++ trunk/current/src/cog/modules/karajan/CHANGES.txt 2008-02-22 16:32:52 UTC (rev 1908)
@@ -1,3 +1,7 @@
+(02/22/2008)
+
+*** Added sys:dateFormat(pattern, value)
+
(02/12/2008)
*** Added the maxSubmissionTime parameter to the score scheduler.
Modified: trunk/current/src/cog/modules/karajan/resources/sys-common.xml
===================================================================
--- trunk/current/src/cog/modules/karajan/resources/sys-common.xml 2008-02-22 16:31:35 UTC (rev 1907)
+++ trunk/current/src/cog/modules/karajan/resources/sys-common.xml 2008-02-22 16:32:52 UTC (rev 1908)
@@ -47,6 +47,7 @@
</namespace>
<export name="numberFormat"><elementDef classname="org.globus.cog.karajan.workflow.nodes.functions.Misc"/></export>
+ <export name="dateFormat"><elementDef classname="org.globus.cog.karajan.workflow.nodes.functions.Misc"/></export>
<export name="contains"><elementDef classname="org.globus.cog.karajan.workflow.nodes.functions.Misc"/></export>
<export name="file:contains" restricted="true"><elementDef classname="org.globus.cog.karajan.workflow.nodes.functions.Misc"/></export>
<export name="UID"><elementDef classname="org.globus.cog.karajan.workflow.nodes.functions.Misc"/></export>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2007-02-14 18:50:12
|
Revision: 1581
http://svn.sourceforge.net/cogkit/?rev=1581&view=rev
Author: hategan
Date: 2007-02-14 10:50:00 -0800 (Wed, 14 Feb 2007)
Log Message:
-----------
fixed comments
Modified Paths:
--------------
trunk/current/src/cog/modules/karajan/CHANGES.txt
trunk/current/src/cog/modules/karajan/resources/karajan-language.gr
trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/translator/atoms/MultiLineComment.java
Modified: trunk/current/src/cog/modules/karajan/CHANGES.txt
===================================================================
--- trunk/current/src/cog/modules/karajan/CHANGES.txt 2007-02-13 18:19:18 UTC (rev 1580)
+++ trunk/current/src/cog/modules/karajan/CHANGES.txt 2007-02-14 18:50:00 UTC (rev 1581)
@@ -1,3 +1,7 @@
+(02/14/2007)
+
+*** Fixed some issues with comments not being parsed correctly
+
(02/05/2007)
*** Added file resource throttling
Modified: trunk/current/src/cog/modules/karajan/resources/karajan-language.gr
===================================================================
--- trunk/current/src/cog/modules/karajan/resources/karajan-language.gr 2007-02-13 18:19:18 UTC (rev 1580)
+++ trunk/current/src/cog/modules/karajan/resources/karajan-language.gr 2007-02-14 18:50:00 UTC (rev 1581)
@@ -30,7 +30,7 @@
separator := COMMASEP() | HVSPACES() ;
comment :=
- LITERAL("//") SINGLELINECOMMENT() |
+ LITERAL("//") SINGLELINECOMMENT() HVSPACES() |
LITERAL("/*") MULTILINECOMMENT() HVSPACES() ;
list := LITERAL("[") IDENTIFIER("kernel:quotedlist") BEGINELEMENT() moreItems LITERAL("]") ENDELEMENT() ;
Modified: trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/translator/atoms/MultiLineComment.java
===================================================================
--- trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/translator/atoms/MultiLineComment.java 2007-02-13 18:19:18 UTC (rev 1580)
+++ trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/translator/atoms/MultiLineComment.java 2007-02-14 18:50:00 UTC (rev 1581)
@@ -23,14 +23,14 @@
sb.append(c);
}
else if (context.tok.hasMoreTokens()) {
- c = context.tok.nextChar();
+ c = context.tok.peekChar();
if (c == '/') {
+ context.tok.nextChar();
stack.push(new Eval(sb.toString()));
return true;
}
else {
sb.append('*');
- sb.append(c);
}
}
else {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <b_...@us...> - 2008-03-15 19:10:29
|
Revision: 1935
http://cogkit.svn.sourceforge.net/cogkit/?rev=1935&view=rev
Author: b_z_c
Date: 2008-03-15 12:10:21 -0700 (Sat, 15 Mar 2008)
Log Message:
-----------
The WeightedHost scheduler now has a lower bound (of -10)
on scoring to reduce the effect of penalising a host in the case of a
large number of transient errors. Previously, a large number of
transient errors would push the score so low that the score would
take far too long to return to a more appropriate value.
Modified Paths:
--------------
trunk/current/src/cog/modules/karajan/CHANGES.txt
trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/scheduler/WeightedHost.java
Modified: trunk/current/src/cog/modules/karajan/CHANGES.txt
===================================================================
--- trunk/current/src/cog/modules/karajan/CHANGES.txt 2008-03-06 12:06:19 UTC (rev 1934)
+++ trunk/current/src/cog/modules/karajan/CHANGES.txt 2008-03-15 19:10:21 UTC (rev 1935)
@@ -1,3 +1,11 @@
+(03/15/2008)
+
+*** The WeightedHost scheduler now has a lower bound (of -10)
+ on scoring to reduce the effect of penalising a host in the case of a
+ large number of transient errors. Previously, a large number of
+ transient errors would push the score so low that the score would
+ take far too long to return to a more appropriate value.
+
(02/22/2008)
*** Added sys:dateFormat(pattern, value)
Modified: trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/scheduler/WeightedHost.java
===================================================================
--- trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/scheduler/WeightedHost.java 2008-03-06 12:06:19 UTC (rev 1934)
+++ trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/scheduler/WeightedHost.java 2008-03-15 19:10:21 UTC (rev 1935)
@@ -15,6 +15,9 @@
import org.globus.cog.karajan.util.BoundContact;
public class WeightedHost implements Comparable {
+
+ static final int MINWEIGHT = -10;
+
private BoundContact host;
private Double score;
private double tscore;
@@ -38,6 +41,7 @@
}
protected void setScore(double score) {
+ if(score<MINWEIGHT) score=MINWEIGHT;
this.score = new Double(score);
this.tscore = smooth(score);
}
@@ -132,4 +136,4 @@
public float getJobThrottle() {
return jobThrottle;
}
-}
\ No newline at end of file
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|