Author: lresende
Date: Thu Mar 18 01:34:22 2010
New Revision: 924584

URL: http://svn.apache.org/viewvc?rev=924584&view=rev
Log:
TUSCANY-3452 - Adding support for new extensibility for contract based 
elements, adjusting current xml for the new model and adapting our element 
extension list to read/write semantycally same xml when these extensions are in 
use

Modified:
    
tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeProcessor.java
    
tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java
    
tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/Constants.java
    
tuscany/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceExportProcessor.java
    
tuscany/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceImportProcessor.java
    
tuscany/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/BaseStAXArtifactProcessor.java
    
tuscany/sca-java-2.x/trunk/modules/implementation-osgi/src/test/java/org/apache/tuscany/sca/implementation/osgi/xml/OSGiReadImplTestCase.java
    
tuscany/sca-java-2.x/trunk/modules/implementation-osgi/src/test/resources/OSGI-INF/sca/bundle.componentType
    
tuscany/sca-java-2.x/trunk/modules/node-impl-osgi/src/test/resources/calculator/dosgi/bundle.componentType
    
tuscany/sca-java-2.x/trunk/modules/node-impl-osgi/src/test/resources/calculator/dosgi/operations/bundle.componentType
    
tuscany/sca-java-2.x/trunk/samples/dosgi-calculator-operations/OSGI-INF/sca/bundle.componentType
    
tuscany/sca-java-2.x/trunk/samples/dosgi-calculator/OSGI-INF/sca/bundle.componentType

Modified: 
tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeProcessor.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeProcessor.java?rev=924584&r1=924583&r2=924584&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeProcessor.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeProcessor.java
 Thu Mar 18 01:34:22 2010
@@ -38,6 +38,8 @@ import static org.apache.tuscany.sca.ass
 import static org.apache.tuscany.sca.assembly.xml.Constants.SERVICE;
 import static org.apache.tuscany.sca.assembly.xml.Constants.SERVICE_QNAME;
 import static org.apache.tuscany.sca.assembly.xml.Constants.TYPE;
+import static org.apache.tuscany.sca.assembly.xml.Constants.EXTENSION;
+import static org.apache.tuscany.sca.assembly.xml.Constants.EXTENSION_QNAME;
 
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamException;
@@ -166,7 +168,12 @@ public class ComponentTypeProcessor exte
                             } else {
                                 policyProcessor.readPolicies(contract, 
operation, reader);
                             }
+                        } else if(EXTENSION_QNAME.equals(name)) {
+                            // Handle <extension>
+                            //ignore element as this is a wrapper for 
extensibility
+                            break;
                         } else {
+                        
     
                             // Read an extension element
                             Object extension = extensionProcessor.read(reader, 
context);
@@ -267,9 +274,7 @@ public class ComponentTypeProcessor exte
                 writeEnd(writer);
             }
             
-            for (Object extension: service.getExtensions()) {
-                extensionProcessor.write(extension, writer, context);
-            }
+            this.writeExtendedElements(writer, service, extensionProcessor, 
context);
             
             writeEnd(writer);
         }
@@ -304,9 +309,7 @@ public class ComponentTypeProcessor exte
                 writeEnd(writer);
             }
 
-            for (Object extension: reference.getExtensions()) {
-                extensionProcessor.write(extension, writer, context);
-            }
+            this.writeExtendedElements(writer, reference, extensionProcessor, 
context);
             
             writeEnd(writer);
         }

Modified: 
tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java?rev=924584&r1=924583&r2=924584&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java
 Thu Mar 18 01:34:22 2010
@@ -59,6 +59,8 @@ import static org.apache.tuscany.sca.ass
 import static org.apache.tuscany.sca.assembly.xml.Constants.WIRE;
 import static org.apache.tuscany.sca.assembly.xml.Constants.WIRED_BY_IMPL;
 import static org.apache.tuscany.sca.assembly.xml.Constants.WIRE_QNAME;
+import static org.apache.tuscany.sca.assembly.xml.Constants.EXTENSION;
+import static org.apache.tuscany.sca.assembly.xml.Constants.EXTENSION_QNAME;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -217,8 +219,7 @@ public class CompositeProcessor extends 
                                 componentService.setName(getString(reader, 
NAME));
 
                                 //handle extension attributes
-                                this
-                                    .readExtendedAttributes(reader, name, 
componentService, extensionAttributeProcessor, context);
+                                this.readExtendedAttributes(reader, name, 
componentService, extensionAttributeProcessor, context);
 
                                 component.getServices().add(componentService);
                                 policyProcessor.readPolicies(contract, reader);
@@ -254,8 +255,7 @@ public class CompositeProcessor extends 
                                 }
 
                                 //handle extension attributes
-                                this
-                                    .readExtendedAttributes(reader, name, 
compositeService, extensionAttributeProcessor, context);
+                                this.readExtendedAttributes(reader, name, 
compositeService, extensionAttributeProcessor, context);
 
                                 composite.getServices().add(compositeService);
                                 policyProcessor.readPolicies(contract, reader);
@@ -499,7 +499,10 @@ public class CompositeProcessor extends 
                                     callback.getPolicySets().add(policySet);
                                 }
                             }
-
+                        } else if(EXTENSION_QNAME.equals(name)) {
+                            // Handle <extension>
+                            //ignore element as this is a wrapper for 
extensibility
+                            break;
                         } else {
 
                             // Read an extension element
@@ -697,17 +700,13 @@ public class CompositeProcessor extends 
                 }
 
                 // Write extensions
-                for (Object extension : callback.getExtensions()) {
-                    extensionProcessor.write(extension, writer, context);
-                }
+                this.writeExtendedElements(writer, service, 
extensionProcessor, context);
 
                 writeEnd(writer);
             }
 
             // Write extensions
-            for (Object extension : service.getExtensions()) {
-                extensionProcessor.write(extension, writer, context);
-            }
+            this.writeExtendedElements(writer, service, extensionProcessor, 
context);
 
             writeEnd(writer);
         }
@@ -770,18 +769,14 @@ public class CompositeProcessor extends 
                     }
 
                     // Write extensions
-                    for (Object extension : callback.getExtensions()) {
-                        extensionProcessor.write(extension, writer, context);
-                    }
+                    this.writeExtendedElements(writer, callback, 
extensionProcessor, context);
 
                     writeEnd(writer);
                 }
 
                 // Write extensions
-                for (Object extension : service.getExtensions()) {
-                    extensionProcessor.write(extension, writer, context);
-                }
-
+                this.writeExtendedElements(writer, service, 
extensionProcessor, context);
+                
                 writeEnd(writer);
             }
 
@@ -821,17 +816,13 @@ public class CompositeProcessor extends 
                     }
 
                     // Write extensions
-                    for (Object extensions : callback.getExtensions()) {
-                        extensionProcessor.write(extensions, writer, context);
-                    }
+                    this.writeExtendedElements(writer, callback, 
extensionProcessor, context);
 
                     writeEnd(writer);
                 }
 
                 // Write extensions
-                for (Object extensions : reference.getExtensions()) {
-                    extensionProcessor.write(extensions, writer, context);
-                }
+                this.writeExtendedElements(writer, reference, 
extensionProcessor, context);
 
                 writeEnd(writer);
             }
@@ -909,17 +900,13 @@ public class CompositeProcessor extends 
                 }
 
                 // Write extensions
-                for (Object extension : callback.getExtensions()) {
-                    extensionProcessor.write(extension, writer, context);
-                }
+                this.writeExtendedElements(writer, callback, 
extensionProcessor, context);
 
                 writeEnd(writer);
             }
 
             // Write extensions
-            for (Object extension : reference.getExtensions()) {
-                extensionProcessor.write(extension, writer, context);
-            }
+            this.writeExtendedElements(writer, reference, extensionProcessor, 
context);
 
             writeEnd(writer);
         }

Modified: 
tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/Constants.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/Constants.java?rev=924584&r1=924583&r2=924584&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/Constants.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/Constants.java
 Thu Mar 18 01:34:22 2010
@@ -69,6 +69,9 @@ public interface Constants {
     String BINDING_SCA = "binding.sca";
     QName BINDING_SCA_QNAME = new QName(Constants.SCA11_NS, BINDING_SCA);
     
+    String EXTENSION = "extensions";
+    QName EXTENSION_QNAME = new QName(Constants.SCA11_NS, EXTENSION);
+    
     String NAME = "name";
     String VALUE = "value";
     QName VALUE_QNAME = new QName(SCA11_NS, VALUE);

Modified: 
tuscany/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceExportProcessor.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceExportProcessor.java?rev=924584&r1=924583&r2=924584&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceExportProcessor.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceExportProcessor.java
 Thu Mar 18 01:34:22 2010
@@ -115,7 +115,11 @@ public class NamespaceExportProcessor ex
                             }
                             readExtendedAttributes(reader, namespaceExport, 
attributeProcessor, extensionFactory, context);
                         } else {
-                            readExtendedElement(reader, namespaceExport, 
extensionProcessor, context);
+                            //read extended elements
+                            Object ext = extensionProcessor.read(reader, 
context);
+                            if (namespaceExport != null) {
+                                namespaceExport.getExtensions().add(ext);
+                            }
                         }
 
                         break;
@@ -151,7 +155,10 @@ public class NamespaceExportProcessor ex
 
         writeExtendedAttributes(writer, namespaceExport, attributeProcessor, 
context);
 
-        writeExtendedElements(writer, namespaceExport, extensionProcessor, 
context);
+        // handle extended elements
+        for (Object ext : namespaceExport.getExtensions()) {
+            extensionProcessor.write(ext, writer, context);
+        }
 
         writer.writeEndElement();
     }

Modified: 
tuscany/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceImportProcessor.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceImportProcessor.java?rev=924584&r1=924583&r2=924584&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceImportProcessor.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceImportProcessor.java
 Thu Mar 18 01:34:22 2010
@@ -122,7 +122,11 @@ public class NamespaceImportProcessor ex
                             }
                             readExtendedAttributes(reader, namespaceImport, 
attributeProcessor, extensionFactory, context);
                         } else {
-                            readExtendedElement(reader, namespaceImport, 
extensionProcessor, context);
+                            // handle extended elements
+                            Object ext = extensionProcessor.read(reader, 
context);
+                            if (namespaceImport != null) {
+                                namespaceImport.getExtensions().add(ext);
+                            }
                         }
                         break;
                     case XMLStreamConstants.END_ELEMENT:
@@ -159,7 +163,12 @@ public class NamespaceImportProcessor ex
         }
 
         writeExtendedAttributes(writer, namespaceImport, attributeProcessor, 
context);
-        writeExtendedElements(writer, namespaceImport, extensionProcessor, 
context);
+        
+        //handle extended elements
+        for (Object ext : namespaceImport.getExtensions()) {
+            extensionProcessor.write(ext, writer, context);
+        }
+        
         writer.writeEndElement();
     }
 

Modified: 
tuscany/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/BaseStAXArtifactProcessor.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/BaseStAXArtifactProcessor.java?rev=924584&r1=924583&r2=924584&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/BaseStAXArtifactProcessor.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/BaseStAXArtifactProcessor.java
 Thu Mar 18 01:34:22 2010
@@ -22,6 +22,8 @@ package org.apache.tuscany.sca.contribut
 import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
 import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
 
+
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
@@ -43,6 +45,9 @@ import org.apache.tuscany.sca.common.xml
  * @version $Rev$ $Date$
  */
 public abstract class BaseStAXArtifactProcessor {
+    private static String SCA11_NS = 
"http://docs.oasis-open.org/ns/opencsa/sca/200912";;
+    private static String SCA11_TUSCANY_NS = 
"http://tuscany.apache.org/xmlns/sca/1.1";;
+
     /**
      * The StAXHelper without states
      */
@@ -319,6 +324,7 @@ public abstract class BaseStAXArtifactPr
                                            Extensible extensibleElement,
                                            StAXAttributeProcessor 
extensionAttributeProcessor, ProcessorContext context)
         throws ContributionWriteException, XMLStreamException {
+        
         for (Extension extension : extensibleElement.getAttributeExtensions()) 
{
             if (extension.isAttribute()) {
                 extensionAttributeProcessor.write(extension, writer, context);
@@ -328,8 +334,9 @@ public abstract class BaseStAXArtifactPr
 
     protected void readExtendedElement(XMLStreamReader reader,
                                        Extensible extensible,
-                                       StAXArtifactProcessor 
extensionProcessor, ProcessorContext context) throws ContributionReadException,
-        XMLStreamException {
+                                       StAXArtifactProcessor 
extensionProcessor, ProcessorContext context) 
+        throws ContributionReadException, XMLStreamException {
+        
         Object ext = extensionProcessor.read(reader, context);
         if (extensible != null) {
             extensible.getExtensions().add(ext);
@@ -338,11 +345,33 @@ public abstract class BaseStAXArtifactPr
 
     protected void writeExtendedElements(XMLStreamWriter writer,
                                          Extensible extensible,
-                                         StAXArtifactProcessor 
extensionProcessor, ProcessorContext context) throws ContributionWriteException,
-        XMLStreamException {
+                                         StAXArtifactProcessor 
extensionProcessor, ProcessorContext context) 
+        throws ContributionWriteException, XMLStreamException {
+        
+        List <Object> otherExtensions = new ArrayList<Object>();
+        
+        // write all generic extensions as elements 
+        // to produce semanticaly equal xml output 
         for (Object ext : extensible.getExtensions()) {
-            extensionProcessor.write(ext, writer, context);
+            if (ext instanceof Extension) {
+                extensionProcessor.write(ext, writer, context);
+            } else {
+                otherExtensions.add(ext);
+            }
         }
+        
+        //wrap xml extensibility into a extension wrapper element
+        if(otherExtensions.size() > 0) {
+            
+            writeStart(writer, SCA11_NS, "extensions");
+            
+            for (Object extension : otherExtensions) {
+                extensionProcessor.write(extension, writer, context);
+            }
+            
+            writeEnd(writer);
+        }
+        
     }
 
     /**

Modified: 
tuscany/sca-java-2.x/trunk/modules/implementation-osgi/src/test/java/org/apache/tuscany/sca/implementation/osgi/xml/OSGiReadImplTestCase.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/implementation-osgi/src/test/java/org/apache/tuscany/sca/implementation/osgi/xml/OSGiReadImplTestCase.java?rev=924584&r1=924583&r2=924584&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/implementation-osgi/src/test/java/org/apache/tuscany/sca/implementation/osgi/xml/OSGiReadImplTestCase.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/implementation-osgi/src/test/java/org/apache/tuscany/sca/implementation/osgi/xml/OSGiReadImplTestCase.java
 Thu Mar 18 01:34:22 2010
@@ -25,6 +25,7 @@ import static org.junit.Assert.assertTru
 
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
+import java.io.StringReader;
 import java.io.StringWriter;
 
 import javax.xml.stream.XMLInputFactory;
@@ -34,6 +35,7 @@ import javax.xml.stream.XMLStreamWriter;
 
 import org.apache.tuscany.sca.assembly.ComponentType;
 import org.apache.tuscany.sca.assembly.Composite;
+import org.apache.tuscany.sca.contribution.ContributionMetadata;
 import 
org.apache.tuscany.sca.contribution.processor.DefaultStAXArtifactProcessorExtensionPoint;
 import 
org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor;
 import org.apache.tuscany.sca.contribution.processor.ProcessorContext;
@@ -45,6 +47,7 @@ import org.apache.tuscany.sca.implementa
 import org.apache.tuscany.sca.implementation.osgi.OSGiProperty;
 import org.junit.Assert;
 import org.junit.BeforeClass;
+import org.junit.Ignore;
 import org.junit.Test;
 
 /**
@@ -77,9 +80,35 @@ public class OSGiReadImplTestCase {
         XMLStreamReader reader = inputFactory.createXMLStreamReader(is);
         Composite composite = (Composite)staxProcessor.read(reader, context);
         assertNotNull(composite);
+        reader.close();
     }
 
     @Test
+    public void testReadWriteComponentType() throws Exception {
+        InputStream is = 
getClass().getClassLoader().getResourceAsStream("OSGI-INF/sca/bundle.componentType");
+        XMLStreamReader reader = inputFactory.createXMLStreamReader(is);
+        ComponentType componentType = 
(ComponentType)staxProcessor.read(reader, context);
+        assertNotNull(componentType);
+
+        assertEquals(2, 
componentType.getServices().get(0).getExtensions().size());
+        
+        //write composite back
+        StringWriter stringWriter = new StringWriter();
+        XMLStreamWriter writer = 
outputFactory.createXMLStreamWriter(stringWriter);
+        staxProcessor.write(componentType, writer, context);
+        stringWriter.close();
+        
+        //read from the output from write
+        reader = inputFactory.createXMLStreamReader(new 
StringReader(stringWriter.toString()));
+        componentType = (ComponentType)staxProcessor.read(reader, context);
+        assertNotNull(componentType);
+
+        assertEquals(2, 
componentType.getServices().get(0).getExtensions().size());
+
+        reader.close();
+    }    
+    
+    @Test
     public void testReadAndResolveComposite() throws Exception {
         InputStream is = 
getClass().getClassLoader().getResourceAsStream("osgitest.composite");
         XMLStreamReader reader = inputFactory.createXMLStreamReader(is);
@@ -109,6 +138,8 @@ public class OSGiReadImplTestCase {
         resolver.addModel(componentType, context);
 
         staxProcessor.resolve(composite, resolver, context);
+        
+        reader.close();
     }
 
     @Test
@@ -133,7 +164,10 @@ public class OSGiReadImplTestCase {
         XMLStreamWriter writer = outputFactory.createXMLStreamWriter(sw);
         staxProcessor.write(osgiImpl, writer, context);
         writer.flush();
+        writer.close();
         
Assert.assertTrue(sw.toString().contains("bundleSymbolicName=\"osgi.test\" 
bundleVersion=\"1.0.0\""));
+        
+        reader.close();
     }
 
 }

Modified: 
tuscany/sca-java-2.x/trunk/modules/implementation-osgi/src/test/resources/OSGI-INF/sca/bundle.componentType
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/implementation-osgi/src/test/resources/OSGI-INF/sca/bundle.componentType?rev=924584&r1=924583&r2=924584&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/implementation-osgi/src/test/resources/OSGI-INF/sca/bundle.componentType
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/implementation-osgi/src/test/resources/OSGI-INF/sca/bundle.componentType
 Thu Mar 18 01:34:22 2010
@@ -25,30 +25,39 @@
         <!-- The interface will be mapped into the OSGi service class -->
         <interface.java interface="calculator.dosgi.CalculatorService"/>
         <!-- The list of OSGi properties -->
-        <t:osgi.property name="prop1">1</t:osgi.property>
-        <t:osgi.property name="prop2">ABC</t:osgi.property>
+        <extensions>
+               <t:osgi.property name="prop1">1</t:osgi.property>
+               <t:osgi.property name="prop2">ABC</t:osgi.property>
+        </extensions>
     </service>
     
     <!-- The reference elment defines an SCA proxy to a remote OSGi service -->
     <reference name="addService">
         <interface.java interface="calculator.dosgi.operations.AddService"/>
-        <t:osgi.property name="prop1">1</t:osgi.property>
-        <t:osgi.property name="prop2">ABC</t:osgi.property>
+        <extensions>
+               <t:osgi.property name="prop1">1</t:osgi.property>
+               <t:osgi.property name="prop2">ABC</t:osgi.property>
+        </extensions>
     </reference>
     <reference name="subtractService">
         <interface.java 
interface="calculator.dosgi.operations.SubtractService"/>
-        <t:osgi.property name="prop1">1</t:osgi.property>
-        <t:osgi.property name="prop2">ABC</t:osgi.property>
+        <extensions>
+               <t:osgi.property name="prop1">1</t:osgi.property>
+               <t:osgi.property name="prop2">ABC</t:osgi.property>
+        </extensions>
     </reference>
     <reference name="multiplyService">
         <interface.java 
interface="calculator.dosgi.operations.MultiplyService"/>
-        <t:osgi.property name="prop1">1</t:osgi.property>
-        <t:osgi.property name="prop2">ABC</t:osgi.property>
+        <extensions>
+               <t:osgi.property name="prop1">1</t:osgi.property>
+               <t:osgi.property name="prop2">ABC</t:osgi.property>
+        </extensions>
     </reference>
     <reference name="divideService">
         <interface.java interface="calculator.dosgi.operations.DivideService"/>
-        <t:osgi.property name="prop1">1</t:osgi.property>
-        <t:osgi.property name="prop2">ABC</t:osgi.property>
+        <extensions>
+               <t:osgi.property name="prop1">1</t:osgi.property>
+               <t:osgi.property name="prop2">ABC</t:osgi.property>
+        </extensions>
     </reference>
-    
 </componentType>

Modified: 
tuscany/sca-java-2.x/trunk/modules/node-impl-osgi/src/test/resources/calculator/dosgi/bundle.componentType
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-impl-osgi/src/test/resources/calculator/dosgi/bundle.componentType?rev=924584&r1=924583&r2=924584&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/node-impl-osgi/src/test/resources/calculator/dosgi/bundle.componentType
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/node-impl-osgi/src/test/resources/calculator/dosgi/bundle.componentType
 Thu Mar 18 01:34:22 2010
@@ -25,30 +25,39 @@
         <!-- The interface will be mapped into the OSGi service class -->
         <interface.java interface="calculator.dosgi.CalculatorService"/>
         <!-- The list of OSGi properties -->
-        <t:osgi.property name="prop1">1</t:osgi.property>
-        <t:osgi.property name="prop2">ABC</t:osgi.property>
+        <extensions>
+               <t:osgi.property name="prop1">1</t:osgi.property>
+               <t:osgi.property name="prop2">ABC</t:osgi.property>
+        </extensions>
     </service>
     
     <!-- The reference elment defines an SCA proxy to a remote OSGi service -->
     <reference name="addService">
         <interface.java interface="calculator.dosgi.operations.AddService"/>
-        <t:osgi.property name="prop1">1</t:osgi.property>
-        <t:osgi.property name="prop2">ABC</t:osgi.property>
+        <extensions>
+               <t:osgi.property name="prop1">1</t:osgi.property>
+               <t:osgi.property name="prop2">ABC</t:osgi.property>
+        </extensions>
     </reference>
     <reference name="subtractService">
         <interface.java 
interface="calculator.dosgi.operations.SubtractService"/>
-        <t:osgi.property name="prop1">1</t:osgi.property>
-        <t:osgi.property name="prop2">ABC</t:osgi.property>
+        <extensions>
+               <t:osgi.property name="prop1">1</t:osgi.property>
+               <t:osgi.property name="prop2">ABC</t:osgi.property>
+        </extensions>
     </reference>
     <reference name="multiplyService">
         <interface.java 
interface="calculator.dosgi.operations.MultiplyService"/>
-        <t:osgi.property name="prop1">1</t:osgi.property>
-        <t:osgi.property name="prop2">ABC</t:osgi.property>
+        <extensions>
+               <t:osgi.property name="prop1">1</t:osgi.property>
+               <t:osgi.property name="prop2">ABC</t:osgi.property>
+        </extensions>
     </reference>
     <reference name="divideService">
         <interface.java interface="calculator.dosgi.operations.DivideService"/>
-        <t:osgi.property name="prop1">1</t:osgi.property>
-        <t:osgi.property name="prop2">ABC</t:osgi.property>
+        <extensions>
+               <t:osgi.property name="prop1">1</t:osgi.property>
+               <t:osgi.property name="prop2">ABC</t:osgi.property>
+        </extensions>
     </reference>
-    
 </componentType>

Modified: 
tuscany/sca-java-2.x/trunk/modules/node-impl-osgi/src/test/resources/calculator/dosgi/operations/bundle.componentType
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-impl-osgi/src/test/resources/calculator/dosgi/operations/bundle.componentType?rev=924584&r1=924583&r2=924584&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/node-impl-osgi/src/test/resources/calculator/dosgi/operations/bundle.componentType
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/node-impl-osgi/src/test/resources/calculator/dosgi/operations/bundle.componentType
 Thu Mar 18 01:34:22 2010
@@ -25,23 +25,30 @@
     <!-- The service elment defines an SCA proxy to a remote OSGi service -->
     <service name="AddService">
         <interface.java interface="calculator.dosgi.operations.AddService"/>
-        <t:osgi.property name="prop1">1</t:osgi.property>
-        <t:osgi.property name="prop2">ABC</t:osgi.property>
+        <extensions>
+               <t:osgi.property name="prop1">1</t:osgi.property>
+               <t:osgi.property name="prop2">ABC</t:osgi.property>
+        </extensions>
     </service>
     <service name="SubtractService">
         <interface.java 
interface="calculator.dosgi.operations.SubtractService"/>
-        <t:osgi.property name="prop1">1</t:osgi.property>
-        <t:osgi.property name="prop2">ABC</t:osgi.property>
+        <extensions>
+               <t:osgi.property name="prop1">1</t:osgi.property>
+               <t:osgi.property name="prop2">ABC</t:osgi.property>
+        </extensions>
     </service>
     <service name="MultiplyService">
         <interface.java 
interface="calculator.dosgi.operations.MultiplyService"/>
-        <t:osgi.property name="prop1">1</t:osgi.property>
-        <t:osgi.property name="prop2">ABC</t:osgi.property>
+        <extensions>
+               <t:osgi.property name="prop1">1</t:osgi.property>
+               <t:osgi.property name="prop2">ABC</t:osgi.property>
+        </extensions>
     </service>
     <service name="DivideService">
         <interface.java interface="calculator.dosgi.operations.DivideService"/>
-        <t:osgi.property name="prop1">1</t:osgi.property>
-        <t:osgi.property name="prop2">ABC</t:osgi.property>
+        <extensions>
+               <t:osgi.property name="prop1">1</t:osgi.property>
+               <t:osgi.property name="prop2">ABC</t:osgi.property>
+        </extensions>
     </service>
-    
 </componentType>

Modified: 
tuscany/sca-java-2.x/trunk/samples/dosgi-calculator-operations/OSGI-INF/sca/bundle.componentType
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/dosgi-calculator-operations/OSGI-INF/sca/bundle.componentType?rev=924584&r1=924583&r2=924584&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/samples/dosgi-calculator-operations/OSGI-INF/sca/bundle.componentType
 (original)
+++ 
tuscany/sca-java-2.x/trunk/samples/dosgi-calculator-operations/OSGI-INF/sca/bundle.componentType
 Thu Mar 18 01:34:22 2010
@@ -25,23 +25,30 @@
     <!-- The service elment defines an SCA proxy to a remote OSGi service -->
     <service name="AddService">
         <interface.java interface="calculator.dosgi.operations.AddService"/>
-        <t:osgi.property name="prop1">1</t:osgi.property>
-        <t:osgi.property name="prop2">ABC</t:osgi.property>
+        <extensions>
+               <t:osgi.property name="prop1">1</t:osgi.property>
+               <t:osgi.property name="prop2">ABC</t:osgi.property>
+        </extensions>
     </service>
     <service name="SubtractService">
         <interface.java 
interface="calculator.dosgi.operations.SubtractService"/>
-        <t:osgi.property name="prop1">1</t:osgi.property>
-        <t:osgi.property name="prop2">ABC</t:osgi.property>
+        <extensions>
+               <t:osgi.property name="prop1">1</t:osgi.property>
+               <t:osgi.property name="prop2">ABC</t:osgi.property>
+        </extensions>
     </service>
     <service name="MultiplyService">
         <interface.java 
interface="calculator.dosgi.operations.MultiplyService"/>
-        <t:osgi.property name="prop1">1</t:osgi.property>
-        <t:osgi.property name="prop2">ABC</t:osgi.property>
+        <extensions>
+               <t:osgi.property name="prop1">1</t:osgi.property>
+               <t:osgi.property name="prop2">ABC</t:osgi.property>
+        </extensions>
     </service>
     <service name="DivideService">
         <interface.java interface="calculator.dosgi.operations.DivideService"/>
-        <t:osgi.property name="prop1">1</t:osgi.property>
-        <t:osgi.property name="prop2">ABC</t:osgi.property>
+        <extensions>
+               <t:osgi.property name="prop1">1</t:osgi.property>
+               <t:osgi.property name="prop2">ABC</t:osgi.property>
+        </extensions>
     </service>
-    
 </componentType>

Modified: 
tuscany/sca-java-2.x/trunk/samples/dosgi-calculator/OSGI-INF/sca/bundle.componentType
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/dosgi-calculator/OSGI-INF/sca/bundle.componentType?rev=924584&r1=924583&r2=924584&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/samples/dosgi-calculator/OSGI-INF/sca/bundle.componentType
 (original)
+++ 
tuscany/sca-java-2.x/trunk/samples/dosgi-calculator/OSGI-INF/sca/bundle.componentType
 Thu Mar 18 01:34:22 2010
@@ -25,30 +25,40 @@
         <!-- The interface will be mapped into the OSGi service class -->
         <interface.java interface="calculator.dosgi.CalculatorService"/>
         <!-- The list of OSGi properties -->
-        <t:osgi.property name="prop1">1</t:osgi.property>
-        <t:osgi.property name="prop2">ABC</t:osgi.property>
+        <extensions>
+               <t:osgi.property name="prop1">1</t:osgi.property>
+               <t:osgi.property name="prop2">ABC</t:osgi.property>
+               </extensions>           
     </service>
 
     <!-- The reference elment defines an SCA proxy to a remote OSGi service -->
     <reference name="addService">
         <interface.java interface="calculator.dosgi.operations.AddService"/>
-        <t:osgi.property name="prop1">1</t:osgi.property>
-        <t:osgi.property name="prop2">ABC</t:osgi.property>
+        <extensions>
+               <t:osgi.property name="prop1">1</t:osgi.property>
+               <t:osgi.property name="prop2">ABC</t:osgi.property>
+        </extensions>
     </reference>
     <reference name="subtractService">
         <interface.java 
interface="calculator.dosgi.operations.SubtractService"/>
-        <t:osgi.property name="prop1">1</t:osgi.property>
-        <t:osgi.property name="prop2">ABC</t:osgi.property>
+        <extensions>
+               <t:osgi.property name="prop1">1</t:osgi.property>
+               <t:osgi.property name="prop2">ABC</t:osgi.property>
+        </extensions>
     </reference>
     <reference name="multiplyService">
         <interface.java 
interface="calculator.dosgi.operations.MultiplyService"/>
-        <t:osgi.property name="prop1">1</t:osgi.property>
-        <t:osgi.property name="prop2">ABC</t:osgi.property>
+        <extensions>
+               <t:osgi.property name="prop1">1</t:osgi.property>
+               <t:osgi.property name="prop2">ABC</t:osgi.property>
+               </extensions>           
     </reference>
     <reference name="divideService">
         <interface.java interface="calculator.dosgi.operations.DivideService"/>
-        <t:osgi.property name="prop1">1</t:osgi.property>
-        <t:osgi.property name="prop2">ABC</t:osgi.property>
+        <extensions>
+               <t:osgi.property name="prop1">1</t:osgi.property>
+               <t:osgi.property name="prop2">ABC</t:osgi.property>
+        </extensions>
     </reference>
 
 </componentType>


Reply via email to