core-jgi/org.adempiere.base/OSGI-INF/org.adempiere.base.Annotati...

8 lines
439 B
XML
Raw Permalink Normal View History

IDEMPIERE-4842 Easier model registration (#877) * Preliminary support for automatic model class registration Model classes can be tagged with a new @Model annotation that allows for easy/fast class scanning/registration, based on the ClassIndex library. The list of annotated model classes is generated at compile time, thus reducing reflection reliance to a bare minimum. NOTE: Eclipse uses its own Java compiler which is not strictly standard compliant and requires extra configuration. In Java Compiler -> Annotation Processing -> Factory Path you need to add ClassIndex jar file * Annotation based model factory * Improve classloader determination for annotation scanning ClassIndex default annotation scanning method determines the classloader to be used by calling Thread.currentThread().getContextClassLoader(), which should not be used in an OSGi environment. * Enable ClassIndex's annotation processor under Eclipse Make sure annotation processing is enabled at Module Properties -> Java Compiler -> Annotation Processing * Refactoring annotation-based model class detection Eliminated the need of annotating M* classes, by using ClassIndex's @IndexSubclasses annotation. * Minor change * Minor changes * Creation of AbstractModelFactory * Documentation * Make AnnotationBasedModelFactory extend AbstractModelFactory * IDEMPIERE-4842 Easier model registration - add annotation processor jdt settings - fix @Component annotation for AnnotationBasedModelFactory - fix generated x_* class missing "org.atteo.classindex.IndexSubclasses" import * Expose ClassIndex lib to other bundles * Updated model classes Co-authored-by: hengsin <hengsin@gmail.com>
2021-09-18 12:35:57 +07:00
<?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="activate" immediate="true" name="org.adempiere.base.AnnotationBasedModelFactory">
<property name="service.ranking" type="Integer" value="0"/>
IDEMPIERE-4842 Easier model registration (#877) * Preliminary support for automatic model class registration Model classes can be tagged with a new @Model annotation that allows for easy/fast class scanning/registration, based on the ClassIndex library. The list of annotated model classes is generated at compile time, thus reducing reflection reliance to a bare minimum. NOTE: Eclipse uses its own Java compiler which is not strictly standard compliant and requires extra configuration. In Java Compiler -> Annotation Processing -> Factory Path you need to add ClassIndex jar file * Annotation based model factory * Improve classloader determination for annotation scanning ClassIndex default annotation scanning method determines the classloader to be used by calling Thread.currentThread().getContextClassLoader(), which should not be used in an OSGi environment. * Enable ClassIndex's annotation processor under Eclipse Make sure annotation processing is enabled at Module Properties -> Java Compiler -> Annotation Processing * Refactoring annotation-based model class detection Eliminated the need of annotating M* classes, by using ClassIndex's @IndexSubclasses annotation. * Minor change * Minor changes * Creation of AbstractModelFactory * Documentation * Make AnnotationBasedModelFactory extend AbstractModelFactory * IDEMPIERE-4842 Easier model registration - add annotation processor jdt settings - fix @Component annotation for AnnotationBasedModelFactory - fix generated x_* class missing "org.atteo.classindex.IndexSubclasses" import * Expose ClassIndex lib to other bundles * Updated model classes Co-authored-by: hengsin <hengsin@gmail.com>
2021-09-18 12:35:57 +07:00
<service>
<provide interface="org.adempiere.base.IModelFactory"/>
</service>
<implementation class="org.adempiere.base.AnnotationBasedModelFactory"/>
</scr:component>