InterfaceContractMapper mapper = utilities.getUtility(InterfaceContractMapper.class);
JavaInterfaceFactory javaFactory = modelFactories.getFactory(JavaInterfaceFactory.class);
PolicyFactory policyFactory = modelFactories.getFactory(PolicyFactory.class);
SCABindingFactory scaBindingFactory = modelFactories.getFactory(SCABindingFactory.class);
modelFactories.addFactory(javaFactory);
JavaImplementationFactory javaImplementationFactory = new BeanJavaImplementationFactory(beanFactory);
modelFactories.addFactory(javaImplementationFactory);
BaseJavaClassVisitor[] extensions = new BaseJavaClassVisitor[] {
new ConstructorProcessor(assemblyFactory),
new AllowsPassByReferenceProcessor(assemblyFactory),
new ComponentNameProcessor(assemblyFactory),
new ContextProcessor(assemblyFactory),
new ConversationProcessor(assemblyFactory),
new DestroyProcessor(assemblyFactory),
new EagerInitProcessor(assemblyFactory),
new InitProcessor(assemblyFactory),
new PropertyProcessor(assemblyFactory),
new ReferenceProcessor(assemblyFactory, javaFactory),
new ResourceProcessor(assemblyFactory),
new ScopeProcessor(assemblyFactory),
new ServiceProcessor(assemblyFactory, javaFactory),
new HeuristicPojoProcessor(assemblyFactory, javaFactory),
new PolicyProcessor(assemblyFactory, policyFactory)
};
for (JavaClassVisitor e : extensions) {
javaImplementationFactory.addClassVisitor(e);
}
// Populate ArtifactProcessor registry
StAXArtifactProcessorExtensionPoint staxProcessors = extensionPoints.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
StAXArtifactProcessor<Composite> compositeProcessor = staxProcessors.getProcessor(Composite.class);