mirror of
https://github.com/google/nomulus.git
synced 2025-04-30 12:07:51 +02:00
This is the first in a decently long series of commits to delete RegistryConfig entirely and centralize all configuration in ConfigModule using Dagger. Once this is done, then the text-based YAML configuration work can begin in earnest. Note that the configuration settings from TestRegistryConfig will be moving into ConfigModule.LocalTestConfig. This way they can be referred to in a static context from test and test utility helpers, rather than having to be injected everywhere, which we don't typically bother with for tests. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=143473089
170 lines
4.9 KiB
Java
170 lines
4.9 KiB
Java
// Copyright 2016 The Nomulus Authors. All Rights Reserved.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
package google.registry.config;
|
|
|
|
import static com.google.common.base.Preconditions.checkNotNull;
|
|
import static google.registry.config.ConfigUtils.makeUrl;
|
|
import static org.joda.time.Duration.standardDays;
|
|
|
|
import com.google.appengine.api.utils.SystemProperty;
|
|
import com.google.common.base.Ascii;
|
|
import com.google.common.base.Optional;
|
|
import com.google.common.net.HostAndPort;
|
|
import java.net.URL;
|
|
import javax.annotation.concurrent.Immutable;
|
|
import org.joda.time.Duration;
|
|
|
|
/**
|
|
* Default production configuration for global constants that can't be injected.
|
|
*
|
|
* <p><b>Warning:</b> Editing this file in a forked repository is not recommended. The recommended
|
|
* approach is to copy this file, give it a different name, and then change the system property
|
|
* described in the {@link RegistryConfigLoader} documentation.
|
|
*/
|
|
@Immutable
|
|
public final class ProductionRegistryConfigExample implements RegistryConfig {
|
|
|
|
private final RegistryEnvironment environment;
|
|
|
|
private static final String RESERVED_TERMS_EXPORT_DISCLAIMER = ""
|
|
+ "# This list contains reserve terms for the TLD. Other terms may be reserved\n"
|
|
+ "# but not included in this list, including terms EXAMPLE REGISTRY chooses not\n"
|
|
+ "# to publish, and terms that ICANN commonly mandates to be reserved. This\n"
|
|
+ "# list is subject to change and the most up-to-date source is always to\n"
|
|
+ "# check availability directly with the Registry server.\n";
|
|
|
|
public ProductionRegistryConfigExample(RegistryEnvironment environment) {
|
|
this.environment = checkNotNull(environment);
|
|
}
|
|
|
|
@Override
|
|
public String getProjectId() {
|
|
String prodProjectId = "domain-registry";
|
|
switch (environment) {
|
|
case PRODUCTION:
|
|
return prodProjectId;
|
|
default:
|
|
return prodProjectId + "-" + Ascii.toLowerCase(environment.name());
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public int getCommitLogBucketCount() {
|
|
return 100; // if you decrease this number, the world ends
|
|
}
|
|
|
|
/**
|
|
* {@inheritDoc}
|
|
*
|
|
* <p>Thirty days makes a sane default, because it's highly unlikely we'll ever need to generate a
|
|
* deposit older than that. And if we do, we could always bring up a separate App Engine instance
|
|
* and replay the commit logs off GCS.
|
|
*/
|
|
@Override
|
|
public Duration getCommitLogDatastoreRetention() {
|
|
return Duration.standardDays(30);
|
|
}
|
|
|
|
@Override
|
|
public String getSnapshotsBucket() {
|
|
return getProjectId() + "-snapshots";
|
|
}
|
|
|
|
@Override
|
|
public boolean getTmchCaTestingMode() {
|
|
switch (environment) {
|
|
case PRODUCTION:
|
|
return false;
|
|
default:
|
|
return true;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public Optional<String> getECatcherAddress() {
|
|
throw new UnsupportedOperationException(); // n/a
|
|
}
|
|
|
|
@Override
|
|
public HostAndPort getServer() {
|
|
switch (environment) {
|
|
case LOCAL:
|
|
return HostAndPort.fromParts("localhost", 8080);
|
|
default:
|
|
return HostAndPort.fromParts(
|
|
String.format("tools-dot-%s.appspot.com", getProjectId()), 443);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public Duration getSingletonCacheRefreshDuration() {
|
|
return Duration.standardMinutes(10);
|
|
}
|
|
|
|
@Override
|
|
public Duration getDomainLabelListCacheDuration() {
|
|
return Duration.standardHours(1);
|
|
}
|
|
|
|
@Override
|
|
public Duration getSingletonCachePersistDuration() {
|
|
return Duration.standardDays(365);
|
|
}
|
|
|
|
@Override
|
|
public String getReservedTermsExportDisclaimer() {
|
|
return RESERVED_TERMS_EXPORT_DISCLAIMER;
|
|
}
|
|
|
|
@Override
|
|
public String getGoogleAppsAdminEmailDisplayName() {
|
|
return "Example Registry";
|
|
}
|
|
|
|
@Override
|
|
public String getGoogleAppsSendFromEmailAddress() {
|
|
return String.format("noreply@%s.appspotmail.com", SystemProperty.applicationId.get());
|
|
}
|
|
|
|
@Override
|
|
public String getRegistrarDefaultWhoisServer() {
|
|
return "whois.nic.registry.example";
|
|
}
|
|
|
|
@Override
|
|
public URL getRegistrarDefaultReferralUrl() {
|
|
return makeUrl("https://www.registry.example");
|
|
}
|
|
|
|
@Override
|
|
public int getEppResourceIndexBucketCount() {
|
|
return 997;
|
|
}
|
|
|
|
@Override
|
|
public Duration getBaseOfyRetryDuration() {
|
|
return Duration.millis(100);
|
|
}
|
|
|
|
@Override
|
|
public Duration getContactAutomaticTransferLength() {
|
|
return standardDays(5);
|
|
}
|
|
|
|
@Override
|
|
public String getCheckApiServletRegistrarClientId() {
|
|
return "TheRegistrar";
|
|
}
|
|
}
|