* Removing obsoleted code from ApiMediaQueryService.cs
* Removing obsoleted code from ApiRichTextMarkupParserTests.cs
* Removing obsoleted code from ContentCacheRefresher.cs
* Removing obsoleted code from ContentFinderByUrlAlias.cs and adjusting its tests to use the new logic
* Removing obsoleted code from ContentFinderByUrl.cs & its dependencies
* Removing obsoleted code from ApiRichTextMarkupParserTests.cs
* Removing obsoleted code from DocumentCache.cs & its dependencies
* Removing obsoleted code from MediaCache.cs & its dependencies
* Removing obsoleted code from PublishedCacheBase.cs & its dependencies
* Removing obsoleted code from RenderNoContentController.cs and its tests
* Removing obsoleted code from UmbracoRouteValueTransformer.cs
* Removing obsoleted constructors from DefaultUrlProvider.cs
* Removing accidental bookmark
* Introducing a helper method to get the root keys in ApiMediaQueryService.cs
* Removing obsoleted code from Cache classes
* Removing unused imports
* Refactoring to meet the CR
* Added attribute to controller
* Fixing missing using statement
* Removing obsoleted constructor from ExternalLoginService.cs and making usages fit
* Removing obsoleted method from IContentTypeFilter.cs
* Removing obsoleted methods from IContentEditingService.cs
* Removing obosoleted code from DocumentUrlService.cs
* Removed obsoleted code from DataTypeService.cs
* Removed obsoleted code from PublishStatusService.cs
* Removing obsoleted code from the IContentPublishingService.cs and its dependencies. Also implementing a TODO in the service implementation
* Removing obsoleted code from IRelationService.cs
* Removing obsoleted code from ContentPublishingService.cs
* Removing obsoleted code from ContentEditingService.cs
* Removing obsoleted code from Constants-DataTypes.cs
* Removing obsoleted code from IAction.cs and its implementations
* Removing obsoleted code from IContentService.cs
* Removing obsoleted code from DomainUtilities.cs
* Removing obsoleted code from IIndexedEntitySearchService.cs and dependencies
* Removing obsoleted code from UrlProvider.cs
* Removing obsoleted code from AliasUrlProvider.cs
* Removing obsoleted code from ApiContentRouteBuilder.cs
* Removing obsoleted code from ApiPublishedContentCache.cs
* Removing obsoleted class TemplateQueryResult.cs
* Removing obsoleted code from ApiContentBuilder.cs
* Removing obsoleted code from HealthCheck.cs
* Removing obsoleted code from ContentTypeEditingService.cs
* Removing obsoleted code from NewDefaultUrlProvider.cs
* Removing obsoleted code from PublishedElementPropertyBase.cs
* Removing obsoleted code from WebhookRequestService.cs
* Bumping to obsolete in V18, due to usage in class that will be removed in V18
* Removing obsoleted code from PropertyValidationService.cs
* Removing obsoleted code from AddUnroutableContentWarningsWhenPublishingNotificationHandler.cs
* Removing obsoleted code from IMemberService.cs
* Removing obsoleted code from DocumentCache.cs
* Optimize document and media seeding by looking up from database in batches.
* Ensure null values aren't stored in the cache when checking existance.
* Fixed failing integration tests.
* Resolved issue with not writing to the L1 cache on an L2 hit.
* Tidied up and populated XML header comments.
* Address issue raised in code review.
* Introduce IsDocumentPublishedInAnyCulture
Sometimes we don't care about culture
* Check ancestor path when resolving cache items
* Fix tests
* Rebuild NavigationService
* Only set node if it has a published ancestor path
* Remove branch when unpublished
* Add tests
* Add seed test
* Consider published ancestor path when seeding documents
* Introduce MediaBreadthFirstKeyProviderTests
This is needed since the logic of document and media is no longer the same
* Remove unused services
* Move assert page to helper
* Add variant tests
* Add tests
* Filter keys in ContentTypeSeedKeyProvider
* Fix tests
* Add failing test showing refreshing issue
* Don't blow up if we can't resolve the node from navigation cache
Turns out that this can actually happen :D Should be fine to just return false
* Refactor cache refresher check
* Make NavigationQueryService service protected
* Add comment on how to refactor breadth first key provider
* Refactor if statement
* Add custom serializer
* Add migration to rebuild cache
* Rename migration namespace to 15.1
* Also clear media cache
* Remove failed cache items
* Refactor to only use keys for document cache repository
---------
Co-authored-by: nikolajlauridsen <nikolajlauridsen@protonmail.ch>
* Changed the cache entry settings to be explicit and exposed it in the schema file
* commit of tests
* Fix seed options
---------
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Move DocumentCacheService
* Add clear all documentws from memory cache
* Fix RedirectTracker
* Implement refresh node/branch/all/delete
* Only update databasecache in RefreshContentAsync
* Fix tests
* Skip blueprints in cache
* Clear caches when contenttype is updated
* Clear cache on data type update
* Refresh media
* Only update memory cache from refreshers
* Fix imports
* Add named options
* Use cache entry settings in media
* Obsolete nucache settings
---------
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Add cache refresher
* make public as needed for serialization
* Use content type cache to get content type out
* Refactor to use ContentCacheNode model, that goes in the memory cache
* Remove content node kit as its not needed
* Implement tests for ensuring caching
* Implement better asserts
* Implement published property
* Refactor to use mapping
* Rename to document tests
* Update to test properties
* Create more tests
* Refactor mock tests into own file
* Update property test
* Fix published version of content
* Change default cache level to elements
* Refactor to always have draft
* Refactor to not use PublishedModelFactory
* Added tests
* Added and updated tests
* Fixed tests
* Don't return empty object with id
* More tests
* Added key
* Another key
* Refactor CacheService to be responsible for using the hybrid cache
* Use notification handler to remove deleted content from cache
* Add more tests for missing functions
* Implement missing methods
* Remove HasContent as it pertains to routing
* Fik up test
* formatting
* refactor variable names
* Implement variant tests
* Map all the published content properties
* Get item out of cache first, to assert updated
* Implement member cache
* Add member test
* Implement media cache
* Implement property tests for media tests
* Refactor tests to use extension method
* Add more media tests
* Refactor properties to no longer have element caching
* Don't use property cache level
* Start implementing seeding
* Only seed when main
* Add Immutable for performance
* Implement permanent seeding of content
* Implement cache settings
* Implement tests for seeding
* Update package version
* start refactoring nurepo
* Refactor so draft & published nodes are cached individually
* Refactor RefreshContent to take node instead of IContent
* Refactor media to also use cache nodes
* Remove member from repo as it isn't cached
* Refactor media to not include preview, as media has no draft
* create new benchmark project
* POC Integration benchmarks with custom api controllers
* Start implementing content picker tests
* Implement domain cache
* Rework content cache to implement interface
* Start implementing elements cache
* Implement published snapshot service
* Publish snapshot tests
* Use snapshot for elements cache
* Create test proving we don't clear cache when updating content picker
* Clear entire elements cache
* Remove properties from element cache, when content gets updated.
* Rename methods to async
* Refactor to use old cache interfaces instead of new ones
* Remove snapshot, as it is no longer needed
* Fix tests building
* Refactor domaincache to not have snapshots
* Delete benchmarks
* Delete benchmarks
* Add HybridCacheProject to Umbraco
* Add comment to route value transformer
* Implement is draft
* remove snapshot from property
* V15 updated the hybrid caching integration tests to use ContentEditingService (#16947)
* Added builder extension withParentKey
* Created builder with ContentEditingService
* Added usage of the ContentEditingService to SETUP
* Started using ContentEditingService builder in tests
* Updated builder extensions
* Fixed builder
* Clean up
* Clean up, not done
* Added Ids
* Remove entries from cache on delete
* Fix up seeding logic
* Don't register hybrid cache twice
* Change seeded entry options
* Update hybrid cache package
* Fix up published property to work with delivery api again
* Fix dependency injection to work with tests
* Fix naming
* Dont make caches nullable
* Make content node sealed
* Remove path and other unused from content node
* Remove hacky 2 phase ctor
* Refactor to actually set content templates
* Remove umbraco context
* Remove "HasBy" methods
* rename property data
* Delete obsolete legacy stuff
* Add todo for making expiration configurable
* Add todo in UmbracoContext
* Add clarifying comment in content factory
* Remove xml stuff from published property
* Fix according to review
* Make content type cache injectible
* Make content type cache injectible
* Rename to database cache repository
* Rename to document cache
* Add TODO
* Refactor to async
* Rename to async
* Make everything async
* Remove duplicate line from json schema
* Move Hybrid cache project
* Remove leftover file
* Refactor to use keys
* Refactor published content to no longer have content data, as it is on the node itself
* Refactor to member to use proper content node ctor
* Move tests to own folder
* Add immutable objects to property and content data for performance
* Make property data public
* Fix member caching to be singleton
* Obsolete GetContentType
* Remove todo
* Fix naming
* Fix lots of exposed errors due to scope test
* Add final scope tests
* Rename to document cache service
* Rename test files
* Create new doc type tests
* Add ignore to tests
* Start implementing refresh for content type save
* Clear contenttype cache when contenttype is updated
* Fix test
Teh contenttype is not upated unless the property is dirty
* Updated tests
* Added tests
* Use init for ContentSourceDto
* Startup of setup
* Fix get by key in PublishedContentTypeCache
* Remove ContentType from PublishedContentTypeCache when contenttype is deleted
* Created interfaces for the builder with the necessary properties
* Created builder for PropertyTypeContainer
* Created builder for PropertyTypeEditing
* Created builder for PropertyTypeValidationEditing
* Made adjustments to the builder
* Updated name of usage
* Commented out to test
* Cleaned up builders
* Updated integration test setup
* Moved tests
* Added interface
* Add IDocumentSeedKeyProvider and migrate existing logic to seed key provider
* Added functionality to the INavigationQueryService to get root keys
* Fixed issue with navigation
* Created helper to Convert a IContentType to ContentTypeUpdateModel
* Added interfaces
* Added builder
* Cleaned up builders and added fixes
* Added tests for PublishedContentTypeCache
* Applied changes in builder
* Add BreadthFirstKeyProvider
* Use ISet for seedkey providers
* Implement GetContentSource by key
* Seed the cache with keys provided by seed key providers
* Builder updates
* Test setup updates
* Updated tests
* Dont require contenttype keys for seeding
* Fix cache settings
* Don't inject cache settings into SeedingNotificationHandler
* Fix tests
* Use enlistment for setting updated cache item
* Pin seeded nodes for longer
* Fix BreadthFirstKeyProvider
* Fix ContentTypeSeedKeyProvider
* Fix tests
* Only seed published documents
* Only cache published if contentCacheNode is not draft
* Fix incorrect templateId
* Removed unnecessary setup
* initialized value
* Fixed template test
* Removed test
* Updated tests
* Removed code that was not used
* Removed unused cacheSettings
* Re-organize to support media cache seeding
* Add MediaBreadthFirstKeyProvider
* Seed media
* Don't use IdKeyMap when removing content from cache
* Don't clear IdKeyMap in DocumentCacheService
* Add unit tests
* Don't use IdKeyMap when deleting media
* Add default value to timespan
* Use cancellation tokens when doing loop
* Fixed Models Builder error
* Builder testing
* Media test
* Created builders
* Updated method from getByKey to getById to maintain structure
* Updated test setup
* Moved tests
* Cleaned up builders
* Added helper
* Added space
* Updated tests
* Cleaned setup
* Added tests for MediaTypes
* Uncommented tests
* Added builder extensions
* Added interfaces for builder methods
* Updated to use interface pattern
* Updated name
* Used builder
* Cleaned up test
* Added media scope tests
* Removed PropertyTypeModelBuilder
* moved PropertyTypeModelBuilder to PropertyTypeEditingBuilder
* Removed constructor
* Removed duplicate
* Fixed naming
* Reverted
* Removed space
* Added todos
* Removed only run on linux
* Commet out DocumentHybridCacheTemplateTest again
This is fixed in the release branch
* Update media when media type is updated
* Remove todo the tests pass now
---------
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: Zeegaan <skrivdetud@gmail.com>
Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: nikolajlauridsen <nikolajlauridsen@protonmail.ch>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Add cache refresher
* make public as needed for serialization
* Use content type cache to get content type out
* Refactor to use ContentCacheNode model, that goes in the memory cache
* Remove content node kit as its not needed
* Implement tests for ensuring caching
* Implement better asserts
* Implement published property
* Refactor to use mapping
* Rename to document tests
* Update to test properties
* Create more tests
* Refactor mock tests into own file
* Update property test
* Fix published version of content
* Change default cache level to elements
* Refactor to always have draft
* Refactor to not use PublishedModelFactory
* Added tests
* Added and updated tests
* Fixed tests
* Don't return empty object with id
* More tests
* Added key
* Another key
* Refactor CacheService to be responsible for using the hybrid cache
* Use notification handler to remove deleted content from cache
* Add more tests for missing functions
* Implement missing methods
* Remove HasContent as it pertains to routing
* Fik up test
* formatting
* refactor variable names
* Implement variant tests
* Map all the published content properties
* Get item out of cache first, to assert updated
* Implement member cache
* Add member test
* Implement media cache
* Implement property tests for media tests
* Refactor tests to use extension method
* Add more media tests
* Refactor properties to no longer have element caching
* Don't use property cache level
* Start implementing seeding
* Only seed when main
* Add Immutable for performance
* Implement permanent seeding of content
* Implement cache settings
* Implement tests for seeding
* Update package version
* start refactoring nurepo
* Refactor so draft & published nodes are cached individually
* Refactor RefreshContent to take node instead of IContent
* Refactor media to also use cache nodes
* Remove member from repo as it isn't cached
* Refactor media to not include preview, as media has no draft
* create new benchmark project
* POC Integration benchmarks with custom api controllers
* Start implementing content picker tests
* Implement domain cache
* Rework content cache to implement interface
* Start implementing elements cache
* Implement published snapshot service
* Publish snapshot tests
* Use snapshot for elements cache
* Create test proving we don't clear cache when updating content picker
* Clear entire elements cache
* Remove properties from element cache, when content gets updated.
* Rename methods to async
* Refactor to use old cache interfaces instead of new ones
* Remove snapshot, as it is no longer needed
* Fix tests building
* Refactor domaincache to not have snapshots
* Delete benchmarks
* Delete benchmarks
* Add HybridCacheProject to Umbraco
* Add comment to route value transformer
* Implement is draft
* remove snapshot from property
* V15 updated the hybrid caching integration tests to use ContentEditingService (#16947)
* Added builder extension withParentKey
* Created builder with ContentEditingService
* Added usage of the ContentEditingService to SETUP
* Started using ContentEditingService builder in tests
* Updated builder extensions
* Fixed builder
* Clean up
* Clean up, not done
* Added Ids
* Remove entries from cache on delete
* Fix up seeding logic
* Don't register hybrid cache twice
* Change seeded entry options
* Update hybrid cache package
* Fix up published property to work with delivery api again
* Fix dependency injection to work with tests
* Fix naming
* Dont make caches nullable
* Make content node sealed
* Remove path and other unused from content node
* Remove hacky 2 phase ctor
* Refactor to actually set content templates
* Remove umbraco context
* Remove "HasBy" methods
* rename property data
* Delete obsolete legacy stuff
* Add todo for making expiration configurable
* Add todo in UmbracoContext
* Add clarifying comment in content factory
* Remove xml stuff from published property
* Fix according to review
* Make content type cache injectible
* Make content type cache injectible
* Rename to database cache repository
* Rename to document cache
* Add TODO
* Refactor to async
* Rename to async
* Make everything async
* Remove duplicate line from json schema
* Move Hybrid cache project
* Remove leftover file
* Refactor to use keys
* Refactor published content to no longer have content data, as it is on the node itself
* Refactor to member to use proper content node ctor
* Move tests to own folder
* Add immutable objects to property and content data for performance
* Make property data public
* Fix member caching to be singleton
* Obsolete GetContentType
* Remove todo
* Fix naming
* Fix lots of exposed errors due to scope test
* Add final scope tests
* Rename to document cache service
* Rename test files
* Create new doc type tests
* Add ignore to tests
* Start implementing refresh for content type save
* Clear contenttype cache when contenttype is updated
* Fix test
Teh contenttype is not upated unless the property is dirty
* Updated tests
* Added tests
* Use init for ContentSourceDto
* Startup of setup
* Fix get by key in PublishedContentTypeCache
* Remove ContentType from PublishedContentTypeCache when contenttype is deleted
* Created interfaces for the builder with the necessary properties
* Created builder for PropertyTypeContainer
* Created builder for PropertyTypeEditing
* Created builder for PropertyTypeValidationEditing
* Made adjustments to the builder
* Updated name of usage
* Commented out to test
* Cleaned up builders
* Updated integration test setup
* Moved tests
* Added interface
* Add IDocumentSeedKeyProvider and migrate existing logic to seed key provider
* Added functionality to the INavigationQueryService to get root keys
* Fixed issue with navigation
* Created helper to Convert a IContentType to ContentTypeUpdateModel
* Added interfaces
* Added builder
* Cleaned up builders and added fixes
* Added tests for PublishedContentTypeCache
* Applied changes in builder
* Add BreadthFirstKeyProvider
* Use ISet for seedkey providers
* Implement GetContentSource by key
* Seed the cache with keys provided by seed key providers
* Builder updates
* Test setup updates
* Updated tests
* Dont require contenttype keys for seeding
* Fix cache settings
* Don't inject cache settings into SeedingNotificationHandler
* Fix tests
* Use enlistment for setting updated cache item
* Pin seeded nodes for longer
* Fix BreadthFirstKeyProvider
* Fix ContentTypeSeedKeyProvider
* Fix tests
* Only seed published documents
* Only cache published if contentCacheNode is not draft
* Fix incorrect templateId
* Removed unnecessary setup
* initialized value
* Fixed template test
* Removed test
* Updated tests
* Removed code that was not used
* Removed unused cacheSettings
* Re-organize to support media cache seeding
* Add MediaBreadthFirstKeyProvider
* Seed media
* Don't use IdKeyMap when removing content from cache
* Don't clear IdKeyMap in DocumentCacheService
* Add unit tests
* Don't use IdKeyMap when deleting media
* Add default value to timespan
* Use cancellation tokens when doing loop
* Fixed Models Builder error
* Builder testing
* Media test
* Created builders
* Updated method from getByKey to getById to maintain structure
* Updated test setup
* Moved tests
* Cleaned up builders
* Added helper
* Added space
* Updated tests
* Cleaned setup
* Added tests for MediaTypes
* Uncommented tests
* Added builder extensions
* Added interfaces for builder methods
* Updated to use interface pattern
* Updated name
* Used builder
* Cleaned up test
* Added media scope tests
* Removed PropertyTypeModelBuilder
* moved PropertyTypeModelBuilder to PropertyTypeEditingBuilder
* Removed constructor
* Removed duplicate
* Fixed naming
* Reverted
* Removed space
* Added todos
* Removed only run on linux
* Commet out DocumentHybridCacheTemplateTest again
This is fixed in the release branch
* Update media when media type is updated
* Remove todo the tests pass now
---------
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: Zeegaan <skrivdetud@gmail.com>
Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: nikolajlauridsen <nikolajlauridsen@protonmail.ch>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Remove nucache reference from Web.Common
* Get tests building-ish
* Move ReservedFieldNamesService to the right project
* Remove IPublishedSnapshotStatus
* Added functionality to the INavigationQueryService to get root keys
* Fixed issue with navigation
* Remove IPublishedSnapshot from UmbracoContext
* Begin removing usage of IPublishedSnapshot from PublishedContentExtensions
* Fix PublishedContentExtensions.cs
* Don't use snapshots in delivery media api
* Use IPublishedMediaCache in QueryMediaApiController
* Remove more usages of IPublishedSnapshotAccessor
* Comment out tests
* Remove more usages of PublishedSnapshotAccessor
* Remove PublishedSnapshot from property
* Fixed test build
* Fix errors
* Fix some tests
* Delete NuCache 🎉
* Implement DatabaseCacheRebuilder
* Remove usage of IPublishedSnapshotService
* Remove IPublishedSnapshotService
* Remove TestPublishedSnapshotAccessor and make tests build
* Don't test Snapshot cachelevel
It's no longer supported
* Fix BlockEditorConverter
Element != Element document type
* Remember to set cachemanager
* Fix RichTextParserTests
* Implement TryGetLevel on INavigationQueryService
* Fake level and obsolete it in PublishedContent
* Remove ChildrenForAllCultures
* Hack Path property on PublishedContent
* Remove usages of IPublishedSnapshot in tests
* More ConvertersTests
* Add hybrid cache to integration tests
We can actually do this now because we no longer save files on disk
* Rename IPublishedSnapshotRebuilder to ICacheRebuilder
* Comment out tests
* V15: Replacing the usages of Parent (navigation data) from IPublishedContent (#17125)
* Fix .Parent references in PublishedContentExtensions
* Add missing methods to FriendlyPublishedContentExtensions (ones that you were able to call on the content directly as they now require extra params)
* Fix references from the extension methods
* Fix dependencies in tests
* Replace IPublishedSnapshotAccessor with the content cache in tests
* Resolving more .Parent references
* Fix unit tests
* Obsolete and use extension methods
* Remove private method and use extension instead
* Moving code around
* Fix tests
* Fix more references
* Cleanup
* Fix more usages
* Resolve merge conflict
* Fix tests
* Cleanup
* Fix more tests
* Fixed unit tests
* Cleanup
* Replace last usages
---------
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Remove usage of IPublishedSnapshotAccessor from IRequestItemProvider
* Post merge fixup
* Remo IPublishedSnapshot
* Add HasAny to IDocumentUrlService
* Fix TextBuilder
* Fix modelsbuilder tests
* Use explicit types
* Implement GetByContentType
* Support element types in PublishedContentTypeCache
* Run enlistments before publishing notifications
* Fix elements cache refreshing
* Implement GetByUdi
* Implement GetAtRoot
* Implement GetByRoute
* Reimplement GetRouteById
* Fix blocks unit tests
* Initialize domain cache on boot
* Only return routes with domains on non default lanauges
* V15: Replacing the usages of `Children` (navigation data) from `IPublishedContent` (#17159)
* Update params in PublishedContentExtensions to the general interfaces for the published cache and navigation service, so that we can use the extension methods on both documents and media
* Introduce GetParent() which uses the right services
* Fix obsolete message on .Parent
* Obsolete .Children
* Fix usages of Children for ApiMediaQueryService
* Fix usage in internal
* Fix usages in views
* Fix indentation
* Fix issue with delete language
* Update nuget pacakges
* Clear elements cache when content is deleted
instead of trying to update it
* Reset publishedModelFactory
* Fixed publishing
---------
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
Co-authored-by: kjac <kja@umbraco.dk>
* Update to dotnet 9 and update nuget packages
* Update umbraco code version
* Update Directory.Build.props
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
* Include preview version in pipeline
* update template projects
* update global json with specific version
* Update version.json to v15
* Rename TrimStart and TrimEnd to string specific
* Rename to Exact
* Update global.json
Co-authored-by: Ronald Barendse <ronald@barend.se>
* Remove includePreviewVersion
* Rename to trim exact
* Add new Hybridcache project
* Add tests
* Start implementing PublishedContent.cs
* Implement repository for content
* Refactor to use async everywhere
* Add cache refresher
* make public as needed for serialization
* Use content type cache to get content type out
* Refactor to use ContentCacheNode model, that goes in the memory cache
* Remove content node kit as its not needed
* Implement tests for ensuring caching
* Implement better asserts
* Implement published property
* Refactor to use mapping
* Rename to document tests
* Update to test properties
* Create more tests
* Refactor mock tests into own file
* Update property test
* Fix published version of content
* Change default cache level to elements
* Refactor to always have draft
* Refactor to not use PublishedModelFactory
* Added tests
* Added and updated tests
* Fixed tests
* Don't return empty object with id
* More tests
* Added key
* Another key
* Refactor CacheService to be responsible for using the hybrid cache
* Use notification handler to remove deleted content from cache
* Add more tests for missing functions
* Implement missing methods
* Remove HasContent as it pertains to routing
* Fik up test
* formatting
* refactor variable names
* Implement variant tests
* Map all the published content properties
* Get item out of cache first, to assert updated
* Implement member cache
* Add member test
* Implement media cache
* Implement property tests for media tests
* Refactor tests to use extension method
* Add more media tests
* Refactor properties to no longer have element caching
* Don't use property cache level
* Start implementing seeding
* Only seed when main
* Add Immutable for performance
* Implement permanent seeding of content
* Implement cache settings
* Implement tests for seeding
* Update package version
* start refactoring nurepo
* Refactor so draft & published nodes are cached individually
* Refactor RefreshContent to take node instead of IContent
* Refactor media to also use cache nodes
* Remove member from repo as it isn't cached
* Refactor media to not include preview, as media has no draft
* create new benchmark project
* POC Integration benchmarks with custom api controllers
* Start implementing content picker tests
* Implement domain cache
* Rework content cache to implement interface
* Start implementing elements cache
* Implement published snapshot service
* Publish snapshot tests
* Use snapshot for elements cache
* Create test proving we don't clear cache when updating content picker
* Clear entire elements cache
* Remove properties from element cache, when content gets updated.
* Rename methods to async
* Refactor to use old cache interfaces instead of new ones
* Remove snapshot, as it is no longer needed
* Fix tests building
* Refactor domaincache to not have snapshots
* Delete benchmarks
* Delete benchmarks
* Add HybridCacheProject to Umbraco
* Add comment to route value transformer
* Implement is draft
* remove snapshot from property
* V15 updated the hybrid caching integration tests to use ContentEditingService (#16947)
* Added builder extension withParentKey
* Created builder with ContentEditingService
* Added usage of the ContentEditingService to SETUP
* Started using ContentEditingService builder in tests
* Updated builder extensions
* Fixed builder
* Clean up
* Clean up, not done
* Added Ids
* Remove entries from cache on delete
* Fix up seeding logic
* Don't register hybrid cache twice
* Change seeded entry options
* Update hybrid cache package
* Fix up published property to work with delivery api again
* Fix dependency injection to work with tests
* Fix naming
* Dont make caches nullable
* Make content node sealed
* Remove path and other unused from content node
* Remove hacky 2 phase ctor
* Refactor to actually set content templates
* Remove umbraco context
* Remove "HasBy" methods
* rename property data
* Delete obsolete legacy stuff
* Add todo for making expiration configurable
* Add todo in UmbracoContext
* Add clarifying comment in content factory
* Remove xml stuff from published property
* Fix according to review
* Make content type cache injectible
* Make content type cache injectible
* Rename to database cache repository
* Rename to document cache
* Add TODO
* Refactor to async
* Rename to async
* Make everything async
* Remove duplicate line from json schema
* Move Hybrid cache project
* Remove leftover file
* Refactor to use keys
* Refactor published content to no longer have content data, as it is on the node itself
* Refactor to member to use proper content node ctor
* Move tests to own folder
* Add immutable objects to property and content data for performance
* Make property data public
* Fix member caching to be singleton
* Obsolete GetContentType
* Remove todo
* Fix naming
* Fix lots of exposed errors due to scope test
* Add final scope tests
* Rename to document cache service
* Rename test files
* Create new doc type tests
* Add ignore to tests
* Start implementing refresh for content type save
* Clear contenttype cache when contenttype is updated
* Fix test
Teh contenttype is not upated unless the property is dirty
* Updated tests
* Added tests
* Use init for ContentSourceDto
* Startup of setup
* Fix get by key in PublishedContentTypeCache
* Remove ContentType from PublishedContentTypeCache when contenttype is deleted
* Created interfaces for the builder with the necessary properties
* Created builder for PropertyTypeContainer
* Created builder for PropertyTypeEditing
* Created builder for PropertyTypeValidationEditing
* Made adjustments to the builder
* Updated name of usage
* Commented out to test
* Cleaned up builders
* Updated integration test setup
* Moved tests
* Added interface
* Add IDocumentSeedKeyProvider and migrate existing logic to seed key provider
* Added functionality to the INavigationQueryService to get root keys
* Fixed issue with navigation
* Created helper to Convert a IContentType to ContentTypeUpdateModel
* Added interfaces
* Added builder
* Cleaned up builders and added fixes
* Added tests for PublishedContentTypeCache
* Applied changes in builder
* Add BreadthFirstKeyProvider
* Use ISet for seedkey providers
* Implement GetContentSource by key
* Seed the cache with keys provided by seed key providers
* Builder updates
* Test setup updates
* Updated tests
* Dont require contenttype keys for seeding
* Fix cache settings
* Don't inject cache settings into SeedingNotificationHandler
* Fix tests
* Use enlistment for setting updated cache item
* Pin seeded nodes for longer
* Fix BreadthFirstKeyProvider
* Fix ContentTypeSeedKeyProvider
* Fix tests
* Only seed published documents
* Only cache published if contentCacheNode is not draft
* Fix incorrect templateId
* Removed unnecessary setup
* initialized value
* Fixed template test
* Removed test
* Updated tests
* Removed code that was not used
* Removed unused cacheSettings
* Re-organize to support media cache seeding
* Add MediaBreadthFirstKeyProvider
* Seed media
* Don't use IdKeyMap when removing content from cache
* Don't clear IdKeyMap in DocumentCacheService
* Add unit tests
* Don't use IdKeyMap when deleting media
* Add default value to timespan
* Use cancellation tokens when doing loop
* Fixed Models Builder error
---------
Co-authored-by: Zeegaan <skrivdetud@gmail.com>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
Co-authored-by: Ronald Barendse <ronald@barend.se>
Co-authored-by: Andreas Zerbst <andr317c@live.dk>
Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: Andreas Zerbst <73799582+andr317c@users.noreply.github.com>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Update to dotnet 9 and update nuget packages
* Update umbraco code version
* Update Directory.Build.props
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
* Include preview version in pipeline
* update template projects
* update global json with specific version
* Update version.json to v15
* Rename TrimStart and TrimEnd to string specific
* Rename to Exact
* Update global.json
Co-authored-by: Ronald Barendse <ronald@barend.se>
* Remove includePreviewVersion
* Rename to trim exact
* Add new Hybridcache project
* Add tests
* Start implementing PublishedContent.cs
* Implement repository for content
* Refactor to use async everywhere
* Add cache refresher
* make public as needed for serialization
* Use content type cache to get content type out
* Refactor to use ContentCacheNode model, that goes in the memory cache
* Remove content node kit as its not needed
* Implement tests for ensuring caching
* Implement better asserts
* Implement published property
* Refactor to use mapping
* Rename to document tests
* Update to test properties
* Create more tests
* Refactor mock tests into own file
* Update property test
* Fix published version of content
* Change default cache level to elements
* Refactor to always have draft
* Refactor to not use PublishedModelFactory
* Added tests
* Added and updated tests
* Fixed tests
* Don't return empty object with id
* More tests
* Added key
* Another key
* Refactor CacheService to be responsible for using the hybrid cache
* Use notification handler to remove deleted content from cache
* Add more tests for missing functions
* Implement missing methods
* Remove HasContent as it pertains to routing
* Fik up test
* formatting
* refactor variable names
* Implement variant tests
* Map all the published content properties
* Get item out of cache first, to assert updated
* Implement member cache
* Add member test
* Implement media cache
* Implement property tests for media tests
* Refactor tests to use extension method
* Add more media tests
* Refactor properties to no longer have element caching
* Don't use property cache level
* Start implementing seeding
* Only seed when main
* Add Immutable for performance
* Implement permanent seeding of content
* Implement cache settings
* Implement tests for seeding
* Update package version
* start refactoring nurepo
* Refactor so draft & published nodes are cached individually
* Refactor RefreshContent to take node instead of IContent
* Refactor media to also use cache nodes
* Remove member from repo as it isn't cached
* Refactor media to not include preview, as media has no draft
* create new benchmark project
* POC Integration benchmarks with custom api controllers
* Start implementing content picker tests
* Implement domain cache
* Rework content cache to implement interface
* Start implementing elements cache
* Implement published snapshot service
* Publish snapshot tests
* Use snapshot for elements cache
* Create test proving we don't clear cache when updating content picker
* Clear entire elements cache
* Remove properties from element cache, when content gets updated.
* Rename methods to async
* Refactor to use old cache interfaces instead of new ones
* Remove snapshot, as it is no longer needed
* Fix tests building
* Refactor domaincache to not have snapshots
* Delete benchmarks
* Delete benchmarks
* Add HybridCacheProject to Umbraco
* Add comment to route value transformer
* Implement is draft
* remove snapshot from property
* V15 updated the hybrid caching integration tests to use ContentEditingService (#16947)
* Added builder extension withParentKey
* Created builder with ContentEditingService
* Added usage of the ContentEditingService to SETUP
* Started using ContentEditingService builder in tests
* Updated builder extensions
* Fixed builder
* Clean up
* Clean up, not done
* Added Ids
* Remove entries from cache on delete
* Fix up seeding logic
* Don't register hybrid cache twice
* Change seeded entry options
* Update hybrid cache package
* Fix up published property to work with delivery api again
* Fix dependency injection to work with tests
* Fix naming
* Dont make caches nullable
* Make content node sealed
* Remove path and other unused from content node
* Remove hacky 2 phase ctor
* Refactor to actually set content templates
* Remove umbraco context
* Remove "HasBy" methods
* rename property data
* Delete obsolete legacy stuff
* Add todo for making expiration configurable
* Add todo in UmbracoContext
* Add clarifying comment in content factory
* Remove xml stuff from published property
* Fix according to review
* Make content type cache injectible
* Make content type cache injectible
* Rename to database cache repository
* Rename to document cache
* Add TODO
* Refactor to async
* Rename to async
* Make everything async
* Remove duplicate line from json schema
* Move Hybrid cache project
* Remove leftover file
* Refactor to use keys
* Refactor published content to no longer have content data, as it is on the node itself
* Refactor to member to use proper content node ctor
* Move tests to own folder
* Add immutable objects to property and content data for performance
* Make property data public
* Fix member caching to be singleton
* Obsolete GetContentType
* Remove todo
* Fix naming
* Fix lots of exposed errors due to scope test
* Add final scope tests
* Rename to document cache service
* Rename test files
* Create new doc type tests
* Add ignore to tests
* Start implementing refresh for content type save
* Clear contenttype cache when contenttype is updated
* Fix test
Teh contenttype is not upated unless the property is dirty
* Use init for ContentSourceDto
* Fix get by key in PublishedContentTypeCache
* Remove ContentType from PublishedContentTypeCache when contenttype is deleted
* Update to preview 7
* Fix versions
* Increase timeout for sqlite integration tests
* Undo timeout increase
* Try and undo init change to ContentSourceDto
* That wasn't it chief
* Try and make DomainAndUrlsTests non NonParallelizable
* Update versions
* Only run cache tests on linux for now
---------
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
Co-authored-by: Ronald Barendse <ronald@barend.se>
Co-authored-by: Andreas Zerbst <andr317c@live.dk>
Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: Andreas Zerbst <73799582+andr317c@users.noreply.github.com>
Co-authored-by: nikolajlauridsen <nikolajlauridsen@protonmail.ch>