[java-shib-attribute] branch main updated: JSSH-5 ServiceableComponent should implement AutoClose
Rod Widdowson
rdw at steadingsoftware.com
Fri Nov 25 14:57:31 UTC 2022
This is an automated email from the git hooks/post-receive script.
rdw pushed a commit to branch main
in repository java-shib-attribute.
View the commit online:
http://git.shibboleth.net/view/?p=java-shib-attribute.git;a=commit;h=b33fc402ac141bc99bb0dc0b941380967ed719f7
The following commit(s) were added to refs/heads/main by this push:
new b33fc402a JSSH-5 ServiceableComponent should implement AutoClose
b33fc402a is described below
commit b33fc402ac141bc99bb0dc0b941380967ed719f7
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Fri Nov 25 14:55:23 2022 +0000
JSSH-5 ServiceableComponent should implement AutoClose
https://shibboleth.atlassian.net/browse/JSSH-5
AttributeResolverImpl is no longer a ServiceableComponent.
Also fix a bug exposed in the AttributeFilterServiceStrategy
---
.../impl/AttributeFilterServiceStrategy.java | 2 ++
.../resolver/impl/AttributeResolverImpl.java | 8 ++-----
.../resolver/impl/AttributeResolverImplTest.java | 1 -
.../impl/AttributeResolverServiceStrategy.java | 10 ++++++---
.../resolver/spring/AttributeResolverTest.java | 6 +++---
.../testing/BaseAttributeDefinitionParserTest.java | 25 ++++++++++++++--------
6 files changed, 30 insertions(+), 22 deletions(-)
diff --git a/shib-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/impl/AttributeFilterServiceStrategy.java b/shib-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/impl/AttributeFilterServiceStrategy.java
index baaafa226..f4b127c59 100644
--- a/shib-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/impl/AttributeFilterServiceStrategy.java
+++ b/shib-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/impl/AttributeFilterServiceStrategy.java
@@ -65,6 +65,8 @@ public class AttributeFilterServiceStrategy extends AbstractIdentifiableInitiali
filter.initialize();
result = new SpringServiceableComponent<AttributeFilter>(filter);
result.setApplicationContext(appContext);
+ result.setId(getId());
+ result.initialize();
} catch (final ComponentInitializationException e) {
throw new ServiceException("Unable to initialize attribute filter for " + appContext.getDisplayName(), e);
}
diff --git a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverImpl.java b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverImpl.java
index c5df50535..10f215210 100644
--- a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverImpl.java
+++ b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverImpl.java
@@ -59,6 +59,7 @@ import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.annotation.constraint.Unmodifiable;
import net.shibboleth.shared.collection.LazyList;
import net.shibboleth.shared.collection.LazyMap;
+import net.shibboleth.shared.component.AbstractIdentifiableInitializableComponent;
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.logic.Constraint;
import net.shibboleth.shared.spring.service.AbstractServiceableComponent;
@@ -73,7 +74,7 @@ import net.shibboleth.shared.spring.service.AbstractServiceableComponent;
* {@link net.shibboleth.shared.resolver.Criterion}s. <br>
*/
@ThreadSafe
-public class AttributeResolverImpl extends AbstractServiceableComponent<AttributeResolver> implements
+public class AttributeResolverImpl extends AbstractIdentifiableInitializableComponent implements
AttributeResolver {
/** Class logger. */
@@ -705,11 +706,6 @@ public class AttributeResolverImpl extends AbstractServiceableComponent<Attribut
}
- /** {@inheritDoc} */
- @Override @Nonnull public AttributeResolver getComponent() {
- return this;
- }
-
/**
* Conditionally start a timer at the beginning of the resolution process.
*
diff --git a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverImplTest.java b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverImplTest.java
index f18baf1c5..71b6a233a 100644
--- a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverImplTest.java
+++ b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverImplTest.java
@@ -1021,7 +1021,6 @@ public class AttributeResolverImplTest {
result.setAttributeDefinitions(definitions == null ? Collections.emptyList() : definitions);
result.setDataConnectors(connectors == null ? Collections.emptyList() : connectors);
- result.setApplicationContext(new MockApplicationContext());
return result;
}
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/AttributeResolverServiceStrategy.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/AttributeResolverServiceStrategy.java
index a267fb170..0861cb1b6 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/AttributeResolverServiceStrategy.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/AttributeResolverServiceStrategy.java
@@ -35,6 +35,7 @@ import net.shibboleth.shared.component.AbstractIdentifiableInitializableComponen
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.service.ServiceException;
import net.shibboleth.shared.spring.service.AbstractServiceableComponent;
+import net.shibboleth.shared.spring.service.impl.SpringServiceableComponent;
/**
* Strategy for summoning up an {@link AttributeResolverImpl} from a populated {@link ApplicationContext}. We do this by
@@ -85,14 +86,17 @@ public class AttributeResolverServiceStrategy extends AbstractIdentifiableInitia
resolver.setDataConnectors(connectors);
resolver.setId(getId());
resolver.setStripNulls(isStripNulls());
- resolver.setApplicationContext(appContext);
-
+ final SpringServiceableComponent<AttributeResolver> result;
try {
resolver.initialize();
+ result = new SpringServiceableComponent<AttributeResolver>(resolver);
+ result.setApplicationContext(appContext);
+ result.setId(getId());
+ result.initialize();
} catch (final ComponentInitializationException e) {
throw new ServiceException("Unable to initialize attribute resolver for " + appContext.getDisplayName(), e);
}
- return resolver;
+ return result;
}
}
\ No newline at end of file
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeResolverTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeResolverTest.java
index fb728abb0..4e1f758c0 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeResolverTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeResolverTest.java
@@ -340,7 +340,7 @@ public class AttributeResolverTest extends OpenSAMLInitBaseTestCase {
assertEquals(resolvedAttributes.get("testing").getValues().size(), 2);
}
- @Test public void selective() throws ResolutionException {
+ @Test public void selective() throws ResolutionException, ComponentInitializationException {
final GenericApplicationContext context = new GenericApplicationContext();
setTestContext(context);
context.setDisplayName("ApplicationContext: " + AttributeResolverTest.class);
@@ -372,7 +372,7 @@ public class AttributeResolverTest extends OpenSAMLInitBaseTestCase {
assertTrue(resolutionContext.getResolvedIdPAttributes().isEmpty());
}
- @Test public void preResolve() throws ResolutionException {
+ @Test public void preResolve() throws ResolutionException, ComponentInitializationException {
final GenericApplicationContext context = new GenericApplicationContext();
setTestContext(context);
context.setDisplayName("ApplicationContext: " + AttributeResolverTest.class);
@@ -412,7 +412,7 @@ public class AttributeResolverTest extends OpenSAMLInitBaseTestCase {
assertEquals(postOnly.getValues().get(0).getDisplayValue(), "preOnly");
}
- @Test public void selectiveNavigate() throws ResolutionException {
+ @Test public void selectiveNavigate() throws ResolutionException, ComponentInitializationException {
final GenericApplicationContext context = new GenericApplicationContext();
setTestContext(context);
context.setDisplayName("ApplicationContext: " + AttributeResolverTest.class);
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/testing/BaseAttributeDefinitionParserTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/testing/BaseAttributeDefinitionParserTest.java
index 8ef0eaf69..4fbaa4c44 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/testing/BaseAttributeDefinitionParserTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/testing/BaseAttributeDefinitionParserTest.java
@@ -31,18 +31,21 @@ import org.springframework.context.support.GenericApplicationContext;
import org.testng.annotations.AfterMethod;
import net.shibboleth.idp.attribute.resolver.AttributeDefinition;
+import net.shibboleth.idp.attribute.resolver.AttributeResolver;
import net.shibboleth.idp.attribute.resolver.DataConnector;
import net.shibboleth.idp.attribute.resolver.impl.AttributeResolverImpl;
import net.shibboleth.idp.attribute.resolver.spring.ad.BaseAttributeDefinitionParser;
import net.shibboleth.idp.attribute.resolver.spring.ad.impl.SimpleAttributeDefinitionParser;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverServiceStrategy;
import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.service.ServiceException;
import net.shibboleth.shared.spring.config.IdentifiableBeanPostProcessor;
import net.shibboleth.shared.spring.config.StringToDurationConverter;
import net.shibboleth.shared.spring.config.StringToIPRangeConverter;
import net.shibboleth.shared.spring.config.StringToResourceConverter;
import net.shibboleth.shared.spring.context.FilesystemGenericApplicationContext;
import net.shibboleth.shared.spring.custom.SchemaTypeAwareXMLBeanDefinitionReader;
+import net.shibboleth.shared.spring.service.impl.SpringServiceableComponent;
/**
* Base class for tests for {@link SimpleAttributeDefinitionParser} and by extension {@link BaseAttributeDefinitionParser}.
@@ -189,15 +192,19 @@ public abstract class BaseAttributeDefinitionParserTest extends OpenSAMLInitBase
return getBean(DATACONNECTOR_FILE_PATH + fileName, claz, context, supressValid);
}
- static public AttributeResolverImpl getResolver(final ApplicationContext appCtx) {
- final AttributeResolverServiceStrategy strategy = new AttributeResolverServiceStrategy();
- strategy.setId("testResolver");
- try {
- strategy.initialize();
- } catch (final ComponentInitializationException e) {
- return null;
- }
- return (AttributeResolverImpl) strategy.apply(appCtx);
+ static public AttributeResolverImpl getResolver(final ApplicationContext appContext) throws ComponentInitializationException {
+
+ final Collection<AttributeDefinition> definitions =
+ appContext.getBeansOfType(AttributeDefinition.class).values();
+
+ final Collection<DataConnector> connectors = appContext.getBeansOfType(DataConnector.class).values();
+
+ final AttributeResolverImpl resolver = new AttributeResolverImpl();
+ resolver.setAttributeDefinitions(definitions);
+ resolver.setDataConnectors(connectors);
+ resolver.setId("testResolver");
+ resolver.initialize();
+ return resolver;
}
}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list