@Override public String createDomain(Domain domainToCreate) throws DomainConflictException, DomainCreationException { // Check domain name String domainName = domainToCreate.getName(); try { checkDomainName(domainName); } catch (AdminException e) { throw new DomainCreationException( "SQLDomainService.createDomain", domainToCreate.toString(), e); } // Generates domain properties file generateDomainPropertiesFile(domainToCreate); // Generates domain authentication properties file generateDomainAuthenticationPropertiesFile(domainToCreate); // Create storage try { dao.createDomainStorage(domainToCreate); } catch (Exception e) { removePropertiesFiles(domainName); throw new DomainCreationException( "SQLDomainService.createDomain", domainToCreate.toString(), e); } // register new Domain // SQL Driver might be override for some purpose if (!StringUtil.isDefined(domainToCreate.getDriverClassName())) { domainToCreate.setDriverClassName("com.stratelia.silverpeas.domains.sqldriver.SQLDriver"); } domainToCreate.setPropFileName("com.stratelia.silverpeas.domains.domain" + domainName); domainToCreate.setAuthenticationServer("autDomain" + domainName); domainToCreate.setTheTimeStamp("0"); String domainId = registerDomain(domainToCreate); if (!StringUtil.isDefined(domainId)) { try { dao.deleteDomainStorage(domainToCreate); } catch (Exception e) { removePropertiesFiles(domainName); } removePropertiesFiles(domainName); } return domainId; }