MoneyDance Plugin Upgrade Notes

With the release of MoneyDance 2015, Infinite Kind changed the API that plugins must use to extend MoneyDance.  There is some documentation, but I have’t found a comprehensive “plugin upgrade guide” so I decided to document some items here.  Here are the steps to upgrade a 2014 or earlier plugin to 2015+:

  1. Download the new development kit from Infinitekind developer and replace your existing moneydance api jars with the new ones.
  2. In meta_info.dict add   “minbuild” = “1000”
  3. The RootAccount class is no more.   getRootAccount() now returns a simple Account object
  4. The Account class no longer implements/extends IncomeAccount or ExpenseAccount.  You now call getAccountType() which returns an enum indicating Income, expense, etc
  5. In order to access root account specific objects (BudgetList, etc), you will need to replace  getRootAccount() with getCurrentAccountBook()
  6. You will likely get unresolved class errors for various MoneyDance classes.  It appears the high level package the package has been moved to com.infinitekind.moneydance.  Best to delete your old imports and try to auto-import against the new api jar  For example: Budget, BudgetList
  7. Many classes that were in the com.moneydance.awt package have been moved to com.moneydance.util . For example: CustomDateFormat
  8. Replace all calls to setDirty() with syncItem()

Other helpful resources:

MoneyDance 2015 Javadoc