See also: JavaWikiEngines Take a look at ChikiWiki for an example of a J2EE wiki -- GhootEmaho (no activity since 2002...) I'm having a go at building a limited WikiWikiClone in Java using JavaServlet''''''s. I say limited, because I just want to mimic c2, in a language I understand, on my local server. I don't have any ambitions to EmbraceAndExtend as some other CloneWriters are doing :-) (no offence Austin!) I have been speaking to AustinDavid, who is working on a WikiWikiClone called Kwiki, and WardCunningham, (who I'm sure needs no introduction). Ward, it seems, has a vague urge to give a ServletBasedWiki a try. Ward has written a WikiTranslator in Java (http://c2.com/~ward/java/wiki) which hopefully will mean I don't have to worry about converting WikiMarkupLanguage to HTML (once Ward releases the translator). I thought I'd take this discussion onto Wiki since I'm sure many folks out there will have "Things To Say". -- AlanFrancis ---- Also, check out the JikiJikiJava. -- StephenPetschulat ---- What persistence options are people using for Wiki in Java? Doesn't this present some difficult choices, compared with the imperfect but convenient dbm access available in Perl? In particular, I'm concerned with these issues: * If a process dies, we need to ensure that the pages remain in some kind of consistent state. * Tempering memory management issues with some kind of persistent page database. Are people using or extending serialization? - and can this be done reasonably efficiently (i.e. we don't want to be frequently creating "lots of little objects") What choices have you made and why? -- ---- UPDATE: -- AlanFrancis Well it kinda goes. My wiki (also called jiki - how many names are there ? :) supports automatic WikiWord detection, the 4*hyphen -
conversion, links for existing pages, ? for non-existing pages. I have a Recent Changes and basic title search. THere's no complex formatting (lists,
 bold italic etc).

This is a '''Prototype'''. A SpikeSolution and as such it's pretty crafty.

Pages are saved use standard Serialization which means they aren't in a human-readable form and that could mean versioning problems. I plan to modify this so the pages are stored either as raw text (with RFC-822 headers for stuff like last-edited-date and last-edited-by) or.... the ubiquitous XML.

Next plan is to rebuild using a slightly more modular architecture (thanks Austin!) and I also plan to use JavaServerPages for the presentation engine.

The servlet will do the db querying, save the results to a JavaBean and then supply the client with a JSP for browse, edit, search or post. The JSP has access to the bean and can then extract the info it needs and format the page accordingly.  

I may even be able to do the WikiTranslation inplace in the JSP :-)
-- AlanFrancis

''JSP seems a bit heavyweight to me. I have had good experiences with WebMacro (http://www.webmacro.org) which also allows introspection-based access to data from web pages, but is (to me, at least) a lot nicer. -- FrankCarver''

I reckon that depends on what you do with them... :-) My JSPs simply format the text that I would pass in as a bean. (I gave up on the idea of WikiTranslation in place) :-). Ward, your (admittedly beta) WikiTranslator worked wonders and the only thing it doesn't do is preformatted stuff.

	* http://c2.com/~ward/java/wiki/
	* http://test.com

Also, I'd like to keep this compiling "out-of-the-box" so no dependence on outside libraries... -- AlanFrancis

----

Also consider a different SpikeSolution, in the form of FrikiServlet. It's not quite a WikiWikiClone, but it does a similar job. I'm hoping to trim it down by using WebMacro sometime soon. -- FrankCarver

'''Update:''' There is now a new version of Friki which implements the full markup and doesn't use any heavyweight libraries (the JDK1.4 download is just 54k, which includes a ready-to-run war file with example pages and 20k of configuration documents). You don't need a full-power template engine like WebMacro, you ''certainly'' don't need JSP. See FrikiServlet for more information.

----

Alan and I independently started similar projects, and we've both become stuck
at various stages due to the annoying pressures of other work. Our designs
are similar: servlets for interacting with the page store and similar stuff,
Ward's JavaCC translator for actually converting wiki-format to HTML, and JSPs
for the rest of the page formatting. My design is geared toward HTML output
with multiple page source formats (a la AtisWiki), whereas Alan's assumes 
wiki as the source format and allows for non-HTML interfaces. (In retrospect,
I like Alan's plans better, I think.)  

One difference is that I'm trying to gear mine to use some of the new servlet
and JSP features, especially the "Web Application" support that can make it
very easy to install and customize the system (including look-and-feel 
customization and "branding"). It should also be easy to support multiple
different wikis on the same web server. This means that, at least in the
short term, my ServletBasedWiki will not be as widely useful as Alan's, because
servers won't support all of the new features right away.

Alan's is also farther along than mine (I have page display and editing working,
but no search and no recent changes yet). (I've seen some of Alan's stuff, but
he hasn't seen mine, because I ... um ... keep forgetting to send it to him.)
We have very similar goals, but I'm continuing to work on my own for two 
reasons: it's a project to learn more about servlet and JSP development, and I'd 
like to replace our internal wiki that we use for our consulting practice (we're 
currently using AtisWiki). -- GlennVanderburg

----

UPDATE 2
DATELINE: Edinburgh, UK

In between my real work (see XpEdinburgh) I've managed to completely overhaul what was called Jiki (and worked, just) into what I've just called wiki.

Details moved to AlansWikiEngine :-)
----

[details of public access removed - my site is no more.... -- AlanFrancis]

----

Alan and I have continued to work in parallel on our own projects, and lately
I've had more time than he has. My wiki (tentatively called ''Siki'') is 
functional now, although it doesn't have search facilities. The primary 
incentive has been to replace the software for our consulting group's internal
wiki (currently running AtisWiki) and we plan to cut over early next week.  

I spent most of last week learning AntlrTranslatorGenerator and writing a JavaWikiTranslator (hop over to that page for more info).

Very soon after Siki begins actively supporting users, I plan to release the
code under some variety of open-source license. Until that time, suggestions
for better names will be gratefully accepted. :-)

-- GlennVanderburg, 16 March 2000

----
JspWiki is nice candidate for servlet wiki. It is very easy to set up; it only took me 5 minutes. It has different kinds  of persistence for pages: file base, or RCS to get versions, or CVS based(in development.) The performance is great when built-in caching is used. It supports tables, bullets, heading, WikiName, etc. 
-- SeshKumar
----
Found a Struts based early Wiki here.  

http://www.netmeme.org/netmeme/do/wiki?topic=WikiHome&action=view

-- RandyPond

----

SnipSnap is a Java servlet/JSP-based wikilog, very similar to VaNilla, and under active development. SnipSnap formed RaDeox as a LGPL rendering engine sub project.

http://snipsnap.org/

-- ''Added by GoofRider on 2002-10-24''