import com.google.inject.AbstractModule;
import com.google.inject.Guice;
import com.google.inject.Inject;
import com.google.inject.Injector;
public class GuiceDemo
{
public static void main(String[] args)
{
new GuiceDemo().run();
}
public void run()
{
Injector injector = Guice.createInjector(new EmptyModule());
DemoInstance demoInstance = injector.getInstance(DemoInstance.class);
assert(demoInstance.demoUnbound == null);
}
public static class EmptyModule extends AbstractModule
{
@Override
protected void configure()
{
}
}
public static class DemoInstance
{
public final DemoUnbound demoUnbound;
@Inject
public DemoInstance(DemoUnbound demoUnbound)
{
this.demoUnbound = demoUnbound;
}
}
public static class DemoUnbound
{
}
}
Run Code Online (Sandbox Code Playgroud)
我可以阻止Guice向DemoInstance的构造函数提供DemoUnbound实例吗?
本质上,我正在寻找一种在完全显式的绑定模式下运行Guice的方法,其中注入未绑定的类是一个错误. …
我正在将包从使用GHC.IO.Handle进行网络转换为Network.Connection.Connection。痛点之一是Data.ByteString.Lazy.ByteString更改为Data.ByteString.Char8.ByteString 的位置数量。
一个示例函数是:
import qualified Data.ByteString.Lazy as BL
-- gets the size of the frame
-- the bytestring should be at least 7 bytes long, otherwise this method will fail
peekFrameSize :: BL.ByteString -> PayloadSize
peekFrameSize = runGet f
where
f = do
void $ getWord8 -- 1 byte
void $ (get :: Get ChannelID) -- 2 bytes
get :: Get PayloadSize -- 4 bytes
Run Code Online (Sandbox Code Playgroud)
如何将Data.ByteString.Char8.ByteString转换为Data.ByteString.Lazy.ByteString以在Data.Binary.Get中使用?
我正在逐步停止对 Web 应用程序的 TLS 1.0 和 TLS 1.1 的支持。
我想根据他们与我的服务器建立的连接来检测这将影响的用户。
我正在运行 Tomcat 7 和 Java 8。
如何检测 HttpServletRequest 的 TLS 版本?
我正在将 SonarQube 集成到 Jenkins 中。我们目前使用浅克隆,因为考虑到历史上有大量二进制文件,我们的存储库完全克隆的速度很慢。SonarQube 需要运行git blame,这显然不适用于浅克隆。我需要一个解决方法,但我无法更改全局 Jenkins 配置(这会减慢所有构建速度)。
情况:
checkout scm无需参数即可工作。
sh 'git fetch --unshallow收到错误,因为它没有凭据。
我尝试过这个怪物来自定义结帐 scm 的参数:
checkout scm: [
$class: 'GitSCM', userRemoteConfigs: [
[url: env.repoURL, credentialsId: 'GitHubEnterprise']
], extensions: [
[$class: 'CheckoutOption', timeout: 60],
[$class: 'CloneOption', noTags: true,
reference: '/var/lib/gitchcache/reference.git',
shallow: false, timeout: 60]
], branches: [
[name: branch]
]
], remoteName: "origin", poll: false, clearWorkspace: true
Run Code Online (Sandbox Code Playgroud)
但我收到这个错误:
> git rev-parse PR-42^{commit} # timeout=10
Couldn't find any revision to build. Verify the repository …Run Code Online (Sandbox Code Playgroud) 我想记录 WebView 控制台事件。他们有时会发现所使用的底层浏览器中的怪癖,并可以帮助排除故障。
可以使用 Sun 实现类与 WebView 控制台交互:
import
//...
WebConsoleListener.setDefaultListener((webView, message, lineNumber, sourceId) ->
LOGGER.info(() -> "WebConsoleListener: " + message + "[" + webEngine.getLocation() + ":" + lineNumber + "]")
);
Run Code Online (Sandbox Code Playgroud)
但是,com.sun.javafx.webkit.WebConsoleListener是一个实现类,而不是 JavaFX 公共 API 的一部分。
用于获取 JavaFX WebView 控制台事件的公共 API 是什么?
或者,获取这些事件进行故障排除的正确方法是什么?
我创建了一个简单的模块:
.
??? inputs.tf
??? main.tf
Run Code Online (Sandbox Code Playgroud)
输入变量声明于inputs.tf:
variable "workers" {
type = number
description = "Amount of spark workers"
}
variable "values_values_path" {}
Run Code Online (Sandbox Code Playgroud)
main.tf 是:
resource "helm_release" "spark" {
name = "spark"
repository = "https://charts.bitnami.com/bitnami"
chart = "spark"
version = "1.2.21"
namespace = ...
set {
name = "worker.replicaCount"
value = var.workers
}
values = [
"${file("${var.custom_values_path}")}"
]
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我正在尝试部署 helm 版本。我想设置一个参数化为的自定义值文件custom_values_path:
.
??? main.tf
??? provider.tf
??? spark-values.yaml
Run Code Online (Sandbox Code Playgroud)
我main.tf这里是:
module "spark" {
source …Run Code Online (Sandbox Code Playgroud) 对于我,这不能用Scala 2.7.7.final或2.8.0.final 编译:
new FileInputStream("test.txt") getChannel transferTo(
0, Long.MaxValue, new FileOutputStream("test-copy.txt") getChannel)
Run Code Online (Sandbox Code Playgroud)
这对我来说使用Scala 2.7.7.final和2.8.0.final进行编译:
new FileInputStream("test.txt") getChannel() transferTo(
0, Long.MaxValue, new FileOutputStream("test-copy.txt") getChannel)
Run Code Online (Sandbox Code Playgroud)
为什么我需要做getChannel()而不仅仅是getChannel在这里?
我有一个包含八个模块和大约 500 个 Java KLines 的 IntelliJ 项目。我在依赖于所有其他模块的模块中添加了一个 Scala Facet。
在 IntelliJ IDEA 9.0.2 中编译HelloWorld.scala时:
object HelloWorld {
def main(args: Array[String]) {
println("Hello World!")
}
}
Run Code Online (Sandbox Code Playgroud)
我在消息面板中得到以下输出:
Information:Compilation completed with 32 errors and 0 warnings
Information:32 errors
Information:0 warnings
Error:Scalac internal error: class java.lang.reflect.InvocationTargetException [sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method), sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39), sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25), java.lang.reflect.Method.invoke(Method.java:597), org.jetbrains.plugins.scala.compiler.rt.ScalacRunner.main(ScalacRunner.java:74)][scala.tools.nsc.typechecker.Typers$class.newTyper(Typers.scala:68), scala.tools.nsc.Global$analyzer$.newTyper(Global.scala:295), scala.tools.nsc.typechecker.Namers$Namer.<init>(Namers.scala:68), scala.tools.nsc.typechecker.Namers$NormalNamer.<init>(Namers.scala:43), scala.tools.nsc.typechecker.Namers$class.newNamer(Namers.scala:44), scala.tools.nsc.Global$analyzer$.newNamer(Global.scala:295), scala.tools.nsc.typechecker.Namers$Namer$$anonfun$enterSyms$1.apply(Namers.scala:258), scala.tools.nsc.typechecker.Namers$Namer$$anonfun$enterSyms$1.apply(Namers.scala:256), scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61), scala.collection.immutable.List.foreach(List.scala:45), scala.tools.nsc.typechecker.Namers$Namer.enterSyms(Namers.scala:256), scala.tools.nsc.typechecker.Namers$Namer.enterSym(Namers.scala:347), scala.tools.nsc.typechecker.Analyzer$namerFactory$$anon$1.apply(Analyzer.scala:39), scala.tools.nsc.Global$GlobalPhase$$anonfun$applyPhase$1.apply(Global.scala:276), scala.tools.nsc.Global$GlobalPhase$$anonfun$applyPhase$1.apply(Global.scala:276), scala.tools.nsc.reporters.Reporter.withSource(Reporter.scala:48), scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:276), scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:252), scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:252), scala.collection.Iterator$class.foreach(Iterator.scala:631), scala.collection.mutable.ListBuffer$$anon$1.foreach(ListBuffer.scala:304), scala.tools.nsc.Global$GlobalPhase.run(Global.scala:252), scala.tools.nsc.Global$Run.compileSources(Global.scala:733), scala.tools.nsc.Global$Run.compile(Global.scala:813), scala.tools.nsc.Main$.process(Main.scala:108), scala.tools.nsc.Main$.main(Main.scala:122), scala.tools.nsc.Main.main(Main.scala), sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method), …Run Code Online (Sandbox Code Playgroud) .tf我的根模块中有两个文件:
第一个被称为api-gateway.tf在 AWS 中提供 API 网关:
resource "aws_apigatewayv2_api" "apiGateway" {
name = "some_Name"
protocol_type = "HTTP"
}
output "api_gateway_endpoint" {
value = "${aws_apigatewayv2_api.apiGateway.api_endpoint}"
}
output "api_gateway_endpoint_id" {
value = "${aws_apigatewayv2_api.apiGateway.id}"
}
Run Code Online (Sandbox Code Playgroud)
我有另一个.tf名为route53.tf创建Route53记录的文件:
resource "aws_route53_record" "www" {
zone_id = "xxxxx"
name = "someurl.com"
type = "A"
alias {
name = "${output.api_gateway_endpoint}"
zone_id = "${output.api_gateway_endpoint_id}"
evaluate_target_health = false
}
}
Run Code Online (Sandbox Code Playgroud)
我需要将 apigateway的api_endpoint和id传递到 route53,但我不知道如何?
我尝试使用output和引用 route53 资源中的返回这两个值,但是它不起作用。它给了我一个undeclared …
我有以下目录/文件结构:
.
??? main.tf
??? modules
? ??? Resource_group
? ??? main.tf
? ??? vars.tf
Run Code Online (Sandbox Code Playgroud)
配置文件
./main.tf
module "app-rg" {
source = "./modules/Resource_Group"
}
Run Code Online (Sandbox Code Playgroud)
./modules/resource_group/main.tf
provider "azurerm" {
version = "=2.11.0"
features { }
}
resource "azurerm_resource_group" "rg" {
name = "${lookup(var.resource_group, var.env)}"
location = "${lookup(var.location, var.env)}"
}
Run Code Online (Sandbox Code Playgroud)
./modules/resource_group/vars.tf
variable "env" {
description = "env : dev or prod"
}
variable "resource_group" {
type = "map"
default = {
dev = "rg-dev"
prod = "rg-prod"
}
}
variable "location" { …Run Code Online (Sandbox Code Playgroud)