Revision: 6320
Author: [email protected]
Date: Wed Oct  7 18:58:00 2009
Log: The old uses of getCanonicalName() blithely assumed that the  
symlink-resolved
name was, in fact, still the same as the unresolved name.  Oops.

Also tweaked use of List.toArray by giving it an correctly-sized argument
(avoiding the need to allocate a zero-size array, and then the real one),  
and to
remove the superfluous <copy> in ant.
http://code.google.com/p/google-web-toolkit/source/detail?r=6320

Modified:
  /trunk/build.xml
   
/trunk/tools/api-checker/src/com/google/gwt/tools/apichecker/ApiCompatibilityChecker.java

=======================================
--- /trunk/build.xml    Wed Aug  5 12:55:36 2009
+++ /trunk/build.xml    Wed Oct  7 18:58:00 2009
@@ -171,10 +171,6 @@

    <target name="apicheck-nobuild"
      description="[action] Checks API compatibility to prior GWT revision">
-    <copy tofile="${gwt.build.out}/userApi.conf" filtering="false"
-          file="${gwt.apicheck.config}"
-          overwrite="true">
-    </copy>
      <java failonerror="true" fork="true"
             
classname="com.google.gwt.tools.apichecker.ApiCompatibilityChecker">
        <jvmarg line="-Xmx512m" />
@@ -188,7 +184,7 @@
        <arg value="-refJar"/>
        <arg  
path="${gwt.root}/tools/api-checker/reference/gwt-dev-modified.jar:${gwt.root}/tools/api-checker/reference/gwt-user-modified.jar"/>
        <arg value="-configFile"/>
-      <arg file="${gwt.build.out}/userApi.conf"/>
+      <arg file="${gwt.apicheck.config}"/>
        <arg value="-logLevel"/>
        <arg value="ERROR"/>
      </java>
=======================================
---  
/trunk/tools/api-checker/src/com/google/gwt/tools/apichecker/ApiCompatibilityChecker.java
        
Mon Jul 13 05:30:55 2009
+++  
/trunk/tools/api-checker/src/com/google/gwt/tools/apichecker/ApiCompatibilityChecker.java
        
Wed Oct  7 18:58:00 2009
@@ -1,12 +1,12 @@
  /*
   * Copyright 2008 Google Inc.
- *
+ *
   * 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
@@ -53,8 +53,8 @@
  /**
   * {...@link ApiCompatibilityChecker} Main class to check if the new API is
   * compatible with the existing API.
- *
- *
+ *
+ *
   * <p>
   * To compute API diffs, follow these 2 steps:
   * <ol>
@@ -62,14 +62,14 @@
   * <li>call getApiDiff on the {...@code ApiDiffGenerator}
   * </ol>
   * </p>
- *
+ *
   * <p>
   * An {...@code ApiContainer} object is a list of {...@link ApiPackage} 
objects.
   * {...@code ApiPackage} objects themselves are list of {...@link ApiClass}  
objects.
   * {...@code ApiClass} objects contain list of {...@code ApiConstructor}, 
{...@code
   * ApiMethod}, and {...@code JField} objects.
   * </p>
- *
+ *
   * <p>
   * Each {...@code ApiDiffGenerator} object computes the list of intersecting  
and
   * missing {...@link ApiPackageDiffGenerator} objects. Each {...@code
@@ -80,12 +80,12 @@
   * for constructors, {...@link ApiMethod} for methods, and {...@link 
ApiField}  
for
   * fields.
   * </p>
- *
+ *
   * <p>
   * For each intersecting API member, a list of {...@link ApiChange} objects is
   * stored. Each ApiChange object encodes a specific {...@code ApiChange} like
   * adding the 'final' keyword to the API member.
- *
+ *
   */
  public class ApiCompatibilityChecker extends ToolBase {

@@ -212,7 +212,7 @@
        // initialize the ant scanner
        excludeScanner = new ZipScanner();
        List<String> list = new ArrayList<String>(excludedPaths);
-      excludeScanner.setIncludes(list.toArray(new String[0]));
+      excludeScanner.setIncludes(list.toArray(new String[list.size()]));
        excludeScanner.addDefaultExcludes();
        excludeScanner.setCaseSensitive(true);
        excludeScanner.init();
@@ -284,10 +284,12 @@

      private boolean isIncluded(String fileName) {
        if (excludeScanner.match(fileName)) {
+        logger.log(TreeLogger.SPAM, fileName + " is excluded");
          return false;
        }
        for (String includedPath : includedPaths) {
          if (fileName.startsWith(includedPath)) {
+          logger.log(TreeLogger.SPAM, fileName + " is not excluded, and is  
included by " + includedPath);
            return true;
          }
        }
@@ -319,9 +321,9 @@

        String fullExcludedPaths[] = new  
String[excludedPathsAsString.size()];
        int count = 0;
-      String dirRootCanonicalPath = getFileFromName("dirRoot: ",  
dirRoot).getCanonicalPath();
+      String dirRootAbsolutePath = getFileFromName("dirRoot: ",  
dirRoot).getAbsolutePath();
        for (String excludedPath : excludedPathsAsString) {
-        fullExcludedPaths[count++] = dirRootCanonicalPath + "/" +  
excludedPath;
+        fullExcludedPaths[count++] = dirRootAbsolutePath + "/" +  
excludedPath;
        }

        // initialize the ant scanner
@@ -372,7 +374,7 @@
          if (file.getName().startsWith(".") ||  
file.getName().equals("CVS")) {
            continue;
          }
-        if (isExcludedFile(file.getCanonicalPath())) {
+        if (isExcludedFile(file.getAbsolutePath())) {
            // do not process the subtree
            logger.log(TreeLogger.DEBUG,
                "not traversing " + file.toURI().toURL(), null);
@@ -904,7 +906,7 @@
     * "java.util.ArrayList::size() MISSING". The {...@code ApiElement} is
     * represented as the string obtained by invoking the  
getRelativeSignature()
     * method on {...@link ApiElement}.
-   *
+   *
     */
    private Set<String> readWhiteListFromFile(FileReader fr) throws  
IOException {
      Set<String> hashSet = new HashSet<String>();

--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---

Reply via email to