scala.collection.JavaConversions Scala Examples
The following examples show how to use scala.collection.JavaConversions.
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: VelocityUtils.scala From InteractiveGraph-neo4j with BSD 2-Clause "Simplified" License | 5 votes |
package org.grapheco.server.util import java.io.{File, FileOutputStream, StringWriter} import java.util.Properties import cn.pidb.blob.Blob import cn.pidb.engine.blob.{BlobIO, InlineBlob, RemoteBlob} import org.apache.velocity.app.VelocityEngine import org.apache.velocity.tools.ToolManager import org.apache.velocity.tools.config.DefaultKey import org.neo4j.values.storable.{BlobValue, ValueWriter} import org.springframework.util.ClassUtils import scala.collection.JavaConversions import java.io.FileOutputStream import java.io.IOException object VelocityUtils { val pro = new Properties(); val toolManager = new ToolManager(); toolManager.configure("tools.xml"); pro.setProperty("input.encoding", "UTF-8"); pro.setProperty("output.encoding", "UTF-8"); val ve = new VelocityEngine(pro); val props = new Properties() props.put("runtime.log.logsystem.class", "org.apache.velocity.runtime.log.SimpleLog4JLogSystem") props.put("runtime.log.logsystem.log4j.category", "velocity") props.put("runtime.log.logsystem.log4j.logger", "velocity") ve.init(props) def parse(expr: String, context: Map[String, Any]): Any = { val vc = toolManager.createContext(); val writer = new StringWriter(); context.foreach(kv => vc.put(kv._1, //is a scala Map? if (kv._2.isInstanceOf[Map[_, _]]) { JavaConversions.mapAsJavaMap(kv._2.asInstanceOf[Map[_, _]]) } else { kv._2 })); try { if (expr.startsWith("=")) { val expr1 = expr.substring(1); ve.evaluate(vc, writer, "", s"#set($$__VAR=$expr1)"); var value = vc.get("__VAR"); //if is a blob if(value.isInstanceOf[Blob]){ //get blob var result:String = "" try { val data = value.asInstanceOf[Blob].toBytes() val path = ClassUtils.getDefaultClassLoader.getResource("").getPath.replace("/WEB-INF/classes","") + "static/" val tool = new FileSystemTool() result = tool.filesave(data,path, System.currentTimeMillis.toString+".jpg") } catch{ case e:Throwable => print(e.toString) } //TODO url return "http://localhost:9999/graphserver/static/"+result } return value } else { ve.evaluate(vc, writer, "", expr); writer.getBuffer.toString.trim } } catch { case e: Throwable => throw new WrongExpressionException(expr, e); } } } class WrongExpressionException(msg: String, e: Throwable) extends RuntimeException(msg, e) { } @DefaultKey("fileTool") class FileSystemTool { def exists(path: String) = new File(path).exists(); @throws[IOException] def filesave(file: Array[Byte], filePath: String, fileName: String): String = { //目标目录 val targetfile = new File(filePath) if (!targetfile.exists) targetfile.mkdirs //二进制流写入 val out = new FileOutputStream(filePath + fileName) out.write(file) out.flush() out.close() return fileName } }
Example 2
Source File: file_watcher.scala From libisabelle with Apache License 2.0 | 5 votes |
package isabelle import java.io.{File => JFile} import java.nio.file.FileSystems import java.nio.file.{WatchKey, WatchEvent, Path => JPath} import java.nio.file.StandardWatchEventKinds.{ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY} import scala.collection.JavaConversions class File_Watcher private[File_Watcher] // dummy template { def register(dir: JFile) { } def register_parent(file: JFile) { } def deregister(dir: JFile) { } def purge(retain: Set[JFile]) { } def shutdown() { } } object File_Watcher { val none: File_Watcher = new File_Watcher { override def toString: String = "File_Watcher.none" } def apply(handle: Set[JFile] => Unit, delay: => Time = Time.seconds(0.5)): File_Watcher = if (Platform.is_windows) none else new Impl(handle, delay) override def shutdown() { watcher_thread.interrupt watcher_thread.join delay_changed.revoke } } }
Example 3
Source File: file_watcher.scala From libisabelle with Apache License 2.0 | 5 votes |
package isabelle import java.io.{File => JFile} import java.nio.file.FileSystems import java.nio.file.{WatchKey, WatchEvent, Path => JPath} import java.nio.file.StandardWatchEventKinds.{ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY} import scala.collection.JavaConversions class File_Watcher private[File_Watcher] // dummy template { def register(dir: JFile) { } def register_parent(file: JFile) { } def deregister(dir: JFile) { } def purge(retain: Set[JFile]) { } def shutdown() { } } object File_Watcher { val none: File_Watcher = new File_Watcher { override def toString: String = "File_Watcher.none" } def apply(handle: Set[JFile] => Unit, delay: => Time = Time.seconds(0.5)): File_Watcher = if (Platform.is_windows) none else new Impl(handle, delay) override def shutdown() { watcher_thread.interrupt watcher_thread.join delay_changed.revoke } } }
Example 4
Source File: file_watcher.scala From libisabelle with Apache License 2.0 | 5 votes |
package isabelle import java.io.{File => JFile} import java.nio.file.FileSystems import java.nio.file.{WatchKey, WatchEvent, Path => JPath} import java.nio.file.StandardWatchEventKinds.{ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY} import scala.collection.JavaConversions class File_Watcher private[File_Watcher] // dummy template { def register(dir: JFile) { } def register_parent(file: JFile) { } def deregister(dir: JFile) { } def purge(retain: Set[JFile]) { } def shutdown() { } } object File_Watcher { val none: File_Watcher = new File_Watcher { override def toString: String = "File_Watcher.none" } def apply(handle: Set[JFile] => Unit, delay: => Time = Time.seconds(0.5)): File_Watcher = if (Platform.is_windows) none else new Impl(handle, delay) override def shutdown() { watcher_thread.interrupt watcher_thread.join delay_changed.revoke } } }
Example 5
Source File: SolrTableFactory.scala From solr-sql with BSD 3-Clause "New" or "Revised" License | 5 votes |
package org.apache.calcite.adapter.solr import scala.annotation.migration import scala.collection.JavaConversions import scala.collection.mutable.ArrayBuffer import org.apache.calcite.rel.`type`.RelDataType import org.apache.calcite.schema.SchemaPlus import org.apache.calcite.schema.TableFactory import org.apache.calcite.sql.`type`.SqlTypeName import org.apache.log4j.Logger import org.apache.solr.client.solrj.SolrClient import org.apache.solr.client.solrj.impl.CloudSolrClient import org.apache.solr.client.solrj.impl.HttpSolrClient trait SolrClientFactory { def getClient(): SolrClient; } class SolrTableFactory extends TableFactory[SolrTable] { val logger = Logger.getLogger(this.getClass); override def create(parentSchema: SchemaPlus, name: String, operands: java.util.Map[String, Object], rowTypw: RelDataType): SolrTable = { val args = JavaConversions.mapAsScalaMap(operands).toMap.map(x ⇒ (x._1, x._2.toString())); //columns="title string, url string, content_length int" SolrTableConf.argumentsRequired(args, SolrTableConf.COULMNS); val columns: Map[String, SqlTypeName] = SolrTableConf.parseColumns(args, SolrTableConf.COULMNS); logger.debug(s"defined columns: $columns"); //columnMapping="title->solr_field_title, url->solr_field_url" val definedColumnMapping = SolrTableConf.parseMap(args, SolrTableConf.COLUMN_MAPPING); logger.debug(s"defined column mapping: $definedColumnMapping"); val filledColumnMapping = columns.map(x ⇒ (x._1, definedColumnMapping.getOrElse(x._1, x._1))); //options="pageSize:20,solrZkHosts=10.0.71.14:2181,10.0.71.17:2181,10.0.71.38:2181" val options = args; //a singleton of solr client val solrClientFactory = new SolrClientFactory { val clients = ArrayBuffer[SolrClient](); override def getClient = { if (clients.isEmpty) { if (options.keySet.contains(SolrTableConf.SOLR_ZK_HOSTS)) { val solrZkHosts = options(SolrTableConf.SOLR_ZK_HOSTS); logger.debug(s"connecting to solr cloud via zookeeper servers: $solrZkHosts"); val csc = new CloudSolrClient(solrZkHosts); csc.setDefaultCollection(options("solrCollection")); clients += csc; } else { SolrTableConf.argumentsRequired(args, SolrTableConf.SOLR_ZK_HOSTS, SolrTableConf.SOLR_SERVER_URL); val solrServerURL = options(SolrTableConf.SOLR_SERVER_URL); logger.debug(s"connecting to solr server: $solrServerURL"); clients += new HttpSolrClient(solrServerURL); } } clients(0); } } new SolrTable(solrClientFactory, columns, filledColumnMapping, options); } }
Example 6
Source File: TimeStampedHashSet.scala From spark1.52 with Apache License 2.0 | 5 votes |
package org.apache.spark.util import java.util.concurrent.ConcurrentHashMap import scala.collection.JavaConversions import scala.collection.mutable.Set private[spark] class TimeStampedHashSet[A] extends Set[A] { val internalMap = new ConcurrentHashMap[A, Long]() def contains(key: A): Boolean = { internalMap.contains(key) } def iterator: Iterator[A] = { val jIterator = internalMap.entrySet().iterator() JavaConversions.asScalaIterator(jIterator).map(_.getKey) } override def + (elem: A): Set[A] = { val newSet = new TimeStampedHashSet[A] newSet ++= this newSet += elem newSet } override def - (elem: A): Set[A] = { val newSet = new TimeStampedHashSet[A] newSet ++= this newSet -= elem newSet } //this.type表示当前对象(this)的类型,this指代当前的对象 override def += (key: A): this.type = { internalMap.put(key, currentTime) this } //this.type表示当前对象(this)的类型,this指代当前的对象 override def -= (key: A): this.type = { internalMap.remove(key) this } override def empty: Set[A] = new TimeStampedHashSet[A]() override def size(): Int = internalMap.size() override def foreach[U](f: (A) => U): Unit = { val iterator = internalMap.entrySet().iterator() while(iterator.hasNext) { f(iterator.next.getKey) } } def clearOldValues(threshTime: Long) { val iterator = internalMap.entrySet().iterator() while(iterator.hasNext) { val entry = iterator.next() if (entry.getValue < threshTime) { iterator.remove() } } } private def currentTime: Long = System.currentTimeMillis() }
Example 7
Source File: TimeStampedHashSet.scala From iolap with Apache License 2.0 | 5 votes |
package org.apache.spark.util import java.util.concurrent.ConcurrentHashMap import scala.collection.JavaConversions import scala.collection.mutable.Set private[spark] class TimeStampedHashSet[A] extends Set[A] { val internalMap = new ConcurrentHashMap[A, Long]() def contains(key: A): Boolean = { internalMap.contains(key) } def iterator: Iterator[A] = { val jIterator = internalMap.entrySet().iterator() JavaConversions.asScalaIterator(jIterator).map(_.getKey) } override def + (elem: A): Set[A] = { val newSet = new TimeStampedHashSet[A] newSet ++= this newSet += elem newSet } override def - (elem: A): Set[A] = { val newSet = new TimeStampedHashSet[A] newSet ++= this newSet -= elem newSet } override def += (key: A): this.type = { internalMap.put(key, currentTime) this } override def -= (key: A): this.type = { internalMap.remove(key) this } override def empty: Set[A] = new TimeStampedHashSet[A]() override def size(): Int = internalMap.size() override def foreach[U](f: (A) => U): Unit = { val iterator = internalMap.entrySet().iterator() while(iterator.hasNext) { f(iterator.next.getKey) } } def clearOldValues(threshTime: Long) { val iterator = internalMap.entrySet().iterator() while(iterator.hasNext) { val entry = iterator.next() if (entry.getValue < threshTime) { iterator.remove() } } } private def currentTime: Long = System.currentTimeMillis() }
Example 8
Source File: DocSvr.scala From Raphtory with Apache License 2.0 | 5 votes |
package com.raphtory.core.clustersetup import akka.actor.ActorSystem import akka.actor.Address import akka.actor.ExtendedActorSystem import akka.cluster.Cluster import akka.cluster.Member import akka.event.LoggingAdapter import akka.management.cluster.bootstrap.ClusterBootstrap import akka.management.javadsl.AkkaManagement import com.raphtory.core.clustersetup.util.ConfigUtils._ import com.raphtory.core.utils.Utils import com.typesafe.config.Config import com.typesafe.config.ConfigFactory import com.typesafe.config.ConfigValueFactory import scala.collection.JavaConversions import scala.collection.JavaConversions._ trait DocSvr { def seedLoc: String implicit val system: ActorSystem val docker = System.getenv().getOrDefault("DOCKER", "false").trim.toBoolean val clusterSystemName: String = Utils.clusterSystemName val ssn: String = java.util.UUID.randomUUID.toString def printConfigInfo(config: Config, system: ActorSystem): Unit = { val log: LoggingAdapter = system.log val systemConfig: SystemConfig = config.parse() val bindAddress: SocketAddress = systemConfig.bindAddress val tcpAddress: SocketAddress = systemConfig.tcpAddress log.info(s"Created ActorSystem with ID: $ssn") log.info(s"Binding ActorSystem internally to address ${bindAddress.host}:${bindAddress.port}") log.info(s"Binding ActorSystem externally to host ${tcpAddress.host}:${tcpAddress.port}") log.info(s"Registering the following seeds to ActorSystem: ${systemConfig.seeds}") log.info(s"Registering the following roles to ActorSystem: ${systemConfig.roles}") // FIXME: This is bit unorthodox ... val akkaSystemUrl: Address = system.asInstanceOf[ExtendedActorSystem].provider.getDefaultAddress log.info(s"ActorSystem successfully initialised at the following Akka URL: $akkaSystemUrl") } }
Example 9
Source File: SonarRunnerPlugin.scala From sbt-sonarrunner-plugin with MIT License | 5 votes |
package com.aol.sbt.sonar import java.io.{File, FileOutputStream} import java.util.Properties import org.sonar.runner.Main import sbt.Keys._ import sbt._ import scala.collection.JavaConversions ; object SonarRunnerPlugin extends AutoPlugin { object autoImport { val sonarProperties = settingKey[Map[String, String]]("SonarRunner configuration properties. See http://docs.codehaus.org/display/SONAR/Analysis+Parameters.") val sonar = taskKey[Unit]("Runs Sonar agent") val generateSonarConfiguration = taskKey[File]("Generates Sonar configuration") val sonarRunnerOptions = settingKey[Seq[String]]("Extra options for sonar runner") } import com.aol.sbt.sonar.SonarRunnerPlugin.autoImport._ override def projectSettings: Seq[Setting[_]] = Seq( generateSonarConfiguration := makeConfiguration(target.value + "/sonar-project.properties", sonarProperties.value), sonarProperties := Map( "sonar.projectName" -> name.value, "sonar.projectVersion" -> version.value, "sonar.projectKey" -> "%s:%s".format(organization.value, name.value), "sonar.binaries" -> filePathsToString(Seq((classDirectory in Compile).value)), "sonar.sources" -> filePathsToString((unmanagedSourceDirectories in Compile).value), "sonar.tests" -> filePathsToString((unmanagedSourceDirectories in Test).value), "sonar.projectBaseDir" -> file(".").absolutePath, "sonar.sourceEncoding" -> "UTF-8", "sonar.host.url" -> "http://localhost:9000", "sonar.jdbc.url" -> "jdbc:mysql://localhost:3306/sonar", "sonar.jdbc.username" -> "sonar", "sonar.jdbc.password" -> "sonar" ), sonarRunnerOptions := Seq.empty, sonar := { lazy val logger: TaskStreams = streams.value runSonarAgent(generateSonarConfiguration.value, logger, sonarRunnerOptions.value) } ) def runSonarAgent(configFile: File, logger: TaskStreams, sonarRunnerOptions: Seq[String]) = { logger.log.info("**********************************") logger.log.info("Publishing reports to SonarQube...") logger.log.info("**********************************") Main.main(Array[String]("-D", "project.settings=" + configFile.getCanonicalPath, "-D", "project.home=" + file(".").absolutePath) ++ sonarRunnerOptions) } private[this] def filePathsToString(files: Seq[File]) = files.filter(_.exists).map(_.getAbsolutePath).toSet.mkString(",") private[this] def makeConfiguration(configPath: String, props: Map[String, String]): File = { val p = new Properties() p.putAll(JavaConversions.mapAsJavaMap(props)) p.store(new FileOutputStream(configPath), null) file(configPath) } }
Example 10
Source File: ConnectionUtil.scala From hazelcast-spark with Apache License 2.0 | 5 votes |
package com.hazelcast.spark.connector.util import com.hazelcast.client.HazelcastClient import com.hazelcast.client.config.{ClientConfig, XmlClientConfigBuilder} import com.hazelcast.core.HazelcastInstance import com.hazelcast.spark.connector.conf.SerializableConf import scala.collection.{JavaConversions, mutable} object ConnectionUtil { private[connector] val instances = mutable.Map[String, HazelcastInstance]() def getHazelcastConnection(member: String, rddId: Int, conf: SerializableConf): HazelcastInstance = { def createClientInstance: HazelcastInstance = { val client: HazelcastInstance = HazelcastClient.newHazelcastClient(createClientConfig(conf, member)) instances.put(member + "#" + rddId, client) client } this.synchronized { val maybeInstance: Option[HazelcastInstance] = instances.get(member + "#" + rddId) if (maybeInstance.isEmpty) { createClientInstance } else { val instance: HazelcastInstance = maybeInstance.get if (instance.getLifecycleService.isRunning) { instance } else { createClientInstance } } } } def closeHazelcastConnection(member: String, rddId: Int): Unit = { this.synchronized { val maybeInstance: Option[HazelcastInstance] = instances.get(member + "#" + rddId) if (maybeInstance.isDefined) { val instance: HazelcastInstance = maybeInstance.get if (instance.getLifecycleService.isRunning) { instance.getLifecycleService.shutdown() } instances.remove(member + "#" + rddId) } } } def closeAll(rddIds: Seq[Int]): Unit = { this.synchronized { instances.keys.foreach({ key => { val instanceRddId: String = key.split("#")(1) if (rddIds.contains(instanceRddId.toInt)) { val instance: HazelcastInstance = instances.get(key).get if (instance.getLifecycleService.isRunning) { instance.shutdown() } instances.remove(key) } } }) } } private def createClientConfig(conf: SerializableConf, member: String): ClientConfig = { var config: ClientConfig = null if (conf.xmlPath != null) { config = new XmlClientConfigBuilder(conf.xmlPath).build() } else { config = new ClientConfig config.getGroupConfig.setName(conf.groupName) config.getGroupConfig.setPassword(conf.groupPass) config.getNetworkConfig.setAddresses(JavaConversions.seqAsJavaList(member.split(","))) } config } }
Example 11
Source File: TimeStampedHashSet.scala From SparkCore with Apache License 2.0 | 5 votes |
package org.apache.spark.util import java.util.concurrent.ConcurrentHashMap import scala.collection.JavaConversions import scala.collection.mutable.Set private[spark] class TimeStampedHashSet[A] extends Set[A] { val internalMap = new ConcurrentHashMap[A, Long]() def contains(key: A): Boolean = { internalMap.contains(key) } def iterator: Iterator[A] = { val jIterator = internalMap.entrySet().iterator() JavaConversions.asScalaIterator(jIterator).map(_.getKey) } override def + (elem: A): Set[A] = { val newSet = new TimeStampedHashSet[A] newSet ++= this newSet += elem newSet } override def - (elem: A): Set[A] = { val newSet = new TimeStampedHashSet[A] newSet ++= this newSet -= elem newSet } override def += (key: A): this.type = { internalMap.put(key, currentTime) this } override def -= (key: A): this.type = { internalMap.remove(key) this } override def empty: Set[A] = new TimeStampedHashSet[A]() override def size(): Int = internalMap.size() override def foreach[U](f: (A) => U): Unit = { val iterator = internalMap.entrySet().iterator() while(iterator.hasNext) { f(iterator.next.getKey) } } def clearOldValues(threshTime: Long) { val iterator = internalMap.entrySet().iterator() while(iterator.hasNext) { val entry = iterator.next() if (entry.getValue < threshTime) { iterator.remove() } } } private def currentTime: Long = System.currentTimeMillis() }
Example 12
Source File: RequestUtils.scala From sparta with Apache License 2.0 | 5 votes |
package com.stratio.sparta.serving.core.utils import akka.event.slf4j.SLF4JLogging import com.stratio.sparta.serving.core.constants.AppConstant import com.stratio.sparta.serving.core.curator.CuratorFactoryHolder import com.stratio.sparta.serving.core.exception.ServingCoreException import com.stratio.sparta.serving.core.models.submit.SubmitRequest import com.stratio.sparta.serving.core.models.{ErrorModel, SpartaSerializer} import org.apache.curator.framework.CuratorFramework import org.json4s.jackson.Serialization._ import scala.collection.JavaConversions import scala.util.Try trait RequestUtils extends SpartaSerializer with SLF4JLogging { val curatorFramework: CuratorFramework def createRequest(request: SubmitRequest): Try[SubmitRequest] = { val requestPath = s"${AppConstant.ExecutionsPath}/${request.id}" if (CuratorFactoryHolder.existsPath(requestPath)) { updateRequest(request) } else { Try { log.info(s"Creating execution with id ${request.id}") curatorFramework.create.creatingParentsIfNeeded.forPath(requestPath, write(request).getBytes) request } } } def updateRequest(request: SubmitRequest): Try[SubmitRequest] = { Try { val requestPath = s"${AppConstant.ExecutionsPath}/${request.id}" if (CuratorFactoryHolder.existsPath(requestPath)) { curatorFramework.setData().forPath(requestPath, write(request).getBytes) request } else createRequest(request).getOrElse(throw new ServingCoreException( ErrorModel.toString(new ErrorModel(ErrorModel.CodeNotExistsPolicyWithId, s"Is not possible to create execution with id ${request.id}.")))) } } def findAllRequests(): Try[Seq[SubmitRequest]] = Try { val requestPath = s"${AppConstant.ExecutionsPath}" if (CuratorFactoryHolder.existsPath(requestPath)) { val children = curatorFramework.getChildren.forPath(requestPath) val policiesRequest = JavaConversions.asScalaBuffer(children).toList.map(element => read[SubmitRequest](new String(curatorFramework.getData.forPath(s"${AppConstant.ExecutionsPath}/$element"))) ) policiesRequest } else Seq.empty[SubmitRequest] } def findRequestById(id: String): Try[SubmitRequest] = Try { val requestPath = s"${AppConstant.ExecutionsPath}/$id" if (CuratorFactoryHolder.existsPath(requestPath)) read[SubmitRequest](new String(curatorFramework.getData.forPath(requestPath))) else throw new ServingCoreException( ErrorModel.toString(new ErrorModel(ErrorModel.CodeNotExistsPolicyWithId, s"No execution context with id $id"))) } def deleteAllRequests(): Try[_] = Try { val requestPath = s"${AppConstant.ExecutionsPath}" if (CuratorFactoryHolder.existsPath(requestPath)) { val children = curatorFramework.getChildren.forPath(requestPath) val policiesRequest = JavaConversions.asScalaBuffer(children).toList.map(element => read[SubmitRequest](new String(curatorFramework.getData.forPath(s"${AppConstant.ExecutionsPath}/$element"))) ) policiesRequest.foreach(request => deleteRequest(request.id)) } } def deleteRequest(id: String): Try[_] = Try { val requestPath = s"${AppConstant.ExecutionsPath}/$id" if (CuratorFactoryHolder.existsPath(requestPath)) { log.info(s"Deleting execution with id $id") curatorFramework.delete().forPath(requestPath) } else throw new ServingCoreException(ErrorModel.toString( new ErrorModel(ErrorModel.CodeNotExistsPolicyWithId, s"No execution with id $id"))) } }
Example 13
Source File: HttpStreamServer.scala From spark-http-stream with BSD 2-Clause "Simplified" License | 5 votes |
package org.apache.spark.sql.execution.streaming.http import org.apache.spark.internal.Logging import org.eclipse.jetty.server.Server import org.eclipse.jetty.servlet.ServletContextHandler import javax.servlet.ServletConfig import javax.servlet.http.HttpServlet import javax.servlet.http.HttpServletRequest import javax.servlet.http.HttpServletResponse import org.eclipse.jetty.servlet.ServletHolder import scala.collection.JavaConversions class MissingRequiredRequestParameterException(paramName: String) extends RuntimeException(s"missing required request parameter: $paramName") { } class UnsupportedActionException(action: String) extends RuntimeException(s"unsupported action in HTTP request header: $action") { } object HttpStreamServer { def start(httpServletPath: String, httpPort: Int) = { val server = new HttpStreamServer(httpServletPath, httpPort); server.start; server; } } def withActionsHandler[T <: ActionsHandler](actionsHandler: T): T = { this.actionsHandler = actionsHandler; actionsHandler; } def withBuffer(): MemoryBufferAsReceiver = { withActionsHandler(new MemoryBufferAsReceiver()); } def withKafka(bootstrapServers: String): KafkaAsReceiver = { withActionsHandler(new KafkaAsReceiver(bootstrapServers)); } def stop() = { httpStreamServlet.destroy(); if (server != null) server.stop(); } }
Example 14
Source File: DWCArgumentsParser.scala From Linkis with Apache License 2.0 | 5 votes |
package com.webank.wedatasphere.linkis.common.conf import org.apache.commons.lang.StringUtils import scala.collection.{JavaConversions, mutable} import scala.collection.mutable.ArrayBuffer object DWCArgumentsParser { protected val DWC_CONF = "--dwc-conf" protected val SPRING_CONF = "--spring-conf" private var dwcOptionMap = Map.empty[String, String] private[linkis] def setDWCOptionMap(dwcOptionMap: Map[String, String]) = this.dwcOptionMap = dwcOptionMap def getDWCOptionMap = dwcOptionMap def parse(args: Array[String]): DWCArgumentsParser = { val keyValueRegex = "([^=]+)=(.+)".r var i = 0 val optionParser = new DWCArgumentsParser while(i < args.length) { args(i) match { case DWC_CONF | SPRING_CONF => args(i + 1) match { case keyValueRegex(key, value) => optionParser.setConf(args(i), key, value) i += 1 case _ => throw new IllegalArgumentException("illegal commond line, format: --conf key=value.") } case _ => throw new IllegalArgumentException(s"illegal commond line, ${args(i)} cannot recognize.") } i += 1 } optionParser.validate() optionParser } def formatToArray(optionParser: DWCArgumentsParser): Array[String] = { val options = ArrayBuffer[String]() def write(confMap: Map[String, String], optionType: String): Unit = confMap.foreach { case (key, value) => if (StringUtils.isNotEmpty(key) && StringUtils.isNotEmpty(value)) { options += optionType options += (key + "=" + value) } } write(optionParser.getDWCConfMap, DWC_CONF) write(optionParser.getSpringConfMap, SPRING_CONF) options.toArray } def formatToArray(springOptionMap: Map[String, String], dwcOptionMap: Map[String, String]): Array[String] = formatToArray(new DWCArgumentsParser().setSpringConf(springOptionMap).setDWCConf(dwcOptionMap)) def format(optionParser: DWCArgumentsParser): String = formatToArray(optionParser).mkString(" ") def format(springOptionMap: Map[String, String], dwcOptionMap: Map[String, String]): String = formatToArray(springOptionMap, dwcOptionMap).mkString(" ") def formatSpringOptions(springOptionMap: Map[String, String]): Array[String] = { val options = ArrayBuffer[String]() springOptionMap.foreach { case (key, value) => if (StringUtils.isNotEmpty(key) && StringUtils.isNotEmpty(value)) { options += ("--" + key + "=" + value) } } options.toArray } } class DWCArgumentsParser { import DWCArgumentsParser._ private val dwcOptionMap = new mutable.HashMap[String, String]() private val springOptionMap = new mutable.HashMap[String, String]() def getSpringConfMap = springOptionMap.toMap def getSpringConfs = JavaConversions.mapAsJavaMap(springOptionMap) def getDWCConfMap = dwcOptionMap.toMap def setConf(optionType: String, key: String, value: String) = { optionType match { case DWC_CONF => dwcOptionMap += key -> value case SPRING_CONF => springOptionMap += key -> value } this } def setSpringConf(optionMap: Map[String, String]): DWCArgumentsParser = { if(optionMap != null) this.springOptionMap ++= optionMap this } def setDWCConf(optionMap: Map[String, String]): DWCArgumentsParser = { if(optionMap != null) this.dwcOptionMap ++= optionMap this } def validate() = {} }
Example 15
Source File: package.scala From Linkis with Apache License 2.0 | 5 votes |
package com.webank.wedatasphere.linkis import java.util import javax.servlet.http.HttpServletRequest import com.webank.wedatasphere.linkis.common.exception.{ErrorException, ExceptionManager, FatalException, WarnException} import com.webank.wedatasphere.linkis.common.utils.Utils import com.webank.wedatasphere.linkis.server.exception.{BDPServerErrorException, NonLoginException} import com.webank.wedatasphere.linkis.server.security.SecurityFilter import org.apache.commons.lang.StringUtils import org.apache.commons.lang.exception.ExceptionUtils import org.slf4j.Logger import scala.collection.{JavaConversions, mutable} package object server { val EXCEPTION_MSG = "errorMsg" type JMap[K, V] = java.util.HashMap[K, V] implicit def getUser(req: HttpServletRequest): String = SecurityFilter.getLoginUsername(req) def validateFailed(message: String): Message = Message(status = 2).setMessage(message) def validate[T](json: util.Map[String, T], keys: String*): Unit = { keys.foreach(k => if(!json.contains(k) || json.get(k) == null || StringUtils.isEmpty(json.get(k).toString)) throw new BDPServerErrorException(11001, s"Verification failed, $k cannot be empty!(验证失败,$k 不能为空!)")) } def error(message: String): Message = Message.error(message) implicit def ok(msg: String): Message = Message.ok(msg) implicit def error(t: Throwable): Message = Message.error(t) implicit def error(e: (String, Throwable)): Message = Message.error(e) implicit def error(msg: String, t: Throwable): Message = Message.error(msg -> t) // def tryCatch[T](tryOp: => T)(catchOp: Throwable => T): T = Utils.tryCatch(tryOp)(catchOp) // def tryCatch(tryOp: => Message)(catchOp: Throwable => Message): Message = Utils.tryCatch(tryOp){ // case nonLogin: NonLoginException => Message.noLogin(msg = nonLogin.getMessage) // case t => catchOp(t) // } def catchMsg(tryOp: => Message)(msg: String)(implicit log: Logger): Message = Utils.tryCatch(tryOp){ case fatal: FatalException => log.error("Fatal Error, system exit...", fatal) System.exit(fatal.getErrCode) Message.error("Fatal Error, system exit...") case nonLogin: NonLoginException => val message = Message.noLogin(nonLogin.getMessage) message.data(EXCEPTION_MSG, nonLogin.toMap) message case error: ErrorException => val cause = error.getCause val errorMsg = cause match { case t: ErrorException => s"error code(错误码): ${t.getErrCode}, error message(错误信息): ${t.getDesc}." case _ => s"error code(错误码): ${error.getErrCode}, error message(错误信息): ${error.getDesc}." } log.error(errorMsg, error) val message = Message.error(errorMsg) message.data(EXCEPTION_MSG, error.toMap) message case warn: WarnException => val warnMsg = s"Warning code(警告码): ${warn.getErrCode}, Warning message(警告信息): ${warn.getDesc}." log.warn(warnMsg, warn) val message = Message.warn(warnMsg) message.data(EXCEPTION_MSG, warn.toMap) message case t => log.error(msg, t) val errorMsg = ExceptionUtils.getRootCauseMessage(t) val message = if(StringUtils.isNotEmpty(errorMsg) && "operation failed(操作失败)" != msg) error(msg + "!the reason(原因):" + errorMsg) else if(StringUtils.isNotEmpty(errorMsg)) error(errorMsg) else error(msg) message.data(EXCEPTION_MSG, ExceptionManager.unknownException(message.getMessage)) } def catchIt(tryOp: => Message)(implicit log: Logger): Message = catchMsg(tryOp)("operation failed(操作失败)s") implicit def toScalaBuffer[T](list: util.List[T]): mutable.Buffer[T] = JavaConversions.asScalaBuffer(list) implicit def toScalaMap[K, V](map: util.Map[K, V]): mutable.Map[K, V] = JavaConversions.mapAsScalaMap(map) implicit def toJavaList[T](list: mutable.Buffer[T]): util.List[T] = { val arrayList = new util.ArrayList[T] list.foreach(arrayList.add) arrayList } implicit def toJavaMap[K, V](map: mutable.Map[K, V]): JMap[K, V] = { val hashMap = new util.HashMap[K, V]() map.foreach(m => hashMap.put(m._1, m._2)) hashMap } implicit def toJavaMap[K, V](map: Map[K, V]): JMap[K, V] = { val hashMap = new util.HashMap[K, V]() map.foreach(m => hashMap.put(m._1, m._2)) hashMap } implicit def asString(mapWithKey: (util.Map[String, Object], String)): String = mapWithKey._1.get(mapWithKey._2).asInstanceOf[String] implicit def getString(mapWithKey: (util.Map[String, String], String)): String = mapWithKey._1.get(mapWithKey._2) implicit def asInt(map: util.Map[String, Object], key: String): Int = map.get(key).asInstanceOf[Int] implicit def asBoolean(mapWithKey: (util.Map[String, Object], String)): Boolean = mapWithKey._1.get(mapWithKey._2).asInstanceOf[Boolean] }
Example 16
Source File: RPCProduct.scala From Linkis with Apache License 2.0 | 5 votes |
package com.webank.wedatasphere.linkis.rpc.transform import java.lang.reflect.{ParameterizedType, Type} import java.util import com.webank.wedatasphere.linkis.DataWorkCloudApplication import com.webank.wedatasphere.linkis.common.utils.Logging import com.webank.wedatasphere.linkis.rpc.exception.DWCURIException import com.webank.wedatasphere.linkis.server.{BDPJettyServerHelper, EXCEPTION_MSG, Message} import org.apache.commons.lang.ClassUtils import org.json4s.jackson.Serialization import org.json4s.{DefaultFormats, Formats, Serializer} import scala.collection.JavaConversions private[linkis] trait RPCProduct { def toMessage(t: Any): Message def notFound(): Message def ok(): Message } private[linkis] object RPCProduct extends Logging { private[rpc] val IS_SCALA_CLASS = "rpc_is_scala_class" private[rpc] val CLASS_VALUE = "rpc_object_class" private[rpc] val OBJECT_VALUE = "rpc_object_value" private[rpc] implicit var formats: Formats = DefaultFormats + JavaCollectionSerializer + JavaMapSerializer private var serializerClasses: List[Class[_]] = List.empty private val rpcProduct: RPCProduct = new RPCProduct { private val rpcFormats = DataWorkCloudApplication.getApplicationContext.getBeansOfType(classOf[RPCFormats]) if(rpcFormats != null && !rpcFormats.isEmpty) { val serializers = JavaConversions.mapAsScalaMap(rpcFormats).map(_._2.getSerializers).toArray.flatMap(_.iterator) setFormats(serializers) } override def toMessage(t: Any): Message = { if(t == null) throw new DWCURIException(10001, "The transmitted bean is Null.(传输的bean为Null.)") val message = Message.ok("RPC Message.") if(isScalaClass(t)){ message.data(IS_SCALA_CLASS, "true") message.data(OBJECT_VALUE, Serialization.write(t.asInstanceOf[AnyRef])) } else { message.data(IS_SCALA_CLASS, "false") message.data(OBJECT_VALUE, BDPJettyServerHelper.gson.toJson(t)) } message.setMethod("/rpc/message") message.data(CLASS_VALUE, t.getClass.getName) } override def notFound(): Message = { val message = Message.error("RPC Message.") message.setMethod("/rpc/message") message.data(EXCEPTION_MSG, new DWCURIException(10000, "The service does not exist for the available Receiver.(服务不存在可用的Receiver.)").toMap) } override def ok(): Message = { val message = Message.ok("RPC Message.") message.setMethod("/rpc/message") message } } private[rpc] def setFormats(serializer: Array[Serializer[_]]): Unit ={ this.formats = (serializer :+ JavaCollectionSerializer :+ JavaMapSerializer).foldLeft(DefaultFormats.asInstanceOf[Formats])(_ + _) serializerClasses = formats.customSerializers.map(s => getActualTypeClass(s.getClass.getGenericSuperclass)) .filter(_ != null) ++: List(classOf[util.List[_]], classOf[util.Map[_, _]]) info("RPC Serializers: " + this.formats.customSerializers.map(_.getClass.getSimpleName) + ", serializerClasses: " + "" + serializerClasses) } private def getActualTypeClass(classType: Type): Class[_] = classType match { case p: ParameterizedType => val params = p.getActualTypeArguments if(params == null || params.isEmpty) null else getActualTypeClass(params(0)) case c: Class[_] => c case _ => null } private[rpc] def isScalaClass(obj: Any): Boolean = (obj.isInstanceOf[Product] && obj.isInstanceOf[Serializable]) || serializerClasses.exists(ClassUtils.isAssignable(obj.getClass, _)) || obj.getClass.getName.startsWith("scala.") private[rpc] def getSerializableScalaClass(clazz: Class[_]): Class[_] = serializerClasses.find(ClassUtils.isAssignable(clazz, _)).getOrElse(clazz) def getRPCProduct: RPCProduct = rpcProduct }
Example 17
Source File: GetAction.scala From Linkis with Apache License 2.0 | 5 votes |
abstract class GetAction extends HttpAction { private val queryParams: util.Map[String, Any] = new util.HashMap[String, Any] def setParameter(key: String, value: Any): Unit = this.queryParams.put(key, value) def getParameters: util.Map[String, Any] = queryParams override def getRequestBody: String = { val queryString = new StringBuilder JavaConversions.mapAsScalaMap(queryParams).foreach { case (k, v) => queryString.append(URLEncoder.encode(k, Configuration.BDP_ENCODING.getValue)).append("=") .append(URLEncoder.encode(v.toString, Configuration.BDP_ENCODING.getValue)).append("&") } if(!queryParams.isEmpty) queryString.deleteCharAt(queryString.length - 1) queryString.toString } }