You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lo...@apache.org on 2009/08/12 18:37:10 UTC

svn commit: r803587 - in /myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/java/org/apache/myfaces/tobago/apt: AnnotationDeclarationVisitorCollector.java TaglibAnnotationVisitor.java

Author: lofwyr
Date: Wed Aug 12 16:37:09 2009
New Revision: 803587

URL: http://svn.apache.org/viewvc?rev=803587&view=rev
Log:
TOBAGO-782: APT Generator should used sorted collections of elements to produce stable output.

Modified:
    myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/java/org/apache/myfaces/tobago/apt/AnnotationDeclarationVisitorCollector.java
    myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/java/org/apache/myfaces/tobago/apt/TaglibAnnotationVisitor.java

Modified: myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/java/org/apache/myfaces/tobago/apt/AnnotationDeclarationVisitorCollector.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/java/org/apache/myfaces/tobago/apt/AnnotationDeclarationVisitorCollector.java?rev=803587&r1=803586&r2=803587&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/java/org/apache/myfaces/tobago/apt/AnnotationDeclarationVisitorCollector.java (original)
+++ myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/java/org/apache/myfaces/tobago/apt/AnnotationDeclarationVisitorCollector.java Wed Aug 12 16:37:09 2009
@@ -24,9 +24,9 @@
 import com.sun.mirror.util.SimpleDeclarationVisitor;
 
 import java.util.ArrayList;
-import java.util.HashSet;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.List;
-import java.util.Set;
 
 /*
  * Created: Mar 22, 2005 8:12:24 PM
@@ -34,20 +34,35 @@
  */
 public class AnnotationDeclarationVisitorCollector extends SimpleDeclarationVisitor {
 
-  private Set<MethodDeclaration> collectedMethodDeclarations = new HashSet<MethodDeclaration>();
-  private Set<ClassDeclaration> collectedClassDeclarations = new HashSet<ClassDeclaration>();
-  private Set<InterfaceDeclaration> collectedInterfaceDeclarations = new HashSet<InterfaceDeclaration>();
+  private List<MethodDeclaration> collectedMethodDeclarations = new ArrayList<MethodDeclaration>();
+  private List<ClassDeclaration> collectedClassDeclarations = new ArrayList<ClassDeclaration>();
+  private List<InterfaceDeclaration> collectedInterfaceDeclarations = new ArrayList<InterfaceDeclaration>();
   private List<PackageDeclaration> collectedPackageDeclarations = new ArrayList<PackageDeclaration>();
 
-  public Set<MethodDeclaration> getCollectedMethodDeclarations() {
+  public List<MethodDeclaration> getCollectedMethodDeclarations() {
+    Collections.sort(collectedMethodDeclarations, new Comparator<MethodDeclaration>() {
+      public int compare(MethodDeclaration d1, MethodDeclaration d2) {
+          return d1.getSimpleName().compareTo(d2.getSimpleName());
+      }
+    });
     return collectedMethodDeclarations;
   }
 
-  public Set<ClassDeclaration> getCollectedClassDeclarations() {
+  public List<ClassDeclaration> getCollectedClassDeclarations() {
+    Collections.sort(collectedClassDeclarations, new Comparator<ClassDeclaration>() {
+      public int compare(ClassDeclaration d1, ClassDeclaration d2) {
+        return d1.getSimpleName().compareTo(d2.getSimpleName());
+      }
+    });
     return collectedClassDeclarations;
   }
 
-  public Set<InterfaceDeclaration> getCollectedInterfaceDeclarations() {
+  public List<InterfaceDeclaration> getCollectedInterfaceDeclarations() {
+    Collections.sort(collectedInterfaceDeclarations, new Comparator<InterfaceDeclaration>() {
+      public int compare(InterfaceDeclaration d1, InterfaceDeclaration d2) {
+        return d1.getSimpleName().compareTo(d2.getSimpleName());
+      }
+    });
     return collectedInterfaceDeclarations;
   }
 

Modified: myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/java/org/apache/myfaces/tobago/apt/TaglibAnnotationVisitor.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/java/org/apache/myfaces/tobago/apt/TaglibAnnotationVisitor.java?rev=803587&r1=803586&r2=803587&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/java/org/apache/myfaces/tobago/apt/TaglibAnnotationVisitor.java (original)
+++ myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/java/org/apache/myfaces/tobago/apt/TaglibAnnotationVisitor.java Wed Aug 12 16:37:09 2009
@@ -337,8 +337,7 @@
   }
 
   private InterfaceDeclaration getInterfaceDeclaration(String name) {
-    Set<InterfaceDeclaration> declarations = getCollectedInterfaceDeclarations();
-    for (InterfaceDeclaration declaration : declarations) {
+    for (InterfaceDeclaration declaration : getCollectedInterfaceDeclarations()) {
       if (name.equals(declaration.getQualifiedName())) {
         return declaration;
       }