This is an automated email from the ASF dual-hosted git repository.
zhangliang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new e7548caee6a Remove
MetaDataVersionPersistService.getActiveVersionByFullPath() (#34296)
e7548caee6a is described below
commit e7548caee6ad464d3d566e11953b2cd39a47c99a
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Jan 10 15:56:16 2025 +0800
Remove MetaDataVersionPersistService.getActiveVersionByFullPath() (#34296)
* Remove MetaDataVersionPersistService.getActiveVersionByFullPath()
* Remove MetaDataVersionPersistService.getActiveVersionByFullPath()
---
.../version/MetaDataVersionBasedPersistService.java | 8 --------
.../service/version/MetaDataVersionPersistService.java | 5 -----
.../service/version/MetaDataVersionPersistServiceTest.java | 6 ------
.../mode/metadata/manager/RuleItemManager.java | 5 ++---
.../database/metadata/StorageUnitChangedHandler.java | 6 ++----
.../handler/database/metadata/TableChangedHandler.java | 3 +--
.../handler/database/metadata/ViewChangedHandler.java | 3 +--
.../dispatch/handler/global/GlobalRuleChangedHandler.java | 3 +--
.../dispatch/handler/global/PropertiesChangedHandler.java | 3 +--
.../database/metadata/MetaDataChangedHandlerTest.java | 14 +++++++-------
.../handler/global/GlobalRuleChangedHandlerTest.java | 2 +-
.../handler/global/PropertiesChangedHandlerTest.java | 2 +-
12 files changed, 17 insertions(+), 43 deletions(-)
diff --git
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/version/MetaDataVersionBasedPersistService.java
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/version/MetaDataVersionBasedPersistService.java
index 9191f8e09a3..29aa6b89246 100644
---
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/version/MetaDataVersionBasedPersistService.java
+++
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/version/MetaDataVersionBasedPersistService.java
@@ -34,14 +34,6 @@ public interface MetaDataVersionBasedPersistService {
*/
void switchActiveVersion(Collection<MetaDataVersion> metaDataVersions);
- /**
- * Get active version by full path.
- *
- * @param fullPath full path
- * @return active version
- */
- String getActiveVersionByFullPath(String fullPath);
-
/**
* Get version path by active version.
*
diff --git
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/version/MetaDataVersionPersistService.java
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/version/MetaDataVersionPersistService.java
index 6db7277591c..6e54bbdf32e 100644
---
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/version/MetaDataVersionPersistService.java
+++
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/version/MetaDataVersionPersistService.java
@@ -48,11 +48,6 @@ public final class MetaDataVersionPersistService implements
MetaDataVersionBased
}
}
- @Override
- public String getActiveVersionByFullPath(final String fullPath) {
- return repository.query(fullPath);
- }
-
@Override
public String getVersionPathByActiveVersion(final String path, final
String activeVersion) {
return repository.query(DatabaseMetaDataNodePath.getVersionPath(path,
activeVersion));
diff --git
a/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/service/version/MetaDataVersionPersistServiceTest.java
b/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/service/version/MetaDataVersionPersistServiceTest.java
index 6eb49329c85..a1e54c1eb47 100644
---
a/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/service/version/MetaDataVersionPersistServiceTest.java
+++
b/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/service/version/MetaDataVersionPersistServiceTest.java
@@ -53,12 +53,6 @@ class MetaDataVersionPersistServiceTest {
verify(repository).delete("foo_db/versions/0");
}
- @Test
- void assertGetActiveVersionByFullPath() {
- when(repository.query("foo_db/active_version")).thenReturn("1");
-
assertThat(persistService.getActiveVersionByFullPath("foo_db/active_version"),
is("1"));
- }
-
@Test
void assertGetVersionPathByActiveVersion() {
when(repository.query("foo_db/versions/1")).thenReturn("foo_path");
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/RuleItemManager.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/RuleItemManager.java
index 5e48f7ccf3c..9d3361e0bbb 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/RuleItemManager.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/RuleItemManager.java
@@ -55,9 +55,8 @@ public class RuleItemManager {
*/
@SuppressWarnings({"rawtypes", "unchecked"})
public void alterRuleItem(final AlterRuleItem alterRuleItem) throws
SQLException {
-
Preconditions.checkArgument(alterRuleItem.getActiveVersion().equals(metaDataPersistService.getMetaDataVersionPersistService()
-
.getActiveVersionByFullPath(alterRuleItem.getActiveVersionKey())), "Invalid
active version: {} of key: {}",
- alterRuleItem.getActiveVersion(),
alterRuleItem.getActiveVersionKey());
+
Preconditions.checkArgument(alterRuleItem.getActiveVersion().equals(metaDataPersistService.getRepository().query(alterRuleItem.getActiveVersionKey())),
+ "Invalid active version: {} of key: {}",
alterRuleItem.getActiveVersion(), alterRuleItem.getActiveVersionKey());
RuleItemConfigurationChangedProcessor processor =
TypedSPILoader.getService(RuleItemConfigurationChangedProcessor.class,
alterRuleItem.getType());
String yamlContent =
metaDataPersistService.getMetaDataVersionPersistService()
.getVersionPathByActiveVersion(alterRuleItem.getActiveVersionKey(),
alterRuleItem.getActiveVersion());
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/StorageUnitChangedHandler.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/StorageUnitChangedHandler.java
index 075b7ce368d..b9a3100ce8d 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/StorageUnitChangedHandler.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/StorageUnitChangedHandler.java
@@ -41,8 +41,7 @@ public final class StorageUnitChangedHandler {
* @param event data changed event
*/
public void handleRegistered(final String databaseName, final String
dataSourceUnitName, final DataChangedEvent event) {
- Preconditions.checkArgument(event.getValue().equals(
-
contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService().getActiveVersionByFullPath(event.getKey())),
+
Preconditions.checkArgument(event.getValue().equals(contextManager.getPersistServiceFacade().getRepository().query(event.getKey())),
"Invalid active version: %s of key: %s", event.getValue(),
event.getKey());
DataSourcePoolProperties dataSourcePoolProps =
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDataSourceUnitService().load(databaseName,
dataSourceUnitName);
contextManager.getMetaDataContextManager().getStorageUnitManager().registerStorageUnit(databaseName,
Collections.singletonMap(dataSourceUnitName, dataSourcePoolProps));
@@ -56,8 +55,7 @@ public final class StorageUnitChangedHandler {
* @param event data changed event
*/
public void handleAltered(final String databaseName, final String
dataSourceUnitName, final DataChangedEvent event) {
- Preconditions.checkArgument(event.getValue().equals(
-
contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService().getActiveVersionByFullPath(event.getKey())),
+
Preconditions.checkArgument(event.getValue().equals(contextManager.getPersistServiceFacade().getRepository().query(event.getKey())),
"Invalid active version: %s of key: %s", event.getValue(),
event.getKey());
DataSourcePoolProperties dataSourcePoolProps =
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDataSourceUnitService().load(databaseName,
dataSourceUnitName);
contextManager.getMetaDataContextManager().getStorageUnitManager().alterStorageUnit(databaseName,
Collections.singletonMap(dataSourceUnitName, dataSourcePoolProps));
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/TableChangedHandler.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/TableChangedHandler.java
index c63faa1e2d6..e77e047dcce 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/TableChangedHandler.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/TableChangedHandler.java
@@ -47,8 +47,7 @@ public final class TableChangedHandler {
*/
public void handleCreatedOrAltered(final String databaseName, final String
schemaName, final DataChangedEvent event) {
String tableName =
TableMetaDataNodePath.getTableNameByActiveVersionPath(event.getKey()).orElseThrow(()
-> new IllegalStateException("Table name not found."));
- Preconditions.checkArgument(event.getValue().equals(
-
contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService().getActiveVersionByFullPath(event.getKey())),
+
Preconditions.checkArgument(event.getValue().equals(contextManager.getPersistServiceFacade().getRepository().query(event.getKey())),
"Invalid active version: %s of key: %s", event.getValue(),
event.getKey());
ShardingSphereTable table =
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataFacade().getTable().load(databaseName,
schemaName, tableName);
contextManager.getMetaDataContextManager().getSchemaMetaDataManager().alterSchema(databaseName,
schemaName, table, null);
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/ViewChangedHandler.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/ViewChangedHandler.java
index 4692fdf8905..7a2a70d89f0 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/ViewChangedHandler.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/ViewChangedHandler.java
@@ -47,8 +47,7 @@ public final class ViewChangedHandler {
*/
public void handleCreatedOrAltered(final String databaseName, final String
schemaName, final DataChangedEvent event) {
String viewName =
ViewMetaDataNodePath.getViewNameByActiveVersionPath(event.getKey()).orElseThrow(()
-> new IllegalStateException("View name not found."));
- Preconditions.checkArgument(event.getValue().equals(
-
contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService().getActiveVersionByFullPath(event.getKey())),
+
Preconditions.checkArgument(event.getValue().equals(contextManager.getPersistServiceFacade().getRepository().query(event.getKey())),
"Invalid active version: %s of key: %s", event.getValue(),
event.getKey());
ShardingSphereView view =
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataFacade().getView().load(databaseName,
schemaName, viewName);
contextManager.getMetaDataContextManager().getSchemaMetaDataManager().alterSchema(databaseName,
schemaName, null, view);
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/GlobalRuleChangedHandler.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/GlobalRuleChangedHandler.java
index 6fc360afa1a..d60e2b33288 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/GlobalRuleChangedHandler.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/GlobalRuleChangedHandler.java
@@ -56,8 +56,7 @@ public final class GlobalRuleChangedHandler implements
DataChangedEventHandler {
if (!ruleName.isPresent()) {
return;
}
- Preconditions.checkArgument(event.getValue().equals(
-
contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService().getActiveVersionByFullPath(event.getKey())),
+
Preconditions.checkArgument(event.getValue().equals(contextManager.getPersistServiceFacade().getRepository().query(event.getKey())),
"Invalid active version: %s of key: %s", event.getValue(),
event.getKey());
Optional<RuleConfiguration> ruleConfig =
contextManager.getPersistServiceFacade().getMetaDataPersistService().getGlobalRuleService().load(ruleName.get());
Preconditions.checkArgument(ruleConfig.isPresent(), "Can not find rule
configuration with name: %s", ruleName.get());
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/PropertiesChangedHandler.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/PropertiesChangedHandler.java
index e43a3246209..feac32b96e0 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/PropertiesChangedHandler.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/PropertiesChangedHandler.java
@@ -47,8 +47,7 @@ public final class PropertiesChangedHandler implements
DataChangedEventHandler {
if
(!org.apache.shardingsphere.mode.path.GlobalNodePath.isPropsActiveVersionPath(event.getKey()))
{
return;
}
- Preconditions.checkArgument(event.getValue().equals(
-
contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService().getActiveVersionByFullPath(event.getKey())),
+
Preconditions.checkArgument(event.getValue().equals(contextManager.getPersistServiceFacade().getRepository().query(event.getKey())),
"Invalid active version: %s of key: %s", event.getValue(),
event.getKey());
contextManager.getMetaDataContextManager().getGlobalConfigurationManager().alterProperties(contextManager.getPersistServiceFacade().getMetaDataPersistService().getPropsService().load());
}
diff --git
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/MetaDataChangedHandlerTest.java
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/MetaDataChangedHandlerTest.java
index 9673b7a0836..3cb924b158a 100644
---
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/MetaDataChangedHandlerTest.java
+++
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/MetaDataChangedHandlerTest.java
@@ -53,7 +53,7 @@ class MetaDataChangedHandlerTest {
void setUp() {
when(contextManager.getMetaDataContexts().getMetaData().getTemporaryProps().getValue(TemporaryConfigurationPropertyKey.PROXY_META_DATA_COLLECTOR_ENABLED)).thenReturn(false);
when(contextManager.getComputeNodeInstanceContext().getModeConfiguration().isCluster()).thenReturn(true);
-
when(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService().getActiveVersionByFullPath(any())).thenReturn("0");
+
when(contextManager.getPersistServiceFacade().getRepository().query(any())).thenReturn("0");
handler = new MetaDataChangedHandler(contextManager);
}
@@ -73,7 +73,7 @@ class MetaDataChangedHandlerTest {
@Test
void assertHandleTableCreated() {
-
when(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService().getActiveVersionByFullPath("key")).thenReturn("value");
+
when(contextManager.getPersistServiceFacade().getRepository().query("key")).thenReturn("value");
ShardingSphereTable table = mock(ShardingSphereTable.class);
when(contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataFacade().getTable().load("foo_db",
"foo_schema", "foo_tbl"))
.thenReturn(table);
@@ -83,7 +83,7 @@ class MetaDataChangedHandlerTest {
@Test
void assertHandleTableAltered() {
-
when(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService().getActiveVersionByFullPath("key")).thenReturn("value");
+
when(contextManager.getPersistServiceFacade().getRepository().query("key")).thenReturn("value");
ShardingSphereTable table = mock(ShardingSphereTable.class);
when(contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataFacade().getTable().load("foo_db",
"foo_schema", "foo_tbl"))
.thenReturn(table);
@@ -99,7 +99,7 @@ class MetaDataChangedHandlerTest {
@Test
void assertHandleViewCreated() {
-
when(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService().getActiveVersionByFullPath("key")).thenReturn("value");
+
when(contextManager.getPersistServiceFacade().getRepository().query("key")).thenReturn("value");
ShardingSphereView view = mock(ShardingSphereView.class);
when(contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataFacade().getView().load("foo_db",
"foo_schema", "foo_view"))
.thenReturn(view);
@@ -109,7 +109,7 @@ class MetaDataChangedHandlerTest {
@Test
void assertHandleViewAltered() {
-
when(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService().getActiveVersionByFullPath("key")).thenReturn("value");
+
when(contextManager.getPersistServiceFacade().getRepository().query("key")).thenReturn("value");
ShardingSphereView view = mock(ShardingSphereView.class);
when(contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataFacade().getView().load("foo_db",
"foo_schema", "foo_view"))
.thenReturn(view);
@@ -125,7 +125,7 @@ class MetaDataChangedHandlerTest {
@Test
void assertHandleStorageUnitRegistered() {
-
when(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService().getActiveVersionByFullPath("key")).thenReturn("value");
+
when(contextManager.getPersistServiceFacade().getRepository().query("key")).thenReturn("value");
when(contextManager.getPersistServiceFacade().getMetaDataPersistService().getDataSourceUnitService().load("foo_db",
"foo_unit")).thenReturn(mock(DataSourcePoolProperties.class));
handler.handle("foo_db", new
DataChangedEvent("/metadata/foo_db/data_sources/units/foo_unit/active_version/0",
"0", Type.ADDED));
verify(contextManager.getMetaDataContextManager().getStorageUnitManager()).registerStorageUnit(eq("foo_db"),
any());
@@ -133,7 +133,7 @@ class MetaDataChangedHandlerTest {
@Test
void assertHandleStorageUnitAltered() {
-
when(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService().getActiveVersionByFullPath("key")).thenReturn("value");
+
when(contextManager.getPersistServiceFacade().getRepository().query("key")).thenReturn("value");
when(contextManager.getPersistServiceFacade().getMetaDataPersistService().getDataSourceUnitService().load("foo_db",
"foo_unit")).thenReturn(mock(DataSourcePoolProperties.class));
handler.handle("foo_db", new
DataChangedEvent("/metadata/foo_db/data_sources/units/foo_unit/active_version/0",
"0", Type.UPDATED));
verify(contextManager.getMetaDataContextManager().getStorageUnitManager()).alterStorageUnit(eq("foo_db"),
any());
diff --git
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/GlobalRuleChangedHandlerTest.java
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/GlobalRuleChangedHandlerTest.java
index 15327858ed5..ffe962acfea 100644
---
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/GlobalRuleChangedHandlerTest.java
+++
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/GlobalRuleChangedHandlerTest.java
@@ -65,7 +65,7 @@ class GlobalRuleChangedHandlerTest {
@Test
void assertHandle() {
-
when(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService().getActiveVersionByFullPath("/rules/foo_rule/active_version"))
+
when(contextManager.getPersistServiceFacade().getRepository().query("/rules/foo_rule/active_version"))
.thenReturn("rule_value");
RuleConfiguration ruleConfig = mock(RuleConfiguration.class);
when(contextManager.getPersistServiceFacade().getMetaDataPersistService().getGlobalRuleService().load("foo_rule")).thenReturn(Optional.of(ruleConfig));
diff --git
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/PropertiesChangedHandlerTest.java
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/PropertiesChangedHandlerTest.java
index 3b0a2ef421a..0656a32e3fc 100644
---
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/PropertiesChangedHandlerTest.java
+++
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/PropertiesChangedHandlerTest.java
@@ -58,7 +58,7 @@ class PropertiesChangedHandlerTest {
@Test
void assertHandle() {
-
when(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService().getActiveVersionByFullPath("/props/active_version")).thenReturn("key=value");
+
when(contextManager.getPersistServiceFacade().getRepository().query("/props/active_version")).thenReturn("key=value");
Properties props = mock(Properties.class);
when(contextManager.getPersistServiceFacade().getMetaDataPersistService().getPropsService().load()).thenReturn(props);
handler.handle(contextManager, new
DataChangedEvent("/props/active_version", "key=value", Type.ADDED));