if ((definitionToMove != appDefinition) && (definitionToMove.getRevision() != appDefinition.getRevision())) { // NOPMD throw new BusinessException("Moving the application definition '" + appDefinition.getApplicationName() + "'.", ConfigurationInterfaceErrorCodeEnum.REVISION_CHECK_FAILED); definitionToMove.setRevision(definitionToMove.getRevision() + 1); applicationDefinitions.add(index, definitionToMove); return definitionToMove;
/** * Updates the given {@link ApplicationDefinition}. * * @param appDefinition * {@link ApplicationDefinition} to update * * @throws BusinessException * If update fails. * @return the updated {@link ApplicationDefinition} instance. */ public ApplicationDefinition updateApplicationDefinition(ApplicationDefinition appDefinition) throws BusinessException { if (appDefinition == null) { throw new BusinessException("Updating application 'null'.", BusinessContextErrorCodeEnum.UNKNOWN_APPLICATION); } int index = applicationDefinitions.indexOf(appDefinition); if (index < 0) { throw new BusinessException("Updating application " + appDefinition.getApplicationName() + " with id '" + appDefinition.getId() + "'.", BusinessContextErrorCodeEnum.UNKNOWN_APPLICATION); } ApplicationDefinition currentApplicationDefinition = applicationDefinitions.get(index); appDefinition.setRevision(appDefinition.getRevision() + 1); if ((currentApplicationDefinition != appDefinition) && ((currentApplicationDefinition.getRevision() + 1) != appDefinition.getRevision())) { // NOPMD throw new BusinessException("Update of the application definition '" + appDefinition.getApplicationName() + "'.", ConfigurationInterfaceErrorCodeEnum.REVISION_CHECK_FAILED); } applicationDefinitions.set(index, appDefinition); return appDefinition; }
@Test public void updateApplicationDefition() throws BusinessException { assertThat(businessContextDefinition.getApplicationDefinition(firstApplicationId).getApplicationName(), equalTo("firstAppDefinition")); assertThat(businessContextDefinition.getApplicationDefinition(secondApplicationId).getApplicationName(), equalTo("secondAppDefinition")); firstAppDefinition.setApplicationName("newName"); businessContextDefinition.updateApplicationDefinition(firstAppDefinition); assertThat(businessContextDefinition.getApplicationDefinition(firstApplicationId).getRevision(), is(2)); assertThat(businessContextDefinition.getApplicationDefinition(firstApplicationId).getApplicationName(), equalTo("newName")); assertThat(businessContextDefinition.getApplicationDefinition(secondApplicationId).getApplicationName(), equalTo("secondAppDefinition")); }