123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- import static java.nio.file.StandardWatchEventKinds.ENTRY_CREATE;
- import java.io.BufferedWriter;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.nio.file.FileSystems;
- import java.nio.file.Path;
- import java.nio.file.Paths;
- import java.nio.file.WatchEvent;
- import java.nio.file.WatchKey;
- import java.nio.file.WatchService;
- import java.text.DateFormat;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import java.util.Enumeration;
- import java.util.Properties;
- import java.util.logging.FileHandler;
- import java.util.logging.Logger;
- import java.util.logging.SimpleFormatter;
- /**
- *
- * @author Clindo
- */
- /***
- *
- * This DirectoryChecker uses the Watch Service API for checking the addition of
- * files in specified path This is developed as a part of TK Praktikum at TU
- * Darmstadt, Germany.
- *
- */
- public class DirectoryChecker {
- public static Logger logger = Logger.getLogger("MyLog");
- public static FileHandler fh;
-
- public static DateFormat df = new SimpleDateFormat("dd/MM/yy HH:mm:ss");
- public static Date dateobj = new Date();
-
- public static void main(String[] args) {
- logger.setUseParentHandlers(false);
- /*
- * Logger logger = Logger.getLogger(DirectoryChecker.class);
- *
- * Appender Notconsole = new ConsoleAppender(); Logger root =
- * Logger.getRootLogger(); root.addAppender(Notconsole);
- *
- * BasicConfigurator.configure();
- * logger.info("This is my first log4j's statement");
- */
- String DirPath;
- try {
- fh = new FileHandler("LogFile.log");
- logger.addHandler(fh);
- SimpleFormatter formatter = new SimpleFormatter();
- fh.setFormatter(formatter);
-
-
- logger.info("---THE LOG FOR DIRECTORY CHECKER STARTS HERE--- "+df.format(dateobj));
- File file = new File("config.xml");
- FileInputStream fileInput = new FileInputStream(file);
- Properties properties = new Properties();
- properties.loadFromXML(fileInput);
- fileInput.close();
- Enumeration enuKeys = properties.keys();
- String propName = (String) enuKeys.nextElement();
- String value = properties.getProperty(propName);
- // System.out.println(propName + ": " + value);
- DirPath = value;
- /*
- * while (enuKeys.hasMoreElements()) { String key = (String)
- * enuKeys.nextElement(); String value =
- * properties.getProperty(key); System.out.println(key + ": " +
- * value); }
- */
- WatchService watcher = FileSystems.getDefault().newWatchService();
- Path dir = Paths.get(DirPath);
- dir.register(watcher, ENTRY_CREATE); // , ENTRY_DELETE, ENTRY_MODIFY
- logger.info("Watch Service registered for dir: "
- + dir.getFileName()+df.format(dateobj));
-
- while (true) {
- WatchKey key;
- try {
- key = watcher.take();
- } catch (InterruptedException ex) {
- return;
- }
- for (WatchEvent<?> event : key.pollEvents()) {
- WatchEvent.Kind<?> kind = event.kind();
- @SuppressWarnings("unchecked")
- WatchEvent<Path> ev = (WatchEvent<Path>) event;
- Path fileName = ev.context();
- // System.out.println(kind.name() + ": " + fileName);
- /*
- * if (kind == ENTRY_MODIFY && fileName.toString().equals(
- * "DirectoryChecker.java"))
- */
- if (kind == ENTRY_CREATE) {
- logger.info("---New Folder is created by Camtasia--- "+df.format(dateobj));
-
- String htmlName=fileName.toString()+".html";
-
- System.out.println(htmlName);
- String htmlPath=DirPath+"/"+htmlName;
- appendXml(htmlPath);
- }
- }
- boolean valid = key.reset();
- if (!valid) {
- break;
- }
- }
- } catch (IOException ex) {
- System.err.println(ex);
- }
- }
-
-
-
- public static void appendXml(String htmlPath) {
- System.out.println("Append xml here");
- BufferedWriter bw = null;
- try {
- // APPEND MODE SET HERE
- bw = new BufferedWriter(new FileWriter(
- "D:/Master Studies/WS16-17/TKPraktikum/root.conf", true));
- String toAppend= "Alias /TK/WeekNumber ";
-
- logger.info("---Alias is appended to Apache Root--- "+df.format(dateobj));
-
- bw.write(toAppend+htmlPath);
- bw.newLine();
- bw.flush();
- } catch (IOException ioe) {
- ioe.printStackTrace();
- } finally { // always close the file
- if (bw != null)
- try {
- bw.close();
- } catch (IOException ioe2) {
- // just ignore it
- }
- } // end try/catch/finally
- } // end test()
- }
|