'jBPM-like' state transitions

I'm trying to implement a "wait-state" model in Activiti, which I believe is done via the RuntimeService.signal() method and "receive" tasks. This approach chooses transitions based on the transition condition. Though this is standard BPMN2.0 behavior, I see a couple drawbacks compared to how jBPM 3.x works:

More work to implement models (at least the way I've figured out, perhaps there's an easier way): One needs to create a transition condition on each transition such as ${transition == "t6"}, then set a process instance variable related to the condition (engine.getRuntimeService().setVariable(processInstanceId, "transition", "t6");). With jBPM, one only needs to give the transition a name.

Less transparent: At least for the short term, the Activiti Eclipse based model designer doesn't display transition conditions on the model diagram. So the diagram doesn't show how the model will execute.

So I wrote a little code that adds the capability to choose a transition based on the transition name. Basically I wrote a new Command class based on SignalCmd named SignalViaNameCmd, then implemented a signal() method that uses this new Command:

public static final String INVALID_TRANSITION_MSG = " is not a valid transition for state "; public static final String DUPLICATE_TRANSITIONS_MSG = " is used as a name for more than one outgoing transition of state "; public static final String TOO_MANY_TRANSITIONS_MSG = "Can only signal without a transition name if there is exactly one outgoing transition. "; public static final String IF_NAMED_ALL_MUST_HAVE_NAME_MSG = "When signaling with a transition name, all outgoing transitions must have a name. ";