List of usage examples for java.util.concurrent.atomic AtomicBoolean AtomicBoolean
public AtomicBoolean(boolean initialValue)
From source file:com.alibaba.wasp.client.TestAdmin.java
/** * Modify table is async so wait on completion of the table operation in * master.//ww w . j a v a2 s.c o m * * @param tableName * @param htd * @throws java.io.IOException */ private void modifyTable(final byte[] tableName, final FTable htd) throws IOException { FMasterServices services = TEST_UTIL.getMiniWaspCluster().getMaster(); ExecutorService executor = services.getExecutorService(); AtomicBoolean done = new AtomicBoolean(false); executor.registerListener(EventType.C_M_MODIFY_TABLE, new DoneListener(done)); admin.modifyTable(tableName, htd); while (!done.get()) { synchronized (done) { try { done.wait(100); } catch (InterruptedException e) { e.printStackTrace(); } } } executor.unregisterListener(EventType.C_M_MODIFY_TABLE); }
From source file:com.barchart.http.server.TestHttpServer.java
@Test public void testShutdown() throws Exception { final ScheduledExecutorService executor = Executors.newScheduledThreadPool(1); final AtomicBoolean pass = new AtomicBoolean(false); executor.schedule(new Runnable() { @Override// w ww.j ava2s . c o m public void run() { try { server.shutdown().sync(); } catch (final InterruptedException e1) { e1.printStackTrace(); } try { client.execute(new HttpGet("http://localhost:" + port + "/basic")); } catch (final HttpHostConnectException hhce) { pass.set(true); } catch (final Exception e) { e.printStackTrace(); } } }, 1000, TimeUnit.MILLISECONDS); final HttpGet get = new HttpGet("http://localhost:" + port + "/client-disconnect"); final HttpResponse response = client.execute(get); assertEquals(200, response.getStatusLine().getStatusCode()); // assertTrue(pass.get()); }
From source file:com.adaptris.core.ftp.FtpConsumerTest.java
public void testConsumeWithNonMatchingFilter() throws Exception { int count = 1; EmbeddedFtpServer helper = new EmbeddedFtpServer(); MockMessageListener listener = new MockMessageListener(); FileSystem filesystem = helper.createFilesystem_DirsOnly(); for (int i = 0; i < count; i++) { filesystem.add(/*from w ww . j a v a 2 s. c om*/ new FileEntry(DEFAULT_WORK_DIR_CANONICAL + SLASH + DEFAULT_FILENAME + i + ".txt", PAYLOAD)); } FakeFtpServer server = helper.createAndStart(filesystem); StandaloneConsumer sc = null; try { ConfiguredConsumeDestination ccd = new ConfiguredConsumeDestination(SERVER_ADDRESS, "^*.xml$", "testConsumeWithNonMatchingFilter"); AtomicBoolean pollFired = new AtomicBoolean(false); FixedIntervalPoller poller = new FixedIntervalPoller(new TimeInterval(300L, TimeUnit.MILLISECONDS)) .withPollerCallback(e -> { log.trace("Poll Fired {}", getName()); if (e == 0) { pollFired.set(true); } }); FtpConsumer ftpConsumer = createForTests(listener, ccd, poller); ftpConsumer.setFileFilterImp(RegexFileFilter.class.getCanonicalName()); FtpConnection consumeConnection = create(server); sc = new StandaloneConsumer(consumeConnection, ftpConsumer); start(sc); long waitTime = waitForPollCallback(pollFired); log.trace("Waited for {}ms for == 0 poll", waitTime); helper.assertMessages(listener.getMessages(), 0); assertEquals(count, filesystem.listFiles(DEFAULT_WORK_DIR_CANONICAL).size()); } catch (Exception e) { throw e; } finally { stop(sc); server.stop(); } }
From source file:io.druid.segment.realtime.plumber.RealtimePlumberSchoolTest.java
private void testPersistHydrantGapsHelper(final Object commitMetadata) throws Exception { final AtomicBoolean committed = new AtomicBoolean(false); Interval testInterval = new Interval(new DateTime("1970-01-01"), new DateTime("1971-01-01")); RealtimePlumber plumber2 = (RealtimePlumber) realtimePlumberSchool.findPlumber(schema2, tuningConfig, metrics);//from w w w . j a v a 2s . c om plumber2.getSinks().put(0L, new Sink(testInterval, schema2, tuningConfig, new DateTime("2014-12-01T12:34:56.789").toString())); Assert.assertNull(plumber2.startJob()); final Committer committer = new Committer() { @Override public Object getMetadata() { return commitMetadata; } @Override public void run() { committed.set(true); } }; plumber2.add(getTestInputRow("1970-01-01"), Suppliers.ofInstance(committer)); plumber2.add(getTestInputRow("1970-02-01"), Suppliers.ofInstance(committer)); plumber2.add(getTestInputRow("1970-03-01"), Suppliers.ofInstance(committer)); plumber2.add(getTestInputRow("1970-04-01"), Suppliers.ofInstance(committer)); plumber2.add(getTestInputRow("1970-05-01"), Suppliers.ofInstance(committer)); plumber2.persist(committer); while (!committed.get()) { Thread.sleep(100); } plumber2.getSinks().clear(); plumber2.finishJob(); File persistDir = plumber2.computePersistDir(schema2, testInterval); /* Check that all hydrants were persisted */ for (int i = 0; i < 5; i++) { Assert.assertTrue(new File(persistDir, String.valueOf(i)).exists()); } /* Create some gaps in the persisted hydrants and reload */ FileUtils.deleteDirectory(new File(persistDir, "1")); FileUtils.deleteDirectory(new File(persistDir, "3")); RealtimePlumber restoredPlumber = (RealtimePlumber) realtimePlumberSchool.findPlumber(schema2, tuningConfig, metrics); restoredPlumber.bootstrapSinksFromDisk(); Map<Long, Sink> sinks = restoredPlumber.getSinks(); Assert.assertEquals(1, sinks.size()); List<FireHydrant> hydrants = Lists.newArrayList(sinks.get(new Long(0))); DateTime startTime = new DateTime("1970-01-01T00:00:00.000Z"); Assert.assertEquals(0, hydrants.get(0).getCount()); Assert.assertEquals(new Interval(startTime, new DateTime("1970-01-01T00:00:00.001Z")), hydrants.get(0).getSegment().getDataInterval()); Assert.assertEquals(2, hydrants.get(1).getCount()); Assert.assertEquals(new Interval(startTime, new DateTime("1970-03-01T00:00:00.001Z")), hydrants.get(1).getSegment().getDataInterval()); Assert.assertEquals(4, hydrants.get(2).getCount()); Assert.assertEquals(new Interval(startTime, new DateTime("1970-05-01T00:00:00.001Z")), hydrants.get(2).getSegment().getDataInterval()); /* Delete all the hydrants and reload, no sink should be created */ FileUtils.deleteDirectory(new File(persistDir, "0")); FileUtils.deleteDirectory(new File(persistDir, "2")); FileUtils.deleteDirectory(new File(persistDir, "4")); RealtimePlumber restoredPlumber2 = (RealtimePlumber) realtimePlumberSchool.findPlumber(schema2, tuningConfig, metrics); restoredPlumber2.bootstrapSinksFromDisk(); Assert.assertEquals(0, restoredPlumber2.getSinks().size()); }
From source file:info.archinnov.achilles.it.TestJSONCall.java
@Test public void should_insert_json_if_not_exists() throws Exception { //Given//from w w w. jav a 2s .c o m final long id = RandomUtils.nextLong(0L, Long.MAX_VALUE); //When String json = "{\"id\": " + id + ", \"clust\": 1, \"value\": \"val\", " + "\"liststring\": [\"one\"], " + "\"setstring\": [\"two\"], " + "\"mapstring\": {\"3\": \"three\"}" + "}"; AtomicBoolean success = new AtomicBoolean(false); final CountDownLatch latch = new CountDownLatch(1); manager.crud().insertJSON(json).ifNotExists().withLwtResultListener(new LWTResultListener() { @Override public void onSuccess() { success.getAndSet(true); latch.countDown(); } @Override public void onError(LWTResult lwtResult) { latch.countDown(); } }).execute(); //Then latch.await(); assertThat(success.get()).isTrue(); final Row row = session.execute( "SELECT * FROM achilles_embedded.entity_for_json_function_call WHERE id = " + id + "AND clust = 1") .one(); assertThat(row).isNotNull(); assertThat(row.getString("value")).isEqualTo("val"); assertThat(row.getList("liststring", String.class)).containsExactly("one"); assertThat(row.getSet("setstring", String.class)).containsExactly("two"); assertThat(row.getMap("mapstring", Integer.class, String.class)).hasSize(1).containsEntry(3, "three"); }
From source file:com.dragoniade.deviantart.favorites.FavoritesDownloader.java
public void execute(int offset) { int skipped = 0; requestCount = 0;//from w ww . j a v a 2 s . c o m searcher.setFrame(owner); searcher.setUser(userId); searcher.startAt(offset); progress.setTotalMax(Integer.MAX_VALUE); progress.setTotalValue(offset); int total = -1; YesNoAllDialog matureMoveDialog = new YesNoAllDialog(); YesNoAllDialog overwriteDialog = new YesNoAllDialog(); YesNoAllDialog overwriteNewerDialog = new YesNoAllDialog(); YesNoAllDialog deleteEmptyDialog = new YesNoAllDialog(); List<Collection> collections; if (skipCollection) { collections = new ArrayList<Collection>(); collections.add(null); } else { collections = searcher.getCollections(); } for (Collection collection : collections) { searcher.startAt(offset); progress.setTotalValue(offset); while (!progress.isCancelled()) { progress.setText("Fetching results " + (collection != null ? collection.getName() : "...")); List<Deviation> results = searcher.search(progress, collection); requestCount++; if (results == null) { return; } total = searcher.getTotal(); progress.setTotalMax(total); if (results.size() > 0) { for (Deviation da : results) { if (progress.isCancelled()) { return; } boolean downloaded = false; progress.setUnitMax(1); if (da.getDocumentDownloadUrl() != null) { String url = da.getDocumentDownloadUrl(); String filename = da.getDocumentFilename(); if (filename == null) { AtomicBoolean download = new AtomicBoolean(true); url = getDocumentUrl(da, download); if (url == null) { return; } if (!download.get()) { skipped++; if (!nextDeviation(skipped)) { return; } continue; } } filename = Deviation.extractFilename(url); STATUS status = downloadFile(da, url, filename, false, matureMoveDialog, overwriteDialog, overwriteNewerDialog, deleteEmptyDialog); if (status == null) { return; } switch (status) { case CANCEL: return; case SKIP: skipped++; if (!nextDeviation(skipped)) { return; } continue; case DOWNLOADED: downloaded = true; break; case NOTFOUND: if (da.getImageDownloadUrl() == null) { String text = "<br/><a style=\"color:red;\" href=\"" + da.getUrl() + "\">" + url + " was not found" + "</a>"; setPaneText(text); progress.incremTotal(); } } } if (da.getImageDownloadUrl() != null && !downloaded) { String url = da.getImageDownloadUrl(); String filename = da.getImageFilename(); STATUS status = downloadFile(da, url, filename, false, matureMoveDialog, overwriteDialog, overwriteNewerDialog, deleteEmptyDialog); if (status == null) { return; } switch (status) { case CANCEL: return; case SKIP: skipped++; if (!nextDeviation(skipped)) { return; } continue; case DOWNLOADED: downloaded = true; break; case NOTFOUND: String text = "<br/><a style=\"color:red;\" href=\"" + da.getUrl() + "\">" + url + " was not found" + "</a>"; setPaneText(text); progress.incremTotal(); } } if (!nextDeviation(skipped)) { return; } } } else { break; } } } }
From source file:com.barchart.netty.server.http.TestHttpServer.java
@Test public void testShutdown() throws Exception { final ScheduledExecutorService executor = Executors.newScheduledThreadPool(1); final AtomicBoolean pass = new AtomicBoolean(false); final Thread t = new Thread(new Runnable() { @Override/*from www . j a v a2 s.c om*/ public void run() { try { Thread.sleep(1000); server.shutdown(); } catch (final InterruptedException e1) { e1.printStackTrace(); } try { client.execute(new HttpGet("http://localhost:" + port + "/basic")); } catch (final HttpHostConnectException hhce) { pass.set(true); } catch (final Exception e) { e.printStackTrace(); } } }); t.start(); final HttpGet get = new HttpGet("http://localhost:" + port + "/client-disconnect"); final HttpResponse response = client.execute(get); EntityUtils.consume(response.getEntity()); assertEquals(200, response.getStatusLine().getStatusCode()); t.join(); assertTrue(pass.get()); }
From source file:sample.client.Application.java
boolean waitForCacheServerToStart(final String host, final int port, long duration) { return waitOnCondition(new Condition() { AtomicBoolean connected = new AtomicBoolean(false); public boolean evaluate() { Socket socket = null; try { // NOTE: this code is not intended to be an atomic, compound action (a // possible race condition); // opening another connection (at the expense of using system // resources) after connectivity // has already been established is not detrimental in this use case if (!this.connected.get()) { socket = new Socket(host, port); this.connected.set(true); }//from w w w .j a v a2 s. c o m } catch (IOException ignore) { } finally { GemFireUtils.close(socket); } return this.connected.get(); } }, duration); }
From source file:de.hybris.platform.test.TransactionTest.java
@Test public void testItemAccessDuringCommit_PLA10839() throws Exception { final Title title1 = UserManager.getInstance().createTitle("t1"); final Title title2 = UserManager.getInstance().createTitle("t2"); final Title title3 = UserManager.getInstance().createTitle("t3"); final Title title4 = UserManager.getInstance().createTitle("t4"); final AtomicBoolean listenerHasBeenCalled = new AtomicBoolean(false); final InvalidationListener listener = new InvalidationListener() { @Override/*from ww w . j a v a2 s . c o m*/ public void keyInvalidated(final Object[] key, final int invalidationType, final InvalidationTarget target, final RemoteInvalidationSource remoteSrc) { listenerHasBeenCalled.set(true); // access t1 here if (StringUtils.isEmpty(title1.getName())) { System.err.println("title1 name is empty"); } } }; final InvalidationTopic topic = InvalidationManager.getInstance() .getInvalidationTopic(new Object[] { Cache.CACHEKEY_HJMP, Cache.CACHEKEY_ENTITY }); try { topic.addInvalidationListener(listener); final Transaction tx = Transaction.current(); tx.execute(new TransactionBody() { @Override public Object execute() throws Exception { title2.setName("foo"); title3.setName("foo"); title4.setName("foo"); return null; } }); assertEquals("foo", title2.getName()); assertEquals("foo", title3.getName()); assertEquals("foo", title4.getName()); assertTrue(listenerHasBeenCalled.get()); } finally { topic.removeInvalidationListener(listener); } }
From source file:com.spotify.helios.testing.TemporaryJob.java
private void awaitUp(final String host) throws TimeoutException { final TemporaryJobReports.Step startContainer = reportWriter.step("start container") .tag("jobId", job.getId()).tag("host", host).tag("image", job.getImage()); try {//from ww w . j a v a 2 s . c o m final AtomicBoolean messagePrinted = new AtomicBoolean(false); final TaskStatus status = Polling.awaitUnchecked(deployTimeoutMillis, MILLISECONDS, job.getId() + " was not up within %d %s", new Callable<TaskStatus>() { @Override public TaskStatus call() throws Exception { final JobStatus status = Futures.getUnchecked(client.jobStatus(job.getId())); if (status == null) { log.debug("Job status not available"); return null; } final TaskStatus taskStatus = status.getTaskStatuses().get(host); if (taskStatus == null) { log.debug("Task status not available on {}", host); return null; } if (!messagePrinted.get() && !isNullOrEmpty(jobDeployedMessageFormat) && !isNullOrEmpty(taskStatus.getContainerId())) { outputDeployedMessage(host, taskStatus.getContainerId()); messagePrinted.set(true); } verifyHealthy(host, taskStatus); final TaskStatus.State state = taskStatus.getState(); log.info("Job state of {}: {}", job.getImage(), state); if (state == TaskStatus.State.RUNNING) { return taskStatus; } return null; } }); statuses.put(host, status); startContainer.markSuccess(); } finally { startContainer.finish(); } final TemporaryJobReports.Step probe = reportWriter.step("probe").tag("jobId", job.getId()).tag("host", host); try { for (final String port : waitPorts) { awaitPort(port, host); } probe.markSuccess(); } finally { probe.finish(); } }