Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2008-05-25 09:14:26 +0000
committerEike Stepper2008-05-25 09:14:26 +0000
commitd60cb62fd5a015e3f6f2ea1929834f4a14e497a8 (patch)
tree59f2763748c44f0668d570d1fad54c7f9e87d061 /plugins/org.eclipse.net4j.http/src/org/eclipse
parent1ea464b36c04f9391b999ae82033eb5a89b98395 (diff)
downloadcdo-d60cb62fd5a015e3f6f2ea1929834f4a14e497a8.tar.gz
cdo-d60cb62fd5a015e3f6f2ea1929834f4a14e497a8.tar.xz
cdo-d60cb62fd5a015e3f6f2ea1929834f4a14e497a8.zip
[232648] Provide an HTTPConnector
https://bugs.eclipse.org/bugs/show_bug.cgi?id=232648
Diffstat (limited to 'plugins/org.eclipse.net4j.http/src/org/eclipse')
-rw-r--r--plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPAcceptor.java8
-rw-r--r--plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPClientConnector.java17
-rw-r--r--plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/Net4jTransportServlet.java9
-rw-r--r--plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/tests/HTTPTest.java4
4 files changed, 29 insertions, 9 deletions
diff --git a/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPAcceptor.java b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPAcceptor.java
index ec4a7b0488..76aa123783 100644
--- a/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPAcceptor.java
+++ b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPAcceptor.java
@@ -151,7 +151,13 @@ public class HTTPAcceptor extends Acceptor implements IHTTPAcceptor, INet4jTrans
IBuffer buffer = getBufferProvider().provideBuffer();
ByteBuffer byteBuffer = buffer.startPutting(channelIndex);
- byteBuffer.put(data);
+ for (int i = 0; i < data.length; i++)
+ {
+ System.out.println("Payload: " + data[i]);
+ byteBuffer.put(data[i]);
+ }
+
+ buffer.flip();
channel.handleBufferFromMultiplexer(buffer);
}
diff --git a/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPClientConnector.java b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPClientConnector.java
index b86f6dd4db..db1cfa94b3 100644
--- a/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPClientConnector.java
+++ b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPClientConnector.java
@@ -83,14 +83,21 @@ public class HTTPClientConnector extends HTTPConnector
{
public void handleOut(ExtendedDataOutputStream out) throws IOException
{
- buffer.flip();
- ByteBuffer byteBuffer = buffer.getByteBuffer();
- byte[] data = byteBuffer.array();
-
out.writeByte(INet4jTransportServlet.OPCODE_SEND_BUFFER);
out.writeString(getConnectorID());
out.writeShort(channel.getChannelIndex());
- out.writeByteArray(data);
+
+ buffer.flip();
+ ByteBuffer byteBuffer = buffer.getByteBuffer();
+ byteBuffer.position(IBuffer.HEADER_SIZE);
+ int length = byteBuffer.limit() - byteBuffer.position();
+ out.writeShort(length);
+ for (int i = 0; i < length; i++)
+ {
+ byte b = byteBuffer.get();
+ System.out.println("Payload: " + b);
+ out.writeByte(b);
+ }
buffer.release();
}
diff --git a/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/Net4jTransportServlet.java b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/Net4jTransportServlet.java
index fba78a900e..833bab4418 100644
--- a/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/Net4jTransportServlet.java
+++ b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/Net4jTransportServlet.java
@@ -199,7 +199,14 @@ public class Net4jTransportServlet extends HttpServlet implements INet4jTranspor
{
String connectorID = in.readString();
short channelIndex = in.readShort();
- byte[] data = in.readByteArray();
+ int length = in.readShort();
+ byte[] data = new byte[length];
+ for (int i = 0; i < length; i++)
+ {
+ data[i] = in.readByte();
+ }
+
+ // TODO Consider passing the stream!
requestHandler.handleSendBuffer(connectorID, channelIndex, data);
out.writeBoolean(true);
}
diff --git a/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/tests/HTTPTest.java b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/tests/HTTPTest.java
index 283a644e57..eded166dd8 100644
--- a/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/tests/HTTPTest.java
+++ b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/tests/HTTPTest.java
@@ -42,9 +42,9 @@ public class HTTPTest extends AbstractTransportTest
IHTTPConnector connector = getHTTPConnector();
IChannel channel = connector.openChannel(TestSignalProtocol.PROTOCOL_NAME, null);
- IntRequest request = new IntRequest(channel, 4711);
+ IntRequest request = new IntRequest(channel, 305419896);
int result = request.send();
- assertEquals(4711, result);
+ assertEquals(305419896, result);
}
private IHTTPConnector getHTTPConnector()

Back to the top