Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

U4-7558 Fix GetAll repository level caching for repositories that return a query result based on the result of GetAll #1002

Merged
merged 13 commits into from
Jan 11, 2016

Commits on Jan 6, 2016

  1. Adds Isolated cache to the CacheHelper, adds cache option: GetAllCach…

    …eAsCollection, changes the default repository cache to be an isolated cache (instead of part of the single main dictionary cache), adds the logic for the cache option GetAllCacheAsCollection to RepositoryBase, updates Language and Domain repositories to use GetAllCacheAsCollection, updates RepositoryFactory to be the one responsible for injecting a DeepCloneRuntimeCacheProvider and to use a single _noCache instance.
    Shazwazza committed Jan 6, 2016
    Configuration menu
    Copy the full SHA
    b04d0fc View commit details
    Browse the repository at this point in the history
  2. Moves DeepCloneRuntimeCacheProvider to Cache namespace. Creates DeepC…

    …loneableList + tests. Updates RepositoryBase to use DeepCloneableList when GetAllCacheAsCollection is used (so that all entries that get cached are deep cloned into and out-of the cache). Adds test for DeepCloneRuntimeCacheProvider for dealing with this list type.
    Shazwazza committed Jan 6, 2016
    Configuration menu
    Copy the full SHA
    4f40fff View commit details
    Browse the repository at this point in the history
  3. Updates all cache refreshers to reference the IsolatedRuntimeCache wh…

    …ere required, refactors how IsolatedRuntimeCache is exposed on the CacheHelper, ensures that IsolatedRuntimeCache is used in all repositories instead of the global RuntimeCache, changes all obsolete usages of CacheHelper to the non obsolete equivalent, obsoletes many of the cache keys, obsoletes a couple cache refreshers that aren't used anymore in 7.3, simplifies CacheHelper with regards to it's 'disabled' cache state.
    Shazwazza committed Jan 6, 2016
    Configuration menu
    Copy the full SHA
    ff829d4 View commit details
    Browse the repository at this point in the history
  4. Updates DictionaryRepository(s) to have custom GetAll caching options…

    … - to basically disable it since there could be tons of these and currently an IDictionaryItem is a massive entity (need to fix that)
    Shazwazza committed Jan 6, 2016
    Configuration menu
    Copy the full SHA
    827f7a7 View commit details
    Browse the repository at this point in the history
  5. fixes issue with RepositoryBase - it would cache all entities with a …

    …single key even if there were ids specified which is wrong. Updates TemplateRepository to use a single GetAll query as its base source and it uses the GetAllCacheAsCollection option, also massively simplifies its GetDescendants methods, obsoletes some unused code,
    Shazwazza committed Jan 6, 2016
    4 Configuration menu
    Copy the full SHA
    b91661c View commit details
    Browse the repository at this point in the history

Commits on Jan 7, 2016

  1. Changes PublicAccessRepository to use GetAllCacheAsCollection option …

    …and return a single result by ID based on the cache of GetAll
    Shazwazza committed Jan 7, 2016
    Configuration menu
    Copy the full SHA
    6d13d33 View commit details
    Browse the repository at this point in the history
  2. ensures that the public access cache refresher is called when a publi…

    …c access item is deleted.
    Shazwazza committed Jan 7, 2016
    Configuration menu
    Copy the full SHA
    3e985ac View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    68aa6ff View commit details
    Browse the repository at this point in the history
  4. Adds cache policy tests

    Shazwazza committed Jan 7, 2016
    Configuration menu
    Copy the full SHA
    63785ae View commit details
    Browse the repository at this point in the history
  5. Refactors DictionaryItem and DictionaryTranslation so that the attach…

    …ed ILanguage entity is not cached nor cloned. This will save on lots of memory and cloning cycles especially if there are quire a few dictioanry items. Unfortunatley to achieve this requires a not so pretty hack where we need to assign an internal callback to the model so it knows how to retrieve the language when it needs it. In v8, the ILanguage entity will not be attached at all. This also fixes a cache refresher issue for when a language is deleted -> all dictionary cache must be removed. This commit also changes a method name: ClearAllIsolatedCacheByRepositoryEntityType
    Shazwazza committed Jan 7, 2016
    Configuration menu
    Copy the full SHA
    d7a142e View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    fb5faa3 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    2b13297 View commit details
    Browse the repository at this point in the history
  8. missing a file save

    Shazwazza committed Jan 7, 2016
    Configuration menu
    Copy the full SHA
    ba91bf0 View commit details
    Browse the repository at this point in the history