@AstrixApiProvider public class ServiceRegistryAdministratorLibraryProvider { @Library public ServiceRegistryAdministrator createAdministrator(AstrixServiceRegistry serviceRegistry) { return new ServiceRegistryAdministratorImpl(serviceRegistry); } }
@AstrixApiProvider public interface LunchServiceProvider { @Service LunchService lunchService(); }
@AstrixApiProvider public interface LunchServiceProvider { @AstrixConfigDiscovery("restaurantFinderUri") @Service LunchRestaurantFinder lunchRestaurantFinder(); }
@AstrixApiProvider public class AstrixServiceRegistryLibraryProvider implements AstrixConfigAware { private DynamicConfig config; @Library public ServiceRegistryClient createClient(AstrixServiceRegistry serviceRegistry) { return new ServiceRegistryClientFactory(config, () -> serviceRegistry).createServiceRegistryClient(); } @Override public void setConfig(DynamicConfig config) { this.config = config; } }
@AstrixApiProvider public interface TradingServiceApiProvider { @Service AccountService accountService(); }
@AstrixApiProvider public class LunchLibraryProvider { @Library public LunchSuggester lunchSuggester(LunchRestaurantFinder restaurantFinder) { return new LunchSuggesterImpl(restaurantFinder); } }
@AstrixApiProvider public class LunchLibraryProvider { @Library public LunchSuggester lunchUtil(LunchRestaurantFinder restaurantFinder) { return new LunchSuggesterImpl(restaurantFinder); } @Library public LunchRestaurantFinder lunchRestaurantFinder() { return new LunchRestaurantsFinderImpl(); } }
@AstrixApiProvider public class LunchLibraryProvider { @Library public LunchUtil createLunchUtil(LunchService lunchService) { return new LunchUtilImpl(lunchService); } }
@AstrixApiProvider public interface LunchFeederApiDescriptor { @Service InternalLunchFeeder internalLunchFeeder(); }
@AstrixApiProvider public class LunchLibraryProvider { @Library public LunchUtil lunchUtil(LunchService lunchService) { return new LunchUtilImpl(lunchService); } @Library public LunchStatistics createLunchGraderUtil(@AstrixQualifier("lunch-space") GigaSpace lunchSpaceProxy) { return new LunchStatisticsImpl(lunchSpaceProxy); } }
@AstrixObjectSerializerConfig( version = 2, objectSerializerConfigurer = LunchApiObjectSerializerConfigurer.class ) // The service is exported to the service-registry. Consumers queries the service-registry to bind to servers. @AstrixApiProvider public interface LunchServiceProvider { @Versioned @Service LunchService lunchService(); }
@AstrixObjectSerializerConfig( version = 1, objectSerializerConfigurer = LunchGradeApiObjectMapperConfigurer.class ) @AstrixApiProvider public interface LunchGradeServiceProvider { @Versioned @Service LunchRestaurantGrader lunchRestaurantGrader(); @Versioned @Service PublicLunchFeeder publicLunchFeeder(); }
@AstrixObjectSerializerConfig( version = 1, objectSerializerConfigurer = LunchGradeApiObjectMapperConfigurer.class ) @AstrixApiProvider public interface LunchGradeServiceProvider { @Versioned @Service LunchRestaurantGrader lunchRestaurantGrader(); @Versioned @Service PublicLunchFeeder publicLunchFeeder(); }
@AstrixObjectSerializerConfig( version = 1, objectSerializerConfigurer = ServiceAdministratorVersioningConfigurer.class ) @AstrixApiProvider public interface SystemServiceApiProvider { /* * Servern ska styra vilken qualifier som tjänsten registreras under. * * @AstrixDynamicQualifier ska innebära att denna provider kan binda * alla bönor av typen ServiceAdministrator, oavsett vilken qualifier som efterfrågas. */ //@GenericService? //@Qualifier("*")? @AstrixDynamicQualifier @Versioned @Service ServiceAdministrator serviceAdministrator(); }
/** * The service registry api uses Astrix-remoting to export its service. Note that * it doesn't use the service registry to bind to the providers, but rather uses * the configuration mechanism to locate a provider for the registry. * * @author Elias Lindholm (elilin) * */ @AstrixObjectSerializerConfig ( version = ServiceRegistryObjectSerializerConfigurer.VERSION, objectSerializerConfigurer = ServiceRegistryObjectSerializerConfigurer.class ) @AstrixApiProvider public interface AstrixServiceRegistryServiceProvider { @AstrixConfigDiscovery(AstrixSettings.SERVICE_REGISTRY_URI_PROPERTY_NAME) @Versioned @Service AstrixServiceRegistry serviceRegistry(); }
@AstrixObjectSerializerConfig( version = 2, objectSerializerConfigurer = LunchApiObjectSerializerConfigurer.class ) @AstrixApiProvider public interface LunchServiceProvider { @Versioned @Service LunchService lunchService(); @Versioned @AstrixQualifier("lunch-ping") @Service Ping ping(); @Service InternalLunchFeeder internalLunchFeeder(); @AstrixQualifier("lunch-space") @Service(AstrixServiceComponentNames.GS) GigaSpace gigaSpace(); @AstrixQualifier("lunch-space-local-view") @Service(AstrixServiceComponentNames.GS_LOCAL_VIEW) @ServiceConfig(LunchLocalViewConfigurer.class) GigaSpace lunchLocalView(); }