I think this highlights one of the challenges with Ant-based build
environments. Although Ant provides the mechanisms for executing the
build scripts it does not provide a method for locating the
dependencies needed at build-time - for example, to compile or
repackage; often they are simply checked in alongside the user's
source. This was one of the key issues that the Maven project
originally set out to solve and which led to the establishment of the
repo systems.

I have not had a chance to see how your scripts address locating these
dependencies. I realize that some, like SDO, are (undesirably) located
in the standalone distro; others like spring, jaxb, json, js are not
(or at least I hope they are not). It would help (in my currently
disconnected state) if you could describe how your environment handles
these.

We will be making all the dependencies (including these) available
through the maven repository system. As I explained in an earlier
mail, the release vote would include not just the binary and other
archives but also /all/ of the artifacts we release through the repo;
this addresses Ant's concern about IPMC approval.

At a fundamental level, I would question whether using the standalone
runtime distribution as the basis of a build environment is the way to
be going. Would we be better served producing a "library"
distribution, and if so, should it include /alll/ the transitive
dependencies or not? Perhaps we should take this further and produce
distributions pre-packaged for consumption in IDE environments (an
IDEA or Eclipse distribution for example)?

After all, if I'm building a WAR file, why would I need the standalone
distro at all? Or perhaps using Ant is actually more complex perhaps
we should just ship Maven builds.

--
Jeremy

On 11/7/06, Simon Nash <[EMAIL PROTECTED]> wrote:
I was not suggesting a "kitchen sink" approach, only the inclusion
in the binary distro of 2 small extra runtime jar files that all
our users who create webapps will need.

I understand that our strategy for loading extension dependencies
is to use the runtime support for accessing a remote or embedded
Maven artifact repository that Meeraj and Jeremy worked on.  I'm not
proposing that we change this strategy.

The challenge I'm facing in adding some support for building Tuscany
applications with ant is not a runtime issue but a build-time one.
For simple Tuscany webapps, I am very close to being able to build
these webapps from the binary distro and a simple ant script using only
built-in tasks.  It is only the lack of these 2 webapp jar files in
the binary distro that is preventing this, since without them in the
binary distro, the ant script would need to download them from a remote
maven repo.  This requires the use of a custom Ant task as well as the
need for live internet connectivity.  This makes the ant build process
and the user's getting started experience a lot more complex.  By adding
these 2 jars to the binary distro, we enable ant users to build simple
Tuscany webapps without needing to deal with custom Ant tasks,
dependency management, or remote maven repos.

For more complex webapps with external dependencies that we are not
delivering in our binary distro, we also need a way to build these
using ant.  When I have completed the simple case without dependencies,
I will start work on this case.  I have begun to investigate possible
options, which will necessarily be more complex than the simple case
where there are no dependencies.  I'd like to give our users a simple
experience for doing simple things, and reserve the more complex
experience for doing more complex things.

I hope this explains why it would be very helpful from a user
perspective to have these 2 jars in the binary distro.  This is a
separate issue from adding the other things that Ant mentioned.

  Simon

Jim Marino wrote:

>
> On Nov 7, 2006, at 6:13 AM, ant elder wrote:
>
>> On 11/7/06, Simon Nash <[EMAIL PROTECTED]> wrote:
>>
>>   webapp-1.0-incubator-M2-SNAPSHOT.jar
>>
>>>    webapp-host-1.0-incubator-M2-SNAPSHOT.jar
>>> are not present in the standalone launcher (the rest are).  In order
>>> to avoid the need for ant users to download these jars from a maven
>>> repo, I'd like to propose adding them to the binary distro.  For
>>> example, they could go in a new webapp directory.  They are not large
>>> and they would not impact use of the binary distro as a standalone
>>> Tuscany launcher.
>>
>>
>>
>> I think the issue here is what is our binary distro in M2, is it  just
>> the
>> standalone distro or something more? Some previous discussion have  been
>> sounding like the binary distro is just the standalone distro, i'm not
>> convinced thats true or a good idea.  The current name is ...-bin not
>> ...-standalone and it already includes the servlet jar and things
>> like SDO.
>>
> They contain SDO because of a hack and should not, specifically the
> jars need to be crammed on the system classpath because we have not  yet
> implemented multi-parent classloading. Once this is in place,  they can
> be removed.
>
> As for servlet jar, that is required by the Kernel for ServletHost.  We
> could factor that out as well moving forward.
>
>> If we don't include the two tuscany webapp jars in the bin distro  we
>> release
>> then how do we get them released officially with an ipmc vote?
>>
>> Being pragmatic the easiest way to fix this particular problem
>> probably is
>> to just also include the two tuscany webapp jars as well. And if
>> we're going
>> down that route why not also add the javadoc and prebuilt samples  as
>> well so
>> we have a really easy to use binary M2 release :)
>>
> And then the problem we have is we wind up with the monolith we tried
> to avoid based on all of the modularity discussions. As you mentioned
> below, when we include BigBank, we drag in DAS. In the future, when  we
> have additional samples such as a BigBank that uses JPA, we will  need
> to included those as well. Multiply that with JAXB, other web  services
> stacks, JMS, etc. The "kitchen sink" approach ultimately is  not going
> to work with the type of extensible runtime that we have.   Instead of
> creating a monolith, this can be solved (better IMO) by  having the
> runtime dynamically provision extensions based on the  Maven Artifact
> repository service that Meeraj and Jeremy worked on.
>
> Jeremy had very strong opinions on how this should be done; as our
> release manager for M2, before making any significant changes to the
> branch we should clear it with him. He mentioned he will be back  online
> Thursday.
>
> Jim
>
>>   ...ant
>>
>> PS. Whats going to happen when trying to build bigbank with ant and
>> the DAS
>> jars are required?
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>

--
Simon C Nash   IBM Distinguished Engineer
Hursley Park, Winchester, UK   [EMAIL PROTECTED]
Tel. +44-1962-815156   Fax +44-1962-818999


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

Reply via email to