[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| 
[mdt-ocl.dev] OCL.initialize API 'changes'
 | 
Hi
We currently have an uncomfortable need to have a copy of the GIT repo 
on Hudson. https://bugs.eclipse.org/bugs/show_bug.cgi?id=375640 suggests 
eliminating this. Builds of branch bug/369123c have successfully done 
this for the old builds with a trivial bug still outstanding.
Fixing the repo highlights a different inelegance. It is currently 
necessary for standalone applications to identify the location of 
critical UML plugins via System properties. These are used by 
OCL.initialize (Ecore, UML and Pivot) variants.
The MWE2 technology reused in StandaloneProjectMap is able to discover 
the correct values by a class-path scan. I have temporarily used this in 
the test harnesses to auto-set the system property for API 
compatibility. Do we need this?
It seems hard to beleive that any application code successfully works 
without the UML plugins on the classpath, so I think it is safe to make 
a semantic API change and just make the system properties redundant, or 
perhaps just the second choice.
It is perhaps too early to promote the StandaloneProjectMap to 
org.eclipse.ocl.common, so a klunky 50 line duplicate private subroutine 
in each OCL seems the least impact. It is also necessary to make a minor 
change to the UML metamodel URI creations. These currently use 
URI.createFileURI which fails on the archive paths associated with 
packed plugins. A trivial change to createURI works. I've temporarily 
coded a try catch around createFileURI to fall back on createURI and 
increase compatibility; however if the source is known to be a 
plugin/project resource file: URIs are not an issue.
So, are there any objections to:
a) using a classpath search as the primary standalone OCL.initialize 
discovery mechanism with the existing System property as a redundant 
compatibility backstop.
b) changing createFileURI to createURI in OCL.initialize
for Ecore/UML/Pivot eliminating all definition of plugin locations from 
launch configurations?
    Regards
        Ed Willink