This page provides answers to Frequently Asked Questions. Related discussion pages include:
According to Wikipedia:
There are numerous reasons for JAMWiki to exist, but one of the most important is to provide a solid Wiki platform built with J2EE technologies. Every language has benefits and disadvantages, and Java is no different. At present Java has excellent support from application server vendors and database vendors that make it the preferred solution among commercial users. There is a large community that supports the Java language, allowing options that may not be available with a PHP-based system. JDBC for database compatibility, standardized tag libraries, support from numerous application servers, etc., are just a few reasons for choosing a Java-based Wiki.
As to why feature-parity with Mediawiki is important, at the present time Wikipedia is the largest Wiki site available, and thousands and thousands of users are already comfortable with the Mediawiki software. Mediawiki has had time to refine many features that are important for a successful Wiki, so following their lead seems like an excellent starting point. Feature-parity with Mediawiki does not mean that JAMWiki will not offer its own unique features (it already has many), but it is a good goal for defining what direction the software should be moving towards.
Due to its Java architecture JAMWiki supports almost any J2EE application server, and most JDBC 3.0-compliant databases. It can also be easily integrated with other Java programs. Other specific features that differentiate JAMWiki from Mediawiki include:
By default JAMWiki implements the same syntax as Mediawiki, the software that runs sites like Wikipedia and WikiTravel. Note that while the vast majority of the Mediawiki syntax set is currently supported, a handful of tags are not yet implemented - see the Roadmap for details. In addition, developers interested in adding support for an alternate parsing syntax can easily implement their own parser by creating a class that extends the AbstractParser class.
At the present time JAMWiki supports the majority of the Mediawiki syntax including:
Currently translations are available for the following languages:
Note that some translations are more complete than others. Individuals interested in translating JAMWiki to their own language are encouraged to do so - see How to Help for details.
See About JAMWiki for details of JAMWiki's naming, formative years, and (hopefully) glorious future. For those not willing to read the full story, the quick summary is that alcohol was involved.
You must be logged-in as an administrator, after which you'll see a "Manage" tab at the top of the page. From that tab there is an option to delete the topic.
Logged-in users are provided a watchlist that functions like the Mediawiki watchlist. There is some documentation on this feature at wikipedia:Help:Watching pages. Note that email notifications are currently NOT supported (as of JAMWiki 1.2.0).
Bug reports can be made by adding an entry to the JIRA bug tracker - please include any relevant information from your logs and steps to reproduce. Feature requests can be made by adding an entry to to Feature Requests page. For those requesting a feature that they will not personally implement, persistence is important, so if you really want to see something added follow-up regularly; knowing that someone is very interested in something increases the odds of it getting developer attention. Finally, to ask a question, provide general feedback, or merely say "this works!", use the Feedback page - positive feedback is always appreciated, constructive criticism will be considered and acted upon, and nasty, negative comments will be completely disregarded.
See Mailing lists.
At a minimum JAMWiki requires a web application server that supports Java 5 or higher, servlet 2.5 or higher, and JSP 2.1 or higher. Tomcat 5.5 or greater is an example of an application server that meets these requirements. While JAMWiki can be run without an external database, for better performance an external database should be considered, and JDBC 3.0 or greater support is needed.
See Installation. A quick summary is that you can download the JAMWiki war file from Sourceforge and then install it as an exploded WAR file. JAMWiki will automatically begin the configuration process when you attempt to look at any page.
See Installation#Upgrades for specific upgrade steps. The process for a JAMWiki upgrade and a JAMWiki installation are not the same! Be sure to follow the upgrade steps when upgrading to avoid losing data or breaking your wiki.
Note that it is possible to upgrade JAMWiki across multiple versions - for example, despite the fact that several intermediate versions exist, it is possible to upgrade a JAMWiki 0.7.1 installation by installing the JAMWiki 0.9.0 WAR file and following the upgrade steps. If you encounter any problems please report the error on the Feedback page. In general automatic upgrades are supported for only two major revisions, so while it would be possible to upgrade from 0.7.0 to 0.9.0, upgrading from 0.6.0 to 0.9.0 would require first upgrading to an intermediate release such as 0.7.0, and then upgrading to 0.9.0.
Starting with JAMWiki 0.7.0 the release numbering has followed these rules:
Beta releases are occasionally made available, particularly in the lead-up to the release of a new major version. A beta release will be made only after all planned changes to the database schema have been implemented. While not suitable for production use, beta releases should generally be relatively stable since the latest code will usually already be running on jamwiki.org.
The latest JAMWiki trunk code (as of September 2010) is powering sites with over 225,000 topic records, nearly 2.4 million topic versions, and about 45,000 images. A customized JAMWiki implementation was created by a user who wanted to experiment with the data from Wikipedia that loaded and rendered over 2.2 million topics. Note that users with thousands of topics or who expect high loads should strongly consider using an external database rather than the version of HSQL that is pre-packaged with JAMWiki in order to maximize performance.
In terms of page delivery, JAMWiki uses Ehcache, database optimizations, and numerous other methods to improve performance. While stress tests have not been performed to determine maximum loads, misconfigured search spiders that have generated multiple page requests per second have not caused any noticeable deterioration of site performance. Be aware that, as with any software, many factors including the content being rendered, hardware, etc will affect specific performance results.
Files such as images, binary files, or text uploads are renamed with a unique name and path and stored directly on the file system under the web server or web application server docroot. The base docroot folder is configurable using the JAMWiki admin tool.
This does not apply to the topic content that is stored inside the database using MediaWiki format.
Since JAMWiki version 1.3.x permissions can be managed at the group or user level. You can create one or more group, assign them specific permissions and assign users to the groups. Notice that user assignement to the pre-defined groups anonymous and registered users is managed by the system. You can assign users only to groups that you have defined yourself. You can also assign permissions directly to a user. This enables you a fine granularity for permission management. For example, it is possible to allow non-logged in users to view pages but prevent them from editing, or to allow only one or two trusted users to manage system settings. See the configuration guide for more information.
JAMWiki integrates with Spring Security, and thus supports LDAP, fine-grained access, and other capabilities via a configuration file.
Due to license differences between MediaWiki and JAMWiki (MediaWiki is GPL, JAMWiki is LGPL) the MediaWiki database schema was not examined during JAMWiki development, and as a result the two products most likely differ significantly in their database layout. XML import and XML export tools exist to allow MediaWiki content to be imported into JAMWiki and vice-versa.
For installations that do not use an external database, JAMWiki ships with a pre-configured version of the HSQL database. Using this internal database requires no additional configuration from users and will store files on the local filesystem within HSQL. Note that these files are NOT stored as plain-text files.
At the present time JAMWiki does not support the concept of skins, although it is possible to customize the look & feel of a site by modifying the StyleSheet, LeftMenu and BottomArea topics. Support for skins will likely be added in the future, but it may not be possible to exactly copy Mediawiki's skin implementation due to licensing issues (Mediawiki is GPL while JAMWiki is licensed under the LGPL).
Please report all bugs, errors, etc. in the JIRA bug tracker or on the Feedback page. If possible include any relevant messages from your jamwiki.log file; the location of the jamwiki.log file is specified in the
/WEB-INF/classes/logback.xml file by the
LOG_DIR value - by default logs are written to your application server's temporary directory (for example /temp in Tomcat).
The only way to revert to a previous version of the JAMWiki software is to restore from backup. To revert a topic version, view the topic history by clicking on the "History" tab, select the version to be restored by clicking on the date for the given version, and then edit that version and re-save. The old version will now be current.
As of JAMWiki 0.6.6 there is a new option to export JAMWiki data from either the HSQL internal database or any other database to another database instance using tools on the Special:Maintenance screen. The Special:Export and Special:Import tools can also be used to import and export individual topics in XML format.
The "internal database" setting uses HSQL. A Google search will provide options for accessing an HSQL database. Connection settings are:
user: sa password: no password (leave blank) url: jdbc:hsqldb:file:path-to-your-database-files
Note that the URL must specify the path on the filesystem to the HSQL database - this will be located in the
/database folder of your wiki file-system directory. For example, on Windows a sample URL would be:
From JAMWiki version 1.1, you can configure an alternate search engine, the RankingAlgorithm search engine instead of the default Lucene search engine. You can configure this using the admin GUI, click on Admin, scroll down to SearchEngine in the Configuration/General settings tab and choose RankingAlgorithm Search Engine from the drop down menu. You can download RankingAlgorithm search engine from here, http://rankingalgorithm.tgels.com. Copy rankingalgorithm.jar file into WEB-INF/lib folder and restart JAMWiki application. RankingAlgorithm uses the existing Lucene index but ranks and scores documents differently, so no changes are needed other than choosing the RankingAlgorithm Search Engine as the default search engine.
The Roadmap has a list of features that are planned for future JAMWiki releases. If there is a particular feature that you feel is missing or that might be useful, please add a description of the feature on the Feature Requests page. If you are interested in helping to implement new features please see the How to Help page.
Please see Tech:JAMWiki Design, which attempts to provide a high-level overview of the JAMWiki architecture. Javadoc is also available. Note that these may be out of date, but requesting an update on the Feedback page will often lead to them getting some attention.
One of JAMWiki's goals is to be able to run on older application servers, and as a result all JAMWiki code is currently Java 5 and Servlet 2.5 compatible. Many businesses and institutions upgrade their application servers only when they have to, and as a result there is a large base of servers that will not support newer JDKs. JAMWiki began requiring Java 5+ with the release of JAMWiki 0.8.0, since JDK 1.4 had completed its end-of-life period on 30-October-2008. Currently the roadmap calls for requiring Java 6+ for JAMWiki 2.0 since Java 5 reached its end-of-life on October 8, 2009 and many of JAMWiki's core dependencies, such as the Spring Framework and Lucene, have announced plans to require Java 6+ in upcoming releases.
Feel free to post any new questions by clicking the "Edit" link and adding your question. For specific questions (those that aren't frequently asked questions) please use the Feedback page.