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]

Reply via email to