This is an automated email from the ASF dual-hosted git repository.

vavrtom pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/qpid-broker-j.git


The following commit(s) were added to refs/heads/main by this push:
     new 263dff30c5 QPID-8658 - [Broker-J] Add Java 21 to the GitHub test 
matrix (#224)
263dff30c5 is described below

commit 263dff30c598a382cff4142909dcacff0ce0c7aa
Author: Daniil Kirilyuk <[email protected]>
AuthorDate: Tue Oct 31 09:29:19 2023 +0100

    QPID-8658 - [Broker-J] Add Java 21 to the GitHub test matrix (#224)
---
 .github/workflows/build.yml                        |  2 +-
 .../MimeContentConverterRegistry.java              |  9 +++-
 .../qpid/test/utils/tls/TlsResourceBuilder.java    | 58 +++++++++-------------
 3 files changed, 32 insertions(+), 37 deletions(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 94c287008a..3631cd7f19 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -24,7 +24,7 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        java: [ 11, 17 ]
+        java: [ 11, 17, 21 ]
 
     steps:
       - uses: actions/checkout@v3
diff --git 
a/broker-core/src/main/java/org/apache/qpid/server/message/mimecontentconverter/MimeContentConverterRegistry.java
 
b/broker-core/src/main/java/org/apache/qpid/server/message/mimecontentconverter/MimeContentConverterRegistry.java
index 79cbba7a7e..1714ed5bce 100644
--- 
a/broker-core/src/main/java/org/apache/qpid/server/message/mimecontentconverter/MimeContentConverterRegistry.java
+++ 
b/broker-core/src/main/java/org/apache/qpid/server/message/mimecontentconverter/MimeContentConverterRegistry.java
@@ -27,6 +27,8 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 import com.google.common.collect.HashMultimap;
 import com.google.common.collect.ImmutableMultimap;
@@ -39,7 +41,7 @@ import org.apache.qpid.server.plugin.QpidServiceLoader;
 public class MimeContentConverterRegistry
 {
     private static final Logger LOGGER = 
LoggerFactory.getLogger(MimeContentConverterRegistry.class);
-
+    private static final String SEQUENCED_MAP = "java.util.SequencedMap";
     private static final Map<String, MimeContentToObjectConverter> 
_mimeContentToObjectConverters;
     private static final Multimap<Class, ObjectToMimeContentConverter> 
_classToMimeContentConverters;
 
@@ -105,7 +107,10 @@ public class MimeContentConverterRegistry
         ObjectToMimeContentConverter converter = null;
         if (object != null)
         {
-            final List<Class<?>> classes = new 
ArrayList<>(Arrays.asList(object.getClass().getInterfaces()));
+            final List<Class<?>> classes = 
Stream.of(object.getClass().getInterfaces())
+                    // Java 21 compatibility fix
+                    .flatMap(anInterface -> 
SEQUENCED_MAP.equals(anInterface.getName()) ? 
Stream.of(anInterface.getInterfaces()) : Stream.of(anInterface))
+                    .collect(Collectors.toList());
             classes.add(object.getClass());
             for (Class<?> i : classes)
             {
diff --git 
a/qpid-test-utils/src/main/java/org/apache/qpid/test/utils/tls/TlsResourceBuilder.java
 
b/qpid-test-utils/src/main/java/org/apache/qpid/test/utils/tls/TlsResourceBuilder.java
index ad75e15fb1..e242037c35 100644
--- 
a/qpid-test-utils/src/main/java/org/apache/qpid/test/utils/tls/TlsResourceBuilder.java
+++ 
b/qpid-test-utils/src/main/java/org/apache/qpid/test/utils/tls/TlsResourceBuilder.java
@@ -138,48 +138,35 @@ public class TlsResourceBuilder
                                                     final String dn,
                                                     final Instant from,
                                                     final Instant to,
-                                                    final AlternativeName... 
alternativeName)
+                                                    final AlternativeName... 
alternativeNames)
             throws CertificateException
     {
-        return createCertificate(keyPair,
-                                 ca,
-                                 dn,
-                                 new ValidityPeriod(from, to),
-                                 createKeyUsageExtension(),
-                                 
createAlternateNamesExtension(alternativeName));
+        return createCertificate(keyPair, ca, dn, new ValidityPeriod(from, 
to), alternativeNames, createKeyUsageExtension());
     }
 
 
     public static X509Certificate 
createCertificateForClientAuthorization(final KeyPair keyPair,
                                                                           
final KeyCertificatePair ca,
                                                                           
final String dn,
-                                                                          
final AlternativeName... alternativeName)
+                                                                          
final AlternativeName... alternativeNames)
             throws CertificateException
     {
-        return createCertificate(keyPair,
-                                 ca,
-                                 dn,
-                                 createValidityPeriod(),
-                                 createExtendedUsageExtension(new 
ExtendedKeyUsage(new KeyPurposeId[]{KeyPurposeId.id_kp_clientAuth})),
-                                 
createAuthorityKeyExtension(ca.getCertificate().getPublicKey()),
-                                 
createSubjectKeyExtension(keyPair.getPublic()),
-                                 
createAlternateNamesExtension(alternativeName));
+        return createCertificate(keyPair, ca, dn, createValidityPeriod(), 
alternativeNames,
+                createExtendedUsageExtension(new ExtendedKeyUsage(new 
KeyPurposeId[]{KeyPurposeId.id_kp_clientAuth})),
+                
createAuthorityKeyExtension(ca.getCertificate().getPublicKey()),
+                createSubjectKeyExtension(keyPair.getPublic()));
     }
 
     public static X509Certificate 
createCertificateForServerAuthorization(final KeyPair keyPair,
                                                                           
final KeyCertificatePair ca,
                                                                           
final String dn,
-                                                                          
final AlternativeName... alternativeName)
+                                                                          
final AlternativeName... alternativeNames)
             throws CertificateException
     {
-        return createCertificate(keyPair,
-                                 ca,
-                                 dn,
-                                 createValidityPeriod(),
-                                 createExtendedUsageExtension(new 
ExtendedKeyUsage(new KeyPurposeId[]{KeyPurposeId.id_kp_serverAuth})),
-                                 
createAuthorityKeyExtension(ca.getCertificate().getPublicKey()),
-                                 
createSubjectKeyExtension(keyPair.getPublic()),
-                                 
createAlternateNamesExtension(alternativeName));
+        return createCertificate(keyPair, ca, dn, createValidityPeriod(), 
alternativeNames,
+                createExtendedUsageExtension(new ExtendedKeyUsage(new 
KeyPurposeId[]{KeyPurposeId.id_kp_serverAuth})),
+                
createAuthorityKeyExtension(ca.getCertificate().getPublicKey()),
+                createSubjectKeyExtension(keyPair.getPublic()));
     }
 
     public static X509Certificate 
createCertificateWithCrlDistributionPoint(final KeyPair keyPair,
@@ -192,6 +179,7 @@ public class TlsResourceBuilder
                                  caPair,
                                  dn,
                                  createValidityPeriod(),
+                                 null,
                                  createKeyUsageExtension(),
                                  createDistributionPointExtension(crlUri));
     }
@@ -200,6 +188,7 @@ public class TlsResourceBuilder
                                                      final KeyCertificatePair 
ca,
                                                      final String dn,
                                                      final ValidityPeriod 
validityPeriod,
+                                                     final AlternativeName[] 
alternativeNames,
                                                      final Extension... 
extensions)
             throws CertificateException
     {
@@ -218,6 +207,10 @@ public class TlsResourceBuilder
             {
                 builder.addExtension(e);
             }
+            if (alternativeNames != null && alternativeNames.length > 0)
+            {
+                
builder.addExtension(createAlternateNamesExtension(alternativeNames));
+            }
             return buildX509Certificate(builder, ca.getPrivateKey());
         }
         catch (OperatorException | IOException e)
@@ -244,7 +237,10 @@ public class TlsResourceBuilder
             builder.addExtension(Extension.basicConstraints, false, new 
BasicConstraints(false));
             builder.addExtension(createKeyUsageExtension());
             
builder.addExtension(createSubjectKeyExtension(keyPair.getPublic()));
-            
builder.addExtension(createAlternateNamesExtension(alternativeName));
+            if (alternativeName != null && alternativeName.length > 0)
+            {
+                
builder.addExtension(createAlternateNamesExtension(alternativeName));
+            }
             return buildX509Certificate(builder, keyPair.getPrivate());
         }
         catch (OperatorException | IOException e)
@@ -330,7 +326,6 @@ public class TlsResourceBuilder
                     new Date(validityPeriod.getTo().toEpochMilli()),
                     new X500Name(RFC4519Style.INSTANCE, dn),
                     keyPair.getPublic());
-            //builder.addExtension(Extension.keyUsage, false, new 
KeyUsage(KeyUsage.keyCertSign));
             builder.addExtension(Extension.basicConstraints, false, new 
BasicConstraints(true));
             
builder.addExtension(createSubjectKeyExtension(keyPair.getPublic()));
             
builder.addExtension(createAuthorityKeyExtension(rootCA.getCertificate().getPublicKey()));
@@ -382,15 +377,10 @@ public class TlsResourceBuilder
                                                      final KeyCertificatePair 
ca,
                                                      final String dn,
                                                      final ValidityPeriod 
validityPeriod,
-                                                     final AlternativeName... 
alternativeName)
+                                                     final AlternativeName... 
alternativeNames)
             throws CertificateException
     {
-        return createCertificate(keyPair,
-                                 ca,
-                                 dn,
-                                 validityPeriod,
-                                 createKeyUsageExtension(),
-                                 
createAlternateNamesExtension(alternativeName));
+        return createCertificate(keyPair, ca, dn, validityPeriod, 
alternativeNames, createKeyUsageExtension());
     }
 
     private static KeyCertificatePair createSelfSigned(final String dn,


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to