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 >
