use of org.webpieces.httpparser.api.HttpParser in project webpieces by deanhiller.
the class TestBeans method testIncomingDataAndDataSeperate.
@Test
public void testIncomingDataAndDataSeperate() {
HttpDummyRequest req = Requests.createPostRequest("/postArray2", "user.accounts[1].name", "Account2Name", "user.accounts[1].color", "green", "user.accounts[2].addresses[0].number", "56", "user.firstName", "D&D", "user.lastName", "Hiller", "user.fullName", "Dean Hiller");
DataWrapperGenerator dataGen = DataWrapperGeneratorFactory.createDataWrapperGenerator();
HttpParser parser = HttpParserFactory.createParser(new BufferCreationPool());
MarshalState state = parser.prepareToMarshal();
ByteBuffer buffer = parser.marshalToByteBuffer(state, req.getRequest());
DataWrapper d1 = dataGen.wrapByteBuffer(buffer);
ByteBuffer buf2 = parser.marshalToByteBuffer(state, req.getData());
DataWrapper data = dataGen.chainDataWrappers(d1, dataGen.wrapByteBuffer(buf2));
// Split the body in half
List<? extends DataWrapper> split = dataGen.split(data, data.getReadableSize() - 20);
http11Socket.sendBytes(split.get(0));
http11Socket.sendBytes(split.get(1));
FullResponse response = ResponseExtract.assertSingleResponse(http11Socket);
response.assertStatusCode(KnownStatusCode.HTTP_303_SEEOTHER);
UserDto user = mockSomeLib.getUser();
Assert.assertEquals("D&D", user.getFirstName());
Assert.assertEquals(3, user.getAccounts().size());
Assert.assertEquals("Account2Name", user.getAccounts().get(1).getName());
Assert.assertEquals(56, user.getAccounts().get(2).getAddresses().get(0).getNumber());
}
use of org.webpieces.httpparser.api.HttpParser in project webpieces by deanhiller.
the class HttpFrontendFactory method createFrontEnd.
public static HttpFrontendManager createFrontEnd(ChannelManager chanMgr, ScheduledExecutorService timer, InjectionConfig injConfig, MeterRegistry metrics) {
TwoPools pool = new TwoPools(chanMgr.getName() + ".bufpoolmain", metrics);
HttpParser httpParser = HttpParserFactory.createParser(chanMgr.getName(), metrics, pool);
return createFrontEnd(chanMgr, timer, injConfig, httpParser, metrics);
}
use of org.webpieces.httpparser.api.HttpParser in project webpieces by deanhiller.
the class HttpFrontendFactory method createFrontEnd.
/**
* @param id Use for logging and also file recording names
* use the SessionExecutorImpl found in webpieces
* @param metrics
*
* @return
*/
public static HttpFrontendManager createFrontEnd(String id, ScheduledExecutorService timer, BufferPool pool, FrontendMgrConfig config, MeterRegistry metrics) {
Executor executor = Executors.newFixedThreadPool(config.getThreadPoolSize(), new NamedThreadFactory(id));
MetricsCreator.monitor(metrics, executor, id);
ChannelManagerFactory factory = ChannelManagerFactory.createFactory(metrics);
ChannelManager chanMgr = factory.createMultiThreadedChanMgr(id, pool, config.getBackpressureConfig(), executor);
AsyncServerManager svrMgr = AsyncServerMgrFactory.createAsyncServer(chanMgr, metrics);
HttpParser httpParser = HttpParserFactory.createParser(id, metrics, pool);
HpackParser http2Parser = HpackParserFactory.createParser(pool, true);
InjectionConfig injConfig = new InjectionConfig(http2Parser, new TimeImpl(), config.getHttp2Config());
Http2ServerEngineFactory svrEngineFactory = new Http2ServerEngineFactory(injConfig);
return new FrontEndServerManagerImpl(svrMgr, timer, svrEngineFactory, httpParser);
}
use of org.webpieces.httpparser.api.HttpParser in project webpieces by deanhiller.
the class WebServerModule method providesAsyncServerMgr.
@Provides
@Singleton
public HttpFrontendManager providesAsyncServerMgr(ChannelManager chanMgr, ScheduledExecutorService timer, BufferPool pool, Time time, WebServerConfig config, MeterRegistry metrics) {
HttpParser httpParser = HttpParserFactory.createParser("a", new SimpleMeterRegistry(), pool);
HpackParser http2Parser = HpackParserFactory.createParser(pool, true);
InjectionConfig injConfig = new InjectionConfig(http2Parser, time, config.getHttp2Config());
return HttpFrontendFactory.createFrontEnd(chanMgr, timer, injConfig, httpParser, metrics);
}
use of org.webpieces.httpparser.api.HttpParser in project webpieces by deanhiller.
the class TestCancelStream method setup.
@Before
public void setup() {
SimpleMeterRegistry metrics = new SimpleMeterRegistry();
TwoPools pool = new TwoPools("client.bufferpool", metrics);
HttpParser parser = HttpParserFactory.createParser("testParser", metrics, pool);
httpClient = HttpClientFactory.createHttpClient("testClient", mockChanMgr, parser);
mockChannel.setConnectFuture(XFuture.completedFuture(null));
mockChanMgr.addTCPChannelToReturn(mockChannel);
httpSocket = httpClient.createHttpSocket(new SocketListener());
}
Aggregations