@Override public ConfigurationSchemaDto findConfSchemaByAppIdAndVersion(String applicationId, int version) { validateSqlId(applicationId, "Incorrect application id " + applicationId + ". Can't find configuration schema."); return getDto(configurationSchemaDao.findByAppIdAndVersion(applicationId, version)); }
@Override public List<VersionDto> findConfigurationSchemaVersionsByAppId(String applicationId) { validateSqlId(applicationId, "Incorrect application id " + applicationId + ". Can't find configuration schema versions."); List<ConfigurationSchema> configurationSchemas = configurationSchemaDao.findByApplicationId(applicationId); List<VersionDto> schemas = new ArrayList<>(); for (ConfigurationSchema configurationSchema : configurationSchemas) { schemas.add(configurationSchema.toVersionDto()); } return schemas; }
private ConfigurationSchemaDto findLatestConfSchemaByAppId(String applicationId) { validateSqlId(applicationId, "Incorrect application id " + applicationId + ". Can't find latest configuration schema."); return getDto(configurationSchemaDao.findLatestByApplicationId(applicationId)); } }
@Override public List<VersionDto> findVacantSchemasByEndpointGroupId(String endpointGroupId) { validateId(endpointGroupId, "Can't find vacant schemas. Invalid endpoint group id: " + endpointGroupId); EndpointGroup group = endpointGroupDao.findById(endpointGroupId); List<Configuration> configurations = configurationDao.findActualByEndpointGroupId( endpointGroupId); List<String> usedSchemaIds = new ArrayList<>(); for (Configuration configuration : configurations) { ConfigurationSchema schema = configuration.getConfigurationSchema(); if (schema != null) { usedSchemaIds.add(idToString(schema.getId())); } } List<ConfigurationSchema> schemas = configurationSchemaDao.findVacantSchemas( group.getApplicationId(), usedSchemaIds); List<VersionDto> schemaDtoList = new ArrayList<>(); for (ConfigurationSchema schema : schemas) { schemaDtoList.add(schema.toVersionDto()); } return schemaDtoList; }
protected List<ConfigurationSchema> generateConfSchema(Application app, int count) { List<ConfigurationSchema> schemas = Collections.emptyList(); try { if (app == null) { app = generateApplication(null); } CtlSchema ctlSchema = generateCTLSchema(DEFAULT_FQN, 1, app.getTenant(), null); ConfigurationSchema schema; schemas = new ArrayList<>(count); for (int i = 0; i < count; i++) { schema = new ConfigurationSchema(); schema.setApplication(app); schema.setCreatedUsername("Test User"); schema.setCtlSchema(ctlSchema); schema.setVersion(i + 1); schema.setName("Test Name"); schema = configurationSchemaDao.save(schema); Assert.assertNotNull(schema); schemas.add(schema); } } catch (Exception ex) { LOG.error("Can't generate configuration schemas {}", ex); Assert.fail("Can't generate configuration schemas." + ex.getMessage()); } return schemas; }
@Override public ConfigurationSchemaDto findConfSchemaById(String id) { validateSqlId(id, "Incorrect configuration schema id " + id + ". Can't find configuration schema."); return getDto(configurationSchemaDao.findById(id)); }
private void removeCascadeConfigurationSchema(String id) { LOG.debug("Removing configurations and configuration schema by id " + id); // configurationDao.removeByConfigurationSchemaId(id); configurationSchemaDao.removeById(id); }
@Test public void testFindVacantSchemasTest() { Application app1 = generateApplication(null); List<ConfigurationSchema> schemas1 = generateConfSchema(app1, 3); List<String> ids1 = new ArrayList<>(2); ids1.add(schemas1.get(0).getId().toString()); List<ConfigurationSchema> found2 = configurationSchemaDao.findVacantSchemas(app1.getId().toString(), ids1); Assert.assertEquals(2, found2.size()); List<ConfigurationSchema> found3 = configurationSchemaDao.findVacantSchemas(app1.getId().toString(), null); Assert.assertEquals(3, found3.size()); } }
@Override public ConfigurationDto findDefaultConfigurationBySchemaId(String schemaId) { validateId(schemaId, "Schema id is incorrect. Can't find default configuration by schema id " + schemaId); ConfigurationDto configuration = null; ConfigurationSchema configurationSchema = configurationSchemaDao.findById(schemaId); if (configurationSchema != null) { String appId = configurationSchema.getApplicationId(); EndpointGroup endpointGroup = endpointGroupDao.findByAppIdAndWeight(appId, 0); if (endpointGroup != null) { String endpointGroupId = String.valueOf(endpointGroup.getId()); configuration = getDto(configurationDao.findConfigurationByEndpointGroupIdAndVersion( endpointGroupId, configurationSchema.getVersion())); } else { LOG.warn("Can't find default group for application [{}]", appId); } } else { LOG.warn("Can't find configuration schema for id [{}]", schemaId); } return configuration; }
@Override public List<ConfigurationSchemaDto> findConfSchemasByAppId(String applicationId) { validateSqlId(applicationId, "Incorrect application id " + applicationId + ". Can't find configuration schemas."); return convertDtoList(configurationSchemaDao.findByApplicationId(applicationId)); }
@Test public void findLatestByApplicationIdTest() { List<ConfigurationSchema> schemas = generateConfSchema(null, 4); Assert.assertEquals(4, schemas.size()); ConfigurationSchema schema = schemas.get(0); Application app = schema.getApplication(); ConfigurationSchema found = configurationSchemaDao.findLatestByApplicationId(app.getId().toString()); Assert.assertNotNull(found); Assert.assertEquals(4, found.getVersion()); }
@Test public void findByAppIdAndVersionTest() { List<ConfigurationSchema> schemas = generateConfSchema(null, 4); Assert.assertEquals(4, schemas.size()); ConfigurationSchema schema = schemas.get(2); Application app = schema.getApplication(); ConfigurationSchema found = configurationSchemaDao.findByAppIdAndVersion(app.getId().toString(), schema.getVersion()); Assert.assertNotNull(found); Assert.assertEquals(3, found.getVersion()); }
@Override public void removeConfSchemasByAppId(String appId) { validateSqlId(appId, "Incorrect application id " + appId + ". Can't remove configuration schema."); LOG.debug("Removing configuration schemas and correspond configuration by application id"); List<ConfigurationSchema> configurationSchemaList = configurationSchemaDao.findByApplicationId(appId); for (ConfigurationSchema configurationSchema : configurationSchemaList) { if (configurationSchema != null) { removeCascadeConfigurationSchema(idToString(configurationSchema)); } } }
@Test public void findByApplicationIdTest() { List<ConfigurationSchema> schemas = generateConfSchema(null, 3); Assert.assertEquals(3, schemas.size()); ConfigurationSchema schema = schemas.get(0); Application app = schema.getApplication(); List<ConfigurationSchema> found = configurationSchemaDao.findByApplicationId(app.getId().toString()); Assert.assertEquals(3, found.size()); Assert.assertEquals(schemas, found); }