Hello all, Sorry for so many questions in one go! Please take pity on someone just starting out with avalon.
Background: I'm tasked with developing a commercial grade / highly scalable server (kind of like a chat server but not) and I'd like to use avalon to do it. I plan to use the nio package in JDK1.4 for improved performance and scalability, and we will probably want to embed it in our existing app server using MBeans. I've read all the whitepapers / wiki docs, I've downloaded all the bits and run the Fortress hello world app, and I've had a play with various lifestyles and role configs. But there are a bunch of outstanding questions which might yet be show-stoppers for me and it's not obvious where I go from here. The documentation provides a great introduction, but there isn't a logical next step to understanding the system. Questions: 1) Which container? Fortress would be my first choice. The home page says it's not released yet, but it is available as a 1.0 binary so I assume this is just out of date docs. Is this true? Our time-scale is quite tight. I'm re-factoring an existing system and expect to have a working prototype in about a month. Given the fresh release and the lack of documentation does it make sense for me to use Fortress? Or should I stick with Excalibur? Or something else? What is the intended time-scale for filling in some of the gaps in the Fortress docs? 2) Running the Fortress Hello World demo. a) Unable to load class warnings This all compiled and ran fine but I did get some warnings like this: WARN 2003-07-15 13:06:45.392 [fortress.system.roles.de] (): Unable to load class org.apache.excalibur.xml.xpath.XPathProcessorImpl. Skipping. There is something in the mail archive about this which suggests replacing the DefaultRoleManager: http://www.mail-archive.com/[EMAIL PROTECTED]/msg00009.html So I tried defining an empty role manager which subclassed AbstractRoleManager and added the following declaration to my roles file: <role name="org.apache.avalon.fortress.RoleManager"> <compoent shorthand="RoleManager" class="com.cognima.dcm.framework.DCMRoleManager"/> </role> But it didn't help. I still got the warnings. Any ideas what I'm doing wrong? b) Log4j support. I would like to use log4j for better homogeneity with the rest of our system. The mail archive suggests that I just set up my logkit.xconf file with the following root element: <log4j:configuration> . I did this, but it still appears to use the default logkit. (I'm using the excalibur-fortress-1.0 release, does this include the necessary patches to do this?) Also, we currently use a wrapper around log4j which adds some MDC parameters to the log so ultimately I guess I'd need to implement my own version of AbstractLogKit - is there a How-To for this anywhere? Or could someone give me some pointers? 3) Thread pooling. One of the most compelling offerings from avalon is an off the shelf thread pool for handling requests. But the docs for excalibur thread pools say that these aren't released yet. What is the expected release date? Is there anything I can use in the meantime? Is there a How-To, or could anyone provide me with a simple example of using this feature? Of course, its quite possible to create a component that implements Runnable, then give this component a poolable lifestyle... This gave me roughly the behaviour I was looking for, but feels like a bit of a hack. Would this be recommended? Apologies if these are daft questions, I am suffering from the infamous avalon learning curve. Any help with these would be greatly appreciated. Cheers, Adam. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
