1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228
|
07 Jan 2017: Version 1.0.0 (download area: dia2code+)
- Refactoring code: Converted program to C++, see git dia2code-c++ branch.
- Target languages implemented: cpp, cpp11, csharp, java, php.
- Not yet implemented: ada, as3, c, idl, python, ruby, shp, sql, and
code preservation.
14 Jul 2016: Version 0.8.8
- Applied C++ compatibility changes, whitespace cleanups, and vim settings
from the dia2code-c++ branch.
- Applied modified patch https://sourceforge.net/p/dia2code/patches/27/
adding generation of __init__ method in generate_code_python.c
- Applied various patches provided by Ophir Lojkine.
- Fixed bug in parse_diagram.c related to the order in which dependencies
are considered.
- Applied fgetc.patch from http://sourceforge.net/p/dia2code/patches/25/
to fix infinite loop on reading license file.
- Applied dia2code.patch3 from http://bugs.debian.org/240091
(java code: interface bug fix and better pretty printing)
to dia2code/generate_code_java.c. Author Stefano Zacchiroli explains:
> "import Foo;" clauses are invalid Java code if Foo is not a fully
> qualified namespace (e.g. "my.name.space.Foo"). The attached patch [...]
> adds a test which makes the Java code generator output the "import"
> clauses only when the class name is fully qualified.
- Fixed infinite loop on reading license file, see fgetc.patch at
http://sourceforge.net/p/dia2code/patches/25/
- Fix a SEGFAULT on empty dia files.
- Add support for dia's database tables.
- Import sql primary keys from database diagrams.
07 Jul 2014: Version 0.8.7
- Added ActionScript-3 code generator by Dima Levchenko
- Added evaluation of association role names and multiplicities (dimalev)
- Added support for roles and multiplicities in "UML - Association" version 0
- Fixed infinite loop in Ada code generation for static (class_scope)
attributes
- Fixed missing Ada code generation for private static variable
- Removed support for unnamed associations, it created more problems than
benefit. See http://sourceforge.net/p/dia2code/patches/21/#a9df
- Added support for embedded '#' in Dia comments, see dia2code2.patch at
http://sourceforge.net/p/dia2code/patches/24/
- Changed C++ code generation for destructor of abstract class to emit
neither a default destructor implementation nor pure virtual "= 0", see
dia2code1.patch at http://sourceforge.net/p/dia2code/patches/21/
05 Jun 2014: Version 0.8.6
- Added generation of header guard for C++ (-t cpp)
- Fixed null pointer dereference crash in handling of UML - Association
observed on loading files example2.dia and example3.dia from
http://dia2code.sourceforge.net/diagrams/
- Applied modified patch for increasing maximum permissible size of comment,
http://sourceforge.net/p/dia2code/patches/17/
- Applied patch for fixing insufficient generated #include dependencies,
http://sourceforge.net/p/dia2code/patches/19/
- Applied patch for printing numeric value associated to enum value in C++,
http://sourceforge.net/p/dia2code/patches/20/
- Applied patch for removing inappropriate abstractness from generated
C++ destructor, http://sourceforge.net/p/dia2code/patches/21/
- Fixed missing full qualification of parent name in C++ generalizations,
see http://sourceforge.net/p/dia2code/patches/22/
- Added support for non CORBA variants of CORBA stereotypes,
<<struct>> or <<structure>> (synonyms for CORBAStruct),
<<typedef>> (synonym for CORBATypedef),
<<const>> or <<constant>> (synonyms for CORBAConstant), see
http://sourceforge.net/p/dia2code/discussion/48621/thread/9013af8d
- Applied patch for preventing infinite loop on generating code for classes
with circular dependency, see http://sourceforge.net/p/dia2code/patches/23/
07 Jul 2012: Version 0.8.5
- Support for properties in C# code by Jedrek P <smaug@smaug.int.pl>, see
https://bugs.launchpad.net/ubuntu/+source/dia2code/+bug/173628
- Support unnamed associations (artificial name "unnamed_" followed by a
counter value will be generated)
- Generating Java or PHP code no longer crashes on files containing only
classes (without UML packages)
- Minor portability issues fixed (thanks to the FreeBSD ports team)
- Patch by Alejandro Imass fixes matching against _id instead of id for
surrogate fk convention in popular ORMs, and adds an -sqlx command line
parameter for future enhancements to the sql module
22 Oct 2011: Version 0.8.4
- Added support for C++ "const" qualifier on operations
- generate_code_sql.patch by Alejandro Imass improves naming of Foreign
Keys in SQL code generation, see part 3) at
http://sourceforge.net/mailarchive/message.php?msg_id=27145752
- Fixed retrieval of association name from diagram, see
https://bugs.launchpad.net/ubuntu/+source/dia2code/+bug/442295
- Fixed missing C++ function parameters in the presence of comments, see
http://sourceforge.net/projects/dia2code/forums/forum/48621/topic/3527703
05 Jan 2007: Version 0.8.3
- Added Ruby code generator by Dmitry V. Sabanin.
17 Nov 2006: Version 0.8.2
- Added PHP5 code generator by Tim Rodger.
- Fixed the bug that caused SEGFAULTs when parsing a simple implementation
(here called lolipop implementation) with no text associated. Thanks to
Max Berger and Patrice Neff.
01 Jan 2002: Version 0.8.1
- The win32 files were not included in 0.8, now they are in.
- Fixed the bug with grouped objects.
- Fixed the bug with integer parsing in 64 bit systems. Thanks to
Patrik Stähli.
- Updated generate_code_php. Thanks to Harald Fielker.
The following changes where made by Chris McGee:
- Fixed the NO_GENERATORS number to reflect the actual number of
code generators that are actually there.
- Added _basic_ CORBA idl support
27 Dec 2001: Version 0.8
- Fixed the bug that caused SEGFAULTs when parsing templates.
- Fixed the endless loop bug in the Java code generator.
- Fixed the bug that scrambled the formal parameters of a method.
- Added support for wildcards to the list specified with "-cl".
Now one can put an asterisk either at the beggining or the end. Example:
"dia2code -cl Foo*,*bar", will create files only for classes which names
start with "Foo" or end with "bar". Thanks to Jérôme Slangen.
- Added the PHP code generator. Thanks to Harald Fielker.
- Added support for license file inclusion (-l). Thanks to Takashi Okamoto.
The following changes were done by Steffen Macke:
- Added support for shapefile generation (shp): New generate_code_shp.c
- Added support to built with cygwin on win32: dia2code/makefile.mingw
- Added files to built win32 installer with NSIS: dia.ico, dia1.bmp,
dia2.bmp, dia2code Homepage.url dia2code.nsi, README.win32, Report a Bug.url
01 Oct 2001: Version 0.7
- Added support for packages. The classes now have a "package" pointer which
points to an element of a new structure: package. The parser fills in info
for the packages based on the geometry of the objects in the diagram.
Currently, only the Java code generator uses this extra info.
- Added list_classes(), a function like find_classes() that returns an
umlclasslist instead.
- Regrouped the scan in the parser so we'll pass through the diagram fewer
times.
- Added some comments here and there.
- Updated the README and TODO files.
15 Sep 2001: Version 0.6.1
- Fixed the Association and Dependency parsing. They were broken because
I rewrote the routines for libxml2.
- Modified find_classes(): now it returns a list with the classes used in:
attributes, method parameters, parents, dependencies and associations. The
list has each "used" class at most once.
- Modified code generators to use the above improvement.
03 Sep 2001: Version 0.6
- Dia2Code now uses libxml2. Thanks to Martin Vidner for the patch and
guidelines to it.
- Added configuration options for libxml2 in configure.in. Again, thanks to
M. Vidner for the support.
- New argument parsing: should be easier to understand and much more flexible:
arguments can be specified in any order (even the filename).
- Added my_malloc() that behaves like malloc() but exits if there's no more
memory avaliable.
- Added generate_code_ada, thanks to Thomas Preymesser
- Added generate_code_sql, thanks to Chris McGee
- Added generate_code_python, thanks to Cyrille Chepelov
- Added dynamic shared objects capability for adding new code generators
on the fly. (Thanks very much to Takaaki Tateishi)
- Added dependency and aggregation/composition functionality to the
cpp, java and c generators. Thanks to Chris McGee.
- Added a Kaptain script for dia2code (dia2code.kaptn). Kaptain is a
program that creates a QT GUI from a grammar file and can invoke a
command-line program, like dia2code. Check out its home page:
http://kaptain.sourceforge.net
23 Jan 2001: Version 0.5
- Fixed the .in files in the docs directory so "configure" will not
complain any more.
- There was a bug in generate_code_java; it didn't really checked for
a string longer than the buffer, but it was NOT vulnerable to buffer
overflows (see next bug).
- Another bug in generate_code_java: the output directory was not
prepended to the output filename, so specifying it while generating
Java code was futile. My fault.
- Added some comments here and there.
- Added generate_code_c, thanks to Ruben Lopez.
- Added the find_classes() function (again, thanks to Ruben Lopez). This
function returns a list of names that a given class uses and are declared
in the same diagram. With this, generate_code_c and generate_code_cpp now
can generate more useful #include directives.
- Added a char * field to umloperation named "implementation" so we can
suggest an implementation while building the class list. The code
generators MAY use it as a default implementation (example: a non-void
function may return a default value).
- Added support for JavaBeans(tm). If you want to automagically add
a get() and set() (or is() if it is boolean) public method for each
attribute, you should set "JavaBean" as the stereotype. The body of
the method will be generated properly. This should also work when
the target language is not Java.
01 Jan 2001: Version 0.4
- When you didn't specify a method's return type (left the space blank)
the program would promptly crash. This was mostly a problem with
constructors.
- Added support for "UML - Implements" (the lolipop implementation). The
interface name will be declared in the implementator's file but no code
will be generated for it.
28 Dec 2000: Version 0.3
- There was bug with the list of classes to generate: the
discrimination was done in the class parser, so we could end
with a list of classes without parent information. Sorry.
- The code generators now accept only a pointer to a structure
that contains all the information they need. Please look into
the README file for details.
20 Dec 2000: Version 0.2
- Added this Changelog
- Added the online help options, "-h" and "--help"
- Added the "-nc" option. When specified, dia2code will not overwrite
files already present in the target directory.
- Added the "-cl" option, which lets you specify the list of classes you want
generated. Example: "-cl Base,Derived". Also added the "-v" optiion, that
inverts the class selection.
- Reorganized the structure of the project. Now it is divided into two modules:
the parser and the code generators.
- There was a bug in generate_code_java: tmpname is not initialized and the
program could randomly crash.
- The condition for the generation of abstract classes in Java was rather ugly.
Now it looks for the Abstract flag instead of the Sterotype (which is much better
than before).
26 Nov 2000: Version 0.1
- Initial release
- Generates code for C++/Java
- Does not support templates.
|