Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[umlgen-dev] API from the generators

Hi,

For the creation of the new release 1.0.0, I suggest to specify each exported package as internal (x-internal:=true).

Indeed, today, the exposition of APIs from each generator is not clearly defined. So, just a simple modification on a Java class method (or template) would involve an API break and a rising to the next major version of the related plugin and feature (and even of the whole UML Generators project). On my mind, in the most cases, generators will not provide API (by nature). If this is not so, the generator has to be designed and implemented with caution in order to be extended or/and reused.

Defining these packages as internal, this enables "client" developers to extend or reuse some generators BUT warning them this could be broken in a next version (even service kind). From the "provider" developer point of view, this enables flexibility, waiting that the project gains in maturity. This is a good mean to watch needs and use cases in order to define real architectures and APIs in the future.
Also, it is really easier to open APIs than to close them.

Let me know your opinion in relation to your generator.

Note about modeling aspects:
The changes on UML Generators profiles (or DSLs) should not involve API breaks (unless for DSLs if there is not a migration procedure). Same things for the UML meta-model evolutions. All these changes will be come with evolutions and adaptations of the generators for a next minor version. The use of old profiles will not give any guarantee on the result of the generated code (this will have to be managed on a case by case basis by the generator leaders, adopting an implementing strategy(*) and communicating on it) and the new models will not be back compatible.

(*) For example: Automatic model migration or use of Acceleo Java services managing different profile versions or just no management of old profiles/DSLs...

Best regards,
Cedric


Back to the top