james-project
james-project copied to clipboard
JAMES-3260 Gradle as a build system
This is a work in progress PR to explore Gradle build system for James.
- Configured maven build scans https://scans.gradle.com/#maven
mvn install -DskipTests
-> https://scans.gradle.com/s/vmmyekhurnmme
First build scan with mvn install
failed https://scans.gradle.com/s/sjbnibmspsohu .
cc @chibenwa , @rouazana , @Arsnael : I can't add you as reviewers so I am cc'ing you here. You can disable notifications if you are not interested.
mvn clean install
has gone further but stil failed https://gradle.com/s/xwhrgkh4vk3uu
Total time: 02:14 h
[INFO] Results:
[INFO]
[ERROR] Errors:
[ERROR] AmqpForwardAttachmentTest.stripAttachmentShouldPutAttachmentsInMailAttributeWhenConfiguredForIt » ConditionTimeout
[ERROR] ContactExtractorTest.recipientsShouldBePublishedToAmqpWhenSendingEmail » ConditionTimeout
[INFO]
[ERROR] Tests run: 223, Failures: 0, Errors: 2, Skipped: 1
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for Apache James Project 3.6.0-SNAPSHOT:
[INFO]
[INFO] Apache James Project ............................... SUCCESS [ 3.441 s]
[INFO] Apache James :: Testing :: Base .................... SUCCESS [ 1.776 s]
[INFO] Apache James :: Server ............................. SUCCESS [ 0.280 s]
[INFO] Apache James :: Server :: Common Utilities ......... SUCCESS [ 17.115 s]
[INFO] Apache James :: Core Domain Objects ................ SUCCESS [ 5.385 s]
[INFO] Apache James :: Server :: Task :: API .............. SUCCESS [ 8.309 s]
[INFO] Apache James :: Json serialization ................. SUCCESS [ 3.200 s]
[INFO] Apache James :: Server :: Task :: Json ............. SUCCESS [ 2.933 s]
[INFO] Apache James :: Event Sourcing ..................... SUCCESS [ 0.159 s]
[INFO] Apache James :: Event sourcing :: pojo ............. SUCCESS [ 8.208 s]
[INFO] Apache James :: Event Sourcing :: Event Store :: API SUCCESS [ 8.362 s]
[INFO] Apache James :: Event sourcing :: core ............. SUCCESS [ 9.535 s]
[INFO] Apache James :: Event sourcing :: Event Store :: Memory SUCCESS [ 7.340 s]
[INFO] Apache James :: Server :: Lifecycle API ............ SUCCESS [ 2.127 s]
[INFO] Apache James :: Server :: Task :: Memory implementation SUCCESS [ 51.231 s]
[INFO] Apache JAMES backends common ....................... SUCCESS [ 0.196 s]
[INFO] Apache James Cassandra backend ..................... SUCCESS [01:33 min]
[INFO] Apache James :: Metrics ............................ SUCCESS [ 0.143 s]
[INFO] Apache James :: Metrics :: API ..................... SUCCESS [ 0.853 s]
[INFO] Apache James :: Metrics :: Tests ................... SUCCESS [ 10.513 s]
[INFO] Apache James :: Mailbox ............................ SUCCESS [ 0.116 s]
[INFO] Apache James :: Mailbox :: API ..................... SUCCESS [ 17.640 s]
[INFO] Apache James :: Mailets parent and aggregator ...... SUCCESS [ 0.625 s]
[INFO] Apache James :: Mailet API ......................... SUCCESS [ 4.062 s]
[INFO] Apache James :: Test helpers for Mailet ............ SUCCESS [ 4.197 s]
[INFO] Apache James :: Server :: Testing .................. SUCCESS [ 3.346 s]
[INFO] apache-james-backends-es ........................... SUCCESS [02:50 min]
[INFO] apache-james-backends-jpa .......................... SUCCESS [ 0.899 s]
[INFO] Apache James RabbitMQ backend ...................... SUCCESS [03:16 min]
[INFO] Apache James :: Event sourcing :: Event Store :: Cassandra SUCCESS [ 38.651 s]
[INFO] Apache James :: Mailbox :: Event :: In VM implementation SUCCESS [01:41 min]
[INFO] Apache James :: Java Mail Extension ................ SUCCESS [ 0.593 s]
[INFO] Apache James :: MDN ................................ SUCCESS [ 21.481 s]
[INFO] Apache James :: Mailbox :: Store Framework ......... SUCCESS [ 15.356 s]
[INFO] Apache James :: Mailetdocs Maven Plugin ............ SUCCESS [ 9.468 s]
[INFO] Apache James :: Basic Mailet Toolkit ............... SUCCESS [ 4.395 s]
[INFO] Apache James :: Server :: Filesystem API ........... SUCCESS [ 1.567 s]
[INFO] Apache James :: Server :: Core ..................... SUCCESS [ 12.057 s]
[INFO] Apache James :: Server :: MailRepository :: API .... SUCCESS [ 3.145 s]
[INFO] Apache James :: Server :: Data :: API ............. SUCCESS [ 5.064 s]
[INFO] Apache James :: Mailbox :: Tools :: Quota recompute SUCCESS [ 3.641 s]
[INFO] Apache James :: Server :: DNS Service :: API ....... SUCCESS [ 0.661 s]
[INFO] Apache James :: Server :: DNS Service :: Test ...... SUCCESS [ 0.776 s]
[INFO] Apache James :: Server :: Data :: Library .......... SUCCESS [ 4.847 s]
[INFO] Apache James :: Server :: MailRepository :: Memory . SUCCESS [ 1.663 s]
[INFO] Apache James :: Server :: Data :: MEMORY .......... SUCCESS [ 5.535 s]
[INFO] Apache James :: Mailbox :: In Memory ............... SUCCESS [ 21.332 s]
[INFO] Apache James :: Examples ........................... SUCCESS [ 0.090 s]
[INFO] custom-listeners ................................... SUCCESS [ 5.448 s]
[INFO] custom-mailets ..................................... SUCCESS [ 1.056 s]
[INFO] Apache James :: Mailbox :: Backup .................. SUCCESS [ 8.750 s]
[INFO] Apache James :: Server :: Blob ..................... SUCCESS [ 0.123 s]
[INFO] Apache James :: Server :: Blob :: API .............. SUCCESS [ 3.236 s]
[INFO] Apache James :: Server :: Blob :: Cassandra ........ SUCCESS [03:48 min]
[INFO] Apache James :: Server :: Data :: Cassandra Persistence SUCCESS [03:20 min]
[INFO] Apache James :: Mailbox :: Cassandra ............... SUCCESS [05:35 min]
[INFO] Apache James :: Mailbox :: Tika .................... SUCCESS [ 9.498 s]
[INFO] Apache James :: Mailbox :: ElasticSearch ........... SUCCESS [03:00 min]
[INFO] Apache James :: Mailbox :: Event :: JSON ........... SUCCESS [ 22.172 s]
[INFO] Apache James :: Mailbox :: Event :: In Cassandra implementation SUCCESS [ 38.236 s]
[INFO] Apache James :: Mailbox :: Event :: RabbitMQ implementation SUCCESS [22:06 min]
[INFO] Apache James :: Server :: Data :: JPA Persistence .. SUCCESS [ 10.230 s]
[INFO] Apache James :: Mailbox :: JPA ..................... SUCCESS [ 30.110 s]
[INFO] Apache James :: Mailbox :: Lucene Index ............ SUCCESS [ 13.880 s]
[INFO] Apache James :: Mailbox :: Maildir ................. SUCCESS [ 7.417 s]
[INFO] Apache James :: Server :: Blob :: Memory ........... SUCCESS [ 10.253 s]
[INFO] Apache James :: Mailbox :: Plugin :: Deleted Messages Vault SUCCESS [ 8.034 s]
[INFO] Apache James :: Mailbox :: Plugin :: Deleted Messages Vault :: Cassandra SUCCESS [ 32.346 s]
[INFO] Apache James :: Mailbox :: Plugin :: Quota Mailing . SUCCESS [ 4.531 s]
[INFO] Apache James :: Mailbox :: Plugin :: Quota Mailing :: Cassandra SUCCESS [ 29.506 s]
[INFO] Apache James :: Mailbox :: Plugin :: Quota Mailing :: Memory SUCCESS [ 3.019 s]
[INFO] Apache James :: Mailbox :: Plugin :: Quota Search :: API SUCCESS [ 2.966 s]
[INFO] Apache James :: Mailbox :: Plugin :: Quota Search :: ElasticSearch SUCCESS [ 24.075 s]
[INFO] Apache James :: Mailbox :: Plugin :: Quota Search :: Scanning SUCCESS [ 3.208 s]
[INFO] Apache JAMES third party ........................... SUCCESS [ 0.069 s]
[INFO] Apache James :: Third Party :: SpamAssassin ........ SUCCESS [ 48.519 s]
[INFO] Apache James :: Mailbox :: Plugin :: SpamAssassin .. SUCCESS [ 3.336 s]
[INFO] Apache James :: Mailbox :: Scanning ................ SUCCESS [ 6.508 s]
[INFO] Apache James :: Mailbox :: Tools :: Copier ......... SUCCESS [ 6.044 s]
[INFO] Apache James :: Mailbox :: Tools :: Indexer ........ SUCCESS [01:29 min]
[INFO] Apache James :: Mailbox :: Spring .................. SUCCESS [ 4.973 s]
[INFO] Apache James :: Mailbox :: Tools :: JPA migrator ... SUCCESS [ 1.633 s]
[INFO] Apache James :: AI Mailets ......................... SUCCESS [ 1.380 s]
[INFO] Apache James :: Crypto Mailets ..................... SUCCESS [ 6.648 s]
[INFO] Apache James :: ICalendar Mailets .................. SUCCESS [ 3.814 s]
[INFO] Apache James :: Standard Mailets ................... SUCCESS [ 18.788 s]
[INFO] Apache James :: Metrics :: Dropwizard .............. SUCCESS [ 5.368 s]
[INFO] Apache James :: Metrics :: Logger .................. SUCCESS [ 2.412 s]
[INFO] Apache James MPT ................................... SUCCESS [ 0.061 s]
[INFO] Apache James MPT All ............................... SUCCESS [ 1.006 s]
[INFO] Apache James MPT Core .............................. SUCCESS [ 7.211 s]
[INFO] Apache James MPT Application ....................... SUCCESS [ 40.271 s]
[INFO] Apache James :: Server :: Mailbox Adapter .......... SUCCESS [ 2.125 s]
[INFO] Apache James :: Protocols .......................... SUCCESS [ 0.071 s]
[INFO] Apache James :: Protocols :: API ................... SUCCESS [ 2.255 s]
[INFO] Apache James :: Protocols :: IMAP .................. SUCCESS [ 15.269 s]
[INFO] Apache James MPT Imap Mailbox ...................... SUCCESS [ 0.082 s]
[INFO] Apache James MPT Imap Mailbox Core ................. SUCCESS [ 1.077 s]
[INFO] Apache James MPT Imap Mailbox - Cassandra .......... SUCCESS [05:05 min]
[INFO] Apache James MPT Imap Mailbox - Cyrus .............. SUCCESS [ 1.127 s]
[INFO] Apache James MPT Imap Mailbox - ElasticSearch ...... SUCCESS [ 22.240 s]
[INFO] Apache James MPT Imap Mailbox - External James ..... SUCCESS [ 0.791 s]
[INFO] Apache James MPT Imap Mailbox - InMemory ........... SUCCESS [ 13.792 s]
[INFO] Apache James MPT Imap Mailbox - JPA ................ SUCCESS [ 54.990 s]
[INFO] Apache James MPT Imap Mailbox - LuceneSearch ....... SUCCESS [ 15.140 s]
[INFO] Apache James MPT Imap Mailbox - Maildir ............ SUCCESS [ 14.217 s]
[INFO] Apache James MPT Imap Mailbox - RabbitMQ EventBus .. SUCCESS [ 46.693 s]
[INFO] Apache James :: Protocols :: ManageSieve ........... SUCCESS [ 1.953 s]
[INFO] Apache James MPT ManageSieve ....................... SUCCESS [ 0.081 s]
[INFO] Apache James MPT ManageSieve Core .................. SUCCESS [ 0.769 s]
[INFO] Apache James MPT ManageSieve Cassandra ............. SUCCESS [ 33.728 s]
[INFO] Apache James :: Server :: Data :: File Persistence . SUCCESS [ 21.165 s]
[INFO] Apache James MPT ManageSieve File .................. SUCCESS [ 2.501 s]
[INFO] Apache James :: Server :: DNS Service :: Implementation SUCCESS [ 2.749 s]
[INFO] Apache James :: Server :: Guice .................... SUCCESS [ 0.064 s]
[INFO] Apache James :: Server :: Guice :: Configuration ... SUCCESS [ 2.349 s]
[INFO] james-server-guice-utils ........................... SUCCESS [ 2.399 s]
[INFO] Apache James :: Server :: Guice :: Mailbox ......... SUCCESS [ 3.742 s]
[INFO] Apache James :: Protocols :: Netty Implementation .. SUCCESS [ 2.228 s]
[INFO] Apache James :: Server :: Protocols Library ........ SUCCESS [ 0.864 s]
[INFO] Apache James :: Server :: IMAP ..................... SUCCESS [ 2.775 s]
[INFO] Apache James :: Server :: Guice :: Imap ............ SUCCESS [ 0.772 s]
[INFO] Apache James :: Server :: DNS Service :: Library ... SUCCESS [ 2.197 s]
[INFO] Apache James :: Server :: Mail Queue :: API ........ SUCCESS [ 2.362 s]
[INFO] Apache James :: Server :: Mail Queue :: Memory ..... SUCCESS [ 14.512 s]
[INFO] Apache James :: Protocols :: SMTP .................. SUCCESS [ 10.619 s]
[INFO] Apache James :: Server :: SMTP ..................... SUCCESS [ 15.841 s]
[INFO] Apache James :: Protocols :: LMTP .................. SUCCESS [ 5.847 s]
[INFO] Apache James :: Server :: LMTP ..................... SUCCESS [ 0.859 s]
[INFO] Apache James :: Server :: Guice :: Lmtp ............ SUCCESS [ 0.815 s]
[INFO] Apache James :: Server :: Mailet :: DKIM ........... SUCCESS [ 3.040 s]
[INFO] Apache James :: Server :: Mailetcontainer API ...... SUCCESS [ 0.691 s]
[INFO] Apache James :: Server :: Mailetcontainer Camel .... SUCCESS [ 6.467 s]
[INFO] Apache James :: Server :: Guice :: Mailet .......... SUCCESS [ 7.119 s]
[INFO] Apache James :: Server :: Guice :: Netty ........... SUCCESS [ 0.589 s]
[INFO] Apache James :: Protocols :: POP3 .................. SUCCESS [ 4.134 s]
[INFO] Apache James :: Server :: POP3 ..................... SUCCESS [ 6.899 s]
[INFO] Apache James :: Server :: Guice :: Pop ............. SUCCESS [ 0.708 s]
[INFO] Apache James :: Server :: Guice :: Smtp ............ SUCCESS [ 0.818 s]
[INFO] Apache James :: Server :: Onami .................... SUCCESS [ 1.855 s]
[INFO] Apache James :: Server :: Guice Common ............. SUCCESS [ 5.162 s]
[INFO] Apache James MPT SMTP .............................. SUCCESS [ 0.079 s]
[INFO] Apache James MPT SMTP Core ......................... SUCCESS [ 1.196 s]
[INFO] Apache James :: Server :: JWT ...................... SUCCESS [ 2.399 s]
[INFO] Apache James :: Server :: Web Admin :: Core ........ SUCCESS [ 11.687 s]
[INFO] Apache James :: Server :: Blob :: Export :: API .... SUCCESS [ 1.968 s]
[INFO] Apache James :: Server :: Web Admin :: Mailbox :: Deleted Message Vault SUCCESS [ 15.990 s]
[INFO] Apache James :: Server :: Guice :: Mailbox :: Plugin :: Deleted messages vault SUCCESS [ 1.925 s]
[INFO] Apache James :: Server :: Blob Store API - guice injection SUCCESS [ 0.516 s]
[INFO] Apache James :: Third Party :: LinShare ............ SUCCESS [01:23 min]
[INFO] Apache James :: Server :: Blob :: Export :: File implementation SUCCESS [ 3.134 s]
[INFO] Apache James :: Server :: Blob Exporting Mechanisms - guice injection SUCCESS [ 2.906 s]
[INFO] Apache James :: Server :: Data :: JMAP ............. SUCCESS [ 7.001 s]
[INFO] Apache James :: Server :: Data :: JMAP :: Cassandra persistance SUCCESS [ 47.686 s]
[INFO] Apache James :: Server :: Mail Queue :: JMS ........ SUCCESS [ 58.478 s]
[INFO] Apache James :: Server :: Mail Queue :: ActiveMQ ... SUCCESS [01:49 min]
[INFO] Apache James :: Server :: Guice :: ActiveMQ ........ SUCCESS [ 0.913 s]
[INFO] Apache James :: Server :: Metrics ElasticSearch Reporter SUCCESS [ 34.848 s]
[INFO] Apache James :: Server :: Guice :: ES metric reporter SUCCESS [ 0.767 s]
[INFO] james-server-jmap .................................. SUCCESS [ 5.033 s]
[INFO] Apache James :: Server :: JMAP (Draft) ............. SUCCESS [ 27.765 s]
[INFO] Apache James :: Server :: JMAP RFC 8621 ............ SUCCESS [01:00 min]
[INFO] Apache James :: Server :: Guice :: JMAP ............ SUCCESS [ 3.715 s]
[INFO] Apache James :: Server :: Mailbox :: JMX ........... SUCCESS [ 4.249 s]
[INFO] Apache James :: Server :: Guice :: JMX ............. SUCCESS [ 2.713 s]
[INFO] Apache James :: Server :: Guice :: Mailbox :: Plugin :: SpamAssassin SUCCESS [ 1.858 s]
[INFO] Apache James :: Server :: ManageSieve .............. SUCCESS [ 0.709 s]
[INFO] Apache James :: Server :: Guice :: Managedsieve .... SUCCESS [ 0.758 s]
[INFO] Apache James :: Server :: Blob :: Common ........... SUCCESS [ 0.528 s]
[INFO] Apache James :: Server :: Blob :: Mail store ....... SUCCESS [ 3.090 s]
[INFO] Apache James :: Server :: Mail Queue :: RabbitMQ ... SUCCESS [07:16 min]
[INFO] Apache James :: Server :: Guice :: RabbitMQ ........ SUCCESS [ 0.853 s]
[INFO] Apache James :: Server :: Guice :: Webadmin ........ SUCCESS [ 0.853 s]
[INFO] Apache James :: Server :: Web Admin :: data ........ SUCCESS [ 30.612 s]
[INFO] Apache James :: Server :: Guice :: Webadmin :: Data SUCCESS [ 0.783 s]
[INFO] Apache James :: Server :: Web Admin :: Cassandra ... SUCCESS [ 7.332 s]
[INFO] Apache James :: Server :: Web Admin :: Cassandra :: Data SUCCESS [ 31.463 s]
[INFO] Apache James :: Server :: Web Admin :: mailbox ..... SUCCESS [01:00 min]
[INFO] Apache James :: Server :: Web Admin :: JMAP ........ SUCCESS [ 9.675 s]
[INFO] Apache James :: Server :: Guice :: Webadmin :: JMAP SUCCESS [ 1.028 s]
[INFO] Apache James :: Server :: Guice :: Webadmin :: Mailbox SUCCESS [ 0.882 s]
[INFO] Apache James :: Server :: Web Admin :: MailQueue ... SUCCESS [ 13.029 s]
[INFO] Apache James :: Server :: Guice :: Webadmin :: MailQueue SUCCESS [ 0.753 s]
[INFO] Apache James :: Server :: Web Admin :: MailRepository SUCCESS [ 13.849 s]
[INFO] Apache James :: Server :: Guice :: Webadmin :: MailRepository SUCCESS [ 0.725 s]
[INFO] Apache James :: Server :: Web Admin :: Swagger ..... SUCCESS [ 4.275 s]
[INFO] Apache James :: Server :: Guice :: Webadmin :: Swagger SUCCESS [ 0.711 s]
[INFO] Apache James :: Server :: Mailets .................. SUCCESS [ 25.585 s]
[INFO] Apache James :: Server :: JMAP (draft) :: Integration testing SUCCESS [ 0.059 s]
[INFO] Apache James :: Server :: JMAP (draft) :: Integration testing Common SUCCESS [ 7.197 s]
[INFO] Apache James :: Server :: MailRepository :: Cassandra SUCCESS [01:50 min]
[INFO] Apache James :: Server :: Cassandra - guice injection SUCCESS [04:51 min]
[INFO] Apache James MPT SMTP Cassandra .................... SUCCESS [ 48.158 s]
[INFO] Apache James :: Server :: Blob :: Object storage ... SUCCESS [10:58 min]
[INFO] Apache James :: Server :: Blob Store in object storage - guice injection SUCCESS [ 28.457 s]
[INFO] Apache James :: Server :: Blob :: Union Blob Storage SUCCESS [ 5.287 s]
[INFO] Apache James :: Server :: Task :: Distributed ...... SUCCESS [04:35 min]
[INFO] Apache James :: Server :: Cassandra with RabbitMQ - guice injection SUCCESS [06:03 min]
[INFO] Apache James MPT SMTP Cassandra RabbitMQ Object Storage SUCCESS [ 59.890 s]
[INFO] Apache James MPT Maven2 Plugin ..................... SUCCESS [ 6.137 s]
[INFO] Apache James :: Server :: Client ................... SUCCESS [ 3.013 s]
[INFO] Apache James :: Server :: Data :: JDBC Persistence . SUCCESS [ 27.462 s]
[INFO] Apache James :: Server :: Data :: LDAP Implementation SUCCESS [ 12.492 s]
[INFO] Apache James :: Server :: FetchMail ................ SUCCESS [ 1.654 s]
[INFO] Apache James :: Server :: Mail Queue :: File ....... SUCCESS [ 2.060 s]
[INFO] Apache James :: Server :: Container Spring ......... SUCCESS [ 3.249 s]
[INFO] Apache James :: Server :: App ...................... SUCCESS [ 31.728 s]
[INFO] Apache James :: Server :: Blob :: Deduplicating Blob Storage SUCCESS [ 11.877 s]
[INFO] Apache James :: Server :: Blob Memory - guice injection SUCCESS [ 0.560 s]
[INFO] Apache James :: Server :: Guice :: Sieve :: File ... SUCCESS [ 0.786 s]
[INFO] Apache James :: Server :: Memory - guice injection . SUCCESS [01:19 min]
[INFO] Apache James :: Server :: Cli :: Integration ....... SUCCESS [ 22.453 s]
[INFO] Apache James :: Server :: Cassandra/Ldap - guice injection SUCCESS [01:14 min]
[INFO] Apache James :: Server :: Cassandra/Ldap with RabbitMQ - guice injection SUCCESS [02:22 min]
[INFO] Apache James :: Server :: JPA - guice common ....... SUCCESS [ 3.969 s]
[INFO] Apache James :: Server :: Guice :: Sieve :: JPA .... SUCCESS [ 0.923 s]
[INFO] Apache James :: Server :: JPA - guice injection .... SUCCESS [ 38.736 s]
[INFO] Apache James :: Server :: JPA + SMTP - common guice injection SUCCESS [ 1.472 s]
[INFO] Apache James :: Server :: JPA + SMTP - guice injection SUCCESS [ 8.612 s]
[INFO] Apache James :: Server :: JPA + SMTP + mariaDB client - guice injection SUCCESS [ 17.869 s]
[INFO] Apache James :: Server :: Guice :: testing ......... SUCCESS [ 0.061 s]
[INFO] Apache James :: Server :: Guice :: Mailet :: Custom testing mailets :: dependency SUCCESS [ 0.490 s]
[INFO] Apache James :: Server :: Guice :: Mailet :: Custom testing mailets SUCCESS [ 4.000 s]
[INFO] custom-mailets-implementation ...................... SUCCESS [ 0.698 s]
[INFO] Apache James :: Server :: Mailet :: Mock SMTP Server SUCCESS [ 12.676 s]
[INFO] Apache James :: Server :: Mailets Integration Testing FAILURE [04:11 min]
[INFO] Apache James :: Server :: JMAP (draft) :: Cassandra Integration testing SKIPPED
[INFO] Apache James :: Server :: JMAP (draft) :: Memory Integration testing SKIPPED
[INFO] Apache James :: Server :: JMAP (draft) :: RabbitMQ + Object Store + Cassandra Integration testing SKIPPED
[INFO] Apache James :: Server :: JMAP RFC-8621 :: Integration Testing SKIPPED
[INFO] Apache James :: Server :: JMAP RFC-8621 :: Contract for Integration Testing SKIPPED
[INFO] Apache James :: Server :: JMAP RFC-8621 :: Distributed Integration Testing SKIPPED
[INFO] Apache James :: Server :: JMAP RFC-8621 :: Memory Integration Testing SKIPPED
[INFO] Apache James :: Server :: Web Admin ................ SKIPPED
[INFO] Apache James :: Server :: Web Admin server integration tests SKIPPED
[INFO] Apache James :: Server :: Web Admin server integration tests :: Common SKIPPED
[INFO] Apache James :: Server :: Web Admin server integration tests :: Distributed SKIPPED
[INFO] Apache James :: Server :: Web Admin server integration tests :: Memory SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 02:14 h
[INFO] Finished at: 2020-06-20T06:41:18+03:00
[INFO] ------------------------------------------------------------------------
[INFO] 5184 goals, 5184 executed
[INFO]
[INFO] Publishing build scan...
[INFO] https://gradle.com/s/xwhrgkh4vk3uu
[INFO]
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test (default-test) on project james-server-mailets-integration-testing: There are test failures.
[ERROR]
[ERROR] Please refer to /home/ieugen/proiecte/james/james-project/server/mailet/integration-testing/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 <args> -rf :james-server-mailets-integration-testing
Initial scan with gradle gradle build --scan
-> https://scans.gradle.com/s/fmmh2pm7dy3os
Latest ./gradlew clean build --scan
: 39 min -> https://scans.gradle.com/s/7t7xhr4lkshb2
Hi @ieugen
Firstly thanks a lot for this work, I don't know much about gradle yet but it looks like it could speed up our build time, and maybe make it more stable too, so I'm feeling quite excited about it.
Second, well I'm trying to check a bit and try your build. I was just wondering, maybe we should in a first step try to be able to build the project without running the tests? Which would maybe help having a base working gradle build without spending too much time between run builds. Then we could make it work with all test suites in a second step?
Like for example with what would be the equivalent of a mvn clean install -DskipTests
So I tried this: ./gradlew clean build -x test --scan
(it seems the option -x test
skips the tests)
It took 7mins > https://scans.gradle.com/s/wvjcva227grqe
It's ok for now as it's not the focus of the work too but we have for practice to order dependencies alphabetically per section. We should maybe try to do something similar with Gradle?
Played a bit with it to familiarize myself and got the compilation of james-server:james-server-data-jmap
working, if you are interested: https://github.com/arsnael/james-project/commit/4db205b8396cb7ab2ad856ac920f5d2df558766e
I didn't make a fixup! as you seemed interested of making the tests work (compileTestJava
) but use it, squash it or in any way fitting you if you feel you need it.
=> https://scans.gradle.com/s/jznjvqhpggbq6
We might want to use this when we get a stable build too: https://docs.gradle.org/current/userguide/migrating_from_maven.html#migmvn:using_boms , or deps management is gonna be hell. I guess you know it and it's not the focus now, but just to keep in mind :)
Well I might be able to spend some more time on it this week if you want, so let me know how I can help you without us stepping on each other's foot ;)
Thank you for your feedback :). It's valuable and yes, the current focus is just to make it build. I tried to order things by section first, alphabetically - was too much at this time. I do think we can merge a lot of the existing components so I did not spend too much time on this. It seems the modules are built around the technology and we get 3-4 artifacts with name like, e.g. -protocols-smtp- . I'm sure there are reasons for doing so but it's very confusing when dealing with them: which one should I use ?
It makes sense to have the build without tests first. Right now the PR it's not ready for contributions since it's in chaos, but once it will build, I will slow down and it will be open for contributions.
We will need a developer guide so please post a list of the questions / tasks you do when building with maven so we can translate that to gradle and also, try them out.
It seems the modules are built around the technology and we get 3-4 artifacts with name like, e.g. -protocols-smtp- . I'm sure there are reasons for doing so but it's very confusing when dealing with them: which one should I use ?
On the example you take:
- You have the protocol library
- It's adaptation to the James server
- Integration tests (mpt)
- guice bindings
Does it clarifies the split? How would you simplify this?
Right now the PR it's not ready for contributions since it's in chaos
:-)
We will need a developer guide so please post a list of the questions / tasks you do when building with maven so we can translate that to gradle and also, try them out.
Well if I'm wrong others can correct me or help complete this, but when we buildon the CI with Maven I believe it's something like this:
-
mvn package -DskipTests -T 1C
-> compilation of the project without the test suite at first. There is different plugins in the root pom being used to enforce some things with the compilation, like themaven-checkstyle-plugin
enforcing those coding rules https://github.com/apache/james-project/blob/master/checkstyle.xml. We will need to check the equivalent of some of those plugins with Gradle. It seems the option--parallel
in Gradle can replace-T 1C
in Maven, from what I tested. -
mvn package -T 1C
=> full compilation with tests. Using some plugins like surefire to parallelize the tests. Is it doing it natively with gradle? It looks fast already anyway to me with the little I tested
Might be more, but I think that's the two main maven command ones being used
@ieugen
Regarding playing tests there's a few tricks you need to be aware of to fasten the docker tests.
In order to fasten things up:
-
We configured surefire to reuse forks. This prevents testContainer initialization on each test class, and allow docker container reuse for an entire maven module.
-
We configured surefire for parrallel test execution within a single module. It allows ie to go down to 4 min for testing mailbox/cassandra instead of 25+ minutes without parallelism.
We will need a developer guide so please post a list of the questions / tasks you do when building with maven so we can translate that to gradle and also, try them out.
:+1:
Regarding what's available on this topic:
- Building the website https://github.com/apache/james-project#how-to-build-and-publish-the-website
- Release https://github.com/apache/james-project#how-to-release-via-maven-release-plugin (misses commands details)
We have compilation without tests.
Time on my machine: 2m36s
./gradlew clean build -x test --scan
-> https://gradle.com/s/r2j7vzecltalo .
I will add some sub-task to track the required gradle migration steps. Please feel free to add steps if you think they are missing. Also, I would love some help on the docker migration, checkstyle, etc.
@chibenwa, @Arsnael : Parallel builds is an optimization IMO and not in the current goal.
If it's done in maven we can do it in gradle, but for now let's focus on getting this merged so we don't have two build systems.
but for now let's focus on getting this merged so we don't have two build systems.
Should we set an acceptance criteria?
In my opinion, we should:
- Be able to run tests with the new build system in less than 4h (we can iterate from that value)
- Be able to build docker images from the gradle build output (so that we can run deployment tests against it)
@chibenwa : I agree. I have created a task and assigned it do you :D . Of course you don't have to do it but I think you are the best person to do it https://issues.apache.org/jira/browse/JAMES-3273 . We should satisfy Linagora's current build process so the transition will be smooth.
@Arsnael : Would you like to handle https://issues.apache.org/jira/browse/JAMES-3271 ? There are some suggestions there. Regarding code formatting, I've used the gradle google-code-format plugin and formatted + verified the code as part of the build. Spotless plugin seems to have integration with that.
@Arsnael : Would you like to handle https://issues.apache.org/jira/browse/JAMES-3271 ?
I can try to give it a shot yes !
@chibenwa : Pleas assess the impact of the Gradle migration inside Linagora and ask people to test the build. We need to discover if there are any blockers and what those blockers are otherwise we will not be able to make the merge.
I'm currently collecting feedbacks :-)
All green for me :
./gradlew clean build -x test --scan
->https://scans.gradle.com/s/xvchoumy2msda
@ieugen I did my homeworks.
We came up with:
- tests runs, within ~4hours
- Today behaviour of
dockerfiles/compilation/java-11
image is unaltered
(I filled https://issues.apache.org/jira/browse/JAMES-3273)
Some context:
The project has a lots of inter dependencies, especially on the tests side.
The modules depend on a lot of tests
artifacts which creates some classpath issues for integration tests.
I had to disable some tests with enabled = false
to complete the build - please help out with those (use search to find them ).
This is a rough migration, things can be improved once we adopt gradle as the build system.
Tests can probably be improved to run in parallel.
I will take a break from this a bit, please issue PR's for this PR with fixes.
Disabled tests: git grep 'enabled = false'
mpt/impl/imap-mailbox/cyrus/build.gradle: enabled = false
mpt/impl/imap-mailbox/external-james/build.gradle: enabled = false
mpt/impl/smtp/cassandra-rabbitmq-object-storage/build.gradle: enabled = false
mpt/mavenplugin/build.gradle: enabled = false
server/container/cli-integration/build.gradle: enabled = false
server/container/core/build.gradle: enabled = false
server/container/guice/blob-objectstorage-guice/build.gradle: enabled = false
server/container/guice/cassandra-rabbitmq-guice/build.gradle: enabled = false
server/container/guice/cassandra-rabbitmq-ldap-guice/build.gradle: enabled = false
server/container/guice/jpa-guice/build.gradle: enabled = false
server/container/guice/memory-guice/build.gradle: enabled = false
server/mailet/integration-testing/build.gradle: enabled = false
server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/FetchScheduler.java: private volatile boolean enabled = false;
server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/build.gradle: enabled = false
server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/build.gradle: enabled = false
server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/build.gradle: enabled = false
server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/build.gradle: enabled = false
server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/build.gradle: enabled = false
server/protocols/webadmin-integration-test/memory-webadmin-integration-test/build.gradle: enabled = false
server/protocols/webadmin/webadmin-mailbox/build.gradle: enabled = false
Hi @ieugen
Unfortunately, I can't succeed running the build with tests. I ran it three times, and every time it fails on the same test in apache-james-mailbox:apache-james-mailbox-cassandra
module :
CassandraSubscriptionManagerTest > user1ShouldBeAbleToSubscribeTwoMailbox() FAILED
I ran this command : ./gradlew clean build --scan
> https://scans.gradle.com/s/kmifqf6h673fm/console-log?anchor=644
I might try to take a look if I have time. However if other people could try run it so we can have more input, it would be great too :)
Strange. The tests pass on my machine. It may be environment related. Can you please check the reason they failed? Also what is your git commit? Mine is
commit 55c719054e8fa8bb7b90daf07c757a0c8de8a534 (HEAD -> JAMES-3260-gradle-poc, origin/JAMES-3260-gradle-poc, apache/JAMES-3260-gradle-poc)
Author: Eugen Stan <[email protected]>
Date: Fri Jun 26 00:15:18 2020 +0300
JAMES-3260 Some more build fixes
I've ran the build again an also a fail but after 43 min. It failed because the build is not reproducible: it creates a var/ directory for local derby data and it does not clean it between builds.
Task :apache-james-mailbox:apache-james-mailbox-spring:test FAILED
BUILD FAILED in 43m 36s
511 actionable tasks: 511 executed
I pushed some fixes for spring-mailbox tests - moved var inside build so it gets cleaned. Moved database properties file from main classpath to tests classpath. Configuration should be supplied at deployment.
I did pull to your latest commit so commit was the same as you. Error:
CassandraSubscriptionManagerTest > user1ShouldBeAbleToSubscribeTwoMailbox() FAILED
com.datastax.driver.core.exceptions.DriverInternalError at DriverThrowables.java:36
Caused by: java.lang.IllegalStateException at SessionManager.java:693
Execution failed for task ':apache-james-mailbox:apache-james-mailbox-cassandra:test'.
BUILD FAILED in 10m 58s
355 actionable tasks: 355 executed
Good, but look for the html report: The line that looks like bellow. It contains details about all the tests.
* What went wrong:
Execution failed for task ':apache-james-mailbox:apache-james-mailbox-spring:test'.
> There were failing tests. See the report at: file:///home/ieugen/proiecte/james/james-project/mailbox/spring/build/reports/tests/test/index.html