[jboss-cvs] jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action ...
Christian Bauer
christian at hibernate.org
Tue Jun 12 08:30:02 EDT 2007
User: cbauer
Date: 07/06/12 08:30:02
Modified: examples/wiki/src/main/org/jboss/seam/wiki/core/action
PreferenceEditor.java DirectoryHome.java
AdminHome.java NodeBrowser.java
Removed: examples/wiki/src/main/org/jboss/seam/wiki/core/action
NodeSearch.java
Log:
Completed first iteration of search engine
Revision Changes Path
1.4 +5 -5 jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/PreferenceEditor.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: PreferenceEditor.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/PreferenceEditor.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- PreferenceEditor.java 7 May 2007 11:42:33 -0000 1.3
+++ PreferenceEditor.java 12 Jun 2007 12:30:02 -0000 1.4
@@ -3,6 +3,7 @@
import org.jboss.seam.annotations.*;
import org.jboss.seam.ScopeType;
import org.jboss.seam.Component;
+import org.jboss.seam.log.Log;
import org.jboss.seam.core.FacesMessages;
import org.jboss.seam.wiki.preferences.*;
import org.jboss.seam.wiki.preferences.PreferenceRegistry;
@@ -20,6 +21,8 @@
@Scope(ScopeType.CONVERSATION)
public class PreferenceEditor implements Serializable {
+ @Logger static Log log;
+
@In
private FacesMessages facesMessages;
@@ -31,6 +34,7 @@
boolean valid = true;
public String save() {
+ log.debug("saving preference component values");
if (preferenceComponent == null) return null;
validate();
@@ -50,15 +54,11 @@
}
provider.flush();
- facesMessages.addToControlFromResourceBundleOrDefault(
- "preferenceValidationErrors",
- FacesMessage.SEVERITY_INFO,
- "preferencesSaved." + preferenceComponent.getName(),
- "Preferences have been saved, continue editing or exit.");
return null;
}
public void validate() {
+ log.debug("validating preference component values");
if (preferenceComponent == null) return;
valid = true;
Map<PreferenceProperty, InvalidValue[]> invalidProperties = preferenceComponent.validate(preferenceValues);
1.10 +0 -2 jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/DirectoryHome.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: DirectoryHome.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/DirectoryHome.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- DirectoryHome.java 26 Apr 2007 18:54:26 -0000 1.9
+++ DirectoryHome.java 12 Jun 2007 12:30:02 -0000 1.10
@@ -5,12 +5,10 @@
import org.jboss.seam.annotations.datamodel.DataModel;
import org.jboss.seam.annotations.datamodel.DataModelSelection;
import org.jboss.seam.ScopeType;
-import org.jboss.seam.Component;
import org.jboss.seam.wiki.core.model.Directory;
import org.jboss.seam.wiki.core.model.Node;
import org.jboss.seam.wiki.core.model.Document;
import org.jboss.seam.wiki.core.model.Feed;
-import org.jboss.seam.wiki.core.dao.FeedDAO;
import javax.faces.application.FacesMessage;
import java.util.List;
1.4 +86 -6 jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/AdminHome.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: AdminHome.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/AdminHome.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- AdminHome.java 7 May 2007 11:42:33 -0000 1.3
+++ AdminHome.java 12 Jun 2007 12:30:02 -0000 1.4
@@ -1,5 +1,12 @@
package org.jboss.seam.wiki.core.action;
+import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.TermEnum;
+import org.hibernate.Session;
+import org.hibernate.search.store.DirectoryProvider;
+import org.hibernate.search.util.ContextHelper;
+import org.hibernate.validator.ClassValidator;
+import org.hibernate.validator.InvalidValue;
import org.jboss.seam.Component;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.*;
@@ -8,28 +15,33 @@
import org.jboss.seam.annotations.security.Restrict;
import org.jboss.seam.contexts.Contexts;
import org.jboss.seam.core.FacesMessages;
-import org.jboss.seam.core.Expressions;
import org.jboss.seam.core.Validators;
-import org.jboss.seam.framework.EntityHome;
+import org.jboss.seam.log.Log;
import org.jboss.seam.security.AuthorizationException;
import org.jboss.seam.security.Identity;
-import org.jboss.seam.wiki.core.model.User;
import org.jboss.seam.wiki.core.model.LinkProtocol;
+import org.jboss.seam.wiki.core.model.User;
+import org.jboss.seam.wiki.core.search.IndexManager;
+import org.jboss.seam.wiki.core.search.metamodel.SearchRegistry;
+import org.jboss.seam.wiki.core.search.metamodel.SearchableEntity;
import org.jboss.seam.wiki.preferences.PreferenceComponent;
import org.jboss.seam.wiki.preferences.PreferenceVisibility;
-import org.hibernate.validator.InvalidValue;
-import org.hibernate.validator.ClassValidator;
+import org.jboss.seam.wiki.util.Progress;
import javax.faces.application.FacesMessage;
import javax.persistence.EntityManager;
+import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.ArrayList;
@Name("adminHome")
@Scope(ScopeType.CONVERSATION)
public class AdminHome {
+ @Logger
+ static Log log;
+
@In
private FacesMessages facesMessages;
@@ -65,6 +77,8 @@
return null;
}
+ // ####################### PREFERENCES ##################################
+
@DataModel(value = "systemPreferenceComponents")
private List<PreferenceComponent> systemPreferenceComponents;
@@ -76,6 +90,9 @@
Contexts.getConversationContext().set("preferenceEditor", preferenceEditor);
}
+
+ // ####################### LINK PROTOCOLS ##################################
+
@DataModel(value = "linkProtocols")
private List<LinkProtocol> linkProtocols;
@@ -123,4 +140,67 @@
linkProtocols.remove(selectedLinkProtocol);
}
+ // ####################### INDEXING ##################################
+
+ @DataModel(value = "indexedEntities")
+ private List<SearchableEntity> indexedEntities;
+
+ @DataModelSelection(value = "indexedEntities")
+ private SearchableEntity selectedIndexedEntity;
+
+ @Factory("indexedEntities")
+ @Transactional
+ public void loadIndexedEntities() throws Exception {
+
+ SearchRegistry registry = (SearchRegistry)Component.getInstance("searchRegistry");
+ indexedEntities = registry.getSearchableEntities();
+
+ EntityManager em = (EntityManager) Component.getInstance("entityManager");
+ Session session = (Session) em.getDelegate();
+
+ for (SearchableEntity indexedEntity : indexedEntities) {
+ DirectoryProvider dirProvider = ContextHelper.getSearchFactory(session).getDirectoryProvider(indexedEntity.getClazz());
+ IndexReader reader = IndexReader.open(dirProvider.getDirectory());
+
+ indexedEntity.setNumOfIndexedDocuments(reader.numDocs());
+
+ TermEnum te = reader.terms();
+ long numTerms = 0;
+ while (te.next()) numTerms++;
+ indexedEntity.setNumOfIndexedTerms(numTerms);
+
+ long size = 0;
+ String [] fileNames = dirProvider.getDirectory().list();
+ for (String fileName : fileNames) {
+ size += dirProvider.getDirectory().fileLength(fileName);
+ }
+ indexedEntity.setIndexSizeInBytes(size);
+
+ reader.close();
+ }
+ }
+
+ @In(required = false) @Out(required = false, scope = ScopeType.SESSION)
+ public Map<String, Progress> indexingProgressMonitors;
+
+ public void resetSearchIndex() throws Exception {
+
+ IndexManager indexMgr = (IndexManager)Component.getInstance("indexManager");
+ Progress progress = new Progress(selectedIndexedEntity.getClazz().getName());
+ indexMgr.rebuildIndex(selectedIndexedEntity.getClazz(), progress);
+
+ if (indexingProgressMonitors == null) indexingProgressMonitors = new HashMap<String, Progress>();
+ indexingProgressMonitors.put(selectedIndexedEntity.getClazz().getName(), progress);
+ }
+
+ @WebRemote
+ public Progress getIndexingProgress(String className) {
+ return indexingProgressMonitors != null ? indexingProgressMonitors.get(className) : null;
+ }
+
+ @WebRemote
+ public void resetIndexingProgress(String className) {
+ if (indexingProgressMonitors != null) indexingProgressMonitors.remove(className);
+ }
+
}
1.13 +1 -2 jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/NodeBrowser.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: NodeBrowser.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/NodeBrowser.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- NodeBrowser.java 27 Apr 2007 10:34:08 -0000 1.12
+++ NodeBrowser.java 12 Jun 2007 12:30:02 -0000 1.13
@@ -6,13 +6,12 @@
import org.jboss.seam.log.Log;
import org.jboss.seam.contexts.Contexts;
import org.jboss.seam.core.*;
+import org.jboss.seam.core.Conversation;
import org.jboss.seam.security.Identity;
import org.jboss.seam.wiki.core.dao.NodeDAO;
import org.jboss.seam.wiki.core.model.*;
-import org.jboss.seam.wiki.core.action.prefs.WikiPreferences;
import org.jboss.seam.wiki.util.WikiUtil;
-import javax.faces.application.FacesMessage;
import java.util.*;
import java.io.Serializable;
More information about the jboss-cvs-commits
mailing list