Opinions on package renaming for Flowable 6 to org.flowable

Hi all,

We’ve got feedback from multiple people from the community that they would find a package rename to org.flowable a good and logical step for the Flowable project. This also includes a rename to flowable.cfg.xml and flowable-context.xml for example.

It would be great to get more feedback before a final decision can be made about the package renaming. So please let us know your opinion. For Flowable 5 we think it’s better to stick with the existing package name, to reduce any impact on running applications. But we are very interested in your opinion about the Flowable 5 modules as well.

Thanks,

Tijs

1 Like

Hi Tijs,

We are in favor of the package being renamed to org.flowable as well. In addition, we would also like to request that classes that contain the word ‘Activiti’ in them, for example ActivitiEventBuilder, be renamed to use ‘Flowable’ as well.

thanks,
Rob

I will second Rob’s opinion. I have found myself more than once looking at the wrong version of a file because of the duplicate naming issue.

We will have to make some changes to our code but the benefit far out weighs the cost.

Thanks,
David

Hi Rob and David,

Thanks for your feedback, really appreciated.

Best regards,

Tijs

In our case management solution, we have customers who customize their processes. That includes Groovy script tasks, and references to various engine classes.

Upgrading these processes will become difficult and error prone. I’d rather we didn’t have to do this!

If it was decided to do this, a tool which upgrades process definitions (including for running instances) would be very much appreciated.

I am assuming this is for Version 6 and not for the Version 5 code base. Do you have customers currently running Version 6 based code?

Right, that’s a good point. And no, we currently run only version 5, so perhaps my argument is moot.

I checked a couple of projects/customers, and the package references I found across their processes are as follows:

Project #1

org.activiti.engine.impl.bpmn.listener.ScriptExecutionListener
org.activiti.engine.impl.bpmn.listener.ScriptTaskListener
org.activiti.engine.impl.context.Context
org.activiti.engine.impl.identity.Authentication

Project #2

org.activiti.engine.impl.bpmn.listener.ScriptTaskListener
org.activiti.engine.impl.identity.Authentication

What about renaming and providing a bridge module (if at all feasible)? A little bit like slf4j does (e.g. log4j-over-slf4j). This would give people time to evolve their codebase while still being able to upgrade to 6?

Hi Wouter,

That would be ideal indeed, but it’s difficult to provide the bridge functionality for all the possible classes. If we would come up with a list of classes then it would be feasible I think. Maybe we should release the RC1 6 candidate and get feedback on which bridge classes are needed.

Best regards,

Tijs

I’d find it a bit awkward to start fresh with Flowable 6 and find packages that reference org.activiti…:wink: would be confusing imho.
And with some decent refactoring support, I’d not see a problem with migrating existing projects, or am I missing something?

I just updated to the latest flowable 6 jars and noticed there are still some classes that use the “Activiti” term in the class name. For example: org.flowable.engine.impl.delegate.event.ActivitiEngineEntityEvent. Will there be an additional update to remove the ‘Activiti’ term from all the remaining classes? Also, it appears the extension namespace has not been renamed from “activiti” to “flowable”. Are there any plans to update it as well?

Hi Rob,

The refactoring was a lot of work and there might still be some classes with an Activiti reference left. The goal is to replace this all with Flowable. Using the flowable namespace could be a good thing to do as well, but this also means that our tooling should generate the flowable namespace, and the embedded Activiti 5 engine should still have support for the activiti namespace as well for backwards compatibility reasons. Right now the xml converter project is shared between version 5 and 6, so this means that also the 6 engine would still support the activiti namespace. I’m not yet sure how we could best support both namespaces. Do you have an idea?

Best regards,

Tijs

Hi Tijs,

Could it be as simple as updating the parser classes to attempt to read from both namespaces and the converter/export classes to always write to the flowable namespace? A few small tweaks are also needed in the BpmnXmlUtil and BpmnDeployer classes.

Rob

Hi Rob,

I’ve implemented support for the flowable namespace (in addition to the activiti namespace) now.

Best regards,

Tijs