From: <ro...@us...> - 2008-11-03 15:21:01
|
Revision: 4859 http://openuss.svn.sourceforge.net/openuss/?rev=4859&view=rev Author: roekens Date: 2008-11-03 15:20:56 +0000 (Mon, 03 Nov 2008) Log Message: ----------- cumulative update for discussion package: removed circular dependency from lecture package. buggy watch emails (containing "ISSUE: Find domain name" string) are now generated with correct forum name. forum name is saved in database to prevent dependency to lecture package -> db change is needed migration sql script for change of 3.1 to light is included. Modified Paths: -------------- branches/openuss-plexus-3.1-light/plexus/plexus-api/src/main/java/org/openuss/discussion/DiscussionService.java branches/openuss-plexus-3.1-light/plexus/plexus-api/src/main/java/org/openuss/discussion/Forum.java branches/openuss-plexus-3.1-light/plexus/plexus-api/src/main/java/org/openuss/discussion/ForumInfo.java branches/openuss-plexus-3.1-light/plexus/plexus-api/src/main/java/org/openuss/lecture/Course.java branches/openuss-plexus-3.1-light/plexus/plexus-api/src/main/java/org/openuss/lecture/CourseInfo.java branches/openuss-plexus-3.1-light/plexus/plexus-core/src/main/java/org/openuss/discussion/DiscussionServiceBase.java branches/openuss-plexus-3.1-light/plexus/plexus-core/src/main/java/org/openuss/discussion/DiscussionServiceImpl.java branches/openuss-plexus-3.1-light/plexus/plexus-core/src/main/java/org/openuss/discussion/ForumBase.java branches/openuss-plexus-3.1-light/plexus/plexus-core/src/main/java/org/openuss/discussion/ForumDaoBase.java branches/openuss-plexus-3.1-light/plexus/plexus-core/src/main/java/org/openuss/discussion/ForumDaoImpl.java branches/openuss-plexus-3.1-light/plexus/plexus-core/src/main/java/org/openuss/discussion/ForumImpl.java branches/openuss-plexus-3.1-light/plexus/plexus-core/src/main/resources/org/openuss/discussion/Forum.hbm.xml branches/openuss-plexus-3.1-light/plexus/plexus-core/src/test/java/org/openuss/discussion/DiscussionServiceIntegrationTest.java Added Paths: ----------- branches/openuss-plexus-3.1-light/plexus/plexus-api/src/main/java/org/openuss/foundation/DefaultNamedDomainObject.java branches/openuss-plexus-3.1-light/plexus/plexus-core/src/main/data/delete_double_g2a.sql Modified: branches/openuss-plexus-3.1-light/plexus/plexus-api/src/main/java/org/openuss/discussion/DiscussionService.java =================================================================== --- branches/openuss-plexus-3.1-light/plexus/plexus-api/src/main/java/org/openuss/discussion/DiscussionService.java 2008-11-02 21:45:06 UTC (rev 4858) +++ branches/openuss-plexus-3.1-light/plexus/plexus-api/src/main/java/org/openuss/discussion/DiscussionService.java 2008-11-03 15:20:56 UTC (rev 4859) @@ -4,6 +4,7 @@ /** * @author Ingo Dueppe + * @author Sebastian Roekens */ public interface DiscussionService { @@ -39,7 +40,7 @@ public void addForum(ForumInfo forum); - public ForumInfo getForum(org.openuss.foundation.DomainObject domainObject); + public ForumInfo getForum(org.openuss.foundation.NamedDomainObject domainObject); public void changeEditState(ForumInfo forum); Modified: branches/openuss-plexus-3.1-light/plexus/plexus-api/src/main/java/org/openuss/discussion/Forum.java =================================================================== --- branches/openuss-plexus-3.1-light/plexus/plexus-api/src/main/java/org/openuss/discussion/Forum.java 2008-11-02 21:45:06 UTC (rev 4858) +++ branches/openuss-plexus-3.1-light/plexus/plexus-api/src/main/java/org/openuss/discussion/Forum.java 2008-11-03 15:20:56 UTC (rev 4859) @@ -4,6 +4,7 @@ /** * @author Ingo Dueppe + * @author Sebastian Roekens */ public interface Forum extends org.openuss.foundation.DomainObject { @@ -14,6 +15,10 @@ public Long getDomainIdentifier(); public void setDomainIdentifier(Long domainIdentifier); + + public void setName(String name); + + public String getName(); public boolean isReadOnly(); Modified: branches/openuss-plexus-3.1-light/plexus/plexus-api/src/main/java/org/openuss/discussion/ForumInfo.java =================================================================== --- branches/openuss-plexus-3.1-light/plexus/plexus-api/src/main/java/org/openuss/discussion/ForumInfo.java 2008-11-02 21:45:06 UTC (rev 4858) +++ branches/openuss-plexus-3.1-light/plexus/plexus-api/src/main/java/org/openuss/discussion/ForumInfo.java 2008-11-03 15:20:56 UTC (rev 4859) @@ -2,12 +2,12 @@ import java.io.Serializable; -import org.openuss.foundation.DomainObject; +import org.openuss.foundation.NamedDomainObject; /** * @author Ingo Dueppe */ -public class ForumInfo implements Serializable, DomainObject { +public class ForumInfo implements Serializable, NamedDomainObject { private static final long serialVersionUID = 3319166831448246399L; @@ -15,9 +15,10 @@ this.domainIdentifier = null; this.readOnly = false; this.id = null; + this.name = null; } - public ForumInfo(Long domainIdentifier, boolean readOnly, Long id) { + public ForumInfo(Long domainIdentifier, String name, boolean readOnly, Long id) { this.domainIdentifier = domainIdentifier; this.readOnly = readOnly; this.id = id; @@ -32,7 +33,7 @@ * if the argument is <code>null</code> */ public ForumInfo(ForumInfo otherBean) { - this(otherBean.getDomainIdentifier(), otherBean.isReadOnly(), otherBean.getId()); + this(otherBean.getDomainIdentifier(), otherBean.getName(), otherBean.isReadOnly(), otherBean.getId()); } /** @@ -43,6 +44,7 @@ this.setDomainIdentifier(otherBean.getDomainIdentifier()); this.setReadOnly(otherBean.isReadOnly()); this.setId(otherBean.getId()); + this.setName(otherBean.getName()); } private Long domainIdentifier; @@ -58,6 +60,19 @@ this.domainIdentifier = domainIdentifier; } + private String name; + + /** + * + */ + public String getName() { + return this.name; + } + + public void setName(String name) { + this.name = name; + } + private boolean readOnly; /** Added: branches/openuss-plexus-3.1-light/plexus/plexus-api/src/main/java/org/openuss/foundation/DefaultNamedDomainObject.java =================================================================== --- branches/openuss-plexus-3.1-light/plexus/plexus-api/src/main/java/org/openuss/foundation/DefaultNamedDomainObject.java (rev 0) +++ branches/openuss-plexus-3.1-light/plexus/plexus-api/src/main/java/org/openuss/foundation/DefaultNamedDomainObject.java 2008-11-03 15:20:56 UTC (rev 4859) @@ -0,0 +1,52 @@ +/** + * + */ +package org.openuss.foundation; + +/** + * Default implementation of NamedDomainObject interface. + * + * @author Sebastian Roekens + */ +public class DefaultNamedDomainObject implements NamedDomainObject { + + + /** + * + */ + private static final long serialVersionUID = 7776152368697029697L; + + private Long id; + + private String name; + + public DefaultNamedDomainObject() { + }; + + public DefaultNamedDomainObject(Long id) { + super(); + this.id = id; + } + + public DefaultNamedDomainObject(Long id, String name) { + super(); + this.id = id; + this.name = name; + } + + public Long getId() { + return id; + } + + public void setId(final Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(final String name) { + this.name = name; + } +} \ No newline at end of file Property changes on: branches/openuss-plexus-3.1-light/plexus/plexus-api/src/main/java/org/openuss/foundation/DefaultNamedDomainObject.java ___________________________________________________________________ Added: svn:mime-type + text/plain Modified: branches/openuss-plexus-3.1-light/plexus/plexus-api/src/main/java/org/openuss/lecture/Course.java =================================================================== --- branches/openuss-plexus-3.1-light/plexus/plexus-api/src/main/java/org/openuss/lecture/Course.java 2008-11-02 21:45:06 UTC (rev 4858) +++ branches/openuss-plexus-3.1-light/plexus/plexus-api/src/main/java/org/openuss/lecture/Course.java 2008-11-03 15:20:56 UTC (rev 4859) @@ -7,6 +7,7 @@ * time (like a specific semester) by one institute. * * @author Ingo D\xFCppe + * @author Sebastian Roekens */ public interface Course extends org.openuss.foundation.DomainObject { Modified: branches/openuss-plexus-3.1-light/plexus/plexus-api/src/main/java/org/openuss/lecture/CourseInfo.java =================================================================== --- branches/openuss-plexus-3.1-light/plexus/plexus-api/src/main/java/org/openuss/lecture/CourseInfo.java 2008-11-02 21:45:06 UTC (rev 4858) +++ branches/openuss-plexus-3.1-light/plexus/plexus-api/src/main/java/org/openuss/lecture/CourseInfo.java 2008-11-03 15:20:56 UTC (rev 4859) @@ -3,7 +3,7 @@ /** * */ -public class CourseInfo implements java.io.Serializable, org.openuss.foundation.DomainObject { +public class CourseInfo implements java.io.Serializable, org.openuss.foundation.NamedDomainObject { /** * The serial version UID of this class. Needed for serialization. */ Added: branches/openuss-plexus-3.1-light/plexus/plexus-core/src/main/data/delete_double_g2a.sql =================================================================== --- branches/openuss-plexus-3.1-light/plexus/plexus-core/src/main/data/delete_double_g2a.sql (rev 0) +++ branches/openuss-plexus-3.1-light/plexus/plexus-core/src/main/data/delete_double_g2a.sql 2008-11-03 15:20:56 UTC (rev 4859) @@ -0,0 +1,47 @@ +-- backup g2a table +create table security_g2aback( + members_fk bigint not null, + groups_fk bigint not null +); +insert into security_g2aback select * from security_group2authority; + +-- create table with multiple entries +create table security_g2abackup( + members_fk bigint not null, + groups_fk bigint not null +); + +insert into security_g2abackup +select a1, b1 +from (select distinct members_fk as a1, groups_fk as b1 from security_group2authority) +where ((select count(*) + from security_group2authority + where security_group2authority.groups_fk = b1 + and security_group2authority.members_fk = a1 ) + > 1) + +-- remove multiple entries from original table +create procedure delete_double_g2a +as +declare variable userId bigint; +declare variable groupId bigint; +begin + for + SELECT members_fk as userId, groups_fk as groupId + FROM security_g2abackup + into + :userId, :groupId do + begin + DELETE FROM security_group2authority WHERE members_fk = :userId and groups_fk = :groupId; + + INSERT INTO security_group2authority + (members_fk, groups_fk) + VALUES (:userId,:groupId); + end +end; +execute procedure delete_double_g2a; +drop PROCEDURE delete_double_g2a; + +drop table security_g2abackup; + +drop table security_g2aback; Modified: branches/openuss-plexus-3.1-light/plexus/plexus-core/src/main/java/org/openuss/discussion/DiscussionServiceBase.java =================================================================== --- branches/openuss-plexus-3.1-light/plexus/plexus-core/src/main/java/org/openuss/discussion/DiscussionServiceBase.java 2008-11-02 21:45:06 UTC (rev 4858) +++ branches/openuss-plexus-3.1-light/plexus/plexus-core/src/main/java/org/openuss/discussion/DiscussionServiceBase.java 2008-11-03 15:20:56 UTC (rev 4859) @@ -561,9 +561,9 @@ throws java.lang.Exception; /** - * @see org.openuss.discussion.DiscussionService#getForum(org.openuss.foundation.DomainObject) + * @see org.openuss.discussion.DiscussionService#getForum(org.openuss.foundation.NamedDomainObject) */ - public org.openuss.discussion.ForumInfo getForum(org.openuss.foundation.DomainObject domainObject) + public org.openuss.discussion.ForumInfo getForum(org.openuss.foundation.NamedDomainObject domainObject) { try { @@ -578,9 +578,9 @@ } /** - * Performs the core logic for {@link #getForum(org.openuss.foundation.DomainObject)} + * Performs the core logic for {@link #getForum(org.openuss.foundation.NamedDomainObject)} */ - protected abstract org.openuss.discussion.ForumInfo handleGetForum(org.openuss.foundation.DomainObject domainObject) + protected abstract org.openuss.discussion.ForumInfo handleGetForum(org.openuss.foundation.NamedDomainObject domainObject) throws java.lang.Exception; /** Modified: branches/openuss-plexus-3.1-light/plexus/plexus-core/src/main/java/org/openuss/discussion/DiscussionServiceImpl.java =================================================================== --- branches/openuss-plexus-3.1-light/plexus/plexus-core/src/main/java/org/openuss/discussion/DiscussionServiceImpl.java 2008-11-02 21:45:06 UTC (rev 4858) +++ branches/openuss-plexus-3.1-light/plexus/plexus-core/src/main/java/org/openuss/discussion/DiscussionServiceImpl.java 2008-11-03 15:20:56 UTC (rev 4859) @@ -19,7 +19,7 @@ import org.openuss.documents.DocumentApplicationException; import org.openuss.documents.FileInfo; import org.openuss.documents.FolderInfo; -import org.openuss.foundation.DomainObject; +import org.openuss.foundation.NamedDomainObject; import org.openuss.security.User; import org.openuss.system.SystemProperties; @@ -384,13 +384,14 @@ } @Override - protected ForumInfo handleGetForum(final DomainObject domainObject) { + protected ForumInfo handleGetForum(final NamedDomainObject domainObject) { Validate.notNull(domainObject, "DomainObject must not be null."); Validate.notNull(domainObject.getId(), "DomainObject must provide an id."); Forum forum = getForumDao().findByDomainIdentifier(domainObject.getId()); if (forum == null) { ForumInfo forumInfo = new ForumInfo(); forumInfo.setDomainIdentifier(domainObject.getId()); + forumInfo.setName(domainObject.getName()); forumInfo.setReadOnly(false); handleAddForum(forumInfo); forum = getForumDao().findByDomainIdentifier(domainObject.getId()); @@ -444,14 +445,7 @@ Map parameters = new HashMap(); parameters.put("topicname", topic.getTitle()); - -// FIXME AOP2Events - Dependency from diskussion to lecture is not allowed -// Course course = getCourseDao().load(topic.getForum().getDomainIdentifier()); -// CourseInfo courseInfo = getCourseDao().toCourseInfo(course); -// parameters.put("coursename", courseInfo.getName()); - - // FIXME AOP2Events - Use forum name and an application event if course is updated - parameters.put("forumname", "ISSUE: Find domain name"); + parameters.put("forumname", topic.getForum().getName()); parameters.put("topiclink", link); getMessageService().sendMessage("user.discussion.watch.sender", "user.discussion.watch.subject", Modified: branches/openuss-plexus-3.1-light/plexus/plexus-core/src/main/java/org/openuss/discussion/ForumBase.java =================================================================== --- branches/openuss-plexus-3.1-light/plexus/plexus-core/src/main/java/org/openuss/discussion/ForumBase.java 2008-11-02 21:45:06 UTC (rev 4858) +++ branches/openuss-plexus-3.1-light/plexus/plexus-core/src/main/java/org/openuss/discussion/ForumBase.java 2008-11-03 15:20:56 UTC (rev 4859) @@ -4,6 +4,7 @@ /** * @author Ingo Dueppe + * @author Sebastian Roekens */ public abstract class ForumBase implements Forum, Serializable { /** @@ -12,8 +13,24 @@ private static final long serialVersionUID = 781295000319312230L; private java.lang.Long id; + + private String name; + + /** + * @see org.openuss.discussion.Forum#getName() + */ + public java.lang.String getName(){ + return this.name; + } /** + * @see org.openuss.discussion.Forum#setName(java.lang.String name) + */ + public void setName(java.lang.String name){ + this.name = name; + } + + /** * @see org.openuss.discussion.Forum#getId() */ public java.lang.Long getId() { Modified: branches/openuss-plexus-3.1-light/plexus/plexus-core/src/main/java/org/openuss/discussion/ForumDaoBase.java =================================================================== --- branches/openuss-plexus-3.1-light/plexus/plexus-core/src/main/java/org/openuss/discussion/ForumDaoBase.java 2008-11-02 21:45:06 UTC (rev 4858) +++ branches/openuss-plexus-3.1-light/plexus/plexus-core/src/main/java/org/openuss/discussion/ForumDaoBase.java 2008-11-03 15:20:56 UTC (rev 4859) @@ -423,6 +423,7 @@ target.setDomainIdentifier(source.getDomainIdentifier()); target.setReadOnly(source.isReadOnly()); target.setId(source.getId()); + target.setName(source.getName()); } /** @@ -447,6 +448,14 @@ { target.setDomainIdentifier(source.getDomainIdentifier()); } + if (copyIfNull || source.getId() != null) + { + target.setId(source.getId()); + } + if (copyIfNull || source.getName() != null) + { + target.setName(source.getName()); + } target.setReadOnly(source.isReadOnly()); } Modified: branches/openuss-plexus-3.1-light/plexus/plexus-core/src/main/java/org/openuss/discussion/ForumDaoImpl.java =================================================================== --- branches/openuss-plexus-3.1-light/plexus/plexus-core/src/main/java/org/openuss/discussion/ForumDaoImpl.java 2008-11-02 21:45:06 UTC (rev 4858) +++ branches/openuss-plexus-3.1-light/plexus/plexus-core/src/main/java/org/openuss/discussion/ForumDaoImpl.java 2008-11-03 15:20:56 UTC (rev 4859) @@ -16,6 +16,9 @@ if (sourceEntity.getId() != null) { targetVO.setId(sourceEntity.getId()); } + if (sourceEntity.getName() != null) { + targetVO.setName(sourceEntity.getName()); + } targetVO.setReadOnly(sourceEntity.isReadOnly()); } } Modified: branches/openuss-plexus-3.1-light/plexus/plexus-core/src/main/java/org/openuss/discussion/ForumImpl.java =================================================================== --- branches/openuss-plexus-3.1-light/plexus/plexus-core/src/main/java/org/openuss/discussion/ForumImpl.java 2008-11-02 21:45:06 UTC (rev 4858) +++ branches/openuss-plexus-3.1-light/plexus/plexus-core/src/main/java/org/openuss/discussion/ForumImpl.java 2008-11-03 15:20:56 UTC (rev 4859) @@ -4,7 +4,7 @@ /** * @author ingo dueppe - * @author sebasitan roekens + * @author Sebastian Roekens * @see org.openuss.discussion.Forum */ public class ForumImpl extends ForumBase implements Forum { Modified: branches/openuss-plexus-3.1-light/plexus/plexus-core/src/main/resources/org/openuss/discussion/Forum.hbm.xml =================================================================== --- branches/openuss-plexus-3.1-light/plexus/plexus-core/src/main/resources/org/openuss/discussion/Forum.hbm.xml 2008-11-02 21:45:06 UTC (rev 4858) +++ branches/openuss-plexus-3.1-light/plexus/plexus-core/src/main/resources/org/openuss/discussion/Forum.hbm.xml 2008-11-03 15:20:56 UTC (rev 4859) @@ -14,6 +14,9 @@ <property name="domainIdentifier" type="java.lang.Long"> <column name="DOMAIN_IDENTIFIER" not-null="true" unique="false" sql-type="BIGINT"/> </property> + <property name="name" type="java.lang.String"> + <column name="NAME" unique="false" sql-type="VARCHAR(100)"/> + </property> <property name="readOnly" type="boolean"> <column name="READ_ONLY" not-null="true" unique="false" sql-type="SMALLINT"/> </property> Modified: branches/openuss-plexus-3.1-light/plexus/plexus-core/src/test/java/org/openuss/discussion/DiscussionServiceIntegrationTest.java =================================================================== --- branches/openuss-plexus-3.1-light/plexus/plexus-core/src/test/java/org/openuss/discussion/DiscussionServiceIntegrationTest.java 2008-11-02 21:45:06 UTC (rev 4858) +++ branches/openuss-plexus-3.1-light/plexus/plexus-core/src/test/java/org/openuss/discussion/DiscussionServiceIntegrationTest.java 2008-11-03 15:20:56 UTC (rev 4859) @@ -9,14 +9,15 @@ import java.util.List; import org.openuss.TestUtility; -import org.openuss.foundation.DefaultDomainObject; -import org.openuss.foundation.DomainObject; +import org.openuss.foundation.DefaultNamedDomainObject; +import org.openuss.foundation.NamedDomainObject; import org.openuss.security.SecurityService; import org.openuss.security.User; /** * JUnit Test for Spring Hibernate DiscussionService class. * @see org.openuss.discussion.DiscussionService + * @author Sebastian Roekens */ @SuppressWarnings("unchecked") public class DiscussionServiceIntegrationTest extends DiscussionServiceIntegrationTestBase { @@ -28,8 +29,9 @@ return generateUserPost(user); } - private DomainObject generateDomainObject(){ - DomainObject domainObject = new DefaultDomainObject(TestUtility.unique()); + private NamedDomainObject generateDomainObject(){ + NamedDomainObject domainObject = new DefaultNamedDomainObject(TestUtility.unique()); + securityService.createObjectIdentity(domainObject, null); //securityService.setPermissions(user, domainId, LectureAclEntry.ASSIST); return domainObject; @@ -38,7 +40,7 @@ public void testCreateDeleteTopic(){ //test correct creation of a example topic ForumInfo fi = new ForumInfo(); - DomainObject domainObject = generateDomainObject(); + NamedDomainObject domainObject = generateDomainObject(); fi.setDomainIdentifier(domainObject.getId()); fi.setReadOnly(false); discussionService.addForum(fi); @@ -75,7 +77,7 @@ public void testAddPost(){ ForumInfo fi = new ForumInfo(); - DomainObject domainObject = generateDomainObject(); + NamedDomainObject domainObject = generateDomainObject(); fi.setDomainIdentifier(domainObject.getId()); fi.setReadOnly(false); discussionService.addForum(fi); @@ -108,7 +110,7 @@ public void testDeletePost(){ ForumInfo fi = new ForumInfo(); - DomainObject domainObject = generateDomainObject(); + NamedDomainObject domainObject = generateDomainObject(); fi.setDomainIdentifier(domainObject.getId()); fi.setReadOnly(false); discussionService.addForum(fi); @@ -152,7 +154,7 @@ public void testAddGetForum(){ ForumInfo fi = new ForumInfo(); - DomainObject domainObject = generateDomainObject(); + NamedDomainObject domainObject = generateDomainObject(); fi.setDomainIdentifier(domainObject.getId()); fi.setReadOnly(false); discussionService.addForum(fi); @@ -167,7 +169,7 @@ //create forum ForumInfo fi = new ForumInfo(); - DomainObject domainObject = generateDomainObject(); + NamedDomainObject domainObject = generateDomainObject(); fi.setDomainIdentifier(domainObject.getId()); fi.setReadOnly(false); discussionService.addForum(fi); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |