Changes (agreed on by Knut + Achim)

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);
  • No labels