What is the best way to load the jira application context to get the context path?

Hi,

I am developing a plugin which requires the use of context path of jira for reading some resource files. I tried various ways for getting the path but failed and got strucked. I tried system.getEnv("CATALINA_HOME"), it is working in windows environment but returning null in linux environement. Any suggestion would be greatly appreciated.

-Srinivas

1 answer

1 accepted

0 vote

Depends what you want to do - I'd reccomend using JIRA home to store resources rather than the web app folder. To get the home folder, do something like -

import com.atlassian.jira.config.util.JiraHome;
...
class MyPlugin {
    public MyPlugin(final JiraHome jiraHome)
    {
        //jiraHome.getHomePath() will give you home folder
    }
 

If you realy want to get the root contet path, then the best way is to do something like

  ServletContext servletContext = ServletContextProvider.getServletContext();
        if (servletContext == null)
        {
            log.error("No ServletContext exists.");
        }
        else
        {
            File webappServletPath = new File(servletContext.getRealPath("/"));

Hi James,

Since i donno how to get the reference of jiraHome, i tried using ServletContextProvider and i am able to get the context path. Thanks for your answer.

Appreciate if you could let me know the way to get the jiraHome reference.

Thanks,

Srinivas

Thanks for you answer.

I am getting the some exceptions while adding users to jira programatically. Could you please let me know how to resolve this in jira 4.4.4? in jira 4.0.2 the below function is working though the methods are deprecated.

public List<String> getActiveUsers(String ldapType, String sGroup)

throws EntityNotFoundException {

UserManager userManager = UserManager.getInstance();

Group grpJiraUser = userManager.getGroup(sGroup);

List<String> sUser = new ArrayList<String>(grpJiraUser.getUsers());

ArrayList<String> sCDCUsers = new ArrayList<String>();

Iterator<String> itUsers = sUser.iterator();

while (itUsers.hasNext()) {

String sUserName = (String) itUsers.next();

User usertoAct = userManager.getUser(sUserName);

String sUserEmail = usertoAct.getEmail();

if (sUserEmail.contains("@tibco-support.com")) {

sCDCUsers.add(sUserName);

}

}

if (ldapType.equalsIgnoreCase("PA")) {

sUser.removeAll(sCDCUsers);

return sUser;

} else

return sCDCUsers;

}

Suggest an answer

Log in or Sign up to answer
Atlassian Community Anniversary

Happy Anniversary, Atlassian Community!

This community is celebrating its one-year anniversary and Atlassian co-founder Mike Cannon-Brookes has all the feels.

Read more
Community showcase
Bridget Sauer
Published Thursday in Marketplace Apps

Calling all developers––You're invited to Atlas Camp 2018

 Atlas Camp   is our developer event which will take place in Barcelona, Spain  from the 6th -7th of   September . This is a great opportunity to meet other developers and get n...

73 views 0 5
Read article

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you