Examples of DeliveryContext


Examples of org.infoglue.deliver.applications.databeans.DeliveryContext

      if(!isUserRedirected)
      { 
        if(logger.isInfoEnabled())
          logger.info("this.templateController.getPrincipal():" + templateController.getPrincipal());
       
        DeliveryContext deliveryContext = DeliveryContext.getDeliveryContext(true);
        deliveryContext.setRepositoryName(this.repositoryName);
        deliveryContext.setSiteNodeId(this.siteNodeId);
        deliveryContext.setContentId(this.contentId);
        deliveryContext.setLanguageId(this.languageId);
        deliveryContext.setPageKey(pageKey);
        //deliveryContext.setSession(this.getSession());
        //deliveryContext.setInfoGlueAbstractAction(this);
        deliveryContext.setHttpServletRequest(this.getRequest());
        deliveryContext.setHttpServletResponse(this.getResponse());
        deliveryContext.setUseFullUrl(Boolean.parseBoolean(CmsPropertyHandler.getUseDNSNameInURI()));
        boolean enableIfModifiedHeaders = CmsPropertyHandler.getEnableIfModifiedHeaders();
       
        boolean skipRender = false;
        PageDeliveryMetaDataVO pdmd = null;

        if (enableIfModifiedHeaders) {
          try
          {
            boolean isIfModifiedLogic = getIsIfModifiedLogicValid(deliveryContext, templateController.getPrincipal(), true);
            logger.info("enableIfModifiedHeaders state is:" + enableIfModifiedHeaders);
            if(isIfModifiedLogic)
            {
              String ifModifiedSince = this.getRequest().getHeader("If-Modified-Since");
              logger.info("ifModifiedSince:" + ifModifiedSince);
              //System.out.println("pageKey:" + pageKey);
              if(ifModifiedSince != null && !ifModifiedSince.equals(""))
              {
                pdmd = PageDeliveryMetaDataController.getController().getPageDeliveryMetaDataVO(dbWrapper.getDatabase(), this.siteNodeId, this.languageId, this.contentId);
                logger.info("pdmd A:" + (pdmd == null ? "null" : pdmd.getId()));
                if(pdmd != null && pdmd.getLastModifiedDateTime() != null)
                {
                  logger.info("pdmd getLastModifiedTimeout:" + pdmd.getLastModifiedTimeout());
                  logger.info("System.currentTimeMillis:" + System.currentTimeMillis());
                  long diff = System.currentTimeMillis() - (pdmd.getLastModifiedTimeout() != null ? pdmd.getLastModifiedTimeout().getTime() : 0);
                  logger.info("diff:" + diff);
                  if(diff < 0 || pdmd.getLastModifiedTimeout() == null)
                  {
                    Date ifModifiedSinceDate = HTTP_DATE_FORMAT.parse( ifModifiedSince );
                    logger.info("pdmd B:" + pdmd.getId() + ":" + pdmd.getLastModifiedDateTime());
                    logger.info("*************\nCompares:" + pdmd.getLastModifiedDateTime() + "=" + ifModifiedSinceDate);
                    logger.info("pdmd.getLastModifiedTimeout():" + pdmd.getLastModifiedTimeout());
                    if(ifModifiedSinceDate.getTime() >= pdmd.getLastModifiedDateTime().getTime() - 1000)
                    {
                      logger.info("Returning NOT_MODIFIED");
                      this.getResponse().setStatus( HttpServletResponse.SC_NOT_MODIFIED );
                      pageTimer.printElapsedTime("Delivered NOT MODIFIED IN", 50);
                      skipRender = true;
                      return NONE;
                    }
                  }
                }
              }
            }
          }
          catch (Exception e)
          {
            e.printStackTrace();
          }
        }
       
        logger.info("skipRender:" + skipRender);
        if(!skipRender)
        {
          SiteNodeTypeDefinitionVO siteNodeTypeDefinitionVO = getSiteNodeTypeDefinition(this.siteNodeId, dbWrapper.getDatabase());
             
          try
            {
                String invokerClassName = siteNodeTypeDefinitionVO.getInvokerClassName();
                PageInvoker pageInvoker = (PageInvoker)Class.forName(invokerClassName).newInstance();
                pageInvoker.setParameters(dbWrapper, this.getRequest(), this.getResponse(), templateController, deliveryContext);
                pageInvoker.deliverPage();
 
                boolean isCachedResponse = deliveryContext.getIsCachedResponse();
                logger.info("isCachedResponse:" + isCachedResponse);
               
            boolean isIfModifiedLogic = getIsIfModifiedLogicValid(deliveryContext, templateController.getPrincipal(), false);
            logger.info("isIfModifiedLogic 2:" + isIfModifiedLogic);
            logger.info("deliveryContext.getLastModifiedDateTime():" + deliveryContext.getLastModifiedDateTime());
           
            /*Fetching meta info data*/
            if(isCachedResponse && pdmd == null && isIfModifiedLogic && enableIfModifiedHeaders) {
              logger.info("enableIfModifiedHeaders state is:" + enableIfModifiedHeaders);
              pdmd = PageDeliveryMetaDataController.getController().getPageDeliveryMetaDataVO(dbWrapper.getDatabase(), this.siteNodeId, this.languageId, this.contentId);
            }
           
            if(pdmd != null)
              logger.info("pdmd():" + pdmd.getLastModifiedDateTime());

            if(isIfModifiedLogic && (!isCachedResponse || pdmd == null/* || deliveryContext.getLastModifiedDateTime().after(pdmd.getLastModifiedDateTime())*/))
            {
              Timer t2 = new Timer();
              logger.info("We should register the last modified date now. Add it to the thread which registers it: " + deliveryContext.getLastModifiedDateTime() + ":" + deliveryContext.hashCode());
              try
              {
                PageDeliveryMetaDataVO pageDeliveryMetaDataVO = new PageDeliveryMetaDataVO();

                List<String> entities = deliveryContext.getAllUsedEntitiesAsSet();
               
                List<String> allUsedEntitiesFilteredCopy = new ArrayList<String>();
                for(String s : entities)
                {
                  if(s.startsWith("content_") && s.indexOf("_", 8) == -1)
                  {
                    allUsedEntitiesFilteredCopy.add(s.replaceAll("content_", "c_"));
                    //allUsedEntitiesFilteredCopy.add(s); //getPooledString(s.hashCode()));
                    //System.out.println("Added: " + s);
                  }
                  else if(s.startsWith("siteNode_"))
                    allUsedEntitiesFilteredCopy.add(s.replaceAll("siteNode_", "sn_"));
                  else if(s.startsWith("selectiveCacheUpdateNonApplicable"))
                  {
                    allUsedEntitiesFilteredCopy.clear();
                    allUsedEntitiesFilteredCopy.add(s);
                    pageDeliveryMetaDataVO.setSelectiveCacheUpdateNotApplicable(true);
                  }
                }

                Collection<PageDeliveryMetaDataEntityVO> entitiesCollection = new ArrayList<PageDeliveryMetaDataEntityVO>();
                for(String s : allUsedEntitiesFilteredCopy)
                {
                  if(s.startsWith("c_"))
                  {
                    PageDeliveryMetaDataEntityVO pageDeliveryMetaDataEntityVO = new PageDeliveryMetaDataEntityVO();
                    pageDeliveryMetaDataEntityVO.setContentId(new Integer(s.replaceAll("c_", "")));
                    pageDeliveryMetaDataEntityVO.setPageDeliveryMetaDataId(pageDeliveryMetaDataVO.getId());
                    entitiesCollection.add(pageDeliveryMetaDataEntityVO);
                  }
                  else if(s.startsWith("sn_"))
                  {
                    PageDeliveryMetaDataEntityVO pageDeliveryMetaDataEntityVO = new PageDeliveryMetaDataEntityVO();
                    pageDeliveryMetaDataEntityVO.setSiteNodeId(new Integer(s.replaceAll("sn_", "")));
                    pageDeliveryMetaDataEntityVO.setPageDeliveryMetaDataId(pageDeliveryMetaDataVO.getId());
                    entitiesCollection.add(pageDeliveryMetaDataEntityVO);
                  }
                }

                String allUsedEntitiesAsString = StringUtils.join(allUsedEntitiesFilteredCopy, "|");
                logger.info("allUsedEntitiesAsString:" + allUsedEntitiesAsString);
                //System.out.println("allUsedEntitiesAsString:" + allUsedEntitiesAsString.length());
               
                pageDeliveryMetaDataVO.setSiteNodeId(deliveryContext.getSiteNodeId());
                pageDeliveryMetaDataVO.setLanguageId(deliveryContext.getLanguageId());
                pageDeliveryMetaDataVO.setContentId(deliveryContext.getContentId());
                pageDeliveryMetaDataVO.setLastModifiedDateTime(deliveryContext.getLastModifiedDateTime());
                if(deliveryContext.getPageCacheTimeout() != null && deliveryContext.getPageCacheTimeout() > -1)
                {
                  logger.info("deliveryContext.getPageCacheTimeout(): " + deliveryContext.getPageCacheTimeout());
                  logger.info("Setting page timeout: " + deliveryContext.getPageCacheTimeout()*1000);
                  logger.info("Current time: " + System.currentTimeMillis());
                  Calendar cal = Calendar.getInstance();
                  cal.add(Calendar.SECOND, deliveryContext.getPageCacheTimeout());
                  pageDeliveryMetaDataVO.setLastModifiedTimeout(cal.getTime());
                }
                else
                  logger.info("AAAAAAAAAAAAAAAAAAAAA: " + deliveryContext.getPageCacheTimeout());

                pageDeliveryMetaDataVO.setUsedEntities(allUsedEntitiesAsString);
               
                if (enableIfModifiedHeaders) {
                  PageDeliveryMetaDataController.getController().deletePageDeliveryMetaData(dbWrapper.getDatabase(), pageDeliveryMetaDataVO.getSiteNodeId(), null);
                  PageDeliveryMetaDataController.getController().create(dbWrapper.getDatabase(), pageDeliveryMetaDataVO, entitiesCollection);
                }
               
                String key = "" + pageDeliveryMetaDataVO.getSiteNodeId() + "_" + pageDeliveryMetaDataVO.getLanguageId() + "_" + pageDeliveryMetaDataVO.getContentId();
                  logger.info("key on store:" + key);
                CacheController.cacheObjectInAdvancedCache("pageDeliveryMetaDataCache", key, pageDeliveryMetaDataVO);
              }
              catch (Exception e)
              {
                logger.error("Error storing page meta data: " + e.getMessage(), e);
              }
              t2.printElapsedTime("AAAAAAAAAAAAAAAAA",20);
            }
                request.setAttribute("progress", "after pageInvoker was called");
            }
            catch(ClassNotFoundException e)
            {
                throw new SystemException("An error was thrown when trying to use the page invoker class assigned to this page type:" + e.getMessage(), e);
          }
            finally
            {
              deliveryContext.clear();
              deliveryContext = null;
            }
        }
      }
     
View Full Code Here

Examples of org.infoglue.deliver.applications.databeans.DeliveryContext

      if(!isUserRedirected)
      { 
        logger.info("this.templateController.getPrincipal():" + templateController.getPrincipal());
   
        DeliveryContext deliveryContext = DeliveryContext.getDeliveryContext(true);
        deliveryContext.setRepositoryName(this.repositoryName);
        deliveryContext.setSiteNodeId(this.siteNodeId);
        deliveryContext.setLanguageId(this.languageId);
        deliveryContext.setContentId(this.contentId);
        deliveryContext.setShowSimple(this.showSimple);
        deliveryContext.setPageKey(pageKey);
        //deliveryContext.setSession(this.getSession());
        //deliveryContext.setInfoGlueAbstractAction(this);
        deliveryContext.setHttpServletRequest(this.getRequest());
        deliveryContext.setHttpServletResponse(this.getResponse());
        deliveryContext.setUseFullUrl(Boolean.parseBoolean(CmsPropertyHandler.getUseDNSNameInURI()));

        //deliveryContext.setDisablePageCache(true);
       
        SiteNodeVO siteNode = nodeDeliveryController.getSiteNodeVO(dbWrapper.getDatabase(), this.siteNodeId);
        if(siteNode == null)
            throw new SystemException("There was no page with this id.");

        if(siteNode.getSiteNodeTypeDefinitionId() == null)
            throw new SystemException("There was no SiteNodeTypeDefinition defined for the site node " + siteNode.getName() + "[" + siteNode.getId() + "].");

        SiteNodeTypeDefinitionVO siteNodeTypeDefinitionVO = getSiteNodeTypeDefinition(this.siteNodeId, dbWrapper.getDatabase());
        String invokerClassName = siteNodeTypeDefinitionVO.getInvokerClassName();
       
        if(invokerClassName == null || invokerClassName.equals(""))
        {
            throw new SystemException("There was no page invoker class assigned to this page type.");
        }
        else
        {
            try
            {
                PageInvoker pageInvoker = (PageInvoker)Class.forName(invokerClassName).newInstance();
                pageInvoker = pageInvoker.getDecoratedPageInvoker(templateController, deliveryContext);
                pageInvoker.setParameters(dbWrapper, this.getRequest(), this.getResponse(), templateController, deliveryContext);
                pageInvoker.deliverPage();
            }
            catch(ClassNotFoundException e)
            {
                throw new SystemException("An error was thrown when trying to use the page invoker class assigned to this page type:" + e.getMessage(), e);
            }
            finally
            {
              deliveryContext.clear();
              deliveryContext = null;
            }
        }
      }
     
View Full Code Here

Examples of org.infoglue.deliver.applications.databeans.DeliveryContext

          Database db = CastorDatabaseService.getDatabase();
         
          try
          {
            db.begin();
            DeliveryContext deliveryContext = DeliveryContext.getDeliveryContext();
              //assetUrl = cdc.getAssetUrl(db, contentId, languageId, assetKey, siteNodeId, true, deliveryContext, this.getInfoGluePrincipal());
            logger.info("principal:" + this.principal);
            if(this.principal == null)
            {
                this.principal = this.getInfoGluePrincipal();
View Full Code Here

Examples of org.infoglue.deliver.applications.databeans.DeliveryContext

      if(getIsValidLanguage(db, ndc, siteNodeVO.getId(), currentLanguage.getId()) && currentIndex > -1 && currentIndex < index)
      {
        index = currentIndex;
        logger.info("Found the language in the list of supported languages for this site: " + currentLanguage.getName() + " - priority:" + index);

        DeliveryContext deliveryContext = DeliveryContext.getDeliveryContext();
          ContentVO contentVO = ndc.getBoundContent(db, principal, siteNodeId, currentLanguage.getId(), false, BasicTemplateController.META_INFO_BINDING_NAME, deliveryContext);   
        if(contentVO != null)
        {
            ContentVersionVO contentVersionVO = ContentDeliveryController.getContentDeliveryController().getContentVersionVO(db, siteNodeId, contentVO.getId(), currentLanguage.getId(), false, deliveryContext, principal);
            if(contentVersionVO != null)
View Full Code Here

Examples of org.infoglue.deliver.applications.databeans.DeliveryContext

  {
    String pagePath = "";
   
    try
    {
      DeliveryContext dc = DeliveryContext.getDeliveryContext(false);
      pagePath = NodeDeliveryController.getNodeDeliveryController(dc).getPagePath(db, principal, siteNodeId, languageId, new Integer(-1), BasicTemplateController.META_INFO_BINDING_NAME, BasicTemplateController.NAV_TITLE_ATTRIBUTE_NAME, BasicTemplateController.USE_LANGUAGE_FALLBACK, dc);
    }
    catch(Exception e)
    {
      logger.error("An error occurred trying to get current page url:" + e.getMessage(), e);
View Full Code Here

Examples of org.infoglue.deliver.applications.databeans.DeliveryContext

    NodeDeliveryController nodeDeliveryController = NodeDeliveryController.getNodeDeliveryController(siteNodeId, languageId, contentId);
    IntegrationDeliveryController integrationDeliveryController  = IntegrationDeliveryController.getIntegrationDeliveryController(siteNodeId, languageId, contentId);
    TemplateController templateController = getTemplateController(dbWrapper, siteNodeId, languageId, contentId, new FakeHttpServletRequest(), (InfoGluePrincipal)principal, false, browserBean, nodeDeliveryController, integrationDeliveryController);
   
    DeliveryContext deliveryContext = DeliveryContext.getDeliveryContext(/*(InfoGluePrincipal)this.principal*/);
    //deliveryContext.setRepositoryName(repositoryName);
    deliveryContext.setSiteNodeId(siteNodeId);
    deliveryContext.setContentId(contentId);
    deliveryContext.setLanguageId(languageId);
    deliveryContext.setPageKey("" + System.currentTimeMillis());
    //deliveryContext.setSession(new Session(fakeHttpServletSession));
    //deliveryContext.setInfoGlueAbstractAction(null);
    deliveryContext.setHttpServletRequest(fakeHttpServletRequest);
    deliveryContext.setHttpServletResponse(fakeHttpServletResponse);

    templateController.setDeliveryContext(deliveryContext);
   
    //We don't want a page cache entry to be created
    deliveryContext.setDisablePageCache(true);

    Integer rootMetaInfoContentId = templateController.getMetaInformationContentId(siteNodeId);
    logger.info("rootMetaInfoContentId:" + rootMetaInfoContentId);
   
    recurseSiteNodeTree(siteNodeId, languageId, templateController);
View Full Code Here

Examples of org.infoglue.deliver.applications.databeans.DeliveryContext

            {
              dbWrapperCached.getDatabase().begin();
             
              InfoGluePrincipal user = UserControllerProxy.getController(dbWrapperCached.getDatabase()).getUser(bean.getUserName());
              BasicTemplateController tc = new BasicTemplateController(dbWrapperCached, user);
              DeliveryContext deliveryContext = DeliveryContext.getDeliveryContext(false);
              tc.setDeliveryControllers(NodeDeliveryController.getNodeDeliveryController(null, deliveryContext.getLanguageId(), null, deliveryContext), null, null)
              tc.setDeliveryContext(deliveryContext);
 
              cachedMatchingContents = tc.getMatchingContents(bean.getContentTypeDefinitionNames(),
                     bean.getCategoryCondition(),
                     bean.getFreeText(),
                     bean.getFreeTextAttributeNamesList(),
                     bean.getFromDate(),
                     bean.getToDate(),
                     bean.getExpireFromDate(),
                     bean.getExpireToDate(),
                     bean.getVersionModifier(),
                     bean.getMaximumNumberOfItems(),
                     true,
                     true,
                     bean.getCacheInterval(),
                     bean.getCacheName(),
                     bean.getCacheKey(),
                     bean.getScheduleFetch(),
                     bean.getScheduleInterval(),
                     bean.getRepositoryIdsList(),
                     bean.getLanguageId(),
                     bean.getSkipLanguageCheck(),
                     bean.getStartNodeId(),
                     bean.getSortColumn(),
                     bean.getSortOrder(),
                     false,
                     bean.getValidateAccessRightsAsAnonymous(),
                     true,
                     true);

             
              //This part check the matching contents cache for directives to recache... it is a cache entry marking when the cache-refresh request was made
              if(bean.getContentTypeDefinitionNames() != null && !bean.getContentTypeDefinitionNames().equals(""))
              {
                String[] contentTypeDefinitionNames = bean.getContentTypeDefinitionNames().split(",");
                for(String contentTypeDefinitionName : contentTypeDefinitionNames)
                {
                  try
                  {
                    ContentTypeDefinitionVO contentTypeDefinitionVO = ContentTypeDefinitionController.getController().getContentTypeDefinitionVOWithName(contentTypeDefinitionName, dbWrapperCached.getDatabase());
                    if(contentTypeDefinitionVO != null)
                    {
                      logger.info("Do not throw page cache on this if it's not a content of type:" + contentTypeDefinitionVO.getName());
                        String recacheMark = (String)CacheController.getCachedObjectFromAdvancedCache("matchingContentsCache", "recacheAllMark");
                        logger.info("recacheMark:" + recacheMark);
                        if(recacheMark == null)
                          recacheMark = (String)CacheController.getCachedObjectFromAdvancedCache("matchingContentsCache", "recacheMark_" + contentTypeDefinitionVO.getId());
                       
                        logger.info("recacheMark:" + recacheMark);
                        if(recacheMark != null)
                        {
                          long markTime = Long.parseLong(recacheMark);
                          long diffMark = System.currentTimeMillis() - markTime;
                          logger.info("It was " + diffMark + " since the recache directive was added.");
                          logger.info("Bean was last fetched " + bean.getLastFetched() + ".");
                          if(diffMark > 30000)
                          {
                            logger.info("Deleting the mark..");
                            CacheController.clearCache("matchingContentsCache", "recacheMark_" + contentTypeDefinitionVO.getId());
                          }
                          else if(markTime > bean.getLastFetched())
                          {
                            logger.info("Forcing a recache as the mark was later than the last fetched.");
                            forceRecache = true;
                          }
                          else
                          {
                            logger.info("Doing nothing:" + markTime + "/" + bean.getLastFetched() + "/" + diffMark);
                          }
                        }
                      }
                  }
                  catch (Exception e)
                  {
                    logger.warn("Error reading content type: " + e.getMessage(), e);
                  }
                }
              }
              else
              {
                  String recacheMark = (String)CacheController.getCachedObjectFromAdvancedCache("matchingContentsCache", "recacheMark");
                  logger.info("recacheMark:" + recacheMark);
                  if(recacheMark != null)
                  {
                    long markTime = Long.getLong(recacheMark);
                    long diffMark = System.currentTimeMillis() - markTime;
                    logger.info("It was " + diffMark + " since the recache directive was added.");
                    logger.info("Bean was last fetched " + bean.getLastFetched() + ".");
                    if(diffMark > 3600000)
                    {
                      logger.info("Deleting the mark..");
                      CacheController.clearCache("matchingContentsCache", "recacheMark");
                    }
                    else if(markTime > bean.getLastFetched())
                    {
                      logger.info("Forcing a recache as the mark was later than the last fetched.");
                      forceRecache = true;
                    }
                    else
                    {
                      logger.info("Doing nothing:" + markTime + "/" + bean.getLastFetched() + "/" + diffMark);
                    }
                  }
              }
              //END TEST

              dbWrapperCached.getDatabase().rollback();
            }
            catch (Exception e)
            {
              removeQueueBean = true;
              dbWrapperCached.getDatabase().rollback();
              logger.error("Error in matching contents:" + e.getMessage(), e);
            }
            finally
            {
              dbWrapperCached.getDatabase().close();
            }
                       
            logger.info("diff:" + diff);
            logger.info("bean.getScheduleInterval()" + bean.getScheduleInterval());
            logger.info("Cached matches:" + (cachedMatchingContents == null ? "null" : cachedMatchingContents.size()));
            logger.info("removeQueueBean:" + removeQueueBean);

            logger.info("cachedMatchingContents:" + (cachedMatchingContents == null ? "null" : cachedMatchingContents.size()));

            if(!removeQueueBean && (diff > bean.getScheduleInterval() || cachedMatchingContents == null || forceRecache)) //|| cachedMatchingContents.size() == 0
            {
              logger.info("Running match either because the time was now or because no cached result was found or there was a recache directive in the cache");
              logger.info("forceRecache:" + forceRecache);
              logger.info("removeQueueBean:" + removeQueueBean);
              logger.info("diff:" + diff);
              logger.info("bean.getScheduleInterval():" + bean.getScheduleInterval());
               
              DatabaseWrapper dbWrapper = new DatabaseWrapper(CastorDatabaseService.getDatabase());
              try
              {
                dbWrapper.getDatabase().begin();
               
                InfoGluePrincipal user = UserControllerProxy.getController(dbWrapper.getDatabase()).getUser(bean.getUserName());
                BasicTemplateController tc = new BasicTemplateController(dbWrapper, user);
                DeliveryContext deliveryContext = DeliveryContext.getDeliveryContext(false);
                tc.setDeliveryControllers(NodeDeliveryController.getNodeDeliveryController(null, deliveryContext.getLanguageId(), null, deliveryContext), null, null)
                tc.setDeliveryContext(deliveryContext);
               
                List matchingContents = tc.getMatchingContents(bean.getContentTypeDefinitionNames(),
                             bean.getCategoryCondition(),
                             bean.getFreeText(),
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.