Current development on JAMWiki is primarily focused on maintenance rather than new features due to a lack of developer availability. If you are interested in working on JAMWiki please join the jamwiki-devel mailing list.

User comments:RegisDecamps

Contents

Sourceforge ID[edit]

Please let me know what your Sourceforge login is if you'd like write access to Subversion. Unit tests and small fixes can be committed directly to the trunk, but it would be good to get a bit more discussion before any major changes (such as Tech:Maven) are put on the trunk - if you'd like to start working on that now it would be better to just create a branch in Subversion. Thanks for taking the time to write up the Maven proposal! -- Ryan 11-Jul-2007 12:08 PDT

Thanks & a request[edit]

Thanks for all of your work on the Tech:Maven page and Building from Source. One request, however, is that rather than removing old discussions from the comments pages it would be better to leave them or else archive the discussion if the page gets too long (for example in Comments:Building from Source/Archive). The benefit is that if someone comes along in the future and is trying to see the process that was followed to get to a certain result it will all be available & easy to follow. It's not a big issue, but it's inevitable that someone will come along in the future and ask "why did you do it this way", and it's easier for someone who is lazy (like myself!) to just point them to the full discussion rather than trying to explain. Thanks again - it's only 1:45 PM here in Los Angeles and already it looks like a lot has been accomplished. -- Ryan 22-Jul-2007 13:21 PDT

OK, I'll try not to remove potentially useful things in the future, even though I personnaly tend to prefer concice and clean articles.
I agree that the articles should definitely be clean, and you've done a good job with cleaning up some of the existing article pages. Comments pages are by nature going to be a bit messy, so if necessary we can clean them up by moving old conversations to archive pages, but it would be best if the conversations are still available somewhere for people to read without the need to browse article history - see wikipedia:Wikipedia:Talk page guidelines for Wikipedia's policy, which I think is a good one. -- Ryan 24-Jul-2007 09:04 PDT

AbstractButtonTag.java[edit]

Thanks a lot for refactoring the CheckboxTag & RadioTag classes! I'm a big fan of commits like that one that get rid of 200+ lines of code! -- Ryan 23-Jul-2007 21:39 PDT

You can thank the PMD plugin, indeed ;-) Regis Decamps 24-Jul-2007 02:30 PDT

Cleanups[edit]

Although I haven't been keeping a close watch on the parser isolation changes I have looked over a few of the commits, and in addition to the parser work it looks like you've made a lot of code cleanups in that branch, such as revision 1729. If you'd like to please feel free to immediately merge minor cleanups onto trunk - simple cleanups are always welcome. And thanks again for all of the work you've been doing lately! -- Ryan 02-Aug-2007 23:34 PDT

Parser Isolation[edit]

isolate parser from jamwiki core. I think I'll give up. It seems everything is intercoupled.

The inter-coupling is an issue, and I'm not sure how best to resolve it at this time. Since this change won't be completed for 0.6.1, should the jamwiki-core and jamwiki-parser-jflex projects be kept, or would it make more sense to remove them for now? -- Ryan 30-Sep-2007 08:52 PDT

Eclipse[edit]

Hi Regis, Ryan pointed me to you. I have succesfully installed jamwiki in eclipse/wtp but I suffer from a severe problem. When I change some java source or a properties file the context gets realoaded in order to load the new classes. Since then the internal DB remains locked with

26.11.2007 00:22:56 org.apache.catalina.core.StandardContext reload
INFO: Reloading this Context has started
log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester.sax).
log4j:WARN Please initialize the log4j system properly.
26.11.2007 00:23:00 org.jamwiki.utils.WikiLogger severe
SCHWERWIEGEND: Unable to retrieve default roles for GROUP_ANONYMOUS
java.sql.SQLException: The database is already in use by another process: org.hsqldb.persist.NIOLockFile@3dbb2eaf[file =D:\wiki-test\database\jamwiki.lck, exists=true, locked=false, valid=false, fl =null]: java.lang.Exception:  java.io.IOException: Der Prozess kann nicht auf die Datei zugreifen, da ein anderer Prozess einen Teil der Datei gesperrt hat : D:\wiki-test\database\jamwiki.lck
	at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
	at org.hsqldb.jdbc.jdbcConnection.<init>(Unknown Source)
	at org.hsqldb.jdbcDriver.getConnection(Unknown Source)
	at org.hsqldb.jdbcDriver.connect(Unknown Source)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at org.apache.commons.dbcp.DriverManagerConnectionFactory.createConnection(DriverManagerConnectionFactory.java:68)
	at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:294)
	at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:840)
	at org.apache.commons.dbcp.PoolingDriver.connect(PoolingDriver.java:176)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at org.jamwiki.db.DatabaseConnection.setUpConnectionPool(DatabaseConnection.java:315)
	at org.jamwiki.db.DatabaseConnection.getConnection(DatabaseConnection.java:230)
	at org.jamwiki.db.WikiPreparedStatement.executeQuery(WikiPreparedStatement.java:60)
	at org.jamwiki.db.AnsiQueryHandler.getRoleMapGroup(AnsiQueryHandler.java:381)
	at org.jamwiki.db.AnsiDataHandler.getRoleMapGroup(AnsiDataHandler.java:389)
	at org.jamwiki.authentication.JAMWikiAnonymousProcessingFilter.initRoles(JAMWikiAnonymousProcessingFilter.java:83)
	at org.jamwiki.authentication.JAMWikiAnonymousProcessingFilter.afterPropertiesSet(JAMWikiAnonymousProcessingFilter.java:49)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1198)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1167)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:427)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:291)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
	at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:245)
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:188)
	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3764)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4216)
	at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3025)
	at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:432)
	at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1278)
	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1570)
	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1579)
	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1579)
	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1559)
	at java.lang.Thread.run(Unknown Source)
Exception in thread "HSQLDB Timer @174d93a" java.lang.NullPointerException
	at org.hsqldb.lib.HsqlTimer.nextTask(Unknown Source)
	at org.hsqldb.lib.HsqlTimer$TaskRunner.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

jamwiki goes bezerk. The only solution is to restart tomcat from within WTP. How can I resolve this issue with eclise/wtp? It seems like jamwiki does not release the lock on the internal DB file when the context is shutdown.
I really want to get this run and commit a lot of features.
thx --Michael-O 25-Nov-2007 15:14 PST