Peter,

[ .. assembly .. ]

Yes, but perhaps an Ant task before then.  Automation is more important
that interactive replacement.


The problem is it quickly requires human intervention for most things. ie Merging configuration and adding .jar files is simple enough but how do you manage dependencies between blocks. If you are replacing another block then it *should* be easy but it gets really tricky when you start moving beyond that.


P3) The FAQ needs to be updated.  Experience of "new guy" should be
incorporated into the faq/docs ("Woods for the Trees" anti-pattern).

+100

volunteering ? ;)

Perhaps a little with infrastructure.  How about we ask people we are
helping in the list to contribute what then feel to be a decent FAQ
point after we've helped them in the list.  Vinay's cryptic:

   "How does one service access the instance of another Service.?"

Is a good example of not knowig where to start (as we're all so familiar).


Im happy to answer questions if you want to create a list of them, chuck them in a faq.xml and get it generating stuff properly ;)


Cool will do. From now on can we compel newbies to FAQize their questions and the resulting answers to asist the FAQ program.

+1 Phoenix has needed this ever since we went from a 2-layer app to a
3-layer app. (About a year ago?). However before we can do this there is
2 issues we really need to resolve. One is the ClassLoader issue and the
other is the definition of the interface.

Re Interfaces, I'd like to see support for multiple versions of the same
interface.


Should be possible - especially as I no longer see apps sharing any classloader stuff. We can use the jdk1.3 Proxy stuff or BCEL to implement this I think.


Indeed.

Re Classloader, you know my daft ideas.  I'll re-read your RT thread,


promotion ? sorry still don't like that idea ;)

I don't like it anymore either, It was a cool trick bat had loads of downsides. Proxy of some sort is the answer.

The other is the definition of the interface. The problem arises is how do
we know when the interface has been invalidated? We could let the
application know with another Event listener interface but that seems
like overkill. The other alternative is to make it a Remote interface but
I know how much you hate that ;)

Invalidated?  You mean dependancies.  EJB need to know when Tomcat is
stopping?  Perhaps Tomcat can't stop until things that use it have?


This would actually make Phoenix's Application very similar to the notion of a Partition as per HP's CSF framework (and the Services JSR basis).


Is this a good thing or not ? Not sure. It could be painful because you could force a whole bunch of things to go down unecessarily when you want to swap an application.

It would be even worse when the application was a container (ie a servlet or mailet container) and the components it contained (servlet or mailet) depended on another application and that other application depended on on the container application.

ie in more simple terms

A and B are applications.
B depends on A
A contains P sub-component.
P depends on B

That is a very complex example. Not sure it would ever exist as it is circular.

So given this there are three options. 1. Have the interfaces throw a IllegalStateException when invalidated
2. Have the interfaces be a rmi Remote interface
3. Have the interfaces only accesible via a reflection-like ability (similar to JMX). eg


otherObject.invoke( "performAction", new Object[] { param1, param2 } );


(3) is too clunky for users in my mind.


Agree, but it would work.  Almost Bean Scripting Framework like. Hmmmm.

(1) encourages bad programming practices and could lead to faulty applications relatively easy.

Yup.

Thus (2) is the best one IMHO at this stage. It would also have the nice side-effect that we could federate servers. ie the ServletEngine may be on different host from MailetEngine but they could both talk as if they were on same machine.

Nooooooooooooo, RMI is flawed - it has that abominable RemoteException thing. Avalon Method Invocation (AMI) is what we want. What ever that is.

So maybe the rule would be that anything registered into the JNDI directory should be a Remote interface or something ?

I'm not sold on the need for a JNDI directory, but others are so I'll not resisit.

- Paul



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



Reply via email to