Commit 7407848
Finish Refactor, Make Configurable Controller Pipeline, and Make ParseClients Dependency-Injectable (#329)
* Organize file structure and add Parse.Core project for future use.
* Organize file structure further, and extract certain configuration items into core dependency injection container.
* Make sure that temporary cache is cleared when the host application is closed.
* Undo simplification of IParseCorePlugins and implementation in order to allow tests to pass, and apply minor refactorings.
* Move IParseCorePlugins and implementation to management-related namespaces until it is converted into a generalized DI container or one is made.
* Introduce new ServiceHub-based infrastructure elements and use them instead of the old plugins system, then make the main library compile. Also, restructure metadata injection, and inject revocable session token information as well as all server connection data, as opposed to having any of it statically defined or stored in the ParseClient class.
* Complete refactored usage of dependency injection via merged plugin container interface IServiceHub, and rewrite tests to account for the change.
* Fix all bugs according to tests.
* Added theoretical support for concurrent users.
* Change main project folder and namespace structure again, and clean up residual and/or unneeded files and systems.
* Add late initialized IMutableServiceHub implementation, use IServiceHub implementation instance passed to ParseClient constructor as BuildHub call target if the implementation also implements IMutableServiceHub, make sure IMutableServiceHub-implementing IServiceHub implementations passed to ParseClient constructor are passed the given IServerConnectionData implementation instance if they have null ServerConnectionData properties, allow values to be set in LateInitializer, change LateInitializer to be an internal class, add tests for LateInitializer, rename Parse.Test to Parse.Tests, update appveyor build script to reflect Parse.Test rename and Visual Studio target version bump, add various syntax adjustments to make code more idiomatic, remove ParsePushModule.cs, and fix a race condition in ParseCommandRunner.cs.
* Update README.md, add and document SignUpAsync IServiceHub extension method, and update documentation of non-cloning ParseClient constructors and LogInAsync IServiceHub extension method.
* Rename IStorageController and related items to derivative names of ICacheController, add IDiskFileCacheController, rename ICacheLocationConfiguration and related items to derivative names of IRelativeCacheLocationGenerator, rename various items within renamed IStorageController, allow IDiskFileCacheController to regenerate tracked file wrappers and memory cache when requested storage paths change, make CacheController not auto-create files until needed, rename CacheLocationMutator to RelativeCacheLocationMutato, make AbsoluteCachePathMutator for changing the absolute cache path from a file in subfolder of LocalApplicationData or equivalent on other platforms, document various items, rename ParseClient.Configuration to ServerConnectionData and remove it to use IServiceHub-inherited member, rename IStorageDictionary to IDataCache, rename VirtualStorageDictionary to FileBackedCache, remove Parse.Abstractions.Storage and Parse.Abstractions.Internal namespaces, and update README.md to reflect changes.
* Rename ConcurrentUserStorageController to VirtualCacheController, and VirtualStorageDictionary to VirtualDataStore.
* Update exception messages, rename ConcurrentUserStorageController to TransientCacheController, and rename VirtualDataStore to VirtualCache.
* Update README.md.
* Update SignUpAsync IServiceHub extension method logic, and make ParseObject.Services publicly settable.
Co-authored-by: Tobias <TobiasPott@users.noreply.github.com>1 parent daafde9 commit 7407848
File tree
266 files changed
+12511
-13548
lines changed- Parse.Tests
- Parse.Test
- Parse
- Abstractions
- Infrastructure
- Control
- Data
- Execution
- Platform
- Analytics
- Authentication
- Cloud
- Configuration
- Files
- Installations
- Objects
- Push
- Queries
- Sessions
- Users
- Infrastructure
- Control
- Data
- Execution
- Utilities
- Internal
- Analytics
- Cloud/Controller
- Command
- Config/Controller
- Encoding
- File
- Controller
- State
- InstallationId/Controller
- Modules
- Object
- Controller
- State
- Subclassing
- Operation
- Push
- Controller
- DeviceInfo
- Installation
- Coder
- Controller
- State
- Query/Controller
- Session/Controller
- Storage/Controller
- User/Controller
- Utilities
- Platform
- Analytics
- Cloud
- Configuration
- Files
- Installations
- Location
- Objects
- Push
- Queries
- Relations
- Roles
- Security
- Sessions
- Users
- Public
- Utilities
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
266 files changed
+12511
-13548
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
| 12 | + | |
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
81 | 81 | | |
82 | 82 | | |
83 | 83 | | |
84 | | - | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
0 commit comments