Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
895 commits
Select commit Hold shift + click to select a range
11c5b5f
Reverting removal of suspected typo, was not typo, was part of test
Jan 15, 2025
ab78e53
Cache JCCompilationUnit from compilation job for reuse in problem con…
testforstephen Sep 26, 2024
d707682
Fix some javadoc issue mapping
mickaelistria Sep 25, 2024
481d7aa
Set AccDeprected flag at DOM level
mickaelistria Sep 27, 2024
fff1d4f
Fix `ClassCastException` when working with module projects
datho7561 Aug 20, 2024
503a26c
Completion to add override for inherited method
datho7561 Sep 27, 2024
8bf3adf
Improvements to variable and method completion in method bodies
datho7561 Sep 30, 2024
e8ad2d1
Handle incomplete qualified names
datho7561 Sep 30, 2024
1685a5a
Completion on `super.`
datho7561 Oct 2, 2024
6a0fd2a
Map a problem id related to `super()`
datho7561 Oct 2, 2024
f13a581
Method argument completion
datho7561 Oct 2, 2024
45f67d2
Improve annotation completion
datho7561 Oct 4, 2024
e5e4b5d
Set debug info parameters (-g) to javac compiler
testforstephen Oct 8, 2024
4ed6116
Enable completion tests
datho7561 Oct 4, 2024
df54c66
Fix some completion relevances
datho7561 Oct 8, 2024
452cc29
Completion for keywords that can be inserted where statements can
datho7561 Oct 9, 2024
122cb42
Add cancellation checks to DOMCompletionEngine
datho7561 Oct 9, 2024
03b1a05
Compile the generated sources into the expected target directory (#879)
testforstephen Oct 10, 2024
1427ab6
ASTConverter15JLS4Test.test0155 through test0160 - boxing and unboxing
Sep 30, 2024
93333c1
Add some problem mapping
Sep 30, 2024
d0e4211
More test annotations
Sep 30, 2024
ec6d1d1
index out of bounds exception
Sep 30, 2024
11752c4
test0050/X.java - Cleaner handling of variable arity signatures
Sep 30, 2024
907d91b
Ensure parent packages are added to bindings
Sep 30, 2024
94662f5
Cleanup
Sep 30, 2024
a1e7e53
Begin reporting on completion progress monitor
datho7561 Oct 11, 2024
6ef6fa8
Mark the completion task as done using the progress monitor
datho7561 Oct 11, 2024
ac65775
Share/deduplicate jar contents
mickaelistria Oct 10, 2024
913eda0
Fix test0080 - generics vs raw vs parameterized
Oct 11, 2024
695fd77
Fix test0164 - getDeclaringMethod() should return the declaration bin…
Oct 11, 2024
fa16c9c
Use one default completion strategy
datho7561 Oct 10, 2024
921d275
Prevent error when renaming variable
datho7561 Oct 16, 2024
d96e7e0
Complete method return type, modifiers and thrown exceptions
datho7561 Oct 15, 2024
49155a5
Make MatchLocator capable of working with DOM
mickaelistria Sep 30, 2024
8c70848
JavacUtils.classpathEntriesToFiles doesn't configure dependent projects
snjeza Oct 21, 2024
c7b38c4
Improve field completion (`name.|`)
datho7561 Oct 18, 2024
558aec3
Fix some NPEs in completion
datho7561 Oct 22, 2024
c875c74
Avoid NumberFormatException when trying to get latest JRE.
mickaelistria Oct 23, 2024
3c3551f
Really ignore compiler.warn.dangling.doc.comment
akurtakov Oct 24, 2024
e09c48c
Some fixes to keyword completion
datho7561 Oct 23, 2024
36379ac
Prevent exception with multiline Javadoc method ref
datho7561 Oct 24, 2024
b28cf55
Improve completion in extends/implements
datho7561 Oct 24, 2024
b3030b1
Fixes to relevance and specific completion content
datho7561 Oct 25, 2024
f1262a8
Map "compiler.warn.override.unchecked.ret"
akurtakov Oct 29, 2024
513d696
Improve JavacBindingResolver
snjeza Oct 28, 2024
94d6416
Ignore 2 warnings without positions
akurtakov Oct 29, 2024
f7a38ef
Improve ClassInstanceCreation completion
datho7561 Oct 16, 2024
ae89f64
Fix StringIndexOutOfBoundsException in Javadoc conversion
akurtakov Oct 31, 2024
9d89cae
Remove false positive 'unused import' for import used in Javadoc
datho7561 Oct 30, 2024
d0b3e46
Field access and extends/implements completion improvements
datho7561 Oct 31, 2024
92ed832
Fix wrong unused import for throws javadoc
akurtakov Nov 4, 2024
5db0493
More fixes for field access
datho7561 Nov 1, 2024
8131d1c
Better support for ASTParser.setFocalPoint()
mickaelistria Nov 4, 2024
03cfe47
Do not generate false positive unused parameter warning
akurtakov Nov 5, 2024
d983337
Fix some regressions caused by field access fix
datho7561 Nov 5, 2024
9844437
Share the FileManager used when -release is set
mickaelistria Nov 5, 2024
fa579a2
Manage prefix for extends and implements completion
datho7561 Nov 6, 2024
aa889ee
Improve completion for annotation members
datho7561 Nov 7, 2024
3becbb8
No completion in strings, text blocks, comments, or Javadoc
datho7561 Nov 8, 2024
33a5bf5
Update doc
mickaelistria Nov 12, 2024
a23d3a4
Restore completion strategy switch
mickaelistria Nov 12, 2024
4574138
Handle resolving bindings for generic constructors
datho7561 Nov 13, 2024
d93c76e
Fix some errors that occur when importing o.e.j.c incubator
datho7561 Oct 30, 2024
bf031de
[WIP] double colon completion
datho7561 Nov 8, 2024
db847ab
Improve completion for binary infix operator
datho7561 Nov 8, 2024
a573fad
Ignoring Javadoc of depedencies
mickaelistria Nov 15, 2024
98e1660
Completion for Javadoc tags
datho7561 Nov 14, 2024
49f0b52
Prevent from closing the Platform FileManager
mickaelistria Nov 17, 2024
fca002b
Reduce processing using -implicit:none
mickaelistria Nov 18, 2024
b8a0b0d
Add output folders to classpath
mickaelistria Nov 18, 2024
f1d5e91
Skip linting without binding nor FORCE_PROBLEM_DETECTION
mickaelistria Nov 18, 2024
7dc026e
Fix completion when typing out an import
datho7561 Nov 18, 2024
12f7157
Ignore Javadoc for compiler
mickaelistria Nov 19, 2024
1e2a9cb
Do not lint when focusing on 1 particular position
mickaelistria Nov 19, 2024
4cdc502
Use partial DOM for completion, and for codeSelect on bigger files
mickaelistria Nov 19, 2024
c7c0fdd
Fix issue setting position of markdown comments
mickaelistria Nov 20, 2024
f860ad8
Fix unconfigure in p2.inf
mickaelistria Nov 21, 2024
94a66d8
Problem range for `IProblem.AbstractServiceImplementation`
datho7561 Aug 21, 2024
01bbf7b
Fix replace range for anonymous class instance creation
datho7561 Nov 21, 2024
cf599ad
Handle adding semicolon properly for import completion
datho7561 Nov 21, 2024
780f47c
Completion on unimported class
datho7561 Nov 21, 2024
ed999e6
Fix issue populating multiple output class folders
mickaelistria Nov 22, 2024
37df1e0
Fix instruction.unconfigure
mickaelistria Nov 22, 2024
808aa7a
Improve `throws` completion
datho7561 Nov 21, 2024
305c7db
Fix NPE when converting constructor without body
datho7561 Nov 21, 2024
220ab90
If outside the double quotes of a string literal, use the parent as t…
datho7561 Nov 22, 2024
790acea
Some support for "proceedOnError"-like with javac
mickaelistria Nov 8, 2024
13d6f01
Improve recovery on undefined method reference
mickaelistria Nov 25, 2024
78a4977
Avoid NPE when using completion for import QuickFix
datho7561 Nov 22, 2024
36e083e
Fix some CompletionContextTests
mickaelistria Nov 25, 2024
d61860f
Support unknown expr in instanceof
mickaelistria Nov 26, 2024
a09e7ab
Fix error popups when class extends itself
datho7561 Nov 25, 2024
8160a2b
Make some match locator work with DOM
Nov 27, 2024
cc592aa
Fix some conversion/bindings
Nov 27, 2024
4e0f36b
Keep string folding for build (not for CompilationUnitResolver)
mickaelistria Nov 28, 2024
019937c
Suggest creating a new lambda when a funcitonal interface is needed
datho7561 Nov 27, 2024
6c4b97e
Enable compilation progress reporting and cancellation
mickaelistria Nov 29, 2024
41222f0
Revert "Fix error popups when class extends itself"
mickaelistria Nov 29, 2024
1523681
Single pass compilation even with multiple source folders
mickaelistria Nov 29, 2024
6f68011
Fix possible IndexArrayOutOfBoundsError
mickaelistria Nov 29, 2024
061fff4
Expected type for ternary (`? :`)
datho7561 Nov 28, 2024
9bd51b1
Endless loop during testBug229951a
Nov 27, 2024
265c790
Fix testTypeParameterConstructors04 and others
Nov 25, 2024
4a81942
Fix testStaticImportMethod03 and others
Nov 21, 2024
cdc8217
Fix testStaticImportField04
Nov 21, 2024
ffaa993
Fix testEnum05
Nov 18, 2024
42cff63
Fix some NPEs
Nov 12, 2024
20a5c30
Fix testTypeReference35 - corrupt jar on cp
Nov 7, 2024
972f600
Fix NPE, convert 4 errors to fails
Oct 15, 2024
65f8fbb
Historical merge error in javadoc, not new
Dec 2, 2024
3b23f63
Add output folder to classpath (#1006)
snjeza Dec 2, 2024
bae25cd
Fix testTypeParameterConstructors01 and others
Nov 8, 2024
ca0026a
Fix testTypeDeclaration12 and others
Nov 18, 2024
ee12c09
Fix testTypeReference22
Nov 22, 2024
501539f
Do not close underlying channel for cached zip
mickaelistria Dec 2, 2024
1db6a5c
Fix execution of Javac test
mickaelistria Dec 3, 2024
ba4fbd0
Fix testBuildReferenceOtherProjectSource
mickaelistria Dec 3, 2024
06d0a34
Skip ProceedOnErrorTransTypes whenever possible
mickaelistria Dec 3, 2024
26db607
More proceed on error: throw + var decl
mickaelistria Dec 3, 2024
ec23248
Bump parent version for org.eclipse.jdt.core.tests.javac
mickaelistria Dec 5, 2024
1d25661
Avoid NPE in DOMToModelConverter.toLocalVariable
mickaelistria Dec 5, 2024
c02fd2d
Prevent NPE in JavacBindingResolver
mickaelistria Dec 5, 2024
637cd61
Map compiler.err.limit.string & compiler.err.limit.string.overflow pb
mickaelistria Dec 5, 2024
43ea1ac
Bump version of org.eclipse.jdt.core
mickaelistria Dec 6, 2024
a2137be
Don't add import for `java.lang`
datho7561 Dec 5, 2024
c89e6e8
Include literal elements in literal
mickaelistria Dec 5, 2024
bec3a15
Don't log possible syntax errors when editing
mickaelistria Dec 6, 2024
8d69eee
Convert compiler.err.switch.mixing.case.types
mickaelistria Dec 6, 2024
65a97aa
Some fixes to CompletionContextTests
mickaelistria Dec 6, 2024
e5b0441
Don't adjust cursor offset when finding node to complete
datho7561 Dec 6, 2024
a9e1d9a
Fix testBug251827b and 5 others - import declarations java element mu…
Dec 6, 2024
79dde42
Fix some completionContextTests
mickaelistria Dec 7, 2024
c6f9356
JavacConverter: Do not set/fix position for recovered names
mickaelistria Dec 8, 2024
f966ee5
Fix some inner class not being copied
mickaelistria Dec 4, 2024
ad3e862
Revert "Don't adjust cursor offset when finding node to complete"
mickaelistria Dec 8, 2024
c084ce9
Fix some contextCompletionTests (to 73)
mickaelistria Dec 8, 2024
02a7886
Improve attached import completion for type completions
datho7561 Dec 6, 2024
2e6d015
Some work on expected types (down to 49 failures)
mickaelistria Dec 9, 2024
c145927
Fix more CompletionContextTests (down to 43)
mickaelistria Dec 9, 2024
8c5ccb3
Handle match files in the order they arrived
Dec 9, 2024
29acd5b
Ensure all parent nodes fully encompass their child nodes
Dec 9, 2024
9f76fa0
Ensure calls to ASTParser.createBindings use the correct unit resolver
Dec 9, 2024
762109e
null check before passing a new TypeBinding to requestor
Dec 9, 2024
abcd63d
Missing names must have length 0, not length 7 representing <error>
Dec 9, 2024
c2f08bc
Fixes to VariableDeclaration completion
datho7561 Nov 28, 2024
08df9e1
Handle qualification when calculating relevance
datho7561 Dec 9, 2024
3d1ed83
Do not double-propose types
datho7561 Dec 10, 2024
216d48e
Fix ASTConverter18Test.test0009 - illegal argument
Dec 10, 2024
f47ddf9
Keep cached filesystems uniniterruptible
mickaelistria Dec 10, 2024
97e662a
Fix position for ArrayInitializer
mickaelistria Dec 11, 2024
7d64304
Fix NPE in testBug424138_001 and others; bad synchronized block
Dec 10, 2024
2253956
Fix regressions ASTConverterAST3Test.test0009 and others; also Cleanup
Dec 11, 2024
1094615
NPE check in DOMCompletionEngine when erasure is null
Dec 11, 2024
fc19496
CompletionContextTest: null token after string literal
mickaelistria Dec 11, 2024
db28c36
Translate problem id for unknown annotation member
datho7561 Dec 10, 2024
df6a746
Fixes #1038 - regression during some error syntax
Dec 12, 2024
04dfc0c
Used Resolved* JavaElement in Javac*Bindings.getJavaElement()
mickaelistria Dec 12, 2024
1bbc67b
javac doesn't configure output folders of dependent projects correctly
snjeza Dec 6, 2024
e0906a4
Completion for favourite static imports
datho7561 Nov 29, 2024
83fb884
Camel case matching for completed types
datho7561 Dec 12, 2024
aedf0f4
Remove calls to jobs that are no longer needed.
rgrunber Dec 13, 2024
9579cae
Use resolved JavaElement from binding for CompletionContext.enclosing
mickaelistria Dec 13, 2024
0f2a85a
Ensure bindings are ordered by depth
mickaelistria Dec 16, 2024
62ae43d
Use resolved key for binary elements too
mickaelistria Dec 16, 2024
052934c
Strip exception from CompletionProposal.getSignature()
mickaelistria Dec 16, 2024
fe67769
Fixes CompletionContextTests.test0004 and possibly others
Dec 13, 2024
218a8fc
Improve method and type key
mickaelistria Dec 17, 2024
cd34971
Add boolean to ExpectedTypes when in conditions
mickaelistria Dec 17, 2024
2925746
New method completion proposal
datho7561 Dec 13, 2024
398b89c
add 1-click install link
mickaelistria Dec 17, 2024
4755f9e
Add feature for javac
mickaelistria Dec 17, 2024
0fc5de3
Enable lombok with javac
snjeza Dec 15, 2024
adb8277
Fix expected type for return statements
datho7561 Dec 18, 2024
bf29077
Constructor invocation completion proposal improvements
datho7561 Dec 16, 2024
8e53d98
Fixes to completing types
datho7561 Dec 16, 2024
b2187d7
Fix test0008 and others: empty block comment misunderstood by javac a…
Dec 16, 2024
be49448
Make for fileObjects uninterruptible
mickaelistria Dec 19, 2024
9188cdf
Set NON_INHERITED on relevance
mickaelistria Dec 17, 2024
03deb39
Force setAccessible in reflection
mickaelistria Dec 19, 2024
69bb668
Do not suggest .class .super .this suffix for types
mickaelistria Dec 19, 2024
9388bd7
Open java.compiler/javax.tools=ALL-UNNAMED
mickaelistria Dec 20, 2024
3486eb3
Fix possible Javadoc parsing issue for reused nodes
mickaelistria Dec 20, 2024
26fcac3
Add javac feature to 2nd build step
mickaelistria Dec 20, 2024
62331ad
Cleanup and disable 3 tests
Dec 20, 2024
e772e03
Fix CompletionContextTests.test0116 and 1 other
Dec 20, 2024
49be852
Add javax.tools to o.e.j.c.tests.javac
snjeza Dec 21, 2024
1f45e53
Fix ASTConverter15JLS4Test.test0008
snjeza Dec 22, 2024
0966945
Integrate javac library with a standalone bundle
testforstephen Jan 5, 2025
ef5c25d
Completion for `import module |;`
datho7561 Dec 18, 2024
5bcff26
`@param |` completion
datho7561 Jan 3, 2025
537d38f
Add support for packages in completion
mickaelistria Jan 6, 2025
90c7769
Do not create invalid JavacVariableBinding
mickaelistria Jan 8, 2025
ff030f6
Fix modifiers for types when coming from AST
mickaelistria Jan 8, 2025
fa18424
Filter proposed packages
mickaelistria Jan 8, 2025
039ebf5
Add completion of package keyword
mickaelistria Jan 7, 2025
63b55c3
Prevent NPE
mickaelistria Jan 8, 2025
5b0b337
Fix some JavacTypeBinding.getKey with generic extends
mickaelistria Jan 9, 2025
fb49b99
Resolve type for name when possible
mickaelistria Jan 9, 2025
88270b7
Improve JavacMethodBinding.isRaw
mickaelistria Jan 9, 2025
caad4c5
Fix to ExpectedTypes
mickaelistria Jan 9, 2025
491d884
Fix various warnings
akurtakov Jan 9, 2025
501067c
Fix various possible NPEs
mickaelistria Jan 9, 2025
21f9778
Update README with updated args
mickaelistria Jan 9, 2025
11029ee
Remove unused methods from JavacBindingResolver
akurtakov Jan 9, 2025
7a27cb9
Error IDs for problems unique to javac
datho7561 Nov 7, 2024
03b3ae0
Add NON_STATIC to relevance
mickaelistria Jan 9, 2025
fd64954
Do not insert classname for static methods inside expression
mickaelistria Jan 9, 2025
c827108
Fixes to Javadoc completion
datho7561 Jan 7, 2025
889287d
Add java.base/sun.nio.ch=ALL-UNNAMED to arguments
akurtakov Jan 10, 2025
3f8e38b
Implement completion for field ref in Javadoc
datho7561 Jan 9, 2025
709193e
Some work on type completion
mickaelistria Jan 10, 2025
0e6950d
Improvements to completion
mickaelistria Jan 13, 2025
6b60483
Improve relevance computation for annotation without @Target
mickaelistria Jan 14, 2025
746cac9
Improve some import static type completion
mickaelistria Jan 14, 2025
49ce431
Work on completion with static import
mickaelistria Jan 14, 2025
2196380
Completion for method references in javadoc
datho7561 Jan 10, 2025
afc94eb
Record junit issues and warn on increase
akurtakov Jan 13, 2025
08e52e6
More support for annotation value names
mickaelistria Jan 15, 2025
87696cd
Improve support for completing enum constants in switch case
mickaelistria Jan 15, 2025
387ffd2
Publish all issues in Jenkins
akurtakov Jan 15, 2025
5882f2e
Fix unused import
akurtakov Jan 17, 2025
c40efa9
Obey SuppressWarnings("removal") in unused detector
akurtakov Jan 17, 2025
e17e39c
Unused imports are always listed as errors
snjeza Jan 19, 2025
f4e1ddc
Test case for PR #1139
snjeza Jan 20, 2025
a6bcee0
Collect `instanceof` and switch pattern variable bindings
datho7561 Jan 16, 2025
8034320
Improve converter & binding for IMemberValuePair
mickaelistria Jan 20, 2025
d64a829
NPE in binding resolver
Jan 20, 2025
4f309f6
Set range for missing name anyway
mickaelistria Jan 20, 2025
cf51406
Fixes 1145 - don't make a position when length is invalid
Jan 20, 2025
f43e722
Unnecessary import
Jan 20, 2025
5567075
Improve expectType for ArrayInitializer
mickaelistria Jan 21, 2025
cdd133b
Fix some relevance for member dereference
mickaelistria Jan 21, 2025
815780e
Improve some proceedOnError generation
mickaelistria Jan 21, 2025
19b91a3
Map compiler.warn.override.varargs.missing
akurtakov Jan 22, 2025
a84bf70
Fixes #1155 - remove all ClassCastException in error log after import…
Jan 21, 2025
56330e3
Ignore diagnostics without positions
akurtakov Jan 22, 2025
68df331
Fix failures of GHAs in local forks
akurtakov Jan 22, 2025
329b8ed
Map one more varargs diagnostic
akurtakov Jan 22, 2025
23c949b
Add api filters
akurtakov Jan 23, 2025
cbdd3a2
Add forgotten api filters
akurtakov Jan 23, 2025
acc1ac6
Enable api-check and javadoc profiles
akurtakov Jan 23, 2025
babc0a7
Fixes #1170 - missing diagnostic constant
Jan 23, 2025
8773672
Dogfooding the pde project has revealed several NPEs
Jan 23, 2025
7292b80
Test for release
mickaelistria Jan 23, 2025
15ca4b6
Use JavaTask in JavaCompiler
mickaelistria Jan 23, 2025
d1eeaf3
Forward release setting to AbstractImageBuilder
mickaelistria Jan 23, 2025
be01b7e
Extension point to replace `CompletionEngine`
datho7561 Jan 15, 2025
28b54fd
Completion for pattern variable initialized in for loop expression
datho7561 Jan 21, 2025
6a6d0a6
Remove access to `CompletionEngine.completionToken`
datho7561 Jan 15, 2025
a134ca6
Remove dependency on CompletionEngine, excepting static methods
Jan 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .github/workflows/auto-author-assign.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
name: Auto Author Assign

on:
pull_request_target:
types: [ opened, reopened ]

permissions:
pull-requests: write

jobs:
assign-author:
runs-on: ubuntu-latest
steps:
- uses: toshimaru/[email protected]
55 changes: 55 additions & 0 deletions .github/workflows/ci-dom-javac.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Continuous Integration with DOM/Javac
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-dom
cancel-in-progress: true

on:
push:
branches: [ 'dom-based-operations', 'dom-with-javac' ]
pull_request:
branches: [ 'dom-based-operations', 'dom-with-javac' ]

jobs:
build-dom-javac:
runs-on: ubuntu-latest
steps:
- name: Install xmllint
shell: bash
run: |
sudo apt update
sudo apt install -y libxml2-utils
- uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0
- name: Enable DOM-first and Javac
run: sed -i 's$</argLine>$ -DCompilationUnit.DOM_BASED_OPERATIONS=true -DSourceIndexer.DOM_BASED_INDEXER=false -DICompilationUnitResolver=org.eclipse.jdt.core.dom.JavacCompilationUnitResolver -DAbstractImageBuilder.compiler=org.eclipse.jdt.internal.javac.JavacCompiler_</argLine>$g' */pom.xml
- name: Set up JDKs ☕
uses: actions/setup-java@v4
with:
java-version: |
8
17
21
23
mvn-toolchain-id: |
JavaSE-1.8
JavaSE-17
JavaSE-21
JavaSE-23
distribution: 'temurin'
- name: Set up Maven
uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5
with:
maven-version: 3.9.9
- name: Build with Maven 🏗️
run: |
mvn clean install --batch-mode -f org.eclipse.jdt.core.compiler.batch -DlocalEcjVersion=99.99
mvn -U clean verify --batch-mode --fail-at-end -Ptest-on-javase-21 -Pbree-libs -Papi-check -Djava.io.tmpdir=$WORKSPACE/tmp -Dproject.build.sourceEncoding=UTF-8 -Dtycho.surefire.argLine="--add-modules ALL-SYSTEM -Dcompliance=1.8,11,20 -Djdt.performance.asserts=disabled" -Dcbi-ecj-version=99.99
- name: Test Report
if: success() || failure() # run this step even if previous step failed
run: |
echo ▶️ TESTS RUN: $(xmllint --xpath 'string(/testsuite/@tests)' */target/surefire-reports/TEST-*.xml | awk '{n += $1}; END{print n}' -)
echo ❌ FAILURES: $(xmllint --xpath 'string(/testsuite/@failures)' */target/surefire-reports/TEST-*.xml | awk '{n += $1}; END{print n}' -)
echo 💥 ERRORS: $(xmllint --xpath 'string(/testsuite/@errors)' */target/surefire-reports/TEST-*.xml | awk '{n += $1}; END{print n}' -)
echo 🛑 SKIPPED: $(xmllint --xpath 'string(/testsuite/@skipped)' */target/surefire-reports/TEST-*.xml | awk '{n += $1}; END{print n}' -)
6 changes: 4 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ concurrency:

on:
push:
branches: '**'
branches: ['**']

jobs:
event_file:
Expand All @@ -31,15 +31,17 @@ jobs:
8
17
21
23
mvn-toolchain-id: |
JavaSE-1.8
JavaSE-17
JavaSE-21
JavaSE-23
distribution: 'temurin'
- name: Set up Maven
uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5
with:
maven-version: 3.9.8
maven-version: 3.9.9
- name: Build with Maven 🏗️
run: |
mvn clean install --batch-mode -f org.eclipse.jdt.core.compiler.batch -DlocalEcjVersion=99.99
Expand Down
40 changes: 35 additions & 5 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ pipeline {
jdk 'openjdk-jdk23-latest'
}
stages {
stage('Build') {
stage('Build and Test') {
steps {
sh """#!/bin/bash -x

Expand All @@ -29,8 +29,10 @@ pipeline {
# export MAVEN_OPTS="-Xmx2G"

mvn clean install -f org.eclipse.jdt.core.compiler.batch -DlocalEcjVersion=99.99 -Dmaven.repo.local=$WORKSPACE/.m2/repository -DcompilerBaselineMode=disable -DcompilerBaselineReplace=none


# Build and test without DOM-first to ensure no regression takes place
mvn -U clean verify --batch-mode --fail-at-end -Dmaven.repo.local=$WORKSPACE/.m2/repository \
-pl !org.eclipse.jdt.core.tests.javac \
-Ptest-on-javase-23 -Pbree-libs -Papi-check -Pjavadoc -Pp2-repo \
-Dmaven.test.failure.ignore=true \
-Dcompare-version-with-baselines.skip=false \
Expand All @@ -45,7 +47,6 @@ pipeline {
}
post {
always {
archiveArtifacts artifacts: '*.log,*/target/work/data/.metadata/*.log,*/tests/target/work/data/.metadata/*.log,apiAnalyzer-workspace/.metadata/*.log,repository/target/repository/**,**/target/artifactcomparison/**', allowEmptyArchive: true
// The following lines use the newest build on master that did not fail a reference
// To not fail master build on failed test maven needs to be started with "-Dmaven.test.failure.ignore=true" it will then only marked unstable.
// To not fail the build also "unstable: true" is used to only mark the build unstable instead of failing when qualityGates are missed
Expand All @@ -55,8 +56,37 @@ pipeline {
// The eclipse compiler name is changed because the logfile not only contains ECJ but also API warnings.
// "pattern:" is used to collect warnings in dedicated files avoiding output of junit tests treated as warnings
junit '**/target/surefire-reports/*.xml'
discoverGitReferenceBuild referenceJob: 'eclipse.jdt.core-github/master'
recordIssues publishAllIssues:false, ignoreQualityGate:true, tool: eclipse(name: 'Compiler and API Tools', pattern: '**/target/compilelogs/*.xml'), qualityGates: [[threshold: 1, type: 'DELTA', unstable: true]]
//discoverGitReferenceBuild referenceJob: 'eclipse.jdt.core-github/master'
//recordIssues publishAllIssues:false, ignoreQualityGate:true, tool: eclipse(name: 'Compiler and API Tools', pattern: '**/target/compilelogs/*.xml'), qualityGates: [[threshold: 1, type: 'DELTA', unstable: true]]
}
}
}
stage('javac specific tests') {
steps {
sh """#!/bin/bash -x
mkdir -p $WORKSPACE/tmp

unset JAVA_TOOL_OPTIONS
unset _JAVA_OPTIONS
# force qualifier to start with `z` so we identify it more easily and it always seem more recent than upstrea
mvn install -DskipTests -Djava.io.tmpdir=$WORKSPACE/tmp \
-Dtycho.buildqualifier.format="'z'yyyyMMdd-HHmm" \
-Pp2-repo \
-pl org.eclipse.jdt.core.compiler.batch,org.eclipse.jdt.core,org.eclipse.jdt.core.javac,org.eclipse.jdt.core.javac.feature,org.eclipse.jdt.core.tests.model,org.eclipse.jdt.core.tests.compiler,repository

mvn verify --batch-mode -f org.eclipse.jdt.core.tests.javac \
--fail-at-end -Ptest-on-javase-23 -Pbree-libs \
-DfailIfNoTests=false -DexcludedGroups=org.junit.Ignore -DproviderHint=junit47 \
-Papi-check -Djava.io.tmpdir=$WORKSPACE/tmp -Dproject.build.sourceEncoding=UTF-8 \
-Dmaven.test.failure.ignore=true -Dmaven.test.error.ignore=true
"""
}
post {
always {
archiveArtifacts artifacts: '*.log,*/target/work/data/.metadata/*.log,*/tests/target/work/data/.metadata/*.log,apiAnalyzer-workspace/.metadata/*.log,repository/target/repository/**,**/target/artifactcomparison/**', allowEmptyArchive: true
junit 'org.eclipse.jdt.core.tests.javac/target/surefire-reports/*.xml'
discoverGitReferenceBuild referenceJob: 'jdt-core-incubator/dom-with-javac'
recordIssues ignoreQualityGate:true, tool: junitParser(pattern: 'org.eclipse.jdt.core.tests.javac/target/surefire-reports/*.xml'), qualityGates: [[threshold: 1, type: 'DELTA', unstable: true]]
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,10 @@ public interface ClassFileConstants {
long JDK22 = ((long)ClassFileConstants.MAJOR_VERSION_22 << 16) + ClassFileConstants.MINOR_VERSION_0;
long JDK23 = ((long)ClassFileConstants.MAJOR_VERSION_23 << 16) + ClassFileConstants.MINOR_VERSION_0;

/**
*
* @return The latest JDK level supported by ECJ (can be different from the latest known JDK level)
*/
public static long getLatestJDKLevel() {
return ((long)ClassFileConstants.MAJOR_LATEST_VERSION << 16) + ClassFileConstants.MINOR_VERSION_0;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -433,6 +433,11 @@ public class CompilerOptions {
public long complianceLevel;
/** Java source level, refers to a JDK version, e.g. {@link ClassFileConstants#JDK1_4} */
public long sourceLevel;
/**
* Use <code>-release</code> setting instead of <code>-source</code> to pass compilance version
* and checking also availability of system APIs for the compliance version.
*/
public boolean release;
/**
* Initially requested source version, not necessarily consistent with {@link #sourceLevel} as
* sourceLevel forcibly contain a version that is compatible with ECJ.
Expand Down Expand Up @@ -1410,7 +1415,7 @@ public Map<String, String> getMap() {
optionsMap.put(OPTION_ReportUnusedLabel, getSeverityString(UnusedLabel));
optionsMap.put(OPTION_ReportUnusedTypeArgumentsForMethodInvocation, getSeverityString(UnusedTypeArguments));
optionsMap.put(OPTION_Compliance, versionFromJdkLevel(this.complianceLevel));
optionsMap.put(OPTION_Release, DISABLED);
optionsMap.put(OPTION_Release, this.release ? ENABLED : DISABLED);
optionsMap.put(OPTION_Source, versionFromJdkLevel(this.sourceLevel));
optionsMap.put(OPTION_TargetPlatform, versionFromJdkLevel(this.targetJDK));
optionsMap.put(OPTION_FatalOptionalError, this.treatOptionalErrorAsFatal ? ENABLED : DISABLED);
Expand Down Expand Up @@ -1776,6 +1781,7 @@ public void set(Map<String, String> optionsMap) {
long level = versionToJdkLevel(optionValue);
if (level != 0) this.sourceLevel = level;
}
this.release = ENABLED.equals(optionsMap.get(OPTION_Release));
if ((optionValue = optionsMap.get(OPTION_TargetPlatform)) != null) {
long level = versionToJdkLevel(optionValue);
if (level != 0) {
Expand Down
11 changes: 11 additions & 0 deletions org.eclipse.jdt.core.javac.feature/feature.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<feature
id="org.eclipse.jdt.core.javac.feature"
label="Javac backend for JDT (feature)"
version="1.0.0.qualifier">

<plugin
id="org.eclipse.jdt.core.javac"
version="0.0.0"/>

</feature>
12 changes: 12 additions & 0 deletions org.eclipse.jdt.core.javac/.classpath
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-23">
<attributes>
<attribute name="module" value="true"/>
<attribute name="add-exports" value="jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED:jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED:jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED:jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED:jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED:jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED:jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED:jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED:jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.taglets.snippet=ALL-UNNAMED:jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.taglets=ALL-UNNAMED:jdk.compiler/com.sun.tools.javac.platform=ALL-UNNAMED:jdk.compiler/com.sun.tools.javac.resources=ALL-UNNAMED:jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED:java.base/sun.nio.ch=ALL-UNNAMED"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="bin"/>
</classpath>
28 changes: 28 additions & 0 deletions org.eclipse.jdt.core.javac/.project
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>org.eclipse.jdt.core.javac</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ManifestBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.SchemaBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8
Loading
Loading