Thanks again - that worked. Just one other question: will there be anything different about my filter/plugin setup, or can I follow the same setup outlined in the documentation?

Cheers,
Ethan

P.S. - Here's my code in case anyone else wants to get this working. If anyone sees something wrong or a way to optimize it, please let me know:

public class SimpleJSPWikiRenderer {

   protected static WikiEngine sEngine;
   protected static WikiContext sContext;

   static {
       Properties props = new Properties();
props.setProperty(PageManager.PROP_PAGEPROVIDER, DummyPageProvider.class.getName()); props.setProperty(AuthorizationManager.PROP_AUTHORIZER, DummyAuthorizer.class.getName());
       props.setProperty(AuthenticationManager.PROP_SECURITY, "off");

       try {
           sEngine = new WikiEngine(props);
sContext = new WikiContext(sEngine, new WikiPage(sEngine, "dummy"));
       }
       catch (WikiException e) {
           e.printStackTrace();
       }
   }

   public static String render(String wikiMarkup) throws IOException {
       // Create new parser and parse the content into a WikiDocument
MarkupParser parser = new JSPWikiMarkupParser(sContext, new StringReader(wikiMarkup));
       WikiDocument doc = parser.parse();

       // We now create a new WikiRenderer
       WikiRenderer rend = new XHTMLRenderer(sContext, doc);

       //  Now, do the rendering.
       return rend.getString();
   }
}

Janne Jalkanen wrote:

Oh, and by the way, it's cleaner to directly hit the RenderingManager. See the following article for details:

http://www.jspwiki.org/wiki/MarkupParser

/Janne

On Jan 4, 2008, at 08:21 , Ethan Larson wrote:

Ok, I created a dummy page provider and a dummy authorizer and I got a lot farther. I don't even need a MemoryPageProvider since I all I need is the output (thanks just the same Florian - it was instructive). I actually got translated output. The problem is that I had to modify the source code to do it. I had to comment out line 532 of WikiEngine:

//m_authorizationManager.initialize( this, props );

As near as I can tell, there's no way to create an authorization manager that doesn't involve a jspwiki.policy under WEB-INF. However, since I'm running it as a standalone app, I don't have a web container and therefore no WEB-INF. I could create this under the working directory, but I really don't want to put blank, unused metadata in my app. Is there any way to configure this such that I can start the authorization manager without a jspwiki.policy?

On a broader note, I'd be over the moon if this were an easier process. JSPWiki seems to be the most actively developed and feature-rich Java wiki there is, and has support for plugins and filters which I will eventually need. If there were an easy way to run the wiki translation, complete with plugins and filters, that didn't involve a web container and any extra memory/disk usage, it could broaden the usage quite a bit. I've looked at other java wiki translators out there, and none of them are doing a good job of the features/active development/ease of standalone combo (Radeox, Bliki, VQWiki to name a few). Other forum/mailing list posts confirm there is a demand.

Thanks for all your help,
Ethan

P.S. -- Here's my current code for anyone reading this in the future:

Properties props = new Properties();
props.setProperty(PageManager.PROP_PAGEPROVIDER, MyPageProvider.class.getName()); props.setProperty(AuthorizationManager.PROP_AUTHORIZER, MyAuthorizer.class.getName());

WikiEngine engine = new WikiEngine(props);

WikiContext context = new WikiContext(engine, new WikiPage(engine, "test"));

System.out.println("output: \n" + engine.textToHTML(context, "this is a test\n\n* more stuff"));


MyPageProvider and MyAuthorizer are both empty implentations of the interfaces. Just return an empty List for MyPageProvider.getAllPages.


Janne Jalkanen wrote:

Yup, the problem is that there needs to be *some* kind of a page provider, because the system needs to check if e.g. a page exists or not when it encounters a link. The generated HTML differs in each case.

A dummy provider will do just fine, e.g. the MemoryPageProvider.

/Janne

On Jan 2, 2008, at 00:23 , Florian Holeczek wrote:

Hi Ethan,

maybe this can help you:
http://www.jspwiki.org/wiki/MemoryPageProvider

Regards,
 Florian

The problem with the page directory is that I don't want one. I will
be managing the input/output of the text myself. I really just want
to give some wiki markup to the parser and get back html. Is there
currently a way to do this?




Reply via email to