Other designs to consider Configurable/Configuration
> >http://jakarta.apache.org/avalon/api/org/apache/avalon/framework/configuration/Configurable.html > >http://jakarta.apache.org/avalon/api/org/apache/avalon/framework/configuration/Configuration.html Parameterizable/Parameters > >http://jakarta.apache.org/avalon/api/org/apache/avalon/framework/configuration/Parameterizable.html > >http://jakarta.apache.org/avalon/api/org/apache/avalon/framework/configuration/Parameters.html I find the Apache Avalon project to be completely full of good ideas and full of completely unusable implementation. michael On Tue, 14 Jan 2003, Patrick McConnell wrote: > > What I have written provides two essential base classes: Program and > Parameters. The Program class provides the functionality for launching a > program and capturing output. I should also put in hooks for handling the > input and output as streams as an alternative to capturing it in memory. > The Parameters class builds command arguments based on the fields of the > extending class using reflection. It provides some flexibility for > determining what the flags and delimitters look like. There has been > discussion to change the implementation somewhat to use jakarta's CLI > library, and I think a hybrid of the two would be appropriate. > > I have written Program and Parameters implementations for NCBI's blastall > and formatdb programs. Now, after chatting with Jason Stajich here at > Duke, I am working on a flexible queueing system for Programs. This code > isn't complete yet, though. > > So, if everyone likes this framework for launching programs, I'd be glad to > donate it to BioJava. If people don't like it, I'll change it based on > suggestions. Whomever is interested, please check out: > http://www.dbsr.duke.edu/software/blast . My code is fully documented, and > I have added a couple examples that demonstrate the ease of launching > blast. > > As to the XML description of program parameters, I think that is a good > idea, and can be a factory method in my Parameters class. The method takes > in the XML somehow (File or Stream or whatever) and returns a Parameters > object. But, I know that some people would prefer to handle the Parameters > internally with code instead of externally in a File. So, we should not > limit ourselves to a single approach. > > Thanks! > > -Patrick > > > > > > "Schreiber, Mark" <[EMAIL PROTECTED]>@biojava.org on > 01/13/2003 03:08:08 PM > > Sent by: [EMAIL PROTECTED] > > > To: "Patrick McConnell" <[EMAIL PROTECTED]> > cc: <[EMAIL PROTECTED]> > > Subject: RE: [Biojava-l] library for running blast and formatdb > > One thing sorely missing from BioJava is the ability to launch and > capture the results of common bioinformatics programs. I know Java isn't > the best at this but it's not that bad. It's also needed if you want to > develop pipeline type applications. > > Would it be possible to get some kind of over-arching interface based > API so that services can be made available with similar interfaces. > > Possibly a Service or Program interface a Paramater list or map, some > kind of result stream? > > Just my $0.02 > > - Mark > > > -----Original Message----- > > From: Patrick McConnell [mailto:[EMAIL PROTECTED]] > > Sent: Tuesday, 14 January 2003 4:15 a.m. > > To: [EMAIL PROTECTED] > > Subject: Re: [Biojava-l] library for running blast and formatdb > > > > > > > > > > >I suppose it's a matter of another external dependency vs. > > reinvented > > >utility code in biojava . . . Would it make sense to merge > > the better > > >qualities of the two? > > > > The CLI project looks like it is quite flexible and robust. > > But, with this, it is somewhat complex. This is in contrast > > to the simplicity of creating parameters via reflection. I > > think that these two methods could be effectively combined so > > that we gain the simplicty of reflection with the flexibility > > of CLI. The base parameters class can use CLI to build its > > parameters. As an option, it can build CLI options via > > reflection for simplicity. When users extend the base class, > > they can utilize the flexibility of CLI if they need it, > > otherwise they can use reflection for a quick and dirty > > parameter parsing. The base class could even extend the > > Options class, so we are really working with a hybrid of the > > two. What does everyone think? > > > > -Patrick > > > > > > > > > > > > > > "Michael L. Heuer" <[EMAIL PROTECTED]>@shell3.shore.net> on > > 01/10/2003 05:18:52 PM > > > > Sent by: Michael Heuer <[EMAIL PROTECTED]> > > > > > > To: Patrick McConnell <[EMAIL PROTECTED]> > > cc: [EMAIL PROTECTED] > > > > Subject: Re: [Biojava-l] library for running blast and formatdb > > > > > > On Fri, 10 Jan 2003, Patrick McConnell wrote: > > > > > In the process, I developed some useful and flexible base > > classes for > > > formatting parameters and running programs. Parameters are > > > automatically converted to an argument array via reflection and > > > reading of standard out and standard error in separate threads is > > > handled automatically. > > > > The base classes are nice, but I prefer the design of > > > > > http://jakarta.apache.org/commons/cli > > > > a lot better for handling parameters. > > > > I suppose it's a matter of another external dependency vs. > > reinvented utility code in biojava . . . Would it make sense > > to merge the better qualities of the two? > > > > I also have a few simple classes for oneoff scripts with > > command line & logging facade support that I use all the time, see > > > > > http://www.shore.net/~heuermh/oneoff.tar.gz > > > > but they don't have any extra support for external programs. > > > > michael > > > > > > > > Check it out if you are interested: > > > http://www.dbsr.duke.edu/software/blast/default.htm . The full > > > source, javadocs, and binary class files are available. > > Also, if this > > > seems appropriate for BioJava, I have no problem donating it to the > > > cause. I think that at least the base classes, or some > > modification > > > of them, would be useful to others. > > > > > > Please email me with suggestions/comments, > > > > > > -Patrick McConnell > > > Duke Bioinformatics Shared Resource > > > [EMAIL PROTECTED] > > > > > > > > > _______________________________________________ > > > Biojava-l mailing list - [EMAIL PROTECTED] > > > http://biojava.org/mailman/listinfo/biojava-l > > > > > > > > > > > > > > > > > > > _______________________________________________ > > Biojava-l mailing list - [EMAIL PROTECTED] > > http://biojava.org/mailman/listinfo/biojava-l > > > ======================================================================= > Attention: The information contained in this message and/or attachments > from AgResearch Limited is intended only for the persons or entities > to which it is addressed and may contain confidential and/or privileged > material. Any review, retransmission, dissemination or other use of, or > taking of any action in reliance upon, this information by persons or > entities other than the intended recipients is prohibited by AgResearch > Limited. If you have received this message in error, please notify the > sender immediately. > ======================================================================= > > _______________________________________________ > Biojava-l mailing list - [EMAIL PROTECTED] > http://biojava.org/mailman/listinfo/biojava-l > > > > > > _______________________________________________ > Biojava-l mailing list - [EMAIL PROTECTED] > http://biojava.org/mailman/listinfo/biojava-l > _______________________________________________ Biojava-l mailing list - [EMAIL PROTECTED] http://biojava.org/mailman/listinfo/biojava-l
