Some comments and use cases.

Rajini Sivaram wrote:
The bundles that I have at the moment are:

   1. org.apache.tuscany.sca.api.jar
   14,942 bytes
   2. org.apache.tuscany.sca.tuscany.corespi.jar
    370,228 bytes
   3. org.apache.tuscany.sca.tuscany.runtime.jar
     571,159 bytes
   4. org.apache.tuscany.sca.tuscany.extensions.jar               996,238
   bytes
   5. org.apache.tuscany.sca.tuscany.dependencies.jar
    43,928,926 bytes

The dependencies bundle seems pretty big :)

>From a packaging point of view, it doesn't make sense to split Tuscany,

Why doesn't it make sense? (more below about scenarios and requirements)

and
it makes a lot more sense to split the 3rd party code.

Did you mean split the 3rd party code from the rest of Tuscany as one monster 40Mb bundle? or split that monster bundle in a set of smaller bundles?

I dont want to sound like I am doing a sales pitch for OSGi, but I am not
sure there is a cleaner or easier way to sort out versioning issues that
Tuscany would face if different versions of 3rd party libraries were
used, compared to running Tuscany under OSGi. An OSGi runtime would enable
different versions of 3rd party libraries, different versions of Tuscany
runtime and different versions of Tuscany extensions to coexist in a single
VM with very little extra effort. Implementing something similar with a
classloader architecture outside of OSGi would be significantly more complex
(and will eventually reinvent OSGi).

OK, I like OSGi too :) My previous question about requirements was an attempt to step back from the technology details and generate some discussion around the bundle use cases.

Let me try to help and list the use cases I can think of, and how they relate to the bundles you've listed.

- I develop a business application, and I'm using the SCA APIs, I don't want any dependency on a particular runtime or whatever version of it.
--> happy with oat.sca.api!

- I developing an extension, using the Tuscany SPI, and running with the Tuscany runtime
--> happy with oat.corespi
--> would be happy too if oat.core.spi and oat.runtime were a single bundle as long as the runtime packages are not exported. I guess any single project that wants to run something is going to have a dependency on oat.runtime anyway to be able to start the runtime, right?

- I'm developing an extension which depends on a 3rd party dependency from oat.dependencies
--> not happy with a 40Mb bundle
--> what'll happen if I have two copies of Axis2's Axiom in 2 bundles? can I still pass an axiom element between 2 extensions using these 2 copies? I guess not...

- I just developed version v4.0.3 of implementation-java, which requires xml-api v47.12, unfortunately incompatible with the xml-api version in Tuscany v4.0.2. --> can we walk through the steps to upgrade my bundle-ized Tuscany v4.0.2 working with my implementation-java v4.0.3?

- I'm an application developer and I'm developing and deploying a Web application that uses a Java component and a JSONRPC binding
--> not happy with having to package the 900K bundle in my webapp
--> and I'm not even thinking about deploying the 40Mb bundle in it... :)

Thoughts? It would be good if others could jump-in with the use cases they have in mind for an bundle-ized Tuscany. The bundle structure that has been discussed so far seems to go in the right direction, I'm sure that more use cases will help come up with a useful structure.

--
Jean-Sebastien


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

Reply via email to