.stream() .filter(isAnnotationType(ContextName.class)).findFirst(); extraBeans.add(camelContextBean(manager, bean.getBeanClass(), ANY, annotation.get(), APPLICATION_SCOPED)); .collect(toSet()); if (contexts.size() == 0 && shouldDeployDefaultCamelContext(allBeans)) { extraBeans.add(camelContextBean(manager, null, ANY, DEFAULT, APPLICATION_SCOPED)); } else if (contexts.size() == 1) {
private static <T extends CamelContext> T selectContext(InjectionPoint ip, Instance<T> instance, CdiCamelExtension extension) { Collection<Annotation> qualifiers = new HashSet<>(ip.getQualifiers()); qualifiers.retainAll(extension.getContextQualifiers()); if (qualifiers.isEmpty() && !instance.select(DEFAULT).isUnsatisfied()) { return instance.select(DEFAULT).get(); } return instance.select(qualifiers.toArray(new Annotation[0])).get(); }
@Produces @SuppressWarnings("unchecked") // Qualifiers are dynamically added in CdiCamelExtension private static <T> CdiEventEndpoint<T> cdiEventEndpoint(InjectionPoint ip, @Any Instance<CamelContext> instance, CdiCamelExtension extension, @Any Event<Object> event) throws Exception { CamelContext context = selectContext(ip, instance, extension); Type type = Object.class; if (ip.getType() instanceof ParameterizedType) { type = ((ParameterizedType) ip.getType()).getActualTypeArguments()[0]; } String uri = eventEndpointUri(type, ip.getQualifiers()); if (context.hasEndpoint(uri) == null) { context.addEndpoint(uri, extension.getEventEndpoint(uri)); } return context.getEndpoint(uri, CdiEventEndpoint.class); }
qualifiers.retainAll(route.getQualifiers()); if (qualifiers.size() > 1) { deploymentException |= !addRouteToContext(route, context, manager, adv);
qualifiers.add(DEFAULT); qualifiers.retainAll(extension.getObserverEvents()); if (!qualifiers.isEmpty()) { context.getManagementStrategy().addEventNotifier(new CdiEventNotifier(manager, qualifiers));
CamelCdiDeployment(TestClass test, CamelCdiContext context) { this.context = context; weld = new Weld() // TODO: check parallel execution .containerId("camel-context-cdi") .property(ConfigurationKey.RELAXED_CONSTRUCTION.get(), true) .property(Weld.SHUTDOWN_HOOK_SYSTEM_PROPERTY, false) .enableDiscovery() .beanClasses(test.getJavaClass().getDeclaredClasses()) .addBeanClass(test.getJavaClass()) .addExtension(new CdiCamelExtension()); // Apply deployment customization provided by the @Beans annotation // if present on the test class if (test.getJavaClass().isAnnotationPresent(Beans.class)) { Beans beans = test.getJavaClass().getAnnotation(Beans.class); weld.addExtension(new CamelCdiTestExtension(beans)); for (Class<?> alternative : beans.alternatives()) { // It is not necessary to add the alternative class with WELD-2218 // anymore, though it's kept for previous versions weld.addBeanClass(alternative) .addAlternative(alternative); } for (Class<?> clazz : beans.classes()) { weld.addBeanClass(clazz); } weld.addPackages(false, beans.packages()); } }