Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
Java-SCA-1.5.1, Java-SCA-1.6.2
-
None
-
None
-
Windows XP, jre 1.6
Description
I am creating a couple of components using the following code:
import java.io.FileOutputStream;
import java.util.List;
import javax.xml.namespace.QName;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLOutputFactory;
import javax.xml.stream.XMLStreamWriter;
import org.apache.tuscany.sca.assembly.AssemblyFactory;
import org.apache.tuscany.sca.assembly.Component;
import org.apache.tuscany.sca.assembly.Composite;
import org.apache.tuscany.sca.assembly.xml.Constants;
import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint;
import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
import org.apache.tuscany.sca.implementation.widget.WidgetImplementation;
import org.apache.tuscany.sca.implementation.widget.WidgetImplementationFactory;
public class TuscanyCompositeSerializationTest {
public static void main(String[] args) throws Exception
{ ExtensionPointRegistry registry = new DefaultExtensionPointRegistry(); ModelFactoryExtensionPoint factories = registry .getExtensionPoint(ModelFactoryExtensionPoint.class); AssemblyFactory assemblyFactory = factories.getFactory(AssemblyFactory.class); XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance(); XMLOutputFactory xmlOutputFactory = XMLOutputFactory.newInstance(); factories.addFactory(xmlOutputFactory); factories.addFactory(xmlInputFactory); QName qName = new QName("http://www.example.org", "test"); Composite composite = assemblyFactory.createComposite(); composite.setName(qName); List<Component> components = composite.getComponents(); Component component = createWidgetComponent(factories, assemblyFactory,"A"); components.add(component); component = createWidgetComponent(factories, assemblyFactory, "B"); components.add(component); StAXArtifactProcessorExtensionPoint extensionPoint = registry .getExtensionPoint(StAXArtifactProcessorExtensionPoint.class); StAXArtifactProcessor<Composite> processor = extensionPoint .getProcessor(new QName(Constants.SCA10_NS, Constants.COMPOSITE)); FileOutputStream fileOutputStream = new FileOutputStream( "test.composite"); XMLStreamWriter streamWriter = xmlOutputFactory .createXMLStreamWriter(fileOutputStream); System.out.println(composite); processor.write(composite, streamWriter); fileOutputStream.close(); } private static Component createWidgetComponent(
ModelFactoryExtensionPoint factories,
AssemblyFactory assemblyFactory, String name)
}
And the output of this run is:
<?xml version="1.0" encoding="UTF-8"?>
<composite targetNamespace="http://www.example.org" name="test" local="true" xmlns="http://www.osoa.org/xmlns/sca/1.0">
<component name="A">
<sp_0:implementation.widget
location="A.html"
xmlns:ns1="http://tuscany.apache.org/xmlns/sca/1.0"
xmlns:sp_0="http://tuscany.apache.org/xmlns/sca/1.0">
</sp_0:implementation.widget>
</component>
<component name="B">
<sp_1:implementation.widget
location="B.html"
xmlns:ns1="http://tuscany.apache.org/xmlns/sca/1.0"
xmlns:sp_1="http://tuscany.apache.org/xmlns/sca/1.0">
</sp_1:implementation.widget>
</component>
</composite>
Where http://tuscany.apache.org/xmlns/sca/1.0 is defined in every component I add to the composite.