I started upgrading my JIRA plugin to JIRA v6.1.4 . so I found that import com.opensymphony.user.User; is no more there . so I thought of using crowd user . But I have to use stuff like
user.setFullName and user.setEmail but I found from https://docs.atlassian.com/software/jira/docs/api/4.4.4/deprecated-list.htmlthat it is not possible . so I went by the suggestion there and looked into similar code https://github.com/esoeproject/esoeproject/pull/1/files.
Then I thought of doing something like that and came up with
CrowdService crowdService = getCrowdService();
User crowdUser = crowdService.getUser(user.getName());
ImmutableUser.Builder userBuilder = new ImmutableUser.Builder();
userBuilder.active(crowdUser.isActive());
userBuilder.directoryId(crowdUser.getDirectoryId());
userBuilder.name(crowdUser.getName());
userBuilder.displayName(fullName);
userBuilder.emailAddress(email);
try
{
crowdService.updateUser(userBuilder.toUser());
}
catch (Throwable t)
{
smLogger.error("Couldn't update user " + user.getName(), t);
}
public CrowdService getCrowdService()
{
return (CrowdService)ContainerManager.getComponent("crowdService");
}
But It did not work and found while debugging that it threw NullPOinterException and when I started debugging it took me into ContainerManager.class and there they do
public static Object getComponent(String key) throws ComponentNotFoundException
{
return getInstance().getContainerContext().getComponent(key);
}
but when debugging I went inside getInstance and found that the returned instance itself is null. so I hope that is the problem . so WHY IS CONTAINERMANAGER INSTANCE NULL ?
should I do something to get the instance ? Please help .