Merge pull request #17948 from spray/w/small-java-api-additions
Smallish Java API fixes
This commit is contained in:
commit
76eef58411
6 changed files with 54 additions and 3 deletions
|
|
@ -4,6 +4,8 @@
|
||||||
|
|
||||||
package akka.http.javadsl.model;
|
package akka.http.javadsl.model;
|
||||||
|
|
||||||
|
import akka.http.impl.util.Util;
|
||||||
|
import akka.http.scaladsl.model.HttpEntity;
|
||||||
import akka.util.ByteString;
|
import akka.util.ByteString;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -31,4 +33,30 @@ public abstract class ChunkStreamPart {
|
||||||
* it will be empty.
|
* it will be empty.
|
||||||
*/
|
*/
|
||||||
public abstract Iterable<HttpHeader> getTrailerHeaders();
|
public abstract Iterable<HttpHeader> getTrailerHeaders();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a chunk from data and extension.
|
||||||
|
*/
|
||||||
|
public static ChunkStreamPart create(ByteString data, String extension) {
|
||||||
|
return new HttpEntity.Chunk(data, extension);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a chunk from data with an empty extension.
|
||||||
|
*/
|
||||||
|
public static ChunkStreamPart create(ByteString data) {
|
||||||
|
return create(data, "");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The default last ChunkStreamPart that has no extension and no trailer headers.
|
||||||
|
*/
|
||||||
|
public static final ChunkStreamPart LAST = HttpEntity.LastChunk$.MODULE$;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a last chunk with extension and headers.
|
||||||
|
*/
|
||||||
|
public static ChunkStreamPart createLast(String extension, Iterable<HttpHeader> trailerHeaders){
|
||||||
|
return new HttpEntity.LastChunk(extension, Util.<HttpHeader, akka.http.scaladsl.model.HttpHeader>convertIterable(trailerHeaders));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,10 @@ package akka.http.javadsl.model;
|
||||||
|
|
||||||
import akka.http.scaladsl.model.HttpEntity$;
|
import akka.http.scaladsl.model.HttpEntity$;
|
||||||
import akka.japi.Option;
|
import akka.japi.Option;
|
||||||
|
import akka.stream.Materializer;
|
||||||
import akka.stream.javadsl.Source;
|
import akka.stream.javadsl.Source;
|
||||||
import akka.util.ByteString;
|
import akka.util.ByteString;
|
||||||
|
import scala.concurrent.Future;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents the entity of an Http message. An entity consists of the content-type of the data
|
* Represents the entity of an Http message. An entity consists of the content-type of the data
|
||||||
|
|
@ -80,4 +82,15 @@ public interface HttpEntity {
|
||||||
* Returns a stream of data bytes this entity consists of.
|
* Returns a stream of data bytes this entity consists of.
|
||||||
*/
|
*/
|
||||||
public abstract Source<ByteString, ?> getDataBytes();
|
public abstract Source<ByteString, ?> getDataBytes();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a future of a strict entity that contains the same data as this entity
|
||||||
|
* which is only completed when the complete entity has been collected. As the
|
||||||
|
* duration of receiving the complete entity cannot be predicted, a timeout needs to
|
||||||
|
* be specified to guard the process against running and keeping resources infinitely.
|
||||||
|
*
|
||||||
|
* Use getDataBytes and stream processing instead if the expected data is big or
|
||||||
|
* is likely to take a long time.
|
||||||
|
*/
|
||||||
|
public abstract Future<HttpEntityStrict> toStrict(long timeoutMillis, Materializer materializer);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,6 @@ package akka.http.javadsl.model;
|
||||||
public final class HttpProtocols {
|
public final class HttpProtocols {
|
||||||
private HttpProtocols() {}
|
private HttpProtocols() {}
|
||||||
|
|
||||||
final HttpProtocol HTTP_1_0 = akka.http.scaladsl.model.HttpProtocols.HTTP$div1$u002E0();
|
public final static HttpProtocol HTTP_1_0 = akka.http.scaladsl.model.HttpProtocols.HTTP$div1$u002E0();
|
||||||
final HttpProtocol HTTP_1_1 = akka.http.scaladsl.model.HttpProtocols.HTTP$div1$u002E1();
|
public final static HttpProtocol HTTP_1_1 = akka.http.scaladsl.model.HttpProtocols.HTTP$div1$u002E1();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,4 +16,7 @@ public abstract class Location extends akka.http.scaladsl.model.HttpHeader {
|
||||||
public static Location create(Uri uri) {
|
public static Location create(Uri uri) {
|
||||||
return new akka.http.scaladsl.model.headers.Location(akka.http.impl.util.Util.convertUriToScala(uri));
|
return new akka.http.scaladsl.model.headers.Location(akka.http.impl.util.Util.convertUriToScala(uri));
|
||||||
}
|
}
|
||||||
|
public static Location create(String uri) {
|
||||||
|
return create(Uri.create(uri));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@
|
||||||
package akka.http.javadsl
|
package akka.http.javadsl
|
||||||
|
|
||||||
import java.net.InetSocketAddress
|
import java.net.InetSocketAddress
|
||||||
|
import akka.japi.function.Function;
|
||||||
import scala.concurrent.Future
|
import scala.concurrent.Future
|
||||||
import akka.stream.Materializer
|
import akka.stream.Materializer
|
||||||
import akka.stream.javadsl.Flow
|
import akka.stream.javadsl.Flow
|
||||||
|
|
|
||||||
|
|
@ -4,11 +4,13 @@
|
||||||
|
|
||||||
package akka.http.scaladsl.model
|
package akka.http.scaladsl.model
|
||||||
|
|
||||||
|
import akka.http.javadsl.model.HttpEntityStrict
|
||||||
|
|
||||||
import language.implicitConversions
|
import language.implicitConversions
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.lang.{ Iterable ⇒ JIterable, Long ⇒ JLong }
|
import java.lang.{ Iterable ⇒ JIterable, Long ⇒ JLong }
|
||||||
import scala.concurrent.Future
|
import scala.concurrent.Future
|
||||||
import scala.concurrent.duration.FiniteDuration
|
import scala.concurrent.duration._
|
||||||
import scala.collection.immutable
|
import scala.collection.immutable
|
||||||
import akka.util.ByteString
|
import akka.util.ByteString
|
||||||
import akka.stream.Materializer
|
import akka.stream.Materializer
|
||||||
|
|
@ -103,6 +105,10 @@ sealed trait HttpEntity extends jm.HttpEntity {
|
||||||
def isIndefiniteLength: Boolean = false
|
def isIndefiniteLength: Boolean = false
|
||||||
def isDefault: Boolean = false
|
def isDefault: Boolean = false
|
||||||
def isChunked: Boolean = false
|
def isChunked: Boolean = false
|
||||||
|
|
||||||
|
/** Java API */
|
||||||
|
def toStrict(timeoutMillis: Long, materializer: Materializer): Future[HttpEntityStrict] =
|
||||||
|
toStrict(timeoutMillis.millis)(materializer)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* An entity that can be used for body parts */
|
/* An entity that can be used for body parts */
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue