Search in sources :

Example 91 with TimeUnit

use of java.util.concurrent.TimeUnit in project google-cloud-java by GoogleCloudPlatform.

the class JobTest method testWaitForWithCheckingPeriod.

@Test
public void testWaitForWithCheckingPeriod() throws InterruptedException, TimeoutException {
    initializeExpectedJob(3);
    BigQuery.JobOption[] expectedOptions = { BigQuery.JobOption.fields(BigQuery.JobField.STATUS) };
    TimeUnit timeUnit = createStrictMock(TimeUnit.class);
    timeUnit.sleep(42);
    EasyMock.expectLastCall();
    JobStatus status = createStrictMock(JobStatus.class);
    expect(status.getState()).andReturn(JobStatus.State.RUNNING);
    expect(status.getState()).andReturn(JobStatus.State.DONE);
    expect(bigquery.getOptions()).andReturn(mockOptions);
    expect(mockOptions.getClock()).andReturn(CurrentMillisClock.getDefaultClock());
    Job runningJob = expectedJob.toBuilder().setStatus(status).build();
    Job completedJob = expectedJob.toBuilder().setStatus(status).build();
    expect(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).andReturn(runningJob);
    expect(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).andReturn(completedJob);
    expect(bigquery.getJob(JOB_INFO.getJobId())).andReturn(completedJob);
    replay(status, bigquery, timeUnit, mockOptions);
    initializeJob();
    assertSame(completedJob, job.waitFor(WaitForOption.checkEvery(42, timeUnit)));
    verify(status, timeUnit, mockOptions);
}
Also used : TimeUnit(java.util.concurrent.TimeUnit) Test(org.junit.Test)

Example 92 with TimeUnit

use of java.util.concurrent.TimeUnit in project google-cloud-java by GoogleCloudPlatform.

the class OperationTest method testWaitForCheckingPeriod.

@Test
public void testWaitForCheckingPeriod() throws InterruptedException, TimeoutException {
    initializeExpectedOperation(5);
    Compute.OperationOption[] expectedOptions = { Compute.OperationOption.fields(Compute.OperationField.STATUS) };
    TimeUnit timeUnit = createStrictMock(TimeUnit.class);
    timeUnit.sleep(42);
    EasyMock.expectLastCall();
    Operation runningOperation = Operation.fromPb(serviceMockReturnsOptions, globalOperation.toPb().setError(null).setStatus("RUNNING"));
    Operation completedOperation = Operation.fromPb(serviceMockReturnsOptions, globalOperation.toPb().setError(null));
    expect(compute.getOptions()).andReturn(mockOptions);
    expect(mockOptions.getClock()).andReturn(CurrentMillisClock.getDefaultClock());
    expect(compute.getOperation(GLOBAL_OPERATION_ID, expectedOptions)).andReturn(runningOperation);
    expect(compute.getOperation(GLOBAL_OPERATION_ID, expectedOptions)).andReturn(completedOperation);
    expect(compute.getOperation(GLOBAL_OPERATION_ID)).andReturn(completedOperation);
    replay(compute, timeUnit, mockOptions);
    initializeOperation();
    assertSame(completedOperation, operation.waitFor(WaitForOption.checkEvery(42, timeUnit)));
    verify(timeUnit, mockOptions);
}
Also used : TimeUnit(java.util.concurrent.TimeUnit) Test(org.junit.Test)

Example 93 with TimeUnit

use of java.util.concurrent.TimeUnit in project indy by Commonjava.

the class ThreadDumper method timeoutRule.

public static TestRule timeoutRule(int timeout, TimeUnit units) {
    return (base, description) -> new Statement() {

        public void evaluate() throws Throwable {
            System.out.printf("Setting up timeout: %d %s to wrap: %s\n", timeout, units, base);
            AtomicReference<Throwable> error = new AtomicReference<>();
            CountDownLatch latch = new CountDownLatch(1);
            FutureTask<Void> task = new FutureTask<>(() -> {
                try {
                    latch.countDown();
                    base.evaluate();
                } catch (Throwable t) {
                    error.set(t);
                }
                return null;
            });
            ThreadGroup tg = new ThreadGroup("Test Timeout Group");
            Thread t = new Thread(tg, task, "Test Timeout Thread");
            t.setDaemon(true);
            t.start();
            try {
                System.out.println("Waiting for test to start.");
                latch.await();
            } catch (InterruptedException e) {
                error.set(e);
            }
            if (error.get() == null) {
                try {
                    System.out.println("Waiting for test to complete (or timeout)");
                    task.get(timeout, units);
                } catch (InterruptedException e) {
                    error.set(e);
                } catch (ExecutionException e) {
                    error.set(e.getCause());
                } catch (TimeoutException e) {
                    System.out.printf("Test timeout %d %s expired!\n", timeout, units.name());
                    dumpThreads();
                    StackTraceElement[] stackTrace = t.getStackTrace();
                    Exception currThreadException = new TestTimedOutException(timeout, units);
                    if (stackTrace != null) {
                        currThreadException.setStackTrace(stackTrace);
                        t.interrupt();
                    }
                    throw currThreadException;
                }
            }
            Throwable throwable = error.get();
            if (throwable != null) {
                throw throwable;
            }
        }
    };
}
Also used : Statement(org.junit.runners.model.Statement) TestRule(org.junit.rules.TestRule) MonitorInfo(java.lang.management.MonitorInfo) TestTimedOutException(org.junit.runners.model.TestTimedOutException) FutureTask(java.util.concurrent.FutureTask) TimeoutException(java.util.concurrent.TimeoutException) ThreadMXBean(java.lang.management.ThreadMXBean) StringUtils.join(org.apache.commons.lang.StringUtils.join) AtomicReference(java.util.concurrent.atomic.AtomicReference) ExecutionException(java.util.concurrent.ExecutionException) TimeUnit(java.util.concurrent.TimeUnit) CountDownLatch(java.util.concurrent.CountDownLatch) ThreadInfo(java.lang.management.ThreadInfo) Stream(java.util.stream.Stream) ManagementFactory(java.lang.management.ManagementFactory) Statement(org.junit.runners.model.Statement) AtomicReference(java.util.concurrent.atomic.AtomicReference) CountDownLatch(java.util.concurrent.CountDownLatch) TestTimedOutException(org.junit.runners.model.TestTimedOutException) TimeoutException(java.util.concurrent.TimeoutException) ExecutionException(java.util.concurrent.ExecutionException) FutureTask(java.util.concurrent.FutureTask) ExecutionException(java.util.concurrent.ExecutionException) TestTimedOutException(org.junit.runners.model.TestTimedOutException) TimeoutException(java.util.concurrent.TimeoutException)

Example 94 with TimeUnit

use of java.util.concurrent.TimeUnit in project indy by Commonjava.

the class ThreadDumper method timeoutRule.

public static TestRule timeoutRule(int timeout, TimeUnit units) {
    return (base, description) -> new Statement() {

        public void evaluate() throws Throwable {
            System.out.printf("Setting up timeout: %d %s to wrap: %s\n", timeout, units, base);
            AtomicReference<Throwable> error = new AtomicReference<>();
            CountDownLatch latch = new CountDownLatch(1);
            FutureTask<Void> task = new FutureTask<>(() -> {
                try {
                    latch.countDown();
                    base.evaluate();
                } catch (Throwable t) {
                    error.set(t);
                }
                return null;
            });
            ThreadGroup tg = new ThreadGroup("Test Timeout Group");
            Thread t = new Thread(tg, task, "Test Timeout Thread");
            t.setDaemon(true);
            t.start();
            try {
                System.out.println("Waiting for test to start.");
                latch.await();
            } catch (InterruptedException e) {
                error.set(e);
            }
            if (error.get() == null) {
                try {
                    System.out.println("Waiting for test to complete (or timeout)");
                    task.get(timeout, units);
                } catch (InterruptedException e) {
                    error.set(e);
                } catch (ExecutionException e) {
                    error.set(e.getCause());
                } catch (TimeoutException e) {
                    System.out.printf("Test timeout %d %s expired!\n", timeout, units.name());
                    dumpThreads();
                    StackTraceElement[] stackTrace = t.getStackTrace();
                    Exception currThreadException = new TestTimedOutException(timeout, units);
                    if (stackTrace != null) {
                        currThreadException.setStackTrace(stackTrace);
                        t.interrupt();
                    }
                    throw currThreadException;
                }
            }
            Throwable throwable = error.get();
            if (throwable != null) {
                throw throwable;
            }
        }
    };
}
Also used : Statement(org.junit.runners.model.Statement) TestRule(org.junit.rules.TestRule) MonitorInfo(java.lang.management.MonitorInfo) TestTimedOutException(org.junit.runners.model.TestTimedOutException) FutureTask(java.util.concurrent.FutureTask) TimeoutException(java.util.concurrent.TimeoutException) ThreadMXBean(java.lang.management.ThreadMXBean) StringUtils.join(org.apache.commons.lang.StringUtils.join) AtomicReference(java.util.concurrent.atomic.AtomicReference) ExecutionException(java.util.concurrent.ExecutionException) TimeUnit(java.util.concurrent.TimeUnit) CountDownLatch(java.util.concurrent.CountDownLatch) ThreadInfo(java.lang.management.ThreadInfo) Stream(java.util.stream.Stream) ManagementFactory(java.lang.management.ManagementFactory) Statement(org.junit.runners.model.Statement) AtomicReference(java.util.concurrent.atomic.AtomicReference) CountDownLatch(java.util.concurrent.CountDownLatch) TestTimedOutException(org.junit.runners.model.TestTimedOutException) TimeoutException(java.util.concurrent.TimeoutException) ExecutionException(java.util.concurrent.ExecutionException) FutureTask(java.util.concurrent.FutureTask) ExecutionException(java.util.concurrent.ExecutionException) TestTimedOutException(org.junit.runners.model.TestTimedOutException) TimeoutException(java.util.concurrent.TimeoutException)

Example 95 with TimeUnit

use of java.util.concurrent.TimeUnit in project tomee by apache.

the class ProviderGenerator method main.

public static void main(final String[] args) throws Exception {
    final ProviderManager manager = new ProviderManager(new ServiceJarXmlLoader());
    final Set<String> seen = new HashSet<String>();
    final List<ServiceProvider> providers = manager.load("org.apache.tomee");
    for (final ServiceProvider provider : providers) {
        final List<String> types = provider.getTypes();
        final String name = guessBuilder(types);
        final String builder = name + "Builder";
        if (seen.contains(builder)) {
            continue;
        }
        seen.add(builder);
        final String service = provider.getService();
        final File file = new File("/Users/dblevins/work/all/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/typed/" + builder + ".java");
        final OutputStream write = IO.write(file);
        final PrintStream out = new PrintStream(write);
        out.println("/*\n" + " * Licensed to the Apache Software Foundation (ASF) under one or more\n" + " * contributor license agreements.  See the NOTICE file distributed with\n" + " * this work for additional information regarding copyright ownership.\n" + " * The ASF licenses this file to You under the Apache License, Version 2.0\n" + " * (the \"License\"); you may not use this file except in compliance with\n" + " * the License.  You may obtain a copy of the License at\n" + " *\n" + " *     http://www.apache.org/licenses/LICENSE-2.0\n" + " *\n" + " *  Unless required by applicable law or agreed to in writing, software\n" + " *  distributed under the License is distributed on an \"AS IS\" BASIS,\n" + " *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n" + " *  See the License for the specific language governing permissions and\n" + " *  limitations under the License.\n" + " */");
        out.println("package org.apache.openejb.config.typed;");
        out.println();
        out.println("import org.apache.openejb.config.typed.util.*;");
        out.println("import org.apache.openejb.config.sys.*;");
        out.println("import javax.xml.bind.annotation.*;");
        out.println("import " + Duration.class.getName() + ";");
        out.println("import java.util.*;");
        out.println("import java.util.concurrent.*;");
        out.println("import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;");
        out.println();
        out.println(template("@XmlAccessorType(XmlAccessType.FIELD)\n" + "@XmlRootElement(name = \"${name}\")\n" + "public class ${builder} extends ${service} {\n").apply("builder", builder, "service", service, "name", name));
        for (final Map.Entry<Object, Object> entry : provider.getProperties().entrySet()) {
            final String key = Strings.lcfirst(entry.getKey().toString());
            final String value = entry.getValue().toString();
            final String type = guessType(key, value);
            if (Duration.class.getName().endsWith(type)) {
                out.println("    @XmlJavaTypeAdapter(DurationAdapter.class)");
            }
            out.println(template("    @XmlAttribute\n" + "    private ${type} ${key} = ${value};").apply("builder", builder, "key", key, "value", asValue(type, value), "type", type));
        }
        out.println();
        // Constructor
        out.println(template("    public ${builder}() {\n" + "        setClassName(\"${className}\");\n" + "        setType(\"${type}\");\n" + "        setId(\"${name}\");\n").apply("builder", builder, "className", String.valueOf(provider.getClassName()), "type", types.get(0), "name", name));
        if (provider.getConstructor() != null) {
            out.println(template("        setConstructor(\"${constructor}\");\n").apply("constructor", fixConstructor(provider)));
        }
        if (provider.getFactoryName() != null) {
            out.println(template("        setFactoryName(\"${factoryName}\");\n").apply("factoryName", provider.getFactoryName()));
        }
        out.println("    }\n");
        // Setters
        out.println(template("    public ${builder} id(String id) {\n" + "        setId(id);\n" + "        return this;\n" + "    }\n").apply("builder", builder));
        for (final Map.Entry<Object, Object> entry : provider.getProperties().entrySet()) {
            final String lcFirstKey = Strings.lcfirst(entry.getKey().toString());
            final String ucFirstKey = Strings.ucfirst(lcFirstKey);
            final String value = entry.getValue().toString();
            final String type = guessType(lcFirstKey, value);
            // builder method
            out.println(template("    public ${builder} with${Key}(${type} ${key}) {\n" + "        this.${key} = ${key};\n" + "        return this;\n" + "    }\n").apply("builder", builder, "key", lcFirstKey, "Key", ucFirstKey, "value", value, "type", type));
            // setter
            out.println(template("    public void set${Key}(${type} ${key}) {\n" + "        this.${key} = ${key};\n" + "    }\n").apply("key", lcFirstKey, "Key", ucFirstKey, "value", value, "type", type));
            // getter
            out.println(template("    public ${type} get${Key}() {\n" + "        return ${key};\n" + "    }\n").apply("key", lcFirstKey, "Key", ucFirstKey, "value", value, "type", type));
            if (Duration.class.getName().equals(type)) {
                out.println(template("    public ${builder} with${Key}(long time, TimeUnit unit) {\n" + "        return with${Key}(new Duration(time, unit));\n" + "    }\n").apply("builder", builder, "key", lcFirstKey, "Key", ucFirstKey, "value", value, "type", type));
                out.println(template("    public void set${Key}(long time, TimeUnit unit) {\n" + "        set${Key}(new Duration(time, unit));\n" + "    }\n").apply("key", lcFirstKey, "Key", ucFirstKey, "value", value, "type", type));
            }
            final String s = lcFirstKey.toLowerCase(Locale.ENGLISH);
            if ("long".equals(type) && s.contains("time")) {
                TimeUnit unit = null;
                if (s.endsWith("millis")) {
                    unit = TimeUnit.MILLISECONDS;
                } else if (s.endsWith("milliseconds")) {
                    unit = TimeUnit.MILLISECONDS;
                } else if (s.endsWith("seconds")) {
                    unit = TimeUnit.SECONDS;
                } else if (s.endsWith("minutes")) {
                    unit = TimeUnit.MINUTES;
                } else if (s.endsWith("hours")) {
                    unit = TimeUnit.HOURS;
                }
                if (unit == null) {
                    continue;
                }
                final Pattern pattern = Pattern.compile("(millis(econds)?|seconds|minutes|hours)", Pattern.CASE_INSENSITIVE);
                final String lcFirstKey2 = pattern.matcher(lcFirstKey).replaceAll("");
                final String ucFirstKey2 = pattern.matcher(ucFirstKey).replaceAll("");
                out.println(template("    public ${builder} with${Key2}(long time, TimeUnit unit) {\n" + "        return with${Key}(TimeUnit.${unit}.convert(time, unit));\n" + "    }\n").apply("builder", builder, "key2", lcFirstKey2, "Key2", ucFirstKey2, "key", lcFirstKey, "Key", ucFirstKey, "value", value, "unit", unit.name(), "type", type));
                out.println(template("    public void set${Key2}(long time, TimeUnit unit) {\n" + "        set${Key}(TimeUnit.${unit}.convert(time, unit));\n" + "    }\n").apply("key2", lcFirstKey2, "Key2", ucFirstKey2, "key", lcFirstKey, "Key", ucFirstKey, "value", value, "unit", unit.name(), "type", type));
            }
        }
        out.println("    public Properties getProperties() {\n" + "        return Builders.getProperties(this);\n" + "    }\n");
        out.println("}");
        out.flush();
        out.close();
    }
}
Also used : PrintStream(java.io.PrintStream) Pattern(java.util.regex.Pattern) OutputStream(java.io.OutputStream) Duration(org.apache.openejb.util.Duration) ProviderManager(org.apache.openejb.config.provider.ProviderManager) ServiceProvider(org.apache.openejb.config.sys.ServiceProvider) TimeUnit(java.util.concurrent.TimeUnit) ServiceJarXmlLoader(org.apache.openejb.config.provider.ServiceJarXmlLoader) File(java.io.File) HashMap(java.util.HashMap) Map(java.util.Map) HashSet(java.util.HashSet)

Aggregations

TimeUnit (java.util.concurrent.TimeUnit)190 Test (org.junit.Test)28 ExecutionException (java.util.concurrent.ExecutionException)16 IOException (java.io.IOException)11 TimeoutException (java.util.concurrent.TimeoutException)11 Future (java.util.concurrent.Future)10 HashMap (java.util.HashMap)7 TimeSpec (com.linkedin.thirdeye.api.TimeSpec)6 ArrayList (java.util.ArrayList)6 TimeValue (org.elasticsearch.common.unit.TimeValue)6 DataType (com.linkedin.pinot.common.data.FieldSpec.DataType)5 File (java.io.File)5 HashSet (java.util.HashSet)5 Matcher (java.util.regex.Matcher)5 WaitUntilGatewaySenderFlushedCoordinatorJUnitTest (org.apache.geode.internal.cache.wan.WaitUntilGatewaySenderFlushedCoordinatorJUnitTest)5 IntegrationTest (org.apache.geode.test.junit.categories.IntegrationTest)5 TimeGranularity (com.linkedin.thirdeye.api.TimeGranularity)4 GwtIncompatible (com.google.common.annotations.GwtIncompatible)3 RestException (com.linkedin.r2.message.rest.RestException)3 Map (java.util.Map)3