Specification of implementation library in scdl is not platform neutral
-----------------------------------------------------------------------

         Key: TUSCANY-494
         URL: http://issues.apache.org/jira/browse/TUSCANY-494
     Project: Tuscany
        Type: Improvement

  Components: C++ SCA, Specification  
    Versions: Cpp-current    
    Reporter: Pete Robbins
 Assigned to: Pete Robbins 


Specification of a component implementation for C++ requires e.g.
         <implementation.cpp dll="libMyValue.so" 
header="MyValueImpl.h"></implementation.cpp>
for linux and
         <implementation.cpp dll="MyValue.dll" 
header="MyValueImpl.h"></implementation.cpp>
for Windows.

This means we can not have a common sca.module defintion across the platforms. 

I propose we change this to
        <implementation.cpp library="MyValue" 
header="MyValueImpl.h"></implementation.cpp>
and allow the platform code to add the prefix and suffix lib and .so for linux 
and the suffix .dll for windows. This is consistent with other
C++ projects for specifying libraries. We would need an extra parameter path= 
to specify the relative pass to the location of the library.

Existing schema:

        <element name="implementation.cpp" type="sca:CPPImplementation" 
substitutionGroup="sca:implementation" sdo:name="implementationCpp"/>
        <complexType name="CPPImplementation">
                <complexContent>
                        <extension base="sca:Implementation">
                                <sequence>
                                        <any namespace="##other" 
processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
                                </sequence>
                                <attribute name="dll" type="NCName" 
use="required"/>
                <attribute name="header" type="NCName" use="required"/>
                <attribute name="class" type="Name" use="optional"/>
                                <anyAttribute namespace="##any" 
processContents="lax"/>
                        </extension>
                </complexContent>
        </complexType>


would become:


        <element name="implementation.cpp" type="sca:CPPImplementation" 
substitutionGroup="sca:implementation" sdo:name="implementationCpp"/>
        <complexType name="CPPImplementation">
                <complexContent>
                        <extension base="sca:Implementation">
                                <sequence>
                                        <any namespace="##other" 
processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
                                </sequence>
                                <attribute name="library" type="NCName" 
use="required"/>                                                                
          <attribute name="path" type="NCName" use="optional"/>
                <attribute name="header" type="NCName" use="required"/>
                <attribute name="class" type="Name" use="optional"/>
                                <anyAttribute namespace="##any" 
processContents="lax"/>
                        </extension>
                </complexContent>
        </complexType>


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to