BT

InfoQ Homepage News Article: Integrating Java Content Repository and Spring

Article: Integrating Java Content Repository and Spring

Bookmarks
In this latest InfoQ article, Costin Leau provides a nice introduction to JSR 170 (Java Content Repositories) and how to integrate it with Spring Modules' JCR module, whose main objective is to simplify development with the JSR-170 API in a similar manner to that of the ORM package from the main Spring distribution.

Read  Integration Java Content Repository and Spring

According to the article, Springs JCR Module provides (summarized):
  • JcrTemplate which allows execution of JcrCallbackand exception handling (transforming checked JCR exceptions into unchecked Spring DAO exceptions).
  •  Session and can be easily used as a replacement. Moreover the template is aware of thread-bound sessions which can be used across several methods, functionality very useful when using a transactional repository.
  • RepositoryFactoryBean which configures, starts and stops the repository instances.
  • SessionFactory which unifies the Repository,Credentials and Workspace interfaces and allows automatic registration of listeners and custom namespaces.
  • Spring declarative transactional support for repositories that implement the (optional) transactional feature.
  • OpenSessionInView interceptor and filter which allow the usage of the same session per thread across different components. 
InfoQ.com's architecture is also built around JSR 170 with Apache Jackrabbit and also uses Spring Modules.

Rate this Article

Adoption
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • Nice article about JSR-170 Content Repository!

    by kishore madugula /

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Alfresco also very good one among those,as i used alfresco extensively,it also offers all levels support and spring,hibernate were integrated.From UI point of view it uses JSF so i suggest alfresco product while choosing among the JSR-170 Content repository implementations.

    Thanks,
    Kishore Madugula

  • InfoQ.com use of Apache JackRabbit

    by William Louth /

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Hi Floyd,

    Can you tell me how have you clustered JackRabbit? Do you use the new clustering capabilities? If not then how are things synchronized across nodes within the cluster.

    Also do you use a transactional back-end storage for the content repository and if so how have you and your team overcome the apparent lack of transactional integrity inherent in the design and implementation? Transaction chopping via component-resource partitioning (no sharing), chaining of execution units across threads, incorrect transaction patterns such as writes without reads (lost updates),....

    kind regards,

    William

  • Re: Nice article about JSR-170 Content Repository!

    by William Louth /

    Your message is awaiting moderation. Thank you for participating in the discussion.

    The problem I have with Alfresco is that it is a product that happens to use its own JCR implementation for content management. It is not a JCR implementation that one could easily integrate and embed within an existing application. The last time I looked you could not even create a repository object without first creating a explicit static code dependency on Spring - you needed to access the repository via an application context. It all seems so dependent on the product packaging and deployment (web application).

    regards, William

  • Re: InfoQ.com use of Apache JackRabbit

    by William Louth /

    Your message is awaiting moderation. Thank you for participating in the discussion.

    The following blog entries are all based on transactional analysis work I recently performed for a customer that was having repository corruption issues in the pre-production phase of a project based on JackRabbit.

    Transaction Integrity Inspections
    blog.jinspired.com/?p=37

    More Transaction Integrity Inspections
    blog.jinspired.com/?p=39

    Concurrent Transactional Access
    blog.jinspired.com/?p=40

    regards, William

  • importFile sample

    by Paul Russo /

    Your message is awaiting moderation. Thank you for participating in the discussion.

    In the importFile springify sample, I think this line
    return (Node) execute(new JcrCallback() {
    should be
    return (Node) template.execute(new JcrCallback() {

    Correct me if I'm wrong.

    Thanks,
    Paul.

  • global.re importFile sample

    by Alex Popescu /

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Yes, you are right Paul. Thanks for the correction.

    ./alex
    --
    :Architect of InfoQ.com:
    .w( the_mindstorm )p.
    C4Media/InfoQ Co-Founder

  • Excellent JSR-170 overview!

    by Jennifer Kline /

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Thanks so much for this article! I had to do some research for my development group and your piece was a great summary that covered a lot of material.

    The world needs more articles like this! Thanks!

  • Remote Storage

    by anand mahajan /

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Hi,
    Can u tell me how i can store contents on Remote machine.
    I will install application on one machine and store files on other machine. There will be firewall between both machine.

    Please help me.
    Thanks, in advance.
    -Andy

  • Re: Remote Storage

    by Konrad Pawlus /

    Your message is awaiting moderation. Thank you for participating in the discussion.


    Can u tell me how i can store contents on Remote machine.


    Try:

    <bean id="repository" class="org.apache.jackrabbit.rmi.repository.URLRemoteRepository">
    <constructor-arg value="http://localhost:8180/jackrabbit-webapp-1.5.5/rmi"/>
    </bean>


    and run Jackrabbit in Tomcat on this remote machine.

  • JCR module migrated to Spring Extension JCR

    by Salvatore Incandela /

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Hi guys, I'm the "Spring Extension JCR" committer.
    I would announce to you that the original JCR Module was migrated to the new Spring Extension infrastructure. I've recently released a new version of this module currently 0.9!
    Below some useful links:
    salvatoreincandela.blogspot.com/
    forum.springsource.org/forumdisplay.php?f=65

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

BT

Is your profile up-to-date? Please take a moment to review and update.

Note: If updating/changing your email, a validation request will be sent

Company name:
Company role:
Company size:
Country/Zone:
State/Province/Region:
You will be sent an email to validate the new email address. This pop-up will close itself in a few moments.