Javaslang v1.0.0 Release Notes
Release Date: 2019-07-23 // over 3 years ago-
Info
Caution: This is a preview release of the upcoming major release 1.0.0. It is highly under development and the API is subject to change. Please do not use it in production.
We are still in the process of moving the changes from the original 1.0.0 branch to master.
β Additionally there are stashed changes that did not make it into the minor release 0.10.0, that may make it into the upcoming 1.0.0 release. This is also work in progress.
π The API Docs can be found here (π§ currently unavailable because https://www.javadoc.io seems to be down)
Comitters
π± π MANY THANKS TO ALL COMMITTERS! π
- π± βοΈ Daniel Dietrich (@danieldietrich)
- π± βοΈ baant
- π± βοΈ Alexandru Stana (alexandrustana)
- π± βοΈ Mark Raynsford (io7m)
- π± βοΈ Theodor A. Dumitrescu (@thadumi)
- π± βοΈ Juan Antonio BreΓ±a Moral (jabrena)
- π± βοΈ Bram Schuur (@craffit)
- π± βοΈ Mincong Huang (mincong-h)
π Changes
Please find the complete list of changes here.
Previous changes from v0.10.0
-
Info
π The minor release 0.10.0 focuses on several API improvements.
Please find the complete list of changes here.
π The API Docs can be found here
Comitters
π± π MANY THANKS TO ALL COMMITTERS (AND THEIR PATIENCE)! π
- π± βοΈ Amy (@amygithub)
- π± βοΈ Andreas Gebhardt (@agebhar1)
- π± βοΈ Audun Halland (@audunhalland)
- π± βοΈ Daniel Dietrich (@danieldietrich)
- π± βοΈ Emmanuel Touzery (@emmanueltouzery)
- π± βοΈ Erlend Hamnaberg (@hamnis)
- π± βοΈ Florian Stefan (@florian-stefan)
- π± βοΈ Grzegorz GaΕΔzowski (@grzesiek-galezowski)
- π± βοΈ Igor Konoplyanko (@cauchypeano)
- π± βοΈ J. B. Rainsberger (@jbrains)
- π± βοΈ James Lorenzen (@jlorenzen)
- π± βοΈ Jia Chen (@grievejia)
- π± βοΈ Julien Debon (@Sir4ur0n)
- π± βοΈ NΓ‘ndor ElΕd Fekete (@nfekete)
- π± βοΈ Nataliia Privezentseva (@nataliiaprivezentseva)
- π± βοΈ Maciej GΓ³rski (@mg6maciej)
- π± βοΈ Mathias DΓΌsterhΓΆft (@mduesterhoeft)
- π± βοΈ MichaΕ Patejko (@miszasty93)
- π± βοΈ Michael Ummels (@ummels)
- π± βοΈ MikoΕaj Fejzer (@mfejzer)
- π± βοΈ Nazarii Bardiuk (@nbardiuk)
- π± βοΈ Pap LΕrinc (@paplorinc)
- π± βοΈ Pascal Schumacher (@PascalSchumacher)
- π± βοΈ Peter Buckley (@dx-pbuckley)
- π± βοΈ Robert Erdin (@roberterdin)
- π± βοΈ Ruslan Sennov (@ruslansennov)
- π± βοΈ Sebastian Zarnekow (@szarnekow)
- π± βοΈ Sergey Pereverzov (@serp92)
- π± βοΈ Stephen Kestle (@skestle)
- π± βοΈ Valery (@valery1707)
- π± βοΈ Victor Buldakov (@v1ctor)
Note: A few contributions didn't made it into 0.10.0 because of backward incompatibilities.
π Changes
Instead of describing all changes in detail, I will provide a list and show some examples.
Beside new features there were also several (internal) improvements not shown here.Core/API
- π Change (internal): Removed internal interface io.vavr.Lambda which was on top of the (Checked)Function type hierarchy. It was not public.
- π Feature: For-comprehension supports List, Option, Future, Try
- π Feature: Tuple - append(), concat() and hash()
- π Feature: CheckedConsumer, CheckedPredicate and CheckedRunnable enhancements
- π Feature: PartialFunction now implements Function1
- π Feature: Predicates.not()
- π Feature: Value: toJavaArray(IntFunction), toTree(Function, Function)
- π Deprecation (for removal): API.Map(Tuple2)
- π Deprecation (for removal): API.LinkedMap(Tuple2)
- π Deprecation (for removal): API.SortedMap(Tuple2)
- π Deprecation (for removal): API.SortedMap(Comparator, Tuple2)
- π Deprecation (for removal): API.SortedMap(java.util.Map)
- π Deprecation (for removal): Value.toLeft()
- π Deprecation (for removal): Value.toRight()
- π Deprecation (for removal): Value.toValid()
- π Deprecation (for removal): Value.toInvalid()
Collections
- π Feature: Traversable: forEachWithIndex, reject(Predicate)
- π Feature: Iterator/Stream: fill(int, Object)
- π Feature: Map/Multimap: reject(BiPredicate), rejectKeys(Predicate), rejectValues(Predicate), keysIterator(), valuesIterator()
- π Feature: Map/Seq: asPartialFunction()
- π Feature: Seq.rotateLeft, rotateRight, takeRight, takeRightUntil, takeRightWhile
Concurrent
- π Change: Future now uses Executor instead of ExecutorService. The executorService() works as before if Future was initialized with an ExecutorService, otherwise it throws. User executor() instead.
- π Change: Future DEFAULT_EXECUTOR: ForkJoinPool.commonPool()
- π Feature: Future.await(long timeout, TimeUnit unit)
- π Feature: Future.isCancelled()
- π Feature (experimental): (Experimental) Future.run(Task), Future.run(Executor, Task)
- π Deprecation (for removal): Seq/Map/Set withDefault, withDefaultValue
Controls
- π Feature: Either.sequence, Either.sequenceRight
- π Feature: Either.traverse, Either.traverseRight
- π Feature: Either.filterOrElse
- π Feature: Either.toValidation
- π Feature: Option.traverse
- π Feature: Option.fold
- π Feature: Try.traverse
- π Feature: Try.onFailure
- π Feature: Try.fold
- π Feature: Try.toValidation
- π Feature: Validation.fromTry
- π Feature: Validation.traverse
- π Deprecation (for removal): Either.left(), Either.right()
- π Deprecation (for removal): Either.LeftProjection, Either.RightProjection