Skip to content

Commit 134731d

Browse files
authored
Merge pull request #921 from erikbra/codex/3-0-issue-913-upstream-sync
sync Apache PDFBox 3.0 through ddb7e78
2 parents cfd8556 + a839e0a commit 134731d

62 files changed

Lines changed: 2688 additions & 428 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ permissions:
99

1010
env:
1111
PDFBOX_PARITY_GATE_MODE: ${{ vars.PDFBOX_PARITY_GATE_MODE || 'ratchet' }}
12-
PDFBOX_PARITY_PDFBOX_REF: ${{ vars.PDFBOX_PARITY_PDFBOX_REF || ((github.base_ref == 'release/3.0' || github.ref_name == 'release/3.0' || startsWith(github.ref_name, 'codex/3-0-') || contains(github.ref_name, '-3-0-')) && '3.0' || '2589dc979982b11e3ba92e107aed9f309362d517') }}
12+
PDFBOX_PARITY_PDFBOX_REF: ${{ vars.PDFBOX_PARITY_PDFBOX_REF || ((github.base_ref == 'release/3.0' || github.ref_name == 'release/3.0' || startsWith(github.ref_name, 'codex/3-0-') || contains(github.ref_name, '-3-0-')) && 'ddb7e78992bebc36140ba0d864c8212ec5da697b' || '2589dc979982b11e3ba92e107aed9f309362d517') }}
1313
PDFBOX_PARITY_RATCHET_BASELINE: ${{ vars.PDFBOX_PARITY_RATCHET_BASELINE || ((github.base_ref == 'release/3.0' || github.ref_name == 'release/3.0' || startsWith(github.ref_name, 'codex/3-0-') || contains(github.ref_name, '-3-0-')) && 'tools/parity/runtime/ratchet-baseline-3.0.json' || 'tools/parity/runtime/ratchet-baseline.json') }}
14-
PDFBOX_API_SURFACE_PDFBOX_REF: ${{ vars.PDFBOX_API_SURFACE_PDFBOX_REF || ((github.base_ref == 'release/3.0' || github.ref_name == 'release/3.0' || startsWith(github.ref_name, 'codex/3-0-') || contains(github.ref_name, '-3-0-')) && '3.0' || '833ed8f378f00838fd8df8c01bfc4b915b4c350b') }}
14+
PDFBOX_API_SURFACE_PDFBOX_REF: ${{ vars.PDFBOX_API_SURFACE_PDFBOX_REF || ((github.base_ref == 'release/3.0' || github.ref_name == 'release/3.0' || startsWith(github.ref_name, 'codex/3-0-') || contains(github.ref_name, '-3-0-')) && 'ddb7e78992bebc36140ba0d864c8212ec5da697b' || '833ed8f378f00838fd8df8c01bfc4b915b4c350b') }}
1515
PDFBOX_API_SURFACE_ENFORCE: ${{ vars.PDFBOX_API_SURFACE_ENFORCE || 'true' }}
1616

1717
jobs:

reports/all-upstream-coverage.json

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,22 @@
11
{
2-
"generated_at_utc": "2026-07-18T09:48:39.871Z",
2+
"generated_at_utc": "2026-08-01T11:57:09.388Z",
33
"upstream_repository": "apache/pdfbox",
44
"upstream_branch": "origin/3.0",
55
"excluded_upstream_modules": [
6+
"pdfbox-layout-fop",
67
"preflight",
78
"preflight-app"
89
],
910
"excluded_upstream_module_counts": {
11+
"pdfbox-layout-fop": 4,
1012
"preflight": 116,
1113
"preflight-app": 0
1214
},
13-
"upstream_head": "a1685ce5bccd2397737b056663fcf4697686fea3",
14-
"tracked_parity_baseline_commit": "a1685ce5bccd2397737b056663fcf4697686fea3",
15+
"upstream_head": "ddb7e78992bebc36140ba0d864c8212ec5da697b",
16+
"tracked_parity_baseline_commit": "ddb7e78992bebc36140ba0d864c8212ec5da697b",
1517
"canonical_mapping_method": "mapped = provenance(PDFBOX_SOURCE_PATH) UNION traceability(source_path)",
16-
"total": 1071,
17-
"mapped": 1071,
18+
"total": 1077,
19+
"mapped": 1077,
1820
"missing": 0,
1921
"modules": [
2022
{
@@ -54,8 +56,15 @@
5456
},
5557
{
5658
"module": "pdfbox",
57-
"java_files": 621,
58-
"mapped": 621,
59+
"java_files": 624,
60+
"mapped": 624,
61+
"missing": 0,
62+
"pct": 100.0
63+
},
64+
{
65+
"module": "pdfbox-layout-awt",
66+
"java_files": 3,
67+
"mapped": 3,
5968
"missing": 0,
6069
"pct": 100.0
6170
},
@@ -217,8 +226,8 @@
217226
},
218227
{
219228
"family": "pdfbox:pdmodel",
220-
"java_files": 431,
221-
"mapped": 431,
229+
"java_files": 434,
230+
"mapped": 434,
222231
"missing": 0,
223232
"pct": 100.0
224233
},
@@ -250,6 +259,13 @@
250259
"missing": 0,
251260
"pct": 100.0
252261
},
262+
{
263+
"family": "pdfbox-layout-awt:glyphlayout",
264+
"java_files": 3,
265+
"mapped": 3,
266+
"missing": 0,
267+
"pct": 100.0
268+
},
253269
{
254270
"family": "tools:tools",
255271
"java_files": 26,
@@ -287,8 +303,8 @@
287303
}
288304
],
289305
"traceability_status_counts": {
290-
"total_rows": 800,
291-
"in-sync": 800,
306+
"total_rows": 819,
307+
"in-sync": 819,
292308
"partially-in-sync": 0,
293309
"partial": 0
294310
},

reports/api-surface-comparison.json

Lines changed: 202 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
{
22
"schema": 1,
3-
"generated_at_utc": "2026-07-18T09:50:41Z",
4-
"upstream_root": "/private/tmp/apache-pdfbox-3.0-sync",
5-
"upstream_commit": "a1685ce5bccd2397737b056663fcf4697686fea3",
6-
"pdfbox_net_commit": "adbb7efa7be3175377db823a542c7a8c8fbfebe5",
3+
"generated_at_utc": "2026-08-01T11:55:35Z",
4+
"upstream_root": "/private/tmp/apache-pdfbox-3-sync-audit-20260801",
5+
"upstream_commit": "ddb7e78992bebc36140ba0d864c8212ec5da697b",
6+
"pdfbox_net_commit": "cfd8556fb4ba9942257c4d66b7e9fe2abb98ecf0",
77
"scope": {
88
"modules": [
99
"io",
@@ -16,14 +16,14 @@
1616
"matching": "case-normalized method matching, JavaBean accessor-to-property matching, arity drift tracked separately"
1717
},
1818
"totals": {
19-
"java_types": 579,
20-
"matched_types": 577,
21-
"same_name_matched_types": 571,
22-
"java_members": 6244,
23-
"matched_members": 5333,
19+
"java_types": 582,
20+
"matched_types": 580,
21+
"same_name_matched_types": 574,
22+
"java_members": 6254,
23+
"matched_members": 5343,
2424
"arity_drift_members": 44,
2525
"missing_members": 867,
26-
"csharp_extra_members": 1697,
26+
"csharp_extra_members": 1700,
2727
"nonpublic_or_replacement_types": 2,
2828
"renamed_public_types": 6,
2929
"missing_types": 0
@@ -56,14 +56,14 @@
5656
"missing_types": 0
5757
},
5858
"pdfbox": {
59-
"java_types": 390,
60-
"same_name_matched_types": 389,
61-
"matched_types": 389,
62-
"java_members": 4192,
63-
"matched_members": 3673,
59+
"java_types": 393,
60+
"same_name_matched_types": 392,
61+
"matched_types": 392,
62+
"java_members": 4202,
63+
"matched_members": 3683,
6464
"arity_drift_members": 36,
6565
"missing_members": 483,
66-
"csharp_extra_members": 1159,
66+
"csharp_extra_members": 1162,
6767
"nonpublic_or_replacement_types": 1,
6868
"renamed_public_types": 0,
6969
"missing_types": 0
@@ -305,14 +305,14 @@
305305
"missing_types": 0
306306
},
307307
"pdfbox:pdmodel": {
308-
"java_types": 279,
309-
"same_name_matched_types": 278,
310-
"matched_types": 278,
311-
"java_members": 3286,
312-
"matched_members": 2867,
308+
"java_types": 282,
309+
"same_name_matched_types": 281,
310+
"matched_types": 281,
311+
"java_members": 3296,
312+
"matched_members": 2877,
313313
"arity_drift_members": 21,
314314
"missing_members": 398,
315-
"csharp_extra_members": 945,
315+
"csharp_extra_members": 948,
316316
"nonpublic_or_replacement_types": 1,
317317
"renamed_public_types": 0,
318318
"missing_types": 0
@@ -24482,6 +24482,60 @@
2448224482
}
2448324483
]
2448424484
},
24485+
{
24486+
"source_path": "pdfbox/src/main/java/org/apache/pdfbox/pdmodel/ContentStreamForGlyphLayoutInterface.java",
24487+
"module": "pdfbox",
24488+
"family": "pdmodel",
24489+
"java_type": "org.apache.pdfbox.pdmodel.ContentStreamForGlyphLayoutInterface",
24490+
"java_type_name": "ContentStreamForGlyphLayoutInterface",
24491+
"type_name_status": "same-name",
24492+
"status": "same-name-type/full-member-match",
24493+
"java_member_count": 3,
24494+
"missing_member_count": 0,
24495+
"matched_member_count": 3,
24496+
"arity_drift_count": 0,
24497+
"csharp_type": "PdfBox.Net.PDModel.ContentStreamForGlyphLayoutInterface",
24498+
"csharp_member_count": 3,
24499+
"csharp_extra_member_count": 0,
24500+
"csharp_targets": [
24501+
{
24502+
"source_path": "pdfbox/src/main/java/org/apache/pdfbox/pdmodel/ContentStreamForGlyphLayoutInterface.java",
24503+
"target_path": "src/PdfBox.Net/PDModel/ContentStreamForGlyphLayoutInterface.cs",
24504+
"namespace": "PdfBox.Net.PDModel",
24505+
"name": "ContentStreamForGlyphLayoutInterface",
24506+
"kind": "interface"
24507+
}
24508+
],
24509+
"members": [
24510+
{
24511+
"java_kind": "method",
24512+
"java_name": "showGlyphsWithPositioning",
24513+
"java_arity": 1,
24514+
"java_visibility": "public",
24515+
"status": "matched",
24516+
"matched_via": "method",
24517+
"signature": "void showGlyphsWithPositioning(GlyphsAndPositions glyphsAndPositions) throws IOException"
24518+
},
24519+
{
24520+
"java_kind": "method",
24521+
"java_name": "showGlyphCodes",
24522+
"java_arity": 1,
24523+
"java_visibility": "public",
24524+
"status": "matched",
24525+
"matched_via": "method",
24526+
"signature": "void showGlyphCodes(int[] glyphCodes) throws IOException"
24527+
},
24528+
{
24529+
"java_kind": "method",
24530+
"java_name": "setTextRise",
24531+
"java_arity": 1,
24532+
"java_visibility": "public",
24533+
"status": "matched",
24534+
"matched_via": "method",
24535+
"signature": "void setTextRise(float rise) throws IOException"
24536+
}
24537+
]
24538+
},
2448524539
{
2448624540
"source_path": "pdfbox/src/main/java/org/apache/pdfbox/pdmodel/DefaultResourceCache.java",
2448724541
"module": "pdfbox",
@@ -24770,6 +24824,130 @@
2477024824
}
2477124825
]
2477224826
},
24827+
{
24828+
"source_path": "pdfbox/src/main/java/org/apache/pdfbox/pdmodel/GlyphLayoutProcessorInterface.java",
24829+
"module": "pdfbox",
24830+
"family": "pdmodel",
24831+
"java_type": "org.apache.pdfbox.pdmodel.GlyphLayoutProcessorInterface",
24832+
"java_type_name": "GlyphLayoutProcessorInterface",
24833+
"type_name_status": "same-name",
24834+
"status": "same-name-type/full-member-match",
24835+
"java_member_count": 2,
24836+
"missing_member_count": 0,
24837+
"matched_member_count": 2,
24838+
"arity_drift_count": 0,
24839+
"csharp_type": "PdfBox.Net.PDModel.GlyphLayoutProcessorInterface",
24840+
"csharp_member_count": 2,
24841+
"csharp_extra_member_count": 0,
24842+
"csharp_targets": [
24843+
{
24844+
"source_path": "pdfbox/src/main/java/org/apache/pdfbox/pdmodel/GlyphLayoutProcessorInterface.java",
24845+
"target_path": "src/PdfBox.Net/PDModel/GlyphLayoutProcessorInterface.cs",
24846+
"namespace": "PdfBox.Net.PDModel",
24847+
"name": "GlyphLayoutProcessorInterface",
24848+
"kind": "interface"
24849+
}
24850+
],
24851+
"members": [
24852+
{
24853+
"java_kind": "method",
24854+
"java_name": "supportsFont",
24855+
"java_arity": 1,
24856+
"java_visibility": "public",
24857+
"status": "matched",
24858+
"matched_via": "method",
24859+
"signature": "boolean supportsFont(PDFont font)"
24860+
},
24861+
{
24862+
"java_kind": "method",
24863+
"java_name": "showText",
24864+
"java_arity": 4,
24865+
"java_visibility": "public",
24866+
"status": "matched",
24867+
"matched_via": "method",
24868+
"signature": "void showText(ContentStreamForGlyphLayoutInterface contentStream, PDType0Font font, float fontSize, String text) throws IOException"
24869+
}
24870+
]
24871+
},
24872+
{
24873+
"source_path": "pdfbox/src/main/java/org/apache/pdfbox/pdmodel/GlyphsAndPositions.java",
24874+
"module": "pdfbox",
24875+
"family": "pdmodel",
24876+
"java_type": "org.apache.pdfbox.pdmodel.GlyphsAndPositions",
24877+
"java_type_name": "GlyphsAndPositions",
24878+
"type_name_status": "same-name",
24879+
"status": "same-name-type/full-member-match",
24880+
"java_member_count": 5,
24881+
"missing_member_count": 0,
24882+
"matched_member_count": 5,
24883+
"arity_drift_count": 0,
24884+
"csharp_type": "PdfBox.Net.PDModel.GlyphsAndPositions",
24885+
"csharp_member_count": 6,
24886+
"csharp_extra_member_count": 2,
24887+
"csharp_targets": [
24888+
{
24889+
"source_path": "pdfbox/src/main/java/org/apache/pdfbox/pdmodel/GlyphsAndPositions.java",
24890+
"target_path": "src/PdfBox.Net/PDModel/GlyphsAndPositions.cs",
24891+
"namespace": "PdfBox.Net.PDModel",
24892+
"name": "GlyphsAndPositions",
24893+
"kind": "class"
24894+
},
24895+
{
24896+
"source_path": "pdfbox/src/main/java/org/apache/pdfbox/pdmodel/GlyphsAndPositions.java",
24897+
"target_path": "src/PdfBox.Net/PDModel/GlyphsAndPositions.cs",
24898+
"namespace": "PdfBox.Net.PDModel",
24899+
"name": "GlyphSubList",
24900+
"kind": "class"
24901+
}
24902+
],
24903+
"members": [
24904+
{
24905+
"java_kind": "method",
24906+
"java_name": "add",
24907+
"java_arity": 1,
24908+
"java_visibility": "public",
24909+
"status": "matched",
24910+
"matched_via": "method",
24911+
"signature": "public void add(Integer glyph)"
24912+
},
24913+
{
24914+
"java_kind": "method",
24915+
"java_name": "add",
24916+
"java_arity": 1,
24917+
"java_visibility": "public",
24918+
"status": "matched",
24919+
"matched_via": "method",
24920+
"signature": "public void add(Float position)"
24921+
},
24922+
{
24923+
"java_kind": "method",
24924+
"java_name": "isEmpty",
24925+
"java_arity": 0,
24926+
"java_visibility": "public",
24927+
"status": "matched",
24928+
"matched_via": "method",
24929+
"signature": "public boolean isEmpty()"
24930+
},
24931+
{
24932+
"java_kind": "method",
24933+
"java_name": "clear",
24934+
"java_arity": 0,
24935+
"java_visibility": "public",
24936+
"status": "matched",
24937+
"matched_via": "method",
24938+
"signature": "public void clear()"
24939+
},
24940+
{
24941+
"java_kind": "method",
24942+
"java_name": "toArray",
24943+
"java_arity": 0,
24944+
"java_visibility": "public",
24945+
"status": "matched",
24946+
"matched_via": "method",
24947+
"signature": "public Object[] toArray()"
24948+
}
24949+
]
24950+
},
2477324951
{
2477424952
"source_path": "pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDestinationNameTreeNode.java",
2477524953
"module": "pdfbox",
@@ -62162,8 +62340,8 @@
6216262340
"matched_member_count": 31,
6216362341
"arity_drift_count": 0,
6216462342
"csharp_type": "PdfBox.Net.PDModel.Interactive.DigitalSignature.Visible.PDVisibleSigBuilder",
62165-
"csharp_member_count": 32,
62166-
"csharp_extra_member_count": 1,
62343+
"csharp_member_count": 33,
62344+
"csharp_extra_member_count": 2,
6216762345
"csharp_targets": [
6216862346
{
6216962347
"source_path": "pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/visible/PDVisibleSigBuilder.java",

reports/api-surface-ratchet-baseline.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
},
99
"maxTotals": {
1010
"missing_members": 867,
11-
"arity_drift_members": 45,
11+
"arity_drift_members": 44,
1212
"type_name_or_visibility_gaps": 8,
1313
"missing_types": 0,
1414
"nonpublic_or_replacement_types": 2,
@@ -20,12 +20,12 @@
2020
},
2121
"maxDispositionCounts": {
2222
"behavior-covered": 116,
23-
"intentional-dotnet-adaptation": 710,
23+
"intentional-dotnet-adaptation": 709,
2424
"internal-by-design": 69,
2525
"not-applicable": 25
2626
},
2727
"minCoverage": {
28-
"matched_or_arity_members": 5377,
29-
"member_coverage_percent": 86.1147
28+
"matched_or_arity_members": 5387,
29+
"member_coverage_percent": 86.1369
3030
}
3131
}

0 commit comments

Comments
 (0)