Benoit Tellier created JAMES-3527:
-------------------------------------

             Summary: Fasten scala project compilation
                 Key: JAMES-3527
                 URL: https://issues.apache.org/jira/browse/JAMES-3527
             Project: James Server
          Issue Type: Improvement
            Reporter: Benoit Tellier


James is historically written in Java, but Scala, a more modern JVM language is 
used for some specific code parts.

See 
https://github.com/apache/james-project/blob/master/src/adr/0024-polyglot-strategy.md

Scala however comes with a price: compilation time. For instance JMAP RFC-8621, 
a lot of logs seem to incriminate the use of the refined library (that enables 
to push input validation to the type system).

Complaining about the topic on gitter : 

{code:java}
Tellier Benoit
@chibenwa
20:22
    Scala solves all that BTW
:thumbsup: :-)
Except for the compilation time, I'm now all in for scala!
Tellier Benoit
@chibenwa
20:23
For instance JMAP RFC8621 takes several minutes to compile. Maybe refined do 
not help...
Matthieu Baechler
@mbaechler
20:25
Probably because Refined uses Shapeless, It could make sense to look for a 
Magnolia-based alternative (it's some order of magnitudes faster)
Tellier Benoit
@chibenwa
20:47
Something like https://github.com/spotify/magnolify ? magnolify-refined
Maybe we should record this in a JIRA...
{code}

We should investigate if alternatives like https://github.com/spotify/magnolify 
heps us regarding compile time.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to