Proposal about James modules merge

2015-08-24 Thread Matthieu Baechler

Hi all,

For some months, Antoine Duprat, Benoit Tellier and myself are working 
daily on James 3.


We tried hard to make our development workflow as simple as possible.

One thing that's very annoying right now is that James is composed of 
several git repositories.


We tried to use git submodule to aggregate all James modules into a 
parent project. You can see it by yourself here :

https://github.com/linagora/james-parent

Everything would be ok if James were mature enough to make changes in a 
single repository for most fixes and improvements.


Our experience is that we almost always change several repositories for 
a task : adding a test to MPT tests often leads to some fixes in other 
modules, adding an implementation for an interface requires some spring 
configuration in the main repository, even a maven dependency in a given 
repository often breaks other modules when putting everything together.


With the current layout, our workflow contains some tricky tasks :

 x to create a global branch, we create a branch for every 
repository, a branch for james-parent, then we have to commit everything 
for james-parent to point to the right version of submodules.


 x for every single commit, we need to commit james-parent too in order 
to follow submodule revision


 x We need several Pull-Requests for a single task, that makes it hard 
to reason about changes and it must be applied in the right order


 x Branch merging is painful too


While discussing in JIRA 
(https://issues.apache.org/jira/browse/JAMES-1588), Eric asked me to 
come with a proposal about merging some James repositories together and 
ask for feedback about Pros and Cons.


To start, here is the repositories needed to build James :

jdkim
jsieve
jspf
mime4j
james-project
james
mailbox
mailet
mpt
protocols

The first four are specialized modules and don't need to change with 
James development IMO, so they can live in their own git repository.


The other 6 (7 if you count the JIRA-1588 proposed backends 
repository) are very tied together and could be merged into a single git 
repository with the following tree :


james-project
| james
| mailbox
| mailet
| mpt
| protocols
| backends

We should then make it clear on the website what is a library (jdkim, 
jsieve, jspf, mime4j) dependency and what is a server module 
(everything else).


Here is my opinions about this new organization :

Pro :

+ Faster dev for cross-module developments
+ Merge integration testing (MPT) to the main repository
+ Less build ordering issues when merging changes in two modules
+ Easier Getting Start (git clone, mvn compile)
+ Easier Tagging/Release

Con :

- Slower mvn package
- Every modules have to evolve accordingly to prevent build failure

Feel free to add your opinion to this proposal.

--
Matthieu Baechler

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



svn commit: r1697450 - /james/mpt/trunk/impl/imap-mailbox/cassandra/pom.xml

2015-08-24 Thread btellier
Author: btellier
Date: Mon Aug 24 16:25:42 2015
New Revision: 1697450

URL: http://svn.apache.org/r1697450
Log:
MPT-21 Cassandra module should be disable when Java version lesser than 8 - 
contributed by Antoine Duprat

Modified:
james/mpt/trunk/impl/imap-mailbox/cassandra/pom.xml

Modified: james/mpt/trunk/impl/imap-mailbox/cassandra/pom.xml
URL: 
http://svn.apache.org/viewvc/james/mpt/trunk/impl/imap-mailbox/cassandra/pom.xml?rev=1697450r1=1697449r2=1697450view=diff
==
--- james/mpt/trunk/impl/imap-mailbox/cassandra/pom.xml (original)
+++ james/mpt/trunk/impl/imap-mailbox/cassandra/pom.xml Mon Aug 24 16:25:42 2015
@@ -54,5 +54,167 @@
 scopetest/scope
 /dependency
 /dependencies
+
+profiles
+profile
+idnoTest/id
+activation
+os
+familywindows/family
+/os
+/activation
+build
+plugins
+plugin
+groupIdorg.apache.maven.plugins/groupId
+artifactIdmaven-surefire-plugin/artifactId
+configuration
+skipTeststrue/skipTests
+/configuration
+/plugin
+/plugins
+/build
+/profile
+profile
+iddisable-build-for-older-jdk/id
+activation
+jdk(,1.8)/jdk
+/activation
+build
+plugins
+plugin
+artifactIdmaven-jar-plugin/artifactId
+executions
+execution
+iddefault-jar/id
+phasenone/phase
+/execution
+execution
+idjar/id
+phasenone/phase
+/execution
+execution
+idtest-jar/id
+phasenone/phase
+/execution
+/executions
+/plugin
+plugin
+artifactIdmaven-compiler-plugin/artifactId
+executions
+execution
+iddefault-compile/id
+phasenone/phase
+/execution
+execution
+iddefault-testCompile/id
+phasenone/phase
+/execution
+/executions
+/plugin
+plugin
+artifactIdmaven-surefire-plugin/artifactId
+executions
+execution
+iddefault-test/id
+phasenone/phase
+/execution
+/executions
+/plugin
+plugin
+artifactIdmaven-source-plugin/artifactId
+executions
+execution
+idattach-sources/id
+phasenone/phase
+/execution
+/executions
+/plugin
+plugin
+artifactIdmaven-install-plugin/artifactId
+executions
+execution
+iddefault-install/id
+phasenone/phase
+/execution
+/executions
+/plugin
+plugin
+artifactIdmaven-resources-plugin/artifactId
+executions
+execution
+iddefault-resources/id
+phasenone/phase
+/execution
+execution
+iddefault-testResources/id
+phasenone/phase
+/execution
+/executions
+/plugin
+plugin
+artifactIdmaven-site-plugin/artifactId
+executions
+execution
+idattach-descriptor/id
+phasenone/phase
+/execution
+/executions
+/plugin
+/plugins
+

svn commit: r1697452 - in /james/mpt/trunk: app/dependency-reduced-pom.xml app/pom.xml core/pom.xml mavenplugin/pom.xml

2015-08-24 Thread btellier
Author: btellier
Date: Mon Aug 24 16:26:27 2015
New Revision: 1697452

URL: http://svn.apache.org/r1697452
Log:
MPT-21 Don't use Xdoclint when Java version lesser than 8 - contributed by 
Antoine Duprat

Modified:
james/mpt/trunk/app/dependency-reduced-pom.xml
james/mpt/trunk/app/pom.xml
james/mpt/trunk/core/pom.xml
james/mpt/trunk/mavenplugin/pom.xml

Modified: james/mpt/trunk/app/dependency-reduced-pom.xml
URL: 
http://svn.apache.org/viewvc/james/mpt/trunk/app/dependency-reduced-pom.xml?rev=1697452r1=1697451r2=1697452view=diff
==
--- james/mpt/trunk/app/dependency-reduced-pom.xml (original)
+++ james/mpt/trunk/app/dependency-reduced-pom.xml Mon Aug 24 16:26:27 2015
@@ -70,12 +70,24 @@ interfaces to the MPT library./descript
 /goals
   /execution
 /executions
-configuration
-  additionalparam-Xdoclint:none/additionalparam
-/configuration
   /plugin
 /plugins
   /build
+  profiles
+profile
+  iddoclint-java8-disable/id
+  build
+plugins
+  plugin
+artifactIdmaven-javadoc-plugin/artifactId
+configuration
+  additionalparam-Xdoclint:none/additionalparam
+/configuration
+  /plugin
+/plugins
+  /build
+/profile
+  /profiles
   dependencies
 dependency
   groupIdorg.apache.james/groupId

Modified: james/mpt/trunk/app/pom.xml
URL: 
http://svn.apache.org/viewvc/james/mpt/trunk/app/pom.xml?rev=1697452r1=1697451r2=1697452view=diff
==
--- james/mpt/trunk/app/pom.xml (original)
+++ james/mpt/trunk/app/pom.xml Mon Aug 24 16:26:27 2015
@@ -133,10 +133,27 @@ interfaces to the MPT library./descript
 /goals
 /execution
 /executions
-configuration
-additionalparam-Xdoclint:none/additionalparam
-/configuration
 /plugin
 /plugins
 /build
+
+profiles
+profile
+iddoclint-java8-disable/id
+activation
+jdk[1.8,)/jdk
+/activation
+build
+plugins
+plugin
+groupIdorg.apache.maven.plugins/groupId
+artifactIdmaven-javadoc-plugin/artifactId
+configuration
+additionalparam-Xdoclint:none/additionalparam
+/configuration
+/plugin
+/plugins
+/build
+/profile
+/profiles
 /project

Modified: james/mpt/trunk/core/pom.xml
URL: 
http://svn.apache.org/viewvc/james/mpt/trunk/core/pom.xml?rev=1697452r1=1697451r2=1697452view=diff
==
--- james/mpt/trunk/core/pom.xml (original)
+++ james/mpt/trunk/core/pom.xml Mon Aug 24 16:26:27 2015
@@ -154,10 +154,27 @@
 /goals
 /execution
 /executions
-configuration
-additionalparam-Xdoclint:none/additionalparam
-/configuration
 /plugin
 /plugins
 /build
+
+profiles
+   profile
+iddoclint-java8-disable/id
+activation
+jdk[1.8,)/jdk
+/activation
+build
+plugins
+plugin
+groupIdorg.apache.maven.plugins/groupId
+artifactIdmaven-javadoc-plugin/artifactId
+configuration
+additionalparam-Xdoclint:none/additionalparam
+/configuration
+/plugin
+/plugins
+/build
+/profile
+/profiles
 /project

Modified: james/mpt/trunk/mavenplugin/pom.xml
URL: 
http://svn.apache.org/viewvc/james/mpt/trunk/mavenplugin/pom.xml?rev=1697452r1=1697451r2=1697452view=diff
==
--- james/mpt/trunk/mavenplugin/pom.xml (original)
+++ james/mpt/trunk/mavenplugin/pom.xml Mon Aug 24 16:26:27 2015
@@ -133,9 +133,6 @@ to the library requiring no extra coding
 /goals
 /execution
 /executions
-configuration
-additionalparam-Xdoclint:none/additionalparam
-/configuration
 /plugin
 !--
 plugin
@@ -203,5 +200,22 @@ to the library requiring no extra coding
 /pluginManagement
 /build
 /profile
+profile
+iddoclint-java8-disable/id
+activation
+jdk[1.8,)/jdk
+/activation
+build
+ 

[jira] [Commented] (MPT-21) Fix MPT compilation with Java 6

2015-08-24 Thread Tellier Benoit (JIRA)

[ 
https://issues.apache.org/jira/browse/MPT-21?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14709565#comment-14709565
 ] 

Tellier Benoit commented on MPT-21:
---

PR merged.

Patch was contributed by Antoine Duprat.

 Fix MPT compilation with Java 6
 ---

 Key: MPT-21
 URL: https://issues.apache.org/jira/browse/MPT-21
 Project: James MPT
  Issue Type: Bug
Reporter: Antoine Duprat
  Labels: compile

 MPT compilation is broken on Java version lesser than 8
 {code}
 [INFO] 
 
 [INFO] Reactor Summary:
 [INFO] 
 [INFO] Apache James MPT .. SUCCESS [2.179s]
 [INFO] Apache James MPT Core . FAILURE [6.703s]
 [INFO] Apache James MPT AntLib ... SKIPPED
 [INFO] Apache James MPT Application .. SKIPPED
 [INFO] Apache James MPT All .. SKIPPED
 [INFO] Apache James MPT Imap Mailbox . SKIPPED
 [INFO] Apache James MPT Imap Mailbox Core  SKIPPED
 [INFO] Apache James MPT Imap Mailbox - Cassandra . SKIPPED
 [INFO] Apache James MPT Imap Mailbox - Cyrus . SKIPPED
 [INFO] Apache James MPT Imap Mailbox - ElasticSearch . SKIPPED
 [INFO] Apache James MPT Imap Mailbox - External James  SKIPPED
 [INFO] Apache James MPT Imap Mailbox - HBase . SKIPPED
 [INFO] Apache James MPT Imap Mailbox - InMemory .. SKIPPED
 [INFO] Apache James MPT Imap Mailbox - JCR ... SKIPPED
 [INFO] Apache James MPT Imap Mailbox - JPA ... SKIPPED
 [INFO] Apache James MPT Imap Mailbox - Maildir ... SKIPPED
 [INFO] Apache James MPT Maven2 Plugin  SKIPPED
 [INFO] 
 
 [INFO] BUILD FAILURE
 [INFO] 
 
 [INFO] Total time: 10.599s
 [INFO] Finished at: Mon Jul 27 11:35:43 CEST 2015
 [INFO] Final Memory: 37M/685M
 [INFO] 
 
 [ERROR] Failed to execute goal 
 org.apache.maven.plugins:maven-javadoc-plugin:2.9:javadoc (create-javadocs) 
 on project apache-james-mpt-core: An error has occurred in JavaDocs report 
 generation:
 [ERROR] Exit code: 1 - javadoc: error - invalid flag: -Xdoclint:none
 [ERROR] 
 [ERROR] Command line was: 
 /usr/lib/jvm/java-6-openjdk-amd64/jre/../bin/javadoc -J-Xmx1024m -J-Xms256m 
 @options @packages
 [ERROR] 
 [ERROR] Refer to the generated Javadoc files in 
 '/home/aduprat/open-paas/james/james-parent/modules/mpt/core/target/site/apidocs'
  dir.
 [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/MojoExecutionException
 [ERROR] 
 [ERROR] After correcting the problems, you can resume the build with the 
 command
 [ERROR]   mvn goals -rf :apache-james-mpt-core
 {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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



Re: Proposal about James modules merge

2015-08-24 Thread Ioan Eugen Stan
Hi,

Yes, the work flow is not the best with SVN. There is an option to
migrate James to git hosting and personally I think it will be a good
thing.

In order to make this a reality we have to raise a vote and raise a JIRA
issue to Apache Infra. The vote has to run for 72h.

You have my +1.

p.s. One thing to have in mind is that we need to we need to take care
of the site publishing also. But it's doable.

Regards,



signature.asc
Description: OpenPGP digital signature