Package Name | Comment |
com.jcorporate | |
com.jcorporate.expresso.core | The sub-packages to this package define the core objects of Expresso, where items such as DBObject are defined. Standard objects that *use* these
definitions (such as the security dbobjects) are in the services package. The only object defined in this package itself
is the Schema object for Expresso, used by DBTool and DBCreate to initialize Expresso's database.
|
com.jcorporate.expresso.core.cache |
Package containing all of the objects for Expresso's Cache Manager, a general-purpose
system for in-memory caching.
The caching system has many features such as built in Memory limitation, named
caches, ordered and undered caches , and many other features. It is designed
to be highly efficient for quick retrieval of Objects without requiring a network
round trip to a database.
|
com.jcorporate.expresso.core.cache.tests | |
com.jcorporate.expresso.core.controller |
This package contains the object defining the "Controller" object, an important
component of Expresso that should be used to encapsulate all user interaction
sequences.
Controllers are the guts Expresso's logic system. You derive your own controller
class from DBController to automatically get features such as built in per-state
security.
|
com.jcorporate.expresso.core.controller.session | This package contains the interface PeristantSession and a number of implementations of this interface. PersistentSession
is used by Controller objects to store information, either for a single sequence of operations or more
permanantly. In a servlet environment, the HttpServletRequest attributes are used for temporary storage, and the
HttpSession object for more Persistent storage.
|
com.jcorporate.expresso.core.controller.tests | |
com.jcorporate.expresso.core.controller.validation | |
com.jcorporate.expresso.core.dataobjects |
The DataObjects package contains a set of interfaces and base classes that give
the ability to provide a unified object approach to various data sources. It
is roughly based off of the older DBObject which was less flexible, only allowed
one dbobject per table, and was only JDBC capable.
|
com.jcorporate.expresso.core.dataobjects.jdbc |
JDBC Package Description
This package contains implementations and helper classes of DataObjects that
pertain to JDBC data sources only.
NOTE: The interfaces in this package are of beta
quality. They are still being tested and worked on, and thus may chance
in the near future.
|
com.jcorporate.expresso.core.dataobjects.jdbc.tests | |
com.jcorporate.expresso.core.dataobjects.test | |
com.jcorporate.expresso.core.db |
Database Java Objects for establishing database connections and connection pooling
Also contains all Exceptions used for Data Access while working with Expresso.
|
com.jcorporate.expresso.core.db.config |
Package Contents
This package contains a public preview of future configuration code. In the near
future, all database configurations except for user-specific information will
be stored here.
The classes themselves are mainly digester related classes, while the .xml
files are the actual configuration files for various databases.
|
com.jcorporate.expresso.core.db.datasource |
DataSource components for establishing database connections and connection pooling via JNDI
Also contains all Exceptions used for Data Source while working with Expresso.
|
com.jcorporate.expresso.core.db.exception | Specific database exceptions, subclassing DBException
|
com.jcorporate.expresso.core.db.tests | |
com.jcorporate.expresso.core.dbobj |
Ancestor objects for all Database Objects and Schemas.
Database Objects are probably the single most used part of Expresso. They provide
Object Relational mapping capabilities to a database table. They also give you
the ability to embed capabilities such as validation logic, master-detail relations,
and more.
|
com.jcorporate.expresso.core.dbobj.tests | |
com.jcorporate.expresso.core.i18n |
This package contains classes used for Expresso's I18N capabilities. Because Expresso
is designed to provide pluggable components, we associate a specific MessagesBundle
with each Schema, rather than a single MessagesBundle.properties for the whole
application
|
com.jcorporate.expresso.core.job |
Classes that define "Jobs" or server-side tasks that are run asynchronously
to the user's web browser.
They are usually run by the JobHandler, of which you can have more than one
JobHandler running to get greater job throughput.
|
com.jcorporate.expresso.core.jsdkapi | The different versions of the Servlet API have different methods for handling includes, forwards, session attributes, etc. The
objects in this package allow Expresso to use "Generic" objects for these functions, and dynamically loaded classes specific
to each API version are used to perform the appropriate operation.
|
com.jcorporate.expresso.core.logging | This package contains the objects that form Expresso's interface to the log4j logging system, including a custom
appender to write to Expresso database-based log.
|
com.jcorporate.expresso.core.logging.tests | |
com.jcorporate.expresso.core.misc | Miscellaneous objects for file manipulation, running OS processes, etc
|
com.jcorporate.expresso.core.misc.tests | |
com.jcorporate.expresso.core.misc.upload | Classes to assist in parsing multi-part upload requests
|
com.jcorporate.expresso.core.registry | |
com.jcorporate.expresso.core.security | This package contains Expresso's security system, switchable from "weak" security (e.g. minimal-strength encryption) to "strong"
security. It also includes filters for field data used in DBObjects to prevent embedded code and other forms of attack on the security
of the system.
|
com.jcorporate.expresso.core.security.filters |
Contains the mechanisms to filter malicious control characters from strings before
being sent to a browser.
|
com.jcorporate.expresso.core.security.strongencryption |
Package for containing Hashing and Symmetric encryption. Requires a JCE implementation
(preferably BouncyCastle) to be installed in the system.
|
com.jcorporate.expresso.core.security.tests | |
com.jcorporate.expresso.core.security.weakencryption |
Package for containing Hashing and Symmetric encryption. Doesn't use strong encryption
if a JCE provider isn't present. [Uses simple XOR obfuscation]
|
com.jcorporate.expresso.core.servlet |
Base classes for all JavaCorporate servlets.
Straight servlets by and large are no longer used within Expresso as such.
We strongly encourage you to create your web-application based upon Expresso's
Controller objects rather than servlets since they give you basic flow control,
subdivision of tasks, and built-in per-state security.
|
com.jcorporate.expresso.core.servlet.viewhandler | Servlets to render the View. Generally, these are not used in favor of Expresso's (Struts) View Model.
|
com.jcorporate.expresso.core.utility | Package to contain all of the 'utility' programs in Expresso - these
are applications that run from the command line (e.g. not servlets)
|
com.jcorporate.expresso.ext.controller |
Controllers that are optional to Expresso. Mostly for administration.
|
com.jcorporate.expresso.ext.dbobj | Contains database object definitions for download files functionality and self-Registered User functionality.
|
com.jcorporate.expresso.ext.dbobj.regobj | Example database objects for use in the built in registration system
|
com.jcorporate.expresso.ext.job |
Jobs that are optional to the Expresso system.
|
com.jcorporate.expresso.ext.ldap | This package contains the LDAP-aware implementation of the UserInfo
interface. The JNDI and LDAP libraries are required to be on your
system in order to compile and use this object.
|
com.jcorporate.expresso.ext.regexp |
Deprecated Regular Expression Package. Use the Jakarta ORO package instead
now.
|
com.jcorporate.expresso.ext.report | Contains an example of a ReportPage object to report statistics on downloaded files.
|
com.jcorporate.expresso.ext.struts.taglib |
This package contains tag libraries that correspond to the Struts Library tags.
They have been specifically designed to blend in with Expresso's controller features,
and thus are ControllerResponse aware.
|
com.jcorporate.expresso.ext.struts.taglib.bean |
Expresso extensions of Struts bean tags.
|
com.jcorporate.expresso.ext.struts.taglib.html |
Expresso extensions of Struts html tags.
|
com.jcorporate.expresso.ext.struts.taglib.logic |
Expresso extensions of Struts logic tags.
|
com.jcorporate.expresso.ext.taglib |
This package contains an abundance of Expresso specific tags.
Some of these tags closely duplicate the functionality of Expresso-aware struts
tags. It will be up for you to decide which to use. The Expresso tags are often
easier to use than the corresponding Struts tags, but may not offer as much
flexibility, especially in the area of javascript code. It is up to you to decide.
|
com.jcorporate.expresso.ext.tests | |
com.jcorporate.expresso.ext.velocity | |
com.jcorporate.expresso.ext.xml.controller | Contains a controller object for importing and export DBObject data into XML formats.
|
com.jcorporate.expresso.ext.xml.dbobj | Contains database objects for configuring XSL transformations of XML output from Controller objects.
|
com.jcorporate.expresso.kernel | The Expresso Kernel package forms the core interface and basic implementations of
the future ECCR or Expresso Component and Configuration Runtime. ECCR will
consist of a series of component trees, each tree forms its own configuration
interface.
@since Expresso 5.3
|
com.jcorporate.expresso.kernel.digester |
This package contain bean classes and digester rule classes for loading the
expresso runtime configuration file, and expresso component metadata.
|
com.jcorporate.expresso.kernel.digester.test | |
com.jcorporate.expresso.kernel.exception |
This package contains an exception hierarchy that can be thrown by the Expresso
runtime system..
|
com.jcorporate.expresso.kernel.internal |
This package contains classes that should not be normally used or referenced
outside of the kernel package hierarchy.
|
com.jcorporate.expresso.kernel.management |
This package provide classes that provide the core logic for managing the
Expresso configuration hierarchy. It can be expanded upon via Swing Clients,
Web applications, etc.
If you are 'outside' of the hierarchy and need to be able to reach into it
for management or backwards compatibility, use the ExpressoRuntimeMap to retrieve
an instance of the various configuration runtimes that are available on the
system.
|
com.jcorporate.expresso.kernel.management.test | |
com.jcorporate.expresso.kernel.metadata |
This package contains bean classes that are created/loaded by the Digester
system to represent metadata for Expresso components.
|
com.jcorporate.expresso.kernel.test | |
com.jcorporate.expresso.kernel.util |
This package contains utility classes that assist in the operation of the
kernel package and any other Expresso classes.
|
com.jcorporate.expresso.kernel.util.test | |
com.jcorporate.expresso.services.asyncprocess | Async processor framework.
The Async processor framework is designed to handle situations where an Expresso
Job is not appropriate because you do want the results sent back to the user
when it is done. Instead, the
AsyncProcessor queues items up and processes them as fast as it can sending status
and result objects
back to the "Ticket Holder" when status is requested. These async processes
have also been called "Active Objects."
See the EDG chapter on Async Processing for a more detailed description of
the purpose of this
package.
|
com.jcorporate.expresso.services.controller | This package contains Controller objects to perform basic administration functions within Expresso, including security maintenance,
testing, and default error handling.
|
com.jcorporate.expresso.services.controller.configuration | |
com.jcorporate.expresso.services.controller.dbmaint |
This package contains the various State objects that make up the "Model" of
the DBMaint controller. These states can be extended and customized to give
DBMaint specific custom behaviours.
DBMaint is a generic database-editing web user interface. It provides all basic
needs for add/update/delete/searching records for data tables. It interacts
directly with DBObjects.
|
com.jcorporate.expresso.services.controller.tests | |
com.jcorporate.expresso.services.controller.ui | Objects that provide an automatic user interface rendering capability to the system
|
com.jcorporate.expresso.services.crontab | Objects that provide a system to run scheduled, recurring jobs. Most commonly used by Expresso's Job Handler subsystem.
|
com.jcorporate.expresso.services.crontab.tests | |
com.jcorporate.expresso.services.dbobj | Common database objects - used in many different applications
|
com.jcorporate.expresso.services.dbobj.tests | |
com.jcorporate.expresso.services.html | HTML objects - used to build HTML pages by servlets to define their user interface. Also includes base objects for ReportPages, used by all modules for internal administrative reports.
|
com.jcorporate.expresso.services.job | Contains a "test" job that can be used to verify that the Job Handler sub-system of Expresso is working correctly.
|
com.jcorporate.expresso.services.servlet | Contains servlets used to maintain and view the database log, show status of the system, and to provide a servlet-based
front-end to the DBTool program for creating database tables and other setup.
|
com.jcorporate.expresso.services.taglib | |
com.jcorporate.expresso.services.test |
Contains classes that assist in unit testing using JUnit and Cactus testing.
For client side unit testing you should create a single test suite that creates
Expresso at the beginning and drops it at the end. You can then use things
like DBUnit to create/delete individual entries if needed, but the table creation
is just too long for practical testing.
The other class of import is TestSystemInitializer . It allows you to specify
a scratch database context that you can use, which, of course, is highly advisable
since the unit tests are highly destructive.
|
com.jcorporate.expresso.services.validation |
This package provides for a 'validation framework'. This framework is provided
for a specific group of problems described as follows:
- User enters some information to perform some sort of action, let's say to
unsubscribe from a mail list.
- The validation framework then sends a confirmation email to the user that
includes a clickable URL. This URL contains a 128-bit random number.
- The user clicks on the random number. The framework then looks up that random
number and dispatches the request to the appropriate ValidationHandler class.
- The validation handler then performs the appropriate actions and displays
the final message to the user.
You can see this system in action in Expresso's registration system in: com.jcorporate.expresso.services.controller.RegistrationController
|