I've been sold on the concept of component oriented design, and read through the Avalon online documentation. It's obviously a bit overwhelming at first.
:D. Welcome!
Where does aspect-orientedness fit in?
Generally, it fits real nicely into a component-oriented context. Unfortunately, avalon has little builtin support for AOP.
If I want to add method tracing, security, etc. to my Components, do I have to hand-code that?
basically, yes. Of course, if you use a toolkit such as AspectWerkz (aspectwerkz.codehaus.org) or Nanning (nanning.codehaus.org), its just as easy to aspect an avalon-based webapp as it is aspecting any other webapp.
My simple servlet uses Tomcat and POJO's. I will be enhancing another existing application currently uses JBoss, Struts and EJB's. Where exactly do these technologies fit into a Component architecture?
that's a lot of questions! Piece by piece answers...
* Tomcat: you can host tomcat inside an avalon container, or you can host an avalon container inside a tomcat-hosted servlet.
* POJOs: you can create avalonized wrappers around your POJOs, or you can create POJO wrappers around your avalon components, or you can use any number of strategies (see http://nagoya.apache.org/wiki/apachewiki.cgi?AvalonAndOtherShinyContainers).
* JBoss: you can run Avalon-Merlin as a JBoss service (work in progress I believe), or you can have JBoss-hosted and Avalon-hosted materials communicate via something like JNDI or AltRMI. You can also drop the entire J2EE concept and develop your application using an Avalon container.
* Struts: some people have integrated struts and avalon, and it worked well. I don't know much about struts myself. A 'competing' project built on avalon is cocoon (cocoon.apache.org).
* EJBs: EJBs stink (see http://nagoya.apache.org/wiki/apachewiki.cgi?AvalonYouMakeTheDecision), but since most people seem to be stuck using them....you cannot run EJBs inside an avalon container. You can, however, embed a lightweight avalon container like Avalon-Fortress inside an EJB.
> And how do I configure and implement Components in C/C++, .NET, or
something else?
Avalon.Net (to-be-renamed) is a work in progress; it lives in the avalon-sandbox CVS. Someone just announced a C++ port of avalon on the development list.
Or is Avalon Java-specific (hence being part of Jakarta).
Note avalon is no longer part of jakarta; we're sister projects to jakarta. Not that it matters much :D
How does one unit-test Components?
in much the same way as POJOs. There exists utility code (excalibur-testcase, merlin-testcase, PUnit) to make it easier though. Take a look at http://avalon.apache.org/merlin/starting/advanced/unit/index.html
I am aware of the Keel framework, but I don't understand how it replaces, interoperates or solves different problems than Avalon.
Keel takes an avalon container (Avalon-Fortress), then extends it, and puts a large array of components inside that container for you. It is sort of a "component-oriented kitchen sink". That's not meant to sound negative BTW. With avalon you have to find, configure and install all your components yourself; Keel comes with a bunch of quality components, and many other features.
There's a lot of questions there, so if someone can explain to me how my PDF request servlet should be Componentized and where the replacable Tomcat and services that my POJO's implement, I would appreciate it. So then I should be able to replace Tomcat with JBoss, WebSphere, etc. seamlessly?
uhm...you can replace tomcat with JBoss, WebSphere, etc, seamlessly, without needing avalon. They all implement the servlet spec.
Add logging, security, etc.?
Do note that you can add logging, security, etc, using J2EE APIs and protocols. J2EE is a rather exhaustive and complete platform :D
What is step 1 for developing a webapp?
1) Develop a console application. Decouple your components from the web, following the tutorials at http://avalon.apache.org/merlin/starting/.
2) When that works, pick up one of the servlet examples floating around in the avalon mailing list archives, and adapt it so that your components are loaded and run. Or, alternatively, use Keel.
3) Take a look at cocoon, a famous avalon-based web application.
or at least, something like that! And, when you bump into problems, come back here with more questions ;)
cheers,
- LSD
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
