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
JavaServlets. 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 - <HR> conversion, links for existing pages, ? for non-existing pages. I have a Recent Changes and basic title search. THere's no complex formatting (lists, <pre> 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.
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