JBoss.org Community Documentation
<metadata-loader tag="security" class="org.jboss.aspects.security.SecurityClassMetaDataLoader"/>
If you need more complex XML mappings for untyped metadata, you can write your own metadata binding. The tag
attribute is used to trigger the loader. The loader class must implement the
org.jboss.aop.metadata.ClassMetaDataLoader
interface.
public interface ClassMetaDataLoader { public ClassMetaDataBinding importMetaData(Element element, String name, String tag, String classExpr) throws Exception; public void bind(ClassAdvisor advisor, ClassMetaDataBinding data, CtMethod[] methods, CtField[] fields, CtConstructor[] constructors) \ throws Exception; public void bind(ClassAdvisor advisor, ClassMetaDataBinding data, Method[] methods, Field[] fields, Constructor[] constructors) \ throws Exception; }
Any arbitrary XML can be in the
metadata
element. The ClassMetaDataBinding.importMetaData
method is responsible for parsing the element and building ClassMetaDataBinding structurs which are
used in the precompiler and runtime bind steps. Look at the SecurityClassMetaDataLoader code shown above
for a real concrete example.