Update of
/cvsroot/xdoclet/xdoclet/modules/ejb/src/xdoclet/modules/ejb/session/resources
In directory sc8-pr-cvs1:/tmp/cvs-serv6178/src/xdoclet/modules/ejb/session/resources
Modified Files:
remotefacade.xdt
Log Message:
improvement in remote session facade - ade it java.util.Observable,
added configurable result caching and invalidation
Index: remotefacade.xdt
===================================================================
RCS file:
/cvsroot/xdoclet/xdoclet/modules/ejb/src/xdoclet/modules/ejb/session/resources/remotefacade.xdt,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** remotefacade.xdt 6 Oct 2002 17:43:18 -0000 1.3
--- remotefacade.xdt 12 Jan 2003 16:54:59 -0000 1.4
***************
*** 14,19 ****
<XDtClass:classCommentTags indent="0"/> */
! public class <XDtClass:classOf><XDtEjbFacade:remoteFacadeClass/></XDtClass:classOf>
{
<XDtEjbIntf:ifRemoteEjb>
--- 14,26 ----
<XDtClass:classCommentTags indent="0"/> */
! public class <XDtClass:classOf><XDtEjbFacade:remoteFacadeClass/></XDtClass:classOf>
extends Observable
{
+ static <XDtClass:classOf><XDtEjbFacade:remoteFacadeClass/></XDtClass:classOf>
+_instance = null;
+ public static
+<XDtClass:classOf><XDtEjbFacade:remoteFacadeClass/></XDtClass:classOf> getInstance() {
+ if(_instance == null) {
+ _instance = new
+<XDtClass:classOf><XDtEjbFacade:remoteFacadeClass/></XDtClass:classOf>();
+ }
+ return _instance;
+ }
<XDtEjbIntf:ifRemoteEjb>
***************
*** 43,46 ****
--- 50,66 ----
<XDtEjbIntf:ifIsInterfaceMethod superclasses="false" interface="remote">
<XDtMethod:ifHasMethodTag tagName="ejb.facade-method">
+
+ <XDtMethod:ifIsNotOfType type="void">
+ <XDtMethod:ifMethodTagValueEquals tagName="ejb.facade-method"
+paramName="cache" value="true">
+ <XDtType:ifIsPrimitive value="<XDtMethod:methodType/>">
+ <XDtMethod:methodType/> _<XDtMethod:methodName/>Cached;
+ boolean _<XDtMethod:methodName/>WasSet = false;
+ </XDtType:ifIsPrimitive>
+ <XDtType:ifIsNotPrimitive value="<XDtMethod:methodType/>">
+ <XDtMethod:methodType/> _<XDtMethod:methodName/>Cached = null;
+ </XDtType:ifIsNotPrimitive>
+ </XDtMethod:ifMethodTagValueEquals>
+ </XDtMethod:ifIsNotOfType>
+
public <XDtMethod:methodType/> <XDtMethod:methodName/> (
<XDtParameter:parameterList/> )
<XDtMethod:exceptionList append="java.rmi.RemoteException"
skip="javax.ejb.EJBException"/>
***************
*** 48,61 ****
<XDtMethod:ifIsOfType type="void">
getSession().<XDtMethod:methodName/>( <XDtParameter:parameterList
includeDefinition="false"/> );
! </XDtMethod:ifIsOfType>
<XDtMethod:ifIsNotOfType type="void">
! <XDtMethod:methodType/> retval = getSession().<XDtMethod:methodName/>(
<XDtParameter:parameterList includeDefinition="false"/> );
! </XDtMethod:ifIsNotOfType>
- <XDtMethod:ifMethodTagValueEquals tagName="ejb.facade-method"
paramName="invalidate" value="true">
- invalidate();
- </XDtMethod:ifMethodTagValueEquals>
- <XDtMethod:ifIsNotOfType type="void">
return retval;
</XDtMethod:ifIsNotOfType>
--- 68,105 ----
<XDtMethod:ifIsOfType type="void">
getSession().<XDtMethod:methodName/>( <XDtParameter:parameterList
includeDefinition="false"/> );
! <XDtMethod:ifMethodTagValueEquals tagName="ejb.facade-method"
paramName="invalidate" value="true">
! invalidate();
! </XDtMethod:ifMethodTagValueEquals>
! </XDtMethod:ifIsOfType>
<XDtMethod:ifIsNotOfType type="void">
! <XDtMethod:methodType/> retval;
! <XDtMethod:ifMethodTagValueEquals tagName="ejb.facade-method"
paramName="cache" value="true">
! <XDtType:ifIsPrimitive value="<XDtMethod:methodType/>">
! if(!_<XDtMethod:methodName/>WasSet) {
! _<XDtMethod:methodName/>Cached = getSession().<XDtMethod:methodName/>(
<XDtParameter:parameterList includeDefinition="false"/> );
! _<XDtMethod:methodName/>WasSet = true;
! }
! retval = _<XDtMethod:methodName/>Cached;
! </XDtType:ifIsPrimitive>
!
! <XDtType:ifIsNotPrimitive value="<XDtMethod:methodType/>">
! synchronized(_<XDtMethod:methodName/>Cached) {
! if(_<XDtMethod:methodName/>Cached == null) {
! _<XDtMethod:methodName/>Cached =
getSession().<XDtMethod:methodName/>( <XDtParameter:parameterList
includeDefinition="false"/> );
! }
! retval = _<XDtMethod:methodName/>Cached;
! }
! </XDtType:ifIsNotPrimitive>
!
! </XDtMethod:ifMethodTagValueEquals>
!
! <XDtMethod:ifMethodTagValueNotEquals tagName="ejb.facade-method"
paramName="cache" value="true">
! retval = getSession().<XDtMethod:methodName/>( <XDtParameter:parameterList
includeDefinition="false"/> );
! <XDtMethod:ifMethodTagValueEquals tagName="ejb.facade-method"
paramName="invalidate" value="true">
! invalidate();
! </XDtMethod:ifMethodTagValueEquals>
! </XDtMethod:ifMethodTagValueNotEquals>
return retval;
</XDtMethod:ifIsNotOfType>
***************
*** 72,75 ****
--- 116,141 ----
*/
public void invalidate() {
+
+ <XDtMethod:forAllMethods>
+ <XDtEjbIntf:ifIsInterfaceMethod superclasses="false" interface="remote">
+ <XDtMethod:ifMethodTagValueEquals tagName="ejb.facade-method"
+paramName="cache" value="true">
+ <XDtMethod:ifMethodTagValueNotEquals tagName="ejb.facade-method"
+paramName="immutable" value="true">
+ <XDtType:ifIsPrimitive value="<XDtMethod:methodType/>">
+ _<XDtMethod:methodName/>WasSet = false;
+ </XDtType:ifIsPrimitive>
+ <XDtType:ifIsNotPrimitive value="<XDtMethod:methodType/>">
+ if(_<XDtMethod:methodName/>Cached != null) {
+ synchronized(_<XDtMethod:methodName/>Cached) {
+ _<XDtMethod:methodName/>Cached = null;
+ }
+ }
+ </XDtType:ifIsNotPrimitive>
+ </XDtMethod:ifMethodTagValueNotEquals>
+ </XDtMethod:ifMethodTagValueEquals>
+ </XDtEjbIntf:ifIsInterfaceMethod>
+ </XDtMethod:forAllMethods>
+
+ setChanged();
+ notifyObservers();
}
}
-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
Xdoclet-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-devel