for (JavaClassVisitor e : extensions) {
javaImplementationFactory.addClassVisitor(e);
}
// Populate ArtifactProcessor registry
DefaultStAXArtifactProcessorExtensionPoint staxProcessors = new DefaultStAXArtifactProcessorExtensionPoint(modelFactories);
ExtensibleStAXArtifactProcessor staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, XMLInputFactory.newInstance(), XMLOutputFactory.newInstance());
CompositeProcessor compositeProcessor = new CompositeProcessor(contributionFactory, assemblyFactory, policyFactory,
interfaceContractMapper, staxProcessor);
staxProcessors.addArtifactProcessor(compositeProcessor);
staxProcessors.addArtifactProcessor(new ComponentTypeProcessor(assemblyFactory, policyFactory, staxProcessor));
staxProcessors.addArtifactProcessor(new ConstrainingTypeProcessor(assemblyFactory, policyFactory, staxProcessor));
staxProcessors.addArtifactProcessor(new JavaInterfaceProcessor(modelFactories));
staxProcessors.addArtifactProcessor(new JavaImplementationProcessor(modelFactories));
// Create a resolver
//FIXME The classloader should be passed in
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
ModelResolverImpl resolver = new ModelResolverImpl(classLoader);