Tech Talk: Bruce Snyder on Castor, TranQL, Geronimo, Maven

Discussions

News: Tech Talk: Bruce Snyder on Castor, TranQL, Geronimo, Maven

  1. Bruce Snyder, lead developer on Castor JDO and one of the founding developers of Geronimo, talks to TSS about Castor, its history and where it falls in the JDO space, the open-source application server Geronimo - and why it's not just an application server, an SDO-like open-source project called TranQL, Maven and why you'd use it, and what it's like to write a book.

    Watch Bruce Snyder on Castor, Geronimo, TranQL, Maven, and more.

    Threaded Messages (9)

  2. NOt Focusing on schema?[ Go to top ]

    Actually, XML beans is focused on schema, but they have more of a focus of covering the entire schema. They've got a different focus than we do. It is kind of like the whole Hibernate question that I get all the time. How do you feel about Hibernate, you've worked on Castor JDO so hard for so long and it is a complimentary thing, competition is good. I am really happy to see that there are competing objects. I think that is the way to really advance things is to have a little competitive spirit there, but they are more focussed on covering the entire schema whereas we are more focused on covering the things that people want and things that people are asking us for and making that more usable than just saying, we are going to cover the entire schema for the sake of covering schema. I am not saying one is better than the other, I am just saying the two different approaches.

    If you are going to implement XML to Java binding framework than make sure it fully supports XML schema.

    I really liked the Castors approach to binding but because ir cannot handle very simple and widespread use of XML attribute I switched to XMLBeans (ugly code but one of the best open source support for schema).

    Here is example:

    <sometag recordCount="91">somedata</sometag>
  3. NOt Focusing on schema?[ Go to top ]

    If you are going to implement XML to Java binding framework
    > than make sure it fully supports XML schema.

    My point was that Castor has always been focused on providing what the community wants.

    > I really liked the Castors approach to binding but because
    > ir cannot handle very simple and widespread use of XML
    > attribute I switched to XMLBeans (ugly code but one of the
    > best open source support for schema).
    >
    > Here is example:
    >
    > <sometag recordCount="91">somedata</sometag>

    I'm not quite sure what you mean that Castor does not support XML attributes. Please post a question to the Castor user mailing list so that this can be addressed appropriately.
  4. Where is the Maven book?[ Go to top ]

    Maven is going to 2.0 and we still don't have a book about it!

    Where's our writers?
  5. Where is the Maven book?[ Go to top ]

    Hi Mauricio,

    It's here: http://blogs.codehaus.org/people/vmassol/archives/001003_maven_book_and_maven_quiz.html

    It'll be in bookshops within 3 months. It's focusing on Maven 1.0 which will still continue to be used and supported for a few years to come... ;-) It has Maven 2 hints and explains whenever there's a behavior that is changed.

    Please also bear in mind that Maven 2.0 is currently in alpha1 only.

    Thanks
    -Vincent
  6. I thought the following quote was interesting:
    What is the future for Castor and Geronimo?
    'Beyond that we are looking at using Castor XML more, but as far as the work that we are currently doing we're not completely focused on that because we are working more on infrastructure. We are trying to meet the J2EE compliance first and get that done and later then we can work on lots of fun features,...'

    Fun features? I think what would really be fun would be a final (and working) version of Castor JDO. Its been .9x for what, 3-4 years now? Getting it finished would be nice, no?

    For that matter, why wasn't this issue raised? I think its reflective on the project as a whole that its in the state that its in - incomplete after so many years. Why was he apparently (according to the interview) the only one working on the project for the last several years? How long will it take to complete it? Is Castor JDO considered a success, a failure, or just unfinished?

    From my perspective this was a real fluff interview, if its going to discuss '...Castor, its history...' (as the posting indicates), doesn't something about why its not done and when it will be done seem relevant?

    And the point about the name, come on. My opinion: just rename the freaking thing, its so misrepresentful. The JDO spec was created and finalized by Sun and the rest of the Java industry as a persistent standard. It _doesn't matter_ if they decided to call it Castor JDO in the first place. Is it really that hard to understand that the market has moved forward, JDO is a standard, and calling the product Castor JDO is obviously confusing to everyone else?

    Meh, just consider me a bitter Castor JDO user. Word to the wise, don't use beta products in production systems.

    Mark

    PS. Bruce says:
    'On top of that, the Geronimo 1.0 release hopefully will be coming out some time next year. I would like to say early in the year, but it's hard to say'

    Uh, if history is any indication, that could mean an almost finished beta in about 2008. ;)
  7. I thought the following quote was interesting:What is the future for Castor and Geronimo?'Beyond that we are looking at using Castor XML more, but as far as the work that we are currently doing we're not completely focused on that because we are working more on infrastructure. We are trying to meet the J2EE compliance first and get that done and later then we can work on lots of fun features,...'Fun features? I think what would really be fun would be a final (and working) version of Castor JDO. Its been .9x for what, 3-4 years now? Getting it finished would be nice, no? For that matter, why wasn't this issue raised? I think its reflective on the project as a whole that its in the state that its in - incomplete after so many years.

    Community building was my focus when I was managing things by myself. That included helping others on the mailing lists, improving the docs and fixing bugs. Last year marked a big change for Castor as we have brought on four new committers for the JDO side. Unfortunately, now the shoe is on the other foot as we are in need of committers for the XML side.

    As far as the versioning is concerned, this is a hold back to the project's sponsorship by Exolab/Intalio. Now that the project is completely controlled by the active committers, things are changing rapidly. We're trying to tie up as many loose ends as possible as quickly as possible in a march toward a 1.0 release.
    Why was he apparently (according to the interview) the only one working on the project for the last several years? How long will it take to complete it? Is Castor JDO considered a success, a failure, or just unfinished?

    I was the only one who remained active on the JDO side for quite a while. The XML side still had two active developers who designed and implemented most of the XML side. Unfortunatley, this is what happens with some volunteer projects. Some people like to stand aside and complain while others would rather join together to accomplish something. IMO, Castor is just like any other on-going project - it's constantly improving and expanding its support.

    As for the rest of this reply, I'm not going to get into a flame war. I would much rather take a constructive approach to the comments and truly address them on the Castor mailing lists. Mark, I encourage you to please provide your feedback to the Castor team via the mailing lists so that we can continue to improve the project.
  8. Geronimo and J2EE[ Go to top ]

    Hi Bruce,

    I was very excited to learn about Geronimo, since we have build an API level container that looks just like what Geronimo is doing. The only thing we do not have is TP monitor for distributed transactions.

    One of the important things that we have achived is independance from the underlying container we run with (like WebSphere) but be able to delegate things to it without impact to the applications. Our container sort of melts into a industry standard container where apppropriate.

    It is very important to understand that even though it is nice to be able to make a decsision on what container to use, there are other issues then technology that drive that decsision.

    As now we would not be able to use Geronimo instead of the container we are using (WebSphere :( ) but if Geronimo could provide an API level container that can replace our home grown solution it would prove very usefull. What I am saying is the following for example:

    Lets say your container creates and manages ThreadPools. If component runs in a unit test you can start container as an API engine and provide this functionality, on the other hand if you are under commercial container creation of threads is dengerous, since commercial containers use ThreadLocal storage for security/txn/logging and other contexts, so under the commercial container you delegate Thread creation to the container and your program does not have to change. We have achived it for JAAS, WorkManagers, JCA and Logging. We can run our applications unchanged under Tomcat, WebSphere, J2EE Sun Server and JUNIT.

    I was wandering if we could converse with you in more details on this subject. As an Architect and designer of our system I would also love to participate in Geronimo project at some level if it is possible.
  9. Geronimo and J2EE[ Go to top ]

    The only thing we do not have is TP monitor for distributed transactions.

    If you have a need for this, then I encourage you to look at JOTM (http://jotm.objectweb.org/).
    One of the important things that we have achived is independance from the underlying container we run with (like WebSphere) but be able to delegate things to it without impact to the applications.

    This can usually be achieved through the use of interfaces rather than implementations and some basic patterns, no?
    Our container sort of melts into a industry standard container where apppropriate.It is very important to understand that even though it is nice to be able to make a decsision on what container to use, there are other issues then technology that drive that decsision.

    The point of Geronimo is that you can plug in whatever you want. By default, it reuses BSD-derived open source from the community, but this is easy to change via the XML configuration plans.
    As now we would not be able to use Geronimo instead of the container we are using (WebSphere :( ) but if Geronimo could provide an API level container that can replace our home grown solution it would prove very usefull. What I am saying is the following for example:Lets say your container creates and manages ThreadPools. If component runs in a unit test you can start container as an API engine and provide this functionality, on the other hand if you are under commercial container creation of threads is dengerous, since commercial containers use ThreadLocal storage for security/txn/logging and other contexts, so under the commercial container you delegate Thread creation to the container and your program does not have to change.

    So you're interested in the startup of the container via an API, is that correct?
    We have achived it for JAAS, WorkManagers, JCA and Logging. We can run our applications unchanged under Tomcat, WebSphere, J2EE Sun Server and JUNIT.I was wandering if we could converse with you in more details on this subject. As an Architect and designer of our system I would also love to participate in Geronimo project at some level if it is possible.

    Please, join us! We encourage anyone interested in Geronimo to join the mailing lists and get involved. Geronimo is a volunteer project and want to see your contributions and hear your feedback.
  10. Geronimo and J2EE[ Go to top ]

    Thank for your reply.

    Let me elaborate a bit about the "virtual container"

    A container is essentialy a service aggregator. Geronimo follows this service pattern as well I think. The J2EE services include logging, monitoring, management, connection management, ...

    The Geronimo container can provide this services and it is ok, however there are a lot of benefit to reuse containers that are contractualy obligated to provide certain level of support and quality (WAS). On the other hand once your application or application infrastructure starts to rely on features of specific container (I am not only talking about APIs but behavior as well, like pooling semantics for example) it is very difficult to move to another container without rethinking your overall algorithms, capacity plans and more.

    Currently that are no vertual container that would allow you to move from one commercial container to another without this changes. Meaning

    If you use JCA and need to configure connectors WebSphere does this in a different way from WebLogic, JBoss and Geronimo.

    It is sort of like evolution control, leaving application along while you evolve from feature to feature and from container to container.

    We have an in house solution that can handle this, but I would love to have it implemented somewehere in a more open source enviornment.

    Also, having container start from API and be able to run the container in a JUNIT test allows for more complete separation of Application implementations to Application runtime. If a consitent container can be used in Web, Shell, Batch,Thisck Client then much more robust reuse model can be put together.

    Your thoughts?