@SuppressWarnings("unchecked") private ForeignDescriptor createAndTranslateForeignDescriptor(Binding binding) { ActiveDescriptor activeDescriptor; if (ClassBinding.class.isAssignableFrom(binding.getClass())) { activeDescriptor = Hk2Helper.translateToActiveDescriptor((ClassBinding<?>) binding); } else if (InstanceBinding.class.isAssignableFrom(binding.getClass())) { activeDescriptor = Hk2Helper.translateToActiveDescriptor((InstanceBinding<?>) binding); } else { throw new RuntimeException(org.glassfish.jersey.internal.LocalizationMessages .UNKNOWN_DESCRIPTOR_TYPE(binding.getClass().getSimpleName())); } return ForeignDescriptor.wrap(activeDescriptor, activeDescriptor::dispose); } }
@SuppressWarnings("unchecked") private ForeignDescriptor createAndTranslateForeignDescriptor(Binding binding) { ActiveDescriptor activeDescriptor; if (ClassBinding.class.isAssignableFrom(binding.getClass())) { activeDescriptor = Hk2Helper.translateToActiveDescriptor((ClassBinding<?>) binding); } else if (InstanceBinding.class.isAssignableFrom(binding.getClass())) { activeDescriptor = Hk2Helper.translateToActiveDescriptor((InstanceBinding<?>) binding); } else { throw new RuntimeException(org.glassfish.jersey.internal.LocalizationMessages .UNKNOWN_DESCRIPTOR_TYPE(binding.getClass().getSimpleName())); } return ForeignDescriptor.wrap(activeDescriptor, activeDescriptor::dispose); } }
@Override @SuppressWarnings("unchecked") public ForeignDescriptor createForeignDescriptor(Binding binding) { Class<?> clazz; if (ClassBinding.class.isAssignableFrom(binding.getClass())) { clazz = ((ClassBinding<?>) binding).getService(); } else if (InstanceBinding.class.isAssignableFrom(binding.getClass())) { clazz = ((InstanceBinding<?>) binding).getService().getClass(); } else { throw new RuntimeException( org.glassfish.jersey.internal.LocalizationMessages .UNKNOWN_DESCRIPTOR_TYPE(binding.getClass().getSimpleName())); } Set<Bean<?>> beans = beanManager.getBeans(clazz); if (beans.isEmpty()) { return null; } Bean bean = beans.iterator().next(); CreationalContext ctx = beanManager.createCreationalContext(bean); return ForeignDescriptor.wrap(bean, instance -> bean.destroy(instance, ctx)); }
/** * Binds the single descriptor using an external {@link DynamicConfiguration}. * * @param locator HK2 injection manager. * @param dc HK2 Dynamic configuration to bind the object. * @param binding Jersey descriptor as a holder of information about an injection point. */ private static void bindBinding(ServiceLocator locator, DynamicConfiguration dc, Binding<?, ?> binding) { if (ClassBinding.class.isAssignableFrom(binding.getClass())) { ActiveDescriptor<?> activeDescriptor = translateToActiveDescriptor((ClassBinding<?>) binding); bindBinding(locator, dc, activeDescriptor, binding.getAliases()); } else if (InstanceBinding.class.isAssignableFrom(binding.getClass())) { ActiveDescriptor<?> activeDescriptor = translateToActiveDescriptor((InstanceBinding<?>) binding); bindBinding(locator, dc, activeDescriptor, binding.getAliases()); } else if (InjectionResolverBinding.class.isAssignableFrom(binding.getClass())) { InjectionResolverBinding resolverDescriptor = (InjectionResolverBinding) binding; bindBinding(locator, dc, wrapInjectionResolver(resolverDescriptor), binding.getAliases()); bindBinding(locator, dc, translateToActiveDescriptor(resolverDescriptor), binding.getAliases()); } else if (SupplierClassBinding.class.isAssignableFrom(binding.getClass())) { bindSupplierClassBinding(locator, (SupplierClassBinding<?>) binding); } else if (SupplierInstanceBinding.class.isAssignableFrom(binding.getClass())) { bindSupplierInstanceBinding(locator, (SupplierInstanceBinding<?>) binding); } else { throw new RuntimeException(LocalizationMessages.UNKNOWN_DESCRIPTOR_TYPE(binding.getClass().getSimpleName())); } }
/** * Binds the single descriptor using an external {@link DynamicConfiguration}. * * @param locator HK2 injection manager. * @param dc HK2 Dynamic configuration to bind the object. * @param binding Jersey descriptor as a holder of information about an injection point. */ private static void bindBinding(ServiceLocator locator, DynamicConfiguration dc, Binding<?, ?> binding) { if (ClassBinding.class.isAssignableFrom(binding.getClass())) { ActiveDescriptor<?> activeDescriptor = translateToActiveDescriptor((ClassBinding<?>) binding); bindBinding(locator, dc, activeDescriptor, binding.getAliases()); } else if (InstanceBinding.class.isAssignableFrom(binding.getClass())) { ActiveDescriptor<?> activeDescriptor = translateToActiveDescriptor((InstanceBinding<?>) binding); bindBinding(locator, dc, activeDescriptor, binding.getAliases()); } else if (InjectionResolverBinding.class.isAssignableFrom(binding.getClass())) { InjectionResolverBinding resolverDescriptor = (InjectionResolverBinding) binding; bindBinding(locator, dc, wrapInjectionResolver(resolverDescriptor), binding.getAliases()); bindBinding(locator, dc, translateToActiveDescriptor(resolverDescriptor), binding.getAliases()); } else if (SupplierClassBinding.class.isAssignableFrom(binding.getClass())) { bindSupplierClassBinding(locator, (SupplierClassBinding<?>) binding); } else if (SupplierInstanceBinding.class.isAssignableFrom(binding.getClass())) { bindSupplierInstanceBinding(locator, (SupplierInstanceBinding<?>) binding); } else { throw new RuntimeException(LocalizationMessages.UNKNOWN_DESCRIPTOR_TYPE(binding.getClass().getSimpleName())); } }
@SuppressWarnings("unchecked") private ForeignDescriptor createAndTranslateForeignDescriptor(Binding binding) { ActiveDescriptor activeDescriptor; if (ClassBinding.class.isAssignableFrom(binding.getClass())) { activeDescriptor = Hk2Helper.translateToActiveDescriptor((ClassBinding<?>) binding); } else if (InstanceBinding.class.isAssignableFrom(binding.getClass())) { activeDescriptor = Hk2Helper.translateToActiveDescriptor((InstanceBinding<?>) binding); } else { throw new RuntimeException(org.glassfish.jersey.internal.LocalizationMessages .UNKNOWN_DESCRIPTOR_TYPE(binding.getClass().getSimpleName())); } return ForeignDescriptor.wrap(activeDescriptor, activeDescriptor::dispose); } }
@SuppressWarnings("unchecked") private ForeignDescriptor createAndTranslateForeignDescriptor(Binding binding) { ActiveDescriptor activeDescriptor; if (ClassBinding.class.isAssignableFrom(binding.getClass())) { activeDescriptor = Hk2Helper.translateToActiveDescriptor((ClassBinding<?>) binding); } else if (InstanceBinding.class.isAssignableFrom(binding.getClass())) { activeDescriptor = Hk2Helper.translateToActiveDescriptor((InstanceBinding<?>) binding); } else { throw new RuntimeException(org.glassfish.jersey.internal.LocalizationMessages .UNKNOWN_DESCRIPTOR_TYPE(binding.getClass().getSimpleName())); } return ForeignDescriptor.wrap(activeDescriptor, activeDescriptor::dispose); } }
/** * Binds the single descriptor using an external {@link DynamicConfiguration}. * * @param locator HK2 injection manager. * @param dc HK2 Dynamic configuration to bind the object. * @param binding Jersey descriptor as a holder of information about an injection point. */ private static void bindBinding(ServiceLocator locator, DynamicConfiguration dc, Binding<?, ?> binding) { if (ClassBinding.class.isAssignableFrom(binding.getClass())) { ActiveDescriptor<?> activeDescriptor = translateToActiveDescriptor((ClassBinding<?>) binding); bindBinding(locator, dc, activeDescriptor, binding.getAliases()); } else if (InstanceBinding.class.isAssignableFrom(binding.getClass())) { ActiveDescriptor<?> activeDescriptor = translateToActiveDescriptor((InstanceBinding<?>) binding); bindBinding(locator, dc, activeDescriptor, binding.getAliases()); } else if (InjectionResolverBinding.class.isAssignableFrom(binding.getClass())) { InjectionResolverBinding resolverDescriptor = (InjectionResolverBinding) binding; bindBinding(locator, dc, wrapInjectionResolver(resolverDescriptor), binding.getAliases()); bindBinding(locator, dc, translateToActiveDescriptor(resolverDescriptor), binding.getAliases()); } else if (SupplierClassBinding.class.isAssignableFrom(binding.getClass())) { bindSupplierClassBinding(locator, (SupplierClassBinding<?>) binding); } else if (SupplierInstanceBinding.class.isAssignableFrom(binding.getClass())) { bindSupplierInstanceBinding(locator, (SupplierInstanceBinding<?>) binding); } else { throw new RuntimeException(LocalizationMessages.UNKNOWN_DESCRIPTOR_TYPE(binding.getClass().getSimpleName())); } }
/** * Binds the single descriptor using an external {@link DynamicConfiguration}. * * @param locator HK2 injection manager. * @param dc HK2 Dynamic configuration to bind the object. * @param binding Jersey descriptor as a holder of information about an injection point. */ private static void bindBinding(ServiceLocator locator, DynamicConfiguration dc, Binding<?, ?> binding) { if (ClassBinding.class.isAssignableFrom(binding.getClass())) { ActiveDescriptor<?> activeDescriptor = translateToActiveDescriptor((ClassBinding<?>) binding); bindBinding(locator, dc, activeDescriptor, binding.getAliases()); } else if (InstanceBinding.class.isAssignableFrom(binding.getClass())) { ActiveDescriptor<?> activeDescriptor = translateToActiveDescriptor((InstanceBinding<?>) binding); bindBinding(locator, dc, activeDescriptor, binding.getAliases()); } else if (InjectionResolverBinding.class.isAssignableFrom(binding.getClass())) { InjectionResolverBinding resolverDescriptor = (InjectionResolverBinding) binding; bindBinding(locator, dc, wrapInjectionResolver(resolverDescriptor), binding.getAliases()); bindBinding(locator, dc, translateToActiveDescriptor(resolverDescriptor), binding.getAliases()); } else if (SupplierClassBinding.class.isAssignableFrom(binding.getClass())) { bindSupplierClassBinding(locator, (SupplierClassBinding<?>) binding); } else if (SupplierInstanceBinding.class.isAssignableFrom(binding.getClass())) { bindSupplierInstanceBinding(locator, (SupplierInstanceBinding<?>) binding); } else { throw new RuntimeException(LocalizationMessages.UNKNOWN_DESCRIPTOR_TYPE(binding.getClass().getSimpleName())); } }