Example usage for org.eclipse.jgit.util SystemReader SystemReader

List of usage examples for org.eclipse.jgit.util SystemReader SystemReader

Introduction

In this page you can find the example usage for org.eclipse.jgit.util SystemReader SystemReader.

Prototype

SystemReader

Source Link

Usage

From source file:com.google.gerrit.testutil.TestTimeUtil.java

License:Apache License

/**
 * Set the clock step used by {@link com.google.gerrit.common.TimeUtil}.
 *
 * @param clockStep amount to increment clock by on each lookup.
 * @param clockStepUnit time unit for {@code clockStep}.
 */// w w w.  j  a v  a 2s .c  om
public static synchronized void setClockStep(long clockStep, TimeUnit clockStepUnit) {
    checkState(clockMs != null, "call resetWithClockStep first");
    clockStepMs = MILLISECONDS.convert(clockStep, clockStepUnit);
    DateTimeUtils.setCurrentMillisProvider(new MillisProvider() {
        @Override
        public long getMillis() {
            return clockMs.getAndAdd(clockStepMs);
        }
    });

    SystemReader.setInstance(null);
    final SystemReader defaultReader = SystemReader.getInstance();
    SystemReader r = new SystemReader() {
        @Override
        public String getHostname() {
            return defaultReader.getHostname();
        }

        @Override
        public String getenv(String variable) {
            return defaultReader.getenv(variable);
        }

        @Override
        public String getProperty(String key) {
            return defaultReader.getProperty(key);
        }

        @Override
        public FileBasedConfig openUserConfig(Config parent, FS fs) {
            return defaultReader.openUserConfig(parent, fs);
        }

        @Override
        public FileBasedConfig openSystemConfig(Config parent, FS fs) {
            return defaultReader.openSystemConfig(parent, fs);
        }

        @Override
        public long getCurrentTime() {
            return clockMs.getAndAdd(clockStepMs);
        }

        @Override
        public int getTimezone(long when) {
            return defaultReader.getTimezone(when);
        }
    };
    SystemReader.setInstance(r);
}