Example usage for java.util.concurrent.atomic AtomicReference set

List of usage examples for java.util.concurrent.atomic AtomicReference set

Introduction

In this page you can find the example usage for java.util.concurrent.atomic AtomicReference set.

Prototype

public final void set(V newValue) 

Source Link

Document

Sets the value to newValue , with memory effects as specified by VarHandle#setVolatile .

Usage

From source file:com.google.gdt.eclipse.designer.util.Utils.java

/**
 * @return the default locale from "set-property-fallback" property in module file.
 *//*w  w w  .  j  a v a2  s  .  c om*/
public static String getDefaultLocale(ModuleDescription moduleDescription) throws Exception {
    final AtomicReference<String> defaultLocale = new AtomicReference<String>("default");
    ModuleVisitor.accept(moduleDescription, new ModuleVisitor() {
        @Override
        public void endVisitModule(ModuleElement module) {
            List<SetPropertyFallbackElement> elements = module.getSetPropertyFallbackElements();
            for (SetPropertyFallbackElement element : elements) {
                if (element.getName().equals("locale")) {
                    defaultLocale.set(element.getValue());
                }
            }
        }
    });
    return defaultLocale.get();
}

From source file:org.zodiark.subscriber.SubscriberTest.java

@Test(enabled = false)
public void joinStreamingSession() throws IOException, InterruptedException {
    final ZodiarkClient wowzaClient = new ZodiarkClient.Builder().path("http://127.0.0.1:" + port).build();
    final CountDownLatch connected = new CountDownLatch(1);
    final AtomicReference<String> uuid = new AtomicReference<>();
    final AtomicReference<String> paths = new AtomicReference<>();

    // =============== Wowza

    paths.set("");
    wowzaClient.handler(new OnEnvelopHandler() {
        @Override//from  w w w . ja va  2  s. c om
        public boolean onEnvelop(Envelope e) throws IOException {

            Message m = e.getMessage();
            switch (m.getPath()) {
            case Paths.WOWZA_CONNECT:
                // Connected. Listen
                uuid.set(e.getUuid());
                break;
            case Paths.SERVER_VALIDATE_OK:
                Envelope publisherOk = Envelope
                        .newClientToServerRequest(new Message(new Path(paths.get()), e.getMessage().getData()));
                wowzaClient.send(publisherOk);
                break;
            default:
                // ERROR
            }

            connected.countDown();
            return false;
        }
    }).open();

    Envelope wowzaConnect = Envelope.newClientToServerRequest(new Message(new Path(Paths.WOWZA_CONNECT),
            mapper.writeValueAsString(new UserPassword("wowza", "bar"))));
    wowzaClient.send(wowzaConnect);
    connected.await();

    // ================ Publisher

    final AtomicReference<PublisherResults> answer = new AtomicReference<>();
    final ZodiarkClient publisherClient = new ZodiarkClient.Builder().path("http://127.0.0.1:" + port).build();
    final CountDownLatch latch = new CountDownLatch(1);
    final AtomicReference<String> publisherUUID = new AtomicReference<>();
    publisherClient.handler(new OnEnvelopHandler() {
        @Override
        public boolean onEnvelop(Envelope e) throws IOException {
            answer.set(mapper.readValue(e.getMessage().getData(), PublisherResults.class));
            publisherUUID.set(e.getUuid());
            latch.countDown();
            return true;
        }
    }).open();

    Envelope createSessionMessage = Envelope.newClientToServerRequest(
            new Message(new Path(""), mapper.writeValueAsString(new UserPassword("publisherex", "bar"))));
    createSessionMessage.setFrom(new From(ActorValue.PUBLISHER));
    publisherClient.send(createSessionMessage);
    latch.await();
    assertEquals("OK", answer.get().getResults());
    answer.set(null);

    final CountDownLatch tlatch = new CountDownLatch(1);
    publisherClient.handler(new OnEnvelopHandler() {
        @Override
        public boolean onEnvelop(Envelope e) throws IOException {
            answer.set(mapper.readValue(e.getMessage().getData(), PublisherResults.class));
            tlatch.countDown();
            return true;
        }
    });

    Envelope startStreamingSession = Envelope
            .newClientToServerRequest(new Message(new Path(Paths.VALIDATE_PUBLISHER_STREAMING_SESSION),
                    mapper.writeValueAsString(new WowzaUUID(uuid.get()))));
    createSessionMessage.setFrom(new From(ActorValue.PUBLISHER));
    publisherClient.send(startStreamingSession);

    tlatch.await();

    assertEquals("OK", answer.get().getResults());

    // ================ Subscriber

    paths.set(Paths.JOIN_SUBSCRIBER_STREAMING_SESSION);
    final AtomicReference<SubscriberResults> sanswer = new AtomicReference<>();
    final ZodiarkClient subscriberClient = new ZodiarkClient.Builder().path("http://127.0.0.1:" + port).build();
    final CountDownLatch platch = new CountDownLatch(1);
    final AtomicReference<String> subscriberUUID = new AtomicReference<>();

    subscriberClient.handler(new OnEnvelopHandler() {
        @Override
        public boolean onEnvelop(Envelope e) throws IOException {
            sanswer.set(mapper.readValue(e.getMessage().getData(), SubscriberResults.class));
            subscriberUUID.set(e.getUuid());
            platch.countDown();
            return true;
        }
    }).open();

    createSessionMessage = Envelope.newClientToServerRequest(subscriberUUID.get(),
            new Message(new Path(Paths.DB_POST_SUBSCRIBER_SESSION_CREATE),
                    mapper.writeValueAsString(new UserPassword("123456", "bar"))));
    createSessionMessage.setFrom(new From(ActorValue.SUBSCRIBER));
    subscriberClient.send(createSessionMessage);
    platch.await();
    assertEquals("OK", sanswer.get().getResults());
    sanswer.set(null);

    final CountDownLatch elatch = new CountDownLatch(1);
    subscriberClient.handler(new OnEnvelopHandler() {
        @Override
        public boolean onEnvelop(Envelope e) throws IOException {
            sanswer.set(mapper.readValue(e.getMessage().getData(), SubscriberResults.class));
            elatch.countDown();
            return true;
        }
    });

    StreamingRequest request = new StreamingRequestImpl(publisherUUID.get(), uuid.get());

    startStreamingSession = Envelope.newClientToServerRequest(subscriberUUID.get(), new Message(
            new Path(Paths.VALIDATE_SUBSCRIBER_STREAMING_SESSION), mapper.writeValueAsString(request)));
    createSessionMessage.setFrom(new From(ActorValue.SUBSCRIBER));
    subscriberClient.send(startStreamingSession);

    elatch.await();

    assertEquals("OK", sanswer.get().getResults());

}

From source file:org.apache.nifi.processors.kite.InferAvroSchema.java

@Override
public void onTrigger(final ProcessContext context, final ProcessSession session) throws ProcessException {
    final FlowFile original = session.get();
    if (original == null) {
        return;//from   ww w .  j  a  v  a  2  s  .  co  m
    }

    try {

        final AtomicReference<String> avroSchema = new AtomicReference<>();
        switch (context.getProperty(INPUT_CONTENT_TYPE).getValue()) {
        case USE_MIME_TYPE:
            avroSchema.set(inferAvroSchemaFromMimeType(original, context, session));
            break;
        case JSON_CONTENT:
            avroSchema.set(inferAvroSchemaFromJSON(original, context, session));
            break;
        case CSV_CONTENT:
            avroSchema.set(inferAvroSchemaFromCSV(original, context, session));
            break;
        default:
            //Shouldn't be possible but just in case
            session.transfer(original, REL_UNSUPPORTED_CONTENT);
            break;
        }

        if (StringUtils.isNotEmpty(avroSchema.get())) {

            String destination = context.getProperty(SCHEMA_DESTINATION).getValue();
            FlowFile avroSchemaFF = null;

            switch (destination) {
            case DESTINATION_ATTRIBUTE:
                avroSchemaFF = session.putAttribute(session.clone(original), AVRO_SCHEMA_ATTRIBUTE_NAME,
                        avroSchema.get());
                //Leaves the original CoreAttributes.MIME_TYPE in place.
                break;
            case DESTINATION_CONTENT:
                avroSchemaFF = session.write(session.create(), new OutputStreamCallback() {
                    @Override
                    public void process(OutputStream out) throws IOException {
                        out.write(avroSchema.get().getBytes());
                    }
                });
                avroSchemaFF = session.putAttribute(avroSchemaFF, CoreAttributes.MIME_TYPE.key(),
                        AVRO_MIME_TYPE);
                break;
            default:
                break;
            }

            //Transfer the sessions.
            avroSchemaFF = session.putAttribute(avroSchemaFF, CoreAttributes.FILENAME.key(),
                    (original.getAttribute(CoreAttributes.FILENAME.key()) + AVRO_FILE_EXTENSION));
            session.transfer(avroSchemaFF, REL_SUCCESS);
            session.transfer(original, REL_ORIGINAL);
        } else {
            //If the avroSchema is null then the content type is unknown and therefore unsupported
            session.transfer(original, REL_UNSUPPORTED_CONTENT);
        }

    } catch (Exception ex) {
        getLogger().error("Failed to infer Avro schema for {} due to {}", new Object[] { original, ex });
        session.transfer(original, REL_FAILURE);
    }
}

From source file:com.twitter.distributedlog.client.proxy.TestProxyClientManager.java

@Test(timeout = 60000)
public void testCreateClientShouldHandshake() throws Exception {
    SocketAddress address = createSocketAddress(3000);
    MockProxyClientBuilder builder = new MockProxyClientBuilder();
    ServerInfo serverInfo = new ServerInfo();
    serverInfo.putToOwnerships(runtime.getMethodName() + "_stream", runtime.getMethodName() + "_owner");
    Pair<MockProxyClient, MockServerInfoService> mockProxyClient = createMockProxyClient(address, serverInfo);
    builder.provideProxyClient(address, mockProxyClient.getLeft());

    final AtomicReference<ServerInfo> resultHolder = new AtomicReference<ServerInfo>(null);
    final CountDownLatch doneLatch = new CountDownLatch(1);
    ProxyListener listener = new ProxyListener() {
        @Override/*from   www  .  j  a  v  a 2 s .  c  o m*/
        public void onHandshakeSuccess(SocketAddress address, ProxyClient client, ServerInfo serverInfo) {
            resultHolder.set(serverInfo);
            doneLatch.countDown();
        }

        @Override
        public void onHandshakeFailure(SocketAddress address, ProxyClient client, Throwable cause) {
        }
    };

    ProxyClientManager clientManager = createProxyClientManager(builder, 0L);
    clientManager.registerProxyListener(listener);
    assertEquals("There should be no clients in the manager", 0, clientManager.getNumProxies());
    clientManager.createClient(address);
    assertEquals("Create client should build the proxy client", 1, clientManager.getNumProxies());

    // When a client is created, it would handshake with that proxy
    doneLatch.await();
    assertEquals("Handshake should return server info", serverInfo, resultHolder.get());
}

From source file:io.undertow.server.handlers.ChunkedResponseTrailersTestCase.java

@Test
public void sendHttpRequest() throws Exception {
    Assume.assumeFalse(DefaultServer.isH2()); //this test will still run under h2-upgrade, but will fail

    HttpGet get = new HttpGet(DefaultServer.getDefaultServerURL() + "/path");
    TestHttpClient client = new TestHttpClient();
    final AtomicReference<ChunkedInputStream> stream = new AtomicReference<>();
    client.addResponseInterceptor(new HttpResponseInterceptor() {

        public void process(final HttpResponse response, final HttpContext context) throws IOException {
            HttpEntity entity = response.getEntity();
            if (entity != null) {
                InputStream instream = entity.getContent();
                if (instream instanceof ChunkedInputStream) {
                    stream.set(((ChunkedInputStream) instream));
                }/*from w  w  w . j  a v a2  s  . co  m*/
            }
        }
    });
    try {
        generateMessage(1);
        HttpResponse result = client.execute(get);
        Assert.assertEquals(StatusCodes.OK, result.getStatusLine().getStatusCode());

        Assert.assertEquals(message, HttpClientUtils.readResponse(result));

        Header[] footers = stream.get().getFooters();
        Assert.assertEquals(2, footers.length);
        for (final Header header : footers) {
            if (header.getName().equals("foo")) {
                Assert.assertEquals("fooVal", header.getValue());
            } else if (header.getName().equals("bar")) {
                Assert.assertEquals("barVal", header.getValue());
            } else {
                Assert.fail("Unknown header" + header);
            }
        }

        generateMessage(1000);
        result = client.execute(get);
        Assert.assertEquals(StatusCodes.OK, result.getStatusLine().getStatusCode());
        Assert.assertEquals(message, HttpClientUtils.readResponse(result));
        footers = stream.get().getFooters();
        Assert.assertEquals(2, footers.length);
        for (final Header header : footers) {
            if (header.getName().equals("foo")) {
                Assert.assertEquals("fooVal", header.getValue());
            } else if (header.getName().equals("bar")) {
                Assert.assertEquals("barVal", header.getValue());
            } else {
                Assert.fail("Unknown header" + header);
            }
        }
    } finally {
        client.getConnectionManager().shutdown();
    }

}

From source file:org.zodiark.service.subscriber.SubscriberServiceImpl.java

public PublisherEndpoint retrieve(final String uuid) {
    // TODO: This won't work asynchronous
    final AtomicReference<PublisherEndpoint> publisher = new AtomicReference<>(null);
    eventBus.message(RETRIEVE_PUBLISHER, uuid, new Reply<PublisherEndpoint, String>() {
        @Override/*from  ww w.  java  2  s .  c  o  m*/
        public void ok(PublisherEndpoint p) {
            publisher.set(p);
        }

        @Override
        public void fail(ReplyException replyException) {
            logger.error("Unable to retrieve publisher {}", uuid);
        }
    });
    return publisher.get();
}

From source file:de.sainth.recipe.backend.db.repositories.UnitRepository.java

public Unit save(Unit unit) {
    AtomicReference<Unit> bu = new AtomicReference<>();
    create.transaction(configuration -> {
        using(configuration)/*from  w ww  .  java  2  s. c  o  m*/
                .insertInto(UNITS, UNITS.SHORTNAME, UNITS.LONGNAME, UNITS.CONVERSION_FACTOR, UNITS.BASIC_UNIT)
                .values(unit.getShortname(), unit.getLongname(), unit.getConversionFactor(),
                        unit.getBasicUnit())
                .onConflict().doUpdate().set(UNITS.LONGNAME, unit.getLongname())
                .set(UNITS.CONVERSION_FACTOR, unit.getConversionFactor())
                .set(UNITS.BASIC_UNIT, unit.getBasicUnit()).execute();
        bu.set(using(configuration).selectFrom(UNITS).where(UNITS.SHORTNAME.eq(unit.getShortname()))
                .fetchOneInto(Unit.class));
    });

    return bu.get();
}

From source file:org.apache.flink.streaming.api.functions.sink.SocketClientSinkTest.java

@Test
public void testSocketSinkNoRetry() throws Exception {
    final ServerSocket server = new ServerSocket(0);
    final int port = server.getLocalPort();

    try {// w w w .  j  a  v  a2 s  .c  o  m
        final AtomicReference<Throwable> error = new AtomicReference<Throwable>();

        Thread serverRunner = new Thread("Test server runner") {

            @Override
            public void run() {
                try {
                    Socket sk = server.accept();
                    sk.close();
                } catch (Throwable t) {
                    error.set(t);
                }
            }
        };
        serverRunner.start();

        SocketClientSink<String> simpleSink = new SocketClientSink<>(host, port, simpleSchema, 0, true);
        simpleSink.open(new Configuration());

        // wait socket server to close
        serverRunner.join();
        if (error.get() != null) {
            Throwable t = error.get();
            t.printStackTrace();
            fail("Error in server thread: " + t.getMessage());
        }

        try {
            // socket should be closed, so this should trigger a re-try
            // need two messages here: send a fin to cancel the client state:FIN_WAIT_2 while the server is CLOSE_WAIT
            while (true) { // we have to do this more often as the server side closed is not guaranteed to be noticed immediately
                simpleSink.invoke(TEST_MESSAGE + '\n');
            }
        } catch (IOException e) {
            // check whether throw a exception that reconnect failed.
            assertTrue("Wrong exception", e.getMessage().contains(EXCEPTION_MESSGAE));
        } catch (Exception e) {
            fail("wrong exception: " + e.getClass().getName() + " - " + e.getMessage());
        }

        assertEquals(0, simpleSink.getCurrentNumberOfRetries());
    } finally {
        IOUtils.closeQuietly(server);
    }
}

From source file:io.restassured.itest.java.FilterITest.java

@Test
public void content_type_in_filter_contains_charset_by_default() {
    final AtomicReference<String> contentType = new AtomicReference<String>();

    given().filter(new Filter() {
        public Response filter(FilterableRequestSpecification requestSpec,
                FilterableResponseSpecification responseSpec, FilterContext ctx) {
            contentType.set(requestSpec.getContentType());
            return ctx.next(requestSpec, responseSpec);
        }// w w  w  . j  ava 2s.  c  o m
    }).formParam("firstName", "John").formParam("lastName", "Doe").when().post("/greet").then().statusCode(200);

    assertThat(contentType.get(), equalTo("application/x-www-form-urlencoded; charset=ISO-8859-1"));
}

From source file:com.jeremydyer.iot.GPIORESTProcessor.java

@Override
public void onTrigger(final ProcessContext context, final ProcessSession session) throws ProcessException {

    final ProcessorLog log = this.getLogger();
    final AtomicReference<Integer> value = new AtomicReference<>();

    final FlowFile flowfile = session.get();
    final Integer delayThreshold = context.getProperty(PROP_SWITCH_DELAY_THRESHOLD).asInteger();

    session.read(flowfile, new InputStreamCallback() {
        @Override/*from ww  w . j a v  a  2 s .c  o  m*/
        public void process(InputStream in) throws IOException {
            try {
                String json = IOUtils.toString(in);
                int numFaces = JsonPath.read(json, "$.faces");
                value.set(numFaces);
            } catch (Exception ex) {
                getLogger().error("Failed to process face detection context", ex);
                session.transfer(flowfile, REL_FAILURE);
            }
        }
    });

    // Write the results to an attribute
    int numFaces = value.get();

    if (CURRENTLY_ON.get()) {
        //Outlet is on. If no faces detected turn off. Else do nothing
        if (numFaces == 0 && (((System.currentTimeMillis() - LAST_SWITCH_TS.get()) / 1000) > delayThreshold)) {
            CURRENTLY_ON.set(false);
            LAST_SWITCH_TS.set(System.currentTimeMillis());
            session.transfer(flowfile, REL_TURN_OFF);
        } else {
            session.transfer(flowfile, REL_NO_CHANGE);
        }
    } else {
        //Outlet is currently turned off
        if (numFaces > 0 && (((System.currentTimeMillis() - LAST_SWITCH_TS.get()) / 1000) > delayThreshold)) {
            CURRENTLY_ON.set(true);
            LAST_SWITCH_TS.set(System.currentTimeMillis());
            session.transfer(flowfile, REL_TURN_ON);
        } else {
            session.transfer(flowfile, REL_NO_CHANGE);
        }
    }

}