User: pathoss
Date: 02/04/05 02:26:16
Modified: core/resources/xdoclet/ejb util.j
Log:
Added support for caching homes (and thus not making a JNDI call to lookup the home).
Revision Changes Path
1.17 +30 -6 xdoclet/core/resources/xdoclet/ejb/util.j
Index: util.j
===================================================================
RCS file: /cvsroot/xdoclet/xdoclet/core/resources/xdoclet/ejb/util.j,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -w -r1.16 -r1.17
--- util.j 5 Apr 2002 09:59:51 -0000 1.16
+++ util.j 5 Apr 2002 10:26:16 -0000 1.17
@@ -21,6 +21,15 @@
<XDtClass:classCommentTags indent="0"/> */
public class <XDtClass:classOf><XDtEjbUtilObj:utilClass/></XDtClass:classOf>
{
+ <XDtConfig:ifConfigParamEquals paramName="cacheHomes" value="true">
+ <XDtEjbIntf:ifRemoteEjb>
+ static <XDtEjbHome:homeInterface type="remote"/> cachedRemoteHome = null;
+ </XDtEjbIntf:ifRemoteEjb>
+ <XDtEjbIntf:ifLocalEjb>
+ static <XDtEjbHome:homeInterface type="local"/> cachedLocalHome = null;
+ </XDtEjbIntf:ifLocalEjb>
+ </XDtConfig:ifConfigParamEquals>
+
// <XDtI18n:getString bundle="xdoclet.ejb.Messages"
resource="util_home_lookups"/>
<XDtEjbIntf:ifRemoteEjb>
@@ -32,9 +41,18 @@
{
InitialContext initialContext = new InitialContext();
try {
+ <XDtConfig:ifConfigParamEquals paramName="cacheHomes" value="true">
+ if (cachedRemoteHome == null) {
java.lang.Object objRef = initialContext.lookup(<XDtEjbHome:homeInterface
type="remote"/>.<XDtEjbUtilObj:lookupKind/>);
- <XDtEjbHome:homeInterface type="remote"/> home =
(<XDtEjbHome:homeInterface type="remote"/>)PortableRemoteObject.narrow(objRef,
<XDtEjbHome:homeInterface type="remote"/>.class);
- return home;
+ cachedRemoteHome = (<XDtEjbHome:homeInterface
type="remote"/>)PortableRemoteObject.narrow(objRef, <XDtEjbHome:homeInterface
type="remote"/>.class);
+ }
+ return cachedRemoteHome;
+ </XDtConfig:ifConfigParamEquals>
+
+ <XDtConfig:ifConfigParamNotEquals paramName="cacheHomes" value="true">
+ java.lang.Object objRef = initialContext.lookup(<XDtEjbHome:homeInterface
type="remote"/>.<XDtEjbUtilObj:lookupKind/>);
+ return (<XDtEjbHome:homeInterface
type="remote"/>)PortableRemoteObject.narrow(objRef, <XDtEjbHome:homeInterface
type="remote"/>.class);
+ </XDtConfig:ifConfigParamNotEquals>
} finally {
initialContext.close();
}
@@ -50,8 +68,7 @@
InitialContext initialContext = new InitialContext(environment);
try {
java.lang.Object objRef = initialContext.lookup(<XDtEjbHome:homeInterface
type="remote"/>.<XDtEjbUtilObj:lookupKind/>);
- <XDtEjbHome:homeInterface type="remote"/> home =
(<XDtEjbHome:homeInterface type="remote"/>)PortableRemoteObject.narrow(objRef,
<XDtEjbHome:homeInterface type="remote"/>.class);
- return home;
+ return (<XDtEjbHome:homeInterface
type="remote"/>)PortableRemoteObject.narrow(objRef, <XDtEjbHome:homeInterface
type="remote"/>.class);
} finally {
initialContext.close();
}
@@ -68,8 +85,15 @@
InitialContext initialContext = new InitialContext();
try {
// <XDtI18n:getString bundle="xdoclet.ejb.Messages"
resource="util_localhome_not_narrowed"/>
- <XDtEjbHome:homeInterface type="local"/> localHome =
(<XDtEjbHome:homeInterface type="local"/>)
initialContext.lookup(<XDtEjbHome:homeInterface
type="local"/>.<XDtEjbUtilObj:lookupKind/>);
- return localHome;
+ <XDtConfig:ifConfigParamEquals paramName="cacheHomes" value="true">
+ if (cachedLocalHome == null)
+ cachedLocalHome = (<XDtEjbHome:homeInterface type="local"/>)
initialContext.lookup(<XDtEjbHome:homeInterface
type="local"/>.<XDtEjbUtilObj:lookupKind/>);
+ return cachedLocalHome;
+ </XDtConfig:ifConfigParamEquals>
+
+ <XDtConfig:ifConfigParamNotEquals paramName="cacheHomes" value="true">
+ return (<XDtEjbHome:homeInterface type="local"/>)
initialContext.lookup(<XDtEjbHome:homeInterface
type="local"/>.<XDtEjbUtilObj:lookupKind/>);
+ </XDtConfig:ifConfigParamNotEquals>
} finally {
initialContext.close();
}
_______________________________________________
Xdoclet-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-devel