8 Replies Latest reply on Jan 25, 2006 5:05 AM by koen.aers

    GPD 3x Development Ideas

    cgermano

      I have some ideas for the GPD that I would like to work on. Any thoughts would be appreciated in regards to procedure, eclipse hints :-P and functionality issues:

      From our point of view a business analyst needs to be able to create/edit workflow. Basic functionality is currently in GPD but some is not.

      - Decision right click properties on outline with handler and condition settings panel. At the most basic a place to specify a handler class and beanshell condition. Perhaps even another page that provides some kind of business logic without the beanshell based on a selected handler.

      For example if a variable money is set in one of the states and depending on if it's a certain amount or not it should follow the accept/reject transition. This should be able to be done without any beanshell code.

      - Node right click menu to access things under outline.

      Pretty general here. Delete, Properties panel access, etc.

      - Swimlane tagging should be shown on the nodes or tasks that have them.

      Is the reason why it is not right now because task-node tasks aren't visible as inidividual components in the diagram? For starters why aren't nodes allowed to have swimlanes? Is the reason because tasks are more role oriented than a plain node for processing?

      - Process State right click properties on outline with customization panel

      I've been talking with Tom, and he mentioned that I need to agree with the team on what I will work on in order to get CVS access. I've summarized above what I want to implement, and it's all within the GPD.

      btw where is this developers mailing list.. haven't found a link for it yet. I've got some swing experience, and I'm going over eclipse plugin development tutorials and GPD source code right now.

        • 1. Re: GPD 3x Development Ideas
          koen.aers

          Great!

          The functionalities you mention are in fact simple additions that are very near on the roadmap. Especially the node right click behaviour was planned to get implemented this or next week. I don't know where you are in the implementation of the features you mention, but it would be very annoying to do double work here. So I will keep you posted here on what I am currently working on.
          If you have a look at our open JIRA issues you will have an idea on the other tasks that are still to be done. I am looking forward to be working with you!

          Regards,
          Koen

          • 2. Re: GPD 3x Development Ideas
            koen.aers

            Btw here is the overview of the JIRA issues in relation to the GPD : http://jira.jboss.com/jira/IssueNavigator.jspa?reset=true&mode=hide&pid=10052&sorter/order=DESC&sorter/field=priority&resolutionIds=-1&component=10054
            Note that this is an unfinished list. Feel free to comment on any of the issues or to add some.
            I think for now, the two items that you can work on are the properties pages on the decision and/or process state nodes. Before we can accept your contributions, you will have to sign our contributor's agreement. You'll find the details here : http://labs.jboss.com/portal/index.html?ctrl:id=page.default.con&noproject=true. Also, keep me posted here on this forum on the work you do. Just post the code you write, along with some explanation under an appropriate topic.

            Regards,
            Koen

            • 3. Re: GPD 3x Development Ideas
              cgermano

              After going through Jira feature request list hre is what I have compiled.

              Decision node property sheet (handler and condition fields)

              GOAL: be able to set basic decision settings in a decision property panel such as a handler class and conditions.

              THOUGHTS: I'm hoping to make a generic handler with some kind of basic logical scripting system for the condition as well.
              For example a business analysist can write simple logic in the condition, select the handler class and it can figure itself out where to transition to.



              Swimlane shows on node/tasks
              GOAL: visible swimlane names on the nodes (tasks aren't visible on GPD..)

              THOUGHTS: We may want to graphically show tasks in nodes somehow and then next to them have swimlanes.


              Form editing (JBPM-135 forms editing)
              JSP Editor to generate form HTML docs or something simliar

              GOAL: be able to export a PAR with forms included to be deployable


              Packaged version (JBPM-127 create packaging strategy)
              GOAL: be able to do PAR creation export


              Future (prob somethind I want to see but not do myself :-P):

              Source XML, Property View -> Graphical View Updating (JBPM-211 Adapt property sheet according to context in xml tab.)
              GOAL: Be able to edit XML and have it update in the graph


              Like you mentioned, I would like to start working on the decision property page as that is at the top of our list here.

              I've looked at the code and I have a basic idea of how it works. It seems I may have to add methods in the Decision bean model so I can reference them from the property page. I'll have to play around with it a bit more.

              • 4. Re: GPD 3x Development Ideas
                cgermano

                I would like to add a JIRA ticket for the decision node panel stuff but I can't seem to find where todo that. Do I not have the rights with a regular jboss user account or am I missing where the link is?

                • 5. Re: GPD 3x Development Ideas
                  koen.aers

                  Hi Christopher,

                  Anyone can enter JIRA issues. You should simply logon with your jboss credentials and select the 'create issue' option.
                  In the meantime, the context menu on the graphical pane is implemented. A decision node property page for configuring scripts would be a great contribution as well as a property page for configuring the process of a process-state. If you would like to contribute this, please post the code changes you would like to make here or send them directly to me.
                  Note that the model part of the GPD does not contain the greatest code at the moment and is in need of a good old refactoring.
                  Now that I think of it. It would also be great if you (or anyone else) could work on the tests. There is a test plugin (module org.jbpm.ui.test) but until last week all tests in it were broken. Last week I implemented a new one, that essentially tests the creation wizard to create a new process project. That is the only test working at the moment and it can serve as an example. If you have a look at it, you will see that it involves quite a lot of work to write such tests. Nevertheless, as we become a real big piece of software, these tests can become invaluable as regression testing tools, so I want definitely put more energy in that. Again if you (or anyone else) feel tempted to have a look at it, please do. It will provide you also with major insight in the Eclipse platform.

                  Regards,
                  Koen

                  • 6. Re: GPD 3x Development Ideas
                    cgermano

                    Jira issue has been posted: http://jira.jboss.com/jira/browse/JBPM-516

                    Cool, I will check out CVS as soon as I can to see your work on the context menus.

                    I'll probably start coding issue 516 tomorrow assuming everything paperwork (contributor license) goes through here. I will either post the code here or email it to you when complete and then we can talk about CVS write/update access.

                    I mentioned the model because I was tracing the task node property sheet and noticed all method calls run off of the task bean model. While the decision bean model has nothing in it and would have to be expanded. I'm going to have to dig further to see how that is converted to XML on the fly but I'm assuming there are DOM calls somewhere in there.

                    In regards to the tests, i'll probably take a look but I doubt i'll be able to work on them. They definitly are important I agree to a project.

                    Questions:
                    - Which CVS are you running off right now? the one at sourceforge or jbosses? Can you give reply back with the connection string?

                    - I'm trying to think of a good way of easily allowing someone to setup decision logic without requiring them to edit a handler in the GPD. The perfect scenario would be a field I could pull in with the selected handler, parse and come up with a decision. Otherwise some kind of variable editor would be nice but I don't believe the jpdl schema has any ability for variable assigning except in the controllers. Any thoughts? Are condition fields accessible by the class handlers if specified in transitions?

                    • 7. Re: GPD 3x Development Ideas
                      cgermano

                      In regards to my last thought here's an idea:
                      may be cool to have a mini decision wizard that makes the beanshell code for the condition tags for each transition connected to the decision node.

                      So when you goto the propery sheet it will give you the condition fields for each transition currently connected and then you can click for a wizard. Condition fields are for beanshell expressions so the wizard can have some sort of selectable logic. type in variables (since they aren't in the workflow def), select conditions, add the rules and click save to fill in the beanshell code. In its basic form it is an if condition beanshell generator.

                      • 8. Re: GPD 3x Development Ideas
                        koen.aers

                        Christopher,

                        We use the JBoss repository since last wednesday. The connection string is :pserver:anonymous@anoncvs.forge.jboss.com:/cvsroot/jbpm.
                        Regarding the property pages you want to contribute. I would opt to implement it in the simplest way possible initially. There is always room to improve this later.

                        Regards,
                        Koen