Return-Path: Delivered-To: apmail-incubator-sling-commits-archive@minotaur.apache.org Received: (qmail 66914 invoked from network); 19 Mar 2009 22:59:28 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 19 Mar 2009 22:59:28 -0000 Received: (qmail 18316 invoked by uid 500); 19 Mar 2009 22:59:28 -0000 Delivered-To: apmail-incubator-sling-commits-archive@incubator.apache.org Received: (qmail 18283 invoked by uid 500); 19 Mar 2009 22:59:28 -0000 Mailing-List: contact sling-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: sling-dev@incubator.apache.org Delivered-To: mailing list sling-commits@incubator.apache.org Received: (qmail 18270 invoked by uid 99); 19 Mar 2009 22:59:28 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 19 Mar 2009 15:59:28 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 19 Mar 2009 22:59:27 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 1A25D238896B; Thu, 19 Mar 2009 22:59:07 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r756250 - in /incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc: ./ src/main/java/org/apache/sling/scripting/xproc/xpl/ src/main/java/org/apache/sling/scripting/xproc/xpl/api/ src/main/java/org/apache/sling/scripting/xpro... Date: Thu, 19 Mar 2009 22:59:06 -0000 To: sling-commits@incubator.apache.org From: jvazquez@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20090319225907.1A25D238896B@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: jvazquez Date: Thu Mar 19 22:59:05 2009 New Revision: 756250 URL: http://svn.apache.org/viewvc?rev=756250&view=rev Log: beginning with unit testing Added: incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/test/ incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/test/java/ incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/test/java/org/ incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/test/java/org/apache/ incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/test/java/org/apache/sling/ incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/test/java/org/apache/sling/scripting/ incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/test/java/org/apache/sling/scripting/xproc/ incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/test/java/org/apache/sling/scripting/xproc/xpl/ incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/test/java/org/apache/sling/scripting/xproc/xpl/XplBuilderTest.java incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/test/resources/ incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/test/resources/xpl/ incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/test/resources/xpl/html.xpl Modified: incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/pom.xml incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/XplBuilder.java incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/api/XplElement.java incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/impl/AbstractXplElementImpl.java incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/impl/DocumentImpl.java incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/impl/InputImpl.java incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/impl/PipelineImpl.java incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/impl/XplElementFactoryImpl.java incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/impl/XsltImpl.java incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/resources/SLING-INF/content/apps/sling/xpl/html.xpl Modified: incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/pom.xml URL: http://svn.apache.org/viewvc/incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/pom.xml?rev=756250&r1=756249&r2=756250&view=diff ============================================================================== --- incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/pom.xml (original) +++ incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/pom.xml Thu Mar 19 22:59:05 2009 @@ -101,6 +101,7 @@ org.slf4j slf4j-api + org.apache.sling @@ -108,6 +109,13 @@ 2.0.3-incubator-SNAPSHOT test + + xmlunit + xmlunit + 1.2 + test + + Modified: incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/XplBuilder.java URL: http://svn.apache.org/viewvc/incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/XplBuilder.java?rev=756250&r1=756249&r2=756250&view=diff ============================================================================== --- incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/XplBuilder.java (original) +++ incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/XplBuilder.java Thu Mar 19 22:59:05 2009 @@ -57,8 +57,8 @@ return xplHandler.getRootStep(); } - protected XplElement createXplElement(String localName, Map parameters) { - return XplBuilder.this.xplElementFactory.createXplElement(new QName(XplConstants.NS_XPROC, localName), parameters); + protected XplElement createXplElement(String localName, Map attributes) { + return XplBuilder.this.xplElementFactory.createXplElement(new QName(XplConstants.NS_XPROC, localName), attributes); } class XplHandler extends DefaultHandler { @@ -95,13 +95,13 @@ throw new IllegalStateException("Expected 'pipeline' as first element, but received '" + localName + "'"); } - Map parameters = new HashMap(); + Map atts = new HashMap(); int length = attributes.getLength(); for (int i = 0; i < length; i++) { - parameters.put(attributes.getQName(i), attributes.getValue(i)); + atts.put(attributes.getQName(i), attributes.getValue(i)); } - XplElement xplElement = createXplElement(localName, parameters); + XplElement xplElement = createXplElement(localName, atts); this.currentXplElement.addChild(xplElement); this.currentXplElement = xplElement; } Modified: incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/api/XplElement.java URL: http://svn.apache.org/viewvc/incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/api/XplElement.java?rev=756250&r1=756249&r2=756250&view=diff ============================================================================== --- incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/api/XplElement.java (original) +++ incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/api/XplElement.java Thu Mar 19 22:59:05 2009 @@ -21,11 +21,15 @@ import java.util.LinkedList; import java.util.Map; +import javax.xml.namespace.QName; + public interface XplElement { + QName getQName(); + XplElement getParent(); - void setParameters(Map parameters); + void setAttributes(Map attributes); void setParent(XplElement parent); @@ -33,4 +37,8 @@ void addChild(XplElement child); + int getDepth(); + + void setDepth(int depth); + } Modified: incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/impl/AbstractXplElementImpl.java URL: http://svn.apache.org/viewvc/incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/impl/AbstractXplElementImpl.java?rev=756250&r1=756249&r2=756250&view=diff ============================================================================== --- incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/impl/AbstractXplElementImpl.java (original) +++ incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/impl/AbstractXplElementImpl.java Thu Mar 19 22:59:05 2009 @@ -26,6 +26,8 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import javax.xml.namespace.QName; + import org.apache.sling.api.scripting.SlingScriptHelper; import org.apache.sling.scripting.xproc.xpl.api.XplElement; import org.slf4j.Logger; @@ -36,11 +38,11 @@ protected final Logger log = LoggerFactory.getLogger(this.getClass()); private SlingScriptHelper sling; - - private final Map parameters = new HashMap(); + private final Map attributes = new HashMap(); private XplElement parent; private final LinkedList children = new LinkedList(); - + private int depth = 0; + public LinkedList getChildren() { return children; } @@ -63,45 +65,43 @@ } catch (IllegalAccessException e) { this.log.error("Failed to set child field for child class '" + child.getClass().getName(), e); } - } else { - this.children.add(child); } - + child.setDepth(this.getDepth() + 1); + this.children.add(child); child.setParent(this); } - public void setParameters(Map parameters) { - if (parameters == null || parameters.isEmpty()) { + public void setAttributes(Map attributes) { + if (attributes == null || attributes.isEmpty()) { // nothing to do return; } - // check for special parameter fields - Map parameterFields = this.getParameterFields(); - for (Entry entry : parameters.entrySet()) { + // check for special attribute fields + Map attributeFields = this.getAttributeFields(); + for (Entry entry : attributes.entrySet()) { String key = entry.getKey(); String value = entry.getValue(); - Field parameterField = parameterFields.get(key); - if (parameterField != null) { - parameterField.setAccessible(true); + Field attributeField = attributeFields.get(key); + if (attributeField != null) { + attributeField.setAccessible(true); try { - parameterField.set(this, value); + attributeField.set(this, value); } catch (IllegalArgumentException e) { - String message = "Failed to set parameter field " + key; + String message = "Failed to set attribute field " + key; this.log.error(message, e); throw new RuntimeException(message, e); } catch (IllegalAccessException e) { - String message = "Failed to set parameter field " + key; + String message = "Failed to set attribute field " + key; this.log.error(message, e); throw new RuntimeException(message, e); } - continue; - } + } - // default parameter processing - this.processParameter(key, value); + // default attribute processing + this.processAttribute(key, value); } } @@ -109,6 +109,8 @@ return sling; } + public abstract QName getQName(); + public XplElement getParent() { return parent; } @@ -117,8 +119,54 @@ this.parent = parent; } - protected void processParameter(String key, String value) { - this.parameters.put(key, value); + public int getDepth() { + return depth; + } + + public void setDepth(int depth) { + this.depth = depth; + } + + @Override + public String toString() { + StringBuffer sbXplElement = new StringBuffer(); +// if (getDepth() == 0) +// sbXplElement.append(""); +// addTabs(sbXplElement, getDepth()); + sbXplElement.append("<"); + sbXplElement.append("p:" + this.getQName().getLocalPart()); + if (getDepth() == 0) { + sbXplElement.append(" xmlns:p=\"http://www.w3.org/ns/xproc\""); + } + for (String attribute : this.attributes.keySet()) { + sbXplElement.append(" "); + sbXplElement.append(attribute + "=" + "\"" + this.attributes.get(attribute) + "\""); + } + if (getChildren().size() == 0) { + sbXplElement.append(" />"); + return sbXplElement.toString(); + } + sbXplElement.append(">"); + for (XplElement child : this.getChildren()) { +// sbXplElement.append("\r\n"); + sbXplElement.append(child.toString()); + } +// sbXplElement.append("\r\n"); +// addTabs(sbXplElement, getDepth()); + sbXplElement.append(""); + + return sbXplElement.toString(); + } + + private void addTabs(StringBuffer sb, int num) { + for (int i = 0; i < num; i++) + sb.append("\t"); + } + + protected void processAttribute(String key, String value) { + this.attributes.put(key, value); } private Field getChildField(XplElement child) { @@ -134,21 +182,21 @@ return null; } - private Map getParameterFields() { - Map parameterFields = new HashMap(); + private Map getAttributeFields() { + Map attributeFields = new HashMap(); Class currentClass = this.getClass(); while (currentClass != null) { Field[] declaredFields = currentClass.getDeclaredFields(); for (Field declaredField : declaredFields) { String fieldName = this.convertCamelCase(declaredField.getName()); - parameterFields.put(fieldName, declaredField); + attributeFields.put(fieldName, declaredField); } currentClass = currentClass.getSuperclass(); } - return parameterFields; + return attributeFields; } private String convertCamelCase(String name) { Modified: incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/impl/DocumentImpl.java URL: http://svn.apache.org/viewvc/incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/impl/DocumentImpl.java?rev=756250&r1=756249&r2=756250&view=diff ============================================================================== --- incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/impl/DocumentImpl.java (original) +++ incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/impl/DocumentImpl.java Thu Mar 19 22:59:05 2009 @@ -18,6 +18,9 @@ */ package org.apache.sling.scripting.xproc.xpl.impl; +import javax.xml.namespace.QName; + +import org.apache.sling.scripting.xproc.xpl.XplConstants; import org.apache.sling.scripting.xproc.xpl.api.Document; public class DocumentImpl extends AbstractXplElementImpl implements Document { @@ -32,4 +35,9 @@ this.href = href; } + @Override + public QName getQName() { + return XplConstants.QNAME_DOCUMENT; + } + } Modified: incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/impl/InputImpl.java URL: http://svn.apache.org/viewvc/incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/impl/InputImpl.java?rev=756250&r1=756249&r2=756250&view=diff ============================================================================== --- incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/impl/InputImpl.java (original) +++ incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/impl/InputImpl.java Thu Mar 19 22:59:05 2009 @@ -18,6 +18,9 @@ */ package org.apache.sling.scripting.xproc.xpl.impl; +import javax.xml.namespace.QName; + +import org.apache.sling.scripting.xproc.xpl.XplConstants; import org.apache.sling.scripting.xproc.xpl.api.Document; import org.apache.sling.scripting.xproc.xpl.api.Input; @@ -42,4 +45,9 @@ this.document = document; } + @Override + public QName getQName() { + return XplConstants.QNAME_INPUT; + } + } Modified: incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/impl/PipelineImpl.java URL: http://svn.apache.org/viewvc/incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/impl/PipelineImpl.java?rev=756250&r1=756249&r2=756250&view=diff ============================================================================== --- incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/impl/PipelineImpl.java (original) +++ incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/impl/PipelineImpl.java Thu Mar 19 22:59:05 2009 @@ -20,10 +20,13 @@ import java.io.OutputStream; +import javax.xml.namespace.QName; + import org.apache.cocoon.pipeline.NonCachingPipeline; import org.apache.cocoon.pipeline.component.sax.AbstractGenerator; import org.apache.cocoon.pipeline.component.sax.XMLSerializer; import org.apache.sling.scripting.xproc.cocoon.generator.SlingGenerator; +import org.apache.sling.scripting.xproc.xpl.XplConstants; import org.apache.sling.scripting.xproc.xpl.api.Pipeline; import org.apache.sling.scripting.xproc.xpl.api.Step; @@ -55,5 +58,10 @@ } } + + @Override + public QName getQName() { + return XplConstants.QNAME_PIPELINE; + } } \ No newline at end of file Modified: incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/impl/XplElementFactoryImpl.java URL: http://svn.apache.org/viewvc/incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/impl/XplElementFactoryImpl.java?rev=756250&r1=756249&r2=756250&view=diff ============================================================================== --- incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/impl/XplElementFactoryImpl.java (original) +++ incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/impl/XplElementFactoryImpl.java Thu Mar 19 22:59:05 2009 @@ -28,7 +28,7 @@ public class XplElementFactoryImpl implements XplElementFactory { - public XplElement createXplElement(QName type, Map parameters) { + public XplElement createXplElement(QName type, Map attributes) { XplElement xplElement; @@ -44,7 +44,7 @@ throw new IllegalArgumentException("An xpl element of type '" + type + "' could not be created."); } - xplElement.setParameters(parameters); + xplElement.setAttributes(attributes); return xplElement; } Modified: incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/impl/XsltImpl.java URL: http://svn.apache.org/viewvc/incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/impl/XsltImpl.java?rev=756250&r1=756249&r2=756250&view=diff ============================================================================== --- incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/impl/XsltImpl.java (original) +++ incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/java/org/apache/sling/scripting/xproc/xpl/impl/XsltImpl.java Thu Mar 19 22:59:05 2009 @@ -18,7 +18,10 @@ */ package org.apache.sling.scripting.xproc.xpl.impl; +import javax.xml.namespace.QName; + import org.apache.sling.scripting.xproc.cocoon.transform.SlingTransformer; +import org.apache.sling.scripting.xproc.xpl.XplConstants; import org.apache.sling.scripting.xproc.xpl.api.Input; import org.apache.sling.scripting.xproc.xpl.api.Xslt; @@ -40,4 +43,9 @@ this.stylesheet = stylesheet; } + @Override + public QName getQName() { + return XplConstants.QNAME_XSLT; + } + } \ No newline at end of file Modified: incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/resources/SLING-INF/content/apps/sling/xpl/html.xpl URL: http://svn.apache.org/viewvc/incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/resources/SLING-INF/content/apps/sling/xpl/html.xpl?rev=756250&r1=756249&r2=756250&view=diff ============================================================================== --- incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/resources/SLING-INF/content/apps/sling/xpl/html.xpl (original) +++ incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/main/resources/SLING-INF/content/apps/sling/xpl/html.xpl Thu Mar 19 22:59:05 2009 @@ -29,4 +29,4 @@ - + \ No newline at end of file Added: incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/test/java/org/apache/sling/scripting/xproc/xpl/XplBuilderTest.java URL: http://svn.apache.org/viewvc/incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/test/java/org/apache/sling/scripting/xproc/xpl/XplBuilderTest.java?rev=756250&view=auto ============================================================================== --- incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/test/java/org/apache/sling/scripting/xproc/xpl/XplBuilderTest.java (added) +++ incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/test/java/org/apache/sling/scripting/xproc/xpl/XplBuilderTest.java Thu Mar 19 22:59:05 2009 @@ -0,0 +1,67 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. 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. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.sling.scripting.xproc.xpl; + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.io.StringReader; +import java.io.StringWriter; + +import org.apache.sling.scripting.xproc.xpl.api.Step; +import org.custommonkey.xmlunit.XMLAssert; + +import junit.framework.TestCase; + +public class XplBuilderTest extends TestCase { + + public void testBuild() throws Exception { + String xplPath = "/xpl/html.xpl"; + XplBuilder builder = new XplBuilder(); + Step pipeline = builder.build(getReaderFromPath(xplPath)); + System.out.println(pipeline.toString()); + String kk1 = ""; + String kk2 = ""; + XMLAssert.assertXMLEqual(getReaderFromString(kk1), getReaderFromString(kk2)); +// XMLAssert.assertXMLEqual(getReaderFromPath(xplPath), getReaderFromString(pipeline.toString())); + } + + private Reader getReaderFromPath(String path) throws Exception { + InputStream is = getClass().getResourceAsStream(path); + Reader reader = new BufferedReader(new InputStreamReader(is, "utf-8")); + return reader; + } + + private Reader getReaderFromString(String str) throws Exception { + return new BufferedReader(new StringReader(str)); + } + + private String readerToString(Reader reader) throws Exception { + StringWriter sw = new StringWriter(); + BufferedWriter bfw = new BufferedWriter(sw); + int c; + while ((c = reader.read()) != -1) { + bfw.write(c); + } + bfw.flush(); + return sw.getBuffer().toString(); + } +} Added: incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/test/resources/xpl/html.xpl URL: http://svn.apache.org/viewvc/incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/test/resources/xpl/html.xpl?rev=756250&view=auto ============================================================================== --- incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/test/resources/xpl/html.xpl (added) +++ incubator/sling/whiteboard/jvazquez/org.apache.sling.scripting.xproc/src/test/resources/xpl/html.xpl Thu Mar 19 22:59:05 2009 @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + +