You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jspwiki.apache.org by ja...@apache.org on 2009/03/29 21:36:49 UTC
svn commit: r759761 - in /incubator/jspwiki/trunk: src/java/org/apache/wiki/
src/java/org/apache/wiki/content/ tests/etc/ tests/java/org/apache/wiki/
tests/java/org/apache/wiki/parser/ tests/java/org/apache/wiki/rss/
tests/java/stress/
Author: jalkanen
Date: Sun Mar 29 19:36:49 2009
New Revision: 759761
URL: http://svn.apache.org/viewvc?rev=759761&view=rev
Log:
Added some hacks to attempt to make Jackrabbit clean up properly upon shutdown (lock issue :-()
Generic unit test fixes so that they follow the actual function of the code now.
Modified:
incubator/jspwiki/trunk/src/java/org/apache/wiki/WikiEngine.java
incubator/jspwiki/trunk/src/java/org/apache/wiki/content/ContentManager.java
incubator/jspwiki/trunk/tests/etc/jspwiki.properties.tmpl
incubator/jspwiki/trunk/tests/java/org/apache/wiki/ReferenceManagerTest.java
incubator/jspwiki/trunk/tests/java/org/apache/wiki/TestEngine.java
incubator/jspwiki/trunk/tests/java/org/apache/wiki/WikiEngineTest.java
incubator/jspwiki/trunk/tests/java/org/apache/wiki/parser/JSPWikiMarkupParserTest.java
incubator/jspwiki/trunk/tests/java/org/apache/wiki/rss/RSSGeneratorTest.java
incubator/jspwiki/trunk/tests/java/stress/MassiveRepositoryTest.java
Modified: incubator/jspwiki/trunk/src/java/org/apache/wiki/WikiEngine.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/java/org/apache/wiki/WikiEngine.java?rev=759761&r1=759760&r2=759761&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/java/org/apache/wiki/WikiEngine.java (original)
+++ incubator/jspwiki/trunk/src/java/org/apache/wiki/WikiEngine.java Sun Mar 29 19:36:49 2009
@@ -371,7 +371,15 @@
public WikiEngine( Properties properties )
throws WikiException
{
- initialize( properties );
+ try
+ {
+ initialize( properties );
+ }
+ catch( WikiException e )
+ {
+ shutdown();
+ throw e;
+ }
}
/**
@@ -422,6 +430,7 @@
{
context.log( msg );
}
+ shutdown();
throw new WikiException( msg );
}
}
@@ -1566,9 +1575,9 @@
public void shutdown()
{
fireEvent( WikiEngineEvent.SHUTDOWN );
- m_filterManager.destroy();
+ if( m_filterManager != null ) m_filterManager.destroy();
LoggerFactory.unRegisterAllLoggerMBeans();
- m_contentManager.release();
+ if( m_contentManager != null ) m_contentManager.shutdown();
}
/**
Modified: incubator/jspwiki/trunk/src/java/org/apache/wiki/content/ContentManager.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/java/org/apache/wiki/content/ContentManager.java?rev=759761&r1=759760&r2=759761&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/java/org/apache/wiki/content/ContentManager.java (original)
+++ incubator/jspwiki/trunk/src/java/org/apache/wiki/content/ContentManager.java Sun Mar 29 19:36:49 2009
@@ -20,6 +20,8 @@
*/
package org.apache.wiki.content;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
import java.security.Permission;
import java.security.Principal;
import java.util.*;
@@ -224,7 +226,7 @@
{
try
{
- Class<Repository> jackrabbitRepo = (Class<Repository>) Class.forName( "org.apache.jackrabbit.TransientRepository" );
+ Class<Repository> jackrabbitRepo = (Class<Repository>) Class.forName( "org.apache.jackrabbit.core.TransientRepository" );
m_repository = jackrabbitRepo.newInstance();
}
catch( ClassNotFoundException e1 )
@@ -306,7 +308,57 @@
{
m_sessionManager.releaseSession();
}
+
+ public void shutdown()
+ {
+ release();
+ //
+ // If this is a Jackrabbit Repository, we'll call it's shutdown() method
+ // to make sure it's really shut down.
+ //
+ try
+ {
+ Class jcrRepoClass = Class.forName( "org.apache.jackrabbit.core.JackrabbitRepository" );
+ if( m_repository.getClass().isAssignableFrom(jcrRepoClass) )
+ {
+ log.info( "Shutting down Jackrabbit repository..." );
+ Method m = jcrRepoClass.getMethod( "shutdown" );
+
+ m.invoke( m_repository );
+ }
+ }
+ catch( ClassNotFoundException e )
+ {
+ // Fine.
+ }
+ catch( SecurityException e )
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ catch( NoSuchMethodException e )
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ catch( IllegalArgumentException e )
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ catch( IllegalAccessException e )
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ catch( InvocationTargetException e )
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
/**
* Returns the current JCR Session. If there is no Session, a new
* one is created.
@@ -359,7 +411,7 @@
QueryManager mgr = session.getWorkspace().getQueryManager();
- Query q = mgr.createQuery( "/jcr:root/"+JCR_PAGES_NODE+"/"+((space != null) ? space : "")+"/*", Query.XPATH );
+ Query q = mgr.createQuery( "/jcr:root/"+JCR_PAGES_NODE+((space != null) ? ("/"+space) : "")+"/*", Query.XPATH );
QueryResult qr = q.execute();
@@ -1037,7 +1089,7 @@
Node nd = session.getRootNode().addNode( getJCRPath(path) );
- nd.addMixin( "mix:versionable" );
+ //nd.addMixin( "mix:versionable" );
nd.addMixin( "mix:referenceable" );
JCRWikiPage page = new JCRWikiPage(m_engine, nd);
@@ -1304,8 +1356,11 @@
public void releaseSession()
{
Session session = m_currentSession.get();
- session.logout();
- m_currentSession.set(null);
+ if( session != null )
+ {
+ session.logout();
+ m_currentSession.set(null);
+ }
}
/**
Modified: incubator/jspwiki/trunk/tests/etc/jspwiki.properties.tmpl
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/tests/etc/jspwiki.properties.tmpl?rev=759761&r1=759760&r2=759761&view=diff
==============================================================================
--- incubator/jspwiki/trunk/tests/etc/jspwiki.properties.tmpl (original)
+++ incubator/jspwiki/trunk/tests/etc/jspwiki.properties.tmpl Sun Mar 29 19:36:49 2009
@@ -9,22 +9,18 @@
#
jspwiki.pageProvider = org.apache.wiki.providers.FileSystemProvider
-jspwiki.usePageCache = true
-#
-# Determines where wiki files are kept.
-#
-jspwiki.fileSystemProvider.pageDir = @tests.pagedir@
jspwiki.workDir = @tests.workdir@
jspwiki.translatorReader.camelCaseLinks = true
+jspwiki.repository = priha
+
jspwiki.breakTitleWithSpaces = true
jspwiki.translatorReader.matchEnglishPlurals = true
jspwiki.translatorReader.useOutlinkImage = false
jspwiki.attachmentProvider = BasicAttachmentProvider
-jspwiki.basicAttachmentProvider.storageDir = @tests.pagedir@
jspwiki.encoding = ISO-8859-1
Modified: incubator/jspwiki/trunk/tests/java/org/apache/wiki/ReferenceManagerTest.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/tests/java/org/apache/wiki/ReferenceManagerTest.java?rev=759761&r1=759760&r2=759761&view=diff
==============================================================================
--- incubator/jspwiki/trunk/tests/java/org/apache/wiki/ReferenceManagerTest.java (original)
+++ incubator/jspwiki/trunk/tests/java/org/apache/wiki/ReferenceManagerTest.java Sun Mar 29 19:36:49 2009
@@ -66,13 +66,6 @@
File refmgrfile = new File( workDir, "refmgr.ser" );
if( refmgrfile.exists() ) refmgrfile.delete();
}
-
- String fileDir = props.getProperty( AbstractFileProvider.PROP_PAGEDIR );
-
- if( fileDir != null )
- {
- TestEngine.deleteAll( new File(fileDir) );
- }
engine = new TestEngine(props);
Modified: incubator/jspwiki/trunk/tests/java/org/apache/wiki/TestEngine.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/tests/java/org/apache/wiki/TestEngine.java?rev=759761&r1=759760&r2=759761&view=diff
==============================================================================
--- incubator/jspwiki/trunk/tests/java/org/apache/wiki/TestEngine.java (original)
+++ incubator/jspwiki/trunk/tests/java/org/apache/wiki/TestEngine.java Sun Mar 29 19:36:49 2009
@@ -21,6 +21,7 @@
package org.apache.wiki;
import java.io.*;
+import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
@@ -187,7 +188,17 @@
}
catch( IOException e ) {} // Fine
}
-
+
+ public void emptyRepository() throws ProviderException
+ {
+ Collection<WikiPage> pages = getContentManager().getAllPages( null );
+
+ for( WikiPage p : pages )
+ {
+ getContentManager().deletePage( p );
+ }
+ }
+
public static final InputStream findTestProperties()
{
return findTestProperties( "/jspwiki.properties" );
Modified: incubator/jspwiki/trunk/tests/java/org/apache/wiki/WikiEngineTest.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/tests/java/org/apache/wiki/WikiEngineTest.java?rev=759761&r1=759760&r2=759761&view=diff
==============================================================================
--- incubator/jspwiki/trunk/tests/java/org/apache/wiki/WikiEngineTest.java (original)
+++ incubator/jspwiki/trunk/tests/java/org/apache/wiki/WikiEngineTest.java Sun Mar 29 19:36:49 2009
@@ -69,17 +69,10 @@
m_engine = new TestEngine(props);
}
- public void tearDown()
+ public void tearDown() throws Exception
{
- String files = props.getProperty( AbstractFileProvider.PROP_PAGEDIR );
-
- if( files != null )
- {
- File f = new File( files );
-
- TestEngine.deleteAll( f );
- }
-
+ m_engine.emptyRepository();
+
TestEngine.emptyWorkDir();
m_engine.shutdown();
Modified: incubator/jspwiki/trunk/tests/java/org/apache/wiki/parser/JSPWikiMarkupParserTest.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/tests/java/org/apache/wiki/parser/JSPWikiMarkupParserTest.java?rev=759761&r1=759760&r2=759761&view=diff
==============================================================================
--- incubator/jspwiki/trunk/tests/java/org/apache/wiki/parser/JSPWikiMarkupParserTest.java (original)
+++ incubator/jspwiki/trunk/tests/java/org/apache/wiki/parser/JSPWikiMarkupParserTest.java Sun Mar 29 19:36:49 2009
@@ -65,12 +65,12 @@
props.setProperty( "jspwiki.translatorReader.matchEnglishPlurals", "true" );
testEngine = new TestEngine( props );
- testEngine.deletePage( PAGE_NAME );
+ testEngine.emptyRepository();
}
- public void tearDown()
+ public void tearDown() throws Exception
{
- deleteCreatedPages();
+ testEngine.emptyRepository();
testEngine.shutdown();
}
Modified: incubator/jspwiki/trunk/tests/java/org/apache/wiki/rss/RSSGeneratorTest.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/tests/java/org/apache/wiki/rss/RSSGeneratorTest.java?rev=759761&r1=759760&r2=759761&view=diff
==============================================================================
--- incubator/jspwiki/trunk/tests/java/org/apache/wiki/rss/RSSGeneratorTest.java (original)
+++ incubator/jspwiki/trunk/tests/java/org/apache/wiki/rss/RSSGeneratorTest.java Sun Mar 29 19:36:49 2009
@@ -66,7 +66,7 @@
protected void tearDown() throws Exception
{
- TestEngine.deleteAll( new File(props.getProperty( AbstractFileProvider.PROP_PAGEDIR )) );
+ m_testEngine.emptyRepository();
m_testEngine.shutdown();
}
Modified: incubator/jspwiki/trunk/tests/java/stress/MassiveRepositoryTest.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/tests/java/stress/MassiveRepositoryTest.java?rev=759761&r1=759760&r2=759761&view=diff
==============================================================================
--- incubator/jspwiki/trunk/tests/java/stress/MassiveRepositoryTest.java (original)
+++ incubator/jspwiki/trunk/tests/java/stress/MassiveRepositoryTest.java Sun Mar 29 19:36:49 2009
@@ -46,27 +46,13 @@
props.load( TestEngine.findTestProperties("/jspwiki_vers.properties") );
props.setProperty( CachingProvider.PROP_CACHECAPACITY, "1000" );
-
- String files = props.getProperty( AbstractFileProvider.PROP_PAGEDIR );
-
- // Remove file
- File f = new File( files );
-
- TestEngine.deleteAll(f);
-
engine = new TestEngine(props);
}
protected void tearDown() throws Exception
{
+ engine.emptyRepository();
super.tearDown();
-
- String files = props.getProperty( AbstractFileProvider.PROP_PAGEDIR );
-
- // Remove file
- File f = new File( files );
-
- TestEngine.deleteAll(f);
}
private String getName( int i )