There are quite a few old threads where we've discussed samples, here's just one of them: http://mail-archives.apache.org/mod_mbox/ws-tuscany-dev/200604.mbox/[EMAIL PROTECTED]
If we're moving towards multiple Tuscany distributions targeted at different areas then i think its fine (and even desirable) for one of those distributions to contain an entire host environment. One of the good things about the M1 release was that it really did make it easy for new users to get started, just "unzip and click on startup". ...ant On 8/18/06, Jim Marino <[EMAIL PROTECTED]> wrote:
On Aug 17, 2006, at 11:21 PM, ant elder wrote: > I agree with Jervis, things just running out-of-box is much nicer > for first > time users than having to fiddle about editing config files. > > Would an alternative be to change the structure of the samples and > move > these technology specific samples into the extension that they use. > For > example, something like having a javascript folder that contained > separate > projects for the JavaScript container and each JavaScript sample. > There > would still be lots of helloworld samples, but not all in the one > top level > samples folder so wouldn't be quite so in your face. I like the idea of moving the samples into the extensions (except maybe the samples that use multiple extensions) and actually think it could correspond to Jeremy's proposal. This would allow us to compartmentalize things more which I think is going to be fundamental to scaling the project. I have several caveats for this though: - there is a clear distinction in the tree between the samples and runtime extension code. In other words, each sample project should not be a sibling to the project containing extension code but should go under a samples folder in separate projects - the extensions are individually built from the core projects and fairly autonomous per my previous email - samples are not built with the check-in build for extensions and are separately distributable In terms of end-user experience, I think things are going to vary greatly depending on the host environment. For example, in our standalone environment, things can be automated fairly easily: 1. User downloads core distribution 2. User downloads and drops in sample distribution and starts the standalone core 3. Core reads the dependencies from the sample SCDL and pulls down the required extensions via the ArtifactFactory from a Maven repository. This would resolve the transitive closure of all extension dependencies. This would allow us to track dependencies for extension libraries such as Spring for "free" since most projects publish POMs to a Maven repo. 4. If user chooses, they could avoid step 4 and just download the extension and plug it in Something similar to the above could be done for OSGi except the end user would just deploy a core bundle into an existing OSGi host such as Equinox they had installed. If we are deploying to a servlet container, things will likely be more complex but not too much: 1. User downloads sample application and builds it using Maven, which retrieves the core as a dependency and bundles everything into a war. 2 User deploys the sample war If we "prepackaged" every sample distribution so it could just be dropped in, I think we will wind up with a ton of packaging problems as core will need to be included in every one. I'm pretty firmly against distributions containing an entire host environment, such as Tomcat. I'd prefer we follow projects like Spring, Struts, WebWork, Hibernate (take your pick) and provide distributions which are simple to deploy into containers using some minimal configuration steps. My reason for this is partly practical. First, we should support deploying on a variety of host environments and having to rev versions would be a nightmare. Second, in most data centers I have come across, there is a standard image technologies must accommodate and they will not accept an "bundle of stuff". Jim > > ...ant > > On 8/17/06, Liu, Jervis <[EMAIL PROTECTED]> wrote: >> >> One thing concerns me would be the out-of-box user experience. For >> a first >> time Tuscany user, don't you think it is more user friendly if >> users only >> need to follow the readme, go to a directory, run a common, then >> everything >> works out-of-box? Speaking in my experience, it does encourage me >> to explore >> a new product further if I can set up and run a typical helloworld >> sample >> successfully in 5 minutes without any coding. Well, maybe just me >> being too >> lazy... ;-) >> >> Cheers, >> Jervis >> >> > -----Original Message----- >> > From: Jeremy Boynes [mailto:[EMAIL PROTECTED] >> > Sent: Thursday, August 17, 2006 6:54 AM >> > To: tuscany-dev@ws.apache.org >> > Subject: Sample framework >> > >> > >> > We have had a rapid increase in the number of samples recently many >> > of which do essentially the same thing. Some feedback from M1 also >> > said that we seemed to have invented the greatest number of >> > varieties >> > of HelloWorld but that it was hard to tell if SCA could do anything >> > else. I'd like to propose a change in how we structure the >> > samples so >> > that we make it clearer to illustrate the technology to users. >> > >> > Rather than having separate projects for each technology >> > variant, I'd >> > like to suggest we have just a couple of projects that provide a >> > framework and then have instructions in the documentation for each >> > technology that clearly show how to apply it. >> > >> > For example, I can see two framework environments: >> > a) a client environment with a simple command line client wires >> > together a couple of local components >> > b) a webapp environment with a simple JSP client that also wires >> > together a couple of local components >> > >> > Then, for example, the JavaScript extension could say: >> > To illustrate the use of JavaScript as a component, take the >> > client a) and >> > 1) replace <implementation.java class="Foo"/> with >> > <implementation.javascript script=" foo.js"/> >> > 2) Install javascript extension >> > 2) rebuild/run sample >> > >> > Or, to illustrate the WebService binding: >> > Server >> > 1) Take webapp and add <service>< binding.ws ...> >> > 2) Install Axis binding extension >> > 3) Deploy server app to Tomcat >> > Client >> > 1) Take client application and replace <component >> name="foo" ...> >> > with <reference><binding.ws ...> >> > 2) Install Axis binding extension >> > 3) Run client >> > >> > The basic idea being, have a common framework and the >> > instructions on >> > how to use the particular extension. >> > -- >> > Jeremy >> > >> > >> --------------------------------------------------------------------- >> > To unsubscribe, e-mail: [EMAIL PROTECTED] >> > For additional commands, e-mail: [EMAIL PROTECTED] >> > >> > >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]