Modelio is open source and has one of the best support for UML2. I have been using it for several years. It also has jython scripting support to write automation for mass modifications in large models. I have managed to learn how to use jython to create a script to automatically generate java source as hibernate jpa entity classes just the way i like it in just one day. This was made much easier with the builtin metamodel browser so that you learn how your whole project model is constructed internally. https://www.modelio.org