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

Reply via email to