0 Replies Latest reply on Aug 9, 2011 5:21 PM by Agnaldo Oliveira

    How to create pages, dashboards and navigation programmatically?

    Agnaldo Oliveira Newbie

      Hello everyone,

      I need two things:

      1. I need to create a default dashboard for my users. it must be created during the start of the gatein, I developed an integration with the gatein, I can use the api organization, but I can not use the mop api to create my pages, navigation and dashboard.

      I need it because every database installation on a clean setting I have to stay in the hand, this is bad.


      2. I need to know how to understand the basis of the jcr gatein to make the modifications mentioned above.



      I can already access the repository with this code:


      import javax.jcr.Node;

      import javax.jcr.NodeIterator;

      import javax.jcr.Session;



      import org.exoplatform.container.ExoContainer;

      import org.exoplatform.container.PortalContainer;

      import org.exoplatform.services.jcr.RepositoryService;

      import org.exoplatform.services.jcr.core.CredentialsImpl;



      public class JCRWrapper {



                public JCRWrapper() {}


                public void executeJCR() throws Exception {

                          PortalContainer container = PortalContainer.getInstance();

                          Session jcrSession = buildSession(container);

                          Node node = getRootNodeFormJCR(jcrSession).getNode("production");


                          System.out.println("name: "+node.getName());

                          System.out.println("path: "+node.getPath());

                          NodeIterator nodeIterator = node.getNodes();

                          while (nodeIterator.hasNext()) {

                                    Node child = nodeIterator.nextNode();


                                    System.out.println("child name: "+child.getName());

                                    System.out.println("child path: "+child.getPath());







                private Node getRootNodeFormJCR(Session jcrSession) throws Exception {

                          return jcrSession.getRootNode();



                private Session buildSession(ExoContainer container) throws Exception {

                          RepositoryService repositoryService = (RepositoryService) container.getComponentInstanceOfType(RepositoryService.class);

                          Session jcrSession = repositoryService.getDefaultRepository().login(new CredentialsImpl("root", "gtn".toCharArray()),"portal-system");

                          return jcrSession;




      Maven dependencies:






















      Now I need to create the pages, navigations, dashboards and portlets using the gadgets.

      someone can help me, thank you