| Home >> All >> com >> jcorporate >> expresso |
| | com.jcorporate.expresso.core.* (316) | | com.jcorporate.expresso.ext.* (120) |
| | com.jcorporate.expresso.kernel.* (70) | | com.jcorporate.expresso.services.* (159) |
Package Samples:
com.jcorporate.expresso.core.controller.session: This package contains the object defining the "Controller" object, an important component of Expresso that should be used to encapsulate all user interaction sequences.
com.jcorporate.expresso.core.controller.validation: This package contains the object defining the "Controller" object, an important component of Expresso that should be used to encapsulate all user interaction sequences.
com.jcorporate.expresso.services.controller.dbmaint: 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: This package contains Controller objects to perform basic administration functions within Expresso, including security maintenance, testing, and default error handling.
com.jcorporate.expresso.core.db.config: 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.datasource: 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.exception: 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.dataobjects.jdbc: 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.
com.jcorporate.expresso.kernel.util: The Expresso Kernel package forms the core interface and basic implementations of the future ECCR or Expresso Component and Configuration Runtime.
com.jcorporate.expresso.kernel.exception: The Expresso Kernel package forms the core interface and basic implementations of the future ECCR or Expresso Component and Configuration Runtime.
com.jcorporate.expresso.kernel.management: The Expresso Kernel package forms the core interface and basic implementations of the future ECCR or Expresso Component and Configuration Runtime.
com.jcorporate.expresso.core.utility: The sub-packages to this package define the core objects of Expresso, where items such as DBObject are defined.
com.jcorporate.expresso.core.logging: The sub-packages to this package define the core objects of Expresso, where items such as DBObject are defined.
com.jcorporate.expresso.ext.dbobj.regobj: Contains database object definitions for download files functionality and self-Registered User functionality.
com.jcorporate.expresso.core.security.filters: This package contains Expresso's security system, switchable from "weak" security (e.g.
com.jcorporate.expresso.core.security.weakencryption: This package contains Expresso's security system, switchable from "weak" security (e.g.
com.jcorporate.expresso.ext.struts.taglib.logic: This package contains tag libraries that correspond to the Struts Library tags.
com.jcorporate.expresso.core.misc.upload: Miscellaneous objects for file manipulation, running OS processes, etc
com.jcorporate.expresso.kernel.util.test
com.jcorporate.expresso.kernel.test
Classes:
RE: RE is an efficient, lightweight regular expression evaluator/matcher class. Regular expressions are pattern descriptions which enable sophisticated matching of strings. In addition to being able to match a string against a pattern, you can also extract parts of the match. This is especially useful in text parsing! Details on the syntax of regular expression patterns are given below. To compile a regular expression (RE), you can simply construct an RE matcher object from the string specification of the pattern, like this: RE r = new RE("a*b"); Once you have done this, you can call either of the ...
SecurityDBObject: SecurityDBObject.java this object provides a means to control the DB context via Setup values. subclasses will ignore any context except that found in Setup. You probably will never create a subclass of SecurityDBObject yourself--it is a framework tool embedded in the Expresso security system. The idea is to provide a flexible way to redirect authentication classes to another database context. For example, consider a situation where there are two Expresso applications, and you wanted the second application to rely on the first in order to authenticate users and otherwise supply user information. ...
MultipartStream: This class can be used to process data streams conforming to MIME 'multipart' format as defined in RFC 1521 . Arbitrary large amouns of data in the stream can be processed under constant memory usage. The format of the stream is defined in the following way: multipart-body := preamble 1*encapsulation close-delimiter epilogue encapsulation := delimiter body CRLF delimiter := "--" boundary CRLF close-delimiter := "--" boudary "--" preamble := <ignore> epilogue := <ignore> body := header-part CRLF body-part header-part := 1*header CRLF header := header-name ":" header-value header-name ...
LOBSupport: Many databases support arbitrarily large objects. The problem with large objects is that their symantics are significantly different compared to other standard database fields. Specifically some highlighted differences are: Size - The arbitrary size of LOB objects can significantly consume system resources if you automatically load all LOBS along with the rest of the data object JDBC Interface - Many JDBC Drivers require you to use streams to retrieve LOBs from a database as opposed to standard objects loaded from a connection. Transaction Requirements - Many JDBC Drivers require to update BLOBS ...
DBTool: DBTool is a multi-purpose tool for working with database objects. It can: Verify data in the database with respect to referential integrity Generate the code for a Database Object by reading the data in a database Export data in a database object to an external XML file Import data from an external XML file into a database object Command Line Parameters Required Command Line Arguments configDir - <Directory that contains your config files> webbAppDir -<The Expresso webapp directory> db= <The database to create> Optional Command Line Argumments These arguments define the role to ...
RowSecuredDBObject: subclass this for support of row-level Authorization. Typically, you construct RowSecuredDBObject passing in userId or the controller request to set the requesting identity. Or, after construction, call setRequestingUid() so that user of this DBObject is known. Otherwise, security checks will always return false (and access methods will throw SecurityException). LIMITATION: the primary key for a given row is persisted, along with the name of the table, to identify the permissions for that row. In other words, the primary key for permissions is the row's table name plus the row's primary key: permissionPK ...
PersistentSession: A PersistentSession is simply a place to stash some values between states of a controller object. Different environments may employ different ways of doing this - the simplest being SimplePersistentSession, where a hashtable does all the required work. The typical way to use a PersistentSession is within a controller object as part of your state handler. You do not instantiate it directly, the controller framework instantiates the appropriate kind of session for you. [Unless you're directly creating a controller yourself, such as in a command line environment, in which case, you would set the session ...
Controller: A sequence of interaction with a user is defined as a "Controller". An Expresso controller is best thought of as a finite state machine. The only real difference is that because of the stateless nature of the web, anybody can reach any state with using the "state" parameter in the URL. Usually for a web deployment environment, you would derive your own controller from DBController, which adds a database-backed Security matrix to the controller's base capabilities. Controllers (and DBControllers) do not necessarily need to be run inside a servlet environment. If they never downcast ...
FastStringBuffer: A fast string buffer implements a mutable sequence of characters. Fast string buffers are unsafe for use by multiple threads. Every string buffer has a capacity. As long as the length of the character sequence contained in the string buffer does not exceed the capacity, it is not necessary to allocate a new internal buffer array. If the internal buffer overflows, it is automatically made larger. There are several performance improvements that make it worthwhile to use this class over the standard JDK StringBuffer Method calls are unsynchronized. Calls to synchronized methods are automatically at ...
Describable: This interface represents an object that can have it's metadata described by an XML file. The Describable interface returns the URL that contains the xml file that is the metadata for the component. This could event potentially be located in a central server for metadata distribution. Note that the default component implementations ( NonContainercomponentBase and ContainerComponentBase ) implement Describable in such a way that it looks for an xml file by the name of: [className] .xml in the same package as the Component class itself is located Minimal Metadata The minimal xml file to be associated ...
DefaultAsyncProcessor: This is a default implementation of the AsyncProcessor. It has specific claim timeout, specific threads and queue size, and a particular order of dealing with things. A different kind of implementation might, for example, dispatch the requests to another machine for processing and return the result. This asynchronous processor relies on the set up tables for the following parameters. parameters are missing from the set up table then the default values will be used instead. These parameters are: AsyncClaimTimeout : when the job is completed there is always the chance that it will never be claimed ...
DBSequence: DBSequence is a special DBObject that wraps a database sequence. Currently, this class only works with PostgreSQL sequences, but it should be easy to add support for Oracle or others (see createTable() and retrieve() methods specifically). If you attempt to use this with a database other than PostgreSQL, it will throw an exception. To make this compatible with the the schema autocreation of DBObjects magic, security scheme, etc., this class subclasses DBObject. But there are many methods that have been overriden, because they do not make sense for a sequence (ex: search, clear, etc). If these methods ...
ServletControllerResponse: A ServletControllerResponse object is an extension that provides wide access to the pure Struts API and Servlet environment. For example you may want to generate dynamic ActionForwards or retrieve access to the ActionMapping class. public AcmeController extends DBController { protected void runProcessOrderState( ControllerRequest req, ControllerRequest res ) { ServletControllerRequest request = (ServletControllerRequest)req; ActionMapping mapping = request.getMapping(); ServletControllerResponse request = (ServletControllerRequest)req; ActionMapping mapping = response.getMapping(); // ... after ...
RequestRegistry: The request registry provides several useful utility functions that allow isolation of Expresso specifics away from the domain model where they don't belong. To use it, use the static methods, which in turn return threadlocal data. Example Usage: String dataContext = RequestRegistry.getDataContext(); The pattern for this class is originally defined by Martin Fowler in his book Patterns of Enterprise Application Architecture as the registry pattern. Supplemental information for the casual reader can be found at: http://www.martinfowler.com/eaaCatalog/registry.html In the concept of Interface vs ...
HistAuditSecuredDBObject: HistAuditSecuredDBObject is an object that is audited (as in the AuditedSecuredDBObject) and is also archived in a history table that stores the entire record on either ADD or UPDATE. A HistAuditSecuredDBObject MUST have the following fields defined: ... AUDITLOG_ID HISTORY_DATE So for example, if you have a table called Vendor that you want to have history kept for, you would do this: HistAuditSecuredDBObject Vendor fields: VENDOR_ID VENDOR_NAME AUDITLOG_ID (because this is also a AuditedSecuredDBObject). There must then be a DBObject called "VendorHistory" with the following fields: VENDOR_HISTORY_ID ...
FilterManager: The primary purpose of this class is to filer out particular characters from a HTTP respone. The reason for this is that codes can be in- serted into a string that gets returned to a web browser, and these codes can cause the web browser to act on them in a way that is not as the site author inteded, and may be a breach of security. For more on these see: Understanding Malicious Content Mitigation for Web Developers The Filtermanager implements filtering based upon a particular characterset. It maintains a list of all filters that have been used since the initialization of the class. When a particular ...
Filter: This is the base class for all filters. The purpose of the filter mechanism is to remove possibly harmful html code that could be injected into dynamic html code by a hacker. The resulting code may steal users passwords from clients and do other bad things to their machines. Expresso implements transparent filtering by automatically filtering all string content from databases and input parameters. How to Create your own character-set filter 1 - Derive a class from Filter. The name of the class should be the name of the characterset you're using. If the characterset's name includes hyphens, substitute ...
Transition: An Transition is a choice that the user can make that initiates either another sequence in this same controller or some new controller. A transition is one of the three types of objects that a controller produces when it enters a new state, the others being Input objects and Output objects. Another use of a Transition object is for internal transitioning between various controllers and their states. Typical example is as follows: Transition t = new Transition(); t.setControllerObject(com.myapp.MyController.class); t.setState("State2"); t.addParameter("SampleParam","This is a parameter value"); ...
DelayThread: Simple class called to suspend thread execution for x many seconds before offering a retry to login. Helps to slow down brute force attacks. [a 40,000 word dictionary attack prolonged by 3 seconds a piece adds potentially 33 hours to the attack time. Yes this can be partially bypassed through simultaneous requests, but it still adds significant reponse time] Why this class instead of just sleep(3000) or whatever? The answer is that this thread is often called from multi-thread handling servers with only one instance. You can't just call sleep() without becoming the Monitor "Owner", but synchronized(this) ...
SimpleRegistration: SimpleRegistration Controller. This is the implementation example of Registration. Depends on: Login Controller Email Validator Registration Validator Reg Domain DBObjects Reg Domain DBObject Map The following states are the usual entry points into the registration controller showDBMenu - For users that want to change/edit their registraiton info promptAddRecord - Where we prompt the user to fill out the registration information promptSelfRegister - Where we prompt for login information et.al. from users who wish to self-register promptApproval - For approval administrators only. Shows the registration ...
MediaDBObject: A MediaDBObject is a DBObject intended to be used for storage of media objects directly in the database. It facilitates generic storage by automatically creating filename and MimeType fields that map to the MimeTypes table for easy downloading. This allows for the ability to store more than one media type in the same table while still allowing the Application to appropriately deal with each MimeType. This data object conveniently stores and retrieves Binary Large OBjects (BLOBS) or Character Large OBjects (CLOBS). Performance note: Each blob field access requires one more round trip to the database ...
StringEncryption: StringEncryption.java Copyright 2000, 2001 Jcorporate Ltd. This class provides basic string encryption. It'll provide the services of password whitening and automatic selection of encryption. Known Vulnerabilities. The actual whitened password remains in memory for performance sake. An attacker may find the actual password by looking at swap files looking for Base64 encoded strings. (Not too hard to grep out) but it requires an attacker to gain access to the swap partition of the server. Do not use this class for a personal encryption program. Byte Array Format Information: An encrypted string ...
Input: An Input object is one of the three types of objects generated by a Controller when it transitions from one state to another. The other two are Actions and Outputs. An Input is a request for information from the user. It may or may not have a default value, a list of valid values, and other attributes - any or all of which can be used by the user interface, which can be a JSP, Servlet, application, or even an applet. Recognized Types: The following types are recognized by the expresso framework and automatically rendered: You may add your own types or ignore them if you are doing your own page ...
SimpleDataSource: DataConnectionPool is an implementation of the javax.sql.DataSource . Normally you would get an instance of the DataConnectionPool using DBConnectionPool.getDataSource(String) The reason for this class is that some libraries that can access a database often take a DataSource as their way of connecting to the database. Unfortunately, Expresso's DBConnectionPool's API is incompatible with the javax.sql.DataSource API. So this class wraps the DBConnectionPool with the DataSource interface so that libraries that require DataSource and Connection interfaces can operate within Expresso's database connection ...
FieldRangeParser: The responsibilities of this class is to verify range values for fields and throw an exception if there is any 'monkeybusiness' detected in the field. The parser does not allow everything a normal SQL query would allows due to parsing complexity. However, it will allow multiple conditions, and ranges for BETWEEN and IN. Accepted Range Strings: [NOT] BETWEEN value1 AND value2 [NOT] IN(value1,value2.....) [>|>=| |>=| Known bugs with Range issues: There can be no single quotes INSIDE string fields. The fields themselves must still be quoted. There cannot be the word AND or OR inside the String range ...
| Home | Contact Us | Privacy Policy | Terms of Service |