code: public void setCacheContainerPage(String key, CmsXmlContainerPage containerPage, boolean online) {
  
          try {
              m_lock.writeLock().lock();
              //System.out.println("caching page:" + containerPage.getFile().getRootPath());
  
              if (online) {
                  m_containerPagesOnline.put(key, containerPage);
                  if (LOG.isDebugEnabled()) {
                      LOG.debug(
                          Messages.get().getBundle().key(
                              Messages.LOG_DEBUG_CACHE_SET_ONLINE_2,
                              new Object[] {key, containerPage}));
                  }
              } else {
                  m_containerPagesOffline.put(key, containerPage);
                  if (LOG.isDebugEnabled()) {
                      LOG.debug(
                          Messages.get().getBundle().key(
                              Messages.LOG_DEBUG_CACHE_SET_OFFLINE_2,
                              new Object[] {key, containerPage}));
                  }
              }
          } finally {
              m_lock.writeLock().unlock();
          }
      }
docs: Caches the given container page under the given key and for the given project.<p>
  
  @param key the cache key
  @param containerPage the object to cache
  @param online if to cache in online or offline project