Bandana or PluginSettings - Which to use

I am writing a plugin that requires some config to be stored via an admin screen, and accessed by a REST service.

It appears that both Bandana and PluginSettings are feasible ways to do this. The "Writing an Admin Confguration Screen" tutorial uses PluginSetttings, but there is one concern to me -- PluginSettings stores everything in config.xml -- which is loaded into memory.

Bandana on the other hand stores objects in the database.

SO I would think that for operations that may be accessed frequently (i.e. a REST service) that Bandana may be the better option as I can query for a single object. It may also support better serialization, though nothing in the documentation clarifies.

Can someone help me out on which is the best use case for each mean of persitence?

Cheers,

Eddie

https://developer.atlassian.com/display/FECRUDEV/Storing+Plugin+Settings+for+FishEye

https://developer.atlassian.com/display/DOCS/Plugin+tutorial+-+Writing+an+Admin+Configuration+Screen

https://developer.atlassian.com/display/CONFDEV/Bandana+Caching

https://developer.atlassian.com/pages/viewpage.action?pageId=2031780

3 answers

1 accepted

This widget could not be displayed.

It appears the answer is: Neither.

Atlassian is working on new layer in the API called ActiveObjects, and is being pushed as the alternative for both my afermentioned choices.

https://developer.atlassian.com/display/AO/Active+Objects

It's 4 years later (2016) and I still landed on documentation for Bandana when researching persistence. 

Also the page for AO says in a big red warning box:

"Atlassian does not recommend that you install or upgrade Active Objects in a production environment, unless instructed by the Atlassian support team."

 

So....can haz?  Or no?

This widget could not be displayed.

For bonus points, explain this issue pulling objects out..

[INFO] [talledLocalContainer] java.lang.ClassCastException: com.edwardawebb.bamboo.buildbunny.config.objects.BuildBunnyConfig cannot be cast to com.edwardawebb.bamboo.buildbunny.config.objects.BuildBunnyConfig

They are the same class!! I can call toString and the reference looks correct - what i the deal.

This widget could not be displayed.

I have the same problem. I can explain it but I don't have the solution yet. The instances are from different classloaders instances. - com.atlassian.plugin.classloader.PluginClassLoader and they can't be casted from one to the other.

Suggest an answer

Log in or Sign up to answer
Atlassian Summit 2018

Meet the community IRL

Atlassian Summit is an excellent opportunity for in-person support, training, and networking.

Learn more
Community showcase
Posted Wednesday in Teamwork

What teamwork quotes inspire you?

Hey everyone! My name is Natalie and I'm an editor of the Atlassian Blog and I've got a question for you: What's your favorite quote about teamwork?  We've compiled a list here, along with...

141 views 16 7
Join discussion

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