Page MenuHomePhabricator

Introduce RepositoryDefinitions object for repository settings
Closed, ResolvedPublic

Description

Currently repository settings are defined as Client's "foreignRepositories" setting. Loaded in Client particular settings are passed to several relevant classes (ie. DispatchingServiceFactory, RepositoryServiceContainerFactory) as different kinds of arrays. When Client enabled Repo also accesses Client's "foreignRepositories" setting to read information on entity types defined per repository.

In order for both classes requiring repository-config-related information and both Repo have a consistent way of accessing information defined in Client setting, RepositoryDefinitions object (similar to EntityTypeDefinitions and DataTypeDefinitions) should be introduced. The object will be populated with settings from the "foreignRepositories" settings and will be providing information required by Repo and relevant service factories (ie. it would have methods like getRepositoryDatabases returning mapping from repository names to database names, etc).

Also, having this kind of abstraction would make transition easier if we wanted to change the way how repositories are defined (e.g. move it out of Client settings).

Details

Related Gerrit Patches:
mediawiki/extensions/Wikibase : masterInject RepositoryDefinitions object to DispatchingServiceFactory
mediawiki/extensions/Wikibase : masterUse RepositoryDefinitions in top-level factories
mediawiki/extensions/Wikibase : masterIntroduce RepositoryDefinitions

Related Objects

StatusAssignedTask
Declineddchen
OpenNone
OpenNone
DuplicateNone
OpenNone
ResolvedAbit
DuplicateNone
OpenNone
OpenNone
OpenNone
OpenNone
OpenNone
OpenNone
StalledNone
ResolvedLydia_Pintscher
ResolvedLydia_Pintscher
ResolvedLydia_Pintscher
ResolvedWMDE-leszek
ResolvedWMDE-leszek
ResolvedWMDE-leszek
ResolvedWMDE-leszek

Event Timeline

WMDE-leszek created this task.
WMDE-leszek moved this task from Proposed to Doing on the Wikidata-Former-Sprint-Board board.
WMDE-leszek renamed this task from Introduce RepositoryDefintiions for object repository settings to Introduce RepositoryDefinitions for object repository settings.Feb 8 2017, 3:07 PM

Change 336646 had a related patch set uploaded (by WMDE-leszek):
Introduce RepositoryDefinitions

https://gerrit.wikimedia.org/r/336646

Change 336815 had a related patch set uploaded (by WMDE-leszek):
Use RepositoryDefinitions in top-level factories

https://gerrit.wikimedia.org/r/336815

Change 336827 had a related patch set uploaded (by WMDE-leszek):
Inject RepositoryDefinitions object to DispatchingServiceFactory

https://gerrit.wikimedia.org/r/336827

WMDE-leszek moved this task from Review to Doing on the Wikidata-Former-Sprint-Board board.

Change 336646 merged by jenkins-bot:
Introduce RepositoryDefinitions

https://gerrit.wikimedia.org/r/336646

WMDE-leszek renamed this task from Introduce RepositoryDefinitions for object repository settings to Introduce RepositoryDefinitions object for repository settings.Feb 10 2017, 12:36 PM
WMDE-leszek moved this task from Doing to Review on the Wikidata-Former-Sprint-Board board.

Change 336815 merged by jenkins-bot:
[mediawiki/extensions/Wikibase] Use RepositoryDefinitions in top-level factories

https://gerrit.wikimedia.org/r/336815

WMDE-leszek closed this task as Resolved.Mar 7 2017, 10:56 AM
WMDE-leszek moved this task from Doing to Done on the Wikidata-Former-Sprint-Board board.

Change 336827 merged by jenkins-bot:
[mediawiki/extensions/Wikibase] Inject RepositoryDefinitions object to DispatchingServiceFactory

https://gerrit.wikimedia.org/r/336827