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 .
Why not use com.atlassian.jira.component.ComponentAccessor.getCrowdService() ?
Thank you very much . I used com.atlassian.jira.component.ComponentAccessor.getCrowdService() and it worked ...Thanks a lot ..
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Never used the ContainerManager myself. As a rule of thumb, I usually start off with ComponentAccessor.get<Something>Manager. If that doesn't have it, look for it in ComponentManager.getInstance().get<Something>Manager(), but beware that ComponentManager is deprecated as of JIRA 6, AFAIK. If this fails, then ComponentAccessor.getComponentInstanceOf(Something.class) should do the trick.
HTH
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thanks . Ya I used ComponentAccessor and it started working
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.