Is what Simon have written a good summary for 1.x user doc?  This is missing
from the doc.
Why is domain in a separate line of its own if it applies to all those
environments?

On Fri, Jan 9, 2009 at 8:00 AM, Simon Laws <[email protected]>wrote:

>
>
> 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