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/02/15 23:50:26 UTC
svn commit: r744774 - in /incubator/jspwiki/trunk:
src/java/org/apache/wiki/content/ContentManager.java
tests/java/org/apache/wiki/content/ContentManagerTest.java
Author: jalkanen
Date: Sun Feb 15 22:50:25 2009
New Revision: 744774
URL: http://svn.apache.org/viewvc?rev=744774&view=rev
Log:
Minor mucking about to make ContentManagerTest to actually run.
Modified:
incubator/jspwiki/trunk/src/java/org/apache/wiki/content/ContentManager.java
incubator/jspwiki/trunk/tests/java/org/apache/wiki/content/ContentManagerTest.java
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=744774&r1=744773&r2=744774&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 Feb 15 22:50:25 2009
@@ -87,6 +87,9 @@
public class ContentManager
{
+ /**
+ * The name of the default WikiSpace.
+ */
public static final String DEFAULT_SPACE = "Main";
private static final String JCR_DEFAULT_SPACE = "pages/"+DEFAULT_SPACE;
@@ -197,6 +200,8 @@
{
try
{
+ // FIXME: Should really use reflection to find this class - this requires
+ // an unnecessary compile-time presence of priha.jar.
m_repository = RepositoryManager.getRepository();
}
catch( ConfigurationException e1 )
@@ -233,7 +238,9 @@
try
{
+ Object foo = acquire();
initialize();
+ release(foo);
}
catch( RepositoryException e )
{
@@ -248,47 +255,54 @@
*/
private void initialize() throws LoginException, RepositoryException
{
- Object id = null;
-
- try
- {
- id = m_sessionManager.createSession();
-
- Session session = m_sessionManager.getSession();
+ Session session = m_sessionManager.getSession();
- //
- // Create the proper namespaces
- //
+ //
+ // Create the proper namespaces
+ //
- session.getWorkspace().getNamespaceRegistry().registerNamespace( "wiki", NS_JSPWIKI );
+ session.getWorkspace().getNamespaceRegistry().registerNamespace( "wiki", NS_JSPWIKI );
- Node root = session.getRootNode();
+ Node root = session.getRootNode();
- //
- // Create main page directory
- //
- if( !root.hasNode( JCR_PAGES_NODE ) )
- {
- root.addNode( JCR_PAGES_NODE );
- }
+ //
+ // Create main page directory
+ //
+ if( !root.hasNode( JCR_PAGES_NODE ) )
+ {
+ root.addNode( JCR_PAGES_NODE );
+ }
- //
- // Make sure at least the default "Main" wikispace exists.
- //
+ //
+ // Make sure at least the default "Main" wikispace exists.
+ //
- if( !root.hasNode( JCR_DEFAULT_SPACE ) )
- {
- root.addNode( JCR_DEFAULT_SPACE );
- }
+ if( !root.hasNode( JCR_DEFAULT_SPACE ) )
+ {
+ root.addNode( JCR_DEFAULT_SPACE );
+ }
- session.save();
+ session.save();
+
+ }
+
+ public Object acquire() throws ProviderException
+ {
+ try
+ {
+ return m_sessionManager.createSession();
}
- finally
+ catch( Exception e )
{
- m_sessionManager.destroySession( id );
+ throw new ProviderException( "Unable to create a JCR session", e );
}
}
+ public void release( Object id )
+ {
+ m_sessionManager.destroySession( id );
+ }
+
/**
* Returns all pages in some random order. If you need just the page names,
* please see {@link ReferenceManager#findCreated()}, which is probably a lot
@@ -303,11 +317,9 @@
public Collection<WikiPage> getAllPages( String space )
throws ProviderException
{
- Object id = null;
ArrayList<WikiPage> result = new ArrayList<WikiPage>();
try
{
- id = m_sessionManager.createSession();
Session session = m_sessionManager.getSession();
QueryManager mgr = session.getWorkspace().getQueryManager();
@@ -333,10 +345,6 @@
{
throw new ProviderException("getAllPages()",e);
}
- finally
- {
- m_sessionManager.destroySession(id);
- }
return result;
}
@@ -620,11 +628,8 @@
throw new ProviderException("Illegal page name");
}
- Object id = null;
-
try
{
- id = m_sessionManager.createSession();
Session session = m_sessionManager.getSession();
String jcrPath = getJCRPath( wikiPath );
@@ -635,10 +640,6 @@
{
throw new ProviderException( "Unable to check for page existence", e );
}
- finally
- {
- m_sessionManager.destroySession( id );
- }
}
/**
@@ -659,11 +660,8 @@
throw new WikiException("Illegal page name");
}
- Object id = null;
try
{
- id = m_sessionManager.createSession();
-
Session session = m_sessionManager.getSession();
return session.itemExists( getJCRPath( wikiPath ) );
@@ -672,10 +670,6 @@
{
throw new WikiException("Unable to check for page existence",e);
}
- finally
- {
- m_sessionManager.destroySession( id );
- }
}
/**
@@ -981,11 +975,8 @@
*/
public JCRWikiPage addPage( WikiName path, String contentType ) throws WikiException
{
- Object id = null;
-
try
{
- id = m_sessionManager.createSession();
Session session = m_sessionManager.getSession();
Node nd = session.getRootNode().addNode( getJCRPath(path) );
@@ -998,10 +989,6 @@
{
throw new WikiException( "Unable to add a page", e );
}
- finally
- {
- m_sessionManager.destroySession(id);
- }
}
/**
@@ -1014,10 +1001,8 @@
*/
public JCRWikiPage getPage( WikiName path ) throws ProviderException
{
- Object id = null;
try
{
- id = m_sessionManager.createSession();
Session session = m_sessionManager.getSession();
Node nd = session.getRootNode().getNode( getJCRPath(path) );
@@ -1037,20 +1022,12 @@
{
throw new ProviderException("Unable to get a page",e);
}
- finally
- {
- m_sessionManager.destroySession( id );
- }
}
public JCRWikiPage getPage( WikiName path, int version ) throws WikiException
{
- Object id = null;
-
try
{
- id = m_sessionManager.createSession();
-
Session session = m_sessionManager.getSession();
Node nd = session.getRootNode().getNode( getJCRPath(path) );
@@ -1067,10 +1044,6 @@
{
throw new WikiException( "Unable to get a page", e );
}
- finally
- {
- m_sessionManager.destroySession( id );
- }
}
/**
@@ -1188,11 +1161,8 @@
public WikiPage getDummyPage() throws WikiException
{
- Object id = null;
try
{
- id = m_sessionManager.createSession();
-
Session session = m_sessionManager.getSession();
Node nd = session.getRootNode().addNode( "/pages/Main/Dummy" );
return new JCRWikiPage( m_engine, nd );
@@ -1201,10 +1171,6 @@
{
throw new WikiException("Unable to get dummy page",e);
}
- finally
- {
- m_sessionManager.destroySession( id );
- }
}
/**
@@ -1258,13 +1224,18 @@
/**
* Between createSession() and destroySession() you may get the Session object
- * with this call. Otherwise the end result is undefined.
+ * with this call.
*
* @return A valid Session object, if called between createSession and destroySession().
+ * @throws IllegalStateException If the object has not been acquired with createSession()
*/
- public Session getSession()
+ public Session getSession() throws IllegalStateException
{
- return m_currentSession.get();
+ Session s = m_currentSession.get();
+
+ if( s == null ) throw new IllegalStateException("You have not yet opened a Session");
+
+ return s;
}
}
Modified: incubator/jspwiki/trunk/tests/java/org/apache/wiki/content/ContentManagerTest.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/tests/java/org/apache/wiki/content/ContentManagerTest.java?rev=744774&r1=744773&r2=744774&view=diff
==============================================================================
--- incubator/jspwiki/trunk/tests/java/org/apache/wiki/content/ContentManagerTest.java (original)
+++ incubator/jspwiki/trunk/tests/java/org/apache/wiki/content/ContentManagerTest.java Sun Feb 15 22:50:25 2009
@@ -17,6 +17,8 @@
{
ContentManager m_mgr;
TestEngine m_engine;
+ Object m_owner;
+
@Override
protected void setUp() throws Exception
{
@@ -28,6 +30,7 @@
m_engine = new TestEngine(props);
m_mgr = m_engine.getContentManager();
+ m_owner = m_mgr.acquire();
}
@Override
@@ -37,6 +40,7 @@
if( p != null ) m_mgr.deletePage( p );
+ m_mgr.release( m_owner );
super.tearDown();
}