commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From d...@multitask.com.au
Subject Re: [jelly] attribute corruption with core file tag
Date Sat, 12 Apr 2003 14:06:39 GMT
Looks like a bug to me...
--
dIon Gillard, Multitask Consulting
Blog:      http://www.freeroller.net/page/dion/Weblog
Work:      http://www.multitask.com.au


Ben Walding <default0001@walding.com> wrote on 12/04/2003 06:10:28 PM:

> It seems like there is attribute corruption when dealing with converting 

> attributes that include namespaces.
> 
> (It might be that my understanding on namespaces is a bit wrong, but I 
> still think jelly is broken)
> 
> Essentially, the script
> 
> <j:jelly xmlns:j="jelly:core">
>     <j:file name="target/testFileTag.tmp" outputMode="html">
>       <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" 
lang="en">
>       </html>
>     </j:file>
> </j:jelly>
> 
> 
> is creating a file with the content (not even valid XML)
> 
> <html xmlns="http://www.w3.org/1999/xhtml lang="en"></html>
> 
> 
> when I would expect it to produce something like
> 
> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" 
lang="en"></html>
> 
> I have included tests cases and scripts for this scenario
> 
> Cheers,
> 
> 
> Ben
> /*
>  * $Header: /home/cvspublic/jakarta-
> 
commons/jelly/src/test/org/apache/commons/jelly/core/TestInvokeStaticTag.
> java,v 1.2 2003/02/26 09:12:55 jstrachan Exp $
>  * $Revision: 1.2 $
>  * $Date: 2003/02/26 09:12:55 $
>  *
>  * ====================================================================
>  *
>  * The Apache Software License, Version 1.1
>  *
>  * Copyright (c) 2002 The Apache Software Foundation.  All rights
>  * reserved.
>  *
>  * Redistribution and use in source and binary forms, with or without
>  * modification, are permitted provided that the following conditions
>  * are met:
>  *
>  * 1. Redistributions of source code must retain the above copyright
>  *    notice, this list of conditions and the following disclaimer.
>  *
>  * 2. Redistributions in binary form must reproduce the above copyright
>  *    notice, this list of conditions and the following disclaimer in
>  *    the documentation and/or other materials provided with the
>  *    distribution.
>  *
>  * 3. The end-user documentation included with the redistribution, if
>  *    any, must include the following acknowlegement:
>  *       "This product includes software developed by the
>  *        Apache Software Foundation (http://www.apache.org/)."
>  *    Alternately, this acknowlegement may appear in the software 
itself,
>  *    if and wherever such third-party acknowlegements normally appear.
>  *
>  * 4. The names "The Jakarta Project", "Commons", and "Apache Software
>  *    Foundation" must not be used to endorse or promote products 
derived
>  *    from this software without prior written permission. For written
>  *    permission, please contact apache@apache.org.
>  *
>  * 5. Products derived from this software may not be called "Apache"
>  *    nor may "Apache" appear in their names without prior written
>  *    permission of the Apache Group.
>  *
>  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
>  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
>  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
>  * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
>  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
>  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
>  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
>  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
>  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
>  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
>  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
>  * SUCH DAMAGE.
>  * ====================================================================
>  *
>  * This software consists of voluntary contributions made by many
>  * individuals on behalf of the Apache Software Foundation.  For more
>  * information on the Apache Software Foundation, please see
>  * <http://www.apache.org/>.
>  * 
>  * $Id: TestInvokeStaticTag.java,v 1.2 2003/02/26 09:12:55 jstrachan Exp 
$
>  */
> package org.apache.commons.jelly.core;
> 
> import java.io.FileInputStream;
> import java.io.IOException;
> import java.io.InputStream;
> 
> import junit.framework.TestSuite;
> 
> import org.apache.commons.jelly.Script;
> 
> /**
>  * @author <a href="mailto:robert@bull-enterprises.com">Robert 
McIntosh</a>
>  * @version $Revision: 1.2 $
>  */
> public class TestFileTag extends BaseJellyTest
> {
> 
>     public TestFileTag(String name)
>     {
>         super(name);
>     }
> 
>     public static TestSuite suite() throws Exception
>     {
>         return new TestSuite(TestFileTag.class);
>     }
> 
>     public void testSimpleFileTag() throws Exception
>     {
>         setUpScript("testFileTag.jelly");
>         Script script = getJelly().compileScript();
> 
>         script.run(getJellyContext(), getXMLOutput());
> 
>         FileInputStream fis = new 
FileInputStream("target/testFileTag.tmp");
>         String data = readInputStreamIntoString(fis);
>         fis.close();
> 
> 
>         //FIXME This doesn't take into account attribute ordering 
>         assertEquals("target/testFileTag.tmp", "<html xmlns=\"http:
> //www.w3.org/1999/xhtml\"  xml:lang=\"en\"  lang=\"en\"></html>", data);
> 
>         //assertTrue( System.getProperty( "java.runtime.version" ).
> equals( getJellyContext().getVariable("propertyName" ) ) ); 
>     }
> 
>     /**
>      * Transfers an input stream to a string
>      * @param is the stream to read the data from
>      * @return A string containing the data from the input stream
>      **/
>     protected static final int BUFFER_SIZE = 16384;
> 
>     public static String readInputStreamIntoString(InputStream is) 
> throws IOException {
>         StringBuffer buffer = new StringBuffer();
> 
>         final byte b[] = new byte[BUFFER_SIZE];
>         while (true) {
>             int read = is.read(b);
>             if (read == -1)
>                 break;
> 
>             String s = new String(b, 0, read);
>             buffer.append(s);
>         }
>         return buffer.toString();
>     }
> 
> }
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-user-help@jakarta.apache.org

Mime
View raw message