org.milyn.routing.file
Class FileOutputStreamResource

java.lang.Object
  extended by org.milyn.io.AbstractOutputStreamResource
      extended by org.milyn.routing.file.FileOutputStreamResource
All Implemented Interfaces:
ContentHandler, DOMVisitBefore, DOMVisitor, ExecutionLifecycleCleanable, Consumer, SAXVisitBefore, SAXVisitor, VisitLifecycleCleanable, Visitor

public class FileOutputStreamResource
extends AbstractOutputStreamResource

FileOutputStreamResouce is a AbstractOutputStreamResource implementation that handles file output streams.

Example configuration:

 <resource-config selector="order-item">
    <resource>org.milyn.io.file.FileOutputStreamResource</resource>
    <param name="resourceName">resourceName</param>
    <param name="fileNamePattern">orderitem-${order.orderId}-${order.orderItem.itemId}.xml</param>
    <param name="destinationDirectoryPattern">order-${order.orderId}</param>
    <param name="listFileNamePattern">orderitems-${order.orderId}.lst</param>
 </resource-config>

 Optional properties (default values shown):
    <param name="highWaterMark">200</param>
    <param name="highWaterMarkTimeout">60000</param>
 
Description of configuration properties:

When does a new file get created?
As soon as an object tries to retrieve the Writer or the OutputStream from this OutputStreamResource and the Stream isn't open then a new file is created. Using the 'closeOnCondition' property you can control when a stream get closed. As long as the stream isn't closed, the same file is used to write too. At then end of the filter process the stream always gets closed. Nothing stays open.

Author:
Daniel Bevenius, maurice.zeijen@smies.com

Nested Class Summary
static class FileOutputStreamResource.SplitFilenameFilter
           
 
Field Summary
 
Fields inherited from class org.milyn.io.AbstractOutputStreamResource
RESOURCE_CONTEXT_KEY_PREFIX
 
Constructor Summary
FileOutputStreamResource()
           
 
Method Summary
protected  boolean closeCondition(ExecutionContext executionContext)
           
protected  void closeResource(ExecutionContext executionContext)
           
 void executeExecutionLifecycleCleanup(ExecutionContext executionContext)
           
 FileOutputStream getOutputStream(ExecutionContext executionContext)
           
 void intialize()
           
 FileOutputStreamResource setAppend(boolean append)
           
 void setCloseOnCondition(String closeOnCondition)
           
 FileOutputStreamResource setDestinationDirectoryPattern(String destinationDirectoryPattern)
           
 FileOutputStreamResource setFileNamePattern(String fileNamePattern)
           
 FileOutputStreamResource setHighWaterMark(int highWaterMark)
           
 FileOutputStreamResource setHighWaterMarkPollFrequency(long highWaterMarkPollFrequency)
           
 FileOutputStreamResource setHighWaterMarkTimeout(long highWaterMarkTimeout)
           
 FileOutputStreamResource setListFileNamePattern(String listFileNamePattern)
           
 FileOutputStreamResource setListFileNamePatternCtxKey(String listFileNamePatternCtxKey)
           
 
Methods inherited from class org.milyn.io.AbstractOutputStreamResource
consumes, executeVisitLifecycleCleanup, getOutputStream, getOutputWriter, getResourceName, getWriterEncoding, setResourceName, setWriterEncoding, visitBefore, visitBefore
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FileOutputStreamResource

public FileOutputStreamResource()
Method Detail

setFileNamePattern

public FileOutputStreamResource setFileNamePattern(String fileNamePattern)

setDestinationDirectoryPattern

public FileOutputStreamResource setDestinationDirectoryPattern(String destinationDirectoryPattern)

setListFileNamePattern

public FileOutputStreamResource setListFileNamePattern(String listFileNamePattern)

setListFileNamePatternCtxKey

public FileOutputStreamResource setListFileNamePatternCtxKey(String listFileNamePatternCtxKey)

setHighWaterMark

public FileOutputStreamResource setHighWaterMark(int highWaterMark)

setHighWaterMarkTimeout

public FileOutputStreamResource setHighWaterMarkTimeout(long highWaterMarkTimeout)

setHighWaterMarkPollFrequency

public FileOutputStreamResource setHighWaterMarkPollFrequency(long highWaterMarkPollFrequency)

setCloseOnCondition

public void setCloseOnCondition(String closeOnCondition)

setAppend

public FileOutputStreamResource setAppend(boolean append)

intialize

@Initialize
public void intialize()
               throws SmooksConfigurationException
Throws:
SmooksConfigurationException

getOutputStream

public FileOutputStream getOutputStream(ExecutionContext executionContext)
                                 throws SmooksRoutingException,
                                        IOException
Specified by:
getOutputStream in class AbstractOutputStreamResource
Throws:
SmooksRoutingException
IOException

closeCondition

protected boolean closeCondition(ExecutionContext executionContext)
Overrides:
closeCondition in class AbstractOutputStreamResource

closeResource

protected void closeResource(ExecutionContext executionContext)
Overrides:
closeResource in class AbstractOutputStreamResource

executeExecutionLifecycleCleanup

public void executeExecutionLifecycleCleanup(ExecutionContext executionContext)
Specified by:
executeExecutionLifecycleCleanup in interface ExecutionLifecycleCleanable
Overrides:
executeExecutionLifecycleCleanup in class AbstractOutputStreamResource


Copyright © 2014. All Rights Reserved.