Author: j16sdiz
Date: 2008-12-23 08:22:31 +0000 (Tue, 23 Dec 2008)
New Revision: 24761
Modified:
trunk/plugins/XMLSpider/IndexWriter.java
Log:
pass config as parameter
Modified: trunk/plugins/XMLSpider/IndexWriter.java
===================================================================
--- trunk/plugins/XMLSpider/IndexWriter.java 2008-12-23 08:22:21 UTC (rev
24760)
+++ trunk/plugins/XMLSpider/IndexWriter.java 2008-12-23 08:22:31 UTC (rev
24761)
@@ -49,15 +49,17 @@
try {
time_taken = System.currentTimeMillis();
- File indexDir = new
File(xmlSpider.getConfig().getIndexDir());
+ Config config = xmlSpider.getConfig();
+
+ File indexDir = new File(config.getIndexDir());
if (!indexDir.exists() && !indexDir.isDirectory() &&
!indexDir.mkdirs()) {
Logger.error(this, "Cannot create index
directory: " + indexDir);
return;
}
-
- makeSubIndices();
- makeMainIndex();
+ makeSubIndices(config);
+ makeMainIndex(config);
+
time_taken = System.currentTimeMillis() - time_taken;
Logger.minor(this, "Spider: indexes regenerated -
tProducedIndex="
@@ -77,12 +79,12 @@
* @throws IOException
* @throws NoSuchAlgorithmException
*/
- private void makeMainIndex() throws IOException,
NoSuchAlgorithmException {
+ private void makeMainIndex(Config config) throws IOException,
NoSuchAlgorithmException {
// Produce the main index file.
Logger.minor(this, "Producing top index...");
//the main index file
- File outputFile = new File(xmlSpider.getConfig().getIndexDir()
+ "index.xml");
+ File outputFile = new File(config.getIndexDir() + "index.xml");
// Use a stream so we can explicitly close - minimise number of
filehandles used.
BufferedOutputStream fos = new BufferedOutputStream(new
FileOutputStream(outputFile));
StreamResult resultStream;
@@ -116,22 +118,22 @@
/* -> title */
Element subHeaderElement =
xmlDoc.createElement("title");
- Text subHeaderText =
xmlDoc.createTextNode(xmlSpider.getConfig().getIndexTitle());
+ Text subHeaderText =
xmlDoc.createTextNode(config.getIndexTitle());
subHeaderElement.appendChild(subHeaderText);
headerElement.appendChild(subHeaderElement);
/* -> owner */
subHeaderElement = xmlDoc.createElement("owner");
- subHeaderText =
xmlDoc.createTextNode(xmlSpider.getConfig().getIndexOwner());
+ subHeaderText =
xmlDoc.createTextNode(config.getIndexOwner());
subHeaderElement.appendChild(subHeaderText);
headerElement.appendChild(subHeaderElement);
/* -> owner email */
- if (xmlSpider.getConfig().getIndexOwnerEmail() != null)
{
+ if (config.getIndexOwnerEmail() != null) {
subHeaderElement =
xmlDoc.createElement("email");
- subHeaderText =
xmlDoc.createTextNode(xmlSpider.getConfig().getIndexOwnerEmail());
+ subHeaderText =
xmlDoc.createTextNode(config.getIndexOwnerEmail());
subHeaderElement.appendChild(subHeaderText);
headerElement.appendChild(subHeaderElement);
@@ -196,7 +198,7 @@
*
* @throws Exception
*/
- private void makeSubIndices() throws Exception {
+ private void makeSubIndices(Config config) throws Exception {
Logger.normal(this, "Generating index...");
Query query = xmlSpider.db.query();
@@ -206,7 +208,7 @@
ObjectSet<Term> termSet = query.execute();
indices = new Vector<String>();
- int prefix = (int) ((Math.log(termSet.size()) -
Math.log(xmlSpider.getConfig().getIndexMaxEntries())) / Math.log(16)) - 1;
+ int prefix = (int) ((Math.log(termSet.size()) -
Math.log(config.getIndexMaxEntries())) / Math.log(16)) - 1;
if (prefix <= 0)
prefix = 1;
match = 1;
@@ -224,8 +226,8 @@
list.add(term);
} else {
//generate the appropriate subindex with the
current list
- generateSubIndex(prefix, list);
-
+ generateSubIndex(config, prefix, list);
+
// next list
currentPrefix = key.substring(0, prefix);
list = new Vector<Term>();
@@ -233,10 +235,10 @@
}
}
- generateSubIndex(prefix, list);
+ generateSubIndex(config, prefix, list);
}
- private void generateSubIndex(int p, List<Term> list) throws Exception {
+ private void generateSubIndex(Config config, int p, List<Term> list)
throws Exception {
boolean logMINOR = Logger.shouldLog(Logger.MINOR, this);
/*
* if the list is less than max allowed entries in a file then
directly generate the xml
@@ -249,8 +251,8 @@
try {
if (list.size() == 0)
return;
- if (list.size() <
xmlSpider.getConfig().getIndexMaxEntries()) {
- generateXML(list, p);
+ if (list.size() < config.getIndexMaxEntries()) {
+ generateXML(config, list, p);
return;
}
} catch (TooBigIndexException e) {
@@ -271,12 +273,12 @@
if ((key.substring(0, prefix)).equals(str.substring(0,
prefix))) {
i++;
} else {
- generateSubIndex(prefix, list.subList(index,
i));
+ generateSubIndex(config, prefix,
list.subList(index, i));
index = i;
str = key;
}
}
- generateSubIndex(prefix, list.subList(index, i));
+ generateSubIndex(config, prefix, list.subList(index, i));
}
private static class TooBigIndexException extends Exception {
@@ -293,10 +295,10 @@
* number of matching bits of md5
* @throws Exception
*/
- protected void generateXML(List<Term> list, int prefix) throws
TooBigIndexException, Exception {
+ protected void generateXML(Config config, List<Term> list, int prefix)
throws TooBigIndexException, Exception {
String p = list.get(0).md5.substring(0, prefix);
indices.add(p);
- File outputFile = new File(xmlSpider.getConfig().getIndexDir()
+ "index_" + p + ".xml");
+ File outputFile = new File(config.getIndexDir() + "index_" + p
+ ".xml");
BufferedOutputStream fos = new BufferedOutputStream(new
FileOutputStream(outputFile));
StreamResult resultStream;
resultStream = new StreamResult(fos);
@@ -326,7 +328,7 @@
Element headerElement = xmlDoc.createElement("header");
/* -> title */
Element subHeaderElement =
xmlDoc.createElement("title");
- Text subHeaderText =
xmlDoc.createTextNode(xmlSpider.getConfig().getIndexTitle());
+ Text subHeaderText =
xmlDoc.createTextNode(config.getIndexTitle());
subHeaderElement.appendChild(subHeaderText);
headerElement.appendChild(subHeaderElement);
@@ -418,7 +420,7 @@
} finally {
fos.close();
}
- if (outputFile.length() >
xmlSpider.getConfig().getIndexSubindexMaxSize() && list.size() > 1) {
+ if (outputFile.length() > config.getIndexSubindexMaxSize() &&
list.size() > 1) {
outputFile.delete();
throw new TooBigIndexException();
}
@@ -427,7 +429,7 @@
Logger.minor(this, "Spider: indexes regenerated.");
}
- public void generateSubIndex(String filename) {
+ public void generateSubIndex(Config config, String filename) {
// generates the new subIndex
File outputFile = new File(filename);
BufferedOutputStream fos;
@@ -470,22 +472,22 @@
/* -> title */
Element subHeaderElement =
xmlDoc.createElement("title");
- Text subHeaderText =
xmlDoc.createTextNode(xmlSpider.getConfig().getIndexTitle());
+ Text subHeaderText =
xmlDoc.createTextNode(config.getIndexTitle());
subHeaderElement.appendChild(subHeaderText);
headerElement.appendChild(subHeaderElement);
/* -> owner */
subHeaderElement = xmlDoc.createElement("owner");
- subHeaderText =
xmlDoc.createTextNode(xmlSpider.getConfig().getIndexOwner());
+ subHeaderText =
xmlDoc.createTextNode(config.getIndexOwner());
subHeaderElement.appendChild(subHeaderText);
headerElement.appendChild(subHeaderElement);
/* -> owner email */
- if (xmlSpider.getConfig().getIndexOwnerEmail() != null)
{
+ if (config.getIndexOwnerEmail() != null) {
subHeaderElement =
xmlDoc.createElement("email");
- subHeaderText =
xmlDoc.createTextNode(xmlSpider.getConfig().getIndexOwnerEmail());
+ subHeaderText =
xmlDoc.createTextNode(config.getIndexOwnerEmail());
subHeaderElement.appendChild(subHeaderText);
headerElement.appendChild(subHeaderElement);
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs