1 2 Previous Next 27 Replies Latest reply on Aug 12, 2006 10:55 AM by kukeltje Go to original post
      • 15. Re: versioning and auto deployment of processes
        tom.baeyens

        i want to evaluate this further with the new hire. please bring us in touch once he joins or let me know his name.

        regards, tom.

        • 16. Re: versioning and auto deployment of processes
          weston.price

          His name is Weston Price :-)

          I agree with all the points Scott made regarding using JCA as an integrqation point for jBPM, at the very least, it bears worth looking into. I also want to add my 2 cents as far as some of the benefits:

          As Scott pointed out, JCA 1.5 allows for controlling work management aspects of a adapter and it's associated underlying resource. Futher, this work can actually be scheduled and handled in a variety of manners that can give us a bit more control in offloading some of the tasks associated with jBPM. It is our goal on the JCA team to make the work management stuff more configurable than it is today, so, using jBPM as the impetus for these types of features may be quite beneficial.

          If done properly, JCA (and again, Scott has pointed this out) allows for a standardized deployment format supported by all J2EE vendors. So, this avoids the MBean deployment mechanism that would otherwise pretty much tie us to JBoss.

          Inflow, inflow, inflow :-)

          Admin objects (also introduced in 1.5) allow for an objects that 'support' and adapter deployment to be easily deployed and managed along with the adatper proper which could, from what it sounds like from this thread, be a big win in configuring and managing the jBPM integration.

          Unfortunately, I am not that familar with jBPM as a project, however, I plan to take a couple of days to look at some of the internals. After this I could give a timeline on how much it would take to do the work.

          Agreeable with everyone?

          Regards,

          Weston

          • 17. Re: versioning and auto deployment of processes
            tom.baeyens

            One of the things I'm looking forward to is a standards based packaging.

            I still am in doubt on how much functionality should be transferred to JCA. Cause JCA is not available on all platforms that we target.

            Currently, the only thing that our MBean does is publishing a kind of service factory in JNDI.

            Weston, if you want some initial pointers for digging into jBPM, i would be happy to spend a half an hour chat or talk on it.

            • 18. Re: versioning and auto deployment of processes
              weston.price

              Hey Tom,
              That would be great, I am trying to crank out the rest of some deployment stuff today. How about tomorrow or Wendesday. I have started review the doc set up on the project site and I should probably take a bit more time with this so I can at least ask some semi-intelligent questions.

              IM, email, phone?

              Let me know what works for you and thanks for taking the time.

              Regards,

              Weston

              • 19. Re: versioning and auto deployment of processes
                weston.price

                Update:

                Tom and I had an extremely productive conversation this morning after the R&D call regarding the JCA solution for JBPM integration. The upshot of this is the following:

                JCA should provide *one* of the deployment/configuration solutions for JBPM and not be exclusive in this regard. Being that JBPM is designed to support multiple execution environments (ie non-managed, managed), JCA makes sense as a integration point into JBossAS.

                A JCA adapter will be developed to allow for this integration, first pass will focus on a proprietary API, second pass will encompass a CCI based implementation.

                Certain aspects of transaction synchronization are still be worked out in JBPM which will allow for XA and Local txn support in the adapter.

                All current implementation artifacts will go in HEAD under the connector project.

                A prototye of an aspectized JCA adapter will occur concurrently in the jboss-jca project.

                The JBPM project structure is being reworked, as a result, I can take this time to more fully understand the JBPM API, though the similarity to Hibernate, at least at the architecual level makes this ramp up time quite straightforward.

                Tom, if I missed anything, don't hesitate...

                Regards,

                Weston



                • 20. Re: versioning and auto deployment of processes
                  weston.price

                  Sorry, forgot to follow up on one thing that was brought up in this thread:

                  The *-ds.xml deployment mechanism is going to go through an overhaul shortly. While the basic mechanism will still be in place. A meta data model is currently in development (connector project) that will effectively generate a binding between the *-ds.xml file and a Java POJO's. The underlying binding framework is of course XB. Doing this has a few benefits

                  1) This new deployment scheme will allow for programmatic *-ds.xml deployments.

                  2) This refactoring should open up some new avenues in getting away from the *-ds.xml/XSLT stuff in general.

                  So, whether or no the *-ds.xml fits with the JBPM stuff, we have some leeway in working around this.

                  For those interested, current implementations of this type of binding can be found in org.jboss.resource.deployment, org.jboss.resource.deployment.metadata, org.jboss.resource.deployment.ds, and org.jboss.resource.deployment.ds.metadata.


                  Regards,

                  Weston

                  • 21. Re: versioning and auto deployment of processes
                    weston.price

                    Sounds like the restructuring of jBPM is done. I will start looking at JCA integration.

                    • 22. Re: versioning and auto deployment of processes
                      tom.baeyens

                      what is the use of publishing JbpmConfiguration in JNDI ?

                      that question came up after some more thought about JBPM/JCA integration.

                      I see 2 possible use cases:

                      1) many components like ejbs and webapps want to use the same JbpmConfiguration. In that case, put the jBPM library central (e.g. as a service archive or put jbpm in the lib directory) so that all the deployed artifacts can 'see' it.

                      2) components want to use their own version of jBPM. In that case, you need to put the jBPM jars in your dpeloyment package like an .ear or a .war.

                      In both of these cases, a simple singleton pattern could work, no ?

                      So i ask myself: What is the use of putting the JbpmConfiguration object in JNDI if i can just use 1 singleton pattern that works in a POJO environment as well as a enterprise environment.

                      • 23. Re: versioning and auto deployment of processes
                        kukeltje

                        uuuhhhmmm.... none? But my knowledge on some of these things (jca etc) is limited. Although the work done in the singleton is limited, could it in one way or another become a performance bottleneck?

                        • 24. Re: versioning and auto deployment of processes

                          Singletons are non-standard and can generally cause issues in J2EE environments, especially one (us) where the classloading architecture allows for varying deployments and configurations.

                          Further, let's say the client want to make some form of modification to the Singleton. Now you are, at best, tinkering with XML configuration files in the JBPM deployment jars/structure that are not dynamic, require you to redeploy. JNDI is the recommended repository for objects in the J2EE environment. My question would be why the reluctance to use it?

                          Of course, there would be nothing to prevent you from writing a singleton to use outside of the container. Or, as we discussed on IRC, in this case you couse use the JCA connection factory in a two tier, non-managed environment.


                          • 25. Re: versioning and auto deployment of processes
                            tom.baeyens

                            singletons are not allowed in ejbs. but i can't see a problem with a singleton in a class that is put in the classpath ? The JbpmConfiguration on itself is not a distributed object. There is one on every node of the cluster.

                            Indeed there are different classloading schemes. But what is the problem with using those ?

                            In the default jboss config, the UCL-stuff makes sure that the libs in a .sar are visible in the whole server. So putting the configuration files in a jar in that .sar will give you 1 jBPM instance for the whole server.

                            If you want to access 2 different jBPM DB's you need 2 configuration files in your .sar. The jbpm libs are shared. And when you request a JbpmConfiguration you can use the method getInstance(String resource) to get the instance for the desired configuration.

                            If you want to deploy 2 different versions of jbpm in separate classloaders, you need to deploy 2 .ears in separate classloading domains. each with their own configuration files.

                            don't see any problem with that.

                            the advantage is that i could use 1 strategy for a managed and non-managed environment. currently i am using 2 different strategies and i don't know why.

                            in fact, it turns out that i'm actually using the JbpmConfiguration singleton rather then the JbpmConfiguration in JNDI (i just noticed this recently)

                            • 26. Re: versioning and auto deployment of processes
                              kukeltje

                              Is the default behaviour still UCL? I thought that changed with 4.0.2. We should at least not depend on it, since it is JBoss AS specific

                              • 27. Re: versioning and auto deployment of processes
                                kukeltje

                                Any progress on this? Generating a hash is fairly simple with ant:

                                <target name="generate-checksum">
                                 <checksum algorithm="SHA1" todir="target/generated/hashes" totalproperty="archive-hash">
                                 <fileset dir="target/generated">
                                 <exclude name="**/hashes/**" />
                                 </fileset>
                                 <fileset dir="target/classes" />
                                 </checksum>
                                 <echo message="Archive-Hash: ${archive-hash}" file="target/generated/META-INF/archive-hash.sha1" />
                                 </target>



                                1 2 Previous Next