svn commit: rev 35547 - gump/tags/CVS2SVN

2004-08-02 Thread None
Author: None
Date: Sun Aug  1 12:54:24 2004
New Revision: 35547

Added:
   gump/tags/CVS2SVN/
  - copied from rev 35546, gump/trunk/
Log:
Tag the move from CVS to SVN.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



svn commit: rev 35552 - in gump/trunk: . bin cron python/gump test

2004-08-02 Thread None
Author: None
Date: Sun Aug  1 17:30:58 2004
New Revision: 35552

Added:
   gump/trunk/bin/build.py
   gump/trunk/bin/check.py
   gump/trunk/bin/env.py
   gump/trunk/bin/integrate.py
   gump/trunk/bin/preview.py
   gump/trunk/bin/redo.py
   gump/trunk/bin/update.py
   gump/trunk/cron/
   gump/trunk/cron/gumpy.bat
  - copied unchanged from rev 35545, gump/trunk/gumpy.bat
   gump/trunk/cron/gumpy.py
  - copied unchanged from rev 35545, gump/trunk/gumpy.py
   gump/trunk/cron/gumpy.sh
  - copied unchanged from rev 35545, gump/trunk/gumpy.sh
   gump/trunk/test/
   gump/trunk/test/gumpytest.bat
  - copied unchanged from rev 35545, gump/trunk/gumpytest.bat
   gump/trunk/test/gumpytest.sh
  - copied unchanged from rev 35545, gump/trunk/gumpytest.sh
Removed:
   gump/trunk/desktop.ini
   gump/trunk/findproject.sh
   gump/trunk/forrest-targets.ent
   gump/trunk/forrest.properties
   gump/trunk/gen.bat
   gump/trunk/gen.sh
   gump/trunk/global-workspace.xml
   gump/trunk/gump.sh
   gump/trunk/gump.xml
   gump/trunk/gumpy.bat
   gump/trunk/gumpy.py
   gump/trunk/gumpy.sh
   gump/trunk/gumpytest.bat
   gump/trunk/gumpytest.sh
   gump/trunk/minimal-workspace.xml
   gump/trunk/nag.pl
   gump/trunk/python/gump/build.py
   gump/trunk/python/gump/check.py
   gump/trunk/python/gump/env.py
   gump/trunk/python/gump/integrate.py
   gump/trunk/python/gump/preview.py
   gump/trunk/python/gump/redo.py
   gump/trunk/python/gump/update.py
   gump/trunk/test-workspace.xml
Log:
More removal of TRADIONAL+METADATA
More re-org.

Added: gump/trunk/bin/build.py
==
--- (empty file)
+++ gump/trunk/bin/build.py Sun Aug  1 17:30:58 2004
@@ -0,0 +1,73 @@
+#!/usr/bin/python
+
+# Copyright 2003-2004 The Apache Software Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the License);
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# 
+# http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an AS IS BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+
+This is one commandline entrypoint into gump.
+
+The workspace is metadata loaded then various
+projects are built. No source control updates
+are performed. 
+
+
+
+import os.path
+import sys
+
+from gump import log
+from gump.core.gumpinit import gumpinit
+import gump.run.gumprun
+import gump.run.options
+from gump.core.commandLine import handleArgv
+from gump.runner.runner import getRunner
+from gump.loader.loader import WorkspaceLoader
+
+
+###
+# Functions
+###
+
+# static void main()
+if __name__=='__main__':
+gumpinit()
+
+# Process command line
+(args,options) = handleArgv(sys.argv)
+ws=args[0]
+ps=args[1]
+
+# get parsed workspace definition
+workspace=WorkspaceLoader(options.isCache()).load(ws)
+
+# Ensure we use text, not xdocs...
+options.setText(True)
+
+# 
+options.setObjectives(gump.run.options.OBJECTIVE_BUILD)
+
+# The Run Details...
+run=gump.run.gumprun.GumpRun(workspace,ps,options)
+
+#
+#Perform this integration run...
+#
+result = getRunner(run).perform()
+
+#
+log.info('Gump Build complete. Exit code:' + str(result))
+  
+# bye!
+sys.exit(result)
\ No newline at end of file

Added: gump/trunk/bin/check.py
==
--- (empty file)
+++ gump/trunk/bin/check.py Sun Aug  1 17:30:58 2004
@@ -0,0 +1,73 @@
+#!/usr/bin/python
+
+# Copyright 2003-2004 The Apache Software Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the License);
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# 
+# http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an AS IS BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+Checks that the Gump definitions are ok.
+
+The workspace is loaded into memory, rudimentary
+checks occur, and the output tree is documented
+(e.g. via forrest).
+
+
+
+import os.path
+import sys
+
+from gump import log
+from gump.core.gumpinit import gumpinit
+from gump.runner.runner import getRunner
+import gump.run.options
+import 

svn commit: rev 35551 - in gump/trunk: . dtd editor java profile project repository resources server stylesheet tracker

2004-08-02 Thread None
Author: None
Date: Sun Aug  1 17:17:10 2004
New Revision: 35551

Removed:
   gump/trunk/PC103.xml
   gump/trunk/build.xml
   gump/trunk/cocoondev.xml
   gump/trunk/dtd/
   gump/trunk/editor/
   gump/trunk/java/
   gump/trunk/profile/
   gump/trunk/project/
   gump/trunk/repository/
   gump/trunk/resources/
   gump/trunk/rubix.xml
   gump/trunk/rubypad.xml
   gump/trunk/server/
   gump/trunk/status.xml
   gump/trunk/stylesheet/
   gump/trunk/tracker/
Log:
Starting the removal of TRADITIONAL and METADATA (which resides in CVS)


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



svn commit: rev 35563 - in gump/trunk: cron metadata

2004-08-02 Thread None
Author: None
Date: Sun Aug  1 20:10:20 2004
New Revision: 35563

Added:
   gump/trunk/metadata/
   gump/trunk/metadata/README
Modified:
   gump/trunk/cron/gump.py
Log:
Migrating to SVN+CVS from CVS

Modified: gump/trunk/cron/gump.py
==
Binary files. No diff available.

Added: gump/trunk/metadata/README
==
--- (empty file)
+++ gump/trunk/metadata/README  Sun Aug  1 20:10:20 2004
@@ -0,0 +1,3 @@
+Note: Currently Gump code resides in SVN, yet Gump metadata still resides in CVS.
+
+As such gump will update itself from SVN, then update metadata/ from CVS.
\ No newline at end of file

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



svn commit: rev 35560 - in gump/trunk/src/documentation/content/xdocs: . traditional

2004-08-02 Thread None
Author: None
Date: Sun Aug  1 19:31:45 2004
New Revision: 35560

Removed:
   gump/trunk/src/documentation/content/xdocs/traditional/
Modified:
   gump/trunk/src/documentation/content/xdocs/site.xml
Log:
Remove 'traditional' from documentation.


Modified: gump/trunk/src/documentation/content/xdocs/site.xml
==
--- gump/trunk/src/documentation/content/xdocs/site.xml (original)
+++ gump/trunk/src/documentation/content/xdocs/site.xml Sun Aug  1 19:31:45 2004
@@ -64,11 +64,6 @@
goodpractices href=metadata/practices.html label=Good Practices/
/om
 
-   traditional label=Traditional tab=traditional
-   overview href=traditional/index.html label=Overview/
-   usage href=traditional/usage.html label=Usage/
-   /traditional
-   
python label=Python tab=python
overview href=python/index.html label=Overview/
usage href=python/usage.html label=Usage/

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



svn commit: rev 35559 - in gump/trunk: bin cron python python/storage/ruper python/test

2004-08-02 Thread None
Author: None
Date: Sun Aug  1 19:20:53 2004
New Revision: 35559

Added:
   gump/trunk/bin/exe.py
  - copied unchanged from rev 35545, gump/trunk/python/exe.py
   gump/trunk/bin/gump.bat
  - copied unchanged from rev 35545, gump/trunk/bin/gmp.bat
   gump/trunk/bin/gump.py
   gump/trunk/bin/gump.sh
  - copied, changed from rev 35545, gump/trunk/bin/gmp.sh
   gump/trunk/cron/gump.bat
  - copied, changed from rev 35552, gump/trunk/cron/gumpy.bat
   gump/trunk/cron/gump.py
  - copied unchanged from rev 35552, gump/trunk/cron/gumpy.py
   gump/trunk/cron/gump.sh
  - copied, changed from rev 35552, gump/trunk/cron/gumpy.sh
Removed:
   gump/trunk/bin/gmp.bat
   gump/trunk/bin/gmp.sh
   gump/trunk/cron/gumpy.bat
   gump/trunk/cron/gumpy.py
   gump/trunk/cron/gumpy.sh
   gump/trunk/python/exe.py
   gump/trunk/python/gmp.py
   gump/trunk/python/storage/ruper/
   gump/trunk/python/test/.cvsignore
Log:
Re-organization

Added: gump/trunk/bin/gump.py
==
--- (empty file)
+++ gump/trunk/bin/gump.py  Sun Aug  1 19:20:53 2004
@@ -0,0 +1,213 @@
+#!/bin/bash
+#
+#   Copyright 2003-2004 The Apache Software Foundation
+#
+#   Licensed under the Apache License, Version 2.0 (the License);
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an AS IS BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+#
+# $Header: /home/stefano/cvs/gump/python/gmp.py,v 1.8 2004/04/26 01:00:33 ajack Exp $
+
+
+  This is the commandline entrypoint into Python Gump as a
+  build system (as opposed to a cronned CI tool).
+  
+  It works similarly to cvs, as it needs to be given the action
+  to do, and it needs to be run in the correct directory
+  (workspace or project).
+
+
+import os.path
+import os
+import sys
+import socket
+import time
+import signal
+import smtplib
+import StringIO
+from xml.dom import minidom
+
+def runCommand(command,args='',dir=None,outputFile=None):
+ Run a command, and check the result... 
+
+#
+originalCWD=None
+if dir: 
+originalCWD=os.getcwd()
+cwdpath=os.path.abspath(dir)
+try:
+if not os.path.exists(cwdpath): os.makedirs(dir)
+os.chdir(cwdpath)
+except Exception, details :
+# Log the problem and re-raise
+return 0
+  
+try:
+
+fullCommand = command + ' ' + args
+
+#
+# Execute Command  Calculate Exit Code
+#
+systemReturn=os.system(fullCommand)
+
+if not os.name == 'dos' and not os.name == 'nt':
+waitcode=systemReturn
+
+#
+# The return code (from system = from wait) is (on Unix):
+#
+#a 16 bit number
+#top byte=exit status
+#low byte=signal that killed it
+#
+exit_code=(((waitcode  0xFF00)  8)  0xFF)
+
+else:
+exit_code=systemReturn
+
+finally:
+if originalCWD: os.chdir(originalCWD)
+  
+return exit_code
+
+def callGmpCommand(ws,command,projects,iargs):
+
+iargs+=' --text'
+
+#
+# Actually run the Gump command
+#
+command=os.path.join(os.environ['GUMP_HOME'],'python/gump/'+command+'.py')
+
+exitValue = runCommand('python '+command+' -w '+ws+' '+projects, iargs, 'python')
+
+return exitValue
+
+
+if not os.environ.has_key('GUMP_HOME'):
+print 'Please set GUMP_HOME to where Gump is installed.'
+sys.exit(1)
+
+# Allow a lock
+lockFile=os.path.abspath('gmp.lock')
+if os.path.exists(lockFile):
+# :TODO: Ought we look at the contents, get the PID of the
+# supposed other Gump, and determine if it is still alive
+# or not?
+print The lock file [%s] exists. 
+Either Gump is still running, or it terminated very abnormally.
+Please resolve this (waiting or removing the lock file) before retrying.
+ % lockFile
+sys.exit(1)
+
+# Write this PID into a lock file
+lock=open(lockFile,'w')
+lock.write(`os.getpid()`)
+lock.close()
+
+result=0
+
+args=sys.argv
+try:
+# print 'Apache Gump (A multi-project builder)'
+
+try:
+# Process Environment
+hostname = socket.gethostname()
+
+# The path of this command
+gmpPath = os.path.abspath(args[0])
+del args[0] 
+   
+# Workspace is the `hostname`.xml or workspace.xml, 
+# unless overridden
+workspaceName = hostname + '.xml'
+if not 

svn commit: rev 35564 - gump/trunk/cron

2004-08-02 Thread None
Author: None
Date: Sun Aug  1 20:34:16 2004
New Revision: 35564

Modified:
   gump/trunk/cron/gump.py
Log:
Preset svnExit

Modified: gump/trunk/cron/gump.py
==
Binary files. No diff available.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



svn commit: rev 35566 - gump/trunk/cron

2004-08-02 Thread None
Author: None
Date: Sun Aug  1 20:45:58 2004
New Revision: 35566

Modified:
   gump/trunk/cron/gump.py
Log:
Start out in Gump's HOME dir.

Modified: gump/trunk/cron/gump.py
==
Binary files. No diff available.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



cvs commit: gump/template/xhtml/css style.css

2004-08-02 Thread ajack
ajack   2004/08/02 07:06:56

  Modified:..cvsignore
  Removed: stylesheet move.xsl sedmap.xsl nobuild-projects.xsl
win2k.xsl build.xsl deliver-local.xsl nag.xsl
publish.xsl update.xsl winxp.xsl ant-build.xsl
xref.xsl pubreport.xsl jakarta.xsl pubdocs.xsl
bash.xsl
   python/gump/test/resources/complete1 module1.xml broken2.xml
artifact_repository1.xml server2.xml profile.xml
download1.xml maven1.xml module2.xml
svn_repository1.xml package1.xml broken1.xml
svn_module1.xml tracker1.xml module4.xml .cvsignore
server1.xml repository1.xml alias1.xml module5.xml
server3.xml module3.xml workspace.xml
   python/gump .cvsignore env.py update.py preview.py build.py
__init__.py integrate.py check.py redo.py
   python/gump/svg __init__.py .cvsignore depdiag.py scale.py
drawing.py svg.py
   src/documentation skinconf.xml
   python/gump/repository .cvsignore artifact.py __init__.py
publisher.py
   python/gump/syndication __init__.py abstract.py rss.py
.cvsignore atom.py syndicator.py
   python/gump/test/resources/full1 workspace.xml server1.xml
server2.xml module2.xml svn_module1.xml
package1.xml broken1.xml tracker1.xml broken2.xml
server3.xml artifact_repository1.xml maven1.xml
module3.xml module4.xml alias1.xml module5.xml
.cvsignore download1.xml profile.xml
svn_repository1.xml module1.xml repository1.xml
   python/gump/storage gen.py orphans.py .cvsignore
   template/forrest status.xml .cvsignore build.xml
forrest.properties skinconf.xml forrest-targets.ent
   template/xhtml/images icon.png gump-logo.png
PythonPowered.gif apache.png
   python/gump/model tracker.py repository.py workspace.py
property.py builder.py propagation.py object.py
state.py profile.py server.py stats.py depend.py
.cvsignore misc.py module.py project.py __init__.py
   src/documentation/content/xdocs gettingstarted.xml faq.xml
bylaws.xml index.xml tabs.xml why.xml mail.xml
nagged.xml whoweare.xml status.xml site.xml
   python/gump/run __init__.py actor.py gumpenv.py .cvsignore
options.py gumprun.py gumpset.py
   python/gump/core config.py __init__.py commandLine.py
.cvsignore gumpinit.py
   python/gump/gui/images module.bmp back.bmp project_ex.bmp
.cvsignore module_ex.bmp error.bmp exports.bmp
run.bmp help.bmp warning.bmp gen.bmp property.bmp
project.bmp workspace.bmp update.bmp prereqs.bmp
gump.bmp info.bmp fatal.bmp referenced.bmp
console.bmp dependencies.bmp debug.bmp
classpath.bmp
   python/gump/test resolving.py svg.py tools.py stats.py
artifacts.py __init__.py resulting.py loading.py
threads.py xref.py updater.py integrator.py
timing.py launching.py model.py diagram.py maven.py
documenter.py drawing.py pyunit.py notifying.py
.cvsignore xdocs.py unicode.py syndicator.py
utils.py language.py sync.py
   python/gump/document __init__.py .cvsignore resolver.py
documenter.py
   python/gump/process __init__.py launcher.py .cvsignore
command.py
   python/gump/build maven.py ant.py script.py __init__.py
builder.py .cvsignore
   python/tool commitCheck.py .cvsignore __init__.py
profileResults.py
   python/gump/test/resources/circular1 workspace.xml
repository.xml project2.xml project1.xml
profile.xml
   java Module.java Workspace.java Repository.java
Server.java Launcher.java LocalCheck.java
Project.java Jenny.java
   python/gump/threads .cvsignore __init__.py tools.py
   python/gump/results __init__.py .cvsignore loader.py
resulter.py model.py
   python   .cvsignore header.txt gmp.py exe.py
   src/documentation/content/xdocs/metadata 

Re: re-org

2004-08-02 Thread Adam R. B. Jack
It seems the move to SVN+CVS wasn't too painful to implement in gump.py 
(I'm dropping the gumpy for gump these days) but the re-organization is 
causing more grief than I'd have hoped for. I (very foolishly) made some 
changes to Brutus before having it far enough along, and things are broken 
right now. I think I need to implement a $GUMP_HOME and key everything off 
that. I'll work on that this afternoon.

BTW: With SVN not being able to be so open to all, it seems we were spot 
on to keep metadata in CVS.

regards
Adam
--
Have you Gump'ed your code today?
http://gump.apache.org
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


using maven+svn docs?

2004-08-02 Thread Leo Simons
Hi gang!
excalibur has moved to svn, and its build is now maven-only. I need to 
update the stale descriptors. Do we have some user docs that'd help me 
migrate? Mail archive pointers?

thx,
- LSD
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: using maven+svn docs?

2004-08-02 Thread Adam R. B. Jack
excalibur has moved to svn, and its build is now maven-only. I need to update 
the stale descriptors. Do we have some user docs that'd help me migrate? Mail 
archive pointers?
This is what we have so far, it isn't targetted at a conversion (althogu 
that is a good idea to add).

http://gump.apache.org/metadata/maven.html
regards
Adam
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: [VOTE] Give Adam Jack root access to brutus

2004-08-02 Thread Martin van den Bemt
Lost the initial vote, so don't know if I already did, but here is my
+1..

Mvgr,
Martin

On Mon, 2004-08-02 at 16:28, Leo Simons wrote:
 Scott Sanders wrote:
  I would like to propose that Adam is given root privileges on brutus so 
  that he can 'scratch his itches' WRT gump infrastructure.
 
 +1
 
 MWUHAHAHAA!
 
 - LSD
 
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
-- 
Mvgr,
Martin


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



[dom4j] add jaxme api to project descriptor

2004-08-02 Thread Maarten Coene
Hi,
I need the jaxme api to be added to the dom4j project descriptor. Can 
someone do this for me?

thanks,
Maarten

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: forrestbot on brutus

2004-08-02 Thread David Crossley
Leo Simons wrote:
 Dave Brondsema wrote:
  Greetings gump-ers, from the other half of your namesake.
  
  I sent the following to infrastructure and they suggested running it on 
  brutus.  I wouldn't have any problem with that.
  
  We at Forrest would like to get an ASF-wide forrestbot installation set
  up.
 
 please understand that brutus is untrusted. We shouldn't have brutus 
 autopublish results to ASF websites (which would mean an SSH connection 
 from brutus to minotaur, which wouldn't be nice).
 
 other than that, no problems. Just list what you need...I'd prefer to 
 just create an account and webspace and have the forrest guys manage the 
 forrest bot...

(Hi all, i just joined generalATgump ... been meaning to do so
for ages. We had talked in the past about helping Gump with a
Forrest webapp for other purposes.)

Leo, we had an excellent discussion on infra@ about ASF publishing
of websites (see forrestbot thread). There were good outcomes.

We do *not* want to publish anything from brutus to minotaur.
The infrastructure discussion suggested that we cooperate with
Gump and use brutus to conduct an experimental install of the
forrestbot webapp interface and of the forrestbot production
system. Later there would be a trusted machine where we could
run an ASF forrestbot.

-- 
David Crossley


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



[RT] (again) Cause determination

2004-08-02 Thread Adam R. B. Jack
As we've discussed before...
90% of the time when a project, that has been successfully built, starts 
failing, it is 'cos of a contract shift (break/change) below it. We 
proceed to notify the project, but often those folks don't have the 
Gump itch to root out the cause  zap it.

I think it is time to start to teach Gump the skill of notifying the 
correct pair. I don't think this will be simple, but I think we can and 
ought start working on putting the pieces in place to crack it.

Initially, I could see us having a system whereby each 'issue' is unqiuely 
identified, and stored in a datbase (RDBMS, for us to query) if not JIRA 
(if not both). I think Gump ought be 'aware' of issues, and notify to all 
participants (via cross posting), not just single projects.

Then, I think we need to do what (I beleive) Leo suggested, which is 
output parsing. The really is no reason why we can't parse Ant output (or 
Maven, or ...) and look for key indicators. We ought be able to match this 
to Rhino @ Mozilla. Even if we daren't automate the process of 'assigning 
participation in cause', maybe it could be used to prompt humans to take 
such action.

[javac] 
/usr/local/gump/public/workspace/jakarta-bsf/src/org/apache/bsf/engines/javascript/JavaScriptEngine.java:130: 
call(java.lang.Object,org.mozilla.javascript.Context,org.mozilla.javascript.Scriptable,java.lang.Object,java.lang.Object[]) 
in org.mozilla.javascript.ScriptRuntime cannot be applied to 
(org.mozilla.javascript.Context,java.lang.Object,org.mozilla.javascript.Scriptable,java.lang.Object[],nulltype)
[javac] retval = ScriptRuntime.call(cx, fun, global, args, 
null);
[javac]

So, do we start work with RDBMS, and/or attempt to integrate into 
JIRA/others, or attempt to parse/comprehend outputs?

regards
Adam
-- Have you Gump'ed your code today?
http://gump.apache.org
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]