Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for GlassFish 7.0.7, 7.0.8, and 7.0.9 #6542

Merged
merged 1 commit into from
Oct 15, 2023

Conversation

pepness
Copy link
Member

@pepness pepness commented Oct 6, 2023

Library Notes:

  • Add support for Java 21
  • Refactoring and maintenance of code base
  • Fix processing of the Multi-Release libraries in EAR application
  • Bug fixes and updates of various components

NetBeans GlassFish module notes:

  • Add support for GlassFish version 7.0.7, 7.0.8, and 7.0.9
  • Add new ConfigBuilderProvider for GlassFish 7.0.9 and newer versions that support Java 21
  • Add support for JavaSE constants up to version 22
  • Bump javac.source and javac.target to version 11 for all 4 GlassFish modules common, eecommon, javaee, and tooling
  • Refactor creation of ServerWizardIterator with one private array
  • Remove some unnecessary imports
  • Make final some fields
  • Refactor long switch statement to one if if-else else statement
  • Use ConcurrentMap for builders, set initial capacity, use atomic operations computeIfPresent and computeIfAbsent, and remove some synchronized blocks because the ConcurrentHashMap implementation already use synchronized at a field level

NetBeans Testing:

  • Verify successful execution of libraries and licenses Ant test
  • Verify successful execution of Verify Sigtests
  • Verify successful execution of ant -Dcluster.config=release commit-validation
  • Verify successful execution of unit tests for modules glassfish.common, glassfish.javaee, glassfish.tooling, and glassfish.eecommon
  • Started NetBeans and ensure the log didn't have any ERROR or new WARNINGS
  • Successfully register GlassFish 7.0.7, 7.0.8, and 7.0.9, create a web app and verify that it works.

Release Notes

@pepness pepness added Java EE/Jakarta EE [ci] enable enterprise job enterprise [ci] enable enterprise job labels Oct 6, 2023
@pepness pepness added this to the NB20 milestone Oct 6, 2023
@pepness pepness self-assigned this Oct 6, 2023
Comment on lines 636 to 640
CLSS public abstract interface java.util.Map<%0 extends java.lang.Object, %1 extends java.lang.Object>
innr public abstract interface static Entry
meth public !varargs static <%0 extends java.lang.Object, %1 extends java.lang.Object> java.util.Map<{%%0},{%%1}> ofEntries(java.util.Map$Entry<? extends {%%0},? extends {%%1}>[])
anno 0 java.lang.SafeVarargs()
meth public abstract boolean containsKey(java.lang.Object)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ebarboni @matthiasblaesing why are there JDK classes in the sig file of this module?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the sig generator is probably not filtering out JDK classes, which means if the public API uses JDK classes in declarations, the sig changes when JDK level changes.

@mbien
Copy link
Member

mbien commented Oct 14, 2023

@pepness can you squash so that it is ready for merge?

- Add new ConfigBuilderProvider for GlassFish 7.0.9 and newer with
  support for Java 21
- Add support for JavaSE constants up to version 22
- Bump `javac.source` and `javac.target` to version 11 for all 4
  GlassFish modules `common`,`eecommon`,`javaee`, and `tooling`
- Refactor creation of `ServerWizardIterator` with one private array
- Use ConcurrentMap for `builders`, set initial capacity, use atomic
  operations `computeIfPresent` and `computeIfAbsent`, and remove
  some synchronized blocks because the ConcurrentHashMap implementation
  already use synchronized at a Node level
- Generate sigtest because `check-sigtests-release` failed
- Add a new method that return a numeric representation of the server
  version
- Refactor the String representation of the Enums with a single method.
  Thanks to @mbien
- Integrate `GlassFishVersion` enum to `ServerDetails` constructor and
  replace instance field `versionInt` with it
- Use `GlassfishInstanceProvider` instances when creating a new
  `ServerDetails` enum
- Refactor switch statement with single method `version.toFullInteger()`
  from the new `GlassFishVersion` instance
- Refactor serverDetails array to one call to `ServerDetails.values()`
- The `getBuilder` method can return a ConfigBuilder instance with just
  one atomic and non-blocking operation `computeIfAbsent`. Thanks to
  @mbien
- Refactor long switch statement to one `if if-else else` statement
- Remove unnecessary imports
- Make final some instances
Copy link
Member

@mbien mbien left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good cleanup! Should make future updates easier I think.

@pepness pepness merged commit 01294a4 into apache:master Oct 15, 2023
@pepness pepness changed the title Add support for GlassFish 7.0.6, 7.0.7, and 7.0.9 Add support for GlassFish 7.0.6, 7.0.7, 7.0.8, and 7.0.9 Oct 18, 2023
@pepness pepness changed the title Add support for GlassFish 7.0.6, 7.0.7, 7.0.8, and 7.0.9 Add support for GlassFish 7.0.7, 7.0.8, and 7.0.9 Oct 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enterprise [ci] enable enterprise job Java EE/Jakarta EE [ci] enable enterprise job
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants