You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by ad...@apache.org on 2002/08/21 03:40:45 UTC
cvs commit: jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/tasks ShowFileTask.java
adammurdoch 2002/08/20 18:40:45
Added: vfs/src/java/org/apache/commons/vfs/tasks ShowFileTask.java
Log:
Added a debug Ant task that writes out the details of a file.
Revision Changes Path
1.1 jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/tasks/ShowFileTask.java
Index: ShowFileTask.java
===================================================================
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE.txt file.
*/
package org.apache.commons.vfs.tasks;
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Date;
import org.apache.commons.vfs.FileContent;
import org.apache.commons.vfs.FileObject;
import org.apache.commons.vfs.FileSystemManager;
import org.apache.commons.vfs.FileSystemManagerFactory;
import org.apache.commons.vfs.FileType;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;
/**
* An Ant task, which writes the details of a file to Ant's log.
*
* @author <a href="mailto:adammurdoch@apache.org">Adam Murdoch</a>
* @version $Revision: 1.1 $ $Date: 2002/08/21 01:40:45 $
*/
public class ShowFileTask
extends Task
{
private String url;
private boolean showContent;
/**
* The URL of the file to display.
*/
public void setUrl( final String url )
{
this.url = url;
}
/**
* Shows the content. Assumes the content is text, encoded using the
* platform's default encoding.
*/
public void setShowContent( final boolean showContent )
{
this.showContent = showContent;
}
/**
* Executes the task.
*/
public void execute() throws BuildException
{
try
{
// Lookup the file
final FileSystemManager manager = FileSystemManagerFactory.getManager();
final File baseDir = getProject().getBaseDir();
final FileObject file = manager.resolveFile( baseDir, url );
// Write details
log( "URI: " + file.getName().getURI() );
log( "Exists: " + file.exists() );
if ( !file.exists() )
{
return;
}
log( "Type: " + file.getType().getName() );
if ( file.getType() == FileType.FILE )
{
final FileContent content = file.getContent();
log( "Content-Length: " + content.getSize() );
log( "Last-Modified" + new Date( content.getLastModifiedTime() ) );
if ( showContent )
{
log( "Content:" );
logContent( file );
}
}
else
{
final FileObject[] children = file.getChildren();
log( "Child Count: " + children.length );
log( "Children:" );
for ( int i = 0; i < children.length; i++ )
{
FileObject child = children[ i ];
log( " " + child.getName().getBaseName() );
}
}
}
catch ( final Exception e )
{
throw new BuildException( e );
}
}
/**
* Writes the content of the file to Ant log.
*/
private void logContent( FileObject file ) throws Exception
{
final InputStream instr = file.getContent().getInputStream();
try
{
final BufferedReader reader = new BufferedReader( new InputStreamReader( instr ) );
while ( true )
{
final String line = reader.readLine();
if ( line == null )
{
break;
}
log( line );
}
}
finally
{
instr.close();
}
}
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>