/** * Updates and stores new definition of the business context. * * @param businessContextDefinition * New {@link IBusinessContextDefinition} to use. * @return the updated {@link BusinessContextDefinition} instance. * @throws BusinessException * If updating business context fails. * @throws IOException * If {@link IOException} occurs during update. * @throws JAXBException * If {@link JAXBException} occurs during update. */ public synchronized BusinessContextDefinition updateBusinessContextDefinition(BusinessContextDefinition businessContextDefinition) throws BusinessException, JAXBException, IOException { businessContextDefinition.setRevision(businessContextDefinition.getRevision() + 1); BusinessContextDefinition currentBusinessContextDefinition = businessContextDefinitionReference.get(); if ((currentBusinessContextDefinition != businessContextDefinition) && ((currentBusinessContextDefinition.getRevision() + 1) != businessContextDefinition.getRevision())) { // NOPMD throw new BusinessException("Update of the business context.", ConfigurationInterfaceErrorCodeEnum.REVISION_CHECK_FAILED); } saveBusinessContext(businessContextDefinition); eventPublisher.publishEvent(new BusinessContextDefinitionUpdateEvent(this, businessContextDefinition)); return businessContextDefinition; }