[jboss-cvs] JBossBlog SVN: r296 - in trunk/src: model/org/jboss/blog/model and 3 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Apr 29 07:27:13 EDT 2008
Author: adamw
Date: 2008-04-29 07:27:13 -0400 (Tue, 29 Apr 2008)
New Revision: 296
Added:
trunk/src/action/org/jboss/blog/session/search/SearchReindexObserver.java
trunk/src/tools/org/jboss/blog/tools/search/
trunk/src/tools/org/jboss/blog/tools/search/UnrestrictedFeedFilter.java
trunk/src/tools/org/jboss/blog/tools/search/bridge/
trunk/src/tools/org/jboss/blog/tools/search/bridge/FeedBridge.java
trunk/src/tools/org/jboss/blog/tools/search/bridge/StripHtmlBridge.java
Removed:
trunk/src/tools/org/jboss/blog/tools/StripHtmlBridge.java
Modified:
trunk/src/action/org/jboss/blog/session/search/PostSearchBean.java
trunk/src/model/org/jboss/blog/model/Post.java
trunk/src/tools/org/jboss/blog/tools/StringTools.java
Log:
Modified: trunk/src/action/org/jboss/blog/session/search/PostSearchBean.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/search/PostSearchBean.java 2008-04-29 09:48:29 UTC (rev 295)
+++ trunk/src/action/org/jboss/blog/session/search/PostSearchBean.java 2008-04-29 11:27:13 UTC (rev 296)
@@ -118,6 +118,7 @@
Query luceneQuery = parser.parse(escapeQuery(getQuery()));
FullTextQuery fullTextQuery = entityManager.createFullTextQuery(luceneQuery, Post.class);
+ fullTextQuery.enableFullTextFilter("unrestrictedFeedFilter");
fullTextQuery.setProjection(FullTextQuery.SCORE, FullTextQuery.THIS);
return fullTextQuery;
Added: trunk/src/action/org/jboss/blog/session/search/SearchReindexObserver.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/search/SearchReindexObserver.java (rev 0)
+++ trunk/src/action/org/jboss/blog/session/search/SearchReindexObserver.java 2008-04-29 11:27:13 UTC (rev 296)
@@ -0,0 +1,30 @@
+package org.jboss.blog.session.search;
+
+import org.jboss.seam.annotations.Observer;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+import org.jboss.blog.model.feed.Feed;
+import org.jboss.blog.model.Post;
+import org.hibernate.search.jpa.FullTextEntityManager;
+
+import java.util.List;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+ at Name("searchReindexObserver")
+public class SearchReindexObserver {
+ @In
+ private FullTextEntityManager entityManager;
+
+ @Observer({"org.jboss.blog.feed.updated"})
+ public void feedUpdated(Feed feed) {
+ //noinspection unchecked
+ List<Post> posts = entityManager.createQuery("select post from Post post where post.feed = ?1")
+ .setParameter(1, feed).getResultList();
+
+ for (Post post : posts) {
+ entityManager.index(post);
+ }
+ }
+}
Modified: trunk/src/model/org/jboss/blog/model/Post.java
===================================================================
--- trunk/src/model/org/jboss/blog/model/Post.java 2008-04-29 09:48:29 UTC (rev 295)
+++ trunk/src/model/org/jboss/blog/model/Post.java 2008-04-29 11:27:13 UTC (rev 296)
@@ -7,7 +7,9 @@
import org.hibernate.validator.Pattern;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
-import org.jboss.blog.tools.StripHtmlBridge;
+import org.jboss.blog.tools.search.bridge.StripHtmlBridge;
+import org.jboss.blog.tools.search.bridge.FeedBridge;
+import org.jboss.blog.tools.search.UnrestrictedFeedFilter;
import org.jboss.blog.tools.StringTools;
import org.jboss.blog.tools.GeneralTools;
import org.jboss.blog.model.feed.Feed;
@@ -22,6 +24,7 @@
@Entity
@Indexed
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
+ at FullTextFilterDef(name = "unrestrictedFeedFilter", impl = UnrestrictedFeedFilter.class)
public class Post implements RestrictedPost {
@Id
@GeneratedValue
@@ -74,6 +77,7 @@
@ManyToOne
@NotNull
+ @Field(name = "restricted", bridge = @FieldBridge(impl = FeedBridge.class))
private Feed feed;
public Integer getId() {
Modified: trunk/src/tools/org/jboss/blog/tools/StringTools.java
===================================================================
--- trunk/src/tools/org/jboss/blog/tools/StringTools.java 2008-04-29 09:48:29 UTC (rev 295)
+++ trunk/src/tools/org/jboss/blog/tools/StringTools.java 2008-04-29 11:27:13 UTC (rev 296)
@@ -4,6 +4,8 @@
import org.htmlcleaner.HtmlCleaner;
import org.xml.sax.SAXException;
import org.xml.sax.InputSource;
+import org.xml.sax.ErrorHandler;
+import org.xml.sax.SAXParseException;
import org.apache.log4j.Logger;
import javax.xml.parsers.DocumentBuilderFactory;
@@ -77,7 +79,6 @@
public static boolean isValidXml(String html) {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setValidating(false);
- factory.setNamespaceAware(true);
DocumentBuilder builder;
try {
@@ -87,6 +88,12 @@
return false;
}
+ builder.setErrorHandler(new ErrorHandler() {
+ public void warning(SAXParseException exception) throws SAXException { throw exception; }
+ public void error(SAXParseException exception) throws SAXException { throw exception; }
+ public void fatalError(SAXParseException exception) throws SAXException { throw exception; }
+ });
+
try {
builder.parse(new InputSource(new StringReader(html)));
return true;
@@ -98,10 +105,6 @@
}
}
- public static void main(String[] args) {
- System.out.println(isValidXml("<div></div>"));
- }
-
public static String fixHtml(String html) {
if (isEmpty(html)) {
return html;
Deleted: trunk/src/tools/org/jboss/blog/tools/StripHtmlBridge.java
===================================================================
--- trunk/src/tools/org/jboss/blog/tools/StripHtmlBridge.java 2008-04-29 09:48:29 UTC (rev 295)
+++ trunk/src/tools/org/jboss/blog/tools/StripHtmlBridge.java 2008-04-29 11:27:13 UTC (rev 296)
@@ -1,16 +0,0 @@
-package org.jboss.blog.tools;
-
-import org.hibernate.search.bridge.StringBridge;
-
-/**
- * @author Adam Warski (adam at warski dot org)
- */
-public class StripHtmlBridge implements StringBridge {
- public String objectToString(Object o) {
- if (o == null) {
- return null;
- }
-
- return StringTools.stripHtml(o.toString());
- }
-}
Added: trunk/src/tools/org/jboss/blog/tools/search/UnrestrictedFeedFilter.java
===================================================================
--- trunk/src/tools/org/jboss/blog/tools/search/UnrestrictedFeedFilter.java (rev 0)
+++ trunk/src/tools/org/jboss/blog/tools/search/UnrestrictedFeedFilter.java 2008-04-29 11:27:13 UTC (rev 296)
@@ -0,0 +1,25 @@
+package org.jboss.blog.tools.search;
+
+import org.apache.lucene.search.Filter;
+import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.TermDocs;
+import org.apache.lucene.index.Term;
+
+import java.util.BitSet;
+import java.io.IOException;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+public class UnrestrictedFeedFilter extends Filter {
+ public BitSet bits(IndexReader indexReader) throws IOException {
+ BitSet bitSet = new BitSet(indexReader.maxDoc());
+ TermDocs termDocs = indexReader.termDocs(new Term("restricted", "0"));
+
+ while (termDocs.next()) {
+ bitSet.set(termDocs.doc());
+ }
+
+ return bitSet;
+ }
+}
Added: trunk/src/tools/org/jboss/blog/tools/search/bridge/FeedBridge.java
===================================================================
--- trunk/src/tools/org/jboss/blog/tools/search/bridge/FeedBridge.java (rev 0)
+++ trunk/src/tools/org/jboss/blog/tools/search/bridge/FeedBridge.java 2008-04-29 11:27:13 UTC (rev 296)
@@ -0,0 +1,22 @@
+package org.jboss.blog.tools.search.bridge;
+
+import org.hibernate.search.bridge.StringBridge;
+import org.jboss.blog.model.feed.Feed;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+public class FeedBridge implements StringBridge {
+ public String objectToString(Object object) {
+ if (object == null) {
+ return null;
+ }
+
+ Feed feed = (Feed) object;
+ if (feed.getRestricted()) {
+ return "1";
+ } else {
+ return "0";
+ }
+ }
+}
Added: trunk/src/tools/org/jboss/blog/tools/search/bridge/StripHtmlBridge.java
===================================================================
--- trunk/src/tools/org/jboss/blog/tools/search/bridge/StripHtmlBridge.java (rev 0)
+++ trunk/src/tools/org/jboss/blog/tools/search/bridge/StripHtmlBridge.java 2008-04-29 11:27:13 UTC (rev 296)
@@ -0,0 +1,17 @@
+package org.jboss.blog.tools.search.bridge;
+
+import org.hibernate.search.bridge.StringBridge;
+import org.jboss.blog.tools.StringTools;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+public class StripHtmlBridge implements StringBridge {
+ public String objectToString(Object o) {
+ if (o == null) {
+ return null;
+ }
+
+ return StringTools.stripHtml(o.toString());
+ }
+}
More information about the jboss-cvs-commits
mailing list