Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Been a while since this was posted so probably moot point but may help others.</p> <p>Another option on having a single shared library used by separate higher level applications is a versioning system within the utility library.</p> <p>In essence, you publish a defined API "service level" from the utility library under some version ID - such as an incremented integer (regardless of the underlying codebase of the utility library):</p> <ul> <li>API Level: 1</li> <li>API ID: UTIL_API_20110630_1.0.1</li> </ul> <p>Then, within the utility library, you handle passthru support for "legacy" APIs ... by simply wrapping the "old" library interfaces within the new library ... either in the same jar or a "child" jar library (the Utility.jar remaps calls to the child.jar).</p> <p>In this manner, the application establishes the <strong>API Level</strong> it desires. Thus, the applications only ever see the main "Utility.jar" and access it via the desired API level even though the back end implementation may change and evolve.</p> <pre><code>App X, Y, Z Util.jar --&gt; Util_1.0.1.jar (API Level: 1) --&gt; Util_1.0.3.jar (API Level: 1) --&gt; Util_1.2.7.jar (API Level: 1) --&gt; ... --&gt; Util_2.0.1.jar (API Level: 2) </code></pre> <p>Another benefit is if "App X" is no longer under active development it still has the same API, functionality, and behaviour it has always known. Meanwhile, the utility library and Applications Y and Z can continue unabated.</p> <p>It's a bit more work to create the pass thru wrappers for the first of the subsequent releases. (And depends heavily on the nature of the utility library.) But then it becomes a quick copy/paste, change the API level, rename, and you're on your way.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload