Hello,
ArgoEclipse doesn't work,
- it throws errors when the user is trying to open a zargo file or
create a new one with the new wizard.
- Log4j doesn't work. (log4j:WARN No appenders could be found for
logger <some class>.
log4j:WARN Please initialize the log4j system properly.)
- The model MDR implementation doesn't work the "ArgoUML standard
way", the client (eg ArgoEclipse) must instantiate the
MDRModelImplementation and then sets the Model to use the MDR
implementation.
- The static blocks of code from classes, that should run when the
class is initially accessed from argouml* doesn't work.
Some causes of these problems are because:
- some cyclic dependencies between argouml* projects in Eclipse: (eg
log4j, some GEF functions - org.argouml.i18n.Translator.init() calls
Localizer.addResource("UMLMenu",
"org.argouml.i18n.UMLResourceBundle"); which throws
java.util.MissingResourceException)
- static blocks of code that don't run when the class that contains
them gets accessed
Why does this happen?
Eclipse uses a different ClassLoader for every plugin, so when a
argouml* project is running as a plugin and tries to find a class the
ClassLoader looks in his domain (the plugin itself) and _only_ in
other plugins declared in Manifest.MF (and the plugins declared in
Manifest.MF cannot depend on the first plugin because it will be a
cyclic dependence)
I thought the only way to solve these problems is:
- do not split ArgoUML in projects argouml* in Eclipse (that are also
plugins) or
- remove all of these cyclic dependencies, and adjust the static
initialization blocks from classes (essentially copying them in
ArgoEclipse)
It's desirable the second choice, but there are problems.
I find out there is one solution that solves all of these problems:
Eclipse buddies.
It's a mechanism that forces the ClassLoader from a plugin to find a
class from a plugin that it's in cyclic dependence with the first
plugin. I observed that this works for static blocks of code also. And
(what got me here in the first place) this forces ArgoEclipse to
beahve well, :)
I have write access to ArgoEclipse SVN repository and I can just
commit my work, how should I send you the code for ArgoUML: patches,
discuss the code on the maillist?
Bogdan
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]