Moved to https://chat.hyperledger.org (channel: #quilt)
Interesting points - I agree that compile-time fail-fast is a good goal, but the I think this is a flaw in the way we've constructed our builders, not necessarily in the usage of an interface vs. concrete class. The pattern you're looking for is called a "staged-builder", which is a compile-time safe way to ensure that all required attributes of a builder are set. For example, see here in the Immutables project where you can configure the generated builder to implement the behavior you are seeking: http://immutables.github.io/immutable.html#staged-builder
Also, another scenario where interfaces are preferred is when we want the implementation to vary. Since java-ilp-core is a library that we want to be widely used, I think it's important to assume that most users of our library will simply use the value objects we provide, but for those users who desire not to use our value objects, we give them the ability to create their own implementations without deviating from the interfaces that we've also defined.
I think this is particularly painful in java-ilp-core because we have a lot of value objects, and so the library has a lot of boilerplate because of the decision to use interfaces. You can look at my PR above and see how the usage of something like the Immutables project allows us to keep using interfaces, but remove almost 99% of all the boilerplate.
Enrique Arizón Benito
(FYI: The Hyperledger STC meeting is at 4:00 pm ECT, to join: https://www.gotomeeting.com/join/613310429 or dial in using your phone: US (toll-free): +1-877-309-2070 US: +1-312-757-3119 Access Code: 613-310-429 @sappenin : Just in case, Adrian confirmed he can NOT attend the meeting. I'm not sure if someone from Ripple will do.
Michiel de Jong
@earizon just to double check, ECT is Ecuador Time?
FYI: I just created a wrapper script around Docker+NodeJS to allow running NodeJS "stuff" inside a Java environment without getting the file system dirty (as well as easily allowing switching the NodeJS version used). In case someone is also interested, it's available at: https://github.com/earizon/utility_shell_scripts/blob/master/node_wrapper.sh (function "usage" mostly summarizes how to use it)
@sappenin Hi This is Chris checking in
Hope to be of help !
I have already created a pull request in java-ilp-core for issue #96 -- the javadoc cleanup.
Yeah, just saw that, thanks for jumping in!
You bet :-)
I saw another getting started ticket
Github appears to be having trouble today, but I a few small comments (minor nits).
Cool, I will clean them up
cool! Feel free to look through the issues and take anything that's unassigned (if it makes sense how to fix).
Great, will do. If you have any priorities, let me know and I can try to look at those first
@/allinterledger/java-ilp-core#103 is a set of common shell scripts that can save some minutes a day while developing locally (pure shell scripts, IDE-agnostic, only gradle as dependency). I guess they can/could also be reused for continuous integration tasks.
@earizon you haven't provided input here: interledger/java-ilp-core#88
Enrique Arizón Benito
@adrianhopebailie I completely forgot about that issue.
I would love to get involved in code development efforts and help out
anything the team is looking specifically help with?
just checked out and ran initial code build
i am getting test failures in 4 different classes; all are "InvalidKeyException"
@rizwantanoli is that with crypto-conditions?
@/all with the recent move to Hyperledger Quilt for the Java code we are going to move the chat to Hyperledger's rocket chat
¿What will be the policy followed for alpha/un-stable projects?. ¿Will they be moved "soon" to Quilt or will they stay in place until there are considered stable (version 1.0-SNAPSHOT)? I'm thinking for example about connector interfaces in https://github.com/interledger/java-ilp-connector.