List of usage examples for org.apache.commons.lang3.tuple MutablePair MutablePair
public MutablePair()
From source file:io.cloudslang.lang.compiler.caching.CachedPrecompileServiceImplTest.java
@Test public void testCacheValueSuccess() { String myPath = "aaa"; ExecutableModellingResult executableModellingResult = mock(ExecutableModellingResult.class); SlangSource slangSource = mock(SlangSource.class); final MutablePair<CacheValue, Boolean> pair = new MutablePair<>(); doAnswer(new Answer() { @Override/* w w w .j a v a 2 s . com*/ public Object answer(InvocationOnMock invocation) throws Throwable { pair.setLeft((CacheValue) invocation.getArguments()[1]); return null; } }).when(cache).put(anyString(), any(CacheValue.class)); // Tested call cachedPrecompileServiceImpl.cacheValue(myPath, executableModellingResult, slangSource); verify(cache).put(eq(myPath), same(pair.getLeft())); }
From source file:io.cloudslang.lang.compiler.caching.CachedPrecompileServiceImplTest.java
@Test public void testCacheValueDoesNothingForNull() { String myPath = null;//from w w w .j av a2 s . c om ExecutableModellingResult executableModellingResult = mock(ExecutableModellingResult.class); SlangSource slangSource = mock(SlangSource.class); final MutablePair<CacheValue, Boolean> pair = new MutablePair<>(); doAnswer(new Answer() { @Override public Object answer(InvocationOnMock invocation) throws Throwable { pair.setLeft((CacheValue) invocation.getArguments()[1]); return null; } }).when(cache).put(anyString(), any(CacheValue.class)); // Tested call cachedPrecompileServiceImpl.cacheValue(myPath, executableModellingResult, slangSource); verify(cache, never()).put(anyString(), any(CacheValue.class)); }
From source file:com.yahoo.pulsar.broker.service.Consumer.java
/** * Dispatch a list of entries to the consumer. * * @return a promise that can be use to track when all the data has been written into the socket *//*from w ww . ja v a2 s . co m*/ public Pair<ChannelPromise, Integer> sendMessages(final List<Entry> entries) { final ChannelHandlerContext ctx = cnx.ctx(); final MutablePair<ChannelPromise, Integer> sentMessages = new MutablePair<ChannelPromise, Integer>(); final ChannelPromise writePromise = ctx.newPromise(); sentMessages.setLeft(writePromise); if (entries.isEmpty()) { if (log.isDebugEnabled()) { log.debug("[{}] List of messages is empty, triggering write future immediately for consumerId {}", subscription, consumerId); } writePromise.setSuccess(); sentMessages.setRight(0); return sentMessages; } sentMessages.setRight(updatePermitsAndPendingAcks(entries)); ctx.channel().eventLoop().execute(() -> { for (int i = 0; i < entries.size(); i++) { Entry entry = entries.get(i); PositionImpl pos = (PositionImpl) entry.getPosition(); MessageIdData.Builder messageIdBuilder = MessageIdData.newBuilder(); MessageIdData messageId = messageIdBuilder.setLedgerId(pos.getLedgerId()) .setEntryId(pos.getEntryId()).build(); ByteBuf metadataAndPayload = entry.getDataBuffer(); // skip checksum by incrementing reader-index if consumer-client doesn't support checksum verification if (cnx.getRemoteEndpointProtocolVersion() < ProtocolVersion.v6.getNumber()) { readChecksum(metadataAndPayload); } // stats msgOut.recordEvent(metadataAndPayload.readableBytes()); if (log.isDebugEnabled()) { log.debug("[{}] Sending message to consumerId {}, entry id {}", subscription, consumerId, pos.getEntryId()); } // We only want to pass the "real" promise on the last entry written ChannelPromise promise = ctx.voidPromise(); if (i == (entries.size() - 1)) { promise = writePromise; } ctx.write(Commands.newMessage(consumerId, messageId, metadataAndPayload), promise); messageId.recycle(); messageIdBuilder.recycle(); } ctx.flush(); }); return sentMessages; }
From source file:com.datatorrent.lib.db.jdbc.AbstractJdbcPollInputOperator.java
public AbstractJdbcPollInputOperator() { currentWindowRecoveryState = new MutablePair<>(); windowManager = new FSWindowDataManager(); }
From source file:io.cloudslang.lang.tools.build.tester.parallel.report.SlangTestCaseRunReportGeneratorServiceTest.java
@Test public void generateTestCaseReportTable() throws IOException { HtmlCanvas canvas = mock(HtmlCanvas.class); IRunTestResults runTestResults = mock(IRunTestResults.class); final HtmlCanvas mockTable = mock(HtmlCanvas.class); HtmlCanvas mockTr = mock(HtmlCanvas.class); final MutablePair<Integer, Object> pair = new MutablePair<>(); doAnswer(new Answer() { @Override//ww w . j a v a 2 s . c o m public Object answer(InvocationOnMock invocationOnMock) throws Throwable { pair.setLeft(0); pair.setRight(invocationOnMock.getArguments()[0]); return mockTable; } }).when(canvas).table(any(HtmlAttributes.class)); doReturn(mockTr).when(mockTable).tr(); doReturn(mockTr).when(mockTr).th(); doReturn(mockTr).when(mockTr).content(anyString()); doReturn(mockTr).when(mockTr).th(any(CharactersWriteable.class)); doReturn(new HtmlCanvas()).when(mockTr)._tr(); doNothing().when(reportGeneratorService).appendTestRuns(any(HtmlCanvas.class), anyMap(), anyString()); Map<String, TestRun> success = mock(Map.class); Map<String, TestRun> failed = mock(Map.class); Map<String, TestRun> skipped = mock(Map.class); doReturn(success).when(runTestResults).getPassedTests(); doReturn(failed).when(runTestResults).getFailedTests(); doReturn(skipped).when(runTestResults).getSkippedTests(); reportGeneratorService.generateTestCaseReportTable(canvas, runTestResults); verify(canvas).table(eq((CharactersWriteable) pair.getRight())); verify(mockTable).tr(); InOrder mockTableInOrder = inOrder(mockTr); mockTableInOrder.verify(mockTr).th(); mockTableInOrder.verify(mockTr).content(eq(TEST_NAME)); mockTableInOrder.verify(mockTr).th(any(HtmlAttributes.class)); mockTableInOrder.verify(mockTr).content(TEST_SUITE); mockTableInOrder.verify(mockTr).th(any(HtmlAttributes.class)); mockTableInOrder.verify(mockTr).content(TEST_STATUS); mockTableInOrder.verify(mockTr).th(); mockTableInOrder.verify(mockTr).content(TEST_FLOW_PATH); mockTableInOrder.verify(mockTr).th(); mockTableInOrder.verify(mockTr).content(TEST_DESCRIPTION); mockTableInOrder.verify(mockTr).th(); mockTableInOrder.verify(mockTr).content(OUTPUTS); mockTableInOrder.verify(mockTr).th(); mockTableInOrder.verify(mockTr).content(EXCEPTION_OR_MESSAGE); mockTableInOrder.verify(mockTr)._tr(); mockTableInOrder.verifyNoMoreInteractions(); verify(reportGeneratorService).appendTestRuns(eq(mockTable), eq(success), eq(PASSED)); verify(reportGeneratorService).appendTestRuns(eq(mockTable), eq(failed), eq(FAILED)); verify(reportGeneratorService).appendTestRuns(eq(mockTable), eq(skipped), eq(SKIPPED)); }
From source file:org.apache.pulsar.broker.service.Consumer.java
/** * Dispatch a list of entries to the consumer. <br/> * <b>It is also responsible to release entries data and recycle entries object.</b> * * @return a promise that can be use to track when all the data has been written into the socket *///from w w w . j a v a 2s.com public Pair<ChannelPromise, Integer> sendMessages(final List<Entry> entries) { final ChannelHandlerContext ctx = cnx.ctx(); final MutablePair<ChannelPromise, Integer> sentMessages = new MutablePair<ChannelPromise, Integer>(); final ChannelPromise writePromise = ctx.newPromise(); sentMessages.setLeft(writePromise); if (entries.isEmpty()) { if (log.isDebugEnabled()) { log.debug("[{}] List of messages is empty, triggering write future immediately for consumerId {}", subscription, consumerId); } writePromise.setSuccess(); sentMessages.setRight(0); return sentMessages; } try { sentMessages.setRight(updatePermitsAndPendingAcks(entries)); } catch (PulsarServerException pe) { log.warn("[{}] [{}] consumer doesn't support batch-message {}", subscription, consumerId, cnx.getRemoteEndpointProtocolVersion()); subscription.markTopicWithBatchMessagePublished(); sentMessages.setRight(0); // disconnect consumer: it will update dispatcher's availablePermits and resend pendingAck-messages of this // consumer to other consumer disconnect(); return sentMessages; } ctx.channel().eventLoop().execute(() -> { for (int i = 0; i < entries.size(); i++) { Entry entry = entries.get(i); PositionImpl pos = (PositionImpl) entry.getPosition(); MessageIdData.Builder messageIdBuilder = MessageIdData.newBuilder(); MessageIdData messageId = messageIdBuilder.setLedgerId(pos.getLedgerId()) .setEntryId(pos.getEntryId()).build(); ByteBuf metadataAndPayload = entry.getDataBuffer(); // increment ref-count of data and release at the end of process: so, we can get chance to call entry.release metadataAndPayload.retain(); // skip checksum by incrementing reader-index if consumer-client doesn't support checksum verification if (cnx.getRemoteEndpointProtocolVersion() < ProtocolVersion.v6.getNumber()) { readChecksum(metadataAndPayload); } if (log.isDebugEnabled()) { log.debug("[{}] Sending message to consumerId {}, entry id {}", subscription, consumerId, pos.getEntryId()); } // We only want to pass the "real" promise on the last entry written ChannelPromise promise = ctx.voidPromise(); if (i == (entries.size() - 1)) { promise = writePromise; } ctx.write(Commands.newMessage(consumerId, messageId, metadataAndPayload), promise); messageId.recycle(); messageIdBuilder.recycle(); entry.release(); } ctx.flush(); }); return sentMessages; }
From source file:org.jsweet.input.typescriptdef.ast.Scanner.java
protected Pair<TypeDeclaration, FunctionDeclaration> findSuperMethod(TypeDeclaration declaringType, FunctionDeclaration method) {/* www . j a va 2s . co m*/ MutablePair<TypeDeclaration, FunctionDeclaration> superMethodInfos = new MutablePair<>(); applyToSuperMethod(declaringType, method, (superType, superMethod) -> { superMethodInfos.setLeft(superType); superMethodInfos.setRight(superMethod); }); return superMethodInfos.getRight() == null ? null : superMethodInfos; }
From source file:org.opendaylight.openflowplugin.impl.util.BarrierUtil.java
/** * chain a barrier message - regardless of previous result and use given {@link Function} to combine * original result and barrier result// ww w. j a va 2 s.c om * * @param <T> type of input future * @param input future to chain barrier to * @param nodeRef target device * @param transactionService barrier service * @param compositeTransform * @return future holding both results (input and of the barrier) */ public static <T> ListenableFuture<RpcResult<T>> chainBarrier(final ListenableFuture<RpcResult<T>> input, final NodeRef nodeRef, final FlowCapableTransactionService transactionService, final Function<Pair<RpcResult<T>, RpcResult<Void>>, RpcResult<T>> compositeTransform) { final MutablePair<RpcResult<T>, RpcResult<Void>> resultPair = new MutablePair<>(); // store input result and append barrier final ListenableFuture<RpcResult<Void>> barrierResult = Futures.transform(input, new AsyncFunction<RpcResult<T>, RpcResult<Void>>() { @Override public ListenableFuture<RpcResult<Void>> apply(@Nullable final RpcResult<T> interInput) throws Exception { resultPair.setLeft(interInput); final SendBarrierInput barrierInput = createSendBarrierInput(nodeRef); return JdkFutureAdapters.listenInPoolThread(transactionService.sendBarrier(barrierInput)); } }); // store barrier result and return initiated pair final ListenableFuture<Pair<RpcResult<T>, RpcResult<Void>>> compositeResult = Futures .transform(barrierResult, new Function<RpcResult<Void>, Pair<RpcResult<T>, RpcResult<Void>>>() { @Nullable @Override public Pair<RpcResult<T>, RpcResult<Void>> apply(@Nullable final RpcResult<Void> input) { resultPair.setRight(input); return resultPair; } }); // append assembling transform to barrier result return Futures.transform(compositeResult, compositeTransform); }
From source file:org.openlmis.fulfillment.Resource2Db.java
Pair<List<String>, List<Object[]>> resourceCsvToBatchedPair(final Resource resource) throws IOException { XLOGGER.entry(resource.getDescription()); // parse CSV/*from ww w. j av a2s. com*/ try (InputStreamReader isReader = new InputStreamReader( new BOMInputStream(resource.getInputStream(), ByteOrderMark.UTF_8))) { CSVParser parser = CSVFormat.DEFAULT.withHeader().withNullString("").parse(isReader); // read header row MutablePair<List<String>, List<Object[]>> readData = new MutablePair<>(); readData.setLeft(new ArrayList<>(parser.getHeaderMap().keySet())); XLOGGER.info("Read header: " + readData.getLeft()); // read data rows List<Object[]> rows = new ArrayList<>(); for (CSVRecord record : parser.getRecords()) { if (!record.isConsistent()) { throw new IllegalArgumentException("CSV record inconsistent: " + record); } List theRow = IteratorUtils.toList(record.iterator()); rows.add(theRow.toArray()); } readData.setRight(rows); XLOGGER.exit("Records read: " + readData.getRight().size()); return readData; } }