Bom dia prezados
Eu estou desenvolvendo um plugin para o confluence e quando eu fço o deploy na ferramenta gera o seguinte erro
Unable to render content due to system error: java.lang.ClassCastException: infousuario.InfoUsuario cannot be cast to com.atlassian.renderer.v2.macro.Macro
O meu código abaixo
package infousuario;
import java.util.Map;
import java.util.List;
import java.util.Iterator;
import com.atlassian.renderer.RenderContext;
import com.atlassian.renderer.v2.macro.BaseMacro;
import com.atlassian.renderer.v2.macro.MacroException;
import com.atlassian.renderer.v2.RenderMode;
import com.atlassian.confluence.pages.PageManager;
import com.atlassian.confluence.pages.Page;
import com.atlassian.confluence.renderer.radeox.macros.MacroUtils;
import com.atlassian.confluence.spaces.SpaceManager;
import com.atlassian.confluence.user.AuthenticatedUserThreadLocal;
import com.atlassian.confluence.user.UserAccessor;
import com.atlassian.confluence.user.UserDetailsManager;
import com.atlassian.confluence.util.velocity.VelocityUtils;
import com.atlassian.spring.container.ContainerManager;
import com.atlassian.user.User;
import com.opensymphony.webwork.ServletActionContext;
/**
* This very simple macro shows you the very basic use-case of displaying *something* on the Confluence page where it is used.
* Use this example macro to toy around, and then quickly move on to the next example - this macro doesn't
* really show you all the fun stuff you can do with Confluence.
*/
public class InfoUsuario extends BaseMacro
{
// We just have to define the variables and the setters, then Spring injects the correct objects for us to use. Simple and efficient.
// You just need to know *what* you want to inject and use.
private static final String MACRO_BODY_TEMPLATE = "templates/infousuario.vm";
private String lotacao;
private final PageManager pageManager;
private final SpaceManager spaceManager;
public InfoUsuario(PageManager pageManager, SpaceManager spaceManager)
{
this.pageManager = pageManager;
this.spaceManager = spaceManager;
}
public boolean isInline()
{
return false;
}
public boolean hasBody()
{
return true;
}
public RenderMode getBodyRenderMode()
{
return RenderMode.NO_RENDER;
}
/**
* This method returns XHTML to be displayed on the page that uses this macro
* we just do random stuff here, trying to show how you can access the most basic
* managers and model objects. No emphasis is put on beauty of code nor on
* doing actually useful things :-)
*/
public String execute(Map params, String body, RenderContext renderContext)
throws MacroException
{
Map<String,Object> context = MacroUtils.defaultVelocityContext();
String chave = ServletActionContext.getRequest().getParameter("chave");
UserAccessor userAccessor = (UserAccessor) ContainerManager.getInstance().getContainerContext().getComponent("userAccessor");
UserDetailsManager userDetailsManager = (UserDetailsManager) ContainerManager.getInstance().getContainerContext().getComponent("userDetailsManager");
lotacao = userDetailsManager.getStringProperty(userAccessor.getUser(chave), "department");
context.put("lotação",body);
return VelocityUtils.getRenderedContent(MACRO_BODY_TEMPLATE, context);
}
}