You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Lars Corneliussen (JIRA)" <ji...@codehaus.org> on 2010/06/08 10:03:12 UTC

[jira] Created: (MNG-4702) MavenProject.getActiveProfiles() does not merge active profiles from parent POMs

MavenProject.getActiveProfiles() does not merge active profiles from parent POMs
--------------------------------------------------------------------------------

                 Key: MNG-4702
                 URL: http://jira.codehaus.org/browse/MNG-4702
             Project: Maven 2 & 3
          Issue Type: Bug
    Affects Versions: 3.0-beta-1, 2.2.1
            Reporter: Lars Corneliussen
         Attachments: buggy-profiles.zip

Profiles from parent pom's are internally merged, but getActiveProfiles() doesn't return them as long as they aren't redefined in the module.

The zip contains two poms with some profiles:

buggy-profiles (activate-me, active-by-default, shared-profile)
+ buggy-module (module-activate-me, module-active-by-default, shared-profile)

Each of the profiles adds a "echo ..." to the validate-phase.

{code:title=mvn validate help:active-profiles}
------------------------------------------------------------------------
Building buggy-pom 1.0-SNAPSHOT
------------------------------------------------------------------------

--- exec-maven-plugin:1.1:exec (active-by-default) @ buggy-pom ---
"### running 'active-by-default'"

------------------------------------------------------------------------
Building buggy-module 1.0-SNAPSHOT
------------------------------------------------------------------------

--- exec-maven-plugin:1.1:exec (active-by-default) @ buggy-module ---
"### running 'active-by-default'"

--- exec-maven-plugin:1.1:exec (module-active-by-default) @ buggy-module ---
"### running 'module-active-by-default'"
..
..
Active Profiles for Project 'test:buggy-pom:pom:1.0-SNAPSHOT':

The following profiles are active:

 - active-by-default (source: pom)
 - netcologne.default (source: settings.xml)



Active Profiles for Project 'test:buggy-module:pom:1.0-SNAPSHOT':

The following profiles are active:

 - module-active-by-default (source: pom)
 - netcologne.default (source: settings.xml)
{code}

The module should also list 'active-by-default'. Even more since it is also run correctly.

Explicitely activated profiles behave the same:
{code}mvn validate help:active-profiles -P activate-me, module-activate-me{code}

When the a profile is redefined in the module (without any changes) the active-profiles list is correct:
{code}
{code}mvn validate help:active-profiles -P activate-me, module-activate-me{code}


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Commented: (MNG-4702) MavenProject.getActiveProfiles() does not merge active profiles from parent POMs

Posted by "Joerg Schaible (JIRA)" <ji...@codehaus.org>.
    [ http://jira.codehaus.org/browse/MNG-4702?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=224691#action_224691 ] 

Joerg Schaible commented on MNG-4702:
-------------------------------------

Because profiles do not work the way you think (at least in M2). The profile is POM-local i.e. if you activate a profile in a parent, it is not active for the child. This works only for profiles defines inthe settings.xml.

> MavenProject.getActiveProfiles() does not merge active profiles from parent POMs
> --------------------------------------------------------------------------------
>
>                 Key: MNG-4702
>                 URL: http://jira.codehaus.org/browse/MNG-4702
>             Project: Maven 2 & 3
>          Issue Type: Bug
>    Affects Versions: 2.2.1, 3.0-beta-1
>            Reporter: Lars Corneliussen
>            Assignee: Benjamin Bentmann
>         Attachments: buggy-profiles.zip
>
>
> Profiles from parent pom's are internally merged, but getActiveProfiles() doesn't return them as long as they aren't redefined in the module.
> The zip contains two poms with some profiles:
> buggy-profiles (activate-me, active-by-default, shared-profile)
> + buggy-module (module-activate-me, module-active-by-default, shared-profile)
> Each of the profiles adds a "echo ..." to the validate-phase.
> {code:title=mvn validate help:active-profiles}
> ------------------------------------------------------------------------
> Building buggy-pom 1.0-SNAPSHOT
> ------------------------------------------------------------------------
> --- exec-maven-plugin:1.1:exec (active-by-default) @ buggy-pom ---
> "### running 'active-by-default'"
> ------------------------------------------------------------------------
> Building buggy-module 1.0-SNAPSHOT
> ------------------------------------------------------------------------
> --- exec-maven-plugin:1.1:exec (active-by-default) @ buggy-module ---
> "### running 'active-by-default'"
> --- exec-maven-plugin:1.1:exec (module-active-by-default) @ buggy-module ---
> "### running 'module-active-by-default'"
> ..
> ..
> Active Profiles for Project 'test:buggy-pom:pom:1.0-SNAPSHOT':
> The following profiles are active:
>  - active-by-default (source: pom)
>  - netcologne.default (source: settings.xml)
> Active Profiles for Project 'test:buggy-module:pom:1.0-SNAPSHOT':
> The following profiles are active:
>  - module-active-by-default (source: pom)
>  - netcologne.default (source: settings.xml)
> {code}
> The module should also list 'active-by-default'. Even more since it is also run correctly.
> Explicitely activated profiles behave the same:
> {code}mvn validate help:active-profiles -P activate-me, module-activate-me{code}
> When the a profile is redefined in the module (without any changes) the active-profiles list is correct:
> {code}
> {code}mvn validate help:active-profiles -P activate-me, module-activate-me{code}

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Commented: (MNG-4702) MavenProject.getActiveProfiles() does not merge active profiles from parent POMs

Posted by "Lars Corneliussen (JIRA)" <ji...@codehaus.org>.
    [ http://jira.codehaus.org/browse/MNG-4702?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=224690#action_224690 ] 

Lars Corneliussen commented on MNG-4702:
----------------------------------------

Other "properties" in MavenProject are also merged into a "effective pom" model. 

Why shouldn't getActiveProfiles() return all profiles that are actually run then? They are effectively derived and therefore part of the module/pom under inspection?

> MavenProject.getActiveProfiles() does not merge active profiles from parent POMs
> --------------------------------------------------------------------------------
>
>                 Key: MNG-4702
>                 URL: http://jira.codehaus.org/browse/MNG-4702
>             Project: Maven 2 & 3
>          Issue Type: Bug
>    Affects Versions: 2.2.1, 3.0-beta-1
>            Reporter: Lars Corneliussen
>            Assignee: Benjamin Bentmann
>         Attachments: buggy-profiles.zip
>
>
> Profiles from parent pom's are internally merged, but getActiveProfiles() doesn't return them as long as they aren't redefined in the module.
> The zip contains two poms with some profiles:
> buggy-profiles (activate-me, active-by-default, shared-profile)
> + buggy-module (module-activate-me, module-active-by-default, shared-profile)
> Each of the profiles adds a "echo ..." to the validate-phase.
> {code:title=mvn validate help:active-profiles}
> ------------------------------------------------------------------------
> Building buggy-pom 1.0-SNAPSHOT
> ------------------------------------------------------------------------
> --- exec-maven-plugin:1.1:exec (active-by-default) @ buggy-pom ---
> "### running 'active-by-default'"
> ------------------------------------------------------------------------
> Building buggy-module 1.0-SNAPSHOT
> ------------------------------------------------------------------------
> --- exec-maven-plugin:1.1:exec (active-by-default) @ buggy-module ---
> "### running 'active-by-default'"
> --- exec-maven-plugin:1.1:exec (module-active-by-default) @ buggy-module ---
> "### running 'module-active-by-default'"
> ..
> ..
> Active Profiles for Project 'test:buggy-pom:pom:1.0-SNAPSHOT':
> The following profiles are active:
>  - active-by-default (source: pom)
>  - netcologne.default (source: settings.xml)
> Active Profiles for Project 'test:buggy-module:pom:1.0-SNAPSHOT':
> The following profiles are active:
>  - module-active-by-default (source: pom)
>  - netcologne.default (source: settings.xml)
> {code}
> The module should also list 'active-by-default'. Even more since it is also run correctly.
> Explicitely activated profiles behave the same:
> {code}mvn validate help:active-profiles -P activate-me, module-activate-me{code}
> When the a profile is redefined in the module (without any changes) the active-profiles list is correct:
> {code}
> {code}mvn validate help:active-profiles -P activate-me, module-activate-me{code}

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Commented: (MNG-4702) MavenProject.getActiveProfiles() does not merge active profiles from parent POMs

Posted by "Lars Corneliussen (JIRA)" <ji...@codehaus.org>.
    [ http://jira.codehaus.org/browse/MNG-4702?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=224722#action_224722 ] 

Lars Corneliussen commented on MNG-4702:
----------------------------------------

At least for module builds this is not the case. Plugin goals tied to a phase by a active profile of the parent pom are executed for the module. Just check with the attached zip. Both in 2.2 and 3.0-beta-1

> MavenProject.getActiveProfiles() does not merge active profiles from parent POMs
> --------------------------------------------------------------------------------
>
>                 Key: MNG-4702
>                 URL: http://jira.codehaus.org/browse/MNG-4702
>             Project: Maven 2 & 3
>          Issue Type: Bug
>    Affects Versions: 2.2.1, 3.0-beta-1
>            Reporter: Lars Corneliussen
>            Assignee: Benjamin Bentmann
>         Attachments: buggy-profiles.zip
>
>
> Profiles from parent pom's are internally merged, but getActiveProfiles() doesn't return them as long as they aren't redefined in the module.
> The zip contains two poms with some profiles:
> buggy-profiles (activate-me, active-by-default, shared-profile)
> + buggy-module (module-activate-me, module-active-by-default, shared-profile)
> Each of the profiles adds a "echo ..." to the validate-phase.
> {code:title=mvn validate help:active-profiles}
> ------------------------------------------------------------------------
> Building buggy-pom 1.0-SNAPSHOT
> ------------------------------------------------------------------------
> --- exec-maven-plugin:1.1:exec (active-by-default) @ buggy-pom ---
> "### running 'active-by-default'"
> ------------------------------------------------------------------------
> Building buggy-module 1.0-SNAPSHOT
> ------------------------------------------------------------------------
> --- exec-maven-plugin:1.1:exec (active-by-default) @ buggy-module ---
> "### running 'active-by-default'"
> --- exec-maven-plugin:1.1:exec (module-active-by-default) @ buggy-module ---
> "### running 'module-active-by-default'"
> ..
> ..
> Active Profiles for Project 'test:buggy-pom:pom:1.0-SNAPSHOT':
> The following profiles are active:
>  - active-by-default (source: pom)
>  - netcologne.default (source: settings.xml)
> Active Profiles for Project 'test:buggy-module:pom:1.0-SNAPSHOT':
> The following profiles are active:
>  - module-active-by-default (source: pom)
>  - netcologne.default (source: settings.xml)
> {code}
> The module should also list 'active-by-default'. Even more since it is also run correctly.
> Explicitely activated profiles behave the same:
> {code}mvn validate help:active-profiles -P activate-me, module-activate-me{code}
> When the a profile is redefined in the module (without any changes) the active-profiles list is correct:
> {code}
> {code}mvn validate help:active-profiles -P activate-me, module-activate-me{code}

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Commented: (MNG-4702) MavenProject.getActiveProfiles() does not merge active profiles from parent POMs

Posted by "Lars Corneliussen (JIRA)" <ji...@codehaus.org>.
    [ http://jira.codehaus.org/browse/MNG-4702?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=224517#action_224517 ] 

Lars Corneliussen commented on MNG-4702:
----------------------------------------

I accidently hit CTRL+Enter. So the issue got submitted before I was done describing it.

The missing config fragment (found in buggy-module/pom.xml):
{code}
<profile>
 <id>shared-profile</id>
</profile>
{code}

> MavenProject.getActiveProfiles() does not merge active profiles from parent POMs
> --------------------------------------------------------------------------------
>
>                 Key: MNG-4702
>                 URL: http://jira.codehaus.org/browse/MNG-4702
>             Project: Maven 2 & 3
>          Issue Type: Bug
>    Affects Versions: 2.2.1, 3.0-beta-1
>            Reporter: Lars Corneliussen
>         Attachments: buggy-profiles.zip
>
>
> Profiles from parent pom's are internally merged, but getActiveProfiles() doesn't return them as long as they aren't redefined in the module.
> The zip contains two poms with some profiles:
> buggy-profiles (activate-me, active-by-default, shared-profile)
> + buggy-module (module-activate-me, module-active-by-default, shared-profile)
> Each of the profiles adds a "echo ..." to the validate-phase.
> {code:title=mvn validate help:active-profiles}
> ------------------------------------------------------------------------
> Building buggy-pom 1.0-SNAPSHOT
> ------------------------------------------------------------------------
> --- exec-maven-plugin:1.1:exec (active-by-default) @ buggy-pom ---
> "### running 'active-by-default'"
> ------------------------------------------------------------------------
> Building buggy-module 1.0-SNAPSHOT
> ------------------------------------------------------------------------
> --- exec-maven-plugin:1.1:exec (active-by-default) @ buggy-module ---
> "### running 'active-by-default'"
> --- exec-maven-plugin:1.1:exec (module-active-by-default) @ buggy-module ---
> "### running 'module-active-by-default'"
> ..
> ..
> Active Profiles for Project 'test:buggy-pom:pom:1.0-SNAPSHOT':
> The following profiles are active:
>  - active-by-default (source: pom)
>  - netcologne.default (source: settings.xml)
> Active Profiles for Project 'test:buggy-module:pom:1.0-SNAPSHOT':
> The following profiles are active:
>  - module-active-by-default (source: pom)
>  - netcologne.default (source: settings.xml)
> {code}
> The module should also list 'active-by-default'. Even more since it is also run correctly.
> Explicitely activated profiles behave the same:
> {code}mvn validate help:active-profiles -P activate-me, module-activate-me{code}
> When the a profile is redefined in the module (without any changes) the active-profiles list is correct:
> {code}
> {code}mvn validate help:active-profiles -P activate-me, module-activate-me{code}

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Commented: (MNG-4702) MavenProject.getActiveProfiles() does not merge active profiles from parent POMs

Posted by "Tiggy Ziggy (JIRA)" <ji...@codehaus.org>.
    [ http://jira.codehaus.org/browse/MNG-4702?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=263429#action_263429 ] 

Tiggy Ziggy commented on MNG-4702:
----------------------------------

I consider also this as an issue because during the build of the children we can clearly see that it uses the profile from the parent.... It clearly demonstrates that Maven considers the profile defined in the parent as activated.

It means that the maven-help-plugin does not reflect the way Maven will behave :(




> MavenProject.getActiveProfiles() does not merge active profiles from parent POMs
> --------------------------------------------------------------------------------
>
>                 Key: MNG-4702
>                 URL: http://jira.codehaus.org/browse/MNG-4702
>             Project: Maven 2 & 3
>          Issue Type: Bug
>    Affects Versions: 2.2.1, 3.0-beta-1
>            Reporter: Lars Corneliussen
>         Attachments: buggy-profiles.zip
>
>
> Profiles from parent pom's are internally merged, but getActiveProfiles() doesn't return them as long as they aren't redefined in the module.
> The zip contains two poms with some profiles:
> buggy-profiles (activate-me, active-by-default, shared-profile)
> + buggy-module (module-activate-me, module-active-by-default, shared-profile)
> Each of the profiles adds a "echo ..." to the validate-phase.
> {code:title=mvn validate help:active-profiles}
> ------------------------------------------------------------------------
> Building buggy-pom 1.0-SNAPSHOT
> ------------------------------------------------------------------------
> --- exec-maven-plugin:1.1:exec (active-by-default) @ buggy-pom ---
> "### running 'active-by-default'"
> ------------------------------------------------------------------------
> Building buggy-module 1.0-SNAPSHOT
> ------------------------------------------------------------------------
> --- exec-maven-plugin:1.1:exec (active-by-default) @ buggy-module ---
> "### running 'active-by-default'"
> --- exec-maven-plugin:1.1:exec (module-active-by-default) @ buggy-module ---
> "### running 'module-active-by-default'"
> ..
> ..
> Active Profiles for Project 'test:buggy-pom:pom:1.0-SNAPSHOT':
> The following profiles are active:
>  - active-by-default (source: pom)
>  - netcologne.default (source: settings.xml)
> Active Profiles for Project 'test:buggy-module:pom:1.0-SNAPSHOT':
> The following profiles are active:
>  - module-active-by-default (source: pom)
>  - netcologne.default (source: settings.xml)
> {code}
> The module should also list 'active-by-default'. Even more since it is also run correctly.
> Explicitely activated profiles behave the same:
> {code}mvn validate help:active-profiles -P activate-me, module-activate-me{code}
> When the a profile is redefined in the module (without any changes) the active-profiles list is correct:
> {code}
> {code}mvn validate help:active-profiles -P activate-me, module-activate-me{code}

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Closed: (MNG-4702) MavenProject.getActiveProfiles() does not merge active profiles from parent POMs

Posted by "Benjamin Bentmann (JIRA)" <ji...@codehaus.org>.
     [ http://jira.codehaus.org/browse/MNG-4702?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Benjamin Bentmann closed MNG-4702.
----------------------------------

    Resolution: Not A Bug
      Assignee: Benjamin Bentmann

{{MavenProject.getActiveProfiles()}} only holds the profiles from current POM, {{MavenProject.getParent().getActiveProfiles()}} holds the parent profiles.

In Maven 3, {{MavenProject.getInjectedProfileIds()}} can be used to query all relevant profiles at once.

> MavenProject.getActiveProfiles() does not merge active profiles from parent POMs
> --------------------------------------------------------------------------------
>
>                 Key: MNG-4702
>                 URL: http://jira.codehaus.org/browse/MNG-4702
>             Project: Maven 2 & 3
>          Issue Type: Bug
>    Affects Versions: 2.2.1, 3.0-beta-1
>            Reporter: Lars Corneliussen
>            Assignee: Benjamin Bentmann
>         Attachments: buggy-profiles.zip
>
>
> Profiles from parent pom's are internally merged, but getActiveProfiles() doesn't return them as long as they aren't redefined in the module.
> The zip contains two poms with some profiles:
> buggy-profiles (activate-me, active-by-default, shared-profile)
> + buggy-module (module-activate-me, module-active-by-default, shared-profile)
> Each of the profiles adds a "echo ..." to the validate-phase.
> {code:title=mvn validate help:active-profiles}
> ------------------------------------------------------------------------
> Building buggy-pom 1.0-SNAPSHOT
> ------------------------------------------------------------------------
> --- exec-maven-plugin:1.1:exec (active-by-default) @ buggy-pom ---
> "### running 'active-by-default'"
> ------------------------------------------------------------------------
> Building buggy-module 1.0-SNAPSHOT
> ------------------------------------------------------------------------
> --- exec-maven-plugin:1.1:exec (active-by-default) @ buggy-module ---
> "### running 'active-by-default'"
> --- exec-maven-plugin:1.1:exec (module-active-by-default) @ buggy-module ---
> "### running 'module-active-by-default'"
> ..
> ..
> Active Profiles for Project 'test:buggy-pom:pom:1.0-SNAPSHOT':
> The following profiles are active:
>  - active-by-default (source: pom)
>  - netcologne.default (source: settings.xml)
> Active Profiles for Project 'test:buggy-module:pom:1.0-SNAPSHOT':
> The following profiles are active:
>  - module-active-by-default (source: pom)
>  - netcologne.default (source: settings.xml)
> {code}
> The module should also list 'active-by-default'. Even more since it is also run correctly.
> Explicitely activated profiles behave the same:
> {code}mvn validate help:active-profiles -P activate-me, module-activate-me{code}
> When the a profile is redefined in the module (without any changes) the active-profiles list is correct:
> {code}
> {code}mvn validate help:active-profiles -P activate-me, module-activate-me{code}

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Reopened: (MNG-4702) MavenProject.getActiveProfiles() does not merge active profiles from parent POMs

Posted by "Lars Corneliussen (JIRA)" <ji...@codehaus.org>.
     [ http://jira.codehaus.org/browse/MNG-4702?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Lars Corneliussen reopened MNG-4702:
------------------------------------


I still think there is an issue here... Sorry :(

> MavenProject.getActiveProfiles() does not merge active profiles from parent POMs
> --------------------------------------------------------------------------------
>
>                 Key: MNG-4702
>                 URL: http://jira.codehaus.org/browse/MNG-4702
>             Project: Maven 2 & 3
>          Issue Type: Bug
>    Affects Versions: 2.2.1, 3.0-beta-1
>            Reporter: Lars Corneliussen
>            Assignee: Benjamin Bentmann
>         Attachments: buggy-profiles.zip
>
>
> Profiles from parent pom's are internally merged, but getActiveProfiles() doesn't return them as long as they aren't redefined in the module.
> The zip contains two poms with some profiles:
> buggy-profiles (activate-me, active-by-default, shared-profile)
> + buggy-module (module-activate-me, module-active-by-default, shared-profile)
> Each of the profiles adds a "echo ..." to the validate-phase.
> {code:title=mvn validate help:active-profiles}
> ------------------------------------------------------------------------
> Building buggy-pom 1.0-SNAPSHOT
> ------------------------------------------------------------------------
> --- exec-maven-plugin:1.1:exec (active-by-default) @ buggy-pom ---
> "### running 'active-by-default'"
> ------------------------------------------------------------------------
> Building buggy-module 1.0-SNAPSHOT
> ------------------------------------------------------------------------
> --- exec-maven-plugin:1.1:exec (active-by-default) @ buggy-module ---
> "### running 'active-by-default'"
> --- exec-maven-plugin:1.1:exec (module-active-by-default) @ buggy-module ---
> "### running 'module-active-by-default'"
> ..
> ..
> Active Profiles for Project 'test:buggy-pom:pom:1.0-SNAPSHOT':
> The following profiles are active:
>  - active-by-default (source: pom)
>  - netcologne.default (source: settings.xml)
> Active Profiles for Project 'test:buggy-module:pom:1.0-SNAPSHOT':
> The following profiles are active:
>  - module-active-by-default (source: pom)
>  - netcologne.default (source: settings.xml)
> {code}
> The module should also list 'active-by-default'. Even more since it is also run correctly.
> Explicitely activated profiles behave the same:
> {code}mvn validate help:active-profiles -P activate-me, module-activate-me{code}
> When the a profile is redefined in the module (without any changes) the active-profiles list is correct:
> {code}
> {code}mvn validate help:active-profiles -P activate-me, module-activate-me{code}

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira