
org.eclipse.jetty.xslt.tools.SourceFetchExtension Maven / Gradle / Ivy
The newest version!
//
// ========================================================================
// Copyright (c) 1995-2012 Mort Bay Consulting Pty. Ltd.
// ------------------------------------------------------------------------
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// and Apache License v2.0 which accompanies this distribution.
//
// The Eclipse Public License is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// The Apache License v2.0 is available at
// http://www.opensource.org/licenses/apache2.0.php
//
// You may elect to redistribute this code under either of these licenses.
// ========================================================================
//
package org.eclipse.jetty.xslt.tools;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.Reader;
import java.io.StringWriter;
import java.io.Writer;
import java.net.URL;
public class SourceFetchExtension extends AbstractFetchException
{
/* ------------------------------------------------------------------- */
public static int bufferSize = 64*1024;
public static String fetch( String location ) throws Exception
{
File fetchFile = checkCache( location );
if ( fetchFile == null )
{
URL url = new URL(location);
fetchFile = cache(location,url.openStream());
}
return toString(new FileInputStream(fetchFile));
}
/* ------------------------------------------------------------ */
/** Read input stream to string.
*/
public static String toString(InputStream in)
throws IOException
{
return toString(in,null);
}
/* ------------------------------------------------------------ */
/** Read input stream to string.
*/
public static String toString(InputStream in,String encoding)
throws IOException
{
StringWriter writer=new StringWriter();
InputStreamReader reader = encoding==null?new InputStreamReader(in):new InputStreamReader(in,encoding);
copy(reader,writer);
return writer.toString();
}
/* ------------------------------------------------------------------- */
/** Copy Stream in to Stream out until EOF or exception.
*/
public static void copy(InputStream in, OutputStream out)
throws IOException
{
copy(in,out,-1);
}
/* ------------------------------------------------------------------- */
/** Copy Reader to Writer out until EOF or exception.
*/
public static void copy(Reader in, Writer out)
throws IOException
{
copy(in,out,-1);
}
/* ------------------------------------------------------------------- */
/** Copy Stream in to Stream for byteCount bytes or until EOF or exception.
*/
public static void copy(InputStream in,
OutputStream out,
long byteCount)
throws IOException
{
byte buffer[] = new byte[bufferSize];
int len=bufferSize;
if (byteCount>=0)
{
while (byteCount>0)
{
int max = byteCount=0)
{
while (byteCount>0)
{
if (byteCount
© 2015 - 2025 Weber Informatics LLC | Privacy Policy