geiger_localstorage 0.8.2
geiger_localstorage: ^0.8.2 copied to clipboard
A hierarchical NOSQL storage for the GEIGER project providing an internationalized and event driven data storage.
0.8.2 Bugfix Release #
Changes:
- None (just republish of 0.8.1 as there is a strange state in the pub.flutter-io.cn db)
0.8.1 Bugfix Release #
Changes:
- Optimize StorageController initialization
- Make SearchCriteria filter tombstones by default
Fixes:
- Correct invalid SearchCriteria behavior
- Keys is now initialized with Visibility.red
- update initialization file
0.8.0 Bugfix Release #
Changes:
- Switch from big endian to little endian for primitive serialization for consistency with Dart serialization.
Fixes:
- Make serialization of node visibility consistent.
- Disallow adding child nodes to tombstone.
- Disallow repeated deletion of tombstone.
- Serialization of large long values.
- Make stack trace serialization consistent.
0.6.49 Bugfix Release and Improvements #
Fixes:
- Fixes an issue when evaluating Strings and a possible null pointer Exception.
- Fixes faulty recommendations in the store.data (missing types on recommendations short values).
- Fixes type support in the parser for
NodeValues
. - Fixes indentation issue when dumping nodes with values and prefix.
Improvements:
- Allows direct passing of
nodeValueType
in constructor ofSearchCriteria
as named parameter.
0.6.48 Bugfix Release #
Fixes:
- Fixes a serialization issue related to issue cyber-geiger/toolbox-communicationApi#22
0.6.47 Bugfix #
Fixes:
- Github issue #46: unexpected empty
node.getValues()
on deserialized skeleton node
0.6.46 No Changes #
Unintentionally published
0.6.45 Bugfix #
Fixes:
- Downgraded dependency of sqlite to 1.5.1 as the newer version (1.6.0) is incompatible with flutter_test which is required by upstream project.
Add:
- Adds a flag to not preload data into the storage (
GenericController.preloadData=fale
. DO NOT USE FOR PRODUCTION SYSTEMS! Feature will be removed in version 0.7.
0.6.44 Bugfix and Update Release #
Update:
- updated included store.data to be in sync with the cloud provided UUIDs.
Fixes:
- Fixes a bug when dumping values containing quotes.
- Fixes a bug when dumping nodevalues with a backslash or quote.
- Fixes a bug causing an endless loop when parsing NodeValues containing backslashes.
- Fixes a bug causing parsed nodes to have different modification value.
Add:
- NodeValueImpl have a constructor allowing to pass NodeValues optionally.
0.6.43 Bugfix Release #
Fixes:
- Fixed initial data loading
- Minor fix allowing to have multiple listeners listening to exactly the same SearchCriteria
- Fixed GitHub issue 47: last modified nodeValue not persistent
0.6.42 Bugfix Release #
Fixes:
- Github issue #46: empty
node.getValues()
when node is fromparent.getChildren()
(Now makes call to init skeletonized node) - Removed unused dependencies
http
andenum_to_string
. (not needed) - Set
uses-material-design
tofalse
(not needed) - Moved assets into the ./lib directory as new Flutter has "less" problems with it.
0.6.41 Bugfix Release #
Fixes:
- Fixes asset lookup
0.6.40 Bugfix Release #
Fixes:
- Moves assets into the lib folder to make it available outside the package (nasty change this is).
0.6.39 Bugfix Release #
Fixes:
- Various bugfixes to improve stability and reliability of the connections
0.6.38 Improvment release #
Improves:
- Better logging for the initial loading of data.
- Better test coverage by using more parts of the production code.
0.6.37 Bugfix Release #
Fixes:
- All preloaded values are new preloaded as TLP:WHITE (store.data adopted)
0.6.36 Bugfix Release #
Fixes:
- Fixes an issue with slow networks in conjunction with huge values and packet fragmentation (last fix was incomplete)
0.6.35 Bugfix Release #
Fixes:
- Fixes an issue with slow networks in conjunction with huge values and packet fragmentation
0.6.34 Improvement #
Improves:
- Drastically increases speed when serializing and deserializing huge objects
0.6.33 Increase of size constraint #
Improves:
- Increases field constraint to 20MB
Requires the database to be newly created in order to get effective (no upgrade path due to a constraint of SQLite)
0.6.32 Bugfix Release #
Fixes:
- Another deserialization bug when deserializing exceptions.
- Unified error messages and removed typos.
0.6.31 Bugfix Release #
Fixes:
- A tough deserialization bug when deserializing exceptions.
0.6.31 Bugfix Release #
Fixes:
- Github issue #41 (An external plugin cannot get local user/device Id) by assigning TLP:WHITE to all root nodes
0.6.30 Bugfix Release #
Removed:
- Preloading of node :Enterprise:208c345a-6a37-4164-b25d-dc39f0af10e6 (store data is not for testing but for preloading values)
Improved:
- Casting error messages are unified and throw better readable exceptions
0.6.29 Bugfix Release #
Fixes:
- Github issue #40 (Loding Master Node & Storage Listener)
0.6.28 Bugfix Release #
Fixes:
- Fixes a condition where a storage Exception could not be deserialized.
0.6.27 Bugfix release #
Fixes:
- Github issue #39 (I got an error saying that I can't load the Master Node after the updated version (0.6.26))
0.6.26 Bugfix release [BROKEN RELEASE] #
Important information (added later):
This release is broken. It requires the store asset assets/store/store.data
to be placed into the current
directory in order to work.
Fixes:
- A possible race-condition when initializing the database.
- Reinitiallizes automatically the
ExtendedTimestamp
with 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.
- Proper logging and a default option if assets are missing.
- An issue when loading assets in a multi package environment.
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
addOrUpdateValue
as 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
SearchCriteria
has 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
StorageException
serialization (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.