[jboss-user] [JBoss Portal Users] - Re: Creating Portal Pages Dynamically using Jboss Portal API
TomHombergs
do-not-reply at jboss.com
Fri Aug 28 04:50:12 EDT 2009
We used the JBoss Portal API to create pages dynamically. I figured out how to do it by downloading the JBoss Portal source and reverse-engineering the admin-portlets :).
You will need to access the PortalObjectContainer MBean to create pages and add portlets to those pages. Here are some snippets (out-of-context, though):
| // creating a page (parent page must exist)
| PortalObjectPath portalPath = new PortalObjectPath(pathToParentPage, PortalObjectPath.CANONICAL_FORMAT);
| PortalObjectId id = new PortalObjectId("", portalPath);
| PortalObject object = getPortalObjectContainer().getObject(id);
| PageContainer parent = (PageContainer) object;
| Page page = parent.createPage("My Page");
|
| // adding an instance of MyPortlet (instance must be created beforehand)
| Window window = page.createWindow("MyPortletWindow", ContentType.PORTLET, "MyPortletInstance");
|
The PortalObjectContainer can only be accessed through a JTA transaction, if you want to use it outside of a portlet (this code would be in the method getPortalObjectContainer()):
| TransactionManager tm = null;
| try {
| InitialContext ic = new InitialContext();
| tm = (TransactionManager) ic.lookup("java:/TransactionManager");
| tm.setTransactionTimeout(600);
| } catch (NamingException e) {
| throw new RuntimeException("TransactionManager konnte nicht erzeugt werden!", e);
| }
| tm.begin();
| try {
| MBeanServer mbeanServer = MBeanServerLocator.locateJBoss();
| PortalObjectContainer container = (PortalObjectContainer) MBeanProxy.get(PortalObjectContainer.class, new ObjectName("portal:container=PortalObject"), mbeanServer);
| return container;
| } finally {
| tm.commit();
| logger.trace("...beende JTA-Transaktion.");
| }
|
Hope this helps. Looking at the source of the JBoss Portal Admin-Portlets helped me a great deal!
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4252225#4252225
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4252225
More information about the jboss-user
mailing list