/
RepositoryUpdatePlan.scala
124 lines (117 loc) · 4.62 KB
/
RepositoryUpdatePlan.scala
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
package org.knora.webapi.store.triplestore.upgrade
import com.typesafe.scalalogging.Logger
import org.knora.webapi.feature.FeatureFactoryConfig
import org.knora.webapi.store.triplestore.upgrade.plugins._
/**
* The plan for updating a repository to work with the current version of Knora.
*/
object RepositoryUpdatePlan {
/**
* Constructs list of all repository update plugins in chronological order.
*
* @param featureFactoryConfig the feature factor configuration.
*/
def makePluginsForVersions(featureFactoryConfig: FeatureFactoryConfig, log: Logger): Seq[PluginForKnoraBaseVersion] =
Seq(
PluginForKnoraBaseVersion(
versionNumber = 1,
plugin = new UpgradePluginPR1307(featureFactoryConfig),
prBasedVersionString = Some("PR 1307")
),
PluginForKnoraBaseVersion(
versionNumber = 2,
plugin = new UpgradePluginPR1322(featureFactoryConfig),
prBasedVersionString = Some("PR 1322")
),
PluginForKnoraBaseVersion(
versionNumber = 3,
plugin = new UpgradePluginPR1367(featureFactoryConfig),
prBasedVersionString = Some("PR 1367")
),
PluginForKnoraBaseVersion(
versionNumber = 4,
plugin = new UpgradePluginPR1372(featureFactoryConfig),
prBasedVersionString = Some("PR 1372")
),
PluginForKnoraBaseVersion(versionNumber = 5, plugin = new NoopPlugin, prBasedVersionString = Some("PR 1440")),
PluginForKnoraBaseVersion(versionNumber = 6, plugin = new NoopPlugin), // PR 1206
PluginForKnoraBaseVersion(versionNumber = 7, plugin = new NoopPlugin), // PR 1403
PluginForKnoraBaseVersion(versionNumber = 8, plugin = new UpgradePluginPR1615(featureFactoryConfig)),
PluginForKnoraBaseVersion(versionNumber = 9, plugin = new UpgradePluginPR1746(featureFactoryConfig, log)),
PluginForKnoraBaseVersion(versionNumber = 10, plugin = new NoopPlugin), // PR 1808
PluginForKnoraBaseVersion(versionNumber = 11, plugin = new NoopPlugin), // PR 1813
PluginForKnoraBaseVersion(versionNumber = 12, plugin = new NoopPlugin), // PR 1891
PluginForKnoraBaseVersion(
versionNumber = 13,
plugin = new UpgradePluginPR1921(featureFactoryConfig, log),
prBasedVersionString = Some("PR 1921")
),
PluginForKnoraBaseVersion(versionNumber = 14, plugin = new NoopPlugin), // PR 1992
PluginForKnoraBaseVersion(
versionNumber = 20,
plugin = new UpgradePluginPR2018(featureFactoryConfig, log),
prBasedVersionString = Some("PR 2018")
),
PluginForKnoraBaseVersion(
versionNumber = 21,
plugin = new UpgradePluginPR2079(featureFactoryConfig, log),
prBasedVersionString = Some("PR 2079")
),
PluginForKnoraBaseVersion(
versionNumber = 22,
plugin = new UpgradePluginPR2081(featureFactoryConfig, log),
prBasedVersionString = Some("PR 2081")
)
)
/**
* The built-in named graphs that are always updated when there is a new version of knora-base.
*/
val builtInNamedGraphs: Set[BuiltInNamedGraph] = Set(
BuiltInNamedGraph(
filename = "knora-ontologies/knora-admin.ttl",
iri = "http://www.knora.org/ontology/knora-admin"
),
BuiltInNamedGraph(
filename = "knora-ontologies/knora-base.ttl",
iri = "http://www.knora.org/ontology/knora-base"
),
BuiltInNamedGraph(
filename = "knora-ontologies/salsah-gui.ttl",
iri = "http://www.knora.org/ontology/salsah-gui"
),
BuiltInNamedGraph(
filename = "knora-ontologies/standoff-onto.ttl",
iri = "http://www.knora.org/ontology/standoff"
),
BuiltInNamedGraph(
filename = "knora-ontologies/standoff-data.ttl",
iri = "http://www.knora.org/data/standoff"
)
)
/**
* Represents an update plugin with its knora-base version number and version string.
*
* @param versionNumber the knora-base version number that the plugin's transformation produces.
* @param plugin the plugin.
* @param prBasedVersionString the plugin's PR-based version string (not used for new plugins).
*/
case class PluginForKnoraBaseVersion(
versionNumber: Int,
plugin: UpgradePlugin,
prBasedVersionString: Option[String] = None
) {
lazy val versionString: String = {
prBasedVersionString match {
case Some(str) => str
case None => s"knora-base v$versionNumber"
}
}
}
/**
* Represents a Knora built-in named graph.
*
* @param filename the filename containing the named graph.
* @param iri the IRI of the named graph.
*/
case class BuiltInNamedGraph(filename: String, iri: String)
}