Commit Graph

109 Commits

Author SHA1 Message Date
hengsin 633c2e240f
IDEMPIERE-5012 org.idempiere.ui.zk.annotation.Form annotation (#944) 2021-10-23 15:11:49 +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
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
hengsin ae5a665dd8
IDEMPIERE-4933 Platform update for 9.x (#857)
* IDEMPIERE-4933 Platform update for 9.x

- WIP

* IDEMPIERE-4933 Platform update for 9.x

- project to repackaged some osgi bundles from maven

* IDEMPIERE-4933 Platform update for 9.x

- Fix target platform error

* IDEMPIERE-4933 Platform update for 9.x

* IDEMPIERE-4933 Platform update for 9.x

- minor eclipse setting fix
2021-09-04 16:12:10 +02:00
hengsin ac01e77a40
IDEMPIERE-4880 Replace iText PDF with OpenPDF (#837) 2021-08-17 18:44:32 +02:00
hengsin 1fb4067c01
IDEMPIERE-4894 OSGi Interface to support custom header and footer (#804)
* IDEMPIERE-4894 OSGi Interface to support custom header and footer

* IDEMPIERE-4894 OSGi Interface to support custom header and footer

incorporate migration script fix from Carlos
2021-07-30 13:53:28 +02:00
hengsin d7153575e6
IDEMPIERE-4824 Boolean Logic Expression Enhancements (#716)
* IDEMPIERE-4824 Boolean Logic Expression Enhancements

* IDEMPIERE-4824 Boolean Logic Expression Enhancements

Fix handling of conditional variable (i.e @VariableName:DefaultValue@)

* IDEMPIERE-4824 Boolean Logic Expression Enhancements

Fix unit test launch configuration
2021-06-10 23:08:22 +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 beaaf31d9a
IDEMPIERE-4771 add Cloud Upload interface to report viewer and scheduler (#679)
* IDEMPIERE-4771 add Cloud Upload interface to report viewer and scheduler

* IDEMPIERE-4771 add Cloud Upload interface to report viewer and scheduler

Fix initial output type selection for csv. Fix handling of binary vs
text media type.

* IDEMPIERE-4771 add Cloud Upload interface to report viewer and scheduler

- Change AD_AuthorizationAccount scope from single value to multiple
selection list (AD_AuthorizationScopes replace AD_AuthorizationScope)

* IDEMPIERE-4771 add Cloud Upload interface to report viewer and scheduler

Fix isIntersectCSV db function

* IDEMPIERE-4771 add Cloud Upload interface to report viewer and scheduler

add back AD_AuthorizationScope Configured dynamic validation filter
2021-05-12 13:42:55 +02:00
hengsin a79be8aad8
IDEMPIERE-4749 Allow to use OAuth2 libraries on plugins (#668)
* IDEMPIERE-4749 Allow to use OAuth2 libraries on plugins

- move oauth libraries and dependency to target platform
- require Tycho 2.3.0+ and Eclipse 2021-03+

* IDEMPIERE-4749 Allow to use OAuth2 libraries on plugins

Fix launch configuration.
2021-04-28 14:59:50 +02:00
Carlos Ruiz 5f2d71347d
IDEMPIERE-3101 implement OAuth2 for mail (gmail, outlook and other mail system) (#593)
* IDEMPIERE-3101 implement OAuth2 for mail (gmail, outlook and other mail system)

WIP - initial version working on zk with google apps mail using OAuth2 Authorization Code Flow and Client Type = web application

* Enable imap reading with OAuth2 in RequestEMailProcessor
* Simplify the code - tested plain and OAuth2 can use the same methods
* Add +SCOPE parameter to AddAuthorizationForm according to IDEMPIERE-4713
* Rename the form AddAuthorizationMailForm to AddAuthorizationForm as is now more generic

* IDEMPIERE-4713
* Rename migration scripts to make it newer than IDEMPIERE-4713
* Add list of scopes attended by a credential
* Change form to accept other scopes, if no scope parameter is passed, then a list is shown, change the menu to fix the EMail scope
* Add MAuthorizationAccount.refreshAndGetAccessToken
* Add translation for messages

* make call generic oauth, avoid using specific google API

* Tests with microsoft as OAuth2 provider
* Add record for microsoft as provider
* Increase size of tokens
* Define mandatory and secure columns
* Update refresh token when it comes on the refresh call
* Revoke endpoint is optional

* Change the approach to a process instead of a form (WIP)
* Implement servlet to process the OAuth2 code

* Solve context suggestion from hengsin

* Implement the form in an automatic popup approach for running on zkwebui

* i18n - add translations for all messages that are shown to user
* on the form opted for click to avoid the problem with browsers forbidding popups
* clean spaces and tabs on line endings

* avoid logging and copy of the secure columns

* Fix problem reported by @d-ruiz about hidden NPE when SMTP Authentication is disabled

* Add writing to AD_PInstance_Para and AD_PInstance_Log the results of processing the servlet
* Control to avoid using the same authorization URL twice
2021-03-06 11:49:39 +01:00
hengsin ee77620186
IDEMPIERE-4694 Implement thread safe, annotation based osgi event han… (#571)
* IDEMPIERE-4694 Implement thread safe, annotation based osgi event handling

Make sure the component register in the event handler unit test cases
wouldn't have impact on other unit test cases.
2021-02-10 16:12:16 +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
Carlos Ruiz 8103ab0732 IDEMPIERE-4604 Release 8.2
Change references to new version
Create new migration folder
2020-12-20 10:15:20 +01:00
Carlos Ruiz 6390ce20cd IDEMPIERE-4604 Release 8.2
Fix warnings on MANIFEST.MF
2020-12-20 09:53:21 +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 210e54b05f IDEMPIERE-4521 Release 8.1 - RC
Change versions in pom and manifest files
2020-11-03 21:59:12 +01:00
hengsin dd2ef468b0
IDEMPIERE 4287 (#247)
* IDEMPIERE-4287 Cache API not thread safe and inconsistent with Context
add support to make PO immutable

* IDEMPIERE-4287 Cache API not thread safe and inconsistent with Context
- added thread safe Immutable and Copy cache implementation for PO.
- migrate most of PO cache to immutable and copy cache.
- added pos sales order test.

* IDEMPIERE-4287 Cache API not thread safe and inconsistent with Context
- add test case for initial client setup and bank statement
- fix error for image editor, location editor, locator editor, initial
client setup, complete bank statement and migrate storage provider.

* IDEMPIERE-4287 Cache API not thread safe and inconsistent with Context
- added ImmutablePOSupport interface. Model class implement this
interface for immutable PO support.
- remove usage of cache for transaction table (rfq, invoice, inventory).
- add getCopy method to some model class to support getting an
updateable copy of PO from the otherwise immutable PO cache.
- the added getCopy method is use to return updateable PO for indirect
PO reference, for e.g MColumn.getAD_Table() and MOrderLine.getProduct.
2020-09-21 14:03:00 +08:00
hieplq 595e0df99c
Idempiere-4298:support update jdk (jdk 12 13 14) (#69)
* IDEMPIERE-4298: remove Bundle-RequiredExecutionEnvironment

when build by tycho value of Bundle-RequiredExecutionEnvironment and jdt need to compatibility
in case we use Bundle-RequiredExecutionEnvironment = 11 then can't build by jdk != 11
so stick on fix value isn't good

eclipse now also support Require-Capability, so don't need Bundle-RequiredExecutionEnvironment anymore

* IDEMPIERE-4298:support update jdk (jdk 12 13 14)

default environment still jdk-11 but you can build for any jdk by below command

export JAVA_HOME=path to jdk
mvn verify -Djdk.version=11

in case on JAVA_HOME is jdk 14 then can set jdk.version for 11, 12, 13, 14 and same for other jdk

at moment java 14 just support on eclipse 2020-03 with install plugin
Java 14 Support for Eclipse 2020-03 (4.15)
2020-05-20 11:18:31 +08:00
hengsin d5a82db8b1 IDEMPIERE-4232 Remove code for Media and Knowledge management 2020-04-06 16:45:52 +08:00
hengsin d79c6de5e5 IDEMPIERE-4202 Remove java web start code and libraries 2020-03-10 18:20:04 +08:00
hengsin 3cc17d25fd IDEMPIERE-4158 Move Swing Client out of core. Drop restlet dependency, drop webstart and applet stuffs and some minor dependency adjustments. 2020-01-29 08:00:36 +08:00
Deepak Pansheriya f13bcd6de9 IDEMPIERE-4136: Upgrading Jasper report to version 6.11.0 2019-12-25 20:28:37 +05:30
Carlos Ruiz 64eadf1822 release 7.1 process - set version in configuration files 2019-11-21 23:28:48 +01:00
Heng Sin Low 8f3b199b1f IDEMPIERE-4052 Move to Eclipse 2019-09 and ECJ 3.19.0 2019-09-19 19:57:52 +08:00
hieplq d7cddaa9f2 IDEMPIERE-3947:add interface to easy implement FA depreciation method
Fixed Asset bugs and enhancements
2019-08-15 22:03:59 +07:00
Carlos Ruiz f5e6beb8b7 hg merge release-6.2 (merge release6.2 into default) 2019-04-11 15:51:04 +02:00
Heng Sin Low bf2b531267 IDEMPIERE-3946 Upgrade to Tycho 1.4.0 2019-04-11 20:22:24 +08:00
Carlos Ruiz d28c1e682d Integrate contribution from TrekGlobal - developed by Heng Sin Low and Elaine Tan
1007781 Fix barcode text bug
1009003 add QR Code as Barcode Type for Print Formats
1006829 Add "Print Barcode Text" flag to print format item. Fix wrong scaling for barcode image. Fix barcode print format item doesn't respect max height.
IDEMPIERE-3948 Implement QRCode support in report engine
IDEMPIERE-1854 Barcode issue: Code Missing from barcodes in Code 128 B
IDEMPIERE-1838 Adding UPC-A barcode support in print format and adding setting fonts from print format item
2019-04-10 17:57:08 +02:00
Carlos Ruiz e1ce7e9ec9 Backed out changeset c14bc0ce677c - IDEMPIERE-3808 - works fine in 2018-12 but not yet in 2018-09 2019-01-10 15:39:41 +01:00
Carlos Ruiz f79dc728a3 IDEMPIERE-3808:collect info to move idempiere to jdk-11. Fix jdk target environment. As advised by Heng Sin 2019-01-10 15:21:19 +01:00
Carlos Ruiz 090a34eb88 IDEMPIERE-3808:collect info to move idempiere to jdk-11. Fix jdk target environment. / eclipse still doesn't fully support - avoid annoying warning on launcher 2019-01-07 17:58:10 +01:00
Carlos Ruiz d14338729b IDEMPIERE-3808:collect info to move idempiere to jdk-11. Fix jdk target environment. 2019-01-07 13:22:58 +01:00
Heng Sin Low 7611c3e3da IDEMPIERE-3808:collect info to move idempiere to jdk-11. Fix jdk target environment. 2019-01-07 14:59:43 +08:00
Carlos Ruiz 9487335169 Preparing release 6.2 - upgrade versions 2019-01-05 23:56:28 +01:00
hieplq 45e54b5da0 IDEMPIERE-3808:collect info to move idempiere to jdk-11 (update lib j2ee take out from jdk)
https://github.com/eclipse-ee4j
some already release so update, some not yet release so wait

https://eclipse-ee4j.github.io/javamail/
https://eclipse-ee4j.github.io/jaf/
2018-12-23 11:08:13 +07:00
hieplq 942800418e IDEMPIERE-3808:collect info to move idempiere to jdk-11 (zk8.6.0.1, eclipse-1812, java11, tycho 1.3)
still use local repository for maven.to.p2 to continue update library
2018-12-22 15:49:50 +07:00
Carlos Ruiz ee4303d453 set version to 6.1 2018-11-04 14:47:53 -02:00
hieplq 7ddd9b9692 IDEMPIERE-3798:Move iDempiere default branch to openjdk 10 (web service/tycho ok, eclipse conflic)
use javax.activation bundle from eclipse can resolve issue conflic between tycho buil/eclipse build/eclipse runtime
2018-10-31 10:25:17 +07:00
hieplq 8a04f3e303 IDEMPIERE-3798:Move iDempiere default branch to openjdk 10 (web service/tycho ok, eclipse conflic)
1. new version of cxf need new version of spring so get osgi version from org.apache.servicemix but spring of cxf limit to 4.0 so take 4.3.19.RELEASE_1
http://cxf.apache.org/docs/30-migration-guide.html

2. eclipse auto add --add-modules=ALL-SYSTEM when run eclipse launcher, so when run idempiere server from eclipse encounter bellow condition
   javax.activity, javax.xml.ws is depricate package to remove on jdk11
   that why this module is exclusive from build class path (but by --add-modules=ALL-SYSTEM it appear at runtime)
   we use some replace jar for that package (com.sun.activation for javax.activation)
2018-10-31 04:03:57 +07:00
hieplq 69c91e1111 IDEMPIERE-3798:Move iDempiere default branch to openjdk 10 (build by tycho issue)
https://bugs.eclipse.org/bugs/show_bug.cgi
https://bugs.eclipse.org/bugs/show_bug.cgi?id=537016

1. use latest jdt for support jdk10

2. tycho resolve dependency to javax.activation, javax.xml.bind from jdk, but jdk don't public it.
eclipse resolve by get highest version from com.sun.activation.javax.activation, jaxb-api
so need use Require-Bundle to force tycho choose com.sun.activation.javax.activation

2.1 if keep both import javax.activation and Require-Bundle com.sun.activation.javax.activation with get bellow exception on tycho but org.adempiere.base don't have this issue
[ERROR] /home/hieplq/1Dev/project/native/idempiere-dev-11/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/DefaultFeedbackService.java:[16]
[ERROR] 	import javax.activation.DataSource;
[ERROR] 	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[ERROR] Access restriction: The type 'DataSource' is not API (restriction on classpath entry '/home/hieplq/.m2/repository/p2/osgi/bundle/com.sun.activation.javax.activation/1.2.0/com.sun.activation.javax.activation-1.2.0.jar')

3. pass --add-exports for org.adempiere.base, install, server and swing
2018-10-25 23:59:10 +07:00
hieplq a0f7e977fe IDEMPIERE-3798:Move iDempiere default branch to openjdk 10 (update maven project/build/poi)
run auto update maven projec (side effect from 15ccf00c09f5)
also help resolve build maven by jdk 10:
        https://bugs.eclipse.org/bugs/show_bug.cgi
        https://bugs.eclipse.org/bugs/show_bug.cgi?id=537016

now targetplatform have two version of poi but eclipse bind to lower version, so add package dependency to force it
2018-10-25 06:59:03 +07:00
hieplq 932e6fe6d0 IDEMPIERE-3798:Move iDempiere default branch to openjdk 10 (hamless warrning) 2018-10-24 12:38:27 +07:00
hieplq 6bc86a754c IDEMPIERE-3798:Move iDempiere default branch to openjdk 10 (update lib)
spring, service, xml http://openjdk.java.net/jeps/320
2018-10-23 22:27:06 +07:00
hieplq 1c5a89128b IDEMPIERE-3798:Move iDempiere default branch to openjdk 10 (Bundle-RequiredExecutionEnvironment)
eclipse don't reconize Bundle-RequiredExecutionEnvironment 10
2018-10-23 17:29:35 +07:00
hieplq b2fa99b192 IDEMPIERE-3798:Move iDempiere default branch to openjdk 10 (update lib)
update jetty to 12
update almost library to latest version
change org.eclipse.jdt.core.compiler.batch to org.eclipse.jdt.core
change javax.management.j2ee-api to org.apache.geronimo.specs.geronimo-j2ee-management_1.1_spec, reduce dependency and correct dependency of activeMQ
javax.activation to com.sun.activation.javax.activation
lib for service will take from library instea of jdk
groovy to date
2018-10-23 09:36:53 +07:00
hieplq 82c8c5b31d IDEMPIERE-3798:Move iDempiere default branch to openjdk 10
change targetPlatform and classpath to JavaSE-10
2018-10-16 07:08:34 +07:00
hieplq 0a5d5a78ac IDEMPIERE-3531: update jasper report to 6.7.0
+ add more Osgi for jasper dependency
+ don't fix incompatibility issue for swing
+ use bootdelegation to resolve org.w3c.dom.events issue. let all use class from jdk
2018-09-12 00:10:22 +07:00