package ameba.message.internal;
import ameba.message.internal.streaming.*;
import javax.ws.rs.core.Feature;
import javax.ws.rs.core.FeatureContext;
/**
* <p>ExtendedMessageFeature class.</p>
*
* @author icode
*
*/
public class ExtendedMessageFeature implements Feature {
/**
* {@inheritDoc}
*/
@Override
public boolean configure(FeatureContext context) {
if (!context.getConfiguration().isRegistered(TextMessageBodyWriter.class)) {
context.register(TextMessageBodyWriter.class);
}
if (!context.getConfiguration().isRegistered(CaptchaWriterInterceptor.class)) {
context.register(CaptchaWriterInterceptor.class);
}
if (!context.getConfiguration().isRegistered(PathMessageBodyWriter.class)) {
context.register(PathMessageBodyWriter.class);
}
if (!context.getConfiguration().isRegistered(ContentLengthWriterInterceptor.class)) {
context.register(ContentLengthWriterInterceptor.class);
}
if (!context.getConfiguration().isRegistered(StreamingWriterInterceptor.class)) {
context.register(StreamingWriterInterceptor.class);
// streaming process
context.register(BlobStreamingProcess.class);
context.register(BytesStreamingProcess.class);
context.register(ClobStreamingProcess.class);
context.register(FileStreamingProcess.class);
context.register(InputStreamingProcess.class);
context.register(PathStreamingProcess.class);
}
return false;
}
}