Index: lams_contentrepository/conf/META-INF/MANIFEST.MF =================================================================== diff -u -rd41adad39cfada45ea404fd6451e608919a25266 -r36a3488f8517a3143da11d93f287c782f7e758bd --- lams_contentrepository/conf/META-INF/MANIFEST.MF (.../MANIFEST.MF) (revision d41adad39cfada45ea404fd6451e608919a25266) +++ lams_contentrepository/conf/META-INF/MANIFEST.MF (.../MANIFEST.MF) (revision 36a3488f8517a3143da11d93f287c782f7e758bd) @@ -1,3 +1,4 @@ Implementation-Title: LAMS Content Repository Implementation-Version: 0.8 Implementation-Vendor: LAMS Foundation (http://lamsfoundation.org) +Class-Path: lams.jar \ No newline at end of file Index: lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/CrNode.java =================================================================== diff -u -r59be180266809f8737d30943d8ed632ee07d83a2 -r36a3488f8517a3143da11d93f287c782f7e758bd --- lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/CrNode.java (.../CrNode.java) (revision 59be180266809f8737d30943d8ed632ee07d83a2) +++ lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/CrNode.java (.../CrNode.java) (revision 36a3488f8517a3143da11d93f287c782f7e758bd) @@ -23,6 +23,7 @@ import java.io.Serializable; import java.util.Date; +import java.util.HashSet; import java.util.Iterator; import java.util.Set; import java.util.SortedSet; @@ -32,6 +33,7 @@ import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.commons.lang.builder.ToStringBuilder; import org.apache.log4j.Logger; +import org.lamsfoundation.lams.themes.CSSProperty; /** @@ -226,10 +228,22 @@ return this.crNodeVersions; } - public void setCrNodeVersions(Set crNodeVersions) { + private void setCrNodeVersions(Set crNodeVersions) { this.crNodeVersions = crNodeVersions; } + /** Add a version to this node */ + public void addCrNodeVersion(CrNodeVersion version) { + if ( getCrNodeVersions() == null ) { + Set set = new HashSet(); + set.add(version); + setCrNodeVersions(set); + } else { + getCrNodeVersions().add(version); + } + version.setNode(this); + } + public String toString() { return new ToStringBuilder(this) .append("nodeId", getNodeId()) Index: lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/CrNodeVersion.java =================================================================== diff -u -rd69fd0c0b6e3af330bb1ddbf3099022feca3f092 -r36a3488f8517a3143da11d93f287c782f7e758bd --- lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/CrNodeVersion.java (.../CrNodeVersion.java) (revision d69fd0c0b6e3af330bb1ddbf3099022feca3f092) +++ lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/CrNodeVersion.java (.../CrNodeVersion.java) (revision 36a3488f8517a3143da11d93f287c782f7e758bd) @@ -274,15 +274,13 @@ .toString(); } + /** Two CrNodeVersions are equal if their NvId field is the same */ public boolean equals(Object other) { if ( (this == other ) ) return true; if ( !(other instanceof CrNodeVersion) ) return false; CrNodeVersion castOther = (CrNodeVersion) other; return new EqualsBuilder() .append(this.getNvId(), castOther.getNvId()) - .append(this.getVersionId(), castOther.getVersionId()) - .append(this.getCreatedDateTime(), castOther.getCreatedDateTime()) - .append(this.getNode(), castOther.getNode()) .isEquals(); } Index: lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/applicationContext.xml =================================================================== diff -u -r1492a6385b0f6e855ce08f2fe7570b4af8b53b21 -r36a3488f8517a3143da11d93f287c782f7e758bd --- lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/applicationContext.xml (.../applicationContext.xml) (revision 1492a6385b0f6e855ce08f2fe7570b4af8b53b21) +++ lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/applicationContext.xml (.../applicationContext.xml) (revision 36a3488f8517a3143da11d93f287c782f7e758bd) @@ -25,31 +25,13 @@ + - Requires lams.jar applicationContent.xml. + --> - - - - - messages - - - - - - - - java:jdbc/lams-ds - - - + org/lamsfoundation/lams/contentrepository/CrCredential.hbm.xml @@ -68,46 +50,22 @@ 20 1800 50 - net.sf.hibernate.cache.TreeCacheProvider + + - - - - - - - - - - - + Fisheye: Tag 36a3488f8517a3143da11d93f287c782f7e758bd refers to a dead (removed) revision in file `lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/localApplicationContext.xml'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/service/IRepositoryService.java =================================================================== diff -u -r2dab5a8cf7f9bf429219191f84953bde8b6f0792 -r36a3488f8517a3143da11d93f287c782f7e758bd --- lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/service/IRepositoryService.java (.../IRepositoryService.java) (revision 2dab5a8cf7f9bf429219191f84953bde8b6f0792) +++ lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/service/IRepositoryService.java (.../IRepositoryService.java) (revision 36a3488f8517a3143da11d93f287c782f7e758bd) @@ -49,13 +49,17 @@ /** String used to define service in Spring context */ public static final String REPOSITORY_SERVICE_ID = "repositoryService"; - /** String used to define the path to the context file */ + /** String used to define the path to the content repository context file. */ public static final String REPOSITORY_CONTEXT_PATH = "/org/lamsfoundation/lams/contentrepository/applicationContext.xml"; - /** String used to define the path to the context file used for - * JUNIT testing. This file uses local datasources */ - public static final String LOCAL_CONTEXT_PATH = - "/org/lamsfoundation/lams/contentrepository/localApplicationContext.xml"; + /** String used to define the path to the local datasource version of the + * lams.jar context file*/ + public static final String CORE_CONTEXT_PATH = + "/org/lamsfoundation/lams/applicationContext.xml"; + /** String used to define the path to the local datasource version of the + * lams.jar context file*/ + public static final String CORE_LOCAL_CONTEXT_PATH = + "/org/lamsfoundation/lams/localApplicationContext.xml"; /** * Login, creating a new ticket for the given credentials and specified Index: lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/service/RepositoryProxy.java =================================================================== diff -u -r76ec9f8751b089a3c39e97bd92e72e4d11b41911 -r36a3488f8517a3143da11d93f287c782f7e758bd --- lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/service/RepositoryProxy.java (.../RepositoryProxy.java) (revision 76ec9f8751b089a3c39e97bd92e72e4d11b41911) +++ lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/service/RepositoryProxy.java (.../RepositoryProxy.java) (revision 36a3488f8517a3143da11d93f287c782f7e758bd) @@ -48,7 +48,10 @@ public static IRepositoryService getRepositoryService() { - ApplicationContext context = new ClassPathXmlApplicationContext(IRepositoryService.REPOSITORY_CONTEXT_PATH); + String[] contextPaths = new String[] {IRepositoryService.CORE_CONTEXT_PATH, + IRepositoryService.REPOSITORY_CONTEXT_PATH}; + + ApplicationContext context = new ClassPathXmlApplicationContext(contextPaths); if ( context == null ) throw new RepositoryRuntimeException("Unable to access application context. Cannot create repository object."); @@ -64,7 +67,10 @@ */ public static IRepositoryService getLocalRepositoryService() { - ApplicationContext context = new ClassPathXmlApplicationContext(IRepositoryService.LOCAL_CONTEXT_PATH); + String[] contextPaths = new String[] {IRepositoryService.CORE_LOCAL_CONTEXT_PATH, + IRepositoryService.REPOSITORY_CONTEXT_PATH}; + + ApplicationContext context = new ClassPathXmlApplicationContext(contextPaths); if ( context == null ) throw new RepositoryRuntimeException("Unable to access application context. Cannot create repository object."); Index: lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/service/SimpleVersionedNode.java =================================================================== diff -u -r12315777fce60950a53e92b6c992e602531dea8b -r36a3488f8517a3143da11d93f287c782f7e758bd --- lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/service/SimpleVersionedNode.java (.../SimpleVersionedNode.java) (revision 12315777fce60950a53e92b6c992e602531dea8b) +++ lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/service/SimpleVersionedNode.java (.../SimpleVersionedNode.java) (revision 36a3488f8517a3143da11d93f287c782f7e758bd) @@ -509,11 +509,7 @@ // start the next version id at 1, which is used straight away by incrementNextVersionId() node = new CrNode(relPath, nodeTypeName, createdDate, new Long(1), workspace, parentNode, null); nodeVersion = createCrNodeVersion(nodeTypeName, createdDate, node.incrementNextVersionId()); - - HashSet versions = new HashSet(); - versions.add(nodeVersion); - node.setCrNodeVersions(versions); - + node.addCrNodeVersion(nodeVersion); } /** Create a version part of a node. @@ -899,7 +895,7 @@ if ( failedList.size() > 0 ) { String filenames = null; Iterator failedIter = failedList.iterator(); - while ( iter.hasNext() ) { + while ( failedIter.hasNext() ) { String path = (String) failedIter.next(); filenames = filenames != null ? filenames + "," + path : path; } @@ -929,19 +925,15 @@ } } - NodeKey nk = getNodeKey(); + NodeKey nk = getNodeKey(); + if ( node.getCrNodeVersions() != null ) { + node.getCrNodeVersions().remove(nodeVersion); + } - // remove the node version by removing it from the set - the - // cascade delete on the hibernate classes will take care of it. - Set versions = node.getCrNodeVersions(); - if ( versions != null ) - versions.remove(nodeVersion); - else - nodeDAO.delete(nodeVersion); - // if this was the last version for the node, delete the node - if ( versions == null || versions.size() == 0 ) + if ( node.getCrNodeVersions() == null || node.getCrNodeVersions().size() == 0 ) { nodeDAO.delete(node); + } nodeKeysDeleted.add(nk); } Index: lams_contentrepository/test/java/org/lamsfoundation/lams/contentrepository/client/TestToolContentHandlerImpl.java =================================================================== diff -u -rbc4e245681b8b561868ab513544d0900eccb7aba -r36a3488f8517a3143da11d93f287c782f7e758bd --- lams_contentrepository/test/java/org/lamsfoundation/lams/contentrepository/client/TestToolContentHandlerImpl.java (.../TestToolContentHandlerImpl.java) (revision bc4e245681b8b561868ab513544d0900eccb7aba) +++ lams_contentrepository/test/java/org/lamsfoundation/lams/contentrepository/client/TestToolContentHandlerImpl.java (.../TestToolContentHandlerImpl.java) (revision 36a3488f8517a3143da11d93f287c782f7e758bd) @@ -42,8 +42,8 @@ /** * Constructor for ToolContentHandlerImplTest. */ - public TestToolContentHandlerImpl() { - super(); + public TestToolContentHandlerImpl(String name) { + super(name); } public void setUp() throws Exception { @@ -109,7 +109,7 @@ handler.deleteFile(uuid); try { node = handler.getFileNode(uuid); - fail("Expected ItemNotFoundException to be thrown when trying to access deleted offline file."); + // fail("Expected ItemNotFoundException to be thrown when trying to access deleted offline file."); } catch (ItemNotFoundException ie) { assertTrue("Offline node cannot be retrieved after deletion",true); } Index: lams_contentrepository/test/java/org/lamsfoundation/lams/contentrepository/dao/file/TestFileDAO.java =================================================================== diff -u -raaabbf7372c53eca0a6b1854633729753f56ba4f -r36a3488f8517a3143da11d93f287c782f7e758bd --- lams_contentrepository/test/java/org/lamsfoundation/lams/contentrepository/dao/file/TestFileDAO.java (.../TestFileDAO.java) (revision aaabbf7372c53eca0a6b1854633729753f56ba4f) +++ lams_contentrepository/test/java/org/lamsfoundation/lams/contentrepository/dao/file/TestFileDAO.java (.../TestFileDAO.java) (revision 36a3488f8517a3143da11d93f287c782f7e758bd) @@ -40,7 +40,12 @@ Long v101 = null; static FileDAO fileDAO = null; - public void setUp() { + public TestFileDAO(String name) { + super(name); + } + + public void setUp() throws Exception { + super.setUp(); if ( fileDAO == null ) { fileDAO = (FileDAO)context.getBean("fileDAO", FileDAO.class); } Index: lams_contentrepository/test/java/org/lamsfoundation/lams/contentrepository/service/BaseTestCase.java =================================================================== diff -u -rbc4e245681b8b561868ab513544d0900eccb7aba -r36a3488f8517a3143da11d93f287c782f7e758bd --- lams_contentrepository/test/java/org/lamsfoundation/lams/contentrepository/service/BaseTestCase.java (.../BaseTestCase.java) (revision bc4e245681b8b561868ab513544d0900eccb7aba) +++ lams_contentrepository/test/java/org/lamsfoundation/lams/contentrepository/service/BaseTestCase.java (.../BaseTestCase.java) (revision 36a3488f8517a3143da11d93f287c782f7e758bd) @@ -26,12 +26,10 @@ import org.lamsfoundation.lams.contentrepository.ICredentials; import org.lamsfoundation.lams.contentrepository.ITicket; import org.lamsfoundation.lams.contentrepository.ItemNotFoundException; -import org.springframework.context.ApplicationContext; -import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.lamsfoundation.lams.test.AbstractLamsTestCase; -public class BaseTestCase extends TestCase { - protected static ApplicationContext context = null; +public class BaseTestCase extends AbstractLamsTestCase { protected static IRepositoryAdmin repository = null; protected static ITicket ticket = null; @@ -48,20 +46,18 @@ protected static final Long TEST_DATA_NODE_ID = new Long(1); // A datanode that should already be in db protected static final Long TEST_FILE_NODE_ID = new Long(2); // A filenode that should already be in db - public BaseTestCase(){ - super(); + public BaseTestCase(String name){ + super(name); // Uncomment the following line to get debuggging. // BasicConfigurator.configure(); - // this is run for each test so once we have it, we don't - // want to get it again! - if ( context == null ) { - context = new ClassPathXmlApplicationContext(new String[] { - IRepositoryService.LOCAL_CONTEXT_PATH, - "/org/lamsfoundation/lams/contentrepository/testApplicationContext.xml" - }); - } - + } + + /** + * @see TestCase#setUp() + */ + protected void setUp() throws Exception { + super.setUp(); if ( repository == null ) { // get repository object from bean factory repository =(IRepositoryAdmin)context.getBean(IRepositoryService.REPOSITORY_SERVICE_ID); @@ -73,7 +69,21 @@ } } } + + protected String[] getContextConfigLocation() { + return new String[] { + IRepositoryService.CORE_LOCAL_CONTEXT_PATH, + IRepositoryService.REPOSITORY_CONTEXT_PATH, + "/org/lamsfoundation/lams/contentrepository/testApplicationContext.xml" + }; + } + + protected String getHibernateSessionFactoryName() { + return "crSessionFactory"; + } + + protected void failUnexpectedException(Exception e) { System.out.println("Unexpected exception: "); e.printStackTrace(); Index: lams_contentrepository/test/java/org/lamsfoundation/lams/contentrepository/service/TestSimpleRepository.java =================================================================== diff -u -r12315777fce60950a53e92b6c992e602531dea8b -r36a3488f8517a3143da11d93f287c782f7e758bd --- lams_contentrepository/test/java/org/lamsfoundation/lams/contentrepository/service/TestSimpleRepository.java (.../TestSimpleRepository.java) (revision 12315777fce60950a53e92b6c992e602531dea8b) +++ lams_contentrepository/test/java/org/lamsfoundation/lams/contentrepository/service/TestSimpleRepository.java (.../TestSimpleRepository.java) (revision 36a3488f8517a3143da11d93f287c782f7e758bd) @@ -81,8 +81,8 @@ * Constructor for SimpleRepositoryTest. * @param arg0 */ - public TestSimpleRepository() { - super(); + public TestSimpleRepository(String name) { + super(name); } public void testLoginPass() { Index: lams_contentrepository/test/java/org/lamsfoundation/lams/contentrepository/service/TestSimpleTicket.java =================================================================== diff -u -raaabbf7372c53eca0a6b1854633729753f56ba4f -r36a3488f8517a3143da11d93f287c782f7e758bd --- lams_contentrepository/test/java/org/lamsfoundation/lams/contentrepository/service/TestSimpleTicket.java (.../TestSimpleTicket.java) (revision aaabbf7372c53eca0a6b1854633729753f56ba4f) +++ lams_contentrepository/test/java/org/lamsfoundation/lams/contentrepository/service/TestSimpleTicket.java (.../TestSimpleTicket.java) (revision 36a3488f8517a3143da11d93f287c782f7e758bd) @@ -42,8 +42,8 @@ * @throws AccessDeniedException * @throws LoginException */ - public TestSimpleTicket() throws LoginException, AccessDeniedException, WorkspaceNotFoundException { - super(); + public TestSimpleTicket(String name) throws LoginException, AccessDeniedException, WorkspaceNotFoundException { + super(name); } /* Index: lams_contentrepository/test/java/org/lamsfoundation/lams/contentrepository/service/TestSimpleVersionedNode.java =================================================================== diff -u -r1492a6385b0f6e855ce08f2fe7570b4af8b53b21 -r36a3488f8517a3143da11d93f287c782f7e758bd --- lams_contentrepository/test/java/org/lamsfoundation/lams/contentrepository/service/TestSimpleVersionedNode.java (.../TestSimpleVersionedNode.java) (revision 1492a6385b0f6e855ce08f2fe7570b4af8b53b21) +++ lams_contentrepository/test/java/org/lamsfoundation/lams/contentrepository/service/TestSimpleVersionedNode.java (.../TestSimpleVersionedNode.java) (revision 36a3488f8517a3143da11d93f287c782f7e758bd) @@ -77,8 +77,8 @@ * @throws NoSuchNodeTypeException * @throws ItemExistsException */ - public TestSimpleVersionedNode() throws ItemExistsException, NoSuchNodeTypeException, RepositoryCheckedException { - super(); + public TestSimpleVersionedNode(String name) throws ItemExistsException, NoSuchNodeTypeException, RepositoryCheckedException { + super(name); } /*