1 package org.apache.continuum.webdav;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.commons.io.IOUtils;
23 import org.apache.continuum.webdav.util.IndexWriter;
24 import org.apache.jackrabbit.webdav.DavResourceFactory;
25 import org.apache.jackrabbit.webdav.DavSession;
26 import org.apache.jackrabbit.webdav.io.OutputContext;
27
28 import java.io.FileInputStream;
29 import java.io.IOException;
30 import javax.activation.MimetypesFileTypeMap;
31
32 public class MockContinuumBuildAgentDavResource
33 extends ContinuumBuildAgentDavResource
34 {
35 public MockContinuumBuildAgentDavResource( String localResource, String logicalResource, DavSession session,
36 ContinuumBuildAgentDavResourceLocator locator,
37 DavResourceFactory factory, MimetypesFileTypeMap mimeTypes )
38 {
39 super( localResource, logicalResource, session, locator, factory, mimeTypes );
40 }
41
42 @Override
43 public void spool( OutputContext outputContext )
44 throws IOException
45 {
46 if ( !isCollection() )
47 {
48 outputContext.setContentLength( getLocalResource().length() );
49 outputContext.setContentType( getMimeTypes().getContentType( getLocalResource() ) );
50 }
51
52 if ( !isCollection() && outputContext.hasStream() )
53 {
54 FileInputStream is = null;
55 try
56 {
57
58 is = new FileInputStream( getLocalResource() );
59 IOUtils.copy( is, outputContext.getOutputStream() );
60 }
61 finally
62 {
63 IOUtils.closeQuietly( is );
64 }
65 }
66 else if ( outputContext.hasStream() )
67 {
68 IndexWriter writer = new IndexWriter( this, getLocalResource(), getLogicalResource() );
69 writer.write( outputContext );
70 }
71 }
72 }