java.net.SocketAddress Scala Examples
The following examples show how to use java.net.SocketAddress.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
Example 1
Source File: AkkaStreamGrpcServerResource.scala From daml with Apache License 2.0 | 5 votes |
// Copyright (c) 2020 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved. // SPDX-License-Identifier: Apache-2.0 package com.daml.ledger.api.testing.utils import java.net.SocketAddress import java.util.concurrent.TimeUnit import akka.stream.Materializer import io.grpc.BindableService class AkkaStreamGrpcServerResource( constructServices: Materializer => Iterable[BindableService], actorMaterializerResource: Resource[Materializer], address: Option[SocketAddress]) extends DerivedResource[Materializer, ServerWithChannelProvider](actorMaterializerResource) { @volatile private var runningServices: Iterable[BindableService] = Nil def getRunningServices: Iterable[BindableService] = runningServices override protected def construct(source: Materializer): ServerWithChannelProvider = { runningServices = constructServices(actorMaterializerResource.value) ServerWithChannelProvider.fromServices(runningServices, address, "server") } override protected def destruct(resource: ServerWithChannelProvider): Unit = { val server = derivedValue.server server.shutdownNow() runningServices.foreach { case closeable: AutoCloseable => closeable.close() case _ => () } runningServices = Nil server.awaitTermination(10, TimeUnit.SECONDS) () } } object AkkaStreamGrpcServerResource { def apply( constructServices: Materializer => Iterable[BindableService], actorSystemName: String = "", address: Option[SocketAddress]) = new AkkaStreamGrpcServerResource( constructServices, new ActorMaterializerResource(actorSystemName), address) }
Example 2
Source File: ServerWithChannelProvider.scala From daml with Apache License 2.0 | 5 votes |
// Copyright (c) 2020 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved. // SPDX-License-Identifier: Apache-2.0 package com.daml.ledger.api.testing.utils import io.grpc._ import io.grpc.inprocess.{InProcessChannelBuilder, InProcessServerBuilder} import io.grpc.netty.NettyServerBuilder import java.net.SocketAddress final case class ServerWithChannelProvider(server: Server, channel: () => ManagedChannel) { def getClient[Stub](createStub: Channel => Stub): Stub = createStub(channel()) } object ServerWithChannelProvider { def fromServices( services: Iterable[BindableService], address: Option[SocketAddress], serverName: String): ServerWithChannelProvider = { val serverBuilder = address.fold[ServerBuilder[_ <: ServerBuilder[_]]]( services.foldLeft(InProcessServerBuilder.forName(serverName))(_ addService _))(a => services.foldLeft(NettyServerBuilder.forAddress(a))(_ addService _)) val server = serverBuilder .build() server.start() ServerWithChannelProvider( server, () => getChannel(address.map(_ => server.getPort()), serverName)) } private def getChannel(port: Option[Int], serverName: String) = { port .fold[ManagedChannelBuilder[_]]( InProcessChannelBuilder .forName(serverName) .usePlaintext() )( p => ManagedChannelBuilder .forAddress("127.0.0.1", p) .usePlaintext() ) .build() } }
Example 3
Source File: GrpcServerResource.scala From daml with Apache License 2.0 | 5 votes |
// Copyright (c) 2020 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved. // SPDX-License-Identifier: Apache-2.0 package com.daml.ledger.api.testing.utils import java.net.SocketAddress import java.util.concurrent.TimeUnit import io.grpc._ final class GrpcServerResource( services: () => Iterable[BindableService with AutoCloseable], port: Option[SocketAddress], ) extends ManagedResource[ServerWithChannelProvider] { @volatile private var boundServices: Iterable[BindableService with AutoCloseable] = Nil override protected def construct(): ServerWithChannelProvider = { boundServices = services() ServerWithChannelProvider.fromServices(boundServices, port, "server") } override protected def destruct(resource: ServerWithChannelProvider): Unit = { resource.server.shutdownNow().awaitTermination(5, TimeUnit.SECONDS) boundServices.foreach(_.close()) boundServices = Nil () } }
Example 4
Source File: AkkaServiceSpecBase.scala From daml with Apache License 2.0 | 5 votes |
// Copyright (c) 2020 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved. // SPDX-License-Identifier: Apache-2.0 package com.daml.grpc.adapter.operation import java.util.concurrent.TimeUnit._ import java.net.SocketAddress import com.daml.grpc.adapter.{ExecutionSequencerFactory, TestExecutionSequencerFactory} import com.daml.grpc.adapter.client.ReferenceClientCompatibilityCheck import com.daml.ledger.api.testing.utils.AkkaBeforeAndAfterAll import org.awaitility.Awaitility._ import org.scalatest.concurrent.ScalaFutures import org.scalatest.{Matchers, WordSpec} abstract class AkkaServiceSpecBase(override protected val socketAddress: Option[SocketAddress]) extends WordSpec with Matchers with AkkaBeforeAndAfterAll with ScalaFutures with ReferenceClientCompatibilityCheck with AkkaClientCompatibilityCheck with AkkaServiceFixture { "Akka service" when { "testing with reference client" should { behave like referenceClientCompatible(clientStub) } "testing with akka client" should { behave like akkaClientCompatible(clientStub) } "asked for server call count" should { "return the correct number" in { await() .atMost(5, SECONDS) .until(() => service.getServerStreamingCalls == 7) // The number of calls in the previous tests } } } override implicit protected def esf: ExecutionSequencerFactory = TestExecutionSequencerFactory.instance }
Example 5
Source File: AkkaServiceFixture.scala From daml with Apache License 2.0 | 5 votes |
// Copyright (c) 2020 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved. // SPDX-License-Identifier: Apache-2.0 package com.daml.grpc.adapter.operation import com.daml.grpc.adapter.{ExecutionSequencerFactory, TestExecutionSequencerFactory} import com.daml.grpc.adapter.utils.implementations.AkkaImplementation import com.daml.ledger.api.testing.utils._ import com.daml.platform.hello.HelloServiceGrpc import com.daml.platform.hello.HelloServiceGrpc.HelloServiceStub import java.net.SocketAddress import java.util.concurrent.TimeUnit trait AkkaServiceFixture extends GrpcServerFixture[HelloServiceStub] with SuiteResourceManagementAroundAll { protected lazy val channel = suiteResource.value.channel() protected lazy val clientStub = HelloServiceGrpc.stub(channel) override protected def afterAll(): Unit = { channel.shutdownNow().awaitTermination(5, TimeUnit.SECONDS) super.afterAll() } protected def socketAddress: Option[SocketAddress] override protected def suiteResource: Resource[ServerWithChannelProvider] = resources.map(_._2) lazy val resources = AkkaServiceFixture.getResource(socketAddress) protected def service: AkkaImplementation = resources.getRunningServices.head.asInstanceOf[AkkaImplementation] } object AkkaServiceFixture { implicit private val esf: ExecutionSequencerFactory = TestExecutionSequencerFactory.instance def getResource(address: Option[SocketAddress]): AkkaStreamGrpcServerResource = { AkkaStreamGrpcServerResource(implicit m => List(new AkkaImplementation()), "server", address) } }
Example 6
Source File: AkkaClientWithReferenceServiceSpecBase.scala From daml with Apache License 2.0 | 5 votes |
// Copyright (c) 2020 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved. // SPDX-License-Identifier: Apache-2.0 package com.daml.grpc.adapter.operation import akka.stream.scaladsl.Sink import com.daml.grpc.adapter.client.ReferenceClientCompatibilityCheck import com.daml.grpc.adapter.client.akka.ClientAdapter import com.daml.grpc.adapter.{ExecutionSequencerFactory, TestExecutionSequencerFactory} import com.daml.ledger.api.testing.utils.AkkaBeforeAndAfterAll import com.daml.platform.hello.HelloRequest import io.grpc.StatusRuntimeException import org.scalatest.concurrent.ScalaFutures import org.scalatest.{BeforeAndAfterAll, Matchers, WordSpec} import java.net.SocketAddress abstract class AkkaClientWithReferenceServiceSpecBase( override protected val socketAddress: Option[SocketAddress]) extends WordSpec with Matchers with BeforeAndAfterAll with AkkaBeforeAndAfterAll with ScalaFutures with ReferenceClientCompatibilityCheck with AkkaClientCompatibilityCheck with ReferenceServiceFixture { protected implicit val esf: ExecutionSequencerFactory = TestExecutionSequencerFactory.instance "Akka client" when { "testing with reference service" should { behave like akkaClientCompatible(clientStub) } "handle request errors when server streaming" in { val elemsF = ClientAdapter .serverStreaming(HelloRequest(-1), clientStub.serverStreaming) .runWith(Sink.ignore) whenReady(elemsF.failed)(_ shouldBe a[StatusRuntimeException]) } } }
Example 7
Source File: JavaInvalidCharacterEscapingTest.scala From guardrail with MIT License | 5 votes |
package core.Dropwizard import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.databind.ObjectMapper import invalidCharacters.client.dropwizard.invalidCharacters.InvalidCharactersClient import invalidCharacters.server.dropwizard.definitions.{InvalidCharacters, InvalidCharactersEnum} import io.netty.buffer.Unpooled import java.net.{SocketAddress, URI, URLDecoder} import java.util.concurrent.{CompletableFuture, CompletionStage} import java.util.function import org.asynchttpclient.Response.ResponseBuilder import org.asynchttpclient.netty.EagerResponseBodyPart import org.asynchttpclient.uri.Uri import org.asynchttpclient.{HttpResponseStatus, Request, Response} import org.scalatest.freespec.AnyFreeSpec import org.scalatest.matchers.must.Matchers import scala.collection.JavaConverters._ object JavaInvalidCharacterEscapingTest { private implicit class RichString(private val s: String) extends AnyVal { def dec: String = URLDecoder.decode(s, "UTF-8") } private object OkStatus extends HttpResponseStatus(Uri.create("http://localhost:1234/foo?foo^bar=query-param")) { override def getStatusCode = 200 override def getStatusText = "OK" override def getProtocolName = "HTTP" override def getProtocolMajorVersion = 1 override def getProtocolMinorVersion = 1 override def getProtocolText = "HTTP/1.1" override def getRemoteAddress: SocketAddress = ??? override def getLocalAddress: SocketAddress = ??? } } class JavaInvalidCharacterEscapingTest extends AnyFreeSpec with Matchers { import JavaInvalidCharacterEscapingTest._ "Invalid characters in Java enums should be escaped" in { InvalidCharactersEnum.NORMAL.getName mustBe "normal" InvalidCharactersEnum.BANG_MOO_COLON_COW_SEMICOLON.getName mustBe "!moo:cow;" InvalidCharactersEnum.POUND_YEAH.getName mustBe "#yeah" InvalidCharactersEnum.WEIRD_AT.getName mustBe "weird@" } "Invalid characters in Java POJO properties should be escaped" in { val invChar = new InvalidCharacters.Builder("stuff", InvalidCharactersEnum.POUND_YEAH).build() invChar.getCloseSquareBraceMoo mustBe "stuff" invChar.getSomeEnumAsteriskCaret mustBe InvalidCharactersEnum.POUND_YEAH classOf[InvalidCharacters].getDeclaredField("closeSquareBraceMoo").getAnnotation(classOf[JsonProperty]).value mustBe "]moo" classOf[InvalidCharacters].getDeclaredField("someEnumAsteriskCaret").getAnnotation(classOf[JsonProperty]).value mustBe "some-enum*^" } "Invalid characters in Java operation param names should be escaped" in { val httpClient = new function.Function[Request, CompletionStage[Response]] { override def apply(request: Request): CompletionStage[Response] = { println(request.getUri) println(request.getQueryParams.asScala.map(_.getName)) val qps = request.getQueryParams.asScala.map(p => (p.getName.dec, p.getValue.dec)) val fps = request.getFormParams.asScala.map(p => (p.getName.dec, p.getValue.dec)) qps.find(_._1 == "foo^bar").map(_._2) mustBe Some("firstarg") fps.find(_._1 == "a*b").map(_._2) mustBe Some("secondarg") fps.find(_._1 == "bc?").map(_._2) mustBe Some("thirdarg") fps.find(_._1 == "d/c").map(_._2) mustBe Some("fourtharg") val response = new ResponseBuilder() response.accumulate(OkStatus) response.accumulate(new EagerResponseBodyPart( Unpooled.copiedBuffer(new ObjectMapper().writeValueAsBytes(new InvalidCharacters.Builder("foo", InvalidCharactersEnum.WEIRD_AT).build())), true )) CompletableFuture.completedFuture(response.build()) } } val client = new InvalidCharactersClient.Builder(new URI("http://localhost:1234")).withHttpClient(httpClient).build() val response = client.getFoo("firstarg", "secondarg", "thirdarg", "fourtharg").call().toCompletableFuture.get() response.fold( { invChar => invChar.getCloseSquareBraceMoo mustBe "foo" invChar.getSomeEnumAsteriskCaret mustBe invalidCharacters.client.dropwizard.definitions.InvalidCharactersEnum.WEIRD_AT } ) } }
Example 8
Source File: MesosExternalShuffleService.scala From spark1.52 with Apache License 2.0 | 5 votes |
package org.apache.spark.deploy.mesos import java.net.SocketAddress import scala.collection.mutable import org.apache.spark.{Logging, SecurityManager, SparkConf} import org.apache.spark.deploy.ExternalShuffleService import org.apache.spark.network.client.{RpcResponseCallback, TransportClient} import org.apache.spark.network.shuffle.ExternalShuffleBlockHandler import org.apache.spark.network.shuffle.protocol.BlockTransferMessage import org.apache.spark.network.shuffle.protocol.mesos.RegisterDriver import org.apache.spark.network.util.TransportConf private[mesos] class MesosExternalShuffleService(conf: SparkConf, securityManager: SecurityManager) extends ExternalShuffleService(conf, securityManager) { protected override def newShuffleBlockHandler( conf: TransportConf): ExternalShuffleBlockHandler = { new MesosExternalShuffleBlockHandler(conf) } } private[spark] object MesosExternalShuffleService extends Logging { def main(args: Array[String]): Unit = { ExternalShuffleService.main(args, (conf: SparkConf, sm: SecurityManager) => new MesosExternalShuffleService(conf, sm)) } }
Example 9
Source File: MesosExternalShuffleService.scala From BigDatalog with Apache License 2.0 | 5 votes |
package org.apache.spark.deploy.mesos import java.net.SocketAddress import java.nio.ByteBuffer import scala.collection.mutable import org.apache.spark.{Logging, SecurityManager, SparkConf} import org.apache.spark.deploy.ExternalShuffleService import org.apache.spark.network.client.{RpcResponseCallback, TransportClient} import org.apache.spark.network.shuffle.ExternalShuffleBlockHandler import org.apache.spark.network.shuffle.protocol.BlockTransferMessage import org.apache.spark.network.shuffle.protocol.mesos.RegisterDriver import org.apache.spark.network.util.TransportConf private[mesos] class MesosExternalShuffleService(conf: SparkConf, securityManager: SecurityManager) extends ExternalShuffleService(conf, securityManager) { protected override def newShuffleBlockHandler( conf: TransportConf): ExternalShuffleBlockHandler = { new MesosExternalShuffleBlockHandler(conf) } } private[spark] object MesosExternalShuffleService extends Logging { def main(args: Array[String]): Unit = { ExternalShuffleService.main(args, (conf: SparkConf, sm: SecurityManager) => new MesosExternalShuffleService(conf, sm)) } }
Example 10
Source File: PacketProxy.scala From Neutrino with Apache License 2.0 | 5 votes |
package com.ebay.neutrino import java.net.{InetAddress, InetSocketAddress, SocketAddress} import com.ebay.neutrino.util.Utilities import scala.concurrent.Future import scala.util.{Failure, Success} import com.typesafe.scalalogging.slf4j.StrictLogging import io.netty.bootstrap.{Bootstrap, ServerBootstrap} import io.netty.channel.ChannelHandler.Sharable import io.netty.channel._ import io.netty.channel.nio.NioEventLoopGroup import io.netty.channel.socket.nio.{NioServerSocketChannel, NioSocketChannel} import io.netty.util.AttributeKey override def channelRead(ctx: ChannelHandlerContext, msg: AnyRef) { println("Writing packet from downstream to upstream...") upstream.writeAndFlush(msg) //ctx.fireChannelRead(msg) } override def channelInactive(ctx: ChannelHandlerContext): Unit = { println("Downstream closing..") upstream.close() ctx.fireChannelInactive() } }
Example 11
Source File: Splitter.scala From infinispan-spark with Apache License 2.0 | 5 votes |
package org.infinispan.spark.rdd import java.net.SocketAddress import java.util import org.apache.spark.Partition import org.infinispan.client.hotrod.CacheTopologyInfo import org.infinispan.spark.config.ConnectorConfiguration import scala.collection.JavaConverters._ import scala.collection.mutable class PerServerSplitter extends Splitter { override def split(cacheTopology: CacheTopologyInfo, properties: ConnectorConfiguration): Array[Partition] = { val segmentsByServer = cacheTopology.getSegmentsPerServer if (segmentsByServer.isEmpty) throw new IllegalArgumentException("No servers found to partition") if (segmentsByServer.keySet().size == 1 && segmentsByServer.values().asScala.flatten(_.asScala).isEmpty) { Array(new SingleServerPartition(segmentsByServer.keySet.asScala.head, properties)) } else { val segmentsByServerSeq = segmentsByServer.asScala.toStream.sortBy { case (_, v) => v.size } val segments = segmentsByServerSeq.flatMap { case (_, segs) => segs.asScala.toSeq }.distinct val numServers = segmentsByServerSeq.size val numSegments = segments.size val segmentsPerServer = Math.ceil(numSegments.toFloat / numServers.toFloat).toInt val q = mutable.Queue(segments: _*) val segmentsByServerIterator = Iterator.continually(segmentsByServerSeq).flatten val result = new mutable.HashMap[SocketAddress, collection.mutable.Set[Integer]] with mutable.MultiMap[SocketAddress, Integer] while (q.nonEmpty) { val (server, segments) = segmentsByServerIterator.next() val split = List.fill(segmentsPerServer) { q.dequeueFirst(segments.contains) }.flatten if (split.nonEmpty) { split.foreach { result.addBinding(server, _) } } } val pps = properties.getServerPartitions result.toStream.flatMap { case (a, b) => cut(b.toSeq, pps).map((a, _)) }.zipWithIndex.map { case ((server, segs), idx) => new InfinispanPartition(idx, Location(server), toJavaSet(segs), properties) }.toArray } } private def toJavaSet(s: Set[Integer]) = new util.HashSet[Integer](s.asJava) private def cut[A](l: Seq[A], parts: Int) = (0 until parts).map { i => l.drop(i).sliding(1, parts).flatten.toSet }.filter(_.nonEmpty) }
Example 12
Source File: HttpDifferenceProxy.scala From diffy with GNU Affero General Public License v3.0 | 5 votes |
package ai.diffy.proxy import java.net.SocketAddress import ai.diffy.analysis.{DifferenceAnalyzer, InMemoryDifferenceCollector, JoinedDifferences} import ai.diffy.lifter.{HttpLifter, Message} import com.twitter.finagle.http.{Method, Request, Response} import com.twitter.finagle.{Filter, Http} import com.twitter.util.{Future, StorageUnit, Try} object HttpDifferenceProxy { def requestHostHeaderFilter(host: String) = Filter.mk[Request, Response, Request, Response] { (req, svc) => req.host(host) svc(req) } } trait HttpDifferenceProxy extends DifferenceProxy { import HttpDifferenceProxy._ val servicePort: SocketAddress val lifter = new HttpLifter(settings.excludeHttpHeadersComparison, settings.resourceMatcher) override type Req = Request override type Rep = Response override type Srv = HttpService override def serviceFactory(serverset: String, label: String) = HttpService(requestHostHeaderFilter(serverset) andThen Http.client .withMaxResponseSize(settings.maxResponseSize) .withMaxHeaderSize(settings.maxHeaderSize) .newService(serverset, label)) override lazy val server = Http.serve( servicePort, proxy ) override def liftRequest(req: Request): Future[Message] = lifter.liftRequest(req) override def liftResponse(resp: Try[Response]): Future[Message] = lifter.liftResponse(resp) } object SimpleHttpDifferenceProxy { case class SimpleHttpsDifferenceProxy ( settings: Settings, collector: InMemoryDifferenceCollector, joinedDifferences: JoinedDifferences, analyzer: DifferenceAnalyzer) extends HttpDifferenceProxy { import SimpleHttpDifferenceProxy._ override val servicePort = settings.servicePort override val proxy = Filter.identity andThenIf (!settings.allowHttpSideEffects, httpSideEffectsFilter) andThen super.proxy override def serviceFactory(serverset: String, label: String) = HttpService( Http.client .withTls(serverset) .newService(serverset+":"+settings.httpsPort, label) ) }
Example 13
Source File: PeerKey.scala From Waves with MIT License | 5 votes |
package com.wavesplatform.network import java.net.{InetAddress, SocketAddress} import io.netty.channel.ChannelHandlerContext import io.netty.channel.embedded.EmbeddedChannel import io.netty.channel.socket.SocketChannel sealed trait PeerKey case object PeerKey { case class InetPeerKey(host: InetAddress, nonce: Long) extends PeerKey case class SocketPeerKey(host: SocketAddress, nonce: Long) extends PeerKey def apply(ctx: ChannelHandlerContext, nodeNonce: Long): Option[PeerKey] = ctx.channel() match { case x: SocketChannel => Option(x.remoteAddress()).map(_.getAddress).map(PeerKey.InetPeerKey(_, nodeNonce)) case x: EmbeddedChannel => Option(x.remoteAddress()).map(PeerKey.SocketPeerKey(_, nodeNonce)) case x => throw new IllegalArgumentException(s"Can't get PeerKey from ${id(ctx)}, $x") } }