void discoverActivations()

in cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Discovery.java [317:351]


	void discoverActivations(OSGiBean osgiBean, Class<?> declaringClass, final Annotated component,
							AnnotatedMember<?> producer, Class<? extends Annotation> scope,
							List<String> serviceTypeNames) {
		String className = declaringClass.getName();

		if (!_containerTemplate.beans.contains(className)) {
			_containerTemplate.beans.add(className);
		}

		if (!serviceTypeNames.isEmpty()) {
			if (!scope.equals(ApplicationScoped.class) &&
				!scope.equals(Dependent.class)) {

				_containerState.error(
					new IllegalStateException(
						String.format(
							"@Service can only be used on @ApplicationScoped, @Dependent, @SingleComponent, and @FactoryComponent: %s",
							osgiBean.getBeanClass())));

				return;
			}

			ExtendedActivationTemplateDTO activationTemplate = new ExtendedActivationTemplateDTO();
			activationTemplate.cdiScope = scope;
			activationTemplate.declaringClass = declaringClass;
			activationTemplate.producer = producer;
			activationTemplate.properties = Annotates.componentProperties(component);
			activationTemplate.scope = Annotates.serviceScope(component);
			activationTemplate.serviceClasses = serviceTypeNames;

			_containerTemplate.activations.add(activationTemplate);
		}

		osgiBean.setComponent(_containerState, _containerTemplate);
	}