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.