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/06/11 14:22:11 UTC
svn commit: r1348814 - in /rave/branches/model_interfaces/rave-components:
rave-core/src/main/java/org/apache/rave/portal/model/
rave-core/src/main/java/org/apache/rave/portal/model/conversion/
rave-core/src/main/java/org/apache/rave/portal/repository/...
Author: mfranklin
Date: Mon Jun 11 12:22:10 2012
New Revision: 1348814
URL: http://svn.apache.org/viewvc?rev=1348814&view=rev
Log:
Committed patch from Aaron Gooch (RAVE-632)
Added:
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaTag.java
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaWidgetTag.java
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/TagImpl.java
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/WidgetTagImpl.java
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/conversion/JpaTagConverter.java
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/conversion/JpaWidgetTagConverter.java
rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/model/conversion/JpaTagConverterTest.java
rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/model/conversion/JpaWidgetTagConverterTest.java
Modified:
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaWidget.java
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Tag.java
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/WidgetTag.java
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/TagRepository.java
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/WidgetTagRepository.java
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaTagRepository.java
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaWidgetTagRepository.java
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultWidgetTagPermissionEvaluator.java
rave/branches/model_interfaces/rave-components/rave-core/src/main/resources/META-INF/persistence.xml
rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/model/TagTest.java
rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/model/WidgetTagTest.java
rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/model/WidgetTest.java
rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaTagRepositoryTest.java
rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaWidgetTagRepositoryTest.java
rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultTagServiceTest.java
rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultWidgetTagServiceTest.java
rave/branches/model_interfaces/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rest/WidgetApi.java
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-components/rave-web/src/test/java/org/apache/rave/portal/web/controller/WidgetStoreControllerTest.java
Added: rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaTag.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaTag.java?rev=1348814&view=auto
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaTag.java (added)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaTag.java Mon Jun 11 12:22:10 2012
@@ -0,0 +1,139 @@
+/*
+ * 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;
+
+import org.apache.rave.persistence.BasicEntity;
+import org.apache.rave.portal.model.conversion.ConvertingListProxyFactory;
+import org.apache.rave.portal.model.conversion.JpaWidgetTagConverter;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import javax.persistence.*;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Represents a group in the social database. The assumption in this object is that groups are
+ * associated with individuals and are used by those individuals to manage people.
+ */
+@Entity
+@Table(name = "tag")
+@Access(AccessType.FIELD)
+@NamedQueries({
+ @NamedQuery(name = JpaTag.GET_ALL, query = "select t from JpaTag t order by t.keyword asc"),
+ @NamedQuery(name = JpaTag.COUNT_ALL, query = "select count(t) from JpaTag t "),
+ @NamedQuery(name = JpaTag.GET_ALL_NOT_IN_WIDGET, query = "select tag from JpaTag tag where tag.keyword not in " +
+ "(select t.keyword from JpaTag t join t.widgets w where w.widgetId =:widgetId)"),
+
+ @NamedQuery(name = JpaTag.FIND_BY_KEYWORD, query = "select t from JpaTag t where UPPER(t.keyword) = UPPER(:keyword)")
+})
+
+public class JpaTag implements BasicEntity, Tag {
+
+ public static final String FIND_BY_KEYWORD = "findByKeyword";
+ public static final String GET_ALL = "getAll";
+ public static final String COUNT_ALL = "countAll";
+ public static final String GET_ALL_NOT_IN_WIDGET="getAllNotInWidget" ;
+ public static final String KEYWORD_PARAM = "keyword";
+
+ @Autowired
+ private JpaWidgetTagConverter jpaWidgetTagConverter;
+
+ /**
+ * The internal object ID used for references to this object. Should be generated by the
+ * underlying storage mechanism
+ */
+ @Id
+ @Column(name = "entity_id")
+ @GeneratedValue(strategy = GenerationType.TABLE, generator = "tagIdGenerator")
+ @TableGenerator(name = "tagIdGenerator", table = "RAVE_PORTAL_SEQUENCES", pkColumnName = "SEQ_NAME",
+ valueColumnName = "SEQ_COUNT", pkColumnValue = "tag", allocationSize = 1, initialValue = 1)
+ private Long entityId;
+
+ @Basic
+ @Column(name = "keyword", unique = true)
+ private String keyword;
+
+ @OneToMany(mappedBy="tag")
+ public List<JpaWidgetTag> widgets;
+
+
+ public JpaTag() {
+
+ }
+
+ public JpaTag(Long entityId, String keyword) {
+ this.entityId = entityId;
+ this.keyword = keyword;
+ }
+
+ public String getKeyword() {
+ return keyword;
+ }
+
+ public void setKeyword(String keyword) {
+ this.keyword = keyword;
+ }
+
+ public Long getEntityId() {
+ return entityId;
+ }
+
+ public void setEntityId(Long entityId) {
+ this.entityId = entityId;
+ }
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public List<WidgetTag> getWidgets() {
+ return ConvertingListProxyFactory.createProxyList(WidgetTag.class, widgets);
+ }
+
+ @Override
+ public void setWidgets(List<WidgetTag> widgets) {
+ if(this.widgets == null){
+ this.widgets = new ArrayList<JpaWidgetTag>();
+ }
+ this.getWidgets().clear();
+ this.getWidgets().addAll(widgets);
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+
+ JpaTag tag = (JpaTag) o;
+
+ if (entityId != null ? !entityId.equals(tag.entityId) : tag.entityId != null) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return entityId != null ? entityId.hashCode() : 0;
+ }
+}
Modified: rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaWidget.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaWidget.java?rev=1348814&r1=1348813&r2=1348814&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaWidget.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaWidget.java Mon Jun 11 12:22:10 2012
@@ -91,7 +91,7 @@ public class JpaWidget implements BasicE
static final String WHERE_CLAUSE_STATUS = " WHERE w.widgetStatus = :" + PARAM_STATUS;
static final String WHERE_CLAUSE_URL = " WHERE w.url = :" + PARAM_URL;
static final String WHERE_CLAUSE_OWNER = " WHERE w.owner = :" + PARAM_OWNER;
- static final String WIDGET_TAG_BY_KEYWORD=" (select t.widgetId from WidgetTag t where lower(t.tag.keyword)=:"+PARAM_TAG+")";
+ static final String WIDGET_TAG_BY_KEYWORD=" (select t.widgetId from JpaWidgetTag t where lower(t.tag.keyword)=:"+PARAM_TAG+")";
static final String JOIN_TAGS=" WHERE w.entityId in"+WIDGET_TAG_BY_KEYWORD;
static final String ORDER_BY_TITLE_ASC = " ORDER BY w.featured DESC, w.title ASC ";
@@ -182,7 +182,7 @@ public class JpaWidget implements BasicE
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "widget_id", referencedColumnName = "entity_id")
- private List<WidgetTag> tags;
+ private List<JpaWidgetTag> tags;
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name="widget_category",
@@ -401,12 +401,19 @@ public class JpaWidget implements BasicE
@Override
public List<WidgetTag> getTags() {
- return tags;
+ return ConvertingListProxyFactory.createProxyList(WidgetTag.class, tags);
}
@Override
public void setTags(List<WidgetTag> tags) {
- this.tags = tags;
+ if(this.tags == null) {
+ this.tags = new ArrayList<JpaWidgetTag>();
+ }
+ //Ensure that all operations go through the conversion proxy
+ this.getTags().clear();
+ if(tags != null) {
+ this.getTags().addAll(tags);
+ }
}
@Override
Added: rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaWidgetTag.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaWidgetTag.java?rev=1348814&view=auto
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaWidgetTag.java (added)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaWidgetTag.java Mon Jun 11 12:22:10 2012
@@ -0,0 +1,143 @@
+/*
+ * Copyright 2011 The Apache Software Foundation.
+ *
+ * Licensed 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;
+
+import javax.persistence.*;
+import javax.xml.bind.annotation.XmlRootElement;
+import java.io.Serializable;
+import java.util.Date;
+/**
+ * A tag for a widget.
+ */
+@Entity
+@Table(name = "widget_tag")
+@Access(AccessType.FIELD)
+@XmlRootElement
+@NamedQueries({
+ @NamedQuery(name = JpaWidgetTag.FIND_BY_WIDGET_AND_KEYWORD, query = "select t from JpaWidgetTag t where t.widgetId=:widgetId and UPPER(t.tag.keyword) = UPPER(:keyword)")
+})
+public class JpaWidgetTag implements WidgetTag, Serializable {
+
+ public static final String FIND_BY_WIDGET_AND_KEYWORD = "findByWidgetAndKeyword";
+ public static final String WIDGET_ID_PARAM = "widgetId";
+ public static final String TAG_KEYWORD_PARAM = "keyword";
+
+ @Id
+ @Column(name = "entity_id")
+ @GeneratedValue(strategy = GenerationType.TABLE, generator = "widgetTagIdGenerator")
+ @TableGenerator(name = "widgetTagIdGenerator", table = "RAVE_PORTAL_SEQUENCES", pkColumnName = "SEQ_NAME",
+ valueColumnName = "SEQ_COUNT", pkColumnValue = "widget_tag", allocationSize = 1, initialValue = 1)
+ private Long entityId;
+
+ @Basic
+ @Column(name = "widget_id")
+ private Long widgetId;
+
+ @OneToOne(fetch = FetchType.EAGER)
+ @JoinColumn(name = "user_id")
+ private User user;
+
+ @ManyToOne(fetch=FetchType.EAGER,cascade = CascadeType.ALL)
+ @JoinColumn(name = "tag_id")
+ private JpaTag tag;
+
+ @Basic
+ @Column(name = "created_date")
+ @Temporal(javax.persistence.TemporalType.TIMESTAMP)
+ private Date createdDate;
+
+ public JpaWidgetTag() {}
+
+ public JpaWidgetTag(long id, long widgetId, User user, Date date, JpaTag tag) {
+ this.entityId = id;
+ this.widgetId = widgetId;
+ this.user = user;
+ this.createdDate = date;
+ this.tag = tag;
+ }
+
+ public Long getEntityId(){
+ return this.entityId;
+ }
+
+ public void setEntityId(Long id){
+ this.entityId = id;
+ }
+
+ @Override
+ public Long getWidgetId() {
+ return this.widgetId;
+ }
+
+ @Override
+ public void setWidgetId(Long id) {
+ this.widgetId = id;
+ }
+
+ @Override
+ public User getUser() {
+ return this.user;
+ }
+
+ @Override
+ public void setUser(User user) {
+ this.user = user;
+ }
+
+ @Override
+ public Tag getTag() {
+ return this.tag;
+ }
+
+ @Override
+ public void setTag(Tag tag) {
+ this.tag = (JpaTag)tag;
+ }
+
+ @Override
+ public Date getCreatedDate() {
+ return this.createdDate;
+ }
+
+ @Override
+ public void setCreatedDate(Date date) {
+ this.createdDate = date;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof JpaWidgetTag)) return false;
+
+ JpaWidgetTag that = (JpaWidgetTag) o;
+
+ if (createdDate != null ? !createdDate.equals(that.createdDate) : that.createdDate != null) return false;
+ if (tag != null ? !tag.equals(that.tag) : that.tag != null) return false;
+ if (user != null ? !user.equals(that.user) : that.user != null) return false;
+ if (widgetId != null ? !widgetId.equals(that.widgetId) : that.widgetId != null) return false;
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = widgetId != null ? widgetId.hashCode() : 0;
+ result = 31 * result + (user != null ? user.hashCode() : 0);
+ result = 31 * result + (tag != null ? tag.hashCode() : 0);
+ result = 31 * result + (createdDate != null ? createdDate.hashCode() : 0);
+ return result;
+ }
+}
Modified: rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Tag.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Tag.java?rev=1348814&r1=1348813&r2=1348814&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Tag.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Tag.java Mon Jun 11 12:22:10 2012
@@ -1,127 +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
+ * Copyright 2011 The Apache Software Foundation.
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * Licensed 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
*
- * 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.
+ * 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;
-import org.apache.rave.persistence.BasicEntity;
-
-import javax.persistence.*;
-import java.util.ArrayList;
-import java.util.Collection;
import java.util.List;
-/**
- * Represents a group in the social database. The assumption in this object is that groups are
- * associated with individuals and are used by those individuals to manage people.
- */
-@Entity
-@Access(AccessType.FIELD)
-@Table(name = "tag")
-@NamedQueries({
- @NamedQuery(name = Tag.GET_ALL, query = "select t from Tag t order by t.keyword asc"),
- @NamedQuery(name = Tag.COUNT_ALL, query = "select count(t) from Tag t "),
- @NamedQuery(name = Tag.GET_ALL_NOT_IN_WIDGET, query = "select tag from Tag tag where tag.keyword not in " +
- "(select t.keyword from Tag t join t.widgets w where w.widgetId =:widgetId)"),
-
- @NamedQuery(name = Tag.FIND_BY_KEYWORD, query = "select t from Tag t where UPPER(t.keyword) = UPPER(:keyword)")
-})
-
-public class Tag implements BasicEntity {
-
- public static final String FIND_BY_KEYWORD = "findByKeyword";
- public static final String GET_ALL = "getAll";
- public static final String COUNT_ALL = "countAll";
- public static final String GET_ALL_NOT_IN_WIDGET="getAllNotInWidget" ;
-
- /**
- * The internal object ID used for references to this object. Should be generated by the
- * underlying storage mechanism
- */
- @Id
- @Column(name = "entity_id")
- @GeneratedValue(strategy = GenerationType.TABLE, generator = "tagIdGenerator")
- @TableGenerator(name = "tagIdGenerator", table = "RAVE_PORTAL_SEQUENCES", pkColumnName = "SEQ_NAME",
- valueColumnName = "SEQ_COUNT", pkColumnValue = "tag", allocationSize = 1, initialValue = 1)
- private Long entityId;
-
- @Basic
- @Column(name = "keyword", unique = true)
- private String keyword;
-
- @OneToMany(mappedBy="tag")
- public List<WidgetTag> widgets;
-
-
- public Tag() {
-
- }
-
- public Tag(Long entityId, String keyword) {
- this.entityId = entityId;
- this.keyword = keyword;
- }
-
- public String getKeyword() {
- return keyword;
- }
-
- public void setKeyword(String keyword) {
- this.keyword = keyword;
- }
-
- public Long getEntityId() {
- return entityId;
- }
-
- public void setEntityId(Long entityId) {
- this.entityId = entityId;
- }
-
- public List<WidgetTag> getWidgets() {
- if (widgets==null) widgets=new ArrayList<WidgetTag>();
- return widgets;
- }
-
- public void setWidgets(List<WidgetTag> widgets) {
- this.widgets = widgets;
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
-
- if (o == null || getClass() != o.getClass()) {
- return false;
- }
-
- Tag tag = (Tag) o;
- if (entityId != null ? !entityId.equals(tag.entityId) : tag.entityId != null) {
- return false;
- }
+public interface Tag {
- return true;
- }
+ String getKeyword();
+ void setKeyword(String keyword);
+ List<WidgetTag> getWidgets();
+ void setWidgets(List<WidgetTag> widgets);
- @Override
- public int hashCode() {
- return entityId != null ? entityId.hashCode() : 0;
- }
}
Added: rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/TagImpl.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/TagImpl.java?rev=1348814&view=auto
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/TagImpl.java (added)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/TagImpl.java Mon Jun 11 12:22:10 2012
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2011 The Apache Software Foundation.
+ *
+ * Licensed 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;
+
+import java.util.List;
+
+public class TagImpl implements Tag {
+
+ private String keyword;
+ private List<WidgetTag> widgets;
+
+ public TagImpl(String keyword, List<WidgetTag> widgets) {
+ this.keyword = keyword;
+ this.widgets = widgets;
+ }
+
+ public TagImpl(String keyword) {
+ this.keyword = keyword;
+ }
+
+ public TagImpl() {
+ }
+
+ @Override
+ public String getKeyword() {
+ return this.keyword;
+ }
+
+ @Override
+ public void setKeyword(String keyword) {
+ this.keyword = keyword;
+ }
+
+ @Override
+ public List<WidgetTag> getWidgets() {
+ return this.widgets;
+ }
+
+ @Override
+ public void setWidgets(List<WidgetTag> widgets) {
+ this.widgets = widgets;
+ }
+}
Modified: rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/WidgetTag.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/WidgetTag.java?rev=1348814&r1=1348813&r2=1348814&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/WidgetTag.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/WidgetTag.java Mon Jun 11 12:22:10 2012
@@ -13,138 +13,19 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.rave.portal.model;
-import org.apache.rave.persistence.BasicEntity;
+package org.apache.rave.portal.model;
-import javax.persistence.*;
-import javax.xml.bind.annotation.XmlRootElement;
-import java.io.Serializable;
import java.util.Date;
-/**
- * A tag for a widget.
- */
-@Entity
-@Access(AccessType.FIELD)
-@Table(name = "widget_tag")
-@XmlRootElement
-@NamedQueries({
- @NamedQuery(name = WidgetTag.FIND_BY_WIDGET_AND_KEYWORD, query = "select t from WidgetTag t where t.widgetId=:widgetId and UPPER(t.tag.keyword) = UPPER(:keyword)")
-})
-
-public class WidgetTag implements BasicEntity, Serializable {
-
- public static final String FIND_BY_WIDGET_AND_KEYWORD = "findByWidgetAndKeyword";
-
- @Id
- @Column(name = "entity_id")
- @GeneratedValue(strategy = GenerationType.TABLE, generator = "widgetTagIdGenerator")
- @TableGenerator(name = "widgetTagIdGenerator", table = "RAVE_PORTAL_SEQUENCES", pkColumnName = "SEQ_NAME",
- valueColumnName = "SEQ_COUNT", pkColumnValue = "widget_tag", allocationSize = 1, initialValue = 1)
- private Long entityId;
-
- @Basic
- @Column(name = "widget_id")
- private Long widgetId;
-
- @OneToOne(fetch = FetchType.EAGER)
- @JoinColumn(name = "user_id")
- private User user;
-
- @ManyToOne(fetch=FetchType.EAGER,cascade = CascadeType.ALL)
- @JoinColumn(name = "tag_id")
- private Tag tag;
-
- @Basic
- @Column(name = "created_date")
- @Temporal(javax.persistence.TemporalType.TIMESTAMP)
- private Date createdDate;
-
- public WidgetTag() {
-
- }
-
- public WidgetTag(Long entityId, Long widgetId, User user, Date created, Tag tag) {
- this.entityId = entityId;
- this.widgetId = widgetId;
- this.user = user;
- this.tag = tag;
- this.createdDate = created;
- }
-
- @Override
- public Long getEntityId() {
- return entityId;
- }
-
- @Override
- public void setEntityId(Long entityId) {
- this.entityId = entityId;
- }
-
- public Long getWidgetId() {
- return widgetId;
- }
-
- public void setWidgetId(Long widgetId) {
- this.widgetId = widgetId;
- }
-
- public User getUser() {
- return user;
- }
-
- public void setUser(User user) {
- this.user = user;
- }
-
-
-
- public Date getCreatedDate() {
- return createdDate;
- }
-
- public void setCreatedDate(Date created) {
- this.createdDate = created;
- }
-
- public Tag getTag() {
- return tag;
- }
-
- public void setTag(Tag tag) {
- this.tag = tag;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
- final WidgetTag other = (WidgetTag) obj;
- if (this.entityId != other.entityId && (this.entityId == null || !this.entityId.equals(other.entityId))) {
- return false;
- }
- return true;
- }
-
- @Override
- public int hashCode() {
- int hash = 7;
- hash = 79 * hash + (this.entityId != null ? this.entityId.hashCode() : 0);
- return hash;
- }
-
- @Override
- public String toString() {
- StringBuilder sb=new StringBuilder("WidgetTag") ;
- sb.append("{").append("entityId=").append(entityId).append( ", widgetId=").append(widgetId);
- if (tag!=null) sb.append("tag keyword=").append(tag.getKeyword());
- sb.append("}") ;
- return sb.toString();
- }
+public interface WidgetTag {
+
+ Long getWidgetId();
+ void setWidgetId(Long id);
+ User getUser();
+ void setUser(User user);
+ Tag getTag();
+ void setTag(Tag tag);
+ Date getCreatedDate();
+ void setCreatedDate(Date date);
}
Added: rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/WidgetTagImpl.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/WidgetTagImpl.java?rev=1348814&view=auto
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/WidgetTagImpl.java (added)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/WidgetTagImpl.java Mon Jun 11 12:22:10 2012
@@ -0,0 +1,83 @@
+/*
+ * Copyright 2011 The Apache Software Foundation.
+ *
+ * Licensed 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;
+
+import java.util.Date;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: Aaron Gooch
+ * Date: 5/31/12
+ * Time: 9:36 AM
+ */
+public class WidgetTagImpl implements WidgetTag {
+
+ private Long widgetId;
+ private User user;
+ private Tag tag;
+ private Date createdDate;
+
+ public WidgetTagImpl() {
+ }
+
+ public WidgetTagImpl(Long widgetId, User user, Date createdDate, Tag tag) {
+ this.widgetId = widgetId;
+ this.user = user;
+ this.tag = tag;
+ this.createdDate = createdDate;
+ }
+
+ @Override
+ public Long getWidgetId() {
+ return this.widgetId;
+ }
+
+ @Override
+ public void setWidgetId(Long id) {
+ this.widgetId = id;
+ }
+
+ @Override
+ public User getUser() {
+ return this.user;
+ }
+
+ @Override
+ public void setUser(User user) {
+ this.user = user;
+ }
+
+ @Override
+ public Tag getTag() {
+ return this.tag;
+ }
+
+ @Override
+ public void setTag(Tag tag) {
+ this.tag = tag;
+ }
+
+ @Override
+ public Date getCreatedDate() {
+ return this.createdDate;
+ }
+
+ @Override
+ public void setCreatedDate(Date date) {
+ this.createdDate = date;
+ }
+}
Added: rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/conversion/JpaTagConverter.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/conversion/JpaTagConverter.java?rev=1348814&view=auto
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/conversion/JpaTagConverter.java (added)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/conversion/JpaTagConverter.java Mon Jun 11 12:22:10 2012
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2011 The Apache Software Foundation.
+ *
+ * Licensed 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.conversion;
+
+import org.apache.rave.model.ModelConverter;
+import org.apache.rave.persistence.jpa.util.JpaUtil;
+import org.apache.rave.portal.model.JpaTag;
+import org.apache.rave.portal.model.Tag;
+import org.springframework.stereotype.Component;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.TypedQuery;
+
+/**
+ * Converts from a {@link org.apache.rave.portal.model.Tag} to a {@link org.apache.rave.portal.model.JpaTag}
+ */
+@Component
+public class JpaTagConverter implements ModelConverter<Tag, JpaTag> {
+
+ @PersistenceContext
+ private EntityManager manager;
+
+ @Override
+ public Class<Tag> getSourceType() {
+ return Tag.class;
+ }
+
+ @Override
+ public JpaTag convert(Tag source) {
+ return source instanceof JpaTag ? (JpaTag)source : createEntity(source);
+ }
+
+ private JpaTag createEntity(Tag source) {
+ JpaTag convertedTag;
+ TypedQuery<JpaTag> query = manager.createNamedQuery(JpaTag.FIND_BY_KEYWORD, JpaTag.class);
+ query.setParameter(JpaTag.KEYWORD_PARAM, source.getKeyword());
+ convertedTag = JpaUtil.getSingleResult(query.getResultList());
+
+ if (convertedTag == null){
+ convertedTag = new JpaTag();
+ }
+ updateProperties(source, convertedTag);
+ return convertedTag;
+ }
+
+ private void updateProperties(Tag source, JpaTag jpaTag) {
+ jpaTag.setKeyword(source.getKeyword());
+ jpaTag.setWidgets(source.getWidgets());
+ }
+
+
+}
Added: rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/conversion/JpaWidgetTagConverter.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/conversion/JpaWidgetTagConverter.java?rev=1348814&view=auto
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/conversion/JpaWidgetTagConverter.java (added)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/conversion/JpaWidgetTagConverter.java Mon Jun 11 12:22:10 2012
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2011 The Apache Software Foundation.
+ *
+ * Licensed 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.conversion;
+
+import org.apache.rave.model.ModelConverter;
+import org.apache.rave.persistence.jpa.util.JpaUtil;
+import org.apache.rave.portal.model.JpaWidgetTag;
+import org.apache.rave.portal.model.WidgetTag;
+import org.springframework.stereotype.Component;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.TypedQuery;
+
+/**
+ * Converts from a {@link org.apache.rave.portal.model.WidgetTag} to a {@link org.apache.rave.portal.model.JpaWidgetTag}
+ */
+@Component
+public class JpaWidgetTagConverter implements ModelConverter<WidgetTag, JpaWidgetTag> {
+
+ @PersistenceContext
+ private EntityManager manager;
+
+ @Override
+ public Class<WidgetTag> getSourceType() {
+ return WidgetTag.class;
+ }
+
+ @Override
+ public JpaWidgetTag convert(WidgetTag source) {
+ return source instanceof JpaWidgetTag ? (JpaWidgetTag)source : createEntity(source);
+ }
+
+ private JpaWidgetTag createEntity(WidgetTag source) {
+ JpaWidgetTag convertedWidgetTag;
+ TypedQuery<JpaWidgetTag> query = manager.createNamedQuery(JpaWidgetTag.FIND_BY_WIDGET_AND_KEYWORD, JpaWidgetTag.class);
+ query.setParameter(JpaWidgetTag.WIDGET_ID_PARAM, source.getWidgetId());
+ query.setParameter(JpaWidgetTag.TAG_KEYWORD_PARAM, source.getTag().getKeyword());
+ convertedWidgetTag = JpaUtil.getSingleResult(query.getResultList());
+
+ if (convertedWidgetTag == null){
+ convertedWidgetTag = new JpaWidgetTag();
+ }
+ updateProperties(source, convertedWidgetTag);
+ return convertedWidgetTag;
+ }
+
+ private void updateProperties(WidgetTag source, JpaWidgetTag convertedWidgetTag) {
+ convertedWidgetTag.setCreatedDate(source.getCreatedDate());
+ convertedWidgetTag.setTag(source.getTag());
+ convertedWidgetTag.setUser(source.getUser());
+ convertedWidgetTag.setWidgetId(source.getWidgetId());
+ }
+}
Modified: rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/TagRepository.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/TagRepository.java?rev=1348814&r1=1348813&r2=1348814&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/TagRepository.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/TagRepository.java Mon Jun 11 12:22:10 2012
@@ -25,11 +25,11 @@ import org.apache.rave.portal.model.Tag;
import java.util.List;
/**
- * Repository interface for {@link org.apache.rave.portal.model.Tag}
+ * Repository interface for {@link org.apache.rave.portal.model.JpaTag}
*/
public interface TagRepository extends Repository<Tag> {
/**
- * @return a List of all {@link Tag}'s.
+ * @return a List of all {@link org.apache.rave.portal.model.JpaTag}'s.
*/
List<Tag> getAll();
@@ -47,7 +47,7 @@ public interface TagRepository extends R
Tag getByKeyword(String keyword);
/**
- * @return a List of all tag not link to this widget{@link Tag}'s.
+ * @return a List of all tag not link to this widget{@link org.apache.rave.portal.model.JpaTag}'s.
*/
List<Tag> getAvailableTagsByWidgetId(Long widgetId);
Modified: rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/WidgetTagRepository.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/WidgetTagRepository.java?rev=1348814&r1=1348813&r2=1348814&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/WidgetTagRepository.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/WidgetTagRepository.java Mon Jun 11 12:22:10 2012
@@ -24,11 +24,11 @@ import org.apache.rave.portal.model.Widg
public interface WidgetTagRepository extends Repository<WidgetTag> {
/**
- * Tries to find a {@link WidgetTag} by the id's of a Widget and Tag keyword
+ * Tries to find a {@link org.apache.rave.portal.model.WidgetTag} by the id's of a Widget and Tag keyword
*
* @param widgetId unique identifier of a Widget
* @param keyword tag's keyword
- * @return {@link WidgetTag} if it exists, otherwise {@literal null}
+ * @return {@link org.apache.rave.portal.model.WidgetTag} if it exists, otherwise {@literal null}
*/
WidgetTag getByWidgetIdAndTag(Long widgetId, String keyword);
}
Modified: rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaTagRepository.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaTagRepository.java?rev=1348814&r1=1348813&r2=1348814&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaTagRepository.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaTagRepository.java Mon Jun 11 12:22:10 2012
@@ -19,58 +19,84 @@
package org.apache.rave.portal.repository.impl;
-import org.apache.rave.persistence.jpa.AbstractJpaRepository;
+import org.apache.rave.portal.model.JpaTag;
import org.apache.rave.portal.model.Tag;
+import org.apache.rave.portal.model.conversion.JpaTagConverter;
import org.apache.rave.portal.repository.TagRepository;
+import org.apache.rave.util.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import javax.persistence.TypedQuery;
import java.util.List;
import static org.apache.rave.persistence.jpa.util.JpaUtil.getSingleResult;
+import static org.apache.rave.persistence.jpa.util.JpaUtil.saveOrUpdate;
/**
* JPA implementation for {@link org.apache.rave.portal.repository.AuthorityRepository}
*/
@Repository
-public class JpaTagRepository extends AbstractJpaRepository<Tag>
- implements TagRepository {
+public class JpaTagRepository implements TagRepository {
- public JpaTagRepository() {
- super(Tag.class);
- }
+ @PersistenceContext
+ private EntityManager manager;
+
+ @Autowired
+ private JpaTagConverter converter;
@Override
public List<Tag> getAll() {
- TypedQuery<Tag> query = manager.createNamedQuery(Tag.GET_ALL, Tag.class);
- return query.getResultList();
+ TypedQuery<JpaTag> query = manager.createNamedQuery(JpaTag.GET_ALL, JpaTag.class);
+ return CollectionUtils.<Tag>toBaseTypedList(query.getResultList());
}
+ @Override
+ public Class<? extends Tag> getType(){
+ return JpaTag.class;
+ }
@Override
public int getCountAll() {
- Query query = manager.createNamedQuery(Tag.COUNT_ALL);
+ Query query = manager.createNamedQuery(JpaTag.COUNT_ALL);
Number countResult = (Number) query.getSingleResult();
return countResult.intValue();
}
@Override
- public Tag getByKeyword(String keyword) {
+ public JpaTag getByKeyword(String keyword) {
if (keyword != null) {
keyword = keyword.trim();
}
- TypedQuery<Tag> query = manager.createNamedQuery(Tag.FIND_BY_KEYWORD, Tag.class);
+ TypedQuery<JpaTag> query = manager.createNamedQuery(JpaTag.FIND_BY_KEYWORD, JpaTag.class);
query.setParameter("keyword", keyword);
return getSingleResult(query.getResultList());
}
@Override
public List<Tag> getAvailableTagsByWidgetId(Long widgetId) {
- TypedQuery<Tag> query = manager.createNamedQuery(Tag.GET_ALL_NOT_IN_WIDGET, Tag.class);
+ TypedQuery<JpaTag> query = manager.createNamedQuery(JpaTag.GET_ALL_NOT_IN_WIDGET, JpaTag.class);
query.setParameter("widgetId", widgetId);
- return query.getResultList();
+ return CollectionUtils.<Tag>toBaseTypedList(query.getResultList());
+ }
+
+ @Override
+ public Tag get(long id) {
+ return manager.find(JpaTag.class, id);
}
+ @Override
+ public Tag save(Tag item) {
+ JpaTag tag = converter.convert(item);
+ return saveOrUpdate(tag.getEntityId(), manager, tag);
+ }
+
+ @Override
+ public void delete(Tag item) {
+ manager.remove(item instanceof JpaTag ? item : getByKeyword(item.getKeyword()));
+ }
}
Modified: rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaWidgetTagRepository.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaWidgetTagRepository.java?rev=1348814&r1=1348813&r2=1348814&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaWidgetTagRepository.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaWidgetTagRepository.java Mon Jun 11 12:22:10 2012
@@ -15,32 +15,58 @@
*/
package org.apache.rave.portal.repository.impl;
-import org.apache.rave.persistence.jpa.AbstractJpaRepository;
+import org.apache.rave.portal.model.JpaWidgetTag;
import org.apache.rave.portal.model.WidgetTag;
+import org.apache.rave.portal.model.conversion.JpaWidgetTagConverter;
import org.apache.rave.portal.repository.WidgetTagRepository;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
import javax.persistence.TypedQuery;
import static org.apache.rave.persistence.jpa.util.JpaUtil.getSingleResult;
+import static org.apache.rave.persistence.jpa.util.JpaUtil.saveOrUpdate;
@Repository
-public class JpaWidgetTagRepository extends AbstractJpaRepository<WidgetTag> implements WidgetTagRepository {
+public class JpaWidgetTagRepository implements WidgetTagRepository {
- JpaWidgetTagRepository() {
- super(WidgetTag.class);
- }
+ @PersistenceContext
+ EntityManager manager;
+
+ @Autowired
+ JpaWidgetTagConverter converter;
@Override
- public WidgetTag getByWidgetIdAndTag(Long widgetId, String keyword) {
+ public JpaWidgetTag getByWidgetIdAndTag(Long widgetId, String keyword) {
if (keyword != null) {
keyword = keyword.trim();
}
- TypedQuery<WidgetTag> query = manager.createNamedQuery(WidgetTag.FIND_BY_WIDGET_AND_KEYWORD, WidgetTag.class);
+ TypedQuery<JpaWidgetTag> query = manager.createNamedQuery(JpaWidgetTag.FIND_BY_WIDGET_AND_KEYWORD, JpaWidgetTag.class);
query.setParameter("keyword", keyword);
query.setParameter("widgetId", widgetId);
return getSingleResult(query.getResultList());
}
+ @Override
+ public Class<? extends WidgetTag> getType() {
+ return JpaWidgetTag.class;
+ }
+
+ @Override
+ public WidgetTag get(long id) {
+ return manager.find(JpaWidgetTag.class, id);
+ }
+ @Override
+ public WidgetTag save(WidgetTag item) {
+ JpaWidgetTag widgetTag = converter.convert(item);
+ return saveOrUpdate(widgetTag.getEntityId(), manager, widgetTag);
+ }
+
+ @Override
+ public void delete(WidgetTag item) {
+ manager.remove(item instanceof JpaWidgetTag ? item: getByWidgetIdAndTag(item.getWidgetId(), item.getTag().getKeyword()));
+ }
}
Modified: rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultWidgetTagPermissionEvaluator.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultWidgetTagPermissionEvaluator.java?rev=1348814&r1=1348813&r2=1348814&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultWidgetTagPermissionEvaluator.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultWidgetTagPermissionEvaluator.java Mon Jun 11 12:22:10 2012
@@ -170,7 +170,7 @@ public class DefaultWidgetTagPermissionE
if (trustedDomainObject) {
trustedWidgetTag = widgetTag;
} else {
- trustedWidgetTag = getTrustedWidgetTag(widgetTag.getEntityId(), trustedWidgetTagContainer);
+ trustedWidgetTag = getTrustedWidgetTag(widgetTag.getWidgetId(), widgetTag.getTag().getKeyword(), trustedWidgetTagContainer);
}
return isWidgetTagOwnerByUsername(authentication, trustedWidgetTag.getUser().getUsername());
@@ -178,10 +178,10 @@ public class DefaultWidgetTagPermissionE
// returns a trusted WidgetTag object, either from the WidgetTagRepository, or the
// cached container list
- private WidgetTag getTrustedWidgetTag(long widgetTagId, List<WidgetTag> trustedWidgetTagContainer) {
+ private WidgetTag getTrustedWidgetTag(long widgetId, String tagKeyword, List<WidgetTag> trustedWidgetTagContainer) {
WidgetTag p = null;
if (trustedWidgetTagContainer.isEmpty()) {
- p = widgetTagRepository.get(widgetTagId);
+ p = widgetTagRepository.getByWidgetIdAndTag(widgetId, tagKeyword);
trustedWidgetTagContainer.add(p);
} else {
p = trustedWidgetTagContainer.get(0);
Modified: rave/branches/model_interfaces/rave-components/rave-core/src/main/resources/META-INF/persistence.xml
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/main/resources/META-INF/persistence.xml?rev=1348814&r1=1348813&r2=1348814&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/main/resources/META-INF/persistence.xml (original)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/main/resources/META-INF/persistence.xml Mon Jun 11 12:22:10 2012
@@ -33,8 +33,8 @@
<class>org.apache.rave.portal.model.JpaWidgetRating</class>
<class>org.apache.rave.portal.model.JpaPageLayout</class>
<class>org.apache.rave.portal.model.JpaAuthority</class>
- <class>org.apache.rave.portal.model.Tag</class>
- <class>org.apache.rave.portal.model.WidgetTag</class>
+ <class>org.apache.rave.portal.model.JpaTag</class>
+ <class>org.apache.rave.portal.model.JpaWidgetTag</class>
<class>org.apache.rave.portal.model.JpaPortalPreference</class>
<class>org.apache.rave.portal.model.JpaPageTemplate</class>
<class>org.apache.rave.portal.model.JpaPageTemplateRegion</class>
Modified: rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/model/TagTest.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/model/TagTest.java?rev=1348814&r1=1348813&r2=1348814&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/model/TagTest.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/model/TagTest.java Mon Jun 11 12:22:10 2012
@@ -30,7 +30,7 @@ public class TagTest {
@Test
public void testAuthority() throws Exception {
- Tag tag = new Tag();
+ Tag tag = new JpaTag();
tag.setKeyword("test");
assertEquals("test", tag.getKeyword());
Modified: rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/model/WidgetTagTest.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/model/WidgetTagTest.java?rev=1348814&r1=1348813&r2=1348814&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/model/WidgetTagTest.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/model/WidgetTagTest.java Mon Jun 11 12:22:10 2012
@@ -27,7 +27,7 @@ import static org.junit.Assert.*;
*/
public class WidgetTagTest {
- private WidgetTag widgetTag;
+ private JpaWidgetTag widgetTag;
private static final Long VALID_ENTITY_ID = 1L;
private static final Long VALID_USER_ID = 1L;
@@ -36,12 +36,12 @@ public class WidgetTagTest {
@Before
public void setUp() {
- widgetTag = new WidgetTag();
+ widgetTag = new JpaWidgetTag();
widgetTag.setEntityId(VALID_ENTITY_ID);
widgetTag.setWidgetId(VALID_WIDGET_ID);
widgetTag.setUser(new User(1L, "John.Doe"));
widgetTag.setCreatedDate(VALID_CREATED_DATE);
- widgetTag.setTag(new Tag(1L, "test"));
+ widgetTag.setTag(new JpaTag(1L, "test"));
}
@Test
Modified: rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/model/WidgetTest.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/model/WidgetTest.java?rev=1348814&r1=1348813&r2=1348814&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/model/WidgetTest.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/model/WidgetTest.java Mon Jun 11 12:22:10 2012
@@ -28,7 +28,6 @@ import java.util.Date;
import java.util.List;
import static junit.framework.Assert.assertEquals;
-import static junit.framework.Assert.assertTrue;
/**
* Test for {@link JpaWidget}
@@ -62,15 +61,15 @@ public class WidgetTest {
status = WidgetStatus.PREVIEW;
widgetComments = new ArrayList<WidgetComment>();
- Tag tag=new Tag(1L, "test") ;
- Tag tag1=new Tag(2L, "test1") ;
+ JpaTag tag=new JpaTag(1L, "test") ;
+ JpaTag tag1=new JpaTag(2L, "test1") ;
ratings = new ArrayList<WidgetRating>();
ratings.add(new JpaWidgetRating(1L, 1L, 1L, 1));
tags = new ArrayList<WidgetTag>();
- tags.add(new WidgetTag(1L, 1L, new User(), new Date(), tag)) ;
- tags.add(new WidgetTag(2L,1L, new User(), new Date(), tag1)) ;
+ tags.add(new JpaWidgetTag(1L, 1L, new User(), new Date(), tag)) ;
+ tags.add(new JpaWidgetTag(2L,1L, new User(), new Date(), tag1)) ;
widget.setEntityId(id);
widget.setTitle(title);
Added: rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/model/conversion/JpaTagConverterTest.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/model/conversion/JpaTagConverterTest.java?rev=1348814&view=auto
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/model/conversion/JpaTagConverterTest.java (added)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/model/conversion/JpaTagConverterTest.java Mon Jun 11 12:22:10 2012
@@ -0,0 +1,46 @@
+package org.apache.rave.portal.model.conversion;
+
+import org.apache.rave.portal.model.JpaTag;
+import org.apache.rave.portal.model.TagImpl;
+import org.apache.rave.portal.model.WidgetTag;
+import org.junit.Test;
+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 java.util.ArrayList;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertSame;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations = {"classpath:test-dataContext.xml", "classpath:test-applicationContext.xml"})
+public class JpaTagConverterTest {
+
+ @Autowired
+ JpaTagConverter jpaTagConverter;
+
+ @Test
+ public void convert_valid_tagImpl(){
+ TagImpl tag = new TagImpl("blazer", new ArrayList<WidgetTag>());
+ JpaTag jpaTag = jpaTagConverter.convert(tag);
+ assertNotNull(jpaTag);
+ assertEquals(tag.getKeyword(), jpaTag.getKeyword());
+ assertEquals(tag.getWidgets().size(), jpaTag.getWidgets().size());
+ }
+
+
+ @Test
+ public void convert_valid_jpaTag(){
+ JpaTag tag = new JpaTag();
+ tag.setKeyword("blazer");
+ tag.setWidgets(new ArrayList<WidgetTag>());
+ tag.setEntityId(387L);
+ JpaTag jpaTag = jpaTagConverter.convert(tag);
+ assertNotNull(jpaTag);
+ assertSame(tag, jpaTag);
+ }
+
+}
Added: rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/model/conversion/JpaWidgetTagConverterTest.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/model/conversion/JpaWidgetTagConverterTest.java?rev=1348814&view=auto
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/model/conversion/JpaWidgetTagConverterTest.java (added)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/model/conversion/JpaWidgetTagConverterTest.java Mon Jun 11 12:22:10 2012
@@ -0,0 +1,49 @@
+package org.apache.rave.portal.model.conversion;
+
+import org.apache.rave.portal.model.*;
+import org.junit.Test;
+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 java.util.Date;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertSame;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations = {"classpath:test-dataContext.xml", "classpath:test-applicationContext.xml"})
+public class JpaWidgetTagConverterTest {
+
+ @Autowired
+ JpaWidgetTagConverter jpaWidgetTagConverter;
+
+ @Test
+ public void convert_valid_widgetTaq(){
+ WidgetTag widgetTag = new WidgetTagImpl();
+ widgetTag.setCreatedDate(new Date());
+ widgetTag.setUser(new User());
+ widgetTag.setWidgetId(3L);
+ widgetTag.setTag(new JpaTag(1L, "news"));
+ JpaWidgetTag jpaWidgetTag = jpaWidgetTagConverter.convert(widgetTag);
+ assertNotNull(jpaWidgetTag);
+ assertEquals(widgetTag.getCreatedDate(), jpaWidgetTag.getCreatedDate());
+ assertSame(widgetTag.getTag(), jpaWidgetTag.getTag());
+ assertSame(widgetTag.getUser(), jpaWidgetTag.getUser());
+ assertEquals(widgetTag.getWidgetId(), jpaWidgetTag.getWidgetId());
+ }
+
+ @Test
+ public void convert_valid_jpaWidgetTaq(){
+ JpaWidgetTag widgetTag = new JpaWidgetTag();
+ widgetTag.setCreatedDate(new Date());
+ widgetTag.setUser(new User());
+ widgetTag.setWidgetId(3L);
+ widgetTag.setTag(new JpaTag(1L, "news"));
+ JpaWidgetTag jpaWidgetTag = jpaWidgetTagConverter.convert(widgetTag);
+ assertNotNull(jpaWidgetTag);
+ assertSame(widgetTag, jpaWidgetTag);
+ }
+}
Modified: rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaTagRepositoryTest.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaTagRepositoryTest.java?rev=1348814&r1=1348813&r2=1348814&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaTagRepositoryTest.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaTagRepositoryTest.java Mon Jun 11 12:22:10 2012
@@ -19,17 +19,22 @@
package org.apache.rave.portal.repository.impl;
+import org.apache.rave.portal.model.JpaTag;
import org.apache.rave.portal.model.Tag;
+import org.apache.rave.portal.model.TagImpl;
+import org.apache.rave.portal.model.WidgetTag;
import org.apache.rave.portal.repository.TagRepository;
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.util.ArrayList;
import java.util.List;
import static org.junit.Assert.*;
@@ -55,7 +60,7 @@ public class JpaTagRepositoryTest {
public void getById_validId() {
final Tag tag = repository.get(VALID_ID);
assertNotNull(tag);
- assertEquals(VALID_ID, tag.getEntityId());
+ assertEquals(VALID_ID, ((JpaTag)tag).getEntityId());
assertEquals(tag.getKeyword(), "news");
}
@@ -77,18 +82,76 @@ public class JpaTagRepositoryTest {
public void getByKeyword() {
Tag tag = repository.getByKeyword("news");
assertNotNull(tag);
- assertTrue(tag.getEntityId() == 1);
+ assertTrue(((JpaTag)tag).getEntityId() == 1);
tag = repository.getByKeyword("NEWS");
assertNotNull(tag);
- assertTrue(tag.getEntityId() == 1);
+ assertTrue(((JpaTag)tag).getEntityId() == 1);
tag = repository.getByKeyword("news ");
assertNotNull(tag);
- assertTrue(tag.getEntityId() == 1);
+ assertTrue(((JpaTag)tag).getEntityId() == 1);
tag = repository.getByKeyword(" news ");
assertNotNull(tag);
- assertTrue(tag.getEntityId() == 1);
+ assertTrue(((JpaTag)tag).getEntityId() == 1);
+ }
+
+ @Test
+ @Transactional
+ @Rollback(true)
+ public void save_valid(){
+ Tag tag = new JpaTag();
+ String ordnance = "ordnance";
+ tag.setKeyword(ordnance);
+ tag.setWidgets(new ArrayList<WidgetTag>());
+ repository.save(tag);
+ Tag foundTag = repository.getByKeyword(ordnance);
+ assertNotNull(foundTag);
+ assertEquals(tag.getKeyword(), foundTag.getKeyword());
+ assertEquals(tag.getWidgets().size(), foundTag.getWidgets().size());
+ }
+
+ @Test(expected = NullPointerException.class)
+ @Transactional
+ @Rollback(true)
+ public void save_null(){
+ Tag tag = null;
+ tag = repository.save(tag);
+ assertNull(tag);
+ }
+
+ @Test
+ @Transactional
+ @Rollback(true)
+ public void delete_valid_jpaTag(){
+ String keyword = "news";
+ JpaTag jpaTag = (JpaTag)repository.getByKeyword(keyword);
+ assertNotNull(jpaTag);
+ repository.delete(jpaTag);
+ assertNull(repository.getByKeyword(keyword));
+ }
+ @Test
+ @Transactional
+ @Rollback(true)
+ public void delete_valid_tagImpl(){
+ String keyword = "news";
+ // make sure we do have a tag with the keyword in the db
+ JpaTag control = (JpaTag)repository.getByKeyword(keyword);
+ assertNotNull(control);
+ // create a tag with the keyword not of JpaTag.class for branch coverage
+ TagImpl tag = new TagImpl(keyword);
+ assertNotNull(tag);
+ repository.delete(tag);
+ assertNull(repository.getByKeyword(keyword));
}
+ @Test
+ @Transactional
+ @Rollback(true)
+ public void delete_invalid(){
+ String keyword = "abdhjdhlnews";
+ TagImpl tag = new TagImpl(keyword);
+ assertNotNull(tag);
+ repository.delete(tag);
+ }
}
Modified: rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaWidgetTagRepositoryTest.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaWidgetTagRepositoryTest.java?rev=1348814&r1=1348813&r2=1348814&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaWidgetTagRepositoryTest.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaWidgetTagRepositoryTest.java Mon Jun 11 12:22:10 2012
@@ -19,11 +19,15 @@
package org.apache.rave.portal.repository.impl;
+import org.apache.rave.portal.model.JpaTag;
+import org.apache.rave.portal.model.JpaWidgetTag;
+import org.apache.rave.portal.model.User;
import org.apache.rave.portal.model.WidgetTag;
import org.apache.rave.portal.repository.WidgetTagRepository;
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;
@@ -31,9 +35,9 @@ import org.springframework.transaction.a
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
+import java.util.Date;
+
+import static org.junit.Assert.*;
/**
*
@@ -50,9 +54,106 @@ public class JpaWidgetTagRepositoryTest
private WidgetTagRepository repository;
@Test
+ public void getByWidgetIdAndTag_valid(){
+ Long widgetId = 3L;
+ String keyword = "news";
+ JpaWidgetTag jpaWidgetTag = (JpaWidgetTag)repository.getByWidgetIdAndTag(widgetId, keyword);
+ assertNotNull(jpaWidgetTag);
+ assertEquals(widgetId, jpaWidgetTag.getWidgetId());
+ assertEquals(keyword, jpaWidgetTag.getTag().getKeyword());
+ }
+
+ @Test
+ public void getByWidgetIdAndTag_keyword_trim_valid(){
+ Long widgetId = 3L;
+ String keyword = " news ";
+ JpaWidgetTag jpaWidgetTag = (JpaWidgetTag)repository.getByWidgetIdAndTag(widgetId, keyword);
+ assertNotNull(jpaWidgetTag);
+ assertEquals(widgetId, jpaWidgetTag.getWidgetId());
+ assertEquals(keyword.trim(), jpaWidgetTag.getTag().getKeyword());
+ }
+
+ @Test
+ public void getByWidgetIdAndTag_invalid(){
+ Long widgetId = 3L;
+ String keyword = "saturday";
+ JpaWidgetTag jpaWidgetTag = (JpaWidgetTag)repository.getByWidgetIdAndTag(widgetId, keyword);
+ assertNull(jpaWidgetTag);
+ }
+
+ @Test
+ public void get_valid(){
+ Long id = 1L;
+ JpaWidgetTag widgetTag = (JpaWidgetTag)repository.get(id);
+ assertNotNull(widgetTag);
+ assertEquals(id, widgetTag.getEntityId());
+ }
+
+ @Test
+ public void get_invalid(){
+ Long id = 1000291L;
+ JpaWidgetTag jpaWidgetTag = (JpaWidgetTag)repository.get(id);
+ assertNull(jpaWidgetTag);
+ }
+
+ @Test
+ @Transactional
+ @Rollback(true)
public void save() {
+ WidgetTag widgetTag = new JpaWidgetTag();
+ JpaTag tag = new JpaTag(100L, "boing");
+ widgetTag.setTag(tag);
+ widgetTag.setWidgetId(2L);
+ widgetTag.setCreatedDate(new Date());
+ widgetTag.setUser(new User());
+ JpaWidgetTag jpaWidgetTag = (JpaWidgetTag)repository.save(widgetTag);
+ assertNotNull(jpaWidgetTag);
+ assertEquals(widgetTag.getTag().getKeyword(), jpaWidgetTag.getTag().getKeyword());
+ assertEquals(widgetTag.getWidgetId(), jpaWidgetTag.getWidgetId());
+ assertEquals(widgetTag.getUser(), jpaWidgetTag.getUser());
+ assertEquals(widgetTag.getCreatedDate(), jpaWidgetTag.getCreatedDate());
+ assertEquals(JpaWidgetTag.class, jpaWidgetTag.getClass());
+ }
+ @Test(expected = NullPointerException.class)
+ @Transactional
+ @Rollback(true)
+ public void save_null() {
+ WidgetTag widgetTag = null;
+ JpaWidgetTag jpaWidgetTag = (JpaWidgetTag)repository.save(widgetTag);
+ assertNull(jpaWidgetTag);
+ }
+
+ @Test
+ @Transactional
+ @Rollback(true)
+ public void delete_valid(){
+ Long id = 1L;
+ WidgetTag widgetTag = repository.get(id);
+ assertNotNull(widgetTag);
+ repository.delete(widgetTag);
+ assertNull(repository.get(id));
+ }
+ @Test
+ @Transactional
+ @Rollback(true)
+ public void delete_jpaWidgetTag_valid(){
+ Long id = 1L;
+ JpaWidgetTag jpaWidgetTag = (JpaWidgetTag)repository.get(id);
+ assertNotNull(jpaWidgetTag);
+ repository.delete(jpaWidgetTag);
+ assertNull(repository.get(id));
}
+ @Test(expected = NullPointerException.class)
+ @Transactional
+ @Rollback(true)
+ public void delete_invalid(){
+ Long id = 17827873261L;
+ WidgetTag widgetTag = repository.get(id);
+ assertNull(widgetTag);
+ repository.delete(widgetTag);
+ assertNull(repository.get(id));
+ }
}
Modified: rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultTagServiceTest.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultTagServiceTest.java?rev=1348814&r1=1348813&r2=1348814&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultTagServiceTest.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultTagServiceTest.java Mon Jun 11 12:22:10 2012
@@ -20,6 +20,7 @@
package org.apache.rave.portal.service.impl;
import org.apache.rave.portal.model.Tag;
+import org.apache.rave.portal.model.TagImpl;
import org.apache.rave.portal.repository.TagRepository;
import org.apache.rave.portal.service.TagService;
import org.junit.Before;
@@ -47,7 +48,7 @@ public class DefaultTagServiceTest {
@Test
public void getTagById() {
- Tag tag = createTag(1L, "test");
+ Tag tag = createTag("test");
expect(repository.get(1L)).andReturn(tag);
replay(repository);
Tag sTag = service.getTagById(1L);
@@ -56,10 +57,9 @@ public class DefaultTagServiceTest {
}
- private static Tag createTag(long id, String keyword) {
- Tag tag = new Tag();
+ private static Tag createTag(String keyword) {
+ TagImpl tag = new TagImpl();
tag.setKeyword(keyword);
- tag.setEntityId(id);
return tag;
}
@@ -77,7 +77,7 @@ public class DefaultTagServiceTest {
@Test
public void allTags() {
List<Tag> tags = new ArrayList<Tag>();
- Tag tag = createTag(1L, "test");
+ Tag tag = createTag("test");
tags.add(tag);
expect(repository.getAll()).andReturn(tags);
replay(repository);
@@ -88,7 +88,7 @@ public class DefaultTagServiceTest {
@Test
public void getByKeyword() {
- Tag tag = createTag(1L, "test");
+ Tag tag = createTag("test");
expect(repository.getByKeyword("test")).andReturn(tag);
expect(repository.getByKeyword("TEST")).andReturn(tag);
expect(repository.getByKeyword(" test")).andReturn(tag);
Modified: rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultWidgetTagServiceTest.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultWidgetTagServiceTest.java?rev=1348814&r1=1348813&r2=1348814&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultWidgetTagServiceTest.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultWidgetTagServiceTest.java Mon Jun 11 12:22:10 2012
@@ -15,8 +15,8 @@
*/
package org.apache.rave.portal.service.impl;
-import org.apache.rave.portal.model.Tag;
-import org.apache.rave.portal.model.WidgetTag;
+import org.apache.rave.portal.model.TagImpl;
+import org.apache.rave.portal.model.WidgetTagImpl;
import org.apache.rave.portal.repository.WidgetTagRepository;
import org.apache.rave.portal.service.WidgetTagService;
import org.junit.Before;
@@ -39,8 +39,7 @@ public class DefaultWidgetTagServiceTest
@Test
public void getWidgetTag() {
- WidgetTag tag = new WidgetTag();
- tag.setEntityId(1L);
+ WidgetTagImpl tag = new WidgetTagImpl();
expect(widgetTagRepository.get(1L)).andReturn(tag);
replay(widgetTagRepository);
@@ -52,9 +51,8 @@ public class DefaultWidgetTagServiceTest
public void saveWidgetTag() {
try {
- WidgetTag wtag = new WidgetTag();
- wtag.setEntityId(3L);
- Tag tag = new Tag(4L, "test");
+ WidgetTagImpl wtag = new WidgetTagImpl();
+ TagImpl tag = new TagImpl();
wtag.setTag(tag);
expect(widgetTagRepository.save(wtag)).andReturn(wtag);
replay(widgetTagRepository);
Modified: rave/branches/model_interfaces/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rest/WidgetApi.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rest/WidgetApi.java?rev=1348814&r1=1348813&r2=1348814&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rest/WidgetApi.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rest/WidgetApi.java Mon Jun 11 12:22:10 2012
@@ -157,7 +157,7 @@ public class WidgetApi extends AbstractR
if (tagText != null && !tagText.trim().isEmpty()) {
WidgetTag existed = widgetTagService.getWidgetTagByWidgetIdAndKeyword(widgetId, tagText);
if (existed == null) {
- WidgetTag widgetTag = new WidgetTag();
+ WidgetTag widgetTag = new WidgetTagImpl();
widgetTag.setWidgetId(widgetId);
widgetTag.setUser(userService.getAuthenticatedUser());
widgetTag.setCreatedDate(new Date());
@@ -187,7 +187,7 @@ public class WidgetApi extends AbstractR
private Tag getTag(String keyword) {
Tag tag = tagService.getTagByKeyword(keyword);
if (tag == null) {
- tag = new Tag();
+ tag = new TagImpl();
tag.setKeyword(keyword);
}
return tag;
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=1348814&r1=1348813&r2=1348814&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 Mon Jun 11 12:22:10 2012
@@ -32,10 +32,8 @@ import java.util.ArrayList;
import java.util.List;
import static org.easymock.EasyMock.*;
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.CoreMatchers.sameInstance;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertThat;
+import static org.hamcrest.CoreMatchers.*;
+import static org.junit.Assert.*;
public class WidgetApiTest {
private WidgetApi widgetApi;
@@ -64,8 +62,8 @@ public class WidgetApiTest {
user.setEntityId(VALID_USER_ID);
tagList = new ArrayList<Tag>();
- tagList.add(new Tag(1L, "tag1"));
- tagList.add(new Tag(2L, "tag2"));
+ tagList.add(new TagImpl("tag1"));
+ tagList.add(new TagImpl("tag2"));
response = createMock(MockHttpServletResponse.class);
widgetApi = new WidgetApi(widgetRatingService, widgetCommentService, userService, tagService, widgetTagService);
@@ -206,12 +204,12 @@ public class WidgetApiTest {
verify(userService);
}
-
+
@Test
public void getTags() {
expect(tagService.getAvailableTagsByWidgetId(VALID_WIDGET_ID)).andReturn(tagList);
replay(tagService);
-
+
assertThat(widgetApi.getTags(VALID_WIDGET_ID), is(tagList));
verify(tagService);
}
@@ -228,14 +226,16 @@ public class WidgetApiTest {
@Test
public void createWidgetTag_newTag() {
final String TAG_TEXT = "mytag";
- Tag tag = new Tag(1L, TAG_TEXT);
- WidgetTag widgetTag = new WidgetTag();
+ TagImpl tag = new TagImpl();
+ tag.setKeyword(TAG_TEXT);
+ WidgetTag widgetTag = new WidgetTagImpl();
widgetTag.setTag(tag);
-
+ widgetTag.setWidgetId(VALID_WIDGET_ID);
+
expect(widgetTagService.getWidgetTagByWidgetIdAndKeyword(VALID_WIDGET_ID, TAG_TEXT)).andReturn(null);
expect(userService.getAuthenticatedUser()).andReturn(user);
expect(tagService.getTagByKeyword(TAG_TEXT)).andReturn(null);
- widgetTagService.saveWidgetTag(widgetTag);
+ widgetTagService.saveWidgetTag(isA(WidgetTag.class));
expectLastCall();
replay(widgetTagService, userService, tagService);
widgetApi.createWidgetTag(VALID_WIDGET_ID, TAG_TEXT, response);
@@ -245,14 +245,15 @@ public class WidgetApiTest {
@Test
public void createWidgetTag_newTag_existsForOtherWidget() {
final String TAG_TEXT = "mytag";
- Tag tag = new Tag(1L, TAG_TEXT);
- WidgetTag widgetTag = new WidgetTag();
+ TagImpl tag = new TagImpl();
+ tag.setKeyword(TAG_TEXT);
+ WidgetTagImpl widgetTag = new WidgetTagImpl();
widgetTag.setTag(tag);
expect(widgetTagService.getWidgetTagByWidgetIdAndKeyword(VALID_WIDGET_ID, TAG_TEXT)).andReturn(null);
expect(userService.getAuthenticatedUser()).andReturn(user);
expect(tagService.getTagByKeyword(TAG_TEXT)).andReturn(tag);
- widgetTagService.saveWidgetTag(widgetTag);
+ widgetTagService.saveWidgetTag(isA(WidgetTag.class));
expectLastCall();
replay(widgetTagService, userService, tagService);
widgetApi.createWidgetTag(VALID_WIDGET_ID, TAG_TEXT, response);
@@ -262,8 +263,9 @@ public class WidgetApiTest {
@Test
public void createWidgetTag_nullText() {
final String TAG_TEXT = null;
- Tag tag = new Tag(1L, TAG_TEXT);
- WidgetTag widgetTag = new WidgetTag();
+ TagImpl tag = new TagImpl();
+ tag.setKeyword(TAG_TEXT);
+ WidgetTagImpl widgetTag = new WidgetTagImpl();
widgetTag.setTag(tag);
widgetApi.createWidgetTag(VALID_WIDGET_ID, TAG_TEXT, response);
@@ -272,8 +274,9 @@ public class WidgetApiTest {
@Test
public void createWidgetTag_emptyText() {
final String TAG_TEXT = " ";
- Tag tag = new Tag(1L, TAG_TEXT);
- WidgetTag widgetTag = new WidgetTag();
+ TagImpl tag = new TagImpl();
+ tag.setKeyword(TAG_TEXT);
+ WidgetTagImpl widgetTag = new WidgetTagImpl();
widgetTag.setTag(tag);
widgetApi.createWidgetTag(VALID_WIDGET_ID, TAG_TEXT, response);
@@ -282,9 +285,9 @@ public class WidgetApiTest {
@Test
public void createWidgetTag_existingTag() {
final String TAG_TEXT = "mytag";
- Tag tag = new Tag(1L, TAG_TEXT);
- WidgetTag widgetTag = new WidgetTag();
- widgetTag.setEntityId(9L);
+ TagImpl tag = new TagImpl();
+ tag.setKeyword(TAG_TEXT);
+ WidgetTagImpl widgetTag = new WidgetTagImpl();
widgetTag.setTag(tag);
expect(widgetTagService.getWidgetTagByWidgetIdAndKeyword(VALID_WIDGET_ID, TAG_TEXT)).andReturn(widgetTag);
Modified: rave/branches/model_interfaces/rave-components/rave-web/src/test/java/org/apache/rave/portal/web/controller/WidgetStoreControllerTest.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-web/src/test/java/org/apache/rave/portal/web/controller/WidgetStoreControllerTest.java?rev=1348814&r1=1348813&r2=1348814&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-web/src/test/java/org/apache/rave/portal/web/controller/WidgetStoreControllerTest.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-web/src/test/java/org/apache/rave/portal/web/controller/WidgetStoreControllerTest.java Mon Jun 11 12:22:10 2012
@@ -23,11 +23,7 @@ package org.apache.rave.portal.web.contr
import org.apache.rave.portal.model.*;
import org.apache.rave.portal.model.util.SearchResult;
import org.apache.rave.portal.model.util.WidgetStatistics;
-import org.apache.rave.portal.service.PortalPreferenceService;
-import org.apache.rave.portal.service.TagService;
-import org.apache.rave.portal.service.CategoryService;
-import org.apache.rave.portal.service.UserService;
-import org.apache.rave.portal.service.WidgetService;
+import org.apache.rave.portal.service.*;
import org.apache.rave.portal.web.util.ModelKeys;
import org.apache.rave.portal.web.util.PortalPreferenceKeys;
import org.apache.rave.portal.web.util.ViewNames;
@@ -45,18 +41,9 @@ import java.util.List;
import java.util.Map;
import static junit.framework.Assert.assertEquals;
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
-import static org.hamcrest.CoreMatchers.equalTo;
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.CoreMatchers.sameInstance;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.assertTrue;
+import static org.easymock.EasyMock.*;
+import static org.hamcrest.CoreMatchers.*;
+import static org.junit.Assert.*;
/**