incubator-jspwiki-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From andreak <andr...@officenet.no>
Subject Re: Embedding JSPWiki 2.6
Date Tue, 05 Aug 2008 21:24:18 GMT

I'm not having any luck with embedding JSPWiki. I've created a class like
Ethan suggests, with dummy (empty stubs) of DummyAuthorizer (implements
com.ecyrd.jspwiki.auth.Authorizer) and DummyPageProvider (implements
WikiPageProvider). After running a test I'm getting:
- *******************************************
- JSPWiki 2.6.1 starting. Whee!
- JSPWiki working directory is '/tmp/JSPWiki-'
- Registering plugins
- Using difference provider: TraditionalDiffProvider
- No attachment provider defined - disabling attachment support.
- Lucene enabled, cache will be in: /tmp/JSPWiki-/lucene
Starting up background thread: JSPWiki Lucene Indexer.
Starting up background thread: WatchDog for 'JSPWiki'.
- Files found in Lucene directory, not reindexing.
- Registering editor modules
- Attempting to load group database class
com.ecyrd.jspwiki.auth.authorize.XMLGroupDatabase
- XML group database property jspwiki.xmlGroupDatabaseFile not found; trying
/home/andreak/dev/uno/trunk/IDEAProject/WEB-INF/groupdatabase.xml
- XML group database at
/home/andreak/dev/uno/trunk/IDEAProject/WEB-INF/groupdatabase.xml
- Group database not found; creating from scratch...
- Group database initialized.
- Group database not found; creating from scratch...
- Authorizer GroupManager initialized successfully; loaded 0 group(s).
- Using JDK 1.5 Platform MBeanServer
- com.sun.jmx.mbeanserver.JmxMBeanServer
- DefaultDomain
- Registered new admin bean Core bean
- Registered new admin bean User administration
- Registered new admin bean Search manager
- Registered new admin bean Plugins
- Registered new admin bean WikiWizard
- Registered new admin bean Plain editor
- Registering filters
- Cannot find property file for filters (this is okay, expected to find it
as: '/WEB-INF/filters.xml')
- Rendering content with com.ecyrd.jspwiki.render.XHTMLRenderer.
- Failed to start managers.
java.lang.NullPointerException
	at java.util.ArrayList.addAll(ArrayList.java:472)
	at com.ecyrd.jspwiki.WikiEngine.initReferenceManager(WikiEngine.java:659)
	at com.ecyrd.jspwiki.WikiEngine.initialize(WikiEngine.java:569)
	at com.ecyrd.jspwiki.WikiEngine.<init>(WikiEngine.java:359)
	at
no.officenet.uno.util.SimpleWikiRenderer.<clinit>(SimpleWikiRenderer.java:48)
	at
no.officenet.uno.util.SimpleWikiRendererTest.testWiki(SimpleWikiRendererTest.java:8)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at junit.framework.TestCase.runTest(TestCase.java:154)
	at junit.framework.TestCase.runBare(TestCase.java:127)
	at junit.framework.TestResult$1.protect(TestResult.java:106)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.framework.TestResult.run(TestResult.java:109)
	at junit.framework.TestCase.run(TestCase.java:118)
	at junit.textui.TestRunner.doRun(TestRunner.java:116)
	at
com.intellij.rt.execution.junit.IdeaTestRunner.doRun(IdeaTestRunner.java:65)
	at junit.textui.TestRunner.doRun(TestRunner.java:109)
	at
com.intellij.rt.execution.junit.IdeaTestRunner.startRunnerWithArgs(IdeaTestRunner.java:24)
com.ecyrd.jspwiki.WikiException: Failed to start managers: null
	at com.ecyrd.jspwiki.WikiEngine.initialize(WikiEngine.java:582)
	at com.ecyrd.jspwiki.WikiEngine.<init>(WikiEngine.java:359)
	at
no.officenet.uno.util.SimpleWikiRenderer.<clinit>(SimpleWikiRenderer.java:48)
	at
no.officenet.uno.util.SimpleWikiRendererTest.testWiki(SimpleWikiRendererTest.java:8)


Janne Jalkanen wrote:
> 
> 
> Aside from the fact that the PageFilter interface has changed (minor  
> modifications necessary, you will see when you compile it), you  
> should be fine.  If you are not, please let us know so those can be  
> documented.
> 
> /Janne
> 
> On 5 Jan 2008, at 22:41, Ethan Larson wrote:
> 
>> 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?
>>>>>>
>>>>>
>>>
>>>
> 
> 

-- 
View this message in context: http://www.nabble.com/Embedding-JSPWiki-2.6-tp14553249p18840232.html
Sent from the JspWiki - User mailing list archive at Nabble.com.


Mime
View raw message