public static <T> List<T> createProxyAndLocalList( MetricRegistry metrics, T localObject, Set<String> remoteUris, Optional<TrustContext> trustContext, Class<T> clazz, String userAgent) { return ImmutableList.copyOf(Iterables.concat( AtlasDbHttpClients.createProxies(metrics, trustContext, remoteUris, true, clazz, userAgent), ImmutableList.of(localObject))); }
@Test(expected = IllegalStateException.class) public void createProxyAndLocalListThrowsIfCreatingObjectsWithoutHttpMethodAnnotatedMethods() { BigInteger localBigInteger = new BigInteger("0"); Leaders.createProxyAndLocalList( new MetricRegistry(), localBigInteger, REMOTE_SERVICE_ADDRESSES, Optional.empty(), BigInteger.class); }
@Test(expected = NullPointerException.class) public void createProxyAndLocalListThrowsIfNullClassProvided() { PaxosAcceptor localAcceptor = mock(PaxosAcceptor.class); Leaders.createProxyAndLocalList( new MetricRegistry(), localAcceptor, REMOTE_SERVICE_ADDRESSES, Optional.empty(), null); } }
List<PaxosAcceptor> acceptors = Leaders.createProxyAndLocalList( metricRegistry, paxosResource.getPaxosAcceptor(client), List<PaxosLearner> learners = Leaders.createProxyAndLocalList( metricRegistry, ourLearner,
@Test public void canCreateProxyAndLocalListOfPaxosAcceptors() { PaxosAcceptor localAcceptor = mock(PaxosAcceptor.class); when(localAcceptor.getLatestSequencePreparedOrAccepted()).thenReturn(1L); List<PaxosAcceptor> paxosAcceptors = Leaders.createProxyAndLocalList( new MetricRegistry(), localAcceptor, REMOTE_SERVICE_ADDRESSES, Optional.empty(), PaxosAcceptor.class); MatcherAssert.assertThat(paxosAcceptors.size(), is(REMOTE_SERVICE_ADDRESSES.size() + 1)); paxosAcceptors.forEach(object -> MatcherAssert.assertThat(object, not(nullValue()))); MatcherAssert.assertThat(Iterables.getLast(paxosAcceptors).getLatestSequencePreparedOrAccepted(), is(1L)); verify(localAcceptor).getLatestSequencePreparedOrAccepted(); verifyNoMoreInteractions(localAcceptor); }
@Test public void createProxyAndLocalListCreatesSingletonListIfNoRemoteAddressesProvided() { PaxosAcceptor localAcceptor = mock(PaxosAcceptor.class); when(localAcceptor.getLatestSequencePreparedOrAccepted()).thenReturn(1L); List<PaxosAcceptor> paxosAcceptors = Leaders.createProxyAndLocalList( new MetricRegistry(), localAcceptor, ImmutableSet.of(), Optional.empty(), PaxosAcceptor.class); MatcherAssert.assertThat(paxosAcceptors.size(), is(1)); MatcherAssert.assertThat(Iterables.getLast(paxosAcceptors).getLatestSequencePreparedOrAccepted(), is(1L)); verify(localAcceptor).getLatestSequencePreparedOrAccepted(); verifyNoMoreInteractions(localAcceptor); }
@Test public void canCreateProxyAndLocalListOfPaxosLearners() { PaxosLearner localLearner = mock(PaxosLearner.class); PaxosValue value = mock(PaxosValue.class); when(localLearner.getGreatestLearnedValue()).thenReturn(value); List<PaxosLearner> paxosLearners = Leaders.createProxyAndLocalList( new MetricRegistry(), localLearner, REMOTE_SERVICE_ADDRESSES, Optional.empty(), PaxosLearner.class); MatcherAssert.assertThat(paxosLearners.size(), is(REMOTE_SERVICE_ADDRESSES.size() + 1)); paxosLearners.forEach(object -> MatcherAssert.assertThat(object, not(nullValue()))); MatcherAssert.assertThat(Iterables.getLast(paxosLearners).getGreatestLearnedValue(), is(value)); verify(localLearner).getGreatestLearnedValue(); verifyNoMoreInteractions(localLearner); }
ServiceCreator.createTrustContext(config.sslConfiguration()); List<PaxosLearner> learners = createProxyAndLocalList( metricsManager.getRegistry(), ourLearner, remotePaxosServerSpec.remoteLearnerUris(), trustContext, PaxosLearner.class, userAgent); List<PaxosAcceptor> acceptors = createProxyAndLocalList( metricsManager.getRegistry(), ourAcceptor,
public static <T> List<T> createProxyAndLocalList( MetricRegistry metrics, T localObject, Set<String> remoteUris, Optional<TrustContext> trustContext, Class<T> clazz, String userAgent) { return ImmutableList.copyOf(Iterables.concat( AtlasDbHttpClients.createProxies(metrics, trustContext, remoteUris, true, clazz, userAgent), ImmutableList.of(localObject))); }
ServiceCreator.createTrustContext(config.sslConfiguration()); List<PaxosLearner> learners = createProxyAndLocalList( metricsManager.getRegistry(), ourLearner, remotePaxosServerSpec.remoteLearnerUris(), trustContext, PaxosLearner.class, userAgent); List<PaxosAcceptor> acceptors = createProxyAndLocalList( metricsManager.getRegistry(), ourAcceptor,