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 2011/07/12 17:00:10 UTC
svn commit: r1145616 - in /incubator/rave/trunk/rave-portal/src:
main/java/org/apache/rave/portal/model/
main/java/org/apache/rave/portal/repository/
main/java/org/apache/rave/portal/repository/impl/
main/java/org/apache/rave/portal/service/ main/java/...
Author: mfranklin
Date: Tue Jul 12 15:00:09 2011
New Revision: 1145616
URL: http://svn.apache.org/viewvc?rev=1145616&view=rev
Log:
Simplified repository layer (Supports RAVE-58)
Added:
incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/BasicEntity.java
incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/AbstractJpaRepository.java
incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/AbstractJpaRepositoryTest.java
Modified:
incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/Page.java
incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/PageLayout.java
incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/Region.java
incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/RegionWidget.java
incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/RegionWidgetPreference.java
incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/User.java
incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/Widget.java
incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/Repository.java
incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaPageLayoutRepository.java
incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaPageRepository.java
incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaRegionRepository.java
incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaRegionWidgetRepository.java
incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaUserRepository.java
incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaWidgetRepository.java
incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/PageService.java
incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java
incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/web/api/rpc/PageApi.java
incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/web/controller/HomeController.java
incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/provider/w3c/service/impl/WookieWidgetService.java
incubator/rave/trunk/rave-portal/src/main/webapp/WEB-INF/views/home.jsp
incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/model/UserTest.java
incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/JpaPageRepositoryTest.java
incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/JpaRegionRepositoryTest.java
incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/JpaUserRepositoryTest.java
incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/service/PageServiceTest.java
incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/web/api/rpc/PageApiTest.java
Added: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/BasicEntity.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/BasicEntity.java?rev=1145616&view=auto
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/BasicEntity.java (added)
+++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/BasicEntity.java Tue Jul 12 15:00:09 2011
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.rave.portal.model;
+
+/**
+ * Defines common properties implemented by Entities in the model
+ */
+public interface BasicEntity {
+ Long getId();
+ void setId(Long id);
+}
Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/Page.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/Page.java?rev=1145616&r1=1145615&r2=1145616&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/Page.java (original)
+++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/Page.java Tue Jul 12 15:00:09 2011
@@ -29,10 +29,10 @@ import java.util.List;
@Table(name="page")
@SequenceGenerator(name="pageIdSeq", sequenceName = "page_id_seq")
@NamedQueries({
- @NamedQuery(name = "Page.getByUserId", query="SELECT p FROM Page p WHERE p.owner.userId = :userId")
+ @NamedQuery(name = "Page.getByUserId", query="SELECT p FROM Page p WHERE p.owner.id = :userId")
})
@Access(AccessType.FIELD)
-public class Page {
+public class Page implements BasicEntity{
@Id @Column(name="id")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "pageIdSeq")
private Long id;
Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/PageLayout.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/PageLayout.java?rev=1145616&r1=1145615&r2=1145616&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/PageLayout.java (original)
+++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/PageLayout.java Tue Jul 12 15:00:09 2011
@@ -31,7 +31,7 @@ import javax.persistence.*;
@NamedQuery(name="PageLayout.getByLayoutCode", query = "select pl from PageLayout pl where pl.code = :code")
})
-public class PageLayout {
+public class PageLayout implements BasicEntity {
@Id @Column(name="id")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "pageLayoutIdSeq")
private Long id;
Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/Region.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/Region.java?rev=1145616&r1=1145615&r2=1145616&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/Region.java (original)
+++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/Region.java Tue Jul 12 15:00:09 2011
@@ -28,7 +28,7 @@ import java.util.List;
@Table(name="region")
@SequenceGenerator(name="regionIdSeq", sequenceName = "region_id_seq")
@Access(AccessType.FIELD)
-public class Region {
+public class Region implements BasicEntity{
@Id @Column(name="id")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "regionIdSeq")
private Long id;
Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/RegionWidget.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/RegionWidget.java?rev=1145616&r1=1145615&r2=1145616&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/RegionWidget.java (original)
+++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/RegionWidget.java Tue Jul 12 15:00:09 2011
@@ -27,7 +27,7 @@ import java.util.List;
@Entity
@Table(name = "region_widget")
@SequenceGenerator(name = "regionWidgetIdSeq", sequenceName = "region_widget_id_seq")
-public class RegionWidget {
+public class RegionWidget implements BasicEntity{
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "regionWidgetIdSeq")
Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/RegionWidgetPreference.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/RegionWidgetPreference.java?rev=1145616&r1=1145615&r2=1145616&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/RegionWidgetPreference.java (original)
+++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/RegionWidgetPreference.java Tue Jul 12 15:00:09 2011
@@ -29,7 +29,7 @@ import javax.xml.bind.annotation.XmlRoot
@Table(name = "region_widget_preference")
@SequenceGenerator(name = "regionWidgetPrefIdSeq", sequenceName = "region_widget_pref_id_seq")
@XmlRootElement
-public class RegionWidgetPreference {
+public class RegionWidgetPreference implements BasicEntity{
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "regionWidgetPrefIdSeq")
Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/User.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/User.java?rev=1145616&r1=1145615&r2=1145616&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/User.java (original)
+++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/User.java Tue Jul 12 15:00:09 2011
@@ -35,10 +35,10 @@ import java.util.Collection;
@NamedQueries({
@NamedQuery(name="User.getByUsername", query = "select u from User u where u.username = :username")
})
-public class User implements UserDetails {
+public class User implements UserDetails, BasicEntity {
@Id @Column(name = "user_id")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "userIdSeq")
- private Long userId;
+ private Long id;
@Basic @Column(name = "username")
private String username;
@@ -58,12 +58,12 @@ public class User implements UserDetails
public User() {
}
- public User(Long userId) {
- this.userId = userId;
+ public User(Long id) {
+ this.id = id;
}
- public User(Long userId, String username) {
- this.userId = userId;
+ public User(Long id, String username) {
+ this.id = id;
this.username = username;
}
@@ -72,12 +72,12 @@ public class User implements UserDetails
*
* @return The unique identifier for this user.
*/
- public Long getUserId() {
- return userId;
+ public Long getId() {
+ return id;
}
- public void setUserId(Long userId) {
- this.userId = userId;
+ public void setId(Long id) {
+ this.id = id;
}
//TODO: Add GrantedAuthorities to user
Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/Widget.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/Widget.java?rev=1145616&r1=1145615&r2=1145616&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/Widget.java (original)
+++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/Widget.java Tue Jul 12 15:00:09 2011
@@ -29,7 +29,7 @@ import javax.persistence.*;
@NamedQueries({
@NamedQuery(name = "Widget.getAll", query = "SELECT w from Widget w")
})
-public class Widget {
+public class Widget implements BasicEntity{
@Id @Column(name="id")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "widgetIdSeq")
private Long id;
Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/Repository.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/Repository.java?rev=1145616&r1=1145615&r2=1145616&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/Repository.java (original)
+++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/Repository.java Tue Jul 12 15:00:09 2011
@@ -37,4 +37,11 @@ public interface Repository<T> {
* @return the persisted item
*/
T save(T item);
+
+ /**
+ * Deletes the given item from the persistence context
+ *
+ * @param item the item to delete
+ */
+ void delete(T item);
}
Added: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/AbstractJpaRepository.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/AbstractJpaRepository.java?rev=1145616&view=auto
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/AbstractJpaRepository.java (added)
+++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/AbstractJpaRepository.java Tue Jul 12 15:00:09 2011
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.rave.portal.repository.impl;
+
+import org.apache.rave.portal.model.BasicEntity;
+import org.apache.rave.portal.repository.Repository;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+import static org.apache.rave.portal.repository.impl.util.JpaUtil.saveOrUpdate;
+
+/**
+ * Provides generic implementations of {@link org.apache.rave.portal.repository.Repository} methods
+ */
+public abstract class AbstractJpaRepository<T extends BasicEntity> implements Repository<T> {
+
+ @PersistenceContext
+ protected EntityManager manager;
+
+ private final Class<T> type;
+
+ protected AbstractJpaRepository(Class<T> type) {
+ this.type = type;
+ }
+
+ @Override
+ public void delete(T item) {
+ manager.remove(item);
+ }
+
+ @Override
+ public T save(T item) {
+ return saveOrUpdate(item.getId(), manager, item);
+ }
+
+ @Override
+ public T get(long id) {
+ return manager.find(type, id);
+ }
+}
Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaPageLayoutRepository.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaPageLayoutRepository.java?rev=1145616&r1=1145615&r2=1145616&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaPageLayoutRepository.java (original)
+++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaPageLayoutRepository.java Tue Jul 12 15:00:09 2011
@@ -35,16 +35,12 @@ import static org.apache.rave.portal.rep
/**
*/
@Repository
-public class JpaPageLayoutRepository implements PageLayoutRepository{
+public class JpaPageLayoutRepository extends AbstractJpaRepository<PageLayout> implements PageLayoutRepository{
- @PersistenceContext
- private EntityManager manager;
-
- @Override
- public PageLayout get(long layoutId) {
- return manager.find(PageLayout.class, layoutId);
+ public JpaPageLayoutRepository() {
+ super(PageLayout.class);
}
-
+
@Override
public PageLayout getByPageLayoutCode(String codename){
TypedQuery<PageLayout>query = manager.createNamedQuery("PageLayout.getByLayoutCode",PageLayout.class);
@@ -52,8 +48,4 @@ public class JpaPageLayoutRepository imp
return getSingleResult(query.getResultList());
}
- @Override
- public PageLayout save(PageLayout pageLayout) {
- return saveOrUpdate(pageLayout.getId(),manager,pageLayout);
- }
}
Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaPageRepository.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaPageRepository.java?rev=1145616&r1=1145615&r2=1145616&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaPageRepository.java (original)
+++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaPageRepository.java Tue Jul 12 15:00:09 2011
@@ -32,10 +32,11 @@ import java.util.List;
import static org.apache.rave.portal.repository.impl.util.JpaUtil.saveOrUpdate;
@Repository
-public class JpaPageRepository implements PageRepository {
+public class JpaPageRepository extends AbstractJpaRepository<Page> implements PageRepository{
- @PersistenceContext
- private EntityManager manager;
+ public JpaPageRepository() {
+ super(Page.class);
+ }
@Override
public List<Page> getAllPages(Long userId) {
@@ -43,15 +44,4 @@ public class JpaPageRepository implement
query.setParameter("userId", userId);
return query.getResultList();
}
-
- @Override
- public Page get(long pageId) {
- return manager.find(Page.class, pageId);
- }
-
- @Override
- public Page save(Page item) {
- return saveOrUpdate(item.getId(),manager,item);
- // throw new NotImplementedException("Save is not implemented for this repository");
- }
}
\ No newline at end of file
Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaRegionRepository.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaRegionRepository.java?rev=1145616&r1=1145615&r2=1145616&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaRegionRepository.java (original)
+++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaRegionRepository.java Tue Jul 12 15:00:09 2011
@@ -28,21 +28,9 @@ import javax.persistence.PersistenceCont
import static org.apache.rave.portal.repository.impl.util.JpaUtil.saveOrUpdate;
-/**
- * */
-
@Repository
-public class JpaRegionRepository implements RegionRepository {
- @PersistenceContext
- private EntityManager manager;
-
- @Override
- public Region get(long regionId) {
- return manager.find(Region.class, regionId);
- }
-
- @Override
- public Region save(Region region) {
- return saveOrUpdate(region.getId(), manager, region);
- }
+public class JpaRegionRepository extends AbstractJpaRepository<Region> implements RegionRepository {
+ public JpaRegionRepository() {
+ super(Region.class);
+ }
}
Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaRegionWidgetRepository.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaRegionWidgetRepository.java?rev=1145616&r1=1145615&r2=1145616&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaRegionWidgetRepository.java (original)
+++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaRegionWidgetRepository.java Tue Jul 12 15:00:09 2011
@@ -30,20 +30,8 @@ import javax.persistence.PersistenceCont
import static org.apache.rave.portal.repository.impl.util.JpaUtil.saveOrUpdate;
@Repository
-public class JpaRegionWidgetRepository implements RegionWidgetRepository {
- @PersistenceContext
- private EntityManager manager;
-
- @Override
- public RegionWidget get(long regionWidgetId) {
- return manager.find(RegionWidget.class, regionWidgetId);
- }
-
- @Override
- @Transactional
- public RegionWidget save(RegionWidget regionWidget) {
- return saveOrUpdate(regionWidget.getId(), manager, regionWidget);
+public class JpaRegionWidgetRepository extends AbstractJpaRepository<RegionWidget> implements RegionWidgetRepository {
+ public JpaRegionWidgetRepository() {
+ super(RegionWidget.class);
}
-
-
}
\ No newline at end of file
Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaUserRepository.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaUserRepository.java?rev=1145616&r1=1145615&r2=1145616&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaUserRepository.java (original)
+++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaUserRepository.java Tue Jul 12 15:00:09 2011
@@ -19,11 +19,9 @@
package org.apache.rave.portal.repository.impl;
-import org.apache.commons.lang.NotImplementedException;
import org.apache.rave.portal.model.User;
import org.apache.rave.portal.repository.UserRepository;
import org.springframework.stereotype.Repository;
-import org.springframework.transaction.annotation.Transactional;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
@@ -35,14 +33,10 @@ import static org.apache.rave.portal.rep
/**
*/
@Repository
-public class JpaUserRepository implements UserRepository{
+public class JpaUserRepository extends AbstractJpaRepository<User> implements UserRepository{
- @PersistenceContext
- private EntityManager manager;
-
- @Override
- public User get(long userId) {
- return manager.find(User.class, userId);
+ public JpaUserRepository() {
+ super(User.class);
}
@Override
@@ -51,9 +45,4 @@ public class JpaUserRepository implement
query.setParameter("username", username);
return getSingleResult(query.getResultList());
}
-
- @Override
- public User save(User user) {
- return saveOrUpdate(user.getUserId(),manager,user);
- }
}
Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaWidgetRepository.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaWidgetRepository.java?rev=1145616&r1=1145615&r2=1145616&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaWidgetRepository.java (original)
+++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaWidgetRepository.java Tue Jul 12 15:00:09 2011
@@ -31,24 +31,15 @@ import javax.persistence.TypedQuery;
import java.util.List;
@Repository
-public class JpaWidgetRepository implements WidgetRepository{
+public class JpaWidgetRepository extends AbstractJpaRepository<Widget> implements WidgetRepository{
- @PersistenceContext
- private EntityManager manager;
+ public JpaWidgetRepository() {
+ super(Widget.class);
+ }
@Override
public List<Widget> getAll() {
TypedQuery<Widget> query = manager.createNamedQuery("Widget.getAll", Widget.class);
return query.getResultList();
}
-
- @Override
- public Widget get(long id) {
- return manager.find(Widget.class, id);
- }
-
- @Override
- public Widget save(Widget item) {
- throw new NotImplementedException("Save is not implemented for this repository");
- }
}
Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/PageService.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/PageService.java?rev=1145616&r1=1145615&r2=1145616&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/PageService.java (original)
+++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/PageService.java Tue Jul 12 15:00:09 2011
@@ -54,12 +54,10 @@ public interface PageService {
/**
* Deletes a specified widget from the specied page.
- * @param widgetId the id of the widget to delete.
- * @param regionId the ID of the region containing the widget to delete
- * @param pageId the id of the page containing the widget to delete
- * @return the updated Region. //TODO need to make sure this is the right return.
+ *
+ * @param regionWidgetId the id of the region widget to delete.\
*/
- Region removeWidgetFromPage(long regionWidgetId, long regionId);
+ void removeWidgetFromPage(long regionWidgetId);
/**
* Registers a new page.
Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java?rev=1145616&r1=1145615&r2=1145616&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java (original)
+++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java Tue Jul 12 15:00:09 2011
@@ -23,10 +23,7 @@ import org.apache.rave.portal.model.Page
import org.apache.rave.portal.model.Region;
import org.apache.rave.portal.model.RegionWidget;
import org.apache.rave.portal.model.Widget;
-import org.apache.rave.portal.repository.PageRepository;
-import org.apache.rave.portal.repository.RegionRepository;
-import org.apache.rave.portal.repository.Repository;
-import org.apache.rave.portal.repository.WidgetRepository;
+import org.apache.rave.portal.repository.*;
import org.apache.rave.portal.service.PageService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -38,12 +35,14 @@ import java.util.List;
public class DefaultPageService implements PageService {
private final PageRepository pageRepository;
private final RegionRepository regionRepository;
+ private final RegionWidgetRepository regionWidgetRepository;
private final WidgetRepository widgetRepository;
@Autowired
- public DefaultPageService(PageRepository pageRepository, RegionRepository regionRepository, WidgetRepository widgetRepository) {
+ public DefaultPageService(PageRepository pageRepository, RegionRepository regionRepository, WidgetRepository widgetRepository, RegionWidgetRepository regionWidgetRepository) {
this.pageRepository = pageRepository;
this.regionRepository = regionRepository;
+ this.regionWidgetRepository = regionWidgetRepository;
this.widgetRepository = widgetRepository;
}
@@ -56,7 +55,7 @@ public class DefaultPageService implemen
@Transactional
public RegionWidget moveRegionWidget(long regionWidgetId, int newPosition, long toRegion, long fromRegion) {
Region target = getFromRepository(toRegion, regionRepository);
- if(toRegion == fromRegion) {
+ if (toRegion == fromRegion) {
moveWithinRegion(regionWidgetId, newPosition, target);
} else {
moveBetweenRegions(regionWidgetId, newPosition, fromRegion, target);
@@ -65,12 +64,16 @@ public class DefaultPageService implemen
return findRegionWidgetById(regionWidgetId, target.getRegionWidgets());
}
- @Override
- @Transactional
- public Region removeWidgetFromPage(long regionWidgetId, long regionId){
- Region region = getFromRepository(regionId, regionRepository);
- return removeWidgetInstance(regionWidgetId, region);
- }
+ @Override
+ @Transactional
+ public void removeWidgetFromPage(long regionWidgetId) {
+ RegionWidget widget = getFromRepository(regionWidgetId, regionWidgetRepository);
+ if (widget != null) {
+ regionWidgetRepository.delete(widget);
+ } else {
+ throw new IllegalArgumentException("Region widget with id " + regionWidgetId + " was not found in the repository");
+ }
+ }
@Override
@Transactional
@@ -81,11 +84,11 @@ public class DefaultPageService implemen
return createWidgetInstance(widget, region, 0);
}
- @Override
- @Transactional
- public void registerNewPage(Page page) {
- pageRepository.save(page);
- }
+ @Override
+ @Transactional
+ public void registerNewPage(Page page) {
+ pageRepository.save(page);
+ }
private RegionWidget createWidgetInstance(Widget widget, Region region, int position) {
RegionWidget regionWidget = new RegionWidget();
@@ -116,17 +119,9 @@ public class DefaultPageService implemen
target.getRegionWidgets().add(newPosition, widget);
}
- private Region removeWidgetInstance(long regionWidgetId, Region region) {
- RegionWidget regionWidget = findRegionWidgetById(regionWidgetId, region.getRegionWidgets());
- region.getRegionWidgets().remove(regionWidget);
- updateRenderSequences(region.getRegionWidgets());
- regionRepository.save(region);
- return region;
- }
-
private static <T> T getFromRepository(long id, Repository<T> repo) {
T object = repo.get(id);
- if(object == null) {
+ if (object == null) {
throw new IllegalArgumentException("Could not find object of given id in " + repo.getClass().getSimpleName());
}
return object;
@@ -134,19 +129,19 @@ public class DefaultPageService implemen
private static void updateRenderSequences(List<RegionWidget> regionWidgets) {
int count = 0;
- for(RegionWidget widget : regionWidgets) {
+ for (RegionWidget widget : regionWidgets) {
widget.setRenderOrder(count);
count++;
}
}
private static RegionWidget findRegionWidgetById(Long id, List<RegionWidget> regionWidgets) {
- for(RegionWidget widget : regionWidgets) {
- if(widget.getId().equals(id)) {
+ for (RegionWidget widget : regionWidgets) {
+ if (widget.getId().equals(id)) {
return widget;
}
}
throw new IllegalArgumentException("Invalid RegionWidget ID");
}
-
+
}
\ No newline at end of file
Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/web/api/rpc/PageApi.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/web/api/rpc/PageApi.java?rev=1145616&r1=1145615&r2=1145616&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/web/api/rpc/PageApi.java (original)
+++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/web/api/rpc/PageApi.java Tue Jul 12 15:00:09 2011
@@ -108,28 +108,22 @@ public class PageApi {
/**
* Deletes a widget
- *
- * @param pageId
- * the ID of the {@link org.apache.rave.portal.model.Page}
- * containing the widget region
- * @param regionId
- * the ID of the {@link org.apache.rave.portal.model.Region}
- * containing the widget
- * @param widgetId
+ *
+ * @param regionWidgetId
* the ID of the {@link org.apache.rave.portal.model.Widget} to
* delete
* @return an {@link RpcOperation} containing the updated region or any
* errors encountered.
*/
@ResponseBody
- @RequestMapping(method=RequestMethod.POST, value="{pageId}/widget/delete")
- public RpcResult<Region> removeWidgetFromPage(@RequestParam final long widgetId,
- @RequestParam final long regionId) {
+ @RequestMapping(method=RequestMethod.POST, value="regionWidget/{regionWidgetId}/delete")
+ public RpcResult<Region> removeWidgetFromPage(@PathVariable final long regionWidgetId) {
return new RpcOperation<Region>() {
@Override
public Region execute() {
- return pageService.removeWidgetFromPage(widgetId, regionId);
- }
+ pageService.removeWidgetFromPage(regionWidgetId);
+ return null;
+ }
}.getResult();
}
Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/web/controller/HomeController.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/web/controller/HomeController.java?rev=1145616&r1=1145615&r2=1145616&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/web/controller/HomeController.java (original)
+++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/web/controller/HomeController.java Tue Jul 12 15:00:09 2011
@@ -54,7 +54,7 @@ public class HomeController {
@RequestMapping(value = {"/", "/index.html"})
public String getHome(Model model) {
User user = userService.getAuthenticatedUser();
- List<Page> pages = pageService.getAllPages(user.getUserId());
+ List<Page> pages = pageService.getAllPages(user.getId());
model.addAttribute(ModelKeys.PAGES, pages);
model.addAttribute(ModelKeys.OPENSOCIAL_ENVIRONMENT, openSocialEnvironment);
return ViewNames.HOME;
Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/provider/w3c/service/impl/WookieWidgetService.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/provider/w3c/service/impl/WookieWidgetService.java?rev=1145616&r1=1145615&r2=1145616&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/provider/w3c/service/impl/WookieWidgetService.java (original)
+++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/provider/w3c/service/impl/WookieWidgetService.java Tue Jul 12 15:00:09 2011
@@ -54,7 +54,7 @@ public class WookieWidgetService impleme
private Widget getWidgetForViewer(Widget widget, String context, User viewer){
try {
connectorService = getWookieConnectorService(WOOKIE_SERVER_URL, WOOKIE_API_KEY, context);
- org.apache.wookie.connector.framework.User user = new org.apache.wookie.connector.framework.User(String.valueOf(viewer.getUserId()), viewer.getUsername());
+ org.apache.wookie.connector.framework.User user = new org.apache.wookie.connector.framework.User(String.valueOf(viewer.getId()), viewer.getUsername());
connectorService.setCurrentUser(user);
System.out.println("Getting widget:"+widget.getUrl()+" from:" +connectorService.getConnection().getURL());
Modified: incubator/rave/trunk/rave-portal/src/main/webapp/WEB-INF/views/home.jsp
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/webapp/WEB-INF/views/home.jsp?rev=1145616&r1=1145615&r2=1145616&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/webapp/WEB-INF/views/home.jsp (original)
+++ incubator/rave/trunk/rave-portal/src/main/webapp/WEB-INF/views/home.jsp Tue Jul 12 15:00:09 2011
@@ -44,11 +44,6 @@
<c:forEach var="region" items="${defaultPage.regions}">
<div class="region" id="region-${region.id}-id" >
<c:forEach var="regionWidget" items="${region.regionWidgets}">
- <%-- FIXME: whether region.id should be included in the id.
- I am not sure whether id's of widgets in different regions can be the same.
- If so, region.id must be included. When a gadget is moved, region id must be updated.
- Otherwise, it is not needed.
- --%>
<div class="widget-wrapper" id="widget-wrapper-${regionWidget.id}">
<div class="widget-title-bar" >
<span id="widget-${regionWidget.id}-title">${regionWidget.widget.title}</span>
Modified: incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/model/UserTest.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/model/UserTest.java?rev=1145616&r1=1145615&r2=1145616&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/model/UserTest.java (original)
+++ incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/model/UserTest.java Tue Jul 12 15:00:09 2011
@@ -56,7 +56,7 @@ public class UserTest {
user1=new User();
user1.setUsername(userName);
- user1.setUserId(id);
+ user1.setId(id);
user1.setPassword(userPassword);
user1.setEnabled(user1Enabled);
user1.setExpired(user1Expired);
@@ -74,14 +74,14 @@ public class UserTest {
public void testAccessorMethods(){
assertTrue(user1.getUsername().equals(userName));
assertTrue(user1.getPassword().equals(userPassword));
- assertTrue(user1.getUserId().equals(id));
+ assertTrue(user1.getId().equals(id));
assertTrue(user1.isEnabled());
assertFalse(user2.isEnabled());
assertTrue(user3.isEnabled());
}
public void testAltConstructors(){
- assertTrue(user1.getUserId()==user2.getUserId());
- assertTrue(user1.getUserId()==user3.getUserId());
+ assertTrue(user1.getId()==user2.getId());
+ assertTrue(user1.getId()==user3.getId());
assertTrue(user1.getUsername().equals(user3.getUsername()));
}
Added: incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/AbstractJpaRepositoryTest.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/AbstractJpaRepositoryTest.java?rev=1145616&view=auto
==============================================================================
--- incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/AbstractJpaRepositoryTest.java (added)
+++ incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/AbstractJpaRepositoryTest.java Tue Jul 12 15:00:09 2011
@@ -0,0 +1,112 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.rave.portal.repository;
+
+import org.apache.rave.portal.model.BasicEntity;
+import org.apache.rave.portal.repository.impl.AbstractJpaRepository;
+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;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import java.lang.reflect.Field;
+import java.util.List;
+
+import static org.hamcrest.CoreMatchers.*;
+import static org.junit.Assert.assertThat;
+
+/**
+ */
+
+@Transactional
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations = {"file:src/main/webapp/WEB-INF/dataContext.xml", "file:src/main/webapp/WEB-INF/applicationContext.xml"})
+@SuppressWarnings("unchecked")
+//By iterating over all repositories in the context, we can be sure that basic repository functionality isn't broken by any overriding methods
+public class AbstractJpaRepositoryTest {
+ @PersistenceContext
+ private EntityManager sharedManager;
+
+ @Autowired
+ private List<AbstractJpaRepository> repositories;
+ //NOTE: In order for tests to succeed, there must be an object with id of 1 in the store for every repository
+ private static final Long VALID_ENTITY_ID = 1L;
+ private static final Long INVALID_ENTITY_ID = -1L;
+
+ @Test
+ public void getById_validId() {
+ for (AbstractJpaRepository repository : repositories) {
+ BasicEntity entity = repository.get(VALID_ENTITY_ID);
+ assertThat(entity, is(notNullValue()));
+ assertThat(entity.getId(), is(equalTo(VALID_ENTITY_ID)));
+ }
+ }
+
+ @Test
+ public void getById_invalidId() {
+ for (AbstractJpaRepository repository : repositories) {
+ BasicEntity entity = repository.get(INVALID_ENTITY_ID);
+ assertThat(entity, is(nullValue()));
+ }
+ }
+
+ @Test
+ @Rollback(true)
+ public void save_newEntity() {
+ for (AbstractJpaRepository repository : repositories) {
+ BasicEntity entity = constructNewEntityForRepository(repository);
+ BasicEntity saved = repository.save(entity);
+ sharedManager.flush();
+ assertThat(saved, is(sameInstance(entity)));
+ assertThat(saved.getId(), is(notNullValue()));
+ }
+ }
+
+ @Test
+ @Rollback(true)
+ public void save_existingEntity() {
+ for (AbstractJpaRepository repository : repositories) {
+ BasicEntity entity = constructNewEntityForRepository(repository);
+ entity.setId(VALID_ENTITY_ID);
+ BasicEntity saved = repository.save(entity);
+ sharedManager.flush();
+ assertThat(saved, is(not(sameInstance(entity))));
+ assertThat(saved.getId(), is(equalTo(entity.getId())));
+ }
+
+ }
+
+ private BasicEntity constructNewEntityForRepository(AbstractJpaRepository repository) {
+ try {
+ Field field = AbstractJpaRepository.class.getDeclaredField("type");
+ field.setAccessible(true);
+ Class<?> objectClass = (Class)field.get(repository);
+ return (BasicEntity) objectClass.newInstance();
+ } catch (Throwable e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+}
Modified: incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/JpaPageRepositoryTest.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/JpaPageRepositoryTest.java?rev=1145616&r1=1145615&r2=1145616&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/JpaPageRepositoryTest.java (original)
+++ incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/JpaPageRepositoryTest.java Tue Jul 12 15:00:09 2011
@@ -24,12 +24,16 @@ import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.transaction.annotation.Transactional;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
import java.util.List;
import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.assertThat;
+@Transactional
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"file:src/main/webapp/WEB-INF/dataContext.xml", "file:src/main/webapp/WEB-INF/applicationContext.xml"})
public class JpaPageRepositoryTest {
@@ -38,6 +42,9 @@ public class JpaPageRepositoryTest {
private static final Long INVALID_USER = -1L;
private static final String WIDGET_URL = "http://www.google.com/ig/modules/wikipedia.xml";
+ @PersistenceContext
+ private EntityManager manager;
+
@Autowired
private PageRepository repository;
Modified: incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/JpaRegionRepositoryTest.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/JpaRegionRepositoryTest.java?rev=1145616&r1=1145615&r2=1145616&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/JpaRegionRepositoryTest.java (original)
+++ incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/JpaRegionRepositoryTest.java Tue Jul 12 15:00:09 2011
@@ -136,8 +136,6 @@ public class JpaRegionRepositoryTest {
assertThat(saved.getRegionWidgets().size(), is(equalTo(1)));
assertThat(widget, is(nullValue()));
-
-
}
}
Modified: incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/JpaUserRepositoryTest.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/JpaUserRepositoryTest.java?rev=1145616&r1=1145615&r2=1145616&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/JpaUserRepositoryTest.java (original)
+++ incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/JpaUserRepositoryTest.java Tue Jul 12 15:00:09 2011
@@ -26,14 +26,22 @@ import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.assertThat;
+@Transactional
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"file:src/main/webapp/WEB-INF/dataContext.xml", "file:src/main/webapp/WEB-INF/applicationContext.xml"})
public class JpaUserRepositoryTest {
+ @PersistenceContext
+ private EntityManager manager;
+
private static final Long USER_ID = 1L;
private static final String USER_NAME = "canonical";
private static final Long INVALID_USER = -2L;
@@ -58,7 +66,7 @@ public class JpaUserRepositoryTest {
public void getByUsername_valid() {
User user = repository.getByUsername(USER_NAME);
assertThat(user, CoreMatchers.notNullValue());
- assertThat(user.getUserId(), is(equalTo(USER_ID)));
+ assertThat(user.getId(), is(equalTo(USER_ID)));
assertThat(user.getPassword(), is(equalTo(USER_NAME)));
assertThat(user.isAccountNonExpired(), is(true));
}
Modified: incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/service/PageServiceTest.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/service/PageServiceTest.java?rev=1145616&r1=1145615&r2=1145616&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/service/PageServiceTest.java (original)
+++ incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/service/PageServiceTest.java Tue Jul 12 15:00:09 2011
@@ -57,7 +57,7 @@ public class PageServiceTest {
pageRepository = createNiceMock(PageRepository.class);
regionRepository = createNiceMock(RegionRepository.class);
widgetRepository = createNiceMock(WidgetRepository.class);
- pageService = new DefaultPageService(pageRepository, regionRepository, widgetRepository);
+ pageService = new DefaultPageService(pageRepository, regionRepository, widgetRepository, null);
targetRegion = new Region();
targetRegion.setRegionWidgets(new ArrayList<RegionWidget>());
Modified: incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/web/api/rpc/PageApiTest.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/web/api/rpc/PageApiTest.java?rev=1145616&r1=1145615&r2=1145616&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/web/api/rpc/PageApiTest.java (original)
+++ incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/web/api/rpc/PageApiTest.java Tue Jul 12 15:00:09 2011
@@ -143,4 +143,49 @@ public class PageApiTest {
assertThat(result.getErrorCode(), is(RpcResult.ErrorCode.INTERNAL_ERROR));
assertThat(result.getErrorMessage(), is(equalTo(INTERNAL_ERROR_MESSAGE)));
}
+
+ @Test
+ public void deleteWidget_validParams() {
+ final long WIDGET_ID = 3;
+ pageService.removeWidgetFromPage(WIDGET_ID);
+ expectLastCall();
+ RpcResult result = pageApi.removeWidgetFromPage(WIDGET_ID);
+ verify(pageService);
+ assertThat(result, is(notNullValue()));
+ assertThat(result.getResult(), is(nullValue()));
+ assertThat(result.isError(), is(false));
+
+ }
+
+ @Test
+ public void deleteWidget_invalidParams() {
+ final int PAGE_ID = 1;
+ final long WIDGET_ID = 2;
+
+ expect(pageService.addWidgetToPage(PAGE_ID, WIDGET_ID)).andThrow(new IllegalArgumentException(PARAM_ERROR_MESSAGE));
+ replay(pageService);
+ RpcResult result = pageApi.addWidgetToPage(PAGE_ID, WIDGET_ID);
+ verify(pageService);
+ assertThat(result, is(notNullValue()));
+ assertThat(result.getResult(), is(nullValue()));
+ assertThat(result.isError(), is(true));
+ assertThat(result.getErrorCode(), is(RpcResult.ErrorCode.INVALID_PARAMS));
+ assertThat(result.getErrorMessage(), is(equalTo(PARAM_ERROR_MESSAGE)));
+ }
+
+ @Test
+ public void deleteWidget_internalError() {
+ final int PAGE_ID = 1;
+ final long WIDGET_ID = 2;
+
+ expect(pageService.addWidgetToPage(PAGE_ID, WIDGET_ID)).andThrow(new RuntimeException(INTERNAL_ERROR_MESSAGE));
+ replay(pageService);
+ RpcResult result = pageApi.addWidgetToPage(PAGE_ID, WIDGET_ID);
+ verify(pageService);
+ assertThat(result, is(notNullValue()));
+ assertThat(result.getResult(), is(nullValue()));
+ assertThat(result.isError(), is(true));
+ assertThat(result.getErrorCode(), is(RpcResult.ErrorCode.INTERNAL_ERROR));
+ assertThat(result.getErrorMessage(), is(equalTo(INTERNAL_ERROR_MESSAGE)));
+ }
}