protected CTLSchemaDto generateCTLSchemaDto(String fqn, String tenantId, String applicationId, int version) { CTLSchemaDto ctlSchema = new CTLSchemaDto(); ctlSchema.setMetaInfo(new CtlSchemaMetaInfoDto(fqn, tenantId, applicationId)); ctlSchema.setVersion(version); String name = fqn.substring(fqn.lastIndexOf(".") + 1); String namespace = fqn.substring(0, fqn.lastIndexOf(".")); StringBuilder body = new StringBuilder("{\"type\": \"record\","); body = body.append("\"name\": \"").append(name).append("\","); body = body.append("\"namespace\": \"").append(namespace).append("\","); body = body.append("\"version\": ").append(version).append(","); body = body.append("\"dependencies\": [], \"fields\": []}"); ctlSchema.setBody(body.toString()); return ctlSchema; }
protected CTLSchemaDto generateCTLSchemaDto(String fqn, String tenantId, int version) { CTLSchemaDto ctlSchema = new CTLSchemaDto(); CtlSchemaMetaInfoDto metaInfoDto = new CtlSchemaMetaInfoDto(fqn, tenantId); ctlSchema.setMetaInfo(metaInfoDto); ctlSchema.setVersion(version); ctlSchema.setBody(UUID.randomUUID().toString()); return ctlSchema; }
@Override public CTLSchemaDto getOrCreateEmptySystemSchema(String createdUsername) { CTLSchemaDto ctlSchema = findCtlSchemaByFqnAndVerAndTenantIdAndApplicationId( DEFAULT_SYSTEM_EMPTY_SCHEMA_FQN, DEFAULT_SYSTEM_EMPTY_SCHEMA_VERSION, null, null); if (ctlSchema == null) { ctlSchema = new CTLSchemaDto(); CtlSchemaMetaInfoDto metaInfo = new CtlSchemaMetaInfoDto(DEFAULT_SYSTEM_EMPTY_SCHEMA_FQN); ctlSchema.setMetaInfo(metaInfo); ctlSchema.setVersion(DEFAULT_SYSTEM_EMPTY_SCHEMA_VERSION); ctlSchema.setCreatedUsername(createdUsername); ctlSchema.setDependencySet(new HashSet<CTLSchemaDto>()); String body = getStringFromFile(DEFAULT_SYSTEM_EMPTY_SCHEMA_FILE, CtlServiceImpl.class); if (!body.isEmpty()) { ctlSchema.setBody(body); } else { throw new RuntimeException("Can't read default system schema."); // NOSONAR } ctlSchema = saveCtlSchema(ctlSchema); } return ctlSchema; }
schema.setBody(body); return schema;
@Override public CTLSchemaDto toDto() { CTLSchemaDto ctlSchemaDto = createDto(); ctlSchemaDto.setId(getStringId()); ctlSchemaDto.setMetaInfo(metaInfo.toDto()); ctlSchemaDto.setVersion(version); ctlSchemaDto.setCreatedTime(createdTime); ctlSchemaDto.setCreatedUsername(createdUsername); ctlSchemaDto.setBody(body); ctlSchemaDto.setDefaultRecord(defaultRecord); ctlSchemaDto.setDependencySet(DaoUtil.convertDtoSet(dependencySet)); return ctlSchemaDto; }
@Test public void testSaveFlatCtlSchema() throws IOException { CTLSchemaDto testCtl = new CTLSchemaDto(); CtlSchemaMetaInfoDto ctlMetaInfo = new CtlSchemaMetaInfoDto("org.kaaproject.kaa.NoDependenciesCtlExample", tenant.getId()); testCtl.setMetaInfo(ctlMetaInfo); testCtl.setVersion(1); testCtl.setBody(readSchemaFileAsString(TEST_CTL_SCHEMA_FLAT)); testCtl = ctlService.saveCtlSchema(testCtl); CTLSchemaDto foundCtl = ctlService.findCtlSchemaById(testCtl.getId()); String defaultRecord = foundCtl.getDefaultRecord(); Assert.assertNotNull(foundCtl); Assert.assertTrue(defaultRecord.contains("\"bytesField\":\"\"")); Assert.assertTrue(defaultRecord.contains("\"booleanField\":false")); Assert.assertTrue(defaultRecord.contains("\"intField\":0")); Assert.assertTrue(defaultRecord.contains("\"longField\":0")); Assert.assertTrue(defaultRecord.contains("\"floatField\":0.0")); Assert.assertTrue(defaultRecord.contains("\"doubleField\":0.0")); Assert.assertTrue(defaultRecord.contains("\"stringField\":\"\"")); Assert.assertTrue(defaultRecord.contains("\"enumField\":\"SPADES\"")); Assert.assertTrue(defaultRecord.contains("\"arrayField\":[]")); Assert.assertTrue(defaultRecord.contains("\"recordsArrayField\":[]")); Assert.assertTrue(defaultRecord.contains("\"recordField\":{\"bytesFieldInRecord\":\"\",\"booleanFieldInRecord\":false,\"intFieldInRecord\":0,\"floatFieldInRecord\":0.0}")); }
Schema avroSchema = converter.createSchemaFromSchemaForm(schemaForm); String schemaBody = SchemaFormAvroConverter.createSchemaString(avroSchema, true); ctlSchema.setBody(schemaBody);
gamma.setMetaInfo(gammaMetaInfo); gamma.setVersion(1); gamma.setBody(readSchemaFileAsString(TEST_CTL_SCHEMA_GAMMA)); gamma = ctlService.saveCtlSchema(gamma); betaDependencies.add(gamma); beta.setDependencySet(betaDependencies); beta.setBody(readSchemaFileAsString(TEST_CTL_SCHEMA_BETA)); beta = ctlService.saveCtlSchema(beta); alphaDependencies.add(beta); alpha.setDependencySet(alphaDependencies); alpha.setBody(readSchemaFileAsString(TEST_CTL_SCHEMA_ALPHA));