forked from robknight/drupal-multiversion
/
multiversion.services.yml
95 lines (90 loc) · 3.64 KB
/
multiversion.services.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
parameters:
workspace.default: 1
services:
# Index Factory
multiversion.entity_index.factory:
class: Drupal\multiversion\Entity\Index\MultiversionIndexFactory
arguments: ['@service_container', '@workspace.manager']
# Index children
multiversion.entity_index.sequence.scope:
parent: multiversion.entity_index.sequence
scope: prototype
multiversion.entity_index.id.scope:
parent: multiversion.entity_index.id
scope: prototype
multiversion.entity_index.uuid.scope:
parent: multiversion.entity_index.uuid
scope: prototype
multiversion.entity_index.rev.scope:
parent: multiversion.entity_index.rev
scope: prototype
multiversion.entity_index.rev.tree.scope:
parent: multiversion.entity_index.rev.tree
scope: prototype
# Indexes
multiversion.entity_index.sequence:
class: Drupal\multiversion\Entity\Index\SequenceIndex
arguments: ['@keyvalue.sorted_set', '@workspace.manager', '@multiversion.manager']
multiversion.entity_index.id:
class: Drupal\multiversion\Entity\Index\EntityIndex
arguments: ['@keyvalue', '@workspace.manager']
multiversion.entity_index.uuid:
class: Drupal\multiversion\Entity\Index\UuidIndex
arguments: ['@keyvalue', '@workspace.manager']
multiversion.entity_index.rev:
class: Drupal\multiversion\Entity\Index\RevisionIndex
arguments: ['@keyvalue', '@workspace.manager']
multiversion.entity_index.rev.tree:
class: Drupal\multiversion\Entity\Index\RevisionTreeIndex
arguments: ['@keyvalue', '@workspace.manager', '@multiversion.entity_index.factory']
multiversion.entity.query.sql:
class: Drupal\multiversion\Entity\Query\Sql\QueryFactory
arguments: ['@database']
multiversion.manager:
class: Drupal\multiversion\MultiversionManager
arguments: ['@workspace.manager', '@serializer', '@entity.manager', '@state', '@language_manager', '@cache.discovery', '@database']
calls:
- [setContainer, ['@service_container']]
workspace.manager:
class: Drupal\multiversion\Workspace\WorkspaceManager
arguments: ['@request_stack', '@entity.manager', '@current_user', '@logger.channel.workspace']
tags:
- { name: service_collector, tag: workspace_negotiator, call: addNegotiator }
workspace.conflict_tracker:
class: Drupal\multiversion\Workspace\ConflictTracker
arguments: ['@keyvalue', '@workspace.manager']
cache_context.workspace:
class: Drupal\multiversion\WorkspaceCacheContext
arguments: ['@workspace.manager']
tags:
- { name: cache.context }
multiversion.stream_wrapper.migrate:
class: Drupal\multiversion\StreamWrapper\MigrateStream
tags:
- { name: stream_wrapper, scheme: migrate }
logger.channel.workspace:
parent: logger.channel_base
arguments: ['cron']
# @todo: {@link https://www.drupal.org/node/2597414 Simplify the container
# definition for negotiators.}
workspace.negotiator.default:
class: Drupal\multiversion\Workspace\DefaultWorkspaceNegotiator
calls:
- [setContainer, ['@service_container']]
- [setCurrentUser, ['@current_user']]
- [setWorkspaceManager, ['@workspace.manager']]
tags:
- { name: workspace_negotiator, priority: 0 }
workspace.negotiator.session:
class: Drupal\multiversion\Workspace\SessionWorkspaceNegotiator
arguments: ['@user.private_tempstore']
calls:
- [setContainer, ['@service_container']]
- [setCurrentUser, ['@current_user']]
- [setWorkspaceManager, ['@workspace.manager']]
tags:
- { name: workspace_negotiator, priority: 100 }
conflict.complexlca_resolver:
class: Drupal\multiversion\Entity\Index\ComplexLcaResolver
tags:
- { name: lca_resolver, priority: 20 }