Re: Call for vote: Apache James 0.8.11

2024-03-05 Thread Rene Cordier

+1,

Rene.

On 3/5/24 23:20, Karsten Otto wrote:

+1

I looked at how this change affects the parser, and played a bit with 
the test. LGTM.


Cheers,
Karsten OTTO

On 05.03.24 4:42 PM, Benoit TELLIER wrote:

Hi,

I would like to propose a new vote for 0.8.11 release of the Apache 
James MIME4J library.


You can find:

  - The maven release staged in repository.apache.org as the artifact 
#1082: 
https://repository.apache.org/content/repositories/orgapachejames-1082/

  - The changelog: https://github.com/apache/james-mime4j/pull/98
  - The site changes: https://github.com/apache/james-project/pull/2091

This is a minor release that addresses a regression of the 0.8.10 
release regarding invalid encoding usage in email headers.


Voting rules:
  - This is a majority approval: this release may not be vetoed.
  - A quorum of 3 binding votes is required
  - The vote starts at Tuesday 5th of March 2024, x4pmxx UTC+1
  - The vote ends at Tuesday 12th of March 2024, x4pmxx UTC+1

You can answer to it just with +1 and -1. Down-votes may be motivated.

3 binding votes are expected move forward on this release.

Cheers,

Benoit TELLIER


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


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



Re: Build metrics

2024-02-25 Thread Rene Cordier

Hello Jean,

Mistake on my part indeed, was not the intention of making this private, 
so i'm pushing it as public again on the ML. Thanks :)


Thanks for taking a look.

Interesting the diagnoses we can seem to get with develocity !

Regards,

Rene.

On 2/23/24 15:37, Jean Helou wrote:

hello rene,

I'm not sure if you answered privately on purpose or not so I'm 
answering in the same manner but I do thinks this conversation could 
benefit from being public :D


I looked in the testcontainer issue you mention and damn what a shitty 
design. There were mentions of changing it when introducing the 
ImagePullPolicy but I reviewed the MR and it wasn't changed and it 
still isn't. The effort to work around it is quite significant (but 
doable) I might poc it after my vacation.


However, going through the details of the errors using develocity, 
there are a lot more times when the cassandra tests fail because of
Caused by: com.datastax.oss.driver.api.core.DriverTimeoutException: 
Query timed out after PT2S 	


than there are times where it failed with a docker init error

looking around I also found that :
cassandra, opensearch, s3 and ldap are the subsystems that show errors
rabbit or pulsar for instance seem unaffected ( no failures over 3 
weeks of builds) there may be less integration tests for these 2 but 
this questions the volume of integration test done for the others :p



for now the volume of tests is a bit low and I need to include all PR 
builds to get some trends. over time we will be able to target master 
only to get a better view of what's going on


jean

Le jeu. 22 févr. 2024 à 04:12, Rene Cordier  a 
écrit :


Hi Jean,

Thanks for the heads up on your work on this, very interesting.

Regarding the test failures, to add a bit more insight, I never
really
took the time to fully look into it, but yes the issues with a test
containers not starting because could not initialize some class error
log has been going on for a while, and is plaguing our builds.

As I think Quan noticed a while ago, this issue opened on the
testcontainers java backlog seems related:
https://github.com/testcontainers/testcontainers-java/issues/1872

It seems this error is misleading and hides the real one. It could
ber
elated to infra, or something maybe real tricky on our build.
Might need
to take the time to dig deeper at some point, but looks like a tricky
one to me :)

Hope this bit of info helps somehow!

Regards,

Rene.

On 2/21/24 18:01, Jean Helou wrote:
> Hi fellows,
>
> The Develocity <https://ge.apache.org> integration of
james-project build
> has now been running for long enough that we can start seeing
interesting
> things beyond the raw build scans.
> First we can give a short look at build trends
>

<https://ge.apache.org/scans/trends?search.relativeStartTime=P28D=*james*=master=clean%2Cinstall=Europe%2FParis#

<https://ge.apache.org/scans/trends?search.relativeStartTime=P28D=*james*=master=clean%2Cinstall=Europe%2FParis#>>
> for the `clean install` command on master (the build stage), its
hard to
> derive actual trends since
> - we only have 15 days of history
> - we run on runners with varying cpu power ( build scans show
T1C go from
> 16 to 24)
> but it can be used to establish a baseline so we can compare
later on
> In average this stage took 9min10s
> the week from feb 5 to feb 11th has had a lot more spread 5th-95th
> percentile was 4m54s to 11m26s
> last week was a bit more homogenous with the same percentiles
being 7m54 -
> 10m18
> this week so far looks more similar to last week than the
previous, 7m12 -
> 9m4
>
> Adding the local build cache added about 14s of overhead and
provided no
> benefits on CI (completely expected, maybe I should disable
local caching
> on CI since it spawns in a fresh env everytime) but this will be
> interesting to compare with the remote build cache.
>
> The tests
>

<https://ge.apache.org/scans/tests?search.relativeStartTime=P28D=*james*=Europe%2FParis=FLAKY

<https://ge.apache.org/scans/tests?search.relativeStartTime=P28D=*james*=Europe%2FParis=FLAKY>>
> monitoring is also interesting. This screen monitors 2 things:
> - which tests fail the most often
> - which tests are flaky
> To measure this I enabled retries for surefire in this commit
> <https://github.com/apache/james-project/commit/39a50194> so
that a failing
> test is retried once.
> Failed is both tries failed
> Flakyness is derived by looking at retries (1 fail followed by 1
success).
>
> The results probably won't surprise you too much :
>
> The t

Re: vote : Remote build cache experiment

2024-02-20 Thread Rene Cordier

+1,

If there is a chance to make our builds faster, I say we take it! Thanks 
for this work :)


Rene.

On 2/20/24 15:18, Jean Helou wrote:

Hello devs !

I have not yet moved forward with enabling remote caching for the build and
tests in general. It is unclear to me if you are ok with trying it from the
previous discussion. So I'll call a more formal vote:

Are you ok with experimenting enabling remote build cache for james (ci
write+local read) ?

Deployment of the remote build cache would follow the documented plan
https://docs.gradle.com/enterprise/maven-build-cache/#rolling_out_the_cache_in_your_organization
TLDR;
1. move forward with the INFRA request to get our build cache node
2. test (read+write) with a few (2-3) volunteers locally (not enabled on CI)
3. enable write on CI
4, enable read for everyone

- voting starts 2024-02-20
- voting ends 2024-02-27

This is lazy consensus, this vote can be vetoed (please motivate your
veto), there will be a second formal vote to definitely enable the cache
once the experiment has been conducted and there are some results to share.

jean



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



Re: Call for vote: Apache James MIME4J 0.8.10

2024-02-14 Thread Rene Cordier

+1,

Rene.

On 2/12/24 17:38, Benoit TELLIER wrote:

Typo

The maven release staged in repository.apache.org as the artifact #1081:
https://repository.apache.org/content/repositories/orgapachejames-1081/

On 12/02/2024 11:35, Benoit TELLIER wrote:

Hi,

I would like to propose a new vote for 0.8.10 release of the Apache 
MIME4J library.


You can find:

 - The maven release staged in repository.apache.org as the artifact 
#1076:

https://repository.apache.org/content/repositories/orgapachejames-1076/
 - The changelog:
https://github.com/chibenwa/james-mime4j/blob/master/CHANGELOG.md

This release ships mostly small enhancements.

Voting rules:
 - This is a majority approval: this release may not be vetoed.
 - A quorum of 3 binding votes is required
 - The vote starts at Monday 12th of February 2024, 11am UTC+2
 - The vote ends at Monday 19th of February 2024, 11am UTC+2

You can answer to it just with +1 and -1. Down-votes may be motivated.

3 binding votes are expected move forward on this release.

Cheers,

Benoit TELLIER


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




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




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



Re: Call for vote: Apache James 3.7.5

2024-02-14 Thread Rene Cordier

+1,

Rene.

On 2/12/24 17:37, Benoit TELLIER wrote:

Hi,

Taking into account the feedback of this very list,

I would like to propose a new vote for 3.7.5 release of the Apache 
James server.


You can find:

 - The maven release staged in repository.apache.org as the artifact 
#1079:

https://repository.apache.org/content/repositories/orgapachejames-1079/
 - The changelog for 3.7.5:
https://github.com/apache/james-project/blob/master/CHANGELOG.md

This release mostly ships bug fixes.

Voting rules:
 - This is a majority approval: this release may not be vetoed.
 - A quorum of 3 binding votes is required
 - The vote starts at Tuesday 12th of February 2024, 11am UTC+2
 - The vote ends at Tuesday 19th of February 2024, 11am UTC+2

You can answer to it just with +1 and -1. Down-votes may be motivated.

3 binding votes are expected move forward on this release.

Cheers,

Benoit TELLIER


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




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



Re: Call for vote: Apache James 3.8.1

2024-02-14 Thread Rene Cordier

+1,

Rene.

On 2/12/24 18:43, Karsten Otto wrote:

+1

Looks good to me.

Cheers,
Karsten OTTO


On 12.02.24 11:46 AM, Benoit TELLIER wrote:

Hi,

Following the feedback of this very list,

I would like to propose a new vote for 3.8.1 release of the Apache 
James server.


You can find:

  - The maven release staged in repository.apache.org as the artifact 
#1080:

https://repository.apache.org/content/repositories/orgapachejames-1080/
  - The changelog for 3.8.1:
https://github.com/apache/james-project/blob/master/CHANGELOG.md

This release mostly ships bug fixes.

Voting rules:
  - This is a majority approval: this release may not be vetoed.
  - A quorum of 3 binding votes is required
  - The vote starts at Monday 12th of February 2024, 11am UTC+2
  - The vote ends at Monday 19th of February 2024, 11am UTC+2

You can answer to it just with +1 and -1. Down-votes may be motivated.

3 binding votes are expected move forward on this release.

Cheers,

Benoit TELLIER


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


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



Re: Develocity

2024-02-06 Thread Rene Cordier
I agree caching the test suite is very tempting, it would help gain 
so much time on the build.


But yes the test suite is flaky unfortunately. Maybe we need extra work 
making it more stable first, but that's not easy task ^^'


Or maybe for remote caching on test execution, maybe we can try to 
execute that in an other branch in parallel to master, giving us time to 
monitor the behavior of the build, before using it for good? Requires 
extra work, efforts and attention yes, but I hardly see how else we can 
go safely forward on this. But somebody else has a better idea maybe? :)


Regards,

Rene.

On 2/7/24 02:58, Jean Helou wrote:

Thanks for trying

As you can see in the output only about 10% of the tasks you ran were
cached.

Which explains why the gains are not so great.

There are 2 good news
- it is possible to configure more goals to be cached. I have an attempt at
caching scala compile (which doesn't work for now as that goal has rather
complex input and outputs).
I intend to look at build scans to cache more high CPU consuming goals and
to avoid running some goals entirely when possible (as per my comments on
the PR)

Where it becomes really interesting (the second good news) is that surefire
is supported out of the box, so if one pays the cost of running the tests,
every subsequent build would only run the tests for the changed projects
and their dependencies

And testing is by far the most time consuming goal in James build.

Remote caching of test execution would have the most impact, accelerating
both local and CI builds because it would allow sharing the cache between
different machines/nodes. (Only the ci would write but everyone could read
if I understand correctly)

The risk is caching a negative result coming from a flaky test. And I feel
like James test suite is quite unstable.

So I'm wondering if I should go ahead with the remote build cache node
request to apache INFRA or revisit that request in a few months.

Jean



Le mar. 6 févr. 2024 à 11:18, Quan tran hong 
a écrit :


Hi Jean,

I tried your work locally and the build time is truly better.
`mvn clean install -DskipTests -Dmaven.skip.doc=true
-Dgradle.cache.local.enabled=true`

1st build:
[INFO] Total time:  22:18 min
[INFO] 8053 goals, 7996 executed, 57 from cache, saving at least 13s

2nd build:
[INFO] Total time:  15:07 min
[INFO] 8053 goals, 7296 executed, 757 from cache, saving at least 3m 11s

Thank you for the initiative :-)

Quan

Vào Th 3, 6 thg 2, 2024 vào lúc 14:48 Jean Helou  đã
viết:


Hi devs,

I realized this morning that I initiated the conversation on the wrong

list

(server-user instead of server-dev) ...
see the archives
https://lists.apache.org/list.html?server-u...@james.apache.org for

Rene's

positive answer

sorry about that

jean

-- Forwarded message -
From: Jean Helou 
Date: Mon, Feb 5, 2024 at 3:52 PM
Subject: Develocity
To: James Users List 


Hello fellow james devs,

I'm not sure how much context to provide in the email you can read more

in



https://issues.apache.org/jira/projects/JAMES/issues/JAMES-3978?filter=allopenissues

TLDR; A few months ago the apache foundation announced a sponsorship of

the

"gradle" company for a tool to diagnose, monitor and optimize builds  (
called gradle enterprise at the time and renamed develocity since)

I posted a first PR to plug james build in that tool
https://github.com/apache/james-project/pull/1972

This first integration brings only build scans and local caching
- build scans can help us understand what slows our build
- local caching allows local build perf improvements (I posted a small
benchmark which shows a divide by 3 the time spent building
james-server-core in a repeat build with no changes)

The build scans also show that many tasks in the build are not actually
cached so there is room for more improvement.

The local cache does apply to surefire tasks,unfortunately the benefits

for

CI are very small :

In the first stage we cache the compilation result itself but that
represents a very small part of the test stages (even if we had to

compile

everything from scratch that's barely 20 minutes out of the 3h30 of the
build so caching only marginally improves the build time at the moment

the next stage would be to :
- make more tasks cacheable
- enable the remote build cache

The remote build cache allows to share caching accross builds which means
that if a change affects only a small portion of the build, only that
change would effectively be recompiled and retested, so the closer to the
"leafs" of the reactor a change would be the shorter its CI pipelines

would

be.
I pinged INFRA in https://issues.apache.org/jira/browse/INFRA-25461 to
know
what the process is for enabling the remote build cache and it seems it
starts with a mailing list thread :D

note that
- only the CI would be allowed to write to the remote build cache
- build caches both local and remote can be disabled with properties

(IIRC

there are 

Re: Vote to merge the Java 21 adoption for Apache James PR

2024-02-05 Thread Rene Cordier

+1,

Thanks for the efforts on this work :)

Rene.

On 2/6/24 10:36, Quan tran hong wrote:

Hi everyone,

Following the Jira ticket

and the previous mailing list discussion

regarding Java 21 adoption for James, I and Benoit put together an effort
to successfully get a green build on the Java 21 adoption PR
.

The idea is to have James migrated to Java 21 with minimal changes first,
and after that, we can leverage new Java features gradually.

Because this is a big change for James, James's community review, remarks,
and opinions on merging the Java 21 PR should be needed.

It would be good if the community could spend some time reviewing the PR,
or just upvote/downvote directly on this mail thread.

Thanks for reading.

Best regards,

Quan



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



Re: Call for vote: Apache James 3.8.1

2024-01-11 Thread Rene Cordier

Hi jean,

FYI Karsten already proposed fixes for that issue that have been 
approved and will be part of the releases. It's just a matter now of 
getting a green build from a rather a bit capricious CI^^'


Regards,

Rene.

On 1/11/24 15:09, Jean Helou wrote:

Much clearer thank you !
What do you think about karsten's request ? i have no idea how painful it
is to add that to the release ( i have a vague notion that the release
process is quite complex). Though i don´t use rabbitmq I think a bug that
results in hard mail loss is  severe enough to warrant a hotfix

jean

Le mer. 10 janv. 2024 à 16:44, btell...@linagora.com 
a écrit :


I just merged the changelog updates, this should be better now.

On 10/01/2024 11:26, Jean Helou wrote:

hmm the linked changelog doesn't list any unreleased changes is that

normal

?

Le mar. 9 janv. 2024 à 09:17, Benoit TELLIER  a

écrit :

Hi,

I would like to propose a new vote for 3.8.1 release of the Apache James
server.

You can find:

- The maven release staged in repository.apache.org as the artifact
#1077:
https://repository.apache.org/content/repositories/orgapachejames-1077/
- The changelog for 3.8.1:
https://github.com/apache/james-project/blob/master/CHANGELOG.md

This release mostly ships bug fixes.

Voting rules:
- This is a majority approval: this release may not be vetoed.
- A quorum of 3 binding votes is required
- The vote starts at Tuesday 9th of January 2024, 9am UTC+2
- The vote ends at Tuesday 16th of January 2024, 9am UTC+2

You can answer to it just with +1 and -1. Down-votes may be motivated.

3 binding votes are expected move forward on this release.

Cheers,

Benoit TELLIER


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



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




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



Re: Call for vote: Apache James 3.8.1

2024-01-09 Thread Rene Cordier

+1,

Rene.

On 1/9/24 15:17, Benoit TELLIER wrote:

Hi,

I would like to propose a new vote for 3.8.1 release of the Apache 
James server.


You can find:

 - The maven release staged in repository.apache.org as the artifact 
#1077:

https://repository.apache.org/content/repositories/orgapachejames-1077/
 - The changelog for 3.8.1:
https://github.com/apache/james-project/blob/master/CHANGELOG.md

This release mostly ships bug fixes.

Voting rules:
 - This is a majority approval: this release may not be vetoed.
 - A quorum of 3 binding votes is required
 - The vote starts at Tuesday 9th of January 2024, 9am UTC+2
 - The vote ends at Tuesday 16th of January 2024, 9am UTC+2

You can answer to it just with +1 and -1. Down-votes may be motivated.

3 binding votes are expected move forward on this release.

Cheers,

Benoit TELLIER


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




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



Re: Call for vote: Apache James 3.7.5

2024-01-09 Thread Rene Cordier

+1,

Rene.

On 1/9/24 15:15, Benoit TELLIER wrote:

Hi,

I would like to propose a new vote for 3.7.5 release of the Apache 
James server.


You can find:

 - The maven release staged in repository.apache.org as the artifact 
#1079:

https://repository.apache.org/content/repositories/orgapachejames-1079/
 - The changelog for 3.7.5:
https://github.com/apache/james-project/blob/master/CHANGELOG.md

This release mostly ships bug fixes.

Voting rules:
 - This is a majority approval: this release may not be vetoed.
 - A quorum of 3 binding votes is required
 - The vote starts at Tuesday 9th of January 2024, 9am UTC+2
 - The vote ends at Tuesday 16th of January 2024, 9am UTC+2

You can answer to it just with +1 and -1. Down-votes may be motivated.

3 binding votes are expected move forward on this release.

Cheers,

Benoit TELLIER


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




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



Re: Call for vote: Apache James MIME4J 0.8.10

2024-01-08 Thread Rene Cordier

+1,

Cheers,

Rene.

On 1/8/24 21:36, Benoit TELLIER wrote:

Hi,

I would like to propose a new vote for 0.8.10 release of the Apache 
MIME4J library.


You can find:

 - The maven release staged in repository.apache.org as the artifact 
#1076:

https://repository.apache.org/content/repositories/orgapachejames-1076/
 - The changelog:
https://github.com/chibenwa/james-mime4j/blob/master/CHANGELOG.md

This release ships mostly small enhancements.

Voting rules:
 - This is a majority approval: this release may not be vetoed.
 - A quorum of 3 binding votes is required
 - The vote starts at Monday 8th of January 2024, 3pm UTC+2
 - The vote ends at Monday 15th of January 2024, 3pm UTC+2

You can answer to it just with +1 and -1. Down-votes may be motivated.

3 binding votes are expected move forward on this release.

Cheers,

Benoit TELLIER


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




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



Event dead letter group deserialization too strict?

2023-12-14 Thread Rene Cordier

Hello guys,

Today I noticed on one of our servers that the redelivery of all event 
dead letters task was failing.


The problem being... too strict on event dead letter group 
deserialization. The problem I had was that after a migration, I had 
some groups still registered in group_table that were from before the 
migration. After the migration, those group didn't exist anymore or have 
been refactored and changed name. But the api is so strict on it that 
when we try to redeliver all events, we fetch all groups in the group 
table and try to deserialize them into their own class. If one of the 
group changed, it just crashes!


I've been trying to use webadmin for trying to delete the groups that 
were not in the code anymore: 
https://james.apache.org/server/manage-webadmin.html#Deleting_all_events_of_a_group


Looking at the code, it deletes events of a group, then the group. 
Checking in cassandra, there was no events left going around related to 
those groups. But still the task failed... because we try to strictly 
deserialize the group in to a class again .


I understand that being strict in some cases is good, but it reached the 
point where I had to go delete the faulty group lines in cassandra 
myself to do the clean up and allow the redeliver all events task to do 
its job again properly (which I find even more riskier).


Can we be a bit more relax on that? Or at least giving the possibility 
to delete via the webadmin api those outdated group without a strict 
deserialization first? Like maybe refactoring the webadmin route I 
posted above to accept a header, like "I-KNOW-WHAT-I-AM-DOING" (as we 
have for some other sensitive routes) and if we get that, we accept to 
not be strict and just do a blind remove against cassandra for that group?


It's not the first time I encounter this, and it's frustrating each time.

Would be interested to know what the community thinks.

Best regards,

Rene.


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



Re: Proposal about deprecation and removal

2023-11-26 Thread Rene Cordier

Hi Matthieu,

I think some people in the community are probably using the Spring 
version because the official documentation was never really clear about 
our intentions of potentially deprecating and removing this part.


I'm totally for deprecating and removing that part, and I'm very happy 
that this is getting addressed, but I think it should start by modifying 
the documentation where we put clearly that the Spring version is 
deprecated, planned for removal, and we strongly advice people to not 
use it as such.


What other features do you have in mind for removal though? I guess 
jmap-draft is on the table (was addressed in an other mail by Benoit 
already) but what else?


Cheers,

Rene.

On 11/24/23 23:30, Matthieu Baechler wrote:

Hi,

I had a hack session with Benoit today and the sentence "this would break 
Spring" came many times along the day.

As I'm less active on James than I used to be, I must admin I have no idea how 
popular the Spring version of James is nowadays.

However, what strikes me when I hack on James is how the size of the project 
and its legacy makes it so slow to make progress.

We did some deprecation and removal in the past but we have been conservative 
about that.

I would like to argue that being conservative to preserve existing users may 
actually prevents from attracting new ones. Moreover, it probably also prevents 
new developers to involve as they are quickly overwhelmed.

So, what would you think about removing more aggressively features and modules, 
starting with the Spring support?

Cheers,

-- Matthieu Baechler



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



Re: Deprecate and remove JMAP draft implementation

2023-11-16 Thread Rene Cordier

About time :) +1

Rene.

On 11/16/23 19:51, Benoit TELLIER wrote:

Hello there,

I wanted to quickly discussed the deprecation and removal of the JMAP 
draft implementation.


Please raise a voice if this impacts you...

## Why

 -> This protocol do no longer match standard specification
 -> Similar features are offered through the RFC-8621 regular JMAP 
mail protocol
 -> This code is complex (over 50.000 lines of code and roughtly 10% 
of James code volume)
 -> Build time is significant for JMAP draft integration tests - 16 
minutes.
 -> The only known usage is OpenPaaS, whose web-mail component is 
deprecated.


## What

Deprecate and eventually remove the following maven modules.

/server/protocols/jmap-draft
/server/protocols/jmap-draft-integration-testing/*

We might need to relocate the following classes:

 - org.apache.james.jmap.mailet
 - org.apache.james.jmap.event

Here are tests that would need to be ported to the new JMAP 
specification:


 - VacationRelayIntegrationTest
 - QuotaMailingTest
 - ImapSetMessagesMailboxesUpdatesCompatibility.feature
 - ImapKeywordsConsistency.feature

Regarding this one, wewould need a per test analysis to know if this 
is already tested with new spec or not.


- 
server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/cucumber/sharing


Best regards,

Benoit TELLIER


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




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



Re: Call for vote: Apache James 3.8.0

2023-05-18 Thread Rene Cordier

+1,

Rene.

On 19/05/2023 09:23, Benoit TELLIER wrote:

Hi,

I would like to propose a new vote for 3.8.0 release of the Apache James 
server.


You can find:

  - The maven release staged in repository.apache.org as the artifact 
#1074: 
https://repository.apache.org/content/repositories/orgapachejames-1074/
  - The changelog for 3.8.0: 
https://github.com/apache/james-project/pull/1568
  - The compatibility instructions/upgrade recommendation: 
https://github.com/apache/james-project/pull/1568


This release brings the following significant changes:

  - Upgrade TCP protocols to Netty 4
  - Migrate IMAP protocol as reactive
  - Multiple additional IMAP extensions are implemented
  - Upgrade to Cassandra driver 4
  - Migrate to OpenSearch for license purposes
  - Review our threading model to cap threads performing blocking tasks
  - Implement official JMAP quotas specification

Voting rules:

  - This is a majority approval: this release may not be vetoed.
  - A quorum of 3 binding votes is required
  - The vote starts at Friday 19th of June 2023, 9am30 UTC+7
  - The vote ends at Friday 26th of June 2023, 9am30 UTC+7

You can answer to it just with +1 and -1. Down-votes may be motivated.

3 binding votes are expected move forward on this release.

Cheers,

Benoit TELLIER in the name of the Apache James PMC.


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




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



Re: Call for vote: Apache James 3.7.4

2023-03-23 Thread Rene Cordier

+1

Rene.

On 24/03/2023 00:21, Benoit TELLIER wrote:

Hi,

I would like to propose a new vote for 3.7.4 release of the Apache James 
server.


You can find:

  - The maven release staged in repository.apache.org as the artifact 
#1073:

https://repository.apache.org/content/repositories/orgapachejames-1073/
  - The changelog for 3.7.4:
https://github.com/apache/james-project/blob/master/CHANGELOG.md
  - The compatibility instructions/upgrade recommendation:
https://github.com/apache/james-project/blob/master/upgrade-instructions.md#374-version

There is only minor fixes part of this release.

Voting rules:
  - This is a majority approval: this release may not be vetoed.
  - A quorum of 3 binding votes is required
  - The vote starts at Thursday 24th of March 2023, 6pm UTC+1
  - The vote ends at Thursday 31st of March 2023, 6pm UTC+1

You can answer to it just with +1 and -1. Down-votes may be motivated.

3 binding votes are expected move forward on this release.

Cheers,

PMC member name


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




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



Antora build mis-fonctionning

2023-03-22 Thread Rene Cordier

Hi James community,

Recently some people took notice that the Antora documentation hosted on 
https://james.staged.apache.org/james-site/latest/homepage.html is not 
always showing.


We suspect it's because if the build on the CI fails for some reason, 
then deployment maybe doesn't go to the end and we end up with something 
broken (missing doc website).


Some work has been done regarding this, fixing some links and typos, 
adding this ML as a recipient in the mail build status so we can monitor 
it better if there is a problem during the build, ...


You can find a resume of it in the JIRA here if you are interested : 
https://issues.apache.org/jira/browse/JAMES-3894


If someone has more ideas how we can make that release process more 
reliable, any help is welcome and appreciated. Don't hesitate then to 
reply to this email or comment on the JIRA ticket.


Thanks for your attention and have a good day!

Best regards,
Rene.

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



Re: Fwd: [ANNOUNCE] Changes to Jira Account Creation (issues.a.o/jira)

2022-11-09 Thread Rene Cordier

+1,

Rene.

On 10/11/2022 12:01, Benoit TELLIER wrote:

Hello all

See the email bellow.

This email:
  - Warns us that SIGNIFICANT paper work would be needed to create 
accounts on our JIRA
  - Recommends us to activate GitHub issues for user facing interactions 
(bug reports, feature requests, etc...) and let the committer transpose 
this into JIRA.


Being likely the one the paper work would fall on, I am strongly in 
favor of following the recommendation. JIRA would then be reserved for 
regular contributors. Would you agree?


If so I would...
  - [ ] Activate github issues on our repos
  - [ ] Update our contributing sections, instructions and links on the 
website.


Regards,

Benoit



 Forwarded Message 
Subject: [ANNOUNCE] Changes to Jira Account Creation (issues.a.o/jira)
Date: Fri, 21 Oct 2022 17:55:40 -0700
From: fluxo 
Reply-To: us...@infra.apache.org
To: annou...@infra.apache.org



Hello PMC members,

As I'm sure most of you are aware, the spam issues on Jira are getting 
worse. We are seeing spam user creation of over 10,000 accounts per 
year, and receive many requests per month from project members for help 
addressing spam complaints. Infra is taking steps to disable public Jira 
signups.
Infra has developed a self-service tool by which folks on a PMC can 
request a Jira account for non-ASF contributors:



https://selfserve.apache.org/

Click "Create a Jira user account" to go to:


https://selfserve.apache.org/jira-acct.html


You need to enter a username for the new Jira account. We will reject 
the request if there is an existing account with that username. If this 
person may ultimately become a committer, Infra recommends that they 
choose a username that they can also use for their LDAP username.


Next, the tool asks you to enter their Display Name. This is the "public 
name" which will appear on all their Jira posts and comments.


Last, the tool asks you to enter the user's email address. We expect the 
PMC to exercise due diligence in making sure the contributor's email 
works. If it does not, they will not get the password reset mail.



Infra knows this process change places an increasing burden on PMC 
members for managing contributors, and makes it harder for people to 
contribute bug reports. We suggest projects consider using GitHub Issues 
for customer-facing questions/bug reports/etc., while maintaining 
development issues on Jira. You can enable GitHub Issues for your 
repository via 
https://cwiki.apache.org/confluence/display/INFRA/Git+-+.asf.yaml+features#Git.asf.yamlfeatures-Repositoryfeatures



Infra has targeted 6 November for the date we switch off public signups 
for issues.apache.org/jira . Please let us know if this will place any 
significant burden on your teams. We are following an aggressive 
timeline because of the serious impact spam users have on the safety and 
stability of our infrastructure.


As always, if you have any questions or comments about this, please let 
us know!


-Chris (fluxo)



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



Re: Call for vote: Apache James 3.7.2

2022-10-07 Thread Rene Cordier

+1,
Rene.

On 07/10/2022 14:26, Benoit TELLIER wrote:

Hi,

I would like to propose a new vote for 3.7.2 release of the Apache James 
server.


You can find:

  - The maven release staged in repository.apache.org as the artifact 
#1066: 
https://repository.apache.org/content/repositories/orgapachejames-1066/
  - The communication material for release 3.7.2: 
https://github.com/apache/james-project/pull/1234


This release brings various fixes and enhancements. Some security 
related dependency upgrades where done.


Voting rules:
  - This is a majority approval: this release may not be vetoed.
  - A quorum of 3 binding votes is required
  - The vote starts at Friday 7th of October 2022, 2pm30 UTC+7
  - The vote ends at Friday 14th of October 2022, 2pm30 UTC+7

You can answer to it just with +1 and -1. Down-votes may be motivated.

3 binding votes are expected move forward on this release.

Cheers,

Benoit TELLIER


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




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



Re: Call for vote: Apache James JDKIM 0.3

2022-10-02 Thread Rene Cordier

+1,
Rene.

On 02/10/2022 16:06, Benoit TELLIER wrote:

Hi,

I would like to propose a new vote for 0.3 release of the Apache James 
JDKIM library.


You can find the maven release staged in repository.apache.org as the
artifact #1065:
https://repository.apache.org/content/repositories/orgapachejames-1065/

Voting rules:
  - This is a majority approval: this release may not be vetoed.
  - A quorum of 3 binding votes is required
  - The vote starts at Sunday 2nd of October 2022, 4pm UTC+7
  - The vote ends at Sunday 9th of October 2022, 4pm UTC+7

You can answer to it just with +1 and -1. Down-votes may be motivated.

3 binding votes are expected move forward on this release.

Cheers,

Benoit TELLIER


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




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



Re: Call for vote: Apache James 3.7.1

2022-08-28 Thread Rene Cordier

+1,
Rene.

On 26/08/2022 18:12, Benoit TELLIER wrote:
|Hi, I would like to propose a new vote for 3.7.1 release of the Apache 
James server. You can find: - The maven release staged in 
repository.apache.org as the artifact #1064: 
https://repository.apache.org/content/repositories/orgapachejames-1064/ 
- The changelog for 3.7.1: 
https://github.com/apache/james-project/pull/1160 - The compatibility 
instructions/upgrade recommendation: 
https://github.com/apache/james-project/blob/master/upgrade-instructions.md#371-version 
This release includes a few bug fixes Voting rules: - This is a majority 
approval: this release may not be vetoed. - A quorum of 3 binding votes 
is required - The vote starts at Friday 26th of August 2022, 6pm UTC+7 - 
The vote ends at Friday 2nd of September 2022, 6pm UTC+7 You can answer 
to it just with +1 and -1. Down-votes may be motivated. 3 binding votes 
are expected move forward on this release. Cheers, PMC member name |




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



Re: new committer: Jean Helou

2022-06-24 Thread Rene Cordier

Congrats Jean :)

Rene.

On 24/06/2022 08:51, Benoit TELLIER wrote:
|The Project Management Committee (PMC) for Apache James has invited 
Jean Helou to become a committer and we are pleased to announce that 
they have accepted. Jean started to contribute many years ago, starting 
with the first object storage implementation using JCloud. Later 
contributed, amongst other bug fixes the implementation for the 
promising Apache Pulsar mail queue. Being a committer enables easier 
contribution to the project since there is no need to go via the patch 
submission process. This should enable better productivity. A PMC member 
helps manage and guide the direction of the project. Best regards, 
Benoit in the name of Apache James PMC. |




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



Re: Upgrade regarding ElasticSearch

2022-06-17 Thread Rene Cordier

Hi,

Overall no problem, maybe I wasn't clear enough on my initial mail, or 
it was too long to ingest.


But it seems we are all on the same page now so all good :)

Regards,
Rene.

On 17/06/2022 14:07, Matthieu Baechler wrote:

Hi,

On Fri, 2022-06-17 at 10:19 +0700, Rene Cordier wrote:


[...]





Instead of deleting the support for ES 7, we could just keep it and run
tests against OpenSearch.

Investment is very low and people don't have to switch to non-
opensource ES 8 if they don't want to.


I'm sorry you are mixing up things... It's not question anymore to move
up to ES 8 at all,



Sorry, I must have missed that part from your email.



none of the 3 solutions I proposed above are implying
this.



Well, I was thinking that, given you already have a ES 8 impl almost
done, you would like to keep it. It looks like I was wrong.


We agree it's better to just switch to OpenSearch and not continue
with ES versions after 7.10.



Definitely something I missed in the discussion.



If ever somebody has interest in migrating to OpenSearch 2, it can be
migrated at this point.


Well as said as well... I did spend a lot of time on it personally to
migrate to their new java client, that looks very similar to the one on
es8 (that's why the POC is starting from the ES work:
https://github.com/apache/james-project/pull/1051... but I can clean it
up to make all the es 8 stuff disappear?)

However I remain an issue with the sort to which we had a workaround
with Benoit (but I personally don't like it) and I proposed a fix on
their client:
https://github.com/opensearch-project/opensearch-java/pull/169 .

But maybe a bit early to fully migrate to that yet...



I would personally postpone the migration and go for solution 1.


I understand why not solution 3... but what about solution 2? It's just
change the one dependency es client to opensearch high level one and
change all the imports and... nothing else. Effort needed is not much
more time consuming IMO? And you can use OpenSearch 2. Would like to
know what makes you afraid on this?




To be honest, if you tackle this issue (I mean, if you have time to
spend on the task), I don't really care how, we have a good test suite,
we can always change later if needed.

Sorry for my previous email, I got the main assumption wrong.

Regards,

-- Matthieu

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




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



Re: Upgrade regarding ElasticSearch

2022-06-16 Thread Rene Cordier

Hi Matthieu, thanks for joining the discussion.

Answers inline...

On 17/06/2022 03:28, Matthieu Baechler wrote:

Hi René,

Thank you for starting this thread.

On Wed, 2022-06-15 at 16:37 +0700, Rene Cordier wrote:

Hello James community!

I would like to start a discussion regarding the upgrade of
ElasticSearch, hoping we can reach a consensus, as I spent quite a lot
of time on this already.

As you know, the version 7.10 has reached EOL already, so we need to
migrate from it.

Thus a while ago I started a very painful migration to ES 8.2 here:
https://github.com/apache/james-project/pull/1018

Before being rightfully reminded by Matthieu Baechler that ES 7.10 is
the last OSI-compliant version of ElasticSearch, before you know they
switched to a new license that's not really open source anymore...

OpenSearch is indeed a fork of ES 7.10 using the Apache License, which
is definitely more in favor for adoption for the migration than ES 8. On
that, I totally agree.

  From then, with Benoit Tellier, we did our little extra research then.

If we want to migrate from ES to OpenSearch, there is a few options on
the table actually:

- solution 1: not modifying the ES7 code. Well it's possible, but you
can only use versions 1.x of OpenSearch (1.3.3 atm). However, from 2.x
version of OpenSearch, the support for es7 client has been dropped in
favor of their own clients.


The best part for this solution is: it should not require anything else
than changing the docker image reference.



- solution 2: using the java high level rest client from OpenSearch
(https://opensearch.org/docs/latest/clients/java-rest-high-level/): That
client is a basic fork of the java high level rest client from ES. As
this client has been dropped in upper version of ES for a new client
(that you can see in the PR I did before:
https://github.com/apache/james-project/pull/1018), the fork is thus
identical.
Benoit did a little POC on it and it seems you only need to change the
imports and it works with OpenSearch 2.0 without issues (also said here
in their doc:
https://opensearch.org/docs/latest/clients/java-rest-high-level/#migrating-to-the-opensearch-java-high-level-rest-client)

- solution 3: using the new java client
(https://opensearch.org/docs/latest/clients/java/). That client has been
forked from the new java client from ES probably at its beginnings,
before the change of license. In the POC I did here:
https://github.com/apache/james-project/pull/1051, you can see the
structure is very similar to the java client from ES, but with obviously
some changes or bugs as the fork went its way since when from the
original one. That migration is complicated honestly, but because I did
the one to ES then the remaining work is minimal as proven in the POC.
Just a few issues though encountered... (in the POC you can see them)

I think solution 1 is IMO, not an option, as we probably want to migrate
to the latest version of OpenSearch as we are at it now.

Solution 2 is very easy (replace dependencies and imports... nothing
more) and allows to use OpenSearch 2.0.

I would say let's go with it if I didn't invest so much time migrating
to the new java client. Because this is the issue actually. Amazon
states that the java client is supposed to replace the high level one at
some point (like on forums, or the page of the github project
(https://github.com/opensearch-project/opensearch-java). It's a bit
blurry on really when the high level client would be dropped but I
wouldn't be surprised to see it on next major upgrade for example.

So at some point we will have to migrate the client eventually... do we
try to do it now (solution 3) or do we do things simple for now
(solution 2) and keep the work done under the hood for the day the
migration is necessary? (cause a big chunk of it has been done I think).

I'm honestly fine either way, but would love to hear what the community
has to say on the topic.

Sorry it was long! But I hope I gave all the keys necessary to
understand our options here regarding this migration.



My point is: upgrading to ES 8 was triggered by "ES 7 is EOL

OpenSearch 1.x is basically a supported ES 7 and the code for ES 7 is
supposed to work perfectly with OpenSearch 1.x.


Yes it does.



Instead of deleting the support for ES 7, we could just keep it and run
tests against OpenSearch.

Investment is very low and people don't have to switch to non-
opensource ES 8 if they don't want to.


I'm sorry you are mixing up things... It's not question anymore to move 
up to ES 8 at all, none of the 3 solutions I proposed above are implying 
this. We agree it's better to just switch to OpenSearch and not continue 
with ES versions after 7.10.




If ever somebody has interest in migrating to OpenSearch 2, it can be
migrated at this point.


Well as said as well... I did spend a lot of time on it personally to 
migrate to their new java client, that looks very similar to the one on 
es8 (that's why the POC is starting from t

Upgrade regarding ElasticSearch

2022-06-15 Thread Rene Cordier

Hello James community!

I would like to start a discussion regarding the upgrade of 
ElasticSearch, hoping we can reach a consensus, as I spent quite a lot 
of time on this already.


As you know, the version 7.10 has reached EOL already, so we need to 
migrate from it.


Thus a while ago I started a very painful migration to ES 8.2 here: 
https://github.com/apache/james-project/pull/1018


Before being rightfully reminded by Matthieu Baechler that ES 7.10 is 
the last OSI-compliant version of ElasticSearch, before you know they 
switched to a new license that's not really open source anymore...


OpenSearch is indeed a fork of ES 7.10 using the Apache License, which 
is definitely more in favor for adoption for the migration than ES 8. On 
that, I totally agree.


From then, with Benoit Tellier, we did our little extra research then.

If we want to migrate from ES to OpenSearch, there is a few options on 
the table actually:


- solution 1: not modifying the ES7 code. Well it's possible, but you 
can only use versions 1.x of OpenSearch (1.3.3 atm). However, from 2.x 
version of OpenSearch, the support for es7 client has been dropped in 
favor of their own clients.


- solution 2: using the java high level rest client from OpenSearch 
(https://opensearch.org/docs/latest/clients/java-rest-high-level/): That 
client is a basic fork of the java high level rest client from ES. As 
this client has been dropped in upper version of ES for a new client 
(that you can see in the PR I did before: 
https://github.com/apache/james-project/pull/1018), the fork is thus 
identical.
Benoit did a little POC on it and it seems you only need to change the 
imports and it works with OpenSearch 2.0 without issues (also said here 
in their doc: 
https://opensearch.org/docs/latest/clients/java-rest-high-level/#migrating-to-the-opensearch-java-high-level-rest-client)


- solution 3: using the new java client 
(https://opensearch.org/docs/latest/clients/java/). That client has been 
forked from the new java client from ES probably at its beginnings, 
before the change of license. In the POC I did here: 
https://github.com/apache/james-project/pull/1051, you can see the 
structure is very similar to the java client from ES, but with obviously 
some changes or bugs as the fork went its way since when from the 
original one. That migration is complicated honestly, but because I did 
the one to ES then the remaining work is minimal as proven in the POC. 
Just a few issues though encountered... (in the POC you can see them)


I think solution 1 is IMO, not an option, as we probably want to migrate 
to the latest version of OpenSearch as we are at it now.


Solution 2 is very easy (replace dependencies and imports... nothing 
more) and allows to use OpenSearch 2.0.


I would say let's go with it if I didn't invest so much time migrating 
to the new java client. Because this is the issue actually. Amazon 
states that the java client is supposed to replace the high level one at 
some point (like on forums, or the page of the github project 
(https://github.com/opensearch-project/opensearch-java). It's a bit 
blurry on really when the high level client would be dropped but I 
wouldn't be surprised to see it on next major upgrade for example.


So at some point we will have to migrate the client eventually... do we 
try to do it now (solution 3) or do we do things simple for now 
(solution 2) and keep the work done under the hood for the day the 
migration is necessary? (cause a big chunk of it has been done I think).


I'm honestly fine either way, but would love to hear what the community 
has to say on the topic.


Sorry it was long! But I hope I gave all the keys necessary to 
understand our options here regarding this migration.


Cheers,
Rene.

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



Re: ElasticSearch upgrade to 8.2

2022-06-10 Thread Rene Cordier

Hello Jean,

Thanks for expressing your concern. I reverted the removal of the 
metrics es reporter.


But beware that it hasn't been migrated in the works of the 8.2 migration.

First of all when looking at the code it's obvious it hasn't even been 
migrated when passing to ES7. If it's not really mentioned in the doc 
it's been forgotten truly (and we should probably fix that indeed).


Second I spent a long time migrating the code base to es8 (lots of 
changes regarding the new client, and half of the methods in it not 
being officially documented yet). So I don't really feel like investing 
more time on this for something we personally don't use (aka es metrics 
reporter).


But it's there, if somebody wants to take a look and migrate it, will be 
happy to have a look at it.


Cheers,
Rene.

On 10/06/2022 16:01, Jean Helou wrote:

Hey benoit,

First I am happy to see this component raise such interest, and gets so



much attention!


For the record, I want to establish that I don't use nor actually like ES
for such use cases so the ES part doesn't really matter to me.
I do care a lot about metrics collection and I generally dislike being tied
to a single system.

However it's very easy to spend loads of time on technical issue that

delivers little value to end users.
My Prometheus deployments works well and I don't intend to invest more
of the topic. I don't think I will beat you on that ;-)



Today you (linagora?) are happy with prometheus and the platform I target
supports it so I will be using it too.
What worries me is the total lack of choice, the difficulty to add said
choice in the current james ( and I did try) despite boasting a metrics
collection system that is supposed to have pluggable implementations.
I do consider that metrics collection brings a lot of value to end users,
and that being able to integrate in an existing metrics collection
infrastructure is an important point for james adoption beyond your
deployments :D
So yes, when we are done with the pulsar/blob repository thing I will
probably spend some time to either submit a couple modules for established
and stable protocols that won't require much maintenance beyond the
occasional version bump ( graphite and collectd reporters most likely since
they are 1st party modules of dropwizard metrics ) or to implement
opentelemetry in a way that doesn't require such internal bindings, brings
additional benefits in terms of features such as tracing and is more
actively maintained than dropwizard metrics.

Also, ELK stack is not used for metrics.




actually it is,  APMs and metrics ingestion have been part of the elastic
solution for quite a while not that I have actually used them



However, there are many monitoring systems based on push instead of pull.
The debate has been going for a long time and will probably be going on
forever ( google lists 54 million results for 'push vs pull monitoring
systems' ) it would be nice for james to support at least one of each

model

even if pull is currently the favored approach.

Prometheus is popular these days because it is deployed internally in
kubernetes which is at the top of the hype curve but james should

probably

support at least one push based protocol

You know we `could` support many things it do not mean that we should.

We are a small community with limited means, the maintenance effort most
of the time falls on the same people.

Our efforts should be directed to things that are useful, not a
deprecated metric module with alternatives that targets another Elastic
Search version.



Note that I don't push to keep the es module, I push for having at least
one push based alternative to prometheus out of the box if only to
demonstrate/document how plugging a dropwizard metrics reporter in james
can be achieved if you don't use prometheus



   or at least document how to plug
one in for people who build their own assembly.

+1 thanks for opening with consensus. (was about to do the same ;-) )

I agree we could have an extension mechanism for metric exporters.
Ideally underlying metric library should come up with an SPI so we, as
application writers, don't need to care.\



I'm not going so far as to want an SPI for dropwizard metrics reporters, as
I said a couple integrations for the reporters provided by metrics itself
to document how to integrate such a reporter is just fine.
As I wrote above I will eventually contribute such an integration if it has
not been done before I get to it.



Though, if there's a potential move to open telemetry, then adding our
own custom extension mechanism is likely not the right thing.



I would first attempt to implement the graphite/collectd reporter binding,
then look into opentelemetry since the former is supposed to be less work
than the latter.



CF

https://github.com/apache/james-project/blob/master/server/apps/distributed-app/docs/modules/ROOT/pages/operate/metrics.adoc

Upon recent documentation on the topic we likely forgot to 

Re: ElasticSearch upgrade to 8.2

2022-06-09 Thread Rene Cordier
I would like to add that it seems this module has been deprecated when 
James migrated from es6 to es7, as stated in the documentation of the 
configuration here for example: 
https://github.com/apache/james-project/blob/master/src/site/xdoc/server/config-elasticsearch.xml#L137


For likely all the reasons given below.

So it makes sense to remove it now that we are migrating to es8.

Regards,
Rene.

On 09/06/2022 14:13, Benoit TELLIER wrote:

+1

We IMO need to add that direct reporting (for logs or metrics) from the 
application to ElasticSearch is an anti-pattern, and pretty uncommon.


It's usage led, at least at Linagora, to metrics/logs loss. The code 
quality of these extensions was low and proved several time problematic.


Alternatives:
  - Anything compatible with prometheus (pretty much all of metrics 
ecosystem)
  - Things like fluentbit to scrap logs from the container/a file and 
move it to your analytic stack


Regards,

Benoit

On 09/06/2022 11:02, Rene Cordier wrote:

Hello guys,

As working on the upgrade to ElasticSearch 8.2, I've been wondering if 
it was still worth it to keep the elasticsearch metrics reporter module.


Since we expose a metrics endpoint that tools like prometheus can just 
call to scrap metrics out of James, I think the es metrics reporter 
has not been really maintained and/or used since es v6.


As such, we decided to remove it. It allows to reduce the number of 
modules loaded by James and also reduce the cost of maintenance.


But maybe other people are still using it? If a part of the community 
still want to use it with the switch to ES8, they can put it back and 
migrate it, but we would appreciate that they can assume the 
maintenance of it as well.


Also removed the logback-elasticsearch-appender. It's not correlated 
to our code and easy to add the JAR back on the classpath if needed.


The PR in question: https://github.com/apache/james-project/pull/1018

Don't hesitate to answer this thread if you have any concerns.

Cheers,
Rene.

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




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




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



ElasticSearch upgrade to 8.2

2022-06-08 Thread Rene Cordier

Hello guys,

As working on the upgrade to ElasticSearch 8.2, I've been wondering if 
it was still worth it to keep the elasticsearch metrics reporter module.


Since we expose a metrics endpoint that tools like prometheus can just 
call to scrap metrics out of James, I think the es metrics reporter has 
not been really maintained and/or used since es v6.


As such, we decided to remove it. It allows to reduce the number of 
modules loaded by James and also reduce the cost of maintenance.


But maybe other people are still using it? If a part of the community 
still want to use it with the switch to ES8, they can put it back and 
migrate it, but we would appreciate that they can assume the maintenance 
of it as well.


Also removed the logback-elasticsearch-appender. It's not correlated to 
our code and easy to add the JAR back on the classpath if needed.


The PR in question: https://github.com/apache/james-project/pull/1018

Don't hesitate to answer this thread if you have any concerns.

Cheers,
Rene.

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



Re: Upcoming "polish" contributions (June-July 2022)

2022-05-24 Thread Rene Cordier

Hello,

Just to quickly come back to the ElasticSearch upgrade to 8.2 as I 
started taking a look.


It seems we gonna need to migrate the api client used in our code as the 
version 8 comes with an entirely new client library: 
https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/current/migrate-hlrc.html


Let's hope it performs better and that it reduces the number of 
transitive dependencies it added on the classpath.


It might take longer to migrate though, but we hope to get some good 
benefits out of it.


Cheers,
Rene.


On 23/05/2022 12:53, Benoit TELLIER wrote:

Hello dear community,

With my team we plan to invest ~ one month polishing James.

We will invest some of our time to hopefully address some technical-dept 
related topic for the distributed James server.


So far this includes:

*# Reactor elastic -> boundedElastic switch*

A scheduler is the abstraction Reactor, our reactive library runs code 
on. Ideally we would only run non-blocking code on a parallel scheduler. 
In practice we also run blocking code on an elastic scheduler. Elastic 
schedulers are unbounded so we can end up with a very large number of 
threads thus defeating the benefits of reactive code.


For this reason, project reactor deprecates elastic in favor of bounded 
elastic.


This switch was attempted before but resulted in dead locks.

Such deadlocks can be avoided by:
  - Avoiding wrapping .blocks calls in an elastic thread. This means 
essentially improving the quality of our reactive pipelines and not 
blocking them in the middle.
  - Avoid calls to subscibeOn before blocking. Instead use the blocked 
threads (that is anyway blocked) for the ongoing computation.

  - In last result use a SEDA like approach:
    - Introduce a new instance of boundedElastic dedicated to wrap our 
calls to .block where we can't avoid it.
    - Use core boundedElastic only when no reactor .block call is 
involved to prevent starvation


Alternatives would be to increase to an absurd amount the size of 
boundedElastic essentially mimicing the behaviour of elastic.


We have 161 calls to .elastic().

Acceptance criteria: no performance degradation. Recent performance 
improvments were furthermore delivered in recent reactor releases.


This would eventually be needed to upgrade to reactor 3.5.0.
*
**# Cassandra driver 4*

We rely on the Cassandra driver 3, which is technically still maintained 
but only for security purposes.


The biggest downside of using this driver is that it is not truly reactive:
  - Bridging through completable futures make us loose back-preassure
  - Even worse: paging large datasets is blocking which forces us to 
aggressively subscribe on an other thread to prevent blocking calls on 
the Cassandra driver event loop.


This means dozens of context switches per IMAP queries (eg). Flame 
graphs shows we spend ~10% switching threads.


Those drawbacks would eventually disappear with Cassandra driver 4, 
offering native reactive constructs.


We expect side benefits like usage of protocol version 5, as well as an 
overall improvement in the driver quality, which would translate to a 
nice performance boost.


Work was conducted on this: 
https://github.com/apache/james-project/pull/599


Impact:
  - Switch Cassandra configuration to the Cassandra driver 4 semantic. 
This means users will need to adapt their configuration.
  - Boiler plate changes everywhere. Though this should be reasonably 
easy. This should be transparent to users, unless they uses Cassandra 
driver in some of their extensions.


*# Upgrade to ElasticSearch 8.2*

Because 7.10 is end of life... https://www.elastic.co/support/eol

We will perform the classic switch by copying the code and moving things 
one by one.


Impact: users will need to upgrade their ElasticSearch cluster too!
*
**# General dependency upgrades*

Sanitize our dependencies, plugins, docker images and upgrade everything 
that can be.


Doing so tend to reduce security risk, allows to diagnose unmaintained 
dependencies, can fix some pain points and add performance.


A must do!

Last time was 6 months ago so this should be globally quick!

*# ElasticSearch indexing**
*
We identified indexation to happen at a reasonably slow pace, at ~50 
messages per seconds which is slow.


Most likely this is due to the use of NESTED semantic in header 
indexing. This enables us a static indexing while preserving search 
semantic, but at the cost of inserting one extra document per mail 
header, resulting in very large document count.


We could experiment alternative header indexation strategies that could 
allow gains.


For instance I putted together something relying on FLATTENED semantic: 
https://github.com/apache/james-project/pull/988


We would take a bit of time to back those proposal with metrics.
*
**# Others...*

Those are the topics we identified but we might have had missed some!

Do you think some other topics would fit such a polish?

By the way, help would 

Re: Call for vote: Apache James MIME4J 0.8.7

2022-04-01 Thread Rene Cordier

+1,
Rene.

On 01/04/2022 12:04, Benoit TELLIER wrote:
|Subject: Hi, I would like to propose a new vote for 0.8.7 release of 
the Apache James MIME4J library. You can find: - The maven release 
staged in repository.apache.org as the artifact #1063: 
https://repository.apache.org/content/repositories/orgapachejames-1063/ 
- The changelog for 0.8.7: 
https://github.com/apache/james-mime4j/blob/master/CHANGELOG.md#087---2022-04-01 
- Announce: https://github.com/apache/james-project/pull/947 Voting 
rules: - This is a majority approval: this release may not be vetoed. - 
A quorum of 3 binding votes is required - The vote starts at Friday 1st 
of April, 12pm UTC+7 - The vote ends at Friday 8th of April, 12pm UTC+7 
You can answer to it just with +1 and -1. Down-votes may be motivated. 
Non binding votes are encouraged. 3 binding votes are expected move 
forward on this release. Cheers, PMC member name |||




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



Re: [VOTE] Apache James release 3.7.0

2022-03-02 Thread Rene Cordier

+1,

Rene.

On 02/03/2022 10:44, Tellier Benoit wrote:

Hi,

I would like to propose a new vote for 3.7.0 release of the Apache James
server.

You can find:

  - The maven release staged in repository.apache.org as the
artifact #1062:
https://repository.apache.org/content/repositories/orgapachejames-1062/
  - The changelog for
3.7.0:
https://github.com/apache/james-project/blob/master/CHANGELOG.md#unreleased
  - Changes to our doc and the website:
https://github.com/apache/james-project/pull/900
  - Release artifacts are uploaded to ASF dowloads.

This release introduces some major bug fixes, stability enhancements and
some cool additional components and features!

Voting rules:
  - This is a majority approval: this release may not be vetoed.
  - A quorum of 3 binding votes is required
  - The vote starts at Wednesday 2nd of March 2022, 10am UTC+7
  - The vote ends at Wednesday 9th of March 2022, 10am UTC+7

You can answer to it just with +1 and -1. Down-votes may be motivated.

3 binding votes are expected move forward on this release.

Cheers,

Benoit TELLIER

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




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



Re: [VOTE] Apache James release 3.6.2

2022-01-27 Thread Rene Cordier

+1,

Rene.

On 27/01/2022 14:08, Benoit TELLIER wrote:

Hello,

Sorry for the bad formatting.

I would like to propose a new vote for 3.6.2 release of the Apache James 
server.


You can find:

- The maven release staged in repository.apache.org as the artifact 
#1061: 
https://repository.apache.org/content/repositories/orgapachejames-1061/


- The changelog for 3.6.2 and & the compatibility instructions/upgrade 
recommendation: https://github.com/apache/james-project/pull/865


Voting rules:
  - This is a majority approval: this release may not be vetoed.
  - A quorum of 3 binding votes is required
  - The vote starts at Thursday 27th of January 2022, 11am UTC+7
  - The vote ends at Thursday 3rd of February 2022, 11am UTC+7

  You can answer to it just with +1 and -1. Down-votes may be motivated.
  3 binding votes are expected move forward on this release.

  Cheers, Benoit TELLIER

On 27/01/2022 11:50, Benoit TELLIER wrote:
|I would like to propose a new vote for 3.6.2 release of the Apache 
James server. You can find: - The maven release staged in 
repository.apache.org as the artifact #1061: 
https://repository.apache.org/content/repositories/orgapachejames-1061/ - 
The changelog for 3.6.2 and |||hhe compatibility instructions/upgrade 
recommendation: |https://github.com/apache/james-project/pull/865 
Voting rules: - This is a majority approval: this release may not be 
vetoed. - A quorum of 3 binding votes is required - The vote starts at 
Thursday 27th of January 2022, 11am UTC+7 - The vote ends at 
|||Thursday| 3rd of February 2022, 11am UTC+7 You can answer to it 
just with +1 and -1. Down-votes may be motivated. 3 binding votes are 
expected move forward on this release. Cheers, Benoit TELLIER|




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




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



Re: About windows support...

2022-01-24 Thread Rene Cordier

Hi,

Are the complaints really from people that want to run it on windows 
server for production, or more like people downloading the project on 
their windows computer and trying to run it locally to check it out?


I thought was mainly the latest (but I might be wrong?) so I think 
adapting our communication saying we don't actively support it is the 
better approach here.


Regards,

Rene.

On 24/01/2022 15:23, Benoit TELLIER wrote:

Hello,

I did put https://github.com/apache/james-project/pull/857 together,

This takes a look at the `objectives` and `advantages` pages that were
not refreshed for the past 6 years since 2016.

This PR is a humble effort to be closer to the current reality of the
project.

Reviews welcome.

Best regards,

Benoit TELLIER

On 24/01/2022 11:44, Benoit TELLIER wrote:

Hello Jamers,

We regularly have complains that James is not working on windows (latest
reference: https://issues.apache.org/jira/browse/JAMES-3707)

None of the active comitters/contributors is actively using windows. No
tests are performed in a windows environment to ensure we don't break
things. I do not recall over the past 6 years any work for windows
support. As such I deduce we do not have the strength to maintain James
running on Windows and that "James on windows" cannot be assumed to work.

Yet, we broadcast portability as a core principle
(https://james.apache.org/server/objectives.html) which is currently a lie.

Note to self: this sections says "Java 2 platform" showing how much out
of date it is. Avalon framework is still mentionned as a relique of
James 2.3...

This puts us with a choice:

  - Adapting our communication, explaining that Windows support is not an
actively pursued goal of the PMC and at best experimental.
     -> This means that user complains in a windows environment could
receive the following treatment:
  - Sorry, we don't support windows, feel free to
contribute this support. Also be aware we provide docker containers to
run James truely anywhere <3 
  - eventually close the ticket once inactive for long enough (~2
weeks?)

  - Pulling the resources to support windows (won't come from me :-) ).

Obviously I do prefer the first: Adapting our communication. I will be
putting a PR together to refresh those objective/motivation page that
are vastly outdated, and email the link here.

Thoughts?

Best regards,


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




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




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



Re: New feature: Email rate limiting

2022-01-10 Thread Rene Cordier

+1,

Rene.

On 10/01/2022 16:22, Tung Tran Van wrote:

Hello community!

Linagora-email-team proposes the email rate-limit feature to James.

Rate limiting is one of the common features. Examples: SaaS is one
https://www.fastmail.help/hc/en-us/articles/150277382-Account-limits#sending/receiving,
https://support.google.com/mail/answer/22839

They limit how many emails you can send/receive from/to each email account
over a given period of time.
We believe the rate-limiting will help James have more control of the
resource and easy to dynamic config the user policy. It also complements
the storage quota.

We propose to set up a new maven project dedicated to rating limiting. We
propose two implementations of rate limitings: in-memory (guava based) and
Redis. Please note that this will take the form of extension jars, that
could be dropped in one James installation, and thus is optional, and not
of a runtime dependency.

We will enable rate-limiting on the count of emails and total size for
sending and receiving use cases.


JIRA link: https://issues.apache.org/jira/browse/JAMES-3693


Best regards,
Tung, TRAN VAN



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



Re: About further adoption of Apache Pulsar to back the distributed server messaging use case.

2022-01-10 Thread Rene Cordier

+1,

Rene.

On 07/01/2022 18:24, Benoit TELLIER wrote:

Hello all,

Thanks to the very nice work of Matthieu and Jean we now have a working
Pulsar implementation for the James Mail Queue component [1]. Koodo!

[1] https://github.com/apache/james-project/pull/808

I did put together an ADR [2] providing details over:

  - Context over MailQueue and its historical implementation
  - Why would someone want Pulsar to back the mailqueue
  - Propose follow up steps for the Pulsar adoption regarding the
distributed James server
  - And finally technical details on this implementation.

[2] https://github.com/apache/james-project/pull/829

I think a good long term objective for the PMC is to drop RabbitMQ in
favor of pulsar (third parties could package their own components using
RabbitMQ if they wishes...)

This means:
  - Solve the bugs that were found during the Pulsar MailQueue review
  - Pulsar MailQueue need to allow listing blobs in order to be
deduplication friendly.
  - Provide an event bus based on Pulsar
  - Provide a task manager based on Pulsar
  - Package a distributed server backed by pulsar, deprecate then replace
the current one.
  - (optionally) support mail queue priorities

While contributions would of course be welcomed on this topic, we could
offer it as part of GSOC 2022, and we could co-mentor it with mentors of
the Pulsar community (see [3])

[3] https://lists.apache.org/thread/y9s7f6hmh51ky30l20yx0dlz458gw259

Would such a plan gain traction around here ?

Best regards,

Benoit TELLIER


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




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



Re: new committer: Karsten OTTO

2022-01-09 Thread Rene Cordier

Congratulations and welcome Karsten :)

Rene.

On 08/01/2022 11:44, Benoit TELLIER wrote:

|The Project Management Committee (PMC) for Apache James has invited
Karsten OTTO to become a committer and we are pleased to announce that
he has accepted. Karsten have opened several bug reports and contributed
many features to the Apache James project. Being a committer enables
easier contribution to the project since there is no need to go via the
patch submission process. This should enable better productivity.|




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



Re: [IMPORTANT] Call for vote: Apache James 3.6.1 (3rd edition...)

2021-12-16 Thread Rene Cordier

+1,

Rene.

On 16/12/2021 14:27, btell...@apache.org wrote:

Hi,

I would like to propose a new vote for 3.6.1 release of the Apache James
server.

This time, as discussed on the JIRA this includes upgrade to Log4J 2.16.0.

You can find:

  - The maven release staged in repository.apache.org as the artifact #1058:
https://repository.apache.org/content/repositories/orgapachejames-1058/ 

  - The changelog for 3.6.1:
https://github.com/chibenwa/james-project/blob/changelog-3.6.1/CHANGELOG.md 

(to be merged on master)
  - The compatibility instructions/upgrade
recommendation:
https://github.com/chibenwa/james-project/blob/changelog-3.6.1/upgrade-instructions.md#361-version
 


This release is only comprised of bug fixes.

Voting rules:
  - This is a majority approval: this release may not be vetoed.
  - A quorum of 3 binding votes is required
  - The vote starts at Thursday 16th of December 2021, 2pm30 UTC+7
  - The vote ends at Saturday 18th of December 2021, 2pm30 UTC+7

You can answer to it just with +1 and -1. Down-votes may be motivated.

3 binding votes are expected move forward on this release.

Cheers,

PMC member name


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




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



Re: Call for vote: Apache James 3.6.1

2021-12-02 Thread Rene Cordier

+1,

Rene.

On 03/12/2021 08:29, btell...@apache.org wrote:

Hi,

I would like to propose a new vote for 3.6.1 release of the Apache James
server.

You can find:

  - The maven release staged in repository.apache.org as the artifact #1056:
https://repository.apache.org/content/repositories/orgapachejames-1056/
  - The changelog for 3.6.1:
https://github.com/chibenwa/james-project/blob/changelog-3.6.1/CHANGELOG.md
(to be merged on master)
  - The compatibility instructions/upgrade
recommendation:
https://github.com/chibenwa/james-project/blob/changelog-3.6.1/upgrade-instructions.md#361-version

This release is only comprised of bug fixes.

Voting rules:
  - This is a majority approval: this release may not be vetoed.
  - A quorum of 3 binding votes is required
  - The vote starts at Friday 3rd of December 2021, 8am30 UTC+7
  - The vote ends at Friday 10th of December 2021, 8am30 UTC+7

You can answer to it just with +1 and -1. Down-votes may be motivated.

3 binding votes are expected move forward on this release.

Cheers,

PMC member name


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




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



Re: Authentication in James: Enable/require/disable OpenID for JMAP, IMAP and SMTP

2021-12-02 Thread Rene Cordier

+1,

Rene.

On 02/12/2021 11:56, btell...@linagora.com wrote:

Hopefully rendered correctly in plain text...

-

Hello Jamers!

As part of my work at Linagora, we are looking toward
  - better integrating James within our product suite and for us this
means support "Single Sign On" and "Single Log Out" for JMAP following
the OpenId connect standard [0].
  - Improving security standards used to opperate James. (We have a
growing activity within the health care market, sensible to security
arguments)

Regarding security standards we should ideally:
  - Be able to NOT advertise AUTH / LOGIN capabilities of unencrypted
channels (Correspond to IMAP plainAuthDissallowed but generalized to
other protocols)
  - Be able to require OAUTH/OIDC authentication for all protocols (IMAP,
SMTP, JMAP) - this is what some of the health care providers we spoke to
desired to do.
  - For our collaborative suite usage, while OIDC only for JMAP makes
sense, we still wish to maintain PLAIN AUTH for IMAP and SMTP.
  - Of course settings for regular users not interested in OIDC should
not change (no breaking changes, OIDC adoption is opt-in only).

As such we propose ourselves to:
  - Contribute IMAP and SMTP SASL OAUTH extension described in [RFC-7628]
  - Modularize JMAP authentication mechanisms (letting the admin choose
which one she wishes to use)
  - Enable authentication through a header mechanism eg `X-USER:
btell...@apache.org`, which can be used to delegate OIDC authentication
through a third party API gateway. We have Krackend [1] in mind.
  - Share documentation and a docker-compose of OIDC setup for IMAP, SMTP
and JMAP in
https://github.com/apache/james-project/tree/master/examples/oidc. This
would include:
     - A LDAP still used by James UsersRepository. Provisionned with a
testing user.
     - A pre-configured Keycloack [2] OpenID connect provider.
     - A pre-configured Krakend API gateway proxying JMAP
     - And finally a James server configured to only accept OIDC as an
authentication mechanism for IMAP, SMTP and JMAP.
  - Unit tests for existing IMAP `plainAuthDissallowed` configuration
parameter.

Finally this is a good opportunity to restructure authentication related

settings in imapserver.xml and smtpserver.xml file.

Here are proposals for both files:

[imapserver.xml]

     
     imapserver-ssl
     0.0.0.0:993
     
     file://conf/private.key
     file://conf/certs.self-signed.csr
     
     
     
     true|false 
      
     file://conf/imapJWT.pub

https://example.com/.well-known/openid-config

     mailAddress
     
     
     


[smtpserver.xml]

     
     smtpserver-ssl
     0.0.0.0:465
     
     file://conf/private.key
     file://conf/certs.self-signed.csr
     
     
     true|false
     
     true|false 
      
     file://conf/imapJWT.pub

https://example.com/.well-known/openid-config

     mailAddress
     
     
     


You can see that:
  - The `plainAuthDissallowed` parameter is proposed to be renamed to
`auth.requireSSL`. (of course we should support fallback NOT to have a
breaking change)
  - `auth.plainAuthEnabled` enable turning on/off plain auth, which
allows having OIDC only mechanism.
  - `auth.requireSSL` will be generalized to SMTP.
  - In SMTP `requireAuth` setting is very misleading as it rather is
`requireAuthForRelay`. I propose we rename this configuration option (of
course we should support fallback NOT to have a breaking change).
  
Here is the implementation strategies we would follow:


  - For JMAP have Krakend doing all the hard job for us, and use a
dedicated header to carry the information over to James.
    - Our code contributions aims at easing such a setup (that would only
require configuration)
    - Provide an informative example using krakend. We understand that
this choice is ours, yet sharing it could allow reuse or similar setup
    - If some people wishes to write an OIDC authentication strategy
directly in James then they perfectly can! (Reusing the modularization
of JMAP authentication strategies we would provide).
   
  - For IMAP and SMTP then we proposes to check the bearer payload

against a statically configured public key for these protocols. (Sadly
there is no API gateway for those protocols)
    - Drawbacks includes no revocation of access tokens (once it's signed
it is always valid), revocation do not shut down existing connections
authenticated with the revocated token, and key rotation would require
reconfiguration and reboot.
    - One alternative would be to systematically ask the OpenID server to
validate the bearer. This might be acceptable as IMAP and SMTP are long
lived protocols that do not often establish new connections. While this
do not change 

Re: Webadmin: retire Swagger documentation?

2021-10-21 Thread Rene Cordier

+1,

Regards,
Rene.

On 07/10/2021 09:48, btell...@apache.org wrote:

Agree, in my opinion the long term place is the Antora documentation.

We might have to live with Antora <-> Markdown (old website) duplication
for a while longer, until we fully adopt Antora website documentation.

Regards,

Benoit

On 07/10/2021 09:12, Tung Tran Van wrote:

Hello,

We should merge all into one place, it will be better readability, easy
lookup, less cost, and It will avoid the inconsistency problem.

Regards,
Tung

On Thu, Oct 7, 2021 at 9:08 AM btell...@apache.org 
wrote:


Hello there,

WebAdmin is documented on the following way:

  - (old) documentation through manual markdown files
  - (new) Antora documentation though manual ASCII files

We also have an old Swagger documentation that (to my knowledge) have
never been deployed, is partial, badly documents returned POJOs. It is
not tied to the inner working of WebAdmin thus not meeting the promise
of Swagger doc: differences can arise. Moreover, the generation logic
for it is complex, and hard to maintain.

As such I would propose to simplify our lives, remove the Swagger docs
and fully rely on the markdown/ASCIIDOC ones.

Feedbacks?

Benoit


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




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




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



Re: [VOTE] Deprecate maildir in 3.6.1, removal as part of 3.7.x

2021-09-19 Thread Rene Cordier

+1,

Rene.

On 19/09/2021 11:30, btell...@apache.org wrote:

Hello all,

In order to prepare for the 3.6.1 release I did open this fix,
https://github.com/apache/james-project/pull/659 ensuring files used by
the maildir implementation are sanitized, which I considered being a
blocker.

However, I did not open the fix for the 3.7.0 release as I personally
prefer removal.

Please bear in mind that MailDir costs us a bug maintenance effort and
still suffers from numerous bugs [1], follows a James specific sheme
limiting inter-operability (that was likely never tested), have
alternatives for zero dependency persistant mail server (namely JPA),
and finally [2] I propose a documented migration strategy.

As such, I call a vote to mark MailDir deprecated in 3.6.1 release and
removed in 3.7.0 release.

|Voting rules: - The vote starts at Sunday 19th of September 2021,
11am30 UTC+7 - The vote ends at |||Sunday| 26th||of September 2021, 11am30 
UTC+7|

Best regards,

Benoit

[1] https://www.mail-archive.com/server-dev@james.apache.org/msg70909.html
[2] https://imapsync.lamiral.info/ 
  http://www.linux-france.org/prj/pop2imap/ 

  
https://james.staged.apache.org/james-project/3.7.0/servers/distributed/operate/migrating.html
 



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




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



Re: Call for vote: Apache JAMES MIME4J

2021-09-19 Thread Rene Cordier

+1,

Rene.

On 17/09/2021 17:59, btell...@apache.org wrote:

|Subject: Hi, I would like to propose a new vote for 0.8.6 release of
the Apache MIME4J library. You can find: - The maven release staged in
repository.apache.org as the artifact #1055:
https://repository.apache.org/content/repositories/orgapachejames-1055/
- The changelog for MIME4J 0.8.6:
https://github.com/apache/james-mime4j/pull/56 This release focused on
some further performance enhancements described in this email:
https://www.mail-archive.com/server-dev@james.apache.org/msg70470.html
Voting rules: - This is a majority approval: this release may not be
vetoed. - A quorum of 3 binding votes is required - The vote starts at
Friday 17th of September 2021, 6pm UTC+7 - The vote ends at Friday 24th
of September 2021, 6pm UTC+7 You can answer to it just with +1 and -1.
Down-votes may be motivated. 3 binding votes are expected move forward
on this release. Cheers, PMC member name|


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




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



Re: Retiring the File mail queue from James 3.7.x

2021-09-05 Thread Rene Cordier

Hello,

Sounds legit to me, +1!

Thanks for looking into that deeply.

Rene.

On 05/09/2021 20:03, btell...@apache.org wrote:

Hello there,

While working on JAMES-3646 incorrect file validation, I came to
discover the file mail queue incorrectly sanitizes file paths.

This is one of the many flows of this component. Here are some others:

FileMailQueue is an outdated unmaintained component suffering incomplete
features and is not thread safe" +
 "This includes: " +
 " - JAMES-2298 Unsupported remove management feature" +
 " - JAMES-2954 Incomplete browse implementation" +
 " - JAMES-2544 Mixing concurrent operation might lead to a deadlock and
missing fields" +
 " - JAMES-2979 dequeue is not thread safe

(To quote its test)

It is not directly configurable with any exosting products.

There are some alternatives: embedded activeMQ has zero dependencies.
Furthermore migrating is easy: just migrate with an empty queue - which
can be done easily with a SMTP downtime.

Also the component is deprecated for 1.5 years, given the many flows it
have, given that no contributors shows up to keep it alive, I advocate
removal.

Feedback?

Regards,

Benoit


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




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



Re: Time to retire maildir from James 3.7.X ?

2021-09-05 Thread Rene Cordier

Hello,

I think you are making good points. It's probably better to focus on 
what works well if it's enough of an alternative to maildir (like 
embedded JPA as you mentionned), with little resources we have.


+1 !

Rene.

On 05/09/2021 19:58, btell...@apache.org wrote:

Hello all,

While reviewing overall file path sanitizing (JAMES-3646) I found
maildir to incorrectly sanitize some file path.

Playing around, I discovered some magic names that leads to maildir
errors namely MAILBOX-406, and a NPE with an empty mailbox (MAILBOX-407).

Moreover, over time the list of maildir defects keeps on growing:

  - MAILBOX-389 Mailbox rename fails with Maildir
  - MAILBOX-393 mailboxId support for mailDir is partial

Now looking on the bug tracker I notice people encounter (and nobody
answers):

  - MAILBOX-390 Unexpected error accessing mailbox
  - MAILBOX-344 Maildir do not support MODSEQ search
  - MAILBOX-299 Maildir should fail gracefully when mailbox name is too long
  - MAILBOX-241 Maildir implementation does not check namespace on existance
  - MAILBOX-183 readUidFile is taking too much time for large uid file
and blocks other threads
  - JAMES-3612 Cryptic errors upon bad permissions
  - JAMES-1515 Maildirstorage backend crashes with Exception due to
"wrong" filename

With such a high number of critical issues that no one dare fixing, it
sounds reasonable to me to state that maildir implementation do not
match quality standards that one would expect from an Apache project.

Other mail servers do have great maildir implenentation, which
mistakenly lead users to think the maildir implementation is a quality
one, which is very far from the truth.

Moreover, maildir code is outdated,  hard to work with, and pulls us
back in many way. Given the currently small amount of contributors, we
do not have time and resources to give it the love it deserves.

Also, alternatives exist: embedded JPA database do also run well in
single instance mode, and could server as a maildir replacement. People
could use utilities like imapsync to plan their migration.

As such, I propose myself to retire maildir and remove related code from
the repository.

Regards,

Benoit


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




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



Re: The road to a (POP3) multi-dc friendly distributed email server

2021-08-02 Thread Rene Cordier

Hello,

Nice POC thanks!

+1 to have the contribution back to the community project.

Cheers,
Rene.

On 03/08/2021 11:11, btell...@apache.org wrote:

Hello all,

For some of my customers, we did develop a multi-datacenter friendly
POP3 server as a derivate of James distributed server.

It fully avoids lightweight transactions (LWTs) and thus is efficient in
a multi-datacenter setup.

The regular James distributed server was a limiting factor: we
encountered multiple errors linked to Lightweight transaction: read
timeouts at consistency SERIAL.

We thus proposed an alternative implementation of the POP3 mailbox,
based on the messageId backed by a TimeUUID. TimeUUIDs have extremely
low collision chances and their generation do not require any
synchronisation. Also, given the POP3 support alone, monotic generation
of UIDs and MODSEQs is not necessary, and collisions can be tolerated:
we can thus rely on a random generation strategy. Along with options
introduced in JAMES-3435 it allows not doing any (LWTs).

We needed to introduce an additional Cassandra table: given a mailbox,
list all the messages contained in it by their messageId - size is added
to the projection for efficiency. This table is maintained via a mailbox
listener. MessageId is then used for content retrieval and deletion.

This POP3 implementation had been functionally tested  with thunderbird.

We did furthermore conduct performance tests on top of two datacenters.
See [1] below as a reference.

Given that there is traction for such a server (in the medical field a
lot of people still uses POP3),
Given the minimal amount of code written,
Given that we might have one of the first multi-DC friendly MDA of the
market (POP3 only),
I propose to create a new distributed-pop3-server leveraging the above
design.

I will write an ADR to further express the needs and the design, as well
as open a Proof Of Concept pull request. It will be based on [2]

Best regards

Benoit TELLIER

[2] POC developper @linagora:
https://github.com/linagora/james-project/pull/4321
---

[1] Performance test exercising the distributed multiDC POP3 server

Infrastructure:
  - 2 DC of 3 Cassandra node each linked via VPN on a link with latencies
of ~1ms. 2 cores 8 GB for each Cassandra.
  - 4 James nodes of 4 core and 16 GBs

Testing:
  - Send 100 mail per second during 10 minutes to 80 users
  - Then STAT the mails in POP3
  - Then clean them up (DELE + QUIT)

Before:
  - The mail processing speed was 73 mail/seconds
  - We noticed 476 SERIAL read timeouts in the logs
  - UID / MODSEQ generation are the top queries upon LocalDelivery (40 ms+ !)

After:
  - The mail processing speed improved to 85 mail/seconds
  - We did not notice any SERIAL read timeouts in the logs
  - Other cassandra queries did benefit from not co-existing with LWTs
queries (~ 10% faster)
  - This performance test was conducted without random generation
strategy UID and MODSEQs. Further enhancements would be expected with
the exact above proposed design.



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




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



Re: End of support for Apache James 2.3.2 ?

2021-07-25 Thread Rene Cordier

Hello,

I can understand some people are still running this version of James, 
it's never easy to migrate from a major version to an other.


But community support... Even if the decision has not been taken 
officially (thus the discussion happening right now), do we still have 
that honestly? I don't think that any active developer on the James 
project right now ever worked on James before its version 3. So I hardly 
see how the current active dev team could potentially give support on it 
anyway at the moment.


I find odd as well to have security concerns over centos and java 
versions for example, but not James. As Benoit said that version is 
likely full of CVEs and using dependencies that are not maintained 
anymore or the version used reached end of life support.


A lot of efforts have been put in performance improvements as well in 
the latest versions of James too, and many more keep coming as we speak.


If you guys knowing this still want to continue using James 2.3.2 
because it is too much work to migrate or rewriting numerous custom 
mailets and modules well it is your choice for sure, and we respect 
that. However keep in mind that none of the active devs know the James 
v2 codebase (not that I know of).


So except if you are ready to maintain it yourselves, I think we can 
officially declare we don't support it anymore.


However it doesn't mean people still using it can't support between each 
other by using the ML or other means, right? :)


Best regards,

Rene.

On 24/07/2021 22:38, Garry Hurley wrote:

I spent a lot of effort trying to migrate manually from 2.3.2 to 3.4.0 in a
project recently. It was a nightmare made necessary because the
organization did not allow any of the convenience mechanisms you guys built
into the new James 3 streams for migration. Additionally, the project used
a custom user interface that was dependant on the data structure of the
2.3.2 database message repository.
On Fri, Jul 23, 2021 at 10:36 PM btell...@apache.org 
wrote:


Hello Noel,

First many thanks for your engagement that I believe did allow to have
the amazing piece of software we have today.

Apparently James 2.3 fails to talk SMTP with a modern Zimbra server,
expects a 'dot' terminated stream. This 'bug' do not occur on modern
James versions.

Do we also maintain Apache Excalibur [1] ? Retired in 2010... As far as
I get it, James 2.x actively relies on it.

[1] https://excalibur.apache.org/

That, is one of many dependencies, to be fairly honest I would not be
surprised a careful dependency audit finds hundreds of CVEs. Not to
mention the use of outdated java versions. Given the effort, do we, as a
community want to engage with serious maintenance of Apache James 2.3.x
? I have not seen security updates for years

Also, new upcoming users are not fully aware of the state of that
application, and might mistakenly believe they would get Apache grade
quality (security, backed by an active community, etc...)

In my opinion we should at the very least stops advertising that
version, that means:

  - Archive related downloads
  - Remove references from the website

That is our responsibility.

Stating clearly as a community that we no  longer assume maintining it
would be better to me.

Best regards,

Benoit

On 23/07/2021 23:10, Noel J. Bergman wrote:

I still use James v2 in production.  I could be convinced to move

forward (migration of config is a concern), but I still do run it, and
would be able to fix any bugs, given the amount of code in there that was
written by me.


Are there any particular defects that need to be addressed?  I agree

that it should be viewed as maintenance only, with no new development.


Oh, and hi!  

   --- Noel

-Original Message-
From: btell...@apache.org 
Sent: Friday, July 23, 2021 5:18
To: server-dev@james.apache.org
Subject: End of support for Apache James 2.3.2 ?

Hello,

Following recent discussions on gitter, issues are reported on Apache

James version 2.3.2.


This version is not under active development (released in 2013 with a

security fix in 2015 version 2.3.2.1).


No active development had been undertook recently.

The source code is not available on Git / Github.

I fear no real active committer is able to fix issues on it.

It uses Avalon Phoenix retired in 2004 (yes...).

For archeologists, sources can be found at

http://svn.apache.org/repos/asf/james/server/tags/2_3_2_1/


As such I propose to:

  - Make it clear with a formal vote we can refer to that the Apache

James PMC no longer supports Apache James vers 2.x.

  - Archive related downloads
  - Remove references from the website
  - Write a little email to the Apache announce mailing list,

general@james, server-user@james.


Thoughts?

Regards,

Benoit TELLIER


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




Re: [VOTE] Retire Apache James Postage

2021-07-25 Thread Rene Cordier

+1,

Rene.

On 23/07/2021 16:03, btell...@apache.org wrote:

Hello all,

Following a first email on the topic [1] I would like to call for a
formal vote on Apache James Postage retirement.

[1] https://www.mail-archive.com/server-dev@james.apache.org/msg70576.html

Rationnals: this project...
  - Have no website page (not deployed)
  - Have no README
  - Have no formal release, but a tag named "james-2_20120613" dating
from 2012 which is quite old already...
  - Their exists some alternatives both for JMETER, and Gatling
performance testing tools.
  - Lack of support for recent mail protocols like IMAP and JMAP
  - Hard to scale blocking architecture (from what I understood?)
  - No development activity since 2013.
  - 5 forks in total on github, none of them did extra developments.
  - Relies on 3.0-beta5-SNAPSHOT which is quite old but also unreleased.
Proting postage to a released version would likely be already quite of a
fight...
  - Affected by CVE-2021-29425 (commons-io)||
Given the maturity of the project, the presence of alternatives, and the
absence of development, in the absence of mainteners, it could be wise
to consider retiring it.
|Voting rules: - This is a majority vote as stated in [2] for procedural
issues. - The vote starts at Friday 23rd of July 2021, 4pm UTC+7 - The
vote ends at Friday 30th of July 2021, 4pm UTC+7 [2]
https://www.apache.org/foundation/voting.html Following this retirement,
follow up steps are to be taken as described in [3] [3]
https://www.mail-archive.com/server-dev@james.apache.org/msg70585.html | - 1. 
Get a formal vote on server-dev mailing list
  - 2. Place a RETIRED_PROJECT file marker in the git
  - 3. Add a note in the project README
  - 4. Retire the ISSUE trackers (Project names POSTAGE)
  - 5. Announce it on gene...@james.apache.org and announce@apache
  - 6. Add a notice to the Apache website, if present
  - 7. Remove releases from downloads.apache.org
  - 8. Add notices on the Apache release archives (example
https://archive.apache.org/dist/ant/antidote/ 
)

Best regards,

Benoit Tellier
||


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




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



Re: [VOTE] Retire Apache James HUPA

2021-07-25 Thread Rene Cordier

+1,

Rene.

On 23/07/2021 16:00, btell...@apache.org wrote:

Hello all,

Following a first email on the topic [1] I would like to call for a
formal vote on Apache James Hupa retirement.

[1] https://www.mail-archive.com/server-dev@james.apache.org/msg70575.html

Rationnals:
  - The latest release (0.3.0) dates from 2012 which is an eternity in
computing.
  - The latest tag on Github is 0.0.3
  - The pom references 0.0.5-SNAPSHOT suggesting that 0.0.4 release is
lost :-(
  - This repository is crippled by multiple CVEs (quick dependabot review):
   - CVE-2021-29425 (commons-io)
       - GHSA-m6cp-vxjx-65j6 CVE-2017-7656 CVE-2015-2080 CVE-2017-7657
CVE-2019-10241 CVE-2019-10247 (Jetty server)
   - CVE-2020-9447 (gwtupload)
       - GHSA-g3wg-6mcf-8jj6 (jetty-webapp)
   - CVE-2019-17571 (log4j)
   - CVE-2016-131 CVE-2016-3092 (commons-fileupload)
  - Sporadic activity since 2012
  - Zero to no exchanges for several years on the mailing lists.

Given that alternatives exists, given that the project is
likely not mature, unmaintained and unsecure, I propose to retire this
Apache James subproject.

|Voting rules: - This is a majority vote as stated in [2] for procedural
issues. - The vote starts at Friday 23rd of July 2021, 4pm UTC+7 - The
vote ends at Friday 30th of July 2021, 4pm UTC+7 [2]
https://www.apache.org/foundation/voting.html Following this retirement,
follow up steps are to be taken as described in [3] [3]
https://www.mail-archive.com/server-dev@james.apache.org/msg70585.html | - 1. 
Get a formal vote on server-dev mailing list
  - 2. Place a RETIRED_PROJECT file marker in the git
  - 3. Add a note in the project README
  - 4. Retire the ISSUE trackers (Project names HUPA and POSTAGE)
  - 5. Announce it on gene...@james.apache.org and announce@apache
  - 6. Add a notice to the Apache website, if present
  - 7. Remove releases from downloads.apache.org
  - 8. Add notices on the Apache release archives (example
https://archive.apache.org/dist/ant/antidote/ 
)

Best regards,

Benoit Tellier
||


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




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



Re: Retire Apache James Postage ?

2021-07-19 Thread Rene Cordier

Nice catch, +1!

Rene.

On 19/07/2021 15:33, Jean Helou wrote:

Hi benoit

While looking at unmaintained pieces of code that might have now better

alternatives, being hosted under the Apache James umbrella, I cannot but
think about Apache Postage.

Given the maturity of the project, the presence of alternatives, and the
absence of development, in the absence of mainteners, it could be wise
to consider retiring it.

Thoughts?



I had no idea it even existed :) I feel there is no greater bane than
dead/unused/unmaintained code
+1 for dropping it

jean



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



Re: Retire Apache James Hupa ?

2021-07-19 Thread Rene Cordier

Nice catch, +1!

Rene.

On 19/07/2021 15:30, Jean Helou wrote:

I think this is an excellent idea ! +1

thank you benoit !
jean


On Mon, Jul 19, 2021 at 10:16 AM btell...@apache.org 
wrote:


Hello all,

While fixing our download pages following some infra bot complains, I
ended up fixing the downloads for Apache James Hupa.

  - The latest release (0.3.0) dates from 2012 which is an eternity in
computing.
  - The latest tag on Github is 0.0.3
  - The pom references 0.0.5-SNAPSHOT suggesting that 0.0.4 release is
lost :-(
  - This repository is crippled by multiple CVEs (quick dependabot review):
   - CVE-2021-29425 (commons-io)
   - GHSA-m6cp-vxjx-65j6 CVE-2017-7656 CVE-2015-2080 CVE-2017-7657
CVE-2019-10241 CVE-2019-10247 (Jetty server)
   - CVE-2020-9447 (gwtupload)
   - GHSA-g3wg-6mcf-8jj6 (jetty-webapp)
   - CVE-2019-17571 (log4j)
   - CVE-2016-131 CVE-2016-3092 (commons-fileupload)
  - Sporadic activity since 2012
  - Zero to no exchanges for several years on the mailing lists.

 From the Readme:


Hupa is able to discover most of the imap/smtp configuration based on

the email domain part. When you are prompted to login, type your email
address and wait few seconds, if you click on the gear button you can
see the configuration discovered by Hupa, you can modify it if it does
not match your email provider configuration. Then type your inbox
password and you will be logged into your email provider servers.


Hupa is compatible with most email providers, gmail, yahoo, hotmail,

outlook, exchange, james, etc.

I fail to see the value added compared to other webmails like roundcube,
rainloops to quote a few...

As such, given that alternatives exists, given that the project is
likely not mature, unmaintained and unsecure, I propose to retire this
Apache James subproject.

I will do research on procedures and best practices to do so. I guess a
formal vote would be necessary. Likely contact Apache Labs were the
project originated from in 2009...

Best regards,

Benoit TELLIER


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






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



Re: Call for vote: Apache MIME4J 0.8.5

2021-07-01 Thread Rene Cordier

+1 :)

Cheers,
Rene.

On 01/07/2021 14:51, btell...@apache.org wrote:

|Hi, I would like to propose a new vote for 0.8.5 release of the Apache
MIME4J library. You can find: - The maven release staged in
repository.apache.org as the artifact #1054:
https://repository.apache.org/content/repositories/orgapachejames-1054/
- The changelog for 0.8.5:
https://github.com/apache/james-mime4j/blob/master/CHANGELOG.md This
release mostly enhances performances (dates, base64 encoding, case
sensitivity management, ...)  Voting rules: - This is a majority
approval: this release may not be vetoed. - A quorum of 3 binding votes
is required - The vote starts at Thursday 1st of July 2021, 3pm UTC+7 -
The vote ends at |||Thursday 8st of July 2021, 3pm UTC+7| You can answer to it 
just with
+1 and -1. Down-votes may be motivated. 3 binding votes are expected
move forward on this release. Cheers, Benoit Tellier|




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



Re: Removal of stale branches for apache/james projects

2021-06-02 Thread Rene Cordier

+1

Rene.

On 02/06/2021 14:54, btell...@apache.org wrote:

Hello all,

While having a look at branches built by the ASF CI when switching the
tokens I noticed we have many stale, meaningless branches on some of our
repositories.

This includes:

  - https://github.com/apache/james-project/branches/all
     - cassandra-blobstore-cl-one (merged)
     - smtp-conf-fix (merged)
     - JAMES-1902-extract-some-guice-modules (merged)
     - JAMES-2589-bind-object-storage (3 years ago)
     - openpaas-1.2.0-beta1 (sounds innapropriate for an ASF branch name)
     - JAMES-2337 (feature, 3 years innactivity)
     - improve-mailet-testing-experience-v1 (feature, 3 years innactivity)
     - pr-1047 (feature, 3 years innactivity)
     - JAMES-1746 (feature, 5 years innactivity)
     - JAMES-1617 (feature, 5 years innactivity)

  - https://github.com/apache/james-site/branches
     - master-backup (the purpose of git to me is to not do this kind of
stuff...)

  - https://github.com/apache/james-jsieve/branches
    - JSIEVE-107 (there seems like there is no specific work on this branch)

  - https://github.com/apache/james-jspf/branches
    - JAMES-1831 (5 years stale)

A bit of house cleaning might be beneficial Without objections, I
will clean these brnches in a few days.

Furthermore the following projects do not have code associated to them:

     - https://github.com/apache/james-protocols
     - https://github.com/apache/james-mpt
     - https://github.com/apache/james-mailbox
     - https://github.com/apache/james-mailet
     - https://github.com/apache/james-imap

Maybe we should open a ticket on the INFRA to plan for their removal?
(these projects had been fused into apache/james-project...)

Regards,

Benoit




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



Re: Major bug: Camel mailet container and partial matches.

2021-05-23 Thread Rene Cordier

Hi Benoit,

Thanks for raising this concern it's rather interesting, despite my 
limited knowledge on Camel processing and MailetContainer execution.


I think if we can come up with a robust Java implementation allowing to 
discard yet an other dependency (Camel) from James, that would be a win 
already, as we should keep trying to trim the number of them down.


If also it allows at some point to have reactive mailets it would be an 
other win.


So I would be in offer of your proposition.

Regards,
Rene.

On 22/05/2021 13:24, btell...@apache.org wrote:

Hello folks,

I want to raise this concern to the mailing list.

As described in
https://issues.apache.org/jira/projects/JAMES/issues/JAMES-3589

One of my customer reported me that a side effect was done two time upon
MailetContainer execution.

When writing integration tests counting executions, that they were right!

Tracking down the bug, I encountered that `MailImpl.duplicate` do not
preserve state, hence processing resumes from ROOT processor (leaving
the exchange).

I first expected the fix to be easy: also duplicate the state
(https://github.com/apache/james-project/pull/445 is an attempt in that
direction). What was not my surprise to discover we actively rely on
this bug... The MatcherSplit only keeps one mail after executing the
current pair... My feeling is that matcher splitting always relied on
this hack, and it back-fired. I reproduced the bug on code dating back
from 2015.

Thus considered that it was time to invest in a as complete as possible
test suite enforcing the behavior of the mailet container flow. This can
be seen  here https://github.com/apache/james-project/pull/447.

As my Camel skills are limited, I currently take the following actions:

  - Work on a plain java fix. My attempt at this can be seen here
https://github.com/apache/james-project/pull/448 . Passes the test suite
I did just write, it passes the whole test suite.
  - Contact the Camel PMC to see if someone is willing to help.
  - Walk through SVN history if possible to find the original author and
go and ask him.
  - [what I am doing here] Trigger a discussion on the ML (server-dev)
about dropping CAMEL. It could enable (eventually) writing reactive
mailets <3.
  - Write an ADR about dropping Camel?

The alternative approaches can be formulated:

  - Simplify the mailet container flow could split mails upfront and
execute all recipients separately. This allows to trivially implement
per recipient context (bye bye per recipients mailet/matchers) but it
lead to duplicated execution of heavy-weight mailets and could have a
significant impact for some users workload (eg doing content inspection
for each recipient is a waste).
  
  - Pushing the hack of matcher splitter further. Split mail would

instead of root be sent to their current processor. via attributes we
could then skip pairs until where we were. Would solve the issue
applying the exact same logic that today ones (splits starts a new
execution). This is the closest to today behavior but I feel bad writing
such pieces of code.

Note that personally even if this behavior is critical for my clients, I
can push their tailor made servers to use alternative mailet-container
the time that the Apache James PMC agrees on a fix.

Cheers,

Benoit


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




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



Re: Actively warn against Cassandra Blob Store usage.

2021-05-23 Thread Rene Cordier

+1

Sure we probably need to keep it as some people will always have a use 
for it somehow at the end, but a good warning explaining why should be 
in place.


Rene.

On 22/05/2021 14:57, btell...@apache.org wrote:

Hello there,

As I did state it in https://issues.apache.org/jira/browse/JAMES-3591

Cassandra is not made for large binaries storage. And deliver
sub-optimal performances compared to ObjectStorage alternatives (like
S3, MinIO or Apache Ozone).

We need to ensure users are fully aware of the consequences while
choosing this option.

Thus we should add warnings in:

  - The code via java doc
  - The documentation websites
  - dockerhub README
  - A log upon startup.
  - Sample configuration file.


I did have exchanges with Nate Mc Call (Apache Cassandra PMC) on this topic:

```gitter
Hi folks - would really like to talk to anyone that worked on the
Cassandra Blob Store implementation about potentially pulling this out
for general use. Please ping on zzn...@apache.org or zznate on asf's slack.
```

Then exchanging by email:

```private email
Hello Nate,

Thank you very much for raising this topic.

I am seriously concerned with the performance and storage costs of the
Cassandra blob store for quite some time already.

The Apache James PMC had been reluctant to remove it as we were worry
bringing additional runtime dependencies to the project (meaning forcing
users to rely on an object store like Ozone or MinIO).

I personnaly encourage any move on this topic to deprecate/provide
extensive warnings regarding its use and am very curious to know what
you have to say about it.

Best regards,
```

Answered by:

```private email
Hi Benoit,
Thanks for the response. At a high level, I completely agree with you -
a database of any sort is not the right place for binary content. That
said, I regularly see cases where folks are in a situation like "this is
what we have provisioned and accounted for, let's just use it."

As it stands, this is one of the better binary storage approaches which
I have seen implemented. A checksumming, reactive API with a
configurable chunk size solves a lot of problems for people.

At the end of the day though, I do very much agree that the right answer
is to use a distributed filesystem of some sort (Ozone and MinIO would
definitely be better), and folks should be warned about the substantial
storage and performance overhead of doing it in C*. But this approach at
least will "suck less" than many others I have seen using C* similarly.

Thanks again for the response, and nice to meet you either way.

Cheers,
-Nate
```

I did open a PR for enacting it:
https://github.com/apache/james-project/pull/450

Cheers,

Benoit


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




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



Re: SMTP server configuration issue

2021-05-10 Thread Rene Cordier
As there was no other feedback regarding this matter, as it seems Benoit 
and myself reached a consensus on the first solution, I created a JIRA 
ticket accordingly: https://issues.apache.org/jira/browse/JAMES-3579.


Rene.

On 05/05/2021 18:28, Tellier Benoit wrote:

Hello René,

Thanks for raising the topic here.

Le 05/05/2021 à 16:31, Rene Cordier a écrit :

Hello guys,

[...]

1. If authRequired is set to false, we should reject verifyIdenty=true,
as it makes no logical sense. People might need to update their James
running installation though (but easy)


By far my prefered option.

Yes some people need to reconfigure smtpserver.xml but at least we don't
take implicit decisions.


2. If authRequired is set to false, we can silently ignore
verifyIdentity is set to true.


The option that I like the least... It IMO gives a false sense of safety
(you might believe senders are verified but they actually are not).


3. We keep this current behavior, but need to change the documentation
accordingly and add a warning log as well during James startup.


This look fine to me. Verifying senders implies forcing local users to
authenticate (overwise the work-around is too simple...). However from
an admin perspective it would be harder to diagnose some SMTP
transaction being rejected compared to a server not starting.


I personally prefer the first one, as this is the way it's documented
for now and I found it more logical. However, it's completely opened to
discussion (thus the mail).

Depending on the feedback, will create the according JIRA fix ticket.


I think we can reuse JAMES-3525 as it is closely related...

Cheers,

Benoit



Thank you all, have a good day!

Rene.

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



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




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



SMTP server configuration issue

2021-05-05 Thread Rene Cordier

Hello guys,

While running some performance tests against SMTP protocol, I crossed
what I believe being potentially an issue regarding the configuration of
SMTP in James through the smtpserver.xml file.

What I observed is that we have two params that, according to the
official doc, are supposed to be coupled together: authRequired and
verifyIdentity.

In our default shipped conf for the port 25 we have:

false
true

In the official doc, regarding verifyIdentity:


"This is an optional tag with a boolean body. This option can only
be

used if SMTP authentication is required. If the parameter is set to true
then the sender address for the submitted message will be verified
against the authenticated subject. Verify sender addresses, ensuring
that the sender address matches the user who has authenticated. It will
verify that the sender address matches the address of the user or one of
its alias (from user or domain aliases). This prevents a user of your
mail server from acting as someone else If unspecified, default value is
true."

The behavior I observed with this was that James was rehecting my SMTP
calls because the user was not identified. It seems to force the auth to
be able to verify identity, despite saying auth is not required and the
doc saying that verifyIdentity should only be used if auth is required.

So I believe something is wrong here.

I would see 3 ways to resolve that potentially here.

1. If authRequired is set to false, we should reject verifyIdenty=true,
as it makes no logical sense. People might need to update their James
running installation though (but easy)

2. If authRequired is set to false, we can silently ignore
verifyIdentity is set to true.

3. We keep this current behavior, but need to change the documentation
accordingly and add a warning log as well during James startup.

I personally prefer the first one, as this is the way it's documented
for now and I found it more logical. However, it's completely opened to
discussion (thus the mail).

Depending on the feedback, will create the according JIRA fix ticket.

Thank you all, have a good day!

Rene.

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



Re: [VOTE] Call for vote: Apache James 3.6.0 (round 3)

2021-04-06 Thread Rene Cordier

+1

Rene.

On 06/04/2021 14:04, Tellier Benoit wrote:

I would like to propose a new vote 3.6.0 release of the Apache James server.

After an initial mistake (sorry), a failed vote (could not achieve a PMC
quorum), and more issues I did not yet complain about (closing the maven
artifact #1051 failed for a missing MD5 signature - network issue?),
here we are with one more vote !!!

You can find:

- The maven release staged in repository.apache.org as the artifact #1052:
https://repository.apache.org/content/repositories/orgapachejames-1052/
- The changelog for 3.6.0:
  https://github.com/apache/james-project/blob/master/CHANGELOG.md
- The compatibility instructions/upgrade recommendation:
  
https://github.com/apache/james-project/blob/master/upgrade-instructions.md#360-version

Voting rules:
  - This is a majority approval: this release may not be vetoed.
  - A quorum of 3 binding votes is required
  - The vote starts at Tuesday 6th of April 2021, 2pm UTC+7
  - The vote ends at Tuesday 13th of March 2021, 2pm UTC+7

You can answer to it just with +1 and -1. Down-votes shall be motivated.

3 binding votes are expected move forward on this release.

Cheers,

Benoit Tellier

Le 30/03/2021 à 17:16, Tellier Benoit a écrit :

The voting period is over.

Only one upvote had been collected this time. We did not achieve the 3
PMC quorum, and other contributors did not vote as well.

I will re-trigger a vote, this is a good opportunity to integrate
https://github.com/apache/james-project/pull/349

Cheers,

Benoit

Le 22/03/2021 à 15:16, Tellier Benoit a écrit :

Hi,

I would like to propose a new vote 3.6.0 release of the Apache James server.

You can find:

  - The maven release staged in repository.apache.org as the
artifact #1050:
https://repository.apache.org/content/repositories/orgapachejames-1050/
  - The changelog for
3.6.0:
https://github.com/apache/james-project/blob/master/CHANGELOG.md
  - The compatibility instructions/upgrade
recommendation:
https://github.com/apache/james-project/blob/master/upgrade-instructions.md#360-version

Voting rules:
  - This is a majority approval: this release may not be vetoed.
  - A quorum of 3 binding votes is required
  - The vote starts at Monday 22th of March 2021, 4pm UTC+7
  - The vote ends at Monday 29th of March 2021, 4pm UTC+7

You can answer to it just with +1 and -1. Down-votes may be motivated.

3 binding votes are expected move forward on this release.

Cheers,

Benoit Tellier

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



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



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




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



Re: [Discussion] Road to 4.0

2020-08-28 Thread Rene Cordier

Hi again David,

On 28/08/2020 10:11, David Leangen wrote:


Perhaps we should just wait in case anybody else would also like to add 
something?

So I would describe James as:

  * Currently in a state of transition (this is what James is now)
  * What we aspire it to be for version xxx (I am proposing v4.0)

Just a crazy thought, but technically, I could even create the v4.0 of the 
documentation, and we could even use it almost like a specification to guide 
the development. Of course, the real work gets done based on JIRA issues, but 
the issues that get created in the first place could be matched against the 
v4.0 docs.


As we make progress, the two different versions will resemble each other more 
and more (i.e. what James **is** gets closer to what we **aspire** it to be, at 
least for v4.0).

I don’t think we need to (or ought to) set a timeline, though. There are not 
enough resources allocated to do that.


What do you think?


I think for such a move there is probably a need of consensus through 
the PMC members via a vote.


Yes we need a good change of approach in our documentation and branding, 
and it looks like it's taking the right direction, but the code itself 
is not really having a big breaking change with this...


So is it enough to move towards a 4.0 or should we keep going with 3.x 
version? I'm not sure myself to be honest.


Cheers,
Rene.

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



Re: [Discussion] Road to 4.0

2020-08-27 Thread Rene Cordier

Hi David,

On 27/08/2020 10:21, David Leangen wrote:

I have observed a few different types of approaches to OSS:

  * Centered on a specification. The spec development has a formal process, and 
the spec becomes the driving force. There is a “reference implementation” to 
show that the spec works as intended. In this case, the clarity relates to the 
spec. There is engagement from the community to make implement the spec in a 
way that “works”. The clarity for the user in this case is that they know what 
they can expect. (Perhaps OSGi is a great example of this approach.)

  * Centered on a clear corporate vision. As a typical case, a company has 
developed a product and has decided to open source it. What the product does is 
clearly documented, as is the type of support that a user can receive 
(community version or commercial version). Again, for the user, there is 
clarity in terms of what they can expect to receive. (Maybe something like 
Docker would fit this model? Or Elasticsearch?)

  * Driven by a clear vision and objective. The scope of the product is very 
clear, and there is a commitment (for whatever reason) to make it “work”. By 
extension, this means that the meaning of “it works” is very precisely 
understood. (Maybe Ant, Maven, and Gradle are good examples, because what is 
meant by a “build tool” is pretty well understood.)

  * Haphazard “me” approach. In this case, there is no central driver (spec, 
company, clear vision). The product evolves more based on the individual 
contributions of the members, which themselves are based almost entirely on 
what the contributors need for themselves. Unless a contributor has their own 
specific need and evolves the product to suite that need, then there is little 
chance that the product will move. Because it is unpredictable what each 
individual contributor will need, from the user’s perspective the development 
is haphazard. There is little clarity in terms of what they can expect to get, 
or if the product will continue to be maintained. If they want it to work, they 
will have to become a contributor themselves, as there there are no guarantees.


There is no “right” or “wrong”, or even “better” by the way.


 From my understanding so far, I think that James seems to fit the latter 
approach. Yes, it relates to a few specifications, but James is not (as I 
understood) willing to “commit” to being a reference implementation for SMTP, 
IMAP, JMAP etc. Yes, there is some vision and some objectives, but nobody is 
willing to commit to ensuring that the product works according to the 
objectives, and as far as I can tell, the objectives are not entirely precisely 
defined. So, based on what I know so far, it seems to fit best the last model.


I think you are correct, I would say that now it is more later approach 
as well. Well at least since I started working on the project (might 
have been different before).


I think the devs at Linagora are working more towards filling the needs 
for the company, to be honest, which is mainly centered around the Guice 
distributed server. But all the other Guice implementations are growing 
as well with it along the way I would say, as they reuse pretty much the 
same components (distributed server being the most complete and complex 
one, others are like lighter versions of it).


I believe that we are of course mainly working on distributed server 
version, but maintaining the rest as well... Trying to fix some IMAP or 
POP bugs, etc.


But the biggest issue with the community would be I think because the 
Spring version is still the default promoted one on our current 
documentation. So people (as we say doc is quite confusing) start using 
this one usually, and ask questions on it. The choice to keep this as 
default seems to be because James JPA on Guice is still not as complete 
as the Spring one. For example, the Guice version is only running on a 
Derby embedded db, among other things missing (if I understood 
correctly, but if I'm wrong I'm sure someone else will correct me)


We would like to get rid of the Spring JPA version (also in term of 
maintenance, it's always a win to have less different technologies 
used), but we can't really as long as the guice JPA is missing things 
compared to Spring. But it is not a priority for us and we don't have 
enough resources.


But I believe the documentation you started would help clarify things to 
users and maybe push newcomers to contribute more on things we try to 
maintain but don't have the resources to spend enough time on it.


I would like to add I think we are willing to commit being a reference 
implementation to some things though, like lately we are spending energy 
on JMAP. First we develop what we need but we will try to complete it 
over time to be as close as possible from the specs. Would like to 
mention as well some devs here are participating in the writing of the 
JMAP specs:


* Benoit Tellier wrote the part regarding 

Re: [Discussion] Road to 4.0

2020-08-26 Thread Rene Cordier

Hello David,

On 26/08/2020 18:10, David Leangen wrote:

Hello,

I am still trying to get a sense of the community’s vision, and it’s thoughts 
relating to how to treat users. Unfortunately I have not heard too many 
comments so far on this topic. Trying to read between the lines, I could think 
of 4 potential conclusions:

  1. People are still on summer holidays and don’t have the time to spend


Everything always slows down on each summer, with holidays and such yes.


  2. I have taken a wrong or confusing approach to the topic, so people don’t 
know what to answer


Well when people are just saying : "This is not working" without 
details, and which James version they use, etc, it is hard to understand 
the issue and answer yes. But that is not specific to James I believe, 
it is a more global communication problem that you can see for any project.



  3. This is already documented somewhere so the assumption is that I already 
know it


Not really... We know we have a problem with our current documentation. 
Some parts are outdated, there is no versioning so if someone use an 
older version of James, it's nearly impossible to find back the 
documentation corresponding to it, all information is mixed together.


It is often I can see people asking questions why when they try to use 
something it doesn't work, while actually the answer is because they use 
the wrong product. But from our current documentation, it's not obvious 
and confusing (like for example people trying to use webadmin with the 
Spring version of James... where it's not supported).



  4. There is not much interest in discussing the the topic of “users”


Why there would be no interest? ^^



To continue with the documentation (at least on the path I have taken so far) I 
need to better understand the vision. That will allow me to resolve and clarify 
the topics previously raised regarding the community’s approach to dealing with 
newbies.


Well I believe a bit like Benoit on this. I think most of the time, 
users are asking stuff because, as I raised in point 3, our 
documentation is outdated, mixed between different products all 
together, not versioned, and very confusing.


With the efforts made on rebranding our products towards a more 
understandable user approach and reworking the documentation with 
Antora, with a versioning, and having a clear separation between James 
flavors, it would already help a lot more the users on how to use James 
regarding their needs, and might decrease the overall need for help with 
the community.


Also the release process was a bit long and painful as I understood, 
thus we were only updating the doc when doing a release, so lots of 
fixes stay hanging for a while. I believe with Antora and Eugen work to 
automate the build and website release he did (I hope I'm not wrong?), 
it might make it much easier as well to keep our documentation up-to-date.


I believe as well trying to add a bunch of how-tos regarding the topics 
that an admin might likely be interested to setup with James or what 
seems to be recurrent struggles of users might help too.



By the way, this project was much more difficult that I had anticipated. I no 
longer have much time to dedicate, but I pledge to continue, albeit at a slower 
pace and in the background, so long as I continue to get engagement from the 
community members. My main goal is to help document the state of James and the 
community, and the secondary goal that I discovered in the process is to point 
out gaps and potential areas of improvement. Thanks again for all the support!!


Honestly thank you greatly for all the time and thinking you have been 
putting into this new James documentation with a more user-focused 
mindset. I believe it helped the project greatly being more community 
friendly !


Cheers,
Rene.

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



Re: Which repositories are we using and going to document? Let's retire the ones we don't

2020-08-25 Thread Rene Cordier

On 20/08/2020 11:23, Rene Cordier wrote:


Based on Eugen comments in the INFRA ticket, I did this: 
https://github.com/apache/james-project/pull/244 for redirecting 
notifications to the new ML for this.


However I don't think as a commiter I can create the ML, so if a PMC 
could manage that :)



Following the fact that the ML has been created, I merged the pull 
request. I could subscribe to it and I saw Eugen sending a test mail 
through successfully as well.


But every time something get merged for example, I get an error email 
from INFRA saying:

"An error occurred while running notifications feature in .asf.yaml!:
Invalid notification target 'notificati...@james.apache.org'. Must be a 
valid @james.apache.org list!"


However the ML exists and looks valid. Thus I do not understand what is 
going on... I did reported the issue on INFRA ticket, but still waiting 
for an answer.


If anybody got an idea, you are welcome to speak. If not well... I guess 
we need to wait for INFRA to answer us.


Cheers,
Rene.

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



Re: Which repositories are we using and going to document? Let's retire the ones we don't

2020-08-19 Thread Rene Cordier




On 19/08/2020 17:49, Eugen Stan wrote:

I've created an issue to make the ML changes:
https://issues.apache.org/jira/browse/INFRA-20735

--
Please add:
- notificati...@james.apache.org
Please remove:
- site-...@james.apache.org
- mailet-...@james.apache.org


Based on Eugen comments in the INFRA ticket, I did this: 
https://github.com/apache/james-project/pull/244 for redirecting 
notifications to the new ML for this.


However I don't think as a commiter I can create the ML, so if a PMC 
could manage that :)


Rene.

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



Re: Which repositories are we using and going to document? Let's retire the ones we don't

2020-08-19 Thread Rene Cordier

I think we should have separate channels for:
- development: how we implement features and what features we work on
- users: how to use James:deploy it, create back-ups, etc.


Those 2 mailing lists exist already I believe. We have `server-dev` for 
development related things and `server-user` for users concerns.


I agree though with potentially making an other ML to separate the 
notifications from development concerns posted by members, as all of 
that is sent through the server-dev ML for now.



Gitter should be added if that is a channel.
I do think we should have 2 channels for dev and user on gitter.


Gitter I think is more for giving help and support to users and 
answering problems. I don't think we need two Gitter channels for this, 
the one we have currently is enough?


Rene.

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



Re: Which repositories are we using and going to document? Let's retire the ones we don't

2020-08-16 Thread Rene Cordier

Hello,


There are things that need to me documented that are not technical:
- what / where are the project resources (website, CI, git repos, 
mailing list)

- how to contribute, engage with the community
- etc.


Just to say I started migrating and writing this part of the 
documentation here: https://github.com/apache/james-project/pull/243


Don't hesitate to put comments and give feedbacks.

Thanks!

Rene.

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



Re: Call for vote: Apache James 3.5.0

2020-07-16 Thread Rene Cordier

+1

Rene.

On 16/07/2020 13:44, Tellier Benoit wrote:

Hi,

I would like to propose a new vote 3.5.0 release of the Apache James server.

I fixes Matthieu remarks since last proposal.

You can see changes proposed to the website at the occasion
of that release on this GitHub pull
request: https://github.com/apache/james-project/pull/187

You can find:

  - The maven release staged in repository.apache.org as the
artifact #1048:
https://repository.apache.org/content/repositories/orgapachejames-1048/
  - The changelog for
3.5.0:
https://github.com/chibenwa/james-project/blob/website-3.5.0/CHANGELOG.md
  - The compatibility instructions/upgrade
recommendation:
https://github.com/chibenwa/james-project/blob/website-3.5.0/upgrade-instructions.md

Voting rules:
  - This is a majority approval: this release may not be vetoed.
  - A quorum of 3 binding votes is required
  - The vote starts at Thursday 16th of July 2020, 1pm UTC+7
  - The vote ends at Thursday 23th of July 2020, 2pm UTC+7

You can answer to it just with +1 and -1. Down-votes may be motivated.

Cheers,

Benoit Tellier

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




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



Re: Consensus needed: replace james-site master branch with live branh - reset

2020-07-13 Thread Rene Cordier

+1! I don't see any issues with it too. Thank you Eugen !

Rene.

On 13/07/2020 07:10, Tellier Benoit wrote:


Le 13/07/2020 à 03:29, Eugen Stan a écrit :

Hello,

I would like to use james-site#master branch to hold the code to build
the website automatically.

+1


If no objections are received in the next 3 days I'll move forward with
the change.


Moving forward with the website I would like to replace the existing
james-site master branch with the current live branch.

The old master is backed up in master-backup.

The old master is generated and is not the current live website.

The current live website is served from asf-site.

Nothing will change with respect to live and staged env, master is
unsued to my knowledge.

To mine too...

The goal is to start clean with a fresh site building code.

The code will live in james-site and will use Antora to build the website.

Antora will take the content from the other git repositories.

All this has been tested out and it works, we need to polish it and
document it.

+1, I propose to do it in the community page of the antora website.

I've gone through the Antora docs over the weekend and I'll start
pushing changes soon.


https://github.com/apache/james-site/tree/live

https://github.com/apache/james-site/tree/master

https://github.com/apache/james-site/tree/master-backup

https://github.com/apache/james-site/tree/asf-site


Thanks,


Thanks for your investment!

Benoit

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




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



Re: Call for vote: Apache James 3.5.0

2020-06-19 Thread Rene Cordier

+1

Rene.

On 19/06/2020 10:44, Tellier Benoit wrote:

Hi,

I would like to propose the 3.5.0 release of the Apache James server.

Here are the changes since the previous proposal:

```
JAMES-3197 Matcher processing should handle NoClassDefFoundError
f0c6576760 JAMES-3197 Mailet processing should handle NoClassDefFoundError
5ad068e2da JAMES-3195 Avoid loosing stacktrace when fails to delete a file
0894fab28e JAMES-3192 Upgrade Apache configuration to 2.7
ba532d0d5b Remove leading line breaks
2207d8b3d8 JAMES-3187 Provisionned docker: add a cli helper script
3b4828c069 JAMES-3187 Add webadmin enabled by default to jpa-guice
docker image
537af6ed32 JAMES-1541 Fix a typo in MailPriorityHandler in configuration
04e8ec7906 JAMES-1541 Remove no longer existing
SuppressDuplicateRcptHandler from configuration
492e458cda JAMES-1541 Remove no longer existing TarpitHandler from
configuration
```

You can see changes proposed to the website at the occasion
of that release on this GitHub pull
request: https://github.com/apache/james-project/pull/187

You can find:

  - The maven release staged in repository.apache.org as the
artifact #1047:
https://repository.apache.org/content/repositories/orgapachejames-1047/
  - The changelog for
3.5.0:
https://github.com/chibenwa/james-project/blob/website-3.5.0/CHANGELOG.md
  - The compatibility instructions/upgrade
recommendation:
https://github.com/chibenwa/james-project/blob/website-3.5.0/upgrade-instructions.md

Voting rules:
  - This is a majority approval: this release may not be vetoed.
  - A quorum of 3 binding votes is required
  - The vote starts at Monday 19th of June 2020, 10am45 UTC
  - The vote ends at Sunday 26th of June 2020, 10am45 UTC

You can answer to it just with +1 and -1. Down-votes may be motivated.

Cheers,

Benoit Tellier

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




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



Re: Call for vote: Apache James 3.5.0

2020-04-06 Thread Rene Cordier

+1

On 06/04/2020 18:07, Tellier Benoit wrote:

Hi,

I would like to propose the 3.5.0 release of the Apache James server.

You can see changes proposed to the website at the occasion
of that release on this GitHub pull
request: https://github.com/apache/james-project/pull/187

You can find:

  - The maven release staged in repository.apache.org as the
artifact #1046:
https://repository.apache.org/content/repositories/orgapachejames-1046/
  - The changelog for
3.5.0:
https://github.com/chibenwa/james-project/blob/website-3.5.0/CHANGELOG.md
  - The compatibility instructions/upgrade
recommendation:
https://github.com/chibenwa/james-project/blob/website-3.5.0/upgrade-instructions.md

Voting rules:
  - This is a majority approval: this release may not be vetoed.
  - A quorum of 3 binding votes is required
  - The vote starts at Monday 6th of April 2020, 11am00 UTC
  - The vote ends at Sunday 13th of April 2020, 11am00 UTC

You can answer to it just with +1 and -1. Down-votes may be motivated.

Cheers,



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



Development directions for the coming weeks

2020-02-06 Thread Rene Cordier

Hi all,

We would like to inform you that we will focus their efforts on these 2 
topics on the next coming weeks :


* James administration procedures (Ops friendly)
* Solve Cassandra inconsistencies on the Mailbox object

## James administration procedures (Ops friendly)

Scope target: guice-distributed James product

The goal here is to put efforts on writing a documentation on 
administration procedures that an ops or admin system can follow to 
solve a specific issue when encountered. We decided to keep this list of 
items for the moment :


* Checking James health
* Mail processing
* Event Bus
* ES indexing
* Updating Cassandra schema version
* Solving Cassandra inconsistencies
* Cassandra table level parameters and why
* Mail queue administration
* DeletedMessageVault

We hope this could be helpful for the community in general.


## Solve Cassandra inconsistencies on the Mailbox object

`mailboxPath` and `mailbox` tables have a tight relation, where we 
usually first check `mailboxPath` to find the Mailbox ID given the 
mailbox name or path, to then get the Mailbox information from the 
`mailbox` table.


Such a relation exists because Cassandra, as a NoSQL DB, does not 
support transactions. So inconsistencies could be observed for instance 
if some writes fail due to Cassandra performance issues. We could 
observe some of those inconsistencies on the Mailbox object on 
Cassandra, with James failing to find mailboxes that are referenced in 
`mailboxPath` table but not existing in `mailbox` table.


For example, when creating a new mailbox, we first create the entry in 
mailboxPath, then in mailbox. If the second operation fails, we have the 
above mentionned inconsistency. To try to reduce that, we decided to :


* Add more unit tests to have a better understanding about potential 
inconsistencies cases with Mailbox
* Separate rename and create mailbox logic (it's shared for now), as we 
do an extra read on Cassandra to delete the previous mailboxPath in case 
we rename the mailbox. Separating the logic would allow us to avoid that 
read that is unecessary in the create case, and would make the code more 
robust against inconsistencies.
* Retry the 'create mailbox' step (so the one after mailboxPath 
creation) if it fails.

* Expose a webadmin task to solve mailbox inconsistencies

We do realize as well that inconsistencies can occur on other objects 
and that we need to think in the future of a more systematic approach to 
address this problem.



If you have any comments or feedbacks to this, please don't hesitate to 
answer us.


Best regards,
Rene Cordier.

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



Re: Session refactoring discussion

2020-02-02 Thread Rene Cordier

Hi Benoit,

Thank you for your feedback.

Answers are inline as well but overall it looks good feedback to me.

Best regards,
Rene.

On 22/01/2020 12:10, Tellier Benoit wrote:

Hi René,

My answers are inlined...

Best regard,

Benoit

On 22/01/2020 10:21, Rene Cordier wrote:

Hi guys,

I would like to bring on the table some proposition to refactor our
session usage within James.

# Context
[...]
Then I tried to use a `MailboxMapper` defined in the mailbox-store
module to be able to access to the mailbox containing that message
without having the mailbox id. However, we should not rely on this
outside of the mailbox modules, and rely more on the abstract API
defined in mailbox-api module.


In my opinion we would need another architecture decision record on this
consensual topic as this is the heart of our core APIs.

Could you take care about it?


Two ADRs in total then. Ok it makes sense to me, I will try to check all 
of that.




I would add in the "context" that as part of an upcoming effort to port
our current JMAP implementation to the lastest JMAP specification, we
will have to support JMAP account delegation. Thus being able to
audit/represent these concept efficiently when interacting with the
mailbox store is also related to this work


# Current API
[...]

# What we need

Well we can agree that the actual session is not enough to cover all the
cases that we have at the moment. I think we can have probably 4 types
of accesses within James to do operations on mailboxes :

* User session : user is logged and authenticated explicitly, does
operations on mailboxes he has rights on.
* User delegation session : James is doing user-related operations
internally, it's more of an implicit user session (mailets, listeners,
...?)


I think you are mixing two concepts here...

We have 'implicit' user actions, taken by the system on the behalf of
the user (eg: listener, mailets). These system action originated from a
user action.

Which is different to 'delegation': Bob gives Alice the right to
interact with Bob's mailbox as if she was Bob.

  - This can be revoked
  - We need to track that an action originated from Alice, and not from
Bob (audit)


Thanks for the clarification, that was not clear on my side indeed. Noted !




* Impersonation session : Admin is logged and authenticated, but has the
authorization to act on behalf of an other user
* System session : internal operations not directly related to a user (a
good example would be the recomputation of a jmap preview of a single
message)

We would need then to refactor the code to ensure we have different
types of sessions regarding those cases and review the session usage to
not introduce security vulnerabilities.


# Proposed solution

We could start by having a different session type for each of those
cases above, by also modifying the API in `SessionProvider` to have the
required methods achieved by this :

* `login` => user session : TypeSession.User
* `loginAsOtherUser` => impersonation session :
TypeSession.ImpersonatedUser
* `createDelegatedUserSession` => user delegation session :
TypeSession.DelegatedUser
* `createSystemSession` => system session : TypeSession.System

Those grained differentiations would also help better for auditing and
logging purposes.

We need as well to be careful and refactor the code regarding those new
types of sessions and sets of rights :

* `TypeSession.User` and `TypeSession.ImpersonatedUser` should have the
rights defined for the user
* `TypeSession.ImpersonatedUser` should have the rights of the user that
is being impersonated, not the logged in admin
* `TypeSession.System` should have bigger rights, to allow more global
operations on mailboxes in necessary cases (need to use carefully though)


Define "(need to use carefully though)"... How would you achieve
carefulness here?


Could be adding some more related tests, or having more granularity in 
the rights for system session, depending what we need at that place, 
instead of giving full rights. I'm not exactly sure yet though.





We need to define what kind of session is suitable for which parts of
the code and also add/update tests suites accordingly.

We probably should propose an ADR for this too...


That, is necessary, yes.



What do you think of it? Any feedback / discussion is welcomed of course
! Thank you for reading this.


I believe MailboxSession need to cary along different information
depending of the 'SessionType'.

User type just need to cary along the username
In case of delegation we need to have both users
In case of a system session (as defined above) have the name of the
service taking an action is more relevant than a username

Maybe we could have an object representing the Entity using this session
to interact with the mailbox store?


Like an Actor perhaps? UserActor, SystemActor, DelegatedActor, 
ImpersonatedActor






Best regards,
Rene.


Session refactoring discussion

2020-01-21 Thread Rene Cordier

Hi guys,

I would like to bring on the table some proposition to refactor our 
session usage within James.


# Context

The problem starts from 
https://issues.apache.org/jira/browse/JAMES-2993, more particularly the 
API `POST /jmap/messages/:messageId?action=recomputeJmapPreview` to 
recompute a preview of a message with its ID 
(https://github.com/linagora/james-project/pull/3035).


Then I tried to use a `MailboxMapper` defined in the mailbox-store 
module to be able to access to the mailbox containing that message 
without having the mailbox id. However, we should not rely on this 
outside of the mailbox modules, and rely more on the abstract API 
defined in mailbox-api module. But it is not possible actually to access 
a mailbox without knowing the user it belongs to (in mailbox-api). Thus 
started to emerge the idea of giving greater access to a system session 
for solving this case.


Discussion: 
https://github.com/linagora/james-project/pull/3035#discussion_r363684700



# Current API

In my understanding, regarding the session matter giving the rights to 
user to do some operations on mailboxes, it seems working like this to 
me at the moment :


* `MailboxSession` is the session object giving the user permissions to 
do operations on mailboxes. It contains actually two defined 
`SessionType` : `System` and `User`.
* `SessionProvider` is the API that provides the session with different 
methods. `SessionProviderImpl` is its implementation.



Actually, the `SessionProvider` allows to provide sessions in those ways:

* `login` => explicitly authenticates and authorizes a user to do 
actions on mailboxes he has access to
* `loginAsOtherUser` => authenticates an admin and authorizes him to do 
actions on behald of an other user (impersonation)
* `createSystemSession` => used for anything else, intended for internal 
use in the system



The `login` method returns a SessionType.User, while `loginAsOtherUser` 
and `createSystemSession` return a SessionType.System. However, it looks 
like that the session types are not being really used in the code, and 
there is no difference in rights whatsoever between the two. Probably 
useful for the trace logs, to see what kind of action has been done by 
which type of session or account, but even then it's probably insufficient.



# What we need

Well we can agree that the actual session is not enough to cover all the 
cases that we have at the moment. I think we can have probably 4 types 
of accesses within James to do operations on mailboxes :


* User session : user is logged and authenticated explicitly, does 
operations on mailboxes he has rights on.
* User delegation session : James is doing user-related operations 
internally, it's more of an implicit user session (mailets, listeners, ...?)
* Impersonation session : Admin is logged and authenticated, but has the 
authorization to act on behalf of an other user
* System session : internal operations not directly related to a user (a 
good example would be the recomputation of a jmap preview of a single 
message)


We would need then to refactor the code to ensure we have different 
types of sessions regarding those cases and review the session usage to 
not introduce security vulnerabilities.



# Proposed solution

We could start by having a different session type for each of those 
cases above, by also modifying the API in `SessionProvider` to have the 
required methods achieved by this :


* `login` => user session : TypeSession.User
* `loginAsOtherUser` => impersonation session : TypeSession.ImpersonatedUser
* `createDelegatedUserSession` => user delegation session : 
TypeSession.DelegatedUser

* `createSystemSession` => system session : TypeSession.System

Those grained differentiations would also help better for auditing and 
logging purposes.


We need as well to be careful and refactor the code regarding those new 
types of sessions and sets of rights :


* `TypeSession.User` and `TypeSession.ImpersonatedUser` should have the 
rights defined for the user
* `TypeSession.ImpersonatedUser` should have the rights of the user that 
is being impersonated, not the logged in admin
* `TypeSession.System` should have bigger rights, to allow more global 
operations on mailboxes in necessary cases (need to use carefully though)


We need to define what kind of session is suitable for which parts of 
the code and also add/update tests suites accordingly.


We probably should propose an ADR for this too...


What do you think of it? Any feedback / discussion is welcomed of course 
! Thank you for reading this.


Best regards,
Rene.

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



Re: [Call for vote] Upcoming 3.5.0 Deprecation plan

2019-11-18 Thread Rene Cordier

+1,

Rene Cordier.

On 18/11/2019 16:22, Tellier Benoit wrote:

Hello everyone,

I propose to submit to a vote the following deprecation:

  - To be deprecated in upcoming 3.5.0 and removed in 3.6.0:

     - james-server-mailet BayesianAnalysis + BayesianAnalysisFeeder +
JDBCBayesianAnalyser
   mailet/ai mailets to be used instead.

     - ToRecipientFolder.
   WithStorageDirective + LocalDelivery to be used instead.
       This will limit user misunderstandings

     - mpt/antlib + mpt/mpt-maven-plugin + mpt/app
   Not aware of usages, not exposed to users

Voting period: From 18th November 2019 10 am UTC to 25th November 10 am UTC

Voting rule: Quorum of 3 PMC member required, this vote may be vetoed.

Best regards,

Benoit Tellier




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




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



Re: Complete Code Contribution Lifecycle?

2019-11-05 Thread Rene Cordier

Hi Jerry!

Is this enough to answer your concerns regarding the code contribution 
documentation? https://james.apache.org/contribute.html


Feel free of course to give your feedback on it, if you think some 
points are missing or unclear.


Cheers,
Rene Cordier.

On 05/11/2019 23:12, Jerry Malcolm wrote:
Is the entire lifecycle for a code contribution documented anywhere?  I 
understand opening a JIRA and creating a pull request.  But what is the 
process after that?  Is it out of my hands completely after I create the 
pull request?  Who actually processes the pull and tests and adds it the 
master branch in git?  Am I (as the creator of the pull/jira)  notified 
that's been added to the master?  Do I have additional responsibility to 
verify it's there and close the jira/pull?


You can take me out of IBM... but I don't think you'll ever remove the 
'IBM process obsessions' that were beat into me for 30+ years :-)



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




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



Re: Trouble building the latest master.

2019-10-27 Thread Rene Cordier

Hi Mark,

Yes good guess for the first issue, you need indeed now Java 11 to 
compile the project.


The documentation that you are pointing to is completely outdated I'm 
afraid, sorry for that.


If you want to pass the tests with maven, you can add this option in 
your maven command line "-DskipTests". It will skip the test phase.


I think the README at the base of the github project is better 
up-to-date for project's compilation.


Regards,

Rene Cordier.

On 26/10/2019 09:14, Mark Gordon wrote:

I got past the previous problem by commenting out the release line on the
following xml.   I think this may have to do with the
plan to go to jdk 11?

It got past the compile now it is failing a cassandra
test apache-james-backends-cassandra

Can i go directly to package?  I am not using cassandra HOw do I avoid
the testing or get past this error.


 org.apache.maven.plugins
 maven-compiler-plugin
 3.8.1
 
 true
 ${target.jdk}
 ${target.jdk}
 
 
 



[INFO]

[ERROR] Failed to execute goal
org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test (default-test)
on project apache-james-backends-cassandra: There are test failures.
[ERROR]
[ERROR] Please refer to
/home/orderpt/james-project/backends-common/cassandra/target/surefire-reports
for the individual test results.
[ERROR] Please refer to dump files (if any exist) [date].dump,
[date]-jvmRun[N].dump and [date].dumpstream.
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e
switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions,
please read the following articles:
[ERROR] [Help 1]
http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the
command
[ERROR]   mvn  -rf :apache-james-backends-cassandra

On Fri, Oct 25, 2019 at 6:09 PM Mark Gordon  wrote:


I have used james in the past but now having trouble getting 3.4 to
deliver mail.

I would like to be able to build the latest release so I and figure out
what is going on.   Also would like to work on some maillets.
Is there an up to date tutorial on building the latest master?

I did not make it very far

Any direction would be appreciated.

I cloned the repository and I get this error when I try to compile.
https://james.apache.org/server/3/dev-build.html

In the JAMES_SRC_HOME top level directory (where the parent pom.xml
resides), invoke maven with 'mvn' with any of the following command line
arguments:

- clean - deletes the target directory, making the system ready for a
clean build.
- compile - compiles the source code.
- test - run unit tests for James.
- *package - generates all the James distributions, packed. From the
root directory, cd to 'server/container/spring/target' to have the build
distribution. Notice, for the latest trunk(revision 1430655+), a specific
profile argument need to be set: '-Pwith-assembly'. The location of final
distributions is also changed to 'JAMES_SRC_HOME/server/app/target'.*
- javadocs:javadocs - builds the James javadocs.
- site - builds the entirety of the James website.


I did:

clone
mvn clean
mvn compile


[INFO] Apache James :: Server :: Web Admin server integration tests SKIPPED
[INFO]

[INFO] BUILD FAILURE
[INFO]

[INFO] Total time:  16.635 s
[INFO] Finished at: 2019-10-25T18:04:55Z
[INFO]

[ERROR] Failed to execute goal
org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile
(default-compile) on project james-server-util: Fatal error compiling:
invalid flag: --release -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the
-e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions,
please read the following articles:
[ERROR] [Help 1]
http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the
command
[ERROR]   mvn  -rf :james-server-util

--
Mark Gordon 

OrderTech Corporation | 819 W Fairmont Dr Ste 2 | Tempe, AZ 85282

*o:* (480) 285-1403 <4802851403> | *f:* (480) 464-5824 <4804645824> | *m:*
  (602) 549-0488 <6025490488>

www.ordertech.com

LinkedIn <http://www.linkedin.com/company/ordertech-corp> 

Re: [Vote] migration to java 11

2019-10-27 Thread Rene Cordier

+1

On 24/10/2019 21:43, Matthieu Baechler wrote:

Hi,

I would like to propose the migration to Java 11 as a runtime.

I opened an ADR here: https://github.com/apache/james-project/pull/174

Here is the content of this ADR:

---
# 9. Migration to Java Runtime Environment 11

Date: 2019-10-24

## Status

Proposed

## Context

Java 11 is the only "Long Term Support" java release right now so more
and more people will use it exclusively.

James is known to build with Java Compiler 11 for some weeks.

## Decision

We adopt Java Runtime Environment 11 for James as a runtime to benefits
from a supported runtime and new features
of the languages and the platform.

## Consequences

* It requires the upgrade of Spring to 4.3.x.
* All docker images should be updated to adoptopenjdk 11.
* The documentation should be updated accordingly.  

---

Voting rules:

I do propose a vote to ensure consensus on it:
  - Answer this mail with "+1" to support this decision
  - Answer this mail with "-1" if you reject this decision

Negative votes should be motivated. Voting ends on 31th October 2019
8am UTC.

Cheers,



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



[jira] [Commented] (JAMES-2241) Headers containing dot character are not indexed in ElasticSearch

2019-09-27 Thread Rene Cordier (Jira)


[ 
https://issues.apache.org/jira/browse/JAMES-2241?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16939193#comment-16939193
 ] 

Rene Cordier commented on JAMES-2241:
-

It seems that from ES5 it's possible again to index field names with dots: 
[https://www.elastic.co/guide/en/elasticsearch/reference/2.4/dots-in-names.html]

 

So now that we are using ES6, it should be ok to reeable it: 
https://github.com/linagora/james-project/pull/2724

> Headers containing dot character are not indexed in ElasticSearch
> -
>
> Key: JAMES-2241
> URL: https://issues.apache.org/jira/browse/JAMES-2241
> Project: James Server
>  Issue Type: Bug
>  Components: elasticsearch
>Reporter: Raphael Ouazana
>Priority: Major
>
> When an email has headers witch contain the dot '.' character, these headers 
> are not indexed.
> The other headers and the email are indexed since JAMES-2236 is merged.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (JSIEVE-112) Use SLF4J & logback for logging

2019-09-15 Thread Rene Cordier (Jira)


[ 
https://issues.apache.org/jira/browse/JSIEVE-112?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16930198#comment-16930198
 ] 

Rene Cordier commented on JSIEVE-112:
-

PR was : https://github.com/apache/james-jsieve/pull/18

> Use SLF4J & logback for logging
> ---
>
> Key: JSIEVE-112
> URL: https://issues.apache.org/jira/browse/JSIEVE-112
> Project: James jSieve
>  Issue Type: Improvement
>Reporter: Tellier Benoit
>Priority: Major
> Fix For: 0.6
>
>  Time Spent: 2.5h
>  Remaining Estimate: 0h
>
> We should rely on SLF4J for logging within JSIEVE library and use 
> logback-classic for tests.



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

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



[jira] [Commented] (JSIEVE-111) Libraries upgrade

2019-09-09 Thread Rene Cordier (Jira)


[ 
https://issues.apache.org/jira/browse/JSIEVE-111?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16926328#comment-16926328
 ] 

Rene Cordier commented on JSIEVE-111:
-

PR: https://github.com/apache/james-jsieve/pull/17

> Libraries upgrade
> -
>
> Key: JSIEVE-111
> URL: https://issues.apache.org/jira/browse/JSIEVE-111
> Project: James jSieve
>  Issue Type: Wish
>        Reporter: Rene Cordier
>Priority: Major
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Libs update:
> {code:java}
> 4 [INFO] com.google.guava:guava .. 18.0 -> 
> 28.1-jre
>  4 [INFO] commons-logging:commons-logging . 1.1.1 -> 
> 1.2
>  4 [INFO] javax.mail:mail ... 1.4.4 -> 
> 1.5.0-b01
>  4 [INFO] jmock:jmock . 1.2.0 -> 
> 20031129.200437
>  4 [INFO] junit:junit .. 4.10 -> 
> 4.13-beta-3
>  4 [INFO] log4j:log4j . 1.2.14 -> 
> 1.2.17
>  4 [INFO] org.apache.james:apache-mime4j-core ... 0.8.1 -> 
> 0.8.3
>  8 [INFO] org.apache.maven.doxia:doxia-core . 1.2 -> 
> 1.9
>  2 [INFO] org.assertj:assertj-core . 1.7.1 -> 
> 3.13.2
>  4 [INFO] org.mockito:mockito-core .. 1.9.0 -> 
> 3.0.0{code}
>  
> Plugins update:
> {code:java}
> 1 [INFO] maven-compiler-plugin .. 3.0 -> 3.3
>  1 [INFO] maven-compiler-plugin  3.0 -> 3.7.0
>  1 [INFO] maven-compiler-plugin  3.0 -> 3.8.0
>  2 [INFO] maven-site-plugin .. 3.5.1 -> 3.7.1
>  1 [INFO] org.apache.felix:maven-bundle-plugin ... 2.3.7 -> 2.5.4
>  1 [INFO] org.apache.felix:maven-bundle-plugin ... 2.3.7 -> 4.0.0
>  1 [INFO] org.apache.felix:maven-bundle-plugin ... 2.3.7 -> 4.2.0
>  2 [INFO] org.apache.felix:maven-bundle-plugin ... 4.2.0 -> 4.0.0
>  1 [INFO] org.codehaus.mojo:build-helper-maven-plugin .. 1.7 -> 
> 3.0.0{code}



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

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



[jira] [Created] (JSIEVE-111) Libraries upgrade

2019-09-06 Thread Rene Cordier (Jira)
Rene Cordier created JSIEVE-111:
---

 Summary: Libraries upgrade
 Key: JSIEVE-111
 URL: https://issues.apache.org/jira/browse/JSIEVE-111
 Project: James jSieve
  Issue Type: Wish
Reporter: Rene Cordier


Libs update:
{code:java}
4 [INFO] com.google.guava:guava .. 18.0 -> 28.1-jre
 4 [INFO] commons-logging:commons-logging . 1.1.1 -> 1.2
 4 [INFO] javax.mail:mail ... 1.4.4 -> 1.5.0-b01
 4 [INFO] jmock:jmock . 1.2.0 -> 20031129.200437
 4 [INFO] junit:junit .. 4.10 -> 4.13-beta-3
 4 [INFO] log4j:log4j . 1.2.14 -> 1.2.17
 4 [INFO] org.apache.james:apache-mime4j-core ... 0.8.1 -> 0.8.3
 8 [INFO] org.apache.maven.doxia:doxia-core . 1.2 -> 1.9
 2 [INFO] org.assertj:assertj-core . 1.7.1 -> 3.13.2
 4 [INFO] org.mockito:mockito-core .. 1.9.0 -> 
3.0.0{code}
 

Plugins update:
{code:java}
1 [INFO] maven-compiler-plugin .. 3.0 -> 3.3
 1 [INFO] maven-compiler-plugin  3.0 -> 3.7.0
 1 [INFO] maven-compiler-plugin  3.0 -> 3.8.0
 2 [INFO] maven-site-plugin .. 3.5.1 -> 3.7.1
 1 [INFO] org.apache.felix:maven-bundle-plugin ... 2.3.7 -> 2.5.4
 1 [INFO] org.apache.felix:maven-bundle-plugin ... 2.3.7 -> 4.0.0
 1 [INFO] org.apache.felix:maven-bundle-plugin ... 2.3.7 -> 4.2.0
 2 [INFO] org.apache.felix:maven-bundle-plugin ... 4.2.0 -> 4.0.0
 1 [INFO] org.codehaus.mojo:build-helper-maven-plugin .. 1.7 -> 
3.0.0{code}



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

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



[jira] [Commented] (JDKIM-43) Libraries upgrade

2019-09-04 Thread Rene Cordier (Jira)


[ 
https://issues.apache.org/jira/browse/JDKIM-43?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16922350#comment-16922350
 ] 

Rene Cordier commented on JDKIM-43:
---

PR for upgrades : [https://github.com/apache/james-jdkim/pull/9]

> Libraries upgrade
> -
>
> Key: JDKIM-43
> URL: https://issues.apache.org/jira/browse/JDKIM-43
> Project: James jDKIM
>  Issue Type: Wish
>        Reporter: Rene Cordier
>Priority: Major
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Libraries upgrade:
> {code:java}
> 4 [INFO] org.apache.geronimo.javamail:geronimo-javamail_1.4_mail1.8.3 -> 
> 1.9.0-alpha-2
>  4 [INFO] commons-codec:commons-codec .. 1.7 -> 
> 1.13
>  4 [INFO] commons-logging:commons-logging . 1.1.1 -> 
> 1.2
>  4 [INFO] dnsjava:dnsjava ... 2.1.1 -> 
> 2.1.9
>  4 [INFO] junit:junit .. 4.10 -> 
> 4.13-beta-3
>  5 [INFO] log4j:log4j . 1.2.16 -> 
> 1.2.17
>  4 [INFO] org.apache.james:apache-mailet-api  3.1.0 -> 
> 3.3.0
>  4 [INFO] org.apache.james:apache-mailet-base ... 3.1.0 -> 
> 3.3.0
>  4 [INFO] org.apache.james:apache-mime4j-core ... 0.8.1 -> 
> 0.8.3
>  4 [INFO] org.apache.james:apache-mime4j-dom  0.8.1 -> 
> 0.8.3
>  8 [INFO] org.apache.maven.doxia:doxia-core . 1.2 -> 
> 1.9
>  4 [INFO] org.apache.maven.wagon:wagon-ssh  2.0 -> 
> 3.3.3
> {code}
>  
> Plugins upgrade:
> {code:java}
> 1 [INFO] maven-compiler-plugin .. 3.0 -> 3.3
>  1 [INFO] maven-compiler-plugin  3.0 -> 3.7.0
>  1 [INFO] maven-compiler-plugin  3.0 -> 3.8.0
>  1 [INFO] maven-site-plugin  3.3 -> 3.7.1
>  1 [INFO] maven-site-plugin .. 3.5.1 -> 3.7.1
>  1 [INFO] org.apache.felix:maven-bundle-plugin ... 2.3.7 -> 2.5.4
>  1 [INFO] org.apache.felix:maven-bundle-plugin ... 2.3.7 -> 4.0.0
>  1 [INFO] org.apache.felix:maven-bundle-plugin ... 2.3.7 -> 4.2.0
>  2 [INFO] org.apache.felix:maven-bundle-plugin ... 4.2.0 -> 4.0.0
>  1 [INFO] org.apache.rat:apache-rat-plugin .. 0.8 -> 0.11
>  1 [INFO] org.apache.rat:apache-rat-plugin .. 0.8 -> 0.13
>  1 [INFO] org.codehaus.mojo:versions-maven-plugin  2.0 -> 
> 2.7{code}



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

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



[jira] [Created] (JDKIM-43) Libraries upgrade

2019-09-04 Thread Rene Cordier (Jira)
Rene Cordier created JDKIM-43:
-

 Summary: Libraries upgrade
 Key: JDKIM-43
 URL: https://issues.apache.org/jira/browse/JDKIM-43
 Project: James jDKIM
  Issue Type: Wish
Reporter: Rene Cordier


Libraries upgrade:
{code:java}
4 [INFO] org.apache.geronimo.javamail:geronimo-javamail_1.4_mail1.8.3 -> 
1.9.0-alpha-2
 4 [INFO] commons-codec:commons-codec .. 1.7 -> 1.13
 4 [INFO] commons-logging:commons-logging . 1.1.1 -> 1.2
 4 [INFO] dnsjava:dnsjava ... 2.1.1 -> 2.1.9
 4 [INFO] junit:junit .. 4.10 -> 4.13-beta-3
 5 [INFO] log4j:log4j . 1.2.16 -> 1.2.17
 4 [INFO] org.apache.james:apache-mailet-api  3.1.0 -> 3.3.0
 4 [INFO] org.apache.james:apache-mailet-base ... 3.1.0 -> 3.3.0
 4 [INFO] org.apache.james:apache-mime4j-core ... 0.8.1 -> 0.8.3
 4 [INFO] org.apache.james:apache-mime4j-dom  0.8.1 -> 0.8.3
 8 [INFO] org.apache.maven.doxia:doxia-core . 1.2 -> 1.9
 4 [INFO] org.apache.maven.wagon:wagon-ssh  2.0 -> 3.3.3

{code}
 

Plugins upgrade:
{code:java}
1 [INFO] maven-compiler-plugin .. 3.0 -> 3.3
 1 [INFO] maven-compiler-plugin  3.0 -> 3.7.0
 1 [INFO] maven-compiler-plugin  3.0 -> 3.8.0
 1 [INFO] maven-site-plugin  3.3 -> 3.7.1
 1 [INFO] maven-site-plugin .. 3.5.1 -> 3.7.1
 1 [INFO] org.apache.felix:maven-bundle-plugin ... 2.3.7 -> 2.5.4
 1 [INFO] org.apache.felix:maven-bundle-plugin ... 2.3.7 -> 4.0.0
 1 [INFO] org.apache.felix:maven-bundle-plugin ... 2.3.7 -> 4.2.0
 2 [INFO] org.apache.felix:maven-bundle-plugin ... 4.2.0 -> 4.0.0
 1 [INFO] org.apache.rat:apache-rat-plugin .. 0.8 -> 0.11
 1 [INFO] org.apache.rat:apache-rat-plugin .. 0.8 -> 0.13
 1 [INFO] org.codehaus.mojo:versions-maven-plugin  2.0 -> 
2.7{code}



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

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



[jira] [Commented] (JAMES-2868) Http route for getting all mails stored in the MockSmtpServer

2019-08-29 Thread Rene Cordier (Jira)


[ 
https://issues.apache.org/jira/browse/JAMES-2868?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16919141#comment-16919141
 ] 

Rene Cordier commented on JAMES-2868:
-

PR solving this matter: https://github.com/linagora/james-project/pull/2649

> Http route for getting all mails stored in the MockSmtpServer
> -
>
> Key: JAMES-2868
> URL: https://issues.apache.org/jira/browse/JAMES-2868
> Project: James Server
>  Issue Type: Sub-task
>  Components: Remote Delivery, tests
>Reporter: Tellier Benoit
>Assignee: Tellier Benoit
>Priority: Major
>
> List all of mails (JAMES-2864 + JAMES-2865) are successfully stored in the 
> MockSmtpServer
> ```
> GET /mails
>  - 200: ok
> ```
> ```json
> [
>   {
>"envelope": {
> "from": "f...@domain.tld",
> "recipients": ["recipie...@domain.tld", "recipie...@domain.tld"]
> },
>"content": "mail content here"
>   },
>   ...
> ]



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

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



[jira] [Commented] (JAMES-2867) dockerize the MockSmtpServer

2019-08-26 Thread Rene Cordier (Jira)


[ 
https://issues.apache.org/jira/browse/JAMES-2867?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16916329#comment-16916329
 ] 

Rene Cordier commented on JAMES-2867:
-

PR with dockerized dummy Mock smtp server : 
https://github.com/linagora/james-project/pull/2614

> dockerize the MockSmtpServer
> 
>
> Key: JAMES-2867
> URL: https://issues.apache.org/jira/browse/JAMES-2867
> Project: James Server
>  Issue Type: Sub-task
>  Components: Remote Delivery, tests
>Reporter: Tellier Benoit
>Assignee: Tellier Benoit
>Priority: Major
>
>  - Create a standalong java application for this.
>  - Provide the Dockerfile, and a container
> The MockSmtpServer will be used for RemoteDelivery intergration tests where 
> james connect to SMTP server by remote IP address (not local host), we need 
> to have docker containers running this MockSmptServer inside, exposing port 
> 25. Then add the docker container IPs to DNS service.



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

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



[jira] [Commented] (JAMES-2872) Broken links for JAMES 3.3.0 release source code

2019-08-23 Thread Rene Cordier (Jira)


[ 
https://issues.apache.org/jira/browse/JAMES-2872?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16914036#comment-16914036
 ] 

Rene Cordier commented on JAMES-2872:
-

Found out that the docker image used to compile the website had some issues 
also...

PR to fix it : [https://github.com/linagora/james-project/pull/2628]

 

PR to fix the bad links for James 3.3.0 release : 
https://github.com/linagora/james-project/pull/2627

> Broken links for JAMES 3.3.0 release source code
> 
>
> Key: JAMES-2872
> URL: https://issues.apache.org/jira/browse/JAMES-2872
> Project: James Server
>  Issue Type: Bug
>  Components: Documentation
>    Reporter: Rene Cordier
>Priority: Major
>
> The links to download the source code of the 3.3.0 release are broken : 
> [https://james.apache.org/download.cgi#Apache_James_Server]
> Looks like a file naming issue, with the zip in the link having the name 
> james-server-sources-3.3.0.zip , while on the archive and mirrors 
> ([https://archive.apache.org/dist/james/server/3.3.0/)] we can see the file 
> name being  james-project-3.3.0-src.zip
>  



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

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



[jira] [Created] (JAMES-2872) Broken links for JAMES 3.3.0 release source code

2019-08-22 Thread Rene Cordier (Jira)
Rene Cordier created JAMES-2872:
---

 Summary: Broken links for JAMES 3.3.0 release source code
 Key: JAMES-2872
 URL: https://issues.apache.org/jira/browse/JAMES-2872
 Project: James Server
  Issue Type: Bug
  Components: Documentation
Reporter: Rene Cordier


The links to download the source code of the 3.3.0 release are broken : 
[https://james.apache.org/download.cgi#Apache_James_Server]

Looks like a file naming issue, with the zip in the link having the name 
james-server-sources-3.3.0.zip , while on the archive and mirrors 
([https://archive.apache.org/dist/james/server/3.3.0/)] we can see the file 
name being  james-project-3.3.0-src.zip

 



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

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



[jira] [Commented] (JAMES-2860) Read partial blob issue with Scality

2019-08-20 Thread Rene Cordier (Jira)


[ 
https://issues.apache.org/jira/browse/JAMES-2860?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16911141#comment-16911141
 ] 

Rene Cordier commented on JAMES-2860:
-

Unfortunately, the issue still occurs with our integration tests when trying to 
read a big blob that we delete same time. So the tests will stay disabled for 
now for BlobStore with Scality/cloudserver

> Read partial blob issue with Scality
> 
>
> Key: JAMES-2860
> URL: https://issues.apache.org/jira/browse/JAMES-2860
> Project: James Server
>  Issue Type: Bug
>        Reporter: Rene Cordier
>Priority: Major
>
> For some reasons, the test 
> readShouldNotReadPartiallyWhenDeletingConcurrentlyBigBlob in 
> DeleteBlobContract fails sometimes randomly with the Scality S3 object 
> storage implementation.
> It seems sometimes it manages to read partially a blob while deleting it 
> concurrently.
>  The issue doesn't seem to happen with Swift though...
> ---
> So after having a meeting with people from Scality, this is what we concluded:
>  * When there is a delete operation, the blob gets marked as deleted first 
> then gets deleted, to avoid an other thread to try to read it same time. So 
> it is a bug.
>  * this bug was known and seemed to be happening with big blobs in old 
> versions. It seems S3 is partitioning blobs when they get bigger than 10MB, 
> and that bug was happening then
>  * we use an old version of Scality, and since the bug has been fixed on 
> newer versions
>  * however it seems Scality doesn't maintain anymore docker images on docker 
> hub, but the Dockerfile is present on their github
> Solution: we need to generate ourselves our own scality docker image with the 
> latest changes (v8) and use it instead of the one we actually use (v6)



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

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



[jira] [Commented] (JAMES-2860) Read partial blob issue with Scality

2019-08-20 Thread Rene Cordier (Jira)


[ 
https://issues.apache.org/jira/browse/JAMES-2860?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16911139#comment-16911139
 ] 

Rene Cordier commented on JAMES-2860:
-

PR to upgrade to cloudserver 8.1.17 : 
https://github.com/linagora/james-project/pull/2605

> Read partial blob issue with Scality
> 
>
> Key: JAMES-2860
> URL: https://issues.apache.org/jira/browse/JAMES-2860
> Project: James Server
>  Issue Type: Bug
>        Reporter: Rene Cordier
>Priority: Major
>
> For some reasons, the test 
> readShouldNotReadPartiallyWhenDeletingConcurrentlyBigBlob in 
> DeleteBlobContract fails sometimes randomly with the Scality S3 object 
> storage implementation.
> It seems sometimes it manages to read partially a blob while deleting it 
> concurrently.
>  The issue doesn't seem to happen with Swift though...
> ---
> So after having a meeting with people from Scality, this is what we concluded:
>  * When there is a delete operation, the blob gets marked as deleted first 
> then gets deleted, to avoid an other thread to try to read it same time. So 
> it is a bug.
>  * this bug was known and seemed to be happening with big blobs in old 
> versions. It seems S3 is partitioning blobs when they get bigger than 10MB, 
> and that bug was happening then
>  * we use an old version of Scality, and since the bug has been fixed on 
> newer versions
>  * however it seems Scality doesn't maintain anymore docker images on docker 
> hub, but the Dockerfile is present on their github
> Solution: we need to generate ourselves our own scality docker image with the 
> latest changes (v8) and use it instead of the one we actually use (v6)



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

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



[jira] [Updated] (JAMES-2860) Read partial blob issue with Scality

2019-08-19 Thread Rene Cordier (Jira)


 [ 
https://issues.apache.org/jira/browse/JAMES-2860?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Rene Cordier updated JAMES-2860:

Description: 
For some reasons, the test 
readShouldNotReadPartiallyWhenDeletingConcurrentlyBigBlob in DeleteBlobContract 
fails sometimes randomly with the Scality S3 object storage implementation.

It seems sometimes it manages to read partially a blob while deleting it 
concurrently.
 The issue doesn't seem to happen with Swift though...

---

So after having a meeting with people from Scality, this is what we concluded:
 * When there is a delete operation, the blob gets marked as deleted first then 
gets deleted, to avoid an other thread to try to read it same time. So it is a 
bug.
 * this bug was known and seemed to be happening with big blobs in old 
versions. It seems S3 is partitioning blobs when they get bigger than 10MB, and 
that bug was happening then
 * we use an old version of Scality, and since the bug has been fixed on newer 
versions
 * however it seems Scality doesn't maintain anymore docker images on docker 
hub, but the Dockerfile is present on their github

Solution: we need to generate ourselves our own scality docker image with the 
latest changes (v8) and use it instead of the one we actually use (v6)

  was:
For some reasons, the test 
readShouldNotReadPartiallyWhenDeletingConcurrentlyBigBlob in DeleteBlobContract 
fails sometimes randomly with the Scality S3 object storage implementation.


It seems sometimes it manages to read partially a blob while deleting it 
concurrently.
The issue doesn't seem to happen with Swift though...


> Read partial blob issue with Scality
> 
>
> Key: JAMES-2860
> URL: https://issues.apache.org/jira/browse/JAMES-2860
> Project: James Server
>  Issue Type: Bug
>        Reporter: Rene Cordier
>Priority: Major
>
> For some reasons, the test 
> readShouldNotReadPartiallyWhenDeletingConcurrentlyBigBlob in 
> DeleteBlobContract fails sometimes randomly with the Scality S3 object 
> storage implementation.
> It seems sometimes it manages to read partially a blob while deleting it 
> concurrently.
>  The issue doesn't seem to happen with Swift though...
> ---
> So after having a meeting with people from Scality, this is what we concluded:
>  * When there is a delete operation, the blob gets marked as deleted first 
> then gets deleted, to avoid an other thread to try to read it same time. So 
> it is a bug.
>  * this bug was known and seemed to be happening with big blobs in old 
> versions. It seems S3 is partitioning blobs when they get bigger than 10MB, 
> and that bug was happening then
>  * we use an old version of Scality, and since the bug has been fixed on 
> newer versions
>  * however it seems Scality doesn't maintain anymore docker images on docker 
> hub, but the Dockerfile is present on their github
> Solution: we need to generate ourselves our own scality docker image with the 
> latest changes (v8) and use it instead of the one we actually use (v6)



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

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



[jira] [Created] (JAMES-2860) Read partial blob issue with Scality

2019-08-19 Thread Rene Cordier (Jira)
Rene Cordier created JAMES-2860:
---

 Summary: Read partial blob issue with Scality
 Key: JAMES-2860
 URL: https://issues.apache.org/jira/browse/JAMES-2860
 Project: James Server
  Issue Type: Bug
Reporter: Rene Cordier


For some reasons, the test 
readShouldNotReadPartiallyWhenDeletingConcurrentlyBigBlob in DeleteBlobContract 
fails sometimes randomly with the Scality S3 object storage implementation.


It seems sometimes it manages to read partially a blob while deleting it 
concurrently.
The issue doesn't seem to happen with Swift though...



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

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



[jira] [Updated] (JAMES-2859) Missing pages on the documentation's website

2019-08-16 Thread Rene Cordier (JIRA)


 [ 
https://issues.apache.org/jira/browse/JAMES-2859?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Rene Cordier updated JAMES-2859:

Labels: documentation newbie website  (was: docuentation newbie website)

> Missing pages on the documentation's website
> 
>
> Key: JAMES-2859
> URL: https://issues.apache.org/jira/browse/JAMES-2859
> Project: James Server
>  Issue Type: Bug
>        Reporter: Rene Cordier
>Priority: Minor
>  Labels: documentation, newbie, website
> Attachments: james-missing.png
>
>
> On the official website's documentation of James, I noticed some pages are 
> missing from links in 
> [https://james.apache.org/mailet/mailetdocs-maven-plugin/index.html]
> !james-missing.png!
> The 3 links in this part are pointing to a 404 not found



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

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



[jira] [Created] (JAMES-2859) Missing pages on the documentation's website

2019-08-16 Thread Rene Cordier (JIRA)
Rene Cordier created JAMES-2859:
---

 Summary: Missing pages on the documentation's website
 Key: JAMES-2859
 URL: https://issues.apache.org/jira/browse/JAMES-2859
 Project: James Server
  Issue Type: Bug
Reporter: Rene Cordier
 Attachments: james-missing.png

On the official website's documentation of James, I noticed some pages are 
missing from links in 
[https://james.apache.org/mailet/mailetdocs-maven-plugin/index.html]

!james-missing.png!

The 3 links in this part are pointing to a 404 not found



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

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



[jira] [Commented] (JAMES-2858) Fix plugin cannot found issue maven-mailetdocs-plugin

2019-08-16 Thread Rene Cordier (JIRA)


[ 
https://issues.apache.org/jira/browse/JAMES-2858?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16908803#comment-16908803
 ] 

Rene Cordier commented on JAMES-2858:
-

PR: https://github.com/linagora/james-project/pull/2599

> Fix plugin cannot found issue maven-mailetdocs-plugin
> -
>
> Key: JAMES-2858
> URL: https://issues.apache.org/jira/browse/JAMES-2858
> Project: James Server
>  Issue Type: Bug
>        Reporter: Rene Cordier
>Priority: Minor
> Fix For: 3.4.0
>
>
> I keep getting sync errors with IntelliJ that it couldn't find the plugin 
> {{maven-mailetdocs-plugin}} from the parent pom 1.2 (quite the old version of 
> james...)... Then I saw that we have a module {{mailetdocs-maven-plugin}} in 
> James that seems to be it, so I think so deps have not been updated correctly.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

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



[jira] [Created] (JAMES-2858) Fix plugin cannot found issue maven-mailetdocs-plugin

2019-08-16 Thread Rene Cordier (JIRA)
Rene Cordier created JAMES-2858:
---

 Summary: Fix plugin cannot found issue maven-mailetdocs-plugin
 Key: JAMES-2858
 URL: https://issues.apache.org/jira/browse/JAMES-2858
 Project: James Server
  Issue Type: Bug
Reporter: Rene Cordier
 Fix For: 3.4.0


I keep getting sync errors with IntelliJ that it couldn't find the plugin 
{{maven-mailetdocs-plugin}} from the parent pom 1.2 (quite the old version of 
james...)... Then I saw that we have a module {{mailetdocs-maven-plugin}} in 
James that seems to be it, so I think so deps have not been updated correctly.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

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



[jira] [Closed] (JAMES-2829) Implementation of delete in BlobStore

2019-07-26 Thread Rene Cordier (JIRA)


 [ 
https://issues.apache.org/jira/browse/JAMES-2829?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Rene Cordier closed JAMES-2829.
---

> Implementation of delete in BlobStore
> -
>
> Key: JAMES-2829
> URL: https://issues.apache.org/jira/browse/JAMES-2829
> Project: James Server
>  Issue Type: New Feature
>        Reporter: Rene Cordier
>Priority: Major
> Fix For: 3.4.0
>
>
> We should add a delete method in the BlobStore API, contract tests and 
> related implementations:
> {code:java}
> public interface BlobStore {
> Publisher delete(BucketName, BlobId);
> }
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

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



[jira] [Resolved] (JAMES-2829) Implementation of delete in BlobStore

2019-07-26 Thread Rene Cordier (JIRA)


 [ 
https://issues.apache.org/jira/browse/JAMES-2829?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Rene Cordier resolved JAMES-2829.
-
Resolution: Done

Both merged.

> Implementation of delete in BlobStore
> -
>
> Key: JAMES-2829
> URL: https://issues.apache.org/jira/browse/JAMES-2829
> Project: James Server
>  Issue Type: New Feature
>        Reporter: Rene Cordier
>Priority: Major
> Fix For: 3.4.0
>
>
> We should add a delete method in the BlobStore API, contract tests and 
> related implementations:
> {code:java}
> public interface BlobStore {
> Publisher delete(BucketName, BlobId);
> }
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

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



[jira] [Commented] (JAMES-2837) [New Vault] MetricableBlobStore missing grafana boards

2019-07-23 Thread Rene Cordier (JIRA)


[ 
https://issues.apache.org/jira/browse/JAMES-2837?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16891590#comment-16891590
 ] 

Rene Cordier commented on JAMES-2837:
-

PR with metrics for delete and deleteBucket on BlobStore: 
https://github.com/linagora/james-project/pull/2533

> [New Vault] MetricableBlobStore missing grafana boards
> --
>
> Key: JAMES-2837
> URL: https://issues.apache.org/jira/browse/JAMES-2837
> Project: James Server
>  Issue Type: Improvement
>Reporter: Trần Tiến Đức
>Priority: Major
>
>  
> {code:java}
> public interface BlobStore {
>Publisher deleteBucket(BucketName bucketName);
>Publisher delete(BucketName, BlobId);
> }{code}
> Two grafana boards for this two API



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

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



[jira] [Commented] (JAMES-2829) Implementation of delete in BlobStore

2019-07-15 Thread Rene Cordier (JIRA)


[ 
https://issues.apache.org/jira/browse/JAMES-2829?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16885835#comment-16885835
 ] 

Rene Cordier commented on JAMES-2829:
-

Second PR with object storage impl : 
https://github.com/linagora/james-project/pull/2525

> Implementation of delete in BlobStore
> -
>
> Key: JAMES-2829
> URL: https://issues.apache.org/jira/browse/JAMES-2829
> Project: James Server
>  Issue Type: New Feature
>        Reporter: Rene Cordier
>Priority: Major
> Fix For: 3.4.0
>
>
> We should add a delete method in the BlobStore API, contract tests and 
> related implementations:
> {code:java}
> public interface BlobStore {
> Publisher delete(BucketName, BlobId);
> }
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

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



[jira] [Commented] (JAMES-2829) Implementation of delete in BlobStore

2019-07-15 Thread Rene Cordier (JIRA)


[ 
https://issues.apache.org/jira/browse/JAMES-2829?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16885082#comment-16885082
 ] 

Rene Cordier commented on JAMES-2829:
-

First PR with memory impl and contract update : 
https://github.com/linagora/james-project/pull/2524

> Implementation of delete in BlobStore
> -
>
> Key: JAMES-2829
> URL: https://issues.apache.org/jira/browse/JAMES-2829
> Project: James Server
>  Issue Type: New Feature
>        Reporter: Rene Cordier
>Priority: Major
> Fix For: 3.4.0
>
>
> We should add a delete method in the BlobStore API, contract tests and 
> related implementations:
> {code:java}
> public interface BlobStore {
> Publisher delete(BucketName, BlobId);
> }
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

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



[jira] [Created] (JAMES-2829) Implementation of delete in BlobStore

2019-07-14 Thread Rene Cordier (JIRA)
Rene Cordier created JAMES-2829:
---

 Summary: Implementation of delete in BlobStore
 Key: JAMES-2829
 URL: https://issues.apache.org/jira/browse/JAMES-2829
 Project: James Server
  Issue Type: New Feature
Reporter: Rene Cordier
 Fix For: 3.4.0


We should add a delete method in the BlobStore API, contract tests and related 
implementations:
{code:java}
public interface BlobStore {
Publisher delete(BucketName, BlobId);
}
{code}



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

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



  1   2   3   >