Return-Path: Delivered-To: apmail-cxf-issues-archive@www.apache.org Received: (qmail 77647 invoked from network); 9 Nov 2009 18:39:55 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 9 Nov 2009 18:39:55 -0000 Received: (qmail 57485 invoked by uid 500); 9 Nov 2009 18:39:55 -0000 Delivered-To: apmail-cxf-issues-archive@cxf.apache.org Received: (qmail 57465 invoked by uid 500); 9 Nov 2009 18:39:55 -0000 Mailing-List: contact issues-help@cxf.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cxf.apache.org Delivered-To: mailing list issues@cxf.apache.org Received: (qmail 57455 invoked by uid 99); 9 Nov 2009 18:39:55 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 09 Nov 2009 18:39:55 +0000 X-ASF-Spam-Status: No, hits=-10.5 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 09 Nov 2009 18:39:52 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 6B599234C046 for ; Mon, 9 Nov 2009 10:39:32 -0800 (PST) Message-ID: <757926322.1257791972422.JavaMail.jira@brutus> Date: Mon, 9 Nov 2009 18:39:32 +0000 (UTC) From: "Daniel Kulp (JIRA)" To: issues@cxf.apache.org Subject: [jira] Reopened: (CXF-1647) Non-String Placeholders Fail to Validate In-Reply-To: <1434551630.1213295925535.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/CXF-1647?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Daniel Kulp reopened CXF-1647: ------------------------------ Assignee: Daniel Kulp Re-openning as I have a semi-solution that I'm testing that should work for 80% (or more) of the cases. Basically, I've defined a type of: and then defined a bunch of other types like: that allow the value to be either a int or something that matches the patterns. While not 100% since the spring ProeperyPlaceholderCOnfigurer allows setting custom prefix/suffix things, the above patter works for pretty much all the use cases I found (quick search). In anycase, in our schemas, instead of xsd:int, we need to use ParameterizedInt and it should then validate fine. > Non-String Placeholders Fail to Validate > ---------------------------------------- > > Key: CXF-1647 > URL: https://issues.apache.org/jira/browse/CXF-1647 > Project: CXF > Issue Type: Bug > Components: Configuration > Affects Versions: 2.1 > Environment: JDK 1.5.0_13, Mule 2.0, Spring framework 2.5.4 > Reporter: Eugene Goldfarb > Assignee: Daniel Kulp > Priority: Minor > > Using the schema-based spring bean configuration doesn't work with some property placeholders which are required to be integers. > The timeout properties are declared as in the XSD, making the configuration fail. > The MULE project had this issue as well, they handled it by introducing a special replaceable types in their schema. > See http://mule.mulesource.org/jira/browse/MULE-1887 > I'm not using CXF's configuration reader or servlet. I am loading the beans via mule2 by including the application-context.xml file in mule-config.xml. It uses Spring for configuration. > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:spring="http://www.springframework.org/schema/beans" > xsi:schemaLocation=" > http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd > http://www.mulesource.org/schema/mule/core/2.0 http://www.mulesource.org/schema/mule/core/2.0/mule.xsd"> > > > > > Spring application-context.xml: > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:aop="http://www.springframework.org/schema/aop" > xmlns:tx="http://www.springframework.org/schema/tx" > xmlns:context="http://www.springframework.org/schema/context" > xmlns:http="http://cxf.apache.org/transports/http/configuration" > xsi:schemaLocation="http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans-2.5.xsd > http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd > http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd > http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd > http://cxf.apache.org/transports/http/configuration http://cxf.apache.org/schemas/configuration/http-conf.xsd"> > > > > ReceiveTimeout="${httpTimeout}" MaxRetransmits="1" > AutoRedirect="true" Connection="Keep-Alive" /> > > > Error: > 4620 [main] ERROR org.mule.config.builders.AbstractConfigurationBuilder - Configuration with "org.mule.config.spring.SpringXmlConfigurationBuilder" failed. > org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Failed to import bean definitions from relative location [/application-context.xml] > Offending resource: URL [file:/C:/dev/mule/target/classes/mule-config.xml]; nested exception is org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 158 in XML document from URL [file:/C:/dev/mule/target/classes/application-context.xml] is invalid; nested exception is org.xml.sax.SAXParseException: cvc-datatype-valid.1.2.1: '${httpTimeout}' is not a valid value for 'integer'. > at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68) > at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85) > at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:76) > at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:201) > at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseDefaultElement(DefaultBeanDefinitionDocumentReader.java:147) > at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:132) > at org.mule.config.spring.MuleBeanDefinitionDocumentReader.parseBeanDefinitions(MuleBeanDefinitionDocumentReader.java:45) > at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:92) > at org.mule.config.spring.MuleHierarchicalBeanDefinitionParserDelegate.handleSpringElements(MuleHierarchicalBeanDefinitionParserDelegate.java:162) > at org.mule.config.spring.MuleHierarchicalBeanDefinitionParserDelegate.parseCustomElement(MuleHierarchicalBeanDefinitionParserDelegate.java:70) > at org.mule.config.spring.MuleHierarchicalBeanDefinitionParserDelegate.parseCustomElement(MuleHierarchicalBeanDefinitionParserDelegate.java:130) > at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1243) > at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:141) > at org.mule.config.spring.MuleBeanDefinitionDocumentReader.parseBeanDefinitions(MuleBeanDefinitionDocumentReader.java:45) > at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:92) > at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:507) > at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:398) > at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342) > at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310) > at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143) > at org.mule.config.spring.MuleApplicationContext.loadBeanDefinitions(MuleApplicationContext.java:216) > at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:123) > at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:423) > at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:353) > at org.mule.config.spring.MuleApplicationContext.(MuleApplicationContext.java:102) > at org.mule.config.spring.MuleApplicationContext.(MuleApplicationContext.java:56) > at org.mule.config.spring.SpringXmlConfigurationBuilder.createSpringParentRegistry(SpringXmlConfigurationBuilder.java:95) > at org.mule.config.spring.SpringXmlConfigurationBuilder.doConfigure(SpringXmlConfigurationBuilder.java:71) > at org.mule.config.builders.AbstractConfigurationBuilder.configure(AbstractConfigurationBuilder.java:38) > at org.mule.config.builders.AbstractResourceConfigurationBuilder.configure(AbstractResourceConfigurationBuilder.java:78) > at org.mule.context.DefaultMuleContextFactory.createMuleContext(DefaultMuleContextFactory.java:97) > at org.mule.context.DefaultMuleContextFactory.createMuleContext(DefaultMuleContextFactory.java:55) > at com.defimobile.mule.TestNewCustomer.init(TestNewCustomer.java:27) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:585) > at org.junit.internal.runners.ClassRoadie.runBefores(ClassRoadie.java:49) > at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:36) > at org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42) > at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38) > at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) > at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) > at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) > at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) > at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) > Caused by: org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 158 in XML document from URL [file:/C:/dev/mule/target/classes/application-context.xml] is invalid; nested exception is org.xml.sax.SAXParseException: cvc-datatype-valid.1.2.1: '${httpTimeout}' is not a valid value for 'integer'. > at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:404) > at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342) > at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310) > at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:190) > ... 42 more > Caused by: org.xml.sax.SAXParseException: cvc-datatype-valid.1.2.1: '${httpTimeout}' is not a valid value for 'integer'. > at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:236) > at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:172) > at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:382) > at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:316) > at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:429) > at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(XMLSchemaValidator.java:3185) > at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.processOneAttribute(XMLSchemaValidator.java:2799) > at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.processAttributes(XMLSchemaValidator.java:2735) > at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:2094) > at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.emptyElement(XMLSchemaValidator.java:725) > at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:322) > at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1693) > at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368) > at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834) > at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764) > at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148) > at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:250) > at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:292) > at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:75) > at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:396) > ... 45 more -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.