static ActiveDescriptor<?> translateToActiveDescriptor(ClassBinding<?> desc) { ActiveDescriptorBuilder binding = BuilderHelper.activeLink(desc.getService()).named(desc.getName()) .analyzeWith(desc.getAnalyzer()); if (desc.getScope() != null) { binding.in(transformScope(desc.getScope())); } if (desc.getRank() != null) { binding.ofRank(desc.getRank()); } for (Annotation annotation : desc.getQualifiers()) { binding.qualifiedBy(annotation); } for (Type contract : desc.getContracts()) { binding.to(contract); } if (desc.isProxiable() != null) { binding.proxy(desc.isProxiable()); } if (desc.isProxiedForSameScope() != null) { binding.proxyForSameScope(desc.isProxiedForSameScope()); } if (desc.getImplementationType() != null) { binding.asType(desc.getImplementationType()); } return binding.build(); }
/** * Start building a new generic type-based service binding. * <p> * Binds the generic service type itself as a contract type. * * @param <T> service type. * @param serviceType generic service type information. * @return initialized binding builder. */ @SuppressWarnings("unchecked") public static <T> ClassBinding<T> serviceAsContract(Type serviceType) { return new ClassBinding<>((Class<T>) ReflectionHelper.getRawClass(serviceType)) .asType((Class<T>) serviceType) .to(serviceType); }
@Override protected void configure() { ClassBinding<T> descriptor = bindAsContract(clazz).in(scope); for (Class contract : Providers.getProviderContracts(clazz)) { descriptor.addAlias(contract) .in(scope.getName()) .qualifiedBy(CustomAnnotationLiteral.INSTANCE); } } };
/** * Start building a new class-based service binding. * <p> * Binds the service type itself as a contract type. * * @param <T> service type. * @param serviceType service class. * @return initialized binding builder. */ public static <T> ClassBinding<T> serviceAsContract(Class<T> serviceType) { return new ClassBinding<>(serviceType).to(serviceType); }
@Override protected void configure() { bindAsContract(RequestProcessingContextReference.class) .in(RequestScoped.class); .to(SecurityContext.class) .proxy(true).proxyForSameScope(false) .in(RequestScoped.class);
/** * Method is able to create form incoming class and {@link Binding jersey descriptor} a {@link ForeignDescriptor} which is * provided by underlying DI provider. * * @param clazz class from which jersey-like descriptor is created. * @return foreign descriptor of the underlying DI provider. */ private ForeignDescriptor createDescriptor(Class<?> clazz) { return foreignDescriptorFactory.apply(Bindings.serviceAsContract(clazz).in(RequestScoped.class)); } }
@Override protected void configure() { bind(TemplateMethodInterceptor.class).to(WriterInterceptor.class).in(Singleton.class); //noinspection unchecked bind(ViewableMessageBodyWriter.class).to(MessageBodyWriter.class).in(Singleton.class); bind(TemplateModelProcessor.class).to(ModelProcessor.class).in(Singleton.class); bindAsContract(ResolvingViewableContext.class).in(Singleton.class); bind(ResolvingViewableContext.class).to(ViewableContext.class).in(Singleton.class).ranked(Integer.MIN_VALUE); } }
@Override public void init(InjectionManager injectionManager, BootstrapBag bootstrapBag) { Configuration configuration = bootstrapBag.getConfiguration(); List<AutoDiscoverable> autoDiscoverables = loadImplementations(configuration.getProperties()).stream() .peek(implClass -> injectionManager.register(Bindings.service(implClass).to(AutoDiscoverable.class))) .map(injectionManager::createAndInitialize) .collect(Collectors.toList()); bootstrapBag.setAutoDiscoverables(autoDiscoverables); } }
if (providerModel != null) { Class<? extends Annotation> scope = providerModel.getScope(); descriptor = Bindings.serviceAsContract(resourceClass).in(scope); descriptor.addAlias(contract) .in(scope.getName()) .ranked(providerModel.getPriority(contract)) descriptor = Bindings.serviceAsContract(resourceClass).in(getScope(resourceClass));
@Override public Class<?> getBeanClass() { return binding.getService(); }
@Override public Class<? extends Annotation> getScope() { /* * Resource class without the Scope annotation should registered as a RequestScoped. */ if (isResourceClass(binding.getService()) && binding.getScope() == null) { return RequestScoped.class; } return binding.getScope() == null ? Dependent.class : transformScope(binding.getScope()); }
/** * Start building a new generic type-based service binding. * <p> * Binds the generic service type itself as a contract type. * * @param <T> service type. * @param serviceType generic service type information. * @return initialized binding builder. */ @SuppressWarnings("unchecked") public static <T> ClassBinding<T> service(GenericType<T> serviceType) { return (ClassBinding<T>) new ClassBinding<>(serviceType.getRawType()) .asType((Class<T>) serviceType.getType()); }
/** * Start building a new class-based service binding. * <p> * Does NOT service the service type itself as a contract type. * * @param <T> service type. * @param serviceType service class. * @return initialized binding builder. */ public static <T> ClassBinding<T> service(Class<T> serviceType) { return new ClassBinding<>(serviceType); }
@Override protected void configure() { bindAsContract(RequestProcessingContextReference.class) .in(RequestScoped.class); .to(SecurityContext.class) .proxy(true).proxyForSameScope(false) .in(RequestScoped.class);
/** * Method is able to create form incoming class and {@link Binding jersey descriptor} a {@link ForeignDescriptor} which is * provided by underlying DI provider. * * @param clazz class from which jersey-like descriptor is created. * @return foreign descriptor of the underlying DI provider. */ private ForeignDescriptor createDescriptor(Class<?> clazz) { return foreignDescriptorFactory.apply(Bindings.serviceAsContract(clazz).in(RequestScoped.class)); } }
@Override public void init(InjectionManager injectionManager, BootstrapBag bootstrapBag) { Configuration configuration = bootstrapBag.getConfiguration(); List<AutoDiscoverable> autoDiscoverables = loadImplementations(configuration.getProperties()).stream() .peek(implClass -> injectionManager.register(Bindings.service(implClass).to(AutoDiscoverable.class))) .map(injectionManager::createAndInitialize) .collect(Collectors.toList()); bootstrapBag.setAutoDiscoverables(autoDiscoverables); } }
/** * Start building a new class-based service binding. * <p> * Binds the service type itself as a contract type. * * @param <T> service type. * @param serviceType service class. * @return initialized binding builder. */ public static <T> ClassBinding<T> serviceAsContract(Class<T> serviceType) { return new ClassBinding<>(serviceType).to(serviceType); }
@Override protected void configure() { ClassBinding<T> descriptor = bindAsContract(clazz).in(scope); for (Class contract : Providers.getProviderContracts(clazz)) { descriptor.addAlias(contract) .in(scope.getName()) .qualifiedBy(CustomAnnotationLiteral.INSTANCE); } } };
if (providerModel != null) { Class<? extends Annotation> scope = providerModel.getScope(); descriptor = Bindings.serviceAsContract(resourceClass).in(scope); descriptor.addAlias(contract) .in(scope.getName()) .ranked(providerModel.getPriority(contract)) descriptor = Bindings.serviceAsContract(resourceClass).in(getScope(resourceClass));