You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rave.apache.org by ca...@apache.org on 2012/06/18 23:12:00 UTC
svn commit: r1351489 - in /rave/trunk:
rave-components/rave-core/src/main/java/org/apache/rave/portal/model/
rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/
rave-components/rave-core/src/main/java/org/apache/rave/portal/repos...
Author: carlucci
Date: Mon Jun 18 21:11:59 2012
New Revision: 1351489
URL: http://svn.apache.org/viewvc?rev=1351489&view=rev
Log:
RAVE-680: Rave is not generating Foreign Keys with default JPA implementation
Modified:
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Group.java
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Person.java
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/User.java
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/WidgetComment.java
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/WidgetTag.java
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/CategoryRepository.java
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaCategoryRepository.java
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultUserService.java
rave/trunk/rave-components/rave-core/src/main/resources/org/apache/rave/core-applicationContext.xml
rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/AbstractJpaRepositoryTest.java
rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaCategoryRepositoryTest.java
rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaUserRepositoryTest.java
rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultUserServiceTest.java
rave/trunk/rave-components/rave-core/src/test/resources/portal.properties
rave/trunk/rave-components/rave-core/src/test/resources/test_data.sql
rave/trunk/rave-portal-resources/src/main/resources/portal.properties
rave/trunk/rave-portal/src/test/resources/portal.properties
rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/main/resources/META-INF/persistence.xml
rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/resources/rave-shindig-test-applicationContext.xml
rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/resources/rave.shindig.properties
rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-server/rave-shindig/src/main/resources/rave-shindig-applicationContext.xml
rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-server/rave-shindig/src/main/resources/rave.shindig.properties
Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Group.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Group.java?rev=1351489&r1=1351488&r2=1351489&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Group.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Group.java Mon Jun 18 21:11:59 2012
@@ -60,13 +60,7 @@ public class Group implements BasicEntit
@JoinColumn(name = "owner_id", referencedColumnName = "entity_id")
private Person owner;
-
- @ManyToMany(fetch = FetchType.EAGER)
- @JoinTable(name = "group_members",
- joinColumns =
- @JoinColumn(name = "group_id", referencedColumnName = "entity_id"),
- inverseJoinColumns =
- @JoinColumn(name = "person_id", referencedColumnName = "entity_id"))
+ @ManyToMany(fetch = FetchType.EAGER, mappedBy = "groups")
private List<Person> members;
public Person getOwner() {
Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Person.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Person.java?rev=1351489&r1=1351488&r2=1351489&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Person.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Person.java Mon Jun 18 21:11:59 2012
@@ -20,27 +20,8 @@ package org.apache.rave.portal.model;
import org.apache.rave.persistence.BasicEntity;
-import javax.persistence.Basic;
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.JoinTable;
-import javax.persistence.ManyToMany;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
-import javax.persistence.TableGenerator;
-import javax.persistence.Transient;
-import java.util.ArrayList;
-import java.util.HashMap;
+import javax.persistence.*;
import java.util.List;
-import java.util.Map;
/**
* Represents a person in the persistence context
@@ -131,6 +112,12 @@ public class Person implements BasicEnti
inverseJoinColumns = @JoinColumn(name = "followed_id", referencedColumnName = "entity_id"))
protected List<Person> friends;
+ @ManyToMany(fetch = FetchType.LAZY)
+ @JoinTable(name = "group_members",
+ joinColumns = @JoinColumn(name = "person_id", referencedColumnName = "entity_id"),
+ inverseJoinColumns = @JoinColumn(name = "group_id", referencedColumnName = "entity_id"))
+ private List<Group> groups;
+
public Long getEntityId() {
return entityId;
}
@@ -259,6 +246,14 @@ public class Person implements BasicEnti
this.organizations = organizations;
}
+ public List<Group> getGroups() {
+ return groups;
+ }
+
+ public void setGroups(List<Group> groups) {
+ this.groups = groups;
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) return true;
Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/User.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/User.java?rev=1351489&r1=1351488&r2=1351489&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/User.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/User.java Mon Jun 18 21:11:59 2012
@@ -24,10 +24,7 @@ import org.springframework.security.core
import javax.persistence.*;
import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Date;
+import java.util.*;
/**
* {@inheritDoc}
@@ -100,6 +97,12 @@ public class User extends Person impleme
@JoinColumn(name="default_page_layout_id")
private PageLayout defaultPageLayout;
+ @OneToMany(targetEntity=PageUser.class, fetch = FetchType.LAZY, mappedBy="user", orphanRemoval=true)
+ private List<PageUser> pageUsers;
+
+ @OneToMany(targetEntity=WidgetTag.class, fetch = FetchType.LAZY, mappedBy="user", orphanRemoval=true)
+ private List<WidgetTag> widgetTags;
+
@Transient
private String confirmPassword;
@@ -294,6 +297,30 @@ public class User extends Person impleme
this.confirmPassword = confirmPassword;
}
+ public String getDefaultPageLayoutCode() {
+ return defaultPageLayoutCode;
+ }
+
+ public void setDefaultPageLayoutCode(String defaultPageLayoutCode) {
+ this.defaultPageLayoutCode = defaultPageLayoutCode;
+ }
+
+ public List<PageUser> getPageUsers() {
+ return pageUsers;
+ }
+
+ public void setPageUsers(List<PageUser> pageUsers) {
+ this.pageUsers = pageUsers;
+ }
+
+ public List<WidgetTag> getWidgetTags() {
+ return widgetTags;
+ }
+
+ public void setWidgetTags(List<WidgetTag> widgetTags) {
+ this.widgetTags = widgetTags;
+ }
+
@PreRemove
public void preRemove() {
for (Authority authority : authorities) {
@@ -374,11 +401,4 @@ public class User extends Person impleme
return p;
}
- public String getDefaultPageLayoutCode() {
- return defaultPageLayoutCode;
- }
-
- public void setDefaultPageLayoutCode(String defaultPageLayoutCode) {
- this.defaultPageLayoutCode = defaultPageLayoutCode;
- }
}
Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/WidgetComment.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/WidgetComment.java?rev=1351489&r1=1351488&r2=1351489&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/WidgetComment.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/WidgetComment.java Mon Jun 18 21:11:59 2012
@@ -46,10 +46,7 @@ public class WidgetComment implements Ba
@Column(name = "widget_id")
private Long widgetId;
-// @Basic
-// @Column(name = "user_id")
-// private Long userId;
- @OneToOne(fetch=FetchType.EAGER)
+ @ManyToOne(fetch=FetchType.EAGER)
@JoinColumn(name="user_id")
private User user;
Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/WidgetTag.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/WidgetTag.java?rev=1351489&r1=1351488&r2=1351489&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/WidgetTag.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/WidgetTag.java Mon Jun 18 21:11:59 2012
@@ -47,7 +47,7 @@ public class WidgetTag implements BasicE
@Column(name = "widget_id")
private Long widgetId;
- @OneToOne(fetch = FetchType.EAGER)
+ @ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "user_id")
private User user;
Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/CategoryRepository.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/CategoryRepository.java?rev=1351489&r1=1351488&r2=1351489&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/CategoryRepository.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/CategoryRepository.java Mon Jun 18 21:11:59 2012
@@ -26,4 +26,13 @@ public interface CategoryRepository exte
* @return a valid List
*/
List<Category> getAll();
+
+ /**
+ * Removes a user from the createdBy or modifiedBy fields for any Category they are associated with and assigns
+ * the values to null
+ *
+ * @param userId
+ * @return the number of Categories modified
+ */
+ int removeFromCreatedOrModifiedFields(long userId);
}
\ No newline at end of file
Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaCategoryRepository.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaCategoryRepository.java?rev=1351489&r1=1351488&r2=1351489&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaCategoryRepository.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaCategoryRepository.java Mon Jun 18 21:11:59 2012
@@ -21,6 +21,7 @@ package org.apache.rave.portal.repositor
import org.apache.rave.persistence.jpa.AbstractJpaRepository;
import org.apache.rave.portal.model.Category;
+import org.apache.rave.portal.model.User;
import org.apache.rave.portal.repository.CategoryRepository;
import org.springframework.stereotype.Repository;
@@ -40,4 +41,28 @@ public class JpaCategoryRepository exten
public List<Category> getAll() {
return manager.createNamedQuery(Category.GET_ALL, Category.class).getResultList();
}
+
+ @Override
+ public int removeFromCreatedOrModifiedFields(long userId) {
+ List<Category> categories = getAll();
+ int numRecordsChanged = 0;
+ for (Category category : categories) {
+ boolean changed = false;
+ User createdUser = category.getCreatedUser();
+ User lastModifiedUser = category.getLastModifiedUser();
+ if (createdUser != null && userId == createdUser.getEntityId()) {
+ category.setCreatedUser(null);
+ changed = true;
+ }
+ if (lastModifiedUser != null && userId == lastModifiedUser.getEntityId()) {
+ category.setLastModifiedUser(null);
+ changed = true;
+ }
+ if (changed) {
+ numRecordsChanged++;
+ save(category);
+ }
+ }
+ return numRecordsChanged;
+ }
}
Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultUserService.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultUserService.java?rev=1351489&r1=1351488&r2=1351489&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultUserService.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultUserService.java Mon Jun 18 21:11:59 2012
@@ -32,12 +32,7 @@ import org.apache.rave.portal.model.Page
import org.apache.rave.portal.model.Person;
import org.apache.rave.portal.model.User;
import org.apache.rave.portal.model.util.SearchResult;
-import org.apache.rave.portal.repository.PageRepository;
-import org.apache.rave.portal.repository.PageTemplateRepository;
-import org.apache.rave.portal.repository.UserRepository;
-import org.apache.rave.portal.repository.WidgetCommentRepository;
-import org.apache.rave.portal.repository.WidgetRatingRepository;
-import org.apache.rave.portal.repository.WidgetRepository;
+import org.apache.rave.portal.repository.*;
import org.apache.rave.portal.service.EmailService;
import org.apache.rave.portal.service.UserService;
import org.slf4j.Logger;
@@ -70,6 +65,7 @@ public class DefaultUserService implemen
private final WidgetRatingRepository widgetRatingRepository;
private final WidgetCommentRepository widgetCommentRepository;
private final WidgetRepository widgetRepository;
+ private final CategoryRepository categoryRepository;
@Autowired
private PasswordEncoder passwordEncoder;
@@ -113,13 +109,15 @@ public class DefaultUserService implemen
WidgetRatingRepository widgetRatingRepository,
WidgetCommentRepository widgetCommentRepository,
WidgetRepository widgetRepository,
- PageTemplateRepository pageTemplateRepository) {
+ PageTemplateRepository pageTemplateRepository,
+ CategoryRepository categoryRepository) {
this.userRepository = userRepository;
this.pageRepository = pageRepository;
this.widgetRatingRepository = widgetRatingRepository;
this.widgetCommentRepository = widgetCommentRepository;
this.widgetRepository = widgetRepository;
this.pageTemplateRepository = pageTemplateRepository;
+ this.categoryRepository = categoryRepository;
}
@Override
@@ -260,11 +258,14 @@ public class DefaultUserService implemen
int numWidgetRatings = widgetRatingRepository.deleteAll(userId);
// unassign the user from any widgets where they were the owner
int numWidgetsOwned = widgetRepository.unassignWidgetOwner(userId);
+ // unassign the user from any category records they created or modified
+ int numCategoriesTouched = categoryRepository.removeFromCreatedOrModifiedFields(userId);
+
// finally delete the user
userRepository.delete(user);
log.info("Deleted user [" + userId + ',' + username + "] - numPages: " + numDeletedPages + ", numPersonPages:" +
numDeletedPersonPages + ", numWidgetComments: " + numWidgetComments + ", numWidgetRatings: " +
- numWidgetRatings + ", numWidgetsOwned: " + numWidgetsOwned);
+ numWidgetRatings + ", numWidgetsOwned: " + numWidgetsOwned + ",numCategoriesTouched:" + numCategoriesTouched);
}
@Override
Modified: rave/trunk/rave-components/rave-core/src/main/resources/org/apache/rave/core-applicationContext.xml
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/resources/org/apache/rave/core-applicationContext.xml?rev=1351489&r1=1351488&r2=1351489&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/resources/org/apache/rave/core-applicationContext.xml (original)
+++ rave/trunk/rave-components/rave-core/src/main/resources/org/apache/rave/core-applicationContext.xml Mon Jun 18 21:11:59 2012
@@ -16,7 +16,7 @@
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-
+
$Id$
-->
<beans xmlns="http://www.springframework.org/schema/beans"
@@ -83,6 +83,7 @@
<entry key="openjpa.Log" value="${portal.openjpa.Log}"/>
<entry key="openjpa.RuntimeUnenhancedClasses" value="${portal.openjpa.RuntimeUnenhancedClasses}"/>
<entry key="openjpa.jdbc.SynchronizeMappings" value="${portal.openjpa.jdbc.SynchronizeMappings}"/>
+ <entry key="openjpa.jdbc.MappingDefaults" value="${portal.openjpa.jdbc.MappingDefaults}"/>
</map>
</property>
</bean>
Modified: rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/AbstractJpaRepositoryTest.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/AbstractJpaRepositoryTest.java?rev=1351489&r1=1351488&r2=1351489&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/AbstractJpaRepositoryTest.java (original)
+++ rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/AbstractJpaRepositoryTest.java Mon Jun 18 21:11:59 2012
@@ -80,8 +80,8 @@ public class AbstractJpaRepositoryTest {
@Rollback(true)
public void save_newEntity() throws Exception {
for (Repository repository : repositories) {
- BasicEntity entity = constructNewEntityForRepository(repository);
- RepositoryTestUtils.populateAllRequiredFieldsInEntity(sharedManager, entity);
+ BasicEntity entity = constructNewEntityForRepository(repository);
+ RepositoryTestUtils.populateAllRequiredFieldsInEntity(sharedManager, entity);
BasicEntity saved = (BasicEntity)repository.save(entity);
sharedManager.flush();
assertThat(saved, is(sameInstance(entity)));
@@ -105,12 +105,18 @@ public class AbstractJpaRepositoryTest {
@Test
@Rollback(true)
- public void delete() {
+ public void delete() throws Exception {
for(Repository repository : repositories) {
- Object entity = repository.get(VALID_ENTITY_ID);
- repository.delete(entity);
+ // to prevent possible RI errors lets create fresh objects then delete them
+ BasicEntity entity = constructNewEntityForRepository(repository);
+ RepositoryTestUtils.populateAllRequiredFieldsInEntity(sharedManager, entity);
+ BasicEntity saved = (BasicEntity)repository.save(entity);
+ long entityId = saved.getEntityId();
+ assertThat(entityId > 0, is(true));
+
+ repository.delete(saved);
sharedManager.flush();
- assertThat(repository.get(VALID_ENTITY_ID), is(nullValue()));
+ assertThat(repository.get(entityId), is(nullValue()));
}
}
@@ -121,5 +127,5 @@ public class AbstractJpaRepositoryTest {
throw new RuntimeException(e);
}
}
-
+
}
Modified: rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaCategoryRepositoryTest.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaCategoryRepositoryTest.java?rev=1351489&r1=1351488&r2=1351489&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaCategoryRepositoryTest.java (original)
+++ rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaCategoryRepositoryTest.java Mon Jun 18 21:11:59 2012
@@ -26,6 +26,7 @@ import org.apache.rave.portal.repository
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.annotation.Transactional;
@@ -72,7 +73,7 @@ public class JpaCategoryRepositoryTest {
public void save_duplicateText_exception() {
Date now = new Date();
User user = new User(1L);
-
+
Category wc = new Category();
wc.setText(DUPLICATE_TEXT_VALUE);
wc.setCreatedDate(now);
@@ -93,4 +94,10 @@ public class JpaCategoryRepositoryTest {
}
}
}
+
+ @Test
+ @Rollback(value = true)
+ public void removeFromCreatedOrModifiedFields() {
+ assertThat(repository.removeFromCreatedOrModifiedFields(1L), is(3));
+ }
}
Modified: rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaUserRepositoryTest.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaUserRepositoryTest.java?rev=1351489&r1=1351488&r2=1351489&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaUserRepositoryTest.java (original)
+++ rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaUserRepositoryTest.java Mon Jun 18 21:11:59 2012
@@ -31,6 +31,7 @@ import org.springframework.beans.factory
import org.springframework.security.crypto.bcrypt.BCrypt;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
+import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.annotation.Transactional;
Modified: rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultUserServiceTest.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultUserServiceTest.java?rev=1351489&r1=1351488&r2=1351489&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultUserServiceTest.java (original)
+++ rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultUserServiceTest.java Mon Jun 18 21:11:59 2012
@@ -52,6 +52,7 @@ public class DefaultUserServiceTest {
private WidgetCommentRepository widgetCommentRepository;
private WidgetRatingRepository widgetRatingRepository;
private WidgetRepository widgetRepository;
+ private CategoryRepository categoryRepository;
private static final String USER_NAME = "1234";
private static final String USER_EMAIL = "test@test.com";
@@ -66,8 +67,10 @@ public class DefaultUserServiceTest {
widgetCommentRepository = createMock(WidgetCommentRepository.class);
widgetRatingRepository = createMock(WidgetRatingRepository.class);
widgetRepository = createMock(WidgetRepository.class);
+ categoryRepository = createMock(CategoryRepository.class);
- service = new DefaultUserService(pageRepository, userRepository, widgetRatingRepository, widgetCommentRepository, widgetRepository, pageTemplateRepository);
+ service = new DefaultUserService(pageRepository, userRepository, widgetRatingRepository, widgetCommentRepository,
+ widgetRepository, pageTemplateRepository, categoryRepository);
}
@After
@@ -112,7 +115,7 @@ public class DefaultUserServiceTest {
service.getAuthenticatedUser();
verify(auth);
}
-
+
@Test
public void setAuthenticatedUser_valid() {
@@ -260,24 +263,26 @@ public class DefaultUserServiceTest {
final int NUM_COMMENTS = 33;
final int NUM_RATINGS = 99;
final int NUM_WIDGETS_OWNED = 4;
+ final int NUM_CATEGORIES = 2;
User user = new User(USER_ID, USER_NAME);
Page page = new Page(1L, user);
List<Page> pages = new ArrayList<Page>();
pages.add(page);
-
+
expect(userRepository.get(USER_ID)).andReturn(user);
expect(pageRepository.deletePages(USER_ID, PageType.USER)).andReturn(pages.size());
expect(pageRepository.deletePages(USER_ID, PageType.PERSON_PROFILE)).andReturn(pages.size());
expect(widgetCommentRepository.deleteAll(USER_ID)).andReturn(NUM_COMMENTS);
- expect(widgetRatingRepository.deleteAll(USER_ID)).andReturn(NUM_RATINGS);
- expect(widgetRepository.unassignWidgetOwner(USER_ID)).andReturn( NUM_WIDGETS_OWNED);
+ expect(widgetRatingRepository.deleteAll(USER_ID)).andReturn(NUM_RATINGS);
+ expect(widgetRepository.unassignWidgetOwner(USER_ID)).andReturn( NUM_WIDGETS_OWNED);
+ expect(categoryRepository.removeFromCreatedOrModifiedFields(USER_ID)).andReturn(NUM_CATEGORIES);
userRepository.delete(user);
expectLastCall();
- replay(userRepository, pageRepository, widgetCommentRepository, widgetRatingRepository, widgetRepository);
+ replay(userRepository, pageRepository, widgetCommentRepository, widgetRatingRepository, widgetRepository, categoryRepository);
service.deleteUser(USER_ID);
- verify(userRepository, pageRepository, widgetCommentRepository, widgetRatingRepository, widgetRepository);
+ verify(userRepository, pageRepository, widgetCommentRepository, widgetRatingRepository, widgetRepository, categoryRepository);
}
@Test
@@ -299,12 +304,12 @@ public class DefaultUserServiceTest {
List<Person> personList = new ArrayList<Person>();
personList.add(userList.get(0).toPerson());
personList.add(userList.get(1).toPerson());
-
+
expect(userRepository.getAllByAddedWidget(VALID_WIDGET_ID)).andReturn(userList);
replay(userRepository);
assertThat(service.getAllByAddedWidget(VALID_WIDGET_ID), is(personList));
-
+
verify(userRepository);
}
Modified: rave/trunk/rave-components/rave-core/src/test/resources/portal.properties
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/test/resources/portal.properties?rev=1351489&r1=1351488&r2=1351489&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/test/resources/portal.properties (original)
+++ rave/trunk/rave-components/rave-core/src/test/resources/portal.properties Mon Jun 18 21:11:59 2012
@@ -35,6 +35,7 @@ portal.jpaVendorAdapter.showSql=true
portal.openjpa.Log=DefaultLevel=WARN, Runtime=INFO, Tool=INFO, SQL=WARN
portal.openjpa.RuntimeUnenhancedClasses=supported
portal.openjpa.jdbc.SynchronizeMappings=buildSchema(ForeignKeys=true)
+portal.openjpa.jdbc.MappingDefaults=ForeignKeyDeleteAction=restrict, JoinForeignKeyDeleteAction=restrict
provider.wookie.wookieServerUrl=http://localhost:8080/wookie
provider.wookie.wookieApiKey=TEST
Modified: rave/trunk/rave-components/rave-core/src/test/resources/test_data.sql
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/test/resources/test_data.sql?rev=1351489&r1=1351488&r2=1351489&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/test/resources/test_data.sql (original)
+++ rave/trunk/rave-components/rave-core/src/test/resources/test_data.sql Mon Jun 18 21:11:59 2012
@@ -41,6 +41,8 @@ set @page_template_seq = 'page_template'
set @page_template_region_seq = 'page_template_region';
set @page_template_widget_seq = 'page_template_widget';
set @page_user_seq = 'page_user';
+set @groups_seq = 'groups';
+set @group_members_seq = 'group_members';
CREATE TABLE IF NOT EXISTS RAVE_PORTAL_SEQUENCES (seq_name VARCHAR(255) PRIMARY KEY NOT NULL, seq_count BIGINT(19));
INSERT INTO RAVE_PORTAL_SEQUENCES(seq_name, seq_count) values (@page_seq, 1);
@@ -61,6 +63,8 @@ INSERT INTO RAVE_PORTAL_SEQUENCES(seq_na
INSERT INTO RAVE_PORTAL_SEQUENCES(seq_name, seq_count) values (@page_template_region_seq, 1);
INSERT INTO RAVE_PORTAL_SEQUENCES(seq_name, seq_count) values (@page_template_widget_seq, 1);
INSERT INTO RAVE_PORTAL_SEQUENCES(seq_name, seq_count) values (@page_user_seq, 1);
+INSERT INTO RAVE_PORTAL_SEQUENCES(seq_name, seq_count) values (@groups_seq, 1);
+INSERT INTO RAVE_PORTAL_SEQUENCES(seq_name, seq_count) values (@group_members_seq, 1);
-- ***********************************************************************************
@@ -1044,17 +1048,17 @@ UPDATE RAVE_PORTAL_SEQUENCES SET seq_cou
set @category_id2 = (SELECT seq_count FROM RAVE_PORTAL_SEQUENCES WHERE seq_name = @category_seq);
insert into category (entity_id, text, created_user_id, created_date, last_modified_user_id, last_modified_date)
-values (@category_id2, 'AAA Category', @user_id_1, '2012-01-19', @user_id_2, '2012-01-19');
+values (@category_id2, 'AAA Category', @user_id_1, '2012-01-19', @user_id_1, '2012-01-19');
UPDATE RAVE_PORTAL_SEQUENCES SET seq_count = (seq_count + 1) WHERE seq_name = @category_seq;
set @category_id3 = (SELECT seq_count FROM RAVE_PORTAL_SEQUENCES WHERE seq_name = @category_seq);
insert into category (entity_id, text, created_user_id, created_date, last_modified_user_id, last_modified_date)
-values (@category_id3, 'News Category', @user_id_1, '2012-01-19', @user_id_2, '2012-01-19');
+values (@category_id3, 'News Category', @user_id_2, '2012-01-19', @user_id_2, '2012-01-19');
UPDATE RAVE_PORTAL_SEQUENCES SET seq_count = (seq_count + 1) WHERE seq_name = @category_seq;
set @category_id4 = (SELECT seq_count FROM RAVE_PORTAL_SEQUENCES WHERE seq_name = @category_seq);
insert into category (entity_id, text, created_user_id, created_date, last_modified_user_id, last_modified_date)
-values (@category_id4, 'Technology Category', @user_id_1, '2012-01-19', @user_id_2, '2012-01-19');
+values (@category_id4, 'Technology Category', @user_id_2, '2012-01-19', @user_id_1, '2012-01-19');
UPDATE RAVE_PORTAL_SEQUENCES SET seq_count = (seq_count + 1) WHERE seq_name = @category_seq;
-- widget category
@@ -1162,3 +1166,26 @@ set @next_user_profile_page_template_wid
insert into page_template_widget (entity_id, page_template_region_id, render_sequence, widget_id, locked)
values (@next_user_profile_page_template_widget_id, @user_profile_page_template_region_id, 1, @work_experience_widget_id, true);
UPDATE RAVE_PORTAL_SEQUENCES SET seq_count = (seq_count + 1) WHERE seq_name = @page_template_widget_seq;
+
+-- group data --
+set @group_id_1 = (SELECT seq_count FROM RAVE_PORTAL_SEQUENCES WHERE seq_name = @groups_seq);
+INSERT INTO groups(entity_id, title, description)
+VALUES (@group_id_1, 'Party', 'Party Group');
+UPDATE RAVE_PORTAL_SEQUENCES SET seq_count = (seq_count + 1) WHERE seq_name = @groups_seq;
+
+set @group_id_2 = (SELECT seq_count FROM RAVE_PORTAL_SEQUENCES WHERE seq_name = @groups_seq);
+INSERT INTO groups(entity_id, title, description)
+VALUES (@group_id_2, 'Portal', 'Portal Group');
+UPDATE RAVE_PORTAL_SEQUENCES SET seq_count = (seq_count + 1) WHERE seq_name = @groups_seq;
+-- end group data --
+
+-- group members data --
+INSERT INTO group_members(group_id, person_id)
+VALUES (@group_id_1, @user_id_1);
+INSERT INTO group_members(group_id, person_id)
+VALUES (@group_id_1, @user_id_5);
+INSERT INTO group_members(group_id, person_id)
+VALUES (@group_id_2, @user_id_1);
+INSERT INTO group_members(group_id, person_id)
+VALUES (@group_id_2, @user_id_2);
+-- end group members data --
\ No newline at end of file
Modified: rave/trunk/rave-portal-resources/src/main/resources/portal.properties
URL: http://svn.apache.org/viewvc/rave/trunk/rave-portal-resources/src/main/resources/portal.properties?rev=1351489&r1=1351488&r2=1351489&view=diff
==============================================================================
--- rave/trunk/rave-portal-resources/src/main/resources/portal.properties (original)
+++ rave/trunk/rave-portal-resources/src/main/resources/portal.properties Mon Jun 18 21:11:59 2012
@@ -51,6 +51,7 @@ portal.jpaVendorAdapter.showSql=true
portal.openjpa.Log=DefaultLevel=WARN, Runtime=WARN, Tool=WARN, SQL=WARN
portal.openjpa.RuntimeUnenhancedClasses=unsupported
portal.openjpa.jdbc.SynchronizeMappings=buildSchema(ForeignKeys=true)
+portal.openjpa.jdbc.MappingDefaults=ForeignKeyDeleteAction=restrict, JoinForeignKeyDeleteAction=restrict
provider.wookie.wookieServerUrl=http://localhost:8080/wookie
provider.wookie.wookieApiKey=TEST
Modified: rave/trunk/rave-portal/src/test/resources/portal.properties
URL: http://svn.apache.org/viewvc/rave/trunk/rave-portal/src/test/resources/portal.properties?rev=1351489&r1=1351488&r2=1351489&view=diff
==============================================================================
--- rave/trunk/rave-portal/src/test/resources/portal.properties (original)
+++ rave/trunk/rave-portal/src/test/resources/portal.properties Mon Jun 18 21:11:59 2012
@@ -48,6 +48,7 @@ portal.jpaVendorAdapter.showSql=true
portal.openjpa.Log=DefaultLevel=WARN, Runtime=INFO, Tool=INFO, SQL=WARN
portal.openjpa.RuntimeUnenhancedClasses=unsupported
portal.openjpa.jdbc.SynchronizeMappings=buildSchema(ForeignKeys=true)
+portal.openjpa.jdbc.MappingDefaults=ForeignKeyDeleteAction=restrict, JoinForeignKeyDeleteAction=restrict
provider.wookie.wookieServerUrl=http://localhost:8080/wookie
provider.wookie.wookieApiKey=TEST
Modified: rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/main/resources/META-INF/persistence.xml
URL: http://svn.apache.org/viewvc/rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/main/resources/META-INF/persistence.xml?rev=1351489&r1=1351488&r2=1351489&view=diff
==============================================================================
--- rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/main/resources/META-INF/persistence.xml (original)
+++ rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/main/resources/META-INF/persistence.xml Mon Jun 18 21:11:59 2012
@@ -24,6 +24,7 @@
<persistence-unit name="raveShindigPersistenceUnit" transaction-type="RESOURCE_LOCAL">
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<class>org.apache.rave.portal.model.Person</class>
+ <class>org.apache.rave.portal.model.PageLayout</class>
<class>org.apache.rave.portal.model.Group</class>
<class>org.apache.rave.portal.model.PersonAssociation</class>
<class>org.apache.rave.portal.model.PersonProperty</class>
Modified: rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/resources/rave-shindig-test-applicationContext.xml
URL: http://svn.apache.org/viewvc/rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/resources/rave-shindig-test-applicationContext.xml?rev=1351489&r1=1351488&r2=1351489&view=diff
==============================================================================
--- rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/resources/rave-shindig-test-applicationContext.xml (original)
+++ rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/resources/rave-shindig-test-applicationContext.xml Mon Jun 18 21:11:59 2012
@@ -71,6 +71,7 @@
<entry key="openjpa.Log" value="${rave-shindig.openjpa.Log}"/>
<entry key="openjpa.RuntimeUnenhancedClasses" value="${rave-shindig.openjpa.RuntimeUnenhancedClasses}"/>
<entry key="openjpa.jdbc.SynchronizeMappings" value="${rave-shindig.openjpa.jdbc.SynchronizeMappings}"/>
+ <entry key="openjpa.jdbc.MappingDefaults" value="${rave-shindig.openjpa.jdbc.MappingDefaults}"/>
</map>
</property>
</bean>
Modified: rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/resources/rave.shindig.properties
URL: http://svn.apache.org/viewvc/rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/resources/rave.shindig.properties?rev=1351489&r1=1351488&r2=1351489&view=diff
==============================================================================
--- rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/resources/rave.shindig.properties (original)
+++ rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/resources/rave.shindig.properties Mon Jun 18 21:11:59 2012
@@ -41,6 +41,7 @@ rave-shindig.jpaVendorAdapter.showSql=tr
rave-shindig.openjpa.Log=DefaultLevel=WARN, Runtime=INFO, Tool=INFO, SQL=WARN
rave-shindig.openjpa.RuntimeUnenhancedClasses=supported
rave-shindig.openjpa.jdbc.SynchronizeMappings=buildSchema(ForeignKeys=true)
+rave-shindig.openjpa.jdbc.MappingDefaults=ForeignKeyDeleteAction=restrict, JoinForeignKeyDeleteAction=restrict
#########################################################
## These are the properties that came from Shindig ##
Modified: rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-server/rave-shindig/src/main/resources/rave-shindig-applicationContext.xml
URL: http://svn.apache.org/viewvc/rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-server/rave-shindig/src/main/resources/rave-shindig-applicationContext.xml?rev=1351489&r1=1351488&r2=1351489&view=diff
==============================================================================
--- rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-server/rave-shindig/src/main/resources/rave-shindig-applicationContext.xml (original)
+++ rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-server/rave-shindig/src/main/resources/rave-shindig-applicationContext.xml Mon Jun 18 21:11:59 2012
@@ -72,6 +72,7 @@
<entry key="openjpa.Log" value="${rave-shindig.openjpa.Log}"/>
<entry key="openjpa.RuntimeUnenhancedClasses" value="${rave-shindig.openjpa.RuntimeUnenhancedClasses}"/>
<entry key="openjpa.jdbc.SynchronizeMappings" value="${rave-shindig.openjpa.jdbc.SynchronizeMappings}"/>
+ <entry key="openjpa.jdbc.MappingDefaults" value="${rave-shindig.openjpa.jdbc.MappingDefaults}"/>
</map>
</property>
</bean>
Modified: rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-server/rave-shindig/src/main/resources/rave.shindig.properties
URL: http://svn.apache.org/viewvc/rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-server/rave-shindig/src/main/resources/rave.shindig.properties?rev=1351489&r1=1351488&r2=1351489&view=diff
==============================================================================
--- rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-server/rave-shindig/src/main/resources/rave.shindig.properties (original)
+++ rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-server/rave-shindig/src/main/resources/rave.shindig.properties Mon Jun 18 21:11:59 2012
@@ -49,6 +49,7 @@ rave-shindig.jpaVendorAdapter.showSql=tr
rave-shindig.openjpa.Log=DefaultLevel=WARN, Runtime=WARN, Tool=WARN, SQL=WARN
rave-shindig.openjpa.RuntimeUnenhancedClasses=warn
rave-shindig.openjpa.jdbc.SynchronizeMappings=buildSchema(ForeignKeys=true)
+rave-shindig.openjpa.jdbc.MappingDefaults=ForeignKeyDeleteAction=restrict, JoinForeignKeyDeleteAction=restrict
#################################################################################
## These properties are a copy/paste from the default shindig.properties file. ##