I started investigating the dependencies of the binding modules, as a starty in breaking this down and understanding the bigger picture. I put a graph of this on the wiki [1] -- I plan to do the same for the other extension types.
[1] http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Tuscany+SPI+Investigations On Wed, Mar 10, 2010 at 3:56 PM, Simon Laws <simonsl...@googlemail.com> wrote: > On Wed, Mar 10, 2010 at 1:53 PM, kelvin goodson <kelvingood...@gmail.com> > wrote: >> There's a first output from my endeavours at [1] >> >> I haven't checked the output, but how does this generally fit the bill? >> >> Kelvin >> >> [1] http://people.apache.org/~kelvingoodson/digests/out.xml >> > > Nice. As a short term measure we can tell which code has changed > easily without having to revert to looking up each file in the svn > log. We need to filter it down a bit though. > > What we do need to do is be more precise about what we mean about SPI. > Probably down to the level of classes we expect people to extend vs > classes we expect people to call. > > A way of attacking this would be to take each of the extension types in turn; > > SCA specific ones > -------------------------- > binding > implementation > interface > policy > > Tuscany runtime specific ones > --------------------------------------------- > databinding > contribution > host > monitor > extensibility > endpointregistry > etc. > > And look at which SPI like classes are used in each case. Then rather > than just having a long list of SPI packages/classes which is > difficult to understand at least we could identify those used when > creating a particular extension type. > > So, for example, we could take a binding like binding.ws (it's > relatively interesting) and look at it's dependencies. Obviously there > are dependencies between the modules starting binding-ws-xxx however > we are interested in the other, non-atom, Tuscany dependencies. We can > ignore all the 3rd party and test dependencies. So the list I see for > binding-ws (produced with mvn dependency:tree) is > > [INFO] org.apache.tuscany.sca:tuscany-binding-ws:jar:2.0-SNAPSHOT > [INFO] +- org.apache.tuscany.sca:tuscany-contribution:jar:2.0-SNAPSHOT:compile > [INFO] | +- org.apache.tuscany.sca:tuscany-assembly:jar:2.0-SNAPSHOT:compile > [INFO] | | \- > org.apache.tuscany.sca:tuscany-monitor:jar:2.0-SNAPSHOT:compile > [INFO] | +- > org.apache.tuscany.sca:tuscany-assembly-xsd:jar:2.0-SNAPSHOT:compil > e > [INFO] | +- > org.apache.tuscany.sca:tuscany-extensibility:jar:2.0-SNAPSHOT:compi > le > [INFO] | +- > org.apache.tuscany.sca:tuscany-common-xml:jar:2.0-SNAPSHOT:compile > [INFO] | \- > org.apache.tuscany.sca:tuscany-common-java:jar:2.0-SNAPSHOT:compile > > [INFO] | \- > org.apache.tuscany.sca:tuscany-sca-api:jar:2.0-SNAPSHOT:compile > [INFO] +- org.apache.tuscany.sca:tuscany-assembly-xml:jar:2.0-SNAPSHOT:compile > [INFO] | +- > org.apache.geronimo.specs:geronimo-stax-api_1.0_spec:jar:1.0.1:comp > ile > [INFO] | \- org.codehaus.woodstox:wstx-asl:jar:3.2.4:runtime > [INFO] +- > org.apache.tuscany.sca:tuscany-interface-wsdl:jar:2.0-SNAPSHOT:compile > > [INFO] | +- org.apache.tuscany.sca:tuscany-xsd:jar:2.0-SNAPSHOT:compile > [INFO] | \- org.apache.ws.commons.schema:XmlSchema:jar:1.4.3:compile > [INFO] +- wsdl4j:wsdl4j:jar:1.6.2:compile > [INFO] +- org.apache.tuscany.sca:tuscany-builder:jar:2.0-SNAPSHOT:test > [INFO] +- org.apache.tuscany.sca:tuscany-core:jar:2.0-SNAPSHOT:test > [INFO] | +- org.apache.tuscany.sca:tuscany-core-spi:jar:2.0-SNAPSHOT:test > [INFO] | +- > org.apache.tuscany.sca:tuscany-interface-java:jar:2.0-SNAPSHOT:test > > [INFO] | +- cglib:cglib:jar:2.2:test > [INFO] | \- asm:asm:jar:3.1:test > [INFO] +- > org.apache.tuscany.sca:tuscany-binding-sca-runtime:jar:2.0-SNAPSHOT:te > st > [INFO] | \- org.apache.tuscany.sca:tuscany-databinding:jar:2.0-SNAPSHOT:test > [INFO] \- junit:junit:jar:4.8.1:test > > Extracting the real dependencies gives > > tuscany-contribution - processor and resolver base classes > tuscany-assembly - assembly models > tuscany-monitor - error reporting > tuscany-assembly-xsd - model schema (don't know why it needs this here) > tuscany-extensibility - locating extension points > tuscany-common-xml - xml utilities > tuscany-common-java - java utilities > tuscany-sca-api - the SCA api (don't know why it needs this here, > possibly for annotations) > tuscany-assembly-xml - processor base classes > tuscany-interface-wsdl - models WSDL interfaces > tuscany-xsd - models schema > > If you look across the bindings it would be nice to think a pattern emerges. > > Ultimately we'll end up with a list again of course but well be able > to add more detail about what each of the SPIs is for. > > Simon >