[Biojava-dev] [proposal] Commons Exec (fwd)
Michael Heuer
heuermh at acm.org
Thu Jul 28 23:47:17 EDT 2005
Forwarding this proposal from the Apache commons-dev mailing list for a
commons component to support executing external processes. Chances are
this could be something good to build on for support in biojava in
dealing with external bioinformatics applications.
The code will intially live in the commons sandbox, see
> http://svn.apache.org/viewcvs.cgi/jakarta/commons/sandbox/exec/
michael
---------- Forwarded message ----------
Date: Fri, 29 Jul 2005 03:32:38 +0200
From: Niklas Gustavsson <niklas at protocol7.com>
Reply-To: Jakarta Commons Developers List <commons-dev at jakarta.apache.org>
To: commons-dev at jakarta.apache.org
Subject: [proposal] Commons Exec
Proposal for Exec Package
Rationale
------------------------------------
Executing external processes from Java is a well-known problem area. It
is inheriently platform dependent and requires the developer to know and
test for platform specific behaviors, for example using cmd.exe on
Windows or limited buffer sizes causing deadlocks. The JRE support for
this is very limited, albeit better with the new Java SE 1.5
ProcessBuilder class.
Reliably executing external processes can also require knowledge of the
environment variables before or after the command is executed. In J2SE
1.1-1.4 there is not support for this, since the method,
System.getenv(), for retriving environment variables is deprecated.
The are currently several different libraries that for their own
purposes has implemented frameworks around Runtime.exec() to handle the
various issue outlined above. The proposed project should aim at
coordinating and learning from these initatives to create and maintain a
simple, reusable and well-tested package. Since some of the more
problematic platforms are not readily available, it is my hope that the
broad Apache community can be a great help.
Scope of the package
------------------------------------
The package shall create and maintain a process execution package
written in the Java language to be distributed under the ASF license.
The Java code might also be complemented with scripts (e.g. Perl
scripts) to fully enable execution on some operating systems. The
package should aim for supporting a wide range of operating systems
while still having a consistent API for all platforms.
Interaction with other packages
------------------------------------
This package will using Commons Logging for logging debug and error
information.
Identify the initial source for the package
------------------------------------
Several implementations exists and should be researched before
finalizing the design:
* Ant 1.X contains probably the most mature code within the exec task.
This code has been stripped of the Ant specifics and cleaned up by
Niklas Gustavsson and can be donated under the ASF license.
* Ant 2.X contains a new exec implementation, especially targeted for
reusability (see http://ant.apache.org/ant2/actionlist.html#exec).
* plexus-utils has a similar but slimmer implementation than Ant and
has also indicated interest through Trygve Laugstøl the particate in the
development.
Identify the base name for the package
------------------------------------
org.apache.commons.exec
Identify the coding conventions for this package
------------------------------------
Sun conventions.
Identify any Jakarta-Commons resources to be created
------------------------------------
* Mailing list
Until traffic justifies, the package will use the Jakarta-Commons lists
for communications.
* SVN repositories
A new SVN directory under Commons Sandbox
* Bugzilla
The package should be listed as a component of under the Jakarta-Commons
Bugzilla entry.
* Integration test builds
If possible, some form of integration test builds on various platforms
(like the SourceForge compile farm) would be invaluable. I'm unsure of
what for example Gump and the current Apache infrastructure has to offer
in this area.
Identify the initial set of committers to be listed in the Status File
------------------------------------
Brett Porter
Stefan Bodewig
Niklas Gustavsson (I'm not currently an Apache commiter so I don't know
if this is possible)
/niklas
---------------------
Niklas Gustavsson
niklas at protocol7.com
http://www.protocol7.com
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe at jakarta.apache.org
For additional commands, e-mail: commons-dev-help at jakarta.apache.org
More information about the biojava-dev
mailing list