geiger_localstorage 0.6.26
geiger_localstorage: ^0.6.26 copied to clipboard
A hierarchical NOSQL storage for the GEIGER project providing an internationalized and event driven data storage.
0.6.26 Bugfix release #
Fixes:
- A possible race-condition when initializing the database.
- Reinitiallizes automatically the
ExtendedTimestampwith an up-to-date uuid of the new database. - A possible race-condition in the test cases causing one test intermittently to fail on certain platforms.
- propper logging and a default option if assets are missing.
0.6.25 Simplify testing in isolates and remove incompatibilities for path_provider in testing #
Fixes:
- Github issue #39 (NodeValue not correct timestamp when calling .getValue("key") on Node)
Changed:
- The path provider is only being used if (and only if) the current working directory is not writeable as we still have troubles with the path_provider and try to minimize its usage. The old behavior may be restored by calling
StorageMapper.preferCurrentDirectory=false;before callingawait StorageMapper.initDatabaseExpander();
Added:
- new loads a default set of data into the storage. The set of data is provided by the package and may be overridden with a file in
assets/store/store.data
0.6.24 Bugfix Release #
Fixes:
- An intermittent bug related to the upgrade of the SQLite database on Android has been fixed.
- Github issue #38 (Concurrent modification during iteration: Instance of '_HashMap<SearchCriteria, StorageListener>')
Added:
- sqlite3_flutter_libs to auto provide SQLite dependencies.
0.6.23 Bugfix release #
Fixes:
- Github issue #35 (Null check operator on null value if search for a NodeValue without set Type)
0.6.22 Bugfix release and Minor breaking change #
This is a bugfix release with a minor breaking change.
New are the calls to (de-)register change listeners async.
Furthermore, Flutter requires for the tests to successfully pass a concurrency of 1 (flutter test --concurrency=1).
Fixes:
- Fixes an issue where the timestamp reported by SQLiteMapper (
get) was incorrect. - Null pointer exception of github issue #35
- Raises a size constraint of values to 10MB (Github issue #34). WARNING: Existing databases are not upgraded.
0.6.21 Extension of EventType #
Added:
- new call
EventTypeExtension.fromString(...)to create an EventType form a String representation.
0.6.20 Bugfix release #
Fixes:
- Related to GitHub issue #31 (Rollback Node rename) fixes an ignored named parameter in SearchCriteria.
- Fixed an issue with direct children of root in SqliteMapper
0.6.19 Bugfix release (Android only) #
Possibly fixes an issue with the path_provider on android (testing required).
0.6.18 #
Fixes a bug when renaming a direct child of the root entry.
Fixes:
- Related to GitHub issue #31 (Rollback Node rename)
Added:
- a new
StorageController.dump(...)call is available allowing to dump all data of a database in string representation (for debugging purposes).
0.6.17 Bugfix Release #
These fixes should only affect users working with tombstones.
Fixes:
- GitHub issue #27 (Search Criteria throws Exception if nodeValuelastModified is set)
- GitHub issue #31 (Rollback Node rename)
0.6.16 Bugfix, Quality, and Extension Release #
Added/new:
- convenience function
ExtendedTimestamp.convertFromExtendedTimestamp(..) - rigid testing of node names
Fixes:
- persistence of node timestamp in
SqliteMapper - GitHub issue #27 (Search Criteria throws Exception if nodeValuelastModified is set)
- unified layout of changelog entries
0.6.15 Bugfix and Quality Release #
Added:
- some serialization tests (suspected problem but everything was alright).
- added some tests to the
StorageController(there we have found and fixed a problem; see below).
Fixes:
- Fixes a problem when adding a value using
StorageController.addOrUpdateValue(...).
0.6.14 Bugfix and Extension Release #
Added:
- call
addOrUpdateValueas convenience call.
Fixes:
- race condition issue #24 on Github (Unhandled Exception: Null check operator used on a null value Error).
0.6.13 Bugfix and Extension Release #
Added:
- a better errormessage when sqlite-Directory is not writeable.
Fixes:
- a bug when waiting for ByteStream data when waiting for data of a stream.
0.6.12 Extension Release #
Added:
- convenience call ExtendedTimestamp.extendedNow().
0.6.11 Extension Release #
Added:
Node.touch()NodeValue.touch()
0.6.10 Extension Release #
Added:
- autodetection when getting a path without any trailing '/' or './'. This automatism requires
await StorageMapper.initDatabaseExpander();to be called prior to relying on this automatism.
0.6.9 Quality Release #
Added:
- an additional check making sure that faulty persisted dates are fixed.
0.6.8 Bugfix Release #
Fixes:
- race condition in timestamp initialization.
0.6.7 Bugfix Release #
Fixes:
- an issue when the :configTimestamp is not valid.
0.6.6 Enhancment and Bugfixing release (Minor Breaking Changes) #
Modified:
- constructor of
SearchCriteriahas no longer positional optional arguments but named arguments.
Added:
- implements the replication enhancements #21 (global unique timestamp)
- implements #22 (Hash for search result) fully.
0.6.5 Bugfixing Release #
Fixes:
- a bug in the search engine in conjunction with the SqliteMapper returning zero results. (credits to Nosa for pushing me onto that one)
0.6.4 Bugfixing and Enhancement Release #
Drop-in replacement offering bugfixing and some tame extensions to the API related to replication (complete but only limited functionality).
Added:
- introduces API extensions for #22 and #21 (Unique sortable timestamp )
Fixes:
- Resolves #23
0.6.3 Enhancement Release #
Added:
- a default
Serializer.serialVersionUid
0.6.2 Extension #
Added:
Serializer.byteArrayToInt()andSerializer.intToByteArray(). This allows to minimize double implementation of functionality in GeigerAPI
0.6.1 Bugfix Release #
Fixes:
- GitHub issue #19 (race condition on initialize)
- dart analyze
0.6.0 Reorganization to Accommodate External Plugins (Breaking) #
This is a breaking change. While most of the calls (see below) remain the same, most of the calls now return a future instead of the value itself. Please be careful when migrating as the weak typing of dart does not immediately show all issues when changing. PLease be especially careful when comparing two objects as the "equals" method is now async.
Modifies:
- Switches to async design to accommodate passthrough controller of GeigerAPI
- A node must have an owner (enfoced now)
- Dummy mapper requires new the owner to be specified when starting (just pick any String)
- Some minor changes in the API of the node. There is no longer a dart setter for visibility and owner as dart does not allow returning a future in a getter but set the variable. Instead, a java style setter was introduced.
Fixes:
- issue with breaking flushes of the database to the disk.
0.5.6 Bugfix Release #
Fixes:
- serialization of search criteria
0.5.5 Bugfix Release #
Fixes:
- issues with
StorageExceptionserialization (added support)
0.5.4 Bugfix Release #
Fixes:
- exported serialization
0.5.3 Bugfix and Extension Release #
Added:
- Serialization capabilities for primitives and nodes.
Fixes:
- Some minor changes in the Fields class (casing)
0.5.2 Bugfix Release #
Breaking change:
- We moved to the dart getter/setter style breaking some compatibility
Known issues:
- Serializer is broken (prereq for GeigerAPI)
0.5.1 Bugfix and Quality Release #
Modified:
- Moved to "lints: ^1.0.1" as a replacement for "pedantic: ^1.11.1" (No impact for implementations)
Fixes:
- an issue related to the sqlite storage backend and "nulled" ordinals (namely owner)
- issue with nodes comparison when owner not set (detected in conjunction with sqlite)
- bad example in README
- better feedback in case of exception
Known issues:
- Serializer is broken (prereq for GeigerAPI)
0.5.0 Initial Release #
Initial dart version for consortium internal testing.