[jboss-user] [JBoss Portal] - Re: JCR CMS Repository on distant machine

sohil.shah@jboss.com do-not-reply at jboss.com
Tue Jan 16 10:53:23 EST 2007

anonymous wrote : 
  | I guess : the JCR is base on JackRabbit and JMX service, so it must be possible to do it.
  | My question is : how, tricks, drawbacks etc.... 

This can be done by exposing the PortalCMS JMX service remotely

Try adding this to jboss-portal.sar/portal-cms.sar/META-INF/jboss-service.xml

  | <!-- Proxy factory for CMS  -->
  |    <mbean code="org.jboss.invocation.jrmp.server.JRMPProxyFactory"
  |       name="jboss.jmx:type=adaptor,name=RemoteCMS,protocol=jrmp,service=proxyFactory">
  |       <!-- Use the standard JRMPInvoker from conf/jboss-service.xxml -->
  |       <depends optional-attribute-name="InvokerName">jboss:service=invoker,type=jrmp</depends>
  |       <!-- The target MBean -->
  |       <depends optional-attribute-name="TargetName">portal:service=CMS</depends>
  |       <!-- Where to bind the proxy factory -->
  |       <attribute name="JndiName">RemoteCMS</attribute>
  |       <!-- Invoke target method instead of invoke(Invocation mi) -->
  |       <attribute name="InvokeTargetMethod">true</attribute>
  |       <!-- Comma-separated list of exported interfaces -->
  |       <attribute name="ExportedInterfaces">org.jboss.portal.cms.CMS</attribute>
  |       <!-- client-side interceptors -->
  |       <attribute name="ClientInterceptors">
  |           <interceptors>
  |              <interceptor>org.jboss.proxy.ClientMethodInterceptor</interceptor>
  |              <interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
  |              <interceptor>org.jboss.jmx.connector.invoker.client.InvokerAdaptorClientInterceptor</interceptor>
  |              <interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
  |           </interceptors>
  |       </attribute>
  |    </mbean> 

This will provide you a remote cms proxy on which you can execute CMS Commands that you can create via the CommandFactory.

For examples with how to use the CMS object look at our org.jboss.portal.core.portlet.cms.CMSPortlet and org.jboss.portal.core.portlet.cms.admin.CMSAdminPortlet source code

one possible drawback of this way to access the CMS service is the access will be treated as "Anonymous" access which could lead possible lead to Access issues with the newly integrated fine grained security in Portal 2.6 Alpha1 release

The PortalCMS service sits on top of JackRabbit (JCR Impl), and to get file based storage of content, you should just be able to configure one of the FileBasedPersistence Managers packaged with JackRabbit. By default, the PortalCMS uses a Hibernate based Peristence Manager which is optimized for performance using JBossCache.

We are also evaluating integration with Alfresco especially their JCR Impl as an alternative to JackRabbit JCR Impl.

Hope this helps


View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4002325#4002325

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4002325

More information about the jboss-user mailing list