A Bundle includes multiple Packages, which represent a single view or console. For example, a very light Bundle may only include a simple base Package that defines a branded display page for service items. A typical Bundle would also include a portal, or catalog console that defines the presentation of services offered by the catalog. An even more complicated Bundle may include additional Packages to implement a fulfillment console, submission console, or reporting console. In addition to functional Packages such as these, all bundles will contain two "special" Packages: the common Package and the core Package. The common Package includes files that are intended to be used by multiple packages within the bundle, such as shared CSS stylesheets, header/footer definitions, etc. The core package includes the core files necessary to implement the Bundle framework.
Files within a Kinetic Bundle can typically be described as one of four types: configuration, framework, interface, or resource.
Configuration files are used to abstract values that can or should be changed when a package is implemented. This ensures that there is a single point of modification when a package is deployed to a new server or environment, significantly improving modularity.
Framework files are those that facilitate the framework or architecture of the Bundle (or package), and are almost always JSP fragment files.
Interface files are files, typically JSP or JSP fragment, that represent the actual content that is rendered when a display request is made to the Bundle.
The bundle is broken down into just a few top level directories, with supporting files and directories within each.
The common directory contains resources that global to the application so all pages have the same look and feel. These resources might be an image library, stylesheets for colors, a header and footer page fragment, etc... The files in this directory are likely to be changed frequently, especially when the bundle is in development.
The libraries directory should contain any external libraries that the bundle depends on, such as JQuery if the bundle uses the JQuery js library. Another example is the 'ars-table' widget that displays data in a customizable table format.