public void testCompose() { Supplier<Integer> fiveSupplier = new Supplier<Integer>() { @Override public Integer get() { return 5; } }; Function<Number, Integer> intValueFunction = new Function<Number, Integer>() { @Override public Integer apply(Number x) { return x.intValue(); } }; Supplier<Integer> squareSupplier = Suppliers.compose(intValueFunction, fiveSupplier); assertEquals(Integer.valueOf(5), squareSupplier.get()); }
public void testCompose_equals() { new EqualsTester() .addEqualityGroup( Suppliers.compose(Functions.constant(1), Suppliers.ofInstance("foo")), Suppliers.compose(Functions.constant(1), Suppliers.ofInstance("foo"))) .addEqualityGroup(Suppliers.compose(Functions.constant(2), Suppliers.ofInstance("foo"))) .addEqualityGroup(Suppliers.compose(Functions.constant(1), Suppliers.ofInstance("bar"))) .testEquals(); } }
public void testComposeWithLists() { Supplier<ArrayList<Integer>> listSupplier = new Supplier<ArrayList<Integer>>() { @Override public ArrayList<Integer> get() { return Lists.newArrayList(0); } }; Function<List<Integer>, List<Integer>> addElementFunction = new Function<List<Integer>, List<Integer>>() { @Override public List<Integer> apply(List<Integer> list) { ArrayList<Integer> result = Lists.newArrayList(list); result.add(1); return result; } }; Supplier<List<Integer>> addSupplier = Suppliers.compose(addElementFunction, listSupplier); List<Integer> result = addSupplier.get(); assertEquals(Integer.valueOf(0), result.get(0)); assertEquals(Integer.valueOf(1), result.get(1)); }
@GwtIncompatible // SerializationTester public void testSerialization() { assertEquals(Integer.valueOf(5), reserialize(Suppliers.ofInstance(5)).get()); assertEquals( Integer.valueOf(5), reserialize(Suppliers.compose(Functions.identity(), Suppliers.ofInstance(5))).get()); assertEquals(Integer.valueOf(5), reserialize(Suppliers.memoize(Suppliers.ofInstance(5))).get()); assertEquals( Integer.valueOf(5), reserialize(Suppliers.memoizeWithExpiration(Suppliers.ofInstance(5), 30, TimeUnit.SECONDS)) .get()); assertEquals( Integer.valueOf(5), reserialize(Suppliers.synchronizedSupplier(Suppliers.ofInstance(5))).get()); }
public PaxosLeadershipCreator( MetricsManager metricsManager, TimeLockInstallConfiguration install, Supplier<TimeLockRuntimeConfiguration> runtime, Consumer<Object> registrar) { this.metricsManager = metricsManager; this.install = install; this.runtime = Suppliers.compose(TimeLockRuntimeConfiguration::paxos, runtime::get); this.registrar = registrar; }
private MultiTableSweepQueueWriter uninitializedTargetedSweeper( MetricsManager metricsManager, TargetedSweepInstallConfig config, Follower follower, Supplier<TargetedSweepRuntimeConfig> runtime) { if (!config.enableSweepQueueWrites()) { return MultiTableSweepQueueWriter.NO_OP; } return TargetedSweeper.createUninitialized( metricsManager, Suppliers.compose(TargetedSweepRuntimeConfig::enabled, runtime::get), Suppliers.compose(TargetedSweepRuntimeConfig::shards, runtime::get), config.conservativeThreads(), config.thoroughThreads(), ImmutableList.of(follower)); }
private PaxosTimestampCreator getPaxosTimestampCreator(MetricRegistry metrics) { return new PaxosTimestampCreator(metrics, paxosResource, PaxosRemotingUtils.getRemoteServerPaths(install), PaxosRemotingUtils.getSslConfigurationOptional(install).map(SslSocketFactories::createTrustContext), Suppliers.compose(TimeLockRuntimeConfiguration::paxos, runtime::get)); }
private void createAndRegisterResources() { registerPaxosResource(); registerExceptionMappers(); leadershipCreator.registerLeaderElectionService(); // Finally, register the health check, and endpoints associated with the clients. healthCheckSupplier = leadershipCreator.getHealthCheck(); resource = TimeLockResource.create( metricsManager, this::createInvalidatingTimeLockServices, Suppliers.compose(TimeLockRuntimeConfiguration::maxNumberOfClients, runtime::get)); registrar.accept(resource); ClockSkewMonitorCreator.create(metricsManager, install, registrar).registerClockServices(); }
private TimeLockAgent(MetricsManager metricsManager, TimeLockInstallConfiguration install, Supplier<TimeLockRuntimeConfiguration> runtime, TimeLockDeprecatedConfiguration deprecated, Consumer<Object> registrar) { this.metricsManager = metricsManager; this.install = install; this.runtime = runtime; this.registrar = registrar; this.paxosResource = PaxosResource.create(metricsManager.getRegistry(), install.paxos().dataDirectory().toString()); this.leadershipCreator = new PaxosLeadershipCreator(this.metricsManager, install, runtime, registrar); this.lockCreator = new LockCreator(runtime, deprecated); this.timestampCreator = getTimestampCreator(metricsManager.getRegistry()); LockLog lockLog = new LockLog(metricsManager.getRegistry(), Suppliers.compose(TimeLockRuntimeConfiguration::slowLockLogTriggerMillis, runtime::get)); this.timelockCreator = new AsyncTimeLockServicesCreator(metricsManager, lockLog, leadershipCreator); }
public void registerLeaderElectionService() { Set<String> remoteServers = PaxosRemotingUtils.getRemoteServerPaths(install); LeaderConfig leaderConfig = getLeaderConfig(); Set<String> paxosSubresourceUris = PaxosTimeLockUriUtils.getLeaderPaxosUris(remoteServers); Leaders.LocalPaxosServices localPaxosServices = Leaders.createInstrumentedLocalServices( metricsManager, leaderConfig, Suppliers.compose(getLeaderRuntimeConfig::apply, runtime::get), ImmutableRemotePaxosServerSpec.builder() .remoteLeaderUris(remoteServers) .remoteAcceptorUris(paxosSubresourceUris) .remoteLearnerUris(paxosSubresourceUris) .build(), "leader-election-service"); localPingableLeader = localPaxosServices.pingableLeader(); leaderElectionService = localPaxosServices.leaderElectionService(); leadershipObserver = localPaxosServices.leadershipObserver(); registrar.accept(localPingableLeader); registrar.accept(new LeadershipResource( localPaxosServices.ourAcceptor(), localPaxosServices.ourLearner())); }
.leaderPingResponseWaitMs(config.leaderPingResponseWaitMs()) .eventRecorder(leadershipEventRecorder) .onlyLogOnQuorumFailure(Suppliers.compose(LeaderRuntimeConfig::onlyLogOnQuorumFailure, runtime::get)) .build();
@Override public TimeLockServices createTimeLockServices( String client, Supplier<ManagedTimestampService> rawTimestampServiceSupplier, Supplier<LockService> rawLockServiceSupplier) { log.info("Creating async timelock services for client {}", SafeArg.of("client", client)); AsyncTimelockService asyncTimelockService = instrumentInLeadershipProxy( metricsManager.getTaggedRegistry(), AsyncTimelockService.class, () -> createRawAsyncTimelockService(client, rawTimestampServiceSupplier), client); AsyncTimelockResource asyncTimelockResource = new AsyncTimelockResource(lockLog, asyncTimelockService); LockService lockService = instrumentInLeadershipProxy( metricsManager.getTaggedRegistry(), LockService.class, Suppliers.compose(NonTransactionalLockService::new, rawLockServiceSupplier::get), client); leadershipCreator.executeWhenLostLeadership(() -> metricsManager.deregisterTaggedMetrics(withTagIsCurrentSuspectedLeader(true))); leadershipCreator.executeWhenGainedLeadership(() -> metricsManager.deregisterTaggedMetrics(withTagIsCurrentSuspectedLeader(false))); return TimeLockServices.create( asyncTimelockService, lockService, asyncTimelockResource, asyncTimelockService); }
@Provides @Singleton @org.jclouds.vcloud.director.v1_5.annotations.Session protected Supplier<String> sessionToken(Supplier<SessionWithToken> in) { return Suppliers.compose(new Function<SessionWithToken, String>() { @Override public String apply(SessionWithToken arg0) { return arg0.getToken(); } }, in); }
@VCloudToken @Provides @Singleton Supplier<String> provideVCloudToken(Supplier<VCloudSession> cache) { return Suppliers.compose(new Function<VCloudSession, String>() { @Override public String apply(VCloudSession input) { return checkNotNull(input.getVCloudToken(), "No token present in session"); } }, cache); }
@Provides @org.jclouds.trmk.vcloud_0_8.endpoints.Catalog @Singleton protected Supplier<ReferenceType> provideDefaultCatalog(DefaultCatalogForOrg defaultCatalogURIForOrg, @org.jclouds.trmk.vcloud_0_8.endpoints.Org Supplier<ReferenceType> defaultOrg) { return Suppliers.compose(defaultCatalogURIForOrg, defaultOrg); }
@Provides @org.jclouds.vcloud.endpoints.VDC @Singleton protected Supplier<ReferenceType> provideDefaultVDC(DefaultVDCForOrg defaultVDCURIForOrg, @org.jclouds.vcloud.endpoints.Org Supplier<ReferenceType> defaultOrg) { return Suppliers.compose(defaultVDCURIForOrg, defaultOrg); }
@Provides @org.jclouds.vcloud.endpoints.Catalog @Singleton protected Supplier<ReferenceType> provideDefaultCatalog(DefaultCatalogForOrg defaultCatalogURIForOrg, @org.jclouds.vcloud.endpoints.Org Supplier<ReferenceType> defaultOrg) { return Suppliers.compose(defaultCatalogURIForOrg, defaultOrg); }
@Provides @org.jclouds.vcloud.endpoints.VDC @Singleton protected Supplier<ReferenceType> provideDefaultVDC(DefaultVDCForOrg defaultVDCURIForOrg, @org.jclouds.vcloud.endpoints.Org Supplier<ReferenceType> defaultOrg) { return Suppliers.compose(defaultVDCURIForOrg, defaultOrg); }
ServiceDiscoveringAtlasSupplier atlasFactory = new ServiceDiscoveringAtlasSupplier(metricsManager, config().keyValueService(), Suppliers.compose(AtlasDbRuntimeConfig::keyValueService, runtimeConfigSupplier::get), config().leader(), config().namespace(), Optional.empty(), config().initializeAsync(), adapter); Suppliers.memoize(atlasFactory::getTimestampService); com.google.common.base.Supplier<TimestampManagementService> managementSupplier = Suppliers.compose(atlasFactory::getTimestampManagementService, timestampSupplier); Supplier<SweepConfig> sweepConfig = Suppliers.compose(AtlasDbRuntimeConfig::sweep, runtimeConfigSupplier::get); kvs = SweepStatsKeyValueService.create(kvs, new TimelockTimestampServiceAdapter(lockAndTimestampServices.timelock()), Suppliers.compose(SweepConfig::writeThreshold, sweepConfig::get), Suppliers.compose(SweepConfig::writeSizeThreshold, sweepConfig::get) ); Suppliers.compose(AtlasDbRuntimeConfig::targetedSweep, runtimeConfigSupplier::get)), closeables); keyValueService, instrumentedTransactionManager, Suppliers.compose(AtlasDbRuntimeConfig::compact, runtimeConfigSupplier::get)), closeables);
@Override protected T getDomainObject() { T result = super.getDomainObject(); if(result==null){ modelSupplier = Suppliers.memoize(Suppliers.compose(new LookupFunction<T>(), Suppliers.ofInstance(id))); result = modelSupplier.get(); } if (result.cdoView() instanceof CDOTransaction) { transaction = (CDOTransaction) result.cdoView(); } return result; }