Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [aspectj-users] Point Cut gambling

add ", PartyDO" after "ado" in the args

as you have it, the args pointcut is args ( ado ). Its saying to only match one
argument join points, where the first argument is of type AddressBookDO. But all
the call pointcuts pick out two argument calls.  The intersection of one argument
join points and two argument calls is empty.


> This point cut doesn't match, but it isn't very different 
> from the one above:
>     public pointcut remoteAuthOperations ( AddressBookManagerRemote iro, AddressBookDO ado ) :
>         target ( AddressBookManagerRemote ) && target ( iro ) 
>         && args ( ado ) &&
>         (
>             call ( public void 
> AddressBookManagerRemote.addParty    ( AddressBookDO, PartyDO ) ) ||
>             call ( public void 
> AddressBookManagerRemote.removeParty ( AddressBookDO, PartyDO ) )
>         );
> 
> Where is the difference? Why doesn't it match?
> 
> I am now trying for two days to get this point cut to match. 
> It's kind 
> of frustrating.
> 
> Franz
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> http://dev.eclipse.org/mailman/listinfo/aspectj-users
> 

 

> -----Original Message-----
> From: aspectj-users-admin@xxxxxxxxxxx 
> [mailto:aspectj-users-admin@xxxxxxxxxxx] On Behalf Of Franz Prilmeier
> Sent: Thursday, October 21, 2004 1:28 PM
> To: aspectj-users@xxxxxxxxxxx
> Subject: [aspectj-users] Point Cut gambling
> 
> I am having troubles with pointcuts, yet again. It seems to 
> me it lies 
> in the favour of the aspectj gods whether a point cut matches or not.
> 
> These are the participating files in my application (Packages and 
> irrelevant methods stripped away):
> public interface IRemoteObject extends javax.ejb.EJBObject {
>     public boolean changeOperationAllowed ( AbstractDO ado ) 
> throws java.rmi.RemoteException;
> }
> 
> public interface PersonManagerRemote extends IRemoteObject {
>     public PersonDO createPerson ( PersonDO p ) throws 
> java.rmi.RemoteException;
>     public void changePerson ( PersonDO p ) throws 
> java.rmi.RemoteException;
>     public void removePerson ( PersonDO p ) throws 
> java.rmi.RemoteException;
> }
> 
> public interface AddressBookManagerRemote extends IRemoteObject {
>     public void addParty ( AddressBookDO ado, PartyDO pdo )   
>  throws java.rmi.RemoteException;
>     public void removeParty ( AddressBookDO ado, PartyDO pdo 
> ) throws java.rmi.RemoteException;
> }
> 
> public class AbstractDO { /* ejb value object */ }
> public class PartyDO extends AbstractDO { /* ejb value object */ }
> public class AddressBookDO extends AbstractDO { /* ejb value 
> object */ }
> public class PersonDO extends PartyDO { /* ejb value object */ }
> 
> This point cut matches perfectly:
>     public pointcut remoteAuthOperations ( IRemoteObject iro, 
> PersonDO ado ) :
>         target ( PersonManagerRemote ) && target ( iro ) && 
> args ( ado ) &&
>         (
>             call ( public void 
> PersonManagerRemote.createPerson ( PersonDO ) ) ||
>             call ( public void 
> PersonManagerRemote.changePerson ( PersonDO ) ) ||
>             call ( public void 
> PersonManagerRemote.removePerson ( PersonDO ) )
>         );
> 
> This point cut doesn't match, but it isn't very different 
> from the one 
> above:
>     public pointcut remoteAuthOperations ( 
> AddressBookManagerRemote iro, AddressBookDO ado ) :
>         target ( AddressBookManagerRemote ) && target ( iro ) 
> && args ( ado ) &&
>         (
>             call ( public void 
> AddressBookManagerRemote.addParty    ( AddressBookDO, PartyDO ) ) ||
>             call ( public void 
> AddressBookManagerRemote.removeParty ( AddressBookDO, PartyDO ) )
>         );
> 
> Where is the difference? Why doesn't it match?
> 
> I am now trying for two days to get this point cut to match. 
> It's kind 
> of frustrating.
> 
> Franz
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> http://dev.eclipse.org/mailman/listinfo/aspectj-users
> 




Back to the top