I tried to use
scala.Option on structural typing in
com.lightbend.lagom.dev.Servers, but got a error:
[error] java.lang.NoSuchMethodException: com.lightbend.lagom.internal.cassandra.CassandraLauncher.start(java.io.File, java.io.File, boolean, scala.Option, [Ljava.lang.String;, java.lang.ClassLoader) [error] at java.lang.Class.getMethod(Class.java:1786) [error] at com.lightbend.lagom.dev.Servers$CassandraServer$.reflMethod$Method4(Servers.scala:217)
Want to known why? Because Scala Library loaded by different class loaders from different places (
I knew about class loaders, but forget that Scala is just library (for JVM in runtime, of course) :smile: and lost hour for remember this :disappointed: My brain almost exploded, because I tried find difference in method signatures, but signatures (stringified) are absolutely equals :joy:
:+1: The required changes are outlined here: https://github.com/lagom/lagom/issues/571#issuecomment-508942154
A large number of changes are just SJS compatibility changes of artifacts. The lagom changes are basically breaking components into separate files and adding a few abstractions.