Shale API Target Audiences and Stability Ratings

Introduction

The core services provided by Shale are packaged in a series of JAR files, so that applications not utiizing some of the optional services need not include them. For each service, the APIs in particular Java packages are intended for public use by application developers, while other packages represent the internal implementation of Shale features, and would only be accessed directly if you intend to modify Shale's standard functionality. In the tables below, the intended target audience of each package is described by one of the following terms:

  • Application - Applications based on Shale may depend on APIs provided by this package. In general, such APIs will focus on avoiding backwards incompatble changes as they evolve.
  • Framework - Developers who wish to extend or modify the default implementation of Shale features may depend on APIs provided by this package. Stability of APIs across releases will still be a goal, but ongoing evolution will likely lead to some incompatible changes.
  • Private - This package is not intended for public use by developers, and its APIs are subject to change in later releases at any time.
In addition to the intent described above, each package is also annotated with a stability rating, which is an indication of the expected rate of future change, described by one of the following terms:
  • Private - This package is not intended for public use by developers, and its APIs are subject to change in later releases at any time.
  • Developing - This package is under active development, and changes (including backwards incompatible changes) are likely in future versions.
  • Evolving - This package is continuing to be developed, but changes will generally add new features only, while maintaing backwards compatibility.
  • Stable - This package may continue to be developed, but offers the highest possible assurance of backwards compatibility in both public API and in functionality.
  • Deprecated - This package contains API that was available in previous versions, and is maintained (for a short while) for backwards compatibility purposes. However, dependencies on these APIs should be migrated appropriately, as at some point in time the package will be subject to removal.

Packages Delivered in shale-core.jar

Package Name Target Stability Comments
org.apache.shale.application Framework Developing ---
org.apache.shale.component Application Evolving ---
org.apache.shale.dialog Application Developing Expect further development to support multiple active dialogs in the same page.
org.apache.shale.dialog.config Framework Developing ---
org.apache.shale.dialog.faces Framework Developing ---
org.apache.shale.dialog.impl Framework Developing ---
org.apache.shale.faces Framework Developing ---
org.apache.shale.remote Application Deprecated Use corresponding functionality from package org.apache.shale.remoting.
org.apache.shale.renderer Framework Evolving Functionality should be accessed indirectly via components in org.apache.shale.component.
org.apache.shale.taglib Application Evolving ---
org.apache.shale.util Application Developing ---
org.apache.shale.validator Framework Developing ---
org.apache.shale.view Application Evolving ---
org.apache.shale.view.faces Framework Developing ---
org.apache.shale.view.impl Framework Developing ---

Packages Delivered in shale-remoting.jar

Package Name Target Stability Comments
org.apache.shale.remoting Application Developing ---
org.apache.shale.remoting.faces Framework Developing ---
org.apache.shale.remoting.impl Framework Developing ---

Packages Delivered in shale-spring.jar

Package Name Target Stability Comments
org.apache.shale.spring Framework Developing Functionality should be accessed indirectly via evaluating value binding and method binding expressions.

Packages Delivered in shale-test.jar

Package Name Target Stability Comments
org.apache.shale.test.base Application Evolving Use these classes as base classes for your own JUnit test cases
org.apache.shale.test.htmlunit Application Evolving Use these classes as base classes for your own system integration tests using JUnit and HtmlUnit
org.apache.shale.test.mock Application Evolving Use these classes in your JUnit test cases to simulate container behavior

Packages Delivered in shale-tiger.jar

Package Name Target Stability Comments
org.apache.shale.tiger.config Framework Developing ---
org.apache.shale.tiger.faces Framework Developing ---
org.apache.shale.tiger.managed Application Developing Annotations for the Annotated Managed Beans feature
org.apache.shale.tiger.managed.config Framework Developing ---
org.apache.shale.tiger.managed.rules Framework Developing ---
org.apache.shale.tiger.register Application Developing Annotations for the Annotated Component Registration feature
org.apache.shale.tiger.resources Framework Developing ---
org.apache.shale.tiger.view Application Developing Annotations for the Annotated View Controller feature
org.apache.shale.tiger.view.faces Framework Developing ---

Packages Delivered in shale-tiles.jar

Package Name Target Stability Comments
org.apache.shale.tiles Framework Developing ---