@Override protected GenericModel<ConfigurationSchemaDto> newInstance(Long id) { return new ConfigurationSchema(id); }
@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 boolean equals(Object obj) { if (!super.equals(obj)) { return false; } if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } Configuration other = (Configuration) obj; if (!Arrays.equals(configurationBody, other.configurationBody)) { return false; } if (configurationSchema == null) { if (other.configurationSchema != null) { return false; } } else if (!configurationSchema.equals(other.configurationSchema)) { return false; } return true; }
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; }
@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()); } }
@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 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; }
@Override public ConfigurationDto toDto() { ConfigurationDto dto = super.toDto(); dto.setBody(binaryToString(configurationBody)); dto.setSchemaId(ModelUtils.getStringId(configurationSchema.getId())); dto.setSchemaVersion(schemaVersion); dto.setProtocolSchema(configurationSchema != null ? configurationSchema.getProtocolSchema() : null); return dto; }
@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); }
public String getSchemaId() { return configurationSchema != null ? configurationSchema.getStringId() : null; }
@Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + super.hashCode(); result = prime * result + Arrays.hashCode(configurationBody); result = prime * result + ((configurationSchema == null) ? 0 : configurationSchema.hashCode()); return result; }
@Test public void removeByConfigurationSchemaIdTest() { List<Configuration> configs = generateConfiguration(null, null, 3, UpdateStatus.ACTIVE); Assert.assertEquals(3, configs.size()); Long id = configs.get(0).getId(); ConfigurationSchema schema = configs.get(0).getConfigurationSchema(); configurationDao.removeByConfigurationSchemaId(schema.getId().toString()); Configuration found = configurationDao.findById(id.toString()); Assert.assertNull(found); }
@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()); }
group = generateEndpointGroup(schema.getApplication(), null); dto.setSequenceNumber(i); dto.setSchemaVersion(i + 1); dto.setApplication(schema.getApplication()); dto.setEndpointGroup(group); Configuration saved = configurationDao.save(dto);
@Test public void findLatestActiveBySchemaIdAndGroupIdTest() { List<Configuration> configs = generateConfiguration(null, null, 1, UpdateStatus.ACTIVE); Assert.assertEquals(1, configs.size()); Configuration first = configs.get(0); EndpointGroup group = first.getEndpointGroup(); ConfigurationSchema schema = first.getConfigurationSchema(); Configuration found = configurationDao.findLatestActiveBySchemaIdAndGroupId(schema.getId().toString(), group.getId().toString()); Assert.assertEquals(first, found); }
/** * Instantiates the Configuration. */ public Configuration(ConfigurationDto dto) { super(dto); if (dto != null) { Long schemaId = getLongId(dto.getSchemaId()); this.configurationSchema = schemaId != null ? new ConfigurationSchema(schemaId) : null; this.configurationBody = stringToBinary(dto.getBody()); this.schemaVersion = dto.getSchemaVersion(); } }
@Test public void findActualBySchemaIdAndGroupIdTest() { List<Configuration> configs = generateConfiguration(null, null, 4, UpdateStatus.DEPRECATED); Configuration first = configs.get(0); EndpointGroup group = first.getEndpointGroup(); ConfigurationSchema schema = first.getConfigurationSchema(); List<Configuration> active = generateConfiguration(schema, group, 1, UpdateStatus.ACTIVE); generateConfiguration(null, group, 1, UpdateStatus.ACTIVE); List<Configuration> inactive = generateConfiguration(schema, group, 1, UpdateStatus.INACTIVE); List<Configuration> actual = new ArrayList<>(); actual.addAll(active); actual.addAll(inactive); List<Configuration> found = configurationDao.findActualBySchemaIdAndGroupId(schema.getId().toString(), group.getId().toString()); Assert.assertEquals(actual.size(), found.size()); Assert.assertEquals(actual, found); }
new ConfigurationSchema(configurationSchema))); return configurationSchemaDto;
@Test public void findInactiveBySchemaIdAndGroupIdTest() { List<Configuration> configs = generateConfiguration(null, null, 1, UpdateStatus.ACTIVE); Assert.assertEquals(1, configs.size()); Configuration first = configs.get(0); EndpointGroup group = first.getEndpointGroup(); ConfigurationSchema schema = first.getConfigurationSchema(); List<Configuration> inactiveConfigs = generateConfiguration(schema, group, 1, UpdateStatus.INACTIVE); generateConfiguration(schema, group, 3, UpdateStatus.DEPRECATED); Configuration found = configurationDao.findInactiveBySchemaIdAndGroupId(schema.getId().toString(), group.getId().toString()); Assert.assertEquals(inactiveConfigs.get(0), found); }
@Test public void findLatestDeprecatedTest() { List<Configuration> configs = generateConfiguration(null, null, 10, UpdateStatus.DEPRECATED); Assert.assertEquals(10, configs.size()); Configuration first = configs.get(0); EndpointGroup group = first.getEndpointGroup(); ConfigurationSchema schema = first.getConfigurationSchema(); Configuration deprecated = configurationDao.findLatestDeprecated(schema.getId().toString(), group.getId().toString()); Assert.assertEquals(UpdateStatus.DEPRECATED, deprecated.getStatus()); Assert.assertEquals(9, deprecated.getSequenceNumber()); }