Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cam 4450 timer event listener : JobDefinition Changes #225

Conversation

subhrajyotim
Copy link

Hello Roman,
Please review the changes. Please let me know what all changes are required.

Thanks a lot for your time.
Subhro.

@romansmirnov romansmirnov self-assigned this Apr 22, 2016
@@ -37,6 +43,11 @@

public static final String[] CMMN_RESOURCE_SUFFIXES = new String[] { "cmmn11.xml", "cmmn10.xml", "cmmn" };

protected static final PropertyMapKey<String, Map<String,TimerJobDeclaration<?>>> TIMER_EVENT_JOB_DECLARATIONS_PROPERTY =
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you please change it as follows:

protected static final PropertyMapKey<String, List<JobDeclaration<?, ?>>> JOB_DECLARATIONS_PROPERTY =
      new PropertyMapKey<String, List<JobDeclaration<?, ?>>>("JOB_DECLARATIONS_PROPERTY");

@romansmirnov
Copy link
Member

Hi Subhro,

Additionally to the remarks above, I would suggest to implement it as follows:

  • Extend the CmmnHandlerContext as follows:
public class CmmnHandlerContext implements HandlerContext {

  protected List<JobDeclaration<?, ?>> jobDeclarations = new ArrayList<JobDeclaration<?, ?>>();

  public void addJobDeclaration(JobDeclaration<?, ?> jobDeclaration) {
    jobDeclarations.add(jobDeclaration);
  }

  public List<JobDeclaration<?, ?>> getJobDeclarations() {
    return jobDeclarations;
  }

}
  • Extend the CmmnTransform as follows:
public class CmmnTransform implements Transform<CaseDefinitionEntity> {

  /**
   * Mapping from a case definition key to his containing list of job
   * declarations
   **/
  protected Map<String, List<JobDeclaration<?, ?>>> jobDeclarations = new HashMap<String, List<JobDeclaration<?, ?>>>();

  public Map<String, List<JobDeclaration<?, ?>>> getJobDeclarations() {
    return jobDeclarations;
  }

}
  • Change the implementation of CmmnTranform#transformCase() as follows:
  protected CaseDefinitionEntity transformCase(Case element) {
    // get CaseTransformer
    CmmnElementHandler<Case, CmmnActivity> caseTransformer = getDefinitionHandler(Case.class);
    CaseDefinitionEntity definition = (CaseDefinitionEntity) caseTransformer.handleElement(element, context);

    context.setCaseDefinition(definition);
    context.setParent(definition);

    CasePlanModel casePlanModel = element.getCasePlanModel();
    transformCasePlanModel(casePlanModel);

    for (CmmnTransformListener transformListener : transformListeners) {
      transformListener.transformCase(element, definition);
    }

    List<JobDeclaration<?,?>> declarations = context.getJobDeclarations();
    if (!declarations.isEmpty()) {
      jobDeclarations.put(definition.getKey(), new ArrayList<JobDeclaration<?,?>>(declarations));
      declarations.clear();
    }

    return definition;
  }

Does it work for you?

Thanks!

Cheers,
Roman

@subhrajyotim
Copy link
Author

Hi Roman,
Yes, this works. Thanks for the comments, will re-implement the changes u
mention and re-send the pull-request.

Thanks,
Subhro.

On Mon, Apr 25, 2016 at 1:06 PM, Roman Smirnov notifications@github.com
wrote:

Hi Subhro,

Additionally to the remarks above, I would suggest to implement it as
follows:

  • Extend the CmmnHandlerContext as follows:

public class CmmnHandlerContext implements HandlerContext {

protected List<JobDeclaration> jobDeclarations = new ArrayList<JobDeclaration>();

public void addJobDeclaration(JobDeclaration jobDeclaration) {
jobDeclarations.add(jobDeclaration);
}

public List<JobDeclaration> getJobDeclarations() {
return jobDeclarations;
}

}

  • Extend the CmmnTransform as follows:

public class CmmnTransform implements Transform {

/**

  • Mapping from a case definition key to his containing list of job

  • declarations
    **/
    protected Map<String, List<JobDeclaration>> jobDeclarations = new HashMap<String, List<JobDeclaration>>();

    public Map<String, List<JobDeclaration>> getJobDeclarations() {
    return jobDeclarations;
    }

}

  • Change the implementation of CmmnTranform#transformCase() as follows:

    protected CaseDefinitionEntity transformCase(Case element) {
    // get CaseTransformer
    CmmnElementHandler<Case, CmmnActivity> caseTransformer = getDefinitionHandler(Case.class);
    CaseDefinitionEntity definition = (CaseDefinitionEntity) caseTransformer.handleElement(element, context);

    context.setCaseDefinition(definition);
    context.setParent(definition);

    CasePlanModel casePlanModel = element.getCasePlanModel();
    transformCasePlanModel(casePlanModel);

    for (CmmnTransformListener transformListener : transformListeners) {
    transformListener.transformCase(element, definition);
    }

    List<JobDeclaration> declarations = context.getJobDeclarations();
    if (!declarations.isEmpty()) {
    jobDeclarations.put(definition.getKey(), new ArrayList<JobDeclaration>(declarations));
    declarations.clear();
    }

    return definition;
    }

Does it work for you?

Thanks!

Cheers,
Roman


You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
#225 (comment)

@subhrajyotim
Copy link
Author

Hello Roman,
Made the changes as u have guided. Please review and let me know.
I am unable to 2 figure out, 2 things,

  • how to clean up ACAT_RU_JOBDEF. I keep getting assertion error,
    java.lang.AssertionError: DB NOT CLEAN:
    ACT_RU_JOBDEF: 1 record(s)
  • How do I test isDeploymentNew==false in updateJobDeclarations method. CmmnDeployer.java:L122
    Currently I tested in debug mode, by changing the value of isDeploymentNew to false.

I also started with #2, from your earlier email, ie impl of TimerEventListenerJobHandler.execute method, let me know if this is an issue, i will revert my changes for this file.

Thanks a lot for your time.
Subhro.

@Override
protected void definitionAddedToDeploymentCache(DeploymentEntity deployment, CaseDefinitionEntity definition, Properties properties) {
List<JobDeclaration<?, ?>> declarations = properties.get(JOB_DECLARATIONS_PROPERTY).get(definition.getKey());
if(declarations!=null && !declarations.isEmpty())updateJobDeclarations(declarations, definition, deployment.isNew());
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please follow our code styling and change it into:

if(declarations!=null && !declarations.isEmpty()) {
  updateJobDeclarations(declarations, definition, deployment.isNew());
}

@romansmirnov
Copy link
Member

romansmirnov commented Apr 27, 2016

Hi Subhro,

how to clean up ACAT_RU_JOBDEF. I keep getting assertion error,
java.lang.AssertionError: DB NOT CLEAN:
ACT_RU_JOBDEF: 1 record(s)

In order to clean the DB you have to delete the created JobDefinition when the deployment gets deleted. Therefore you have to extend the DeploymentManager#deleteCaseDeployment() as follows:

protected void deleteCaseDeployment(String deploymentId, boolean cascade) {
  // ...

  for (CaseDefinition caseDefinition : caseDefinitions) {
    String processDefinitionId = caseDefinition.getId();

    // remove case definitions from cache:
    Context
      .getProcessEngineConfiguration()
      .getDeploymentCache()
      .removeCaseDefinition(processDefinitionId);

      // delete job definitions
      getJobDefinitionManager().deleteJobDefinitionsByCaseDefinitionId(processDefinitionId);

  }

}

Therefore you have to implement JobDefinitionManager#deleteJobDefinitionsByCaseDefinitionId() like it is already done for JobDefinitionManager#deleteJobDefinitionsByProcessDefinitionId()

How do I test isDeploymentNew==false in updateJobDeclarations method. CmmnDeployer.java:L122
Currently I tested in debug mode, by changing the value of isDeploymentNew to false.

See my note above.

I also started with #2, from your earlier email, ie impl of TimerEventListenerJobHandler.execute method, let me know if this is an issue, i will revert my changes for this file.

I would prefer to revert your changes regarding TimerEventListenerJobHandler in order to finish this topic first and to close this pull request.
Would be that okay for you?

Thanks.

Cheers,
Roman

@subhrajyotim
Copy link
Author

Hello Roman,
I have made the changes as u have mentioned.
One confusion I have:
CmmnDeployer.java:L122, I have not set any acvitiyId on the TimerEventListenerJobDeclaration or JobDefinitionEntity, hence the if check has no activity checks, not sure if this is correct.

Do I have to set some ActivityImpl along with TimerEventListenerJobDeclaration object in TimerEventListenerItemHandler.java?

Let me know if there are any changes to the same.

Thanks a lot for your time.
Subhro.

@romansmirnov
Copy link
Member

romansmirnov commented Apr 28, 2016

Hi Subhro,

CmmnDeployer.java:L122, I have not set any acvitiyId on the TimerEventListenerJobDeclaration or JobDefinitionEntity, hence the if check has no activity checks, not sure if this is correct.

Good point! It is necessary to set the activity id on the TimerEventListenerJobDeclaration. Therefore I would suggest to extend the TimerEventListenerJobDeclaration as follows:

public class TimerEventListenerJobDeclaration extends TimerJobDeclaration<CaseExecutionEntity> {

  protected CmmnActivity cmmnActivity;

  public void setActivity(CmmnActivity activity) {
    this.cmmnActivity = activity;
  }

  public String getActivityId() {
    if (cmmnActivity != null) {
      return cmmnActivity.getId();
    }
    else {
      return null;
    }
  }
}

Then you should be able to set the activity on the TimerEventListenerJobDeclaration in TimerEventListenerItemHandler#initializeTimerEventListenerJobDeclaration().

As a consequence, the if-check in line CmmnDeployer.java:L122 should contain the activity check.

Could you please adjust this?

Thanks.

Cheers,
Roman

@subhrajyotim
Copy link
Author

Hello Roman,

I have done the changes as u mentioned. Let me know if all is ok.

Thanks again for your time,
Subhro.

On Thu, Apr 28, 2016 at 1:19 PM, Roman Smirnov notifications@github.com
wrote:

Hi Subhro,

CmmnDeployer.java:L122, I have not set any acvitiyId on the
TimerEventListenerJobDeclaration or JobDefinitionEntity, hence the if check
has no activity checks, not sure if this is correct.

Good point! It necessary to set the activity id on the
TimerEventListenerJobDeclaration. Therefore I would suggest to extend the
TimerEventListenerJobDeclaration as follows:

public class TimerEventListenerJobDeclaration extends TimerJobDeclaration {

protected CmmnActivity cmmnActivity;

public void setActivity(CmmnActivity activity) {
this.cmmnActivity = activity;
}

public String getActivityId() {
if (cmmnActivity != null) {
return cmmnActivity.getId();
}
else {
return null;
}
}
}

Then you should be able to set the activity on the
TimerEventListenerJobDeclaration in
TimerEventListenerItemHandler#initializeTimerEventListenerJobDeclaration()
.

As a consequence, the if-check in line CmmnDeployer.java:L122 should
contain the activity check.

Could you please adjust this?

Thanks.

Cheers,
Roman


You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
#225 (comment)

@romansmirnov romansmirnov force-pushed the CAM-4450-timer-event-listener branch 3 times, most recently from d6aae5f to 0e43e48 Compare May 10, 2016 09:19
@romansmirnov
Copy link
Member

Hi Subhro,

Sorry for my late response. I merged your changes into the branch CAM-4450-timer-event-listener.

I also updated the branch with current master branch. Unfortunately I had to force push the changes to the CAM-4450-timer-event-listener branch. I recommend you to update your development branch.

I just want to let you know that we are going to release 7.5 in the end of May 2016. It would be nice, if we could manage to add the timer event listener implementation to this release. Therefore the remaining points should be finished until next week (18th May), so that there is some time left to test it. Do you think we can manage it?

Thanks for your effort!

Cheers,
Roman

@subhrajyotim
Copy link
Author

Hello Roman,
Hope all is well.
yes of-course I can to do this before 18th May, no problem.

Will update my development branch CAM-4450-timer-event-listener.

Cheers,
Subhro.

On Tue, May 10, 2016 at 2:56 PM, Roman Smirnov notifications@github.com
wrote:

Hi Subhro,

Sorry for my late response. I merged your changes into the branch
CAM-4450-timer-event-listener.

I also updated the branch with current master branch. Unfortunately I had
to force push the changes to the CAM-4450-timer-event-listener branch. I
recommend you to update your development branch.

I just want to let you know that we are going to release 7.5 in the end of
May 2016. It would be nice, if we could manage to add the timer event
listener implementation to this release. Therefore the remaining points
should be finished until next week (18th May), so that there is some time
left to test it. Do you think we can manage it?

Thanks for your effort!

Cheers,
Roman


You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
#225 (comment)

@subhrajyotim
Copy link
Author

Hello Roman,
Sorry to bother again, I am unable to update my local branch
CAM-4450-timer-event-listener, with the latest in
upstream/CAM-4450-timer-event-listener, and so my origin (github branch
CAM-4450-timer-event-listener) is not able to get updated. Any ideas how I
resolve this?

I have synced the master properly, but this feature branch
CAM-4450-timer-event-listener, i could not get my head around how to update
it with upstream/CAM-4450-timer-event-listener.

I dont know, why I find Git so hard. :(

Thanks a lot for your time, Cheers
Subhro.

On Tue, May 10, 2016 at 4:05 PM, Subhrajyoti Moitra subhrajyotim@gmail.com
wrote:

Hello Roman,
Hope all is well.
yes of-course I can to do this before 18th May, no problem.

Will update my development branch CAM-4450-timer-event-listener.

Cheers,
Subhro.

On Tue, May 10, 2016 at 2:56 PM, Roman Smirnov notifications@github.com
wrote:

Hi Subhro,

Sorry for my late response. I merged your changes into the branch
CAM-4450-timer-event-listener.

I also updated the branch with current master branch. Unfortunately I
had to force push the changes to the CAM-4450-timer-event-listener
branch. I recommend you to update your development branch.

I just want to let you know that we are going to release 7.5 in the end
of May 2016. It would be nice, if we could manage to add the timer event
listener implementation to this release. Therefore the remaining points
should be finished until next week (18th May), so that there is some time
left to test it. Do you think we can manage it?

Thanks for your effort!

Cheers,
Roman


You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
#225 (comment)

@subhrajyotim
Copy link
Author

Hi Roman,
Sorry to bother again,
After doing some searching and updating the repo, this is what it has
turned into,

https://github.com/camunda/camunda-bpm-platform/compare/CAM-4450-timer-event-listener...subhrajyotim:CAM-4450-timer-event-listener?expand=1

I am seeing, 3 changed files. I thought, all this code was already
commited. What do i do now? Really sorry for the confusion,

Please guide.

Thanks and regards,
Subhro.

On Tue, May 10, 2016 at 4:43 PM, Subhrajyoti Moitra subhrajyotim@gmail.com
wrote:

Hello Roman,
Sorry to bother again, I am unable to update my local branch
CAM-4450-timer-event-listener, with the latest in
upstream/CAM-4450-timer-event-listener, and so my origin (github branch
CAM-4450-timer-event-listener) is not able to get updated. Any ideas how I
resolve this?

I have synced the master properly, but this feature branch
CAM-4450-timer-event-listener, i could not get my head around how to update
it with upstream/CAM-4450-timer-event-listener.

I dont know, why I find Git so hard. :(

Thanks a lot for your time, Cheers
Subhro.

On Tue, May 10, 2016 at 4:05 PM, Subhrajyoti Moitra <
subhrajyotim@gmail.com> wrote:

Hello Roman,
Hope all is well.
yes of-course I can to do this before 18th May, no problem.

Will update my development branch CAM-4450-timer-event-listener.

Cheers,
Subhro.

On Tue, May 10, 2016 at 2:56 PM, Roman Smirnov notifications@github.com
wrote:

Hi Subhro,

Sorry for my late response. I merged your changes into the branch
CAM-4450-timer-event-listener.

I also updated the branch with current master branch. Unfortunately I
had to force push the changes to the CAM-4450-timer-event-listener
branch. I recommend you to update your development branch.

I just want to let you know that we are going to release 7.5 in the end
of May 2016. It would be nice, if we could manage to add the timer event
listener implementation to this release. Therefore the remaining points
should be finished until next week (18th May), so that there is some time
left to test it. Do you think we can manage it?

Thanks for your effort!

Cheers,
Roman


You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
#225 (comment)

@romansmirnov
Copy link
Member

Hi Subhro,

Have you tried the following:

git fetch upstream
git reset --hard upstream/CAM-4450-timer-event-listener

Be aware that this will throw away all your local changes. If you want to keep your local changes, you can put them in a different branch first git branch branchname.

Does it help you?

Cheers,
Roman

@subhrajyotim
Copy link
Author

Yes, Roman, this helps.

But still i have diffs on the following files.

Fast-forward
engine/src/main/java/org/camunda/bpm/engine/impl/cmmn/transformer/CmmnTransform.java
| 6 ++++++
engine/src/main/java/org/camunda/bpm/engine/impl/persistence/entity/JobDefinitionManager.java
| 4 ++++
engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/JobDefinition.xml
| 6 ++++++
3 files changed, 16 insertions(+)

The delete job def code are the changes.
Should I revert these changes in my origin?

Starting on point#2 from your earlier email.

Thanks,
Subhro.

On Wed, May 11, 2016 at 12:19 PM, Roman Smirnov notifications@github.com
wrote:

Hi Subhro,

Have you tried the following:

git fetch upstream
git reset --hard upstream/CAM-4450-timer-event-listener

Be aware that this will throw away all your local changes. If you want to
keep your local changes, you can put them in a different branch first git
branch branchname.

Does it help you?

Cheers,
Roman


You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
#225 (comment)

@romansmirnov
Copy link
Member

Hi Subhro,

Yes, revert these changes.

Cheers,
Roman

@subhrajyotim
Copy link
Author

Hi Roman,
I have reverted the changes, but still a small space character is not being
picked up during the commit.
Not sure why.

https://github.com/camunda/camunda-bpm-platform/compare/CAM-4450-timer-event-listener...subhrajyotim:CAM-4450-timer-event-listener?expand=1

There is only a space. Hoping this wont create major issues.

Thanks,
Subhro.

On Wed, May 11, 2016 at 3:57 PM, Roman Smirnov notifications@github.com
wrote:

Hi Subhro,

Yes, revert these changes.

Cheers,
Roman


You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
#225 (comment)

@subhrajyotim
Copy link
Author

Hello Roman,
Please guide me as to the implementation of TimerEventJobHandler, some
pointers.
Also which test cases are to used to test this.
I really want to complete these for the 7.5 release, but i am not totally
aware of the internals yet.
Also i will be putting in more hours, weekends included, to meet the 18th
May deadline, please help with the internals.

Thanks and regards,
Subhro.

On Wed, May 11, 2016 at 6:16 PM, Subhrajyoti Moitra subhrajyotim@gmail.com
wrote:

Hi Roman,
I have reverted the changes, but still a small space character is not
being picked up during the commit.
Not sure why.

https://github.com/camunda/camunda-bpm-platform/compare/CAM-4450-timer-event-listener...subhrajyotim:CAM-4450-timer-event-listener?expand=1

There is only a space. Hoping this wont create major issues.

Thanks,
Subhro.

On Wed, May 11, 2016 at 3:57 PM, Roman Smirnov notifications@github.com
wrote:

Hi Subhro,

Yes, revert these changes.

Cheers,
Roman


You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
#225 (comment)

@romansmirnov
Copy link
Member

Hi Subhro,

There is only a space. Hoping this wont create major issues.

I think this should not be a problem. I will take care of it when I will merge your pull request.

Please guide me as to the implementation of TimerEventJobHandler, some
pointers.

I think the implementation of TimerEventListenerJobHandler should look like this:

public class TimerEventListenerJobHandler extends TimerEventJobHandler {

  public void execute(TimerJobConfiguration configuration, CoreExecution context, CommandContext commandContext, String tenantId) {
    CmmnExecution execution = (CmmnExecution) context;
    execution.occur();
  }

}

The internals already contains for (almost) each transition defined in the specification an implementation. So, in that case we just have to call occur() and that's it.

Regarding tests I would expect some test cases that the job has been triggered and the timer event listener "occured". Therefore you can define a CaseExecutionListener (see 1), which listen to the event occur and tracks the invocation.

Also i will be putting in more hours, weekends included, to meet the 18th
May deadline, please help with the internals.

I really appreciate your effort and your motivation. Yet, please be aware that there is the risk that you will not be able to provide the complete solution in a way that we can merge it to master without changes. Since we are currently focusing on our 7.5 release, we would not be able to put much more effort in ourselves to make it mergeable. I do not want to discourage you, I just want to point this out now so that you are aware.

Happy Hacking :)

Cheers,
Roman

@jangalinski
Copy link
Contributor

@subhrajyotim I just want to say: Thank You! Cool that you are taking all the effort to implement this new feature. We are looking forward to using it, will be of great help.

@subhrajyotim
Copy link
Author

Thanks Jan for those encouraging words, trying my best to get this
completed.

Cheers,
Subhro

On Thu, May 12, 2016 at 1:18 PM, Jan Galinski notifications@github.com
wrote:

@subhrajyotim https://github.com/subhrajyotim I just want to say: Thank
You! Cool that you are taking all the effort to implement this new feature.
We are looking forward to using it, will be of great help.


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
#225 (comment)

@subhrajyotim
Copy link
Author

Hello Roman,

I have made the changes and started the test case, I had to make a small
change in JobEntity.java:L145

if(execution!=null) jobHandler.execute(configuration, execution,
commandContext, tenantId);
else if(caseExecution!=null)
jobHandler.execute(configuration,caseExecution,commandContext,tenantId);

Earlier this code had only the processExecution object. Let me know how to
get this correctly resolved.

  • Created a new CaseExecutionListener class to test the occur event
  • New test case to test the same.

I cannot get my CaseExecutionListener to be called. I have added the
listener as a custom extension element in the cmmn test file.
Can u please guide me?

@deployment(resources =
{"org/camunda/bpm/engine/test/cmmn/timer/TimerEventListenerTest.testTimerOccur.cmmn"})
public void testTimerEventListenerOccurExecution(){
CaseInstance ci = createCaseInstanceByKey("case");
assertNotNull(ci);
CaseDefinition cd =
repositoryService.createCaseDefinitionQuery().caseDefinitionKey("case").singleResult();
List allJobs =
managementService.createJobDefinitionQuery().list();
assertNotNull(allJobs);
assertTrue(!allJobs.isEmpty());

executeAvailableJobs();
CaseExecution exe =
processEngine.getCaseService().createCaseExecutionQuery().caseInstanceId(ci.getCaseInstanceId()).singleResult();
assertNotNull(exe);
Map<String, Object> vars =
processEngine.getCaseService().getVariables(exe.getId());
assertNotNull(vars);
System.out.println("Vars: "+vars);
//assertTrue(vars.containsKey("occur"));
}

Cmmn contents:

R3/PT2S

How do I wait until the jobs are done, any pointers? JobEntity tests have
some hints, not sure where to look for.

Roman, no issues with your last point, if it does not make it in 7.5, i
think it will be ready for 7.6. :)
I will try to put it out for 7.5. .anyways..

Thanks,
Subhro.

On Thu, May 12, 2016 at 11:53 AM, Roman Smirnov notifications@github.com
wrote:

Hi Subhro,

There is only a space. Hoping this wont create major issues.

I think this should not be a problem. I will take care of it when I will
merge your pull request.

Please guide me as to the implementation of TimerEventJobHandler, some
pointers.

I think the implementation of TimerEventListenerJobHandler should look
like this:

public class TimerEventListenerJobHandler extends TimerEventJobHandler {

public void execute(TimerJobConfiguration configuration, CoreExecution context, CommandContext commandContext, String tenantId) {
CmmnExecution execution = (CmmnExecution) context;
execution.occur();
}

}

The internals already contains for (almost) each transition defined in the
specification an implementation. So, in that case we just have to call
occur() and that's it.

Regarding tests I would expect some test cases that the job has been
triggered and the timer event listener "occured". Therefore you can define
a CaseExecutionListener (see 1), which listen to the event occur and
tracks the invocation.

Also i will be putting in more hours, weekends included, to meet the 18th
May deadline, please help with the internals.

I really appreciate your effort and your motivation. Yet, please be aware
that there is the risk that you will not be able to provide the complete
solution in a way that we can merge it to master without changes. Since we
are currently focusing on our 7.5 release, we would not be able to put much
more effort in ourselves to make it mergeable. I do not want to discourage
you, I just want to point this out now so that you are aware.

Happy Hacking :)

Cheers,
Roman


You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
#225 (comment)

@romansmirnov
Copy link
Member

Hi Subhro,

Could you please create a new pull request with your current changes? Then it is easier to give you some advises.

Thanks,
Roman

@subhrajyotim
Copy link
Author

Done Roman,
Please let me know.

Thanks a lot for your time, given the fact I know u are caught up with 7.5
release.

Thanks and regards,
Subhro.

On Fri, May 13, 2016 at 11:39 AM, Roman Smirnov notifications@github.com
wrote:

Hi Subhro,

Could you please create a new pull request with your current changes? Then
it is easier to give you some advises.

Thanks,
Roman


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
#225 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants