The article linked below describes a "self-extracting jar" that might be a core to build such a utility around.
http://www.javaworld.com/javaworld/javatips/jw-javatip120.html I have to agree with some of the other posts about this not being a core Ant capability, although such a utility would be useful. IIRC, IBM's alphaworks had a java based installation tool as well. Might be worth a look. Ken At 06:56 PM 12/27/2001 +1100, you wrote: >(Cc'ing ant-dev for thread continuity.. please don't reply there:) > > >Incidentally, 'diff -N' is not a general, nor cross-platform, solution >to the problem of how to convey updates. > >I'd like to invent one though :) I was thinking along the lines of a >.jar file containing updates, with an Ant script, META-INF/control.xml, >which describes how the contents of the jar must be applied. > >Basically, a jar file that knows what to do with itself. Much like an >RPM or .deb file. > >These jars are 'applied' to a system by running another Ant script, >which: > > - optionally fetches the jar via a HTTP GET. > - verifies the jar signature > - unpacks the jar, and transfers control to META-INF/control.xml, > which: > - Ensures that the files to be replaced/patched validate against a > MD5 checksum (to be sure we're not overwriting modifications) > - If they do, replace/patch/remove them. > - Optionally do things like restart Tomcat, if the updates are for a > website. > - Control then passes back to the invoking script, which cleans up. > > >My primary use-case is that of distributing updates to a client-managed >website. Each 'update' consists of new/modified jars, a few JSPs, and >perhaps a web.xml modification. These can't be done via CVS because >they're behind a firewall, and can't be done with 'diff', because >they're on WinNT. Hence the need for a cross-platform mechanism for >applying self-contained updates. > > >Anyone know of something like this, or a better solution? If anyone's >interested, I have a prototype (without the jar signature verification >or MD5 checksumming), and would be happy to collaborate further in the >development of such a system. > > >--Jeff > > >On Thu, Dec 27, 2001 at 05:38:48PM +1100, Jeff Turner wrote: > > On Wed, Dec 26, 2001 at 08:36:15PM -0600, Steve Cohen wrote: > > > What is the best way for someone not a committer to submit a totally new > > > file for the ant CVS repository? Last time I did this, I just sent it > > > an an attachment with the bug report I'd submitted. > > > > > > However, this seems like a kludgey way to go about it. Ideally, it > > > seems to me, a new file should fit into the CVS patch file the way > > > anything else does. But of course, since you haven't checked it out, > > > CVS knows nothing about it and cvs diff won't work. Is there a way to > > > get this into the patches file? Or is sending it as a separate > > > attachment the only way? > > > > One way is to: > > > > a) get the cvsutils scripts from http://www.red-bean.com/cvsutils/. > > Worth getting anyway. I don't know what I'd do without 'cvsco' :) > > > > b) Do a 'cvsdo add <file>', which modifies CVS/Entries to mark the file > > as new (without contacting the server). > > > > c) Generate the diff with 'cvs -RuN' (Recursion, unified, New files). > > 'man diff' says: > > > > -N > > --new-file > > In directory comparison, if a file is found in only one directory, > > treat it as present but empty in the other directory. > > > > > > I can add this to the task guidelines if it's not deemed to hackish :) > > > > > > --Jeff > > > > -- > > To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> > > For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> > >-- >To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> >For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> ========================================================================== J. Kenneth Gentle (Ken) | Phone: (610) 255-0361 FAX:(610) 255-0418 Gentle Software, LLC | Email: [EMAIL PROTECTED] ========================================================================== -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
