private SyntheticBean<?> routesDefinitionBean(RoutesDefinition definition, URL url) { return new SyntheticBean<>(manager, // TODO: should be @Named if the id is set new SyntheticAnnotated(RoutesDefinition.class, manager.createAnnotatedType(RoutesDefinition.class).getTypeClosure(), ANY, DEFAULT), RoutesDefinition.class, new SyntheticInjectionTarget<>(() -> definition), bean -> "imported routes definition " + (hasId(definition) ? "[" + definition.getId() + "] " : "") + "from resource [" + url + "]"); }
private SyntheticBean<?> restContextBean(RestContextDefinition definition, URL url) { requireNonNull(definition.getId(), () -> format("Missing [%s] attribute for imported bean [%s] from resource [%s]", "id", "restContext", url)); return new SyntheticBean<>(manager, new SyntheticAnnotated(List.class, Stream.of(List.class, new ListParameterizedType(RestDefinition.class)) .collect(toSet()), ANY, NamedLiteral.of(definition.getId())), List.class, new SyntheticInjectionTarget<>(definition::getRests), bean -> "imported rest context with " + "id [" + definition.getId() + "] " + "from resource [" + url + "] " + "with qualifiers " + bean.getQualifiers()); }
private SyntheticBean<?> routeContextBean(RouteContextDefinition definition, URL url) { requireNonNull(definition.getId(), () -> format("Missing [%s] attribute for imported bean [%s] from resource [%s]", "id", "routeContext", url)); return new SyntheticBean<>(manager, new SyntheticAnnotated(List.class, Stream.of(List.class, new ListParameterizedType(RouteDefinition.class)) .collect(toSet()), ANY, NamedLiteral.of(definition.getId())), List.class, new SyntheticInjectionTarget<>(definition::getRoutes), bean -> "imported route context with " + "id [" + definition.getId() + "] " + "from resource [" + url + "] " + "with qualifiers " + bean.getQualifiers()); }
new SyntheticAnnotated(type, types, APPLICATION_SCOPED, ANY, STARTUP, hasId(exporter) ? NamedLiteral.of(exporter.getId()) : DEFAULT), type, bean ->
private SyntheticBean<?> camelContextBean(Bean<?> context, AbstractCamelFactoryBean<?> factory, URL url) { if (factory instanceof BeanManagerAware) { ((BeanManagerAware) factory).setBeanManager(manager); } Set<Annotation> annotations = new HashSet<>(); annotations.add(ANY); // FIXME: should add @ContextName if the Camel context bean has it annotations.add(hasId(factory) ? NamedLiteral.of(factory.getId()) : DEFAULT); // TODO: should that be @Singleton to enable injection points with bean instance type? if (factory.isSingleton()) { annotations.add(APPLICATION_SCOPED); } return new SyntheticBean<>(manager, new SyntheticAnnotated(factory.getObjectType(), manager.createAnnotatedType(factory.getObjectType()).getTypeClosure(), annotations), factory.getObjectType(), new XmlFactoryBeanInjectionTarget<>(manager, factory, context), bean -> "imported bean [" + factory.getId() + "] " + "from resource [" + url + "] " + "with qualifiers " + bean.getQualifiers()); }
private SyntheticBean<?> camelContextBean(BeanManager manager, Class<?> beanClass, Annotation... qualifiers) { SyntheticAnnotated annotated = new SyntheticAnnotated(DefaultCamelContext.class, manager.createAnnotatedType(DefaultCamelContext.class).getTypeClosure(), beanClass, qualifiers); return new SyntheticBean<>(manager, annotated, DefaultCamelContext.class, environment.camelContextInjectionTarget( new SyntheticInjectionTarget<>(DefaultCamelContext::new), annotated, manager, this), bean -> "Default Camel context bean with qualifiers " + bean.getQualifiers()); }
private SyntheticBean<?> proxyFactoryBean(Bean<?> context, CamelProxyFactoryDefinition proxy, URL url) { if (isEmpty(proxy.getServiceRef()) && isEmpty(proxy.getServiceUrl())) { throw new CreationException( format("Missing [%s] or [%s] attribute for imported bean [%s] from resource [%s]", "serviceRef", "serviceUrl", proxy.getId(), url)); } return new XmlProxyFactoryBean<>(manager, new SyntheticAnnotated(proxy.getServiceInterface(), manager.createAnnotatedType(proxy.getServiceInterface()).getTypeClosure(), APPLICATION_SCOPED, ANY, NamedLiteral.of(proxy.getId())), proxy.getServiceInterface(), bean -> "imported bean [" + proxy.getId() + "] " + "from resource [" + url + "] " + "with qualifiers " + bean.getQualifiers(), context, proxy); }
SyntheticAnnotated annotated = new SyntheticAnnotated(DefaultCamelContext.class, manager.createAnnotatedType(DefaultCamelContext.class).getTypeClosure(), annotatedType.getJavaClass(),
new SyntheticAnnotated(type.getTypeAsClass(), manager.createAnnotatedType(type.getTypeAsClass()).getTypeClosure(), ANY, NamedLiteral.of(definition.getId())),