|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--oracle.cle.persistence.ConnectionProvider | +--oracle.clex.persistence.bc4j.ApplicationModuleProvider
Provides a specific ApplicationModule.
Attributes can automatically be set and loaded by specifying
properties in the "cle-providers.xml
" file at the root
of the classpath (ie. WEB-INF/classes/cle-providers.xml).
See the http://xmlns.oracle.com/ias/mvc/cle-providers.dtd
for more on structure of the file.
<?xml version="1.0" standalone="yes"?> <!DOCTYPE cle-providers SYSTEM "http://xmlns.oracle.com/ias/mvc/cle-providers.dtd"> <cle-providers> <provider name="personnel_bc4j" class="oracle.clex.persistence.bc4j.ApplicationModuleProvider"> <property name="user" value="scott"/> <!-- the password is "tiger", but encrypted it is "dGlnZXI=" --> <property name="password" value="dGlnZXI="/> <property name="encryptiontype" value="BASE64"/> <property name="modulename" value="oracle.demo.personnel.persistence.bc4j.Bc4jModule"/> <!-- Any encrypted passwords in the connectionstring property get decrypted automatically at runtime --> <property name="connectionstring" value="jdbc:oracle:thin:scott/dGlnZXI=@localhost:1521:orcl"/> <property name="host" value="localhost"/> <property name="sid" value="orcl"/> <property name="persistencebase" value="oracle.demo.personnel.persistence.bc4j"/> <property name="failover" value=""/> </provider> </cle-providers>
public Vector aHandlerMethod(Object sessionId, <ArgumentType> aArgument) throws Exception { MyApplicationModule appModule = (MyApplicationModule)getConnection(sessionId); ... use the appModule here ... releaseConnection(appModule); return theResult; } // end aHandlerMethod
NOTE: This currently only supports LOCAL deployment of BC4J modules. Other deployments should not be difficult. We have to decide whether they should be provided separately or through the same provider. Probably the same provider with different deployment options specified through the properties files.
Field Summary | |
protected oracle.jbo.common.ampool.ApplicationPool |
applicationPool
The Pool of ApplicationModules |
protected java.lang.String |
moduleName
This should be specified in the properties for this provider |
static java.lang.String |
MODULENAME
Constant for modulename |
protected java.util.Hashtable |
pool
Holds the ApplicationModules that this provider has doled out |
protected java.lang.String |
urlPackagePrefix
This should be specified in the properties for this provider |
Fields inherited from class oracle.cle.persistence.ConnectionProvider |
BASE64, connection, connectionString, CONNECTIONSTRING, defaultProperties, deploymentKey, driverType, DRIVERTYPE, encryptionType, ENCRYPTIONTYPE, failover, FAILOVER, host, HOST, NO_SCOPE, NONE, password, PASSWORD, persistenceBase, PERSISTENCEBASE, port, PORT, releasedConnectionIds, REQUEST_SCOPE, scope, SCOPE, SESSION_SCOPE, sessionConnectionIds, sid, SID, USER, userName |
Constructor Summary | |
ApplicationModuleProvider()
|
|
ApplicationModuleProvider(java.util.Properties properties)
|
Method Summary | |
protected void |
addPropertyKeys()
Each subclass should overload or override this method to include all the properties that it will use. |
void |
connect()
Do nothing... |
protected oracle.jbo.ApplicationModule |
createModule()
Finds and creates the ApplicationModule for the information specified in the properties file for this provider. |
void |
disconnect()
Do nothing... |
protected oracle.jbo.common.ampool.ApplicationPool |
getApplicationPool()
|
java.lang.Object |
getConnection(java.lang.Object sessionId)
Returns a new BC4J ApplicationModule with its own Transaction space |
java.lang.Object |
getConnection(java.lang.Object sessionId,
int failover)
Returns null. |
protected java.lang.String |
getModuleName()
|
protected java.lang.String |
getPoolKey(java.lang.Object sessionId)
This method is used in getConnection and releaseConnection to get a unique id for the pool |
int |
hashCode()
Override Object.hashCode() so that we can differentiate copies of this provider. |
boolean |
isConnected()
Always returns true. |
boolean |
isSame(ConnectionProvider provider)
Compares this ConnectionProvider with the specified one and returns true if their values are the same... |
void |
releaseConnection(java.lang.Object sessionId)
Release the connection associated to the sessionId |
protected void |
setApplicationPool(oracle.jbo.common.ampool.ApplicationPool pool)
|
protected void |
setModuleName(java.lang.String aString)
|
Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final java.lang.String MODULENAME
protected java.util.Hashtable pool
protected java.lang.String moduleName
protected java.lang.String urlPackagePrefix
protected oracle.jbo.common.ampool.ApplicationPool applicationPool
Constructor Detail |
public ApplicationModuleProvider()
public ApplicationModuleProvider(java.util.Properties properties)
Method Detail |
protected void addPropertyKeys()
addPropertyKeys
in class ConnectionProvider
public int hashCode()
hashCode
in class ConnectionProvider
Object
public boolean isSame(ConnectionProvider provider)
isSame
in class ConnectionProvider
public java.lang.Object getConnection(java.lang.Object sessionId) throws java.lang.Exception
getConnection
in class ConnectionProvider
public java.lang.Object getConnection(java.lang.Object sessionId, int failover) throws java.lang.Exception
getConnection
in class ConnectionProvider
public void connect()
public void disconnect()
public boolean isConnected()
protected void setModuleName(java.lang.String aString)
protected java.lang.String getModuleName()
protected oracle.jbo.common.ampool.ApplicationPool getApplicationPool()
protected void setApplicationPool(oracle.jbo.common.ampool.ApplicationPool pool)
protected oracle.jbo.ApplicationModule createModule() throws java.lang.Exception
protected java.lang.String getPoolKey(java.lang.Object sessionId)
public void releaseConnection(java.lang.Object sessionId)
releaseConnection
in class ConnectionProvider
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |