I have spent a bit of time looking into this one.
I have a set of services that use annotations for components.
A bunch of them use ActiveObjects.
The services work great in a unit-test environment. In that instance I have a memory-based ActiveObjects that is used.
However, when trying to use 'atlas-run' I run into an issue.
I get the following error.
INFO] [talledLocalContainer] org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'predicateService': Unsatisfied dependency expressed through constructor argument with index 0 of type
[com.atlassian.activeobjects.external.ActiveObjects]: : No qualifying bean of type [com.atlassian.activeobjects.external.ActiveObjects] is defined: expected single matching bean but found 2: ao_osgi,activeObjects;
nested exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type [com.atlassian.activeobjects.external.ActiveObjects] is defined: expected single matching bean but found 2: ao_osgi,activeObjects
The code I have now looks like this (I added @Scan just now, to no avail.
@Scanned
@Component
@ExportAsService({PredicateService.class})
@Named("predicateService")
public class PredicateServiceImpl implements PredicateService {
Logger.Log log = Logger.getInstance(PredicateServiceImpl.class);
@ComponentImport
private final ActiveObjects ao;
@Inject
public PredicateServiceImpl(ActiveObjects ao) {
this.ao = ao;
}
I have read about similar situations encountered in Spring in general, tried a few things, nothing seemed to work.
Any advice, admonitions etc are appreciated!