You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by ra...@apache.org on 2001/06/04 19:41:50 UTC

cvs commit: jakarta-jetspeed/src/java/org/apache/jetspeed/portal/service JetspeedPersistenceService.java PersistenceServiceImpl.java

raphael     01/06/04 10:41:50

  Modified:    src/java/org/apache/jetspeed/portal/service
                        JetspeedPersistenceService.java
                        PersistenceServiceImpl.java
  Log:
  update the Persistence services to work with the new PSML and Portal
  services
  
  Revision  Changes    Path
  1.7       +26 -99    jakarta-jetspeed/src/java/org/apache/jetspeed/portal/service/JetspeedPersistenceService.java
  
  Index: JetspeedPersistenceService.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/portal/service/JetspeedPersistenceService.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- JetspeedPersistenceService.java	2001/05/31 17:11:14	1.6
  +++ JetspeedPersistenceService.java	2001/06/04 17:41:47	1.7
  @@ -58,69 +58,48 @@
   import java.util.Vector;
   import java.util.Hashtable;
   
  -import javax.servlet.http.*;
  -
   import org.apache.turbine.util.RunData;
   import org.apache.turbine.util.Log;
  -import org.apache.jetspeed.capability.CapabilityMap;
  -import org.apache.jetspeed.capability.CapabilityMapFactory;
  -import org.apache.jetspeed.portal.factory.PortletSetFactory;
   import org.apache.jetspeed.portal.Portlet;
  -import org.apache.jetspeed.services.Profiler;
  -import org.apache.jetspeed.om.profile.*;
  -
  -import org.apache.jetspeed.util.MimeType;
  -import org.apache.jetspeed.xml.api.portletmarkup.*;
  -
  -import org.apache.jetspeed.util.PSMLManager;
  +import org.apache.jetspeed.services.PsmlManager;
  +import org.apache.jetspeed.services.rundata.JetspeedRunData;
  +import org.apache.jetspeed.om.profile.Profile;
  +import org.apache.jetspeed.om.profile.PSMLDocument;
  +import org.apache.jetspeed.xml.api.portletmarkup.Entry;
  +import org.apache.jetspeed.xml.api.portletmarkup.Parameter;
   
   public class JetspeedPersistenceService implements PersistenceService
   {
      private final static String NAME = "Jetspeed Persistence Service 1.0";
   
  -    private RunData iRunData;
  +    private JetspeedRunData iRunData;
   
       private Vector iPages = new Vector ();
   
       public void init (RunData aRunData, Object [] aParams) throws ServiceException
       {
  -        iRunData = aRunData;
  +        iRunData = (JetspeedRunData)aRunData;
   
            if (aParams.length == 0)
  +         {
                throw (new ServiceException ("Portlet reference as parameter 0 expected"));
  +         }
   
  -       String portletName = ((Portlet) aParams [0]).getName ();
  +        String portletName = ((Portlet) aParams [0]).getName ();
   
           // FIX ME
           // we urgently need a "what pages does a user have" method
           // for now we just assume it's those two only
  -        try
  -        {
  -            Profile profile = Profiler.getSessionProfile(aRunData);
  -            loadPage(portletName, profile);
  -        }
  -        catch (ProfileException ex)
  -        {
  -            throw new ServiceException("Persistence Service failed init: " + ex.toString());
  -        }
  -        // dst: loadPage (iProfiler.getUserURL (aRunData.getUser ().getUserName (), MimeType.HTML), portletName);
  -        // dst: loadPage (iProfiler.getUserURL (aRunData.getUser ().getUserName (), MimeType.WML), portletName);
  +        loadPage(portletName, iRunData.getProfile());
       }
   
       public void init (RunData aRunData, String param) throws ServiceException
       {
  -        iRunData = aRunData;
  +        iRunData = (JetspeedRunData)aRunData;
   
  -       String portletName = param;
  -       try
  -       {
  -            Profile profile = Profiler.getSessionProfile(aRunData);
  -            loadPage(portletName, profile);
  -        }
  -        catch (ProfileException ex)
  -        {
  -            throw new ServiceException("Persistence Service failed init: " + ex.toString());
  -        }
  +        String portletName = param;
  +    
  +        loadPage(portletName, iRunData.getProfile());
   
       }
   
  @@ -193,15 +172,7 @@
           Page page = null;
           String pageName = null;
   
  -        try
  -        {
  -            Profile profile = Profiler.getSessionProfile(iRunData);
  -            pageName = profile.getURL();
  -        }
  -        catch (ProfileException ex)
  -        {
  -            Log.error(ex);
  -        }
  +        pageName = iRunData.getProfile().getURL();
   
           for (Enumeration e = getPages (); e.hasMoreElements (); )
           {
  @@ -240,20 +211,12 @@
           return (iPages.elements ());
       }
   
  -
  -
       private void loadPage (String aPortletName, Profile profile)
       {
           String pageName = profile.getURL();
  -        PortletSetFactory factory = profile.getFactory();
  -        // a tree of portlets is held by the portlet set factory
  -
  -        Portlets portlets = factory.getPortlets ();
   
  -        // find the portlet within the tree
  +        Entry entry = profile.getDocument().getEntry(aPortletName);
   
  -        Entry entry = findEntry (portlets, aPortletName);
  -
           if (entry != null)
           {
               String pid = aPortletName + "." + pageName;
  @@ -261,7 +224,7 @@
   
               if (page == null)
               {
  -                page = new Page (pageName, portlets, entry);
  +                page = new Page (profile.getDocument(), entry);
                   iRunData.getUser().setTemp(pid, page);
               }
   
  @@ -269,55 +232,18 @@
           }
       }
   
  -    /**
  -     ** Traverses the portlets tree to find the one with the given name.
  -     ** Problem is: because of the lookup by name, no portlet can exist
  -     ** twice on any given page.
  -     **/
  -
  -    private Entry findEntry (Portlets aPortlets, String aPortletName)
  -    {
  -        Entry entry = null;
  -
  -        for (Enumeration e1 = aPortlets.enumerateEntry (); e1.hasMoreElements (); )
  -        {
  -            entry = (Entry) e1.nextElement ();
  -
  -            if (entry.getParent ().equals (aPortletName))
  -                 return (entry);
  -        }
  -
  -        entry = null;
  -
  -        for (Enumeration e2 = aPortlets.enumeratePortlets (); e2.hasMoreElements (); )
  -        {
  -            Portlets portlets = (Portlets) e2.nextElement ();
  -
  -            entry = findEntry (portlets, aPortletName);
  -
  -            if (entry != null)
  -                 break;
  -        }
  -
  -        return (entry);
  -    }
  -
       private static class Page implements PersistenceService.Page
       {
  -        private String iName;
  -
  -        private Portlets iPortlets;
  +        private PSMLDocument iDocument;
   
           private Entry iEntry;
   
           private Hashtable iAttributes = new Hashtable ();
   
  -        private Page (String aName, Portlets aPortlets, Entry aEntry)
  +        private Page (PSMLDocument aDocument, Entry aEntry)
           {
  -            iName = aName;
  +            iDocument = aDocument;
   
  -            iPortlets = aPortlets;
  -
               iEntry = aEntry;
   
               reset ();
  @@ -325,7 +251,7 @@
   
           public String getName ()
           {
  -            return (iName);
  +            return (iDocument.getName());
           }
   
           public String getAttribute (String aName)
  @@ -423,9 +349,10 @@
               }
   
               // now save it -- again, the page name == the file name is assumed
  -            if (! PSMLManager.setPSMLContent (aRunData, iName, iPortlets))
  +            if (! PsmlManager.saveDocument(iDocument))
  +            {
                  reset ();
  +            }
           }
  -
       }
   }
  
  
  
  1.6       +12 -51    jakarta-jetspeed/src/java/org/apache/jetspeed/portal/service/PersistenceServiceImpl.java
  
  Index: PersistenceServiceImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/portal/service/PersistenceServiceImpl.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- PersistenceServiceImpl.java	2001/03/07 06:48:02	1.5
  +++ PersistenceServiceImpl.java	2001/06/04 17:41:48	1.6
  @@ -63,13 +63,13 @@
   import org.apache.turbine.util.RunData;
   import org.apache.jetspeed.capability.CapabilityMap;
   import org.apache.jetspeed.capability.CapabilityMapFactory;
  -import org.apache.jetspeed.portal.factory.PortletSetFactory;
   import org.apache.jetspeed.portal.Portlet;
   import org.apache.jetspeed.profiler.*;
   import org.apache.jetspeed.util.MimeType;
   import org.apache.jetspeed.xml.api.portletmarkup.*;
   
  -import org.apache.jetspeed.util.PSMLManager;
  +import org.apache.jetspeed.services.PsmlManager;
  +import org.apache.jetspeed.om.profile.PSMLDocument;
   
   public class PersistenceServiceImpl implements PersistenceService
   {
  @@ -218,18 +218,10 @@
   
       private void loadPage (String aURL, String aPortletName)
       {
  -        // a tree of portlets is held by the portlet set factory
  +        PSMLDocument document = PsmlManager.getDocument(aURL);
   
  -        PortletSetFactory factory = PortletSetFactory.getInstance (aURL);
  +        Entry entry = document.getEntry(aPortletName);
   
  -        factory.init (factory.getSingletonHandle());
  -
  -        Portlets portlets = factory.getPortlets ();
  -
  -        // find the portlet within the tree
  -
  -        Entry entry = findEntry (portlets, aPortletName);
  -
           if (entry != null)
           {
               // FIX ME
  @@ -248,7 +240,7 @@
   
               if (page == null)
               {
  -                page = new Page (pageName, portlets, entry);
  +                page = new Page (pageName, document, entry);
                   iRunData.getUser().setTemp(aPortletName + "." + pageName, page);
   
               }
  @@ -257,54 +249,21 @@
           }
       }
   
  -    /**
  -     ** Traverses the portlets tree to find the one with the given name.
  -     ** Problem is: because of the lookup by name, no portlet can exist
  -     ** twice on any given page.
  -     **/
  -
  -    private Entry findEntry (Portlets aPortlets, String aPortletName)
  -    {
  -        Entry entry = null;
  -
  -        for (Enumeration e1 = aPortlets.enumerateEntry (); e1.hasMoreElements (); )
  -        {
  -            entry = (Entry) e1.nextElement ();
  -
  -            if (entry.getParent ().equals (aPortletName))
  -                 return (entry);
  -        }
  -
  -        entry = null;
  -
  -        for (Enumeration e2 = aPortlets.enumeratePortlets (); e2.hasMoreElements (); )
  -        {
  -            Portlets portlets = (Portlets) e2.nextElement ();
  -
  -            entry = findEntry (portlets, aPortletName);
  -
  -            if (entry != null)
  -                 break;
  -        }
  -
  -        return (entry);
  -    }
  -
       private static class Page implements PersistenceService.Page
       {
           private String iName;
   
  -        private Portlets iPortlets;
  +        private PSMLDocument iDocument;
   
           private Entry iEntry;
   
           private Hashtable iAttributes = new Hashtable ();
   
  -        private Page (String aName, Portlets aPortlets, Entry aEntry)
  +        private Page (String aName, PSMLDocument aDocument, Entry aEntry)
           {
               iName = aName;
  -
  -            iPortlets = aPortlets;
  +            
  +            iDocument = aDocument;
   
               iEntry = aEntry;
   
  @@ -412,8 +371,10 @@
   
               // now save it -- again, the page name does not match the file name
   
  -            if (! PSMLManager.setPSMLContent ( aRunData, iName.equals ("HTML") ? MimeType.HTML : MimeType.WML, iPortlets))
  +            if (! PsmlManager.saveDocument ( iDocument ))
  +            {
                    reset ();
  +            }
           }
   
       }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org