core-jgi/org.adempiere.base.callout
Saulo José Gil 602e450a93
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 13:35:57 +08:00
..
.settings IDEMPIERE-4488 Remove .classpath from repository (#607) 2021-03-03 00:02:03 +01:00
META-INF IDEMPIERE-4933 Platform update for 9.x (#857) 2021-09-04 16:12:10 +02:00
OSGI-INF IDEMPIERE-3705 Define customer or vendor by context when creating new BPs via QuickEntry 2018-05-03 16:54:15 +02:00
src/org IDEMPIERE-4842 Easier model registration (#877) 2021-09-18 13:35:57 +08:00
.project IDEMPIERE-3531:add maven tycho configuration 2018-02-10 16:42:06 +07:00
build.properties IDEMPIERE-3531:some plugin don't include class on output maven when export 2018-02-11 00:37:05 +07:00
pom.xml IDEMPIERE-4933 Platform update for 9.x (#857) 2021-09-04 16:12:10 +02:00