Hello Avalon users,
meanwhile I have the merlon demo running in my webapp, but I a somewhat swamped with
the complexity. I created my own kernel loader, set both class loaders to the loader
of the servlet, set the working home to my webapp's home put there the demo.xml that
is automatically read during initialization. Looking at the log messages, anything is
working fine. The only thing - I am not sure, if I really need this complexity for a
request/response based environment.
Looking at the Avalon framework itself, it seems to offer a simple, but mighty base
for a service infrastructure. With "Developing with Avalon" (DwA) a nice documentation
exists, although it refers ECM. "Although", because running Avalon 4.1.3 and Excalibur
4.1.3, a lot of deprecated API of the Avalon framework is accesed by ECM. At this
stage I asked myself for the first time, if am I going into the right direction.
Looking into the mail archives and reading a lot of the messages and looking at the
Wiki, I got the impression that Fortress is the successor of ECM with an advanced
lifecycle approach, but the real development is currently done for Merlin. While it is
perfectly understandable, that documentation is not the primary task at this stage,
for newbies it is nearly too much to get even the basic ideas behind all these new
interfaces and services from these examples to get anything useful running at all.
E.g. for the running merlin demo: How can I access now the services? I just have a
DefaultKernel object, but somehow I am missing the factory class.
Merlin does not to use the complete role concept described in DwA. This seems to be
replaced by the Assembly with the concept of the Engine, Resource and Type. But I have
no idea, what Interfaces I have really to define for a service, that is later on
manageable. Also the idea of an Appliance is vague, I am currently not sure, how to
identify and separate in my real world between Service and Appliance .. or are both
services and the difference is that the Container contains Appliances, but the
Appliance does not contain other services? Currently I try to setup a HelloWorld
appliance that is loaded directly from the file system and not from within an archive.
I assumed, that the classloader of the underlying application would be used and I
defined therefore not a special <classpath> tag in the block.xml, but creating the
ContainerDescription with the DefaultContainer, the creation of the Profile fails,
since the TypeManager does not know my Appliance interface demo.service.HelloWorld ...
<block>
<implementation>
<appliance name="standard"
class="demo.service.HelloWorld" activation="startup">
<context class="demo.service.HelloWorldImpl"/>
<configuration>
<message>Hello World block descriptor.</message>
</configuration>
</appliance>
</implementation>
</block>
Debugging the code I also recognized the different entries in the Context with
"urn:XXX" and that they are also used to overload the standard behaviour at
initialization. But again, this is only usable searching in the code ...
Looking at the time I already spent and the results I reached, I am currently really
somewhat frustrated. Any help welcome ...
Regards,
J�rg
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]