[gatein-commits] gatein SVN: r6868 - portal/branches/api/component/api-impl/src/main/java/org/gatein/portal/api/impl.

do-not-reply at jboss.org do-not-reply at jboss.org
Wed Jul 13 11:11:18 EDT 2011


Author: chris.laprun at jboss.com
Date: 2011-07-13 11:11:17 -0400 (Wed, 13 Jul 2011)
New Revision: 6868

Modified:
   portal/branches/api/component/api-impl/src/main/java/org/gatein/portal/api/impl/GateInImpl.java
Log:
- Added calls to RequestLifeCycle so that calls to ModelDataStorage works. Note that this will only work if all the dependent services (for example, PicketLinkIDMService) are started and ready to be used...
- Removed failed attempts at optimizing size and contains methods in PortalIterableResult.

Modified: portal/branches/api/component/api-impl/src/main/java/org/gatein/portal/api/impl/GateInImpl.java
===================================================================
--- portal/branches/api/component/api-impl/src/main/java/org/gatein/portal/api/impl/GateInImpl.java	2011-07-13 13:35:09 UTC (rev 6867)
+++ portal/branches/api/component/api-impl/src/main/java/org/gatein/portal/api/impl/GateInImpl.java	2011-07-13 15:11:17 UTC (rev 6868)
@@ -30,7 +30,6 @@
 import org.exoplatform.portal.config.Query;
 import org.exoplatform.portal.mop.SiteType;
 import org.exoplatform.portal.mop.navigation.NavigationService;
-import org.exoplatform.portal.pom.config.POMSession;
 import org.exoplatform.portal.pom.config.POMSessionManager;
 import org.exoplatform.portal.pom.data.ModelDataStorage;
 import org.exoplatform.portal.pom.data.PortalData;
@@ -46,7 +45,6 @@
 import org.gatein.api.id.Identifiable;
 import org.gatein.api.portal.Portal;
 import org.gatein.api.portal.Site;
-import org.gatein.mop.api.workspace.ObjectType;
 import org.picocontainer.Startable;
 
 import java.net.URI;
@@ -93,6 +91,7 @@
    {
       try
       {
+         RequestLifeCycle.begin(container);
          PortalData portalData = dataStorage.getPortalConfig(PortalKey.create(portalId.toString()));
          return new PortalImpl(portalData, this);
       }
@@ -100,6 +99,10 @@
       {
          throw new RuntimeException(e);
       }
+      finally
+      {
+         RequestLifeCycle.end();
+      }
    }
 
    public Portal getDefaultPortal()
@@ -242,38 +245,36 @@
 
    private class PortalIterableResult implements IterableResult<Portal>
    {
-      private int size;
       private final List<PortalData> portals;
 
       public PortalIterableResult(List<PortalData> portals)
       {
          this.portals = portals;
-         size = -1;
       }
 
       public int size()
       {
-         if (size != -1)
+         return portals.size();
+      }
+
+      public boolean contains(Id<Portal> id)
+      {
+         try
          {
-            return size;
+            RequestLifeCycle.begin(container);
+
+            return id != null && dataStorage.getPortalConfig(PortalKey.create(id.toString())) != null;
          }
-         else
+         catch (Exception e)
          {
-            POMSession session = pomSessionManager.getSession();
-            size = session.findObjects(ObjectType.PORTAL_SITE, ObjectType.PORTAL_SITE, null, null, 0, 1).hits();
-            session.close();
-            return size;
+            throw new RuntimeException(e);
          }
+         finally
+         {
+            RequestLifeCycle.end();
+         }
       }
 
-      public boolean contains(Id<Portal> id)
-      {
-         POMSession session = pomSessionManager.getSession();
-         boolean found = id != null && session.findObjectById(id.toString()) != null;
-         session.close();
-         return found;
-      }
-
       public Iterator<Portal> iterator()
       {
          return new PortalIterator(portals, GateInImpl.this);



More information about the gatein-commits mailing list