Summary: | umbrello creates many 'new_packages_xx" packages on file loading | ||
---|---|---|---|
Product: | [Applications] umbrello | Reporter: | Ralf Habacker <ralf.habacker> |
Component: | general | Assignee: | Umbrello Development Group <umbrello-devel> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | okellogg |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Unlisted Binaries | ||
OS: | Microsoft Windows | ||
Latest Commit: | Version Fixed In: | 4.8.1 | |
Sentry Crash Report: |
Description
Ralf Habacker
2012-01-10 12:31:56 UTC
See also bug 56184, and in particular the XMI files from different tools attached there. When changing loadFromXMI code, IMHO it would be a good idea to test loading those files. (It often happened that changing the code to load one particular XMI dialect ruined the loading of other XMI dialects.) Also be aware that Umbrello's XMI loading code cannot handle forward declared objects. I strongly suggest to add a quality audit to the source code and build system One way would be 1. extend umbrello to have dbus methods for loading, importing, saving and dumping loaded files. 2. add many xmi templates to the source 3. extend the build system to run a test suite, which loads those files through qdbus, saves the files again or dumps the loaded content in an internal comparable format (something like the QDebug operator<<) and compare the result with expected files. This will make development more robust. SVN commit 1282856 by okellogg: UMLDoc::loadFromXMI (tagEq(tag, "Package") || tagEq(tag, "Class") || tagEq(tag, "Interface")) : Do not call loadUMLObjectsFromXMI() because that method again iterates over the child nodes of the element (not appropriate here because we already identified the exact tag to load.) Instead, use Object_Factory::makeObjectFromXMI() for creating and UMLObject::loadFromXMI() for loading the object. M +1 -0 ChangeLog M +35 -3 umbrello/umldoc.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1282856 set version-fixed-in from 4.8.1 changelog |