Author: mfranklin
Date: Tue Oct 16 19:47:46 2012
New Revision: 1398956
URL: http://svn.apache.org/viewvc?rev=1398956&view=rev
Log:
Added missing repository annotations and added WidgetTagRepository
Added:
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetTagRepository.java
Modified:
rave/branches/mongo/rave-components/rave-mongodb/pom.xml
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbWidgetTag.java
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/HydratingConverterFactory.java
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageTemplateRepository.java
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbRegionWidgetRepository.java
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetCommentRepository.java
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRatingRepository.java
rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/persistence-applicationContext.xml
Modified: rave/branches/mongo/rave-components/rave-mongodb/pom.xml
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/pom.xml?rev=1398956&r1=1398955&r2=1398956&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-mongodb/pom.xml (original)
+++ rave/branches/mongo/rave-components/rave-mongodb/pom.xml Tue Oct 16
19:47:46 2012
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
+
<!--
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
Modified:
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbWidgetTag.java
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbWidgetTag.java?rev=1398956&r1=1398955&r2=1398956&view=diff
==============================================================================
---
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbWidgetTag.java
(original)
+++
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbWidgetTag.java
Tue Oct 16 19:47:46 2012
@@ -29,6 +29,7 @@ public class MongoDbWidgetTag extends Wi
private UserRepository userRepository;
private Long userId;
+ private Long id;
public Long getUserId() {
return userId;
Modified:
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/HydratingConverterFactory.java
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/HydratingConverterFactory.java?rev=1398956&r1=1398955&r2=1398956&view=diff
==============================================================================
---
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/HydratingConverterFactory.java
(original)
+++
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/HydratingConverterFactory.java
Tue Oct 16 19:47:46 2012
@@ -1,3 +1,22 @@
+/*
+ * 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.conversion;
import org.apache.rave.model.ModelConverter;
Modified:
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageTemplateRepository.java
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageTemplateRepository.java?rev=1398956&r1=1398955&r2=1398956&view=diff
==============================================================================
---
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageTemplateRepository.java
(original)
+++
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageTemplateRepository.java
Tue Oct 16 19:47:46 2012
@@ -28,6 +28,7 @@ import org.apache.rave.util.CollectionUt
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoOperations;
import org.springframework.data.mongodb.core.query.Query;
+import org.springframework.stereotype.Repository;
import java.util.List;
@@ -35,6 +36,7 @@ import static org.springframework.data.m
/**
*/
+@Repository
public class MongoDbPageTemplateRepository implements PageTemplateRepository {
public static final String COLLECTION = "pageTemplate";
Modified:
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbRegionWidgetRepository.java
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbRegionWidgetRepository.java?rev=1398956&r1=1398955&r2=1398956&view=diff
==============================================================================
---
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbRegionWidgetRepository.java
(original)
+++
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbRegionWidgetRepository.java
Tue Oct 16 19:47:46 2012
@@ -27,6 +27,7 @@ import org.apache.rave.portal.repository
import org.apache.rave.portal.repository.RegionWidgetRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.query.Query;
+import org.springframework.stereotype.Repository;
import java.util.List;
@@ -35,6 +36,7 @@ import static org.springframework.data.m
/**
*/
+@Repository
public class MongoDbRegionWidgetRepository implements RegionWidgetRepository {
@Autowired
Modified:
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetCommentRepository.java
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetCommentRepository.java?rev=1398956&r1=1398955&r2=1398956&view=diff
==============================================================================
---
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetCommentRepository.java
(original)
+++
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetCommentRepository.java
Tue Oct 16 19:47:46 2012
@@ -25,6 +25,7 @@ import org.apache.rave.portal.model.Widg
import org.apache.rave.portal.repository.MongoModelOperations;
import org.apache.rave.portal.repository.WidgetCommentRepository;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Repository;
import java.util.Date;
import java.util.Iterator;
@@ -34,6 +35,7 @@ import static org.apache.rave.portal.mod
import static org.springframework.data.mongodb.core.query.Criteria.where;
import static org.springframework.data.mongodb.core.query.Query.query;
+@Repository
public class MongoDbWidgetCommentRepository implements WidgetCommentRepository
{
@Autowired
Modified:
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRatingRepository.java
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRatingRepository.java?rev=1398956&r1=1398955&r2=1398956&view=diff
==============================================================================
---
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRatingRepository.java
(original)
+++
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRatingRepository.java
Tue Oct 16 19:47:46 2012
@@ -24,6 +24,7 @@ import org.apache.rave.portal.model.Widg
import org.apache.rave.portal.repository.MongoModelOperations;
import org.apache.rave.portal.repository.WidgetRatingRepository;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Repository;
import java.util.Iterator;
import java.util.List;
@@ -32,6 +33,7 @@ import static org.apache.rave.portal.mod
import static org.springframework.data.mongodb.core.query.Criteria.where;
import static org.springframework.data.mongodb.core.query.Query.query;
+@Repository
public class MongoDbWidgetRatingRepository implements WidgetRatingRepository {
@Autowired
Added:
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetTagRepository.java
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetTagRepository.java?rev=1398956&view=auto
==============================================================================
---
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetTagRepository.java
(added)
+++
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetTagRepository.java
Tue Oct 16 19:47:46 2012
@@ -0,0 +1,97 @@
+/*
+ * 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.exception.NotSupportedException;
+import org.apache.rave.portal.model.Widget;
+import org.apache.rave.portal.model.WidgetTag;
+import org.apache.rave.portal.repository.MongoModelOperations;
+import org.apache.rave.portal.repository.WidgetTagRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Repository;
+
+import java.util.Iterator;
+
+/**
+ */
+@Repository
+public class MongoDbWidgetTagRepository implements WidgetTagRepository {
+ @Autowired
+ private MongoModelOperations.MongoWidgetOperations template;
+
+ @Override
+ public WidgetTag getByWidgetIdAndTag(Long widgetId, String keyword) {
+ Widget widget = template.get(widgetId);
+ return getTagByKeyword(keyword, widget);
+ }
+
+ @Override
+ public Class<? extends WidgetTag> getType() {
+ return WidgetTag.class;
+ }
+
+ @Override
+ public WidgetTag get(long id) {
+ throw new NotSupportedException();
+ }
+
+ @Override
+ public WidgetTag save(WidgetTag item) {
+ Widget widget = template.get(item.getWidgetId());
+ updateOrAddTag(widget, item);
+ Widget saved = template.save(widget);
+ return getTagByKeyword(item.getTag().getKeyword(), saved);
+ }
+
+ private void updateOrAddTag(Widget widget, WidgetTag item) {
+ //The current programming model expects there to be only one instance
of a tag
+ //consider an update a NOOP unless it is a new tag.
+ WidgetTag tag = getTagByKeyword(item.getTag().getKeyword(), widget);
+ if(tag == null) {
+ widget.getTags().add(item);
+ }
+ }
+
+ @Override
+ public void delete(WidgetTag item) {
+ Widget widget = template.get(item.getWidgetId());
+ removeTag(item.getTag().getKeyword(), widget);
+ }
+
+ private void removeTag(String keyword, Widget widget) {
+ Iterator<WidgetTag> iterator = widget.getTags().iterator();
+ while (iterator.hasNext()) {
+ WidgetTag comment = iterator.next();
+ if (comment.getTag().getKeyword().equals(keyword)) {
+ iterator.remove();
+ return;
+ }
+ }
+ }
+
+ private WidgetTag getTagByKeyword(String keyword, Widget widget) {
+ for(WidgetTag tag : widget.getTags()) {
+ if(tag.getTag().getKeyword().equals(keyword)) {
+ return tag;
+ }
+ }
+ return null;
+ }
+}
Modified:
rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/persistence-applicationContext.xml
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/persistence-applicationContext.xml?rev=1398956&r1=1398955&r2=1398956&view=diff
==============================================================================
---
rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/persistence-applicationContext.xml
(original)
+++
rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/persistence-applicationContext.xml
Tue Oct 16 19:47:46 2012
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
+
<!--
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file