On 23/11/2010 17:52, Raymond Feng wrote:
I'm sorry to see a VETO here while the technical discussion is still active.

Anyway, going back to the technical side, here is the description from the 
maven doc about the
"provided" scope:

*provided*
This is much like compile, but indicates you expect the JDK or a container to 
provide the dependency
at runtime. For example, when building a web application for the Java 
Enterprise Edition, you would
set the dependency on the Servlet API and related Java EE APIs to scope 
provided because the web
container provides those classes. This scope is only available on the 
compilation and test
classpath, and is not transitive.

The key is that we assume the hosting environment will provide the jar if we use 
"provided" scope.
In fact, Tuscany supports quite a few hosting environment out of the box and it 
can be embedded into
other environment. Let me list a few:

* Standalone launcher
* Use Node API with the application
* Eclipse plugin
* Eclipse IDE with PDE
* OSGi runtime
* Webapp
* Google App Engine
* Tomcat deep integration

Do we have all the hosting environment that provide the servlet/jsp jars? Maybe 
some of us only care
about a subset of the options, but we need to understand if the dependency is 
really provided?

IMO, we probably need to deal with these exclusions at maven assembly level 
when the distributions
(for example, the WAR) are produced.

Thanks,
Raymond

Folks,

I agree with these observations that Raymond makes.

It seems problematic to mark things in the build as "provided" given that there is a range of target runtimes - if there one or more of those target runtimes which does not provide the relevant dependencies. And that does seem to be the case at the moment.

I agree with Raymond that it seems more logical to perform the work of including or excluding specific dependency JARs at the point that the relevant distributions are produced, since at that point, it is possible to describe the characteristics of that runtime.

A problem I see with the point that we've reached now is that the distribution/all does not "do what it says on the tin" - in that it is NOT the complete set of Tuscany dependencies any longer, but some subset.


Yours,  Mike.

Reply via email to