From af4d23e13cec54e80837272f43991a7888a5b650 Mon Sep 17 00:00:00 2001 From: Valera V Harseko Date: Fri, 18 Sep 2026 17:50:56 +0300 Subject: [PATCH 1/2] Add the missing @Override annotations flagged by CodeQL Every annotated method is verified by the compiler to override or implement a supertype method. One commented-out @Override in ConfigMeta is restored. Resolves the 329 java/missing-override-annotation CodeQL alerts. --- .../openidm/audit/impl/AuditLogFilters.java | 3 +++ .../auth/PassthroughAuthenticator.java | 3 ++- .../auth/ResourceQueryAuthenticator.java | 3 ++- .../openidm/auth/StaticAuthenticator.java | 2 ++ .../auth/modules/ClientCertAuthModule.java | 3 ++- .../auth/modules/DelegatedAuthModule.java | 2 ++ .../auth/modules/MappingRoleCalculator.java | 5 +++++ .../auth/modules/PropertyRoleCalculator.java | 2 ++ .../TrustedRequestAttributeAuthModule.java | 2 ++ .../openidm/cluster/ClusterManager.java | 4 +++- .../installer/DelayedConfigHandler.java | 3 +++ .../config/installer/JSONConfigInstaller.java | 12 +++++++++++ .../config/installer/PrettyIndenter.java | 4 ++++ .../config/manage/ConfigObjectService.java | 1 + .../openidm/config/persistence/Activator.java | 4 +++- .../persistence/RepoPersistenceManager.java | 8 ++++++++ .../metadata/impl/ProviderTracker.java | 5 ++++- .../openidm/internal/metadata/ConfigMeta.java | 3 ++- .../CollectionRelationshipProvider.java | 2 ++ .../managed/ForwardRelationshipValidator.java | 2 ++ .../openidm/managed/ManagedObjectSet.java | 1 + .../openidm/managed/RelationshipProvider.java | 1 + .../managed/ReverseRelationshipValidator.java | 3 +++ .../SingletonRelationshipProvider.java | 2 ++ .../sync/impl/ExplicitSyncOperation.java | 2 ++ .../openidm/sync/impl/ReconTask.java | 2 ++ .../openidm/sync/impl/ResultIterable.java | 2 ++ .../sync/impl/SourceSyncOperation.java | 2 ++ .../sync/impl/SynchronizationService.java | 3 ++- .../sync/impl/TargetSyncOperation.java | 3 +++ .../customendpoint/impl/EndpointsService.java | 3 ++- .../impl/metadata/ConfigMeta.java | 1 + .../config/enhanced/JSONEnhancedConfig.java | 3 ++- .../external/email/metadata/ConfigMeta.java | 1 + .../openidm/info/impl/InfoService.java | 3 ++- .../openidm/info/metadata/ConfigMeta.java | 1 + .../upgrade/ComparableVersion.java | 16 +++++++++++++++ .../upgrade/UpdateManagerImpl.java | 3 ++- .../openidm/policy/PolicyService.java | 3 ++- .../openidm/policy/metadata/ConfigMeta.java | 1 + .../openicf/commons/ConnectorUtil.java | 2 ++ .../impl/ConnectorInfoProviderService.java | 13 ++++++++++++ .../openicf/impl/ExceptionHelper.java | 6 ++++++ .../impl/ObjectClassRequestHandler.java | 8 ++++++++ .../impl/ObjectClassResourceProvider.java | 2 ++ .../impl/OpenICFProvisionerService.java | 7 +++++++ .../openicf/impl/OperationHelperImpl.java | 6 ++++++ .../syncfailure/DeadLetterQueueHandler.java | 2 ++ .../InfiniteRetrySyncFailureHandler.java | 2 ++ .../syncfailure/LoggedIgnoreHandler.java | 2 ++ .../syncfailure/NullSyncFailureHandler.java | 2 ++ .../ScriptedSyncFailureHandler.java | 2 ++ .../SimpleRetrySyncFailureHandler.java | 2 ++ .../SyncFailureHandlerFactoryImpl.java | 3 ++- .../provisioner/SimpleSystemIdentifier.java | 2 ++ .../impl/SystemObjectSetService.java | 3 ++- .../openidm/quartz/impl/RepoJobStore.java | 2 ++ .../quartz/impl/SchedulerServiceJob.java | 2 ++ .../jdbc/impl/BoneCPDataSourceFactory.java | 3 +++ .../jdbc/impl/HikariCPDataSourceFactory.java | 2 ++ .../impl/NonPoolingDataSourceFactory.java | 2 ++ .../openidm/repo/jdbc/impl/Activator.java | 3 +++ .../openidm/repo/jdbc/impl/ColumnMapping.java | 2 ++ .../repo/jdbc/impl/DB2TableHandler.java | 2 ++ .../jdbc/impl/DefaultSQLExceptionHandler.java | 2 ++ .../jdbc/impl/ExplicitResultSetMapper.java | 2 ++ .../repo/jdbc/impl/JDBCRepoService.java | 3 ++- .../repo/jdbc/impl/MappedTableHandler.java | 2 ++ .../repo/jdbc/impl/MySQLExceptionHandler.java | 1 + .../jdbc/impl/PostgreSQLTableHandler.java | 1 + .../openidm/repo/jdbc/impl/SQLBuilder.java | 4 ++++ .../openidm/repo/orientdb/impl/Activator.java | 3 +++ .../repo/orientdb/impl/query/Commands.java | 3 +++ .../repo/orientdb/impl/query/Queries.java | 3 +++ .../repo/orientdb/metadata/ConfigMeta.java | 1 + .../forgerock/openidm/repo/util/Clauses.java | 10 ++++++++++ .../util/StringSQLQueryFilterVisitor.java | 1 + .../openidm/router/RouterRegistryImpl.java | 8 ++++++++ .../openidm/router/metadata/ConfigMeta.java | 1 + .../openidm/scheduler/MemoryScheduler.java | 2 ++ .../openidm/scheduler/PersistedScheduler.java | 2 ++ .../script/AbstractScriptedService.java | 10 +++++++++- .../script/ScriptedRequestHandler.java | 7 +++++++ .../script/impl/ScriptRegistryService.java | 20 ++++++++++++++++++- .../script/impl/metadata/ConfigMeta.java | 1 + .../internal/JettySecurityConfigurator.java | 4 +++- .../impl/ServletRegistrationSingleton.java | 3 +++ .../openidm/shell/CustomCommandScope.java | 1 + .../openidm/shell/felixgogo/Activator.java | 7 +++++++ .../openidm/shell/impl/BasicCommandScope.java | 4 ++++ .../openidm/shell/impl/CommandProxy.java | 3 +++ .../openidm/shell/impl/LocalCommandScope.java | 4 ++++ .../shell/impl/RemoteCommandScope.java | 3 +++ .../openidm/shell/impl/UpdateCommand.java | 3 +++ .../smartevent/core/BlockingPublisher.java | 3 +++ .../smartevent/core/DisabledEventEntry.java | 3 +++ .../smartevent/core/DisabledPublisher.java | 3 +++ .../core/DisruptorReferringEventEntry.java | 2 ++ .../core/DisruptorReferringPublisher.java | 3 +++ .../core/DisruptorShortEventEntry.java | 4 ++++ .../core/DisruptorShortPublisher.java | 3 +++ .../smartevent/core/EventEntryImpl.java | 3 +++ .../smartevent/core/MonitoringInfo.java | 2 ++ .../smartevent/core/StatisticsHandler.java | 9 +++++++++ .../core/FrameworkPropertyAccessor.java | 2 ++ .../openidm/core/IdentityServer.java | 1 + .../openidm/core/ServicePropertyAccessor.java | 2 ++ .../openidm/core/SystemPropertyAccessor.java | 2 ++ .../openidm/core/internal/Activator.java | 3 +++ .../openidm/osgi/ServiceTrackerNotifier.java | 4 ++++ .../forgerock/openidm/osgi/ServiceUtil.java | 3 +++ .../org/forgerock/openidm/util/JsonUtil.java | 2 ++ .../openidm/util/NaturalOrderComparator.java | 2 ++ .../activiti/impl/ActivitiResource.java | 3 +++ .../workflow/activiti/impl/JsonGroup.java | 7 +++++++ .../workflow/activiti/impl/JsonUser.java | 11 ++++++++++ .../workflow/activiti/impl/JsonValueType.java | 6 ++++++ .../activiti/impl/SharedIdentityService.java | 18 +++++++++++++++++ .../activiti/metadata/ConfigMeta.java | 1 + .../src/main/java/SimpleConsumer.java | 3 ++- 120 files changed, 415 insertions(+), 20 deletions(-) diff --git a/openidm-audit/src/main/java/org/forgerock/openidm/audit/impl/AuditLogFilters.java b/openidm-audit/src/main/java/org/forgerock/openidm/audit/impl/AuditLogFilters.java index e85ddeea43..f4c9a3edca 100644 --- a/openidm-audit/src/main/java/org/forgerock/openidm/audit/impl/AuditLogFilters.java +++ b/openidm-audit/src/main/java/org/forgerock/openidm/audit/impl/AuditLogFilters.java @@ -12,6 +12,7 @@ * information: "Portions Copyright [year] [name of copyright owner]". * * Copyright 2014-2016 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.audit.impl; @@ -121,6 +122,7 @@ private static class ActionFilter> extends FieldValueFilter private ActionFilter(final Class clazz, final Set actionsToLog) { super(FIELD_ACTION, actionsToLog, new JsonValueObjectConverter() { + @Override public A apply(JsonValue value) throws JsonValueException { return value.as(enumConstant(clazz)); } @@ -154,6 +156,7 @@ private static class OperationFilter> extends FieldValueFilter private OperationFilter(final Class clazz, final Set actionsToLog) { super(OPERATION, actionsToLog, new JsonValueObjectConverter() { + @Override public A apply(JsonValue value) throws JsonValueException { return value.as(enumConstant(clazz)); } diff --git a/openidm-authnfilter/src/main/java/org/forgerock/openidm/auth/PassthroughAuthenticator.java b/openidm-authnfilter/src/main/java/org/forgerock/openidm/auth/PassthroughAuthenticator.java index 8443c2c09c..54a1fa7ed6 100644 --- a/openidm-authnfilter/src/main/java/org/forgerock/openidm/auth/PassthroughAuthenticator.java +++ b/openidm-authnfilter/src/main/java/org/forgerock/openidm/auth/PassthroughAuthenticator.java @@ -12,7 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2013-2015 ForgeRock AS. - * Portions copyright 2025 3A Systems LLC. + * Portions copyright 2025-2026 3A Systems LLC. */ package org.forgerock.openidm.auth; @@ -60,6 +60,7 @@ public PassthroughAuthenticator(Provider connectionFactoryPro * @return true if authentication is successful. * @throws ResourceException if there is a problem whilst attempting to authenticate the user. */ + @Override public AuthenticatorResult authenticate(String username, String password, Context context) throws ResourceException { final ConnectionFactory connectionFactory = connectionFactoryProvider.get(); diff --git a/openidm-authnfilter/src/main/java/org/forgerock/openidm/auth/ResourceQueryAuthenticator.java b/openidm-authnfilter/src/main/java/org/forgerock/openidm/auth/ResourceQueryAuthenticator.java index 956b4831a3..43cd31e29f 100644 --- a/openidm-authnfilter/src/main/java/org/forgerock/openidm/auth/ResourceQueryAuthenticator.java +++ b/openidm-authnfilter/src/main/java/org/forgerock/openidm/auth/ResourceQueryAuthenticator.java @@ -12,7 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2011-2015 ForgeRock AS. - * Portions copyright 2024-2025 3A Systems LLC. + * Portions copyright 2024-2026 3A Systems LLC. */ package org.forgerock.openidm.auth; @@ -91,6 +91,7 @@ public ResourceQueryAuthenticator(Provider cryptoService, Provide * @param context the Context to use * @return True if authentication is successful, otherwise false. */ + @Override public AuthenticatorResult authenticate(String username, String password, Context context) throws ResourceException { Reject.ifNull(username, "Provided username was null"); diff --git a/openidm-authnfilter/src/main/java/org/forgerock/openidm/auth/StaticAuthenticator.java b/openidm-authnfilter/src/main/java/org/forgerock/openidm/auth/StaticAuthenticator.java index bbc1d318a2..3f434f3f69 100644 --- a/openidm-authnfilter/src/main/java/org/forgerock/openidm/auth/StaticAuthenticator.java +++ b/openidm-authnfilter/src/main/java/org/forgerock/openidm/auth/StaticAuthenticator.java @@ -12,6 +12,7 @@ * information: "Portions Copyrighted [year] [name of copyright owner]". * * Copyright 2015 ForgeRock AS. All rights reserved. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.auth; @@ -71,6 +72,7 @@ public StaticAuthenticator(String username, String password) { * @param context the Context to use * @return True if authentication is successful, otherwise false. */ + @Override public AuthenticatorResult authenticate(String username, String password, Context context) throws ResourceException { Reject.ifNull(username, "Provided username was null"); diff --git a/openidm-authnfilter/src/main/java/org/forgerock/openidm/auth/modules/ClientCertAuthModule.java b/openidm-authnfilter/src/main/java/org/forgerock/openidm/auth/modules/ClientCertAuthModule.java index 3750ec830a..509f13c188 100644 --- a/openidm-authnfilter/src/main/java/org/forgerock/openidm/auth/modules/ClientCertAuthModule.java +++ b/openidm-authnfilter/src/main/java/org/forgerock/openidm/auth/modules/ClientCertAuthModule.java @@ -12,7 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2014-2016 ForgeRock AS. - * Portions copyright 2025 3A Systems LLC. + * Portions copyright 2025-2026 3A Systems LLC. */ package org.forgerock.openidm.auth.modules; @@ -135,6 +135,7 @@ public Promise validateRequest(MessageInfoC if (authenticateUsingClientCert(messageInfo, req, securityContextMapper)) { final String authcid = securityContextMapper.getAuthenticationId(); clientSubject.getPrincipals().add(new Principal() { + @Override public String getName() { return authcid; } diff --git a/openidm-authnfilter/src/main/java/org/forgerock/openidm/auth/modules/DelegatedAuthModule.java b/openidm-authnfilter/src/main/java/org/forgerock/openidm/auth/modules/DelegatedAuthModule.java index 18f9350d1f..b6847ed1a1 100644 --- a/openidm-authnfilter/src/main/java/org/forgerock/openidm/auth/modules/DelegatedAuthModule.java +++ b/openidm-authnfilter/src/main/java/org/forgerock/openidm/auth/modules/DelegatedAuthModule.java @@ -12,6 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2013-2016 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.auth.modules; @@ -145,6 +146,7 @@ public Promise validateRequest(MessageInfoC final String authcid = securityContextMapper.getAuthenticationId(); clientSubject.getPrincipals().add(new Principal() { + @Override public String getName() { return authcid; } diff --git a/openidm-authnfilter/src/main/java/org/forgerock/openidm/auth/modules/MappingRoleCalculator.java b/openidm-authnfilter/src/main/java/org/forgerock/openidm/auth/modules/MappingRoleCalculator.java index fdb8c1d54a..1cc9543718 100644 --- a/openidm-authnfilter/src/main/java/org/forgerock/openidm/auth/modules/MappingRoleCalculator.java +++ b/openidm-authnfilter/src/main/java/org/forgerock/openidm/auth/modules/MappingRoleCalculator.java @@ -12,6 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2014-2016 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.auth.modules; @@ -55,6 +56,7 @@ class MappingRoleCalculator implements RoleCalculator { * @param resource the retrieved resource for the principal. * @return the list of calculated roles */ + @Override public List calculateRoles(String principal, ResourceResponse resource) { List roles = new ArrayList<>(); @@ -100,6 +102,7 @@ private boolean isMemberOfRoleGroups(List groups, List groupMemb enum GroupComparison { /* case-sensitive equality */ equals { + @Override public boolean compare(final String groupA, final String groupB) { return groupA.equals(groupB); } @@ -107,6 +110,7 @@ public boolean compare(final String groupA, final String groupB) { /* case-insensitive equality */ caseInsensitive { + @Override public boolean compare(final String groupA, final String groupB) { return groupA.equalsIgnoreCase(groupB); } @@ -114,6 +118,7 @@ public boolean compare(final String groupA, final String groupB) { /* LDAP case- and whitespace-insensitive matching */ ldap { + @Override public boolean compare(final String groupA, final String groupB) { // ldap is case (and to some degree whitespace) insensitive, so we have to be too: return groupA.replaceAll(LDAP_WHITESPACE, "$1").equalsIgnoreCase(groupB.replaceAll(LDAP_WHITESPACE, "$1")); diff --git a/openidm-authnfilter/src/main/java/org/forgerock/openidm/auth/modules/PropertyRoleCalculator.java b/openidm-authnfilter/src/main/java/org/forgerock/openidm/auth/modules/PropertyRoleCalculator.java index f33eee1c3b..efcc6728b5 100644 --- a/openidm-authnfilter/src/main/java/org/forgerock/openidm/auth/modules/PropertyRoleCalculator.java +++ b/openidm-authnfilter/src/main/java/org/forgerock/openidm/auth/modules/PropertyRoleCalculator.java @@ -12,6 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2014-2016 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.auth.modules; @@ -57,6 +58,7 @@ class PropertyRoleCalculator implements RoleCalculator { * @param resource the retrieved resource for the principal. * @return a list of calculated roles */ + @Override public List calculateRoles(String principal, ResourceResponse resource) { List roles = new ArrayList<>(); diff --git a/openidm-authnfilter/src/main/java/org/forgerock/openidm/auth/modules/TrustedRequestAttributeAuthModule.java b/openidm-authnfilter/src/main/java/org/forgerock/openidm/auth/modules/TrustedRequestAttributeAuthModule.java index 70fef1abd3..f76c1f5238 100644 --- a/openidm-authnfilter/src/main/java/org/forgerock/openidm/auth/modules/TrustedRequestAttributeAuthModule.java +++ b/openidm-authnfilter/src/main/java/org/forgerock/openidm/auth/modules/TrustedRequestAttributeAuthModule.java @@ -12,6 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2015-2016 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.auth.modules; @@ -101,6 +102,7 @@ public Promise validateRequest(MessageInfoC final String authenticationId = attributes.get(authenticationIdAttribute).asString(); securityContextMapper.setAuthenticationId(authenticationId); clientSubject.getPrincipals().add(new Principal() { + @Override public String getName() { return authenticationId; } diff --git a/openidm-cluster/src/main/java/org/forgerock/openidm/cluster/ClusterManager.java b/openidm-cluster/src/main/java/org/forgerock/openidm/cluster/ClusterManager.java index 060eccc0e0..57b5a5fa8b 100644 --- a/openidm-cluster/src/main/java/org/forgerock/openidm/cluster/ClusterManager.java +++ b/openidm-cluster/src/main/java/org/forgerock/openidm/cluster/ClusterManager.java @@ -12,7 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Portions copyright 2013-2016 ForgeRock AS. - * Portions Copyrighted 2024 3A Systems LLC. + * Portions Copyrighted 2024-2026 3A Systems LLC. */ package org.forgerock.openidm.cluster; @@ -360,6 +360,7 @@ private Map getInstanceMap(JsonValue instanceValue) { return instanceInfo; } + @Override public void renewRecoveryLease(String instanceId) { synchronized (repoLock) { try { @@ -770,6 +771,7 @@ public void startup() { running = true; logger.info("Starting the cluster manager thread"); handler = scheduler.scheduleAtFixedRate(new Runnable() { + @Override public void run() { try { // Check in this instance diff --git a/openidm-config/src/main/java/org/forgerock/openidm/config/installer/DelayedConfigHandler.java b/openidm-config/src/main/java/org/forgerock/openidm/config/installer/DelayedConfigHandler.java index 420a52164d..981a99cc0c 100644 --- a/openidm-config/src/main/java/org/forgerock/openidm/config/installer/DelayedConfigHandler.java +++ b/openidm-config/src/main/java/org/forgerock/openidm/config/installer/DelayedConfigHandler.java @@ -2,6 +2,7 @@ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright 2011-2015 ForgeRock AS. All Rights Reserved + * Portions Copyright 2026 3A Systems, LLC. * * The contents of this file are subject to the terms * of the Common Development and Distribution License @@ -49,6 +50,7 @@ public class DelayedConfigHandler implements ProviderListener { /** * {@inheritDoc} */ + @Override public void init(ConfigCrypto configCrypto) { this.configCrypto = configCrypto; } @@ -65,6 +67,7 @@ public void addConfig(DelayedConfig config) { /** * Detects changed meta data providers */ + @Override public void addedProvider(Object originId, MetaDataProvider provider) { for (DelayedConfig config : delayedConfigs) { if (configCrypto != null) { diff --git a/openidm-config/src/main/java/org/forgerock/openidm/config/installer/JSONConfigInstaller.java b/openidm-config/src/main/java/org/forgerock/openidm/config/installer/JSONConfigInstaller.java index 3048ae33ce..c068e4f0c2 100644 --- a/openidm-config/src/main/java/org/forgerock/openidm/config/installer/JSONConfigInstaller.java +++ b/openidm-config/src/main/java/org/forgerock/openidm/config/installer/JSONConfigInstaller.java @@ -12,6 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2011-2016 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.config.installer; @@ -101,6 +102,7 @@ public void stop(BundleContext ctx) { logger.debug("Stopped JSON configuration listener"); } + @Override public boolean canHandle(File artifact) { if (this.configAdmin == null) { // See if the configuration admin service is available now @@ -118,21 +120,25 @@ public boolean canHandle(File artifact) { } } + @Override public void install(File artifact) throws Exception { logger.debug("Artifact install {}", artifact); setConfig(artifact); } + @Override public void update(File artifact) throws Exception { logger.debug("Artifact update {}", artifact); setConfig(artifact); } + @Override public void uninstall(File artifact) throws Exception { logger.debug("Artifact uninstall {}", artifact); deleteConfig(artifact); } + @Override public void configurationEvent(ConfigurationEvent configurationEvent) { logger.debug("ConfigurationEvent {}, pid: {}, factoryPid: {}, type: {}", configurationEvent, configurationEvent.getPid(), configurationEvent.getFactoryPid(), @@ -500,16 +506,19 @@ public Iterator> iterator() { private U key; + @Override public boolean hasNext() { return e.hasMoreElements(); } + @Override public Entry next() { key = e.nextElement(); return new KeyEntry(key); } + @Override public void remove() { if (key == null) { @@ -541,14 +550,17 @@ class KeyEntry implements Map.Entry { this.key = key; } + @Override public U getKey() { return key; } + @Override public V getValue() { return dict.get(key); } + @Override public V setValue(V value) { return DictionaryAsMap.this.put(key, value); } diff --git a/openidm-config/src/main/java/org/forgerock/openidm/config/installer/PrettyIndenter.java b/openidm-config/src/main/java/org/forgerock/openidm/config/installer/PrettyIndenter.java index 54d77f91a5..04611cf3b1 100644 --- a/openidm-config/src/main/java/org/forgerock/openidm/config/installer/PrettyIndenter.java +++ b/openidm-config/src/main/java/org/forgerock/openidm/config/installer/PrettyIndenter.java @@ -15,6 +15,8 @@ * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. + * + * Portions Copyright 2026 3A Systems, LLC. */ /** * Plug-in based on the AP 2.0 licensed Jackson Indenter @@ -69,8 +71,10 @@ public void setIndentSpaces(int noOfSpaces) { this.noOfSpaces = noOfSpaces; } + @Override public boolean isInline() { return false; } + @Override public void writeIndentation(JsonGenerator jg, int level) throws IOException, JsonGenerationException { jg.writeRaw(SYSTEM_LINE_SEPARATOR); diff --git a/openidm-config/src/main/java/org/forgerock/openidm/config/manage/ConfigObjectService.java b/openidm-config/src/main/java/org/forgerock/openidm/config/manage/ConfigObjectService.java index 509483bf68..204c25249c 100644 --- a/openidm-config/src/main/java/org/forgerock/openidm/config/manage/ConfigObjectService.java +++ b/openidm-config/src/main/java/org/forgerock/openidm/config/manage/ConfigObjectService.java @@ -1112,6 +1112,7 @@ String getPidOrFactoryPid() { : ConfigBootstrapHelper.qualifyPid(pid); } + @Override public String toString() { return isFactoryConfig() ? (factoryPid + "/" + instanceAlias) diff --git a/openidm-config/src/main/java/org/forgerock/openidm/config/persistence/Activator.java b/openidm-config/src/main/java/org/forgerock/openidm/config/persistence/Activator.java index 590b256544..c5fb301422 100644 --- a/openidm-config/src/main/java/org/forgerock/openidm/config/persistence/Activator.java +++ b/openidm-config/src/main/java/org/forgerock/openidm/config/persistence/Activator.java @@ -21,7 +21,7 @@ * your own identifying information: * "Portions Copyrighted [year] [name of copyright owner]" * - * Portions Copyrighted 2024 3A Systems LLC. + * Portions Copyrighted 2024-2026 3A Systems LLC. */ package org.forgerock.openidm.config.persistence; @@ -49,6 +49,7 @@ public class Activator implements BundleActivator { JSONConfigInstaller installer; + @Override public void start(BundleContext context) { logger.debug("Config Bundle starting"); // Re-direct OSGi logging to the same openidm log @@ -84,6 +85,7 @@ public void start(BundleContext context) { logger.info("OpenIDM is starting from {}", IdentityServer.getInstance().getServerRoot()); } + @Override public void stop(BundleContext context) { if (installer != null) { installer.stop(context); diff --git a/openidm-config/src/main/java/org/forgerock/openidm/config/persistence/RepoPersistenceManager.java b/openidm-config/src/main/java/org/forgerock/openidm/config/persistence/RepoPersistenceManager.java index 0396c70326..725a6c68a8 100644 --- a/openidm-config/src/main/java/org/forgerock/openidm/config/persistence/RepoPersistenceManager.java +++ b/openidm-config/src/main/java/org/forgerock/openidm/config/persistence/RepoPersistenceManager.java @@ -2,6 +2,7 @@ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright 2011-2016 ForgeRock AS. All rights reserved. + * Portions Copyright 2026 3A Systems, LLC. * * The contents of this file are subject to the terms * of the Common Development and Distribution License @@ -105,6 +106,7 @@ public RepoPersistenceManager(final BundleContext ctx) { /** * Handle the system notifying that it's ready to install configs. */ + @Override public void checkReady() throws BootstrapFailure { if (requireRepository) { ServiceTracker repoTracker = null; @@ -152,6 +154,7 @@ private boolean isReady(int retries) { * * @param pid The identifier for the dictionary to test. */ + @Override public boolean exists(String pid) { logger.debug("Config exists call for {}", pid); @@ -197,6 +200,7 @@ public boolean exists(String pid) { * exists for the given identifier. */ @SuppressWarnings("rawtypes") + @Override public Dictionary load(String pid) throws IOException { logger.debug("Config load call for {}", pid); Dictionary result = null; @@ -255,6 +259,7 @@ public Dictionary load(String pid) throws IOException { * @throws IOException If an error occurrs getting the dictionaries. */ @SuppressWarnings("rawtypes") + @Override public Enumeration getDictionaries() throws IOException { if (isReady(5)) { logger.debug("Config getDictionaries call from repository"); @@ -299,6 +304,7 @@ public boolean hasMoreElements() { return hasMore; } + @Override public Object nextElement() { try { if (memIter.hasNext()) { @@ -330,6 +336,7 @@ public Object nextElement() { * {@link #exists(String) exists(pid} returns false. */ @SuppressWarnings("rawtypes") + @Override public void store(String pid, Dictionary properties) throws IOException { logger.debug("Store call for {} {}", pid, properties); @@ -420,6 +427,7 @@ public void store(String pid, Dictionary properties) throws IOException { * exception must not be thrown if no dictionary with the given * identifier exists. */ + @Override public void delete(String pid) throws IOException { logger.debug("delete call for {}", pid); Object removed = tempStore.remove(pid); diff --git a/openidm-config/src/main/java/org/forgerock/openidm/metadata/impl/ProviderTracker.java b/openidm-config/src/main/java/org/forgerock/openidm/metadata/impl/ProviderTracker.java index e96b29d4c3..c60fac64a8 100644 --- a/openidm-config/src/main/java/org/forgerock/openidm/metadata/impl/ProviderTracker.java +++ b/openidm-config/src/main/java/org/forgerock/openidm/metadata/impl/ProviderTracker.java @@ -21,7 +21,7 @@ * your own identifying information: * "Portions Copyrighted [year] [name of copyright owner]" * - * Portions Copyrighted 2024 3A Systems LLC. + * Portions Copyrighted 2024-2026 3A Systems LLC. */ package org.forgerock.openidm.metadata.impl; @@ -138,6 +138,7 @@ private ServiceTracker initServiceTracker(Bu return tracker; } + @Override public void addedService(ServiceReference reference, MetaDataProvider service) { String pid = Long.valueOf(reference.getBundle().getBundleId()).toString(); // Instantiate and set the provider callback @@ -146,11 +147,13 @@ public void addedService(ServiceReference reference, MetaDataP addProvider(pid, service, true); } + @Override public void removedService(ServiceReference reference, MetaDataProvider service) { String pid = Long.valueOf(reference.getBundle().getBundleId()).toString(); providers.remove(pid); } + @Override public void modifiedService(ServiceReference reference, MetaDataProvider service) { String pid = Long.valueOf(reference.getBundle().getBundleId()).toString(); modifiedProvider(pid, service, true); diff --git a/openidm-core/src/main/java/org/forgerock/openidm/internal/metadata/ConfigMeta.java b/openidm-core/src/main/java/org/forgerock/openidm/internal/metadata/ConfigMeta.java index 1c87c35b92..8ecddb09c4 100644 --- a/openidm-core/src/main/java/org/forgerock/openidm/internal/metadata/ConfigMeta.java +++ b/openidm-core/src/main/java/org/forgerock/openidm/internal/metadata/ConfigMeta.java @@ -47,6 +47,7 @@ public class ConfigMeta implements MetaDataProvider { * JsonPointer("/")); properties = Collections.unmodifiableList(p); } */ + @Override public List getPropertiesToEncrypt(String pidOrFactory, String instanceAlias, JsonValue config) throws WaitForMetaData, NotConfiguration { if (ManagedObjectService.PID.equalsIgnoreCase(pidOrFactory)) { @@ -56,7 +57,7 @@ public List getPropertiesToEncrypt(String pidOrFactory, String inst return null; } -// @Override + @Override public void setCallback(MetaDataProviderCallback callback) { // This instance won't be updated } diff --git a/openidm-core/src/main/java/org/forgerock/openidm/managed/CollectionRelationshipProvider.java b/openidm-core/src/main/java/org/forgerock/openidm/managed/CollectionRelationshipProvider.java index 85e87e6eb0..87cb82ebff 100644 --- a/openidm-core/src/main/java/org/forgerock/openidm/managed/CollectionRelationshipProvider.java +++ b/openidm-core/src/main/java/org/forgerock/openidm/managed/CollectionRelationshipProvider.java @@ -12,6 +12,7 @@  * information: "Portions copyright [year] [name of copyright owner]".  *  * Copyright 2015-2016 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC.  */ package org.forgerock.openidm.managed; @@ -578,6 +579,7 @@ private JsonPointer getRelationshipPointer(Boolean isReverse, JsonPointer field) * @throws BadRequestException when the relationship isn't valid, ResourceException otherwise. * @see RelationshipValidator#validateRelationship(JsonValue, ResourcePath, Context, boolean) */ + @Override public void validateRelationshipField(Context context, JsonValue oldValue, JsonValue newValue, ResourcePath referrerId, boolean performDuplicateAssignmentCheck) throws ResourceException { /* diff --git a/openidm-core/src/main/java/org/forgerock/openidm/managed/ForwardRelationshipValidator.java b/openidm-core/src/main/java/org/forgerock/openidm/managed/ForwardRelationshipValidator.java index bca99b0f8c..87064b549d 100644 --- a/openidm-core/src/main/java/org/forgerock/openidm/managed/ForwardRelationshipValidator.java +++ b/openidm-core/src/main/java/org/forgerock/openidm/managed/ForwardRelationshipValidator.java @@ -12,6 +12,7 @@  * information: "Portions copyright [year] [name of copyright owner]".  *  * Copyright 2015-2016 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC.  */ package org.forgerock.openidm.managed; @@ -45,6 +46,7 @@ public ForwardRelationshipValidator(RelationshipProvider relationshipProvider) { * @param context the original invocation Context. Needed to query the repo. * @return the constructed read request. */ + @Override protected ReadRequest newValidateRequest(JsonValue relationshipField, Context context) { return Requests.newReadRequest(relationshipField.get(REFERENCE_ID).asString()); } diff --git a/openidm-core/src/main/java/org/forgerock/openidm/managed/ManagedObjectSet.java b/openidm-core/src/main/java/org/forgerock/openidm/managed/ManagedObjectSet.java index 5b392fcab5..80b85aaf0c 100644 --- a/openidm-core/src/main/java/org/forgerock/openidm/managed/ManagedObjectSet.java +++ b/openidm-core/src/main/java/org/forgerock/openidm/managed/ManagedObjectSet.java @@ -544,6 +544,7 @@ private void idRequired(String id) throws ForbiddenException { * @return a {@link ResourceResponse} object representing the updated resource * @throws ResourceException */ + @Override public ResourceResponse update(final Context context, Request request, String resourceId, String rev, JsonValue oldValue, JsonValue newValue, Set relationshipFields, Set alreadyPersistedRelationshipFields) diff --git a/openidm-core/src/main/java/org/forgerock/openidm/managed/RelationshipProvider.java b/openidm-core/src/main/java/org/forgerock/openidm/managed/RelationshipProvider.java index 58f09545cf..bace4d70d7 100644 --- a/openidm-core/src/main/java/org/forgerock/openidm/managed/RelationshipProvider.java +++ b/openidm-core/src/main/java/org/forgerock/openidm/managed/RelationshipProvider.java @@ -607,6 +607,7 @@ private Promise deleteAsync(final Context c * @throws ResourceException * @see SyncReferencedObjectRequestHandler */ + @Override public Promise apply(final ResourceResponse readResponse) throws ResourceException { if (deleteRequest.getRevision() == null) { diff --git a/openidm-core/src/main/java/org/forgerock/openidm/managed/ReverseRelationshipValidator.java b/openidm-core/src/main/java/org/forgerock/openidm/managed/ReverseRelationshipValidator.java index c76f20c31c..f8cc7230e8 100644 --- a/openidm-core/src/main/java/org/forgerock/openidm/managed/ReverseRelationshipValidator.java +++ b/openidm-core/src/main/java/org/forgerock/openidm/managed/ReverseRelationshipValidator.java @@ -12,6 +12,7 @@  * information: "Portions copyright [year] [name of copyright owner]".  *  * Copyright 2015-2016 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC.  */ package org.forgerock.openidm.managed; @@ -113,6 +114,7 @@ public ReverseRelationshipValidator(RelationshipProvider relationshipProvider) { * @param relationshipField the field to validate. * @return the request to invoke for validation. */ + @Override protected ReadRequest newValidateRequest(JsonValue relationshipField, Context context) { final String relationshipRef = relationshipField.get(REFERENCE_ID).asString(); final ReadRequest request = Requests.newReadRequest(relationshipRef); @@ -141,6 +143,7 @@ protected ReadRequest newValidateRequest(JsonValue relationshipField, Context co * existing relationships are specified in the invocation * @throws DuplicateRelationshipException if the relationship is invalid */ + @Override protected void validateSuccessfulReadResponse(Context context, JsonValue relationshipField, ResourcePath referrerId, ResourceResponse resourceResponse, boolean performDuplicateAssignmentCheck) throws ResourceException { final ReverseReferenceType reverseReferenceType = diff --git a/openidm-core/src/main/java/org/forgerock/openidm/managed/SingletonRelationshipProvider.java b/openidm-core/src/main/java/org/forgerock/openidm/managed/SingletonRelationshipProvider.java index c5a7f810b8..84612cc883 100644 --- a/openidm-core/src/main/java/org/forgerock/openidm/managed/SingletonRelationshipProvider.java +++ b/openidm-core/src/main/java/org/forgerock/openidm/managed/SingletonRelationshipProvider.java @@ -12,6 +12,7 @@  * information: "Portions copyright [year] [name of copyright owner]".  *  * Copyright 2015-2016 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC.  */ package org.forgerock.openidm.managed; @@ -316,6 +317,7 @@ public String apply(ResourceResponse value) throws ResourceException { * @throws BadRequestException when the relationship isn't valid, ResourceException otherwise. * @see RelationshipValidator#validateRelationship(JsonValue, ResourcePath, Context, boolean) */ + @Override public void validateRelationshipField(Context context, JsonValue oldValue, JsonValue newValue, ResourcePath referrerId, boolean performDuplicateAssignmentCheck) throws ResourceException { if (oldValue.isNull() && newValue.isNull()) { diff --git a/openidm-core/src/main/java/org/forgerock/openidm/sync/impl/ExplicitSyncOperation.java b/openidm-core/src/main/java/org/forgerock/openidm/sync/impl/ExplicitSyncOperation.java index c9d0079658..4d4ad0f7ed 100644 --- a/openidm-core/src/main/java/org/forgerock/openidm/sync/impl/ExplicitSyncOperation.java +++ b/openidm-core/src/main/java/org/forgerock/openidm/sync/impl/ExplicitSyncOperation.java @@ -12,6 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Portions copyright 2011-2016 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.sync.impl; @@ -32,6 +33,7 @@ class ExplicitSyncOperation extends SyncOperation { super(objectMapping, context); } + @Override protected boolean isSourceToTarget() { //TODO: detect by the source id match return true; diff --git a/openidm-core/src/main/java/org/forgerock/openidm/sync/impl/ReconTask.java b/openidm-core/src/main/java/org/forgerock/openidm/sync/impl/ReconTask.java index 53ec472b5e..2faa2733ee 100644 --- a/openidm-core/src/main/java/org/forgerock/openidm/sync/impl/ReconTask.java +++ b/openidm-core/src/main/java/org/forgerock/openidm/sync/impl/ReconTask.java @@ -12,6 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2012-2016 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.sync.impl; @@ -55,6 +56,7 @@ class ReconTask implements Callable { this.reconById = reconById; } + @Override public Void call() throws SynchronizationException { //TODO I miss the Request Context ObjectSetContext.push(parentContext); diff --git a/openidm-core/src/main/java/org/forgerock/openidm/sync/impl/ResultIterable.java b/openidm-core/src/main/java/org/forgerock/openidm/sync/impl/ResultIterable.java index 60de2a3937..915fe80a7d 100644 --- a/openidm-core/src/main/java/org/forgerock/openidm/sync/impl/ResultIterable.java +++ b/openidm-core/src/main/java/org/forgerock/openidm/sync/impl/ResultIterable.java @@ -12,6 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Portions copyright 2014-2016 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.sync.impl; @@ -82,6 +83,7 @@ public ResultIterable removeNotMatchingEntries(Collection ids) { * Get an iterator over the ids and optional values * @see java.lang.Iterable#iterator() */ + @Override public Iterator iterator() { return new Iterator() { private final Iterator idsIter; diff --git a/openidm-core/src/main/java/org/forgerock/openidm/sync/impl/SourceSyncOperation.java b/openidm-core/src/main/java/org/forgerock/openidm/sync/impl/SourceSyncOperation.java index a291e941f3..44cb0e797a 100644 --- a/openidm-core/src/main/java/org/forgerock/openidm/sync/impl/SourceSyncOperation.java +++ b/openidm-core/src/main/java/org/forgerock/openidm/sync/impl/SourceSyncOperation.java @@ -12,6 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Portions copyright 2011-2016 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.sync.impl; @@ -107,6 +108,7 @@ public JsonValue sync() throws SynchronizationException { } } + @Override protected boolean isSourceToTarget() { return true; } diff --git a/openidm-core/src/main/java/org/forgerock/openidm/sync/impl/SynchronizationService.java b/openidm-core/src/main/java/org/forgerock/openidm/sync/impl/SynchronizationService.java index 8aa3582c2a..aa1a858446 100644 --- a/openidm-core/src/main/java/org/forgerock/openidm/sync/impl/SynchronizationService.java +++ b/openidm-core/src/main/java/org/forgerock/openidm/sync/impl/SynchronizationService.java @@ -12,7 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Portions copyright 2011-2016 ForgeRock AS. - * Portions Copyrighted 2024 3A Systems LLC. + * Portions Copyrighted 2024-2026 3A Systems LLC. */ package org.forgerock.openidm.sync.impl; @@ -187,6 +187,7 @@ private JsonValue syncAllMappings(Context context, SyncAction action, final Stri // mappings that should be synced are those which are enabled and whose // source object set matches the resource container final Predicate thatMatchSource = new Predicate() { + @Override public boolean apply(ObjectMapping objectMapping) { return objectMapping.isSyncEnabled() && objectMapping.isSourceObject(resourceContainer, resourceId); diff --git a/openidm-core/src/main/java/org/forgerock/openidm/sync/impl/TargetSyncOperation.java b/openidm-core/src/main/java/org/forgerock/openidm/sync/impl/TargetSyncOperation.java index e44c6d9395..378f429f1b 100644 --- a/openidm-core/src/main/java/org/forgerock/openidm/sync/impl/TargetSyncOperation.java +++ b/openidm-core/src/main/java/org/forgerock/openidm/sync/impl/TargetSyncOperation.java @@ -12,6 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Portions copyright 2011-2016 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.sync.impl; @@ -70,6 +71,7 @@ public JsonValue sync() throws SynchronizationException { } } + @Override protected boolean isSourceToTarget() { return false; } @@ -80,6 +82,7 @@ public void fromJsonValue(JsonValue params) { linkObject.setLinkQualifier(params.get("linkQualifier").defaultTo(Link.DEFAULT_LINK_QUALIFIER).asString()); } + @Override public JsonValue toJsonValue() throws SynchronizationException { return json(object( field("reconId", reconId), diff --git a/openidm-customendpoint/src/main/java/org/forgerock/openidm/customendpoint/impl/EndpointsService.java b/openidm-customendpoint/src/main/java/org/forgerock/openidm/customendpoint/impl/EndpointsService.java index af5098d720..e5071256be 100644 --- a/openidm-customendpoint/src/main/java/org/forgerock/openidm/customendpoint/impl/EndpointsService.java +++ b/openidm-customendpoint/src/main/java/org/forgerock/openidm/customendpoint/impl/EndpointsService.java @@ -12,7 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2012-2016 ForgeRock AS. - * Portions Copyrighted 2024 3A Systems LLC. + * Portions Copyrighted 2024-2026 3A Systems LLC. */ package org.forgerock.openidm.customendpoint.impl; @@ -108,6 +108,7 @@ private String[] getRouterPrefixes(String factoryPid, JsonValue configuration) { return new String[] { routerPrefix }; } + @Override protected BundleContext getBundleContext() { return context.getBundleContext(); } diff --git a/openidm-customendpoint/src/main/java/org/forgerock/openidm/customendpoint/impl/metadata/ConfigMeta.java b/openidm-customendpoint/src/main/java/org/forgerock/openidm/customendpoint/impl/metadata/ConfigMeta.java index 341bd59b5f..4d078edc78 100644 --- a/openidm-customendpoint/src/main/java/org/forgerock/openidm/customendpoint/impl/metadata/ConfigMeta.java +++ b/openidm-customendpoint/src/main/java/org/forgerock/openidm/customendpoint/impl/metadata/ConfigMeta.java @@ -52,6 +52,7 @@ public class ConfigMeta implements MetaDataProvider { */ final static Logger logger = LoggerFactory.getLogger(ConfigMeta.class); + @Override public List getPropertiesToEncrypt(String pidOrFactory, String instanceAlias, JsonValue config) throws WaitForMetaData { if (EndpointsService.PID.equalsIgnoreCase(pidOrFactory)) { diff --git a/openidm-enhanced-config/src/main/java/org/forgerock/openidm/config/enhanced/JSONEnhancedConfig.java b/openidm-enhanced-config/src/main/java/org/forgerock/openidm/config/enhanced/JSONEnhancedConfig.java index 557dd91842..d15075805c 100644 --- a/openidm-enhanced-config/src/main/java/org/forgerock/openidm/config/enhanced/JSONEnhancedConfig.java +++ b/openidm-enhanced-config/src/main/java/org/forgerock/openidm/config/enhanced/JSONEnhancedConfig.java @@ -12,7 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2011-2016 ForgeRock AS. - * Portions Copyrighted 2024 3A Systems LLC. + * Portions Copyrighted 2024-2026 3A Systems LLC. */ package org.forgerock.openidm.config.enhanced; @@ -79,6 +79,7 @@ public void bindCryptoService(final CryptoService cryptoService) { this.cryptoService = cryptoService; } + @Override public String getConfigurationFactoryPid(ComponentContext compContext) { Object o = compContext.getProperties().get(ServerConstants.CONFIG_FACTORY_PID); if (o instanceof String) { diff --git a/openidm-external-email/src/main/java/org/forgerock/openidm/external/email/metadata/ConfigMeta.java b/openidm-external-email/src/main/java/org/forgerock/openidm/external/email/metadata/ConfigMeta.java index 73cbe90d68..7db48adbcd 100644 --- a/openidm-external-email/src/main/java/org/forgerock/openidm/external/email/metadata/ConfigMeta.java +++ b/openidm-external-email/src/main/java/org/forgerock/openidm/external/email/metadata/ConfigMeta.java @@ -56,6 +56,7 @@ public ConfigMeta() { propertiesToEncrypt.put(EmailServiceImpl.PID, props); } + @Override public List getPropertiesToEncrypt(String pidOrFactory, String instanceAlias, JsonValue config) { if (propertiesToEncrypt.containsKey(pidOrFactory)) { return propertiesToEncrypt.get(pidOrFactory); diff --git a/openidm-infoservice/src/main/java/org/forgerock/openidm/info/impl/InfoService.java b/openidm-infoservice/src/main/java/org/forgerock/openidm/info/impl/InfoService.java index 86a77ca884..e3e02c4bec 100644 --- a/openidm-infoservice/src/main/java/org/forgerock/openidm/info/impl/InfoService.java +++ b/openidm-infoservice/src/main/java/org/forgerock/openidm/info/impl/InfoService.java @@ -12,7 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2012-2016 ForgeRock AS. - * Portions Copyrighted 2024 3A Systems LLC. + * Portions Copyrighted 2024-2026 3A Systems LLC. */ package org.forgerock.openidm.info.impl; @@ -116,6 +116,7 @@ protected void deactivate(ComponentContext context) { logger.info("OpenIDM Info Service component is deactivated."); } + @Override protected BundleContext getBundleContext() { return context.getBundleContext(); } diff --git a/openidm-infoservice/src/main/java/org/forgerock/openidm/info/metadata/ConfigMeta.java b/openidm-infoservice/src/main/java/org/forgerock/openidm/info/metadata/ConfigMeta.java index 2d73e37a15..249a51a71d 100644 --- a/openidm-infoservice/src/main/java/org/forgerock/openidm/info/metadata/ConfigMeta.java +++ b/openidm-infoservice/src/main/java/org/forgerock/openidm/info/metadata/ConfigMeta.java @@ -50,6 +50,7 @@ public class ConfigMeta implements MetaDataProvider { */ final static Logger logger = LoggerFactory.getLogger(ConfigMeta.class); + @Override public List getPropertiesToEncrypt(String pidOrFactory, String instanceAlias, JsonValue config) throws WaitForMetaData, NotConfiguration { if (HealthService.PID.equalsIgnoreCase(pidOrFactory)) { diff --git a/openidm-maintenance/src/main/java/org/forgerock/openidm/maintenance/upgrade/ComparableVersion.java b/openidm-maintenance/src/main/java/org/forgerock/openidm/maintenance/upgrade/ComparableVersion.java index 74cbd92aa7..395a5ff9c0 100644 --- a/openidm-maintenance/src/main/java/org/forgerock/openidm/maintenance/upgrade/ComparableVersion.java +++ b/openidm-maintenance/src/main/java/org/forgerock/openidm/maintenance/upgrade/ComparableVersion.java @@ -103,16 +103,19 @@ public IntegerItem( String str ) this.value = new BigInteger( str ); } + @Override public int getType() { return INTEGER_ITEM; } + @Override public boolean isNull() { return BIG_INTEGER_ZERO.equals( value ); } + @Override public int compareTo( Item item ) { if ( item == null ) @@ -136,6 +139,7 @@ public int compareTo( Item item ) } } + @Override public String toString() { return value.toString(); @@ -191,11 +195,13 @@ public StringItem( String value, boolean followedByDigit ) this.value = ALIASES.getProperty( value , value ); } + @Override public int getType() { return STRING_ITEM; } + @Override public boolean isNull() { return ( comparableQualifier( value ).compareTo( RELEASE_VERSION_INDEX ) == 0 ); @@ -221,6 +227,7 @@ public static String comparableQualifier( String qualifier ) return i == -1 ? ( _QUALIFIERS.size() + "-" + qualifier ) : String.valueOf( i ); } + @Override public int compareTo( Item item ) { if ( item == null ) @@ -244,6 +251,7 @@ public int compareTo( Item item ) } } + @Override public String toString() { return value; @@ -260,11 +268,13 @@ private static class ListItem { static final long serialVersionUID = 1L; + @Override public int getType() { return LIST_ITEM; } + @Override public boolean isNull() { return ( size() == 0 ); @@ -288,6 +298,7 @@ else if ( !( lastItem instanceof ListItem ) ) } } + @Override public int compareTo( Item item ) { if ( item == null ) @@ -332,6 +343,7 @@ public int compareTo( Item item ) } } + @Override public String toString() { StringBuilder buffer = new StringBuilder(); @@ -448,11 +460,13 @@ private static Item parseItem( boolean isDigit, String buf ) return isDigit ? new IntegerItem( buf ) : new StringItem( buf, false ); } + @Override public int compareTo( ComparableVersion o ) { return items.compareTo( o.items ); } + @Override public String toString() { return value; @@ -463,11 +477,13 @@ public String getCanonical() return canonical; } + @Override public boolean equals( Object o ) { return ( o instanceof ComparableVersion ) && canonical.equals( ( (ComparableVersion) o ).canonical ); } + @Override public int hashCode() { return canonical.hashCode(); diff --git a/openidm-maintenance/src/main/java/org/forgerock/openidm/maintenance/upgrade/UpdateManagerImpl.java b/openidm-maintenance/src/main/java/org/forgerock/openidm/maintenance/upgrade/UpdateManagerImpl.java index aad9764c97..b9e304c129 100644 --- a/openidm-maintenance/src/main/java/org/forgerock/openidm/maintenance/upgrade/UpdateManagerImpl.java +++ b/openidm-maintenance/src/main/java/org/forgerock/openidm/maintenance/upgrade/UpdateManagerImpl.java @@ -12,7 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2015-2016 ForgeRock AS. - * Portions Copyrighted 2024 3A Systems LLC. + * Portions Copyrighted 2024-2026 3A Systems LLC. */ package org.forgerock.openidm.maintenance.upgrade; @@ -937,6 +937,7 @@ archive, new ProductVersion(ServerConstants.getVersion(), this.repoUpdates = listRequiredRepoUpdates(archive, fileStateChecker); } + @Override public void run() { try { final String projectDir = IdentityServer.getInstance().getProjectLocation().toString(); diff --git a/openidm-policy/src/main/java/org/forgerock/openidm/policy/PolicyService.java b/openidm-policy/src/main/java/org/forgerock/openidm/policy/PolicyService.java index bde82e0832..b8f79671e3 100644 --- a/openidm-policy/src/main/java/org/forgerock/openidm/policy/PolicyService.java +++ b/openidm-policy/src/main/java/org/forgerock/openidm/policy/PolicyService.java @@ -12,7 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2012-2016 ForgeRock AS. - * Portions Copyrighted 2024 3A Systems LLC. + * Portions Copyrighted 2024-2026 3A Systems LLC. */ package org.forgerock.openidm.policy; @@ -120,6 +120,7 @@ protected void deactivate(ComponentContext context) { logger.info("OpenIDM Policy Service component is deactivated."); } + @Override protected BundleContext getBundleContext() { return context.getBundleContext(); } diff --git a/openidm-policy/src/main/java/org/forgerock/openidm/policy/metadata/ConfigMeta.java b/openidm-policy/src/main/java/org/forgerock/openidm/policy/metadata/ConfigMeta.java index 8f15ebc290..53fcd3b0ec 100644 --- a/openidm-policy/src/main/java/org/forgerock/openidm/policy/metadata/ConfigMeta.java +++ b/openidm-policy/src/main/java/org/forgerock/openidm/policy/metadata/ConfigMeta.java @@ -49,6 +49,7 @@ public class ConfigMeta implements MetaDataProvider { */ final static Logger logger = LoggerFactory.getLogger(ConfigMeta.class); + @Override public List getPropertiesToEncrypt(String pidOrFactory, String instanceAlias, JsonValue config) throws WaitForMetaData, NotConfiguration { if (PolicyService.PID.equalsIgnoreCase(pidOrFactory)) { diff --git a/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/commons/ConnectorUtil.java b/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/commons/ConnectorUtil.java index 783250c6dd..744ece8601 100644 --- a/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/commons/ConnectorUtil.java +++ b/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/commons/ConnectorUtil.java @@ -1305,6 +1305,7 @@ private static byte[] decrypt(GuardedByteArray guardedByteArray) { final ByteArrayOutputStream clearStream = new ByteArrayOutputStream(); GuardedByteArray.Accessor accessor = new GuardedByteArray.Accessor() { + @Override public void access(byte[] clearBytes) { clearStream.write(clearBytes, 0, clearBytes.length); } @@ -1317,6 +1318,7 @@ private static String decrypt(GuardedString guardedString) { final String[] clearText = new String[1]; GuardedString.Accessor accessor = new GuardedString.Accessor() { + @Override public void access(char[] clearChars) { clearText[0] = new String(clearChars); } diff --git a/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/impl/ConnectorInfoProviderService.java b/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/impl/ConnectorInfoProviderService.java index 0dc3ccecbd..7725b04e05 100644 --- a/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/impl/ConnectorInfoProviderService.java +++ b/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/impl/ConnectorInfoProviderService.java @@ -336,6 +336,7 @@ public void deactivate(ComponentContext context) { /** * {@inheritDoc} */ + @Override public String getProvisionerType() { return SYSTEM_TYPE_OPENICF; } @@ -364,6 +365,7 @@ private boolean isGenerateFullConfig(JsonValue params) { /** * {@inheritDoc} */ + @Override public JsonValue getAvailableConnectors() throws ResourceException { try { return json(object(field(ConnectorUtil.OPENICF_CONNECTOR_REF, listAllConnectorInfo()))); @@ -375,6 +377,7 @@ public JsonValue getAvailableConnectors() throws ResourceException { /** * {@inheritDoc} */ + @Override public JsonValue generateConnectorCoreConfig(JsonValue params) throws ResourceException { if (!isGenerateConnectorCoreConfig(params)) { return new JsonValue(new HashMap()); @@ -399,6 +402,7 @@ public JsonValue generateConnectorCoreConfig(JsonValue params) throws ResourceEx /** * {@inheritDoc} */ + @Override public JsonValue generateConnectorFullConfig(JsonValue params) throws ResourceException { if (!isGenerateFullConfig(params)) { return new JsonValue(new HashMap()); @@ -471,6 +475,7 @@ public Map test(JsonValue params) throws ResourceException { /** * {@inheritDoc} */ + @Override public ConnectorInfo findConnectorInfo(ConnectorReference connectorReference) { return getConnectorInfo(connectorReference, getConnectorInfoManager(connectorReference)); } @@ -478,6 +483,7 @@ public ConnectorInfo findConnectorInfo(ConnectorReference connectorReference) { /** * {@inheritDoc} */ + @Override public Promise findConnectorInfoAsync(ConnectorReference connectorReference) { AsyncConnectorInfoManager manager = getConnectorInfoManager(connectorReference); if (null != manager){ @@ -499,6 +505,7 @@ public Promise findConnectorInfoAsync(Connector * @param configuration APIConfiguartion to use for creating ConnectorFacde * @return connectorFacade for configuration if configuration not null; */ + @Override public ConnectorFacade createConnectorFacade(APIConfiguration configuration) { return configuration != null ? connectorFramework.get().newInstance(configuration) : null; } @@ -564,6 +571,7 @@ private ConnectorInfo getConnectorInfo(ConnectorReference connectorReference, Co /** * {@inheritDoc} */ + @Override public List getAllConnectorInfo() { final ConnectorFramework framework = connectorFramework.get(); @@ -631,6 +639,7 @@ private List> listAllConnectorInfo() { * @throws org.identityconnectors.framework.common.exceptions.ConnectorException * if OpenICF failed to create new connector facade */ + @Override public void testConnector(APIConfiguration configuration) throws ResourceException { try { ConnectorFacade facade = connectorFramework.get().newInstance(configuration); @@ -651,6 +660,7 @@ public void testConnector(APIConfiguration configuration) throws ResourceExcepti /** * {@inheritDoc} */ + @Override public JsonValue createSystemConfiguration(ConnectorReference connectorReference, APIConfiguration configuration) throws ResourceException { ConnectorFacade facade = connectorFramework.get().newInstance(configuration); @@ -688,6 +698,7 @@ private void setSchema(ConnectorFacade facade, JsonValue jsonConfiguration) { /** * {@inheritDoc} */ + @Override public List getPropertiesToEncrypt(String pidOrFactory, String instanceAlias, JsonValue config) throws WaitForMetaData { List result = null; @@ -781,6 +792,7 @@ private ClassLoader getBundleParentClassLoader() { File lib = IdentityServer.getFileForInstallPath("lib"); if (lib.isDirectory()) { File[] files = lib.listFiles(new FileFilter() { + @Override public boolean accept(File f) { return (f.getName().endsWith(".jar")); } @@ -828,6 +840,7 @@ private List getConnectorURLs(URL... resourceURLs) { File file = new File(resourceURL.toURI()); if (file.isDirectory()) { FileFilter filter = new FileFilter() { + @Override public boolean accept(File f) { File fManifest = new File(f.getPath(), "META-INF/MANIFEST.MF"); return ((f.isDirectory()) && fManifest.isFile()) || (f.getName().endsWith(".jar")); diff --git a/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/impl/ExceptionHelper.java b/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/impl/ExceptionHelper.java index 7a4b40b72c..a22ab4f0d8 100644 --- a/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/impl/ExceptionHelper.java +++ b/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/impl/ExceptionHelper.java @@ -12,6 +12,7 @@ * own identifying information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2016 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.provisioner.openicf.impl; @@ -179,26 +180,31 @@ static ResourceException adaptConnectorException(Context context, Request reques private enum DotNetExceptionHelper { ArgumentException("System.ArgumentException") { + @Override Exception getMappedException(Exception e) { return new IllegalArgumentException(e.getMessage(), e.getCause()); } }, InvalidOperationException("System.InvalidOperationException") { + @Override Exception getMappedException(Exception e) { return new IllegalStateException(e.getMessage(), e.getCause()); } }, NullReferenceException("System.NullReferenceException") { + @Override Exception getMappedException(Exception e) { return new NullPointerException(e.getMessage()); } }, NotSupportedException("System.NotSupportedException") { + @Override Exception getMappedException(Exception e) { return new UnsupportedOperationException(e.getMessage(), e.getCause()); } }, UnknownDotNetException("") { + @Override Exception getMappedException(Exception e) { return new InternalServerErrorException(e.getMessage(), e.getCause()); } diff --git a/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/impl/ObjectClassRequestHandler.java b/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/impl/ObjectClassRequestHandler.java index 41edb8739a..d1aeecb757 100644 --- a/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/impl/ObjectClassRequestHandler.java +++ b/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/impl/ObjectClassRequestHandler.java @@ -12,6 +12,7 @@ * own identifying information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2016 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.provisioner.openicf.impl; @@ -59,6 +60,7 @@ protected String getObjectClass(Context context) throws ResourceException { "Direct access without Router to this service is forbidden."); } + @Override public Promise handleAction(Context context, ActionRequest request) { try { String objectClass = getObjectClass(context); @@ -75,6 +77,7 @@ public Promise handleAction(Context context, } } + @Override public Promise handleCreate(Context context, CreateRequest request) { try { String objectClass = getObjectClass(context); @@ -91,6 +94,7 @@ public Promise handleCreate(Context context } } + @Override public Promise handleDelete(Context context, DeleteRequest request) { try { String objectClass = getObjectClass(context); @@ -107,6 +111,7 @@ public Promise handleDelete(Context context } } + @Override public Promise handlePatch(Context context, PatchRequest request) { try { String objectClass = getObjectClass(context); @@ -123,6 +128,7 @@ public Promise handlePatch(Context context, } } + @Override public Promise handleQuery(Context context, QueryRequest request, QueryResourceHandler handler) { try { @@ -140,6 +146,7 @@ public Promise handleQuery(Context context, Qu } } + @Override public Promise handleRead(Context context, ReadRequest request) { try { String objectClass = getObjectClass(context); @@ -156,6 +163,7 @@ public Promise handleRead(Context context, } } + @Override public Promise handleUpdate(Context context, UpdateRequest request) { try { String objectClass = getObjectClass(context); diff --git a/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/impl/ObjectClassResourceProvider.java b/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/impl/ObjectClassResourceProvider.java index c996fb9322..26da4890f1 100644 --- a/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/impl/ObjectClassResourceProvider.java +++ b/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/impl/ObjectClassResourceProvider.java @@ -12,6 +12,7 @@ * own identifying information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2016 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.provisioner.openicf.impl; @@ -223,6 +224,7 @@ protected enum ObjectClassAction { authenticate, resolveUsername, liveSync } + @Override public Promise handleAction( Context context, ActionRequest request) { try { diff --git a/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/impl/OpenICFProvisionerService.java b/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/impl/OpenICFProvisionerService.java index 6508c68a58..1fa3722fcf 100644 --- a/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/impl/OpenICFProvisionerService.java +++ b/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/impl/OpenICFProvisionerService.java @@ -239,6 +239,7 @@ protected void activate(ComponentContext context) { final OpenICFProvisionerService provisionerService = this; connectorInfoProvider.findConnectorInfoAsync(connectorReference).thenOnResult( new org.forgerock.util.promise.ResultHandler() { + @Override public void handleResult(ConnectorInfo connectorInfo) { try { APIConfiguration config = connectorInfo.createDefaultAPIConfiguration(); @@ -569,6 +570,7 @@ private ConnectorFacade getConnectorFacade0(Class operat * * @return the system identifier */ + @Override public SystemIdentifier getSystemIdentifier() { return systemIdentifier; } @@ -640,6 +642,7 @@ String getSource(final String objectClass, final String... optionalId) { * @param context the Context of the request requesting the status * @return a Map of the current status of a connector */ + @Override public Map getStatus(Context context) { Map result = new LinkedHashMap<>(); JsonValue jv = new JsonValue(result); @@ -679,6 +682,7 @@ public Map getStatus(Context context) { return result; } + @Override public Map testConfig(JsonValue config) { JsonValue jv = json(object()); jv.put("name", systemIdentifier.getName()); @@ -741,6 +745,7 @@ protected String getObjectTypeName(final ObjectClass objectClass) { return null; } final Predicate> objectClassFilter = new Predicate>() { + @Override public boolean apply(Entry entry) { return objectClass.equals(entry.getValue().getObjectClass()); } @@ -793,6 +798,7 @@ public boolean apply(Entry entry) { * if the {@code previousStage} is not Map. * @see org.forgerock.openidm.provisioner.openicf.commons.ConnectorUtil#convertToSyncToken(org.forgerock.json.JsonValue) */ + @Override public JsonValue liveSynchronize(final Context context, final String objectType, final JsonValue previousStage) throws ResourceException { @@ -852,6 +858,7 @@ public JsonValue liveSynchronize(final Context context, final String objectType, * stop iteration and the exception will propagate to the application. */ @SuppressWarnings("fallthrough") + @Override public boolean handle(SyncDelta syncDelta) { try { // Q: are we going to encode ids? diff --git a/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/impl/OperationHelperImpl.java b/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/impl/OperationHelperImpl.java index 778911cc3f..f911e163ff 100644 --- a/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/impl/OperationHelperImpl.java +++ b/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/impl/OperationHelperImpl.java @@ -74,6 +74,7 @@ public OperationHelperImpl(Id systemObjectSetId, ObjectClassInfoHelper objectCla this.cryptoService = cryptoService; } + @Override public boolean isOperationPermitted(Class operation) throws ResourceException { OperationOptionInfoHelper operationOptionInfoHelper = operations.get(operation); String reason = "not supported."; @@ -93,11 +94,13 @@ public boolean isOperationPermitted(Class operation) thr } + @Override public OperationOptionsBuilder getOperationOptionsBuilder(Class operation, ConnectorObject connectorObject, JsonValue source) throws Exception { return operations.get(operation).build(source, objectClassInfoHelper); } + @Override public ObjectClass getObjectClass() { return objectClassInfoHelper.getObjectClass(); } @@ -109,6 +112,7 @@ public Filter build(Map query, Map params) throw return operator.createFilter(); } */ + @Override public ConnectorObject build(Class operation, JsonValue source) throws Exception { return objectClassInfoHelper.build(operation, null, source, cryptoService); } @@ -121,6 +125,7 @@ public ConnectorObject build(Class operation, String id, */ + @Override public JsonValue build(ConnectorObject source) throws Exception { JsonValue result = objectClassInfoHelper.build(source, cryptoService).getContent(); resetUid(source.getUid(), result); @@ -146,6 +151,7 @@ public void resetUid(Uid uid, JsonValue target) { * @param uid original un escaped unique identifier of the object * @return */ + @Override public URI resolveQualifiedId(Uid uid) { if (null != uid) { try { diff --git a/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/syncfailure/DeadLetterQueueHandler.java b/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/syncfailure/DeadLetterQueueHandler.java index cc390bc320..7eb44d3e18 100644 --- a/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/syncfailure/DeadLetterQueueHandler.java +++ b/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/syncfailure/DeadLetterQueueHandler.java @@ -1,5 +1,6 @@ /* * Copyright 2013-2015 ForgeRock, AS. + * Portions Copyright 2026 3A Systems, LLC. * * The contents of this file are subject to the terms of the Common Development and * Distribution License (the License). You may not use this file except in compliance with the @@ -57,6 +58,7 @@ public DeadLetterQueueHandler(ConnectionFactory connectionFactory) { * @param failureCause the cause of the sync failure * @throws SyncHandlerException when retries are not exceeded */ + @Override public void invoke(Context context, Map syncFailure, Exception failureCause) throws SyncHandlerException { diff --git a/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/syncfailure/InfiniteRetrySyncFailureHandler.java b/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/syncfailure/InfiniteRetrySyncFailureHandler.java index 0880d9ab8b..ae023d7fb7 100644 --- a/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/syncfailure/InfiniteRetrySyncFailureHandler.java +++ b/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/syncfailure/InfiniteRetrySyncFailureHandler.java @@ -1,5 +1,6 @@ /* * Copyright 2013 ForgeRock, AS. + * Portions Copyright 2026 3A Systems, LLC. * * The contents of this file are subject to the terms of the Common Development and * Distribution License (the License). You may not use this file except in compliance with the @@ -40,6 +41,7 @@ private InfiniteRetrySyncFailureHandler() { * @param failureCause the cause of the sync failure * @throws SyncHandlerException when retries are not exceeded */ + @Override public void invoke(Context context, Map syncFailure, Exception failureCause) throws SyncHandlerException { diff --git a/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/syncfailure/LoggedIgnoreHandler.java b/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/syncfailure/LoggedIgnoreHandler.java index ee91d75768..9da449b775 100644 --- a/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/syncfailure/LoggedIgnoreHandler.java +++ b/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/syncfailure/LoggedIgnoreHandler.java @@ -1,5 +1,6 @@ /* * Copyright 2013 ForgeRock, AS. + * Portions Copyright 2026 3A Systems, LLC. * * The contents of this file are subject to the terms of the Common Development and * Distribution License (the License). You may not use this file except in compliance with the @@ -37,6 +38,7 @@ public class LoggedIgnoreHandler implements SyncFailureHandler { * @param failureCause the cause of the sync failure * @throws SyncHandlerException when retries are not exceeded */ + @Override public void invoke(Context context, Map syncFailure, Exception failureCause) throws SyncHandlerException { logger.warn("{} liveSync failure on sync-token {} for {}, {} - {}", diff --git a/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/syncfailure/NullSyncFailureHandler.java b/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/syncfailure/NullSyncFailureHandler.java index e5f92c5a15..e1a6c9e459 100644 --- a/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/syncfailure/NullSyncFailureHandler.java +++ b/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/syncfailure/NullSyncFailureHandler.java @@ -1,5 +1,6 @@ /* * Copyright 2013 ForgeRock, AS. + * Portions Copyright 2026 3A Systems, LLC. * * The contents of this file are subject to the terms of the Common Development and * Distribution License (the License). You may not use this file except in compliance with the @@ -41,6 +42,7 @@ private NullSyncFailureHandler() { * @param failureCause the cause of the sync failure * @throws SyncHandlerException when retries are not exceeded */ + @Override public void invoke(Context context, Map syncFailure, Exception failureCause) throws SyncHandlerException { // Null object pattern - does nothing - everything is "OK" diff --git a/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/syncfailure/ScriptedSyncFailureHandler.java b/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/syncfailure/ScriptedSyncFailureHandler.java index 90abe65d02..eace2dbfa3 100644 --- a/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/syncfailure/ScriptedSyncFailureHandler.java +++ b/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/syncfailure/ScriptedSyncFailureHandler.java @@ -1,5 +1,6 @@ /* * Copyright 2013-2015 ForgeRock, AS. + * Portions Copyright 2026 3A Systems, LLC. * * The contents of this file are subject to the terms of the Common Development and * Distribution License (the License). You may not use this file except in compliance with the @@ -70,6 +71,7 @@ public ScriptedSyncFailureHandler(ScriptRegistry scriptRegistry, JsonValue confi * @param syncFailure @throws SyncHandlerException when retries are not exceeded * @param failureCause the cause of the sync failure */ + @Override public void invoke(Context context, Map syncFailure, Exception failureCause) throws SyncHandlerException { diff --git a/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/syncfailure/SimpleRetrySyncFailureHandler.java b/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/syncfailure/SimpleRetrySyncFailureHandler.java index 21b8ee72f1..e3d2de1fd1 100644 --- a/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/syncfailure/SimpleRetrySyncFailureHandler.java +++ b/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/syncfailure/SimpleRetrySyncFailureHandler.java @@ -1,5 +1,6 @@ /* * Copyright 2013 ForgeRock, AS. + * Portions Copyright 2026 3A Systems, LLC. * * The contents of this file are subject to the terms of the Common Development and * Distribution License (the License). You may not use this file except in compliance with the @@ -62,6 +63,7 @@ public SimpleRetrySyncFailureHandler(int syncFailureRetries, SyncFailureHandler * @param failureCause the cause of the sync failure * @throws SyncHandlerException when retries are not exceeded */ + @Override public void invoke(Context context, Map syncFailure, Exception failureCause) throws SyncHandlerException { diff --git a/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/syncfailure/SyncFailureHandlerFactoryImpl.java b/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/syncfailure/SyncFailureHandlerFactoryImpl.java index 4b0640645d..01199e1004 100644 --- a/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/syncfailure/SyncFailureHandlerFactoryImpl.java +++ b/openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/syncfailure/SyncFailureHandlerFactoryImpl.java @@ -13,7 +13,7 @@ * Header, with the fields enclosed by brackets [] replaced by your own identifying * information: "Portions copyright [year] [name of copyright owner]". * - * Portions Copyrighted 2024 3A Systems LLC. + * Portions Copyrighted 2024-2026 3A Systems LLC. */ package org.forgerock.openidm.provisioner.openicf.syncfailure; @@ -83,6 +83,7 @@ private void unbindScriptRegistry(final ScriptRegistry service) { * @param config the config for the SyncFailureHandler * @return the SyncFailureHandler */ + @Override public SyncFailureHandler create(JsonValue config) throws Exception { if (null == config || config.isNull()) { diff --git a/openidm-provisioner/src/main/java/org/forgerock/openidm/provisioner/SimpleSystemIdentifier.java b/openidm-provisioner/src/main/java/org/forgerock/openidm/provisioner/SimpleSystemIdentifier.java index bf93cf11b0..9cf62e1780 100644 --- a/openidm-provisioner/src/main/java/org/forgerock/openidm/provisioner/SimpleSystemIdentifier.java +++ b/openidm-provisioner/src/main/java/org/forgerock/openidm/provisioner/SimpleSystemIdentifier.java @@ -56,6 +56,7 @@ public SimpleSystemIdentifier(JsonValue configuration) throws JsonValueException /** * {@inheritDoc} */ + @Override public boolean is(SystemIdentifier other) { return equals(other); } @@ -63,6 +64,7 @@ public boolean is(SystemIdentifier other) { /** * {@inheritDoc} */ + @Override public boolean is(Id uri) { return name.equals(uri.getSystemName()); } diff --git a/openidm-provisioner/src/main/java/org/forgerock/openidm/provisioner/impl/SystemObjectSetService.java b/openidm-provisioner/src/main/java/org/forgerock/openidm/provisioner/impl/SystemObjectSetService.java index 882b5818f2..d151c3fd5d 100644 --- a/openidm-provisioner/src/main/java/org/forgerock/openidm/provisioner/impl/SystemObjectSetService.java +++ b/openidm-provisioner/src/main/java/org/forgerock/openidm/provisioner/impl/SystemObjectSetService.java @@ -12,7 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Portions copyright 2011-2016 ForgeRock AS. - * Portions Copyrighted 2024 3A Systems LLC. + * Portions Copyrighted 2024-2026 3A Systems LLC. */ package org.forgerock.openidm.provisioner.impl; @@ -397,6 +397,7 @@ public Promise updateInstance(Context conte * if execution of the scheduled work failed. * Implementations can also throw RuntimeExceptions which will get logged. */ + @Override public void execute(Context context, Map schedulerContext) throws ExecutionException { try { JsonValue params = new JsonValue(schedulerContext).get(CONFIGURED_INVOKE_CONTEXT); diff --git a/openidm-quartz-fragment/src/main/java/org/forgerock/openidm/quartz/impl/RepoJobStore.java b/openidm-quartz-fragment/src/main/java/org/forgerock/openidm/quartz/impl/RepoJobStore.java index f4424c4d7a..7038164d05 100644 --- a/openidm-quartz-fragment/src/main/java/org/forgerock/openidm/quartz/impl/RepoJobStore.java +++ b/openidm-quartz-fragment/src/main/java/org/forgerock/openidm/quartz/impl/RepoJobStore.java @@ -12,6 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2012-2016 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.quartz.impl; @@ -2120,6 +2121,7 @@ private void cleanUpInstance() { */ protected class TriggerComparator implements Comparator { + @Override public int compare(Trigger t1, Trigger t2) { // First compare by nextFireTime() int result = t1.compareTo(t2); diff --git a/openidm-quartz-fragment/src/main/java/org/forgerock/openidm/quartz/impl/SchedulerServiceJob.java b/openidm-quartz-fragment/src/main/java/org/forgerock/openidm/quartz/impl/SchedulerServiceJob.java index 93fb72d569..516e98d352 100644 --- a/openidm-quartz-fragment/src/main/java/org/forgerock/openidm/quartz/impl/SchedulerServiceJob.java +++ b/openidm-quartz-fragment/src/main/java/org/forgerock/openidm/quartz/impl/SchedulerServiceJob.java @@ -2,6 +2,7 @@ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright (c) 2012-2015 ForgeRock AS. All Rights Reserved + * Portions Copyright 2026 3A Systems, LLC. * * The contents of this file are subject to the terms * of the Common Development and Distribution License @@ -98,6 +99,7 @@ private Context newScheduledContext(String id) { } @SuppressWarnings("unchecked") + @Override public void execute(JobExecutionContext context) throws JobExecutionException { JobDataMap data = context.getMergedJobDataMap(); diff --git a/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/datasource/jdbc/impl/BoneCPDataSourceFactory.java b/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/datasource/jdbc/impl/BoneCPDataSourceFactory.java index 3a8df62cbd..cc48787508 100644 --- a/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/datasource/jdbc/impl/BoneCPDataSourceFactory.java +++ b/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/datasource/jdbc/impl/BoneCPDataSourceFactory.java @@ -12,6 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2015 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.datasource.jdbc.impl; @@ -36,6 +37,7 @@ class BoneCPDataSourceFactory implements DataSourceFactory { this.config = config; } + @Override public DataSource newInstance() { BoneCPDataSource ds = config.getConnectionPool(); // copy appropriate properties from the main connection config @@ -75,6 +77,7 @@ public DataSource newInstance() { return ds; } + @Override public void shutdown(DataSource dataSource) { //close the datasource connection pool if (dataSource instanceof BoneCPDataSource) { diff --git a/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/datasource/jdbc/impl/HikariCPDataSourceFactory.java b/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/datasource/jdbc/impl/HikariCPDataSourceFactory.java index 0d7273d90e..34c8b96a11 100644 --- a/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/datasource/jdbc/impl/HikariCPDataSourceFactory.java +++ b/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/datasource/jdbc/impl/HikariCPDataSourceFactory.java @@ -12,6 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2016 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.datasource.jdbc.impl; @@ -53,6 +54,7 @@ public DataSource newInstance() { return new HikariDataSource(cfg); } + @Override public void shutdown(DataSource dataSource) { //close the datasource connection pool if (dataSource instanceof HikariDataSource) { diff --git a/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/datasource/jdbc/impl/NonPoolingDataSourceFactory.java b/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/datasource/jdbc/impl/NonPoolingDataSourceFactory.java index 2f730b7b75..8ee257823f 100644 --- a/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/datasource/jdbc/impl/NonPoolingDataSourceFactory.java +++ b/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/datasource/jdbc/impl/NonPoolingDataSourceFactory.java @@ -12,6 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2015-2017 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.datasource.jdbc.impl; @@ -74,6 +75,7 @@ public DataSource newInstance() throws InvalidException { return new NonPoolingDataSource(properties); } + @Override public void shutdown(DataSource dataSource) { // nothing to do } diff --git a/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/Activator.java b/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/Activator.java index f61a2f16ac..34eee36393 100644 --- a/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/Activator.java +++ b/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/Activator.java @@ -2,6 +2,7 @@ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright © 2011 ForgeRock AS. All rights reserved. + * Portions Copyright 2026 3A Systems, LLC. * * The contents of this file are subject to the terms * of the Common Development and Distribution License @@ -45,6 +46,7 @@ public class Activator implements BundleActivator { final static Logger logger = LoggerFactory.getLogger(Activator.class); + @Override public void start(BundleContext context) { logger.debug("JDBC bundle starting", context); @@ -119,6 +121,7 @@ private String getDbDirname(JsonValue repoConfig) { } } + @Override public void stop(BundleContext context) { logger.debug("JDBC bundle stopped", context); } diff --git a/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/ColumnMapping.java b/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/ColumnMapping.java index 5b751774d0..0e3674cf0c 100644 --- a/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/ColumnMapping.java +++ b/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/ColumnMapping.java @@ -12,6 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2016 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.repo.jdbc.impl; @@ -61,6 +62,7 @@ public boolean isJsonPointer(JsonPointer fieldPointer) { return objectColPointer.equals(fieldPointer); } + @Override public String toString() { return "object column : " + objectColName + " -> " + dbColName + ":" + dbColType + "\n"; } diff --git a/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/DB2TableHandler.java b/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/DB2TableHandler.java index 38a20e16b4..72e2800c30 100644 --- a/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/DB2TableHandler.java +++ b/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/DB2TableHandler.java @@ -46,6 +46,7 @@ public DB2TableHandler(JsonValue tableConfig, String dbSchemaName, JsonValue que super(tableConfig, dbSchemaName, queriesConfig, commandsConfig, maxBatchSize, sqlExceptionHandler); } + @Override protected Map initializeQueryMap() { Map result = super.initializeQueryMap(); String typeTable = dbSchemaName == null ? "objecttypes" : dbSchemaName + ".objecttypes"; @@ -66,6 +67,7 @@ protected Map initializeQueryMap() { return result; } + @Override public boolean isRetryable(SQLException ex, Connection connection) { // Re-tryable DB2 error codes // -911 indicates DB2 rolled back already and expects a retry diff --git a/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/DefaultSQLExceptionHandler.java b/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/DefaultSQLExceptionHandler.java index e6eae1111b..93f8f7d8d0 100644 --- a/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/DefaultSQLExceptionHandler.java +++ b/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/DefaultSQLExceptionHandler.java @@ -39,10 +39,12 @@ */ public class DefaultSQLExceptionHandler implements SQLExceptionHandler { + @Override public boolean isErrorType(SQLException ex, ErrorType errorType) { return XOpenErrorMapping.isErrorType(ex, errorType); } + @Override public boolean isRetryable(SQLException ex, Connection connection) { // These are known re-tryable for MySQL. Other DBs may need specific sql exception handler defnitions. if (isErrorType(ex, ErrorType.CONNECTION_FAILURE) || isErrorType(ex, ErrorType.DEADLOCK_OR_TIMEOUT) diff --git a/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/ExplicitResultSetMapper.java b/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/ExplicitResultSetMapper.java index 7b7a6d6571..79baee03c8 100644 --- a/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/ExplicitResultSetMapper.java +++ b/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/ExplicitResultSetMapper.java @@ -12,6 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2016 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.repo.jdbc.impl; @@ -138,6 +139,7 @@ public String getRev(ResultSet rs) throws SQLException { return rs.getString(revMapping.dbColName); } + @Override public String toString() { StringBuffer sb = new StringBuffer(); sb.append("Explicit table mapping for " + tableName + " :\n"); diff --git a/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/JDBCRepoService.java b/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/JDBCRepoService.java index c8353a1622..790ac87af6 100644 --- a/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/JDBCRepoService.java +++ b/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/JDBCRepoService.java @@ -12,7 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2011-2016 ForgeRock AS. - * Portions Copyrighted 2024 3A Systems LLC. + * Portions Copyrighted 2024-2026 3A Systems LLC. */ package org.forgerock.openidm.repo.jdbc.impl; @@ -1024,6 +1024,7 @@ MappedTableHandler getMappedTableHandler(DatabaseType databaseType, JsonValue ta throws InternalServerErrorException { final Accessor cryptoServiceAccessor = new Accessor() { + @Override public CryptoService access() { return cryptoService; } diff --git a/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/MappedTableHandler.java b/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/MappedTableHandler.java index c31bffc4ab..fcb3114b4f 100644 --- a/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/MappedTableHandler.java +++ b/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/MappedTableHandler.java @@ -486,6 +486,7 @@ public boolean queryIdExists(String queryId) { } // TODO: make common to generic and explicit handlers + @Override public boolean isErrorType(SQLException ex, ErrorType errorType) { return sqlExceptionHandler.isErrorType(ex, errorType); } @@ -494,6 +495,7 @@ public boolean isErrorType(SQLException ex, ErrorType errorType) { /** * InheritDoc */ + @Override public boolean isRetryable(SQLException ex, Connection connection) { return sqlExceptionHandler.isRetryable(ex, connection); } diff --git a/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/MySQLExceptionHandler.java b/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/MySQLExceptionHandler.java index 38b8ab82f9..e579af0f19 100644 --- a/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/MySQLExceptionHandler.java +++ b/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/MySQLExceptionHandler.java @@ -34,6 +34,7 @@ */ public class MySQLExceptionHandler extends DefaultSQLExceptionHandler { + @Override public boolean isErrorType(SQLException ex, ErrorType errorType) { boolean result = XOpenErrorMapping.isErrorType(ex, errorType); diff --git a/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/PostgreSQLTableHandler.java b/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/PostgreSQLTableHandler.java index 5cdc05d494..4fbe4b4395 100644 --- a/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/PostgreSQLTableHandler.java +++ b/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/PostgreSQLTableHandler.java @@ -127,6 +127,7 @@ public PostgreSQLTableHandler(JsonValue tableConfig, String dbSchemaName, JsonVa super(tableConfig, dbSchemaName, queriesConfig, commandsConfig, maxBatchSize, sqlExceptionHandler); } + @Override protected Map initializeQueryMap() { Map result = super.initializeQueryMap(); diff --git a/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/SQLBuilder.java b/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/SQLBuilder.java index 4697859809..51330b8cb2 100644 --- a/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/SQLBuilder.java +++ b/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/SQLBuilder.java @@ -2,6 +2,7 @@ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright 2015 ForgeRock AS. All rights reserved. + * Portions Copyright 2026 3A Systems, LLC. * * The contents of this file are subject to the terms * of the Common Development and Distribution License @@ -65,6 +66,7 @@ private class Column implements SQLRenderer { this.column = column; } + @Override public String toSQL() { return column; } @@ -82,6 +84,7 @@ private class Table implements SQLRenderer { this.alias = alias; } + @Override public String toSQL() { return table + (alias != null ? " " + alias : ""); } @@ -178,6 +181,7 @@ private class OrderBy implements SQLRenderer { this.ascending = ascending; } + @Override public String toSQL() { return order + " " + (ascending ? "ASC" : "DESC"); } diff --git a/openidm-repo-orientdb/src/main/java/org/forgerock/openidm/repo/orientdb/impl/Activator.java b/openidm-repo-orientdb/src/main/java/org/forgerock/openidm/repo/orientdb/impl/Activator.java index 570e696d94..ffffd3e70b 100644 --- a/openidm-repo-orientdb/src/main/java/org/forgerock/openidm/repo/orientdb/impl/Activator.java +++ b/openidm-repo-orientdb/src/main/java/org/forgerock/openidm/repo/orientdb/impl/Activator.java @@ -2,6 +2,7 @@ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright 2011-2015 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. * * The contents of this file are subject to the terms * of the Common Development and Distribution License @@ -44,6 +45,7 @@ public class Activator implements BundleActivator { // Bootstrap repository OrientDBRepoService bootSvc; + @Override public void start(BundleContext context) { logger.trace("OrientDB bundle starting"); @@ -76,6 +78,7 @@ public void start(BundleContext context) { logger.trace("OrientDB bundle started"); } + @Override public void stop(BundleContext context) { if (bootSvc != null) { logger.debug("Cleaning up OrientDB bootstrap repository"); diff --git a/openidm-repo-orientdb/src/main/java/org/forgerock/openidm/repo/orientdb/impl/query/Commands.java b/openidm-repo-orientdb/src/main/java/org/forgerock/openidm/repo/orientdb/impl/query/Commands.java index 8904489b1f..577c17b6d5 100644 --- a/openidm-repo-orientdb/src/main/java/org/forgerock/openidm/repo/orientdb/impl/query/Commands.java +++ b/openidm-repo-orientdb/src/main/java/org/forgerock/openidm/repo/orientdb/impl/query/Commands.java @@ -13,6 +13,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2014-2016 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.repo.orientdb.impl.query; @@ -59,6 +60,7 @@ public Commands() { * @param queryString the query expression, including tokens to replace * @return the prepared query object */ + @Override protected OCommandSQL createQueryObject(String queryString) { return new OCommandSQL(queryString); } @@ -76,6 +78,7 @@ protected OCommandSQL createQueryObject(String queryString) { * @return The query result, which includes meta-data about the query, and the result set itself. * @throws org.forgerock.json.resource.BadRequestException if the passed request parameters are invalid, e.g. missing query id or query expression or tokens. */ + @Override public Integer query(final String type, final ActionRequest request, final ODatabaseDocumentTx database) throws BadRequestException { diff --git a/openidm-repo-orientdb/src/main/java/org/forgerock/openidm/repo/orientdb/impl/query/Queries.java b/openidm-repo-orientdb/src/main/java/org/forgerock/openidm/repo/orientdb/impl/query/Queries.java index 0cd0cf2d13..f6ddc8eb02 100644 --- a/openidm-repo-orientdb/src/main/java/org/forgerock/openidm/repo/orientdb/impl/query/Queries.java +++ b/openidm-repo-orientdb/src/main/java/org/forgerock/openidm/repo/orientdb/impl/query/Queries.java @@ -12,6 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2011-2016 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.repo.orientdb.impl.query; @@ -123,6 +124,7 @@ public void setConfiguredQueries(Map queries) { * @param queryString the query expression, including tokens to replace * @return the prepared query object * */ + @Override protected OSQLSynchQuery createQueryObject(String queryString) { return new OSQLSynchQuery(queryString); } @@ -153,6 +155,7 @@ private QueryInfo> findQueryInfo(String type, Map query(final String type, QueryRequest request, final ODatabaseDocumentTx database) throws BadRequestException { diff --git a/openidm-repo-orientdb/src/main/java/org/forgerock/openidm/repo/orientdb/metadata/ConfigMeta.java b/openidm-repo-orientdb/src/main/java/org/forgerock/openidm/repo/orientdb/metadata/ConfigMeta.java index 847ba2a89c..9bdaf655bb 100644 --- a/openidm-repo-orientdb/src/main/java/org/forgerock/openidm/repo/orientdb/metadata/ConfigMeta.java +++ b/openidm-repo-orientdb/src/main/java/org/forgerock/openidm/repo/orientdb/metadata/ConfigMeta.java @@ -50,6 +50,7 @@ public ConfigMeta() { propertiesToEncrypt = Collections.unmodifiableList(props); } + @Override public List getPropertiesToEncrypt(String pidOrFactory, String instanceAlias, JsonValue config) { if (OrientDBRepoService.PID.equals(pidOrFactory)) { diff --git a/openidm-repo/src/main/java/org/forgerock/openidm/repo/util/Clauses.java b/openidm-repo/src/main/java/org/forgerock/openidm/repo/util/Clauses.java index e58f32fce3..adea405e26 100644 --- a/openidm-repo/src/main/java/org/forgerock/openidm/repo/util/Clauses.java +++ b/openidm-repo/src/main/java/org/forgerock/openidm/repo/util/Clauses.java @@ -2,6 +2,7 @@ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright 2015 ForgeRock AS. All rights reserved. + * Portions Copyright 2026 3A Systems, LLC. * * The contents of this file are subject to the terms * of the Common Development and Distribution License @@ -41,18 +42,23 @@ public final class Clauses { * the {@link Clause} interface's and(), or(), and not() methods. */ private static abstract class AbstractClause implements Clause { + @Override public Clause and(String clause) { return and(where(clause)); } + @Override public Clause and(Clause and) { return new AndClause(this, and); } + @Override public Clause or(String clause) { return or(where(clause)); } + @Override public Clause or(Clause or) { return new OrClause(this, or); } + @Override public Clause not() { return new NotClause(this); } @@ -71,6 +77,7 @@ private static class SimpleClause extends AbstractClause implements Clause { SimpleClause(String clause) { this.clause = clause; } + @Override public String toSQL() { return clause; } @@ -124,6 +131,7 @@ public Clause or(Clause clause) { clauses.add(clause); return this; } + @Override public String toSQL() { return super.toSQL(" OR "); } @@ -148,6 +156,7 @@ public Clause and(Clause clause) { public OrClause or(Clause clause) { return new OrClause(Arrays.asList(this, clause)); } + @Override public String toSQL() { return super.toSQL(" AND "); } @@ -161,6 +170,7 @@ private static class NotClause extends AbstractClause implements Clause { NotClause(Clause clause) { this.clause = clause; } + @Override public String toSQL() { return "NOT " + clause.toSQL(); } diff --git a/openidm-repo/src/main/java/org/forgerock/openidm/repo/util/StringSQLQueryFilterVisitor.java b/openidm-repo/src/main/java/org/forgerock/openidm/repo/util/StringSQLQueryFilterVisitor.java index 03064e2a91..53846ba0d5 100644 --- a/openidm-repo/src/main/java/org/forgerock/openidm/repo/util/StringSQLQueryFilterVisitor.java +++ b/openidm-repo/src/main/java/org/forgerock/openidm/repo/util/StringSQLQueryFilterVisitor.java @@ -91,6 +91,7 @@ public abstract class StringSQLQueryFilterVisitor

extends AbstractSQLQueryFil * @param valueAssertion the value in the assertion * @return a query expression or clause */ + @Override public abstract StringSQLRenderer visitValueAssertion(P parameters, String operand, JsonPointer field, Object valueAssertion); public StringSQLRenderer visitCompositeFilter(final P parameters, List> subFilters, String operand) { diff --git a/openidm-router/src/main/java/org/forgerock/openidm/router/RouterRegistryImpl.java b/openidm-router/src/main/java/org/forgerock/openidm/router/RouterRegistryImpl.java index bcf433afd1..7af87965d0 100644 --- a/openidm-router/src/main/java/org/forgerock/openidm/router/RouterRegistryImpl.java +++ b/openidm-router/src/main/java/org/forgerock/openidm/router/RouterRegistryImpl.java @@ -12,6 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2013-2016 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.router; @@ -155,6 +156,7 @@ public void ungetService(Bundle bundle, // ----- Implementation of ServiceTrackerCustomizer interface + @Override public RouteEntryImpl addingService(ServiceReference reference) { Object service = bundleContext.getService(reference); RouteEntryImpl result = null; @@ -171,6 +173,7 @@ public RouteEntryImpl addingService(ServiceReference reference) { return result; } + @Override public void modifiedService(ServiceReference reference, RouteEntryImpl service) { service.removeRoute(); Object newService = bundleContext.getService(reference); @@ -187,6 +190,7 @@ public void modifiedService(ServiceReference reference, RouteEntryImpl s } } + @Override public void removedService(ServiceReference reference, RouteEntryImpl service) { bundleContext.ungetService(reference); service.removeRoute(); @@ -285,6 +289,7 @@ class RouteEntryImpl extends RouteServiceImpl implements RouteEntry { } } + @Override void dispose() { removeRoute(); registeredRoutes = null; @@ -292,6 +297,7 @@ void dispose() { super.dispose(); } + @Override public boolean removeRoute() { boolean isModified = false; try { @@ -323,11 +329,13 @@ class RouteServiceFactory implements ServiceFactory { this.internalRouter = internalRouter; } + @Override public RouteService getService(Bundle bundle, ServiceRegistration registration) { logger.debug("getService RouteService {}", bundle); return new RouteServiceImpl(bundle, internalRouter); } + @Override public void ungetService(Bundle bundle, ServiceRegistration registration, RouteService service) { logger.debug("ungetService RouteService {}", bundle); ((RouteServiceImpl) service).dispose(); diff --git a/openidm-router/src/main/java/org/forgerock/openidm/router/metadata/ConfigMeta.java b/openidm-router/src/main/java/org/forgerock/openidm/router/metadata/ConfigMeta.java index efd1884bae..3f01937ab9 100644 --- a/openidm-router/src/main/java/org/forgerock/openidm/router/metadata/ConfigMeta.java +++ b/openidm-router/src/main/java/org/forgerock/openidm/router/metadata/ConfigMeta.java @@ -47,6 +47,7 @@ public class ConfigMeta implements MetaDataProvider { */ final static Logger logger = LoggerFactory.getLogger(ConfigMeta.class); + @Override public List getPropertiesToEncrypt(String pidOrFactory, String instanceAlias, JsonValue config) throws WaitForMetaData, NotConfiguration { if (JsonResourceRouterService.PID.equalsIgnoreCase(pidOrFactory)) { diff --git a/openidm-scheduler/src/main/java/org/forgerock/openidm/scheduler/MemoryScheduler.java b/openidm-scheduler/src/main/java/org/forgerock/openidm/scheduler/MemoryScheduler.java index acfc8d7719..0dd75cce4b 100644 --- a/openidm-scheduler/src/main/java/org/forgerock/openidm/scheduler/MemoryScheduler.java +++ b/openidm-scheduler/src/main/java/org/forgerock/openidm/scheduler/MemoryScheduler.java @@ -12,6 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2016 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.scheduler; @@ -43,6 +44,7 @@ public class MemoryScheduler extends AbstractScheduler { * @return a {@link JsonValue} representation of the given {@link Trigger} * @throws SchedulerException if unable to create a {@link JsonValue} representation of the {@link Trigger} */ + @Override JsonValue getTrigger(final Context context, final String triggerId, final Trigger trigger, final String instanceId) throws SchedulerException { // Can't read non-persisted trigger from the repo so create it from the trigger object. diff --git a/openidm-scheduler/src/main/java/org/forgerock/openidm/scheduler/PersistedScheduler.java b/openidm-scheduler/src/main/java/org/forgerock/openidm/scheduler/PersistedScheduler.java index 04611770db..a18a193942 100644 --- a/openidm-scheduler/src/main/java/org/forgerock/openidm/scheduler/PersistedScheduler.java +++ b/openidm-scheduler/src/main/java/org/forgerock/openidm/scheduler/PersistedScheduler.java @@ -12,6 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2016 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.scheduler; @@ -57,6 +58,7 @@ public class PersistedScheduler extends AbstractScheduler { * @return a {@link JsonValue} representation of the trigger stored in the OpenIDM repo. * @throws SchedulerException if unable to read the trigger from the repo. */ + @Override JsonValue getTrigger(final Context context, final String triggerId, final Trigger trigger, final String instanceId) throws SchedulerException { // Read trigger from the repo. diff --git a/openidm-script/src/main/java/org/forgerock/openidm/script/AbstractScriptedService.java b/openidm-script/src/main/java/org/forgerock/openidm/script/AbstractScriptedService.java index aa5c7d9c78..cf3bb27192 100644 --- a/openidm-script/src/main/java/org/forgerock/openidm/script/AbstractScriptedService.java +++ b/openidm-script/src/main/java/org/forgerock/openidm/script/AbstractScriptedService.java @@ -12,7 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2013-2016 ForgeRock AS. - * Portions Copyrighted 2024 3A Systems LLC. + * Portions Copyrighted 2024-2026 3A Systems LLC. */ package org.forgerock.openidm.script; @@ -158,6 +158,7 @@ protected void unregisterService() { // ----- Implementation of ScriptListener interface + @Override public void scriptChanged(ScriptEvent event) throws ScriptException { if (ScriptEvent.REGISTERED == event.getType()) { if (null == selfRegistration) { @@ -196,6 +197,7 @@ public void scriptChanged(ScriptEvent event) throws ScriptException { // ----- Implementation of ScriptCustomizer interface + @Override public void handleAction(final Context context, final ActionRequest request, final Bindings bindings) throws ResourceException { if (!mask.contains(RequestType.ACTION)) { @@ -204,6 +206,7 @@ public void handleAction(final Context context, final ActionRequest request, fin handleRequest(context, request, bindings); } + @Override public void handleCreate(final Context context, final CreateRequest request, final Bindings bindings) throws ResourceException { if (!mask.contains(RequestType.CREATE)) { @@ -212,6 +215,7 @@ public void handleCreate(final Context context, final CreateRequest request, fin handleRequest(context, request, bindings); } + @Override public void handleDelete(final Context context, final DeleteRequest request, final Bindings bindings) throws ResourceException { if (!mask.contains(RequestType.DELETE)) { @@ -220,6 +224,7 @@ public void handleDelete(final Context context, final DeleteRequest request, fin handleRequest(context, request, bindings); } + @Override public void handlePatch(final Context context, final PatchRequest request, final Bindings bindings) throws ResourceException { if (!mask.contains(RequestType.PATCH)) { @@ -228,6 +233,7 @@ public void handlePatch(final Context context, final PatchRequest request, final handleRequest(context, request, bindings); } + @Override public void handleQuery(final Context context, final QueryRequest request, final Bindings bindings) throws ResourceException { if (!mask.contains(RequestType.QUERY)) { @@ -236,6 +242,7 @@ public void handleQuery(final Context context, final QueryRequest request, final handleRequest(context, request, bindings); } + @Override public void handleRead(final Context context, final ReadRequest request, final Bindings bindings) throws ResourceException { if (!mask.contains(RequestType.READ)) { @@ -244,6 +251,7 @@ public void handleRead(final Context context, final ReadRequest request, final B handleRequest(context, request, bindings); } + @Override public void handleUpdate(final Context context, final UpdateRequest request, final Bindings bindings) throws ResourceException { if (!mask.contains(RequestType.UPDATE)) { diff --git a/openidm-script/src/main/java/org/forgerock/openidm/script/ScriptedRequestHandler.java b/openidm-script/src/main/java/org/forgerock/openidm/script/ScriptedRequestHandler.java index 3635cb99e8..7956eb05d2 100644 --- a/openidm-script/src/main/java/org/forgerock/openidm/script/ScriptedRequestHandler.java +++ b/openidm-script/src/main/java/org/forgerock/openidm/script/ScriptedRequestHandler.java @@ -145,6 +145,7 @@ public Bindings createBindings() { // ----- Implementation of RequestHandler interface + @Override public Promise handleAction(final Context context, final ActionRequest request) { EventEntry measure = Publisher.start(Name.get("openidm/internal/script/" + this.getScriptEntry().getName().getName() + "/action"), null, null); try { @@ -178,6 +179,7 @@ public Promise handleAction(final Context con } } + @Override public Promise handleCreate(Context context, CreateRequest request) { EventEntry measure = Publisher.start(Name.get("openidm/internal/script/" + this.getScriptEntry().getName().getName() + "/create"), null, null); try { @@ -200,6 +202,7 @@ public Promise handleCreate(Context context } } + @Override public Promise handleDelete(Context context, DeleteRequest request) { EventEntry measure = Publisher.start(Name.get("openidm/internal/script/" + this.getScriptEntry().getName().getName() + "/delete"), null, null); try { @@ -222,6 +225,7 @@ public Promise handleDelete(Context context } } + @Override public Promise handlePatch(Context context, PatchRequest request) { EventEntry measure = Publisher.start(Name.get("openidm/internal/script/" + this.getScriptEntry().getName().getName() + "/patch"), null, null); try { @@ -249,6 +253,7 @@ public Promise handlePatch(Context context, * * {@inheritDoc} */ + @Override public Promise handleQuery(final Context context, final QueryRequest request, final QueryResourceHandler handler) { EventEntry measure = Publisher.start(Name.get("openidm/internal/script/" + this.getScriptEntry().getName().getName() + "/query"), null, null); @@ -375,6 +380,7 @@ private void handleQueryResultList(JsonValue resultList, QueryResourceHandler ha } + @Override public Promise handleRead(Context context, ReadRequest request) { EventEntry measure = Publisher.start(Name.get("openidm/internal/script/" + this.getScriptEntry().getName().getName() + "/read"), null, null); try { @@ -397,6 +403,7 @@ public Promise handleRead(Context context, } } + @Override public Promise handleUpdate(Context context, UpdateRequest request) { EventEntry measure = Publisher.start(Name.get("openidm/internal/script/" + this.getScriptEntry().getName().getName() + "/update"), null, null); try { diff --git a/openidm-script/src/main/java/org/forgerock/openidm/script/impl/ScriptRegistryService.java b/openidm-script/src/main/java/org/forgerock/openidm/script/impl/ScriptRegistryService.java index 0a125e5236..24dec489ca 100644 --- a/openidm-script/src/main/java/org/forgerock/openidm/script/impl/ScriptRegistryService.java +++ b/openidm-script/src/main/java/org/forgerock/openidm/script/impl/ScriptRegistryService.java @@ -12,7 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2013-2016 ForgeRock AS. - * Portions Copyrighted 2024 3A Systems LLC. + * Portions Copyrighted 2024-2026 3A Systems LLC. */ package org.forgerock.openidm.script.impl; @@ -380,6 +380,7 @@ protected void bindCryptoService(final CryptoService cryptoService) { static final long serialVersionUID = 1L; + @Override public JsonValue call(Parameter scope, Function callback, Object... arguments) throws ResourceException, NoSuchMethodException { if (arguments.length == 2) { @@ -419,6 +420,7 @@ public JsonValue call(Parameter scope, Function callback, Object... arguments static final long serialVersionUID = 1L; + @Override public JsonValue call(Parameter scope, Function callback, Object... arguments) throws ResourceException, NoSuchMethodException { if (arguments.length == 3) { @@ -464,6 +466,7 @@ public JsonValue call(Parameter scope, Function callback, Object... arguments static final long serialVersionUID = 1L; + @Override public JsonValue call(Parameter scope, Function callback, Object... arguments) throws ResourceException, NoSuchMethodException { if (arguments.length == 1 @@ -482,6 +485,7 @@ public JsonValue call(Parameter scope, Function callback, Object... arguments static final long serialVersionUID = 1L; + @Override public Boolean call(Parameter scope, Function callback, Object... arguments) throws ResourceException, NoSuchMethodException { if (arguments == null || arguments.length == 0) { @@ -501,6 +505,7 @@ public Boolean call(Parameter scope, Function callback, Object... arguments) static final long serialVersionUID = 1L; + @Override public Boolean call(Parameter scope, Function callback, Object... arguments) throws ResourceException, NoSuchMethodException { if (arguments == null || arguments.length == 0) { @@ -520,6 +525,7 @@ public Boolean call(Parameter scope, Function callback, Object... arguments) static final long serialVersionUID = 1L; + @Override public Boolean call(Parameter scope, Function callback, Object... arguments) throws ResourceException, NoSuchMethodException { if (arguments == null || arguments.length == 0 || arguments.length == 1) { @@ -627,6 +633,7 @@ public ScriptEntry takeScript(JsonValue script) throws ScriptException { private static enum IdentityServerFunctions implements Function { getProperty { + @Override public Object call(Parameter scope, Function callback, Object... arguments) throws ResourceException, NoSuchMethodException { boolean useCache = false; @@ -655,6 +662,7 @@ public Object call(Parameter scope, Function callback, Object... arguments) }, getWorkingLocation { + @Override public Object call(Parameter scope, Function callback, Object... arguments) throws ResourceException, NoSuchMethodException { if (arguments.length != 0) { @@ -665,6 +673,7 @@ public Object call(Parameter scope, Function callback, Object... arguments) }, getProjectLocation { + @Override public Object call(Parameter scope, Function callback, Object... arguments) throws ResourceException, NoSuchMethodException { if (arguments.length != 0) { @@ -675,6 +684,7 @@ public Object call(Parameter scope, Function callback, Object... arguments) } }, getInstallLocation { + @Override public Object call(Parameter scope, Function callback, Object... arguments) throws ResourceException, NoSuchMethodException { if (arguments.length != 0) { @@ -703,6 +713,7 @@ private boolean isSourceUnit(String name) { // ----- Implementation of RequestHandler interface + @Override public Promise handleAction(final Context context, final ActionRequest request) { String resourcePath = request.getResourcePath(); JsonValue content = request.getContent(); @@ -758,32 +769,38 @@ public Promise handleAction(final Context con } } + @Override public Promise handleQuery(final Context context, final QueryRequest request, final QueryResourceHandler handler) { final ResourceException e = new NotSupportedException("Query operations are not supported"); return e.asPromise(); } + @Override public Promise handleRead(final Context context, final ReadRequest request) { final ResourceException e = new NotSupportedException("Read operations are not supported"); return e.asPromise(); } + @Override public Promise handleCreate(final Context context, final CreateRequest request) { final ResourceException e = new NotSupportedException("Create operations are not supported"); return e.asPromise(); } + @Override public Promise handleDelete(final Context context, final DeleteRequest request) { final ResourceException e = new NotSupportedException("Delete operations are not supported"); return e.asPromise(); } + @Override public Promise handlePatch(final Context context, final PatchRequest request) { final ResourceException e = new NotSupportedException("Patch operations are not supported"); return e.asPromise(); } + @Override public Promise handleUpdate(final Context context, final UpdateRequest request) { final ResourceException e = new NotSupportedException("Update operations are not supported"); return e.asPromise(); @@ -846,6 +863,7 @@ public void auditScheduledService(final Context context, final AuditEvent auditE * @throws InternalServerErrorException on script execution error * @throws BadRequestException on script null or inactive */ + @Override public JsonValue execScript(Context context, ScriptEntry script, Map bindings) throws ForbiddenException, InternalServerErrorException, BadRequestException { if (null != script && script.isActive()) { diff --git a/openidm-script/src/main/java/org/forgerock/openidm/script/impl/metadata/ConfigMeta.java b/openidm-script/src/main/java/org/forgerock/openidm/script/impl/metadata/ConfigMeta.java index d65bdce732..2870aa3334 100644 --- a/openidm-script/src/main/java/org/forgerock/openidm/script/impl/metadata/ConfigMeta.java +++ b/openidm-script/src/main/java/org/forgerock/openidm/script/impl/metadata/ConfigMeta.java @@ -50,6 +50,7 @@ public class ConfigMeta implements MetaDataProvider { */ final static Logger logger = LoggerFactory.getLogger(ConfigMeta.class); + @Override public List getPropertiesToEncrypt(String pidOrFactory, String instanceAlias, JsonValue config) throws WaitForMetaData, NotConfiguration { if (ScriptRegistryService.PID.equalsIgnoreCase(pidOrFactory)) { diff --git a/openidm-security-jetty/src/main/java/org/forgerock/openidm/http/internal/JettySecurityConfigurator.java b/openidm-security-jetty/src/main/java/org/forgerock/openidm/http/internal/JettySecurityConfigurator.java index 02055b9ddc..078a5f6808 100644 --- a/openidm-security-jetty/src/main/java/org/forgerock/openidm/http/internal/JettySecurityConfigurator.java +++ b/openidm-security-jetty/src/main/java/org/forgerock/openidm/http/internal/JettySecurityConfigurator.java @@ -21,7 +21,7 @@ * your own identifying information: * "Portions Copyrighted [year] [name of copyright owner]" * - * Portions Copyrighted 2025 3A Systems LLC. + * Portions Copyrighted 2025-2026 3A Systems LLC. */ package org.forgerock.openidm.http.internal; @@ -48,6 +48,7 @@ public final class JettySecurityConfigurator implements SecurityConfigurator { public JettySecurityConfigurator() { } + @Override public void activate(HttpService httpService, HttpContext httpContext, ComponentContext context) { // TODO: consider making configurable @@ -82,6 +83,7 @@ public void activate(HttpService httpService, HttpContext httpContext, Componen } } + @Override public void deactivate(HttpService httpService, HttpContext httpContext, ComponentContext context) { } } diff --git a/openidm-servlet-registrator/src/main/java/org/forgerock/openidm/servletregistration/impl/ServletRegistrationSingleton.java b/openidm-servlet-registrator/src/main/java/org/forgerock/openidm/servletregistration/impl/ServletRegistrationSingleton.java index 6fcdecc6f0..1e85b16256 100644 --- a/openidm-servlet-registrator/src/main/java/org/forgerock/openidm/servletregistration/impl/ServletRegistrationSingleton.java +++ b/openidm-servlet-registrator/src/main/java/org/forgerock/openidm/servletregistration/impl/ServletRegistrationSingleton.java @@ -144,6 +144,7 @@ public void deactivate(ComponentContext context) { * {@inheritDoc} */ @SuppressWarnings("rawtypes") + @Override public void registerServlet(String alias, Servlet servlet, Dictionary initparams) throws ServletException, NamespaceException { webContainer.registerServlet(alias, servlet, initparams, sharedContext); } @@ -151,6 +152,7 @@ public void registerServlet(String alias, Servlet servlet, Dictionary initparams /** * {@inheritDoc} */ + @Override public void unregisterServlet(Servlet servlet) { webContainer.unregisterServlet(servlet); } @@ -306,6 +308,7 @@ public FilterProxy(Filter filter, ClassLoader threadCtxClassloader, this.preInvokeReqAttributes = preInvokeReqAttributes; } + @Override public Object invoke(Object proxy, Method m, Object[] args) throws Throwable { ClassLoader origCL = Thread.currentThread().getContextClassLoader(); try { diff --git a/openidm-shell/src/main/java/org/forgerock/openidm/shell/CustomCommandScope.java b/openidm-shell/src/main/java/org/forgerock/openidm/shell/CustomCommandScope.java index 1ffb655145..202fbb8f4c 100644 --- a/openidm-shell/src/main/java/org/forgerock/openidm/shell/CustomCommandScope.java +++ b/openidm-shell/src/main/java/org/forgerock/openidm/shell/CustomCommandScope.java @@ -244,6 +244,7 @@ protected List getAllMethodsByName(String name) { } Collections.sort(allNamedMethods, new Comparator() { + @Override public int compare(Method o1, Method o2) { Integer l1 = o1.getParameterTypes().length; Integer l2 = o2.getParameterTypes().length; diff --git a/openidm-shell/src/main/java/org/forgerock/openidm/shell/felixgogo/Activator.java b/openidm-shell/src/main/java/org/forgerock/openidm/shell/felixgogo/Activator.java index 069bca5e11..346c1844e1 100644 --- a/openidm-shell/src/main/java/org/forgerock/openidm/shell/felixgogo/Activator.java +++ b/openidm-shell/src/main/java/org/forgerock/openidm/shell/felixgogo/Activator.java @@ -15,6 +15,8 @@ * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. + * + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.shell.felixgogo; @@ -78,6 +80,7 @@ public class Activator implements BundleActivator { * @param context the bundle context * @throws Exception on failure to create the service tracker for the provided filter */ + @Override public void start(BundleContext context) throws Exception { bc = context; shellCommandsTracker = new ServiceTracker( @@ -97,6 +100,7 @@ public void start(BundleContext context) throws Exception { * @param bundleContext the bundle context * @throws Exception on errors */ + @Override public void stop(BundleContext bundleContext) throws Exception { shellCommandsTracker.close(); shellCommandsTracker = null; @@ -126,6 +130,7 @@ private boolean isValidCommandMethod(Object service, String commandName) { */ private class ShellCommandsCustomizer implements ServiceTrackerCustomizer { + @Override public CustomCommandScope addingService(ServiceReference reference) { CustomCommandScope service = bc.getService(reference); Object groupId = service.getScope(); @@ -161,10 +166,12 @@ public CustomCommandScope addingService(ServiceReference ref } } + @Override public void modifiedService(ServiceReference reference, CustomCommandScope service) { // ignore } + @Override public void removedService(ServiceReference reference, CustomCommandScope service) { // unregister CommandGroup services that belongs to this service registration Long serviceId = (Long) reference.getProperty(Constants.SERVICE_ID); diff --git a/openidm-shell/src/main/java/org/forgerock/openidm/shell/impl/BasicCommandScope.java b/openidm-shell/src/main/java/org/forgerock/openidm/shell/impl/BasicCommandScope.java index df69b18cf4..87bbcf919c 100644 --- a/openidm-shell/src/main/java/org/forgerock/openidm/shell/impl/BasicCommandScope.java +++ b/openidm-shell/src/main/java/org/forgerock/openidm/shell/impl/BasicCommandScope.java @@ -15,6 +15,8 @@ * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. + * + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.shell.impl; @@ -40,6 +42,7 @@ public class BasicCommandScope extends CustomCommandScope { /** * {@inheritDoc} */ + @Override public Map getFunctionMap() { Map help = new HashMap(); help.put("help", getShortHeader("help")); @@ -51,6 +54,7 @@ public Map getFunctionMap() { /** * {@inheritDoc} */ + @Override public String getScope() { return "basic"; } diff --git a/openidm-shell/src/main/java/org/forgerock/openidm/shell/impl/CommandProxy.java b/openidm-shell/src/main/java/org/forgerock/openidm/shell/impl/CommandProxy.java index a3d79cbdd0..d403851191 100644 --- a/openidm-shell/src/main/java/org/forgerock/openidm/shell/impl/CommandProxy.java +++ b/openidm-shell/src/main/java/org/forgerock/openidm/shell/impl/CommandProxy.java @@ -15,6 +15,8 @@ * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. + * + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.shell.impl; @@ -53,6 +55,7 @@ public CommandProxy(CustomCommandScope tgt, String function) { * @return the result of the command execution * @throws Exception from command execution / invocation */ + @Override public Object execute(CommandSession session, List arguments) throws Exception { try { if (tgt instanceof Function) { diff --git a/openidm-shell/src/main/java/org/forgerock/openidm/shell/impl/LocalCommandScope.java b/openidm-shell/src/main/java/org/forgerock/openidm/shell/impl/LocalCommandScope.java index fca303974f..ce36991e31 100644 --- a/openidm-shell/src/main/java/org/forgerock/openidm/shell/impl/LocalCommandScope.java +++ b/openidm-shell/src/main/java/org/forgerock/openidm/shell/impl/LocalCommandScope.java @@ -12,6 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2011-2016 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.shell.impl; @@ -58,6 +59,7 @@ public class LocalCommandScope extends CustomCommandScope { /** * {@inheritDoc} */ + @Override public Map getFunctionMap() { Map help = new HashMap(); help.put("validate", getLongHeader("validate")); @@ -70,6 +72,7 @@ public Map getFunctionMap() { /** * {@inheritDoc} */ + @Override public String getScope() { return "local"; } @@ -169,6 +172,7 @@ public void validate(CommandSession session) { session.getConsole().println("[Validating] Load JSON configuration files from:"); session.getConsole().append("[Validating] \t").println(file.getAbsolutePath()); FileFilter filter = new FileFilter() { + @Override public boolean accept(File f) { return (f.isDirectory()) || (f.getName().endsWith(".json")); } diff --git a/openidm-shell/src/main/java/org/forgerock/openidm/shell/impl/RemoteCommandScope.java b/openidm-shell/src/main/java/org/forgerock/openidm/shell/impl/RemoteCommandScope.java index dd484947bd..18dbcb57f9 100644 --- a/openidm-shell/src/main/java/org/forgerock/openidm/shell/impl/RemoteCommandScope.java +++ b/openidm-shell/src/main/java/org/forgerock/openidm/shell/impl/RemoteCommandScope.java @@ -103,6 +103,7 @@ private static String getEffectiveIdmUrl() { /** * {@inheritDoc} */ + @Override public Map getFunctionMap() { Map help = new HashMap<>(); help.put("configimport", getLongHeader("configimport")); @@ -115,6 +116,7 @@ public Map getFunctionMap() { /** * {@inheritDoc} */ + @Override public String getScope() { return "remote"; } @@ -372,6 +374,7 @@ public void configimport( console.append("[ConfigImport] \t").println(file.getAbsolutePath()); FileFilter filter = new FileFilter() { + @Override public boolean accept(File f) { return f.getName().endsWith(".json"); } diff --git a/openidm-shell/src/main/java/org/forgerock/openidm/shell/impl/UpdateCommand.java b/openidm-shell/src/main/java/org/forgerock/openidm/shell/impl/UpdateCommand.java index dfdb1267d5..3b37049e90 100644 --- a/openidm-shell/src/main/java/org/forgerock/openidm/shell/impl/UpdateCommand.java +++ b/openidm-shell/src/main/java/org/forgerock/openidm/shell/impl/UpdateCommand.java @@ -12,6 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2015-2016 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.shell.impl; @@ -877,6 +878,7 @@ public ExecutorStatus execute(Context context, UpdateExecutionState state) { * @return implemented to return true if the archive data is null or doesn't need to restart and therefore we * should exit maintenance mode and if the archive data is null. */ + @Override public boolean onCondition(UpdateExecutionState state) { return !isRestartRequired(state); } @@ -924,6 +926,7 @@ public ExecutorStatus execute(Context context, UpdateExecutionState state) { * @return implemented to return true if the archive data is null or doesn't need to restart and therefore we * should exit maintenance mode and if the archive data is null. */ + @Override public boolean onCondition(UpdateExecutionState state) { return !isRestartRequired(state); } diff --git a/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/BlockingPublisher.java b/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/BlockingPublisher.java index 09bbd2fa9b..bf0c4fb4de 100644 --- a/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/BlockingPublisher.java +++ b/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/BlockingPublisher.java @@ -75,6 +75,7 @@ public static PluggablePublisher getInstance() { return INSTANCE; } + @Override public final EventEntry start(Name eventName, Object payload, Object context) { EventEntryImpl eventEntry = new EventEntryImpl(); eventEntry.eventName = eventName; @@ -86,9 +87,11 @@ public final EventEntry start(Name eventName, Object payload, Object context) { return eventEntry; } + @Override public final void setResult(Object result, EventEntry entry) { } + @Override public final void end(Name eventName, EventEntry entry) { try { queue.put(entry); diff --git a/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/DisabledEventEntry.java b/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/DisabledEventEntry.java index 880d1b821a..bc9ada5f29 100644 --- a/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/DisabledEventEntry.java +++ b/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/DisabledEventEntry.java @@ -33,12 +33,15 @@ public class DisabledEventEntry implements EventEntry { public final void start() { } + @Override public final void end() { } + @Override public final void setResult(Object result) { } + @Override public String toString() { return "Event publishing disabled"; } diff --git a/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/DisabledPublisher.java b/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/DisabledPublisher.java index 60ec10957d..2d74d52bb8 100644 --- a/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/DisabledPublisher.java +++ b/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/DisabledPublisher.java @@ -34,13 +34,16 @@ public static PluggablePublisher getInstance() { return INSTANCE; } + @Override public final EventEntry start(Name eventName, Object payload, Object context) { return ENTRY; } + @Override public final void setResult(Object result, EventEntry delegate) { } + @Override public final void end(Name eventName, EventEntry callingEntry) { } } diff --git a/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/DisruptorReferringEventEntry.java b/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/DisruptorReferringEventEntry.java index c0ff8843b3..e2c0930c28 100644 --- a/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/DisruptorReferringEventEntry.java +++ b/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/DisruptorReferringEventEntry.java @@ -42,6 +42,7 @@ public class DisruptorReferringEventEntry { public final static EventFactory EVENT_FACTORY = new EventFactory() { + @Override public DisruptorReferringEventEntry newInstance() { return new DisruptorReferringEventEntry(); } @@ -80,6 +81,7 @@ String getFormattedDuration() { return StatisticsHandler.formatNsAsMs(getDuration()); } + @Override public String toString() { if (delegate != null && delegate.eventName != null) { return "Event name: " diff --git a/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/DisruptorReferringPublisher.java b/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/DisruptorReferringPublisher.java index ec780d954c..1e9bf09de6 100644 --- a/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/DisruptorReferringPublisher.java +++ b/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/DisruptorReferringPublisher.java @@ -78,6 +78,7 @@ public static PluggablePublisher getInstance() { return INSTANCE; } + @Override public final EventEntry start(Name eventName, Object payload, Object context) { // For start event, do not hold a place in the ringbuffer (yet) // to avoid limiting long running measurements @@ -93,9 +94,11 @@ public final EventEntry start(Name eventName, Object payload, Object context) { return eventEntry; } + @Override public final void setResult(Object result, EventEntry delegate) { } + @Override public final void end(Name eventName, EventEntry delegate) { sequence = ringBuffer.next(); final DisruptorReferringEventEntry eventEntry = ringBuffer.claimAndGetPreallocated(sequence); diff --git a/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/DisruptorShortEventEntry.java b/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/DisruptorShortEventEntry.java index 8d012269c6..b81264ac7c 100644 --- a/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/DisruptorShortEventEntry.java +++ b/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/DisruptorShortEventEntry.java @@ -50,6 +50,7 @@ public class DisruptorShortEventEntry implements EventEntry { public final static EventFactory EVENT_FACTORY = new EventFactory() { + @Override public DisruptorShortEventEntry newInstance() { return new DisruptorShortEventEntry(); } @@ -60,11 +61,13 @@ final void start() { endTime = 0; } + @Override public final void end() { // User called this end() method directly, delegate the event publishing publisher.end(eventName, this); } + @Override public final void setResult(Object result) { this.result = result; } @@ -89,6 +92,7 @@ String getFormattedDuration() { return StatisticsHandler.formatNsAsMs(getDuration()); } + @Override public String toString() { if (eventName != null) { return "Event name: " + eventName.asString() + " duration: " + getFormattedDuration() diff --git a/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/DisruptorShortPublisher.java b/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/DisruptorShortPublisher.java index cfcbe870ea..cb222e82fd 100644 --- a/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/DisruptorShortPublisher.java +++ b/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/DisruptorShortPublisher.java @@ -71,6 +71,7 @@ public static PluggablePublisher getInstance() { return INSTANCE; } + @Override public final EventEntry start(Name eventName, Object payload, Object context) { sequence = ringBuffer.next(); final DisruptorShortEventEntry eventEntry = ringBuffer.claimAndGetPreallocated(sequence); @@ -85,9 +86,11 @@ public final EventEntry start(Name eventName, Object payload, Object context) { return eventEntry; } + @Override public final void setResult(Object result, EventEntry delegate) { } + @Override public final void end(Name eventName, EventEntry callingEntry) { // This end() gets called indirectly after the EventEntry end() gets // invoked by the user diff --git a/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/EventEntryImpl.java b/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/EventEntryImpl.java index cfeb050bd1..884279f127 100644 --- a/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/EventEntryImpl.java +++ b/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/EventEntryImpl.java @@ -47,12 +47,14 @@ final void start() { endTime = 0; } + @Override public final void end() { // User called this end() method directly, delegate the event publishing endTime = System.nanoTime(); publisher.end(eventName, this); } + @Override public final void setResult(Object result) { this.publisherResultSet = true; if (eventName.getResultHistoryEnabled()) { @@ -81,6 +83,7 @@ String getFormattedDuration() { return StatisticsHandler.formatNsAsMs(getDuration()); } + @Override public String toString() { if (eventName != null) { return "Event name: " + eventName.asString() + " duration: " + getFormattedDuration() diff --git a/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/MonitoringInfo.java b/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/MonitoringInfo.java index 7a3483bdd8..6efaa372d0 100644 --- a/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/MonitoringInfo.java +++ b/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/MonitoringInfo.java @@ -12,6 +12,7 @@ * information: "Portions Copyrighted [year] [name of copyright owner]". * * Copyright © 2012 ForgeRock AS. All rights reserved. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.smartevent.core; @@ -33,6 +34,7 @@ public void reset() { totalTime = 0; } + @Override public String toString() { return "Invocations: " + totalInvokes + " total time: " + StatisticsHandler.formatNsAsMs(totalTime) + " mean: " diff --git a/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/StatisticsHandler.java b/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/StatisticsHandler.java index dc321a2631..d1d984be0b 100644 --- a/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/StatisticsHandler.java +++ b/openidm-smartevent/src/main/java/org/forgerock/openidm/smartevent/core/StatisticsHandler.java @@ -127,6 +127,7 @@ public void run() { } } + @Override public Map getTotals() { Map stats = new TreeMap<>(); for (Map.Entry entry : map.entrySet()) { @@ -135,6 +136,7 @@ public Map getTotals() { return stats; } + @Override public Map getRecent() { // TODO: consider adding history for not yet end()-ed events // Present history ordered by start time, with latest start time first @@ -158,12 +160,14 @@ public Map getRecent() { return recent; } + @Override public void resetAllStatistics() { for (MonitoringInfo entry : map.values()) { entry.reset(); } } + @Override public void resetStatistics(String eventName) { MonitoringInfo entry = map.get(eventName); if (entry != null) { @@ -175,6 +179,7 @@ public void resetStatistics(String eventName) { } // TODO: move out of statistics + @Override public void setEventsEnabled(String eventName, boolean enabled) { Name entry = Name.get(eventName); if (entry != null) { @@ -186,6 +191,7 @@ public void setEventsEnabled(String eventName, boolean enabled) { } // TODO: move out of statistics + @Override public Map getEventsEnabledMap() { Map enabledMap = new TreeMap(); for (Map.Entry entry : Name.getAllNames().entrySet()) { @@ -195,6 +201,7 @@ public Map getEventsEnabledMap() { } // TODO: move out of statistics + @Override public void setResultHistoryEnabled(String eventName, boolean enabled) { Name entry = Name.get(eventName); if (entry != null) { @@ -206,6 +213,7 @@ public void setResultHistoryEnabled(String eventName, boolean enabled) { } // TODO: move out of statistics + @Override public Map getResultHistoryEnabledMap() { Map enabledMap = new TreeMap(); for (Map.Entry entry : Name.getAllNames().entrySet()) { @@ -252,6 +260,7 @@ public void onEvent(final DisruptorShortEventEntry eventEntry, final long sequen * @param sequence the sequence identifier if applicable to a publisher * @param endOfBatch if batching of event processing is used, a flag indicating the end of a batch */ + @Override public void onEvent(final DisruptorReferringEventEntry eventEntryWrap, final long sequence, final boolean endOfBatch) throws Exception { // TODO: provide switch for batch or individual end time diff --git a/openidm-system/src/main/java/org/forgerock/openidm/core/FrameworkPropertyAccessor.java b/openidm-system/src/main/java/org/forgerock/openidm/core/FrameworkPropertyAccessor.java index 528654dc90..e8d6d27209 100644 --- a/openidm-system/src/main/java/org/forgerock/openidm/core/FrameworkPropertyAccessor.java +++ b/openidm-system/src/main/java/org/forgerock/openidm/core/FrameworkPropertyAccessor.java @@ -2,6 +2,7 @@ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright (c) 2012-2013 ForgeRock AS. All Rights Reserved + * Portions Copyright 2026 3A Systems, LLC. * * The contents of this file are subject to the terms * of the Common Development and Distribution License @@ -64,6 +65,7 @@ public FrameworkPropertyAccessor(BundleContext context, PropertyAccessor delegat * Runtime Environment supports permissions. */ @SuppressWarnings("unchecked") + @Override public T getProperty(String key, T defaultValue, Class expected) { T value = null; if (null != key diff --git a/openidm-system/src/main/java/org/forgerock/openidm/core/IdentityServer.java b/openidm-system/src/main/java/org/forgerock/openidm/core/IdentityServer.java index 81f067d0ed..3116d14b03 100644 --- a/openidm-system/src/main/java/org/forgerock/openidm/core/IdentityServer.java +++ b/openidm-system/src/main/java/org/forgerock/openidm/core/IdentityServer.java @@ -166,6 +166,7 @@ public static IdentityServer initInstance(IdentityServer server) { * @return The value of the stored property if found, else the defaultValue. */ @SuppressWarnings("unchecked") + @Override public T getProperty(String key, T defaultValue, Class expected) { // First check System properties for our value. T value = systemPropertyAccessor.getProperty(key, null, expected); diff --git a/openidm-system/src/main/java/org/forgerock/openidm/core/ServicePropertyAccessor.java b/openidm-system/src/main/java/org/forgerock/openidm/core/ServicePropertyAccessor.java index 922928e74e..76926a5f82 100644 --- a/openidm-system/src/main/java/org/forgerock/openidm/core/ServicePropertyAccessor.java +++ b/openidm-system/src/main/java/org/forgerock/openidm/core/ServicePropertyAccessor.java @@ -2,6 +2,7 @@ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright (c) 2011-2013 ForgeRock AS. All Rights Reserved + * Portions Copyright 2026 3A Systems, LLC. * * The contents of this file are subject to the terms * of the Common Development and Distribution License @@ -72,6 +73,7 @@ public ServicePropertyAccessor(final BundleContext context, * Runtime Environment supports permissions. */ @SuppressWarnings("unchecked") + @Override public T getProperty(String key, T defaultValue, Class expected) { T value = null; ServiceReference>[] references = serviceTracker.getServiceReferences(); diff --git a/openidm-system/src/main/java/org/forgerock/openidm/core/SystemPropertyAccessor.java b/openidm-system/src/main/java/org/forgerock/openidm/core/SystemPropertyAccessor.java index 7a2d21d259..63c53953d4 100644 --- a/openidm-system/src/main/java/org/forgerock/openidm/core/SystemPropertyAccessor.java +++ b/openidm-system/src/main/java/org/forgerock/openidm/core/SystemPropertyAccessor.java @@ -2,6 +2,7 @@ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright (c) 2011-2013 ForgeRock AS. All Rights Reserved + * Portions Copyright 2026 3A Systems, LLC. * * The contents of this file are subject to the terms * of the Common Development and Distribution License @@ -53,6 +54,7 @@ public SystemPropertyAccessor(final PropertyAccessor delegate) { * property is not found. */ @SuppressWarnings("unchecked") + @Override public T getProperty(String key, T defaultValue, Class expected) { T value = null; if (null != key diff --git a/openidm-system/src/main/java/org/forgerock/openidm/core/internal/Activator.java b/openidm-system/src/main/java/org/forgerock/openidm/core/internal/Activator.java index 2b0b28ad45..ff8744acf5 100644 --- a/openidm-system/src/main/java/org/forgerock/openidm/core/internal/Activator.java +++ b/openidm-system/src/main/java/org/forgerock/openidm/core/internal/Activator.java @@ -12,6 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2012-2015 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.core.internal; @@ -37,6 +38,7 @@ public class Activator implements BundleActivator { private ServiceTracker, Map> serviceTracker = null; + @Override public void start(final BundleContext context) throws Exception { String customFilter = context.getProperty("org.forgerock.openidm.core.map.filter"); Filter filter = null; @@ -58,6 +60,7 @@ public void start(final BundleContext context) throws Exception { new FrameworkPropertyAccessor(context, null))); } + @Override public void stop(BundleContext context) throws Exception { if (null != serviceTracker) { serviceTracker.close(); diff --git a/openidm-util/src/main/java/org/forgerock/openidm/osgi/ServiceTrackerNotifier.java b/openidm-util/src/main/java/org/forgerock/openidm/osgi/ServiceTrackerNotifier.java index 90c8f717c8..e858376ae0 100644 --- a/openidm-util/src/main/java/org/forgerock/openidm/osgi/ServiceTrackerNotifier.java +++ b/openidm-util/src/main/java/org/forgerock/openidm/osgi/ServiceTrackerNotifier.java @@ -12,6 +12,7 @@ * information: "Portions Copyrighted [year] [name of copyright owner]". * * Copyright © 2011-2016 ForgeRock AS. All rights reserved. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.osgi; @@ -61,6 +62,7 @@ public ServiceTrackerNotifier(BundleContext context, java.lang.String clazz, this.context = context; } + @Override public T addingService(ServiceReference reference) { T service = super.addingService(reference); if (service == null) { @@ -72,6 +74,7 @@ public T addingService(ServiceReference reference) { } return service; } + @Override public void removedService(ServiceReference reference, T service) { if (listener != null) { listener.removedService(reference, service); @@ -79,6 +82,7 @@ public void removedService(ServiceReference reference, T service) { super.removedService(reference, service); } + @Override public void modifiedService(ServiceReference reference, T service) { if (service == null) { logger.warn("Framework issue, service in service tracker modified is null for {}", diff --git a/openidm-util/src/main/java/org/forgerock/openidm/osgi/ServiceUtil.java b/openidm-util/src/main/java/org/forgerock/openidm/osgi/ServiceUtil.java index 77f4db2e57..a23cb7558e 100644 --- a/openidm-util/src/main/java/org/forgerock/openidm/osgi/ServiceUtil.java +++ b/openidm-util/src/main/java/org/forgerock/openidm/osgi/ServiceUtil.java @@ -15,6 +15,8 @@ * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. + * + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.osgi; @@ -89,6 +91,7 @@ private static Pair, Object> findService(BundleContext ctx, if (refs != null) { // change the service order Arrays.sort(refs, new Comparator>() { + @Override public int compare(ServiceReference o1, ServiceReference o2) { return o2.compareTo(o1); } diff --git a/openidm-util/src/main/java/org/forgerock/openidm/util/JsonUtil.java b/openidm-util/src/main/java/org/forgerock/openidm/util/JsonUtil.java index c1b7e9cdb6..3bc318b106 100644 --- a/openidm-util/src/main/java/org/forgerock/openidm/util/JsonUtil.java +++ b/openidm-util/src/main/java/org/forgerock/openidm/util/JsonUtil.java @@ -12,6 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Portions copyright 2011-2016 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.util; @@ -252,6 +253,7 @@ public void setIndentSpaces(int noOfSpaces) { this.noOfSpaces = noOfSpaces; } + @Override public boolean isInline() { return false; } diff --git a/openidm-util/src/main/java/org/forgerock/openidm/util/NaturalOrderComparator.java b/openidm-util/src/main/java/org/forgerock/openidm/util/NaturalOrderComparator.java index 13779926f7..721688ef21 100644 --- a/openidm-util/src/main/java/org/forgerock/openidm/util/NaturalOrderComparator.java +++ b/openidm-util/src/main/java/org/forgerock/openidm/util/NaturalOrderComparator.java @@ -6,6 +6,7 @@ Based on the C version by Martin Pool, of which this is more or less a straight conversion. Copyright (C) 2000 by Martin Pool + Portions Copyright 2026 3A Systems, LLC. This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -74,6 +75,7 @@ else if (ca == 0 && cb == 0) } } + @Override public int compare(Object o1, Object o2) { String a = o1.toString(); diff --git a/openidm-workflow-activiti/src/main/java/org/forgerock/openidm/workflow/activiti/impl/ActivitiResource.java b/openidm-workflow-activiti/src/main/java/org/forgerock/openidm/workflow/activiti/impl/ActivitiResource.java index 4f90cbafcf..5390ee9465 100644 --- a/openidm-workflow-activiti/src/main/java/org/forgerock/openidm/workflow/activiti/impl/ActivitiResource.java +++ b/openidm-workflow-activiti/src/main/java/org/forgerock/openidm/workflow/activiti/impl/ActivitiResource.java @@ -12,6 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2012-2015 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.workflow.activiti.impl; @@ -54,12 +55,14 @@ public ActivitiResource(ProcessEngine engine) { new TaskDefinitionResource(engine)); resources.addRoute(uriTemplate("/processinstance"), new ProcessInstanceResource(engine, new Function() { + @Override public HistoricProcessInstanceQuery apply(ProcessEngine engine) { return engine.getHistoryService().createHistoricProcessInstanceQuery().unfinished(); } })); resources.addRoute(uriTemplate("/processinstance/history"), new ProcessInstanceResource(engine, new Function() { + @Override public HistoricProcessInstanceQuery apply(ProcessEngine engine) { return engine.getHistoryService().createHistoricProcessInstanceQuery(); } diff --git a/openidm-workflow-activiti/src/main/java/org/forgerock/openidm/workflow/activiti/impl/JsonGroup.java b/openidm-workflow-activiti/src/main/java/org/forgerock/openidm/workflow/activiti/impl/JsonGroup.java index 8319d9f3b5..74d5aee56e 100644 --- a/openidm-workflow-activiti/src/main/java/org/forgerock/openidm/workflow/activiti/impl/JsonGroup.java +++ b/openidm-workflow-activiti/src/main/java/org/forgerock/openidm/workflow/activiti/impl/JsonGroup.java @@ -12,6 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2012-2015 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.workflow.activiti.impl; @@ -36,26 +37,32 @@ public JsonGroup(JsonValue value) { super(value); } + @Override public String getId() { return get(SCIM_ID).asString(); } + @Override public void setId(String id) { put(SCIM_ID, id); } + @Override public String getName() { return get(SCIM_DISPLAYNAME).asString(); } + @Override public void setName(String name) { put(SCIM_DISPLAYNAME, name); } + @Override public String getType() { return get("type").asString(); } + @Override public void setType(String string) { put("type", string); } diff --git a/openidm-workflow-activiti/src/main/java/org/forgerock/openidm/workflow/activiti/impl/JsonUser.java b/openidm-workflow-activiti/src/main/java/org/forgerock/openidm/workflow/activiti/impl/JsonUser.java index c8e2629153..acaa546a43 100644 --- a/openidm-workflow-activiti/src/main/java/org/forgerock/openidm/workflow/activiti/impl/JsonUser.java +++ b/openidm-workflow-activiti/src/main/java/org/forgerock/openidm/workflow/activiti/impl/JsonUser.java @@ -12,6 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2012-2015 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.workflow.activiti.impl; @@ -50,18 +51,22 @@ public JsonUser(JsonValue value) { super(value); } + @Override public String getId() { return get(SCIM_USERNAME).required().asString(); } + @Override public void setId(String id) { put(SCIM_USERNAME, id); } + @Override public String getFirstName() { return get(SCIM_NAME).get(SCIM_NAME_GIVENNAME).asString(); } + @Override public void setFirstName(String firstName) { if (get(SCIM_NAME).isNull()) { put(SCIM_NAME, new LinkedHashMap(6)); @@ -71,6 +76,7 @@ public void setFirstName(String firstName) { } } + @Override public void setLastName(String lastName) { if (get(SCIM_NAME).isNull()) { put(SCIM_NAME, new LinkedHashMap(6)); @@ -80,24 +86,29 @@ public void setLastName(String lastName) { } } + @Override public String getLastName() { return get(SCIM_NAME).get(SCIM_NAME_FAMILYNAME).asString(); } + @Override public void setEmail(String email) { } + @Override public String getEmail() { return null; } + @Override public String getPassword() { JsonValue password = get(SCIM_PASSWORD); JsonValue decryptedPassword = cryptoService.decrypt(password); return decryptedPassword.asString(); } + @Override public void setPassword(String password) { put(SCIM_PASSWORD, password); } diff --git a/openidm-workflow-activiti/src/main/java/org/forgerock/openidm/workflow/activiti/impl/JsonValueType.java b/openidm-workflow-activiti/src/main/java/org/forgerock/openidm/workflow/activiti/impl/JsonValueType.java index 192f3a23f8..d4f41545db 100644 --- a/openidm-workflow-activiti/src/main/java/org/forgerock/openidm/workflow/activiti/impl/JsonValueType.java +++ b/openidm-workflow-activiti/src/main/java/org/forgerock/openidm/workflow/activiti/impl/JsonValueType.java @@ -12,6 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2012-2015 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.openidm.workflow.activiti.impl; @@ -33,14 +34,17 @@ public class JsonValueType implements VariableType { private static final ObjectMapper mapper = new ObjectMapper(); + @Override public String getTypeName() { return "jsonvalue"; } + @Override public boolean isCachable() { return false; } + @Override public Object getValue(ValueFields valueFields) { String value = valueFields.getTextValue(); if (null != value) { @@ -59,6 +63,7 @@ public Object getValue(ValueFields valueFields) { return null; } + @Override public void setValue(Object value, ValueFields valueFields) { if (null == value) { valueFields.setTextValue(null); @@ -76,6 +81,7 @@ public void setValue(Object value, ValueFields valueFields) { } } + @Override public boolean isAbleToStore(Object value) { if (value == null) { return true; diff --git a/openidm-workflow-activiti/src/main/java/org/forgerock/openidm/workflow/activiti/impl/SharedIdentityService.java b/openidm-workflow-activiti/src/main/java/org/forgerock/openidm/workflow/activiti/impl/SharedIdentityService.java index bdac831610..a9ff27cb95 100644 --- a/openidm-workflow-activiti/src/main/java/org/forgerock/openidm/workflow/activiti/impl/SharedIdentityService.java +++ b/openidm-workflow-activiti/src/main/java/org/forgerock/openidm/workflow/activiti/impl/SharedIdentityService.java @@ -116,6 +116,7 @@ public QueryResponse query(QueryRequest request, Collection getUserInfoKeys(String userId) { return null; } @@ -313,6 +330,7 @@ public List getUserInfoKeys(String userId) { * Delete an entry of the generic extensibility key-value pairs associated * with a user */ + @Override public void deleteUserInfo(String userId, String key) { } diff --git a/openidm-workflow-activiti/src/main/java/org/forgerock/openidm/workflow/activiti/metadata/ConfigMeta.java b/openidm-workflow-activiti/src/main/java/org/forgerock/openidm/workflow/activiti/metadata/ConfigMeta.java index f6611ddc7e..fa6b37b942 100644 --- a/openidm-workflow-activiti/src/main/java/org/forgerock/openidm/workflow/activiti/metadata/ConfigMeta.java +++ b/openidm-workflow-activiti/src/main/java/org/forgerock/openidm/workflow/activiti/metadata/ConfigMeta.java @@ -48,6 +48,7 @@ public ConfigMeta() { propertiesToEncrypt.put(ActivitiServiceImpl.PID, props); } + @Override public List getPropertiesToEncrypt(String pidOrFactory, String instanceAlias, JsonValue config) { if (propertiesToEncrypt.containsKey(pidOrFactory)) { return propertiesToEncrypt.get(pidOrFactory); diff --git a/openidm-zip/src/main/resources/samples/audit-jms-sample/consumer/src/main/java/SimpleConsumer.java b/openidm-zip/src/main/resources/samples/audit-jms-sample/consumer/src/main/java/SimpleConsumer.java index 0df7c1028c..bf332f57a5 100644 --- a/openidm-zip/src/main/resources/samples/audit-jms-sample/consumer/src/main/java/SimpleConsumer.java +++ b/openidm-zip/src/main/resources/samples/audit-jms-sample/consumer/src/main/java/SimpleConsumer.java @@ -12,7 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2016 ForgeRock AS. - * Portions copyright 2025 3A Systems LLC. + * Portions copyright 2025-2026 3A Systems LLC. */ import jakarta.jms.Connection; @@ -68,6 +68,7 @@ public static void main(String[] args) throws Exception { // create a new subscriber to receive messages MessageConsumer consumer = session.createConsumer(jmsTopic); consumer.setMessageListener(new MessageListener() { + @Override public void onMessage(Message message) { try { if (message instanceof TextMessage) { From 0c484b1a138392504682948e09b175125317b3ee Mon Sep 17 00:00:00 2001 From: Valera V Harseko Date: Fri, 18 Sep 2026 17:50:56 +0300 Subject: [PATCH 2/2] CodeQL: exclude java/unused-parameter The 114 findings are parameters dictated by interface, OSGi Declarative Services and Disruptor contracts; the query carries no signal here. --- .github/workflows/codeql.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 7226511749..d4b8977676 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -61,6 +61,11 @@ jobs: build-mode: ${{ matrix.build-mode }} queries: security-and-quality config: | + query-filters: + # Parameters are dictated by interface, OSGi Declarative Services and Disruptor + # contracts throughout the code base; the query only reports those. + - exclude: + id: java/unused-parameter paths-ignore: - '**/src/test/**' - '**/src/it/**'