This note is getting a bit long now. I added two comments inline
and cut out some of the previous discussion.

  Simon

Rajini Sivaram wrote:

Simon,

Comments inline...

(cut)

maven module names

  1. SCA API (sca-api)
  2. Tuscany SPI (core-spi, assembly, contribution, policy, interface,
  interface-java, interface-wsdl, databinding)


Some of the above maven modules contain implementation code as well as
SPI code.  For example, in the assembly module, Service.java is an SPI
and ServiceImpl.java is an implementation class.



Yes, unfortunately many of these implementation classes are used outside of
the SPI modules. At the moment the core-spi bundle that I use to run Tuscany
under OSGi is forced to export all the packages from these modules, rather
than just the SPI. eg. ComponentImpl from the assembly module along with SPI
forms the base class of RuntimeComponentImpl in Runtime. ComponentTypeImpl
from the assembly module is used by many extensions.

For impl classes that are intended as extension points, we do have an
approach used in some places where an empty SPI class extends the impl
class and other modules extend the SPI class.  Perhaps we could change
all these places to use that approach.

(cut)

http://cwiki.apache.org/confluence/download/attachments/68801/tuscany-binding-ws-axis2-dependencies.png


http://cwiki.apache.org/confluence/download/attachments/68801/tuscany-implementation-spring-dependencies.png

These dependency diagrams show that either the extension modules are
dependent on the Tuscany Runtime or I have the wrong list of modules for
Core-SPI and Runtime.


I looked at one of these dependencies.  It's a helper class in
implementation-java-xml that looks like it should be an SPI.



There may be many others as well. In particular, I am sure that all the
domain/node related code are in the wrong place, and I will sort those out
later.

We should go through all these uses and decide if they are correct.
If they are, we should move these impl classes to the SPI, or create new
SPI classes that provide the same functionality.

  Simon



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to