changeset 2940:cc35a9049bdd

PR1119: Detect whether required methods in java.security.cert.X509{Cert,CRL}Selector are actually missing. 2013-01-21 Andrew John Hughes <gnu.andrew@redhat.com> * Makefile.am: (ICEDTEA_BOOTSTRAP_CLASSES): Make the inclusion of java.security.cert.X509{Cert,CRL}Selector dependent on the necessary methods being missing. * configure.ac: Add IT_CHECK_FOR_METHOD calls for the missing java.security.cert.X509{Cert,CRL}Selector methods added in 1.5.
author Andrew John Hughes <gnu.andrew@redhat.com>
date Mon, 21 Jan 2013 21:46:50 +0000
parents 5c5bde48dfb9
children 3465dd7f9596
files ChangeLog Makefile.am configure.ac
diffstat 3 files changed, 68 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Mon Jan 21 19:56:33 2013 +0000
+++ b/ChangeLog	Mon Jan 21 21:46:50 2013 +0000
@@ -1,3 +1,14 @@
+2013-01-21  Andrew John Hughes  <gnu.andrew@redhat.com>
+
+	* Makefile.am:
+	(ICEDTEA_BOOTSTRAP_CLASSES): Make the inclusion
+	of java.security.cert.X509{Cert,CRL}Selector
+	dependent on the necessary methods being missing.
+	* configure.ac:
+	Add IT_CHECK_FOR_METHOD calls for the
+	missing java.security.cert.X509{Cert,CRL}Selector
+	methods added in 1.5.
+
 2013-01-14  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
 	* Makefile.am:
--- a/Makefile.am	Mon Jan 21 19:56:33 2013 +0000
+++ b/Makefile.am	Mon Jan 21 21:46:50 2013 +0000
@@ -63,11 +63,8 @@
 
 # Sources used from OpenJDK.
 
-# PR54274 - sun.security.other requires missing X509CRLSelector methods
 # PR54275 - sun.security.sasl requires missing Sasl.CREDENTIALS field
 ICEDTEA_BOOTSTRAP_CLASSES = \
-	$(SHARE)/java/security/cert/X509CRLSelector.java \
-	$(SHARE)/java/security/cert/X509CertSelector.java \
 	$(SHARE)/javax/security/sasl/Sasl.java \
 	$(SHARE)/javax/security/auth/kerberos/KerberosTicket.java
 
@@ -96,6 +93,31 @@
 endif
 endif
 
+# PR54274 - sun.security.other requires missing X509CRLSelector methods
+if LACKS_JAVA_SECURITY_CERT_X509CERTSELECTOR_GETSUBJECT
+ICEDTEA_BOOTSTRAP_CLASSES += \
+	$(SHARE)/java/security/cert/X509CertSelector.java
+else
+if LACKS_JAVA_SECURITY_CERT_X509CERTSELECTOR_SETISSUER
+ICEDTEA_BOOTSTRAP_CLASSES += \
+	$(SHARE)/java/security/cert/X509CertSelector.java
+else
+if LACKS_JAVA_SECURITY_CERT_X509CERTSELECTOR_SETSUBJECT
+ICEDTEA_BOOTSTRAP_CLASSES += \
+	$(SHARE)/java/security/cert/X509CertSelector.java
+endif
+endif
+endif
+if LACKS_JAVA_SECURITY_CERT_X509CRLSELECTOR_ADDISSUER
+ICEDTEA_BOOTSTRAP_CLASSES += \
+	$(SHARE)/java/security/cert/X509CRLSelector.java
+if LACKS_JAVA_SECURITY_CERT_X509CRLSELECTOR_SETISSUERS
+else
+ICEDTEA_BOOTSTRAP_CLASSES += \
+	$(SHARE)/java/security/cert/X509CRLSelector.java
+endif
+endif
+
 # Flags
 MEMORY_LIMIT = -J-Xmx1024m
 IT_CFLAGS=$(CFLAGS) $(ARCHFLAG)
--- a/configure.ac	Mon Jan 21 19:56:33 2013 +0000
+++ b/configure.ac	Mon Jan 21 21:46:50 2013 +0000
@@ -78,6 +78,38 @@
 IT_CHECK_FOR_CONSTRUCTOR([JAVAX_MANAGEMENT_STANDARDMBEAN_MXBEAN_TWO_ARG],[javax.management.StandardMBean],[Class.class,Boolean.TYPE],[Object.class, true])
 IT_CHECK_FOR_CONSTRUCTOR([JAVAX_MANAGEMENT_STANDARDMBEAN_MXBEAN_THREE_ARG],[javax.management.StandardMBean],[Object.class,Class.class,Boolean.TYPE],[new Object(), Object.class, true])
 
+# PR54274 - sun.security.other requires missing X509CRLSelector methods
+IT_CHECK_FOR_METHOD([JAVA_SECURITY_CERT_X509CRLSELECTOR_ADDISSUER],
+  [java.security.cert.X509CRLSelector.addIssuer(X500Principal)],
+  [java.security.cert.X509CRLSelector],
+  ["addIssuer",javax.security.auth.x500.X500Principal.class],
+  [new java.security.cert.X509CRLSelector().addIssuer(null)]
+)
+IT_CHECK_FOR_METHOD([JAVA_SECURITY_CERT_X509CERTSELECTOR_SETSUBJECT],
+  [java.security.cert.X509CertSelector.setSubject(X500Principal)],
+  [java.security.cert.X509CertSelector],
+  ["setSubject",javax.security.auth.x500.X500Principal.class],
+  [new java.security.cert.X509CertSelector().setSubject(new javax.security.auth.x500.X500Principal(""))]
+)
+IT_CHECK_FOR_METHOD([JAVA_SECURITY_CERT_X509CERTSELECTOR_GETSUBJECT],
+  [java.security.cert.X509CertSelector.getSubject()],
+  [java.security.cert.X509CertSelector],
+  ["getSubject"],
+  [new java.security.cert.X509CertSelector().getSubject()]
+)
+IT_CHECK_FOR_METHOD([JAVA_SECURITY_CERT_X509CERTSELECTOR_SETISSUER],
+  [java.security.cert.X509CertSelector.setIssuer(X500Principal)],
+  [java.security.cert.X509CertSelector],
+  ["setIssuer",javax.security.auth.x500.X500Principal.class],
+  [new java.security.cert.X509CertSelector().setIssuer(new javax.security.auth.x500.X500Principal(""))]
+)
+IT_CHECK_FOR_METHOD([JAVA_SECURITY_CERT_X509CRLSELECTOR_SETISSUERS],
+  [java.security.cert.X509CRLSelector.setIssuers(Collection<X500Principal>)],
+  [java.security.cert.X509CRLSelector],
+  ["setIssuers",java.util.Collection.class],
+  [new java.security.cert.X509CRLSelector().setIssuers(new java.util.ArrayList<javax.security.auth.x500.X500Principal>())]
+)
+
 # Use xvfb-run if found to run gui tests (check-jdk).
 AC_CHECK_PROG(XVFB_RUN_CMD, xvfb-run, [xvfb-run -a -e xvfb-errors], [])
 AC_SUBST(XVFB_RUN_CMD)