[java-shib-metadata] branch main updated: IDP-2116 - Add metrics for MetadataResolvers

Scott Cantor cantor.2 at osu.edu
Tue May 23 20:05:50 UTC 2023


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

scantor pushed a commit to branch main
in repository java-shib-metadata.

View the commit online:
http://git.shibboleth.net/view/?p=java-shib-metadata.git;a=commit;h=65c92bf244a2291dca93cfd5e14704a593a9b010

The following commit(s) were added to refs/heads/main by this push:
     new 65c92bf2 IDP-2116 - Add metrics for MetadataResolvers
65c92bf2 is described below

commit 65c92bf244a2291dca93cfd5e14704a593a9b010
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Tue May 23 16:05:48 2023 -0400

    IDP-2116 - Add metrics for MetadataResolvers
    
    https://shibboleth.atlassian.net/browse/IDP-2116
    
    Move metricsBaseName to base schema type.
    Default in a metricsBaseName if not set.
---
 .../metadata/AbstractDynamicMetadataProviderParser.java |  4 ----
 .../spring/metadata/AbstractMetadataProviderParser.java | 17 +++++++++++++++--
 .../src/main/resources/schema/shibboleth-metadata.xsd   | 17 ++++++++---------
 .../spring/metadata/fileBackedHTTPEntities.xml          |  3 ++-
 .../net/shibboleth/spring/metadata/fileEntities.xml     |  2 +-
 .../shibboleth/spring/metadata/http-entities-client.xml |  3 ++-
 6 files changed, 28 insertions(+), 18 deletions(-)

diff --git a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/AbstractDynamicMetadataProviderParser.java b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/AbstractDynamicMetadataProviderParser.java
index 7b18d359..dc372a37 100644
--- a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/AbstractDynamicMetadataProviderParser.java
+++ b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/AbstractDynamicMetadataProviderParser.java
@@ -73,10 +73,6 @@ public abstract class AbstractDynamicMetadataProviderParser extends AbstractMeta
                     AttributeSupport.ensureAttributeValue(element, null, "indexesRef"));
         }
         
-        if (element.hasAttributeNS(null, "metricsBaseName")) {
-            builder.addPropertyValue("metricsBaseName", element.getAttributeNS(null,  "metricsBaseName"));
-        }
-
         builder.addPropertyReference("parserPool", getParserPoolRef(element));
 
         processPersistentCachingProperties(element, parserContext, builder);
diff --git a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/AbstractMetadataProviderParser.java b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/AbstractMetadataProviderParser.java
index a9d8bbf7..d23a683c 100644
--- a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/AbstractMetadataProviderParser.java
+++ b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/AbstractMetadataProviderParser.java
@@ -144,6 +144,7 @@ public abstract class AbstractMetadataProviderParser extends AbstractCustomBeanD
             builder.setInitMethodName("initialize");
             builder.setDestroyMethodName("destroy");
             builder.setLazyInit(true);
+            
             final BeanDefinitionBuilder childBeanDefinitionBuilder =
                     BeanDefinitionBuilder.genericBeanDefinition(getNativeBeanClass(element));
             doNativeParse(element, parserContext, childBeanDefinitionBuilder);
@@ -162,6 +163,7 @@ public abstract class AbstractMetadataProviderParser extends AbstractCustomBeanD
         }
     }
 
+// Checkstyle: CyclomaticComplexity OFF
     /**
      * Parse the element into the provider builder. This has the same function as the more usual
      * {@link AbstractSingleBeanDefinitionParser#doParse(Element, ParserContext, BeanDefinitionBuilder)} but it may need
@@ -179,13 +181,23 @@ public abstract class AbstractMetadataProviderParser extends AbstractCustomBeanD
         builder.setDestroyMethodName("destroy");
         builder.setLazyInit(true);
 
-        builder.addPropertyValue("id", StringSupport.trimOrNull(element.getAttributeNS(null, "id")));
-        
+        final String resolverId = StringSupport.trimOrNull(element.getAttributeNS(null, "id"));
+        builder.addPropertyValue("id", resolverId);
+
         final QName resolverType = DOMTypeSupport.getXSIType(element);
         if (resolverType != null) {
             builder.addPropertyValue("type", resolverType.getLocalPart());
         }
 
+        if (!isChaining(element)) {
+            if (element.hasAttributeNS(null, "metricsBaseName")) {
+                builder.addPropertyValue("metricsBaseName", element.getAttributeNS(null,  "metricsBaseName"));
+            } else if (resolverType != null && resolverId != null) {
+                builder.addPropertyValue("metricsBaseName",
+                        "net.shibboleth.idp.metadata." + resolverType.getLocalPart() + "." + resolverId);
+            }
+        }
+
         if (isPresentNotChaining(element, "failFastInitialization")) {
             builder.addPropertyValue("failFastInitialization",
                     SpringSupport.getStringValueAsBoolean(element.getAttributeNS(null, "failFastInitialization")));
@@ -224,6 +236,7 @@ public abstract class AbstractMetadataProviderParser extends AbstractCustomBeanD
             }
         }
     }
+// Checkstyle: CyclomaticComplexity ON
 
     /**
      * Process predicate-related options.
diff --git a/shib-metadata-spring/src/main/resources/schema/shibboleth-metadata.xsd b/shib-metadata-spring/src/main/resources/schema/shibboleth-metadata.xsd
index f0884845..83bd4c1d 100644
--- a/shib-metadata-spring/src/main/resources/schema/shibboleth-metadata.xsd
+++ b/shib-metadata-spring/src/main/resources/schema/shibboleth-metadata.xsd
@@ -722,14 +722,6 @@
                         </documentation>
                     </annotation>
                 </attribute>
-                <attribute name="metricsBaseName" type="shibmd:string">
-                    <annotation>
-                        <documentation>
-                            Prefix name for metrics exposed by this resolver, defaults to the class name
-                            and the bean ID.
-                        </documentation>
-                    </annotation>
-                </attribute>
             </extension>
         </complexContent>
     </complexType>
@@ -870,8 +862,15 @@
                     provider tree with the lowest sortKey first. 
                 </documentation>
             </annotation>
-        
         </attribute> 
+        <attribute name="metricsBaseName" type="shibmd:string">
+            <annotation>
+                <documentation>
+                    Prefix name for metrics exposed by this resolver, defaults to the resolver type
+                    and the bean ID.
+                </documentation>
+            </annotation>
+        </attribute>
     </complexType>
 
     <element name="MetadataFilter" type="shibmd:MetadataFilterType">
diff --git a/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/fileBackedHTTPEntities.xml b/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/fileBackedHTTPEntities.xml
index 302aac94..05098fb1 100644
--- a/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/fileBackedHTTPEntities.xml
+++ b/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/fileBackedHTTPEntities.xml
@@ -6,7 +6,8 @@
 
 	id="fileBackedHTTPEntities" xsi:type="metadata:FileBackedHTTPMetadataProvider"
 	backingFile="%{DIR}/spoolFileEntities.xml"
-	metadataURL="%{metadataURL}">
+	metadataURL="%{metadataURL}"
+    metricsBaseName="fileBackedHTTPEntities">
 
 </metadata:MetadataProvider>
                                    
\ No newline at end of file
diff --git a/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/fileEntities.xml b/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/fileEntities.xml
index 2cb87c33..4e538a7f 100644
--- a/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/fileEntities.xml
+++ b/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/fileEntities.xml
@@ -5,7 +5,7 @@
                        urn:oasis:names:tc:SAML:2.0:metadata http://docs.oasis-open.org/security/saml/v2.0/saml-schema-metadata-2.0.xsd"
 
     parserPoolRef="myParserPool" refreshDelayFactor="0.5" maxRefreshDelay="PT55M" minRefreshDelay="PT15M" expirationWarningThreshold="PT12H"
-	id="fileEntities" xsi:type="metadata:FilesystemMetadataProvider" metadataFile="%{DIR}/entities.xml">
+	id="fileEntities" xsi:type="metadata:FilesystemMetadataProvider" metadataFile="%{DIR}/entities.xml" metricsBaseName="fileEntities">
 
 </metadata:MetadataProvider>
                                    
\ No newline at end of file
diff --git a/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/http-entities-client.xml b/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/http-entities-client.xml
index 27303aae..c239d7dc 100644
--- a/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/http-entities-client.xml
+++ b/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/http-entities-client.xml
@@ -8,7 +8,8 @@
     	id="HTTPEntities" xsi:type="metadata:FileBackedHTTPMetadataProvider"
         backingFile="%{DIR}/spoolhttpentitiesClient.xml"
     	httpClientRef="apacheClient"
-    	metadataURL="%{metadataURL}"> 
+    	metadataURL="%{metadataURL}"
+        metricsBaseName="HTTPEntities"> 
 
 </metadata:MetadataProvider>
                                    
\ No newline at end of file

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


More information about the commits mailing list