On Thu, Aug 29, 2002 at 08:51:17AM +0200, Tomasz Skutnik wrote:
> Hello.
> 
> As some of you recall 
> (http://www.mail-archive.com/avalon-users%40jakarta.apache.org/msg00163.html) 
> I've proposed some time ago contributing little Ant invoking server. But, 
> given Jeffs inspiration, here is what I was able to create in the spare 
> time I've had. This is generalized application invoker, based on Forehead 
> framework.
> 
> Application can be downloaded from 
> http://scooter.ext.e-point.pl/apprunner.tar.gz
> 
> Everything  is inside - just unpack to jakarta-avalon-apps/ CVS 
> directory and build (ant dist or ant sar). This is by no means complete 
> project, and I'm not going to stop it's development, but I think it's 
> the time to show it to the  world. Read docs, play with sample 
> configured apps, beware of multiple threads :) (see known issues section).
> 
> I post it as evaluation/demo, and do not expect it to be commited in
> soon, if at all (I'd even hold its commiting for some time because of 
> some *important* issues that need to be resolved - see inside docs). If
> someone is going to commit it anyway, please check if links for download
> page (which in fact doesn't work now for any Avalon application) and API
> documentation works.
> 
> I've tried to adhere to Jakarta standards as close as possible and
> comment havily, but as alway something could have slipped out of my
> hands, so any comments/improvements are welcome.

This is really cool :) Wheee..... Ant, Maven, starting instantly! Code
and docs look very snazzy too. Top stuff :)

Avalon dev people: if there's no objection, I'd like to add this to -apps
(it's 300k)

Actually it was a PITA to get working, because at first I didn't realise
you have to configure src/conf/*.properties files, and getting them wrong
results in rather cryptic errors from Phoenix. I never did get Checkstyle
working, and in the end just removed checkstyle.{conf,properties} from
src/conf.


There's one quite largish issue with Forehead. In
ForeheadAppRunnerServer.java line 444, you create a new Forehead object:

final Forehead forehead = new Forehead();

Then Maven comes along and does:

Forehead.getInstance().getClassLoader("root.maven")

And throws a NPE, because getInstance() returns an unconfigured Forehead
instance. Maven assumes that whatever configured Forehead, used it as a
singleton and configured Forehead.getInstance().

We can't just change the above line to:

final Forehead forehead = Forehead.getInstance();

because then we're reusing a single Forehead object for all hosted apps!
So whichever initializes first will configure Forehead, and then all
other apps die. In my case, Maven get configured first, and when I run
Ant, Maven gets called and breaks.

I haven't sufficiently grokked appserver and forehead to figure out who's
to blame. If Maven justified in assuming Forehead.getInstance() is
configured?

Anyway, very cool :)


--Jeff

> Thanks.
> 
> Have as much fun, as I had coding this project and learning Avalon.
> 
> -- 
> 
> Tomasz Skutnik, R&D Director, www.e-point.pl
> tel +48 (22) 853 48 30, mob +48 501 555 705, fax +48 (22) 853 48 30
> e-point S.A., ul. Filona 16, 02-658 Warsaw, Poland
> PGP/GPG public key: http://scooter.ext.e-point.pl/tomasz.skutnik.gpg

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

Reply via email to