Commit Graph

148 Commits

Author SHA1 Message Date
Jasper Siepkes 0173bbd296
Fixed user defined JDBC URL override not working. (#1499)
Fixes logic error in the way a user defined `jdbcUrl` in
`hikaricp.properties` is handled.

Additionally changed the default max pool size to the previous limit of
90 connections. PR #926 originally also had this but this apparantly
fell out. Testing showed that during first time server startup a flood
of connection can be made and a connection pool of 30 can be
overwhelmed and callers waiting on a connection will time-out.
2022-09-26 15:45:05 +08:00
hengsin 536eda3546
IDEMPIERE-5427 Upgrade to Tycho 2.7.5 (#1493)
- restore .classpath to remove Tycho Configurator m2e connector
dependency
2022-09-21 14:21:27 +02:00
Carlos Ruiz ac36849415
IDEMPIERE-5013 Implement HikariCP as a replacement for c3p0 (#1486) 2022-09-14 10:21:47 +08:00
Carlos Ruiz c5c05385ec
IDEMPIERE-5013 upgrade JDBC libraries to latest version (#1475) 2022-09-10 13:42:55 +02:00
Jasper Siepkes 861e3ad01f
IDEMPIERE-5013 Implement HikariCP as a replacement for c3p0 (#926)
* Replaced PostgreSQL and Oracle connection pools with HikariCP.

Replaced C3P0 with HikariCP. HikariCP is a Apache licensed connection pool with substantially better performance and better resilience to failure (DB disconnects, etc.) then C3P0. Read more about it here: https://github.com/brettwooldridge/HikariCP .

Cleaned up the `getCachedConnection` method. With HikariCP there is no need to retry to obtain a connection since getting an connection will block until a free connection is available or until a timeout is reached (default 30 seconds) at which point an `SQLException` is thrown. This also removed calling `Runtime.getRuntime().runFinalization();`. HikariCP is currently configured to detect / log leaks when a connection hasn't returned to the pool for longer then 5 minutes.

Loading of pool config properties was cleaned up. Defaults are now loaded from a single file instead of defaults coming from both file and hardcoded properties. It is now also possible to specify any HikariCP property in the user pool property file.

Initialization of the datasource must happen in the `getDataSource()` method because at object construction not all JDBC config is known. However this method could (as far as I could tell) be called concurrently from multiple threads but had no mechanism to prevent initializing the DB pool multiple times. The variable in which the pool itself was stored (`m_ds`) also was not marked volatile or immutable which could lead to visibility issues. Instead of lazy initialization of the pool in the `getDataSource()` method the pool could probably better be initialized at object construction. However I wasn't able to achieve that without breakage therefor I made the initialization mechanism work correctly with concurrent invocations.

Various config options such as the `MaxStatementsPerConnection` options were removed because HikariCP doesn't support them.

* (Re)added Sequence time-out.
2022-09-10 12:21:57 +02:00
hengsin 288e96fe8d
IDEMPIERE-5376 CConnection and DB clean up (#1441)
* IDEMPIERE-5376 CConnection and DB clean up

* IDEMPIERE-5376 CConnection and DB clean up

- More clean up
2022-08-13 12:05:52 +02:00
Carlos Ruiz 486ae19cdc
IDEMPIERE-5355 Improve default trx name (FHCA-3765) (#1407)
* IDEMPIERE-5355 Improve default trx name (FHCA-3765)

* IDEMPIERE-5355 Improve default trx name (FHCA-3765)

Implement suggestions from Heng Sin
Added SysConfig TRX_AUTOSET_DISPLAY_NAME (default false)

* Delete test/debugging code committed by mistake

* IDEMPIERE-5355 fix method wrongly named
2022-07-26 14:08:32 +08:00
hengsin d2e52bbb86
IDEMPIERE-5262 Implement readonly protection for DB.getSQLValueEx call (#1287)
* IDEMPIERE-5262 Implement readonly protection for DB.getSQLValueEx call

* IDEMPIERE-5262 Implement readonly protection for DB.getSQLValueEx call
2022-05-06 11:14:11 +02:00
hengsin 13b37c4acc
IDEMPIERE-5093 Scheduler cron pattern scheduling is always using serv… (#1270)
* IDEMPIERE-5093 Scheduler cron pattern scheduling is always using server time zone

* minor fix for oracle/202203240830_IDEMPIERE-5093.sql

* IDEMPIERE-5093 cheduler cron pattern scheduling is always using server time zone

- add time zone comment for cronpattern field
- use fix format for elapsed time (day'hour:minutes:seconds.millisecond)
- use time zone formatting at server monitor
- include etc/gmt* timezone id. fix handling of invalid user input
- fix wrong editor (date) use for timestamp with time zone field

* IDEMPIERE-5093 cheduler cron pattern scheduling is always using server time zone

- Fix MSchedule.getNextRunMS call.

* IDEMPIERE-5093 Scheduler cron pattern scheduling is always using server time zone

- add T_Timestamp to Test table and window.
- fix date time editor doesn't capture seconds for timestamp with time
zone.
- date time editor: use tenant time zone (if set), fallback to browser
time zone.
- date time editor: fix processing of timestamp with time zone value.
- time zone editor: drop the confusing etc/gmt* entries and support
entry of GMT(+/-)hh:mm custom zone id.

* IDEMPIERE-5093 Scheduler cron pattern scheduling is always using server time zone

Fix NPE

Co-authored-by: Carlos Ruiz <carg67@gmail.com>
2022-04-22 21:28:51 +02:00
igorpojzl 60f76d9edf
IDEMPIERE-5147 Improve Query.first() methods - performance (#1124)
* IDEMPIERE-5147  Improve Query.first() methods - performance

* IDEMPIERE-5147 Query Fix move buildSQL

* IDEMPIERE-5147 Query Fix sql value.

* IDEMPIERE-5147 DB paging Optimalizayion Patch

* IDEMPIERE-5147 Query test fix
2022-01-11 16:10:55 +01:00
Carlos Ruiz fa62f421b9
iIDEMPIERE-5109 Release 9 Horizon - set master in v10 (#1092) 2021-12-24 17:18:24 +01:00
hengsin f863f9b652
IDEMPIERE-5009 Syntax error while installing PackIn (native postgres) (#946)
* IDEMPIERE-5009 Syntax error while installing PackIn (native postgres)

* IDEMPIERE-5009 Syntax error while installing PackIn (native postgres)

Incorporate patch from Carlos
2021-10-26 13:05:44 +02:00
Carlos Ruiz cf5c04427b
IDEMPIERE-4991 Identify iDempiere JDBC connections in DBeaver or other session administration software (#913) 2021-10-08 16:12:52 +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 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 1971b4f0dc
IDEMPIERE-4488 Remove .classpath from repository (#607)
* IDEMPIERE-4488 Remove .classpath from repository

* IDEMPIERE-4488 Remove .classpath from repository

add ignore for .classpath

* IDEMPIERE-4488 Remove .classpath from repository

remove ".settings/org.eclipse.jdt.core.prefs"

* IDEMPIERE-4488 Remove .classpath from repository

fix false status report for /bin and .project
2021-03-03 00:02:03 +01:00
hengsin 59b83c3361
IDEMPIERE-4628 Implement configurable query timeout for info window (#532)
* IDEMPIERE-4628 Implement configurable query timeout for info window

* IDEMPIERE-4628 Implement configurable query timeout for info window

Move migration script from i8.2z to i8.2
2021-01-19 10:25:13 +08:00
hengsin fadc540557
IDEMPIERE-4635 Model Generator launch configuration broken (#515)
* IDEMPIERE-4635 Model Generator launch configuration broken

* IDEMPIERE-4635 Model Generator launch configuration broken

fix other launch configuration
2021-01-08 16:56:21 +01:00
hengsin 79657a2fca
IDEMPIERE-4613 Remove obsolete jdbctest class (#489) 2020-12-30 14:20:21 +01:00
Diego Ruiz da6d6b83aa
IDEMPIERE-4607 Cannot export windows via 2pack if any field has a Fie… (#483)
* IDEMPIERE-4607 Cannot export windows via 2pack if any field has a Field Group

* IDEMPIERE-4607 Implement changes discussed in JIRA - Add a new isList method to DisplayType

* IDEMPIERE-4607 Fixed typo

* IDEMPIERE-4607 Implement default method to return false by default - PR CarlosRuiz
2020-12-26 16:35:50 +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
Carlos Ruiz 7a957d8148
IDEMPIERE-4556 Cannot synchronize columns with a Payment Reference (#398) 2020-11-21 14:36:19 +08: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
hieplq 58258ad506
Idempiere-4492 update library (eclipse-4.17, jasper 6-15, jetty-9.4.33, atmosphere-2.6.4) (#331)
* IDEMPIERE-4492 update jetty to 9.4.33.v20201020 update atmosphere to 2.5.15

* IDEMPIERE-4492 update jetty to 9.4.33.v20201020 (update configuration)

update to default jetty configuration
delete unused configuration (alpn, http2,..)

* IDEMPIERE-4492 update orbit eclipse repository to 4.17

* IDEMPIERE-4492 update orbit eclipse repository to 4.17 (on parent pom)

* IDEMPIERE-4492 update jasper to 6.15.0

* IDEMPIERE-4492 update jasper to 6.15.0 (IDEMPIERE-4504)

get rid of bundle "org.w3c.dom.events version 3.0.0" by use old version of org.w3c.dom.smil

note: on target platform a bundle has multi version then tycho can pickup correct version define on feature (tab included plugins, field version)
but on eclipse when sync launching from .product it don't respect that value, always set highest version to bundle
workaround: on target platform manual un-select bundle org.w3c.dom.smil 1.0.1

* IDEMPIERE-4492 update atmosphere to 2.6.4

* IDEMPIERE-4492 refine target platform

use targetplatform-dsl to generate target platform https://github.com/eclipse-cbi/targetplatform-dsl
   + don't need to care update bundle version when update repository
   + at moment org.idempiere.eclipse.platform-feature include some feature form eclipse repository
     so target has to include that feature so target platform will include all bundler request by feature and bundle request by plugins of that feature and so on (ever optional
     so it make target content has more plugins than what we use on project
     next step will convert include feature to include plugins to define only what we used

* IDEMPIERE-4492 refine target platform (continue)

don't include framework feature, use include plugins to void load transitive dependency so minimize target flatform
remove some unused feature from idempiere product

* IDEMPIERE-4492 update c3p0 and database jdbc (patch from Carlos)
2020-10-31 06:53:36 +08:00
hengsin 9162b60af7
IDEMPIERE-4498 Performance: add cache for osgi services factory (#321)
* IDEMPIERE-4498 Performance: add cache for osgi services factory

add cache for tableName -> IModelFactory

* IDEMPIERE-4498 Performance: add cache for osgi services factory

implement cache for the discovery of osgi services

* IDEMPIERE-4498 Performance: add cache for osgi services factory

added unit test
2020-10-26 18:53:10 +01:00
Carlos Ruiz 9075b6d84b
IDEMPIERE-4495 github code scanning alerts (#305)
* IDEMPIERE-4495 github code scanning alerts

Failure to use secure cookies

* Query built without neutralizing special characters
2020-10-17 14:11:12 +08:00
Carlos Ruiz d3c9804253
IDEMPIERE-4454 Implement filter for SQL debug - unify oracle and postgresql variable (#252) 2020-09-17 15:02:22 +02:00
Carlos Ruiz be525d178c
IDEMPIERE-4447 Add offset to Query (#243)
Add method Query.setRecordstoSkip
2020-09-04 21:42:14 +02:00
Carlos Ruiz a84adbad80
IDEMPIERE-4395 Cannot save valid strings in oracle - ORA-12899: value too large for column (#202) 2020-08-06 22:35:37 +08:00
hieplq 9a35f2054d
IDEMPIERE-4314:eclipse project setting independent JDK (#90) 2020-06-01 11:30: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 c3cad0d1e2
IDEMPIERE-4249 Platform Refresh for 7.1z (#19)
Upgrade to Tycho 1.7.0, Eclipse 2020-03, Zk 9.0.1 and Jetty 9.4.28
2020-04-30 16:01:19 +02:00
hengsin 4a436c5157 IDEMPIERE-4180 Add DDL and Data Type methods to AdempiereDatabase interface 2020-03-03 17:27:53 +08:00
hengsin df5b0c2ea8 IDEMPIERE-4177 Replace SYSDATE with getDate() 2020-03-03 10:07:14 +08:00
Carlos Ruiz 2bb4a8ce11 IDEMPIERE-4136: Upgrading Jasper report to version 6.11.0 / PR 2019-12-26 13:22:39 +01:00
Carlos Ruiz 7bae19dbbc Merge branch 'IDEMPIERE-4136' of https://github.com/dpansheriya/idempiere 2019-12-26 13:20:24 +01:00
Carlos Ruiz 0caa446721 IDEMPIERE-1093 Database: added connection pool properties file support / avoid requirement for org.jfree.io 2019-12-25 19:18:27 +01: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 f46b8afb5c IDEMPIERE-4098 CLogger usage pattern clean up 2019-11-12 20:49:55 +08: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
Heng Sin Low d00c07c2b9 IDEMPIERE-3413 Multi Select List and table reference 2019-06-24 18:23:41 +08:00
Nicolas Micoud 1205178ef0 IDEMPIERE-3904 Harmonize list of component in MANIFEST.MF 2019-02-27 12:51:25 +01:00
Carlos Ruiz 3ea6a2a17d IDEMPIERE-3887 Setup / Console-setup improvements 2019-02-09 14:26:45 +01:00
Carlos Ruiz 02009bc22d IDEMPIERE-3870 PackIn issue with transactions 2019-01-15 18:38:01 +01: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