Skip to content

Commit

Permalink
Merge pull request #9 from rodikal/master
Browse files Browse the repository at this point in the history
JENKINS-14660 add support for Nested View plugin
  • Loading branch information
jenkins-pipeline-code committed Aug 2, 2012
2 parents 12b4f55 + ec9adea commit 9837a0f
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 25 deletions.
9 changes: 9 additions & 0 deletions pom.xml
Expand Up @@ -51,4 +51,13 @@
</pluginRepository>
</pluginRepositories>

<dependencies>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>nested-view</artifactId>
<version>1.8</version>
<optional>true</optional>
</dependency>
</dependencies>

</project>
@@ -1,25 +1,44 @@
package de.pellepelster.jenkins.walldisplay;

import hudson.model.Action;
import hudson.model.TransientViewActionFactory;
import hudson.model.View;
import java.util.ArrayList;
import java.util.List;

/**
* Adds the walldisplay link action to all views
*
* @author Christian Pelster
*/
public class WallDisplayTransientViewActionFactory extends TransientViewActionFactory {

@Override
public List<Action> createFor(View view) {

List<Action> result = new ArrayList<Action>();
result.add(new WallDisplayViewAction(view.getViewName()));
return result;

}

}
package de.pellepelster.jenkins.walldisplay;

import hudson.model.Action;
import hudson.model.TransientViewActionFactory;
import hudson.model.ViewGroup;
import hudson.model.Hudson;
import hudson.model.View;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import org.apache.commons.lang.StringUtils;

/**
* Adds the walldisplay link action to all views
*
* @author Christian Pelster
*/
public class WallDisplayTransientViewActionFactory extends TransientViewActionFactory {

@Override
public List<Action> createFor(final View view) {

List<Action> result = new ArrayList<Action>();
String viewName = view.getViewName();

if (Hudson.getInstance().getPlugin("nested-view") != null) {
ArrayList<String> viewNames = new ArrayList<String>();
viewNames.add(viewName);
ViewGroup owner = view.getOwner();
while (owner instanceof hudson.plugins.nested_view.NestedView) {
viewNames.add(((hudson.plugins.nested_view.NestedView) owner).getViewName());

This comment has been minimized.

Copy link
@mpailloncy

mpailloncy Oct 11, 2012

Member

It seems that this line cause a OOM if a nested view contains another nested view (see https://issues.jenkins-ci.org/browse/JENKINS-15482)

}
Collections.reverse(viewNames);
viewName = StringUtils.join(viewNames, "/view/");
}

result.add(new WallDisplayViewAction(viewName));
return result;

}

}

0 comments on commit 9837a0f

Please sign in to comment.