2018_07_10
- Fixed concurrency bug with
LRUCache
2018_06_17
- Improved a little
UseCase.executereadability - Cleanup of
StandaloneUseCasemethods. StandaloneUseCasenow 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
StandaloneUseCasenow has utility methodsdeferKto directly output a functional deferred call with Arrow.- Improved
LruCacheto 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
StandaloneUseCaseAPI. Nowexecuteare pure synchronous functions, andasyncrequires (or not) of a Coroutine Context to be executed
2018_05_10
- Added a
PerformanceModuleto 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
StandaloneUseCasedoes 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
Repositoryinterface 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
FastInteractorcapabilities
- Breaking: 2.8.0 onwards:
DiskJsonDataSourcenow uses aCacheFolderinterface to work instead of a simple File. - Default implementation
CacheFolderImplfor both DataSources andFileExpirationPolicy.
2017-11-29
- Breaking from 2.7.0 onwards:
MemoryRepositoryhas been renamed toMemoryDataSourceandDiskJsonRepositoryhas been renamed toDiskJsonDataSource. - Introduced
MemoryJsonDataSource - Improved
LruRepositoryby honoring the state of the underlying repository in gets and contains.
2017-07-13
- Added
Populatorplugin forLruRepositories, soLruCachescan be populated in certain circumstances like when usingDiskJsonRepositories - Added
FileTimeExpirationPolicyforExpirationRepositorywhen backingDiskJsonRepostory
2017-06-21
- Improved interactors to support performance logging facilities
2017-06-05
-
Now you do not need to extend
TwoTierRepositoryandMemoryRepositoryto use it directly -
BaseRepositoryrenamed 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
LruRepositoryto allow Repositories to hold a limited number of elements - Added
ExpirationRepositoryto allow Repositories to have an Expiration Policy - Added
TimeExpirationPolicyas a PoC expiration policy
2017-06-05
- Refactored Repository structures to apply better OOP methodologies
- Added
LruRepositoryto allow Repositories to hold a limited number of elements - Added
ExpirationRepositoryto allow Repositories to have an Expiration Policy - Added
TimeExpirationPolicyas 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
OptimisticNetworkInteractorfor providing fast UI updates then doing the hard work - Correction of
BaseRepositorywhereget(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
ResponseInterfaceandError InterfacebecomesResponseandError, respectively. retrieveNetworkResponseandretrieveCacheResponseunifies onexecutemethod.- Now all delegates extend from
Delegateclass. 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
StandaloneInteractorto 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
Requestsare renamed toDelegates,Strategiesare renamed toInteractorsandProviderExecutors. From now on we will be using the new names instead of the old ones. - Removed dependencies towards
JobQueue. NowInteractorsare pureRunnablesthat can be executed via aThreadPoolExecutor(implementation not provided) - Included a new
UpdateableInteractorandUpdateableDelegateto 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
retrieveNetworkResponsenow 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 internalcurrentLevelandnextLevelrepositories, making the BaseRepository much more flexible. - Now
BaseRepositoryhas better implementations ofgetAll()andgetAll(ids)methods. - Now Kor-Common provide a
BaseFastRepositorywhich extendsBaseRepositoryand implementsFastRepositoryinterface. - Memory Map repository extracted to a individual Repository module that supposrts
FastRepositoryinterface. - Added
LruMemoryRepositorythat supports recycling memory repositories via LRUCAche from android support library.
2014-07-25
- Fixed bug that was preventing
composeErrorResponse(RetrofitError)to be properly dispatched.