예제 #1
0
  @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;
  }