Package org.infoglue.deliver.util

Examples of org.infoglue.deliver.util.Timer


 
  private String getComponentPropertyValue(Integer componentId, String name, TemplateController templateController, boolean allowLanguageVariations) throws Exception
  {
    String value = "Undefined";
   
    Timer timer = new Timer();
    timer.setActive(false);
       
    Integer languageId = null;
    if(this.getRequest() != null && this.getRequest().getParameter("languageId") != null && this.getRequest().getParameter("languageId").length() > 0)
        languageId = new Integer(this.getRequest().getParameter("languageId"));
    else
View Full Code Here


     * and now we just have to render the appropriate output.
     */
        
    public String doExecute() throws Exception
    {
      Timer pageTimer = new Timer();
     
        if(isRecacheCall)
        {
          //logger.warn("ThreadId:" + Thread.currentThread().getName());
            Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
        }
                           
        //TODO - Can this be removed perhaps
        while(CmsPropertyHandler.getActuallyBlockOnBlockRequests() && RequestAnalyser.getRequestAnalyser().getBlockRequests())
        {
          //logger.info("Queing up requests as cache eviction are taking place..");
          Thread.sleep(10);
        }
       
        try
        {
          Integer maxActiveRequests = new Integer(CmsPropertyHandler.getMaxActiveRequests());
          Integer maxRequestTime = new Integer(CmsPropertyHandler.getMaxRequestTime());
          //logger.info("maxActiveRequests:" + maxActiveRequests + "-" + maxRequestTime);

        while(CmsPropertyHandler.getUseHighLoadLimiter().equalsIgnoreCase("true") && RequestAnalyser.getRequestAnalyser().getNumberOfActiveRequests() > maxActiveRequests.intValue() && (lastRequestProcessingTime > maxRequestTime.intValue() || maxRequestTime.intValue() < 1))
        {
            if(logger.isInfoEnabled())
              logger.info("Queing up...:" + RequestAnalyser.getRequestAnalyser().getNumberOfActiveRequests() + "(" + RequestAnalyser.getRequestAnalyser().getNumberOfCurrentRequests() + ") - " + lastRequestProcessingTime);
           
              int sleepTime = random.nextInt(300);
              //logger.info("Queing up...:" + RequestAnalyser.getRequestAnalyser().getNumberOfActiveRequests() + "(" + RequestAnalyser.getRequestAnalyser().getNumberOfCurrentRequests() + ") - " + lastRequestProcessingTime + " for " + sleepTime + " ms");
             
            Thread.sleep(sleepTime);
        }
        }
        catch(Exception e)
        {
          logger.error("You have faulty settings in either maxActiveRequests or maxRequestTime - fix this as it affects performance:" + e.getMessage(), e);
        }
       
        if(logger.isInfoEnabled())
        {
          logger.info("************************************************");
        logger.info("* ViewPageAction was called....                *");
        logger.info("************************************************");
        }
       
        HttpServletRequest request = getRequest();

        ThreadMonitor tk = null;
      if(!CmsPropertyHandler.getOperatingMode().equals("3"))
        tk = new ThreadMonitor(new Long(CmsPropertyHandler.getDeliverRequestTimeout()).longValue(), request, "Page view took to long!", true);
      else
      {
        if(!CmsPropertyHandler.getKillLiveRequestWhichTimedout())
          tk = new ThreadMonitor(new Long(CmsPropertyHandler.getLiveDeliverRequestTimeout()).longValue(), request, "Page view seems to take to long!", false);
        else
          tk = new ThreadMonitor(new Long(CmsPropertyHandler.getLiveDeliverRequestTimeout()).longValue(), request, "Page view took to long!", true);
      }
     
      RequestAnalyser.getRequestAnalyser().incNumberOfCurrentRequests(tk);

      long start       = System.currentTimeMillis();
      long elapsedTime   = 0;
      float startTotalMemory   = ((float)Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory());
           
      DatabaseWrapper dbWrapper = new DatabaseWrapper(CastorDatabaseService.getDatabase());
     
    beginTransaction(dbWrapper.getDatabase());

       try
    {
      validateAndModifyInputParameters(dbWrapper.getDatabase());

        this.nodeDeliveryController      = NodeDeliveryController.getNodeDeliveryController(this.siteNodeId, this.languageId, this.contentId);
      this.integrationDeliveryController  = IntegrationDeliveryController.getIntegrationDeliveryController(this.siteNodeId, this.languageId, this.contentId);
             
        boolean isUserRedirected = false;
      Integer protectedSiteNodeVersionId = this.nodeDeliveryController.getProtectedSiteNodeVersionIdForPageCache(dbWrapper.getDatabase(), siteNodeId);
      logger.info("protectedSiteNodeVersionId:" + protectedSiteNodeVersionId);
      Integer forceProtocolChangeSetting = this.nodeDeliveryController.getForceProtocolChangeSettingForPageCache(dbWrapper.getDatabase(), siteNodeId);
      //System.out.println("forceProtocolChangeSetting:" + forceProtocolChangeSetting);
     
      if(logger.isInfoEnabled())
        logger.info("protectedSiteNodeVersionId:" + protectedSiteNodeVersionId);
     
      String protectWorking = CmsPropertyHandler.getProtectDeliverWorking();
      String protectPreview = CmsPropertyHandler.getProtectDeliverPreview();
      boolean protectDeliver = false;

      if(protectWorking.equals("true") && CmsPropertyHandler.getOperatingMode().equals("0"))
        protectDeliver = true;
      else if(protectPreview.equals("true") && CmsPropertyHandler.getOperatingMode().equals("2"))
        protectDeliver = true;

      isUserRedirected = handleAccessBasedProtocolRedirect(protectedSiteNodeVersionId, this.repositoryId, forceProtocolChangeSetting, dbWrapper.getDatabase());

      if(!isUserRedirected)
      {
        if(getRequest().getParameter("authenticateUser") != null && getRequest().getParameter("authenticateUser").equals("true"))
        {
          isUserRedirected = authenticateUser(dbWrapper.getDatabase());
        }
      }

      if(!isUserRedirected)
      {
        if(logger.isInfoEnabled())
          logger.info("RemoteAddress:" + getRequest().getRemoteAddr());
       
        if(CmsPropertyHandler.getAllowInternalCallsBasedOnIP())
        {
          if(getRequest().getRemoteAddr().equals("127.0.0.1") || getRequest().getRemoteAddr().equals("192.168.0.1") || getRequest().getRemoteAddr().equals("0:0:0:0:0:0:0:1%0"))
            protectDeliver = false;
        }
       
        boolean isAnonymousAuthorized = true;
        logger.info("protectedSiteNodeVersionId:" +protectedSiteNodeVersionId);
        if(protectedSiteNodeVersionId != null)
        {
          SiteNodeVersionVO siteNodeVersionVO = SiteNodeVersionController.getController().getSiteNodeVersionVOWithId(protectedSiteNodeVersionId, dbWrapper.getDatabase());
          if(siteNodeVersionVO.getIsProtected().intValue() == SiteNodeVersionVO.YES_WITH_INHERIT_FALLBACK.intValue())
            isAnonymousAuthorized = AccessRightController.getController().getIsPrincipalAuthorized(dbWrapper.getDatabase(), (InfoGluePrincipal)this.getAnonymousPrincipal(), "SiteNodeVersion.Read", protectedSiteNodeVersionId.toString(), false);
          else
            isAnonymousAuthorized = AccessRightController.getController().getIsPrincipalAuthorized(dbWrapper.getDatabase(), (InfoGluePrincipal)this.getAnonymousPrincipal(), "SiteNodeVersion.Read", protectedSiteNodeVersionId.toString());
        }
        logger.info("isAnonymousAuthorized:" + isAnonymousAuthorized);
        logger.info("URI:" + getOriginalFullURL());
        if((protectedSiteNodeVersionId != null && !isAnonymousAuthorized) || protectDeliver || getOriginalFullURL().indexOf("ticket=") > -1)
        {
          logger.info("Plain login routine which among others looks for ticket....");
          if(logger.isInfoEnabled())
          {
            logger.info("protectedSiteNodeVersionId:" + protectedSiteNodeVersionId);
            logger.info("protectDeliver:" + protectDeliver);
          }
          isUserRedirected = handleExtranetLogic(dbWrapper.getDatabase(), this.repositoryId, protectedSiteNodeVersionId, protectDeliver, false);
        }
        else
        {
          String forceIdentityCheck = RepositoryDeliveryController.getRepositoryDeliveryController().getExtraPropertyValue(this.repositoryId, "forceIdentityCheck");
          if(logger.isInfoEnabled())
            logger.info("forceIdentityCheck:" + forceIdentityCheck);
          if(this.principal == null || CmsPropertyHandler.getAnonymousUser().equalsIgnoreCase(this.principal.getName()))
          {
            if(CmsPropertyHandler.getForceIdentityCheck().equalsIgnoreCase("true") || (forceIdentityCheck != null && forceIdentityCheck.equalsIgnoreCase("true")))
            {
              boolean isForcedIdentityCheckDisabled = this.nodeDeliveryController.getIsForcedIdentityCheckDisabled(dbWrapper.getDatabase(), this.siteNodeId);
              if(!isForcedIdentityCheckDisabled && getHttpSession().getAttribute("ssoChecked") == null && (getRequest().getParameter("skipSSOCheck") == null || !getRequest().getParameter("skipSSOCheck").equals("true")))
              {
                Timer t = new Timer();
                logger.info("Let's check for IP:s and user agents to skip redirect for...");
                String userAgentsRegexp = CmsPropertyHandler.getUserAgentsSkippingSSOCheck();
                String ipAddressesRegexp = CmsPropertyHandler.getIpNumbersSkippingSSOCheck();
               
                logger.info("userAgentsRegexp:" + userAgentsRegexp);
                if(userAgentsRegexp != null && !userAgentsRegexp.equals("") && getBrowserBean() != null && getBrowserBean().getUseragent() != null)
                {
                  if(getBrowserBean().getUseragent().matches(userAgentsRegexp))
                    {
                    logger.info("Skipping SSO check for this useragent: " + getBrowserBean().getUseragent());
                    isForcedIdentityCheckDisabled = true;
                    }
                }
               
                logger.info("isForcedIdentityCheckDisabled:" + isForcedIdentityCheckDisabled);
                if(!isForcedIdentityCheckDisabled)
                {
                  logger.info("ipAddressesRegexp:" + ipAddressesRegexp);
                  if(ipAddressesRegexp != null && !ipAddressesRegexp.equals("") && getRequest().getRemoteAddr() != null)
                  {
                    logger.info("IP:" + getRequest().getRemoteAddr());
                    if(getRequest().getRemoteAddr().matches(ipAddressesRegexp))
                      {
                      logger.info("Skipping SSO check for this ip address: " + getRequest().getRemoteAddr());
                      isForcedIdentityCheckDisabled = true;
                      }
                  }
                }
                if(logger.isInfoEnabled())
                  logger.info("Checking ip and useragent took: " + t.getElapsedTime());
              }

              if(logger.isInfoEnabled())
              {
                logger.info("isForcedIdentityCheckDisabled:" + isForcedIdentityCheckDisabled);
                logger.info("isForcedIdentityCheckDisabled:" + isForcedIdentityCheckDisabled);
                logger.info("getHttpSession().getAttribute(ssoChecked):" + getHttpSession().getAttribute("ssoChecked"));
                logger.info("getRequest().getParameter(skipSSOCheck):" + getRequest().getParameter("skipSSOCheck"));
              }
              if(!isForcedIdentityCheckDisabled && getHttpSession().getAttribute("ssoChecked") == null && (getRequest().getParameter("skipSSOCheck") == null || !getRequest().getParameter("skipSSOCheck").equals("true")))
              {
                isUserRedirected = handleExtranetLogic(dbWrapper.getDatabase(), true);
                logger.info("isUserRedirected:" + isUserRedirected);
              }
              else if(!isForcedIdentityCheckDisabled && getRequest().getParameter("skipSSOCheck") != null && getRequest().getParameter("skipSSOCheck").equals("true"))
              {
                getHttpSession().setAttribute("ssoChecked", "true");
              }
            }
          }
        }
      }
           
      logger.info("isUserRedirected:" + isUserRedirected);
      logger.info("principal:" + this.principal);
      if(!isUserRedirected)
        isUserRedirected = rewriteUrl();
     
      String pageKey = this.nodeDeliveryController.getPageCacheKey(dbWrapper.getDatabase(), this.getHttpSession(), getRequest(), this.siteNodeId, this.languageId, this.contentId, browserBean.getUseragent(), this.getRequest().getQueryString(), "");

        if(logger.isInfoEnabled())
          logger.info("pageKey:" + pageKey);

        templateController = getTemplateController(dbWrapper, getSiteNodeId(), getLanguageId(), getContentId(), getRequest(), (InfoGluePrincipal)this.principal, false);

      if(logger.isInfoEnabled())
        logger.info("handled extranet users: " + isUserRedirected);
 
      // ----
      // -- portlet
      // ----
     
      // -- check if the portal is active
          String portalEnabled = CmsPropertyHandler.getEnablePortal();
          boolean portalActive = ((portalEnabled != null) && portalEnabled.equals("true"));
     
          if (portalActive && !isRecacheCall)
          {
            if(logger.isInfoEnabled())
              logger.info("---> Checking for portlet action");
             
            PortalService service = new PortalService();
              //TODO: catch PortalException?
              boolean actionExecuted = service.service(getRequest(), getResponse());
             
              // -- if an action was executed return NONE as a redirect is issued
              if (actionExecuted)
              {
                if(logger.isInfoEnabled())
                  logger.info("---> PortletAction was executed, returning NONE as a redirect has been issued");
                  isUserRedirected = true;
                  return NONE;
              }
          }
 
          if(logger.isInfoEnabled())
            logger.info("handled portal action: " + isUserRedirected);
         
      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)
            {
View Full Code Here

      this.getResponse().setHeader( "Location", getOriginalFullURL().replaceAll("\\!renderDecoratedPage", ""));
      return NONE; //doExecute();
    }
   
   
    Timer t = new Timer();
        while(CmsPropertyHandler.getActuallyBlockOnBlockRequests() && RequestAnalyser.getRequestAnalyser().getBlockRequests())
        {
          //System.out.println("Queing up requests as cache eviction are taking place..");
          Thread.sleep(10);
        }
        t.printElapsedTime("Waited in render view on blocking threads - correct", 50);   
    if(logger.isInfoEnabled())
    {
          logger.info("************************************************");
      logger.info("* ViewPageAction was called....                *");
      logger.info("************************************************");
 
View Full Code Here

   * validates the users credentials against the extranet database,
   */
 
  public boolean handleExtranetLogic(Database db, Integer repositoryId, Integer protectedSiteNodeVersionId, boolean protectDeliver, boolean forceCmsUser) throws SystemException, Exception
  {
    Timer t = new Timer();
   
    boolean isRedirected = false;
   
    try
    {
View Full Code Here

        super();
    }

  public int doEndTag() throws JspException
    {
    Timer t = new Timer();
    setResultAttribute(new Boolean(this.getController().getIsParentToCurrent(siteNodeId)));
      RequestAnalyser.getRequestAnalyser().registerComponentStatistics("contentAttribute tag", t.getElapsedTimeNanos() / 1000);

        return EVAL_PAGE;
    }
View Full Code Here

  private Integer levelsToPopulate = 0;
  private String nameFilter = null;
   
  public int doEndTag() throws JspException
    {
    Timer t = new Timer();
   
      if(this.siteNodeId != null)
      {
          setResultAttribute(this.getController().getChildPages(this.siteNodeId, this.escapeHTML, this.hideUnauthorizedPages, this.levelsToPopulate, this.nameFilter, this.includeHidden, this.includeEvenIfLanguageDisabled));
        RequestAnalyser.getRequestAnalyser().registerComponentStatistics("ChildPages 1 tag", t.getElapsedTime());       
      }
        else if(this.propertyName != null)
        {
            setResultAttribute(getComponentLogic().getChildPages(propertyName, useInheritance, this.escapeHTML, this.hideUnauthorizedPages, useRepositoryInheritance, useStructureInheritance, this.levelsToPopulate, this.nameFilter, this.includeHidden, this.includeEvenIfLanguageDisabled));
        //if(logger.isInfoEnabled())
          RequestAnalyser.getRequestAnalyser().registerComponentStatistics("ChildPages 2 tag", t.getElapsedTime());
        }
        else
            throw new JspException("You must state either propertyName or siteNodeId");

      this.siteNodeId = null;
View Full Code Here

        super();
    }

  public int doEndTag() throws JspException
    {
    Timer t = new Timer();
    setResultAttribute(new Boolean(this.getController().getIsCurrentSiteNode(siteNodeId)));
    RequestAnalyser.getRequestAnalyser().registerComponentStatistics("IsCurrentSiteNodeTag tag", t.getElapsedTimeNanos() / 1000);
   
    return EVAL_PAGE;
    }
View Full Code Here

  private Boolean skipLanguageCheck = false;
  private Boolean useLucene = false;
 
  public int doEndTag() throws JspException
    {
    Timer t = new Timer();
   
    List freeTextAttributeNamesList = null;
    if(freeTextAttributeNames != null && !freeTextAttributeNames.equals(""))
    {
      String[] freeTextAttributeNamesArray = freeTextAttributeNames.split(",");
      if(freeTextAttributeNamesArray.length > 0)
        freeTextAttributeNamesList = Arrays.asList(freeTextAttributeNamesArray);
    }

    List<Integer> repositoryIdList = null;
    if(repositoryIds != null && !repositoryIds.equals(""))
    {
      String[] repositoryIdsArray = repositoryIds.split(",");
      if(repositoryIdsArray.length > 0)
      {
        repositoryIdList = new ArrayList<Integer>();
        for(int i=0; i<repositoryIdsArray.length; i++)
        {
          repositoryIdList.add(new Integer(repositoryIdsArray[i]));
        }
      }
    }

    if(languageId == null)
      this.languageId = getController().getLanguageId();

    try
    {
      String maximumNumberOfItemsInMatchingContentsSearch = CmsPropertyHandler.getServerNodeProperty("maximumNumberOfItemsInMatchingContentsSearch", true, null);
      if(maximumNumberOfItemsInMatchingContentsSearch != null && !maximumNumberOfItemsInMatchingContentsSearch.equals("") && !maximumNumberOfItemsInMatchingContentsSearch.equals("-1"))
        this.maximumNumberOfItems = new Integer(maximumNumberOfItemsInMatchingContentsSearch);
    }
    catch (Exception e)
    {
      logger.warn("Problem setting maximumNumberOfItemsInMatchingContentsSearch:" + e.getMessage());
    }
   
      List<ContentVO> contents = getController().getMatchingContents(contentTypeDefinitionNames, categoryCondition, freeText, freeTextAttributeNamesList, fromDate, toDate, expireFromDate, expireToDate, versionModifier, maximumNumberOfItems, true, cacheResult, cacheInterval, cacheName, cacheKey, repositoryIdList, this.languageId, skipLanguageCheck, null);
     
      List<SiteNodeVO> siteNodes = new ArrayList<SiteNodeVO>();
      for(ContentVO content : contents)
      {
        try
        {
          SiteNodeVO snVO = SiteNodeController.getController().getSiteNodeVOWithMetaInfoContentId(content.getContentId());
        if(snVO != null)
        {
          siteNodes.add(snVO);
          if(siteNodes.size() > maximumNumberOfItems)
            break;
        }
      }
        catch (Exception e)
        {
        logger.error("Problem finding site node based on meta info content id:" + e.getMessage(), e);
      }
      }
      setResultAttribute(siteNodes);
     
      this.contentTypeDefinitionNames = "Meta info";
      this.categoryCondition = null;
      this.freeText = null;
    this.freeTextAttributeNames = null;
    this.fromDate = null;
    this.toDate = null;
    this.versionModifier = null;
    this.maximumNumberOfItems = 200;
    this.expireFromDate = null;
    this.expireToDate = null;
   
    this.cacheResult = true;
    this.cacheInterval = 1800;
    this.cacheName = null;
    this.cacheKey = null;
    this.repositoryIds = null;
    this.languageId = null;
    this.skipLanguageCheck = false;
    this.useLucene = false;
   
      long runningTime = t.getElapsedTime();
      if(runningTime > 500)
        logger.warn("Running matching contents took:" + runningTime + " ms");
     
      return EVAL_PAGE;
    }
View Full Code Here

  {
    //TODO - h�r kan vi s�kert cache:a.
   
    //logger.info("componentPropertiesXML:" + componentPropertiesXML);
    List componentProperties = new ArrayList();
    Timer timer = new Timer();
    timer.setActive(false);

    try
    {
      if(document != null)
      {
        timer.printElapsedTime("Read document");

        String propertyXPath = "//property";
        //logger.info("propertyXPath:" + propertyXPath);
        List anl = document.selectNodes(propertyXPath);
        timer.printElapsedTime("Set property xpath");
        //logger.info("*********************************************************anl:" + anl.getLength());
        Iterator anlIterator = anl.iterator();
        while(anlIterator.hasNext())
        {
          Element binding = (Element)anlIterator.next();
         
          String name               = binding.attributeValue("name");
          String displayName           = binding.attributeValue("displayName");
          String description           = binding.attributeValue("description");
          String defaultValue           = binding.attributeValue("defaultValue");
          String allowLanguageVariations     = binding.attributeValue("allowLanguageVariations");
          String dataProvider           = binding.attributeValue("dataProvider");
          String dataProviderParameters     = binding.attributeValue("dataProviderParameters");
          String type               = binding.attributeValue("type");
          String allowedContentTypeNamesString = binding.attributeValue("allowedContentTypeDefinitionNames");
          String visualizingAction        = binding.attributeValue("visualizingAction");
          String createAction          = binding.attributeValue("createAction");
          //logger.info("name:" + name);
          //logger.info("type:" + type);

          ComponentProperty property = new ComponentProperty();
          property.setComponentId(componentId);
          property.setName(name);
          property.setDisplayName(displayName);
          property.setDescription(description);
          property.setDefaultValue(defaultValue);
          property.setAllowLanguageVariations(new Boolean(allowLanguageVariations));
          property.setDataProvider(dataProvider);
          property.setDataProviderParameters(dataProviderParameters);
          property.setType(type);
          property.setVisualizingAction(visualizingAction);
          property.setCreateAction(createAction);
          if(allowedContentTypeNamesString != null && allowedContentTypeNamesString.length() > 0)
          {
              String[] allowedContentTypeNamesArray = allowedContentTypeNamesString.split(",");
              property.setAllowedContentTypeNamesArray(allowedContentTypeNamesArray);
          }
         
          if(type.equalsIgnoreCase(ComponentProperty.BINDING))
          {
            String entity           = binding.attributeValue("entity");
            boolean isMultipleBinding     = new Boolean(binding.attributeValue("multiple")).booleanValue();
            boolean isAssetBinding      = new Boolean(binding.attributeValue("assetBinding")).booleanValue();
            String assetMask        = binding.attributeValue("assetMask");
            boolean isPuffContentForPage  = new Boolean(binding.attributeValue("isPuffContentForPage")).booleanValue();
           
            property.setEntityClass(entity);
            String value = getComponentPropertyValue(componentId, name, siteNodeId, languageId, contentId, locale, db, principal, property);

            property.setValue(value);
            property.setIsMultipleBinding(isMultipleBinding);
            property.setIsAssetBinding(isAssetBinding);
            property.setAssetMask(assetMask);
            property.setIsPuffContentForPage(isPuffContentForPage);
            List<ComponentBinding> bindings = getComponentPropertyBindings(componentId, name, siteNodeId, languageId, contentId, locale, db, principal);
            property.setBindings(bindings);
          }
          else if(type.equalsIgnoreCase(ComponentProperty.TEXTFIELD)) 
          {   
            String value = getComponentPropertyValue(componentId, name, siteNodeId, languageId, contentId, locale, db, principal, property);
            timer.printElapsedTime("Set property2");
            //logger.info("value:" + value);
            property.setValue(value);
          }
          else if(type.equalsIgnoreCase(ComponentProperty.DATEFIELD)) 
          {   
            String value = getComponentPropertyValue(componentId, name, siteNodeId, languageId, contentId, locale, db, principal, property);
            timer.printElapsedTime("Set property2");
            //logger.info("value:" + value);
            property.setValue(value);
          }
          else if(type.equalsIgnoreCase(ComponentProperty.CUSTOMFIELD)) 
          {   
            String value = getComponentPropertyValue(componentId, name, siteNodeId, languageId, contentId, locale, db, principal, property);
            String customMarkup = binding.attributeValue("customMarkup");
            String processedMarkup =  customMarkup.replaceAll("propertyName", name);
            processedMarkup = processedMarkup.replaceAll("propertyValue", value);

            property.setCustomMarkup(processedMarkup);
            property.setValue(value);
          }
          else if(type.equalsIgnoreCase(ComponentProperty.TEXTAREA)) 
          {   
            boolean WYSIWYGEnabled = new Boolean(binding.attributeValue("WYSIWYGEnabled")).booleanValue();
            property.setWYSIWYGEnabled(WYSIWYGEnabled);
            String WYSIWYGToolbar = binding.attributeValue("WYSIWYGToolbar");
            property.setWYSIWYGToolbar(WYSIWYGToolbar);

            String value = getComponentPropertyValue(componentId, name, siteNodeId, languageId, contentId, locale, db, principal, property);
            timer.printElapsedTime("Set property2");
            //logger.info("value:" + value);
            property.setValue(value);
          }
          else if(type.equalsIgnoreCase(ComponentProperty.SELECTFIELD)) 
          {   
View Full Code Here

 
  private String getComponentPropertyValue(Integer componentId, String name, Integer siteNodeId, Integer languageId, Integer contentId, Locale locale, Database db, InfoGluePrincipal principal, ComponentProperty componentProperty) throws Exception
  {
    String value = componentProperty.getDefaultValue();
   
    Timer timer = new Timer();
    timer.setActive(false);
       
    Document document = getPageComponentsDOM4JDocument(db, siteNodeId, languageId, contentId, principal);
   
    String componentXPath = "//component[@id=" + componentId + "]/properties/property[@name='" + name + "']";
    List anl = document.selectNodes(componentXPath);
View Full Code Here

TOP

Related Classes of org.infoglue.deliver.util.Timer

Copyright © 2018 www.massapicom. 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.