You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rave.apache.org by mf...@apache.org on 2012/05/29 23:09:11 UTC
svn commit: r1343993 - in /rave/branches/model_interfaces:
rave-components/rave-core/src/main/java/org/apache/rave/portal/model/
rave-components/rave-jpa/
rave-components/rave-web/src/test/java/org/apache/rave/portal/web/api/rest/
rave-providers/rave-o...
Author: mfranklin
Date: Tue May 29 21:09:10 2012
New Revision: 1343993
URL: http://svn.apache.org/viewvc?rev=1343993&view=rev
Log:
Refactored person into an interface and fixed all failing operations (RAVE-630)
Added:
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaPerson.java
- copied, changed from r1343811, rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Person.java
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Person.java
Modified:
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Group.java
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PersonAssociation.java
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PersonProperty.java
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/User.java
rave/branches/model_interfaces/rave-components/rave-jpa/ (props changed)
rave/branches/model_interfaces/rave-components/rave-web/src/test/java/org/apache/rave/portal/web/api/rest/WidgetApiTest.java
rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/main/java/org/apache/rave/opensocial/repository/impl/JpaPersonRepository.java
rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/main/java/org/apache/rave/opensocial/service/impl/DefaultAppDataService.java
rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/main/java/org/apache/rave/opensocial/service/impl/DefaultPersonService.java
rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/main/java/org/apache/rave/opensocial/service/impl/FieldRestrictingPerson.java
rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/main/resources/META-INF/persistence.xml
rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/java/org/apache/rave/opensocial/service/AppDataServiceTest.java
rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/java/org/apache/rave/opensocial/service/FieldRestrictingPersonTest.java
rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/java/org/apache/rave/opensocial/service/PersonServiceTest.java
Modified: rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Group.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Group.java?rev=1343993&r1=1343992&r2=1343993&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Group.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Group.java Tue May 29 21:09:10 2012
@@ -58,7 +58,7 @@ public class Group implements BasicEntit
@ManyToOne
@JoinColumn(name = "owner_id", referencedColumnName = "entity_id")
- private Person owner;
+ private JpaPerson owner;
@ManyToMany(fetch = FetchType.EAGER)
@@ -67,13 +67,13 @@ public class Group implements BasicEntit
@JoinColumn(name = "group_id", referencedColumnName = "entity_id"),
inverseJoinColumns =
@JoinColumn(name = "person_id", referencedColumnName = "entity_id"))
- private List<Person> members;
+ private List<JpaPerson> members;
- public Person getOwner() {
+ public JpaPerson getOwner() {
return owner;
}
- public void setOwner(Person owner) {
+ public void setOwner(JpaPerson owner) {
this.owner = owner;
}
@@ -85,11 +85,11 @@ public class Group implements BasicEntit
this.description = description;
}
- public List<Person> getMembers() {
+ public List<JpaPerson> getMembers() {
return members;
}
- public void setMembers(List<Person> members) {
+ public void setMembers(List<JpaPerson> members) {
this.members = members;
}
Copied: rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaPerson.java (from r1343811, rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Person.java)
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaPerson.java?p2=rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaPerson.java&p1=rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Person.java&r1=1343811&r2=1343993&rev=1343993&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Person.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaPerson.java Tue May 29 21:09:10 2012
@@ -19,6 +19,7 @@
package org.apache.rave.portal.model;
import org.apache.rave.persistence.BasicEntity;
+import org.apache.rave.util.CollectionUtils;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
@@ -36,11 +37,8 @@ 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 java.util.List;
-import java.util.Map;
/**
* Represents a person in the persistence context
@@ -48,12 +46,12 @@ import java.util.Map;
@Entity
@Table(name = "person")
@NamedQueries(value = {
- @NamedQuery(name = Person.FIND_BY_USERNAME, query = "select p from Person p where p.username like :username"),
- @NamedQuery(name = Person.FIND_FRIENDS_BY_USERNAME, query = "select a.followed from PersonAssociation a where a.follower.username = :username"),
- @NamedQuery(name = Person.FIND_BY_GROUP_MEMBERSHIP, query = "select m from Group g join g.members m where exists " +
+ @NamedQuery(name = JpaPerson.FIND_BY_USERNAME, query = "select p from JpaPerson p where p.username like :username"),
+ @NamedQuery(name = JpaPerson.FIND_FRIENDS_BY_USERNAME, query = "select a.followed from PersonAssociation a where a.follower.username = :username"),
+ @NamedQuery(name = JpaPerson.FIND_BY_GROUP_MEMBERSHIP, query = "select m from Group g join g.members m where exists " +
"(select 'found' from g.members b where b.username = :username) and m.username <> :username")
})
-public class Person implements BasicEntity {
+public class JpaPerson implements BasicEntity, Person {
public static final String FIND_BY_USERNAME = "Person.findByUsername";
public static final String FIND_FRIENDS_BY_USERNAME = "Person.findFriendsByUsername";
@@ -129,7 +127,13 @@ public class Person implements BasicEnti
@JoinTable(name = "person_association",
joinColumns = @JoinColumn(name = "follower_id", referencedColumnName = "entity_id"),
inverseJoinColumns = @JoinColumn(name = "followed_id", referencedColumnName = "entity_id"))
- protected List<Person> friends;
+ protected List<JpaPerson> friends;
+
+ public JpaPerson() {}
+
+ public JpaPerson(Person base) {
+ update(base);
+ }
public Long getEntityId() {
return entityId;
@@ -139,132 +143,192 @@ public class Person implements BasicEnti
this.entityId = entityId;
}
+ @Override
public String getUsername() {
return username;
}
+ @Override
public void setUsername(String username) {
this.username = username;
}
+ @Override
public String getEmail() {
return email;
}
+ @Override
public void setEmail(String email) {
this.email = email;
}
+ @Override
public String getDisplayName() {
return displayName;
}
+ @Override
public void setDisplayName(String displayName) {
this.displayName = displayName;
}
+ @Override
public String getAboutMe() {
return aboutMe;
}
+ @Override
public void setAboutMe(String aboutMe) {
this.aboutMe = aboutMe;
}
+ @Override
public String getPreferredName() {
return preferredName;
}
+ @Override
public void setPreferredName(String preferredName) {
this.preferredName = preferredName;
}
+ @Override
public String getStatus() {
return status;
}
+ @Override
public void setStatus(String status) {
this.status = status;
}
+ @Override
public String getAdditionalName() {
return additionalName;
}
+ @Override
public void setAdditionalName(String additionalName) {
this.additionalName = additionalName;
}
+ @Override
public String getFamilyName() {
return familyName;
}
+ @Override
public void setFamilyName(String familyName) {
this.familyName = familyName;
}
+ @Override
public String getGivenName() {
return givenName;
}
+ @Override
public void setGivenName(String givenName) {
this.givenName = givenName;
}
+ @Override
public String getHonorificPrefix() {
return honorificPrefix;
}
+ @Override
public void setHonorificPrefix(String honorificPrefix) {
this.honorificPrefix = honorificPrefix;
}
+ @Override
public String getHonorificSuffix() {
return honorificSuffix;
}
+ @Override
public void setHonorificSuffix(String honorificSuffix) {
this.honorificSuffix = honorificSuffix;
}
+ @Override
public List<Address> getAddresses() {
return addresses;
}
+ @Override
public void setAddresses(List<Address> addresses) {
this.addresses = addresses;
}
+ @Override
public List<PersonProperty> getProperties() {
return properties;
}
+ @Override
public void setProperties(List<PersonProperty> properties) {
this.properties = properties;
}
+ @Override
public List<Person> getFriends() {
- return friends;
+ return CollectionUtils.<Person>toBaseTypedList(friends);
}
+ @Override
public void setFriends(List<Person> friends) {
- this.friends = friends;
+
+ this.friends = convert(friends);
}
+ @Override
public List<Organization> getOrganizations() {
return organizations;
}
+ @Override
public void setOrganizations(List<Organization> organizations) {
this.organizations = organizations;
}
+ public void update(Person source) {
+ this.username = source.getUsername();
+ this.email = source.getEmail();
+ this.displayName = source.getDisplayName();
+ this.additionalName = source.getAdditionalName();
+ this.familyName = source.getFamilyName();
+ this.givenName = source.getGivenName();
+ this.honorificPrefix = source.getHonorificPrefix();
+ this.honorificSuffix = source.getHonorificSuffix();
+ this.preferredName = source.getPreferredName();
+ this.aboutMe = source.getAboutMe();
+ this.status = source.getStatus();
+ this.addresses = source.getAddresses();
+ this.organizations = source.getOrganizations();
+ this.properties = source.getProperties();
+ this.friends = convert(source.getFriends());
+ }
+
+ private List<JpaPerson> convert(List<Person> unconverted) {
+ List<JpaPerson> converted = null;
+ if (unconverted != null) {
+ converted = new ArrayList<JpaPerson>();
+ for (Person convert : unconverted) {
+ converted.add(convert instanceof JpaPerson ? (JpaPerson) convert : new JpaPerson(convert));
+ }
+ }
+ return converted;
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
- Person person = (Person) o;
+ JpaPerson person = (JpaPerson) o;
if (entityId != null ? !entityId.equals(person.entityId) : person.entityId != null) return false;
Added: rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Person.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Person.java?rev=1343993&view=auto
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Person.java (added)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Person.java Tue May 29 21:09:10 2012
@@ -0,0 +1,72 @@
+package org.apache.rave.portal.model;
+
+import java.util.List;
+
+/**
+ * Created with IntelliJ IDEA.
+ * User: mfranklin
+ * Date: 5/29/12
+ * Time: 1:53 PM
+ * To change this template use File | Settings | File Templates.
+ */
+public interface Person {
+ String getUsername();
+
+ void setUsername(String username);
+
+ String getEmail();
+
+ void setEmail(String email);
+
+ String getDisplayName();
+
+ void setDisplayName(String displayName);
+
+ String getAboutMe();
+
+ void setAboutMe(String aboutMe);
+
+ String getPreferredName();
+
+ void setPreferredName(String preferredName);
+
+ String getStatus();
+
+ void setStatus(String status);
+
+ String getAdditionalName();
+
+ void setAdditionalName(String additionalName);
+
+ String getFamilyName();
+
+ void setFamilyName(String familyName);
+
+ String getGivenName();
+
+ void setGivenName(String givenName);
+
+ String getHonorificPrefix();
+
+ void setHonorificPrefix(String honorificPrefix);
+
+ String getHonorificSuffix();
+
+ void setHonorificSuffix(String honorificSuffix);
+
+ List<Address> getAddresses();
+
+ void setAddresses(List<Address> addresses);
+
+ List<PersonProperty> getProperties();
+
+ void setProperties(List<PersonProperty> properties);
+
+ List<Person> getFriends();
+
+ void setFriends(List<Person> friends);
+
+ List<Organization> getOrganizations();
+
+ void setOrganizations(List<Organization> organizations);
+}
Modified: rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PersonAssociation.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PersonAssociation.java?rev=1343993&r1=1343992&r2=1343993&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PersonAssociation.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PersonAssociation.java Tue May 29 21:09:10 2012
@@ -40,11 +40,11 @@ public class PersonAssociation implement
@OneToOne
@JoinColumn(name="follower_id", referencedColumnName = "entity_id")
- Person follower;
+ JpaPerson follower;
@OneToOne
@JoinColumn(name="followed_id", referencedColumnName = "entity_id")
- Person followed;
+ JpaPerson followed;
@Override
public Long getEntityId() {
@@ -60,15 +60,15 @@ public class PersonAssociation implement
return follower;
}
- public void setFollower(Person follower) {
+ public void setFollower(JpaPerson follower) {
this.follower = follower;
}
- public Person getFollowed() {
+ public JpaPerson getFollowed() {
return followed;
}
- public void setFollowed(Person followed) {
+ public void setFollowed(JpaPerson followed) {
this.followed = followed;
}
Modified: rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PersonProperty.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PersonProperty.java?rev=1343993&r1=1343992&r2=1343993&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PersonProperty.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PersonProperty.java Tue May 29 21:09:10 2012
@@ -23,7 +23,7 @@ import org.apache.rave.persistence.Basic
import javax.persistence.*;
/**
- * A generic extension model for the {@link Person} that allows implementers to
+ * A generic extension model for the {@link JpaPerson} that allows implementers to
* add fields to the Person not initially envisioned
*/
@Entity
Modified: rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/User.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/User.java?rev=1343993&r1=1343992&r2=1343993&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/User.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/User.java Tue May 29 21:09:10 2012
@@ -47,7 +47,7 @@ import java.util.Date;
"where lower(u.username) like :"+User.PARAM_SEARCHTERM+" or lower(u.email) like :"+User.PARAM_SEARCHTERM),
@NamedQuery(name = User.USER_GET_ALL_FOR_ADDED_WIDGET, query = "select distinct(rw.region.page.owner) from RegionWidget rw where rw.widget.entityId = :widgetId order by rw.region.page.owner.familyName, rw.region.page.owner.givenName")
})
-public class User extends Person implements UserDetails, BasicEntity, Serializable {
+public class User extends JpaPerson implements UserDetails, BasicEntity, Serializable {
private static final long serialVersionUID = 1L;
public static final String USER_GET_BY_USERNAME = "User.getByUsername";
@@ -354,7 +354,7 @@ public class User extends Person impleme
* @return a Person object representing the data contained in this class
*/
public Person toPerson() {
- Person p = new Person();
+ JpaPerson p = new JpaPerson();
p.setAboutMe(this.getAboutMe());
p.setAdditionalName(this.getAdditionalName());
p.setAddresses(this.getAddresses());
Propchange: rave/branches/model_interfaces/rave-components/rave-jpa/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Tue May 29 21:09:10 2012
@@ -0,0 +1 @@
+*.iml
Modified: rave/branches/model_interfaces/rave-components/rave-web/src/test/java/org/apache/rave/portal/web/api/rest/WidgetApiTest.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-web/src/test/java/org/apache/rave/portal/web/api/rest/WidgetApiTest.java?rev=1343993&r1=1343992&r2=1343993&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-web/src/test/java/org/apache/rave/portal/web/api/rest/WidgetApiTest.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-web/src/test/java/org/apache/rave/portal/web/api/rest/WidgetApiTest.java Tue May 29 21:09:10 2012
@@ -194,8 +194,8 @@ public class WidgetApiTest {
@Test
public void getAllUsers() {
List<Person> persons = new ArrayList<Person>();
- persons.add(new Person());
- persons.add(new Person());
+ persons.add(new JpaPerson());
+ persons.add(new JpaPerson());
expect(userService.getAllByAddedWidget(VALID_WIDGET_ID)).andReturn(persons);
replay(userService);
Modified: rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/main/java/org/apache/rave/opensocial/repository/impl/JpaPersonRepository.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/main/java/org/apache/rave/opensocial/repository/impl/JpaPersonRepository.java?rev=1343993&r1=1343992&r2=1343993&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/main/java/org/apache/rave/opensocial/repository/impl/JpaPersonRepository.java (original)
+++ rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/main/java/org/apache/rave/opensocial/repository/impl/JpaPersonRepository.java Tue May 29 21:09:10 2012
@@ -21,6 +21,7 @@ package org.apache.rave.opensocial.repos
import org.apache.rave.exception.NotSupportedException;
import org.apache.rave.portal.model.Group;
+import org.apache.rave.portal.model.JpaPerson;
import org.apache.rave.portal.model.Person;
import org.apache.rave.opensocial.repository.PersonRepository;
import org.apache.rave.persistence.jpa.AbstractJpaRepository;
@@ -35,24 +36,21 @@ import java.util.ArrayList;
import java.util.List;
import static org.apache.rave.persistence.jpa.util.JpaUtil.getSingleResult;
+import static org.apache.rave.persistence.jpa.util.JpaUtil.saveOrUpdate;
/**
*
*/
@Repository
-public class JpaPersonRepository extends AbstractJpaRepository<Person> implements PersonRepository{
+public class JpaPersonRepository implements PersonRepository{
@PersistenceContext
private EntityManager manager;
- public JpaPersonRepository() {
- super(Person.class);
- }
-
@Override
public Person findByUsername(String username) {
- TypedQuery<Person> query = manager.createNamedQuery(Person.FIND_BY_USERNAME, Person.class);
- query.setParameter(Person.USERNAME_PARAM, username);
+ TypedQuery<JpaPerson> query = manager.createNamedQuery(JpaPerson.FIND_BY_USERNAME, JpaPerson.class);
+ query.setParameter(JpaPerson.USERNAME_PARAM, username);
return getSingleResult(query.getResultList());
}
@@ -60,9 +58,9 @@ public class JpaPersonRepository extends
public List<Person> findAllConnectedPeople(String username) {
List<Person> connections = new ArrayList<Person>();
connections.addAll(findFriends(username));
- TypedQuery<Person> members = manager.createNamedQuery(Person.FIND_BY_GROUP_MEMBERSHIP, Person.class);
- members.setParameter(Person.USERNAME_PARAM, username);
- CollectionUtils.addUniqueValues(members.getResultList(), connections);
+ TypedQuery<JpaPerson> members = manager.createNamedQuery(JpaPerson.FIND_BY_GROUP_MEMBERSHIP, JpaPerson.class);
+ members.setParameter(JpaPerson.USERNAME_PARAM, username);
+ CollectionUtils.addUniqueValues(CollectionUtils.<Person>toBaseTypedList(members.getResultList()), connections);
return connections;
}
@@ -83,9 +81,9 @@ public class JpaPersonRepository extends
@Override
public List<Person> findFriends(String username) {
- TypedQuery<Person> friends = manager.createNamedQuery(Person.FIND_FRIENDS_BY_USERNAME, Person.class);
- friends.setParameter(Person.USERNAME_PARAM, username);
- return friends.getResultList();
+ TypedQuery<JpaPerson> friends = manager.createNamedQuery(JpaPerson.FIND_FRIENDS_BY_USERNAME, JpaPerson.class);
+ friends.setParameter(JpaPerson.USERNAME_PARAM, username);
+ return CollectionUtils.<Person>toBaseTypedList(friends.getResultList());
}
@Override
@@ -108,7 +106,7 @@ public class JpaPersonRepository extends
TypedQuery<Group> query = manager.createNamedQuery(Group.FIND_BY_TITLE, Group.class);
query.setParameter(Group.GROUP_ID_PARAM, groupId);
Group result = getSingleResult(query.getResultList());
- return result == null ? new ArrayList<Person>() : result.getMembers();
+ return result == null ? new ArrayList<Person>() : CollectionUtils.<Person>toBaseTypedList(result.getMembers());
}
@Override
@@ -125,4 +123,40 @@ public class JpaPersonRepository extends
public List<Person> findByGroupWithFriend(String groupId, String friendUsername) {
throw new NotSupportedException();
}
+
+ @Override
+ public Class<? extends Person> getType() {
+ return JpaPerson.class;
+ }
+
+ @Override
+ public Person get(long id) {
+ return manager.find(JpaPerson.class, id);
+ }
+
+ @Override
+ public Person save(Person item) {
+ JpaPerson person = getJpaPerson(item);
+ return saveOrUpdate(person.getEntityId(), manager, person);
+ }
+
+ @Override
+ public void delete(Person item) {
+ manager.remove(item instanceof JpaPerson ? item : findByUsername(item.getUsername()));
+ }
+
+ private JpaPerson getJpaPerson(Person p) {
+ JpaPerson person;
+ if (p instanceof JpaPerson) {
+ person = (JpaPerson) p;
+ } else {
+ person = (JpaPerson) (findByUsername(p.getUsername()));
+ if (person == null) {
+ new JpaPerson(p);
+ } else {
+ person.update(p);
+ }
+ }
+ return person;
+ }
}
Modified: rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/main/java/org/apache/rave/opensocial/service/impl/DefaultAppDataService.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/main/java/org/apache/rave/opensocial/service/impl/DefaultAppDataService.java?rev=1343993&r1=1343992&r2=1343993&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/main/java/org/apache/rave/opensocial/service/impl/DefaultAppDataService.java (original)
+++ rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/main/java/org/apache/rave/opensocial/service/impl/DefaultAppDataService.java Tue May 29 21:09:10 2012
@@ -21,6 +21,7 @@ package org.apache.rave.opensocial.servi
import org.apache.commons.lang.StringUtils;
import org.apache.rave.opensocial.model.ApplicationData;
+import org.apache.rave.portal.model.JpaPerson;
import org.apache.rave.portal.model.Person;
import org.apache.rave.opensocial.repository.ApplicationDataRepository;
import org.apache.rave.opensocial.service.SimplePersonService;
@@ -231,8 +232,8 @@ public class DefaultAppDataService imple
private List<String> convertPeopleToUserIds(List<Person> people) {
List<String> ids = new ArrayList<String>(people.size());
- for (Person person : people) {
- ids.add(String.valueOf(person.getEntityId()));
+ for (org.apache.rave.portal.model.Person person : people) {
+ ids.add(String.valueOf(person.getUsername()));
}
return ids;
}
Modified: rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/main/java/org/apache/rave/opensocial/service/impl/DefaultPersonService.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/main/java/org/apache/rave/opensocial/service/impl/DefaultPersonService.java?rev=1343993&r1=1343992&r2=1343993&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/main/java/org/apache/rave/opensocial/service/impl/DefaultPersonService.java (original)
+++ rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/main/java/org/apache/rave/opensocial/service/impl/DefaultPersonService.java Tue May 29 21:09:10 2012
@@ -22,6 +22,7 @@ package org.apache.rave.opensocial.servi
import com.google.common.collect.Lists;
import org.apache.rave.opensocial.repository.PersonRepository;
import org.apache.rave.opensocial.service.SimplePersonService;
+import org.apache.rave.portal.model.JpaPerson;
import org.apache.rave.util.CollectionUtils;
import org.apache.shindig.auth.SecurityToken;
import org.apache.shindig.common.util.ImmediateFuture;
Modified: rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/main/java/org/apache/rave/opensocial/service/impl/FieldRestrictingPerson.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/main/java/org/apache/rave/opensocial/service/impl/FieldRestrictingPerson.java?rev=1343993&r1=1343992&r2=1343993&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/main/java/org/apache/rave/opensocial/service/impl/FieldRestrictingPerson.java (original)
+++ rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/main/java/org/apache/rave/opensocial/service/impl/FieldRestrictingPerson.java Tue May 29 21:09:10 2012
@@ -21,6 +21,7 @@ package org.apache.rave.opensocial.servi
import org.apache.rave.exception.NotSupportedException;
import org.apache.rave.portal.model.*;
+import org.apache.rave.portal.model.Person;
import org.apache.rave.portal.model.util.ModelUtils;
import org.apache.rave.util.CollectionUtils;
import org.apache.shindig.protocol.model.Enum;
@@ -38,7 +39,7 @@ import java.util.*;
import static org.apache.rave.util.CollectionUtils.getSingleValue;
/**
- * Wraps a {@link org.apache.rave.portal.model.Person} model object and returns values only if
+ * Wraps a {@link org.apache.rave.portal.model.JpaPerson} model object and returns values only if
* the field set contains the requested field
* <p/>
* Usage of this wrapper is made possible by Shindig's use of a getter based serialization model
@@ -110,7 +111,7 @@ public class FieldRestrictingPerson impl
@Override
public List<Address> getAddresses() {
- return displayField(Field.ADDRESSES) ? convertAddresses(internal.getAddresses()) : null;
+ return displayField(Field.ADDRESSES) ? convertAddresses(internal.getAddresses()) : null;
}
@Override
@@ -340,7 +341,7 @@ public class FieldRestrictingPerson impl
//REQUIRED FIELD
@Override
public String getId() {
- return internal.getEntityId().toString();
+ return internal.getUsername();
}
@Override
Modified: rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/main/resources/META-INF/persistence.xml
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/main/resources/META-INF/persistence.xml?rev=1343993&r1=1343992&r2=1343993&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/main/resources/META-INF/persistence.xml (original)
+++ rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/main/resources/META-INF/persistence.xml Tue May 29 21:09:10 2012
@@ -23,7 +23,7 @@
version="2.0">
<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.JpaPerson</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/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/java/org/apache/rave/opensocial/service/AppDataServiceTest.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/java/org/apache/rave/opensocial/service/AppDataServiceTest.java?rev=1343993&r1=1343992&r2=1343993&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/java/org/apache/rave/opensocial/service/AppDataServiceTest.java (original)
+++ rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/java/org/apache/rave/opensocial/service/AppDataServiceTest.java Tue May 29 21:09:10 2012
@@ -20,6 +20,7 @@
package org.apache.rave.opensocial.service;
import org.apache.rave.opensocial.model.ApplicationData;
+import org.apache.rave.portal.model.JpaPerson;
import org.apache.rave.portal.model.Person;
import org.apache.rave.opensocial.repository.ApplicationDataRepository;
import org.apache.rave.opensocial.service.impl.DefaultAppDataService;
@@ -61,7 +62,7 @@ public class AppDataServiceTest {
private Map<String, String> validApplicationDataMap;
private ApplicationData validApplicationData;
- private Person validPerson;
+ private org.apache.rave.portal.model.Person validPerson;
@Before
public void setup() {
@@ -77,8 +78,8 @@ public class AppDataServiceTest {
validApplicationData = new ApplicationData(VALID_APPLICATION_DATA_ID, VALID_VIEWER_ID, VALID_APPLICATION_ID,
validApplicationDataMap);
- validPerson = new Person();
- validPerson.setEntityId(Long.valueOf(VALID_VIEWER_ID));
+ validPerson = new JpaPerson();
+ validPerson.setUsername(VALID_VIEWER_ID);
}
@Test
@@ -390,8 +391,8 @@ public class AppDataServiceTest {
private List<String> convertPeopleToUserIds(List<Person> people) {
List<String> ids = new ArrayList<String>(people.size());
- for (Person person : people) {
- ids.add(String.valueOf(person.getEntityId()));
+ for (org.apache.rave.portal.model.Person person : people) {
+ ids.add(String.valueOf(person.getUsername()));
}
return ids;
}
Modified: rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/java/org/apache/rave/opensocial/service/FieldRestrictingPersonTest.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/java/org/apache/rave/opensocial/service/FieldRestrictingPersonTest.java?rev=1343993&r1=1343992&r2=1343993&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/java/org/apache/rave/opensocial/service/FieldRestrictingPersonTest.java (original)
+++ rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/java/org/apache/rave/opensocial/service/FieldRestrictingPersonTest.java Tue May 29 21:09:10 2012
@@ -87,7 +87,7 @@ public class FieldRestrictingPersonTest
@Test
public void getId() {
Person p = new FieldRestrictingPerson(getTestPerson(), null);
- assertThat(p.getId(), is(equalTo(ID)));
+ assertThat(p.getId(), is(equalTo(USERNAME)));
}
@Test
public void getDisplayName() {
@@ -253,7 +253,7 @@ public class FieldRestrictingPersonTest
@Test
public void getGender_null() {
- org.apache.rave.portal.model.Person testPerson = getTestPerson();
+ JpaPerson testPerson = getTestPerson();
testPerson.setProperties(new ArrayList<PersonProperty>());
Person p = new FieldRestrictingPerson(testPerson, getFieldSet(Person.Field.GENDER));
assertThat(p.getGender(), is(nullValue()));
@@ -621,8 +621,8 @@ public class FieldRestrictingPersonTest
new FieldRestrictingPerson(null, null).setHappiestWhen(SUFFIX);
}
- private org.apache.rave.portal.model.Person getTestPerson() {
- org.apache.rave.portal.model.Person person = new org.apache.rave.portal.model.Person();
+ private JpaPerson getTestPerson() {
+ JpaPerson person = new JpaPerson();
person.setEntityId(1L);
person.setUsername(USERNAME);
person.setAboutMe(ABOUT_ME);
Modified: rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/java/org/apache/rave/opensocial/service/PersonServiceTest.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/java/org/apache/rave/opensocial/service/PersonServiceTest.java?rev=1343993&r1=1343992&r2=1343993&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/java/org/apache/rave/opensocial/service/PersonServiceTest.java (original)
+++ rave/branches/model_interfaces/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/java/org/apache/rave/opensocial/service/PersonServiceTest.java Tue May 29 21:09:10 2012
@@ -23,6 +23,7 @@ import com.google.common.collect.Lists;
import org.apache.rave.opensocial.repository.PersonRepository;
import org.apache.rave.opensocial.service.impl.DefaultPersonService;
import org.apache.rave.opensocial.service.impl.FieldRestrictingPerson;
+import org.apache.rave.portal.model.JpaPerson;
import org.apache.shindig.auth.SecurityToken;
import org.apache.shindig.protocol.ProtocolException;
import org.apache.shindig.protocol.RestfulCollection;
@@ -507,7 +508,7 @@ public class PersonServiceTest {
}
private org.apache.rave.portal.model.Person getDbPerson() {
- org.apache.rave.portal.model.Person dbPerson = new org.apache.rave.portal.model.Person();
+ JpaPerson dbPerson = new JpaPerson();
dbPerson.setEntityId(Long.parseLong(ID_1));
dbPerson.setUsername(ID_1);
dbPerson.setDisplayName(DISPLAY_NAME);
@@ -515,7 +516,7 @@ public class PersonServiceTest {
}
private org.apache.rave.portal.model.Person getDbPerson(Long id) {
- org.apache.rave.portal.model.Person dbPerson = new org.apache.rave.portal.model.Person();
+ JpaPerson dbPerson = new JpaPerson();
dbPerson.setEntityId(id);
dbPerson.setUsername(id.toString());
dbPerson.setDisplayName(DISPLAY_NAME);