use of javax.ws.rs.ext.Providers in project component-runtime by Talend.
the class ProjectResource method createZip.
@POST
@Path("zip/form")
@Produces("application/zip")
public Response createZip(@FormParam("project") final String compressedModel, @Context final Providers providers) {
final ProjectModel model = readProjectModel(compressedModel, providers);
final String filename = ofNullable(model.getArtifact()).orElse("zip") + ".zip";
return Response.ok().entity((StreamingOutput) out -> {
generator.generate(toRequest(model), out);
out.flush();
}).header("Content-Disposition", "inline; filename=" + filename).build();
}
use of javax.ws.rs.ext.Providers in project cxf by apache.
the class DOM4JProviderTest method testWriteXMLSuppressDeclaration.
@Test
public void testWriteXMLSuppressDeclaration() throws Exception {
org.dom4j.Document dom = readXML(MediaType.APPLICATION_XML_TYPE, "<a/>");
final Message message = createMessage(true);
Providers providers = new ProvidersImpl(message);
DOM4JProvider p = new DOM4JProvider() {
protected Message getCurrentMessage() {
return message;
}
};
p.setProviders(providers);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
p.writeTo(dom, org.dom4j.Document.class, org.dom4j.Document.class, new Annotation[] {}, MediaType.APPLICATION_XML_TYPE, new MetadataMap<String, Object>(), bos);
String str = bos.toString();
assertFalse(str.startsWith("<?xml"));
assertTrue(str.contains("<a/>") || str.contains("<a></a>"));
}
use of javax.ws.rs.ext.Providers in project cxf by apache.
the class DOM4JProviderTest method doTestWriteXML.
private void doTestWriteXML(MediaType ct, boolean convert) throws Exception {
org.dom4j.Document dom = readXML(ct, "<a/>");
final Message message = createMessage(false);
Providers providers = new ProvidersImpl(message);
DOM4JProvider p = new DOM4JProvider() {
protected Message getCurrentMessage() {
return message;
}
};
p.setProviders(providers);
p.convertToDOMAlways(convert);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
p.writeTo(dom, org.dom4j.Document.class, org.dom4j.Document.class, new Annotation[] {}, ct, new MetadataMap<String, Object>(), bos);
String str = bos.toString();
if (convert) {
assertFalse(str.startsWith("<?xml"));
} else {
assertTrue(str.startsWith("<?xml"));
}
assertTrue(str.contains("<a/>") || str.contains("<a></a>"));
}
use of javax.ws.rs.ext.Providers in project jersey by jersey.
the class JaxrsProvidersTest method testProviders.
@Test
public void testProviders() throws Exception {
final InjectionManager injectionManager = Injections.createInjectionManager(new MessagingBinders.MessageBodyProviders(null, RuntimeType.SERVER), new Binder());
injectionManager.register(new TestBinder(injectionManager));
TestBinder.initProviders(injectionManager);
RequestScope scope = injectionManager.getInstance(RequestScope.class);
scope.runInScope(new Callable<Object>() {
@Override
public Object call() throws Exception {
Providers instance = injectionManager.getInstance(Providers.class);
assertNotNull(instance);
assertSame(JaxrsProviders.class, instance.getClass());
assertNotNull(instance.getExceptionMapper(Throwable.class));
assertNotNull(instance.getMessageBodyReader(String.class, String.class, new Annotation[0], MediaType.TEXT_PLAIN_TYPE));
assertNotNull(instance.getMessageBodyWriter(String.class, String.class, new Annotation[0], MediaType.TEXT_PLAIN_TYPE));
assertNotNull(instance.getContextResolver(String.class, MediaType.TEXT_PLAIN_TYPE));
return null;
}
});
}
use of javax.ws.rs.ext.Providers in project component-runtime by Talend.
the class ExecutionResource method read.
/**
* Read inputs from an instance of mapper. The number of returned records if enforced to be limited to 1000.
* The format is a JSON based format where each like is a json record.
*
* @param family the component family.
* @param component the component name.
* @param size the maximum number of records to read.
* @param configuration the component configuration as key/values.
*/
@POST
@Deprecated
@Produces("talend/stream")
@Path("read/{family}/{component}")
public void read(@Suspended final AsyncResponse response, @Context final Providers providers, @PathParam("family") final String family, @PathParam("component") final String component, @QueryParam("size") @DefaultValue("50") final long size, final Map<String, String> configuration) {
final long maxSize = Math.min(size, MAX_RECORDS);
response.setTimeoutHandler(asyncResponse -> log.warn("Timeout on dataset retrieval"));
response.setTimeout(appConfiguration.datasetRetrieverTimeout(), SECONDS);
executorService.submit(() -> {
final Optional<Mapper> mapperOptional = manager.findMapper(family, component, getConfigComponentVersion(configuration), configuration);
if (!mapperOptional.isPresent()) {
response.resume(new WebApplicationException(Response.status(BAD_REQUEST).entity(new ErrorPayload(COMPONENT_MISSING, "Didn't find the input component")).build()));
return;
}
final Mapper mapper = mapperOptional.get();
mapper.start();
try {
final Input input = mapper.create();
try {
input.start();
response.resume((StreamingOutput) output -> {
Object data;
int current = 0;
while (current++ < maxSize && (data = input.next()) != null) {
if (CharSequence.class.isInstance(data) || Number.class.isInstance(data) || Boolean.class.isInstance(data)) {
final PrimitiveWrapper wrapper = new PrimitiveWrapper();
wrapper.setValue(data);
data = wrapper;
}
inlineStreamingMapper.toJson(data, output);
output.write(EOL);
}
});
} finally {
input.stop();
}
} finally {
mapper.stop();
}
});
}
Aggregations