小编Muk*_*uki的帖子

Javafx 2 TreeView - 隐藏根项目

我使用本教程在JavaFX 2中创建了自己的TreeView .但是我想隐藏我的根节点.

它现在看起来如何:

  • 根元素
    • 家长1
      • 孩子1
      • 孩子2
    • 家长2
      • 孩子1

应该如何看待:

  • 家长1
    • 孩子1
    • 孩子2
  • 家长2
    • 孩子1

谢谢,Muki

java treeview hide javafx-2

18
推荐指数
1
解决办法
7328
查看次数

Scala:在模式匹配中混合特征和案例类

我想匹配一些案例类.如果我不知道它们,我想匹配类必须扩展的指定特征.这看起来像

trait Event  //root trait
trait Status extends Event  //special trait
trait UIEvent extends Event //special trait

case class Results extends Event   //concrete case class
case class Query extends Event     //concrete case class

case class Running extends Status  //concrete case class
case class Finished extends Status //concrete case class

case class Update extends UIEvent  //concrete case class
Run Code Online (Sandbox Code Playgroud)

我运行以下测试

  val events = List(Results, Query, Running, Finished, Update)
    events foreach {
      case Results => println("Got a Results")
      case Running => println("Got a …
Run Code Online (Sandbox Code Playgroud)

scala traits pattern-matching case-class

14
推荐指数
2
解决办法
1万
查看次数

使用maven程序集排除文件不起作用

我有非常简单的汇编描述符

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
<id>dist</id>
<formats>
    <format>jar</format>
</formats>
<!-- copied from jar-with-dependencies -->
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
    <dependencySet>
        <outputDirectory>/</outputDirectory>
        <useProjectArtifact>true</useProjectArtifact>
        <unpack>true</unpack>
        <scope>runtime</scope>
    </dependencySet>
</dependencySets>

<fileSets>
    <fileSet>
        <directory>${project.build.outputDirectory}</directory>
        <outputDirectory>/</outputDirectory>
        <useDefaultExcludes>true</useDefaultExcludes>
        <excludes>
            <exclude>**/dbAccess.*</exclude>
        </excludes>
    </fileSet>
</fileSets>
Run Code Online (Sandbox Code Playgroud)

这主要是从Maven Descriptor Refs复制的.但是我组装的jar仍然包含dbAccess.*文件.我尝试了各种配置进行排除.

  • 更改目录:.. build.directory}/classes
  • 更改了排除模式:dbAccess.*,**/*.properties,**/*

调试输出只是:

[DEBUG] The archive base directory is 'null'

[DEBUG] NOT reformatting any files in /media/truecrypt1/Development/workspace_java/baseanalysis/target/classes

[DEBUG] Adding file-set from directory: '/media/truecrypt1/Development/workspace_java/baseanalysis/target/classes'
assembly output directory is: ''

[DEBUG] Adding file-set in: /media/truecrypt1/Development/workspace_java/baseanalysis/target/classes to archive location: 
Run Code Online (Sandbox Code Playgroud)

如果我将它放在pom中的构建部分中,则正常的resouces过滤可以正常工作.

maven maven-assembly-plugin

9
推荐指数
1
解决办法
1万
查看次数

在 github actions 中使用特定的 docker 版本

我想使用 github actions 来测试sbt-native-packager docker 集成,它从 Dockerfile 构建 docker 镜像。

问题是 github actions 似乎使用旧的或自定义的 docker 版本。3.0.8被检测为版本。查看失败的集成测试运行,其中指出

[1]检测到的Docker版本DockerVersion(3,0,8,None)与DockerPermissionStrategy.MultiStage不兼容

我想使用最新的 docker 版本 19.x,它允许我们测试所有功能。理想情况下,我能够为不同的测试场景设置不同的 docker 版本,但如果有的话那就太好了。

更新

我的调试 docker github 操作的输出

docker version
Client:
 Version:           3.0.8
 API version:       1.40
 Go version:        go1.12.10
 Git commit:        2355349d
 Built:             Wed Oct 23 17:47:59 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          3.0.8
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.10
  Git commit:       adfac69
  Built:            Wed Oct 23 17:54:47 2019 …
Run Code Online (Sandbox Code Playgroud)

docker sbt-native-packager github-actions

8
推荐指数
1
解决办法
4742
查看次数

Scala未来序列和超时处理

如何将期货与超时结合起来有一些很好的提示.但是我很好奇如何用Future sequence sequenceOfFutures做到这一点

我的第一种方法看起来像这样

import scala.concurrent._
import scala.concurrent.duration._
import scala.concurrent.ExecutionContext.Implicits._

object FutureSequenceScala extends App {
  println("Creating futureList")

  val timeout = 2 seconds
  val futures = List(1000, 1500, 1200, 800, 2000) map { ms =>
    val f = future {
      Thread sleep ms
      ms toString
    }
    Future firstCompletedOf Seq(f, fallback(timeout))
  }

  println("Creating waitinglist")
  val waitingList = Future sequence futures
  println("Created")

  val results = Await result (waitingList, timeout * futures.size)
  println(results)

  def fallback(timeout: Duration) = future {
    Thread …
Run Code Online (Sandbox Code Playgroud)

timeout scala future

6
推荐指数
1
解决办法
9665
查看次数

使用Circe的AnyVal类型的通用推导

我想为值类派生Encoder实例.使用该semiauto机制,我无法派生嵌套类.

映像以下案例类结构

{
  case class Recipient(email: Recipient.Email, name: Recipient.Name) 

  object Recipient {
     case class Email(value: String) extends AnyVal
     case class Name(value: String) extends AnyVal
  }
}
Run Code Online (Sandbox Code Playgroud)

在一个菊石壳(也添加收件人案例类)

load.ivy("io.circe" %% "circe-core" % "0.6.1")
load.ivy("io.circe" %% "circe-generic" % "0.6.1")

import io.circe._
import io.circe.generic.semiauto._
import io.circe.syntax._ 
Run Code Online (Sandbox Code Playgroud)

现在Email为预期的结果导出解码器

Recipient.Email("ab@cd.com").asJson(deriveEncoder[Recipient.Email]) 
Json = {
  "value" : "ab@cd.com"
}
Run Code Online (Sandbox Code Playgroud)

派生Encoder[Recipient]不起作用

deriveDecoder[Recipient]

could not find Lazy implicit value of type 
io.circe.generic.decoding.DerivedDecoder[$sess.cmd5.Recipient]
Run Code Online (Sandbox Code Playgroud)

我想做的是派生一个Encoder[Recipient.Email]返回包装类型.如果我明确地派生出编解码器,这个小部分就可以工作了.

import shapeless.Unwrapped

implicit def encodeAnyVal[W <: AnyVal, U]( …
Run Code Online (Sandbox Code Playgroud)

json scala circe

6
推荐指数
1
解决办法
793
查看次数

Scalaz树到JSON

我目前正在尝试使用Tree该类从数据库查询构建树结构.之后我想将它转换为json对象(使用playframework api).

Tree该类的一些示例或更多文档将是非常棒的.我无法得到我的头drawdrawTree方法,这可能做一个类似的事情.

val tree = ("Root", 100).node(
        ("Category1", 30).leaf,
        ("Category2", 20).node(
          ("Sub1", 15).leaf,
          ("Sub2", 3).leaf,
          ("Sub3", 2).leaf),
        ("Category3", 10).leaf,
        ("Category4", 30).node(
          ("Sub1", 20).leaf,
          ("Sub2", 5).leaf))
Run Code Online (Sandbox Code Playgroud)

这应该会产生这样的json树

{
  "name" : "Root",
  "value" : 100,
  "children" : [
     { 
        "name" : "Category1",
        "value": 30
     },
     {
        "name": "Category2",
        "value": 20,
        "children" : [
             {
                "name" : "Sub1",
               "value" : 15"
             } ....
        ]

  ]
Run Code Online (Sandbox Code Playgroud)

tree json scala scalaz scalaz7

5
推荐指数
1
解决办法
658
查看次数

Akka Http - 主机级客户端API Source.queue模式

我们开始实现Source.queue[HttpRequest]文档中提到的模式:http://doc.akka.io/docs/akka-http/current/scala/http/client-side/host-level.html#examples

这是文档中的(简化)示例

val poolClientFlow = Http()
  .cachedHostConnectionPool[Promise[HttpResponse]]("akka.io")

val queue =
  Source.queue[(HttpRequest, Promise[HttpResponse])](
     QueueSize, OverflowStrategy.dropNew
  )
    .via(poolClientFlow)
    .toMat(Sink.foreach({
      case ((Success(resp), p)) => p.success(resp)
      case ((Failure(e), p))    => p.failure(e)
    }))(Keep.left)
    .run()

def queueRequest(request: HttpRequest): Future[HttpResponse] = {
  val responsePromise = Promise[HttpResponse]()
  queue.offer(request -> responsePromise).flatMap {
    case QueueOfferResult.Enqueued    => responsePromise.future
    case QueueOfferResult.Dropped     => Future.failed(new RuntimeException("Queue overflowed. Try again later."))
    case QueueOfferResult.Failure(ex) => Future.failed(ex)
    case QueueOfferResult.QueueClosed => Future.failed(new RuntimeException("Queue was closed (pool shut down) while running the request. Try …
Run Code Online (Sandbox Code Playgroud)

scala akka-stream akka-http

5
推荐指数
1
解决办法
616
查看次数

OSGi声明性服务 - 在bind方法中获取ServiceReference

我正在使用Eclipse 3.7与Eclipse Gemini JPA/DBAccess.我实现了一个引用EntityManagerBuilderFactory的声明式ServiceComponent.bind方法如下所示:

public void bindEntityManagerFactoryBuilder(EntityManagerFactoryBuilder emfBuilder) {
    emfFactoryBuilders.add(emfBuilder);
}
Run Code Online (Sandbox Code Playgroud)

但是我需要ServiceReference来获取此服务的属性,例如:

    ServiceReference ref = ...
    String unitName = (String)ref.getProperty(EntityManagerFactoryBuilder.JPA_UNIT_NAME);
Run Code Online (Sandbox Code Playgroud)

我是否必须在ServiceRegistry中搜索此ServiceReference,还是有更优雅的方法?

欢呼,Muki

eclipse osgi bind declarative-services service-reference

4
推荐指数
1
解决办法
1650
查看次数

为React webpack bundle预加载动画

我有一个单页webapp,大约300Kb.它与webpack捆绑在一起并使用React/Redux.

在页面加载之前,如何预先放置一个小的加载微调器?我可以成像

  • 将style和css放入静态index.html
  • 使用像krux/postscribe这样的异步加载器

preload reactjs webpack

4
推荐指数
1
解决办法
1710
查看次数