Java 类org.springframework.beans.factory.parsing.BeanDefinitionParsingException 实例源码

项目:lams    文件:GroovyBeanDefinitionReader.java   
/**
 * Define a Spring namespace definition to use.
 * @param definition the namespace definition
 */
public void xmlns(Map<String, String> definition) {
    if (!definition.isEmpty()) {
        for (Map.Entry<String,String> entry : definition.entrySet()) {
            String namespace = entry.getKey();
            String uri = entry.getValue();
            if (uri == null) {
                throw new IllegalArgumentException("Namespace definition must supply a non-null URI");
            }
            NamespaceHandler namespaceHandler = this.xmlBeanDefinitionReader.getNamespaceHandlerResolver().resolve(uri);
            if (namespaceHandler == null) {
                throw new BeanDefinitionParsingException(new Problem("No namespace handler found for URI: " + uri,
                        new Location(new DescriptiveResource(("Groovy")))));
            }
            this.namespaces.put(namespace, uri);
        }
    }
}
项目:spring4-understanding    文件:InvalidConfigurationClassDefinitionTests.java   
@Test
public void configurationClassesMayNotBeFinal() {
    @Configuration
    final class Config { }

    BeanDefinition configBeanDef = rootBeanDefinition(Config.class).getBeanDefinition();
    DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
    beanFactory.registerBeanDefinition("config", configBeanDef);

    try {
        ConfigurationClassPostProcessor pp = new ConfigurationClassPostProcessor();
        pp.postProcessBeanFactory(beanFactory);
        fail("expected exception");
    }
    catch (BeanDefinitionParsingException ex) {
        assertTrue(ex.getMessage(), ex.getMessage().contains("Remove the final modifier"));
    }
}
项目:spring4-understanding    文件:GroovyBeanDefinitionReader.java   
/**
 * Define a Spring XML namespace definition to use.
 * @param definition the namespace definition
 */
public void xmlns(Map<String, String> definition) {
    if (!definition.isEmpty()) {
        for (Map.Entry<String,String> entry : definition.entrySet()) {
            String namespace = entry.getKey();
            String uri = entry.getValue();
            if (uri == null) {
                throw new IllegalArgumentException("Namespace definition must supply a non-null URI");
            }
            NamespaceHandler namespaceHandler = this.groovyDslXmlBeanDefinitionReader.getNamespaceHandlerResolver().resolve(
                uri);
            if (namespaceHandler == null) {
                throw new BeanDefinitionParsingException(new Problem("No namespace handler found for URI: " + uri,
                        new Location(new DescriptiveResource(("Groovy")))));
            }
            this.namespaces.put(namespace, uri);
        }
    }
}
项目:spring    文件:GroovyBeanDefinitionReader.java   
/**
 * Define a Spring XML namespace definition to use.
 * @param definition the namespace definition
 */
public void xmlns(Map<String, String> definition) {
    if (!definition.isEmpty()) {
        for (Map.Entry<String,String> entry : definition.entrySet()) {
            String namespace = entry.getKey();
            String uri = entry.getValue();
            if (uri == null) {
                throw new IllegalArgumentException("Namespace definition must supply a non-null URI");
            }
            NamespaceHandler namespaceHandler =
                    this.groovyDslXmlBeanDefinitionReader.getNamespaceHandlerResolver().resolve(uri);
            if (namespaceHandler == null) {
                throw new BeanDefinitionParsingException(new Problem("No namespace handler found for URI: " + uri,
                        new Location(new DescriptiveResource(("Groovy")))));
            }
            this.namespaces.put(namespace, uri);
        }
    }
}
项目:class-guard    文件:InvalidConfigurationClassDefinitionTests.java   
@Test
public void configurationClassesMayNotBeFinal() {
    @Configuration
    final class Config { }

    BeanDefinition configBeanDef = rootBeanDefinition(Config.class).getBeanDefinition();
    DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
    beanFactory.registerBeanDefinition("config", configBeanDef);

    try {
        ConfigurationClassPostProcessor pp = new ConfigurationClassPostProcessor();
        pp.postProcessBeanFactory(beanFactory);
        fail("expected exception");
    }
    catch (BeanDefinitionParsingException ex) {
        assertTrue(ex.getMessage(), ex.getMessage().contains("Remove the final modifier"));
    }
}
项目:further-open-core    文件:PFixtureManagerBeanDefinitionParser.java   
/**
 * @param element
 * @param parserContext
 * @return
 * @see org.springframework.beans.factory.xml.AbstractBeanDefinitionParser#parseInternal(org.w3c.dom.Element,
 *      org.springframework.beans.factory.xml.ParserContext)
 */
@Override
protected AbstractBeanDefinition parseInternal(final Element element,
        final ParserContext parserContext)
{
    final BeanDefinitionBuilder factory = parsePFixture(element);

    final List<Element> childElements = DomUtils.getChildElementsByTagName(element,
            CoreSchemaConstants.ELEMENT_LOCATION);
    // Must have at least one element
    if (childElements == null || childElements.isEmpty())
    {
        throw new BeanDefinitionParsingException(
                new Problem(
                        "Portable test fixture manager must be wired with at least one context location",
                        new Location(parserContext.getReaderContext().getResource())));
    }
    parseChildLocations(childElements, factory);

    return factory.getBeanDefinition();
}
项目:gemini.blueprint    文件:InvalidOsgiDefaultsTest.java   
public void testInvalidDefaultsCheck() throws Exception {
    XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(appContext);

    try {
        reader.loadBeanDefinitions(new ClassPathResource("osgiInvalidDefaults.xml", getClass()));
        fail("should have failed since osgi:defaults cannot be used outside the root element");
    }
    catch (BeanDefinitionParsingException ex) {
        // expected
    }
}
项目:lams    文件:GroovyBeanDefinitionReader.java   
/**
 * Load bean definitions from the specified Groovy script.
 * @param encodedResource the resource descriptor for the Groovy script,
 * allowing to specify an encoding to use for parsing the file
 * @return the number of bean definitions found
 * @throws BeanDefinitionStoreException in case of loading or parsing errors
 */
public int loadBeanDefinitions(EncodedResource encodedResource) throws BeanDefinitionStoreException {
    Closure beans = new Closure(this){
        public Object call(Object[] args) {
            invokeBeanDefiningClosure((Closure) args[0]);
            return null;
        }
    };
    Binding binding = new Binding() {
        @Override
        public void setVariable(String name, Object value) {
            if (currentBeanDefinition !=null) {
                applyPropertyToBeanDefinition(name, value);
            }
            else {
                super.setVariable(name, value);
            }
        }
    };
    binding.setVariable("beans", beans);

    int countBefore = getRegistry().getBeanDefinitionCount();
    try {
        GroovyShell shell = new GroovyShell(getResourceLoader().getClassLoader(), binding);
        shell.evaluate(encodedResource.getReader(), encodedResource.getResource().getFilename());
    }
    catch (Throwable ex) {
        throw new BeanDefinitionParsingException(new Problem("Error evaluating Groovy script: " + ex.getMessage(),
                new Location(encodedResource.getResource()), null, ex));
    }
    return getRegistry().getBeanDefinitionCount() - countBefore;
}
项目:spring4-understanding    文件:AopNamespaceHandlerPointcutErrorTests.java   
@Test
public void testDuplicatePointcutConfig() {
    try {
        DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
        new XmlBeanDefinitionReader(bf).loadBeanDefinitions(
                qualifiedResource(getClass(), "pointcutDuplication.xml"));
        fail("parsing should have caused a BeanDefinitionStoreException");
    }
    catch (BeanDefinitionStoreException ex) {
        assertTrue(ex.contains(BeanDefinitionParsingException.class));
    }
}
项目:spring4-understanding    文件:AopNamespaceHandlerPointcutErrorTests.java   
@Test
public void testMissingPointcutConfig() {
    try {
        DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
        new XmlBeanDefinitionReader(bf).loadBeanDefinitions(
                qualifiedResource(getClass(), "pointcutMissing.xml"));
        fail("parsing should have caused a BeanDefinitionStoreException");
    }
    catch (BeanDefinitionStoreException ex) {
        assertTrue(ex.contains(BeanDefinitionParsingException.class));
    }
}
项目:spring4-understanding    文件:AbstractCircularImportDetectionTests.java   
@Test
public void simpleCircularImportIsDetected() throws Exception {
    boolean threw = false;
    try {
        newParser().parse(loadAsConfigurationSource(A.class), "A");
    }
    catch (BeanDefinitionParsingException ex) {
        assertTrue("Wrong message. Got: " + ex.getMessage(),
                ex.getMessage().contains(
                    "Illegal attempt by @Configuration class 'AbstractCircularImportDetectionTests.B' " +
                    "to import class 'AbstractCircularImportDetectionTests.A'"));
        threw = true;
    }
    assertTrue(threw);
}
项目:spring4-understanding    文件:AbstractCircularImportDetectionTests.java   
@Test
public void complexCircularImportIsDetected() throws Exception {
    boolean threw = false;
    try {
        newParser().parse(loadAsConfigurationSource(X.class), "X");
    }
    catch (BeanDefinitionParsingException ex) {
        assertTrue("Wrong message. Got: " + ex.getMessage(),
                ex.getMessage().contains(
                    "Illegal attempt by @Configuration class 'AbstractCircularImportDetectionTests.Z2' " +
                    "to import class 'AbstractCircularImportDetectionTests.Z'"));
        threw = true;
    }
    assertTrue(threw);
}
项目:spring4-understanding    文件:ComponentScanParserScopedProxyTests.java   
@Test
@SuppressWarnings("resource")
public void testInvalidConfigScopedProxy() throws Exception {
    exception.expect(BeanDefinitionParsingException.class);
    exception.expectMessage(containsString("Cannot define both 'scope-resolver' and 'scoped-proxy' on <component-scan> tag"));
    exception.expectMessage(containsString("Offending resource: class path resource [org/springframework/context/annotation/scopedProxyInvalidConfigTests.xml]"));
    new ClassPathXmlApplicationContext("org/springframework/context/annotation/scopedProxyInvalidConfigTests.xml");
}
项目:spring4-understanding    文件:GroovyBeanDefinitionReader.java   
/**
 * Load bean definitions from the specified Groovy script or XML file.
 * <p>Note that {@code ".xml"} files will be parsed as XML content; all other kinds
 * of resources will be parsed as Groovy scripts.
 * @param encodedResource the resource descriptor for the Groovy script or XML file,
 * allowing specification of an encoding to use for parsing the file
 * @return the number of bean definitions found
 * @throws BeanDefinitionStoreException in case of loading or parsing errors
 */
public int loadBeanDefinitions(EncodedResource encodedResource) throws BeanDefinitionStoreException {
    // Check for XML files and redirect them to the "standard" XmlBeanDefinitionReader
    String filename = encodedResource.getResource().getFilename();
    if (StringUtils.endsWithIgnoreCase(filename, ".xml")) {
        return this.standardXmlBeanDefinitionReader.loadBeanDefinitions(encodedResource);
    }

    Closure beans = new Closure(this) {
        public Object call(Object[] args) {
            invokeBeanDefiningClosure((Closure) args[0]);
            return null;
        }
    };
    Binding binding = new Binding() {
        @Override
        public void setVariable(String name, Object value) {
            if (currentBeanDefinition != null) {
                applyPropertyToBeanDefinition(name, value);
            }
            else {
                super.setVariable(name, value);
            }
        }
    };
    binding.setVariable("beans", beans);

    int countBefore = getRegistry().getBeanDefinitionCount();
    try {
        GroovyShell shell = new GroovyShell(getResourceLoader().getClassLoader(), binding);
        shell.evaluate(encodedResource.getReader(), "beans");
    }
    catch (Throwable ex) {
        throw new BeanDefinitionParsingException(new Problem("Error evaluating Groovy script: " + ex.getMessage(),
                new Location(encodedResource.getResource()), null, ex));
    }
    return getRegistry().getBeanDefinitionCount() - countBefore;
}
项目:spring    文件:GroovyBeanDefinitionReader.java   
/**
 * Load bean definitions from the specified Groovy script or XML file.
 * <p>Note that {@code ".xml"} files will be parsed as XML content; all other kinds
 * of resources will be parsed as Groovy scripts.
 * @param encodedResource the resource descriptor for the Groovy script or XML file,
 * allowing specification of an encoding to use for parsing the file
 * @return the number of bean definitions found
 * @throws BeanDefinitionStoreException in case of loading or parsing errors
 */
public int loadBeanDefinitions(EncodedResource encodedResource) throws BeanDefinitionStoreException {
    // Check for XML files and redirect them to the "standard" XmlBeanDefinitionReader
    String filename = encodedResource.getResource().getFilename();
    if (StringUtils.endsWithIgnoreCase(filename, ".xml")) {
        return this.standardXmlBeanDefinitionReader.loadBeanDefinitions(encodedResource);
    }

    Closure beans = new Closure(this) {
        public Object call(Object[] args) {
            invokeBeanDefiningClosure((Closure) args[0]);
            return null;
        }
    };
    Binding binding = new Binding() {
        @Override
        public void setVariable(String name, Object value) {
            if (currentBeanDefinition != null) {
                applyPropertyToBeanDefinition(name, value);
            }
            else {
                super.setVariable(name, value);
            }
        }
    };
    binding.setVariable("beans", beans);

    int countBefore = getRegistry().getBeanDefinitionCount();
    try {
        GroovyShell shell = new GroovyShell(getResourceLoader().getClassLoader(), binding);
        shell.evaluate(encodedResource.getReader(), "beans");
    }
    catch (Throwable ex) {
        throw new BeanDefinitionParsingException(new Problem("Error evaluating Groovy script: " + ex.getMessage(),
                new Location(encodedResource.getResource()), null, ex));
    }
    return getRegistry().getBeanDefinitionCount() - countBefore;
}
项目:class-guard    文件:AopNamespaceHandlerPointcutErrorTests.java   
@Test
public void testDuplicatePointcutConfig() {
    try {
        DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
        new XmlBeanDefinitionReader(bf).loadBeanDefinitions(
                qualifiedResource(getClass(), "pointcutDuplication.xml"));
        fail("parsing should have caused a BeanDefinitionStoreException");
    }
    catch (BeanDefinitionStoreException ex) {
        assertTrue(ex.contains(BeanDefinitionParsingException.class));
    }
}
项目:class-guard    文件:AopNamespaceHandlerPointcutErrorTests.java   
@Test
public void testMissingPointcutConfig() {
    try {
        DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
        new XmlBeanDefinitionReader(bf).loadBeanDefinitions(
                qualifiedResource(getClass(), "pointcutMissing.xml"));
        fail("parsing should have caused a BeanDefinitionStoreException");
    }
    catch (BeanDefinitionStoreException ex) {
        assertTrue(ex.contains(BeanDefinitionParsingException.class));
    }
}
项目:class-guard    文件:AbstractCircularImportDetectionTests.java   
@Test
public void simpleCircularImportIsDetected() throws Exception {
    boolean threw = false;
    try {
        newParser().parse(loadAsConfigurationSource(A.class), "A");
    }
    catch (BeanDefinitionParsingException ex) {
        assertTrue("Wrong message. Got: " + ex.getMessage(),
                ex.getMessage().contains(
                    "Illegal attempt by @Configuration class 'AbstractCircularImportDetectionTests.B' " +
                    "to import class 'AbstractCircularImportDetectionTests.A'"));
        threw = true;
    }
    assertTrue(threw);
}
项目:class-guard    文件:AbstractCircularImportDetectionTests.java   
@Test
public void complexCircularImportIsDetected() throws Exception {
    boolean threw = false;
    try {
        newParser().parse(loadAsConfigurationSource(X.class), "X");
    }
    catch (BeanDefinitionParsingException ex) {
        assertTrue("Wrong message. Got: " + ex.getMessage(),
                ex.getMessage().contains(
                    "Illegal attempt by @Configuration class 'AbstractCircularImportDetectionTests.Z2' " +
                    "to import class 'AbstractCircularImportDetectionTests.Z'"));
        threw = true;
    }
    assertTrue(threw);
}
项目:class-guard    文件:BeanMethodPolymorphismTests.java   
@Test
public void beanMethodOverloadingWithoutInheritance() {

    @SuppressWarnings({ "hiding" })
    @Configuration class Config {
        @Bean String aString() { return "na"; }
        @Bean String aString(Integer dependency) { return "na"; }
    }

    this.thrown.expect(BeanDefinitionParsingException.class);
    this.thrown.expectMessage("overloaded @Bean methods named 'aString'");
    new AnnotationConfigApplicationContext(Config.class);
}
项目:jeffaschenk-commons    文件:SetUpSpringContainerBootStrap.java   
/**
 * Wrapper for Load Bean Definitions
 *
 * @param xmlReader
 * @param resourceName
 */
private static void loadBeanDefinitions(XmlBeanDefinitionReader xmlReader, String resourceName) throws RuntimeException {
    try {
        xmlReader.loadBeanDefinitions(new ClassPathResource(resourceName));
    } catch (final BeanDefinitionParsingException bdpe) {
        if (resourceName.equalsIgnoreCase(defaultSecurity)) {
            return;
        } else {
            throw bdpe;
        }
    }
}
项目:spring-cloud-aws    文件:ContextCredentialsBeanDefinitionParserTest.java   
@Test
public void testMultipleElements() throws Exception {
    this.expectedException.expect(BeanDefinitionParsingException.class);
    this.expectedException.expectMessage("only allowed once per");

    //noinspection ResultOfObjectAllocationIgnored
    new ClassPathXmlApplicationContext(getClass().getSimpleName() + "-testMultipleElements.xml", getClass());
}
项目:spring-cloud-aws    文件:ContextCredentialsBeanDefinitionParserTest.java   
@Test
public void testWithEmptyAccessKey() throws Exception {
    this.expectedException.expect(BeanDefinitionParsingException.class);
    this.expectedException.expectMessage("The 'access-key' attribute must not be empty");
    //noinspection ResultOfObjectAllocationIgnored
    new ClassPathXmlApplicationContext(getClass().getSimpleName() + "-testWithEmptyAccessKey.xml", getClass());
}
项目:spring-cloud-aws    文件:ContextCredentialsBeanDefinitionParserTest.java   
@Test
public void testWithEmptySecretKey() throws Exception {
    this.expectedException.expect(BeanDefinitionParsingException.class);
    this.expectedException.expectMessage("The 'secret-key' attribute must not be empty");
    //noinspection ResultOfObjectAllocationIgnored
    new ClassPathXmlApplicationContext(getClass().getSimpleName() + "-testWithEmptySecretKey.xml", getClass());
}
项目:spring-cloud-aws    文件:ContextRegionBeanDefinitionParserTest.java   
@Test
public void parse_autoDetectionAndStaticRegionProvider_reportsError() throws Exception {
    //Arrange
    this.expectedException.expect(BeanDefinitionParsingException.class);
    this.expectedException.expectMessage("The attribute 'auto-detect' can only be enabled without a region or region-provider specified");

    //Act
    //noinspection ResultOfObjectAllocationIgnored
    new ClassPathXmlApplicationContext(getClass().getSimpleName() + "-testAutoDetectionWithConfiguredRegion.xml", getClass());

    //Assert
}
项目:spring-cloud-aws    文件:ContextRegionBeanDefinitionParserTest.java   
@Test
public void parse_noValidRegionProviderConfigured_reportsError() throws Exception {
    //Arrange
    this.expectedException.expect(BeanDefinitionParsingException.class);
    this.expectedException.expectMessage("Either auto-detect must be enabled, or a region or region-provider must be specified");

    //Act
    //noinspection ResultOfObjectAllocationIgnored
    new ClassPathXmlApplicationContext(getClass().getSimpleName() + "-testNoValidRegionProviderConfigurationSpecified.xml", getClass());

    //Assert
}
项目:spring-cloud-aws    文件:ContextRegionBeanDefinitionParserTest.java   
@Test
public void parse_twoRegionProviderConfigured_reportsError() throws Exception {
    //Arrange
    this.expectedException.expect(BeanDefinitionParsingException.class);
    this.expectedException.expectMessage("Multiple <context-region/> elements detected. The <context-region/> element is only allowed once per application context");

    //Act
    //noinspection ResultOfObjectAllocationIgnored
    new ClassPathXmlApplicationContext(getClass().getSimpleName() + "-testTwoRegionProviderConfigured.xml", getClass());

    //Assert
}
项目:spring-osgi    文件:OsgiSingleReferenceParserWithInvalidFilesTest.java   
private void expectException(String resourceName) {
    try {
        readCtxFromResource(resourceName);
        fail("should have thrown parsing exception, invalid resource " + resourceName);
    }
    catch (BeanDefinitionParsingException ex) {
        // expected
    }
}
项目:spring-osgi    文件:InvalidOsgiDefaultsTest.java   
public void testInvalidDefaultsCheck() throws Exception {
    XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(appContext);

    try {
        reader.loadBeanDefinitions(new ClassPathResource("osgiInvalidDefaults.xml", getClass()));
        fail("should have failed since osgi:defaults cannot be used outside the root element");
    }
    catch (BeanDefinitionParsingException ex) {
        // expected
    }
}
项目:spring4-understanding    文件:ConfigurationClassProcessingTests.java   
@Test(expected=BeanDefinitionParsingException.class)
public void testFinalBeanMethod() {
    initBeanFactory(ConfigWithFinalBean.class);
}
项目:spring4-understanding    文件:GroovyApplicationContextTests.java   
@Test(expected = BeanDefinitionParsingException.class)
public void testConfigFileParsingError() {
    new GenericGroovyApplicationContext("org/springframework/context/groovy/applicationContext-error.groovy");
}
项目:class-guard    文件:ImportedConfigurationClassEnhancementTests.java   
@Test(expected=BeanDefinitionParsingException.class)
public void importingNonConfigurationClassCausesBeanDefinitionParsingException() {
    new AnnotationConfigApplicationContext(ConfigThatImportsNonConfigClass.class);
}
项目:class-guard    文件:ConfigurationClassProcessingTests.java   
@Test(expected=BeanDefinitionParsingException.class)
public void testFinalBeanMethod() {
    initBeanFactory(ConfigWithFinalBean.class);
}
项目:class-guard    文件:ImportTests.java   
@Test(expected=BeanDefinitionParsingException.class)
public void testImportNonConfigurationAnnotationClassCausesError() {
    processConfigurationClasses(ConfigAnnotated.class);
}
项目:oauth-client-master    文件:InvalidResourceBeanDefinitionParserTests.java   
@Test
public void testMissingTokenUriForClientCredentials() {
    expected.expect(BeanDefinitionParsingException.class);
    expected.expectMessage("accessTokenUri must be supplied");
    loadContext("type='client_credentials'");
}
项目:oauth-client-master    文件:InvalidResourceBeanDefinitionParserTests.java   
@Test
public void testMissingAuthorizationUriForImplicit() {
    expected.expect(BeanDefinitionParsingException.class);
    expected.expectMessage("authorization URI must be supplied");
    loadContext("type='implicit'");
}
项目:oauth-client-master    文件:InvalidResourceBeanDefinitionParserTests.java   
@Test
public void testMissingAuthorizationUriForAuthorizationCode() {
    expected.expect(BeanDefinitionParsingException.class);
    expected.expectMessage("authorization URI must be supplied");
    loadContext("type='authorization_code' access-token-uri='http://somewhere.com'");
}
项目:oauth-client-master    文件:InvalidResourceBeanDefinitionParserTests.java   
@Test
public void testMissingUsernameForPassword() {
    expected.expect(BeanDefinitionParsingException.class);
    expected.expectMessage("A username must be supplied on a resource element of type password");
    loadContext("type='password' access-token-uri='http://somewhere.com'");
}
项目:oauth-client-master    文件:InvalidResourceBeanDefinitionParserTests.java   
@Test
public void testMissingPasswordForPassword() {
    expected.expect(BeanDefinitionParsingException.class);
    expected.expectMessage("A password must be supplied on a resource element of type password");
    loadContext("type='password' username='admin' access-token-uri='http://somewhere.com'");
}