Author: jncharpin
Date: Tue Jul 10 22:37:06 2007
New Revision: 840

Added:
   
slf4j/trunk/slf4j-converter/src/main/java/org/slf4j/converter/ReplacementWrapper.java
Removed:
   
slf4j/trunk/slf4j-converter/src/test/java/org/slf4j/converter/ConverterTest.java
Modified:
   
slf4j/trunk/slf4j-converter/src/main/java/org/slf4j/converter/AbstractMatcher.java
   slf4j/trunk/slf4j-converter/src/main/java/org/slf4j/converter/Converter.java
   slf4j/trunk/slf4j-converter/src/main/java/org/slf4j/converter/JCLMatcher.java
   
slf4j/trunk/slf4j-converter/src/main/java/org/slf4j/converter/PatternWrapper.java

Log:
on going work  adding JCL to SLF4j conversion rules

Modified: 
slf4j/trunk/slf4j-converter/src/main/java/org/slf4j/converter/AbstractMatcher.java
==============================================================================
--- 
slf4j/trunk/slf4j-converter/src/main/java/org/slf4j/converter/AbstractMatcher.java
  (original)
+++ 
slf4j/trunk/slf4j-converter/src/main/java/org/slf4j/converter/AbstractMatcher.java
  Tue Jul 10 22:37:06 2007
@@ -9,54 +9,69 @@
 
 public abstract class AbstractMatcher {
 
-  protected Logger logger;
+       protected Logger logger;
 
-  protected TreeMap<PatternWrapper, String> rulesMap;
+       protected TreeMap<PatternWrapper, ReplacementWrapper> rulesMap;
 
-  protected Writer writer;
+       protected Writer writer;
 
-  public AbstractMatcher() {
-  }
+       public AbstractMatcher() {
+       }
 
-  public static AbstractMatcher getMatcherImpl() {
-    // TODO criterias
-    return new JCLMatcher();
-  }
-
-  public void setWriter(Writer writer) {
-    this.writer = writer;
-  }
-
-  public void matches(String text) {
-    PatternWrapper patternWrapper;
-    Pattern pattern;
-    Matcher matcher;
-    String replacement;
-    Iterator rulesIter = rulesMap.keySet().iterator();
-    boolean found = false;
-    while (rulesIter.hasNext()) {
-      patternWrapper = (PatternWrapper) rulesIter.next();
-      pattern = patternWrapper.getPattern();      
-      matcher = pattern.matcher(text);
-      if (matcher.matches()) {
-        logger.info("match " + text);
-        replacement = (String) rulesMap.get(patternWrapper);
-        writer.rewrite(matcher, replacement);
-        found = true;
-        break;
-      } 
-//      else if (matcher.find()) {
-//        logger.info("found " + text + " pattern " + pattern.toString());
-//        replacement = (String) rulesMap.get(patternWrapper);
-//        writer.rewrite(matcher, replacement);
-//        found = true;
-//        break;
-//      }
-    }
-    if (!found) {
-      writer.write(text);
-    }
-  }
+       public static AbstractMatcher getMatcherImpl() {
+               // TODO criterias
+               return new JCLMatcher();
+       }
+
+       public void setWriter(Writer writer) {
+               this.writer = writer;
+       }
+
+       public void matches(String text) {
+               PatternWrapper patternWrapper;
+               Pattern pattern;
+               Matcher matcher;
+               String replacementText;
+               ReplacementWrapper replacementWrapper;
+               Iterator rulesIter = rulesMap.keySet().iterator();
+               boolean found = false;
+               while (rulesIter.hasNext()) {
+                       patternWrapper = (PatternWrapper) rulesIter.next();
+                       pattern = patternWrapper.getPattern();
+                       matcher = pattern.matcher(text);
+                       if (matcher.matches()) {
+                               logger.info("match " + text);
+                               replacementWrapper = 
rulesMap.get(patternWrapper);
+                               StringBuffer replacementBuffer = new 
StringBuffer();
+                               for (int group = 0; group <= 
matcher.groupCount(); group++) {
+                                       replacementText = 
replacementWrapper.getReplacement(group);
+                                       if (replacementText != null) {
+                                               logger.info("replacing group " 
+ group + " : "
+                                                               + 
matcher.group(group) + " with "
+                                                               + 
replacementText);
+                                               
replacementBuffer.append(replacementText);
+                                       } else if (group > 0) {
+                                               logger.info("conserving group " 
+ group + " : "
+                                                               + 
matcher.group(group));
+                                               
replacementBuffer.append(matcher.group(group));
+                                       }
+                               }
+                               writer.rewrite(matcher, 
replacementBuffer.toString());
+                               found = true;
+                               break;
+                       }
+                       // else if (matcher.find()) {
+                       // logger.info("found " + text + " pattern " + 
pattern.toString());
+                       // replacement = (String) rulesMap.get(patternWrapper);
+                       // writer.rewrite(matcher, replacement);
+                       // found = true;
+                       // break;
+                       // }
+               }
+               if (!found) {
+                       writer.write(text);
+               }
+       }
 
-  protected abstract void initRules();
+       protected abstract void initRules();
 }

Modified: 
slf4j/trunk/slf4j-converter/src/main/java/org/slf4j/converter/Converter.java
==============================================================================
--- 
slf4j/trunk/slf4j-converter/src/main/java/org/slf4j/converter/Converter.java    
    (original)
+++ 
slf4j/trunk/slf4j-converter/src/main/java/org/slf4j/converter/Converter.java    
    Tue Jul 10 22:37:06 2007
@@ -8,9 +8,6 @@
 import java.io.FileReader;
 import java.io.BufferedReader;
 import java.nio.channels.FileChannel;
-import java.util.regex.Pattern;
-import java.util.regex.Matcher;
-
 import java.util.Iterator;
 import java.util.List;
 import java.util.ArrayList;
@@ -19,196 +16,196 @@
 import org.slf4j.LoggerFactory;
 
 public class Converter {
-  private Logger logger;
+       private Logger logger;
 
-  private List<File> javaFiles;
+       private List<File> javaFiles;
 
-  private AbstractMatcher matcher;
+       private AbstractMatcher matcher;
 
-  private Writer writer;
+       private Writer writer;
 
-  private String source;
-
-  private String destination;
-
-  /**
-   * @param args
-   */
-  public static void main(String[] args) {
-
-    Converter converter = new Converter();
-    converter.init();
-
-    converter.getPaths();
-    File fileSource = converter.initSource();
-    File fileDest = converter.initDestination();
-    converter.copy(fileSource);
-    converter.selectFiles(fileDest);
-    converter.convert(converter.javaFiles);
-  }
-
-  public void init() {
-    logger = LoggerFactory.getLogger(Converter.class);
-    matcher = AbstractMatcher.getMatcherImpl();
-    writer = new Writer();
-    matcher.setWriter(writer);
-  }
-
-  /**
-   * 
-   * 
-   */
-  private void getPaths() {
-    source = "c:/projets/slf4j/slf4j-converter/src";
-    destination = "c:/projets/slf4j/slf4j-converter/witness";
-  }
-
-  /**
-   * 
-   * @return
-   */
-  private File initSource() {
-    File fileSource = new File(source);
-    if (!fileSource.isDirectory()) {
-      logger.info("source path is not a valid source directory");
-    }
-    return fileSource;
-  }
-
-  /**
-   * 
-   * @return
-   */
-  private File initDestination() {
-    File fileDest = new File(destination);
-    if (fileDest.exists()) {
-      delete(fileDest);
-    }
-    fileDest.mkdir();
-    return fileDest;
-  }
-
-  /**
-   * 
-   * @param fdest
-   */
-  private void delete(File fdest) {
-    if (fdest.isDirectory()) {
-      File[] files = fdest.listFiles();
-      if (files != null) {
-        for (int i = 0; i < files.length; i++) {
-          delete(files[i]);
-        }
-      }
-      fdest.delete();
-      //logger.info("Deleting " + fdest.getName());
-    } else {
-      //logger.info("Deleting " + fdest.getName());
-      fdest.delete();
-    }
-  }
-
-  /**
-   * 
-   * @param fsource
-   */
-  private void copy(File fsource) {
-    String curentFileName = fsource.getAbsolutePath()
-        .substring(source.length());
-    File fdest = new File(destination + "/" + curentFileName);
-    if (fsource.isDirectory()) {
-      //logger.info("Current directory " + fsource.getAbsolutePath());
-      fdest.mkdir();
-      //logger.info("New directory " + fdest.getAbsolutePath());
-      File[] files = fsource.listFiles();
-      if (files != null) {
-        for (int i = 0; i < files.length; i++) {
-          copy(files[i]);
-        }
-      }
-    } else {
-          copy(fsource, fdest);
-        }
-  }
-
-  private void copy(File fsource, File fdest){
-    try {
-      FileInputStream fis = new FileInputStream(fsource);
-      FileOutputStream fos = new FileOutputStream(fdest);
-      FileChannel channelSource = fis.getChannel();
-      FileChannel channelDest = fos.getChannel();
-      if (channelSource.isOpen() && channelDest.isOpen()) {
-        channelSource.transferTo(0, channelSource.size(), channelDest);
-        //logger.info("file " + fsource.getName() + " transfered");
-        channelSource.close();
-        channelDest.close();
-      } else {
-        logger.error("error copying file " + fsource.getAbsolutePath());
-      }
-
-    } catch (FileNotFoundException exc) {
-      logger.error(exc.toString());
-    } catch (IOException e) {
-      logger.error(e.toString());
-    }
-  }
-  
-  /**
-   * 
-   * @param file
-   * @return
-   */
-  private List<File> selectFiles(File file) {
-    if (javaFiles == null) {
-      javaFiles = new ArrayList<File>();
-    }
-    if (file.isDirectory()) {
-      File[] files = file.listFiles();
-      if (files != null) {
-        for (int i = 0; i < files.length; i++) {
-          selectFiles(files[i]);
-        }
-      }
-    } else {
-      if (file.getName().endsWith(".java")) {
-        javaFiles.add(file);
-        //logger.info("Adding java file " + file.getAbsolutePath());
-      }
-    }
-    return javaFiles;
-  }
-
-  /**
-   * 
-   * @param lstFiles
-   */
-  private void convert(List<File> lstFiles) {
-    Iterator<File> itFile = lstFiles.iterator();
-    while (itFile.hasNext()) {
-      File currentFile = itFile.next();
-      File newFile = new File(currentFile.getAbsolutePath()+"new");
-      //logger.info("reading file " + currentFile.getAbsolutePath());
-      try {
-        boolean isEmpty = false;
-        writer.initFileWriter(newFile);
-        FileReader freader = new FileReader(currentFile);
-        BufferedReader breader = new BufferedReader(freader);
-        String line;        
-        while (!isEmpty) {
-          line = breader.readLine();
-          if (line != null) {
-            //logger.info("reading line " + line);
-            matcher.matches(line);
-          } else {
-            isEmpty = true;
-            writer.closeFileWriter();    
-            copy(newFile, currentFile);
-            delete(newFile);
-          }
-        }
-      } catch (IOException exc) {
-        logger.error("error reading file " + exc);
-      }
-    }
-  }
+       private String source;
+
+       private String destination;
+
+       /**
+        * @param args
+        */
+       public static void main(String[] args) {
+
+               Converter converter = new Converter();
+               converter.init();
+
+               converter.getPaths();
+               File fileSource = converter.initSource();
+               File fileDest = converter.initDestination();
+               converter.copy(fileSource);
+               converter.selectFiles(fileDest);
+               converter.convert(converter.javaFiles);
+       }
+
+       public void init() {
+               logger = LoggerFactory.getLogger(Converter.class);
+               matcher = AbstractMatcher.getMatcherImpl();
+               writer = new Writer();
+               matcher.setWriter(writer);
+       }
+
+       /**
+        * 
+        * 
+        */
+       private void getPaths() {
+               source = 
"/Users/jean-noelcharpin/dev/slf4j/slf4j-converter/jcl";
+               destination = 
"/Users/jean-noelcharpin/dev/slf4j/slf4j-converter/witness";
+       }
+
+       /**
+        * 
+        * @return
+        */
+       private File initSource() {
+               File fileSource = new File(source);
+               if (!fileSource.isDirectory()) {
+                       logger.info("source path is not a valid source 
directory");
+               }
+               return fileSource;
+       }
+
+       /**
+        * 
+        * @return
+        */
+       private File initDestination() {
+               File fileDest = new File(destination);
+               if (fileDest.exists()) {
+                       delete(fileDest);
+               }
+               fileDest.mkdir();
+               return fileDest;
+       }
+
+       /**
+        * 
+        * @param fdest
+        */
+       private void delete(File fdest) {
+               if (fdest.isDirectory()) {
+                       File[] files = fdest.listFiles();
+                       if (files != null) {
+                               for (int i = 0; i < files.length; i++) {
+                                       delete(files[i]);
+                               }
+                       }
+                       fdest.delete();
+                       // logger.info("Deleting " + fdest.getName());
+               } else {
+                       // logger.info("Deleting " + fdest.getName());
+                       fdest.delete();
+               }
+       }
+
+       /**
+        * 
+        * @param fsource
+        */
+       private void copy(File fsource) {
+               String curentFileName = fsource.getAbsolutePath().substring(
+                               source.length());
+               File fdest = new File(destination + "/" + curentFileName);
+               if (fsource.isDirectory()) {
+                       // logger.info("Current directory " + 
fsource.getAbsolutePath());
+                       fdest.mkdir();
+                       // logger.info("New directory " + 
fdest.getAbsolutePath());
+                       File[] files = fsource.listFiles();
+                       if (files != null) {
+                               for (int i = 0; i < files.length; i++) {
+                                       copy(files[i]);
+                               }
+                       }
+               } else {
+                       copy(fsource, fdest);
+               }
+       }
+
+       private void copy(File fsource, File fdest) {
+               try {
+                       FileInputStream fis = new FileInputStream(fsource);
+                       FileOutputStream fos = new FileOutputStream(fdest);
+                       FileChannel channelSource = fis.getChannel();
+                       FileChannel channelDest = fos.getChannel();
+                       if (channelSource.isOpen() && channelDest.isOpen()) {
+                               channelSource.transferTo(0, 
channelSource.size(), channelDest);
+                               // logger.info("file " + fsource.getName() + " 
transfered");
+                               channelSource.close();
+                               channelDest.close();
+                       } else {
+                               logger.error("error copying file " + 
fsource.getAbsolutePath());
+                       }
+
+               } catch (FileNotFoundException exc) {
+                       logger.error(exc.toString());
+               } catch (IOException e) {
+                       logger.error(e.toString());
+               }
+       }
+
+       /**
+        * 
+        * @param file
+        * @return
+        */
+       private List<File> selectFiles(File file) {
+               if (javaFiles == null) {
+                       javaFiles = new ArrayList<File>();
+               }
+               if (file.isDirectory()) {
+                       File[] files = file.listFiles();
+                       if (files != null) {
+                               for (int i = 0; i < files.length; i++) {
+                                       selectFiles(files[i]);
+                               }
+                       }
+               } else {
+                       if (file.getName().endsWith(".java")) {
+                               javaFiles.add(file);
+                               // logger.info("Adding java file " + 
file.getAbsolutePath());
+                       }
+               }
+               return javaFiles;
+       }
+
+       /**
+        * 
+        * @param lstFiles
+        */
+       private void convert(List<File> lstFiles) {
+               Iterator<File> itFile = lstFiles.iterator();
+               while (itFile.hasNext()) {
+                       File currentFile = itFile.next();
+                       File newFile = new File(currentFile.getAbsolutePath() + 
"new");
+                       // logger.info("reading file " + 
currentFile.getAbsolutePath());
+                       try {
+                               boolean isEmpty = false;
+                               writer.initFileWriter(newFile);
+                               FileReader freader = new 
FileReader(currentFile);
+                               BufferedReader breader = new 
BufferedReader(freader);
+                               String line;
+                               while (!isEmpty) {
+                                       line = breader.readLine();
+                                       if (line != null) {
+                                               // logger.info("reading line " 
+ line);
+                                               matcher.matches(line);
+                                       } else {
+                                               isEmpty = true;
+                                               writer.closeFileWriter();
+                                               copy(newFile, currentFile);
+                                               delete(newFile);
+                                       }
+                               }
+                       } catch (IOException exc) {
+                               logger.error("error reading file " + exc);
+                       }
+               }
+       }
 }

Modified: 
slf4j/trunk/slf4j-converter/src/main/java/org/slf4j/converter/JCLMatcher.java
==============================================================================
--- 
slf4j/trunk/slf4j-converter/src/main/java/org/slf4j/converter/JCLMatcher.java   
    (original)
+++ 
slf4j/trunk/slf4j-converter/src/main/java/org/slf4j/converter/JCLMatcher.java   
    Tue Jul 10 22:37:06 2007
@@ -1,21 +1,32 @@
 package org.slf4j.converter;
 
 import java.util.TreeMap;
-import java.util.HashMap;
 import java.util.regex.Pattern;
 
 import org.slf4j.LoggerFactory;
 
 public class JCLMatcher extends AbstractMatcher {
 
-  private static PatternWrapper p1 =  new 
PatternWrapper("1",Pattern.compile("import 
org.apache.commons.logging.LogFactory;"));
-  private static PatternWrapper p2 =  new 
PatternWrapper("2",Pattern.compile("import org.apache.commons.logging.Log"));
-  private static PatternWrapper p3 =  new 
PatternWrapper("3",Pattern.compile("LogFactory.getFactory().getInstance"));
-  private static PatternWrapper p4 =  new 
PatternWrapper("4",Pattern.compile("LogFactory.getLog"));
-  private static PatternWrapper p5 =  new 
PatternWrapper("5",Pattern.compile("Log"));
-//private static Pattern p6 = new 
PatternWrapper("6",Pattern.compile("fatal\("));
-//private static Pattern p7 = new 
PatternWrapper("7",Pattern.compile("isFatalEnabled\("));
-  
+   private static PatternWrapper p0 =  new 
PatternWrapper("0",Pattern.compile("import\\s*+org.apache.commons.logging.LogFactory;"));
+   private static PatternWrapper p1 =  new 
PatternWrapper("1",Pattern.compile("import\\s*+org.apache.commons.logging.Log;"));
+   private static PatternWrapper p2 =  new 
PatternWrapper("2",Pattern.compile("(Log)(\\s+\\w+\\s*+=\\s*+)(LogFactory.getFactory\\(\\).getInstance\\()(\\w+)(.class\\);)"));
+   private static PatternWrapper p3 =  new 
PatternWrapper("3",Pattern.compile("(Log)(\\s+\\w+\\s*+=\\s*+)(LogFactory.getLog\\()(\\w+)(.class\\);)"));
+   private static PatternWrapper p4 =  new 
PatternWrapper("4",Pattern.compile("(LogFactory.getFactory\\(\\).getInstance\\()(\\w+)(.class\\);)"));
+   private static PatternWrapper p5 =  new 
PatternWrapper("5",Pattern.compile("(LogFactory.getLog\\()(\\w+)(.class\\);)"));
+   private static PatternWrapper p6 =  new 
PatternWrapper("6",Pattern.compile("(Log)(\\s+(\\w+)\\s*;)"));
+//   private static PatternWrapper p8 = new 
PatternWrapper("8",Pattern.compile("fatal\\("));
+//   private static PatternWrapper p9 = new 
PatternWrapper("9",Pattern.compile("isFatalEnabled\\("));
+ 
+   private static ReplacementWrapper r0 = new ReplacementWrapper("0","import 
org.slf4j.LoggerFactory;");
+   private static ReplacementWrapper r1 = new ReplacementWrapper("0","import 
org.slf4j.Logger;");
+   private static ReplacementWrapper r2 = new ReplacementWrapper("1","Logger");
+   static{
+          r2.addReplacement("3", "LoggerFactory.getLogger(");
+   }
+   private static ReplacementWrapper r3 = new 
ReplacementWrapper("1","LoggerFactory.getLogger(");
+   private static ReplacementWrapper r4 = new ReplacementWrapper("1", 
"Logger");
+   
+   
   public JCLMatcher() {
     super();
     logger = LoggerFactory.getLogger(JCLMatcher.class);    
@@ -23,13 +34,13 @@
   }
 
   protected void initRules() {    
-    rulesMap = new TreeMap<PatternWrapper, String>();
-    rulesMap.put(p1,"import org.slf4j.LoggerFactory;");
-    rulesMap.put(p2,"import org.slf4j.Logger;");    
-    rulesMap.put(p3,"LoggerFactory.getLogger");
-    rulesMap.put(p4,"LoggerFactory.getLogger");
-    rulesMap.put(p5,"Logger");
-//    rulesMap.put(p6,"error(");
-//    rulesMap.put(p7,"isErrorEnabled(");    
+    rulesMap = new TreeMap<PatternWrapper, ReplacementWrapper>();
+    rulesMap.put(p0,r0);
+    rulesMap.put(p1,r1);   
+    rulesMap.put(p2,r2);
+    rulesMap.put(p3,r2);
+    rulesMap.put(p4,r3);
+    rulesMap.put(p5,r3);
+    rulesMap.put(p6,r4);
   }
 }

Modified: 
slf4j/trunk/slf4j-converter/src/main/java/org/slf4j/converter/PatternWrapper.java
==============================================================================
--- 
slf4j/trunk/slf4j-converter/src/main/java/org/slf4j/converter/PatternWrapper.java
   (original)
+++ 
slf4j/trunk/slf4j-converter/src/main/java/org/slf4j/converter/PatternWrapper.java
   Tue Jul 10 22:37:06 2007
@@ -4,24 +4,25 @@
 
 public class PatternWrapper implements Comparable {
 
-  private String  index;
-  private Pattern pattern;
-  
-  public PatternWrapper(String index, Pattern pattern){
-    this.index = index;
-    this.pattern = pattern;
-  }
-  
-  public String getIndex(){
-    return index;
-  }
-  
-  public Pattern getPattern(){
-    return pattern;
-  }
-
-  public int compareTo(Object o) {    
-    String oIndex = ((PatternWrapper)o).index;  
-    return this.index.compareTo(oIndex);
-  }
+       private String index;
+
+       private Pattern pattern;
+
+       public PatternWrapper(String index, Pattern pattern) {
+               this.index = index;
+               this.pattern = pattern;
+       }
+
+       public String getIndex() {
+               return index;
+       }
+
+       public Pattern getPattern() {
+               return pattern;
+       }
+
+       public int compareTo(Object o) {
+               String oIndex = ((PatternWrapper) o).index;
+               return this.index.compareTo(oIndex);
+       }
 }

Added: 
slf4j/trunk/slf4j-converter/src/main/java/org/slf4j/converter/ReplacementWrapper.java
==============================================================================
--- (empty file)
+++ 
slf4j/trunk/slf4j-converter/src/main/java/org/slf4j/converter/ReplacementWrapper.java
       Tue Jul 10 22:37:06 2007
@@ -0,0 +1,23 @@
+package org.slf4j.converter;
+
+import java.util.HashMap;
+
+public class ReplacementWrapper {
+
+       private HashMap<String, String> replacementMap;
+
+       public ReplacementWrapper(String groupIndex, String replacement) {
+               replacementMap = new HashMap<String, String>();
+               replacementMap.put(groupIndex, replacement);
+       }
+
+       public void addReplacement(String groupIndex, String replacement) {
+               replacementMap.put(groupIndex, replacement);
+       }
+
+       public String getReplacement(int groupIndex) {
+               String resultIndex = Integer.toString(groupIndex);
+               return replacementMap.get(resultIndex);
+       }
+
+}
_______________________________________________
dev mailing list
[email protected]
http://www.slf4j.org/mailman/listinfo/dev

Reply via email to