Current development on JAMWiki is primarily focused on maintenance rather than new features due to a lack of developer availability. If you are interested in working on JAMWiki please join the jamwiki-devel mailing list.

Tech:CodebaseGuide

Overview[edit]

JAMWiki has a large codebase, so finding some things can be time consuming. Here are some pointers to find some functionalities inside the project structure.

Links[edit]

  • Mapping between URL's and Servlet's:
    • Location: jamwiki-war\src\main\webapp\WEB-INF
    • File: jamwiki-servlet.xml
  • Definition of filters, hostname mapping:
    • Location: jamwiki-war\src\main\webapp\WEB-INF
    • File: web.xml
  • Servlets folder
    • Location: jamwiki-web\src\main\java\org\jamwiki\servlets
    • Base servlet: JamWikiServlet
  • JSP Folder:
    • Location: jamwiki-war\src\main\webapp\WEB-INF\jsp
    • Base jsp: wiki.jsp
    • Main jsp: jamwiki-war\src\main\webapp\index.jsp
      • Not sure if it is controlled here on in the Filter if the initialization is done
  • Taglibs: They are code extensions that can be used in .jsp files
    • Location: jamwiki-web\src\main\java\org\jamwiki\taglibs
    • Links: This classes usually model links. When parsed, they usually refer to org.jamwiki.utils.LinkUtil, which is the class responsible for internally processing links
  • WikiMessages: Messages in the form parser.core.error or similar that appear through the code
    • Location: C:\workspace\jamwiki\jamwiki-war\src\main\resources
    • File: ApplicationResources.properties
  • SpecialPages: The only pages loaded when the .war is deployed
    • Location: C:\workspace\jamwiki\jamwiki-war\src\main\resources\pages
  • Important definitions, like parser used, search engine, namespaces, pseudotopics:
    • Location: jamwiki-war\src\main\resources
    • File: jamwiki-configuration.xml
  • Logging settings, to force more or less verbosity:
    • Location: jamwiki-war\src\main\resources
    • File: logging.properties
  • Some settings like logo, default topic, types blacklist, ...
    • Location: jamwiki-core\src\main\java\org\jamwiki
    • File: Enviroment.java
  • Lexer regexps and Parser rules for JFlex
    • Location: jamwiki-core\src\main\jflex
    • Files: jamwiki-(pre|post|splice|_)procesor.jflex