public Collection<SchemaVersionInfo> getAllVersions(final String schemaBranchName, final String schemaName, final List<Byte> stateIds) throws SchemaNotFoundException, SchemaBranchNotFoundException { Preconditions.checkNotNull(schemaBranchName, "Schema branch name can't be null"); Preconditions.checkNotNull(stateIds, "State Ids can't be null"); Set<Byte> stateIdSet = stateIds.stream().collect(Collectors.toSet()); return getAllVersions(schemaBranchName, schemaName).stream(). filter(schemaVersionInfo -> stateIdSet.contains(schemaVersionInfo.getStateId())). collect(Collectors.toList()); }
public SchemaVersionInfo getLatestSchemaVersionInfo(String schemaBranchName, String schemaName, Byte stateId) throws SchemaNotFoundException, SchemaBranchNotFoundException { Preconditions.checkNotNull(schemaBranchName, "Schema branch name can't be null"); Preconditions.checkNotNull(schemaName, "schemaName can't be null"); Collection<SchemaVersionInfo> schemaVersionInfos = getAllVersions(schemaBranchName, schemaName); SchemaVersionInfo latestSchema = null; if (schemaVersionInfos != null && !schemaVersionInfos.isEmpty()) { for (SchemaVersionInfo schemaVersionInfo : schemaVersionInfos) { if (stateId == null || schemaVersionInfo.getStateId().equals(stateId)) { latestSchema = schemaVersionInfo; break; } } } return latestSchema; }
public SchemaVersionInfo getLatestSchemaVersionInfo(String schemaName, Byte stateId) throws SchemaNotFoundException { Preconditions.checkNotNull(schemaName, "schemaName can't be null"); Collection<SchemaVersionInfo> schemaVersionInfos = getAllVersions(schemaName); SchemaVersionInfo latestSchema = null; if (schemaVersionInfos != null && !schemaVersionInfos.isEmpty()) { for (SchemaVersionInfo schemaVersionInfo : schemaVersionInfos) { if (stateId == null || schemaVersionInfo.getStateId().equals(stateId)) { latestSchema = schemaVersionInfo; break; } } } return latestSchema; }
schemaVersionService.getAllSchemaVersions(SchemaBranch.MASTER_BRANCH, schemaName) .stream() .filter(x -> SchemaVersionLifecycleStates.ENABLED.getId().equals(x.getStateId())) .collect(Collectors.toList());
schemaVersionService.getAllSchemaVersions(SchemaBranch.MASTER_BRANCH, schemaName) .stream() .filter(x -> SchemaVersionLifecycleStates.ENABLED.getId().equals(x.getStateId())) .collect(Collectors.toList());
public void doTestSchemaVersionEnableState(String schemaName) throws Exception { String schema = AvroSchemaRegistryClientUtil.getSchema("/device.avsc"); String incompatSchema = AvroSchemaRegistryClientUtil.getSchema("/device-compat.avsc"); SchemaMetadata schemaMetadata = createSchemaMetadata(schemaName, SchemaCompatibility.BACKWARD); // registering a new schema SchemaIdVersion schemaIdVersion_1 = SCHEMA_REGISTRY_CLIENT.addSchemaVersion(schemaMetadata, new SchemaVersion(schema, "Initial version of the schema")); // adding a new version of the schema SchemaVersion incompatSchemaInfo = new SchemaVersion(incompatSchema, "second version"); SchemaIdVersion schemaIdVersion_2 = SCHEMA_REGISTRY_CLIENT.addSchemaVersion(schemaMetadata, incompatSchemaInfo); Long schemaVersionId_2 = schemaIdVersion_2.getSchemaVersionId(); SCHEMA_REGISTRY_CLIENT.disableSchemaVersion(schemaVersionId_2); SchemaVersionInfo schemaVersionInfo = SCHEMA_REGISTRY_CLIENT.getSchemaVersionInfo(schemaIdVersion_2); System.out.println("disable :: schemaVersionInfo.getStateId() = " + schemaVersionInfo.getStateId()); Assert.assertEquals(SchemaVersionLifecycleStates.DISABLED.getId(), schemaVersionInfo.getStateId()); SCHEMA_REGISTRY_CLIENT.enableSchemaVersion(schemaVersionId_2); schemaVersionInfo = SCHEMA_REGISTRY_CLIENT.getSchemaVersionInfo(schemaIdVersion_2); System.out.println("enable :: schemaVersionInfo.getStateId() = " + schemaVersionInfo.getStateId()); Assert.assertEquals(SchemaVersionLifecycleStates.ENABLED.getId(), schemaVersionInfo.getStateId()); SCHEMA_REGISTRY_CLIENT.disableSchemaVersion(schemaVersionId_2); schemaVersionInfo = SCHEMA_REGISTRY_CLIENT.getSchemaVersionInfo(schemaIdVersion_2); System.out.println("disable :: schemaVersionInfo.getStateId() = " + schemaVersionInfo.getStateId()); Assert.assertEquals(SchemaVersionLifecycleStates.DISABLED.getId(), schemaVersionInfo.getStateId()); SCHEMA_REGISTRY_CLIENT.archiveSchemaVersion(schemaVersionId_2); schemaVersionInfo = SCHEMA_REGISTRY_CLIENT.getSchemaVersionInfo(schemaIdVersion_2); System.out.println("archive :: schemaVersionInfo.getStateId() = " + schemaVersionInfo.getStateId()); Assert.assertEquals(SchemaVersionLifecycleStates.ARCHIVED.getId(), schemaVersionInfo.getStateId()); }
@Test public void mergeSchemaWithDefaultMergeStrategy() throws IOException, SchemaBranchNotFoundException, InvalidSchemaException, SchemaNotFoundException, IncompatibleSchemaException, SchemaBranchAlreadyExistsException { SchemaMetadata schemaMetadata = addSchemaMetadata(testNameRule.toString(), SchemaCompatibility.NONE); SchemaIdVersion masterSchemaIdVersion1 = addSchemaVersion(SchemaBranch.MASTER_BRANCH, schemaMetadata, "/device.avsc"); SchemaBranch schemaBranch1 = addSchemaBranch("BRANCH1", schemaMetadata, masterSchemaIdVersion1.getSchemaVersionId()); SchemaIdVersion schemaBranch1Version1 = addSchemaVersion(schemaBranch1.getName(), schemaMetadata, "/device-incompat.avsc"); SchemaIdVersion schemaBranch1Version2 = addSchemaVersion(schemaBranch1.getName(), schemaMetadata, "/device-compat.avsc"); schemaRegistryClient.mergeSchemaVersion(schemaBranch1Version2.getSchemaVersionId()); Collection<SchemaVersionInfo> branchSchemaVersionInfos = schemaRegistryClient.getAllVersions(schemaBranch1.getName(), schemaMetadata.getName()); Collection<SchemaVersionInfo> masterSchemaVersionInfos = schemaRegistryClient.getAllVersions(schemaMetadata.getName()); Assert.assertTrue(masterSchemaVersionInfos.size() == 2); Assert.assertTrue(branchSchemaVersionInfos.size() == 3); Long branchVersionsInInitiatedState = branchSchemaVersionInfos.stream().filter( schemaVersionInfo -> schemaVersionInfo.getStateId().equals(SchemaVersionLifecycleStates.INITIATED.getId())).count(); Long masterVersionsInEnabledState = masterSchemaVersionInfos.stream().filter( schemaVersionInfo -> schemaVersionInfo.getStateId().equals(SchemaVersionLifecycleStates.ENABLED.getId())).count(); Assert.assertTrue(branchVersionsInInitiatedState == 2); Assert.assertTrue(masterVersionsInEnabledState == 2); }
@Test public void addSchemaVersionToBranch() throws IOException, SchemaBranchNotFoundException, InvalidSchemaException, SchemaNotFoundException, IncompatibleSchemaException, SchemaBranchAlreadyExistsException { SchemaMetadata schemaMetadata = addSchemaMetadata(testNameRule.getMethodName(), SchemaCompatibility.NONE); SchemaIdVersion masterSchemaIdVersion1 = addSchemaVersion(SchemaBranch.MASTER_BRANCH, schemaMetadata, "/device.avsc"); SchemaBranch schemaBranch1 = addSchemaBranch("BRANCH1", schemaMetadata, masterSchemaIdVersion1.getSchemaVersionId()); addSchemaVersion(schemaBranch1.getName(), schemaMetadata, "/device-incompat.avsc"); addSchemaVersion(schemaBranch1.getName(), schemaMetadata, "/device-compat.avsc"); Collection<SchemaVersionInfo> schemaBranch1VersionInfos = schemaRegistryClient.getAllVersions(schemaBranch1.getName(), schemaMetadata.getName()); Collection<SchemaVersionInfo> masterSchemaVersionInfos = schemaRegistryClient.getAllVersions(schemaMetadata.getName()); Assert.assertTrue(masterSchemaVersionInfos.size() == 1); Assert.assertTrue(schemaBranch1VersionInfos.size() == 3); Long versionsInInitiatedState = schemaBranch1VersionInfos.stream().filter( schemaVersionInfo -> schemaVersionInfo.getStateId().equals(SchemaVersionLifecycleStates.INITIATED.getId())).count(); Long versionsInEnabledState = schemaBranch1VersionInfos.stream().filter( schemaVersionInfo -> schemaVersionInfo.getStateId().equals(SchemaVersionLifecycleStates.ENABLED.getId())).count(); Assert.assertTrue(versionsInInitiatedState == 2); Assert.assertTrue(versionsInEnabledState == 1); }
Collection<SchemaVersionInfo> schemaVersionInfos = getAllVersions(schemaBranchName, schemaName); for (SchemaVersionInfo schemaVersionInfo : schemaVersionInfos) { if (SchemaVersionLifecycleStates.ENABLED.getId().equals(schemaVersionInfo.getStateId())) { compatibilityResult = checkCompatibility(schemaMetadata.getType(), toSchema,
Byte stateId = schemaVersionInfo.getStateId(); List<SchemaVersionLifecycleStateTransition> nextTransitions = nextTransitionsForStateIds.get(stateId); SCHEMA_REGISTRY_CLIENT.transitionState(schemaVersionInfo.getId(), targetStateId, null); Assert.assertEquals(targetStateId, SCHEMA_REGISTRY_CLIENT.getSchemaVersionInfo(schemaIdVersion_2).getStateId());
SCHEMA_REGISTRY_CLIENT.getSchemaVersionInfo(schemaIdVersion_2).getStateId()); SCHEMA_REGISTRY_CLIENT.getSchemaVersionInfo(schemaIdVersion_2).getStateId()); SCHEMA_REGISTRY_CLIENT.getSchemaVersionInfo(schemaIdVersion_3).getStateId()); SCHEMA_REGISTRY_CLIENT.getSchemaVersionInfo(schemaIdVersion_3).getStateId());