* IDEMPIERE-4842 Easier model registration
- Needs to enable jar scanning to support felix/console installation of
plugin jar.
- add rejectJars call to reduce startup delay after enable of jar
scanning. keep the list short to reduce future maintenance hazard.
- remove the not supported use of acceptPackagesNonRecursive and
acceptClasses together.
- change getAcceptClassesPatterns() default to X_* and M*. Withouut
acceptPackages, we need to scan both X and M classes.
* IDEMPIERE-4842 Easier model registration
- remove use of rejectJars since the performance difference is small and
need maintenance.
- remove warning for not overriding getPackages(). Plugin that doesn't
has many model class (< 100) doesn't have to override getPackages() as
performance is good enough with the use of acceptClasses(...).
* IDEMPIERE-4842 Easier model registration
- Change from https://github.com/atteo/classindex to
https://github.com/classgraph/classgraph, remove annotation processor
config.
- Change service.ranking of DefaultModelFactory to -1 and
service.ranking of AnnotationBasedModelFactory to 0. This give
AnnotationBasedModelFactory higher priority over DefaultModelFactory and
allow plugins to have higher priority over AnnotationBasedModelFactory
with server.ranking of 1 (the common practise before the introduction of
AnnotationBasedModelFactory).
- Added resultset constructor to MTree. This is to allow the use of
MTree with model factory.
- Remove classindex annotation from org.adempiere.base.Model and X_*
model classes.
- Added unit test for table to model class mapping
- AnnotationBasedModelFactory: Change from using annotation processor to
runtime annotation scanning using the classgraph library. The default
setting scans all the X_* model class and travels the inheritance
hierarchy to discover the M* model class. Plugin needs to create a
subclass of AnnotationBasedModelFactory and register it as an OSGi
component to scan the plugin's annotated model classes (the plugin's
custom AnnotationBasedModelFactory component should have service.ranking
> 0).
* IDEMPIERE-4842 Easier model registration
minor refinement
* Minor changes
Co-authored-by: hengsin <hengsin@gmail.com>
* IDEMPIERE-4866 : Multiple smtp per tenant
Same PR as https://github.com/idempiere/idempiere/pull/783
* IDEMPIERE-4866 : Multiple smtp per tenant - various fixes
Fixes suggested by Carlos on https://github.com/idempiere/idempiere/pull/783 (remove System.out, change AD_Element name, tab in SingleRow mode) + fix NPE
* IDEMPIERE-4866 : Multiple smtp per tenant : implement cache
* IDEMPIERE-4866 : Multiple smtp per tenant : process EMailTest was not set on column
Fixes by Carlos
Co-authored-by: Carlos Ruiz <carg67@gmail.com>
* IDEMPIERE-4906 Dashboard showing donation message on first log-in
* IDEMPIERE-4906 Dashboard showing donation message on first log-in / make dashboard collapsible
* IDEMPIERE-4842 Easier model registration
- Temporary disable AnnotationBasedModelFactory until getSubclasses()
doesn't work for subclass from different package is resolve.
* IDEMPIERE-4842 Easier model registration
- turn of annotation processing in editor which causes slow editor
performance
* 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>
* IDEMPIERE-4946 : Add IsShowInDashboard, SeqNo and ImageURL on AD_UserDef_Info
* IDEMPIERE-4946 : Add IsShowInDashboard, SeqNo and ImageURL on AD_UserDef_Info
Use customized image from tenant level when opening the panel
* IDEMPIERE-4946 : Add IsShowInDashboard, SeqNo and ImageURL on AD_UserDef_Info - fix migration scripts name
* IDEMPIERE-4961 Minor performance enhancement for AD Window
* IDEMPIERE-4961 Minor performance enhancement for AD Window
Fix potential mtab not found issue with 2pack import.
* IDEMPIERE-4960 Performance improvement for the opening of info window
* IDEMPIERE-4960 Performance improvement for the opening of info window
Query.scroll and Query.list basically offer the same db performance, the
previous change is unnecessary.
* IDEMPIERE-4959 Performance improvement for the opening of form window
* IDEMPIERE-4959 Performance improvement for the opening of form window
minor cache name change.
* IDEMPIERE-4958 Performance improvement for the opening of process dialog
* IDEMPIERE-4958 Performance improvement for the opening of process dialog
Query.scroll and Query.list has similar db performance, the previous
change is not needed.
At the end of table sorting, trigger data status change event before UI
event, so that GridTab data is changed before UI refresh, which is
needed for Swing UI.
* IDEMPIERE-4937 Refreshing the GridTab after moving a node in the Tree
* IDEMPIERE-4937 Refreshing the GridTab after moving a node in the Tree
Use Trx object instead of context for event changes indicator.
* Revert "IDEMPIERE-4470 Window Advanced Search - New operator types: AND Not, Or Not (#850)"
This reverts commit 39ad82ebf0.
* IDEMPIERE-4470 Window Advanced Search - New operator types: AND Not, Or Not
Based on pull request 170
Co-authored-by: Igor Pojzl <igor.pojzl@cloudempiere.com>
* IDEMPIERE-4470 Window Advanced Search - New operator types: AND Not, Or Not
Fix naming of migration scripts as suggested by Heng Sin
* IDEMPIERE-4470 Window Advanced Search - New operator types: AND Not, Or Not
Based on pull request 170
Co-authored-by: Igor Pojzl <igor.pojzl@cloudempiere.com>
* IDEMPIERE-4470 Window Advanced Search - New operator types: AND Not, Or Not
Rename migration scripts as suggested by Heng Sin
* IDEMPIERE-4905 : Export data from AD_ReportView_Column while exporting a ReportView with 2Pack
* IDEMPIERE-4905 : Export data from AD_ReportView_Column while exporting a ReportView with 2Pack - fix licence header + add author javadoc + remove a system.out.println
* IDEMPIERE-4905 : Export data from AD_ReportView_Column while exporting a ReportView with 2Pack
Remove unnecessary if condition
* IDEMPIERE-4905 : Export data from AD_ReportView_Column while exporting a ReportView with 2Pack
Instead of Env.get/setContext, you can use ctx.ctx.get/set
* addendum to IDEMPIERE-1575 with regards to IDEMPIERE-4724
* Regenerated scripts, added register line and increased the size up to 4k to safely accomodate multiple callouts
Co-authored-by: mschnbeck <ms.github@schoenbeck.de>
* IDEMPIERE-4927 Header mobile not showing menu and searchbox when username is too long
* IDEMPIERE-4927 Header mobile not showing menu and searchbox when username is too long / peer review
Co-authored-by: a_lara <alara@ghintech.com>
* IDEMPIERE-2853: Support for IADTabPanel as factory to add custom Tab types
sh: q: command not found
* IDEMPIERE-2853: adding requested Java doc, fixing seq mismatch in oracle and postgresql, Using Interface method instead of manual isSortTab check,
* IDEMPIERE-2853: Adding default implementation for isEnableCustomizeButton in IADTabpanel
* IDEMPIERE-2853: renaming reference label and Added support for allowing implementor to update toolbar state.
* IDEMPIERE-2853: Fixing compilation issue due to merging to master branch
* IDEMPIERE-4724
allow to concatenate parts at import
allow to prefix them which also is necessary to separate them when concatenating
allow to concatenate callouts and provide sort of parameters
* Update CalloutEngine.java
minor - typos in comments
* Update ImpFormatRow.java
is better to raise the exception when the callout cannot be found - the results can be unexpected for end users if the callouts are not called
Co-authored-by: Carlos Ruiz <carg67@gmail.com>