Announcement Announcement Module
Collapse

Spring Modules forum decommissioned in favor of Spring Extensions

As the Spring Modules project has been replaced by the Spring Extensions (http://www.springsource.org/extensions) project, this forum has been decommissioned in favour of Spring Extensions one at:
http://forum.springsource.org/forumdisplay.php?f=44

Please see the Spring Extensions home page for a complete list of current projects in Java, .NET and ActionScript. You can also propose one if you want.

Cheers,
Costin Leau
SpringSource - http://www.SpringSource.com- Spring Training, Consulting, and Support - "From the Source"
http://twitter.com/costinl
See more
See less
Spring CMS Integration Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Spring CMS Integration

    I have the need to tie in a content management system into my Spring/Hibernate/Acegi application and am curious to know what open source CMS packages integrate well with Spring. My application will provide auto-generated content as well as give the user the ability to manage content they push to the CMS. I would like the CMS to fully integrate with my application and will need to manipulate the CMS 'skin' so I can incorporate my own navigation and event items.

    I looked at JNuke but it appears to be a bit unstable. I have looked at Alfresco but it appears to be too full featured and perhaps difficult to integrate. I have also started to consider moving my application from Tomcat to JBoss for the JBoss portal functionality. Finally, I have also started looking at the Spring Modules Jackrabbit integration as a possible CMS solution.

    What have folks done with respect to CMS solutions that integrate well with Spring? Ideally, I would not like to roll my own CMS solution and rather would want to integrate my Spring app with a well proven CMS solution.

    Thoughts, comments.

    Thank you in advance for your assistance.
    -Derrick

  • #2
    I can recommend AtLeap.
    I have used it for very big project and was really happy.
    It is based on appfuse, so, it has Spring, Hibernate, Acegi and all those nice stuff incorporated.

    Regards
    Milan

    Comment


    • #3
      Thank you for the suggestion. I was looking at Alfresco as a possibility and it appears their SDK is a real possibility.

      Blandware AtLeap is nice solution.

      Comment


      • #4
        upon closer inspection ... AtLeap isn't going to cut it.

        Any other cool ideas???

        Comment


        • #5
          I would suggest Alfresco - I haven't work it closely but overall their documentation and product seems to be solid. Also, it's totally opened and uses Spring internally so integration is really no issue.
          They provide a JSR-170 connector along with a native API and IIRC, you also have other means to talk with it.
          It works on literally any database supported by Hibernate and their documentation is satisfactory at least plus they have a friendly license.
          Give the SDK a try and see how it goes.

          Comment


          • #6
            I looked at Alfresco is some detail and spoke to a sales rep to establish what an OEM license would look like (I want to integrate it as a unit into our application and since they have a GPL I need OEM to get around this). The cost of the OEM was about 20k USD/yr!

            I have since decided to implement the JCR using the Spring Modules and put my content into my own repository.

            Now, I have to sort out how to get the Spring Modules JCR to be properly wired with Jackrabbit.

            If anyone has wired up the JCR with Jackrabbit, I would be curious to know your experience.. tips/tricks/etc....

            Thanks.

            Comment


            • #7
              The cost of the OEM was about 20k USD/yr!
              Ouch...

              Now, I have to sort out how to get the Spring Modules JCR to be properly wired with Jackrabbit.
              Have you looked at https://springmodules.dev.java.net/d...html/jcr.html? You also have a sample inside the distribution with local and global transactions on top of JR.
              Moreover, you might want to take a look at this article: http://www.infoq.com/articles/spring-modules-jcr

              Comment


              • #8
                Thanks Costin! I will check those references.

                Comment


                • #9
                  OK, I have the JCR wirings in place and while trying to start the web application in Tomcat 5.5 I am getting the following exception:

                  java.lang.NoClassDefFoundError: org/apache/jackrabbit/BaseException


                  In my WEB-INF/lib dir I have the resources:
                  jackrabbit-core-1.2.2.jar and spring-modules-jcr.jar (from the Spring Modules 0.8 download.

                  I have the a jcr-spring.xml file with the wirings:
                  <bean id="jcrSessionFactory" class="org.springmodules.jcr.JcrSessionFactory">
                  <property name="repository" ref="jcrRepository"/>
                  <property name="credentials">
                  <bean class="javax.jcr.SimpleCredentials">
                  <constructor-arg index="0" value="bogus"/>
                  <!-- create the credentials using a bean factory -->
                  <constructor-arg index="1">
                  <bean factory-bean="password" factory-method="toCharArray"/>
                  </constructor-arg>
                  </bean>
                  </property>
                  <property name="namespaces">
                  <props>
                  <prop key="maas">http://criticalmaas.tricision.com/jcr</prop>
                  </props>
                  </property>
                  </bean>

                  <!-- create the password to return it as a char[] -->
                  <bean id="password" class="java.lang.String">
                  <constructor-arg index="0" value="pass"/>
                  </bean>

                  <!-- transaction management on the JCR session -->
                  <bean id="jcrTransactionManager" class="org.springmodules.jcr.jackrabbit.LocalTrans actionManager">
                  <property name="sessionFactory" ref="jcrSessionFactory"/>
                  </bean>

                  <!-- transaction proxy for Jcr services/facades -->
                  <bean id="txProxyTemplate" abstract="true" class="org.springframework.transaction.interceptor .TransactionProxyFactoryBean">
                  <property name="proxyTargetClass" value="true"/>
                  <property name="transactionManager" ref="jcrTransactionManager"/>
                  <property name="transactionAttributes">
                  <props>
                  <prop key="save*">PROPAGATION_REQUIRED</prop>
                  <prop key="*">PROPAGATION_REQUIRED, readOnly</prop>
                  </props>
                  </property>
                  </bean>

                  <!-- IOC template access to the JCR -->
                  <bean id="jcrTemplate" class="org.springmodules.jcr.JcrTemplate">
                  <property name="sessionFactory" ref="jcrSessionFactory"/>
                  <property name="allowCreate" value="true"/>
                  </bean>

                  <!-- configuring the default repository -->
                  <bean id="jcrRepository" class="org.springmodules.jcr.jackrabbit.Repository FactoryBean" destroy-method="shutdown">
                  <!-- normal factory beans params -->
                  <property name="configuration" value="classpath:jackrabbit-repo.xml"/>
                  <property name="homeDir" value="/home/dkittler/workspace/MAAS_APP/web/repo"/>
                  </bean>

                  </beans>

                  and the jackrabbit-repo.xml file ...
                  <?xml version="1.0" encoding="ISO-8859-1"?>
                  <Repository>
                  <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFi leSystem">
                  <param name="path" value="${rep.home}/repository"/>
                  </FileSystem>
                  <Security appName="Jackrabbit">
                  <AccessManager class="org.apache.jackrabbit.core.security.SimpleA ccessManager"/>
                  <LoginModule class="org.apache.jackrabbit.core.security.SimpleL oginModule"/>
                  </Security>

                  <Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default" />
                  <Workspace name="${wsp.name}">
                  <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFi leSystem">
                  <param name="path" value="${wsp.home}"/>
                  </FileSystem>
                  <PersistenceManager class="org.apache.jackrabbit.core.state.xml.XMLPer sistenceManager" />
                  <!--
                  <SearchIndex class="org.apache.jackrabbit.core.query.lucene.Sea rchIndex">
                  <param name="path" value="${wsp.home}/index"/>
                  </SearchIndex>
                  -->
                  </Workspace>
                  <Versioning rootPath="${rep.home}/versions">
                  <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFi leSystem">
                  <param name="path" value="${rep.home}/versions"/>
                  </FileSystem>
                  <PersistenceManager class="org.apache.jackrabbit.core.state.xml.XMLPer sistenceManager" />
                  </Versioning>

                  </Repository>

                  When I look in the Jackrabbit JAR files for the BaseException class I cannot find it. It is not in the 'core' JAR and I cannot find it in the other Jackrabbit JAR files. This exception is getting thrown when trying to create the repository.

                  Thanks in advance for your help.
                  -Derrick


                  UPDATE .... BaseException is in jackrabbit-jcr-commons-1.2.2.jar
                  Last edited by derrickhackman; Mar 14th, 2007, 10:53 AM.

                  Comment


                  • #10
                    I've been using JackRabbit + spring modules + spring + acegi. It all works together nicely.

                    Comment


                    • #11
                      Originally posted by Harvey View Post
                      I've been using JackRabbit + spring modules + spring + acegi. It all works together nicely.
                      Might you be able to provide details to your jackrabbit integration or what support documentation you used to get it going?

                      Regards,
                      P

                      Comment


                      • #12
                        How to integrate jackrabbit with a existing spring web application

                        Hi ,

                        I am new to Apache jackrabbit. Currently i have a spring web application using the acegi for authentication using LDAP.

                        I want to add a content repository to my web application to store user attachments like images, word documents etc.

                        I am so confused to, where i need to start?
                        There is samples available as a starting point to integrate apache jackrabbit.

                        How to display the uploaded images from the jackrabbit.

                        What are changes i need to make my current spring web application to work with jackrabbit.

                        Please help me

                        Comment


                        • #13
                          What's the latest thinking on Spring-CMS Integration? This was last discussed on this thread >2 years ago, when Jackrabbit was suggested. I have a similar requirement to the OP to provide simple CM of a Spring web app. But Jackrabbit seems too complex, and moreover would provide just the repository, not the CMS, as I understand it. I would have thought this was a very common requirement so I can't quite believe everyone is reinventing the wheel each time.

                          Comment


                          • #14
                            I am biased but the Blossom module (just released 1.0) for Magnolia CMS is possibly the best Spring & CMS integration on the planet. It is written by a Spring enthusiast and from a Spring perspective, not from a Magnolia perspective, which should allow Spring developers to feel right at home.

                            From the Blossom docs:
                            Magnolia Blossom is a spring integration module for Magnolia. It seamlessly exposes Spring Web MVC-controllers as paragraphs and templates and it lets you build dialogs using code instead of configuration. You can leverage the full power of the spring framework while still working within magnolia as a first-class citizen. The API is based on annotations, exposing a controller as a template is no harder than adding @Template

                            And if you haven't heard from Magnolia CMS:
                            Magnolia powers the websites of government as well as leading Fortune 500 enterprises in more than 100 countries on all continents of the world. It is a leading Content Management System favored for its ease-of-use and availability under an Open Source license. The page editing interface enables authors to lay out content exactly as it would appear to the website visitor. Under the hood, Magnolia contains best-of-breed Java technology based on open standards to allow for tailor-made solutions. Enterprise-grade support and services are available by the vendor and partners world-wide.
                            More on Magnolia: http://www.magnolia-cms.com/home.html
                            and Blossom: http://wiki.magnolia-cms.com/display...gnolia+Blossom

                            Comment

                            Working...
                            X