package org.ariadne_eu.utils;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.Authenticator;
import java.net.PasswordAuthentication;
import java.net.URL;
import java.net.URLConnection;
import org.ariadne.config.PropertiesManager;
import org.ariadne.util.IOUtilsv2;
import org.ariadne_eu.utils.config.RepositoryConstants;
import org.ariadne_eu.utils.lucene.reindex.ReIndexFSImpl;
public class IndexFsOfflineV2 {
public static void main(String[] args) throws FileNotFoundException, IOException {
final PropertiesManager propmanager = new PropertiesManager();
if(args.length < 1) {
propmanager.init("reindex.properties");
} else if(args.length == 1) {
propmanager.init(args[0]);
} else {
System.out.println("Usage : ");
System.exit(0);
}
RepositoryConstants.init(RepositoryConstants.class.getCanonicalName());
PropertiesManager.getInstance().init(propmanager.getProperty("repo.propertiesfile"));
String newIndexDir = propmanager.getProperty("index.tempfolder");
File newdir = new File(newIndexDir);
newdir.mkdir();
String oldIndexDir = PropertiesManager.getInstance().getProperty(RepositoryConstants.getInstance().SR_LUCENE_INDEXDIR);
PropertiesManager.getInstance().get$properties().put(RepositoryConstants.getInstance().SR_LUCENE_INDEXDIR, newIndexDir);
ReIndexFSImpl reindex = new ReIndexFSImpl();
reindex.reIndexMetadata();
boolean doSwitch = false;
if(propmanager.getProperty("repo.switch").trim().equalsIgnoreCase("true")) doSwitch = true;
if(doSwitch) {
File destDir = new File(oldIndexDir);
File oldDir = new File(destDir.getParent() + File.separator + destDir.getName() + ".old");
if(oldDir.exists())IOUtilsv2.deleteDirectory(oldDir);
destDir.renameTo(oldDir);
newdir.renameTo(destDir);
String reloadUrl = propmanager.getProperty("repo.tomcat.reloadUrl");
try {
Authenticator.setDefault(new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
String username = propmanager.getProperty("repo.tomcat.username");
String pwd = propmanager.getProperty("repo.tomcat.password");
return new PasswordAuthentication (username, pwd.toCharArray());
}
});
URL url = new URL(reloadUrl);
URLConnection http = url.openConnection();
}catch (Exception e) {
System.out.println(e);
}
}
}
}