Package org.infoglue.deliver.util

Examples of org.infoglue.deliver.util.Timer


   * This method gets a list of users
   */
 
  public List getUsers() throws Exception
  {
    Timer t = new Timer();
    if(!logger.isInfoEnabled())
      t.setActive(false);
   
    logger.info("*******************");
      logger.info("* getUsers start  *");
      logger.info("*******************");
     
    String userCacheTimeout = this.extraProperties.getProperty("userCacheTimeout", "1800");

      String authorizerIndex = this.extraProperties.getProperty("authorizerIndex");
      if(authorizerIndex == null)
        authorizerIndex = "";

    String key = "allUsers" + authorizerIndex;
    List users = (List)CacheController.getCachedObjectFromAdvancedCache("JNDIAuthorizationCache", key, new Integer(userCacheTimeout).intValue());
    if(users != null)
      return users;
   
    users = new ArrayList();
   
    String userBase          = this.extraProperties.getProperty("userBase");
   
    String[] userBases = null;
    if(userBase != null)
      userBases = userBase.split(";");
     
    String userListSearch      = this.extraProperties.getProperty("userListSearch");
    String userAttributesFilter    = this.extraProperties.getProperty("userAttributesFilter");
    String userNameAttributeFilter    = this.extraProperties.getProperty("userNameAttributeFilter", "distinguishedName");
    String userDisplayNameAttributeFilter  = this.extraProperties.getProperty("userDisplayNameAttributeFilter", "cn");
    String userFirstNameAttributeFilter  = this.extraProperties.getProperty("userFirstNameAttributeFilter", "givenName");
    String userLastNameAttributeFilter  = this.extraProperties.getProperty("userLastNameAttributeFilter", "sn");
    String userMailAttributeFilter  = this.extraProperties.getProperty("userMailAttributeFilter", "mail");
    String memberOfAttributeFilter  = this.extraProperties.getProperty("memberOfAttributeFilter", "memberOf");
    String roleFilter        = this.extraProperties.getProperty("roleFilter", "InfoGlue");
    String roleNameAttribute     = this.extraProperties.getProperty("roleNameAttribute");
    String userSearchScope       = this.extraProperties.getProperty("userSearchScope");

    String userFirstNameDummy    = this.extraProperties.getProperty("userFirstNameDummy");
    String userLastNameDummy    = this.extraProperties.getProperty("userLastNameDummy");
    String userDisplayNameDummy    = this.extraProperties.getProperty("userDisplayNameDummy");
    String userMailDummy      = this.extraProperties.getProperty("userMailDummy");

    t.printElapsedTime("Got context took:");
   
    int index = 0;

    for(int userBaseIndex=0; userBaseIndex < userBases.length; userBaseIndex++)
    {
      String baseDN = userBases[userBaseIndex];
     
      if(logger.isInfoEnabled())
        logger.info("Searching for users in " + baseDN + " - users was " + users.size());

      DirContext ctx = getContext();

      try
      {
        //String baseDN = userBase;
        String searchFilter = "(CN=*)";
        if(userListSearch != null && userListSearch.length() > 0)
          searchFilter = userListSearch;
       
        String attributesFilter = "name, displayName, givenName, sn, mail, memberOf";
        if(userAttributesFilter != null && userAttributesFilter.length() > 0)
          attributesFilter = userAttributesFilter;
             
        String[] attrID = attributesFilter.split(",");
        String[] userMailAttributeFilterAttributeId = userMailAttributeFilter.split(",");
       
        if(logger.isInfoEnabled())
        {
          logger.info("attributesFilter:" + attributesFilter);
          logger.info("userMailAttributeFilterAttributeId:" + userMailAttributeFilterAttributeId);
          logger.info("baseDN:" + baseDN);
          logger.info("searchFilter:" + searchFilter);
          //logger.info("attrID" + attrID);
        }
       
        SearchControls ctls = new SearchControls();
 
        int userSearchScopeInt = SearchControls.SUBTREE_SCOPE;
        if(userSearchScope != null && userSearchScope.equalsIgnoreCase("ONELEVEL_SCOPE"))
            userSearchScopeInt = SearchControls.ONELEVEL_SCOPE;
        else if(userSearchScope != null && userSearchScope.equalsIgnoreCase("OBJECT_SCOPE"))
            userSearchScopeInt = SearchControls.OBJECT_SCOPE;
           
          ctls.setSearchScope(userSearchScopeInt);
        ctls.setReturningAttributes(attrID);
 
        NamingEnumeration answer = ctx.search(baseDN, searchFilter, ctls);
 
        t.printElapsedTime("Answer took:");
       
        if(!answer.hasMore())
          throw new Exception("The was no users found in the JNDI Data Source.");
     
        while (answer.hasMore())
        {
          try
          {
            SearchResult sr = (SearchResult)answer.next();
            if(logger.isInfoEnabled())
              logger.info("Person:" + sr.toString() + "\n");
           
            Attributes attributes = sr.getAttributes();
            if(logger.isInfoEnabled())
              logger.info("attributes:" + attributes.toString());
            Attribute userNameAttribute = attributes.get(userNameAttributeFilter);
            Attribute userDisplayNameAttribute = attributes.get(userDisplayNameAttributeFilter);
            Attribute userFirstNameAttribute = attributes.get(userFirstNameAttributeFilter);
            Attribute userLastNameAttribute = attributes.get(userLastNameAttributeFilter);
 
            Attribute userMailAttribute = null;
            for(int i=0; i<userMailAttributeFilterAttributeId.length; i++)
            {
              userMailAttribute = attributes.get(userMailAttributeFilterAttributeId[i]);
              if(userMailAttribute != null)
                break;
            }
 
            Attribute memberOfAttribute = attributes.get(memberOfAttributeFilter);
            Attribute memberOfGroupsAttribute = attributes.get(memberOfAttributeFilter);
 
            String userFirstName = null;
            if(userFirstNameAttribute != null)
              userFirstName = userFirstNameAttribute.get().toString();
            else if(userFirstNameDummy != null && !userFirstNameDummy.equals(""))
              userFirstName = userFirstNameDummy;
           
            String userLastName = null;
            if(userLastNameAttribute != null)
              userLastName = userLastNameAttribute.get().toString();
            else if(userLastNameDummy != null && !userLastNameDummy.equals(""))
              userLastName = userLastNameDummy;

            String userDisplayName = null;
            if(userDisplayNameAttribute != null)
              userDisplayName = userDisplayNameAttribute.get().toString();
            else if(userDisplayNameDummy != null && !userDisplayNameDummy.equals(""))
              userDisplayName = userDisplayNameDummy;

            String userMail = null;
            if(userMailAttribute != null)
              userMail = userMailAttribute.get().toString();
            else if(userMailDummy != null && !userMailDummy.equals(""))
              userMail = userMailDummy;

            if(userFirstName == null || userLastName == null || userDisplayName == null || userMail == null)
            {
              if(logger.isInfoEnabled())
                logger.info("User not valid " + userNameAttribute);
              throw new SystemException("The user " + userNameAttribute + " did not have firstName, lastName or email attribute which InfoGlue requires");
            }
           
            if(logger.isInfoEnabled())
            {
              logger.info("userNameAttribute:" + userNameAttribute);
              logger.info("userDisplayName:" + userDisplayName);
              logger.info("userFirstName:" + userFirstName);
              logger.info("userLastName:" + userLastName);
              logger.info("userMail:" + userMail);
            }
           
            List roles = new ArrayList();
            List groups = new ArrayList();
 
            if(memberOfAttribute != null)
            {
              if(logger.isInfoEnabled())
                logger.info("memberOfAttribute:" + memberOfAttribute);
           
              NamingEnumeration allEnum = memberOfAttribute.getAll();
              while(allEnum.hasMore())
              {
                String roleName = (String)allEnum.next();
 
                if(logger.isInfoEnabled())
                  logger.info("roleName:" + roleName);
               
                if(roleFilter.equalsIgnoreCase("*") || roleName.indexOf(roleFilter) > -1)
                {
                  if(logger.isInfoEnabled())
                  {
                    logger.info("roleNameAttribute:" + roleNameAttribute);
                    logger.info("groupName:" + roleName);
                    logger.info("indexOf:" + roleName.indexOf(roleNameAttribute));
                  }
                 
                  InfoGlueRole infoGlueRole = this.getAuthorizedInfoGlueRole(roleName, ctx);
                    //InfoGlueRole infoGlueRole = new InfoGlueRole(roleName, "Not available from JNDI-source", this);
                  roles.add(infoGlueRole);
                }
              }
            }
            else
            {
              if(logger.isInfoEnabled())
                logger.info("No memberOfAttribute named :" + memberOfAttributeFilter + " was found.");
            }
 
            if(memberOfGroupsAttribute != null)
            {
              NamingEnumeration allGroupsEnum = memberOfGroupsAttribute.getAll();
              while(allGroupsEnum.hasMore())
              {
                String groupName = (String)allGroupsEnum.next();
               
                if(logger.isInfoEnabled())
                  logger.info("groupName:" + groupName);
               
                if(roleFilter.equalsIgnoreCase("*") || groupName.indexOf(roleFilter) > -1)
                {
                  if(logger.isInfoEnabled())
                  {
                    logger.info("roleNameAttribute:" + roleNameAttribute);
                    logger.info("groupName:" + groupName);
                    logger.info("indexOf:" + groupName.indexOf(roleNameAttribute));
                  }
                 
                  InfoGlueGroup infoGlueGroup = this.getAuthorizedInfoGlueGroup(groupName, ctx);
                  //InfoGlueGroup infoGlueGroup = new InfoGlueGroup(groupName, "Not available from JNDI-source", this);
                    groups.add(infoGlueGroup);
                }
              }
            }
            else
            {
              if(logger.isInfoEnabled())
                logger.info("No memberOfGroupsAttribute named :" + memberOfAttributeFilter + " was found.");
            }
 
            InfoGluePrincipal infoGluePrincipal = new InfoGluePrincipal(userNameAttribute.get().toString(), userDisplayName, userFirstName, userLastName, userMail, roles, groups, false, this);
            users.add(infoGluePrincipal);
          }
          catch(Exception e)
          {
            logger.warn("An error occurred when we tried to read user: " + e.getMessage(), e);
          }
        }
      }
      catch (Exception e)
      {
        logger.warn("Could not find Users: " + e.getMessage(), e);
      }
      finally
      {
        ctx.close();
      }

      if(logger.isInfoEnabled())
        logger.info("After searching for users in " + baseDN + " - users was " + users.size());
    }

    t.printElapsedTime("all users took " + index + ":");
   
    logger.info("getUsers end...");

      if(users != null)
        CacheController.cacheObjectInAdvancedCache("JNDIAuthorizationCache", key, users, null, false);
View Full Code Here


    return this.contentVersionVOList;   
  }
 
  public String doExecute() throws Exception
  {
    Timer t = new Timer();
    if(!logger.isInfoEnabled())
      t.setActive(false);
   
      int maxRows = 100;
    try
    {
      maxRows = Integer.parseInt(CmsPropertyHandler.getMaxRows());
    }
    catch(Exception e)
    {
    }

    repositoryIdToSearch = this.getRequest().getParameterValues("repositoryIdToSearch");
   
    if(this.searchString != null && !this.searchString.equals(""))
    {
      if(onlyIDSearch)
      {
        try
        {
          this.baseEntityVOList = searchController.getBaseEntityVOListFromCastor(new Integer(this.getSearchString()));       
        }
        catch (Exception e)
        {
          logger.warn("Not a valid id:" + e.getMessage());
        }
      }
      else
      {   
        logger.debug("repositoryIdToSearch:" + repositoryIdToSearch);
        if(repositoryIdToSearch != null)
        {
          Integer[] repositoryIdAsIntegerToSearch = new Integer[repositoryIdToSearch.length];
          for(int i=0; i < repositoryIdToSearch.length; i++)
          {
            repositoryIdAsIntegerToSearch[i] = new Integer(repositoryIdToSearch[i]);
            selectedRepositoryIdList.add(repositoryIdToSearch[i]);
          }
                 
         
          contentVersionVOList = searchController.getContentVersionVOList(repositoryIdAsIntegerToSearch, this.getSearchString(), maxRows, name, languageId, new Integer[]{contentTypeDefinitionId}, null, caseSensitive, stateId, false, false, contentSearchMetaData);
          t.printElapsedTime("contentVersionVOList took");
          siteNodeVersionVOList = searchController.getSiteNodeVersionVOList(repositoryIdAsIntegerToSearch, this.getSearchString(), maxRows, name, languageId, caseSensitive, stateId);
          t.printElapsedTime("siteNodeVersionVOList took");
          digitalAssetVOList = searchController.getDigitalAssets(repositoryIdAsIntegerToSearch, this.getSearchString(), null, maxRows, assetSearchMetaData);
          t.printElapsedTime("digitalAssetVOList took");
        }
        else
        {
          logger.debug("repositoryId:" + this.repositoryId);
       
          contentVersionVOList = searchController.getContentVersionVOList(new Integer[] {this.repositoryId}, this.getSearchString(), maxRows, name, languageId, new Integer[]{contentTypeDefinitionId}, null, caseSensitive, stateId, false, false, contentSearchMetaData);
          t.printElapsedTime("contentVersionVOList took");
          siteNodeVersionVOList = searchController.getSiteNodeVersionVOList(new Integer[]{this.repositoryId}, this.getSearchString(), maxRows, name, languageId, caseSensitive, stateId);
          t.printElapsedTime("siteNodeVersionVOList took");
          digitalAssetVOList = searchController.getDigitalAssets(new Integer[]{this.repositoryId}, this.getSearchString(), assetTypeFilter, maxRows, assetSearchMetaData);
          t.printElapsedTime("digitalAssetVOList took");
          selectedRepositoryIdList.add("" + this.repositoryId);
        }
      }
    }
   
View Full Code Here

    Iterator repositoryVOListIterator = repositoryVOList.iterator();
    while(repositoryVOListIterator.hasNext())
    {
      RepositoryVO repositoryVO = (RepositoryVO)repositoryVOListIterator.next();
     
      Timer t = new Timer();
      List events = PublicationController.getPublicationEvents(repositoryVO.getId(), infogluePrincipal, "all", false);
      List groupEvents = PublicationController.getPublicationEvents(repositoryVO.getId(), infogluePrincipal, "groupBased", false);
      //t.printElapsedTime("Events took...");
     
      r.add(new PublishingNodeImpl(repositoryVO.getId(), "" + repositoryVO.getName() + " (" + (events.size() > 0 ? "<strong>" : "") + events.size() + (events.size() > 0 ? "</strong>" : "") + "/" + (groupEvents.size() > 0 ? "<strong>" : "") + groupEvents.size() + (groupEvents.size() > 0 ? "</strong>" : "") + ")", "ViewPublications!V3.action?repositoryId=" + repositoryVO.getId(), parameters));
View Full Code Here

  /**
   * @see com.frovi.ss.Tree.INodeSupplier#getChildContainerNodes(Integer)
   */
  public Collection getChildContainerNodes(Integer parentNode) throws SystemException, Exception
  {
    Timer timer = new Timer();
   
    Database db = CastorDatabaseService.getDatabase();
        ConstraintExceptionBuffer ceb = new ConstraintExceptionBuffer();

    ArrayList ret = new ArrayList();
    cacheLeafs = new ArrayList();
    //List children = null;

        beginTransaction(db);

        try
        {
          List<SiteNodeVO> childrenVOList = SiteNodeController.getController().getChildSiteNodeVOList(parentNode, false, db, this.sortLanguageId);
         
          /*
      Iterator childrenVOListIterator = childrenVOList.iterator();
      while(childrenVOListIterator.hasNext())
      {
        SiteNodeVO siteNodeVO = (SiteNodeVO)childrenVOListIterator.next();
        if(siteNodeVO.getMetaInfoContentId() != null && siteNodeVO.getMetaInfoContentId().intValue() > -1)
        {
          try
          {
            ContentVO contentVO = ContentController.getContentController().getContentVOWithId(siteNodeVO.getMetaInfoContentId(), db);
           
              //LanguageVO masterLanguage = LanguageController.getController().getMasterLanguage(contentVO.getRepositoryId(), db);
            //ContentVersion contentVersion = ContentVersionController.getContentVersionController().getLatestActiveContentVersion(contentVO.getContentId(), masterLanguage.getId(), db);
           
            if(sortProperty != null)
            {
              String[] sortOrders = sortProperty.split(",");
              for(int i=sortOrders.length - 1; i > -1; i--)
              {
                String sortOrderProperty = sortOrders[i].trim();
               
                if(sortOrderProperty.startsWith("extra:"))
                {
                  LanguageVO masterLanguage = LanguageController.getController().getMasterLanguage(contentVO.getRepositoryId(), db);
                  ContentVersion contentVersion = ContentVersionController.getContentVersionController().getLatestActiveContentVersion(contentVO.getContentId(), masterLanguage.getId(), db);
                  if(contentVersion != null)
                  {
                    sortOrderProperty = sortOrderProperty.substring(6);
                      String propertyValue = ContentVersionController.getContentVersionController().getAttributeValue(contentVersion.getValueObject(), sortOrderProperty, false);
                      siteNodeVO.getExtraProperties().put(sortOrderProperty, propertyValue);
     
                    if(isHiddenProperty != null && !isHiddenProperty.equals(""))
                    {
                        String hiddenProperty = ContentVersionController.getContentVersionController().getAttributeValue(contentVersion.getValueObject(), isHiddenProperty, false);
                        if(hiddenProperty == null || hiddenProperty.equals(""))
                          hiddenProperty = "false";
                       
                        siteNodeVO.getExtraProperties().put("isHidden", hiddenProperty);
                    }
                  }
                }
              }
            }
          }
          catch(Exception e)
          {
            logger.warn("The site node " + siteNodeVO.getName() + "[" + siteNodeVO.getId() + "] has problems: " + e.getMessage(), e);
          }
        }
      }
      */
         
      //Sort the tree nodes if setup to do so
      /*
          if(sortProperty != null)
      {
        String[] sortOrders = sortProperty.split(",");
        for(int i=sortOrders.length - 1; i > -1; i--)
        {
          String sortOrderProperty = sortOrders[i].trim();
          if(sortOrderProperty.startsWith("extra:"))
            sortOrderProperty = sortOrderProperty.substring(6);
           
          Collections.sort(childrenVOList, new SiteNodeComparator(sortOrderProperty, "asc", null));
         
          Iterator siteNodeChildrenIterator = childrenVOList.iterator();
          while(siteNodeChildrenIterator.hasNext())
          {
            SiteNodeVO vo = (SiteNodeVO) siteNodeChildrenIterator.next();
          }
        }
      }
      */

          Integer expectedSortOrder = 0;
         
      Iterator<SiteNodeVO> i = childrenVOList.iterator();
      while(i.hasNext())
      {
        SiteNodeVO vo = i.next();

        LanguageVO masterLanguageVO = LanguageController.getController().getMasterLanguage(vo.getRepositoryId(), db);

        boolean hasUserPageAccess = true;
        String useAccessRightsOnStructureTreeString = CmsPropertyHandler.getUseAccessRightsOnStructureTree();
        if(useAccessRightsOnStructureTreeString != null && useAccessRightsOnStructureTreeString.equalsIgnoreCase("true"))
          hasUserPageAccess = getHasUserPageAccess(this.infogluePrincipal, vo.getId());
       
        if(hasUserPageAccess)
        {
          BaseNode node =  new SiteNodeNodeImpl();
          node.setId(vo.getId());
          node.setTitle(vo.getName());
         
          Boolean isLanguageAvailable = SiteNodeController.getController().getIsLanguageAvailable(vo.getId(), this.sortLanguageId, db, this.infogluePrincipal);
          node.getParameters().put("isLanguageAvailable", "" + isLanguageAvailable);
         
          ContentVersionVO cvVO = ContentVersionController.getContentVersionController().getLatestActiveContentVersionVO(vo.getMetaInfoContentId(), this.sortLanguageId, db);
          if(cvVO != null)
          {
            node.getParameters().put("isLocalized", "true");
            String navigationTitle = ContentVersionController.getContentVersionController().getAttributeValue(cvVO, "NavigationTitle", true);
            node.setLocalizedTitle(navigationTitle);
          }
          else
          {
            node.getParameters().put("isLocalized", "false");
            if(this.sortLanguageId != null && masterLanguageVO.getId().intValue() != this.sortLanguageId.intValue())
            {
              ContentVersionVO masterCVVO = ContentVersionController.getContentVersionController().getLatestActiveContentVersionVO(vo.getMetaInfoContentId(), masterLanguageVO.getId(), db);
              if(masterCVVO != null)
              {
                String navigationTitle = ContentVersionController.getContentVersionController().getAttributeValue(masterCVVO, "NavigationTitle", true);
                node.setLocalizedTitle(navigationTitle);
              }
            }
          }
         
          if(vo.getIsHidden() != null)
            node.getParameters().put("isHidden", "" + vo.getIsHidden());

          if(vo.getStateId() != null)
          {
            if(vo.getStateId() != SiteNodeVersionVO.PUBLISHED_STATE)
            {
              Timer t = new Timer();
              Set<SiteNodeVersionVO> siteNodeVersionVOList = new HashSet<SiteNodeVersionVO>();
              Set<ContentVersionVO> contentVersionVOList = new HashSet<ContentVersionVO>();
             
              ProcessBean processBean = ProcessBean.createProcessBean(ViewListSiteNodeVersionAction.class.getName(), "" + infogluePrincipal.getName());
              SiteNodeVersionController.getController().getSiteNodeAndAffectedItemsRecursive(vo.getId(), SiteNodeVersionVO.WORKING_STATE, siteNodeVersionVOList, contentVersionVOList, false, false, infogluePrincipal, processBean, masterLanguageVO.getLocale(), -1);
              if(siteNodeVersionVOList.size() > 0 || contentVersionVOList.size() > 0)
                node.getParameters().put("stateId", "0");
              else
                node.getParameters().put("stateId", "" + vo.getStateId());
             
              RequestAnalyser.getRequestAnalyser().registerComponentStatistics("getSiteNodeAndAffectedItemsRecursive", t.getElapsedTime());
            }
            else
            {
              node.getParameters().put("stateId", "" + vo.getStateId());
            }
View Full Code Here

    try
    {
        this.infogluePrincipal = infogluePrincipal;
        this.languageVOList = LanguageController.getController().getLanguageVOList(repositoryId);

      Timer t = new Timer();
      if(repositoryId != null && repositoryId.intValue() > 0)
      {
        try
        {
          vo = ContentControllerProxy.getController().getRootContentVO(repositoryId, infogluePrincipal.getName());
        }
        catch (Exception e)
        {
          logger.warn("Not a valid repository");
        }
        BaseNode rootNode =  new ContentNodeImpl();
        rootNode.setChildren(true);
        rootNode.setId(vo.getId());
        rootNode.setTitle(vo.getName());
        rootNode.setContainer(vo.getIsBranch().booleanValue())
       
        setRootNode(rootNode);
      }
     
      if(logger.isDebugEnabled())
        t.printElapsedTime("root node processed");
    }
    catch (ConstraintException e)
    {
      e.printStackTrace();
    }
View Full Code Here

  public Collection getChildContainerNodes(Integer parentNode)
  {
    ArrayList ret = new ArrayList();
    cacheLeafs = new ArrayList();
   
    Timer t = new Timer();
    if(!logger.isInfoEnabled())
      t.setActive(false);
   
    List children = null;
    try
    {
      //children = ContentController.getContentController().getContentChildrenVOList(parentNode);
      children = ContentController.getContentController().getContentChildrenVOList(parentNode, this.languageVOList, allowedContentTypeIds, false);
      t.printElapsedTime("Getting children the new way took");
    }
    catch (ConstraintException e)
    {
      logger.warn("Error getting Content Children", e);
    }
    catch (SystemException e)
    {
      logger.warn("Error getting Content Children", e);
    }
   
    if(logger.isDebugEnabled())
      t.printElapsedTime("got children");
   
    //Filter list on content type names if set such is stated
    try
    {
        if(allowedContentTypeIds != null)
      {
            List filteredList = new ArrayList();
            Iterator iterator = children.iterator();
        while(iterator.hasNext())
        {
          ContentVO contentVO = (ContentVO) iterator.next();
          if(contentVO.getContentTypeDefinitionId() != null && !contentVO.getIsBranch().booleanValue())
          {
            try
            {
              ContentTypeDefinitionVO contentTypeDefinitionVO = ContentTypeDefinitionController.getController().getContentTypeDefinitionVOWithId(contentVO.getContentTypeDefinitionId());
              boolean exists = false;
              for(int i=0; i<allowedContentTypeIds.length; i++)
              {
                  String allowedId = allowedContentTypeIds[i];
                 
                  if(allowedId.equalsIgnoreCase(contentTypeDefinitionVO.getId().toString()))
                {
                      exists = true;
                      break;
                }
              }
 
              if(exists)
              {
                  filteredList.add(contentVO);
              }
            }
            catch (Exception e)
            {
              logger.warn("The content " + contentVO.getName() + " (" + contentVO.getId() + " ) points to a removed content type perhaps: " + e.getMessage());
            }
          }
          else
          {
              filteredList.add(contentVO);
          }
        }
       
        children = filteredList;
      }
    }
    catch(Exception e)
    {
        logger.warn("Error filtering Content Children", e);
    }
   
    if(logger.isDebugEnabled())
      t.printElapsedTime("Done filtering children");
       
    //Sort the tree nodes if setup to do so
    String sortProperty = CmsPropertyHandler.getContentTreeSort();
    if(sortProperty != null)
      Collections.sort(children, new ReflectionComparator(sortProperty));
    t.printElapsedTime("sorting children took");
   
    Iterator i = children.iterator();
    while(i.hasNext())
    {
      ContentVO vo = (ContentVO) i.next();
     
      boolean hasUserContentAccess = true;
      String useAccessRightsOnContentTreeString = CmsPropertyHandler.getUseAccessRightsOnContentTree();
      if(useAccessRightsOnContentTreeString != null && useAccessRightsOnContentTreeString.equalsIgnoreCase("true"))
        hasUserContentAccess = getHasUserContentAccess(this.infogluePrincipal, vo.getId());

      if(vo.getName().equals("Meta info folder"))
      {
        try
        {
          hasUserContentAccess = AccessRightController.getController().getIsPrincipalAuthorized(this.infogluePrincipal, "ContentTool.ShowMetaInfoFolders", false, true);
        }
        catch (Exception e)
        {
          logger.warn("Problem getting access to meta info:" + e.getMessage(), e);
        }
      }
      t.printElapsedTime("Access right took");
     
      if(hasUserContentAccess)
      {
        BaseNode node =  new ContentNodeImpl();
        node.setId(vo.getId());
        node.setTitle(vo.getName());
       
        //String disableCustomIcons = CmsPropertyHandler.getDisableCustomIcons();
        //if(disableCustomIcons == null || !disableCustomIcons.equals("true"))
          node.getParameters().put("contentTypeDefinitionId", vo.getContentTypeDefinitionId());
       
        if(vo.getIsProtected().intValue() == ContentVO.YES.intValue())
          node.getParameters().put("isProtected", "true");
       
        if(vo.getStateId() != null && vo.getStateId() < ContentVersionVO.PUBLISHED_STATE)
          node.getParameters().put("stateId", "" + vo.getStateId());
        t.printElapsedTime("Getting state took");
       
       
        /*
        try
        {
          Iterator languageVOListIterator = languageVOList.iterator();
          while(languageVOListIterator.hasNext())
          {
            LanguageVO languageVO = (LanguageVO)languageVOListIterator.next();
            ContentVersionVO latestContentVersion = ContentVersionController.getContentVersionController().getLatestActiveContentVersionVO(vo.getId(), languageVO.getId());
            if(latestContentVersion != null && !latestContentVersion.getStateId().equals(ContentVersionVO.PUBLISHED_STATE))
            {
              node.getParameters().put("stateId", "" + latestContentVersion.getStateId());             
              break;
            }
          }
        }
        catch (Exception e)
        {
          logger.warn("A problem when fecthing latest master content version: " + e.getMessage(), e);
        }
        */
       
        if (vo.getIsBranch().booleanValue())
        {
          node.setContainer(true);
          node.setChildren((vo.getChildCount().intValue() > 0));
         
          ret.add(node);
        }
        else if(showLeafs)
        {
          node.setContainer(false);
         
            cacheLeafs.add(node);       
        }
      }     
    }

    t.printElapsedTime("Done sorting children");

    return ret;
  }
View Full Code Here

    return assetUrl; 
  }

  public File dumpDigitalAsset(FormEntryAsset formEntryAsset, String fileName, String filePath) throws Exception
  {
    Timer timer = new Timer();
    File tmpOutputFile = new File(filePath + File.separator + Thread.currentThread().getId() + "_tmp_" + fileName);
    File outputFile = new File(filePath + File.separator + fileName);
    //logger.warn("outputFile:" + filePath + File.separator + fileName + ":" + outputFile.length());
    if(outputFile.exists())
    {
      //logger.warn("The file allready exists so we don't need to dump it again..");
      return outputFile;
    }

    try
    {
      InputStream inputStream = formEntryAsset.getAssetBlob();
      logger.info("inputStream:" + inputStream + ":" + inputStream.getClass().getName() + ":" + formEntryAsset);
      synchronized(inputStream)
      {
        logger.info("reading inputStream and writing to disk....");
       
        FileOutputStream fos = new FileOutputStream(tmpOutputFile);
        BufferedOutputStream bos = new BufferedOutputStream(fos);
        BufferedInputStream bis = new BufferedInputStream(inputStream);
       
        int character;
        int i=0;
            while ((character = bis.read()) != -1)
            {
          bos.write(character);
          i++;
            }
           
            if(i == 0)
              logger.info("Wrote " + i + " chars to " + fileName);
           
        bos.flush();
          fos.close();
        bos.close();
         
            bis.close();

            logger.info("done reading inputStream and writing to disk....");
      }
     
      logger.info("Time for dumping file " + fileName + ":" + timer.getElapsedTime());

      if(tmpOutputFile.length() == 0 || outputFile.exists())
      {
        logger.info("written file:" + tmpOutputFile.length() + " - removing temp and not renaming it...")
        tmpOutputFile.delete();
        logger.info("Time for deleting file " + timer.getElapsedTime());
      }
      else
      {
        logger.info("written file:" + tmpOutputFile.length() + " - renaming it to " + outputFile.getAbsolutePath())
        tmpOutputFile.renameTo(outputFile);
        logger.info("Time for renaming file " + timer.getElapsedTime());
     
    }
    catch (IOException e)
    {
      throw new Exception("Could not write file " + outputFile.getAbsolutePath() + " - error reported:" + e.getMessage(), e);
View Full Code Here

   * Se inline documentation for further explainations.
   */
 
    public SiteNodeVersionVO changeState(Integer oldSiteNodeVersionId, SiteNodeVO siteNodeVO, Integer stateId, String versionComment, boolean overrideVersionModifyer, String recipientFilter, InfoGluePrincipal infoGluePrincipal, Database db, List<EventVO> resultingEvents) throws ConstraintException, SystemException
    {
      Timer t = new Timer();
     
      SiteNodeVersionVO returnSiteNodeVersionVO = null;
    MediumSiteNodeVersionImpl returnSiteNodeVersionImpl = null;
   
        try
        {
      MediumSiteNodeVersionImpl oldMediumSiteNodeVersionImpl = SiteNodeVersionController.getController().getMediumSiteNodeVersionWithId(oldSiteNodeVersionId, db);
      returnSiteNodeVersionVO = oldMediumSiteNodeVersionImpl.getValueObject();
      //t.printElapsedTime("oldMediumSiteNodeVersionImpl:" + oldMediumSiteNodeVersionImpl.getSiteNodeId());
     
            //Here we create a new version if it was a state-change back to working, it's a copy of the publish-version
        if(stateId.intValue() == SiteNodeVersionVO.WORKING_STATE.intValue())
        {
          logger.info("About to create a new working version");
           
        SiteNodeVersionVO newSiteNodeVersionVO = new SiteNodeVersionVO();
          newSiteNodeVersionVO.setStateId(stateId);
        newSiteNodeVersionVO.setVersionComment("New working version");
        newSiteNodeVersionVO.setModifiedDateTime(DateHelper.getSecondPreciseDate());
        if(overrideVersionModifyer)
            newSiteNodeVersionVO.setVersionModifier(infoGluePrincipal.getName());
        else
            newSiteNodeVersionVO.setVersionModifier(oldMediumSiteNodeVersionImpl.getVersionModifier());
       
        newSiteNodeVersionVO.setContentType(oldMediumSiteNodeVersionImpl.getContentType());
        newSiteNodeVersionVO.setPageCacheKey(oldMediumSiteNodeVersionImpl.getPageCacheKey());
        newSiteNodeVersionVO.setPageCacheTimeout(oldMediumSiteNodeVersionImpl.getPageCacheTimeout());
        newSiteNodeVersionVO.setDisableEditOnSight(oldMediumSiteNodeVersionImpl.getDisableEditOnSight());
        newSiteNodeVersionVO.setDisableLanguages(oldMediumSiteNodeVersionImpl.getDisableLanguages());
        newSiteNodeVersionVO.setDisablePageCache(oldMediumSiteNodeVersionImpl.getDisablePageCache());
        newSiteNodeVersionVO.setIsProtected(oldMediumSiteNodeVersionImpl.getIsProtected());
        newSiteNodeVersionVO.setDisableForceIdentityCheck(oldMediumSiteNodeVersionImpl.getDisableForceIdentityCheck());
        newSiteNodeVersionVO.setForceProtocolChange(oldMediumSiteNodeVersionImpl.getForceProtocolChange());
        newSiteNodeVersionVO.setIsHidden(oldMediumSiteNodeVersionImpl.getIsHidden());
        newSiteNodeVersionVO.setSortOrder(oldMediumSiteNodeVersionImpl.getSortOrder());

        RequestAnalyser.getRequestAnalyser().registerComponentStatistics("changeState 1", t.getElapsedTime());

        //returnSiteNodeVersionVO = SiteNodeVersionController.createFull(siteNodeId, infoGluePrincipal, newSiteNodeVersionVO, db).getValueObject();
        returnSiteNodeVersionImpl = SiteNodeVersionController.createSmall(siteNodeVO.getId(), infoGluePrincipal, newSiteNodeVersionVO, db);
        returnSiteNodeVersionVO = returnSiteNodeVersionImpl.getValueObject();
       
        RequestAnalyser.getRequestAnalyser().registerComponentStatistics("changeState createSmall", t.getElapsedTime());
       
        returnSiteNodeVersionImpl.setSiteNodeId(oldMediumSiteNodeVersionImpl.getSiteNodeId());
       
        copyServiceBindings(oldMediumSiteNodeVersionImpl, returnSiteNodeVersionImpl, db);
        RequestAnalyser.getRequestAnalyser().registerComponentStatistics("changeState copyServiceBindings", t.getElapsedTime());
       
        if(returnSiteNodeVersionImpl.getIsProtected().intValue() == SiteNodeVersionVO.YES || returnSiteNodeVersionImpl.getIsProtected().intValue() == SiteNodeVersionVO.YES_WITH_INHERIT_FALLBACK)
        {
          copyAccessRights("SiteNodeVersion", oldMediumSiteNodeVersionImpl.getId(), returnSiteNodeVersionImpl.getId(), db);
          RequestAnalyser.getRequestAnalyser().registerComponentStatistics("changeState copyAccessRights", t.getElapsedTime());
        }
      }
 
        //If the user changes the state to publish we create a copy and set that copy to publish.
        if(stateId.intValue() == SiteNodeVersionVO.PUBLISH_STATE.intValue())
        {
          logger.info("About to copy the working copy to a publish-one");
          //First we update the old working-version so it gets a comment
         
          //SiteNodeVersionVO oldSiteNodeVersionVO = oldSiteNodeVersion.getValueObject();
        oldMediumSiteNodeVersionImpl.setVersionComment(versionComment);
 
        if(CmsPropertyHandler.getUseApprovalFlow().equals("true"))
        {
            //Now we create a new version which is basically just a copy of the working-version       
            SiteNodeVersionVO newSiteNodeVersionVO = new SiteNodeVersionVO();
            newSiteNodeVersionVO.setSiteNodeId(siteNodeVO.getId());
            newSiteNodeVersionVO.setStateId(stateId);
            newSiteNodeVersionVO.setVersionComment(versionComment);
          if(overrideVersionModifyer)
              newSiteNodeVersionVO.setVersionModifier(infoGluePrincipal.getName());
          else
              newSiteNodeVersionVO.setVersionModifier(oldMediumSiteNodeVersionImpl.getVersionModifier());
         
          newSiteNodeVersionVO.setModifiedDateTime(DateHelper.getSecondPreciseDate());
           
          newSiteNodeVersionVO.setContentType(oldMediumSiteNodeVersionImpl.getContentType());
          newSiteNodeVersionVO.setPageCacheKey(oldMediumSiteNodeVersionImpl.getPageCacheKey());
          newSiteNodeVersionVO.setPageCacheTimeout(oldMediumSiteNodeVersionImpl.getPageCacheTimeout());
          newSiteNodeVersionVO.setDisableEditOnSight(oldMediumSiteNodeVersionImpl.getDisableEditOnSight());
          newSiteNodeVersionVO.setDisableLanguages(oldMediumSiteNodeVersionImpl.getDisableLanguages());
          newSiteNodeVersionVO.setDisablePageCache(oldMediumSiteNodeVersionImpl.getDisablePageCache());
          newSiteNodeVersionVO.setIsProtected(oldMediumSiteNodeVersionImpl.getIsProtected());
          newSiteNodeVersionVO.setDisableForceIdentityCheck(oldMediumSiteNodeVersionImpl.getDisableForceIdentityCheck());
          newSiteNodeVersionVO.setForceProtocolChange(oldMediumSiteNodeVersionImpl.getForceProtocolChange());
          newSiteNodeVersionVO.setIsHidden(oldMediumSiteNodeVersionImpl.getIsHidden());
          newSiteNodeVersionVO.setSortOrder(oldMediumSiteNodeVersionImpl.getSortOrder());

          RequestAnalyser.getRequestAnalyser().registerComponentStatistics("changeState publish1", t.getElapsedTime());
 
          //returnSiteNodeVersionVO = SiteNodeVersionController.createFull(siteNodeId, infoGluePrincipal, newSiteNodeVersionVO, db).getValueObject();
          returnSiteNodeVersionImpl = SiteNodeVersionController.createSmall(siteNodeVO.getId(), infoGluePrincipal, newSiteNodeVersionVO, db);
          RequestAnalyser.getRequestAnalyser().registerComponentStatistics("changeState publish createSmall", t.getElapsedTime());
          returnSiteNodeVersionVO = returnSiteNodeVersionImpl.getValueObject();
         
          //returnSiteNodeVersionVO.setSiteNodeId(oldSiteNodeVersion.getValueObject().getSiteNodeId());
          //copyServiceBindings(oldSiteNodeVersion, newSiteNodeVersion, db);
          if(returnSiteNodeVersionImpl.getIsProtected().intValue() == SiteNodeVersionVO.YES || returnSiteNodeVersionImpl.getIsProtected().intValue() == SiteNodeVersionVO.YES_WITH_INHERIT_FALLBACK)
          {
            copyAccessRights("SiteNodeVersion", oldMediumSiteNodeVersionImpl.getId(), returnSiteNodeVersionImpl.getId(), db);
            RequestAnalyser.getRequestAnalyser().registerComponentStatistics("changeState publish copyAccessRights", t.getElapsedTime());
          }
 
          //Creating the event that will notify the editor...
          EventVO eventVO = new EventVO();
          eventVO.setDescription(returnSiteNodeVersionImpl.getVersionComment());
          eventVO.setEntityClass(SiteNodeVersion.class.getName());
          eventVO.setEntityId(new Integer(returnSiteNodeVersionImpl.getId().intValue()));
              eventVO.setName(siteNodeVO.getName());
          eventVO.setTypeId(EventVO.PUBLISH);
              eventVO = EventController.create(eventVO, siteNodeVO.getRepositoryId(), infoGluePrincipal, db);     
             
              eventVO.setName(siteNodeVO.getName());
         
          resultingEvents.add(eventVO);
        }
        else
        {
          oldMediumSiteNodeVersionImpl.setVersionComment(versionComment);

          //Creating the event that will notify the editor...
          EventVO eventVO = new EventVO();
          eventVO.setDescription(oldMediumSiteNodeVersionImpl.getVersionComment());
          eventVO.setEntityClass(SiteNodeVersion.class.getName());
          eventVO.setEntityId(new Integer(oldMediumSiteNodeVersionImpl.getId().intValue()));
              eventVO.setName(siteNodeVO.getName());
          eventVO.setTypeId(EventVO.PUBLISH);
              eventVO = EventController.create(eventVO, siteNodeVO.getRepositoryId(), infoGluePrincipal, db);     
             
              eventVO.setName(siteNodeVO.getName());
         
          resultingEvents.add(eventVO);
        }
       
        //if(recipientFilter != null && !recipientFilter.equals(""))
        //  PublicationController.mailPublishNotification(resultingEvents, siteNodeVO.getRepositoryId(), infoGluePrincipal, recipientFilter, db);
 
        RequestAnalyser.getRequestAnalyser().registerComponentStatistics("changeState publish create event", t.getElapsedTime());
        }
 
        if(stateId.intValue() == SiteNodeVersionVO.PUBLISHED_STATE.intValue())
        {
          logger.info("About to publish an existing version");
          oldMediumSiteNodeVersionImpl.setStateId(stateId);
          oldMediumSiteNodeVersionImpl.setIsActive(new Boolean(true));
          returnSiteNodeVersionImpl = oldMediumSiteNodeVersionImpl;
        }

        if(stateId.intValue() != SiteNodeVersionVO.PUBLISH_STATE.intValue() || CmsPropertyHandler.getUseApprovalFlow().equals("true"))
      {
          changeStateOnMetaInfo(db, siteNodeVO, returnSiteNodeVersionImpl.getValueObject(), stateId, versionComment, overrideVersionModifyer, infoGluePrincipal, resultingEvents);
        RequestAnalyser.getRequestAnalyser().registerComponentStatistics("changeState changeStateOnMetaInfo", t.getElapsedTime());
      }
        }
        catch(Exception e)
        {
          e.printStackTrace();
View Full Code Here

     * @throws SystemException
     * @throws Exception
     */
    public void changeStateOnMetaInfo(Database db, SiteNodeVO snVO, SiteNodeVersionVO siteNodeVersionVO, Integer stateId, String versionComment, boolean overrideVersionModifyer, InfoGluePrincipal infoGluePrincipal, List events) throws ConstraintException, SystemException, Exception
    {
      Timer t = new Timer();
      if(snVO == null)
        return;
     
        List<LanguageVO> languages = LanguageController.getController().getAvailableLanguageVOListForRepository(snVO.getRepositoryId(), db);
    RequestAnalyser.getRequestAnalyser().registerComponentStatistics("getAvailableLanguageVOListForRepository..", t.getElapsedTime());
        LanguageVO masterLanguage = LanguageController.getController().getMasterLanguage(snVO.getRepositoryId(), db);
    RequestAnalyser.getRequestAnalyser().registerComponentStatistics("getMasterLanguage..", t.getElapsedTime());

      ContentVO contentVO = null;
      if(snVO.getMetaInfoContentId() != null)
      {
        try
        {
          contentVO = ContentController.getContentController().getSmallContentVOWithId(snVO.getMetaInfoContentId(), db, null);
        }
        catch (Exception e)
        {
          if(e.getCause().getClass().getName().equals(ObjectNotFoundException.class.getName()))
          {
            logger.error("No meta info found on " + snVO.getId() + ". Returning as if ok.");
            return;
          }
      }
      }
      else
      {
          logger.warn("There was no metaInfoContentId on the siteNode... run validation to improve performance..");

          Integer metaInfoAvailableServiceBindingId = null;
        Integer serviceBindingId = null;
        AvailableServiceBindingVO availableServiceBindingVO = AvailableServiceBindingController.getController().getAvailableServiceBindingVOWithName("Meta information", db);
        if(availableServiceBindingVO != null)
          metaInfoAvailableServiceBindingId = availableServiceBindingVO.getAvailableServiceBindingId();

          logger.info("after loading service binding for meta info");

        List<SmallServiceBindingImpl> serviceBindings = ServiceBindingController.getController().getSmallServiceBindingsListForSiteNodeVersion(siteNodeVersionVO.getSiteNodeVersionId(), db);
        Iterator<SmallServiceBindingImpl> serviceBindingIterator = serviceBindings.iterator();
        while(serviceBindingIterator.hasNext())
        {
          SmallServiceBindingImpl serviceBinding = serviceBindingIterator.next();
          if(serviceBinding.getAvailableServiceBinding().getId().intValue() == metaInfoAvailableServiceBindingId.intValue())
          {
            serviceBindingId = serviceBinding.getId();
            break;
          }
        }

        if(serviceBindingId != null)
        {
          List boundContents = ContentController.getBoundContents(db, serviceBindingId);
          logger.info("boundContents:" + boundContents.size());
          if(boundContents.size() > 0)
          {
            contentVO = (ContentVO)boundContents.get(0);
            logger.info("contentVO:" + contentVO.getId());
          }
        }
      }
    RequestAnalyser.getRequestAnalyser().registerComponentStatistics("getSmallContentVOWithId..", t.getElapsedTime());

      if(contentVO != null)
      {       
      Iterator<LanguageVO> languageIterator = languages.iterator();
      while(languageIterator.hasNext())
View Full Code Here

   * This method assigns the same access rights as the old content-version has.
   */
 
  public void copyAccessRights(String interceptionPointCategory, Integer originalSiteNodeVersionId, Integer newSiteNodeVersionId, Database db) throws ConstraintException, SystemException, Exception
  {
    Timer t = new Timer();
   
    List<InterceptionPoint> interceptionPointList = InterceptionPointController.getController().getInterceptionPointList(interceptionPointCategory, db);
    List accessRightList = AccessRightController.getController().getAccessRightListForEntity(interceptionPointList, originalSiteNodeVersionId.toString(), db, true);

    logger.info("accessRightList:" + accessRightList.size());
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.