Hello,
I had success in making the UML profile for C++ available from the C++
module
and integrating it with the new Profile management code in ArgoUML.
This worked after the following:
* make org.argouml.uml.profile an exported package in
argouml/META-INF/MANIFEST.MF
* *not* using the ResourceModelLoader, since even setting the
ClassLoader from a class in the module,
the resource isn't found
* defining yet another module (i.e., a ModuleInterface implementation)
in the argouml-cpp sub-project,
so that when it's enable() is called, it instantiates and registers
the profile in ProfileManagerImpl.
Now, I think that this is good, but, I noticed that we could make easily
some improvements:
* org.argouml.uml.profile package isn't good to be exported, since it
doesn't qualify as a sub-system, because
it contains both the interfaces and the implementation and, probably
it is better to move the relevant interfaces
and classes to org.argouml.uml, being considered part of the existing
"UML sub-system API" (?)
* some parts of it depend on the usage of singletons, like
ProfileManagerImpl.getInstance(), and although convenient
at first glance these are a dependency trap, mainly if part of an API
* I don't like the duplication of model loading code, therefore, if
nothing else works, we might change the visibility of
StreamModelLoader.loadModel(InputStream is), making it possible for
modules to reuse it by handing-over
the InputStream
So, if there are ideas on better ways to deal with this, I would
appreciate to ear them.
Furthermore, if someone would prefer to do himself this work I won't
mind being an API tester.
Else, I will proceed soon with the exposed ideas or as discussed in this
thread and documenting the
follow-up in a to-be-created issue.
Luis
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]