A fair bit of my job is dealing with and building solutions around the Essbase Java API. For many years, the Java API has been the premier way to programmatically work with Essbase (compared to say, the C and VB APIs, which have fallen out of favor). As part of this development work, it’s often important to see when (in terms of version) a certain class, method, interface, or other object has been added, modified, removed, or deprecated.
As a bit of a side project, I have been working with a library for comparing Java JARs to each other (japicmp). By processing and interpreting the results of just about every single Essbase Java JAR from 7.0.1, through the 9.x series, multiple 11.x’s, and finally to version 12.2.x, I have come up with something of a master table that shows all of these changes. You can view the initial results of the Essbase JAPI JAR evolution analysis. I’ll probably refresh this and enhance the output as new library versions become available or as I determine that additional insights become useful.
Besides purely compatibility/feature availability analysis, it’s also interesting to view the changes for other reasons. Often times, features go into the API “under the hood” before they are generally available in the product itself on a more polished basis. This can give insight into features that were being worked on (but were discarded or otherwise changed development plans), and other sort of historical anomalies.
For example, it’s kind of interesting to see the licensing functionality that officially made its debut in the API at version 9.3.0. Some of you long-time and diehard Essbase fans might recall (for better or worse – usually not better) some of the pain around licensing, where the licensing was somewhat a la carte – o be somewhat charitable to Hyperion at the time. This is reflected in the API at the time where you can see that there are many boolean methods that snitch report on licensed counts of CPUs, admin users, users, max connections, named users, Planning users, “restricted” Planning users, and availability of features such as ASO, BSO, app manager, 64-bit, the API, business rules, “crystal”, currency conversion, EDS, EIS, partitions, reports, SQL (for load rules), triggers, and more.
Anyway, if you’re one of the handful of hardcore Essbase Java API developers out there (or otherwise just have weird hobbies), please let me know what you think and if you’d like to see any additions/changes to the output.