You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xbean-scm@geronimo.apache.org by gn...@apache.org on 2009/04/23 16:03:02 UTC

svn commit: r767926 - in /geronimo/xbean/trunk/xbean-reflect/src: main/java/org/apache/xbean/recipe/ObjectGraph.java test/java/org/apache/xbean/recipe/AbstractObjectGraphTest.java

Author: gnodet
Date: Thu Apr 23 14:03:01 2009
New Revision: 767926

URL: http://svn.apache.org/viewvc?rev=767926&view=rev
Log:
Fix bad creation order of beans

Modified:
    geronimo/xbean/trunk/xbean-reflect/src/main/java/org/apache/xbean/recipe/ObjectGraph.java
    geronimo/xbean/trunk/xbean-reflect/src/test/java/org/apache/xbean/recipe/AbstractObjectGraphTest.java

Modified: geronimo/xbean/trunk/xbean-reflect/src/main/java/org/apache/xbean/recipe/ObjectGraph.java
URL: http://svn.apache.org/viewvc/geronimo/xbean/trunk/xbean-reflect/src/main/java/org/apache/xbean/recipe/ObjectGraph.java?rev=767926&r1=767925&r2=767926&view=diff
==============================================================================
--- geronimo/xbean/trunk/xbean-reflect/src/main/java/org/apache/xbean/recipe/ObjectGraph.java (original)
+++ geronimo/xbean/trunk/xbean-reflect/src/main/java/org/apache/xbean/recipe/ObjectGraph.java Thu Apr 23 14:03:01 2009
@@ -125,7 +125,7 @@
         List<Node> sortedNodes = new ArrayList<Node>(nodes.size());
         LinkedList<Node> leafNodes = new LinkedList<Node>();
         for (Node n : nodes.values()) {
-            if (n.refernceCount == 0) {
+            if (n.referenceCount == 0) {
                 // if the node is totally isolated (no in or out refs),
                 // move it directly to the finished list, so they are first
                 if (n.references.size() == 0) {
@@ -141,8 +141,8 @@
             Node node = leafNodes.removeFirst();
             sortedNodes.add(node);
             for (Node ref : node.references) {
-                ref.refernceCount--;
-                if (ref.refernceCount == 0) {
+                ref.referenceCount--;
+                if (ref.referenceCount == 0) {
                     leafNodes.add(ref);
                 }
             }
@@ -215,11 +215,12 @@
 
                 // if this is a constructor recipe, we need to add a reference link
                 if (constructorRecipes.contains(nestedRecipe)) {
-                    node.refernceCount++;
+                    node.referenceCount++;
                     nestedNode.references.add(node);
                 }
             } else {
                 nestedRecipes.addAll(nestedRecipe.getNestedRecipes());
+                constructorRecipes.addAll(nestedRecipe.getConstructorRecipes());
             }
         }
 
@@ -230,7 +231,7 @@
         String name;
         Recipe recipe;
         final List<Node> references = new ArrayList<Node>();
-        int refernceCount;
+        int referenceCount;
     }
 
     private static class WrapperExecutionContext extends ExecutionContext {

Modified: geronimo/xbean/trunk/xbean-reflect/src/test/java/org/apache/xbean/recipe/AbstractObjectGraphTest.java
URL: http://svn.apache.org/viewvc/geronimo/xbean/trunk/xbean-reflect/src/test/java/org/apache/xbean/recipe/AbstractObjectGraphTest.java?rev=767926&r1=767925&r2=767926&view=diff
==============================================================================
--- geronimo/xbean/trunk/xbean-reflect/src/test/java/org/apache/xbean/recipe/AbstractObjectGraphTest.java (original)
+++ geronimo/xbean/trunk/xbean-reflect/src/test/java/org/apache/xbean/recipe/AbstractObjectGraphTest.java Thu Apr 23 14:03:01 2009
@@ -108,13 +108,13 @@
 
         graph = new ObjectGraph(createNewRepository());
         created = graph.createAll("Bends");
-        assertEquals(Arrays.asList("Radiohead", "Bends", "High and Dry", "Fake Plastic Trees"), new ArrayList<String>(created.keySet()));
+        assertEquals(Arrays.asList("Radiohead", "High and Dry", "Fake Plastic Trees", "Bends"), new ArrayList<String>(created.keySet()));
 
         graph = new ObjectGraph(createNewRepository());
         created = graph.createAll("Radiohead");
         assertEquals(Arrays.asList("Radiohead"), new ArrayList<String>(created.keySet()));
         created = graph.createAll("Bends");
-        assertEquals(Arrays.asList("Bends", "High and Dry", "Fake Plastic Trees"), new ArrayList<String>(created.keySet()));
+        assertEquals(Arrays.asList("High and Dry", "Fake Plastic Trees", "Bends"), new ArrayList<String>(created.keySet()));
     }
 
     public void testCreateUnknown() {
@@ -149,6 +149,7 @@
     }
 
     public void testCircularDependency() {
+        // Add a constructor dependency
         Repository repository = createNewRepository();
         ObjectRecipe recipe = (ObjectRecipe) repository.get("Radiohead");
         recipe.setConstructorArgNames(new String[] {"name", "albums"});
@@ -163,10 +164,11 @@
                     expected.getCircularDependency());
         }
 
-
+        // Add a non constructor dependency
+        // This will fail too, unless Option.LAZY_ASSIGNMENT is set
         repository = createNewRepository();
         recipe = (ObjectRecipe) repository.get("Radiohead");
-        recipe.setConstructorArgNames(new String[] {"name", "albums"});
+        recipe.setConstructorArgNames(new String[] {"name"});
         recipe.setProperty("albums", new CollectionRecipe(Arrays.asList(repository.get("Bends"))));
 
         graph = new ObjectGraph(repository);