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

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?

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.

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
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 yesterday in Marketplace Apps

Tips on how to choose the best estimation method for your planning

Planning and grooming sessions all come with their own sets of rules. Team members meet to estimate stories or other work items, all according to an agreed-upon process. And with every session comes ...

65 views 0 11
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