[java-identity-provider] branch main updated: IDP-2083 - Treat NonnullElements as the default for collections

Scott Cantor cantor.2 at osu.edu
Tue Jun 20 21:14:15 UTC 2023


This is an automated email from the git hooks/post-receive script.

scantor pushed a commit to branch main
in repository java-identity-provider.

View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=f92814e0863e21bccbe4643a49f2e7a7fc1205f8

The following commit(s) were added to refs/heads/main by this push:
     new f92814e08 IDP-2083 - Treat NonnullElements as the default for collections
f92814e08 is described below

commit f92814e0863e21bccbe4643a49f2e7a7fc1205f8
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Tue Jun 20 17:14:12 2023 -0400

    IDP-2083 - Treat NonnullElements as the default for collections
    
    https://shibboleth.atlassian.net/browse/IDP-2083
    
    Review idp-profile-api/impl.
---
 .../shibboleth/idp/profile/AbstractProfileAction.java    | 15 ++++++++-------
 .../AbstractInterceptorAwareProfileConfiguration.java    | 10 ++++------
 .../config/InterceptorAwareProfileConfiguration.java     |  5 ++---
 .../config/navigate/InboundFlowsLookupFunction.java      |  5 +----
 .../config/navigate/OutboundFlowsLookupFunction.java     |  5 +----
 .../idp/profile/config/navigate/package-info.java        |  4 +++-
 .../net/shibboleth/idp/profile/config/package-info.java  |  4 +++-
 .../idp/profile/context/MultiRelyingPartyContext.java    |  9 ++++-----
 .../idp/profile/context/ProfileInterceptorContext.java   |  9 ++++-----
 .../navigate/SpringEventToViewLookupFunction.java        |  5 ++---
 .../idp/profile/context/navigate/package-info.java       |  5 ++++-
 .../net/shibboleth/idp/profile/context/package-info.java |  5 ++++-
 .../interceptor/AbstractProfileInterceptorAction.java    |  7 ++++---
 .../interceptor/ProfileInterceptorFlowDescriptor.java    |  2 +-
 .../shibboleth/idp/profile/interceptor/package-info.java |  4 +++-
 .../net/shibboleth/idp/profile/logic/package-info.java   |  4 +++-
 .../java/net/shibboleth/idp/profile/package-info.java    |  4 +++-
 .../idp/profile/audit/impl/PopulateAuditContext.java     | 16 +++++++---------
 .../shibboleth/idp/profile/audit/impl/WriteAuditLog.java | 11 +++++------
 .../shibboleth/idp/profile/audit/impl/package-info.java  |  4 +++-
 .../net/shibboleth/idp/profile/impl/LogContextTree.java  | 16 +++++++++-------
 .../idp/profile/impl/LogSpringContextInfo.java           | 16 +++++++++-------
 .../idp/profile/impl/MetadataQueryRequestDecoder.java    |  2 +-
 .../shibboleth/idp/profile/impl/ResolveAttributes.java   |  3 +--
 .../impl/RethrowingFlowExecutionExceptionHandler.java    |  2 --
 .../idp/profile/impl/WebFlowMessageHandlerAdaptor.java   |  2 +-
 .../net/shibboleth/idp/profile/impl/package-info.java    |  4 +++-
 .../impl/PopulateProfileInterceptorContext.java          |  5 ++---
 .../impl/ProfileInterceptorFlowDescriptorManager.java    |  3 +--
 .../impl/WriteProfileInterceptorResultToStorage.java     |  2 +-
 .../idp/profile/interceptor/impl/package-info.java       |  4 +++-
 .../messaging/impl/SelectRelyingPartyConfiguration.java  |  3 ++-
 .../idp/profile/messaging/impl/package-info.java         |  4 +++-
 .../support/PathInfoSupportingFlowUrlHandler.java        |  5 ++---
 .../ProfileRequestContextFlowExecutionListener.java      |  6 +++---
 .../net/shibboleth/idp/profile/support/package-info.java |  4 +++-
 36 files changed, 113 insertions(+), 101 deletions(-)

diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/AbstractProfileAction.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/AbstractProfileAction.java
index ec631e0ea..2904150f5 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/AbstractProfileAction.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/AbstractProfileAction.java
@@ -65,8 +65,7 @@ import net.shibboleth.shared.primitive.LoggerFactory;
  * instead.</p>
  */
 @ThreadSafe
-public abstract class AbstractProfileAction
-        extends AbstractConditionalProfileAction
+public abstract class AbstractProfileAction extends AbstractConditionalProfileAction
         implements Action, MessageSource, MessageSourceAware {
 
     /** Class logger. */
@@ -185,11 +184,12 @@ public abstract class AbstractProfileAction
         if (eventCtx != null) {
             final Object event = eventCtx.getEvent();
             
-            if (event instanceof Event) {
-                return (Event) event;
-            } else if (event instanceof String) {
-                return ActionSupport.buildEvent(action, (String) event);
+            if (event instanceof Event e) {
+                return e;
+            } else if (event instanceof String e) {
+                return ActionSupport.buildEvent(action, e);
             } else if (event instanceof AttributeMap) {
+                @SuppressWarnings("unchecked")
                 final AttributeMap<Object> map = (AttributeMap<Object>) event;
                 return ActionSupport.buildEvent(action, map.getString("eventId", EventIds.PROCEED_EVENT_ID), map);
             }
@@ -368,4 +368,5 @@ public abstract class AbstractProfileAction
         }
         return springRequestCtx.getRequestContext();
     }
-}
+
+}
\ No newline at end of file
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/AbstractInterceptorAwareProfileConfiguration.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/AbstractInterceptorAwareProfileConfiguration.java
index 14b7c723c..7b711d02b 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/AbstractInterceptorAwareProfileConfiguration.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/AbstractInterceptorAwareProfileConfiguration.java
@@ -26,7 +26,6 @@ import javax.annotation.Nullable;
 
 import net.shibboleth.profile.config.AbstractConditionalProfileConfiguration;
 import net.shibboleth.shared.annotation.ParameterName;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.annotation.constraint.NotLive;
 import net.shibboleth.shared.annotation.constraint.Unmodifiable;
@@ -51,7 +50,6 @@ public abstract class AbstractInterceptorAwareProfileConfiguration extends Abstr
     /** Lookup function to supply #outboundFlows property. */
     @Nonnull private Function<ProfileRequestContext,List<String>> outboundFlowsLookupStrategy;
 
-
     /**
      * Constructor.
      * 
@@ -64,7 +62,7 @@ public abstract class AbstractInterceptorAwareProfileConfiguration extends Abstr
     }
 
     /** {@inheritDoc} */
-    @Nonnull @NonnullElements @NotLive @Unmodifiable public List<String> getInboundInterceptorFlows(
+    @Nonnull @NotLive @Unmodifiable public List<String> getInboundInterceptorFlows(
         @Nullable final ProfileRequestContext profileRequestContext) {
         final List<String> flows = inboundFlowsLookupStrategy.apply(profileRequestContext);
         if (flows != null) {
@@ -78,7 +76,7 @@ public abstract class AbstractInterceptorAwareProfileConfiguration extends Abstr
      * 
      * @param flows   flow identifiers to enable
      */
-    public void setInboundInterceptorFlows(@Nullable @NonnullElements final Collection<String> flows) {
+    public void setInboundInterceptorFlows(@Nullable final Collection<String> flows) {
         if (flows != null) {
             inboundFlowsLookupStrategy =
                     FunctionSupport.constant(List.copyOf(StringSupport.normalizeStringCollection(flows)));
@@ -100,7 +98,7 @@ public abstract class AbstractInterceptorAwareProfileConfiguration extends Abstr
     }
 
     /** {@inheritDoc} */
-    @Nonnull @NonnullElements @NotLive @Unmodifiable public List<String> getOutboundInterceptorFlows(
+    @Nonnull @NotLive @Unmodifiable public List<String> getOutboundInterceptorFlows(
             @Nullable final ProfileRequestContext profileRequestContext) {
         final List<String> flows = outboundFlowsLookupStrategy.apply(profileRequestContext);
         if (flows != null) {
@@ -114,7 +112,7 @@ public abstract class AbstractInterceptorAwareProfileConfiguration extends Abstr
      * 
      * @param flows   flow identifiers to enable
      */
-    public void setOutboundInterceptorFlows(@Nullable @NonnullElements final Collection<String> flows) {
+    public void setOutboundInterceptorFlows(@Nullable final Collection<String> flows) {
         if (flows != null) {
             outboundFlowsLookupStrategy =
                     FunctionSupport.constant(List.copyOf(StringSupport.normalizeStringCollection(flows)));
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/InterceptorAwareProfileConfiguration.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/InterceptorAwareProfileConfiguration.java
index 4a2b8b51b..844d93606 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/InterceptorAwareProfileConfiguration.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/InterceptorAwareProfileConfiguration.java
@@ -26,7 +26,6 @@ import org.opensaml.profile.context.ProfileRequestContext;
 
 import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.shared.annotation.ConfigurationSetting;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.annotation.constraint.NotLive;
 import net.shibboleth.shared.annotation.constraint.Unmodifiable;
 
@@ -50,7 +49,7 @@ public interface InterceptorAwareProfileConfiguration extends ProfileConfigurati
      * @return  a set of interceptor flow IDs to enable
      */
     @ConfigurationSetting(name="inboundInterceptorFlows")
-    @Nonnull @NonnullElements @NotLive @Unmodifiable List<String> getInboundInterceptorFlows(
+    @Nonnull @NotLive @Unmodifiable List<String> getInboundInterceptorFlows(
             @Nullable final ProfileRequestContext profileRequestContext);
 
     /**
@@ -66,7 +65,7 @@ public interface InterceptorAwareProfileConfiguration extends ProfileConfigurati
      * @return  a set of interceptor flow IDs to enable
      */
     @ConfigurationSetting(name="outboundInterceptorFlows")
-    @Nonnull @NonnullElements @NotLive @Unmodifiable List<String> getOutboundInterceptorFlows(
+    @Nonnull @NotLive @Unmodifiable List<String> getOutboundInterceptorFlows(
             @Nullable final ProfileRequestContext profileRequestContext);
     
 }
\ No newline at end of file
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/InboundFlowsLookupFunction.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/InboundFlowsLookupFunction.java
index d82db9487..e8cb6934a 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/InboundFlowsLookupFunction.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/InboundFlowsLookupFunction.java
@@ -25,7 +25,6 @@ import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.profile.context.RelyingPartyContext;
 import net.shibboleth.profile.context.navigate.AbstractRelyingPartyLookupFunction;
 import net.shibboleth.idp.profile.config.InterceptorAwareProfileConfiguration;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.annotation.constraint.NotLive;
 import net.shibboleth.shared.annotation.constraint.Unmodifiable;
 import net.shibboleth.shared.collection.CollectionSupport;
@@ -42,9 +41,7 @@ import org.opensaml.profile.context.ProfileRequestContext;
 public class InboundFlowsLookupFunction extends AbstractRelyingPartyLookupFunction<Collection<String>> {
 
     /** {@inheritDoc} */
-    @Override
-    @Nullable @NonnullElements @NotLive @Unmodifiable public Collection<String> apply(
-            @Nullable final ProfileRequestContext input) {
+    @Nullable @NotLive @Unmodifiable public Collection<String> apply(@Nullable final ProfileRequestContext input) {
         final RelyingPartyContext rpc = getRelyingPartyContextLookupStrategy().apply(input);
         if (rpc != null) {
             final ProfileConfiguration pc = rpc.getProfileConfig();
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/OutboundFlowsLookupFunction.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/OutboundFlowsLookupFunction.java
index 3387a1809..22b96cb32 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/OutboundFlowsLookupFunction.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/OutboundFlowsLookupFunction.java
@@ -25,7 +25,6 @@ import net.shibboleth.profile.config.ProfileConfiguration;
 import net.shibboleth.profile.context.RelyingPartyContext;
 import net.shibboleth.profile.context.navigate.AbstractRelyingPartyLookupFunction;
 import net.shibboleth.idp.profile.config.InterceptorAwareProfileConfiguration;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.annotation.constraint.NotLive;
 import net.shibboleth.shared.annotation.constraint.Unmodifiable;
 import net.shibboleth.shared.collection.CollectionSupport;
@@ -42,9 +41,7 @@ import org.opensaml.profile.context.ProfileRequestContext;
 public class OutboundFlowsLookupFunction extends AbstractRelyingPartyLookupFunction<Collection<String>> {
 
     /** {@inheritDoc} */
-    @Override
-    @Nullable @NonnullElements @NotLive @Unmodifiable public Collection<String> apply(
-            @Nullable final ProfileRequestContext input) {
+    @Nullable @NotLive @Unmodifiable public Collection<String> apply(@Nullable final ProfileRequestContext input) {
         final RelyingPartyContext rpc = getRelyingPartyContextLookupStrategy().apply(input);
         if (rpc != null) {
             final ProfileConfiguration pc = rpc.getProfileConfig();
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/package-info.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/package-info.java
index 0e780f58b..e7efe867c 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/package-info.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/navigate/package-info.java
@@ -18,5 +18,7 @@
 /**
  * Functions to navigate into profile configuration information.
  */
+ at NonnullElements
+package net.shibboleth.idp.profile.config.navigate;
 
-package net.shibboleth.idp.profile.config.navigate;
\ No newline at end of file
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/package-info.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/package-info.java
index 695a2fa1e..069c40f50 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/package-info.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/config/package-info.java
@@ -18,5 +18,7 @@
 /** 
  * Classes pertaining to IdP-specific request-time profile configuration options.
  */
+ at NonnullElements
+package net.shibboleth.idp.profile.config;
 
-package net.shibboleth.idp.profile.config;
\ No newline at end of file
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/context/MultiRelyingPartyContext.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/context/MultiRelyingPartyContext.java
index 76cd2156f..f14074848 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/context/MultiRelyingPartyContext.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/context/MultiRelyingPartyContext.java
@@ -26,7 +26,6 @@ import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
 import net.shibboleth.profile.context.RelyingPartyContext;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.annotation.constraint.NotLive;
 import net.shibboleth.shared.annotation.constraint.Unmodifiable;
@@ -52,10 +51,10 @@ import com.google.common.collect.ListMultimap;
 public final class MultiRelyingPartyContext extends BaseContext {
 
     /** Map of RP contexts indexed by name. */
-    @Nonnull @NonnullElements private Map<String,RelyingPartyContext> relyingPartyIdMap;
+    @Nonnull private Map<String,RelyingPartyContext> relyingPartyIdMap;
     
     /** Multimap of RP contexts indexed by role. */
-    @Nonnull @NonnullElements private ListMultimap<String,RelyingPartyContext> relyingPartyLabelMap;
+    @Nonnull private ListMultimap<String,RelyingPartyContext> relyingPartyLabelMap;
     
     /** An iterator to track progress through the set of relying parties. */
     @Nullable private Iterator<RelyingPartyContext> relyingPartyIterator;
@@ -71,7 +70,7 @@ public final class MultiRelyingPartyContext extends BaseContext {
      * 
      * @return  immutable collection of RP contexts
      */
-    @Nonnull @NonnullElements @NotLive @Unmodifiable public Collection<RelyingPartyContext> getRelyingPartyContexts() {
+    @Nonnull @NotLive @Unmodifiable public Collection<RelyingPartyContext> getRelyingPartyContexts() {
         return CollectionSupport.copyToList(relyingPartyIdMap.values());
     }
     
@@ -82,7 +81,7 @@ public final class MultiRelyingPartyContext extends BaseContext {
      * 
      * @return  corresponding RP contexts
      */
-    @Nonnull @NonnullElements @NotLive @Unmodifiable public Collection<RelyingPartyContext> getRelyingPartyContexts(
+    @Nonnull @NotLive @Unmodifiable public Collection<RelyingPartyContext> getRelyingPartyContexts(
             @Nonnull @NotEmpty final String label) {
         return CollectionSupport.copyToList(relyingPartyLabelMap.get(
                 Constraint.isNotNull(StringSupport.trimOrNull(label), "Label cannot be null or empty")));
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/context/ProfileInterceptorContext.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/context/ProfileInterceptorContext.java
index 994d56d4b..3dc292010 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/context/ProfileInterceptorContext.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/context/ProfileInterceptorContext.java
@@ -28,7 +28,6 @@ import javax.annotation.Nullable;
 import net.shibboleth.idp.profile.interceptor.ProfileInterceptorFlowDescriptor;
 import net.shibboleth.idp.profile.interceptor.ProfileInterceptorResult;
 import net.shibboleth.shared.annotation.constraint.Live;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
 
 import org.opensaml.messaging.context.BaseContext;
 
@@ -42,10 +41,10 @@ public final class ProfileInterceptorContext extends BaseContext {
     @Nullable private ProfileInterceptorFlowDescriptor attemptedFlow;
 
     /** Flows that need to be executed. */
-    @Nonnull @NonnullElements private final Map<String, ProfileInterceptorFlowDescriptor> availableFlows;
+    @Nonnull private final Map<String, ProfileInterceptorFlowDescriptor> availableFlows;
 
     /** Results of the flow to be written to storage. */
-    @Nonnull @NonnullElements private final List<ProfileInterceptorResult> results;
+    @Nonnull private final List<ProfileInterceptorResult> results;
 
     /** Constructor. */
     public ProfileInterceptorContext() {
@@ -76,7 +75,7 @@ public final class ProfileInterceptorContext extends BaseContext {
      * 
      * @return the available flows
      */
-    @Nonnull @NonnullElements @Live public Map<String, ProfileInterceptorFlowDescriptor> getAvailableFlows() {
+    @Nonnull @Live public Map<String, ProfileInterceptorFlowDescriptor> getAvailableFlows() {
         return availableFlows;
     }
 
@@ -85,7 +84,7 @@ public final class ProfileInterceptorContext extends BaseContext {
      * 
      * @return the results of the flow to be written to storage
      */
-    @Nonnull @NonnullElements @Live public List<ProfileInterceptorResult> getResults() {
+    @Nonnull @Live public List<ProfileInterceptorResult> getResults() {
         return results;
     }
 }
\ No newline at end of file
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/context/navigate/SpringEventToViewLookupFunction.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/context/navigate/SpringEventToViewLookupFunction.java
index 81b8c14ed..559db6cef 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/context/navigate/SpringEventToViewLookupFunction.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/context/navigate/SpringEventToViewLookupFunction.java
@@ -24,7 +24,6 @@ import java.util.function.Function;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.primitive.StringSupport;
 
@@ -39,7 +38,7 @@ public class SpringEventToViewLookupFunction implements Function<Event,String> {
     @Nullable private String defaultView;
     
     /** Map of event ID to view name. */
-    @Nonnull @NonnullElements private Map<String,String> eventMap;
+    @Nonnull private Map<String,String> eventMap;
     
     /** Constructor. */
     public SpringEventToViewLookupFunction() {
@@ -60,7 +59,7 @@ public class SpringEventToViewLookupFunction implements Function<Event,String> {
      * 
      * @param map map to use
      */
-    public void setEventMap(@Nullable @NonnullElements final Map<String,String> map) {
+    public void setEventMap(@Nullable final Map<String,String> map) {
         if (map == null) {
             eventMap = CollectionSupport.emptyMap();
         } else {
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/context/navigate/package-info.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/context/navigate/package-info.java
index 1d29c4769..fd7d12f4f 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/context/navigate/package-info.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/context/navigate/package-info.java
@@ -18,4 +18,7 @@
 /** 
  * Functions dealing with traversing and extracting data from profile request contexts.
  */
-package net.shibboleth.idp.profile.context.navigate;
\ No newline at end of file
+ at NonnullElements
+package net.shibboleth.idp.profile.context.navigate;
+
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/context/package-info.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/context/package-info.java
index a824e617b..9986d4e5c 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/context/package-info.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/context/package-info.java
@@ -18,4 +18,7 @@
 /**
  * Context classes for IdP-specific information needed by profile actions.
  */
-package net.shibboleth.idp.profile.context;
\ No newline at end of file
+ at NonnullElements
+package net.shibboleth.idp.profile.context;
+
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/interceptor/AbstractProfileInterceptorAction.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/interceptor/AbstractProfileInterceptorAction.java
index 06e2b60ad..03e4e11ba 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/interceptor/AbstractProfileInterceptorAction.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/interceptor/AbstractProfileInterceptorAction.java
@@ -20,7 +20,6 @@ package net.shibboleth.idp.profile.interceptor;
 import java.util.function.Function;
 
 import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
 
 import org.opensaml.messaging.context.navigate.ChildContextLookup;
 import org.opensaml.profile.action.ActionSupport;
@@ -81,7 +80,8 @@ public abstract class AbstractProfileInterceptorAction extends
 
     /** {@inheritDoc} */
     @Override protected boolean doPreExecute(@Nonnull final ProfileRequestContext profileRequestContext) {
-        final ProfileInterceptorContext pic = profileInterceptorContext = interceptorContextlookupStrategy.apply(profileRequestContext);
+        final ProfileInterceptorContext pic = profileInterceptorContext =
+                interceptorContextlookupStrategy.apply(profileRequestContext);
         if (pic  == null) {
             log.error("{} Unable to create or locate profile interceptor context", getLogPrefix());
             ActionSupport.buildEvent(profileRequestContext, EventIds.INVALID_PROFILE_CTX);
@@ -107,7 +107,8 @@ public abstract class AbstractProfileInterceptorAction extends
     }
 
     /** {@inheritDoc} */
-    @Override protected final void doExecute(@Nonnull final ProfileRequestContext profileRequestContext) {
+    @Override
+    protected final void doExecute(@Nonnull final ProfileRequestContext profileRequestContext) {
         doExecute(profileRequestContext, getProfileInterceptorContext());
     }
 
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/interceptor/ProfileInterceptorFlowDescriptor.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/interceptor/ProfileInterceptorFlowDescriptor.java
index a942ed00b..fe236ce0b 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/interceptor/ProfileInterceptorFlowDescriptor.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/interceptor/ProfileInterceptorFlowDescriptor.java
@@ -147,4 +147,4 @@ public class ProfileInterceptorFlowDescriptor extends AbstractIdentifiableInitia
                 .toString();
     }
 
-}
+}
\ No newline at end of file
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/interceptor/package-info.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/interceptor/package-info.java
index a04b6ddde..2d0090b09 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/interceptor/package-info.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/interceptor/package-info.java
@@ -16,5 +16,7 @@
  */
 
 /** Classes supporting profile interceptor machinery. */
+ at NonnullElements
+package net.shibboleth.idp.profile.interceptor;
 
-package net.shibboleth.idp.profile.interceptor;
\ No newline at end of file
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/logic/package-info.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/logic/package-info.java
index dfc734e9c..55c57804f 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/logic/package-info.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/logic/package-info.java
@@ -18,5 +18,7 @@
 /**
  * This is a legacy package and will be removed in V6.
  */
+ at NonnullElements
+package net.shibboleth.idp.profile.logic;
 
-package net.shibboleth.idp.profile.logic;
\ No newline at end of file
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/package-info.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/package-info.java
index a536ec3ad..e52a7c628 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/package-info.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/package-info.java
@@ -16,5 +16,7 @@
  */
 
 /** Common APIs for handling profile requests. */
+ at NonnullElements
+package net.shibboleth.idp.profile;
 
-package net.shibboleth.idp.profile;
\ No newline at end of file
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/PopulateAuditContext.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/PopulateAuditContext.java
index 1be154ee2..a55a75540 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/PopulateAuditContext.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/PopulateAuditContext.java
@@ -40,7 +40,6 @@ import org.slf4j.Logger;
 import net.shibboleth.idp.profile.AbstractProfileAction;
 import net.shibboleth.profile.context.AuditContext;
 import net.shibboleth.shared.annotation.constraint.NonnullBeforeExec;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.annotation.constraint.NotLive;
 import net.shibboleth.shared.annotation.constraint.Unmodifiable;
@@ -73,10 +72,10 @@ public class PopulateAuditContext extends AbstractProfileAction {
     @Nonnull private Function<ProfileRequestContext,AuditContext> auditContextCreationStrategy;
     
     /** Map of fields to extract and the corresponding extraction functions. */
-    @Nonnull @NonnullElements private Map<String,Function<ProfileRequestContext,Object>> fieldExtractors;
+    @Nonnull private Map<String,Function<ProfileRequestContext,Object>> fieldExtractors;
     
     /** Fields being audited, to optimize extraction.. */
-    @Nonnull @NonnullElements private Set<String> fieldsToExtract;
+    @Nonnull private Set<String> fieldsToExtract;
     
     /** Map allowing substitutions of values during field extraction. */
     @Nonnull private Map<String,String> fieldReplacements;
@@ -120,8 +119,7 @@ public class PopulateAuditContext extends AbstractProfileAction {
      * 
      * @param map   map from field name to extraction function
      */
-    public void setFieldExtractors(
-            @Nonnull @NonnullElements final Map<String,Function<ProfileRequestContext,Object>> map) {
+    public void setFieldExtractors(@Nonnull final Map<String,Function<ProfileRequestContext,Object>> map) {
         checkSetterPreconditions();
         Constraint.isNotNull(map, "Field extractor map cannot be null");
         
@@ -302,14 +300,14 @@ public class PopulateAuditContext extends AbstractProfileAction {
     public static class FormattingMapParser {
         
         /** Set of parsed fields. */
-        @Nonnull @NonnullElements private final Set<String> fields;
+        @Nonnull private final Set<String> fields;
         
         /**
          * Constructor.
          *
          * @param map map of formatters to parse
          */
-        public FormattingMapParser(@Nonnull @NonnullElements final Map<String,String> map) {
+        public FormattingMapParser(@Nonnull final Map<String,String> map) {
             final Set<String> fieldsToExtract = new HashSet<>(10);
             
             for (final String s : map.values()) {
@@ -345,9 +343,9 @@ public class PopulateAuditContext extends AbstractProfileAction {
          * 
          * @return the parsed fields
          */
-        @Nonnull @NonnullElements @NotLive @Unmodifiable public Set<String> getFieldsToExtract() {
+        @Nonnull @NotLive @Unmodifiable public Set<String> getFieldsToExtract() {
             return fields;
         }
     }
     
-}
+}
\ No newline at end of file
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/WriteAuditLog.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/WriteAuditLog.java
index 80eb8a7ba..2a956ef88 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/WriteAuditLog.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/WriteAuditLog.java
@@ -42,7 +42,6 @@ import org.springframework.webflow.execution.RequestContext;
 import net.shibboleth.idp.profile.AbstractProfileAction;
 import net.shibboleth.idp.profile.IdPAuditFields;
 import net.shibboleth.profile.context.AuditContext;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.annotation.constraint.NotLive;
 import net.shibboleth.shared.annotation.constraint.Unmodifiable;
@@ -71,7 +70,7 @@ public class WriteAuditLog extends AbstractProfileAction {
     /** Map of log category to formatting tokens and literals to output. */
     @Nonnull @NotEmpty private Map<String,List<String>> formattingMap;
 
-    /** Explicit categories to log from {@link #formattingMap} */
+    /** Explicit categories to log from {@link #formattingMap}. */
     @Nonnull @NotEmpty private Collection<String> categoriesToLog;
     
     /** Formatter for date/time fields. */
@@ -115,7 +114,7 @@ public class WriteAuditLog extends AbstractProfileAction {
      * 
      * @return map of formatting tokens
      */
-    @Nonnull @NonnullElements @NotLive @Unmodifiable public Map<String,List<String>> getFormattingMap() {
+    @Nonnull @NotLive @Unmodifiable public Map<String,List<String>> getFormattingMap() {
         return CollectionSupport.copyToMap(formattingMap);
     }
     
@@ -129,7 +128,7 @@ public class WriteAuditLog extends AbstractProfileAction {
      * 
      * @param map map of categories to formatting strings
      */
-    public void setFormattingMap(@Nullable @NonnullElements final Map<String,String> map) {
+    public void setFormattingMap(@Nullable final Map<String,String> map) {
         checkSetterPreconditions();
         
         if (map == null) {
@@ -188,7 +187,7 @@ public class WriteAuditLog extends AbstractProfileAction {
      * 
      * @since 4.3.0
      */
-    public void setCategoriesToLog(@Nullable @NonnullElements final Collection<String> categories) {
+    public void setCategoriesToLog(@Nullable final Collection<String> categories) {
         checkSetterPreconditions();
         
         if (categories != null) {
@@ -348,4 +347,4 @@ public class WriteAuditLog extends AbstractProfileAction {
         
     }
     
-}
+}
\ No newline at end of file
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/package-info.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/package-info.java
index 7a31b0cc9..5a91dc123 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/package-info.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/package-info.java
@@ -18,5 +18,7 @@
 /**
  * Audit implementation classes.
  */
+ at NonnullElements
+package net.shibboleth.idp.profile.audit.impl;
 
-package net.shibboleth.idp.profile.audit.impl;
\ No newline at end of file
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/LogContextTree.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/LogContextTree.java
index 117ad29f6..8da818877 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/LogContextTree.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/LogContextTree.java
@@ -28,6 +28,7 @@ import org.springframework.webflow.execution.RequestContext;
 
 import net.shibboleth.idp.profile.AbstractProfileAction;
 import net.shibboleth.idp.profile.context.SpringRequestContext;
+import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.primitive.LoggerFactory;
 import net.shibboleth.shared.primitive.StringSupport;
 
@@ -54,13 +55,13 @@ import net.shibboleth.shared.primitive.StringSupport;
 public class LogContextTree extends AbstractProfileAction {
     
     /** Name of Spring web flow attribute holding the description of the tree to log. */
-    public static final String ATTRIB_DESC = "contextTreeDescription";
+    @Nonnull @NotEmpty public static final String ATTRIB_DESC = "contextTreeDescription";
     
     /** Logger. */
-    private Logger log = LoggerFactory.getLogger("CONTEXT_TREE");
+    @Nonnull private Logger log = LoggerFactory.getLogger("CONTEXT_TREE");
     
     /** Contextual description to output at the start of the action. */
-    private String description;
+    @Nullable private String description;
     
     /**
      * Set the contextual description to output at the start of the action.
@@ -72,7 +73,8 @@ public class LogContextTree extends AbstractProfileAction {
     }
 
     /** {@inheritDoc} */
-    protected void doExecute(final @Nonnull ProfileRequestContext profileRequestContext) {
+    @Override
+    protected void doExecute(@Nonnull final ProfileRequestContext profileRequestContext) {
         if (!log.isDebugEnabled()) {
             // short-circuit if not logging at debug
             return;
@@ -105,7 +107,7 @@ public class LogContextTree extends AbstractProfileAction {
      * @param current the current context to log
      * @param indent the amount of leading indent
      */
-    private void logContext(final BaseContext current, final int indent) {
+    private void logContext(@Nullable final BaseContext current, final int indent) {
         if (current == null) {
             return;
         }
@@ -156,7 +158,7 @@ public class LogContextTree extends AbstractProfileAction {
      * 
      * @return the leading indent string to print
      */
-    private String getIndent(final int indent) {
+    @Nonnull private String getIndent(final int indent) {
         final StringBuffer buffer = new StringBuffer();
         for (int i=0; i<indent; i++) {
             buffer.append("----");
@@ -164,4 +166,4 @@ public class LogContextTree extends AbstractProfileAction {
         return buffer.toString();
     }
 
-}
+}
\ No newline at end of file
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/LogSpringContextInfo.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/LogSpringContextInfo.java
index 5b6aa8776..121bf67a3 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/LogSpringContextInfo.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/LogSpringContextInfo.java
@@ -29,6 +29,7 @@ import org.springframework.webflow.execution.RequestContext;
 
 import net.shibboleth.idp.profile.AbstractProfileAction;
 import net.shibboleth.idp.profile.context.SpringRequestContext;
+import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.primitive.LoggerFactory;
 import net.shibboleth.shared.primitive.StringSupport;
 
@@ -55,16 +56,16 @@ import net.shibboleth.shared.primitive.StringSupport;
 public class LogSpringContextInfo extends AbstractProfileAction implements ApplicationContextAware {
     
     /** Name of Spring web flow attribute holding the description of the tree to log. */
-    public static final String ATTRIB_DESC = "springInfoDescription";
+    @Nonnull @NotEmpty public static final String ATTRIB_DESC = "springInfoDescription";
     
     /** Logger. */
-    private Logger log = LoggerFactory.getLogger("SPRING_CONTEXT_INFO");
+    @Nonnull private Logger log = LoggerFactory.getLogger("SPRING_CONTEXT_INFO");
     
     /** The owning Spring ApplicationContext in which this action is defined. */
-    private ApplicationContext applicationContext;
+    @Nullable private ApplicationContext applicationContext;
     
     /** Contextual description to output at the start of the action. */
-    private String description;
+    @Nullable private String description;
     
     /**
      * Set the contextual description to output at the start of the action.
@@ -76,12 +77,13 @@ public class LogSpringContextInfo extends AbstractProfileAction implements Appli
     }
     
     /** {@inheritDoc} */
-    public void setApplicationContext(final @Nonnull ApplicationContext context) throws BeansException {
+    public void setApplicationContext(@Nonnull final ApplicationContext context) throws BeansException {
         applicationContext = context;
     }
 
     /** {@inheritDoc} */
-    protected void doExecute(final @Nonnull ProfileRequestContext profileRequestContext) {
+    @Override
+    protected void doExecute(@Nonnull final ProfileRequestContext profileRequestContext) {
         if (!log.isDebugEnabled()) {
             // short-circuit if not logging at debug
             return;
@@ -133,4 +135,4 @@ public class LogSpringContextInfo extends AbstractProfileAction implements Appli
         
     }
     
-}
+}
\ No newline at end of file
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/MetadataQueryRequestDecoder.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/MetadataQueryRequestDecoder.java
index 035fd8889..92b636bee 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/MetadataQueryRequestDecoder.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/MetadataQueryRequestDecoder.java
@@ -56,6 +56,7 @@ public class MetadataQueryRequestDecoder extends AbstractHttpServletRequestMessa
     
     /** Name of the query parameter carrying the detectDuplicateEntityIDs: {@value} . */
     @Nonnull @NotEmpty public static final String DETECT_DUPLICATES_PARAM= "detectDuplicateEntityIDs";
+    
     /** {@inheritDoc} */
     @Override
     protected void doDecode() throws MessageDecodingException {
@@ -156,5 +157,4 @@ public class MetadataQueryRequestDecoder extends AbstractHttpServletRequestMessa
         return null;
     }
 
-
 }
\ No newline at end of file
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/ResolveAttributes.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/ResolveAttributes.java
index 0ed77c0cb..7f1e8ce9a 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/ResolveAttributes.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/ResolveAttributes.java
@@ -42,7 +42,6 @@ import net.shibboleth.idp.profile.context.SpringRequestContext;
 import net.shibboleth.profile.context.RelyingPartyContext;
 import net.shibboleth.profile.context.navigate.RelyingPartyIdLookupFunction;
 import net.shibboleth.profile.context.navigate.IssuerLookupFunction;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.logic.Constraint;
 import net.shibboleth.shared.logic.FunctionSupport;
@@ -179,7 +178,7 @@ public final class ResolveAttributes extends AbstractProfileAction {
      * 
      * @param attributeIds  attribute ID collection
      */
-    public void setAttributesToResolve(@Nonnull @NonnullElements final Collection<String> attributeIds) {
+    public void setAttributesToResolve(@Nonnull final Collection<String> attributeIds) {
         checkSetterPreconditions();
         Constraint.isNotNull(attributeIds, "Attribute ID collection cannot be null");
         attributesLookupStrategy = FunctionSupport.constant(StringSupport.normalizeStringCollection(attributeIds));
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/RethrowingFlowExecutionExceptionHandler.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/RethrowingFlowExecutionExceptionHandler.java
index 34df3d876..2449d69e2 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/RethrowingFlowExecutionExceptionHandler.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/RethrowingFlowExecutionExceptionHandler.java
@@ -29,13 +29,11 @@ import org.springframework.webflow.execution.FlowExecutionException;
 public class RethrowingFlowExecutionExceptionHandler implements FlowExecutionExceptionHandler {
 
     /** {@inheritDoc} */
-    @Override
     public boolean canHandle(final FlowExecutionException exception) {
         return exception.getCause() instanceof RuntimeException;
     }
 
     /** {@inheritDoc} */
-    @Override
     public void handle(final FlowExecutionException exception, final RequestControlContext context) {
         throw new RuntimeException(exception.getCause());
     }
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/WebFlowMessageHandlerAdaptor.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/WebFlowMessageHandlerAdaptor.java
index d810002d1..26cd41678 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/WebFlowMessageHandlerAdaptor.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/WebFlowMessageHandlerAdaptor.java
@@ -83,7 +83,7 @@ public class WebFlowMessageHandlerAdaptor extends AbstractProfileAction {
     @NonnullBeforeExec private MessageHandler handler;
     
     /** The direction of execution for this action instance. */
-    private final Direction direction;
+    @Nonnull private final Direction direction;
     
     /** An event to signal in the event of a handler exception. */
     @Nullable private String errorEvent;
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/package-info.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/package-info.java
index 68fed1845..fea958acf 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/package-info.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/package-info.java
@@ -16,5 +16,7 @@
  */
 
 /** Implementations of various profile actions. */
+ at NonnullElements
+package net.shibboleth.idp.profile.impl;
 
-package net.shibboleth.idp.profile.impl;
\ No newline at end of file
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/interceptor/impl/PopulateProfileInterceptorContext.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/interceptor/impl/PopulateProfileInterceptorContext.java
index f5da6578b..ae84423ff 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/interceptor/impl/PopulateProfileInterceptorContext.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/interceptor/impl/PopulateProfileInterceptorContext.java
@@ -33,7 +33,6 @@ import net.shibboleth.idp.profile.context.ProfileInterceptorContext;
 import net.shibboleth.idp.profile.interceptor.AbstractProfileInterceptorAction;
 import net.shibboleth.idp.profile.interceptor.ProfileInterceptorFlowDescriptor;
 import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.component.ComponentInitializationException;
@@ -57,7 +56,7 @@ public class PopulateProfileInterceptorContext extends AbstractProfileIntercepto
     @Nonnull private final Logger log = LoggerFactory.getLogger(PopulateProfileInterceptorContext.class);
 
     /** The flows to make available for possible use. */
-    @Nonnull @NonnullElements private Collection<ProfileInterceptorFlowDescriptor> availableFlows;
+    @Nonnull private Collection<ProfileInterceptorFlowDescriptor> availableFlows;
 
     /** Lookup function for the flow IDs to activate from within the available set. */
     @NonnullAfterInit private Function<ProfileRequestContext,Collection<String>> activeFlowsLookupStrategy;
@@ -75,7 +74,7 @@ public class PopulateProfileInterceptorContext extends AbstractProfileIntercepto
      * 
      * @param flows the flows available for possible use
      */
-    public void setAvailableFlows(@Nonnull @NonnullElements final Collection<ProfileInterceptorFlowDescriptor> flows) {
+    public void setAvailableFlows(@Nonnull final Collection<ProfileInterceptorFlowDescriptor> flows) {
         checkSetterPreconditions();
         availableFlows = CollectionSupport.copyToList(Constraint.isNotNull(flows, "Flow collection cannot be null"));
     }
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/interceptor/impl/ProfileInterceptorFlowDescriptorManager.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/interceptor/impl/ProfileInterceptorFlowDescriptorManager.java
index 18e56690f..decd7a828 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/interceptor/impl/ProfileInterceptorFlowDescriptorManager.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/interceptor/impl/ProfileInterceptorFlowDescriptorManager.java
@@ -24,7 +24,6 @@ import javax.annotation.Nullable;
 import org.springframework.beans.factory.annotation.Autowired;
 
 import net.shibboleth.idp.profile.interceptor.ProfileInterceptorFlowDescriptor;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.spring.config.IdentifiedComponentManager;
 
 /**
@@ -42,7 +41,7 @@ public class ProfileInterceptorFlowDescriptorManager
      */
     @Autowired
     public ProfileInterceptorFlowDescriptorManager(
-            @Nullable @NonnullElements final Collection<ProfileInterceptorFlowDescriptor> freeObjects) {
+            @Nullable final Collection<ProfileInterceptorFlowDescriptor> freeObjects) {
         super(freeObjects);
     }
 
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/interceptor/impl/WriteProfileInterceptorResultToStorage.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/interceptor/impl/WriteProfileInterceptorResultToStorage.java
index 1b73f6059..3a81c0424 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/interceptor/impl/WriteProfileInterceptorResultToStorage.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/interceptor/impl/WriteProfileInterceptorResultToStorage.java
@@ -132,4 +132,4 @@ public class WriteProfileInterceptorResultToStorage extends AbstractProfileInter
 
     }
 
-}
+}
\ No newline at end of file
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/interceptor/impl/package-info.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/interceptor/impl/package-info.java
index f0fce381f..4d9a85cda 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/interceptor/impl/package-info.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/interceptor/impl/package-info.java
@@ -16,5 +16,7 @@
  */
 
 /** Implementation of a profile interceptor flow which executes other flows. */
+ at NonnullElements
+package net.shibboleth.idp.profile.interceptor.impl;
 
-package net.shibboleth.idp.profile.interceptor.impl;
\ No newline at end of file
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/messaging/impl/SelectRelyingPartyConfiguration.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/messaging/impl/SelectRelyingPartyConfiguration.java
index 9a9dd1736..3d4b719a5 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/messaging/impl/SelectRelyingPartyConfiguration.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/messaging/impl/SelectRelyingPartyConfiguration.java
@@ -141,7 +141,8 @@ public final class SelectRelyingPartyConfiguration extends AbstractMessageHandle
         final CriteriaSet criteria = new CriteriaSet(new EntityIdCriterion(rpId),
                 new VerifiedProfileCriterion(true));
 
-        try (final ServiceableComponent<RelyingPartyConfigurationResolver> resolver = rpConfigResolver.getServiceableComponent()) {
+        try (final ServiceableComponent<RelyingPartyConfigurationResolver> resolver =
+                rpConfigResolver.getServiceableComponent()) {
             final RelyingPartyConfiguration config = resolver.getComponent().resolveSingle(criteria);
             if (config == null) {
                 log.debug("{} No relying party configuration applies to this request", getLogPrefix());
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/messaging/impl/package-info.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/messaging/impl/package-info.java
index 0ce60825a..b54a1a6c7 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/messaging/impl/package-info.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/messaging/impl/package-info.java
@@ -16,5 +16,7 @@
  */
 
 /** Implementations of various message handlers. */
+ at NonnullElements
+package net.shibboleth.idp.profile.messaging.impl;
 
-package net.shibboleth.idp.profile.messaging.impl;
\ No newline at end of file
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/support/PathInfoSupportingFlowUrlHandler.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/support/PathInfoSupportingFlowUrlHandler.java
index c3e127339..80dd60524 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/support/PathInfoSupportingFlowUrlHandler.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/support/PathInfoSupportingFlowUrlHandler.java
@@ -23,7 +23,6 @@ import javax.annotation.Nonnull;
 
 import org.springframework.webflow.context.servlet.DefaultFlowUrlHandler;
 
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.primitive.StringSupport;
 
@@ -42,7 +41,7 @@ import jakarta.servlet.http.HttpServletRequest;
 public class PathInfoSupportingFlowUrlHandler extends DefaultFlowUrlHandler {
 
     /** Flows to support. */
-    @Nonnull @NonnullElements private Collection<String> supportedFlowIds;
+    @Nonnull private Collection<String> supportedFlowIds;
     
     /** Constructor. */
     public PathInfoSupportingFlowUrlHandler() {
@@ -57,7 +56,7 @@ public class PathInfoSupportingFlowUrlHandler extends DefaultFlowUrlHandler {
      * 
      * @param flowIds the flow definition registry
      */
-    public void setSupportedFlows(@Nonnull @NonnullElements final Collection<String> flowIds) {
+    public void setSupportedFlows(@Nonnull final Collection<String> flowIds) {
         supportedFlowIds = StringSupport.normalizeStringCollection(flowIds);
     }
     
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/support/ProfileRequestContextFlowExecutionListener.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/support/ProfileRequestContextFlowExecutionListener.java
index 8823789c9..51ecd0992 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/support/ProfileRequestContextFlowExecutionListener.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/support/ProfileRequestContextFlowExecutionListener.java
@@ -40,11 +40,11 @@ import jakarta.servlet.ServletRequest;
 public class ProfileRequestContextFlowExecutionListener implements FlowExecutionListener {
 
     /** Logger instance. */
-    private final Logger log = LoggerFactory.getLogger(ProfileRequestContextFlowExecutionListener.class);
-
+    @Nonnull private final Logger log = LoggerFactory.getLogger(ProfileRequestContextFlowExecutionListener.class);
 
     @Override
-    public void stateEntered(final RequestContext context, final StateDefinition previousState, final StateDefinition newState) {
+    public void stateEntered(final RequestContext context, final StateDefinition previousState,
+            final StateDefinition newState) {
         if (previousState != null && previousState.getId().startsWith("Initialize")) {
             assert context != null;
             final ProfileRequestContext prc = getProfileRequestContext(context);
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/support/package-info.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/support/package-info.java
index 5532209f6..9398b16ab 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/support/package-info.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/support/package-info.java
@@ -16,5 +16,7 @@
  */
 
 /** Support classes for profile behavior. */
+ at NonnullElements
+package net.shibboleth.idp.profile.support;
 
-package net.shibboleth.idp.profile.support;
\ No newline at end of file
+import net.shibboleth.shared.annotation.constraint.NonnullElements;

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list