6 Replies Latest reply on Jul 3, 2008 6:28 AM by jesper.pedersen

    The JBoss JCA container project

    jesper.pedersen

      The goal of the JBoss JCA container project is to provide a Plain Old Java Object (POJO) implementation of the Java Connector Architecture (JCA) specification.

      The implementation is built on top of the JBoss Microcontainer and implemented in Java 5.

      Overview

      The implementation should be separated into different modules, so each module can be released separately or in certified bundles.

      Current module list

      JCA / Core
      JCA / JDBC
      JCA / JMS
      JCA / Mail
      JCA / Timer (Quartz)


      Requirements

      The new implementation will provide the JBoss projects with:


      Core implementation based on POJO / microcontainer

      JCA 1.5 profile
      JCA 1.6 profile
      JCA 1.0 profile
      Connection manager
      Work manager
      Deployers
      Meta-data handling and repository
      SPI implementation


      Separate sub-projects

      JDBC
      JMS
      Mail
      Timer


      Test-suite for each module (self-contained)
      Performance-suite for each module (self-contained)
      Management for each module
      Statistics for each module (f.ex. avg wait-time for JDBC connection)
      Integration with the JBoss Application Server


      Starting points

      The proof-of-concept implementation or first order of business will of course be the JCA 1.5 profile.

      Adrian and Vicky has provided a starting point in the jboss-jca project which we should investigate and there are many JIRAs that describes various ideas for each of the modules for this new implementation.

      JIRA and SVN information will follow.

      The main wiki page is located at http://wiki.jboss.org/wiki/JBossJCA_POJO

      Feel free to share ideas, comments or feedback on this project.

        • 1. Re: The JBoss JCA container project
          jesper.pedersen

          I've looked the jboss-jca project and really like the ideas that have been implemented.

          So I think that we should use the ideas presented in our implementation - e.g. MC + AOP.

          This also fit well with the ideas that Adrian have logged in JIRA.

          So for the next steps I would like to do:

          * Move the current code-base to a branch, so we keep it around and can pull in features we need.
          * Setup development environment based on Ant and Ivy
          * Create a project in JIRA with the different components (core, jdbc, ...) registered

          Once this is done we can start building the new implementation using the power of the MC.

          Feel free to send your feedback on using the MC + AOP as the foundation and Ant+Ivy as the development environment.

          • 2. Re: The JBoss JCA container project
            jeffzhang

            Here is my +1 :)

            • 3. Re: The JBoss JCA container project

               

              "jesper.pedersen" wrote:
              Ant+Ivy as the development environment.


              Can't you just use Maven? It's not perfect, but it works when you know
              once you get used to it and avoid the pitfalls.

              * I don't want to learn another build system unless I have to
              * I don't want yet another repostiroy on my disk, I've got enough copies
              of thirdparty jars as it is :-)
              * Everybody else is moving to Maven

              • 4. Re: The JBoss JCA container project
                vickyk

                 

                "adrian@jboss.org" wrote:
                Can't you just use Maven? It's not perfect, but it works when you know
                once you get used to it and avoid the pitfalls.

                It is better to try new *perfect* tool ;) , it may be Ive .


                • 5. Re: The JBoss JCA container project

                   

                  "vickyk" wrote:
                  "adrian@jboss.org" wrote:
                  Can't you just use Maven? It's not perfect, but it works when you know
                  once you get used to it and avoid the pitfalls.

                  It is better to try new *perfect* tool ;) , it may be Ive .


                  In no way is "ant" perfect. Its just programming/scripting in xml (yuck!).

                  It only looks good against maven because maven has a larger learning curve
                  and it is more buggy.

                  As I've said in the past, "Maven is a nice idea poorly implemented".
                  Equally I could say ant is a bad idea implemented well. ;-)

                  • 6. Re: The JBoss JCA container project
                    jesper.pedersen

                    Well, the reason I suggested Ivy for dependency management was that I know that Carlo and Andy have problems with Maven in the EJB3 project. The dependency management in Maven is going to be reimplemented in Maven-2.1 - I don't like the sound of that.

                    With this project being integrated into multiple branches of other projects dependency management is important in both directions.

                    Like you said Ant is a bad idea implemented well, and Ivy have an almost 100% focus on dependency management and integrates with Maven repositories.

                    I'm not married to the idea -- we can switch if we run into problems -- but the overall concept of Ivy sounds like it will solve the problems that Ant based build environments has. Well, not the overall programming/scripting in XML stuff ;)

                    I'll setup a project on my machine and test the integration with the JBoss Maven repository, so we don't end up with multiple repositories on our disks.

                    Thanks for your feedback, guys !