You are viewing a plain text version of this content. The canonical link for it is here.
Posted to site-dev@james.apache.org by Apache Wiki <wi...@apache.org> on 2007/03/11 09:01:52 UTC

[James Wiki] Update of "Development/Modularisation" by RobertBurrellDonkin

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "James Wiki" for change notification.

The following page has been changed by RobertBurrellDonkin:
http://wiki.apache.org/james/Development/Modularisation

The comment on the change is:
Completed build work

------------------------------------------------------------------------------
  Top level build
   * (./) create build.xml which delegates to pheonix-deployment/build.xml
  
- === Phase 3 ===
+ === [COMPLETE] Phase 3 ===
  
  Upgrade build:
-  * upgrade to ant 1.7 (the new features are *really* good)
+  * (./) upgrade to ant 1.7 (the new features are *really* good)
-  * create stage subdirectory which is local only
+  * (./) create stage subdirectory which is local only
-  * create buildtasks module to host build macros and ant tasks for
+  * (./) create buildtasks module to host build macros and ant tasks for
  module builds
  
  === Phase 4 ===
@@ -158, +158 @@

  
  To reduce maintenance, standard builds will be provided for modules that want to adopt a standard module layout. 
  
+ ----
+ 
+ = Unresolved Issues =
+ 
+ == Logging ==
+ 
+ JAMES uses the Avalon framework for logging via AbstractLogEnabled. This introduces a deep coupling between the container and components running in the container that requires resolution. 
+ 

Re: Which JDK for trunk?

Posted by Norman Maurer <nm...@byteaction.de>.
Noel J. Bergman schrieb:
> [Forgot to rename this thread when replying]
>
> Robert Burrell Donkin wrote:
>
>   
>> Noel J. Bergman wrote:
>>     
>
>   
>>> If someone wants to upgrade us to [JUnit] v4
>>> (q.v. http://www.devx.com/Java/Article/31983),
>>> feel free.  Please test before committing.
>>>
>>> I'm fairly convinced that we can move to JDK 5 for trunk,
>>> since it will be a long time before we're ready to release
>>> from it, and we can take advantage of new features, some
>>> of which we really want to leverage.
>>>       
>
>   
>> JAMES has mature java 1.4 implementations for several protocols.
>> i've been wondering whether we might be able to use the
>> modularisation to maintain support for 1.4 whilst exploiting 1.5
>> features. so, rather than just jumping everything to 1.5, this
>> choice could be made on a per module basis.
>>     
>
> That's been the plan, but I'm wondering if we might not be better of just
> going for JSE 5.  I do not expect to see anything releasable from trunk
> until end of 2007, and that should be fine for JSE 5 and later.
>
> For example, this would allow us to use annotations to help with assembly,
> and that would be a pervasive change.
>
> 	--- Noel
>   

I whould like to move to JSE 5. So we could use Generics , enums etc.  I
don't care to much about 1.4 compatibility, but if the majory want to
keep it im fine with it.

bye
Norman

Ps: Sorry for being so inactiv the last weeks, but im to busy at the moment

-- 
Mit freundlichen Grüßen 

i.A. Norman Maurer 
Systemadministrator

ByteAction GmbH
Auf der Beune 83-85
64839 Münster

Phone:   +49 (0) 60 71 92 16 - 21
Fax:       +49 (0) 60 71 92 16 - 20
E-mail:    nm@byteaction.de
Internet: www.byteaction.de
AG Darmstadt, HRB 33271
Ust-Id: DE206997247
GF: Thomas Volkert
------------------------------------------------------ 
Diese E-Mail enthält vertrauliche Informationen und ist nur für den in der E-Mail genannten Adressaten bestimmt. Für den Fall, dass der Empfänger dieser E-Mail nicht der in der E-Mail benannte Adressat ist, weisen wir darauf hin, dass das Lesen, Kopieren, die Wiedergabe, Verbreitung, Vervielfältigung, Bekanntmachung, Veränderung, Verteilung und/oder Veröffentlichung der E-Mail strengstens untersagt ist. Bitte verständigen Sie den Absender dieser E-Mail unter folgender Rufnummer +49 (0) 6071 / 9216-0, falls Sie irrtümlich diese E-Mail erhalten haben und löschen Sie diese E-Mail. Der Inhalt dieser E-Mail ist nur rechtsverbindlich, wenn er von unserer Seite schriftlich durch Brief oder Telefax bestätigt wird. Die Versendung von E-Mails an uns hat keine fristwahrende Wirkung. 

This e-mail contains information which is privileged and is intended only for the Addressee named in the e-mail. In case that the recipient of this e-mail is not the named addressee, we would like to inform you that it is strictly prohibited to read, to reproduce, to disseminate, to copy, to disclose, to modify, to distribute and/or to publish this e-mail. If you have received this e-mail in error, please call the sender under following telephone number +49 (0) 6071 / 9216-0 and delete this e-mail. The content of this e-mail is not legally binding unless confirmed by letter or telefax. E-mails which are sent to us do not constitute compliance with any time limits or deadlines.
------------------------------------------------------ 



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


Re: Which JDK for trunk?

Posted by Stefano Bagnara <ap...@bago.org>.
Noel J. Bergman ha scritto:
> Stefano Bagnara wrote:
>> Noel J. Bergman wrote:
>>> I'm wondering if we might not be better of just going for JSE 5.
>> +1 but please tag the last java 1.4 compatible trunk before
>> applying any java5 specific change.
> 
> If you mean the source code, fine.  But as far as I can see, we do not
> currently have a 1.4 compatible trunk.  Not until someone goes through and
> fixes the jsieve binaries (and any others that are at the wrong level).

Right!

Either way the tag alone will not be useful to build artifacts, but only 
as a reference point or a start point for a branch (where we can fix the 
jsieve problems).

I think is unlikely we'll use the tag, but I would like to have it 
tagged anyway if we move to java5.

>>> I do not expect to see anything releasable from trunk
>>> until end of 2007, and that should be fine for JSE 5
>> Can you elaborate on the facts that led you think we'll be able to
>> release trunk at the end of 2007? What do you expect to happen in
>> this 9 months?
> 
> Are you asking why I expect 9 months before a release, or ONLY 9 months?
> :-)
> 
> 	--- Noel

Don't know.. think as this is part of the question ;-)

Stefano


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


RE: Which JDK for trunk?

Posted by "Noel J. Bergman" <no...@devtech.com>.
Stefano Bagnara wrote:
> Noel J. Bergman wrote:
> > I'm wondering if we might not be better of just going for JSE 5.
> +1 but please tag the last java 1.4 compatible trunk before
> applying any java5 specific change.

If you mean the source code, fine.  But as far as I can see, we do not
currently have a 1.4 compatible trunk.  Not until someone goes through and
fixes the jsieve binaries (and any others that are at the wrong level).

> > I do not expect to see anything releasable from trunk
> > until end of 2007, and that should be fine for JSE 5
> Can you elaborate on the facts that led you think we'll be able to
> release trunk at the end of 2007? What do you expect to happen in
> this 9 months?

Are you asking why I expect 9 months before a release, or ONLY 9 months?
:-)

	--- Noel



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


Re: Which JDK for trunk?

Posted by Stefano Bagnara <ap...@bago.org>.
Noel J. Bergman ha scritto:
> That's been the plan, but I'm wondering if we might not be better of just
> going for JSE 5.  I do not expect to see anything releasable from trunk
> until end of 2007, and that should be fine for JSE 5 and later.
> 
> For example, this would allow us to use annotations to help with assembly,
> and that would be a pervasive change.
> 
> 	--- Noel

+1 but please tag the last java 1.4 compatible trunk before applying any 
java5 specific change.

Can you elaborate on the facts that led you think we'll be able to 
release trunk at the end of 2007? What do you expect to happen in this 9 
months?

Stefano




---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


RE: Which JDK for trunk?

Posted by "Noel J. Bergman" <no...@devtech.com>.
And it turns out that we already have an issue.  When trying to do a build
with my local build environment, which uses JDK 1.4.2 (the nightly build
system uses JDK 5), I ran into the problem that the JSieve class files in
trunk's stage directory are version 49 instead of 48.

	--- Noel



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


Which JDK for trunk?

Posted by "Noel J. Bergman" <no...@devtech.com>.
[Forgot to rename this thread when replying]

Robert Burrell Donkin wrote:

> Noel J. Bergman wrote:

> > If someone wants to upgrade us to [JUnit] v4
> > (q.v. http://www.devx.com/Java/Article/31983),
> > feel free.  Please test before committing.
> >
> > I'm fairly convinced that we can move to JDK 5 for trunk,
> > since it will be a long time before we're ready to release
> > from it, and we can take advantage of new features, some
> > of which we really want to leverage.

> JAMES has mature java 1.4 implementations for several protocols.
> i've been wondering whether we might be able to use the
> modularisation to maintain support for 1.4 whilst exploiting 1.5
> features. so, rather than just jumping everything to 1.5, this
> choice could be made on a per module basis.

That's been the plan, but I'm wondering if we might not be better of just
going for JSE 5.  I do not expect to see anything releasable from trunk
until end of 2007, and that should be fine for JSE 5 and later.

For example, this would allow us to use annotations to help with assembly,
and that would be a pervasive change.

	--- Noel



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


RE: Required version of Ant

Posted by "Noel J. Bergman" <no...@devtech.com>.
Robert Burrell Donkin wrote:

> Noel J. Bergman wrote:

> > If someone wants to upgrade us to [JUnit] v4
> > (q.v. http://www.devx.com/Java/Article/31983),
> > feel free.  Please test before committing.
> >
> > I'm fairly convinced that we can move to JDK 5 for trunk,
> > since it will be a long time before we're ready to release
> > from it, and we can take advantage of new features, some
> > of which we really want to leverage.

> JAMES has mature java 1.4 implementations for several protocols.
> i've been wondering whether we might be able to use the
> modularisation to maintain support for 1.4 whilst exploiting 1.5
> features. so, rather than just jumping everything to 1.5, this
> choice could be made on a per module basis.

That's been the plan, but I'm wondering if we might not be better of just
going for JSE 5.  I do not expect to see anything releasable from trunk
until end of 2007, and that should be fine for JSE 5 and later.

For example, this would allow us to use annotations to help with assembly,
and that would be a pervasive change.

	--- Noel



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


Re: Required version of Ant

Posted by robert burrell donkin <ro...@gmail.com>.
On 3/11/07, Noel J. Bergman <no...@devtech.com> wrote:
> Robert Burrell Donkin wrote:
>
> > [junit's license is] on the proposed list of approved binary licenses
> > (http://www.apache.org/legal/3party.html) so it should be fine. feel
> > free to add it.
>
> Done.  The version committed is 3.8.2.  If someone wants to upgrade us to v4
> (q.v. http://www.devx.com/Java/Article/31983), feel free.  Please test
> before committing.
>
> I'm fairly convinced that we can move to JDK 5 for trunk, since it will be a
> long time before we're ready to release from it, and we can take advantage
> of new features, some of which we really want to leverage.

JAMES has mature java 1.4 implementations for several protocols. i've
been wondering whether we might be able to use the modularisation to
maintain support for 1.4 whilst exploiting 1.5 features. so, rather
than just jumping everything to 1.5, this choice could be made on a
per module basis.

users could then use the configuration to switch between basic 1.4 and
advanced 1.5 versions.

- robert

---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


RE: Required version of Ant

Posted by "Noel J. Bergman" <no...@devtech.com>.
Noel J. Bergman wrote:

> The version committed is 3.8.2.  If someone wants to upgrade us to v4
> (q.v. http://www.devx.com/Java/Article/31983), feel free.  Please test
> before committing.

FYI, with respect to JUnit v3 -> v4 migration, please note that Ant 1.7.0
"also works with JUnit 4.0, including "pure" JUnit 4 tests using only
annotations and no JUnit4TestAdapter."

	--- Noel



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


RE: Required version of Ant

Posted by "Noel J. Bergman" <no...@devtech.com>.
Robert Burrell Donkin wrote:

> [junit's license is] on the proposed list of approved binary licenses
> (http://www.apache.org/legal/3party.html) so it should be fine. feel
> free to add it.

Done.  The version committed is 3.8.2.  If someone wants to upgrade us to v4
(q.v. http://www.devx.com/Java/Article/31983), feel free.  Please test
before committing.

I'm fairly convinced that we can move to JDK 5 for trunk, since it will be a
long time before we're ready to release from it, and we can take advantage
of new features, some of which we really want to leverage.

	--- Noel



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


Re: Required version of Ant

Posted by robert burrell donkin <ro...@gmail.com>.
On 3/11/07, Stefano Bagnara <ap...@bago.org> wrote:
> Noel J. Bergman ha scritto:
> > Stefano Bagnara wrote:
> >> Noel J. Bergman ha scritto:
> >>> Updated the nightly build server to 1.7.0.  Easy, once you
> >>> REMEMBER TO COPY junit.jar from your old Ant install to
> >>> the new one.  :-)
> >
> >> does ant 1.7.0 solve the issue with the junit task and the junit.jar
> > library?
> >
> >> I really never liked having to manually download junit.jar to
> >> the "ant install dir"/lib to be able to run the junit ant task
> >> (and this applies also to other task=>dependency tuple).
> >
> > See http://ant.apache.org/manual/OptionalTasks/junit.html and
> > http://ant.apache.org/faq.html#delegating-classloader
> >
> > I was just lazy, but we probably want to go with option #4.
> >
> >       --- Noel
>
> Cool to see that in 1.7 they solved this issue in a clean way: this was
> *one* of the triggers that led me to try maven2 1.5 years ago.
>
> I like the #5:
> ---
> Leave ant-junit.jar in its default location in ANT_HOME/lib but include
> junit.jar in the <classpath> passed to <junit>. (since Ant 1.7)
> ---
>
> This would require to put the junit.jar in the stage folder, but if I
> understood it correctly ASF allows us to do this.

it's on the proposed list of approved binary licenses
(http://www.apache.org/legal/3party.html) so it should be fine. feel
free to add it.

- robert

---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


Re: Required version of Ant

Posted by Stefano Bagnara <ap...@bago.org>.
Noel J. Bergman ha scritto:
> Stefano Bagnara wrote:
>> Cool to see that in 1.7 they solved this issue in a clean way: this was
>> *one* of the triggers that led me to try maven2 1.5 years ago.
> 
> Good, now we can go back.  :-p

The "*"s around "one" were there to avoid this reply :-P
I'm not a religious follower in the maven vs ant was: I simply like to 
use the tools that better fit my goals.

Architecturally speaking I think maven is 10:1 to ant, but in real world 
maven still has a lot of limits: I like the competition between the 2, 
because this is leading to better products from both teams.

>> I like the #5:
>> ---
>> Leave ant-junit.jar in its default location in ANT_HOME/lib but include
>> junit.jar in the <classpath> passed to <junit>. (since Ant 1.7)
>> ---
> 
> So do I.  That's my preferred solution.  I had viewed that as related to #4,
> with the exception that #4 seemed a bit more detailed on the <classpath>
> element, but I hadn't read it closely enough.  I now see that <junit> takes
> a nested <classpath> entry for the purpose.
> 
> I've committed a change to unittest.class.path in build.xml.  This means
> that everyone must update to Ant 1.7.0 or they won't be able to build or run
> the unit tests with the new build file.  If that is a problem, we can revert
> the change, but I suspect that most of us want this change, and installing
> the Ant 1.7.0 binary distribution is trivially simple.

+1 Thanks!!

Requiring ant-1.7.0 installed is much better than asking the users to 
"hack" their ant<1.7.0 folder or to include again ant in our distribution.

>> This would require to put the junit.jar in the stage folder, but if I
>> understood it correctly ASF allows us to do this.
> 
> As per http://www.apache.org/legal/3party.html, yes, that seems correct.

That was my source too! I noticed the "This document represents a 
*proposed* ASF policy", so I preferred to verify this.
Having an answer from you and Robert make me feel more confident about this.

Stefano


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


RE: Required version of Ant

Posted by "Noel J. Bergman" <no...@devtech.com>.
Stefano Bagnara wrote:
> Noel J. Bergman ha scritto:
>> Stefano Bagnara wrote:
>>> does ant 1.7.0 solve the issue with the junit task and the junit.jar
>>> library?
>>>
>>> I really never liked having to manually download junit.jar to
>>> the "ant install dir"/lib to be able to run the junit ant task
>>> (and this applies also to other task=>dependency tuple).
>> See http://ant.apache.org/manual/OptionalTasks/junit.html and
>> http://ant.apache.org/faq.html#delegating-classloader
>>
>> we probably want to go with option #4.
> Cool to see that in 1.7 they solved this issue in a clean way: this was
> *one* of the triggers that led me to try maven2 1.5 years ago.

Good, now we can go back.  :-p

> I like the #5:
> ---
> Leave ant-junit.jar in its default location in ANT_HOME/lib but include
> junit.jar in the <classpath> passed to <junit>. (since Ant 1.7)
> ---

So do I.  That's my preferred solution.  I had viewed that as related to #4,
with the exception that #4 seemed a bit more detailed on the <classpath>
element, but I hadn't read it closely enough.  I now see that <junit> takes
a nested <classpath> entry for the purpose.

I've committed a change to unittest.class.path in build.xml.  This means
that everyone must update to Ant 1.7.0 or they won't be able to build or run
the unit tests with the new build file.  If that is a problem, we can revert
the change, but I suspect that most of us want this change, and installing
the Ant 1.7.0 binary distribution is trivially simple.

> This would require to put the junit.jar in the stage folder, but if I
> understood it correctly ASF allows us to do this.

As per http://www.apache.org/legal/3party.html, yes, that seems correct.

> Thank you for the links!

You're welcome.

	--- Noel



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


Re: Required version of Ant

Posted by Stefano Bagnara <ap...@bago.org>.
Noel J. Bergman ha scritto:
> Stefano Bagnara wrote:
>> Noel J. Bergman ha scritto:
>>> Updated the nightly build server to 1.7.0.  Easy, once you
>>> REMEMBER TO COPY junit.jar from your old Ant install to
>>> the new one.  :-)
> 
>> does ant 1.7.0 solve the issue with the junit task and the junit.jar
> library?
> 
>> I really never liked having to manually download junit.jar to
>> the "ant install dir"/lib to be able to run the junit ant task
>> (and this applies also to other task=>dependency tuple).
> 
> See http://ant.apache.org/manual/OptionalTasks/junit.html and
> http://ant.apache.org/faq.html#delegating-classloader
> 
> I was just lazy, but we probably want to go with option #4.
> 
> 	--- Noel

Cool to see that in 1.7 they solved this issue in a clean way: this was 
*one* of the triggers that led me to try maven2 1.5 years ago.

I like the #5:
---
Leave ant-junit.jar in its default location in ANT_HOME/lib but include 
junit.jar in the <classpath> passed to <junit>. (since Ant 1.7)
---

This would require to put the junit.jar in the stage folder, but if I 
understood it correctly ASF allows us to do this.

This will simplify things for people that simply want to build and test 
James Server without moving/copying files around.

Thank you for the links!
Stefano


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


RE: Required version of Ant

Posted by "Noel J. Bergman" <no...@devtech.com>.
Stefano Bagnara wrote:
> Noel J. Bergman ha scritto:
> > Updated the nightly build server to 1.7.0.  Easy, once you
> > REMEMBER TO COPY junit.jar from your old Ant install to
> > the new one.  :-)

> does ant 1.7.0 solve the issue with the junit task and the junit.jar
library?

> I really never liked having to manually download junit.jar to
> the "ant install dir"/lib to be able to run the junit ant task
> (and this applies also to other task=>dependency tuple).

See http://ant.apache.org/manual/OptionalTasks/junit.html and
http://ant.apache.org/faq.html#delegating-classloader

I was just lazy, but we probably want to go with option #4.

	--- Noel



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


Re: Required version of Ant

Posted by Stefano Bagnara <ap...@bago.org>.
Noel J. Bergman ha scritto:
>> I'm still running Ant 1.6, IIRC.
> 
> Yes.  Had 1.6.5 installed.  Updated the nightly build server to 1.7.0.
> Easy, once you REMEMBER TO COPY junit.jar from your old Ant install to the
> new one.  :-)
> 
> 	--- Noel

This was my current thought: does ant 1.7.0 solve the issue with the 
junit task and the junit.jar library?

To any ant guru out there: how is this supposed to work? I really never 
liked having to manually download junit.jar to the "ant install dir"/lib 
to be able to run the junit ant task (and this applies also to other 
task=>dependency tuple).

With former Ant placing it in the project classpath was not a solution 
because of classloader issues: is it possible now?

Stefano


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


RE: Required version of Ant

Posted by "Noel J. Bergman" <no...@devtech.com>.
> I'm still running Ant 1.6, IIRC.

Yes.  Had 1.6.5 installed.  Updated the nightly build server to 1.7.0.
Easy, once you REMEMBER TO COPY junit.jar from your old Ant install to the
new one.  :-)

	--- Noel



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


Required version of Ant

Posted by "Noel J. Bergman" <no...@devtech.com>.
> +  * (./) upgrade to ant 1.7 (the new features are *really* good)

I'm still running Ant 1.6, IIRC.  Does this mean that we should make it
clear to everyone that they need to install an updated Ant?  :-)



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org