Commit Graph

168 Commits

Author SHA1 Message Date
Shannon
a9508886bf Merge branch 'v8/bugfix/8893-examine-startup' into v8/feature/nucache-perf
# Conflicts:
#	src/Umbraco.Core/Sync/DatabaseServerMessenger.cs
#	src/Umbraco.Core/Sync/ISyncBootStateAccessor.cs
#	src/Umbraco.Core/Sync/NonRuntimeLevelBootStateAccessor.cs
#	src/Umbraco.Core/Sync/SyncBootState.cs
#	src/Umbraco.Tests/PublishedContent/NuCacheChildrenTests.cs
#	src/Umbraco.Tests/PublishedContent/NuCacheTests.cs
#	src/Umbraco.Tests/Scoping/ScopedNuCacheTests.cs
#	src/Umbraco.Tests/Services/ContentTypeServiceVariantsTests.cs
#	src/Umbraco.Tests/TestHelpers/TestSyncBootStateAccessor.cs
#	src/Umbraco.Web/Compose/DatabaseServerRegistrarAndMessengerComponent.cs
#	src/Umbraco.Web/PublishedCache/NuCache/NuCacheComposer.cs
#	src/Umbraco.Web/PublishedCache/NuCache/PublishedSnapshotService.cs
2021-05-24 13:55:07 -07:00
Shannon
be3bfe1b63 Removes Booting event, backports lazy changes for PublishedSnapshotService from v9. 2021-05-24 12:32:57 -07:00
Shannon
053a56a45b Removes the callbacks from DatabaseServerMessenger, moves logic for cold boot into the components responsible for what needs to happen in cold boot. This is still not ideal but we are stuck with backwards compat. In netcore the initialization will be fixed up (if not already). Ensure examine rebuilds don't occur until the first http request is done instead of on a timer which could be problematic with cold boots. 2021-04-26 18:07:23 +10:00
Shannon Deminick
dccec91073 Merge pull request #9859 from nzdev/v8/bugfix/fix-cold-boot
Reduce cold boot times by loading content and media only once on cold boot
2021-04-26 15:52:41 +10:00
Shannon
e434f77f2f uses const as config key 2021-04-23 15:40:36 +10:00
nzdev
306c82f871 Change log to Info 2021-04-23 17:03:32 +12:00
Chad
7704d02883 Merge in #9859 to v8/feature/nucache-perf (#10152)
* load only once

* Bump version to 8.6.8

* Initial rework of Lock dictionaries

* [Issue 5277-146] accessibility - Close 'X' icon next to language drop… (#9264)

* [Issue 5277-146] accessibility - Close 'X' icon next to language drop down is identified as "link" - screen reader

* add new loacalization key

* Fix issue with SqlMainDomLock that cannot use implicit lock timeouts … (#9973)

* Fix issue with SqlMainDomLock that cannot use implicit lock timeouts … (#9973)

(cherry picked from commit da5351dfcf)

* Adjust unit tests and apply fixes to scope

* Add more unit tests, showing current issue

* Counting Umbraco.ModelsBuilder and ModelsBuilder.Umbraco namespaces as external providers

* Fix dead lock with TypeLoader

* Fix errors shown in unit tests

* Throw error if all scopes hasn't been disposed

* Clean

* Fixes and Updates for DB Scope and Ambient Context leaks (#9953)

* Adds some scope tests (ported back from netcore) and provides a much better error message, ensure execution context is not flowed to child tasks that shouldn't leak any current ambient context

* updates comment

* Ensure SqlMainDomLock suppresses execution context too

* Since we're awaiting a task in a library method, ConfigureAwait(false)

* missing null check

Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>

* Adds additional error checking and reporting to MainDom/SqlMainDomLock (#9954)

Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>

* Add copy logic to Media Picker (#9957)

* Add copy logic to Media Picker

* Add action for copy all

* Fix for selectable media item

* Wrap calls to map in scopes

* Autocomplete scopes

* Remove unnecessary aria-hidden attribute from <umb-icon>

* Remove scope from method that calls another method that has a scope

* Fixes #9993 - Cannot save empty image in Grid

* Clean

* Revert "The Value() method for IPublishedContent was not working with the defaultValue parameter" (#9989)

* Use a hashset to keep track of acquired locks

This simplifies disposing/checking for locks greatly.

* Add images in grid - fixes 9982 (#9987)

Co-authored-by: Sebastiaan Janssen <sebastiaan@umbraco.com>

* Only create the dicts and hashset when a lock is requested

* Clean

* Adds a config for configuring the access rules on the content dashboard - by default it granted for all user groups

* Adds additional params indicating whether user is admin

* Add images in grid - fixes 9982 (#9987)

Co-authored-by: Sebastiaan Janssen <sebastiaan@umbraco.com>
(cherry picked from commit e2019777fb)

* Bump version to 8.12.2

* #9964 Removed unneeded check for HttpContext

* Fix for #9950 - HttpsCheck will now retry using the login background image if inital request returns 301/302. Excessvie Headers check will now check the root url instead of the backoffice

* Merge pull request #9994 from umbraco/v8/bugfix/9993

Fixes #9993 - Cannot save empty image in Grid

(cherry picked from commit 0ecc933921)

* Apply suggestions from review

* Fixes #9983 - Getting kicked, if document type has a Umbraco.UserPicker property (#10002)

* Fixes #9983

Temporary fix for this issue. using the entityservice like before.

* Needed to remove the call to usersResource here as well for displaying the picked items

* Don't need usersResource for now

* Fixes #9983 - Getting kicked, if document type has a Umbraco.UserPicker property (#10002)

* Fixes #9983

Temporary fix for this issue. using the entityservice like before.

* Needed to remove the call to usersResource here as well for displaying the picked items

* Don't need usersResource for now

(cherry picked from commit 45de0a101e)

* 8539: Allow alias in image cropper (#9266)

Co-authored-by: Owain Williams <owaingdwilliams@gmail.com>

* Wrap dumping dictionaries in a method.

* Create method for generating log message

And remove forgotten comments.

* Fix swedish translation for somethingElse.

* Copy member type (#10020)

* Add copy dialog for member type

* Implement copy action for member type

* Create specific localization for content type, media type and member type

* Handle "foldersonly" querystring

* Add button type attribute

* Add a few missing changes of anchor to button element

* Null check on scope and options to ensure backward compatibility

* Improve performance, readability and handling of FollowInternalRedirects (#9889)

* Improve performance, readability and handling of FollowInternalRedirects

* Logger didn't like string param

Passing string param to _logger.Debug<PublishedRouter, int> wasn't happy. Changed to pass existing internalRedirectAsInt variable.

Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>

* Update casing of listview layout name

* 9097 add contextual password helper (#9256)

* update back-office forms

* Display tip on reset password page as well

* add directive for password tip

* integrate directove in login screen

* forgot the ng-keyup :-)

* adapt tooltip directive to potential different Members and Users password settings

* remove watcher

Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>

* Unbind listener

Listening for splitViewRequest was only unbound if the split view editor was opened. Not cleaning up the listener caused a memory leak when changing between nodes as the spit view editor was detached but not garbage-collected

* Replace icon in date picker with umb-icon component (#10040)

* Replace icon in date picker with <umb-icon> component

* Adjust height of clear button

* Update cypress and fix tests

* Listview config icons (#10036)

* Update icons to use <umb-icon> component

* Simplify markup and use disabled button

* Use move cursor style on sortable handle

* Add class for action column

* Update setting auto focus

* Increase font size of umb-panel-header-icon

* Anchor noopener (#10009)

* Set rel="noopener" for anchors with target="_blank"

* Reverted unwanted changes to Default.cshtml

* Align 'Add language' test to netcore

* Add new cypress tests

* Add indentation

* Getting rid of the config file and implementing an appSetting instead

* Implementation for IContentDashboardSettings

* Cleanup

* bool.Try

* Taking AllowContentDashboardAccessToAllUsers prop from GlobalSettings to ContentDashboardSettings and saving AccessRulesFromConfig into a backing field

* fix support for non run states

* Handling multiple values per field in Examine Management

* Add Root<T> and Breadcrumbs extension methods for IPublishedContent (#9033)

* Fix usage of obsolete CreatorName and WriterName properties

* Add generic Root extension method

* Add Breadcrumbs extension methods

* Orders member type grouping of members alphabetically, matching the listing of member types.

* Revert updating deprecated WriterName/CreatorName refs

Changing the properties to use the extensions is a good thing (given the props are deprecated), but causes issues deep in tests. I'm reverting that change to fix the tests, and all refs to the deprecated properties should be updated in one sweep, to deal with any other test issues that might crop up.

* Handle Invalid format for Upgrade check

* Fixes tabbing-mode remains active after closing modal #9790 (#10074)

* Allow to pass in boolean to preventEnterSubmit directive (#8639)

* Pass in value to preventEnterSubmit directive

* Set enabled similar to preventDefault and preventEnterSubmit directives

* Update prevent enter submit value

* Init value from controller

* Use a different default input id prefix for umb-search-filter

* Fix typo

* Check for truthly value

* Revert "Set enabled similar to preventDefault and preventEnterSubmit directives"

This reverts commit 536ce855c4545ead82cea77b4013bf9010a8687b.

* None pointer events when clicking icon

* Use color variable

* Fixes tabbing-mode remains active after closing modal #9790 (#10074)

(cherry picked from commit c881fa9e7d)

* Null check on scope and options to ensure backward compatibility

(cherry picked from commit fe8cd239d2)

* Fix validation of step size in integer/numeric field

* 9962: Use $allowedEditors instead of allowed (#10086)

* 9962: Use $allowedEditors instead of allowed

* 9962: Remove redundant statement

* fixes #10021 adds ng-form and val-form-manager to the documentation

* Improved accessibility of link picker (#10099)

* Added support for screeen reader alerts on the embed so that assitive technology knows when a url retrieve has been succesfull.
Added labels for the controls
Preview reload only triggered if the values for height and width change

* Added control ids for the link picker

* Add French translation

* Accessibility: Alerts the user how many results have been returned on a tree search (#10100)

* Added support for screeen reader alerts on the embed so that assitive technology knows when a url retrieve has been succesfull.
Added labels for the controls
Preview reload only triggered if the values for height and width change

* Tree search details the number of search items returned

* Add French translations

* Updated LightInject to v6.4.0

* Remove HtmlSanitizer once more - see #9803

* Also make sure NuGet installs the correct version of the CodePages dependency

* Bump version to 8.13 RC

* Fixed copy preserving sort order (#10091)

* Revert "Updated LightInject to v6.4.0"

This reverts commit fc77252ec7.

* Revert "Add copy logic to Media Picker (#9957)"

This reverts commit f7c032af65.

* Reintroduce old constructor to make non-breaking

* Update cypress test to make macros in the grid work again

* Attributes could be multiple items, test specifically if `Directory` is an attribute

* Accessibility: Adding label fors and control ids for the macro picker (#10101)

* Added support for screeen reader alerts on the embed so that assitive technology knows when a url retrieve has been succesfull.
Added labels for the controls
Preview reload only triggered if the values for height and width change

* Added support for label fors for the macro picker and also gave the ,acro search box a title

* Now displays a count of the matching macros returned. Please note the language file amends shared with #10100

* Removed src-only class for the display of the count of messages

* Updating typo

* Removed top-margin from switcher icon

* Allow KeepAlive controller Ping method to be requested by non local requests (#10126)

* Allow KeepAlive controller Ping method to be requested by non local requests and accept head requests

* removed unused references

* fix csproj

* fix merge

* btree serializer optimizations

* array pool and nametable optimizations

Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
Co-authored-by: Sebastiaan Janssen <sebastiaan@umbraco.com>
Co-authored-by: Justin Shearer <justin.shearer@gmail.com>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Co-authored-by: Callum Whyte <hey@callumwhyte.com>
Co-authored-by: Shannon <sdeminick@gmail.com>
Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>
Co-authored-by: patrickdemooij9 <patrickdemooij98@hotmail.com>
Co-authored-by: Bjarne Fyrstenborg <bjarne_fyrstenborg@hotmail.com>
Co-authored-by: Michael Latouche <michael@crossingpaths.be>
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
Co-authored-by: Markus Johansson <markus@obviuse.se>
Co-authored-by: Jeavon Leopold <jeavon@crumpled-dog.com>
Co-authored-by: Benjamin Carleski <benjamin@proworks.com>
Co-authored-by: Owain Williams <owaingdwilliams@gmail.com>
Co-authored-by: Jesper Löfgren <jesper.lofgren@sappa.se>
Co-authored-by: Martin Bentancour <mbe@umbraco.dk>
Co-authored-by: Ronald Barendse <ronald@panoramastudios.nl>
Co-authored-by: Andy Butland <abutland73@gmail.com>
Co-authored-by: BeardinaSuit <BeardInASuit@outlook.com>
Co-authored-by: Mads Rasmussen <madsr@hey.com>
Co-authored-by: Rachel Breeze <RachBreeze@users.noreply.github.com>
Co-authored-by: Dave de Moel <d.demoel@wearetriple.com>
Co-authored-by: ric <60885685+ricbrady@users.noreply.github.com>
Co-authored-by: Carole Rennie Logan <crgrieve@users.noreply.github.com>
Co-authored-by: Dennis Öhman <dennis.ohman@bjornmamman.se>
2021-04-21 09:05:37 +10:00
Shannon
1ab73b35a4 Merge remote-tracking branch 'origin/v8/contrib' into v8/feature/nucache-perf 2021-03-12 16:50:00 +11:00
Shannon
a62112ab82 Don't call the same method over and over 2021-03-12 16:33:09 +11:00
Chad
b8540ca128 Improve speed and reduce allocations by implementing logger overloads to avoid params [] allocation (#8917)
* Implement logger overloads to avoid params [] allocation

* Implement console logger ILogger

* Call correct signature

* Fix exceptions

* Introduce ILogger2

* fix logger reference

Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
2021-02-22 08:22:49 +10:00
nzdev
7d135899be load only once 2021-02-21 20:45:03 +13:00
Shannon
32f88dba95 removes CompressedStorageAttribute, makes IPropertyCacheCompressionOptions which can be defined in DI to configure what properties can be compressed in memory and new IReadOnlyContentBase to provide some context to the IPropertyCacheCompressionOptions 2021-01-28 13:50:18 +11:00
Shannon
67a9b5bb97 Refactors the serialization of the content data that is stored in the nucache table. This had to change because we need to resolve content type data in order to check if the property should be compressed and we cannot do that data lookup while the data is being processed since we get an open data reader exception. This is fixed now by using a serializer factory instead so the Create method can do any initialization needed prior to running any serialization operation. Renames a few things so we dont have ContentNested (whatever that meant ) 2020-09-25 00:32:11 +10:00
Shannon
6bd6d97bda WIP (fixes migrations) 2020-09-24 18:37:24 +10:00
Shannon
9a06b6291a Simplifies compression implementation, adds compression options to target all complex editors, ensures the options are per document type/property type 2020-08-26 15:57:13 +10:00
nzdev
c1c189d47f Wip support for compressing/decompressing nucache documents on a per property basis. Option for compressing the properties in sql/nucache.db. Option for immediate/lazy decompression of properties. Mapping support for shorter property alias.
TODO: config file for property map
TODO:  HasValue and IsValue on propertyvalueconverterbase
2020-07-09 00:17:31 +12:00
Shannon
1280235dcf Adds custom mapper for SqlCe for Image column, hopefully tests pass now. 2020-07-06 16:25:15 +10:00
Shannon
39625d94dd Adds migration for binary column on cmsContentNu 2020-07-03 15:41:25 +10:00
Shannon
c63bfb866b Adds MessagePack serialization for nucache 2020-07-03 12:11:05 +10:00
Shannon
dd6cebca82 Merge branch 'v8/nucache-serializer' of https://github.com/nzdev/Umbraco-CMS into nzdev-v8/nucache-serializer 2020-07-03 00:52:40 +10:00
Shannon
3735b6d391 Fixes paging size for querying the nucache table so it doesn't timeout 2020-07-02 16:21:54 +10:00
nzdev
578e1317a0 Introduce IContentNestedDataSerializer to allow injecting a custom serializer for nucache 2020-07-01 17:19:56 +12:00
Bjarke Berg
5b7f1227f9 Bugfix for issue with hanging saves. + Fix for double post of save templates 2020-05-22 10:46:13 +02:00
Shannon
e62fef8faf Ensures entire nucache linked list is not rebuild on schema changes when disabled 2020-04-20 23:22:03 +10:00
Shannon
8927472457 Merge remote-tracking branch 'origin/v8/dev' into v8/bugfix/models-builder-enable-flag 2020-04-20 22:45:50 +10:00
Shannon
44df0dda2b adding an event 2020-04-20 22:45:12 +10:00
Shannon
49da58b23c adds notes 2020-04-17 14:56:49 +10:00
Shannon
2509dc3749 runs in parallel the call to rebuild the in-memory cache from the db sources when in pure live mode and content types change 2020-04-17 14:46:45 +10:00
Poornima Nayar
a9bb1ff49e Merge pull request #7021 from stevemegson/v8/pr/member-cmsContentNu
OnMemberRefreshedEntity stores data as published rather than edited
2020-02-17 15:26:48 +00:00
Bjarke Berg
b84961bcbc Merge remote-tracking branch 'origin/v8/dev' into v8/bugfix/AB3323-SqlMainDom
# Conflicts:
#	src/Umbraco.Core/Migrations/Upgrade/UmbracoPlan.cs
#	src/Umbraco.Web/PublishedCache/NuCache/PublishedSnapshotService.cs
2020-01-22 07:06:43 +01:00
Bjarke Berg
6d92f5915a Merge remote-tracking branch 'origin/v8/8.5' into v8/dev
# Conflicts:
#	src/SolutionInfo.cs
2020-01-15 13:44:42 +01:00
Shannon
95337d5a70 Cleans up old notes 2020-01-06 21:39:26 +11:00
Shannon
94d05b1768 Fixes #7404 - Deadlock issue 2020-01-06 21:14:46 +11:00
Shannon
c2ac5e8531 Fixes a couple more issues with recursive locks 2020-01-06 18:34:04 +11:00
Shannon
243e76b3cc Removes ability to have recursive locks in SnapDictionary, changes logic to require locking around the methods just like ContentStore, updates tests 2020-01-03 15:04:39 +11:00
Shannon
8e3b3c8326 Changes methods that should already be locked to check that they are and changes their names/adds docs 2020-01-03 13:21:49 +11:00
Shannon
3d8e9a78e3 Fixes deadlock 2020-01-03 12:39:17 +11:00
Shannon
a46e9124d2 First commit in fixing deadlock - committing my notes, etc... 2020-01-03 10:38:48 +11:00
Shannon
6bba032325 re-merges 2019-12-04 16:09:39 +11:00
Shannon
8218467e04 Merge branch 'v8/dev' into v8/bugfix/6546-MainDom-Cleanup
# Conflicts:
#	src/Umbraco.Core/MainDom.cs
#	src/Umbraco.Web/PublishedCache/NuCache/ContentStore.cs
#	src/Umbraco.Web/PublishedCache/NuCache/PublishedSnapshotService.cs
2019-12-04 16:09:22 +11:00
Steve Megson
486dd0b8ea PublishedSnapshotService.OnMemberRefreshedEntity stores data as published rather than edited 2019-10-31 11:39:52 +00:00
Bjarke Berg
ad6343719b Merge branch 'v8/8.2' into v8/dev
# Conflicts:
#	src/SolutionInfo.cs
2019-10-31 11:48:53 +01:00
Shannon
68db41fe93 Ensures that when there is no cache file, or if a cache file is empty, on startup any call to SetAllFastSorted was not ensuring the local db cache file was updated if the data was loaded from the database. 2019-10-31 18:58:07 +11:00
Shannon
bf37bbf4fe oops fixes the log output 2019-10-31 16:34:30 +11:00
Shannon
40e656de46 notes 2019-10-31 16:27:34 +11:00
Shannon
aff4814e0b Ensures that PublishedSnapshotService cannot close the local cache files after they are created but before they are populated 2019-10-31 16:06:43 +11:00
Shannon
c682bbcaf1 Adds notes and better logging to PublishedSnapshotService, fixes log output from HealthCheckNotifier, changes initial delay time of scheduled task to be longer. 2019-10-31 15:45:57 +11:00
Shannon
b04f9c17ae Makes some updates based on code reviews 2019-10-22 11:55:05 +11:00
JohnBlair
478bc708b9 Defensive programming around disposal of local content and media dbs. 2019-10-22 11:45:03 +11:00
JohnBlair
ee098e0194 Make sure the local dbs are disposed of if the content store was not created. 2019-10-22 11:44:07 +11:00