code: public void copyResource(String source, String destination, CmsResource.CmsResourceCopyMode siblingMode)
      throws CmsException, CmsIllegalArgumentException {
  
          CmsResource resource = readResource(source, CmsResourceFilter.IGNORE_EXPIRATION);
          getResourceType(resource).copyResource(this, m_securityManager, resource, destination, siblingMode);
      }
docs: Copies a resource.<p>
  
  The copied resource will always be locked to the current user
  after the copy operation.<p>
  
  The <code>siblingMode</code> parameter controls how to handle siblings
  during the copy operation.<br>
  Possible values for this parameter are: <br>
  <ul>
  <li><code>{@link CmsResource#COPY_AS_NEW}</code></li>
  <li><code>{@link CmsResource#COPY_AS_SIBLING}</code></li>
  <li><code>{@link CmsResource#COPY_PRESERVE_SIBLING}</code></li>
  </ul><p>
  
  @param source the name of the resource to copy (full current site relative path)
  @param destination the name of the copy destination (full current site relative path)
  @param siblingMode indicates how to handle siblings during copy
  
  @throws CmsException if something goes wrong
  @throws CmsIllegalArgumentException if the <code>destination</code> argument is null or of length 0