Determining the contribution location (confusion over relative location URLs)
-----------------------------------------------------------------------------
Key: TUSCANY-1779
URL: https://issues.apache.org/jira/browse/TUSCANY-1779
Project: Tuscany
Issue Type: Bug
Components: Java SCA Core Runtime
Affects Versions: Java-SCA-1.0
Environment: All
Reporter: Simon Laws
Fix For: Java-SCA-Next
SCADomain, in both of its guises, allows the details of which contribution to
load to be specified.
the standalone version
o.a.t.s.host.embedded.SCADomain.newInstance(String domainURI, String
contributionLocation, String... composites)
and the distributed version
o.a.t.s.domain.SCADomain.newInstance(String domainURI, String nodeURI, String
contributionLocation, String... composites) {
I have found this confusing so, by looking at the code, here is what I think
the rules are;
contributionLocation - an absolute path to a contribution in URL form, e.g
file://C:/mydirA
jar:file://C:/myjar.jar
composite(s) - the name of a composite file(s) e.g.
mycomposite.composite
somedir/mycomposite.composite
So the various combinations give rise to
contributionLocation set / composite null
loads all contributions under the contribution location identified
contributionLocation null / composite set
finds the location of your compsite on the classpath and uses that as the
contribution location. It loads the named composite from there
contributionLocation / composite
loads the named composite from the specified contribution path
contributionLocation null / composite null
This option is also used if the above rules don't identify a contribution URL
for whatever reason.
No contribution has been specified so look for the following in order and use
the location of the first one found as the contribution location
META-INF/sca-contribution.xml
META-INF/sca-contribution-generated.xml
META-INF/sca-deployables directory
The slight wrinkle with the code currently is that the algorithm is coded such
that if you specify a relative ContributionLocation (which is not valid
according to what I have set out above) then it is simply ignored and the
algorithm falls back to the other mechanisms for finding the contribution
location with potentially confusing results, for example, if I use the
reasonable looking
SCADomain domain = SCADomain.newInstance("http://localhost:8080",
"somedir/someotherdir", "some.composite");
Then this will actually just look on the classpath for " some.composite" which
is probably not what was expected.
We could fix this in code by not testing for an absolute contribution location
path and letting it throw a malformed url exception. However this doesn't seem
absolutely essential to be done right now so I propose to raise a JIRA and tidy
up the above as a section in the documentation.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]