ro.isdc.wro.extensions.processor.js
Class JsonHPackProcessor

java.lang.Object
  extended by ro.isdc.wro.extensions.processor.js.JsonHPackProcessor
All Implemented Interfaces:
ResourcePostProcessor, ResourcePreProcessor

@Minimize
@SupportedResourceType(value=JS)
public class JsonHPackProcessor
extends Object
implements ResourcePreProcessor, ResourcePostProcessor

A processor using json.hpack compression algorithm: @see https://github.com/WebReflection/json.hpack

Since:
1.3.8
Author:
Alex Objelean

Field Summary
static String ALIAS_PACK
           
static String ALIAS_UNPACK
           
 
Constructor Summary
JsonHPackProcessor(boolean pack)
           
 
Method Summary
protected  JsonHPack newEngine()
           
protected  void onException(WroRuntimeException e)
          Invoked when a processing exception occurs.
static JsonHPackProcessor packProcessor()
           
 void process(Reader reader, Writer writer)
          Perform actual resource processing.
 void process(Resource resource, Reader reader, Writer writer)
          Process a content supplied by a reader and perform some sort of processing.
static JsonHPackProcessor unpackProcessor()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ALIAS_PACK

public static final String ALIAS_PACK
See Also:
Constant Field Values

ALIAS_UNPACK

public static final String ALIAS_UNPACK
See Also:
Constant Field Values
Constructor Detail

JsonHPackProcessor

public JsonHPackProcessor(boolean pack)
Method Detail

packProcessor

public static JsonHPackProcessor packProcessor()

unpackProcessor

public static JsonHPackProcessor unpackProcessor()

process

public void process(Resource resource,
                    Reader reader,
                    Writer writer)
             throws IOException
Process a content supplied by a reader and perform some sort of processing. It is important to know that you should use reader for processing instead of trying to access the resource original content using Resource, because this way you can ignore the other preProcessors from the chain.
It is not require to explicitly handle exception. When the processing fails, the following can happen:
It is not required to close the reader and writers, because these will be closed for you.

Specified by:
process in interface ResourcePreProcessor
Parameters:
resource - the original resource as it found in the model.
reader - Reader used to read processed resource content.
writer - Writer where used to write processed results.
Throws:
IOException - when an exception occurs. The future version will change the exception type to Exception, because any exception may occur during processing. The processing failure will be handled based on value of WroConfiguration.isIgnoreFailingProcessor() configuration flag.

onException

protected void onException(WroRuntimeException e)
Invoked when a processing exception occurs.


newEngine

protected JsonHPack newEngine()
Returns:
the JsonHPack engine implementation. Override it to provide a different version of the json.hpack.js library. Useful for upgrading the processor outside the wro4j release.

process

public void process(Reader reader,
                    Writer writer)
             throws IOException
Perform actual resource processing. The content to be processed is read from source Reader and is written to destination Writer. It is the client responsibility to close both: Reader and writer.

Specified by:
process in interface ResourcePostProcessor
Parameters:
reader - source stream.
writer - destination stream.
Throws:
IOException


Copyright © 2008-2013. All Rights Reserved.