diff --git a/akka-http-core/src/main/java/akka/http/javadsl/HttpsContext.java b/akka-http-core/src/main/java/akka/http/javadsl/HttpsContext.java index 28c429d712..e0dfad72a5 100644 --- a/akka-http-core/src/main/java/akka/http/javadsl/HttpsContext.java +++ b/akka-http-core/src/main/java/akka/http/javadsl/HttpsContext.java @@ -8,6 +8,7 @@ import javax.net.ssl.SSLContext; import javax.net.ssl.SSLParameters; import akka.japi.Option; +import akka.japi.Util; import akka.stream.io.ClientAuth; import java.util.Collection; @@ -32,7 +33,16 @@ public abstract class HttpsContext { Option sslParameters) //#http-context-creation { - return akka.http.scaladsl.HttpsContext.create(sslContext, enabledCipherSuites, enabledProtocols, - clientAuth, sslParameters); + final scala.Option> ecs; + if (enabledCipherSuites.isDefined()) ecs = scala.Option.apply(Util.immutableSeq(enabledCipherSuites.get())); + else ecs = scala.Option.empty(); + final scala.Option> ep; + if(enabledProtocols.isDefined()) ep = scala.Option.apply(Util.immutableSeq(enabledProtocols.get())); + else ep = scala.Option.empty(); + return new akka.http.scaladsl.HttpsContext(sslContext, + ecs, + ep, + clientAuth.asScala(), + sslParameters.asScala()); } } diff --git a/akka-http-core/src/main/scala/akka/http/scaladsl/Http.scala b/akka-http-core/src/main/scala/akka/http/scaladsl/Http.scala index c284afb2a5..5b86ee57da 100644 --- a/akka-http-core/src/main/scala/akka/http/scaladsl/Http.scala +++ b/akka-http-core/src/main/scala/akka/http/scaladsl/Http.scala @@ -739,15 +739,4 @@ final case class HttpsContext(sslContext: SSLContext, /** Java API */ def getSslParameters: japi.Option[SSLParameters] = sslParameters -} - -object HttpsContext { - /** INTERNAL API **/ - private[http] def create(sslContext: SSLContext, - enabledCipherSuites: japi.Option[JCollection[String]], - enabledProtocols: japi.Option[JCollection[String]], - clientAuth: japi.Option[ClientAuth], - sslParameters: japi.Option[SSLParameters]) = - HttpsContext(sslContext, enabledCipherSuites.map(_.asScala.toList), enabledProtocols.map(_.asScala.toList), - clientAuth, sslParameters) } \ No newline at end of file diff --git a/akka-http-core/src/test/scala/akka/http/javadsl/model/JavaApiTestCaseSpecs.scala b/akka-http-core/src/test/scala/akka/http/javadsl/model/JavaApiTestCaseSpecs.scala index 95463d17e8..621de1a806 100644 --- a/akka-http-core/src/test/scala/akka/http/javadsl/model/JavaApiTestCaseSpecs.scala +++ b/akka-http-core/src/test/scala/akka/http/javadsl/model/JavaApiTestCaseSpecs.scala @@ -4,6 +4,8 @@ package akka.http.javadsl.model +import javax.net.ssl.SSLContext + import akka.http.javadsl.model.headers.Cookie import akka.http.scaladsl.model import akka.http.scaladsl.model.headers.BasicHttpCredentials @@ -56,5 +58,13 @@ class JavaApiTestCaseSpecs extends FreeSpec with MustMatchers { val origin = Uri.create("/order?orderId=123") JavaApiTestCases.addSessionId(origin) must be(Uri.create("/order?orderId=123&session=abcdefghijkl")) } + "create HttpsContext" in { + import akka.japi.{ Option ⇒ JOption } + akka.http.javadsl.HttpsContext.create(SSLContext.getDefault, + JOption.none, + JOption.none, + JOption.none, + JOption.none) mustNot be(null) + } } } \ No newline at end of file