maven console filters cleanup
authorSergey Ignatov <sergey.ignatov@jetbrains.com>
Thu, 22 Oct 2015 14:00:24 +0000 (17:00 +0300)
committerSergey Ignatov <sergey.ignatov@jetbrains.com>
Thu, 22 Oct 2015 14:01:51 +0000 (17:01 +0300)
plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenConsoleImpl.java
plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenTestConsoleFilter.java
plugins/maven/src/test/java/org/jetbrains/idea/maven/tests/MavenSurefireReportInConsoleTest.java

index da1ac7286b17aea032624a90d02582622ec76e9b..535f4e2e1333e48ade608efcc486c9ea03885eb7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2015 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -102,7 +102,7 @@ public class MavenConsoleImpl extends MavenConsole {
 
     builder.addFilter(new MavenGroovyConsoleFilter(project));
     builder.addFilter(new MavenScalaConsoleFilter(project));
-    builder.addFilter(new MavenTestConsoleFilter(project));
+    builder.addFilter(new MavenTestConsoleFilter());
     return builder;
   }
 
index cc293e15c28727edaca0b61ba57e117f5e80b8a8..333fbb4dcf27a81788a9a5d1f7848547dfabbfe9 100644 (file)
@@ -1,3 +1,18 @@
+/*
+ * Copyright 2000-2015 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.jetbrains.idea.maven.project;
 
 import com.intellij.execution.filters.Filter;
@@ -10,22 +25,11 @@ import java.io.File;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-/**
- * @author Sergey Evdokimov
- */
 public class MavenTestConsoleFilter implements Filter {
+  private static final Pattern REPORT_DIR_PATTERN = Pattern
+    .compile("\\s*(?:\\[INFO\\] +Surefire report directory:|\\[ERROR\\] Please refer to) +(.+?)(?: for the individual test results.)?\\s*");
 
-  private static final Pattern REPORT_DIR_PATTERN = Pattern.compile("\\s*(?:\\[INFO\\] +Surefire report directory:|\\[ERROR\\] Please refer to) +(.+?)(?: for the individual test results.)?\\s*");
-//  private static final Pattern TEST_PATTERN = Pattern.compile("\\s*(Failed tests:)?\\s*(\\p{javaJavaIdentifierStart}\\p{javaJavaIdentifierPart}*)\\(((?:\\p{javaJavaIdentifierStart}\\p{javaJavaIdentifierPart}*\\.)*\\p{javaJavaIdentifierStart}\\p{javaJavaIdentifierPart}*)\\)\\s*");
-
-  private String myReportFolder;
-
-  private boolean myFailedTestsList;
-
-  private final Project myProject;
-
-  public MavenTestConsoleFilter(Project project) {
-    myProject = project;
+  public MavenTestConsoleFilter() {
   }
 
   @Nullable
@@ -35,109 +39,17 @@ public class MavenTestConsoleFilter implements Filter {
     if (matcherReportDir.matches()) {
       final String path = matcherReportDir.group(1);
 
-      myReportFolder = path;
       return new Result(entireLength - line.length() + matcherReportDir.start(1), entireLength - line.length() + matcherReportDir.end(1),
-                            new HyperlinkInfo() {
-                              @Override
-                              public void navigate(Project project) {
-                                File f = new File(path);
-                                if (f.isDirectory()) {
-                                  ShowFilePathAction.openDirectory(f);
-                                }
-                              }
-                            });
+                        new HyperlinkInfo() {
+                          @Override
+                          public void navigate(Project project) {
+                            File f = new File(path);
+                            if (f.isDirectory()) {
+                              ShowFilePathAction.openDirectory(f);
+                            }
+                          }
+                        });
     }
-
-    //if (myReportFolder != null) {
-    //  Matcher testMatcher = TEST_PATTERN.matcher(line);
-    //  if (testMatcher.matches()) {
-    //    if (testMatcher.group(1) != null) {
-    //      myFailedTestsList = true;
-    //    }
-    //
-    //    if (myFailedTestsList) {
-    //      String className = testMatcher.group(3);
-    //      String methodName = testMatcher.group(2);
-    //
-    //      PsiMethod method = null;
-    //
-    //      PsiClass[] classes = JavaPsiFacade.getInstance(myProject).findClasses(className, GlobalSearchScope.allScope(myProject));
-    //      for (PsiClass aClass : classes) {
-    //        for (PsiMethod m : aClass.findMethodsByName(methodName, true)) {
-    //          if (JUnitUtil.isTestMethod(new MethodLocation(myProject, m, new PsiLocation<PsiClass>(myProject, aClass)))) {
-    //            method = m;
-    //            break;
-    //          }
-    //        }
-    //      }
-    //
-    //      if (method != null) {
-    //        List<ResultItem> items = new ArrayList<ResultItem>(2);
-    //
-    //        final WeakReference<PsiMethod> methodRef = new WeakReference<PsiMethod>(method);
-    //
-    //        items.add(new ResultItem(entireLength - line.length() + testMatcher.start(2), entireLength - line.length() + testMatcher.end(2),
-    //                                                                  new HyperlinkInfo() {
-    //                                                                    @Override
-    //                                                                    public void navigate(Project project) {
-    //                                                                      PsiMethod method = methodRef.get();
-    //                                                                      if (method != null && method.isValid()) {
-    //                                                                        method.navigate(true);
-    //                                                                      }
-    //                                                                    }
-    //                                                                  }));
-    //
-    //        final File report = new File(myReportFolder, className + ".txt");
-    //
-    //        if (report.exists()) {
-    //          items.add(new ResultItem(entireLength - line.length() + testMatcher.start(3), entireLength - line.length() + testMatcher.end(3),
-    //                                   new IOFileHyperlinkInfo(report)));
-    //        }
-    //
-    //        return new Result(items);
-    //
-    //      }
-    //    }
-    //  }
-    //  else {
-    //    myFailedTestsList = false;
-    //  }
-    //}
-
     return null;
   }
-
-  //private class IOFileHyperlinkInfo implements FileHyperlinkInfo {
-  //  private final File myReport;
-  //
-  //  private OpenFileDescriptor myDescriptor;
-  //  private boolean myInitialized;
-  //
-  //  public IOFileHyperlinkInfo(File report) {
-  //    myReport = report;
-  //  }
-  //
-  //  @Nullable
-  //  @Override
-  //  public OpenFileDescriptor getDescriptor() {
-  //    if (!myInitialized) {
-  //      VirtualFile virtualFile = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(myReport);
-  //      if (virtualFile != null) {
-  //        myDescriptor = new OpenFileDescriptor(myProject, virtualFile);
-  //      }
-  //
-  //      myInitialized = true;
-  //    }
-  //    return myDescriptor;
-  //  }
-  //
-  //  @Override
-  //  public void navigate(Project project) {
-  //    final OpenFileDescriptor fileDesc = getDescriptor();
-  //
-  //    if (fileDesc != null && fileDesc.getFile().isValid()) {
-  //      FileEditorManager.getInstance(project).openTextEditor(fileDesc, true);
-  //    }
-  //  }
-  //}
 }
index 240f2e8fa3c5008a1d169cc48f9d944cac610c30..1ccba154c66b94938e92cf922da1ffb0c3ff7c2b 100644 (file)
@@ -1,11 +1,25 @@
+/*
+ * Copyright 2000-2015 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.jetbrains.idea.maven.tests;
 
 import com.intellij.execution.filters.Filter;
 import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase;
-import junit.framework.Assert;
+import com.intellij.util.containers.ContainerUtil;
 import org.jetbrains.idea.maven.project.MavenTestConsoleFilter;
 
-import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
@@ -19,7 +33,7 @@ public class MavenSurefireReportInConsoleTest extends LightCodeInsightFixtureTes
   @Override
   protected void setUp() throws Exception {
     super.setUp();
-    myFilter = new MavenTestConsoleFilter(getProject());
+    myFilter = new MavenTestConsoleFilter();
   }
 
   private List<String> passLine(String line) {
@@ -30,10 +44,10 @@ public class MavenSurefireReportInConsoleTest extends LightCodeInsightFixtureTes
     Filter.Result result = myFilter.applyFilter(line, line.length());
     if (result == null) return Collections.emptyList();
 
-    List<String> res = new ArrayList<String>();
+    List<String> res = ContainerUtil.newArrayList();
 
     for (Filter.ResultItem item : result.getResultItems()) {
-      res.add(line.substring(item.highlightStartOffset, item.highlightEndOffset));
+      res.add(line.substring(item.getHighlightStartOffset(), item.getHighlightEndOffset()));
     }
 
     return res;
@@ -47,10 +61,9 @@ public class MavenSurefireReportInConsoleTest extends LightCodeInsightFixtureTes
 
     String tempDirPath = myFixture.getTempDirPath();
 
-    Assert.assertEquals(passLine("[INFO] Scanning for projects..."), Collections.emptyList());
-    Assert.assertEquals(passLine("[INFO] Surefire report directory: " + tempDirPath), Collections.singletonList(tempDirPath));
-    Assert.assertEquals(passLine("[ERROR] Please refer to " + tempDirPath + " for the individual test results."), Collections.singletonList(
+    assertEquals(passLine("[INFO] Scanning for projects..."), Collections.emptyList());
+    assertEquals(passLine("[INFO] Surefire report directory: " + tempDirPath), Collections.singletonList(tempDirPath));
+    assertEquals(passLine("[ERROR] Please refer to " + tempDirPath + " for the individual test results."), Collections.singletonList(
       tempDirPath));
   }
-
 }