2018_07_10
- Fixed concurrency bug with
LRUCache
2018_06_17
- Improved a little
UseCase.execute
readability - Cleanup of
StandaloneUseCase
methods. StandaloneUseCase
now provides a ser of methods:
execute
: Sycnrhonous inmediate execution (as calling UseCase.execute(params : Any)
)
defer
: Asynchronous lazy execution
async
: Asynchronous inmediate execution
asynk
: Asynchronous lazy execution vía Arrow's DeferredK
2018_06_8
StandaloneUseCase
now has utility methodsdeferK
to directly output a functional deferred call with Arrow.- Improved
LruCache
to use Kotlin methods instead of relying in an iterator. - Minor syntax improvements.
2018_05_11
- Improved
UseCase.async(thread,postable,params)
with the correct method delegation
2018_05_11
- Organized a little
StandaloneUseCase
API. Nowexecute
are pure synchronous functions, andasync
requires (or not) of a Coroutine Context to be executed
2018_05_10
- Added a
PerformanceModule
to the use case module to let users benchmark their use cases. - Fixed a bug that was returning the wrong element when updating an element in
MemoryDataSource
- Now a
StandaloneUseCase
does not require that the Param extendsAny
2018_04_14
- AKA "The FPenning"
- Added FP principles to the core of kor common by Arrow.
- Added several utilities methods to the
Repository
interface for fetching, deleting and saving elements. - All
interactors.*
elements are removed. - Sliced and re-structured all the packages in order to be able to have smaller, more focused dependencies
2018-02-12
- Ported to Kotlin
- Removed
FastInteractor
capabilities
- Breaking: 2.8.0 onwards:
DiskJsonDataSource
now uses aCacheFolder
interface to work instead of a simple File. - Default implementation
CacheFolderImpl
for both DataSources andFileExpirationPolicy
.
2017-11-29
- Breaking from 2.7.0 onwards:
MemoryRepository
has been renamed toMemoryDataSource
andDiskJsonRepository
has been renamed toDiskJsonDataSource
. - Introduced
MemoryJsonDataSource
- Improved
LruRepository
by honoring the state of the underlying repository in gets and contains.
2017-07-13
- Added
Populator
plugin forLruRepositories
, soLruCaches
can be populated in certain circumstances like when usingDiskJsonRepositories
- Added
FileTimeExpirationPolicy
forExpirationRepository
when backingDiskJsonRepostory
2017-06-21
- Improved interactors to support performance logging facilities
2017-06-05
-
Now you do not need to extend
TwoTierRepository
andMemoryRepository
to use it directly -
BaseRepository
renamed toTwoTierRepository
-
Minor improvements
-
Added DiskJsonRepository to allow to-disk JSon peristence
2017-06-05
- Added DiskJsonRepository to allow to-disk JSon peristence
2017-06-05
- Refactored Repository structures to apply better OOP methodologies
- Added
LruRepository
to allow Repositories to hold a limited number of elements - Added
ExpirationRepository
to allow Repositories to have an Expiration Policy - Added
TimeExpirationPolicy
as a PoC expiration policy
2017-06-05
- Refactored Repository structures to apply better OOP methodologies
- Added
LruRepository
to allow Repositories to hold a limited number of elements - Added
ExpirationRepository
to allow Repositories to have an Expiration Policy - Added
TimeExpirationPolicy
as a PoC expiration policy
2017-04-21
- Minor fixes on certain circumstances with
BaseRepository
2017-02-27
- Corrected a small error with the signature of
logErrorResponse(Loggable)
method
2017-02-27
- Added new
OptimisticNetworkInteractor
for providing fast UI updates then doing the hard work - Correction of
BaseRepository
whereget(K)
was relying onRepository.get(K)
instead of usingRepository.contains(K)
, prompting for less efficient lookups - Added a new
logErrorResponse(Loggable)
method that allows better error reporting on Fabric
2015-05-16
- Additional classes renaming. Now
ResponseInterface
andError Interface
becomesResponse
andError
, respectively. retrieveNetworkResponse
andretrieveCacheResponse
unifies onexecute
method.- Now all delegates extend from
Delegate
class. This class has the basic functionality of executing, composing an error message and returning its name. - Due to the previous change, now CacheDelegate can produce error responses. However the functionality of not returning a
response if the
Response.isSuccess()
remains. - Added a
StandaloneInteractor
to reduce constructor signature on dependency injection by avoiding to provide aProvider
, something alike an Interactor factory and a Builder.
2014-11-7
- Renamed classes to provide better understanding of what means each of the components on a clean architecture. Now
Requests
are renamed toDelegates
,Strategies
are renamed toInteractors
andProvider
Executors
. From now on we will be using the new names instead of the old ones. - Removed dependencies towards
JobQueue
. NowInteractors
are pureRunnables
that can be executed via aThreadPoolExecutor
(implementation not provided) - Included a new
UpdateableInteractor
andUpdateableDelegate
to perform looped request to the network (e.g. Bluetooth-like Discovery Service)
2014-11-7
- Moved all the Strategies towards Kor-Commons.
- Now this is a pure Java implementation.
2014-10-24
retrieveNetworkResponse
now throws an exception in order to properly catch erroneous responses throughcomposeErrorResponse(Exception
.
##Kor Retrofit 1.0.9 2014-10-24
- Updated dependencency to kor-common 1.31
##Kor Android 1.0.1 2014-10-24
- Updated dependencency to kor-common 1.31
##Kor Retrofit 1.0.8 2014-08-21
- Minor bump that supports Kor-Common 1.2
2014-08-21
- New structure for
BaseRepository
, now delegates the calls to both internalcurrentLevel
andnextLevel
repositories, making the BaseRepository much more flexible. - Now
BaseRepository
has better implementations ofgetAll()
andgetAll(ids)
methods. - Now Kor-Common provide a
BaseFastRepository
which extendsBaseRepository
and implementsFastRepository
interface. - Memory Map repository extracted to a individual Repository module that supposrts
FastRepository
interface. - Added
LruMemoryRepository
that supports recycling memory repositories via LRUCAche from android support library.
2014-07-25
- Fixed bug that was preventing
composeErrorResponse(RetrofitError)
to be properly dispatched.