changes:
* fixed bug where assertion-style selection in annotation was ignored.
* fixed StackOverflow in user-defined Handler
* fixed typos and increased usefullness of warning-messages
ocl4java:
important bugfix for bug #1298628 .
ThreadPoolOclCodeGenrator is deprecated as it meight not work well with nested classes/multiple type-definitions per file.
DeferredCodeGenerator used instead.
plugin:
lots of quickAssists added and bugfixed ocl4java used. type ctrl+1 to get all sorts of nifty assists when writing ocl-code.
A but #1296135 was found and fixed in ocl4java 1.1 and the plugin now has better support for concurent editing by the builder and the user.
YOU ARE ADVISED TO UPDATE YOUR PLUGIN TO 1.4!!!
*added the first quick-Assists (access with ctrl+1)
*some speedup in the ocl-builder
beware not to edit the text while the builder is running on it!
It's been long enough without any non-minor bugs that we can call this release stable. Last changes include added localization and a listener for compile-errors.
The eclipse-plugin is pretty complete and it is planned to look into OCL-code-completion for it. It may have some problems with finding out the right class-path to use still, this wil lbe looked into.
The cvs-version of the eclipse-plugin now has a preferences-page to select the assertion-style, some bugfixes and greatly improved speed and memory-footprint. It will probably be ready for release as a new beta tomorrow.
Finally we got our eclipse-plugin working!
You can switch between automatic generation for the whole project (code is inserted using the incremental compiler.)
-> use the context-menu on the java-project for this.
and manuall insertion/removal for single classes
-> use the context-menu in the java-editor for this and look in the sub-menu "ocl"
* better handling of Enum-Declarations
* fixed a bug with @pre for assertion-style "java"
* code-cleanup around the AssertionStyle-Enum
* added missing -asertionStyle -parameter to cmdln--version
* removed some old debug-output
Apart from last cleanups for the 1.0-release
a last feature was added. You can have your
own handler for failed ocl-constraints and thus react in a
program-specific way to it. e.g. shut down a connection cleanly
and free ressources before shutting down a failed component.
We have become stable enough to aproach the 1.0 now :)
Here are the latest changes:
added an "example"-directory
more documentation in build.xml
bugfix in getOclName(jdt-Type) in handling primitivy types
post-check is inserted in void-methods as last statement again if they don't contain "return" or "throw"
I have made a major mistake in how @pre is handled
(it worked on primary expressions but broke how it should be for other expressions).
This has been corrected now. @pre should now work in all cases.
Now maps are handled (as sets because the runtime-code does that anyway).
Every ANY extends java.lang.Object (even interfaces do to make valid checks that would work on any implementation of it work).
many minor bugfixes.
on-demand import-statements (ending in .*) are resolved much better.
Multiple constraints may be given in one annotation.
now contains a some patched classes from ocllib
allowing size(),.. to be called as features on collection-classes.
The following constraint for example is now working:
@Constraint("post: assertedMethod.getBody().statements().size>assertedMethod@pre.getBody().statements().size";)
Also checks on return-values work again.
POST and INV are again checked for void-methods.
no iterator is created for non-collections in ocl-normalization.
The cvs-version now contains a some patched classes from ocllib
allowing size(),.. to be called as features on collection-classes.
The following constraint for example is now working:
@Constraint("post: assertedMethod.getBody().statements().size>assertedMethod@pre.getBody().statements().size")
Also checks on return-values work again.
lots and lots of bugfixes.
First code to support nested classes and annotation/enumeration-types.
Much cleaner type-loading.
Context is automatically created from context of annotation in source-code if not given.
"\n" "\t",... is no longer removed from ocl for error-messages.
Some heavy debugging.
The CVS-version (upcomming v0.10) has seen come major debugging and code-style cleanup.
It also will now generate a "context"-line if the given ocl does not contain one.
Added experimental support for the "@pre"-expression in OCL-statements.
Bugfix: adds checking statement at end of void-classes.
CodeBeautifier knows IllegalStateException.
Some checkstyle-cleanups.
The bug that .size .isEmpty,... of collections cannot be accessed is fixed in the cvs-version and the upcomming v0.8 .
We just did some further debugging and released the refactoring and general code-cleanup of the cvs-version.
There will be no updates for a few days because of my vacation.
The cvs-version fixes a bug im v0.6 that leads to an endless recursion if scanning superclasses.
It also has been refactored to separate ocl-parsing and jdt-manipukation into 2 much smaller classes.
comments and formatings now survive the generator.
linenumbers are not changed now.
OCL-statements from superclasses/interfaces are now used for overloaded/implemented methods
getting OCL-constraints for overridden/implemented methods from supertypes/interfaces now works in the CVS-version.
Can fall back to Reflection if needed.
Generator runs on itself.
Can handle function-calls in OCL.
Some debugging.
Can work on static methods.
The cvs-version is now able to output a message on apache commons-logging (error, warning or debug) as well as System,err, throw an Exception or use the java1.4 assert-statement.