JBoss.org Community Documentation
public org.acme.SomeClass->new(java.lang.String)
Constructor expressions are made up of the fully qualified classname and the
new
keyword
The attributes(
public, static, private
) of the method are optional. If the attribute
is left out then any attribute is assumed. Attributes accept the
!
modifier for negation.
!public org.acme.SomeClass->new(..)
$instanceof{}
can be used in the class name.
$instanceof{org.acme.SomeInterface}->new(..)
To pick out all no-args constructors of all classes within the org.acme
package, we can use org.acme..
in place of the class name.
org.acme..->new()
Annotations can be used in place of the class name. The below example matches any constructor of a tagged @javax.ejb.Entity class.
@javax.ejb.Entity->new(..)
Annotations can be also be used in place of the
new
keyword. The below examples matches any constructor tagged as
@javax.ejb.MethodPermission.
*->@javax.ejb.MethodPermission(..)
In addition, just as for methods you can use typedefs, $instanceof{}
,
annotations and wildcards for constructor parameters. The following matches all constructors
that take a class annotated as @org.acme.Ann and any class
that matches java.*.String
(such as java.lang.String).
*->new(@org.acme.Ann, java.*.String)
You can also include an optional throws clause in the pointcut expression:
public void org.acme.SomeClass->new(java.lang.String) \ throws org.acme.SomeException, java.lang.Exception
If any exceptions are present in the pointcut expression they must be present in the throws clause of the constructors to be matched.