Class VersioningFileProvider

java.lang.Object
org.apache.wiki.providers.AbstractFileProvider
org.apache.wiki.providers.VersioningFileProvider
All Implemented Interfaces:
org.apache.wiki.api.providers.PageProvider, org.apache.wiki.api.providers.WikiProvider

Provides a simple directory based repository for Wiki pages. Pages are held in a directory structure:
    Main.txt
    Foobar.txt
    OLD/
       Main/
          1.txt
          2.txt
          page.properties
       Foobar/
          page.properties
  
In this case, "Main" has three versions, and "Foobar" just one version.

The properties file contains the necessary metainformation (such as author) information of the page. DO NOT MESS WITH IT!

All files have ".txt" appended to make life easier for those who insist on using Windows or other software which makes assumptions on the files contents based on its name.

  • Field Details

  • Constructor Details

  • Method Details

    • initialize

      public void initialize(org.apache.wiki.api.core.Engine engine, Properties properties) throws org.apache.wiki.api.exceptions.NoRequiredPropertyException, IOException
      Specified by:
      initialize in interface org.apache.wiki.api.providers.WikiProvider
      Overrides:
      initialize in class AbstractFileProvider
      Throws:
      FileNotFoundException - If the specified page directory does not exist.
      IOException - In case the specified page directory is a file, not a directory.
      org.apache.wiki.api.exceptions.NoRequiredPropertyException
    • getPageText

      public String getPageText(String page, int version) throws org.apache.wiki.api.exceptions.ProviderException
      This implementation just returns the current version, as filesystem does not provide versioning information for now.
      Specified by:
      getPageText in interface org.apache.wiki.api.providers.PageProvider
      Overrides:
      getPageText in class AbstractFileProvider
      Throws:
      org.apache.wiki.api.exceptions.ProviderException
    • putPageText

      public void putPageText(org.apache.wiki.api.core.Page page, String text) throws org.apache.wiki.api.exceptions.ProviderException
      Specified by:
      putPageText in interface org.apache.wiki.api.providers.PageProvider
      Overrides:
      putPageText in class AbstractFileProvider
      Throws:
      org.apache.wiki.api.exceptions.ProviderException
    • getPageInfo

      public org.apache.wiki.api.core.Page getPageInfo(String page, int version) throws org.apache.wiki.api.exceptions.ProviderException
      Always returns the latest version, since FileSystemProvider does not support versioning.
      Specified by:
      getPageInfo in interface org.apache.wiki.api.providers.PageProvider
      Overrides:
      getPageInfo in class AbstractFileProvider
      Throws:
      org.apache.wiki.api.exceptions.ProviderException
    • pageExists

      public boolean pageExists(String pageName, int version)
      Specified by:
      pageExists in interface org.apache.wiki.api.providers.PageProvider
      Overrides:
      pageExists in class AbstractFileProvider
    • getVersionHistory

      public List<org.apache.wiki.api.core.Page> getVersionHistory(String page) throws org.apache.wiki.api.exceptions.ProviderException
      The FileSystemProvider provides only one version.
      Specified by:
      getVersionHistory in interface org.apache.wiki.api.providers.PageProvider
      Overrides:
      getVersionHistory in class AbstractFileProvider
      Throws:
      org.apache.wiki.api.exceptions.ProviderException
    • deletePage

      public void deletePage(String page) throws org.apache.wiki.api.exceptions.ProviderException
      Removes the relevant page directory under "OLD" -directory as well, but does not remove any extra subdirectories from it. It will only touch those files that it thinks to be WikiPages.
      Specified by:
      deletePage in interface org.apache.wiki.api.providers.PageProvider
      Overrides:
      deletePage in class AbstractFileProvider
      Parameters:
      page -
      Throws:
      org.apache.wiki.api.exceptions.ProviderException
    • deleteVersion

      public void deleteVersion(String page, int version) throws org.apache.wiki.api.exceptions.ProviderException
      Deleting versions has never really worked, JSPWiki assumes that version histories are "not gappy". Using deleteVersion() is definitely not recommended.
      Specified by:
      deleteVersion in interface org.apache.wiki.api.providers.PageProvider
      Overrides:
      deleteVersion in class AbstractFileProvider
      Throws:
      org.apache.wiki.api.exceptions.ProviderException
    • getAllPages

      public Collection<org.apache.wiki.api.core.Page> getAllPages() throws org.apache.wiki.api.exceptions.ProviderException
      Specified by:
      getAllPages in interface org.apache.wiki.api.providers.PageProvider
      Overrides:
      getAllPages in class AbstractFileProvider
      Throws:
      org.apache.wiki.api.exceptions.ProviderException
    • getProviderInfo

      Specified by:
      getProviderInfo in interface org.apache.wiki.api.providers.WikiProvider
      Overrides:
      getProviderInfo in class AbstractFileProvider
    • movePage

      public void movePage(String from, String to)