code: public static Map<String, CmsXmlContentProperty> getPropertyInfo(
          CmsObject cms,
          CmsResource page,
          CmsResource resource)
      throws CmsException {
  
          if (CmsResourceTypeXmlContent.isXmlContent(resource)) {
              I_CmsXmlContentHandler contentHandler = CmsXmlContentDefinition.getContentHandlerForResource(cms, resource);
              Map<String, CmsXmlContentProperty> propertiesConf = contentHandler.getSettings(cms, resource);
              CmsXmlContent content = CmsXmlContentFactory.unmarshal(cms, cms.readFile(resource));
              CmsMacroResolver resolver = getMacroResolverForProperties(cms, contentHandler, content, null, page);
              return resolveMacrosInProperties(propertiesConf, resolver);
          }
          return Collections.<String, CmsXmlContentProperty> emptyMap();
      }
docs: Returns the property information for the given resource (type) AND the current user.<p>
  
  @param cms the current CMS context
  @param page the current container page
  @param resource the resource
  
  @return the property information
  
  @throws CmsException if something goes wrong