protected ContentNetworkImpl createNetwork(contentNetworkDetails details)
      throws ContentNetworkException {
    String main_url = details.getMainURL();
    String icon_url = details.getIconURL();

    String site_dns;

    try {
      site_dns = new URL(main_url).getHost();

    } catch (Throwable e) {

      log("Failed to get main-url host", e);

      throw (new ContentNetworkException("main url invald", e));
    }

    // propagate persistent property defaults and exclusions as currently not returned by webapp

    ContentNetworkImpl existing = getContentNetwork(details.getID());

    Map<String, Object> pprop_defaults = null;
    Set<Integer> service_exclusions = null;

    if (existing != null) {

      pprop_defaults = existing.getPersistentPropertyDefaults();

      if (existing instanceof ContentNetworkVuzeGeneric) {

        service_exclusions = ((ContentNetworkVuzeGeneric) existing).getServiceExclusions();
      }
    }

    return (new ContentNetworkVuzeGeneric(
        this,
        details.getID(),
        details.getVersion(),
        details.getName(),
        pprop_defaults,
        service_exclusions,
        site_dns,
        main_url,
        icon_url,
        null,
        null,
        null,
        null,
        null,
        null));
  }