[java-identity-provider] 03/03: IDP-1423 Remove deprecated configuration of ResourceBackedMetadataProvider
Rod Widdowson
rdw at steadingsoftware.com
Fri Mar 1 09:28:31 EST 2019
This is an automated email from the git hooks/post-receive script.
rdw pushed a commit to branch master
in repository java-identity-provider.
View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=385c91ad54b6f49b8289cea1617c4b463cb83723
commit 385c91ad54b6f49b8289cea1617c4b463cb83723
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Fri Mar 1 14:25:51 2019 +0000
IDP-1423 Remove deprecated configuration of ResourceBackedMetadataProvider
https://issues.shibboleth.net/jira/browse/IDP-1423
The only supported thing is resourceRef.
This means we can also strip out the "urn:mace:shibboleth:2.0:resource" namespace.
---
.../metadata/impl/MetadataNamespaceHandler.java | 4 -
.../impl/ResourceBackedMetadataProviderParser.java | 193 ++-------------------
.../resource/impl/ClasspathResourceParser.java | 54 ------
.../resource/impl/ResourceNamespaceHandler.java | 84 ---------
.../metadata/ResourceMetadataParserTest.java | 130 --------------
.../metadata/resourceClasspathEntities.xml | 14 --
.../metadata/resourceClasspathEntity.xml | 14 --
.../metadata/resourceFileBackedHTTPEntities.xml | 19 --
.../metadata/resourceFileBackedHTTPEntity.xml | 18 --
.../relyingparty/metadata/resourceFileEntities.xml | 14 --
.../relyingparty/metadata/resourceFileEntity.xml | 13 --
.../relyingparty/metadata/resourceHTTPEntities.xml | 17 --
.../relyingparty/metadata/resourceHTTPEntity.xml | 16 --
.../main/resources/schema/shibboleth-metadata.xsd | 16 +-
.../main/resources/schema/shibboleth-resource.xsd | 126 --------------
15 files changed, 12 insertions(+), 720 deletions(-)
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/MetadataNamespaceHandler.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/MetadataNamespaceHandler.java
index 4c3585f..0c43256 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/MetadataNamespaceHandler.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/MetadataNamespaceHandler.java
@@ -31,7 +31,6 @@ import net.shibboleth.idp.profile.spring.relyingparty.metadata.filter.impl.Predi
import net.shibboleth.idp.profile.spring.relyingparty.metadata.filter.impl.RequiredValidUntilParser;
import net.shibboleth.idp.profile.spring.relyingparty.metadata.filter.impl.SchemaValidationParser;
import net.shibboleth.idp.profile.spring.relyingparty.metadata.filter.impl.SignatureValidationParser;
-import net.shibboleth.idp.profile.spring.resource.impl.ClasspathResourceParser;
/** Namespace handler for <code>urn:mace:shibboleth:2.0:metadata</code>. */
public class MetadataNamespaceHandler extends BaseSpringNamespaceHandler {
@@ -61,9 +60,6 @@ public class MetadataNamespaceHandler extends BaseSpringNamespaceHandler {
registerBeanDefinitionParser(LocalDynamicMetadataProviderParser.ELEMENT_NAME,
new LocalDynamicMetadataProviderParser());
- // Resources
- registerBeanDefinitionParser(ClasspathResourceParser.ELEMENT_NAME, new ClasspathResourceParser());
-
// Filters
registerBeanDefinitionParser(RequiredValidUntilParser.TYPE_NAME, new RequiredValidUntilParser());
registerBeanDefinitionParser(EntityAttributesFilterParser.TYPE_NAME, new EntityAttributesFilterParser());
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/ResourceBackedMetadataProviderParser.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/ResourceBackedMetadataProviderParser.java
index ca53ea4..d1c0602 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/ResourceBackedMetadataProviderParser.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/ResourceBackedMetadataProviderParser.java
@@ -17,24 +17,10 @@
package net.shibboleth.idp.profile.spring.relyingparty.metadata.impl;
-import java.util.List;
-
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.xml.namespace.QName;
-import net.shibboleth.ext.spring.resource.ResourceHelper;
-import net.shibboleth.idp.profile.spring.relyingparty.metadata.AbstractMetadataProviderParser;
-import net.shibboleth.idp.profile.spring.relyingparty.metadata.HttpClientFactoryBean;
-import net.shibboleth.idp.profile.spring.resource.impl.ClasspathResourceParser;
-import net.shibboleth.idp.profile.spring.resource.impl.ResourceNamespaceHandler;
-import net.shibboleth.utilities.java.support.primitive.DeprecationSupport;
-import net.shibboleth.utilities.java.support.primitive.DeprecationSupport.ObjectType;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
-import net.shibboleth.utilities.java.support.xml.AttributeSupport;
-import net.shibboleth.utilities.java.support.xml.DOMTypeSupport;
-import net.shibboleth.utilities.java.support.xml.ElementSupport;
-
import org.opensaml.saml.metadata.resolver.impl.AbstractBatchMetadataResolver;
import org.opensaml.saml.metadata.resolver.impl.FileBackedHTTPMetadataResolver;
import org.opensaml.saml.metadata.resolver.impl.FilesystemMetadataResolver;
@@ -50,6 +36,12 @@ import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
+import net.shibboleth.ext.spring.resource.ResourceHelper;
+import net.shibboleth.idp.profile.spring.relyingparty.metadata.AbstractMetadataProviderParser;
+import net.shibboleth.idp.profile.spring.relyingparty.metadata.HttpClientFactoryBean;
+import net.shibboleth.utilities.java.support.primitive.StringSupport;
+import net.shibboleth.utilities.java.support.xml.AttributeSupport;
+
/**
* Parser for a ResourceBackedMetadataProvider.
*
@@ -76,36 +68,11 @@ public class ResourceBackedMetadataProviderParser extends AbstractReloadingMetad
/** {@inheritDoc} */
@Override protected Class<? extends AbstractBatchMetadataResolver> getNativeBeanClass(final Element element) {
- final List<Element> resources = ElementSupport.getChildElements(element, RESOURCES_NAME);
- if (null == resources || resources.isEmpty()) {
- if (AttributeSupport.hasAttribute(element, RESOURCE_REF)) {
- return ResourceBackedMetadataResolver.class;
- }
-
- throw new BeanCreationException("No <Resource> specified for ResourceBackedMetadataProvider");
- }
-
- final QName qName = DOMTypeSupport.getXSIType(resources.get(0));
- if (null == qName) {
- log.error("No type specified for a <Resource> within a ResourceBackedMetadataProvider");
- throw new BeanCreationException(
- "No type specified for a <Resource> within a ResourceBackedMetadataProvider");
- }
- log.debug("Comparing type '{}' against known Resources", qName.getLocalPart());
-
- if (ClasspathResourceParser.ELEMENT_NAME.equals(qName)) {
+ if (AttributeSupport.hasAttribute(element, RESOURCE_REF)) {
return ResourceBackedMetadataResolver.class;
- } else if (ResourceNamespaceHandler.HTTP_ELEMENT_NAME.equals(qName)) {
- return HTTPMetadataResolver.class;
- } else if (ResourceNamespaceHandler.FILE_HTTP_ELEMENT_NAME.equals(qName)) {
- return FileBackedHTTPMetadataResolver.class;
- } else if (ResourceNamespaceHandler.FILESYSTEM_ELEMENT_NAME.equals(qName)) {
- return FilesystemMetadataResolver.class;
}
- log.error("ResourceBackedMetadataProvider : Unrecognised resource type: {} ", qName.getLocalPart());
- throw new BeanCreationException("ResourceBackedMetadataProvider : Unrecognised resource type: "
- + qName.getLocalPart());
+ throw new BeanCreationException("No resourceRef specified for ResourceBackedMetadataProvider");
}
/** {@inheritDoc} */
@@ -113,74 +80,9 @@ public class ResourceBackedMetadataProviderParser extends AbstractReloadingMetad
final BeanDefinitionBuilder builder) {
super.doNativeParse(element, parserContext, builder);
- if (element.hasAttributeNS(null, "maxCacheDuration")) {
- log.error("{}: maxCacheDuration is not supported",
- parserContext.getReaderContext().getResource().getDescription());
- throw new BeanDefinitionParsingException(new Problem("maxCacheDuration is not supported", new Location(
- parserContext.getReaderContext().getResource())));
- }
-
- final List<Element> resources = ElementSupport.getChildElements(element, RESOURCES_NAME);
- if (resources.isEmpty()) {
- parseResource(StringSupport.trimOrNull(AttributeSupport.getAttributeValue(element, RESOURCE_REF)),
- parserContext, builder);
- return;
- }
- DeprecationSupport.warnOnce(ObjectType.ELEMENT, "Resource",
- parserContext.getReaderContext().getResource().getDescription(),
- "resourceRef property");
-
- if (resources.size() != 1) {
- log.error("{}: Only one Resource may be supplied to a ResourceBackedMetadataProvider", parserContext
- .getReaderContext().getResource().getDescription());
- throw new BeanDefinitionParsingException(new Problem(
- "Only one Resource may be supplied to a ResourceBackedMetadataProvider", new Location(parserContext
- .getReaderContext().getResource())));
- }
-
- ResourceNamespaceHandler.noFilters(resources.get(0), parserContext.getReaderContext());
-
- final QName qName = DOMTypeSupport.getXSIType(resources.get(0));
- log.debug("Dispatching based on type '{}'", qName.getLocalPart());
-
- if (ClasspathResourceParser.ELEMENT_NAME.equals(qName)) {
-
- parseResource(resources.get(0), parserContext, builder);
-
- } else if (ResourceNamespaceHandler.HTTP_ELEMENT_NAME.equals(qName)) {
-
- DeprecationSupport.warn(ObjectType.ELEMENT, ResourceNamespaceHandler.HTTP_ELEMENT_NAME.toString(),
- parserContext.getReaderContext().getResource().getDescription(),
- FileBackedHTTPMetadataProviderParser.ELEMENT_NAME.toString());
- parseHTTPResource(resources.get(0), parserContext, builder);
+ final String beanRef = StringSupport.trimOrNull(AttributeSupport.getAttributeValue(element, RESOURCE_REF));
- } else if (ResourceNamespaceHandler.FILE_HTTP_ELEMENT_NAME.equals(qName)) {
-
- DeprecationSupport.warn(ObjectType.ELEMENT, ResourceNamespaceHandler.FILE_HTTP_ELEMENT_NAME.toString(),
- parserContext.getReaderContext().getResource().getDescription(),
- FileBackedHTTPMetadataProviderParser.ELEMENT_NAME.toString());
- parseFileBackedHTTPResource(resources.get(0), parserContext, builder);
-
- } else if (ResourceNamespaceHandler.FILESYSTEM_ELEMENT_NAME.equals(qName)) {
-
- DeprecationSupport.warn(ObjectType.ELEMENT, ResourceNamespaceHandler.FILESYSTEM_ELEMENT_NAME.toString(),
- parserContext.getReaderContext().getResource().getDescription(),
- FilesystemMetadataProviderParser.ELEMENT_NAME.toString());
- parseFilesystemResource(resources.get(0), parserContext, builder);
- }
- }
-
- /**
- * Parse the provided Attribute and populate an appropriate {@link ResourceBackedMetadataResolver}.
- *
- * @param beanReference the reference
- * @param parserContext the parser context
- * @param builder the builder for the {@link ResourceBackedMetadataResolver}.
- */
- private void parseResource(@Nullable final String beanReference, final ParserContext parserContext,
- @Nonnull final BeanDefinitionBuilder builder) {
-
- if (null == beanReference) {
+ if (null == beanRef) {
log.error("{} must not be empty", RESOURCE_REF.getLocalPart());
throw new BeanDefinitionParsingException(new Problem(
"Empty bean reference for a ResourceBackedMetadataProvider", new Location(parserContext
@@ -191,81 +93,8 @@ public class ResourceBackedMetadataProviderParser extends AbstractReloadingMetad
BeanDefinitionBuilder.genericBeanDefinition(ResourceHelper.class);
resourceConverter.setLazyInit(true);
resourceConverter.setFactoryMethod("of");
- resourceConverter.addConstructorArgReference(beanReference);
+ resourceConverter.addConstructorArgReference(beanRef);
builder.addConstructorArgValue(resourceConverter.getBeanDefinition());
}
-
- /**
- * Parse the provided <Resource> and populate an appropriate {@link ResourceBackedMetadataResolver}.
- *
- * @param element the <Resource> element
- * @param parserContext the parser context
- * @param builder the builder for the {@link ResourceBackedMetadataResolver}.
- */
- private void parseResource(final Element element, final ParserContext parserContext,
- final BeanDefinitionBuilder builder) {
-
- final BeanDefinitionBuilder resourceConverter =
- BeanDefinitionBuilder.genericBeanDefinition(ResourceHelper.class);
- resourceConverter.setLazyInit(true);
- resourceConverter.setFactoryMethod("of");
- resourceConverter.addConstructorArgValue(parserContext.getDelegate().parseCustomElement(element));
-
- builder.addConstructorArgValue(resourceConverter.getBeanDefinition());
- }
-
- /**
- * Parse the provided <Resource> and populate an appropriate {@link HTTPMetadataResolver}.
- *
- * <br/>
- * See {@link HTTPMetadataProviderParser#doParse(Element, ParserContext, BeanDefinitionBuilder)}.
- *
- * @param element the <Resource> element
- * @param parserContext the parser context
- * @param builder the builder for the {@link HTTPMetadataResolver}.
- */
- private void parseHTTPResource(final Element element, final ParserContext parserContext,
- final BeanDefinitionBuilder builder) {
-
- final BeanDefinitionBuilder clientBuilder =
- BeanDefinitionBuilder.genericBeanDefinition(HttpClientFactoryBean.class);
-
- clientBuilder.setLazyInit(true);
-
- builder.addConstructorArgValue(clientBuilder.getBeanDefinition());
- builder.addConstructorArgValue(StringSupport.trimOrNull(element.getAttributeNS(null, "url")));
- }
-
- /**
- * Parse the provided <Resource> and populate an appropriate {@link FileBackedHTTPMetadataResolver}. <br/>
- * See {@link FileBackedHTTPMetadataProviderParser#doParse(Element, ParserContext, BeanDefinitionBuilder)}.
- *
- * @param element the <Resource> element
- * @param parserContext the parser context
- * @param builder the builder for the {@link FileBackedHTTPMetadataResolver}.
- */
- private void
- parseFileBackedHTTPResource(final Element element, final ParserContext parserContext,
- final BeanDefinitionBuilder builder) {
-
- parseHTTPResource(element, parserContext, builder);
- builder.addConstructorArgValue(StringSupport.trimOrNull(element.getAttributeNS(null, "file")));
- }
-
- /**
- * Parse the provided <Resource> and populate an appropriate {@link FilesystemMetadataResolver}.
- *
- * <br/>
- * See {@link FilesystemMetadataProviderParser#doParse(Element, ParserContext, BeanDefinitionBuilder)}.
- *
- * @param element the <Resource> element
- * @param parserContext the parser context
- * @param builder the builder for the {@link FilesystemMetadataResolver}.
- */
- private void parseFilesystemResource(final Element element, final ParserContext parserContext,
- final BeanDefinitionBuilder builder) {
- builder.addConstructorArgValue(StringSupport.trimOrNull(element.getAttributeNS(null, "file")));
- }
-
}
\ No newline at end of file
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/resource/impl/ClasspathResourceParser.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/resource/impl/ClasspathResourceParser.java
deleted file mode 100644
index bd39538..0000000
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/resource/impl/ClasspathResourceParser.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements. See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.shibboleth.idp.profile.spring.resource.impl;
-
-import javax.xml.namespace.QName;
-
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
-
-import org.springframework.beans.factory.support.BeanDefinitionBuilder;
-import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser;
-import org.springframework.beans.factory.xml.ParserContext;
-import org.springframework.core.io.ClassPathResource;
-import org.w3c.dom.Element;
-
-/**
- * Parser for resources of type ClasspathResource.
- */
-public class ClasspathResourceParser extends AbstractSingleBeanDefinitionParser {
-
- /** Schema type. */
- public static final QName ELEMENT_NAME = new QName(ResourceNamespaceHandler.NAMESPACE, "ClasspathResource");
-
- /** {@inheritDoc} */
- @Override protected Class<?> getBeanClass(final Element element) {
- return ClassPathResource.class;
- }
-
- /** {@inheritDoc} */
- @Override protected void doParse(final Element element, final ParserContext parserContext,
- final BeanDefinitionBuilder builder) {
- builder.setLazyInit(true);
- builder.addConstructorArgValue(StringSupport.trimOrNull(element.getAttributeNS(null, "file")));
- }
-
- /** {@inheritDoc} */
- @Override protected boolean shouldGenerateId() {
- return true;
- }
-}
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/resource/impl/ResourceNamespaceHandler.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/resource/impl/ResourceNamespaceHandler.java
deleted file mode 100644
index c0f75e0..0000000
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/resource/impl/ResourceNamespaceHandler.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements. See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.shibboleth.idp.profile.spring.resource.impl;
-
-import java.util.List;
-
-import javax.xml.namespace.QName;
-
-import net.shibboleth.ext.spring.util.BaseSpringNamespaceHandler;
-import net.shibboleth.utilities.java.support.xml.ElementSupport;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.parsing.BeanDefinitionParsingException;
-import org.springframework.beans.factory.parsing.Location;
-import org.springframework.beans.factory.parsing.Problem;
-import org.springframework.beans.factory.xml.XmlReaderContext;
-import org.w3c.dom.Element;
-
-/**
- * Namespace handler for legacy Resources.
- */
-public class ResourceNamespaceHandler extends BaseSpringNamespaceHandler {
- /** Namespace. */
- public static final String NAMESPACE = "urn:mace:shibboleth:2.0:resource";
-
- /** The Resource element. */
- public static final QName ELEMENT_NAME = new QName(NAMESPACE, "Resource");
-
- /** The ResourceFilter element. */
- public static final QName FILTER_NAME = new QName(NAMESPACE, "ResourceFilter");
-
- /** The schema type for a Filesystem Resource. */
- public static final QName FILESYSTEM_ELEMENT_NAME = new QName(NAMESPACE, "FilesystemResource");
-
- /** The schema type for a HTTP Resource. */
- public static final QName HTTP_ELEMENT_NAME = new QName(NAMESPACE, "HttpResource");
-
- /** The schema type for a file backed HTTP Resource. */
- public static final QName FILE_HTTP_ELEMENT_NAME = new QName(NAMESPACE, "FileBackedHttpResource");
-
- /** Logger. */
- private static final Logger LOG = LoggerFactory.getLogger(ResourceNamespaceHandler.class);
-
- /** {@inheritDoc} */
- @Override public void init() {
- // Relying party Configuration
- registerBeanDefinitionParser(ClasspathResourceParser.ELEMENT_NAME, new ClasspathResourceParser());
- }
-
- /**
- * Check that there are no filters on the resource.
- *
- * @param resourceElement the element to look at
- * @param readerContext the reader context
- * @throws BeanDefinitionParsingException if we encounter a filter
- */
- public static void noFilters(final Element resourceElement, final XmlReaderContext readerContext) {
- final List<Element> filters = ElementSupport.getChildElements(resourceElement, FILTER_NAME);
-
- if (null == filters || filters.isEmpty()) {
- return;
- }
- LOG.error("{}: Resource filters are not supported", readerContext.getResource().getDescription());
- throw new BeanDefinitionParsingException(new Problem("Resource filters are not supported", new Location(
- readerContext.getResource())));
- }
-
-}
diff --git a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/ResourceMetadataParserTest.java b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/ResourceMetadataParserTest.java
index 58f7a64..2d11034 100644
--- a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/ResourceMetadataParserTest.java
+++ b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/ResourceMetadataParserTest.java
@@ -17,138 +17,13 @@
package net.shibboleth.idp.profile.spring.relyingparty.metadata;
-import java.util.Iterator;
-
-import net.shibboleth.utilities.java.support.repository.RepositorySupport;
-
import org.opensaml.saml.metadata.resolver.MetadataResolver;
-import org.opensaml.saml.metadata.resolver.impl.FileBackedHTTPMetadataResolver;
-import org.opensaml.saml.metadata.resolver.impl.FilesystemMetadataResolver;
-import org.opensaml.saml.metadata.resolver.impl.HTTPMetadataResolver;
import org.opensaml.saml.metadata.resolver.impl.ResourceBackedMetadataResolver;
-import org.opensaml.saml.saml2.metadata.EntityDescriptor;
-import org.springframework.beans.factory.BeanCreationException;
-import org.springframework.mock.env.MockPropertySource;
import org.testng.Assert;
import org.testng.annotations.Test;
public class ResourceMetadataParserTest extends AbstractMetadataParserTest {
- private static final String PROP_MDURL = "metadataURL";
-
- private static final String REPO_IDP = "java-identity-provider";
-
- private static final String ENTITY_XML = "idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/entity.xml";
-
- private static final String ENTITIES_XML = "idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/entities.xml";
-
- @Test public void fileEntity() throws Exception {
-
- final FilesystemMetadataResolver resolver = getBean(FilesystemMetadataResolver.class, "resourceFileEntity.xml", "beans.xml");
-
- Assert.assertEquals(resolver.getId(), "resourceFileEntity");
-
- final Iterator<EntityDescriptor> entities = resolver.resolve(criteriaFor(IDP_ID)).iterator();
- Assert.assertTrue(resolver.isFailFastInitialization());
- Assert.assertTrue(resolver.isRequireValidMetadata());
-
- Assert.assertEquals(entities.next().getEntityID(), IDP_ID);
- Assert.assertFalse(entities.hasNext());
-
- Assert.assertEquals(resolver.getRefreshDelayFactor(), 0.75, 0.001);
- Assert.assertSame(resolver.getParserPool(), parserPool);
-
- Assert.assertNull(resolver.resolveSingle(criteriaFor(SP_ID)));
- }
-
- @Test public void fileEntities() throws Exception {
-
- final FilesystemMetadataResolver resolver = getBean(FilesystemMetadataResolver.class, "resourceFileEntities.xml", "beans.xml");
-
- Assert.assertEquals(resolver.getId(), "resourceFileEntities");
- Assert.assertEquals(resolver.getMaxRefreshDelay(), 1000*60*55);
- Assert.assertEquals(resolver.getMinRefreshDelay(), 1000*60*15);
- Assert.assertEquals(resolver.getRefreshDelayFactor(), 0.5, 0.001);
- Assert.assertNotSame(resolver.getParserPool(), parserPool);
-
- final Iterator<EntityDescriptor> entities = resolver.resolve(criteriaFor(IDP_ID)).iterator();
- Assert.assertTrue(resolver.isFailFastInitialization());
- Assert.assertTrue(resolver.isRequireValidMetadata());
-
- Assert.assertEquals(entities.next().getEntityID(), IDP_ID);
- Assert.assertFalse(entities.hasNext());
-
- Assert.assertNotNull(resolver.resolveSingle(criteriaFor(SP_ID)));
- }
-
- @Test public void classpathEntity() throws Exception {
-
- final MetadataResolver resolver = getBean(ResourceBackedMetadataResolver.class, "resourceClasspathEntity.xml", "beans.xml");
-
- Assert.assertEquals(resolver.getId(), "resourceClasspathEntity");
-
- Assert.assertNotNull(resolver.resolveSingle(criteriaFor(IDP_ID)));
- Assert.assertNull(resolver.resolveSingle(criteriaFor(SP_ID)));
- }
-
- @Test public void classpathEntities() throws Exception {
-
- final MetadataResolver resolver = getBean(ResourceBackedMetadataResolver.class, "resourceClasspathEntities.xml", "beans.xml");
-
- Assert.assertEquals(resolver.getId(), "resourceClasspathEntities");
-
- Assert.assertNotNull(resolver.resolveSingle(criteriaFor(IDP_ID)));
- Assert.assertNotNull(resolver.resolveSingle(criteriaFor(SP_ID)));
- }
-
- @Test public void httpEntity() throws Exception {
- final MockPropertySource propSource = singletonPropertySource(PROP_MDURL,
- RepositorySupport.buildHTTPResourceURL(REPO_IDP, ENTITY_XML, false));
-
- final MetadataResolver resolver = getBean(HTTPMetadataResolver.class, propSource, "resourceHTTPEntity.xml", "beans.xml");
-
- Assert.assertEquals(resolver.getId(), "resourceHTTPEntity");
-
- Assert.assertNotNull(resolver.resolveSingle(criteriaFor(IDP_ID)));
- Assert.assertNull(resolver.resolveSingle(criteriaFor(SP_ID)));
- }
-
- @Test public void httpEntities() throws Exception {
- final MockPropertySource propSource = singletonPropertySource(PROP_MDURL,
- RepositorySupport.buildHTTPResourceURL(REPO_IDP, ENTITIES_XML, false));
-
- final MetadataResolver resolver = getBean(HTTPMetadataResolver.class, propSource, "resourceHTTPEntities.xml", "beans.xml");
-
- Assert.assertEquals(resolver.getId(), "resourceHTTPEntities");
-
- Assert.assertNotNull(resolver.resolveSingle(criteriaFor(IDP_ID)));
- Assert.assertNotNull(resolver.resolveSingle(criteriaFor(SP_ID)));
- }
-
- @Test public void fileHttpEntity() throws Exception {
- final MockPropertySource propSource = singletonPropertySource(PROP_MDURL,
- RepositorySupport.buildHTTPResourceURL(REPO_IDP, ENTITY_XML, false));
-
- final MetadataResolver resolver = getBean(FileBackedHTTPMetadataResolver.class, propSource, "resourceFileBackedHTTPEntity.xml", "beans.xml");
-
- Assert.assertEquals(resolver.getId(), "resourceFileBackedHTTPEntity");
-
- Assert.assertNotNull(resolver.resolveSingle(criteriaFor(IDP_ID)));
- Assert.assertNull(resolver.resolveSingle(criteriaFor(SP_ID)));
- }
-
- @Test public void fileHttpEntities() throws Exception {
- final MockPropertySource propSource = singletonPropertySource(PROP_MDURL,
- RepositorySupport.buildHTTPResourceURL(REPO_IDP, ENTITIES_XML, false));
-
- final MetadataResolver resolver = getBean(FileBackedHTTPMetadataResolver.class, propSource, "resourceFileBackedHTTPEntities.xml", "beans.xml");
-
- Assert.assertEquals(resolver.getId(), "resourceFileBackedHTTPEntities");
-
- Assert.assertNotNull(resolver.resolveSingle(criteriaFor(IDP_ID)));
- Assert.assertNotNull(resolver.resolveSingle(criteriaFor(SP_ID)));
- }
-
@Test public void ref() throws Exception {
final MetadataResolver resolver = getBean(ResourceBackedMetadataResolver.class, "resourceRef.xml", "beans.xml");
@@ -158,9 +33,4 @@ public class ResourceMetadataParserTest extends AbstractMetadataParserTest {
Assert.assertNotNull(resolver.resolveSingle(criteriaFor(IDP_ID)));
Assert.assertNull(resolver.resolveSingle(criteriaFor(SP_ID)));
}
-
-
- @Test(expectedExceptions={BeanCreationException.class,}, enabled=false) public void svnParams() throws Exception {
- getBean(MetadataResolver.class, "svnParams.xml", "beans.xml");
- }
}
diff --git a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/resourceClasspathEntities.xml b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/resourceClasspathEntities.xml
deleted file mode 100644
index 5615789..0000000
--- a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/resourceClasspathEntities.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<metadata:MetadataProvider xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
- xmlns:metadata="urn:mace:shibboleth:2.0:metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:resource="urn:mace:shibboleth:2.0:resource"
- xsi:schemaLocation="urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd
- urn:mace:shibboleth:2.0:resource http://shibboleth.net/schema/idp/shibboleth-resource.xsd
- urn:oasis:names:tc:SAML:2.0:metadata http://docs.oasis-open.org/security/saml/v2.0/saml-schema-metadata-2.0.xsd"
-
- id="resourceClasspathEntities" xsi:type="metadata:ResourceBackedMetadataProvider">
-
- <metadata:MetadataResource xsi:type="resource:ClasspathResource" file="/net/shibboleth/idp/profile/spring/relyingparty/metadata/entities.xml"/>
-
-</metadata:MetadataProvider>
-
\ No newline at end of file
diff --git a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/resourceClasspathEntity.xml b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/resourceClasspathEntity.xml
deleted file mode 100644
index 5479312..0000000
--- a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/resourceClasspathEntity.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<metadata:MetadataProvider xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
- xmlns:metadata="urn:mace:shibboleth:2.0:metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:resource="urn:mace:shibboleth:2.0:resource"
- xsi:schemaLocation="urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd
- urn:mace:shibboleth:2.0:resource http://shibboleth.net/schema/idp/shibboleth-resource.xsd
- urn:oasis:names:tc:SAML:2.0:metadata http://docs.oasis-open.org/security/saml/v2.0/saml-schema-metadata-2.0.xsd"
-
- id="resourceClasspathEntity" xsi:type="metadata:ResourceBackedMetadataProvider">
-
- <metadata:MetadataResource xsi:type="resource:ClasspathResource" file="/net/shibboleth/idp/profile/spring/relyingparty/metadata/entity.xml"/>
-
-</metadata:MetadataProvider>
-
\ No newline at end of file
diff --git a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/resourceFileBackedHTTPEntities.xml b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/resourceFileBackedHTTPEntities.xml
deleted file mode 100644
index 2a979d2..0000000
--- a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/resourceFileBackedHTTPEntities.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<metadata:MetadataProvider xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
- xmlns:metadata="urn:mace:shibboleth:2.0:metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:resource="urn:mace:shibboleth:2.0:resource"
- xsi:schemaLocation="urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd
- urn:mace:shibboleth:2.0:resource http://shibboleth.net/schema/idp/shibboleth-resource.xsd
- 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"
- id="resourceFileBackedHTTPEntities" xsi:type="metadata:ResourceBackedMetadataProvider">
-
-
- <metadata:MetadataResource xsi:type="resource:FileBackedHttpResource"
- file="%{DIR}/spoolResourceEntities.xml"
-
- url="%{metadataURL}"/>
-
-</metadata:MetadataProvider>
-
\ No newline at end of file
diff --git a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/resourceFileBackedHTTPEntity.xml b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/resourceFileBackedHTTPEntity.xml
deleted file mode 100644
index da69ad8..0000000
--- a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/resourceFileBackedHTTPEntity.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<metadata:MetadataProvider xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
- xmlns:metadata="urn:mace:shibboleth:2.0:metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:resource="urn:mace:shibboleth:2.0:resource"
- xsi:schemaLocation="urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd
- urn:mace:shibboleth:2.0:resource http://shibboleth.net/schema/idp/shibboleth-resource.xsd
- urn:oasis:names:tc:SAML:2.0:metadata http://docs.oasis-open.org/security/saml/v2.0/saml-schema-metadata-2.0.xsd"
-
- id="resourceFileBackedHTTPEntity" xsi:type="metadata:ResourceBackedMetadataProvider">
-
- <metadata:MetadataResource
- xsi:type="resource:FileBackedHttpResource"
- file="%{DIR}/spoolResourceEntity.xml"
-
- url="%{metadataURL}"/>
-
-</metadata:MetadataProvider>
-
\ No newline at end of file
diff --git a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/resourceFileEntities.xml b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/resourceFileEntities.xml
deleted file mode 100644
index 2c7887b..0000000
--- a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/resourceFileEntities.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<metadata:MetadataProvider xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
- xmlns:metadata="urn:mace:shibboleth:2.0:metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:resource="urn:mace:shibboleth:2.0:resource"
- xsi:schemaLocation="urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd
- urn:mace:shibboleth:2.0:resource http://shibboleth.net/schema/idp/shibboleth-resource.xsd
- 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"
- id="resourceFileEntities" xsi:type="metadata:ResourceBackedMetadataProvider">
- <metadata:MetadataResource xsi:type="resource:FilesystemResource" file="%{DIR}/entities.xml"/>
-
-</metadata:MetadataProvider>
-
\ No newline at end of file
diff --git a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/resourceFileEntity.xml b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/resourceFileEntity.xml
deleted file mode 100644
index fedb3b2..0000000
--- a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/resourceFileEntity.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<metadata:MetadataProvider xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
- xmlns:metadata="urn:mace:shibboleth:2.0:metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:resource="urn:mace:shibboleth:2.0:resource"
- xsi:schemaLocation="urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd
- urn:mace:shibboleth:2.0:resource http://shibboleth.net/schema/idp/shibboleth-resource.xsd
- urn:oasis:names:tc:SAML:2.0:metadata http://docs.oasis-open.org/security/saml/v2.0/saml-schema-metadata-2.0.xsd"
-
- id="resourceFileEntity" xsi:type="metadata:ResourceBackedMetadataProvider">
- <metadata:MetadataResource xsi:type="resource:FilesystemResource" file="%{DIR}/entity.xml"/>
-
-</metadata:MetadataProvider>
-
\ No newline at end of file
diff --git a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/resourceHTTPEntities.xml b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/resourceHTTPEntities.xml
deleted file mode 100644
index 2b9b2a6..0000000
--- a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/resourceHTTPEntities.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<metadata:MetadataProvider xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
- xmlns:metadata="urn:mace:shibboleth:2.0:metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:resource="urn:mace:shibboleth:2.0:resource"
- xsi:schemaLocation="urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd
- urn:mace:shibboleth:2.0:resource http://shibboleth.net/schema/idp/shibboleth-resource.xsd
- 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"
- id="resourceHTTPEntities" xsi:type="metadata:ResourceBackedMetadataProvider">
-
-
- <metadata:MetadataResource xsi:type="resource:HttpResource"
- url="%{metadataURL}"/>
-
-</metadata:MetadataProvider>
-
\ No newline at end of file
diff --git a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/resourceHTTPEntity.xml b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/resourceHTTPEntity.xml
deleted file mode 100644
index 9f5f4c7..0000000
--- a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/resourceHTTPEntity.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<metadata:MetadataProvider xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
- xmlns:metadata="urn:mace:shibboleth:2.0:metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:resource="urn:mace:shibboleth:2.0:resource"
- xsi:schemaLocation="urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd
- urn:mace:shibboleth:2.0:resource http://shibboleth.net/schema/idp/shibboleth-resource.xsd
- urn:oasis:names:tc:SAML:2.0:metadata http://docs.oasis-open.org/security/saml/v2.0/saml-schema-metadata-2.0.xsd"
-
- id="resourceHTTPEntity" xsi:type="metadata:ResourceBackedMetadataProvider">
-
- <metadata:MetadataResource
- xsi:type="resource:HttpResource"
- url="%{metadataURL}"/>
-
-</metadata:MetadataProvider>
-
\ No newline at end of file
diff --git a/idp-schema/src/main/resources/schema/shibboleth-metadata.xsd b/idp-schema/src/main/resources/schema/shibboleth-metadata.xsd
index fe5b9b0..3b1eaaa 100644
--- a/idp-schema/src/main/resources/schema/shibboleth-metadata.xsd
+++ b/idp-schema/src/main/resources/schema/shibboleth-metadata.xsd
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:mace:shibboleth:2.0:metadata" xmlns:shibmd="urn:mace:shibboleth:2.0:metadata"
- xmlns:security="urn:mace:shibboleth:2.0:security" xmlns:res="urn:mace:shibboleth:2.0:resource" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
+ xmlns:security="urn:mace:shibboleth:2.0:security" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" elementFormDefault="qualified">
<annotation>
@@ -11,8 +11,6 @@
schemaLocation="http://docs.oasis-open.org/security/saml/v2.0/saml-schema-assertion-2.0.xsd"/>
<import namespace="urn:oasis:names:tc:SAML:2.0:metadata"
schemaLocation="http://docs.oasis-open.org/security/saml/v2.0/saml-schema-metadata-2.0.xsd"/>
- <import namespace="urn:mace:shibboleth:2.0:resource"
- schemaLocation="http://shibboleth.net/schema/idp/shibboleth-resource.xsd"/>
<import namespace="urn:mace:shibboleth:2.0:security"
schemaLocation="http://shibboleth.net/schema/idp/shibboleth-security.xsd"/>
@@ -52,18 +50,6 @@
</annotation>
<complexContent>
<extension base="shibmd:ReloadingMetadataProviderType">
- <sequence>
- <element name="MetadataResource" type="res:ResourceType" minOccurs="0">
- <annotation>
- <documentation>The resource from which metadata will be read.</documentation>
- </annotation>
- </element>
- </sequence>
- <attribute name="maxCacheDuration" type="string">
- <annotation>
- <documentation>This property is deprecated, use maxRefreshDelay instead.</documentation>
- </annotation>
- </attribute>
<attribute name="resourceRef" type="string">
<annotation>
<documentation>the name of a bean with the (Spring) resource to use</documentation>
diff --git a/idp-schema/src/main/resources/schema/shibboleth-resource.xsd b/idp-schema/src/main/resources/schema/shibboleth-resource.xsd
deleted file mode 100644
index b7a8a2c..0000000
--- a/idp-schema/src/main/resources/schema/shibboleth-resource.xsd
+++ /dev/null
@@ -1,126 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:res="urn:mace:shibboleth:2.0:resource" targetNamespace="urn:mace:shibboleth:2.0:resource" elementFormDefault="qualified">
-
- <complexType name="ClasspathResource">
- <complexContent>
- <extension base="res:ResourceType">
- <attribute name="file" type="string" use="required">
- <annotation>
- <documentation>
- The file, within the JVM classpath, this resource represents.
- </documentation>
- </annotation>
- </attribute>
- </extension>
- </complexContent>
- </complexType>
-
- <complexType name="FilesystemResource">
- <complexContent>
- <extension base="res:ResourceType">
- <attribute name="file" type="string" use="required">
- <annotation>
- <documentation>
- The file this resource represents.
- </documentation>
- </annotation>
- </attribute>
- </extension>
- </complexContent>
- </complexType>
-
- <complexType name="HttpResource">
- <complexContent>
- <extension base="res:ResourceType">
- <attribute name="url" type="string" use="required">
- <annotation>
- <documentation>
- The URL this resource represents.
- </documentation>
- </annotation>
- </attribute>
- </extension>
- </complexContent>
- </complexType>
-
- <complexType name="FileBackedHttpResource">
- <complexContent>
- <extension base="res:ResourceType">
- <attribute name="url" type="string" use="required">
- <annotation>
- <documentation>
- The URL this resource represents.
- </documentation>
- </annotation>
- </attribute>
- <attribute name="file" type="string" use="required">
- <annotation>
- <documentation>
- The file the resource will be saved to and read from when the URL resource is not available.
- </documentation>
- </annotation>
- </attribute>
- </extension>
- </complexContent>
- </complexType>
-
- <complexType name="SVNResource">
- <complexContent>
- <extension base="res:ResourceType">
- <attribute name="repositoryURL" type="string" use="required"/>
- <attribute name="connectionTimeout" type="string"/>
- <attribute name="readTimeout" type="string"/>
- <attribute name="workingCopyDirectory" type="string" use="required"/>
- <attribute name="revision" type="string"/>
- <attribute name="resourceFile" type="string" use="required"/>
- <attribute name="username" type="string"/>
- <attribute name="password" type="string"/>
- <attribute name="proxyHost" type="string"/>
- <attribute name="proxyPort" type="string"/>
- <attribute name="proxyUsername" type="string"/>
- <attribute name="proxyPassword" type="string"/>
- </extension>
- </complexContent>
- </complexType>
-
- <complexType name="ResourceType" abstract="true">
- <sequence>
- <element ref="res:ResourceFilter" minOccurs="0"/>
- </sequence>
- </complexType>
-
- <complexType name="PropertyReplacement">
- <annotation>
- <documentation>
- A resource filter that replaces ${KEY} macros with the values associated with the KEY in a property
- file.
- </documentation>
- </annotation>
- <complexContent>
- <extension base="res:ResourceFilterType">
- <attribute name="propertyFile" type="string" use="required">
- <annotation>
- <documentation> Path to the Java property file used during macro expansion.</documentation>
- </annotation>
- </attribute>
- </extension>
- </complexContent>
- </complexType>
-
- <complexType name="Chaining">
- <annotation>
- <documentation>A resource filter that executes the child filters in the order they defined.</documentation>
- </annotation>
- <complexContent>
- <extension base="res:ResourceFilterType">
- <sequence>
- <element ref="res:ResourceFilter" minOccurs="0" maxOccurs="unbounded"/>
- </sequence>
- </extension>
- </complexContent>
- </complexType>
-
- <element name="ResourceFilter" type="res:ResourceFilterType"/>
- <complexType name="ResourceFilterType" abstract="true"/>
-
-</schema>
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list