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.github.jdye64.processors.provenance.ProvenanceEventsToPhoenix.java

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

    final FlowFile flowFile = session.get();
    if (flowFile == null) {
        return;/* w  w  w  .jav  a2s .  co  m*/
    }

    String tableName = context.getProperty(PHOENIX_TABLE_NAME).evaluateAttributeExpressions(flowFile)
            .getValue();

    StringBuffer buffer = new StringBuffer();
    buffer.append(PREPEND_UPSERT);
    buffer.append(tableName);
    buffer.append(PROV_UPSERT_PREDICATES);
    buffer.append(PROV_PREP_VALUES);

    try {

        AtomicReference<JSONArray> provEvents = new AtomicReference<>();

        session.read(flowFile, new InputStreamCallback() {
            @Override
            public void process(InputStream in) throws IOException {
                StringWriter writer = new StringWriter();
                IOUtils.copy(in, writer, "UTF-8");
                provEvents.set(new JSONArray(writer.toString()));
            }
        });

        JSONArray events = provEvents.get();

        for (int i = 0; i < events.length(); i++) {
            JSONObject obj = events.getJSONObject(i);
            Map<String, String> attributes = generateAttributes(obj, tableName);

            FlowFile ff = session.write(session.clone(flowFile), new OutputStreamCallback() {
                @Override
                public void process(OutputStream out) throws IOException {
                    out.write(buffer.toString().getBytes());
                }
            });

            ff = session.putAllAttributes(ff, attributes);
            session.transfer(ff, REL_SUCCESS);
        }

        session.remove(flowFile);

    } catch (Exception ex) {
        getLogger().error("Error converting provenance event into Phoenix prepared statement {}",
                new Object[] { ex.getMessage() }, ex);
        session.transfer(flowFile, REL_FAILURE);
    }
}

From source file:com.dataflowdeveloper.processors.process.NLPProcessor.java

@Override
public void onTrigger(final ProcessContext context, final ProcessSession session) throws ProcessException {
    FlowFile flowFile = session.get();//from w w w .  jav a2  s. co  m
    if (flowFile == null) {
        flowFile = session.create();
    }
    try {
        flowFile.getAttributes();

        service = new OpenNLPService();

        String sentence = flowFile.getAttribute(ATTRIBUTE_INPUT_NAME);
        String sentence2 = context.getProperty(ATTRIBUTE_INPUT_NAME).evaluateAttributeExpressions(flowFile)
                .getValue();

        if (sentence == null) {
            sentence = sentence2;
        }

        try {
            // if they pass in a sentence do that instead of flowfile
            if (sentence == null) {
                final AtomicReference<String> contentsRef = new AtomicReference<>(null);

                session.read(flowFile, new InputStreamCallback() {
                    @Override
                    public void process(final InputStream input) throws IOException {
                        final String contents = IOUtils.toString(input, "UTF-8");
                        contentsRef.set(contents);
                    }
                });

                // use this as our text
                if (contentsRef.get() != null) {
                    sentence = contentsRef.get();
                }
            }

            List<PersonName> people = service.getPeople(
                    context.getProperty(EXTRA_RESOURCE).evaluateAttributeExpressions(flowFile).getValue(),
                    sentence);

            int count = 1;
            for (PersonName personName : people) {
                flowFile = session.putAttribute(flowFile, "nlp_name_" + count, personName.getName());
                count++;
            }

            List<String> dates = service.getDates(
                    context.getProperty(EXTRA_RESOURCE).evaluateAttributeExpressions(flowFile).getValue(),
                    sentence);

            count = 1;
            for (String aDate : dates) {
                flowFile = session.putAttribute(flowFile, "nlp_date_" + count, aDate);
                count++;
            }

            List<Location> locations = service.getLocations(
                    context.getProperty(EXTRA_RESOURCE).evaluateAttributeExpressions(flowFile).getValue(),
                    sentence);

            count = 1;
            for (Location location : locations) {
                flowFile = session.putAttribute(flowFile, "nlp_location_" + count, location.getLocation());
                count++;
            }

        } catch (Exception e) {
            throw new ProcessException(e);
        }

        session.transfer(flowFile, REL_SUCCESS);
        session.commit();
    } catch (final Throwable t) {
        getLogger().error("Unable to process NLP Processor file " + t.getLocalizedMessage());
        getLogger().error("{} failed to process due to {}; rolling back session", new Object[] { this, t });
        throw t;
    }
}

From source file:com.nesscomputing.httpserver.jetty.TestClasspathResourceHandler.java

@Test
public void testIfModified() throws Exception {
    final AtomicReference<String> holder = new AtomicReference<String>(null);
    final HttpClientResponseHandler<String> responseHandler = new ContentResponseHandler<String>(
            new StringContentConverter() {
                @Override/*from ww w  .jav  a2  s  .co  m*/
                public String convert(final HttpClientResponse response, final InputStream inputStream)
                        throws IOException {
                    holder.set(response.getHeader("Last-Modified"));
                    return super.convert(response, inputStream);
                }
            });

    final String uri = baseUri + "/simple-content.txt";
    final String content = httpClient.get(uri, responseHandler).perform();

    Assert.assertNotNull(holder.get());
    Assert.assertEquals("this is simple content for a simple test\n", content);

    final HttpClientResponseHandler<String> responseHandler2 = new ContentResponseHandler<String>(
            new StringContentConverter() {
                @Override
                public String convert(final HttpClientResponse response, final InputStream inputStream)
                        throws IOException {
                    Assert.assertEquals(304, response.getStatusCode());
                    return null;
                }
            });

    final String content2 = httpClient.get(uri, responseHandler2).addHeader("If-Modified-Since", holder.get())
            .perform();

    Assert.assertNull(content2);

    // "Time zone names ('z') cannot be parsed."  so we hack it by hand, assuming GMT  >:(
    final DateTimeFormatter httpFormat = DateTimeFormat.forPattern("EEE, dd MMM YYYY HH:mm:ss");
    final long newModified = httpFormat.parseMillis(StringUtils.removeEnd(holder.get(), " GMT")) - 600000;
    httpClient.get(uri, Valid2xxContentConverter.DEFAULT_FAILING_RESPONSE_HANDLER)
            .addHeader("If-Modified-Since", httpFormat.print(newModified) + " GMT").perform();
}

From source file:org.elasticsearch.xpack.test.rest.XPackRestIT.java

/**
 * Executes an API call using the admin context, waiting for it to succeed.
 *//*from w  w  w  .  j a v a  2 s . c  om*/
private void awaitCallApi(String apiName, Map<String, String> params, List<Map<String, Object>> bodies,
        CheckedFunction<ClientYamlTestResponse, Boolean, IOException> success, Supplier<String> error)
        throws Exception {

    AtomicReference<IOException> exceptionHolder = new AtomicReference<>();
    awaitBusy(() -> {
        try {
            ClientYamlTestResponse response = callApi(apiName, params, bodies, getApiCallHeaders());
            if (response.getStatusCode() == HttpStatus.SC_OK) {
                exceptionHolder.set(null);
                return success.apply(response);
            }
            return false;
        } catch (IOException e) {
            exceptionHolder.set(e);
        }
        return false;
    });

    IOException exception = exceptionHolder.get();
    if (exception != null) {
        throw new IllegalStateException(error.get(), exception);
    }
}

From source file:interactivespaces.util.web.HttpClientHttpContentCopierTest.java

/**
 * Test a file upload from an input stream.
 *//*from   w  w  w . java 2 s  .c o  m*/
@Test
public void testFileUploadInputStream() throws Exception {
    final File destination = getTempFile();

    InputStream source = new ByteArrayInputStream(TEST_CONTENT.getBytes());

    final AtomicReference<Map<String, String>> receivedParameters = new AtomicReference<Map<String, String>>();
    final CountDownLatch latch = new CountDownLatch(1);

    webServer.setHttpFileUploadListener(new HttpFileUploadListener() {
        @Override
        public void handleHttpFileUpload(HttpFileUpload fileUpload) {
            fileUpload.moveTo(destination);
            receivedParameters.set(fileUpload.getParameters());
            latch.countDown();
        }
    });

    String sourceParameterName = "myfile";
    Map<String, String> expectedParameters = Maps.newHashMap();
    expectedParameters.put("foo", "bar");
    expectedParameters.put("bletch", "spam");

    copier.copyTo(getUrlPrefix(), source, "foo.txt", sourceParameterName, expectedParameters);

    Assert.assertTrue(latch.await(10, TimeUnit.SECONDS));

    Assert.assertEquals(TEST_CONTENT, Files.readFile(destination).trim());
    Assert.assertEquals(expectedParameters, receivedParameters.get());
}

From source file:org.echocat.jomon.maven.boot.ArtifactFactory.java

protected MavenCli createCli(final AtomicReference<PlexusContainer> containerReference,
        final AtomicReference<DefaultMaven> oldMaven, final Maven maven) {
    return new MavenCli() {
        @Override/*from  w  w w.ja  v a 2  s.  c  o  m*/
        protected void customizeContainer(PlexusContainer container) {
            try {
                oldMaven.set((DefaultMaven) container.lookup(Maven.class));
            } catch (final ComponentLookupException e) {
                throw new RuntimeException(e);
            }
            container.addComponent(maven, Maven.class, "");
            containerReference.set(container);
        }
    };
}

From source file:interactivespaces.util.web.HttpClientHttpContentCopierTest.java

/**
 * Test a file upload from a file.//from   w ww  .jav a 2  s  .  c o  m
 */
@Test
public void testFileUploadFile() throws Exception {
    File source = getTempFile();
    final File destination = getTempFile();

    Files.writeFile(source, TEST_CONTENT);

    final AtomicReference<Map<String, String>> receivedParameters = new AtomicReference<Map<String, String>>();
    final CountDownLatch latch = new CountDownLatch(1);

    webServer.setHttpFileUploadListener(new HttpFileUploadListener() {
        @Override
        public void handleHttpFileUpload(HttpFileUpload fileUpload) {
            fileUpload.moveTo(destination);
            receivedParameters.set(fileUpload.getParameters());
            latch.countDown();
        }
    });

    String sourceParameterName = "myfile";
    Map<String, String> expectedParameters = Maps.newHashMap();
    expectedParameters.put("foo", "bar");
    expectedParameters.put("bletch", "spam");

    copier.copyTo(getUrlPrefix(), source, sourceParameterName, expectedParameters);

    Assert.assertTrue(latch.await(10, TimeUnit.SECONDS));

    Assert.assertEquals(TEST_CONTENT, Files.readFile(destination).trim());
    Assert.assertEquals(expectedParameters, receivedParameters.get());
}

From source file:ch.algotrader.cache.CacheTest.java

@BeforeClass
public static void beforeClass() {

    context = new AnnotationConfigApplicationContext();
    context.getEnvironment().setActiveProfiles("embeddedDataSource", "simulation");

    // register in-memory db
    EmbeddedDatabaseFactory dbFactory = new EmbeddedDatabaseFactory();
    dbFactory.setDatabaseType(EmbeddedDatabaseType.H2);
    dbFactory.setDatabaseName("testdb;MODE=MYSQL;DATABASE_TO_UPPER=FALSE");

    database = dbFactory.getDatabase();//from  w w  w .j  av  a 2 s . co m
    context.getDefaultListableBeanFactory().registerSingleton("dataSource", database);

    EngineManager engineManager = Mockito.mock(EngineManager.class);
    Mockito.when(engineManager.getCurrentEPTime()).thenReturn(new Date());
    Mockito.when(engineManager.getCurrentEPTime()).thenReturn(new Date());
    context.getDefaultListableBeanFactory().registerSingleton("engineManager", engineManager);

    AtomicReference<TransactionService> transactionService = new AtomicReference<>();
    Engine engine = new NoopEngine(StrategyImpl.SERVER);

    context.getDefaultListableBeanFactory().registerSingleton("serverEngine", engine);

    ExternalMarketDataService externalMarketDataService = Mockito.mock(ExternalMarketDataService.class);
    context.getDefaultListableBeanFactory().registerSingleton("externalMarketDataService",
            externalMarketDataService);

    context.getDefaultListableBeanFactory().registerSingleton("historicalDataService",
            new NoopHistoricalDataServiceImpl());

    Mockito.when(externalMarketDataService.getFeedType()).thenReturn(FeedType.IB.name());

    // register Wirings
    context.register(CommonConfigWiring.class, CoreConfigWiring.class, EventDispatchWiring.class,
            EventDispatchPostInitWiring.class, HibernateWiring.class, CacheWiring.class, DaoWiring.class,
            ServiceWiring.class, SimulationWiring.class);

    context.refresh();

    transactionService.set(context.getBean(TransactionService.class));

    cache = context.getBean(CacheManager.class);
    txTemplate = context.getBean(TransactionTemplate.class);

    // create the database
    ResourceDatabasePopulator dbPopulator = new ResourceDatabasePopulator();
    dbPopulator.addScript(new ClassPathResource("/db/h2/h2.sql"));
    DatabasePopulatorUtils.execute(dbPopulator, database);

    // populate the database
    SessionFactory sessionFactory = context.getBean(SessionFactory.class);
    Session session = sessionFactory.openSession();

    Exchange exchange1 = new ExchangeImpl();
    exchange1.setName("IDEALPRO");
    exchange1.setCode("IDEALPRO");
    exchange1.setTimeZone("US/Eastern");
    session.save(exchange1);

    SecurityFamily family1 = new SecurityFamilyImpl();
    family1.setName("FX");
    family1.setTickSizePattern("0<0.1");
    family1.setCurrency(Currency.USD);
    family1.setExchange(exchange1);
    family1.setTradeable(true);
    family1.setContractSize(1.0);
    securityFamilyId1 = (Long) session.save(family1);

    SecurityFamily family2 = new SecurityFamilyImpl();
    family2.setName("NON_TRADEABLE");
    family2.setTickSizePattern("0<0.1");
    family2.setCurrency(Currency.USD);
    family2.setTradeable(false);
    family2.setContractSize(1.0);
    securityFamilyId2 = (Long) session.save(family2);

    Forex security1 = new ForexImpl();
    security1.setSymbol("EUR.USD");
    security1.setBaseCurrency(Currency.EUR);
    security1.setSecurityFamily(family1);
    securityId1 = (Long) session.save(security1);

    Forex security2 = new ForexImpl();
    security2.setSymbol("GBP.USD");
    security2.setBaseCurrency(Currency.GBP);
    security2.setSecurityFamily(family1);
    security2.setUnderlying(security1);
    securityId2 = (Long) session.save(security2);

    Strategy strategy1 = new StrategyImpl();
    strategy1.setName(STRATEGY_NAME);
    strategyId1 = (Long) session.save(strategy1);

    Position position1 = new PositionImpl();
    position1.setQuantity(222);
    position1.setStrategy(strategy1);
    position1.setSecurity(security2);
    position1.setCost(new BigDecimal(0.0));
    position1.setRealizedPL(new BigDecimal(0.0));

    session.save(position1);

    Property property1 = new PropertyImpl();
    property1.setName(PROPERTY_NAME);
    property1.setDoubleValue(10.0);
    property1.setPropertyHolder(strategy1);
    session.save(property1);
    strategy1.getProps().put(PROPERTY_NAME, property1);

    Account account1 = new AccountImpl();
    account1.setName("TEST");
    account1.setBroker("TEST");
    account1.setOrderServiceType(OrderServiceType.SIMULATION.toString());
    accountId1 = (Long) session.save(account1);

    session.flush();
    session.close();
}

From source file:io.restassured.module.mockmvc.ContentTypeTest.java

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

    RestAssuredMockMvc.given().standaloneSetup(new GreetingController())
            .contentType(ContentType.JSON.withCharset("UTF-16"))
            .interceptor(new MockHttpServletRequestBuilderInterceptor() {
                public void intercept(MockHttpServletRequestBuilder requestBuilder) {
                    MultiValueMap<String, Object> headers = Whitebox.getInternalState(requestBuilder,
                            "headers");
                    contentType.set(String.valueOf(headers.getFirst("Content-Type")));
                }//from  ww  w .  j  a  va  2 s  .c  o  m
            }).when().get("/greeting?name={name}", "Johan").then().statusCode(200);

    assertThat(contentType.get()).isEqualTo("application/json;charset=UTF-16");
}

From source file:org.zodiark.publisher.PublisherTest.java

@Test(enabled = false)
public void createSessionTest() throws IOException, InterruptedException {
    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);

    publisherClient.handler(new OnEnvelopHandler() {
        @Override/* www  .j av  a  2s.c  om*/
        public boolean onEnvelop(Envelope e) throws IOException {
            answer.set(mapper.readValue(e.getMessage().getData(), PublisherResults.class));
            latch.countDown();
            return true;
        }
    }).open();

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