From 8820af58dee10d6cc208218fc92843ab882bcccb Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Thu, 23 Apr 2015 08:28:30 +0200
Subject: [PATCH] OO-1522: add some statistics about the number of folder index
 workers

---
 .../service/document/WikiPageDocument.java    | 31 +++++++++----------
 .../service/indexer/FullIndexerStatus.java    | 17 +++++++---
 .../service/indexer/OlatFullIndexer.java      |  2 ++
 .../repository/WikiRepositoryIndexer.java     |  8 ++---
 4 files changed, 33 insertions(+), 25 deletions(-)

diff --git a/src/main/java/org/olat/search/service/document/WikiPageDocument.java b/src/main/java/org/olat/search/service/document/WikiPageDocument.java
index 4faf59621ff..f3d6b98f90e 100644
--- a/src/main/java/org/olat/search/service/document/WikiPageDocument.java
+++ b/src/main/java/org/olat/search/service/document/WikiPageDocument.java
@@ -66,13 +66,13 @@ public class WikiPageDocument extends OlatDocument {
 	public static Document createDocument(SearchResourceContext searchResourceContext, WikiPage wikiPage) {		
 		WikiPageDocument wikiPageDocument = new WikiPageDocument();
 
-  	long userId = wikiPage.getInitalAuthor();
-  	if (userId != 0) {
-  		Identity  identity = identityManager.loadIdentityByKey(Long.valueOf(userId));
-  		if(identity != null) {
-  			wikiPageDocument.setAuthor(identity.getName());
-  		}
-  	}
+		long userId = wikiPage.getInitalAuthor();
+		if (userId != 0) {
+			Identity  identity = identityManager.loadIdentityByKey(Long.valueOf(userId));
+			if(identity != null) {
+				wikiPageDocument.setAuthor(identity.getName());
+			}
+		}
 		wikiPageDocument.setTitle(wikiPage.getPageName());
 		wikiPageDocument.setContent(getContent(wikiPage));
 		wikiPageDocument.setCreatedDate(new Date(wikiPage.getCreationTime()));
@@ -91,14 +91,14 @@ public class WikiPageDocument extends OlatDocument {
 		try {
 			ParserInput input = new ParserInput();
 			input.setWikiUser(null);
-	    input.setAllowSectionEdit(false);
-	    input.setDepth(2);
-	    input.setContext("");
-	    input.setLocale(Locale.ENGLISH);
-	    input.setTopicName("dummy");
-	    input.setUserIpAddress("0.0.0.0");
-	    input.setDataHandler(DUMMY_DATA_HANDLER);
-	    input.setVirtualWiki("/olat");
+			input.setAllowSectionEdit(false);
+			input.setDepth(2);
+			input.setContext("");
+			input.setLocale(Locale.ENGLISH);
+			input.setTopicName("dummy");
+			input.setUserIpAddress("0.0.0.0");
+			input.setDataHandler(DUMMY_DATA_HANDLER);
+			input.setVirtualWiki("/olat");
 
 			AbstractParser parser = new JFlexParser(input);
 			ParserDocument parsedDoc = parser.parseHTML(wikiPage.getContent());
@@ -106,7 +106,6 @@ public class WikiPageDocument extends OlatDocument {
 			String filteredContent = FilterFactory.getHtmlTagAndDescapingFilter().filter(parsedContent);
 			return filteredContent;
 		} catch(Exception e) {
-			e.printStackTrace();
 			log.error("", e);
 			return wikiPage.getContent();
 		}
diff --git a/src/main/java/org/olat/search/service/indexer/FullIndexerStatus.java b/src/main/java/org/olat/search/service/indexer/FullIndexerStatus.java
index 366005d7d77..204ab0b856a 100644
--- a/src/main/java/org/olat/search/service/indexer/FullIndexerStatus.java
+++ b/src/main/java/org/olat/search/service/indexer/FullIndexerStatus.java
@@ -53,6 +53,9 @@ public class FullIndexerStatus {
 	private int indexPerMinute = 0;
 	private int[] partDocumentCounters;
 	private int documentQueueSize;
+	private int numberRunningFolderIndexer = 0;
+	private int numberAvailableFolderIndexer = 0;
+	
 	/** Hashtable with document-type-names as key and Integer-object as counters. */
 	private Map<String,Integer> documentCounters;
 	/** Hashtable with file-type-names as key and Integer-object as counters. */
@@ -185,20 +188,26 @@ public class FullIndexerStatus {
 		return indexPerMinute;
 	}
 
-
 	/**
 	 * @return Returns the runningFolderIndexer.
 	 */
 	public int getNumberRunningFolderIndexer() {
-		return -1;//FolderIndexerWorkerPool.getInstance().getNumberOfRunningIndexer();
+		return numberRunningFolderIndexer;
+	}
+	
+	public void setNumberRunningFolderIndexer(int numberRunningFolderIndexer) {
+		this.numberRunningFolderIndexer = numberRunningFolderIndexer;
 	}
-
 
 	/**
 	 * @return Returns the availableFolderIndexer.
 	 */
 	public int getNumberAvailableFolderIndexer() {
-		return -1;//FolderIndexerWorkerPool.getInstance().getNumberOfAvailableIndexer();
+		return numberAvailableFolderIndexer;
+	}
+	
+	public void setNumberAvailableFolderIndexer(int numberAvailableFolderIndexer) {
+		this.numberAvailableFolderIndexer = numberAvailableFolderIndexer;
 	}
 
 
diff --git a/src/main/java/org/olat/search/service/indexer/OlatFullIndexer.java b/src/main/java/org/olat/search/service/indexer/OlatFullIndexer.java
index 0f9b1f7e1f2..971a6042876 100644
--- a/src/main/java/org/olat/search/service/indexer/OlatFullIndexer.java
+++ b/src/main/java/org/olat/search/service/indexer/OlatFullIndexer.java
@@ -378,6 +378,8 @@ public class OlatFullIndexer {
 
 		incrementDocumentTypeCounter(document);
 		incrementFileTypeCounter(document);
+		fullIndexerStatus.setNumberAvailableFolderIndexer(indexerExecutor.getPoolSize());
+		fullIndexerStatus.setNumberRunningFolderIndexer(indexerExecutor.getActiveCount());
 	}
 	
 	private void incrementFileTypeCounter(Document document) {
diff --git a/src/main/java/org/olat/search/service/indexer/repository/WikiRepositoryIndexer.java b/src/main/java/org/olat/search/service/indexer/repository/WikiRepositoryIndexer.java
index 8e16aba0b02..bccd1dcf714 100644
--- a/src/main/java/org/olat/search/service/indexer/repository/WikiRepositoryIndexer.java
+++ b/src/main/java/org/olat/search/service/indexer/repository/WikiRepositoryIndexer.java
@@ -50,9 +50,7 @@ public class WikiRepositoryIndexer extends DefaultIndexer {
 
 	public final static String ORES_TYPE_WIKI = WikiResource.TYPE_NAME;
 
-	/**
-	 * 
-	 */
+	@Override
 	public String getSupportedTypeName() {	
 		return ORES_TYPE_WIKI; 
 	}
@@ -60,7 +58,7 @@ public class WikiRepositoryIndexer extends DefaultIndexer {
 	/**
 	 * @see org.olat.repository.handlers.RepositoryHandler#supportsDownload()
 	 */
-
+	@Override
 	public void doIndex(SearchResourceContext resourceContext, Object parentObject, OlatFullIndexer indexWriter) throws IOException,InterruptedException  {
 		RepositoryEntry repositoryEntry = (RepositoryEntry) parentObject;
 		if (isLogDebugEnabled()) logDebug("Analyse Wiki RepositoryEntry...");
@@ -71,7 +69,7 @@ public class WikiRepositoryIndexer extends DefaultIndexer {
 			// loop over all wiki pages
 			List<WikiPage> wikiPageList = wiki.getAllPagesWithContent();
 			for (WikiPage wikiPage : wikiPageList) {
-		    try {
+				try {
 					SearchResourceContext wikiContext = new SearchResourceContext(resourceContext);
 					wikiContext.setDocumentType(TYPE);
 					wikiContext.setFilePath(wikiPage.getPageName());
-- 
GitLab