Commit graph

208 commits

Author SHA1 Message Date
Eyal Guthmann
5f2fb35da9
Avoid illegal cast in RealStore.stream (#69)
* Avoid illegal cast in

* remove commented out code

* remove wildecards

* ktlint

* optimize imports

* don't print  in exception message to avoid PII leak
2020-01-17 16:29:17 -08:00
Stephen Bain
bc6c47833d added docs to MemoryPolicy.setMemorySize (#67) (#68) 2020-01-17 16:45:58 -05:00
ychescale9
7ee32a7468 Clean up build configs (#62)
* Update dependencies, clean up unused dependencies.

* Remove unused checkstyle and pmd rulesets.

* Use `plugins` block.

* Fix compiler warnings.
2020-01-13 12:43:41 -05:00
ychescale9
062deda898 Cache Rewrite (#49)
* Rewrite cache module in Kotlin.

* Migrate RealStore to use new cache.

* Migrate FileSystemImpl to use new cache.

* Migrate StoreTest to new cache.

* Remove Guava Cache.

* Migrate remaining Java file to Kotlin.

* Fix ktlint error.

* Fix package.

* Add support for CacheLoader.

* Remove unnecessary mockito-inline.

* Remove volatile keyword from CacheEntry fields and add docs re. cache entry reuse and thread-safty assumption.

* - Refactor CacheBuilder.
- Update docs.
- Update Key, Value, Input, Output generic types to be bound by Any.
- Replace spy with TestLoader for asserting invocation.

* Support key-based synchronization for get(key: Key, loader: () -> Value): Value.

* Document loader exception propagation.

* Small clean ups.

* Make CacheEntry's Key and Value bound to Any, move CacheEntry to RealCache.kt as a private class.

* Add reference counting key-based synchronization for cache loader.

* Improve KeyedSynchronizer and docs.

* Refactor tests and add a missing test case to reach 100% coverage.

* Add memory barrier after updating access time in cache entry.

* Only process access queue if expiresAfterAccess == true.

* Support configurable concurrency level.

* Increase delay for concurrency test.

* Explicitly set concurrency level for concurrency tests.

* Only add memory barrier after recordRead if expiresAfterAccess is enabled.

* Fix a potential memory leak caused by thread preemption.

* Allow retries (3 times) for concurrency tests.

* Move performMaintenance function to bottom of the class.

* Fix typos, rename performMaintenance() to cleanUpDeadEntries(), improve docs.

* Fix more typos.

* Only remove entries in map but not in queue.

* Replace memory barrier with @Volatile fields in CacheEntry.

* Fix deadlock while iterating sets.

* Remove stale cache/README.md, remove commented out java file.
2020-01-08 06:56:02 -05:00
Mike Nakhimovich
267f803db0
fix dokka, update comments, integrate persister (#56)
* fix dokka, update comments, integrate persister
2020-01-07 14:08:53 -05:00
ychescale9
0cd21be2ee Switch POM packaging format to jar for cache, filesystem and store. (#54) 2020-01-07 13:31:19 -05:00
Eyal Guthmann
54c7ad5113
Add an optional param to Multicaster to keep the fetches alive even if all downstreams are closed. (#40) 2020-01-02 13:14:18 -08:00
ychescale9
ba3bf9fd2e Misc improvements and cleanups (#47)
* Add kotlin plugin to cache module

* Remove custom accessors in StoreDefaults as default values are effectively constant.

* Update JUnit to 4.13 RC2 to enable  asserting specific error message on expected exception.

* Remove custom accessors in MemoryPolicy as all values are calculated from constants.

* Remove checkstyle and pmd as the codebase will be 100% Kotlin.

* Fix IDE warning in build.gradle by removing static imports.

* Remove unused guava dependencies.

* Improve StoreDefaults docs.
2019-12-26 13:21:52 -05:00
Pavlos-Petros Tournaris
6827619744 [Kotlinization] Misc refactors for more Kotlin friendlier code (#37)
* Make MemoryPolicy Kotlin friendlier

* Make MemoryPolicy usage more Kotlin like

* Format code in FSReader

* Format code in FSWriter

* Format code in FileSystemRecordPersister

* Format code in FileSystemPersister

* Convert BarCodeReadAllPathResolver to Object instead of Class

* Convert BarCodePathResolver to Object instead of Class

* Fix wrong control flow conversion
2019-12-18 10:36:36 -08:00
Eyal Guthmann
689812a7bb
Clean up ChannelManager's interface to make it easier to add more tests (and add some) (#29)
* Clean up ChannelManager's interface to make it easier to add more tests (and add them)

Main changes:
* ~`ChannelManager` no longer inherits from `StoreRealActor` but rather
delegates to one.~ - Moved to followup PR
* messages coming from the upstream were placed under `Message.Dispach`
rather than `Message`. These are the only messages accepted from outside
`ChannelManager`
* `ChannelManager` now only exposes `plusAsign`, `minusAsign` for
adding/removing channels, close for closing  and send(msg, Message.Dispatch)
for upstream events
* `SharedFlowProducer` no longer has a back dependency on
`ChannelManager`, rather it accepts a `suspend (Message.Dispatch) ->
Unit`
* `ChannelManager` is now built with the upstream flow rather than a
flow factory. Given that a flow is stateless, passing in a flow that can
be re-consumed seems like the simpler API.
* New `ChannelManager` tests

* make changes to existing test minimal

* revert actor delegation to reduce PR size

* comments

* clean up tests

* Bump travis

* lint

* rename `channelManagerInbox` ->``sendUpsteamMessage`
2019-12-16 08:50:57 -08:00
Burak Eregar
ee30afb0c9 Implement Truth and migrate store module. (#30) 2019-12-15 16:30:34 -05:00
Yigit Boyar
2b70a2f721 Fix multiple collections on Multicast (#28)
* Fix multiple collections on Multicast

Multicast implementation had a bug where the returned flow could
not be collected multiple times as it was using the same channel
it created when  was called.

This PR changes it to create per collection to avoid this issue.

I've also replaced  function with a  field as there
is no reason to keep creating a new one, it can be just a flow

Test: MultiplexTest#multipleCollections
Fixes: #26

* remove create function
2019-12-13 13:08:35 -05:00
Eyal Guthmann
fa10e84623
Cleanup StoreBuilder interface and add some documentation (#24)
* Cleanup StoreBuilder interface and add some documentation

* Update store/src/main/java/com/dropbox/android/external/store4/StoreBuilder.kt

Co-Authored-By: Mike Nakhimovich <digitalbuddha@users.noreply.github.com>

* A little more docs around persistence
2019-12-11 14:52:11 -08:00
ychescale9
b4c0877732 Fix a bunch of kotlin compiler warnings. (#20) 2019-12-11 09:44:45 -05:00
ychescale9
8ddbe3c76f Add ktlint and fix all issues. (#11) 2019-12-10 10:51:14 -05:00
David Chang
dce8b865c1 Update maven coordinates for Store 4 2019-12-09 11:39:20 -08:00
Yigit Boyar
6d97c399fa move multicast to its own module (#9)
Fixes #8
2019-12-08 19:12:11 +01:00
Yigit Boyar
1a750f54db add missing google copyright header 2019-12-06 00:28:31 +01:00
Mike Nakhimovich
4fa9c252b6
rename package from nytimes to dropbox (#63)
* rename package from nytimes to dropbox

* Update build.gradle

Co-Authored-By: David Chang <changd@gmail.com>
2019-12-05 19:52:47 +01:00
Yigit Boyar
5816adabe5 Cleanup (#62)
* add dokka for store module

move key parser to tests

* remove parser exception

* move RealStore and SourceOfTruth to internal

* move cache type to internal

* move Clearable to tests

* move fetcher to tests

* move multiplexer to internal

* move map indexed to internal
2019-12-04 09:40:29 +01:00
Yigit Boyar
b12aad7d2d
store fluent API prototype (#60)
StoreBuilder API that does not require excessive type arguments.
2019-12-02 14:30:45 -08:00
Yigit Boyar
3b44944fc5 Rename Multiplex to Multicast (#59)
Appearantly, multiplex is N to 1 while this thing is 1 to N. Yigit should consider checking what things mean before using them in code ¯\_(ツ)_/¯
2019-11-27 20:55:19 -05:00
Yigit Boyar
52aefe0094 random code cleanups (#57)
* random cleanup.

Fixed a bunch of warnings.
Moved SimplePersisterAsFlowable into tests as it is not used anymore but
FlowTest uses it.
Moved MemoryPolicyBuilder test to kotlin to make DEFAULT_POLICY a const

* massive file migration
Rename pipeline tests into impl tests
2019-11-23 14:00:34 -05:00
Yigit Boyar
c223e44d8d
Close channels w/ a suspend function. (#56)
This PR fixes a bug in StoreRealActor where we could call onClose
while actor is processing some messages. Now instead we send a token
to close and inside the message handler we close the channel so that
no new messages can arrive after close meanwhile messages that arrived
before that close is handled properly.

Also set version to 4.0.0 and cleaned up some code.

Fixes #55
2019-11-20 07:11:31 -08:00
Yigit Boyar
8347de79aa Remove suspend cache (#52)
* remove suspend cache

This PR replaces suspend cahce usages w/ direct guava cache usage.
I think we should also get rid of guava cache.
First of all it is in java so needs to be moved to kotlin at least for
future multi-platform support.
Second, it would be nicer to have something that uses kotlin's time so
that people can provide a scope w/ a delay functionality (like the
TestCoroutineScope) and also test time related stuff. An alternative might
be letting people pass a Timer in the builder

Fixes #41

* remove commented code :/
2019-11-14 07:31:07 -05:00
miken
b7a4c89cc0 uml diagram 2019-11-12 11:16:10 -05:00
Yigit Boyar
3e84b6bdb5
Stream without persister (#48)
This PR implements piggybacking in fetch controller which means even if
upstream closes, we never close downstream flows in fetcher multiplexing.
Instead, we keep them around and if a new request comes in, they'll receive
the same data as well or even keep the upstream open.

This is implemented as a feature of multiplexer as it already has all of the
machinery to do such re-distribution of data.
It is a bit questionable behavior for multiplexer but it is already very
specific to our use case so I thought it might be fine to do it there
2019-11-09 08:18:11 -08:00
Mike Nakhimovich
b14b307c2c
Miken/kill2 (#43)
* cleanup with no explanation

* collapse interfaces to only Store, remove parsers

* collapse interfaces to only Store, remove parsers
2019-11-03 15:06:12 -05:00
Mike Nakhimovich
ca8c957a2d
cleanup with no explanation (#42) 2019-11-03 14:53:38 -05:00
Yigit Boyar
ba22d0c66c Internal Store 3rd attempt (#35)
* WIP publish test

* add actor based implementation, seems the most promising

* add notes into channel manager as well

* use unlimited channel on the receiver to avoid launching to send

* carry over remaining subscribers into a new flow

* dispatch errors from upstream to all downstreams

* carry over all leftovers at once to avoid starting producer before all is added to the list

* handle swapping channel managers in the consumer

This CL fixes an issue where we wouldn't unsubscribe from the right channel if
the downstream is moved between channel managers due to not receiving any event
after registering.

I've also cleaned up dispatchError to close the channel with error instead of
passing it down as if it is value and throwing again

* allow live buffering

this adds a live buffering functionality to actor publish where
it only buffers if the upstream is still running

* remove logging

* move into src

* code cleanup, more comments

* first shot at new internal store, tests pass, code ugly

* tmp builder for real internal store, starting pipeline tests

* more wip in fixing pipeline store tests, a lot to cleanup

* all tests pass

* code cleanup

* move multiplexer inside store4

* lots of cleanup of unnecessary code

* release barriers that are not used

* don't use pipeline persister.
also fixed a barrier cleanup code in source of truth with barrier

* revert simple persister as flowable change
cleanup for clearstorememorytest

* close multiplexers in fetcher controller when not used

* code style fixes
2019-11-03 10:41:32 -05:00
Yigit Boyar
e9d6a91d83 Merge PersisterPipeline code path (#34)
This CL avoids having two different codepaths based on whether
we skip disk cache or not. It should eventually make it easier
to implement sharing, if we decide to do it here
2019-10-02 13:24:36 -04:00
Yigit Boyar
915bd7d4d7 StoreResponse (#33)
* Introduce StoreResponse

This CL changes Pipeline API to dispatch StoreResponse instead of Output.
It will allow us to add more metadata into it and also handle things like
source attribution and/or loading state.

This CL only makes the tests pass, does not do anything for actually dispatching
loading state

* first shot at adding a loading state

This CL adds proper StoreResponse to the built in pipelines such
that they can merge information between network and disk.

It needs some cleanup and PipelinePersister's merging logic is
fairly complicated but i couldn't yet find a simpler way to achieve it

* Add more tests to pipeline

Also fixed a bug in cached where it would emit cached value as
Loading even if no refresh is requested

* fix room sample after rebase

* Update the room sample to support refresh

Also some code cleanup in PipelinePersister

* code cleanup

* explain network + disk flow

* Change StoreResponse for plan D

This CL changes store response to act like plan D described here:
https://paper.dropbox.com/doc/Streaming-Data-How-To--AkwrNu0A7\~BikNOP2m20\~R2_AQ-oLBV39GrNimqGDe1vNQMb

Now StoreResponse has 3 types: Data, Error, Loading and each of these have an  field.
Loading and Error does not carry over last data anymore, instead, it is expected downstream
to merge them for UI, if desired.

This change makes Store more verbose but i think it is the right direction to allow
developer to expand on it as desired

* update AGP to 3.6-alpha11

* update pipeline store tests to check finite streams

This CL updates PipelineStoreTest to consume the whole stream
when we expect it to finish rather than limiting the number of
dispatched items

* update RoomActivity to respect new StoreResponse

* add search to room activity

* code cleanup
2019-09-22 11:23:59 -04:00
Yigit Boyar
d27fb96384
update coroutines to flow stable (#31)
This PR updates coroutines to 1.3.0, kotlin to 1.3.50 and agp to 3.6.alpha08.

I've also cleaned all usage of FlowPreview
2019-08-27 18:43:48 -07:00
Yigit Boyar
92022be61a
let persister flow nullables to understand absense. (#30)
This is possibly temporary until we get a StoreResponse but may still keep
it as we wouldn't want to force everything to support StoreResponse
2019-08-15 23:24:21 +03:00
Mike Nakhimovich
d86c6573da
Yigit fixes another thing (KeyTracker) (#27)
* Updated coroutines to RC02 and fix Flow invariance

This PR fixes an invariance problem in side collect where it was
creating a scope and emitting from there.

* Fix KeyTracker not to lose emissions

KeyTracker would lose some emissions if they happen in rapid succession
between different keys. This new implementation maintains a separate
channel for each key to avoid that. Since we now create a channel per key,
we also need to track and clean them up to avoid consuming too much memory
2019-08-11 21:34:18 -04:00
Mike Nakhimovich
80e834d536
remove clearMemory, upgrade coroutines (#20)
* remove clearMemory, upgrade coroutines

* rebase, pr comments

* fix build

* fix build

* convert more tests to testScope

* few more conversions
2019-08-11 21:27:36 -04:00
Yigit Boyar
9d8aec74e3 Updated coroutines to RC02 and fix Flow invariance (#25)
This PR fixes an invariance problem in side collect where it was
creating a scope and emitting from there.
2019-08-11 07:49:32 -04:00
Yigit Boyar
309b08e176 Move more tests to TestCoroutineScope (#24)
These are tests that worked as is so this is a dummy conversion
2019-08-06 08:24:24 -04:00
Yigit Boyar
33ced189bc
Get rid of unused scope in NoOpPersister (#22)
This PR fixes an issue in NoOpPersister where it was using a CoroutineScope w/o
really needing one as there wasn't any actual deferred work going on. As a side
effect of that, it was flaking the StoreTest.

After this change, the test does not flake aynmore (tried by setting test to be re-run
until failure
2019-08-04 13:10:02 -07:00
Yigit Boyar
1ef805fa73 Stream only (#19)
* try delegaitng get calls to steam

* WIP handle null

This CL changes pipeline persister to handle null reader response to fetch.
This is WIP, need another fix before it can be used

* move StoreTest and StoreWithParserTest to coroutines testing lib

The test coroutine scope checks for any remaining jobs at the end of a test
which helped us find two bugs (#17, #18) both of which were discovered when
i tried to move this tests to the TestCoroutineScope after the streamOnly
change.
This change completes the move to avoid further regressions. Eventually,
we should move all tests

* remove unused get method from PipelineStore
2019-08-03 18:43:54 -04:00
Yigit Boyar
c82421104e
Fix key tracker (#18)
* Fix KeyTracker subscription order

This PR fixes a race condition where if the SimplePersisterAsFlowable's write
is called inside a reader, reader wouldn't be notified again

* Fix StreamOneKeyTest

This test was passing by mistake :/. Right now, when we create the backport
Store from a Pipeline, the  method skips memory cache but uses
disk cache. This test was not initializing the disk cache w/ empty value,
which meant the initial read would get first value as if it is cached and
then would also get the new value.'
The test didn't fail before because KeyTracker had a concurrency but where
it missed 1 invalidation call
2019-08-03 01:37:46 -07:00
Yigit Boyar
550eb18f48
Fix side collect (#17)
This PR fixes a bug in side-collect where it was not cancelling the side
collection when main flow stops.
It still does not handle the case where side collect fails but that can only be fixed when we have error handling.

Needed to move the method to a non-private place to be able to write tests :/
2019-08-02 05:27:03 -07:00
Yigit Boyar
645cbc1ef5
StoreRequest (#15)
StoreRequest to encapsulate the get/stream into an object that can be passed down/modified/scaled.

The suspend cache APIs became a bit weird due to supporting both implementations. We can clean it up once we have only 1 implementation.
2019-07-25 21:04:06 -07:00
Fabio Collini
b7c4dbdebf Removed extra generic (#14) 2019-07-18 09:47:30 -07:00
fabioCollini
e63c6bbef8 Revert "Removed extra generic"
This reverts commit 1d912ea8
2019-07-17 08:43:24 +02:00
fabioCollini
1d912ea898 Removed extra generic 2019-07-17 08:41:41 +02:00
Yigit Boyar
1ba634e7c3 [DO NOT MERGE] Pipeline Implementation (#13)
pipeline API
2019-07-15 21:01:09 -04:00
Yigit Boyar
dc9b1bd51c
Suspend cache (#8)
This PR adds a cache implementation that has all APIs as suspend functions.
It uses guava's cache under the hood and handles query deduplication in a custom
Entry type that we keep in the cache
2019-07-02 07:25:36 -07:00
Fabio Collini
823dbcc3e2
Fix inflight definition and create new builder (#2)
* AGP 3.5.0-beta05

* Inflight as constructor argument

* New builder class

* Rename addPersister to persister

* Rename addParser to parser

* Rename addCache to cache
2019-07-01 08:36:40 +02:00
DigitalBuddha
b560d6d503 make cache use function in builder rather than in each call 2019-06-30 18:01:18 -04:00
Fabio Collini
58cdc5420d REFRESH_ON_STALE managed using a new scope (#6) 2019-06-30 13:14:22 -04:00
DigitalBuddha
b72122a5e5 fix tests 2019-06-30 12:38:46 -04:00
Fabio Collini
91217c8fa8 RealInternalStore refactoring (#1)
* AGP 3.5.0-beta04

* Stream implementation defined in the interface

* New class StoreWrapper

* Delete StoreBuilder

* Rename plus methods

* Move stalePolicy to Persister

* Simplify code

* Move inflight request management to a new class

* Move cache management to a new class

* Move wrappers to new package

* Delete StoreWrapper class

* New test

* Restored old versions

* Restored old versions

* Restored old versions

* Restored old versions

* Restored old versions

* Restored old versions

* Add runCatching to ignore exceptions on persisters

* Backward compatible RealStoreBuilder implementation

* Fix tests
2019-06-29 19:49:47 -04:00
fabioCollini
53f823548c Removed extra RealInternalStore constructor 2019-05-29 08:46:35 +02:00
fabioCollini
1861992d69 Removed class delegates in RealInternalStore 2019-05-29 08:43:28 +02:00
fabioCollini
805b19c533 Removed getRefreshing method 2019-05-29 08:40:20 +02:00
fabioCollini
7958f3a0e0 Removed deprecated clear methods 2019-05-29 08:37:26 +02:00
fabioCollini
fddea54d32 Never returns cached data on fetch 2019-05-28 09:54:15 +02:00
Brian Plummer
7981500102
Merge pull request #3 from friendlyrobotnyc/feature/remove-getWithResult
Remove getWithResult and freshWithResult
2019-05-27 15:58:29 -04:00
Fabio Collini
7480d5a9c4 Convert filesystem classes to Kotlin (#4) 2019-05-27 15:41:04 -04:00
fabioCollini
e65f18a4f4 Remove getWithResult and freshWithResult 2019-05-27 20:47:58 +02:00
Fabio Collini
a7edcf2aca Flow<Pair<V, T>> as stream result (#2) 2019-05-27 12:26:55 -04:00
fabioCollini
b50c41a5f3 Merge branch 'feature/coroutines' into feature/flow
# Conflicts:
#	store/src/main/java/com/nytimes/android/external/store3/base/impl/RealInternalStore.kt
2019-05-27 16:55:48 +02:00
fabioCollini
ca62ca14a1 Restore code format 2019-05-27 16:55:09 +02:00
fabioCollini
c3c2055047 Invalidate inFlightRequests on errors 2019-05-27 16:28:51 +02:00
fabioCollini
141908e42f Fix duplicated fetch call on error 2019-05-27 16:08:02 +02:00
fabioCollini
e038fc991d Stream methods returning flows instead of ReceiveChannel 2019-05-27 15:52:25 +02:00
fabioCollini
927e77954a Coroutines 1.2.1 2019-05-21 22:57:14 +02:00
fabioCollini
015140fbf0 Fix some tests 2019-05-21 21:32:54 +02:00
fabioCollini
d4ce82c468 Convert classes to kotlin 2019-02-23 17:59:29 +01:00
fabioCollini
664f60b0d0 Removed rxjava usages 2019-02-23 16:59:01 +01:00
fabioCollini
7c2bbae59f Removed rxjava on store module 2019-02-23 15:50:31 +01:00
fabioCollini
e0cf396a10 Removed StoreRoom 2019-02-23 15:46:15 +01:00
fabioCollini
4b27b64d0e Convert classes to kotlin 2019-02-23 08:49:28 -05:00
fabioCollini
0ad60262f1 Convert CacheFactory to Kotlin 2019-02-23 08:37:56 -05:00
fabioCollini
34d028337e Fix tests 2019-02-23 08:24:55 -05:00
fabioCollini
fb4ee1992d Removed rx classes and fixed tests 2019-02-22 22:17:45 -05:00
fabioCollini
b2976719c1 Don't cache errors 2019-02-22 20:49:43 -05:00
fabioCollini
b7e77512cd Fix some tests 2019-02-20 23:38:49 -05:00
fabioCollini
e2c0460964 Replaced Channel with BroadcastChannel 2019-02-20 23:23:35 -05:00
Mike Nakhimovich
c072f1532b Merge remote-tracking branch 'origin/feature/coroutines' into feature/coroutines 2019-02-12 11:41:01 -05:00
Mike Nakhimovich
e024b64e11 WIP 2019-02-12 11:40:39 -05:00
fabioCollini
77dfdd97fa Restored MultiParser 2019-02-11 17:40:53 -05:00
fabioCollini
2ceb990d5d Fix some tests 2019-02-11 16:10:16 -05:00
fabioCollini
7ada4fbc38 Fix compilation errors in tests 2019-02-11 16:00:38 -05:00
fabioCollini
d749b3a161 Restored interface 2019-02-11 15:34:40 -05:00
fabioCollini
1b9e79a565 Fix some tests 2019-02-11 15:15:08 -05:00
DigitalBuddha
b3a94fa1a8 fixing tests 2019-02-10 20:23:15 -05:00
DigitalBuddha
774e9d9c4b Merge remote-tracking branch 'origin/feature/kotlin_conversion' into feature/coroutines
# Conflicts:
#	app/build.gradle
#	app/src/main/java/com/nytimes/android/sample/SampleApp.kt
#	app/src/main/java/com/nytimes/android/sample/activity/PersistingStoreActivity.java
#	app/src/main/java/com/nytimes/android/sample/activity/StoreActivity.java
#	build.gradle
#	buildsystem/dependencies.gradle
#	filesystem/src/test/java/com/nytimes/android/external/fs3/FilePersisterTest.java
#	filesystem/src/test/java/com/nytimes/android/external/fs3/FileSystemRecordPersisterTest.java
#	filesystem/src/test/java/com/nytimes/android/external/fs3/RecordPersisterTest.java
#	filesystem/src/test/java/com/nytimes/android/external/fs3/SourcePersisterTest.java
#	middleware/src/main/java/com/nytimes/android/external/store3/middleware/GsonParserFactory.kt
#	middleware/src/main/java/com/nytimes/android/external/store3/middleware/GsonReaderParser.kt
#	middleware/src/main/java/com/nytimes/android/external/store3/middleware/GsonSourceParser.kt
#	middleware/src/main/java/com/nytimes/android/external/store3/middleware/GsonStringParser.kt
#	middleware/src/test/java/com/nytimes/android/external/store3/GenericParserStoreTest.java
#	middleware/src/test/java/com/nytimes/android/external/store3/GsonParserFactoryTest.java
#	middleware/src/test/java/com/nytimes/android/external/store3/GsonSourceListParserTest.java
#	store/build.gradle
2019-02-10 19:29:48 -05:00
DigitalBuddha
2d3596e4bb fixing tests 2019-02-10 19:23:00 -05:00
ychescale9
ecea787a3f Remove Deprecated annotation for stream(V key) (#368)
* Remove Deprecated annotation for stream(V key) which was meant to be undeprecated with https://github.com/NYTimes/Store/pull/252.

* Fix CI - remove https://plugins.gradle.org/m2 repository applied to all projects.
2018-10-25 10:43:29 -04:00
Brian Plummer
2da5e1e5fe
convert first half of store tests to kotlin (#353)
* configure kotlin, first test

* first half of store tests

* remove unused imports

* pr feedback, scope and el

* remove charsetTest
2018-07-18 21:54:59 +02:00
Mike Nakhimovich
6ac40cd371 StoreRoom (#338)
* roomStore

* kt the app class

* refactor

* fix compilation

* Update .travis.yml

* migrate relevant tests to RoomStore, mark new Room API with @Experimental

* pr feedback

* bump minor rev up

* cleanup store

* create factory, clean up example

* pr comments
2018-05-30 18:56:08 +02:00
Roberto Orgiu
ed378585c2
Merge pull request #328 from pavlospt/fix_memory_policy_default_size
Fix memory policy default size
2018-05-13 14:57:52 -07:00
Jorge Antonio Díaz-Benito Soriano
d26d50a5b6 Remove unnecessary Android-specific stuff (#319) 2018-05-03 09:39:37 -04:00
Tournaris Pavlos-Petros
7c9e28b573 Add test for MemoryPolicy default size 2018-03-29 23:00:15 +03:00
pavlospt
d40f02bd89
Return standard maxSize if not set 2018-03-29 17:13:54 +03:00
Saket Narayan
2232264fb2 Add missing reading of expire-after-policy when creating a NoopPersister (#315)
* Set missing expire-after-access policy to NoopPersister's cache (#312)

* Remove comment about PMD from NoopPersister#create()

* Add regression test for #312

* Deprecate MemoryPolicy#isDefaultPolicy() in favor of isDefaultWritePolicy() and isDefaultAccessPolicy()
2018-03-20 19:14:55 +01:00
Pavlos-Petros Tournaris
6f2f1c12fe Fix issues occured from RxJava1 dependency (#314)
* Remove RxJava1 dependencies
* Fixed an ErrorProne warning
2018-02-20 18:05:46 +01:00
Stefan M
792ad745d2
Changed weird MemoryPolicy to 24 hours 2017-11-14 10:27:00 +01:00