Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1323 commits
Select commit Hold shift + click to select a range
ec688dc
Add control file in preparation for next release
jcflack Sep 27, 2021
14d113f
Merge pull request #368 from bug/REL1_6_STABLE/deserialident
jcflack Sep 28, 2021
070a6a5
Merge branch 'REL1_5_STABLE' into REL1_6_STABLE
jcflack Sep 28, 2021
232d401
Take the JEP 411 warning out back and shoot it
jcflack Sep 28, 2021
273b8de
React to surprises in post-JEP 411 Java versions
jcflack Sep 29, 2021
d483ff7
About the JEP 411 deprecation warnings
jcflack Sep 29, 2021
37273b3
Supply advisory warnings appropriate to PL/Java
jcflack Sep 29, 2021
dc4d9a4
Teach CI tests about [JEP 411] advisory warnings
jcflack Sep 29, 2021
036e7ff
Imperfectly copy-pasted CI script changes
jcflack Sep 29, 2021
7a7f394
Merge pull request #369 from trackjdk/REL1_6_STABLE/JEP411
jcflack Oct 1, 2021
4b5b1d6
Bit of refactoring around UDTs
jcflack Oct 1, 2021
52548f6
Some low-hanging fruit for static inline
jcflack Oct 3, 2021
fda2d90
Manage ContextClassLoader around PL/Java functions
jcflack Oct 6, 2021
e48e719
Quiet -Xcheck:jni for a should-never-happen case
jcflack Oct 6, 2021
13b2841
Allow opt-out from context loader management
jcflack Oct 6, 2021
98f6830
Insulate SQLXMLImpl behavior from context loader
jcflack Oct 6, 2021
1d31baf
Allow XSLT examples to use builtin impl or not
jcflack Oct 6, 2021
49628d8
Improve validator message on method resolution
jcflack Oct 7, 2021
5553edf
Avoid arbitrary bits as a sentinel object ref
jcflack Oct 7, 2021
0f4fb0c
Update documentation
jcflack Oct 8, 2021
192c6e6
Say, GitHub's Ubuntu runner is on PG 14 already
jcflack Oct 8, 2021
d8023ba
Merge pull request #371 from bug/REL1_6_STABLE/issue361
jcflack Oct 9, 2021
2a2d6da
Further wordsmithing of JEP 411 warnings
jcflack Oct 9, 2021
29eb061
Document and enforce MappedUDT/typlen-2 exclusion
jcflack Oct 9, 2021
46c265f
Merge pull request #372 from bug/REL1_6_STABLE/issue370
jcflack Oct 9, 2021
5475e27
Bump ant to 1.10.11, suggested by dependabot
jcflack Oct 9, 2021
ab7c4cf
Merge pull request #374 from dependabot/maven/org.apache.ant-ant-1.10.11
jcflack Oct 10, 2021
b57ae71
Update release notes
jcflack Oct 10, 2021
1ea41e6
Poke migration-management versions for 1.6.3
jcflack Oct 10, 2021
2ec6fc6
Add control file in preparation for next release
jcflack Oct 10, 2021
28d6cde
Of course there would be a typo in the docs
jcflack Oct 11, 2021
fe53170
Merge branch 'REL1_6_STABLE'
jcflack Oct 20, 2021
231642c
Expose predefined category codes in BaseUDT
jcflack Jan 18, 2022
a53e0ed
Emit correct SQL declaration for one OUT parameter
jcflack Jan 19, 2022
3c6de64
Add examples for single-OUT-parameter functions
jcflack Jan 19, 2022
ba59342
A few nits noticed after 1.6.3
jcflack Jan 19, 2022
9e492c4
Avoid Session split-brain syndrome
jcflack Jan 19, 2022
2d89e5b
Fix a thinko in context classloader management
jcflack Jan 19, 2022
c7b16a0
Fix mapping errors to java.time dates and times
jcflack Jan 19, 2022
e60adcc
Downgrade JEP411 WARNING to NOTICE on < 17
jcflack Jan 19, 2022
6caae1b
Merge into REL1_6_STABLE these pull requests:
jcflack Jan 19, 2022
8d401b6
Update release notes
jcflack Jan 19, 2022
2c6fe36
Poke migration-management versions for 1.6.4
jcflack Jan 19, 2022
bc6fc6a
Add control file in preparation for next release
jcflack Jan 19, 2022
882906d
Merge branch 'REL1_6_STABLE'
jcflack Jan 19, 2022
2aa9eb6
Update obsolete javadoc information
jcflack Jan 26, 2022
b366da6
Merge pull request #401 from doc/REL1_6_STABLE/implicitdeps
jcflack Feb 2, 2022
fe7abe7
Fail validation if TRANSFORM FOR TYPE declared
jcflack Feb 8, 2022
1fed903
Compute supported source version in DDRProcessor
jcflack Feb 15, 2022
2167527
Fix the problem of invalid timer in _destroyJavaVM
sincatter Jun 23, 2022
be307ab
Support PostgreSQL v15
Oct 21, 2022
6fbe91b
Disable failing CI test until an issue 434 fix
jcflack May 29, 2023
e658009
DDRProcessor tests ok with Java 19
jcflack May 30, 2023
d2081a7
Merge 'fmbiete:pgsql15' into trackpg/REL1_6_STABLE/issue410
jcflack May 30, 2023
5f34cef
Overlooked copyright year.
jcflack May 30, 2023
8a41b36
Merge into REL1_6_STABLE these pull requests:
jcflack May 30, 2023
1a32d91
Unrelated message typo fixed in passing
jcflack Jun 5, 2023
4c420b7
Relax the check of function's enclosing type
jcflack Jun 5, 2023
a1eb0b2
Example: function on interface or nested type
jcflack Jun 5, 2023
2534c98
Who ever noticed 1-letter identifiers don't work?
jcflack Jun 5, 2023
b7eff64
Emit nested type names properly spelled
jcflack Jun 5, 2023
8e3b6c9
Don't over-narrow permissions fetching jar URL
jcflack Jun 6, 2023
cc5c62d
Node.installSaxonAndExamplesAndPath thinko
jcflack Jun 6, 2023
c732326
Tweaks to CI scripts in passing
jcflack Jun 6, 2023
16f5802
Test install_jar with an http URL
jcflack Jun 7, 2023
2825501
Factor out useTrialPolicy in CI script
jcflack Jun 7, 2023
5b1dbec
DDR parser dislikes an empty action group
jcflack Jun 7, 2023
768e44e
Add Basic authentication to http test
jcflack Jun 7, 2023
b98c40c
Duplicate CI changes into Appveyor script
jcflack Jun 7, 2023
a1ff17b
Bump copyright date.
jcflack Jun 7, 2023
4c2500d
Merge 'chore/REL1_6_STABLE/issue434' into bug/REL1_6_STABLE/issue407
jcflack Jun 7, 2023
0311278
Fetch the PGDG apt key for GitHub Actions
jcflack Jun 7, 2023
5813908
Try another way to hush up app, umm, veyor
jcflack Jun 7, 2023
4a16891
Add a branches: only: for good measure
jcflack Jun 7, 2023
1283031
Update Java versions tested
jcflack Jun 7, 2023
efd1ce5
The problem may have been a tab in yaml
jcflack Jun 7, 2023
0632611
Merge into REL1_6_STABLE these pull requests:
jcflack Jun 7, 2023
e124899
Bump copyright year
jcflack Jun 7, 2023
6cf1b3a
Cherrypick changes to hush app(cough)veyor
jcflack Jun 7, 2023
efe7691
Fix CI tests for Java < 14
jcflack Jun 7, 2023
9f2e341
Document the use of --add-modules
jcflack Jun 10, 2023
b74c56b
Improve exceptions when fetching jar URL
jcflack Jun 10, 2023
627d1bc
Private methods to bypass buggy namedGroups cache
jcflack Jun 5, 2023
e81da52
Simply reject Java with JDK-8309515 bug
jcflack Jun 10, 2023
a2bf6f7
But for JDK-8309515, Java 20's ok for DDRProcessor
jcflack Jun 11, 2023
d417a9e
InstallHelper, more java7ification/java8ification
jcflack Jun 11, 2023
bb86d4d
Add objects to extension before CREATE OR REPLACE
jcflack Jun 11, 2023
38e637b
Re-enable the "from unpackaged" CI tests
jcflack Jun 11, 2023
49682f7
Ask for suitable MIME types when fetching a jar
jcflack Jun 11, 2023
b302ad3
Avoid crash on exception in String initialization
jcflack Jun 12, 2023
a55ec90
Pre-PG14, this cast is needed
jcflack Jun 13, 2023
27a597e
Merge into REL1_6_STABLE these pull requests:
jcflack Jun 13, 2023
59afb0f
Update release notes, and versions.md
jcflack Jun 13, 2023
0176123
Poke migration-management versions for 1.6.5
jcflack Jun 13, 2023
18147d9
Add control file in preparation for next release
jcflack Jun 13, 2023
40788c1
Assume dlfcn.h exists except on Windows
jcflack Aug 21, 2023
2511321
Rely on __func__ being supported
jcflack Aug 21, 2023
e004f0a
Upstream has refactored aclcheck functions
jcflack Aug 22, 2023
5559b8a
Add Java 17 names for XML implementation props
jcflack Aug 23, 2023
17b7d7c
PG compatibility horizon to 9.5
jcflack Aug 23, 2023
46a41cd
Run another example as a regression test
jcflack Aug 23, 2023
57e9609
Expose the lax() method in the example code
jcflack Aug 24, 2023
da68ef3
Merge chore/REL1_6_STABLE/pg_ge_95 into REL1_6_STABLE
jcflack Aug 24, 2023
e25b7c4
Clean up a bogus javadoc comment
jcflack Aug 24, 2023
8353f6f
Ax ancient Java version in PL/Java 1.6.x docs
jcflack Aug 26, 2023
83f5f5a
Merge trackjdk/REL1_6_STABLE/xmlpropnames into REL1_6_STABLE
jcflack Aug 26, 2023
df912da
Fix unchecked warning introduced in 5559ba1
jcflack Sep 1, 2023
7de3b99
Merge doc/REL1_6_STABLE/docrot into REL1_6_STABLE
jcflack Sep 5, 2023
bff1d88
Skip handleFirstOptions for javadoc >= 19
jcflack Sep 5, 2023
6a64e91
Improve NEWLINE pattern
jcflack Sep 5, 2023
c9b3473
Javadoc >= 17 rejects non-HTML5 attributes
jcflack Sep 5, 2023
a3ee259
Quiet warnings about casts of function types
jcflack Sep 7, 2023
f2d3d29
Merge into REL1_6_STABLE these pull requests:
jcflack Sep 7, 2023
0ad93fe
Merge chore/REL1_6_STABLE/funccast into REL1_6_STABLE
jcflack Sep 11, 2023
188b418
Two straggling schema qualifications
jcflack Sep 10, 2023
a0debcd
Merge trackpg/REL1_6_STABLE/pg16 into REL1_6_STABLE
jcflack Sep 16, 2023
4ee2a9d
Allow use of Node with either PGJDBC or pgjdbc-ng
jcflack Sep 17, 2023
2191191
Let stateMachine states make relative moves
jcflack Sep 17, 2023
ffb678f
Close a Node's Connections when stopping it
jcflack Sep 17, 2023
f7d2d5b
Update the documentation for the Node test harness
jcflack Sep 17, 2023
74a8622
Merge feature/REL1_6_STABLE/driverchoice into REL1_6_STABLE
jcflack Sep 19, 2023
117f8e2
Fix message typo in an example
jcflack Sep 19, 2023
2d02ff8
Bump DDRProcessor latest_tested to 21
jcflack Sep 19, 2023
ae29d81
Update releasenotes.md and versions.md
jcflack Sep 19, 2023
2d75992
Poke migration-management versions for 1.6.6
jcflack Sep 19, 2023
5cc90c1
Add control file in preparation for next release
jcflack Sep 19, 2023
c7eea1e
Fix a silly copy/pasto in the release notes
jcflack Sep 19, 2023
5a21027
Change: update maven plugin versions to work with versions that
fmbiete Sep 21, 2023
fde934c
No doInPG around releaseFromJava
jcflack Oct 17, 2023
f0c81cc
Simplify; the plan reference only keeps it live
jcflack Oct 17, 2023
9a1f669
Copyright year
jcflack Oct 17, 2023
167ff4b
Fix: missing last digit on version
fmbiete Dec 27, 2023
459af26
Update pom.xml for FreeBSD suppost
achix Nov 29, 2023
99a1daa
PR #475 from Achilleas Mantzios rebased
jcflack Mar 25, 2024
02b2421
Merge bug/REL1_6_STABLE/issue471 and port/REL1_6_STABLE/FreeBSD2023
jcflack Mar 25, 2024
e4f91ab
Merge chore/REL1_6_STABLE/mvnplugins2023 into REL1_6_STABLE
jcflack Mar 26, 2024
b32be73
Back to nashorn instead of graaljs for jdk22
jcflack Mar 25, 2024
6da39e1
Use Nashorn external module for all Java >= 15
jcflack Mar 26, 2024
4606b0f
Bump DDRProcessor latest_tested to 22
jcflack Mar 25, 2024
ed38044
Bring the JEP 411 warnings up to date
jcflack Mar 26, 2024
3816e9f
Update copyright
jcflack Mar 26, 2024
9b7d010
Merge trackjdk/REL1_6_STABLE/jdk22bld into REL1_6_STABLE
jcflack Mar 27, 2024
4ac9e8d
Fix Adjusting.XML.setFirstSupported javadoc
jcflack Mar 26, 2024
4986296
Use ALLOW, DENY modes of new jdk.xml.dtd.support
jcflack Mar 27, 2024
4e9d086
Use the IGNORE mode of new jdk.xml.dtd.support
jcflack Mar 27, 2024
746ac5e
Document the jdk.xml.jdkcatalog.resolve property
jcflack Mar 30, 2024
38e46db
Merge trackjdk/REL1_6_STABLE/jdk22usr into REL1_6_STABLE
jcflack Mar 31, 2024
e77d11a
Consistent (SAX/DOM) wrapping of XML parse errors
jcflack Mar 31, 2024
edc958b
Merge bug/REL1_6_STABLE/issue481 into REL1_6_STABLE
jcflack Apr 1, 2024
c3dbb04
Let docs reflect upstream rename of PostgresNode
jcflack Apr 1, 2024
bbb6510
Restore doc buildability after site plugin bump
jcflack Apr 2, 2024
ae0b64e
Add assigned bug ID for Java 22 XML parsing bug
jcflack Apr 2, 2024
5a4e796
Update versions tested in CI scripts
jcflack Apr 3, 2024
6a7495b
Update releasenotes.md and versions.md
jcflack Apr 3, 2024
d8240e0
Poke migration-management versions for 1.6.7
jcflack Apr 3, 2024
8992155
Add control file in preparation for next release
jcflack Apr 3, 2024
dd81b16
Document how to confirm Maven uses the right Java
jcflack Apr 11, 2024
081c93c
Prune doc references to unsupported PG versions
jcflack Apr 11, 2024
02bd1fe
Update hello-world example POM plugin versions
jcflack Apr 12, 2024
66c0b80
Merge doc/REL1_6_STABLE/mvnplugins2023 into REL1_6_STABLE
jcflack Apr 25, 2024
46835bb
Fix build output when no platform rules matched
jcflack Apr 25, 2024
1c0a3ce
Merge bug/REL1_6_STABLE/issue485 into REL1_6_STABLE
jcflack May 5, 2024
5fefcce
macos-latest: now without PostgreSQL
jcflack May 21, 2024
61699f3
Merge chore/REL1_6_STABLE/macos12runner into REL1_6_STABLE
jcflack May 22, 2024
b25fc7c
Report PostgreSQL version found to build against
jcflack Jun 12, 2024
00639c6
Include command/arguments in Maven debug output
jcflack Jun 12, 2024
96a1690
Javadoc/whitespace cleanup and slight refactoring
jcflack Jun 12, 2024
10beea3
Merge feature/REL1_6_STABLE/sodiags into REL1_6_STABLE
jcflack Jun 13, 2024
a3a3927
Hush recent javac annotation-processor warnings
jcflack Jun 14, 2024
3a617a9
Merge chore/REL1_6_STABLE/annprocwarns into REL1_6_STABLE
jcflack Jun 16, 2024
f9e962f
Move javadoc paragraph attached to wrong method
jcflack Jun 16, 2024
278e8c1
Symbols renamed in PostgreSQL v17
jcflack Oct 3, 2024
603197d
Use SPI_restore_connection only in PG < 10
jcflack Oct 3, 2024
95b5962
Bump DDRProcessor latest_tested to 23
jcflack Oct 4, 2024
7ed4918
Bring the JEP 411 warnings up to date
jcflack Oct 4, 2024
3118cf2
Merge trackpg/REL1_6_STABLE/pg17 and trackjdk/REL1_6_STABLE/jdk23bld …
jcflack Oct 5, 2024
2df56f1
Remove more pre-PL/Java-1.6 remnants from docs
jcflack Oct 6, 2024
2fd5391
Merge doc/REL1_6_STABLE/issue385 and doc/REL1_6_STABLE/pg_ge_95 into …
jcflack Oct 19, 2024
471d749
Update releasenotes.md and versions.md
jcflack Oct 19, 2024
ec09b58
Poke migration-management versions for 1.6.8
jcflack Oct 19, 2024
9de9217
Add control file in preparation for next release
jcflack Oct 19, 2024
8d48e97
Use pgjdbc rather than pgjdbc-ng in CI
jcflack Feb 18, 2025
0ff417f
Factor out and unify the CI jshell script
jcflack Feb 18, 2025
5ca0ad3
Use new JVM options from JEPs 471 and 472
jcflack Feb 19, 2025
6c8f272
More, necessary, GitHub Actions workflow polishing
jcflack Feb 20, 2025
f2894cd
There's a version of bash that can't ${foo,, ?
jcflack Feb 20, 2025
c5f9ae4
Merge chore/JEP472/gha into trackjdk/REL1_6_STABLE/JEP472
jcflack Feb 20, 2025
39504d2
Merge trackjdk/REL1_6_STABLE/JEP472 into REL1_6_STABLE
jcflack Feb 21, 2025
6527185
java.security.manager=disallow to run unenforced
jcflack Feb 21, 2025
a4ce7fc
Restrict trusted CREATE FUNCTION when unenforced
jcflack Feb 21, 2025
94dbf3c
Add pljava.allow_unenforced configuration setting
jcflack Feb 21, 2025
acdb9d7
Hook JVM abort and exit
jcflack Feb 21, 2025
752ba01
Add pljava.allow_unenforced_udt config setting
jcflack Feb 23, 2025
fa82ade
Document unenforced operation
jcflack Feb 24, 2025
a780da7
Defensively copy system properties
jcflack Feb 24, 2025
192e910
Use defensive system-property copies in examples
jcflack Feb 24, 2025
c4e55d5
Handle defaulted properties in FrozenProperties
jcflack Feb 24, 2025
43ab7c3
Add example code to see Java's boot module layer
jcflack Feb 27, 2025
621505f
Java version vs. java.security.manager settings
jcflack Feb 27, 2025
d28e9fa
Mention how to see Java's module resolution log
jcflack Mar 3, 2025
ea0977f
Merge trackjdk/REL1_6_STABLE/JEP486 into REL1_6_STABLE
jcflack Mar 5, 2025
5096830
Assume javadoc-21 form of URLs into Javadoc
jcflack Mar 5, 2025
e8121ee
Likewise update releasenotes-pre1_6
jcflack Mar 5, 2025
f47a840
Reformat some code
jcflack Mar 7, 2025
194a0f8
Merge chore/REL1_6_STABLE/javadoc21 into REL1_6_STABLE
jcflack Mar 8, 2025
4f5d9d8
Enable CI for Windows MSVC in GitHub Actions
jcflack Mar 8, 2025
4752abf
Also enable MinGW-w64 test with PG from pacman
jcflack Mar 8, 2025
00507e2
Re-enable the whole CI matrix
jcflack Mar 8, 2025
9561c13
Merge chore/REL1_6_STABLE/windowsgha into REL1_6_STABLE
jcflack Mar 9, 2025
49ad1b0
Late JEP486 doc and diagnostic message tweaks
jcflack Mar 10, 2025
c889f65
Check public schema path too in withJarInPath
jcflack Mar 10, 2025
6653a22
Merge bug/REL1_6_STABLE/issue516 into REL1_6_STABLE
jcflack Mar 11, 2025
7d93594
Match implementor non-case-folded form to provider
jcflack Mar 10, 2025
fc16b49
Improve documentation of conditional execution
jcflack Mar 13, 2025
37c9da0
Merge bug/REL1_6_STABLE/issue515 into REL1_6_STABLE
jcflack Mar 14, 2025
594c5fb
Declare S9 example functions only if s9api found
jcflack Mar 14, 2025
237b205
Merge feature/REL1_6_STABLE/classtest into REL1_6_STABLE
jcflack Mar 15, 2025
a067862
Suppress warnings from recent javac versions
jcflack Mar 20, 2025
78f4c25
Bump DDRProcessor latest_tested to 24
jcflack Mar 20, 2025
8f53080
Document Java stack traces and debugger control
jcflack Mar 21, 2025
4670e02
Merge trackjdk/REL1_6_STABLE/jdk24bld into REL1_6_STABLE
jcflack Mar 21, 2025
0d86cb9
Merge doc/REL1_6_STABLE/userdebug into REL1_6_STABLE
jcflack Mar 23, 2025
937489e
Update releasenotes.md and versions.md
jcflack Mar 23, 2025
4d199df
Poke migration-management versions for 1.6.9
jcflack Mar 23, 2025
116fd50
Add control file in preparation for next release
jcflack Mar 23, 2025
d0c95c7
Break up DDRProcessor.java
jcflack May 26, 2025
b2aa816
Fix the two errors javadoc reports in pljava-api
jcflack May 26, 2025
d387386
Fix 9 javadoc errors in o.p.p.internal module
jcflack May 26, 2025
ac75aab
Fix the 3 javadoc errors in pljava-examples
jcflack May 26, 2025
05d8b4e
GetOldestSnapshot -> get_toast_snapshot
jcflack May 26, 2025
fc93da7
Merge doc/REL1_6_STABLE/jdocerrs into REL1_6_STABLE
jcflack May 27, 2025
ddc9348
Merge trackpg/REL1_6_STABLE/pg18 into REL1_6_STABLE
jcflack May 27, 2025
887dab1
Tighten implementation of SnippetTiebreaker
jcflack May 28, 2025
ceacc9a
Pacify MSVC about ereport(ERROR control flow
jcflack May 28, 2025
97137d0
Streamline anachronistic Ptr2Long union usage
jcflack May 28, 2025
1d84996
Set a better JLongGet(... example in DualState.c
jcflack May 28, 2025
bb36661
Merge bug/REL1_6_STABLE/issue527 into REL1_6_STABLE
jcflack May 29, 2025
d7f4cae
Merge chore/REL1_6_STABLE/msvcflow into REL1_6_STABLE
jcflack May 29, 2025
e68610f
Merge trackC/REL1_6_STABLE/PointerGetJLong into REL1_6_STABLE
jcflack May 29, 2025
234afe4
Be more informative about mishandled exceptions
jcflack May 29, 2025
69fc2a2
Hew to upstream's declarations-before-code style
jcflack May 29, 2025
ce467e4
Merge bug/REL1_6_STABLE/issue523 into REL1_6_STABLE
jcflack May 30, 2025
23a7a1c
Bump DDRProcessor latest_tested to 25
jcflack Sep 27, 2025
2217816
Merge trackjdk/REL1_6_STABLE/jdk25bld into REL1_6_STABLE
jcflack Sep 29, 2025
a6f1be4
Update releasenotes.md and versions.md
jcflack Sep 29, 2025
02a576f
Poke migration-management versions for 1.6.10
jcflack Sep 29, 2025
d29f8f9
Update version strings to 1.6.10
jcflack Sep 29, 2025
cd60010
ci: add Cloudberry docker-based build+installcheck gate
Mulily0513 Jan 6, 2026
6aeccd9
Merge upstream PL/Java 1.6.10 (tada/pljava tag V1_6_10) into Cloudber…
Mulily0513 Jan 12, 2026
d3132a2
pljava: align 1.6.10 for Cloudberry + update CI
Mulily0513 Jan 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
20 changes: 20 additions & 0 deletions .appveyor/appveyor_download_java.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
Import-Module BitsTransfer
Install-Package -Force 7Zip4Powershell -ProviderName PowerShellGet
if ($Env:JDK -eq 9)
{
$url = "https://download.java.net/java/GA/jdk9/9.0.4/binaries/openjdk-9.0.4_windows-x64_bin.tar.gz"
$out = "C:\Program Files\Java\jdk9"
Start-BitsTransfer -Source $url -Destination "$out.tar.gz"
Expand-7Zip "$out.tar.gz" "$out"
Expand-7Zip "$out\jdk9.tar" "$out"
Move-Item "$out\jdk-9.0.4\*" "$out"
}
if ($Env:JDK -eq 10)
{
$url = "https://download.java.net/java/GA/jdk10/10/binaries/openjdk-10_windows-x64_bin.tar.gz"
$out = "C:\Program Files\Java\jdk10"
Start-BitsTransfer -Source $url -Destination "$out.tar.gz"
Expand-7Zip "$out.tar.gz" "$out"
Expand-7Zip "$out\jdk10.tar" "$out"
Move-Item "$out\jdk-10\*" "$out"
}
14 changes: 14 additions & 0 deletions .appveyor/appveyor_mingw.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
set -e
JAVA_HOME="C:\Program Files\Java\jdk$1"
libjvm="$JAVA_HOME\bin\server\jvm.dll"
PATH=$JAVA_HOME/bin:$PATH
javac -version
pacman -S mingw-w64-x86_64-postgresql --noconfirm
pgConfig='C:\msys64\mingw64\bin\pg_config'
"$pgConfig"
cd /c/projects/pljava
mvn clean install \
-Dpgsql.pgconfig="$pgConfig" \
-Dpljava.libjvmdefault="$libjvm" \
-Psaxon-examples -Ppgjdbc-ng --batch-mode \
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
22 changes: 22 additions & 0 deletions .appveyor/appveyor_mingw_or_msvc.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
REM a bat file because PowerShell makes a mess of stderr output, and a multiline
REM command intended for CMD in appveyor.yml gets broken up.

IF %SYS%==MINGW (
set pgConfig=C:\msys64\mingw64\bin\pg_config
) ELSE (
set pgConfig=%ProgramFiles%\PostgreSQL\%PG%\bin\pg_config
set libjvm=%JAVA_HOME%/bin/server/jvm.dll
)

IF %SYS%==MINGW (
C:\msys64\usr\bin\env MSYSTEM=MINGW64 ^
C:\msys64\usr\bin\bash -l ^
-c "/c/projects/pljava/.appveyor/appveyor_mingw.sh %JDK%"
) ELSE (
"%pgConfig%"
mvn clean install ^
-Dpgsql.pgconfig="%pgConfig%" ^
-Dpljava.libjvmdefault="%libjvm%" ^
-Psaxon-examples -Ppgjdbc-ng --batch-mode ^
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
)
15 changes: 15 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
root = true

[*.{c,h,java,xml,ddr,project}]
indent_style = tab
indent_size = tab
tab_width = 4

[*.css]
indent_style = space
indent_size = 2

# Imported from another project with different indentation
[JarX.java]
indent_style = space
indent_size = 2
130 changes: 130 additions & 0 deletions .github/workflows/cloudberry-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
name: Cloudberry PL/Java CI

on:
pull_request:
branches: [ main ]
types: [opened, synchronize, reopened, edited]
push:
branches: [ main ]
workflow_dispatch:

permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

env:
CLOUDBERRY_REPO: apache/cloudberry
CLOUDBERRY_REF: main
COMPOSE_FILE: pljava/concourse/docker/ubuntu22.04/docker-compose.yml
CONTAINER_NAME: cbdb-pljava

jobs:
ci:
name: Build + Smoke (Docker)
runs-on: ubuntu-latest
timeout-minutes: 180
steps:
- name: Free disk space
run: |
sudo rm -rf /usr/share/dotnet || true
sudo rm -rf /opt/ghc || true
sudo rm -rf /usr/local/share/boost || true
sudo rm -rf /usr/local/lib/android || true
sudo rm -rf /opt/hostedtoolcache || true
sudo docker system prune -af || true
df -h

- name: Checkout PL/Java (this repo)
uses: actions/checkout@v4
with:
fetch-depth: 1
path: pljava

- name: Checkout Cloudberry source
uses: actions/checkout@v4
with:
repository: ${{ env.CLOUDBERRY_REPO }}
ref: ${{ env.CLOUDBERRY_REF }}
path: cloudberry
submodules: true

- name: Build and start dev container
run: |
docker compose -f ${{ env.COMPOSE_FILE }} down -v || true
docker compose -f ${{ env.COMPOSE_FILE }} up -d
docker exec ${{ env.CONTAINER_NAME }} sudo find /home/gpadmin/workspace/cloudberry -path /home/gpadmin/workspace/cloudberry/.git -prune -o -exec chown gpadmin:gpadmin {} +
docker exec ${{ env.CONTAINER_NAME }} sudo find /home/gpadmin/workspace/pljava -path /home/gpadmin/workspace/pljava/.git -prune -o -exec chown gpadmin:gpadmin {} +

- name: Build Cloudberry + PL/Java and run tests (installcheck)
run: |
docker exec ${{ env.CONTAINER_NAME }} bash -lc "bash /home/gpadmin/workspace/pljava/concourse/docker/ubuntu22.04/scripts/entrypoint.sh"

- name: Collect logs and results
if: always()
run: |
mkdir -p artifacts
docker logs ${{ env.CONTAINER_NAME }} > artifacts/cbdb-pljava.log 2>&1 || true
docker exec ${{ env.CONTAINER_NAME }} bash -lc "source /usr/local/cloudberry-db/cloudberry-env.sh && source /home/gpadmin/workspace/cloudberry/gpAux/gpdemo/gpdemo-env.sh && gpstate -s" > artifacts/gpstate.txt 2>&1 || true
docker exec ${{ env.CONTAINER_NAME }} bash -lc "source /usr/local/cloudberry-db/cloudberry-env.sh && source /home/gpadmin/workspace/cloudberry/gpAux/gpdemo/gpdemo-env.sh && psql -d template1 -c 'select version()'" > artifacts/version.txt 2>&1 || true

# Regression outputs (if present)
if [ -d pljava/gpdb/tests/results ]; then
tar czf artifacts/pljava-regress-results.tar.gz -C pljava gpdb/tests/results || true
fi
ls -la pljava/gpdb/tests/regression.* 2>/dev/null || true
cp -v pljava/gpdb/tests/regression.* artifacts/ 2>/dev/null || true

# Cloudberry demo cluster logs (if present)
if [ -d cloudberry/gpAux/gpdemo ]; then
find cloudberry/gpAux/gpdemo -maxdepth 4 -type d \( -name pg_log -o -name log \) -print 2>/dev/null || true
tar czf artifacts/cloudberry-demo-logs.tar.gz -C cloudberry gpAux/gpdemo 2>/dev/null || true
fi

- name: Summarize installcheck
if: always()
run: |
LOG="pljava/gpdb/tests/results/installcheck.log"
{
echo "## PL/Java installcheck"
if [ -f "$LOG" ]; then
echo ""
echo "- Log: \`$LOG\`"
echo "- Test results dir: \`pljava/gpdb/tests/results/\`"
echo ""
TOTAL=$(grep -E "^[[:space:]]*test .* \\.\\.\\." -c "$LOG" || true)
OK=$(grep -E "^[[:space:]]*test .* \\.\\.\\. ok" -c "$LOG" || true)
FAILED=$(grep -E "^[[:space:]]*test .* \\.\\.\\. FAILED" -c "$LOG" || true)
echo "- Total: $TOTAL"
echo "- ok: $OK"
echo "- FAILED: $FAILED"
echo ""
echo "Last 50 lines:"
echo ""
echo '```'
tail -n 50 "$LOG" || true
echo '```'
else
echo ""
echo "- No \`installcheck.log\` found (build may have failed early)."
fi
} >> "$GITHUB_STEP_SUMMARY"

- name: Upload artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: logs-and-results
path: |
artifacts/**
pljava/gpdb/tests/results/**
pljava/gpdb/tests/regression.*
if-no-files-found: ignore
retention-days: 7

- name: Cleanup
if: always()
run: |
docker compose -f ${{ env.COMPOSE_FILE }} down -v || true
8 changes: 7 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/.classpath
/.project
/.settings
.idea/
target/site
target/staging
target/javadoc-bundle-options
Expand All @@ -10,4 +11,9 @@ pljava-so/target/
target/
*.so
*.zip
concourse/secrets/
concourse/secrets/
nar-maven-plugin/
nar-maven-plugin.tar.gz
gpdb/tests/results/
gpdb/tests/regression.*
artifacts/
156 changes: 156 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
if: false
language: minimal
os:
- linux
arch:
- amd64
- ppc64le
dist: bionic
env:
- POSTGRESQL_VERSION: 13
JAVA_VERSION: 15
JVM_IMPL: hotspot
MVN_VERSION: 3.5.2
- POSTGRESQL_VERSION: 12
JAVA_VERSION: 14
JVM_IMPL: hotspot
MVN_VERSION: 3.5.2
- POSTGRESQL_VERSION: 12
JAVA_VERSION: 14
JVM_IMPL: openj9
MVN_VERSION: 3.6.3
- POSTGRESQL_VERSION: 12
JAVA_VERSION: 11
JVM_IMPL: hotspot
MVN_VERSION: 3.6.3
- POSTGRESQL_VERSION: 12
JAVA_VERSION: 9
JVM_IMPL: hotspot
MVN_VERSION: 3.6.3
- POSTGRESQL_VERSION: 10
JAVA_VERSION: 14
JVM_IMPL: hotspot
MVN_VERSION: 3.6.3
- POSTGRESQL_VERSION: 9.5
JAVA_VERSION: 14
JVM_IMPL: hotspot
MVN_VERSION: 3.6.3

jobs:
exclude:
- arch: ppc64le
env:
POSTGRESQL_VERSION: 12
JAVA_VERSION: 9
JVM_IMPL: hotspot
MVN_VERSION: 3.6.3
include:
- os: osx
osx_image: xcode11
arch: amd64
env:
- POSTGRESQL_VERSION: 11
JAVA_VERSION: 14
JVM_IMPL: hotspot
MVN_VERSION: 3.6.3
- os: osx
osx_image: xcode11
arch: amd64
env:
- POSTGRESQL_VERSION: 10
JAVA_VERSION: 14
JVM_IMPL: hotspot
MVN_VERSION: 3.6.3
- os: osx
osx_image: xcode11
arch: amd64
env:
- POSTGRESQL_VERSION: 9.5
JAVA_VERSION: 14
JVM_IMPL: hotspot
MVN_VERSION: 3.6.3

cache:
directories:
- $HOME/.m2

before_install: |
javaUrl=https://api.adoptopenjdk.net/v3/binary/latest
javaUrl="$javaUrl/$JAVA_VERSION/ga/${TRAVIS_OS_NAME//osx/mac}"
javaUrl="$javaUrl/${TRAVIS_CPU_ARCH//amd64/x64}/jdk"
javaUrl="$javaUrl/$JVM_IMPL/normal/adoptopenjdk"

installJdk=$(false && which install-jdk.sh) || {
wget https://raw.githubusercontent.com/sormuras/bach/8c457fd6e46bd9f3f575867dd0c9af1d7edfd5b4/install-jdk.sh
installJdk=./install-jdk.sh

printf '%s\n%s\n%s\n%s\n%s\n' \
'--- install-jdk.sh' \
'+++ install-jdk.sh' \
'@@ -257 +257 @@' \
'- target="${workspace}"/$(tar --list ${tar_options} | head -2 | tail -1 | cut -f 2 -d '"'/' -)/Contents/Home" \
'+ target="${workspace}"/$(tar --list ${tar_options} | sed -n '"'/\/bin\/javac/s///p')" \
| patch "$installJdk"
}

[[ $JAVA_VERSION == 9 ]] && certs=--cacerts || unset certs

. "$installJdk" --url "$javaUrl" ${certs+"$certs"}

mvnUrl=https://archive.apache.org/dist/maven/maven-3
mvnUrl="$mvnUrl/$MVN_VERSION/binaries/apache-maven-$MVN_VERSION-bin.tar.gz"

wget --no-verbose "$mvnUrl" && tar xzf "apache-maven-$MVN_VERSION-bin.tar.gz"
mvn="./apache-maven-$MVN_VERSION/bin/mvn"
"$mvn" --version

. .travis/travis_install_postgresql.sh

install: |
"$pgConfig"

if [ "$TRAVIS_OS_NAME" = "osx" ]; then
libjvm_name="libjli.dylib"
else
libjvm_name="libjvm.so"
fi
libjvm=$(find "$JAVA_HOME" -mindepth 2 -name $libjvm_name | head -n 1)

"$mvn" clean install --batch-mode \
-Dpgsql.pgconfig="$pgConfig" \
-Dpljava.libjvmdefault="$libjvm" \
-Psaxon-examples -Ppgjdbc \
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn

script: |
packageJar=$(find pljava-packaging -name pljava-pg*.jar -print)

mavenRepo="$HOME/.m2/repository"

saxonVer=$(
find "$mavenRepo/net/sf/saxon/Saxon-HE" -name 'Saxon-HE-*.jar' -print |
sort |
tail -n 1
)
saxonVer=${saxonVer%/*}
saxonVer=${saxonVer##*/}

jdbcJar=$(
find "$mavenRepo/org/postgresql/postgresql" \
-name 'postgresql-*.jar' -print |
sort |
tail -n 1
)

sudo "$JAVA_HOME"/bin/java -Dpgconfig="$pgConfig" -jar "$packageJar"

"$JAVA_HOME"/bin/jshell \
-execution local \
"-J--class-path=$packageJar:$jdbcJar" \
"--class-path=$packageJar" \
"-J--add-modules=java.sql.rowset" \
"-J-Dpgconfig=$pgConfig" \
"-J-DmavenRepo=$mavenRepo" \
"-J-DsaxonVer=$saxonVer" \
CI/integration
: travis wanted something here at the end once
Loading
Loading