@Override protected GenericModel<ConfigurationDto> newInstance(Long id) { return new Configuration(id); }
@Override public Configuration activate(String id, String username) { LOG.debug("Activating configuration with id [{}] by user [{}]", id, username); Configuration configuration = findById(id); if (configuration != null) { configuration.setStatus(UpdateStatus.ACTIVE); configuration.setSequenceNumber(configuration.getSequenceNumber() + 1); configuration.setActivatedUsername(username); configuration.setActivatedTime(System.currentTimeMillis()); save(configuration); } LOG.debug("[{},{}] Configuration activated.", id, username); return configuration; }
@Override public Configuration deactivate(String id, String username) { LOG.debug("Deactivating configuration with id [{}] by user [{}]", id, username); Configuration configuration = findById(id); if (configuration != null) { configuration.setStatus(UpdateStatus.DEPRECATED); configuration.setDeactivatedUsername(username); configuration.setDeactivatedTime(System.currentTimeMillis()); save(configuration); } LOG.debug("[{},{}] Configuration deactivated.", id, username); return configuration; }
configs = new ArrayList<>(); for (int i = 0; i < count; i++) { Configuration dto = new Configuration(); dto.setId(null); dto.setStatus(status != null ? status : UpdateStatus.INACTIVE); dto.setConfigurationBody(new byte[]{0, 2, 3, 4,}); dto.setConfigurationSchema(schema); dto.setSequenceNumber(i); dto.setSchemaVersion(i + 1); dto.setApplication(schema.getApplication()); dto.setEndpointGroup(group); Configuration saved = configurationDao.save(dto); Assert.assertNotNull(saved);
@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()); }
@Test public void deactivateOldConfigurationTest() { List<Configuration> configs = generateConfiguration(null, null, 1, UpdateStatus.ACTIVE); Assert.assertEquals(1, configs.size()); Configuration first = configs.get(0); ConfigurationSchema schema = first.getConfigurationSchema(); EndpointGroup group = first.getEndpointGroup(); Assert.assertEquals(UpdateStatus.ACTIVE, first.getStatus()); Configuration deactivated = configurationDao.deactivateOldConfiguration(schema.getId().toString(), group.getId().toString(), "Test user"); Configuration found = configurationDao.findById(first.getId().toString()); Assert.assertEquals(UpdateStatus.DEPRECATED, deactivated.getStatus()); Assert.assertEquals(deactivated, found); } }
schemaId, groupId); if (oldInactiveConfiguration != null) { configurationDto.setId(idToString(oldInactiveConfiguration.getId())); configurationDto.setSequenceNumber(oldInactiveConfiguration.getSequenceNumber()); } else if (oldActiveConfiguration != null) { configurationDto.setSequenceNumber(oldActiveConfiguration.getSequenceNumber()); oldActiveConfiguration != null ? oldActiveConfiguration.toDto() : null; validateUuids(configurationDto, oldActiveConfigurationDto, configurationSchemaDto); return getDto(configurationDao.save(new Configuration(configurationDto)));
@Test public void activateTest() { List<Configuration> configs = generateConfiguration(null, null, 1, null); Assert.assertEquals(1, configs.size()); Configuration first = configs.get(0); Configuration activated = configurationDao.activate(first.getId().toString(), "Test user"); Configuration found = configurationDao.findById(first.getId().toString()); Assert.assertEquals(UpdateStatus.ACTIVE, activated.getStatus()); Assert.assertEquals(activated, found); }
@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); }
@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); }
Configuration oldConfiguration = configurationDao.findById(id); if (oldConfiguration != null) { UpdateStatus status = oldConfiguration.getStatus(); if (status != null && status == INACTIVE) { String schemaId = oldConfiguration.getSchemaId(); String groupId = oldConfiguration.getEndpointGroupId(); if (schemaId != null && groupId != null) { configurationDao.deactivateOldConfiguration(schemaId, groupId, activatedUsername);
@Test public void removeByEndpointGroupIdTest() { List<Configuration> configs = generateConfiguration(null, null, 3, UpdateStatus.ACTIVE); Assert.assertEquals(3, configs.size()); Long id = configs.get(0).getId(); EndpointGroup group = configs.get(0).getEndpointGroup(); configurationDao.removeByEndpointGroupId(group.getId().toString()); Configuration found = configurationDao.findById(id.toString()); Assert.assertNull(found); }
@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; }
@Test public void findConfigurationByAppIdAndVersionTest() { List<Configuration> configs = generateConfiguration(null, null, 1, UpdateStatus.ACTIVE); Assert.assertEquals(1, configs.size()); Configuration first = configs.get(0); Application app = first.getApplication(); Configuration found = configurationDao.findConfigurationByAppIdAndVersion(app.getId().toString(), first.getSchemaVersion()); Assert.assertEquals(first, found); }
@Test public void findConfigurationByEndpointGroupIdAndVersionTest() { List<Configuration> configs = generateConfiguration(null, null, 1, UpdateStatus.ACTIVE); Assert.assertEquals(1, configs.size()); Configuration first = configs.get(0); EndpointGroup group = first.getEndpointGroup(); Configuration found = configurationDao.findConfigurationByEndpointGroupIdAndVersion(group.getId().toString(), first.getSchemaVersion()); Assert.assertEquals(first, found); }
@Override public ChangeConfigurationNotification deactivateConfiguration( String id, String deactivatedUsername) { ChangeConfigurationNotification configurationNotification; validateSqlId(id, "Incorrect configuration id. Can't deactivate configuration with id " + id); Configuration oldConfiguration = configurationDao.findById(id); if (oldConfiguration != null) { UpdateStatus status = oldConfiguration.getStatus(); if (status != null && status == ACTIVE) { ConfigurationDto configurationDto = getDto(configurationDao.deactivate( id, deactivatedUsername)); HistoryDto historyDto = addHistory(configurationDto, ChangeType.REMOVE_CONF); ChangeNotificationDto changeNotificationDto = createNotification( configurationDto, historyDto); configurationNotification = new ChangeConfigurationNotification(); configurationNotification.setConfigurationDto(configurationDto); configurationNotification.setChangeNotificationDto(changeNotificationDto); } else { throw new UpdateStatusConflictException("Incorrect status for activating configuration " + status); } } else { throw new IncorrectParameterException("Can't find configuration with id " + id); } return configurationNotification; }
@Test public void findActualByEndpointGroupIdTest() { List<Configuration> configs = generateConfiguration(null, null, 4, UpdateStatus.DEPRECATED); Configuration first = configs.get(0); EndpointGroup group = first.getEndpointGroup(); List<Configuration> active = generateConfiguration(null, group, 1, UpdateStatus.ACTIVE); List<Configuration> inactive = generateConfiguration(null, group, 1, UpdateStatus.INACTIVE); List<Configuration> actual = new ArrayList<>(); actual.addAll(active); actual.addAll(inactive); List<Configuration> found = configurationDao.findActualByEndpointGroupId(group.getId().toString()); Assert.assertEquals(actual.size(), found.size()); Assert.assertEquals(actual, found); }
@Test public void deactivateTest() { List<Configuration> configs = generateConfiguration(null, null, 1, UpdateStatus.ACTIVE); Assert.assertEquals(1, configs.size()); Configuration first = configs.get(0); Assert.assertEquals(UpdateStatus.ACTIVE, first.getStatus()); Configuration deactivated = configurationDao.deactivate(first.getId().toString(), "Test user"); Configuration found = configurationDao.findById(first.getId().toString()); Assert.assertEquals(UpdateStatus.DEPRECATED, deactivated.getStatus()); Assert.assertEquals(deactivated, found); }
@Override public Configuration deactivateOldConfiguration(String schemaId, String groupId, String username) { LOG.debug("Deactivating old configurations by configuration schema id [{}] and" + " endpoint group id [{}] ", schemaId, groupId); Configuration configuration = null; if (isNotBlank(schemaId) && isNotBlank(groupId)) { Criteria criteria = getCriteria(); criteria.createAlias(CONFIGURATION_SCHEMA_PROPERTY, CONFIGURATION_SCHEMA_ALIAS); criteria.createAlias(ENDPOINT_GROUP_PROPERTY, ENDPOINT_GROUP_ALIAS); Criterion criterion = Restrictions.and( Restrictions.eq(ENDPOINT_GROUP_REFERENCE, Long.valueOf(groupId)), Restrictions.eq(CONFIGURATION_SCHEMA_REFERENCE, Long.valueOf(schemaId)), Restrictions.eq(STATUS_PROPERTY, UpdateStatus.ACTIVE)); criteria.add(criterion); configuration = findOneByCriteria(criteria); if (configuration != null) { configuration.setDeactivatedUsername(username); configuration.setDeactivatedTime(System.currentTimeMillis()); configuration.setStatus(UpdateStatus.DEPRECATED); save(configuration); } } LOG.debug("[{},{},{}] Configuration deactivated.", schemaId, groupId, username); return configuration; }
@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); }