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
How to earn badges on the Atlassian Community

How to earn badges on the Atlassian Community

Badges are a great way to show off community activity, whether you’re a newbie or a Champion.

Learn more
Community showcase
Published May 30, 2018 in Marketplace Apps

Three tips for boosting your board's efficiency with Story Maps

Trello is one of the most effective tools for driving your sprints. It's customizable for every Agile team and product owners and Scrum masters (SM) love it. However, Agile teams often struggle with:...

851 views 2 9
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