Commit Graph

36 Commits

Author SHA1 Message Date
hengsin 28638d075b
IDEMPIERE-5019 add org.adempiere.base.annotation.EventTopicDelegate annotation (#952) 2021-10-28 11:21:08 +02:00
hengsin 22c09368e6
IDEMPIERE-5015 add org.adempiere.base.annotation.Callout annotation (#948) 2021-10-27 12:15:58 +02:00
hengsin 4759ae5c2b
IDEMPIERE-5001 add org.adempiere.base.annotation.Process annotation (#924)
* IDEMPIERE-5001 add org.adempiere.base.annotation.Process annotation

* IDEMPIERE-5001 add org.adempiere.base.annotation.Process annotation

minor refinement

* IDEMPIERE-5001 add org.adempiere.base.annotation.Process annotation

refine error handling

* IDEMPIERE-5001 add org.adempiere.base.annotation.Process annotation

refactor to follow closer the AnnotationBasedModelFactory naming
convention.
2021-10-22 12:38:10 +02:00
Saulo José Gil 2b4a2be5a2
IDEMPIERE-4842 Easier model registration (#893)
* 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>
2021-09-22 22:42:51 +08:00
hengsin 2f8adb48c9
IDEMPIERE-4842 Easier model registration (#887)
- Temporary disable AnnotationBasedModelFactory until getSubclasses()
doesn't work for subclass from different package is resolve.
2021-09-18 15:36:50 +08:00
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
Carlos Ruiz a4f67eb852
IDEMPIERE-4782 Multi-factor authentication (FHCA-2034) (#705)
* IDEMPIERE-4782 Multi-factor authentication (FHCA-2034)

Implement suggestions from Heng Sin

* IDEMPIERE-4782 Multi-factor authentication (FHCA-2034)

Fix security warning advised by github/CodeQL

* IDEMPIERE-4782 Multi-factor authentication (FHCA-2034)

Implement an incremental delay in zk when the validation code is wrong (to avoid brute-force attacks)
As suggested by Ricardo Santana:
* ensures one-time only use of an OTP
* Log failures in AuthFailure.log

* IDEMPIERE-4782 Multi-factor authentication (FHCA-2034)

* Log failures in AuthFailure.log - add case for login with email
* Implement incremental delay also for login panel
2021-06-08 19:49:46 +08:00
hengsin c159ce5325
IDEMPIERE-4695 Add document factory base class backed by Map and Lambda functional object (#572) 2021-02-09 19:17:15 +01:00
hengsin ddd1c40eb2
IDEMPIERE-4690 Add column callout factory base class backed by Map an… (#567)
* IDEMPIERE-4690 Add column callout factory base class backed by Map and Lambda functional object

Fix column callout factory cache.

Co-authored-by: Carlos Ruiz <carg67@gmail.com>
2021-02-06 14:53:59 +01:00
hengsin 1c5a28aa0a
IDEMPIERE-4689 Add process factory base class backed by Map and Lambda functional object (#566) 2021-02-06 14:37:04 +01:00
hengsin 0f263f1c79
IDEMPIERE-4675 Add model factory base class backed by Map and Lambda … (#555)
- added interface and default mapped model factory service
- added unit test for default mapped model factory service
2021-02-01 15:29:13 +01:00
hengsin b80ed34d9c
IDEMPIERE-4599 Remove obsolete org.compiere.interfaces.* interface (#473)
* IDEMPIERE-4599 Remove obsolete org.compiere.interfaces.* interface

* IDEMPIERE-4599 Remove obsolete org.compiere.interfaces.* interface

remove warning.
2020-12-18 14:52:11 +01:00
Carlos Ruiz 55356515b5 IDEMPIERE-4190 Implement Image Storage Provider (1006528) (FHCA-1165)
integrate development from Heng Sin
2020-02-27 21:37:32 +01:00
Diego Ruiz 43cfdd2a96 IDEMPIERE-2825 - Pluggable product pricing 2017-12-18 18:40:11 +01:00
Carlos Ruiz 7bceecdb88 IDEMPIERE-3243 - peer review 2016-11-23 21:08:46 +01:00
Dirk Niemeyer b96bfd7229 IDEMPIERE-2732 Make Callouts replaceable by Factory approach 2015-07-29 09:58:00 -05:00
Elaine Tan 8c10216759 - IDEMPIERE-1269 Improve tax configuration to support external services
- IDEMPIERE-1286 Improve address validation configuration to support external services
2013-08-27 12:48:41 +08:00
Carlos Ruiz 9b13c2dec4 IDEMPIERE-840 Improvement to Request model class 2013-07-31 09:06:41 -05:00
Heng Sin Low 5a661371e7 Merge cf7b58b5e6d2 2013-07-31 16:42:54 +08:00
Heng Sin Low 8d9a2ba66f IDEMPIERE-1223 Use ClassName as Name of OSGi component. 2013-07-31 16:30:15 +08:00
Elaine Tan 92532db6de IDEMPIERE-840 Improvement to Request model class - combine the requestservice.xml and requesteventhandler.xml into one. Use class name as the pid. 2013-07-31 15:31:58 +08:00
Elaine Tan f5fb6f7d37 IDEMPIERE-840 Improvement to Request model class - fix requesteventhandler.xml 2013-07-31 14:29:52 +08:00
Elaine Tan b63c3777e1 IDEMPIERE-840 Improvement to Request model class - Using OSGi event instead of model validator 2013-07-30 22:36:05 +08:00
Elaine Tan f4556324ad IDEMPIERE-840 Improvement to Request model class - Using OSGi event instead of model validator 2013-07-30 12:08:56 +08:00
Heng Sin Low 7a5fd10add IDEMPIERE-694 ILookupFactory and DefaultLookupFactory to load subclasses of Lookup dynamically via OSGI components. Contributed by Jan Thielemann. 2013-03-11 17:32:48 +08:00
Heng Sin Low 8c7ba69090 IDEMPIERE-293 Support for Kill Session. Use dynamic service for access to IMessageService to avoid startup timing issue. 2013-02-14 21:07:31 +08:00
Heng Sin Low 1c718c74a9 IDEMPIERE-359 Add OSGi Service support for existing extension point. Remove obsolete xml file. 2013-02-14 21:01:31 +08:00
Heng Sin Low f4da72ef50 IDEMPIERE-359 Add OSGi Service support for existing extension point. 1) Separate osgi service and equinox extension locator API. Service.locator() for OSGi service and EquinoxExtensionLocator.instance() for equinox extension. 2) Use OSGi service for all singleton component ( all factories and most services ) and equinox extension for others ( UI object, Process instance and PIPO handlers). 2013-02-13 16:15:43 +08:00
Heng Sin Low b6af6a3489 IDEMPIERE-613 Column Encryption Enhancement. 2013-02-06 18:03:42 +08:00
Carlos Ruiz d03f0b79ad IDEMPIERE-390 Attachments/archives on load balancer scenario / Implement archive part / Peer review 2012-12-05 19:30:45 -05:00
Juliana Corredor 16cf4aee67 IDEMPIERE-390 Attachments/archives on load balancer scenario / Implement archive part 2012-12-05 17:59:06 -05:00
Juliana Corredor 28008f2737 IDEMPIERE-390 Attachments/archives on load balancer scenario 2012-11-28 15:52:54 -05:00
Heng Sin Low d4e9ae0656 IDEMPIERE-359 Add OSGi Service support for existing extension point. Move more core services to OSGi service. 2012-11-08 17:36:50 +08:00
Heng Sin Low 2dfa60b73e IDEMPIERE-359 Add OSGi Service support for existing extension point 2012-11-06 11:39:23 +08:00
Heng Sin Low 3c4c00a409 iDempiere IDEMPIERE-234 Configurable Toolbar.
- Bug fixes for report viewer button control.
- Added window toolbar button.
- Added custom window button using osgi service.
- Refactor ExportAction as an custom window button service example.
2012-10-28 00:31:25 +08:00
Heng Sin Low 0af05090d1 Implemented system event on top of osgi event admin framework and dynamic service framework. Added event.test project as example of usage. Modify ModelEventValidationEngine to invoke osgi event handler. 2010-12-06 13:04:44 +08:00