4 Replies Latest reply on Oct 7, 2009 1:19 PM by Ronald van Kuijk

    How can we contribute to development?

    sdfsd sdfsd Newbie

      I had a lot of problems with Jbpm and i wanted to make some code contributions or at least forward you some ideas/code changes. How can one do that?:

      Hiere is a short List with the Problems that i can remember:

      1. Timers are a mess. You can not set the duedate/duedatetime with a date!!! the api changes to do that are minimal...i can even tell you exactly where you should change
      2. how do you find the ProcessInstance when you have only the taskId???
      3. how do you search for processInstances with datavariables as filter?

      ..........

      is there a way to compile this thing and generate patches and than submit them?

        • 1. Re: How can we contribute to development?
          sdfsd sdfsd Newbie

          For the timer Problem a quick fix would be to change the Method setDueDateDescription in class TimerImpl like this:

          public void setDueDateDescription(String dueDateDescription) {
          
           ScriptManager scriptManager = EnvironmentDefaults.getScriptManager();
           Object dueDateEvaluated = scriptManager.evaluateExpression(dueDateDescription, null);
           if(dueDateEvaluated instanceof Date)
           {
           dueDate =dueDateEvaluated;
           return;
           }
           dueDateDescription = (String) dueDateEvaluated;
          
           Duration duration = new Duration(dueDateDescription);
           Date now = Clock.getCurrentTime();
          
          ...........................................
          }
          


          a better solution would be to add a dueDateTimeDefinition in TimerDefinitionImpl and in JobParser.parseTimerDefinition() just set the definition there. after that in ScopeInstanceImpl.createTimer() evaluate dueDateTimeDefinition and if the evaluation returns a Date just set it in dueDate otherwise pare dueDateTimeDefinition as a date String..like you do now in JobParser.parseTimerDefinition().


          • 2. Re: How can we contribute to development?
            Sebastian Schneider Master

            To discuss about the development of jBPM there is always the developer's forum. There you can propose things and discuss about new ideas. And then there is always the possibility to fill a JIRA issue (not a bug report but a feature request/proposal). But please be sure to check if a similar proposal or the same is already in the system. In this case you can add your comments to them. If you want to find out how to contribute read the sticky post in the development forum.

            http://www.jboss.org/index.html?module=bb&op=viewforum&f=219

            • 3. Re: How can we contribute to development?
              Sebastian Schneider Master

              Regarding your question nr. 2:

              Tasks have an attribute called executionId. AFAIK as I know you should be able to retrieve the execution by its Id via the ExecutionService by using findExecutionById(). As soon as you have the execution you should be able to retrieve the process instance.

              • 4. Re: How can we contribute to development?
                Ronald van Kuijk Master

                1: It's not only the "quick fix" in the source, it is also a testcase (multiple?), changes to the docs etc... If you file a jira issue, provide all these then we can incorporate it easier,contributions are welcome :-)
                3: http://www.jboss.org/index.html?module=bb&op=viewtopic&t=158610 has something about searching the jira.... you have not done this I assume. Look for issue JBPM-2505