diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8c267feeb4..689b2d328b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,7 +12,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - java: [ '8'] + java: [ '8', '11' ] os: [ 'ubuntu-latest', 'macos-10.15', 'windows-latest' ] steps: - uses: actions/checkout@v2 @@ -37,4 +37,4 @@ jobs: - name: Build with Maven env: MAVEN_OPTS: -Dhttps.protocols=TLSv1.2 -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.requestSentEnabled=true -Dmaven.wagon.http.retryHandler.count=10 - run: mvn --batch-mode --update-snapshots package ${{ steps.maven-profile-flag.outputs.MAVEN_VERIFY_STAGE }} --file pom.xml ${{ steps.maven-profile-flag.outputs.MAVEN_PROFILE_FLAG }} \ No newline at end of file + run: mvn --batch-mode --update-snapshots package ${{ steps.maven-profile-flag.outputs.MAVEN_VERIFY_STAGE }} --file pom.xml ${{ steps.maven-profile-flag.outputs.MAVEN_PROFILE_FLAG }} diff --git a/openam-authentication/openam-auth-oauth2/src/test/java/org/forgerock/openam/authentication/modules/oauth2/ESIATest.java b/openam-authentication/openam-auth-oauth2/src/test/java/org/forgerock/openam/authentication/modules/oauth2/ESIATest.java index 5597c5a369..6aab5f9c0c 100644 --- a/openam-authentication/openam-auth-oauth2/src/test/java/org/forgerock/openam/authentication/modules/oauth2/ESIATest.java +++ b/openam-authentication/openam-auth-oauth2/src/test/java/org/forgerock/openam/authentication/modules/oauth2/ESIATest.java @@ -12,11 +12,13 @@ import org.forgerock.openam.authentication.modules.oauth2.service.esia.Signer; import org.mockito.Matchers; import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PowerMockIgnore; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.testng.PowerMockTestCase; import org.testng.annotations.Test; @PrepareForTest(HttpRequestContent.class) +@PowerMockIgnore("jdk.internal.reflect.*") public class ESIATest extends PowerMockTestCase { @Test diff --git a/openam-cassandra/openam-cassandra-embedded/src/test/java/ServerTest.java b/openam-cassandra/openam-cassandra-embedded/src/test/java/ServerTest.java index 55b0bffe82..79eda29957 100644 --- a/openam-cassandra/openam-cassandra-embedded/src/test/java/ServerTest.java +++ b/openam-cassandra/openam-cassandra-embedded/src/test/java/ServerTest.java @@ -15,7 +15,6 @@ */ - import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; diff --git a/openam-core/src/main/java/org/forgerock/openam/cts/impl/query/worker/queries/CTSWorkerPastExpiryDateQuery.java b/openam-core/src/main/java/org/forgerock/openam/cts/impl/query/worker/queries/CTSWorkerPastExpiryDateQuery.java index e98f3debf3..a214c59609 100644 --- a/openam-core/src/main/java/org/forgerock/openam/cts/impl/query/worker/queries/CTSWorkerPastExpiryDateQuery.java +++ b/openam-core/src/main/java/org/forgerock/openam/cts/impl/query/worker/queries/CTSWorkerPastExpiryDateQuery.java @@ -20,6 +20,7 @@ import javax.inject.Inject; import java.util.Calendar; +import java.util.List; import org.forgerock.openam.cts.CoreTokenConfig; import org.forgerock.openam.sm.datalayer.api.ConnectionFactory; @@ -28,8 +29,10 @@ import org.forgerock.openam.sm.datalayer.api.query.QueryBuilder; import org.forgerock.openam.sm.datalayer.api.query.QueryFactory; import org.forgerock.openam.tokens.CoreTokenField; +import org.forgerock.opendj.ldap.Filter; import org.forgerock.util.Reject; import org.forgerock.util.query.QueryFilter; +import org.forgerock.util.query.QueryFilterVisitor; /** * A query that selects all CTS tokens whose expiry date field is prior to the current timestamp (e.g. who have @@ -39,7 +42,7 @@ */ public class CTSWorkerPastExpiryDateQuery extends CTSWorkerBaseQuery { - private final QueryFactory queryFactory; + private final QueryFactory queryFactory; private final int pageSize; @Inject @@ -58,8 +61,11 @@ public QueryBuilder getQuery() { QueryFilter filter = QueryFilter.lessThan(CoreTokenField.EXPIRY_DATE, now); + QueryFilterVisitor fc = queryFactory.createFilterConverter(); + + Filter accepted = filter.accept(fc, null); return queryFactory.createInstance() - .withFilter(filter.accept(queryFactory.createFilterConverter(), null)) + .withFilter(accepted) .pageResultsBy(pageSize) .returnTheseAttributes(CoreTokenField.TOKEN_ID); } diff --git a/openam-core/src/test/java/com/iplanet/dpro/session/service/SessionServerConfigTest.java b/openam-core/src/test/java/com/iplanet/dpro/session/service/SessionServerConfigTest.java index 2ea68492ec..85981cb7de 100644 --- a/openam-core/src/test/java/com/iplanet/dpro/session/service/SessionServerConfigTest.java +++ b/openam-core/src/test/java/com/iplanet/dpro/session/service/SessionServerConfigTest.java @@ -6,6 +6,7 @@ import com.sun.identity.shared.debug.Debug; import org.forgerock.openam.session.SessionServiceURLService; import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PowerMockIgnore; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.testng.PowerMockTestCase; import org.testng.annotations.Test; @@ -16,6 +17,7 @@ import static org.mockito.Mockito.mock; @PrepareForTest({ SystemProperties.class, WebtopNaming.class }) +@PowerMockIgnore("jdk.internal.reflect.*") public class SessionServerConfigTest extends PowerMockTestCase { @Test diff --git a/openam-core/src/test/java/org/forgerock/openam/cts/impl/LDAPConfigTest.java b/openam-core/src/test/java/org/forgerock/openam/cts/impl/LDAPConfigTest.java index fb163aba13..19690cbacd 100644 --- a/openam-core/src/test/java/org/forgerock/openam/cts/impl/LDAPConfigTest.java +++ b/openam-core/src/test/java/org/forgerock/openam/cts/impl/LDAPConfigTest.java @@ -18,6 +18,7 @@ import com.iplanet.am.util.SystemProperties; import org.forgerock.opendj.ldap.DN; import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PowerMockIgnore; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.testng.PowerMockTestCase; import org.testng.annotations.BeforeMethod; @@ -33,6 +34,7 @@ * @author robert.wapshott@forgerock.com */ @PrepareForTest(SystemProperties.class) +@PowerMockIgnore("jdk.internal.reflect.*") public class LDAPConfigTest extends PowerMockTestCase { private LDAPConfig config; diff --git a/openam-core/src/test/java/org/forgerock/openam/sm/datalayer/impl/ldap/ExternalLdapConfigTest.java b/openam-core/src/test/java/org/forgerock/openam/sm/datalayer/impl/ldap/ExternalLdapConfigTest.java index e6d6d6f691..00d7bfe5a8 100644 --- a/openam-core/src/test/java/org/forgerock/openam/sm/datalayer/impl/ldap/ExternalLdapConfigTest.java +++ b/openam-core/src/test/java/org/forgerock/openam/sm/datalayer/impl/ldap/ExternalLdapConfigTest.java @@ -31,6 +31,7 @@ import org.forgerock.openam.cts.impl.CTSDataLayerConfiguration; import org.forgerock.openam.ldap.LDAPURL; import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PowerMockIgnore; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.testng.PowerMockTestCase; import org.testng.annotations.BeforeMethod; @@ -41,6 +42,7 @@ import com.sun.identity.shared.debug.Debug; @PrepareForTest({ SystemProperties.class, WebtopNaming.class }) +@PowerMockIgnore("jdk.internal.reflect.*") public class ExternalLdapConfigTest extends PowerMockTestCase { private Debug debug; diff --git a/openam-federation/OpenFM/src/main/java/com/sun/identity/classloader/MaskingClassLoader.java b/openam-federation/OpenFM/src/main/java/com/sun/identity/classloader/MaskingClassLoader.java index 042a0a3f9d..917b413f90 100644 --- a/openam-federation/OpenFM/src/main/java/com/sun/identity/classloader/MaskingClassLoader.java +++ b/openam-federation/OpenFM/src/main/java/com/sun/identity/classloader/MaskingClassLoader.java @@ -30,11 +30,11 @@ import java.util.Collection; import java.util.Enumeration; +import java.util.NoSuchElementException; import java.util.Vector; import java.io.IOException; import java.net.URL; import java.net.MalformedURLException; -import sun.misc.CompoundEnumeration; /** * {@link ClassLoader} that masks a specified set of classes @@ -252,4 +252,37 @@ public synchronized String toString() { return "com.sun.identity.classloader.MaskingClassLoader : Super is : " + super.toString(); } + + static class CompoundEnumeration implements Enumeration { + private final Enumeration[] enums; + private int index; + + public CompoundEnumeration(Enumeration[] enums) { + this.enums = enums; + } + + private boolean next() { + while(this.index < this.enums.length) { + if (this.enums[this.index] != null && this.enums[this.index].hasMoreElements()) { + return true; + } + + ++this.index; + } + + return false; + } + + public boolean hasMoreElements() { + return this.next(); + } + + public E nextElement() { + if (!this.next()) { + throw new NoSuchElementException(); + } else { + return this.enums[this.index].nextElement(); + } + } + } } diff --git a/openam-federation/openam-federation-library/src/main/java/com/sun/identity/sae/api/SecureAttrs.java b/openam-federation/openam-federation-library/src/main/java/com/sun/identity/sae/api/SecureAttrs.java index 735f7277df..8e39ea58ea 100644 --- a/openam-federation/openam-federation-library/src/main/java/com/sun/identity/sae/api/SecureAttrs.java +++ b/openam-federation/openam-federation-library/src/main/java/com/sun/identity/sae/api/SecureAttrs.java @@ -37,7 +37,6 @@ import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; -import sun.misc.CharacterEncoder; import com.sun.identity.shared.encode.Base64; import com.sun.identity.security.DataEncryptor; import java.security.*; diff --git a/openam-scripting/src/main/java/org/forgerock/openam/scripting/ThreadPoolScriptEvaluator.java b/openam-scripting/src/main/java/org/forgerock/openam/scripting/ThreadPoolScriptEvaluator.java index bb60c8caa7..b6421c311c 100644 --- a/openam-scripting/src/main/java/org/forgerock/openam/scripting/ThreadPoolScriptEvaluator.java +++ b/openam-scripting/src/main/java/org/forgerock/openam/scripting/ThreadPoolScriptEvaluator.java @@ -172,8 +172,8 @@ public void onConfigurationChange(final ScriptEngineConfiguration newConfigurati newConfiguration.getThreadPoolIdleTimeoutSeconds()); } - delegateConfigurator.setCorePoolSize(newConfiguration.getThreadPoolCoreSize()); delegateConfigurator.setMaximumPoolSize(newConfiguration.getThreadPoolMaxSize()); + delegateConfigurator.setCorePoolSize(newConfiguration.getThreadPoolCoreSize()); delegateConfigurator.setKeepAliveTime(newConfiguration.getThreadPoolIdleTimeoutSeconds(), TimeUnit.SECONDS); } diff --git a/pom.xml b/pom.xml index 4f6ddb0733..b6fce70c7d 100644 --- a/pom.xml +++ b/pom.xml @@ -181,6 +181,7 @@ maven-javadoc-plugin false + 8 utf-8 utf-8 ${maven.compiler.source} @@ -271,7 +272,7 @@ jdk8.options - [1.8,) + 1.8 @@ -281,6 +282,20 @@ -J-Xms2g -J-Xmx2g + + + jdk11.options + + [11,) + + + + -Xdoclint:none + + -Xmx1g --add-exports java.base/jdk.internal.ref=ALL-UNNAMED + + -J-Xms2g -J-Xmx2g + release-sign-artifacts @@ -2037,6 +2052,7 @@ + 8 none