Active development of JAMWiki has ceased, and bug fixes and support will be limited at best. If you are interested in taking over management of JAMWiki please send an email to the jamwiki-devel mailing list.

Comments:JAMWiki 0.0.7


JAMWiki 0.0.7

Archived from the Feedback page:

JAMWiki 0.0.7 no longer loads the stylesheet inline - the new code is currently running on, and the separate stylesheet can be viewed at The stylesheet is still a JAMWiki topic, and can be edited by editing the StyleSheet topic. The cache headers for the stylesheet are set so that the file is cached in the browser, which may need to be changed since edits to the stylesheet won't be immediately reflected in the browser. I need to think about this some more, but let me know if you have any ideas. In addition, I'm debating whether it's worthwhile having a separate stylesheet to keep styles added for a specific site separate from the styles that are required by JAMWiki. At the moment I don't think it's needed, but if anyone has ideas, this is the place to post them.

I'll probably work on removing the current topic locking code next, although if any bug reports are made then bugfixes will take priority. The current 0.0.7 beta code can be downloaded from -- Ryan 15-Jul-2006 11:02 PDT

The topic locking code is gone, and a new beta is available at If an edit conflict occurs then the second user will be asked to resolve the conflict. This code is now running on, and I'd like to take a day or so to test it before putting out an official JAMWiki 0.0.7 release. -- Ryan 16-Jul-2006 20:26 PDT

Failed to create new article

Archived from the Feedback page:

Hi! I cant create new article: [1], i have "A system error has occurred. The error message is:"

And also, can you check please how you decode URL? I have troubles with non-english charasters in article name :(

-- AleXis

The new topic locking code had a bug that broke new article creation - that's now fixed on and in the source code repository. I'll look into the issue with non-English topic names and see if I can get that resolved soon, too. Thanks for the reports! -- Ryan 17-Jul-2006 09:36 PDT
I think I've found the problem with non-ISO-8859-1 characters, but it may take a while to figure out a solution. Hopefully by this afternoon it will be fixed. Sorry about the trouble! -- Ryan 17-Jul-2006 10:12 PDT
The fix to this one turned out to be more evil than normal, so I'd like to test on a few different application servers before making the JAMWiki 0.0.7 release. If anyone else is interested in testing the latest code is at I've tested on Tomcat and things seem OK (see Jyväskylä) but some additional configuration was required for Tomcat and the database to support UTF-8 (see Installation). I'll try setting up Websphere later today to test on that as well. -- Ryan 17-Jul-2006 15:24 PDT

I've tested it (Resin+H2), it works, great!! :)) Thank you very much! About database support - H2 database supports Unicode as native java application. Also i have checked that on my home configuration i can edit AdminOnlyTopics while i am not logged in, and still it "forgets" about admin checkbox after logoff. Also i've found that some version in version history cannot be viewed (null) (on this site this thing version history correctly). I will try to collect more info with source code when i have few free hours.

  1. May be add button "Revert to version" on History page for quickest version control?
  2. About topic naming, as i am understand in MediaWiki if we will try to browse topic "ToPiC" we will be redirected to "Topic", so it is same. Do you have such feature in you plains?

I've changed some CSS, pls update it in install :)

-- AleXis

Thanks for testing! Different application servers handle UTF-8 differently, so it's good to know that Resin is OK. Tomcat seems to work, and I'm trying to get Websphere working as well although that has required some additional fixes. If it works on Resin, Tomcat and Websphere then that should be enough testing to declare it OK for the 0.0.7 release.
I'll add your stylesheet changes to the source repository later tonight and try to (hopefully) get the 0.0.7 release out sometime tomorrow. I'll look into the login issues, but it may have to wait for 0.0.8 if I can't figure it out. It will get fixed one way or another ;) The toPic vs. Topic issue is one that's on the todo list, I just haven't done it yet - soon! And the revert thing is something that can probably be done like Mediawiki where old previous versions can be re-saved from the "History" tab - feel free to add it to the Roadmap and I'll get to it. Thanks again for all of the help! -- Ryan 17-Jul-2006 20:04 PDT

Thank you for your work!

Pls check Building_from_Source - i've changed SVN path (because wiki subfolder in root)

-- AleXis

Thanks! Sorry about the typo. -- Ryan 17-Jul-2006 20:59 PDT

Visual Appearance

Archived from the Feedback page:

Hi! What do you think about this style for first time? [2]

All changes only in CSS, except 2 images and changes in hardcoded tables in center.

-- AleXis

I like it a lot! I really like the colors and the link styles! The only things I don't like are that on Firefox and IE there is a border all the way around the navigation search box, but not around the main navigation box - I think having a border all around the main navigation box might look better, but you're obviously better with design than I am so any ideas you have should work. Also, if there is some way to make it clearer that the Article, Comments, EditPage, History and Printable Page links are connected with the current topic I think it would help usability. With tabs it's clear that to edit the current topic someone clicks edit, but with separate links the connection isn't as clear.

Thank you :) Ok, will try to make more clean interface. I'll make one more version before applying styles here :) One question - can i change template HTML or better do all changes only in styles? I have some ideas how to make topic links more clearer, but i need to change HTML too( -- AleXis

Changing the HTML is fine too - the goal is something that looks good and is similar enough to Mediawiki that Mediawiki users will intuitively know how to use it. Just let me know what HTML you change so that I can update it, or else just send a patch to the wiki.jsp file. -- Ryan 13-Jul-2006 15:22 PDT

Ok, will try :) Will show you when i have a progress, i think tomorrow. -- AleXis

I'll give you site admin privileges for and you're welcome to edit the StyleSheet topic for the site if you want - the only caveat is that since you'll have site admin access you could also change system settings from the admin screens, so please be careful! -- Ryan 13-Jul-2006 12:54 PDT

Thank you!! :))) If i will have ideas what to change except articles i will ask you :) I have one question about rights: i see "Readonly topics" in admin, but it empty, it means that anybody can edit any article for now? Or not? -- AleXis

At the moment there aren't any read-only topics. No one can edit a read-only topic, and only admins can edit admin-only topics (right now that's you and me). The admin-only topics are listed on AdminOnlyTopics. The "read-only" code works fine but the interface for making a topic read-only isn't very nice - it will probably need to be cleaned up in the future, although the whole admin screen should really be cleaned up. Feel free to make a test article read-only if you'd like, just please don't mark any of the main site pages read-only! -- Ryan 13-Jul-2006 15:22 PDT

Ok, i will not edit articles here, will do it on my own copy :)

Also, an update on the 0.0.6 release - Sourceforge's Subversion repository has been down for at least the last three hours, so I'm not able to commit changes and it's slowing me down a bit. I probably won't get the next release out today, but I will try and get the new code running in the next few hours. Also, if you want me to make a beta WAR file available I should be able to do that later today - let me know. Alternatively, read access to Subversion is working, so you can get the latest code and build your own if you'd like. -- Ryan 13-Jul-2006 13:06 PDT

Yes, if you can please share somewhere new beta as WAR - i'll test it with Resin and if all is ok will use to test styles :) -- AleXis

I've put the latest code on the server at This is my current development code, and there will definitely be things broken. It can be run either using the file system to store articles or using a database - if you use the file system be aware that the new "Upload File" code will throw an error since it's only implemented for the database right now. I'll get the file version of upload working by the end of the day. Also, please note the following (I haven't updated documentation yet):
  • "File system directory" can be a directory anywhere on your system. It is used to store topics in file persistency mode, as well as some search engine data.
  • "Upload directory" is the directory to use for file uploads. It must be accessible to the web server, for example "/data/www/wiki/uploads".
  • "Relative path from web server root to file upload directory" is the portion of the "Upload directory" path that should be used in URLs, for example "/wiki/uploads".
Let me know if you have any problems. -- Ryan 13-Jul-2006 15:22 PDT
I've upgraded with the latest code - if anyone is interested I've put a new WAR file out that is available at Changes since beta1 are mostly to add support for uploading files when in file persistency mode, a few bugfixes and code cleanups, and the hiding and re-arranging of some options on the admin screen. One big issue that needs to be fixed before 0.0.6 can be released is that uploading a second version of a file causes an error, and additionally there is no way to view file history. Once both of those issues are resolved then I'll run through a battery of tests and hopefully get 0.0.6 uploaded to Sourcefore sometime tomorrow (July 14). -- Ryan 13-Jul-2006 22:06 PDT
Just uploaded a new version that resolves the "can't update the file" issue, and has also been updated. Also, I've added a column "file_size" to the jam_file and jam_file_version tables, so you'll need to run "alter table jam_file add column file_size integer not null" and "alter table jam_file_version add column file_size integer not null" to any existing database. Or just delete the database and reinstall - that works too. -- Ryan 13-Jul-2006 23:12 PDT
Another new version uploaded that includes the ability to view file history, although it doesn't display author information - I don't know if that will make it into 0.0.6 or not. This version should be pretty close to the final 0.0.6. I'll do some testing, fix any bugs, and provided there aren't any serious issues will push something out by early tomorrow afternoon. -- Ryan 14-Jul-2006 01:34 PDT

Thank you! :) Will play with it! -- AleXis

Separate CSS and HTML

Archived from the Feedback page:

It should looks like this:

1. create /wiki/css/default.css and move css to it (I've publish it here, you can take it: [3]).

2. change



<link rel="stylesheet" type="text/css" href="/wiki/css/default.css"/>

/wiki = /root-app-path :)

I'll try to play with styles tomorrow to make visual appearence better) If i will have not a very bad results i show it to you) Its good idea to create different styles on a choice. -- AleXis

If you can update the default CSS for JAMWiki to be more visually appealing that would be great - I'm not good at web design, and while I think the software should look similar to Mediawiki, it shouldn't be an exact copy like it is now. If you can help out with that work it would be great!
Regarding the work to make the stylesheet a separate file, it's a bit more complex than just changing the HTML: in JAMWiki the stylesheet is an editable topic - see StyleSheet. This is a feature I kept from the Very Quick Wiki code that a lot of people really liked. To allow the stylesheet to still be an editable topic but not be included inline a new servlet will need to be written that returns the CSS information for all requests to (for example) "../css/default.css". If no one else does it first then I'll create that servlet for the 0.0.7 version (it should be pretty easy to do). Once that's done then the servlet can be downloaded as you've shown above. Hopefully that makes sense, and again, thanks a lot for your help! It's nice to see other people getting involved so quickly after the software was made public! -- Ryan 12-Jul-2006 20:05 PDT

nop) May be implement some kind of Special:Export? I.e. Special:PlainExport? It may be usefull not only for CSS :) In this case link to styles will looks like

<link rel="stylesheet" type="text/css" href="Special:PlainExport?topic=StyleSheet"/>

And I have found another small issue: it is possible to save same info twice (i.e. with no difference), may be better to skip saving if no difference?

-- AleXis

Both added to Known Issues. The Special:Import and Special:Export is something that I was planning on adding soon - the "file persistency" mode of JAMWiki was designed to use the same XML format as that used by Mediawiki, so it should be reasonably easy to extend that to allow importing and exporting. It will also be nice to have that since it would allow importing content from, and exporting content to, Mediawiki servers provided the licensing allows doing so. -- Ryan 12-Jul-2006 20:53 PDT

Ok, thank you :) Will you implement plain export too? Special:Export is not situable for CSS because XML format( So parameter needed to determine is export plain -- AleXis

How would you like to see a plain export implemented? For something like a CSS file the export could obviously just output the raw CSS, but for a Wiki topic should the output contain Wiki markup, be parsed into HTML, or be in some other format? Or should the user be able to select between Wiki markup, HTML, plain text, etc? I've been thinking about this in terms of developing documentation on a Wiki and then generating some sort of file output, but would like any additional input on how others might use it.
Also, I think that the next version will probably be ready by late tomorrow (Thursday July 13). I really want to get at least minimal file support working in this release since it requires (another) database change and I'd like to get as many database schema changes done now before too many more people start using the software. Version 0.0.7 or 0.0.8 will probably have to contain some mechanism for automatically detecting when database updates need to happen and then automatically perform the update... -- Ryan 13-Jul-2006 00:42 PDT

1. For backward (MediaWiki) compatability make Special:Export returning XML, but create new Special:PlainExport directive: who knows what he need will use it. IMHO

2. I think better to store app version in db and have update sql scripts in application for each version. So if we runs 1.0 and DB is 0.5 we will run at startup all existing update scripts from 0.6 to 1.0

JBoss offers automaticaly db schema update with EJB3+Hibernate but it doent work on Resin, so it is bad solution(

-- AleXis

New wiki style

Archived from the Feedback page:

Hi :) I've done some changes in styles on my wiki [4] - how you feel it? If link doesnt work - tell me, i'll upload it as html. -- AleXis

I like your new style a lot, although I'm having trouble making my mind up about moving the tabs. One of the goals I have for JAMWiki is to be very similar to Mediawiki, and I'm a bit afraid that moving the tabs might be too big of a change for people who are used to the Mediawiki look and feel. The rest of your changes are great though - if you're willing to license the code under LGPL then I'd like to implement the fonts, link styles, borders, and other elements as defaults for JAMWiki. If it's OK with you, let me think about the tab issue a bit longer, and if you (or anyone else) has any ideas or opinions I'd like to hear them. -- Ryan 15-Jul-2006 16:50 PDT

Ok, no problems with license. I can update styles here, but leave tabs on top :) Ok? -- AleXis

Sounds great. I won't have internet access for the next couple of hours, but will check back in later tonight. Let me know if you have any questions or concerns. -- Ryan 15-Jul-2006 17:14 PDT

Thank you! I've updated styles, will see changes when it be in file :) Please change one line in top-menu.jsp: From

<table class="menu-tab-table">


<table class="menu-tab-table" cellspacing="0">

If smth will be wrong please revert to old styles -- AleXis

Looks like no BIG ploblems) Except caching of CSS :))) I've saw new css only after i manually load css url and press Ctrl+R :) If you like you may use this logo [5] or i can try to drow new one if you tell me what JAM means :)) -- AleXis

I've copied your changes into the source repository, so they are now the default for JAMWiki :) I re-added the background image because it seemed like there was a lot of whitespace, but we can (and probably should - it's from Mediawiki) replace it with something better. Can we also use your "External link" image [6]? I like that better than the current image.

Ok, no problems, you can use external link image:) I'll think about background :) -- AleXis

I'd like to give you credit as a contributor in the CREDITS.txt file for web design if that's OK with you. Should the credit simply be "AleXis (lexis)" or would you like to use your full name? I credit myself using "Ryan Holliday (wrh2)".

Thank you very much! :) If it isnt a problem please add as: AleXey "lexis" Rumyantsev ( -- AleXis

Also, I would like to get a new logo. "JAM" doesn't really mean anything, but I used it for a bunch of reasons: one is that I wanted to call the system "JAva Mediawiki", but can't really use Mediawiki. In English, to "jam" is a term used by rock-and-rollers meaning "to rock" - when a band plays really loud and makes great music, they're jamming. And it also means "jelly" like "a peanut butter and jelly sandwich". My girlfriend actually thought the logo should be a jar of jam, but that seemed a little silly... Anyhow, I'd be happy to use your logo if you like it better, or if you want to try and create something different that would be great too - like I've said, I'm a good programmer but a terrible graphic artist ;) -- Ryan 15-Jul-2006 21:17 PDT

If you like you can use this logo for first time :) [7]

Thanks for information! Mmmm.. If i catch idea what to draw on logo i'll make new one :) -- AleXis

Also, while I like your logo my girlfriend wants me to keep the old one for now because she says it makes her laugh. Also, my hope is that by having a really, really bad logo it will encourage someone to make a really, really good logo - I like the logo you created, but eventually it would be nice to have some kind of symbol that people can identify JAMWiki with. Mediawiki has the flower, Wikipedia has the puzzle globe, so hopefully JAMWiki will eventually have something equally memorable. -- Ryan 18-Jul-2006 00:50 PDT

Good idea ;)) -- AleXis

H2 Database

Archived from the Feedback page:

Np! I think i know root of the problem with my configuration: In H2 there is no standalone CHAR datatype (it is alias for VARCHAR), so its returned as VARCHAR and you code in WikiResultSet cant handle it correctly( I've resolved it by changing type to BOOLEAN and adding

case java.sql.Types.BOOLEAN:
boolean bool = rs.getBoolean(columnName);
column.put(columnName.toLowerCase(), new Character(bool?'1':'0'));


switch (type) {

May be faster and easier to fix if you will deal with is_admin as Object and change

user.setAdmin(rs.getChar("is_admin") != '0');



Anyhow i think better to add support of H2, and store booleans as BOOLEAN :) If you tell me where and how to do it i'll try :)

-- AleXis

The column is currently a CHAR because Oracle doesn't have a BOOLEAN type (I was using a BOOLEAN until JAMWiki 0.0.5 and then changed it to CHAR). It will make the code a bit messy to have the column be a BOOLEAN for one database and a CHAR for others, so I think just changing it to an INTEGER would be easiest. I can make that change pretty quickly if you want and have a new beta ready later tonight. -- Ryan 17-Jul-2006 22:36 PDT

Yes, its good way, thank you! :) May be use TINYINT if it exist in all DB ? Please do this change, if you will have a time for it :) Thank you very much!! -- AleXis

OK, a new version that uses INTEGER instead of CHAR is now available at You'll need to change the column types for several columns - the update SQL is at JAMWiki 0.0.7#Upgrade Instructions. Unless any major bugs are found I'll probably release JAMWiki 0.0.7 tomorrow morning (there are a couple of parsing issues I'd like to fix first).
I'm not sure if all databases have a TINYINT so I made the column an integer. If you're interested in creating a customized schema for the H2 database then that would be a good contribution and an easy way to get familiar with the code. The steps to take would be:
  1. Create a new class that is a sub-class of DefaultQueryHandler.
  3. You probably also want to implement STATEMENT_INSERT_RECENT_CHANGES (see the comment about the "coalesce(login, ip_address)" equivalent that's needed).
  4. Override the createTables() method.
  5. (Probably) override the reloadRecentChanges() method.
You can use the MySqlQueryHandler class as an example and let me know if you have any questions. Obviously this is just something for you to do if you want to write code - H2 works without these changes, but if you're interested in writing code this would be an easy starting point :) Thanks for all of your work in debugging - I really appreciate it! The traffic to is picking up - people are coming from [8] and from [9] now, too, so hopefully we'll get a few more contributors and testers soon! -- Ryan 18-Jul-2006 00:40 PDT

Thank you for the file! Will try it!

Ok, thank you for instructions :) Will try to implement H2 special support :) Also i have idea about WikiResultSet - may be implement getBoolean which will first check if value is boolean, second tries int, third tryes char or string: if (v instanceof Boolean) return v.getValue()?; else if (v instanceof Charaster) return v != '0'; else if (v instanceof String) return !v.equals("0"); else return false; ?

Good news about trafiic! :)

-- AleXis

Your idea about modifying the getBoolean method should work, but unless we really need a boolean type let's leave the code alone for now - I have to test changes to the database code on Postgres, Oracle and MySql right now, and it takes a lot of time ;) If you need a BOOLEAN for H2 then we can make the change, otherwise I'm happy to leave the code unchanged for the moment.
Also, I just put out JAMWiki 0.0.7, and so I'll start on your password Hash suggestion for 0.0.8 soon. -- Ryan 18-Jul-2006 14:07 PDT