Author: olamy
Date: Thu Mar 22 17:53:03 2012
New Revision: 1303924

URL: http://svn.apache.org/viewvc?rev=1303924&view=rev
Log:
fix dependency tree calculation

Modified:
    
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/TreeEntry.java
    
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultBrowseService.java

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/TreeEntry.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/TreeEntry.java?rev=1303924&r1=1303923&r2=1303924&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/TreeEntry.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/TreeEntry.java
 Thu Mar 22 17:53:03 2012
@@ -18,6 +18,8 @@ package org.apache.archiva.rest.api.mode
  * under the License.
  */
 
+import org.codehaus.jackson.annotate.JsonIgnore;
+
 import javax.xml.bind.annotation.XmlRootElement;
 import java.io.Serializable;
 import java.util.ArrayList;
@@ -33,9 +35,11 @@ public class TreeEntry
 
     private List<TreeEntry> childs = new ArrayList<TreeEntry>();
 
-
     private Artifact artifact;
 
+    @JsonIgnore
+    private TreeEntry parent;
+
     public TreeEntry()
     {
         // no op
@@ -66,4 +70,16 @@ public class TreeEntry
     {
         this.childs = childs;
     }
+
+    @JsonIgnore
+    public TreeEntry getParent()
+    {
+        return parent;
+    }
+
+    @JsonIgnore
+    public void setParent( TreeEntry parent )
+    {
+        this.parent = parent;
+    }
 }

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultBrowseService.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultBrowseService.java?rev=1303924&r1=1303923&r2=1303924&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultBrowseService.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultBrowseService.java
 Thu Mar 22 17:53:03 2012
@@ -510,12 +510,17 @@ public class DefaultBrowseService
     private static class TreeDependencyNodeVisitor
         implements DependencyNodeVisitor
     {
+
         final List<TreeEntry> treeEntries;
 
         private TreeEntry currentEntry;
 
+
         private DependencyNode firstNode;
 
+
+        boolean firstChild = true;
+
         private TreeDependencyNodeVisitor( List<TreeEntry> treeEntries )
         {
             this.treeEntries = treeEntries;
@@ -523,51 +528,35 @@ public class DefaultBrowseService
 
         public boolean visit( DependencyNode node )
         {
+            TreeEntry entry = new TreeEntry( new 
BeanReplicator().replicateBean( node.getArtifact(), Artifact.class ) );
+            entry.setParent( currentEntry );
+            currentEntry = entry;
+
             if ( firstNode == null )
             {
                 firstNode = node;
-            }
-            if ( currentEntry == null )
-            {
-                currentEntry =
-                    new TreeEntry( new BeanReplicator().replicateBean( 
node.getArtifact(), Artifact.class ) );
                 treeEntries.add( currentEntry );
             }
             else
             {
-                if ( node.getChildren().isEmpty() )
-                {
-                    currentEntry.getChilds().add(
-                        new TreeEntry( new BeanReplicator().replicateBean( 
node.getArtifact(), Artifact.class ) ) );
-                }
-            }
-
-            if ( !node.getChildren().isEmpty() )
-            {
-                for ( DependencyNode dependencyNode : (List<DependencyNode>) 
node.getChildren() )
-                {
-                    if ( dependencyNode.getChildren().isEmpty() )
-                    {
-                        this.currentEntry.getChilds().add( new TreeEntry(
-                            new BeanReplicator().replicateBean( 
dependencyNode.getArtifact(), Artifact.class ) ) );
-                    }
-                    else
-                    {
-                        TreeEntry backup = this.currentEntry;
-                        this.currentEntry = new TreeEntry(
-                            new BeanReplicator().replicateBean( 
dependencyNode.getArtifact(), Artifact.class ) );
-                        visit( dependencyNode );
-                        this.currentEntry = backup;
-                    }
-                }
+                currentEntry.getParent().getChilds().add( currentEntry );
             }
-
             return true;
         }
 
         public boolean endVisit( DependencyNode node )
         {
-            firstNode = null;
+            /*
+            if ( node.getChildren().isEmpty() )
+            {
+                currentEntry = currentEntry.getParent();
+            }
+            else
+            {
+
+            } */
+            currentEntry = currentEntry.getParent();
+            firstChild = false;
             return true;
         }
 


Reply via email to