diff --git a/htroot/js/WatchCrawler.js b/htroot/js/WatchCrawler.js
index 829cb431a..fb27c169f 100644
--- a/htroot/js/WatchCrawler.js
+++ b/htroot/js/WatchCrawler.js
@@ -1,22 +1,22 @@
DELETE_STRING="delete"
var statusRPC;
-var indexingQueueRPC;
+var queuesRPC;
function requestStatus(){
statusRPC=createRequestObject()
statusRPC.open('get', '/xml/status_p.xml');
statusRPC.onreadystatechange = handleStatus;
statusRPC.send(null)
}
-function requestIndexingQueue(){
- indexingQueueRPC=createRequestObject()
- indexingQueueRPC.open('get', '/xml/queues/indexing_p.xml');
- indexingQueueRPC.onreadystatechange = handleIndexingQueue;
- indexingQueueRPC.send(null);
+function requestQueues(){
+ queuesRPC=createRequestObject()
+ queuesRPC.open('get', '/xml/queues_p.xml');
+ queuesRPC.onreadystatechange = handleQueues;
+ queuesRPC.send(null);
}
window.setInterval("requestStatus()", 5000);
-window.setInterval("requestIndexingQueue()", 5000);
+window.setInterval("requestQueues()", 5000);
function handleStatus(){
@@ -41,14 +41,15 @@ function handleStatus(){
}
-function handleIndexingQueue(){
- if(indexingQueueRPC.readyState != 4){
+function handleQueues(){
+ if(queuesRPC.readyState != 4){
return;
}
- var indexingQueueResponse = indexingQueueRPC.responseXML;
+ var queuesResponse = queuesRPC.responseXML;
indexingTable=document.getElementById("indexingTable");
- if(indexingQueueResponse != null){
- entries=indexingQueueResponse.getElementsByTagName("entry");
+ xml=getFirstChild(queuesResponse);
+ if(queuesResponse != null){
+ entries=getFirstChild(xml, "indexingqueue").getElementsByTagName("entry");
}
//skip the Tableheade
@@ -98,6 +99,9 @@ function getValue(element){
return "";
}
function getFirstChild(element, childname){
+ if(childname==null){
+ childname="";
+ }
if(element == null){
return null;
}
@@ -111,6 +115,9 @@ function getFirstChild(element, childname){
return null;
}
function getNextSibling(element, childname){
+ if(childname==null){
+ childname="";
+ }
if(element == null){
return null;
}
diff --git a/htroot/xml/queues/indexing_p.java b/htroot/xml/queues/indexing_p.java
deleted file mode 100644
index 1f6309b64..000000000
--- a/htroot/xml/queues/indexing_p.java
+++ /dev/null
@@ -1,137 +0,0 @@
-// /xml.queues/indexing_p.java
-// -------------------------------
-// part of the AnomicHTTPD caching proxy
-// (C) by Michael Peter Christen; mc@anomic.de
-// first published on http://www.anomic.de
-// Frankfurt, Germany, 2004, 2005
-// last major change: 28.10.2005
-// this file is contributed by Alexander Schier
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-//
-// Using this software in any meaning (reading, learning, copying, compiling,
-// running) means that you agree that the Author(s) is (are) not responsible
-// for cost, loss of data or any harm that may be caused directly or indirectly
-// by usage of this softare or this documentation. The usage of this software
-// is on your own risk. The installation and usage (starting/running) of this
-// software may allow other people or application to access your computer and
-// any attached devices and is highly dependent on the configuration of the
-// software which must be done by the user of the software; the author(s) is
-// (are) also not responsible for proper configuration and usage of the
-// software, even if provoked by documentation provided together with
-// the software.
-//
-// Any changes to this file according to the GPL as documented in the file
-// gpl.txt aside this file in the shipment you received can be done to the
-// lines that follows this copyright notice here, but changes must not be
-// done inside the copyright notive above. A re-distribution must contain
-// the intact and unchanged copyright notice.
-// Contributions and changes to the program code must be marked as such.
-
-// You must compile this file with
-// javac -classpath .:../classes IndexCreate_p.java
-// if the shell's current path is HTROOT
-
-//package xml.queues;
-package xml.queues;
-import java.util.ArrayList;
-import java.util.Date;
-import java.text.SimpleDateFormat;
-import java.util.Locale;
-import java.io.IOException;
-
-import de.anomic.data.wikiCode;
-import de.anomic.http.httpHeader;
-import de.anomic.plasma.plasmaSwitchboard;
-import de.anomic.plasma.plasmaSwitchboardQueue;
-import de.anomic.server.serverObjects;
-import de.anomic.server.serverSwitch;
-import de.anomic.yacy.yacyCore;
-import de.anomic.yacy.yacySeed;
-
-public class indexing_p {
-
- private static SimpleDateFormat dayFormatter = new SimpleDateFormat("yyyy/MM/dd", Locale.US);
- private static String daydate(Date date) {
- if (date == null) return "";
- return dayFormatter.format(date);
- }
-
- public static serverObjects respond(httpHeader header, serverObjects post, serverSwitch env) {
- // return variable that accumulates replacements
- plasmaSwitchboard switchboard = (plasmaSwitchboard) env;
- //wikiCode wikiTransformer = new wikiCode(switchboard);
- serverObjects prop = new serverObjects();
- prop.put("rejected", 0);
- //int showRejectedCount = 10;
-
- yacySeed initiator;
-
- if ((switchboard.sbQueue.size() == 0) && (switchboard.indexingTasksInProcess.size() == 0)) {
- prop.put("list", 0); //is empty
- } else {
- plasmaSwitchboardQueue.Entry pcentry;
- int inProcessCount = 0;
- long totalSize = 0;
- int i=0; //counter
- try {
- ArrayList entryList = new ArrayList();
-
- // getting all entries that are currently in process
- synchronized (switchboard.indexingTasksInProcess) {
- inProcessCount = switchboard.indexingTasksInProcess.size();
- entryList.addAll(switchboard.indexingTasksInProcess.values());
- }
-
- // getting all enqueued entries
- if ((switchboard.sbQueue.size() > 0)) {
- entryList.addAll(switchboard.sbQueue.list(0));
- }
- int size=10;
- if (post!= null) size = post.getInt("num", 10);
-
- if(size>entryList.size()){
- size=entryList.size();
- }
-
- for (i = 0; i < size; i++) {
- boolean inProcess = i < inProcessCount;
- pcentry = (plasmaSwitchboardQueue.Entry) entryList.get(i);
- long entrySize = pcentry.size();
- totalSize += entrySize;
- if ((pcentry != null)&&(pcentry.url() != null)) {
- initiator = yacyCore.seedDB.getConnected(pcentry.initiator());
- prop.put("list_"+i+"_initiator", ((initiator == null) ? "proxy" : wikiCode.replaceHTML(initiator.getName())));
- prop.put("list_"+i+"_depth", pcentry.depth());
- prop.put("list_"+i+"_modified", (pcentry.responseHeader() == null) ? "" : daydate(pcentry.responseHeader().lastModified()));
- prop.put("list_"+i+"_anchor", (pcentry.anchorName()==null)?"":wikiCode.replaceHTML(pcentry.anchorName()));
- prop.put("list_"+i+"_url", wikiCode.replaceHTML(pcentry.normalizedURLString()));
- prop.put("list_"+i+"_size", entrySize);
- prop.put("list_"+i+"_inProcess", (inProcess)?1:0);
- prop.put("list_"+i+"_hash", pcentry.urlHash());
- }
- }
- prop.put("list", i);
- } catch (IOException e) {}
- }
-
- // return rewrite properties
- return prop;
- }
-
-}
-
-
-
diff --git a/htroot/xml/queues/indexing_p.xml b/htroot/xml/queues/indexing_p.xml
deleted file mode 100644
index 6faedfa88..000000000
--- a/htroot/xml/queues/indexing_p.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-#{list}#
-
- #[initiator]#
- #[depth]#
- #[modified]#
- #[anchor]#
- #[url]#
- #[size]#
- #[hash]#
- #(inProcess)#false::true#(/inProcess)#
-
-#{/list}#
-
-
diff --git a/htroot/xml/queues_p.java b/htroot/xml/queues_p.java
new file mode 100644
index 000000000..b3395ae07
--- /dev/null
+++ b/htroot/xml/queues_p.java
@@ -0,0 +1,224 @@
+// /xml.queues/indexing_p.java
+// -------------------------------
+// part of the AnomicHTTPD caching proxy
+// (C) by Michael Peter Christen; mc@anomic.de
+// first published on http://www.anomic.de
+// Frankfurt, Germany, 2004, 2005
+// last major change: 28.10.2005
+// this file is contributed by Alexander Schier
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Using this software in any meaning (reading, learning, copying, compiling,
+// running) means that you agree that the Author(s) is (are) not responsible
+// for cost, loss of data or any harm that may be caused directly or indirectly
+// by usage of this softare or this documentation. The usage of this software
+// is on your own risk. The installation and usage (starting/running) of this
+// software may allow other people or application to access your computer and
+// any attached devices and is highly dependent on the configuration of the
+// software which must be done by the user of the software; the author(s) is
+// (are) also not responsible for proper configuration and usage of the
+// software, even if provoked by documentation provided together with
+// the software.
+//
+// Any changes to this file according to the GPL as documented in the file
+// gpl.txt aside this file in the shipment you received can be done to the
+// lines that follows this copyright notice here, but changes must not be
+// done inside the copyright notive above. A re-distribution must contain
+// the intact and unchanged copyright notice.
+// Contributions and changes to the program code must be marked as such.
+
+// You must compile this file with
+// javac -classpath .:../classes IndexCreate_p.java
+// if the shell's current path is HTROOT
+
+//package xml.queues;
+package xml;
+import java.util.ArrayList;
+import java.util.Date;
+import java.text.SimpleDateFormat;
+import java.util.Locale;
+import java.io.IOException;
+
+import de.anomic.data.wikiCode;
+import de.anomic.http.httpHeader;
+import de.anomic.plasma.plasmaCrawlLoaderMessage;
+import de.anomic.plasma.plasmaCrawlNURL;
+import de.anomic.plasma.plasmaCrawlProfile;
+import de.anomic.plasma.plasmaCrawlWorker;
+import de.anomic.plasma.plasmaSwitchboard;
+import de.anomic.plasma.plasmaSwitchboardQueue;
+import de.anomic.server.serverObjects;
+import de.anomic.server.serverSwitch;
+import de.anomic.yacy.yacyCore;
+import de.anomic.yacy.yacySeed;
+
+public class queues_p {
+
+ private static SimpleDateFormat dayFormatter = new SimpleDateFormat("yyyy/MM/dd", Locale.US);
+ private static String daydate(Date date) {
+ if (date == null) return "";
+ return dayFormatter.format(date);
+ }
+
+ public static serverObjects respond(httpHeader header, serverObjects post, serverSwitch env) {
+ // return variable that accumulates replacements
+ plasmaSwitchboard switchboard = (plasmaSwitchboard) env;
+ //wikiCode wikiTransformer = new wikiCode(switchboard);
+ serverObjects prop = new serverObjects();
+ prop.put("rejected", 0);
+ //int showRejectedCount = 10;
+
+ yacySeed initiator;
+
+ //indexing queue
+ if ((switchboard.sbQueue.size() == 0) && (switchboard.indexingTasksInProcess.size() == 0)) {
+ prop.put("list", 0); //is empty
+ } else {
+ plasmaSwitchboardQueue.Entry pcentry;
+ int inProcessCount = 0;
+ long totalSize = 0;
+ int i=0; //counter
+ try {
+ ArrayList entryList = new ArrayList();
+
+ // getting all entries that are currently in process
+ synchronized (switchboard.indexingTasksInProcess) {
+ inProcessCount = switchboard.indexingTasksInProcess.size();
+ entryList.addAll(switchboard.indexingTasksInProcess.values());
+ }
+
+ // getting all enqueued entries
+ if ((switchboard.sbQueue.size() > 0)) {
+ entryList.addAll(switchboard.sbQueue.list(0));
+ }
+ int size=10;
+ if (post!= null) size = post.getInt("num", 10);
+
+ if(size>entryList.size()){
+ size=entryList.size();
+ }
+
+ for (i = 0; i < size; i++) {
+ boolean inProcess = i < inProcessCount;
+ pcentry = (plasmaSwitchboardQueue.Entry) entryList.get(i);
+ long entrySize = pcentry.size();
+ totalSize += entrySize;
+ if ((pcentry != null)&&(pcentry.url() != null)) {
+ initiator = yacyCore.seedDB.getConnected(pcentry.initiator());
+ prop.put("list-indexing_"+i+"_initiator", ((initiator == null) ? "proxy" : wikiCode.replaceHTML(initiator.getName())));
+ prop.put("list-indexing_"+i+"_depth", pcentry.depth());
+ prop.put("list-indexing_"+i+"_modified", (pcentry.responseHeader() == null) ? "" : daydate(pcentry.responseHeader().lastModified()));
+ prop.put("list-indexing_"+i+"_anchor", (pcentry.anchorName()==null)?"":wikiCode.replaceHTML(pcentry.anchorName()));
+ prop.put("list-indexing_"+i+"_url", wikiCode.replaceHTML(pcentry.normalizedURLString()));
+ prop.put("list-indexing_"+i+"_size", entrySize);
+ prop.put("list-indexing_"+i+"_inProcess", (inProcess)?1:0);
+ prop.put("list-indexing_"+i+"_hash", pcentry.urlHash());
+ }
+ }
+ prop.put("list-indexing", i);
+ } catch (IOException e) {}
+ }
+
+ //loader queue
+ if (switchboard.cacheLoader.size() == 0) {
+ prop.put("list-loader", 0);
+ } else {
+ ThreadGroup loaderThreads = switchboard.cacheLoader.threadStatus();
+ int threadCount = loaderThreads.activeCount();
+ Thread[] threadList = new Thread[threadCount*2];
+ threadCount = loaderThreads.enumerate(threadList);
+ int size=10;
+ if(threadCount
+
+#{list-indexing}#
+
+ #[initiator]#
+ #[depth]#
+ #[modified]#
+ #[anchor]#
+ #[url]#
+ #[size]#
+ #[hash]#
+ #(inProcess)#false::true#(/inProcess)#
+
+#{/list-indexing}#
+
+
+#{list-loader}#
+
+ #[initiator]#
+ #[depth]#
+ #[url]#
+
+#{/list-loader}#
+
+
+#{list-local}#
+
+ #[initiator]#
+ #[depth]#
+ #[modified]#
+ #[anchor]#
+ #[url]#
+ #[hash]#
+ #(inProcess)#false::true#(/inProcess)#
+
+#{/list-local}#
+
+
+#{list-remote}#
+
+ #[profile]#
+ #[depth]#
+ #[modified]#
+ #[anchor]#
+ #[url]#
+ #(inProcess)#false::true#(/inProcess)#
+
+#{/list-remote}#
+
+