Author: sylvain Date: Wed Dec 15 03:58:32 2004 New Revision: 111965 URL: http://svn.apache.org/viewcvs?view=rev&rev=111965 Log: fix bug #31668: the entity resolver is not attached to the parser used to read form files Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/DefaultFormManager.java cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/binding/JXPathBindingManager.java cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/datatype/DefaultSelectionListBuilder.java cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/util/DomHelper.java cocoon/branches/BRANCH_2_1_X/status.xml
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/DefaultFormManager.java Url: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/DefaultFormManager.java?view=diff&rev=111965&p1=cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/DefaultFormManager.java&r1=111964&p2=cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/DefaultFormManager.java&r2=111965 ============================================================================== --- cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/DefaultFormManager.java (original) +++ cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/DefaultFormManager.java Wed Dec 15 03:58:32 2004 @@ -151,7 +151,7 @@ try { InputSource inputSource = new InputSource(source.getInputStream()); inputSource.setSystemId(source.getURI()); - formDocument = DomHelper.parse(inputSource); + formDocument = DomHelper.parse(inputSource, this.manager); } catch (Exception e) { throw new CascadingException("Could not parse form definition from " + source.getURI(), e); @@ -185,7 +185,7 @@ try { InputSource inputSource = new InputSource(source.getInputStream()); inputSource.setSystemId(source.getURI()); - formDocument = DomHelper.parse(inputSource); + formDocument = DomHelper.parse(inputSource, this.manager); } catch (Exception e) { throw new CascadingException("Could not parse form definition from " + source.getURI(), e); Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/binding/JXPathBindingManager.java Url: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/binding/JXPathBindingManager.java?view=diff&rev=111965&p1=cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/binding/JXPathBindingManager.java&r1=111964&p2=cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/binding/JXPathBindingManager.java&r2=111965 ============================================================================== --- cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/binding/JXPathBindingManager.java (original) +++ cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/binding/JXPathBindingManager.java Wed Dec 15 03:58:32 2004 @@ -97,7 +97,7 @@ InputSource is = new InputSource(source.getInputStream()); is.setSystemId(source.getURI()); - Document doc = DomHelper.parse(is); + Document doc = DomHelper.parse(is, manager); Element rootElm = doc.getDocumentElement(); if (BindingManager.NAMESPACE.equals(rootElm.getNamespaceURI())) { binding = getBuilderAssistant() Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/datatype/DefaultSelectionListBuilder.java Url: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/datatype/DefaultSelectionListBuilder.java?view=diff&rev=111965&p1=cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/datatype/DefaultSelectionListBuilder.java&r1=111964&p2=cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/datatype/DefaultSelectionListBuilder.java&r2=111965 ============================================================================== --- cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/datatype/DefaultSelectionListBuilder.java (original) +++ cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/datatype/DefaultSelectionListBuilder.java Wed Dec 15 03:58:32 2004 @@ -127,7 +127,7 @@ source = resolver.resolveURI(src); InputSource inputSource = new InputSource(source.getInputStream()); inputSource.setSystemId(source.getURI()); - Document document = DomHelper.parse(inputSource); + Document document = DomHelper.parse(inputSource, this.serviceManager); Element selectionListElement = document.getDocumentElement(); if (!Constants.DEFINITION_NS.equals(selectionListElement.getNamespaceURI()) || !"selection-list".equals(selectionListElement.getLocalName())) { Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/util/DomHelper.java Url: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/util/DomHelper.java?view=diff&rev=111965&p1=cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/util/DomHelper.java&r1=111964&p2=cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/util/DomHelper.java&r2=111965 ============================================================================== --- cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/util/DomHelper.java (original) +++ cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/util/DomHelper.java Wed Dec 15 03:58:32 2004 @@ -18,9 +18,12 @@ import java.io.IOException; import java.util.ArrayList; +import org.apache.avalon.framework.service.ServiceException; +import org.apache.avalon.framework.service.ServiceManager; import org.apache.cocoon.xml.SaxBuffer; import org.apache.cocoon.xml.dom.DOMStreamer; import org.apache.commons.lang.BooleanUtils; +import org.apache.excalibur.xml.EntityResolver; import org.apache.excalibur.xml.sax.XMLizable; import org.apache.xerces.dom.NodeImpl; import org.apache.xerces.parsers.DOMParser; @@ -312,9 +315,12 @@ * Creates a W3C Document that remembers the location of each element in * the source file. The location of element nodes can then be retrieved * using the [EMAIL PROTECTED] #getLocation(Element)} method. + * + * @param inputSource the inputSource to read the document from + * @param manager the service manager where to lookup the entity resolver */ - public static Document parse(InputSource inputSource) - throws SAXException, SAXNotSupportedException, IOException { + public static Document parse(InputSource inputSource, ServiceManager manager) + throws SAXException, SAXNotSupportedException, IOException, ServiceException { DOMParser domParser = new LocationTrackingDOMParser(); domParser.setFeature( "http://apache.org/xml/features/dom/defer-node-expansion", @@ -322,8 +328,19 @@ domParser.setFeature( "http://apache.org/xml/features/dom/create-entity-ref-nodes", false); - domParser.parse(inputSource); - return domParser.getDocument(); + + EntityResolver resolver = null; + if (manager.hasService(EntityResolver.ROLE)) { + resolver = (EntityResolver)manager.lookup(EntityResolver.ROLE); + domParser.setEntityResolver(resolver); + } + + try { + domParser.parse(inputSource); + return domParser.getDocument(); + } finally { + manager.release(resolver); + } } /** Modified: cocoon/branches/BRANCH_2_1_X/status.xml Url: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/status.xml?view=diff&rev=111965&p1=cocoon/branches/BRANCH_2_1_X/status.xml&r1=111964&p2=cocoon/branches/BRANCH_2_1_X/status.xml&r2=111965 ============================================================================== --- cocoon/branches/BRANCH_2_1_X/status.xml (original) +++ cocoon/branches/BRANCH_2_1_X/status.xml Wed Dec 15 03:58:32 2004 @@ -202,6 +202,9 @@ <changes> <release version="@version@" date="@date@"> + <action dev="SW" type="fix" fixes-bug="31668"> + CForms: the parser used to read form files now uses the EntityResolver defined in cocoon.xconf. + </action> <action dev="AG" type="fix" fixes-bug="32620" due-to="Micah Dubinko" due-to-email="[EMAIL PROTECTED]"> Tiny typo in AbstractTextSerializer </action>