[prev in list] [next in list] [prev in thread] [next in thread]
List: xml-cocoon-cvs
Subject: svn commit: r629372 -
From: antonio () apache ! org
Date: 2008-02-20 6:35:52
Message-ID: 20080220063553.8D7391A9832 () eris ! apache ! org
[Download RAW message or body]
Author: antonio
Date: Tue Feb 19 22:35:48 2008
New Revision: 629372
URL: http://svn.apache.org/viewvc?rev=629372&view=rev
Log:
Faster implementation.
Modified:
cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/xml/StringXMLizable.java
Modified: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/xml/StringXMLizable.java
URL: http://svn.apache.org/viewvc/cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/xml/StringXMLizable.java?rev=629372&r1=629371&r2=629372&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/xml/StringXMLizable.java \
(original)
+++ cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/xml/StringXMLizable.java \
Tue Feb 19 22:35:48 2008 @@ -5,9 +5,9 @@
* The ASF 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.
@@ -29,26 +29,41 @@
/**
* XMLizable a String
- *
+ *
* @since 2.1.7
* @author Bruno Dumon
*/
public class StringXMLizable implements XMLizable {
+ private static class Context {
+ SAXParser parser;
+ Context() throws SAXException {
+ SAXParserFactory parserFactory = SAXParserFactory.newInstance();
+ parserFactory.setNamespaceAware(true);
+ parser = null;
+ try {
+ parser = parserFactory.newSAXParser();
+ } catch (ParserConfigurationException e) {
+ throw new SAXException("Error creating SAX parser.", e);
+ }
+ }
+ }
+
+ private static final ThreadLocal context = new ThreadLocal();
private String data;
- public StringXMLizable(String data) {
+ public StringXMLizable(final String data) {
this.data = data;
}
- public void toSAX(ContentHandler contentHandler) throws SAXException {
- SAXParserFactory parserFactory = SAXParserFactory.newInstance();
- parserFactory.setNamespaceAware(true);
- SAXParser parser = null;
- try {
- parser = parserFactory.newSAXParser();
- } catch (ParserConfigurationException e) {
- throw new SAXException("Error creating SAX parser.", e);
+ private Context getContext() throws SAXException {
+ if (context.get() == null) {
+ context.set(new Context());
}
+ return (Context) context.get();
+ }
+
+ public void toSAX(ContentHandler contentHandler) throws SAXException {
+ final SAXParser parser = getContext().parser;
parser.getXMLReader().setContentHandler(contentHandler);
InputSource is = new InputSource(new StringReader(data));
try {
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic