On Fri, Jan 9, 2009 at 3:45 PM, ant elder <[email protected]> wrote:

>
>
> On Fri, Jan 9, 2009 at 3:13 PM, Simon Laws <[email protected]>wrote:
>
>> Some mechanisms we have used to date. Turns out to be quite long and I
>> expect there are more I have overlooked. Any help to orangize/rationlize
>> this lot is appreciated.
>>
>> Tuscany User
>> ==========
>>
>> Someone who wants to use Tuscany to run a composite in a contribution they
>> have constructed. They will first have to get a Tuscany distribution
>>   Download and unpack a distribution
>>   Include mvn dependency on a distribution (I guess they could depend on
>> individual modules but it would be cleaner to have a distribution
>> dependency)
>>   Install the Tuscany Eclipse plugin
>>   Get a container that embeds the Tuscany runtime
>>
>> They treat Tuscany as a library and can run their contribution in a number
>> of ways
>>
>> IDE(Eclipse)
>>     Contribution only project
>>          right click on composite (fires up the domain behind the scenes)
>> - depends on Tuscany Eclipse plugin
>>         configure runAs to fire up the launcher from Tuscany library
>>     Project with some kind of mainline that manually runs the lanucher,
>> e.g. JUnit
>>          dependency on Tuscany library
>>          dependency on just launcher modules and configure runAs with
>> $TUSCANY-HOME
>>
>> Command line without writing a mainline
>>     java -jar nodeLauncher.jar compositeURI contributionLocation
>>          Run with direct reference to distribution directory
>>          Specify location of launcher jar and distribution directory via
>> $TUSCANY-HOME (?)
>>          Specify the required jars on the classpath either manually or
>> with tuscany-sca-manifest.jar
>>
>> Command line with a mainline that fires up a node launcher
>>     java MyClass.jar
>>          Specify location of launcher jar and distribution directory via
>> $TUSCANY-HOME (?)
>>          Specify the required jars on the classpath either manually or
>> with tuscany-sca-manifest.jar
>>          There are some distinctions here as you may not want your client
>> code to share the same environment as the Tuscany runtime even though the
>> two are running in the same VM
>>
>> Host-webapp, exploiting TuscanyServletFilter
>>      Set up the servlet filter and include the Tuscany distribution in the
>> webapp itself
>>
>> Container. With JEE support a user may want to contribute our composite as
>> par of a WAR, EAR etc
>>      If the container embeds Tuscany then it's up to the container to
>> ensure that SCA contributions can be run
>>
>> Mvn  again assuming there is a mainline that fires up a node launcher
>>    include a dependency on a Tuscany launcher distribtion
>>
>> Domain
>>     java -jar nodeLauncher.jar domain
>>     and then add the contribution to the domain, configure a node and
>> start it
>>
>> OSGi
>>     add all the tuscany jars and dependencies (PDETarget?) to your OSGi
>> environment
>>     Need a bundle that will launch the domain, a node with a contribution
>> or some other service that launches a node
>>
>> Tuscany Embedder
>> ===============
>>
>> Here the embedder wants to use the Tuscany API behind the launcher in
>> order to exploit some individual parts of the Tuscany code base. The
>> embedder still treats Tuscany as a library so they still need to download a
>> distribution. However the embedder must set  up the classpath more
>> explicitly
>>
>> IDE(Eclipse)
>>     Project with some kind of mainline that uses some Tuscany classes
>>          dependency on Tuscany library
>>          dependency on Tuscany modules from distribution. Set up manually.
>>
>>          dependency on Tuscany modules from local maven repo (mvn
>> -Peclipse)
>>
>> Command line with a mainline that uses some Tuscany classes
>>     java MyClass.jar
>>          Specify the required jars on the classpath either manually or
>> with tuscany-sca-manifest.jar
>>
>> Mvn  again with a mainline that uses some Tuscany classes
>>    include a dependency on a Tuscany distribution
>>
>> OSGi  the embedder will construct a bundle which uses some Tuscany classes
>>     add all the tuscany jars and dependencies (PDETarget?) to your OSGi
>> environment
>>
>> Tuscany Developer
>> ===============
>>
>> A developer of the Tuscany infrastructure will first check out the source
>> code from svn. The developer may be acting as a user (running samples) or as
>> an embedder (running unit ot itests). Primarily a developer will use an IDE
>> with the tuscany modules loaded or a mvn compile.
>>
>> IDE(Eclipse) - the important thing here is to have a dependency on the
>> classes in the Eclipse workspace so any changes are picked up as they happen
>> without a mvn compile.
>>     Project with some kind of mainline that uses either launcher or  other
>> Tuscany classes
>>          dependency on Tuscany modules from workspace  (mvn -Peclipse)
>>
>> Mvn  again with a mainline that uses either launcher or  other Tuscany
>> classes
>>    include a dependency on a Tuscany distribution
>>
>>
>> Simon
>>
>
> One comment right away is that this mentions "node launcher" a lot but most
> of the time in previous release we haven't used a launcher we use the
> SCADomain or the SCA NodeFactory, but before getting bogged down in those
> details what is it you want to get from this thread so we know what to focus
> discussion on? Is it just to get a list of all the ways we've done this, or
> to come up with better ways of doing all these things?
>
>    ...ant
>
>
1/ I'd like to define the optimal way of doing these things
2/ I'd like to learn from what has gone before. There are several subtleties
that I wouldn't want to overlook and which I personally wouldn't have
considered if I sat down with a clean page.

Simon

Reply via email to