[jboss-cvs] jboss-seam/examples/wiki/src/test/org/jboss/seam/wiki/test/editing ...
Christian Bauer
christian at hibernate.org
Fri Aug 17 09:00:31 EDT 2007
User: cbauer
Date: 07/08/17 09:00:30
Added: examples/wiki/src/test/org/jboss/seam/wiki/test/editing
NestedNodes.xml BasicNodeOperations.java
Log:
Major refactoring of core data schema and some new features
Revision Changes Path
1.1 date: 2007/08/17 13:00:30; author: cbauer; state: Exp;jboss-seam/examples/wiki/src/test/org/jboss/seam/wiki/test/editing/NestedNodes.xml
Index: NestedNodes.xml
===================================================================
<?xml version="1.0"?>
<dataset>
<NODE NODE_ID="100" NODE_TYPE="DIRECTORY" NODE_REVISION="1" OBJ_VERSION="0" NAME="Test Area" WIKINAME="TestArea"
READ_ACCESS_LEVEL="0" WRITE_ACCESS_LEVEL="0" MENU_ITEM="true" CREATED_ON="2006-09-23 13:45:00" CREATED_BY_USER_ID="1" LAST_MODIFIED_ON="2006-09-23 13:45:00" LAST_MODIFIED_BY_USER_ID="1"
AREA_NR="100" PARENT_NODE_ID="1" NS_THREAD="1" NS_LEFT="8" NS_RIGHT="23" DISPLAY_POSITION="2"/>
<NODE_DIRECTORY DIRECTORY_ID="100" DEFAULT_DOCUMENT_ID="101"/>
<NODE NODE_ID="101" NODE_TYPE="DOCUMENT" NODE_REVISION="1" OBJ_VERSION="0" NAME="Test Document1" WIKINAME="TestDocument1"
READ_ACCESS_LEVEL="0" WRITE_ACCESS_LEVEL="0" MENU_ITEM="true" CREATED_ON="2006-09-23 13:45:00" CREATED_BY_USER_ID="1" LAST_MODIFIED_ON="2006-09-23 13:45:00" LAST_MODIFIED_BY_USER_ID="1"
AREA_NR="100" PARENT_NODE_ID="100" NS_THREAD="1" NS_LEFT="9" NS_RIGHT="10" DISPLAY_POSITION="0"/>
<NODE_DOCUMENT DOCUMENT_ID="101" NAME_AS_TITLE="true" ENABLE_COMMENT_FORM="true" ENABLE_COMMENTS="true" CONTENT="This is a *test* document."/>
<NODE NODE_ID="102" NODE_TYPE="DOCUMENT" NODE_REVISION="1" OBJ_VERSION="0" NAME="Test Document2" WIKINAME="TestDocument2"
READ_ACCESS_LEVEL="0" WRITE_ACCESS_LEVEL="0" MENU_ITEM="false" CREATED_ON="2006-09-23 13:45:00" CREATED_BY_USER_ID="1" LAST_MODIFIED_ON="2006-09-23 13:45:00" LAST_MODIFIED_BY_USER_ID="1"
AREA_NR="100" PARENT_NODE_ID="100" NS_THREAD="1" NS_LEFT="11" NS_RIGHT="12" DISPLAY_POSITION="1"/>
<NODE_DOCUMENT DOCUMENT_ID="102" NAME_AS_TITLE="false" ENABLE_COMMENT_FORM="false" ENABLE_COMMENTS="false" CONTENT="This is another *test* document."/>
<NODE NODE_ID="103" NODE_TYPE="DOCUMENT" NODE_REVISION="1" OBJ_VERSION="0" NAME="Test Document3" WIKINAME="TestDocument3"
READ_ACCESS_LEVEL="0" WRITE_ACCESS_LEVEL="0" MENU_ITEM="true" CREATED_ON="2006-09-23 13:45:00" CREATED_BY_USER_ID="1" LAST_MODIFIED_ON="2006-09-23 13:45:00" LAST_MODIFIED_BY_USER_ID="1"
AREA_NR="100" PARENT_NODE_ID="100" NS_THREAD="1" NS_LEFT="13" NS_RIGHT="14" DISPLAY_POSITION="2"/>
<NODE_DOCUMENT DOCUMENT_ID = "103" NAME_AS_TITLE = "false" ENABLE_COMMENT_FORM = "false" ENABLE_COMMENTS = "false" CONTENT = "This is a third *test* document."/>
<NODE NODE_ID="104" NODE_TYPE="DIRECTORY" NODE_REVISION="1" OBJ_VERSION="0" NAME="Test Subdirectory" WIKINAME="Subdirectory"
READ_ACCESS_LEVEL="0" WRITE_ACCESS_LEVEL="0" MENU_ITEM="true" CREATED_ON="2006-09-23 13:45:00" CREATED_BY_USER_ID="1"
LAST_MODIFIED_ON="2006-09-23 13:45:00" LAST_MODIFIED_BY_USER_ID="1"
AREA_NR="100" PARENT_NODE_ID="100" NS_THREAD="1" NS_LEFT="15" NS_RIGHT="20" DISPLAY_POSITION="3"/>
<NODE_DIRECTORY DIRECTORY_ID = "104" DEFAULT_DOCUMENT_ID = "105"/>
<NODE NODE_ID="105" NODE_TYPE="DOCUMENT" NODE_REVISION="1" OBJ_VERSION="0" NAME="Test Subdocument1" WIKINAME="TestSubdocument1"
READ_ACCESS_LEVEL="0" WRITE_ACCESS_LEVEL="0" MENU_ITEM="false" CREATED_ON="2006-09-23 13:45:00" CREATED_BY_USER_ID="1" LAST_MODIFIED_ON="2006-09-23 13:45:00" LAST_MODIFIED_BY_USER_ID="1"
AREA_NR="100" PARENT_NODE_ID="104" NS_THREAD="1" NS_LEFT="16" NS_RIGHT="17" DISPLAY_POSITION="0"/>
<NODE_DOCUMENT DOCUMENT_ID = "105" NAME_AS_TITLE = "false" ENABLE_COMMENT_FORM = "false" ENABLE_COMMENTS = "false" CONTENT = "This is the first sub document."/>
<NODE NODE_ID="106" NODE_TYPE="DOCUMENT" NODE_REVISION="1" OBJ_VERSION="0" NAME="Test Subdocument2" WIKINAME="TestSubdocument2"
READ_ACCESS_LEVEL="0" WRITE_ACCESS_LEVEL="0" MENU_ITEM="true" CREATED_ON="2006-09-23 13:45:00" CREATED_BY_USER_ID="1" LAST_MODIFIED_ON="2006-09-23 13:45:00" LAST_MODIFIED_BY_USER_ID="1"
AREA_NR="100" PARENT_NODE_ID="104" NS_THREAD="1" NS_LEFT="18" NS_RIGHT="19" DISPLAY_POSITION="1"/>
<NODE_DOCUMENT DOCUMENT_ID = "106" NAME_AS_TITLE = "false" ENABLE_COMMENT_FORM = "false" ENABLE_COMMENTS = "false" CONTENT = "This is the second sub document."/>
<NODE NODE_ID="107" NODE_TYPE="DOCUMENT" NODE_REVISION="1" OBJ_VERSION="0" NAME="Test Document4" WIKINAME="TestDocument4"
READ_ACCESS_LEVEL="0" WRITE_ACCESS_LEVEL="0" MENU_ITEM="true" CREATED_ON="2006-09-23 13:45:00" CREATED_BY_USER_ID="1" LAST_MODIFIED_ON="2006-09-23 13:45:00" LAST_MODIFIED_BY_USER_ID="1"
AREA_NR="100" PARENT_NODE_ID="100" NS_THREAD="1" NS_LEFT="21" NS_RIGHT="22" DISPLAY_POSITION="4"/>
<NODE_DOCUMENT DOCUMENT_ID = "107" NAME_AS_TITLE = "false" ENABLE_COMMENT_FORM = "false" ENABLE_COMMENTS = "false" CONTENT = "This is a fourth *test* document."/>
</dataset>
1.1 date: 2007/08/17 13:00:30; author: cbauer; state: Exp;jboss-seam/examples/wiki/src/test/org/jboss/seam/wiki/test/editing/BasicNodeOperations.java
Index: BasicNodeOperations.java
===================================================================
/*
* JBoss, Home of Professional Open Source
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.seam.wiki.test.editing;
import org.dbunit.operation.DatabaseOperation;
import org.hibernate.StatelessSession;
import org.hibernate.ejb.HibernateEntityManagerFactory;
import org.jboss.seam.log.Log;
import org.jboss.seam.log.Logging;
import org.jboss.seam.wiki.core.action.DirectoryHome;
import org.jboss.seam.wiki.core.action.DocumentHome;
import org.jboss.seam.wiki.core.dao.NodeDAO;
import org.jboss.seam.wiki.core.model.Node;
import org.jboss.seam.wiki.core.nestedset.NestedSetNodeWrapper;
import org.jboss.seam.wiki.core.nestedset.NestedSetResultTransformer;
import org.jboss.seam.wiki.test.util.DBUnitSeamTest;
import org.jboss.seam.wiki.util.WikiUtil;
import org.testng.annotations.Test;
import java.util.Comparator;
public class BasicNodeOperations extends DBUnitSeamTest {
private Log log = Logging.getLog(BasicNodeOperations.class);
private static final Long TEST_WIKI_ROOT_ID = 1l;
private static final Long TEST_DIRECTORY1_ID = 100l;
private static final Long TEST_DOCUMENT1_ID = 101l;
private static final Long TEST_DOCUMENT2_ID = 102l;
private static final Long TEST_DOCUMENT3_ID = 103l;
private static final Long TEST_DIRECTORY2_ID = 104l;
private static final Long TEST_DOCUMENT5_ID = 105l;
private static final Long TEST_DOCUMENT6_ID = 106l;
private static final Long TEST_DOCUMENT7_ID = 107l;
protected void prepareDBUnitOperations() {
beforeTestOperations.add(
new DataSetOperation("org/jboss/seam/wiki/test/WikiBaseData.xml")
);
beforeTestOperations.add(
new DataSetOperation("org/jboss/seam/wiki/test/editing/NestedNodes.xml", DatabaseOperation.INSERT)
);
}
@Test
public void deleteDocument() throws Exception {
new FacesRequest("/docEdit.xhtml") {
protected void beforeRequest() {
setParameter("nodeId", TEST_DOCUMENT1_ID.toString());
setParameter("parentDirId", TEST_DIRECTORY1_ID.toString());
}
protected void invokeApplication() throws Exception {
assert checkNestedSetNodeInMemory( (Node)getValue("#{documentHome.instance}"), 9, 10);
assert checkNestedSetNodeInMemory( (Node)getValue("#{documentHome.parentDirectory}"), 8, 23);
assert invokeMethod("#{documentHome.remove}").equals("removed");
}
protected void renderResponse() throws Exception {
assert checkNestedSetNodeInDatabase(TEST_DIRECTORY1_ID, 8, 21);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT2_ID, 9, 10);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT3_ID, 11, 12);
assert checkNestedSetNodeInDatabase(TEST_DIRECTORY2_ID, 13, 18);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT5_ID, 14, 15);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT6_ID, 16, 17);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT7_ID, 19, 20);
assert checkNestedSetNodeInMemory( (Node)getValue("#{documentHome.parentDirectory}"), 8, 21);
assert !checkNodeInDatabase(TEST_DOCUMENT1_ID);
displayNodeTree( (NodeDAO)getValue("#{nodeDAO}"), (Node)getValue("#{documentHome.parentDirectory}") );
}
}.run();
}
@Test
public void deleteDirectory() throws Exception {
new FacesRequest("/dirEdit.xhtml") {
protected void beforeRequest() {
setParameter("nodeId", TEST_DIRECTORY2_ID.toString());
setParameter("parentDirId", TEST_DIRECTORY1_ID.toString());
}
protected void invokeApplication() throws Exception {
assert checkNestedSetNodeInDatabase(TEST_DIRECTORY1_ID, 8, 23);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT1_ID, 9, 10);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT2_ID, 11, 12);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT3_ID, 13, 14);
assert checkNestedSetNodeInDatabase(TEST_DIRECTORY2_ID, 15, 20);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT5_ID, 16, 17);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT6_ID, 18, 19);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT7_ID, 21, 22);
assert checkNestedSetNodeInMemory( (Node)getValue("#{directoryHome.instance}"), 15, 20);
assert checkNestedSetNodeInMemory( (Node)getValue("#{directoryHome.parentDirectory}"), 8, 23);
assert invokeMethod("#{directoryHome.remove}").equals("removed");
}
protected void renderResponse() throws Exception {
assert checkNestedSetNodeInDatabase(TEST_DIRECTORY1_ID, 8, 17);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT1_ID, 9, 10);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT2_ID, 11, 12);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT3_ID, 13, 14);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT7_ID, 15, 16);
assert checkNestedSetNodeInMemory( (Node)getValue("#{directoryHome.parentDirectory}"), 8, 17);
assert !checkNodeInDatabase(TEST_DIRECTORY2_ID);
assert !checkNodeInDatabase(TEST_DOCUMENT5_ID);
assert !checkNodeInDatabase(TEST_DOCUMENT6_ID);
displayNodeTree( (NodeDAO)getValue("#{nodeDAO}"), (Node)getValue("#{directoryHome.parentDirectory}") );
}
}.run();
}
@Test
public void createDocumentInArea() throws Exception {
new FacesRequest("/docEdit.xhtml") {
protected void beforeRequest() {
setParameter("parentDirId", TEST_DIRECTORY1_ID.toString());
}
protected void invokeApplication() throws Exception {
DocumentHome docHome = (DocumentHome)getInstance("documentHome");
docHome.getInstance().setName("Testname");
docHome.getInstance().setReadAccessLevel(0);
docHome.getInstance().setWriteAccessLevel(0);
docHome.setFormContent("Testcontent");
assert checkNestedSetNodeInDatabase(TEST_DIRECTORY1_ID, 8, 23);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT1_ID, 9, 10);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT2_ID, 11, 12);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT3_ID, 13, 14);
assert checkNestedSetNodeInDatabase(TEST_DIRECTORY2_ID, 15, 20);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT5_ID, 16, 17);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT6_ID, 18, 19);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT7_ID, 21, 22);
assert checkNestedSetNodeInMemory( (Node)getValue("#{documentHome.parentDirectory}"), 8, 23);
assert invokeMethod("#{documentHome.persist}").equals("persisted");
}
protected void renderResponse() throws Exception {
assert checkNestedSetNodeInDatabase(TEST_DIRECTORY1_ID, 8, 25);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT1_ID, 9, 10);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT2_ID, 11, 12);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT3_ID, 13, 14);
assert checkNestedSetNodeInDatabase(TEST_DIRECTORY2_ID, 15, 20);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT5_ID, 16, 17);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT6_ID, 18, 19);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT7_ID, 21, 22);
Node newNode = (Node)getValue("#{documentHome.instance}");
assert checkNodeInDatabase(newNode.getId());
assert checkNestedSetNodeInMemory(newNode, 23, 24);
assert checkNestedSetNodeInDatabase(newNode.getId(), 23, 24);
Node parentDir = (Node)getValue("#{documentHome.parentDirectory}");
assert checkNestedSetNodeInMemory(parentDir, 8, 25);
displayNodeTree( (NodeDAO)getValue("#{nodeDAO}"), parentDir );
}
}.run();
}
@Test
public void createDocumentInSubdirectory() throws Exception {
new FacesRequest("/docEdit.xhtml") {
protected void beforeRequest() {
setParameter("parentDirId", TEST_DIRECTORY2_ID.toString());
}
protected void invokeApplication() throws Exception {
DocumentHome docHome = (DocumentHome)getInstance("documentHome");
docHome.getInstance().setName("Testname");
docHome.getInstance().setReadAccessLevel(0);
docHome.getInstance().setWriteAccessLevel(0);
docHome.setFormContent("Testcontent");
assert checkNestedSetNodeInDatabase(TEST_DIRECTORY1_ID, 8, 23);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT1_ID, 9, 10);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT2_ID, 11, 12);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT3_ID, 13, 14);
assert checkNestedSetNodeInDatabase(TEST_DIRECTORY2_ID, 15, 20);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT5_ID, 16, 17);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT6_ID, 18, 19);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT7_ID, 21, 22);
assert checkNestedSetNodeInMemory( (Node)getValue("#{documentHome.parentDirectory}"), 15, 20);
assert invokeMethod("#{documentHome.persist}").equals("persisted");
}
protected void renderResponse() throws Exception {
assert checkNestedSetNodeInDatabase(TEST_DIRECTORY1_ID, 8, 25);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT1_ID, 9, 10);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT2_ID, 11, 12);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT3_ID, 13, 14);
assert checkNestedSetNodeInDatabase(TEST_DIRECTORY2_ID, 15, 22);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT5_ID, 16, 17);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT6_ID, 18, 19);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT7_ID, 23, 24);
Node newNode = (Node)getValue("#{documentHome.instance}");
assert checkNodeInDatabase(newNode.getId());
assert checkNestedSetNodeInMemory(newNode, 20, 21);
assert checkNestedSetNodeInDatabase(newNode.getId(), 20, 21);
Node parentDir = (Node)getValue("#{documentHome.parentDirectory}");
assert checkNestedSetNodeInMemory(parentDir, 15, 22);
displayNodeTree( (NodeDAO)getValue("#{nodeDAO}"), parentDir );
}
}.run();
}
@Test
public void moveDirectoryLeft() throws Exception {
new FacesRequest("/dirEdit.xhtml") {
protected void beforeRequest() {
setParameter("nodeId", TEST_DIRECTORY1_ID.toString());
setParameter("parentDirId", TEST_WIKI_ROOT_ID.toString());
}
protected void invokeApplication() throws Exception {
DirectoryHome dirHome = (DirectoryHome)getInstance("directoryHome");
// Move the TEST_DIRECTORY2 (position 3) to position 1
WikiUtil.shiftListElement(dirHome.getInstance().getChildren(), 3, 1);
assert invokeMethod("#{directoryHome.update}").equals("updated");
}
protected void renderResponse() throws Exception {
assert checkNestedSetNodeInDatabase(TEST_DIRECTORY1_ID, 8, 23);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT1_ID, 9, 10);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT2_ID, 11, 12);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT3_ID, 13, 14);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT7_ID, 21, 22);
assert checkNestedSetNodeInDatabase(TEST_DIRECTORY2_ID, 15, 20);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT5_ID, 16, 17);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT6_ID, 18, 19);
DirectoryHome dirHome = (DirectoryHome)getInstance("directoryHome");
assert dirHome.getInstance().getChildren().get(0).getId().equals(TEST_DOCUMENT1_ID);
assert checkNestedSetNodeInMemory(dirHome.getInstance().getChildren().get(0), 9, 10);
displayNodeTree( (NodeDAO)getValue("#{nodeDAO}"), (Node)getValue("#{directoryHome.instance}") );
}
}.run();
}
@Test
public void moveDocumentRight() throws Exception {
new FacesRequest("/dirEdit.xhtml") {
protected void beforeRequest() {
setParameter("nodeId", TEST_DIRECTORY1_ID.toString());
setParameter("parentDirId", TEST_WIKI_ROOT_ID.toString());
}
protected void invokeApplication() throws Exception {
DirectoryHome dirHome = (DirectoryHome)getInstance("directoryHome");
// Move the TEST_DOCUMENT2 (position 1) to position 3
WikiUtil.shiftListElement(dirHome.getInstance().getChildren(), 1, 3);
assert invokeMethod("#{directoryHome.update}").equals("updated");
}
protected void renderResponse() throws Exception {
assert checkNestedSetNodeInDatabase(TEST_DIRECTORY1_ID, 8, 23);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT1_ID, 9, 10);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT2_ID, 11, 12);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT3_ID, 13, 14);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT7_ID, 21, 22);
assert checkNestedSetNodeInDatabase(TEST_DIRECTORY2_ID, 15, 20);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT5_ID, 16, 17);
assert checkNestedSetNodeInDatabase(TEST_DOCUMENT6_ID, 18, 19);
DirectoryHome dirHome = (DirectoryHome)getInstance("directoryHome");
assert dirHome.getInstance().getChildren().get(0).getId().equals(TEST_DOCUMENT1_ID);
assert checkNestedSetNodeInMemory(dirHome.getInstance().getChildren().get(0), 9, 10);
displayNodeTree( (NodeDAO)getValue("#{nodeDAO}"), (Node)getValue("#{directoryHome.instance}") );
}
}.run();
}
/* ############################################################################################################## */
private boolean checkNestedSetNodeInMemory(Node node, long left, long right) throws Exception {
return node.getNsLeft() == left && node.getNsRight() == right;
}
private boolean checkNestedSetNodeInDatabase(long nodeId, long left, long right) throws Exception {
StatelessSession ss = getStatelessSession();
Node node = (Node)ss.createQuery("select n from Node n left join fetch n.parent where n.id = :id").setParameter("id", nodeId).uniqueResult();
ss.close();
return node.getNsLeft() == left && node.getNsRight() == right;
}
private boolean checkNodeInDatabase(long nodeId) throws Exception {
StatelessSession ss = getStatelessSession();
Node node = (Node)ss.createQuery("select n from Node n left join fetch n.parent where n.id = :id").setParameter("id", nodeId).uniqueResult();
ss.close();
return node != null;
}
private StatelessSession getStatelessSession() throws Exception {
org.jboss.ejb3.entity.InjectedEntityManagerFactory jbossEMF =
(org.jboss.ejb3.entity.InjectedEntityManagerFactory) getInitialContext().lookup("java:/entityManagerFactories/wiki");
return ((HibernateEntityManagerFactory) jbossEMF.getDelegate()).getSessionFactory().openStatelessSession();
}
private void displayNodeTree(NodeDAO dao, Node startNode) {
if (log.isTraceEnabled()) {
Comparator<NestedSetNodeWrapper<Node>> comp =
new Comparator<NestedSetNodeWrapper<Node>>() {
public int compare(NestedSetNodeWrapper<Node> o, NestedSetNodeWrapper<Node> o2) {
return o.getWrappedNode().getDisplayPosition().compareTo(o2.getWrappedNode().getDisplayPosition());
}
};
NestedSetNodeWrapper<Node> startNodeWrapper = new NestedSetNodeWrapper<Node>(startNode, comp);
NestedSetResultTransformer<Node> transformer = new NestedSetResultTransformer<Node>(startNodeWrapper);
dao.appendNestedSetNodes(transformer, null, false);
log.trace("######################################## TREE BEGIN #####################################################");
displayNodes(startNodeWrapper);
log.trace("######################################## TREE END #####################################################");
}
}
private void displayNodes(NestedSetNodeWrapper<Node> startNode) {
StringBuffer levelMarkers = new StringBuffer();
for (int i = 1; i <= startNode.getLevel(); i++) {
levelMarkers.append("#");
}
log.trace(levelMarkers.toString() + " " + startNode);
for (NestedSetNodeWrapper<Node> next : startNode.getWrappedChildren()) {
displayNodes(next);
}
}
}
More information about the jboss-cvs-commits
mailing list