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;
}