Can someone explain the rational for New Groovy 1.8? ASync vs Sync


Hi there,

just looking at Bonita 6.4.0 and need to understand something.

1) Why are we still on Groovy 1.8 as Groovy 2.3 has been on General Release since May 2014?

2) What is Groovy 1.8 Depreciated in relation to Groovy 1.8? If no-one has seen this have a look at Connectors, Add A Connector->Script, there are two 1.8s.

3) How does the use of Groovy 1.8 affect transactions? It states:

Execute a Groovy 1.8 Script outside the Bonita transaction. There is no time limit on execution.

Where as Groovy 1.8 Depreciated says:

The connector executes the script within the Bonita transaction. If script execution takes longer than the Bonita transaction time, the script fails.

If this means what I think it means then the names should be changed as the impact could be interesting to say the least.

From my reading and understanding...

the new Groovy 1.8 is Asynchronous meaning that the transaction can start a connector, the transaction can finish, and the connector can continue to run until it finishes. This also means that the next step in the process can start before the Connector from the previous step has finished.

the old Groovy 1.8 Depreciated is Synchronous meaning that the transaction starts a connector, waits for the connector to finish and then the transaction will finish.

3.1) If this is correct, then why are they called Groovy 1.8, and Groovy 1.8 Depreciated? Surely they should be called Groovy 1.8 Asynchronous and Groovy 1.8 Synchronous?

3.2) Following on from that, how do multiple connectors in a Step (not good practice) work? Are they all ASync? What happens when one is dependent on the other? How do we specify this? Do we now have to write our own semaphores? I stopped doing this when I gave up college... :) Feels like a million years ago.

3.3) I've read the 6.4.0 Release notes and the only thing I could find as such is

BS-10298 Transaction timeout for groovy execution time > 60s (Should be executed out of the transaction)

Is this the rational for ASync/Sync? If it is then how does Groovy decide >60<? It can' how do we specify we want a Sync Connector as opposed to a ASync Connector? . . . This is why i need an explanation as what it Groovy 1.8 and Groovy 1.8 Depreciated. Depreciated to me means will be removed (at some time). If this is the case then how do we write synchronous code?

I hope you can see my confusion, if I'm wrong then the text is wrong and should be changed because that's how it reads, if I'm right then you can't depreciate Groovy 1.8 (Synchronous), I believe it has to stay.

Thanks and best regards Seán

No answers yet.