ModelFactoryExtensionPoint modelFactories = new DefaultModelFactoryExtensionPoint();
factory = new DefaultAssemblyFactory();
policyFactory = new DefaultPolicyFactory();
staxProcessors = new DefaultStAXArtifactProcessorExtensionPoint(modelFactories);
staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, XMLInputFactory.newInstance(), XMLOutputFactory.newInstance());
javaFactory = new DefaultJavaInterfaceFactory();
modelFactories.addFactory(javaFactory);
staxProcessors.addArtifactProcessor(new CompositeProcessor(new DefaultContributionFactory(), factory, policyFactory, staxProcessor));
staxProcessors.addArtifactProcessor(new ComponentTypeProcessor(factory, policyFactory, staxProcessor));
staxProcessors.addArtifactProcessor(new ConstrainingTypeProcessor(factory, policyFactory, staxProcessor));