You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hivemind.apache.org by Apache Wiki <wi...@apache.org> on 2006/11/03 12:59:47 UTC

[Jakarta-hivemind Wiki] Update of "DesignDiscussion" by AchimHuegen

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Jakarta-hivemind Wiki" for change notification.

The following page has been changed by AchimHuegen:
http://wiki.apache.org/jakarta-hivemind/DesignDiscussion

New page:
== Changes (agreed on by Knut + Achim) ==

 * Move SymbolExpander to xml module (remove expandSymbols from RegistryInfrastructure and Module)

 * Move ServiceInterceptorFactory  to xml module
   LoggingInterceptorFactory should remain in framework and be called by an adapter implementation in the xml module.    

== More changes in discussion ==

=== registry definition API - interfaces vs. beans ===

=== extension to extension point references - by id vs. by reference ===

This is all about how extensions are added to an extension point.
Extensions are implementations, interceptors and contributions.
If extension and extension point exists in different modules then
there is no other option but a reference by fully qualified id which
is resolved on construction time.
If both exist in the same module the extension can be added 
directly to the extension point.

Example by id: 
{{{
  ModuleDefinition module = new ModuleDefinition("module1");
  ServicePointDefinition service = new ServicePointDefinition("service1", ...)
  ServiceImplementationDefinition impl = new ServiceImplementationDefinition(...)
  module.addService(service);
  module.addServiceImplementation("module1.service1", impl);
}}}

Example by reference:
{{{
  ModuleDefinition module = new ModuleDefinition("module1");
  ServicePointDefinition service = new ServicePointDefinition("service1", ...)
  ServiceImplementationDefinition impl = new ServiceImplementationDefinition(...)
  module.addService(service);
  service.addImplementation(impl);
}}}