Millies, Sebastian wrote:
-----Original Message-----
From: Simon Nash [mailto:[email protected]]
Sent: Wednesday, December 21, 2011 3:26 PM
To: [email protected]
Subject: Re: Contributions and Runtime Classpath

>> (cut)

Thanks for the suggestion. In principle, that would work for me, except for one
complication: In my application, I pass around data objects (defined by xsd). 
The
backing xsd's are resource imports/exports, and I have my own helper classes for
SDO manipulation. These helpers load the xsd's as resources, i. e. they must be
accessible to contribution code, the helper classes and the customer code.
Which means the xsd's and helper classes would also have to go on the 
application
classpath.

Yes, they would need to be available there.

However, I think that's not going to be possible, because the SDOs of course 
also
occur in service calls as parameters and return values, and the serialization 
via
the SDO databinding will only work correctly when the defining types are 
declared
with <dbsdo:import.sdo> elements in the composite files (where
xmlns:dbsdo="http://tuscany.apache.org/xmlns/sca/databinding/sdo/1.0";  ).
This, I think only works when they are exported/imported as resources of the
contribution, and does not work when they just sit on the application classpath.

Could you try packaging duplicate copies of these XSDs and helper classes,
with one copy packaged in a contribution jar and a separate copy packaged
in a classpath jar?  I think there's a chance that this approach might
work.  If it doesn't work, and if <dbsdo:import.sdo> can't pick things up
from the application classpath, I don't have any other suggestions.

In any case I'd have some refactoring on my hands. So for the near future I'll 
probably
prescribe an implementation package for the customer code, and revisit the 
situation
later. If our project really abandons SDO (a possibility I mentioned in another
thread), then this particular problem will vanish and your suggestion become
immediately feasible.

Perhaps you could require the customer to provide a factory class
implementation in a specified package but not require any other customer
classes to be in specified packages.  The factory class would have static
methods to create any other customer classes that are needed.

  Simon

-- Sebastian
IDS Scheer Consulting GmbH
Geschäftsführer/Managing Directors: Kamyar Niroumand, Ivo Totev
Sitz/Registered office: Altenkesseler Straße 17, 66115 Saarbrücken, Germany - 
Registergericht/Commercial register: Saarbrücken HRB 19681
http://www.softwareag.com


Reply via email to