PageRenderTime 24ms CodeModel.GetById 0ms RepoModel.GetById 1ms app.codeStats 0ms

/src/main/java/com/atlassian/jira/collector/plugin/components/ScriptletRendererImpl.java

https://bitbucket.org/knecht_andreas/jira-issue-collector-plugin/
Java | 57 lines | 48 code | 9 blank | 0 comment | 1 complexity | 5cef16efae7cc69c1966879a2da77188 MD5 | raw file
  1. package com.atlassian.jira.collector.plugin.components;
  2. import com.atlassian.jira.security.JiraAuthenticationContext;
  3. import com.atlassian.jira.util.JiraVelocityUtils;
  4. import com.atlassian.plugin.webresource.UrlMode;
  5. import com.atlassian.plugin.webresource.WebResourceManager;
  6. import com.atlassian.templaterenderer.TemplateRenderer;
  7. import org.apache.commons.lang.StringEscapeUtils;
  8. import org.apache.log4j.Logger;
  9. import java.io.IOException;
  10. import java.io.StringWriter;
  11. import java.util.Map;
  12. public class ScriptletRendererImpl implements ScriptletRenderer
  13. {
  14. private static final Logger log = Logger.getLogger(ScriptletRendererImpl.class);
  15. private final WebResourceManager webResourceManager;
  16. private final TemplateRenderer templateRenderer;
  17. private final JiraAuthenticationContext authenticationContext;
  18. public ScriptletRendererImpl(final WebResourceManager webResourceManager, final TemplateRenderer templateRenderer,
  19. final JiraAuthenticationContext authenticationContext)
  20. {
  21. this.webResourceManager = webResourceManager;
  22. this.templateRenderer = templateRenderer;
  23. this.authenticationContext = authenticationContext;
  24. }
  25. @Override
  26. public String render(final Collector collector)
  27. {
  28. final StringWriter out = new StringWriter();
  29. final Map<String, Object> context = JiraVelocityUtils.createVelocityParams(authenticationContext);
  30. context.put("collector", collector);
  31. context.put("triggerTextHtml", StringEscapeUtils.escapeJavaScript(collector.getTrigger().getText()));
  32. if (collector.getTrigger().getPosition().equals(Trigger.Position.CUSTOM))
  33. {
  34. context.put("customFunctionHtml", collector.getTrigger().getCustomFunction());
  35. }
  36. context.put("bootstrapHtml", webResourceManager.getResourceTags("com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector", UrlMode.ABSOLUTE));
  37. try
  38. {
  39. templateRenderer.render("templates/rest/scriptlet-source.vm", context, out);
  40. }
  41. catch (IOException e)
  42. {
  43. log.error("Unknown error rendering template scriptlet-source.vm", e);
  44. return "Error rendering script!";
  45. }
  46. return out.toString();
  47. }
  48. }