Create a file META-INF/aop.xml that can be loaded by the Classloader which loads the application. For a WAR web application, this can be put in WEB-INF/classes (so that we have the file WEB-INF/classes/META-INF/aop.xml). For an EAR application in Weblogic, this can be put in APP-INF/classes (so that we have the file APP-INF/classes/META-INF/aop.xml). For an EAR application in JBoss, this has to be put in the META-INF dir in the root of the ear.
This is a regular AspectWerkz aspect definition file, but contents of this determine the layers of the application that would be identified by InfraRED. A sample is give below.
<!DOCTYPE aspectwerkz PUBLIC
"-//AspectWerkz//DTD//EN"
"http://aspectwerkz.codehaus.org/dtd/aspectwerkz2.dtd">
<aspectwerkz>
<system id="my.app">
<exclude package="net.sf.infared.*"/>
<!--
All executions in com.my.app.layer1 package and its subpackages
will be recorded as LayerOne
-->
<aspect class="net.sf.infrared.aspects.api.ApiAspect"
deployment-model="perClass" name="LayerOne">
<param name="layer" value="LayerOne"/>
<pointcut name="methodExecution"
expression="execution(public * com.my.app.layer1.*...*(..))"/>
<advice name="collectMetrics(StaticJoinPoint sjp)" type="around" bind-to="methodExecution"/>
</aspect>
<!--
All executions in com.my.app.layer2 package and its subpackages
will be recorded as LayerTwo
-->
<aspect class="net.sf.infrared.aspects.api.ApiAspect"
deployment-model="perClass" name="LayerTwo">
<param name="layer" value="LayerTwo"/>
<pointcut name="methodExecution"
expression="execution(public * com.my.app.layer1.*...*(..))"/>
<advice name="collectMetrics(StaticJoinPoint sjp)" type="around" bind-to="methodExecution"/>
</aspect>
</system>
</aspectwerkz>
Layers are typically identified by packages.
More details on how to identify various layers are given in the Configuration page