# Best practices related to package com.atlassian.jira.bc

**URL:** <https://community.developer.atlassian.com/t/best-practices-related-to-package-com-atlassian-jira-bc/18471>\
**Category:** Jira Development\
**Tags:** best-practices, java\
**Created:** [May 14, 2018, 8:13am UTC](https://community.developer.atlassian.com/t/best-practices-related-to-package-com-atlassian-jira-bc/18471 "2018-05-14T08:13:49Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![anon34714063](https://avatars.discourse-cdn.com/v4/letter/a/e68b1a/32.png) [@anon34714063](https://community.developer.atlassian.com/u/anon34714063)\
**Post date:** [May 14, 2018, 8:13am UTC](https://community.developer.atlassian.com/t/best-practices-related-to-package-com-atlassian-jira-bc/18471/1 "2018-05-14T08:13:49Z")

</div>

Hello,

I have a question about best practices of the JAVA API.

I wonder what is the purpose and the usage related to the elements of the package **com.atlassian.jira.bc**. It seem to be a front for the managers interfaces of package **com.atlassian.jira**.

- What does bc stand for ?
- Is it a bad usage of the API to call directly the managers ?

For example,

If I want to work with custom fields , in which case should I use **CustomFieldService** or **CustomFieldManager**?

- [CustomFieldService (Atlassian JIRA 7.0.3 API)](https://docs.atlassian.com/software/jira/docs/api/7.0.3/com/atlassian/jira/bc/customfield/CustomFieldService.html)
- [CustomFieldManager (Atlassian JIRA 7.0.3 API)](https://docs.atlassian.com/software/jira/docs/api/7.0.3/com/atlassian/jira/issue/CustomFieldManager.html)

---

<div class="post-metadata">

**Author:** ![MichaelSmith1](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/michaelsmith1/32/40151_2.png) [@MichaelSmith1](https://community.developer.atlassian.com/u/MichaelSmith1)\
**Post date:** [November 17, 2020, 6:54pm UTC](https://community.developer.atlassian.com/t/best-practices-related-to-package-com-atlassian-jira-bc/18471/2 "2020-11-17T18:54:50Z")

</div>

I would love to know the answer to this as well. Just made another topic on this.

---

<div class="post-metadata">

**Author:** ![richard.white](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/richard.white/32/38845_2.png) [@richard.white](https://community.developer.atlassian.com/u/richard.white)\
**Post date:** [November 17, 2020, 8:56pm UTC](https://community.developer.atlassian.com/t/best-practices-related-to-package-com-atlassian-jira-bc/18471/3 "2020-11-17T20:56:59Z")

</div>

I can’t answer for Atlassian (and I have no idea what the bc stands for…) , but my general understanding is to prefer to use the services in com.atlassian.bc if at all possible.

Typically, things like the CustomFieldService will check permissions and validate the request before updating the custom field, where the lower-level manager in com.atlassian.issue will just do what you ask - usually ignoring permissions.

Usually, this means the service API’s are slightly more cumbersome to use, but way less likely to cause some low-level inconsistencies on the Jira side.

In some cases, we have had to use a lower level manager to fulfil some use case - like a JQL search that finds all issues by some filter regardless of permissions, but generally, we try to avoid doing this wherever possible. It usually ends up looking like a bad idea.

---

<div class="post-metadata">

**Author:** ![MichaelSmith1](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/michaelsmith1/32/40151_2.png) [@MichaelSmith1](https://community.developer.atlassian.com/u/MichaelSmith1)\
**Post date:** [November 18, 2020, 7:00pm UTC](https://community.developer.atlassian.com/t/best-practices-related-to-package-com-atlassian-jira-bc/18471/4 "2020-11-18T19:00:08Z")

</div>

Good to know, but I have seen some functions that allow you to do those searches without consider permissions.
