Java 8 LocalDateTime有一种ofEpochSecond方法.不幸的是,没有这样的方法ZonedDateTime.现在,我有一个Epoch值和一个明确的ZoneId给定.我怎样才能获得ZonedDateTime这些?
我有一个很大的Ansible playbook,在运行它时构建了Docker镜像.我使用越来越多的数字作为标签来版本化它们.目前,我必须在每个hosts:部分指定这一点.
我知道有全局变量但是通过搜索"ansible""全局变量"我发现它们,它们必须在剧本之外定义.是否有可能为剧本定义全局变量?
我目前正在使用Spring Boot,Hibernate和Spring-HATEOAS构建一个带REST接口的应用程序.我的数据模型定义为带@Entity注释的bean,我使用Spring的功能自动设置Hibernate存储库(创建扩展接口PagingAndSortingRepository).我的应用程序是完全注解驱动的,即无我有,web.xml但一切配置与Spring的注解一样@Configuration,@Bean等等,并开始从我的应用程序main的帮助下方法SpringApplication.run(MyApp.class, args);
这工作正常,但使用这种方法,a RepositoryRestHandlerMapping和EndpointHandlerMapping创建.这些创造了我既不需要也不想要的一堆资源.我实现自己的控制器,因为他们需要做的不仅仅是标准逻辑.
如何防止此默认行为并禁用这些映射?
spring spring-mvc spring-data-jpa spring-hateoas spring-boot
Settings.scala我的大型SBT项目中有一个单独的文件,其中包含以下内容:
lazy val commonSettings = Seq(
// ... lots of settings
publishTo :=
Some("Sonatype Nexus Repository Manager" at
"http://my.company.nexus/content/repositories/releases/"),
credentials += Credentials(Path.userHome / ".ivy2" / ".credentials"),
publishMavenStyle := true,
crossScalaVersions := Seq("2.10.6"),
// ... lots of other settings
)
Run Code Online (Sandbox Code Playgroud)
现在我的所有项目build.sbt都定义如下:
lazy val aProject =
project.in(file("somewhere/aProject")).
settings(commonSettings).
settings(
// project specific settings
)
Run Code Online (Sandbox Code Playgroud)
当我现在这样做
sbt "+ publish"
Run Code Online (Sandbox Code Playgroud)
我看到我的所有工件都已发布,当我查看我的Nexus时,他们就在那里,我也可以将它们用作依赖项等,因此发布工作,但我最后得到以下内容:
java.lang.RuntimeException: Repository for publishing is not specified.
at scala.sys.package$.error(package.scala:27)
at sbt.Classpaths$$anonfun$getPublishTo$1.apply(Defaults.scala:1470)
at sbt.Classpaths$$anonfun$getPublishTo$1.apply(Defaults.scala:1470)
at scala.Option.getOrElse(Option.scala:120)
at sbt.Classpaths$.getPublishTo(Defaults.scala:1470)
at sbt.Classpaths$$anonfun$59.apply(Defaults.scala:1150)
at …Run Code Online (Sandbox Code Playgroud) 我正在使用ScalaTest运行一些测试,这些测试依赖于连接来测试服务器是否存在.我目前创建了自己的Spec,类似于:
abstract class ServerDependingSpec extends FlatSpec with Matchers {
def serverIsAvailable: Boolean = {
// Check if the server is available
}
}
Run Code Online (Sandbox Code Playgroud)
当此方法返回时,是否可以忽略(但不会失败)测试false?
目前我是以"hackish"方式做到的:
"Something" should "do something" in {
if(serverIsAvailable) {
// my test code
}
}
Run Code Online (Sandbox Code Playgroud)
但我想要类似的东西
whenServerAvailable "Something" should "do something" in {
// test code
}
Run Code Online (Sandbox Code Playgroud)
要么
"Something" should "do something" whenServerAvailable {
// test code
}
Run Code Online (Sandbox Code Playgroud)
我想我应该定义我的自定义标签,但我只能参考in或者的源代码,ignore我不明白我应该如何插入我的自定义实现.
我该怎么做到这一点?
突然,我的YARN集群已停止工作,我提交的所有内容都以"退出代码1"失败.我想跟踪该问题,但是一旦应用程序失败,YARN就会删除日志文件.为了保留这些日志文件,我必须为YARN调整什么配置设置?
在纯JavaScript中,您可以:
angular.module('mymodule', ['ionic'])
.config(function($someParam1, $someParam2) {
// do something with the parameters
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用Scala.js.我尝试了以下三次尝试,所有这些都失败了:
尝试1:使用scalajs-angular
Angular.module("mymodule", Seq("ionic")).config(MyConf)
Run Code Online (Sandbox Code Playgroud)
问题:MyConf必须扩展Config,我没有找到任何可以传递参数的位置.
尝试2:使用scalajs-angulate
Angular.module("mymodule", Seq("ionic")).config((a: Any, b: Any) => {...})
Run Code Online (Sandbox Code Playgroud)
这应该工作,但我得到一个编译器错误:not found: value js
尝试3:使用动态类型的API
global.angular.module("mymodule", Seq("ionic")).config((a: Any, b: Any) => {...})
Run Code Online (Sandbox Code Playgroud)
编译,但{}内的内容不会被调用.
我现在能想到的唯一方法是编写一个基于javascript的"Bridge",它可以执行以下操作:
angular.module('mymodule', ['ionic']).config(function($a, $b) {
com.example.myapp.MymoduleConfigurator.config($a, $b);
}
Run Code Online (Sandbox Code Playgroud)
这里com.example.myapp.MymoduleConfigurator是用Scala编写.
这是唯一的方法还是有更好的方法?
我在AWS TimeStream中创建了一个数据库表,其内存保留期为7天:
但是,当我尝试上传 3 天前的数据时,它将被拒绝。似乎只接受超过 24 小时的数据:
2020-10-26T13:43:33.244+01:00: Rejected a record: The record timestamp is outside the time range [2020-10-25T12:38:33.242Z, 2020-10-26T13:18:33.242Z) of the memory store.
Run Code Online (Sandbox Code Playgroud)
这是我所期望的,还是我缺少配置选项?
在测试调用中返回一个第三方函数Option[Any].我知道如果这个函数返回一个Map,它就是一个Map[String, Any].在这种情况下,我想检查各个地图元素.
theFunction(...) match {
case Some(m: Map[String, Any]) =>
m("some key") match {
case some_condition => ... (my check)
}
case _ => fail("Invalid type")
}
Run Code Online (Sandbox Code Playgroud)
但是编译器警告说这case Some(m: Map[String, Any])是未经检查的.当我使用时Map[_,_],编译器会在我检查的位置挽救m("some key").
如何抑制此警告或更好:如何正确检查?我能想到的唯一方法就是这样
theFunction(...) match {
case Some(m: Map[_,_]) =>
val m1: Map[String, Any] = m.toSeq.map(t => t._1.asInstanceOf[String] -> t._2).toMap
m1("some key") match {
case some_condition => ... (my check)
}
}
Run Code Online (Sandbox Code Playgroud)
但在我看来,这看起来很丑陋,并引入了不必要的地图转换为Seq,反之亦然.
假设我有以下界面:
public interface ISomething {
default int doStuff() {
return 2 * getValue();
}
int getValue();
}
Run Code Online (Sandbox Code Playgroud)
当我现在模仿这个界面时:
@Mock
private ISomething _something;
@Before
public void setup() {
doCallRealMethod().when(_something).doStuff();
}
Run Code Online (Sandbox Code Playgroud)
并尝试测试doStuff()方法,如下所示:
@Test
public void testDoStuff() {
when(_something.getValue()).thenReturn(42);
assertThat("doStuff() returns 84", _something.doStuff(), is(84));
}
Run Code Online (Sandbox Code Playgroud)
我希望测试成功,但我得到:
org.mockito.exceptions.base.MockitoException:
Cannot call real method on java interface. Interface does not have any implementation!
Calling real methods is only possible when mocking concrete classes.
Run Code Online (Sandbox Code Playgroud)
我尝试ISomething使用这样的抽象类进行子类化:
public abstract class Something implements ISomething {
}
Run Code Online (Sandbox Code Playgroud)
像上面那样嘲笑这个类.通过这种方法,我得到了同样的结果.
Mockito不支持调用默认实现吗?
scala ×4
angularjs ×1
ansible ×1
epoch ×1
hadoop ×1
hadoop-yarn ×1
ionic ×1
java ×1
java-8 ×1
javascript ×1
mockito ×1
nexus ×1
sbt ×1
scala.js ×1
scalatest ×1
spring ×1
spring-boot ×1
spring-mvc ×1