小编Mar*_*lte的帖子

在Eclipse中并行运行JUnit4-Tests

maven-surefire-plugin可以并行运行JUnit测试[1] - 是否可以并行运行Eclipse中的JUnit-Tests?

[1]例如

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.12</version>
    <configuration>
        <parallel>methods</parallel>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

"并行运行测试" https://maven.apache.org/plugins/maven-surefire-plugin/examples/junit.html

parallel-processing junit junit4

10
推荐指数
1
解决办法
5321
查看次数

Arquillian:添加beans.xml会导致"找不到ArquillianServletRunner"

我正在使用Arquillian [1]在Eclipse [2] -IDE中的嵌入式glassfish环境中测试我的J2EE-App.

package test.java;

import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.shrinkwrap.api.ArchivePaths;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.asset.EmptyAsset;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;

@RunWith(Arquillian.class)
public class ArquillianTest {

    @Deployment
    public static WebArchive createDeployment() {
        return ShrinkWrap.create(WebArchive.class).addAsWebInfResource(EmptyAsset.INSTANCE,
            ArchivePaths.create("beans.xml"));
    }

    @Test
    public void test() {
        Assert.assertNull(null);
    }
}
Run Code Online (Sandbox Code Playgroud)

测试执行正常,直到我添加显示的指令".addAsWebInfResource(...)".执行此操作时,抛出以下异常:

java.lang.IllegalArgumentException: ArquillianServletRunner not found. Could not determine ContextRoot from ProtocolMetadata, please contact DeployableContainer developer.
at org.jboss.arquillian.protocol.servlet.ServletUtil.determineBaseURI(ServletUtil.java:64)
at org.jboss.arquillian.protocol.servlet.ServletURIHandler.locateTestServlet(ServletURIHandler.java:60)
at org.jboss.arquillian.protocol.servlet.ServletMethodExecutor.invoke(ServletMethodExecutor.java:77)
at org.jboss.arquillian.container.test.impl.execution.RemoteTestExecuter.execute(RemoteTestExecuter.java:120)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at …
Run Code Online (Sandbox Code Playgroud)

integration-testing glassfish jboss-arquillian

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

使用Gradle构建AWS Java Lambda,使用shadowJar或buildZip进行存档上传?

描述

\n\n

我正在开发AWS Java Lambdas,使用Gradle作为我的构建工具。

\n\n

AWS 需要上传“独立”Java 存档(.jar、.zip...),其中必须包含所有内容、我的源代码、依赖项等。

\n\n

有用于此目的的 Gradle 插件影子,可以像这样包含它:

\n\n
import com.github.jengelman.gradle.plugins.shadow.transformers.Log4j2PluginsCacheFileTransformer\n\n...\n\nshadowJar { \n  archiveName = "${project.name}.jar"\n  mergeServiceFiles()\n  transform(Log4j2PluginsCacheFileTransformer)  \n}\nbuild.dependsOn shadowJar\n
Run Code Online (Sandbox Code Playgroud)\n\n

gradle build生成一个文件somefunction.jar,在我的例子中,它的大小为 9.5MB。

\n\n

AWS文档建议

\n\n
\n

将依赖项 .jar 文件放在单独的 /lib 目录中

\n
\n\n

有关如何执行此操作的具体说明,请参阅为 Java 函数创建 ZIP 部署包

\n\n
task buildZip(type: Zip) {\n  archiveName = "${project.name}.zip"\n  from compileJava\n  from processResources\n  into(\'lib\') {\n    from configurations.runtimeClasspath\n  }\n}\nbuild.dependsOn buildZip\n
Run Code Online (Sandbox Code Playgroud)\n\n

gradle build生成一个文件build/distributions/somefunction.zip …

gradle amazon-web-services aws-lambda

6
推荐指数
0
解决办法
2896
查看次数

Java的checkstyle,MagicNumberCheck

我正在使用checkstyle来获取有关我的源代码的报告.这个问题是关于MagicNumberCheck的.

Date/(org.joda.)DateTime在我的源代码中使用如下:

DateTime dateTime = new DateTime(2013, 2, 27, 23, 0):
dateTime.plusHours(57);
Run Code Online (Sandbox Code Playgroud)

如果幻数在Date或DateTime内,有没有办法抑制MagicNumberCheck通知

magic-numbers checkstyle

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

Java8中的lambda表达式是否执行多线程?

在Java8中,引入了lambda表达式.这个问题是关于何时执行并行lambda.

在Java8之前,Callable -classes是一次执行多个线程的一种方法.可以将Callables与Executor -classes一起使用来执行.假设我使用固定线程池,使用3作为活动处理任务的数量.我们假设我有8个任务.固定线程池将启动前三个任务,并在完成后,启动下一个任务,直到完成所有8个任务.

如果我将我的任务实现为Java8-lambdas,会发生什么?全部8个会立刻开始吗?还是顺序?还是以任何聪明的方式?

特别是,它们是否与调用者在同一个线程中运行(不使用Exeuctor)?就其本质而言,我猜lambdas可以很容易地在另一个线程中执行.

java lambda multithreading java-8

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

谷歌云,网址映射(负载均衡),减少更改生效时间

作为我的 Google Cloud 负载平衡的一部分,我正在使用URL maps

在工作设置中,我注意到对 URL 映射的更改需要很长时间才能生效。

例如,如果我将工作 URL 映射的主机值从“abc.example.com”更改为“def.example.com”,则 abc.example.com 将保持可用至少几分钟,而这需要至少几分钟,直到 def.example.com 可用(我没有使用任何缓存)。

有没有办法减少这个时间,直到传播变化?

load-balancing google-cloud-platform

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

Terraform:如果目标是 aws_sfn_state_machine,则 aws_api_gateway_integration 的 uri 参数是什么

我想使用 Terraforms api_gateway_integrationsfn_state_machine使用 API 网关创建一个步进函数 API

我现在必须在 api_gateway_integration 处填写uri 参数

我的 step 函数已创建,我可以引用 step 函数的 id(类似于arn:aws:states:*region*:*account*:stateMachine:*step-function-name*:stateMachine:*step-function-entry-point*)。

如果 AWS 阶跃函数是目标,谁能告诉我该方案或 uri 参数外观的示例?

resource "aws_api_gateway_integration" "endpoint_integration" {
  ...
  integration_http_method = "POST"
  type = "AWS"
  uri = <<<<< What to place here???
}
Run Code Online (Sandbox Code Playgroud)

amazon-web-services terraform aws-api-gateway aws-step-functions

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

如何动态地向p:dataTable添加新行而不验证表单?

我正在开发一个用JSF和PrimeFaces添加/编辑产品价格的表单.单个产品可以有多种价格,具体取决于体积,如图所示<p:dataTable>.

支持bean:

@ManagedBean
@ViewScoped
public class ProductBean {

  protected Product product;
  protected List<ProductPrice> productPrices;

  public void addNewPrice() {
    ProductPrice productPrice = new ProductPrice();
    productPrice.setPrice(new BigDecimal(0));
    this.productPrices.add(productPrice);
  }

  // ...
}
Run Code Online (Sandbox Code Playgroud)

Facelet页面:

<h:form id="productForm">
  <p:inputText value="#{productBean.product.name}" required="true">
    <f:ajax event="blur" render="nameMessage" />
  </p:inputText>
  <p:message id="nameMessage" for="name" />

  <p:dataTable id="pricesList" ...>
  </p:dataTable>
  <p:commandButton value="Add another price" update="pricesList" action="#{productBean.addNewPrice()}" />
  <p:commandButton value="Submit" action="#{productBean.submit}" />
</h:form>
Run Code Online (Sandbox Code Playgroud)

第一个按钮"添加另一个价格",它应该做什么:向"pricesList"添加一个新行.但仅当表单有效时(表单无效,如果未设置product-name).

我的问题是,我有两个commandButtons用于表单,但我不知道如何在没有commandButton的情况下获得我希望的函数.我尝试了很多方法:将"添加另一个价格"更改为<p:button>具有ajax功能的标准; 由于按钮的结果不起作用.我为这个按钮尝试了"type = button",但在这种情况下,没有任何反应.

有什么建议要实现我希望的功能吗?没有必要按钮解决我的问题.

forms jsf primefaces

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

如何在jacoco:report之后禁用jacoco-agent?

我有一个maven项目,使用"test"-phase以及"integration-test"-phase.在测试阶段,执行JUnit-Tests,在集成测试中有HTMLUnit-tests.我正在使用Jacoco [1] -maven-plugin来测量我的项目的JUnit测试所完成的代码覆盖.在进行集成测试时,我使用maven-embedded-glassfish-plugin启动glassfish服务器并在执行测试之前部署我的应用程序.

可悲但真实,我必须暂时禁用jacoco,因为它与"集成测试"相位不一致.

Jacoco的报告目标是/应该在准备包阶段进行,所以我认为它不应该影响集成测试阶段.但是当我启用jacoco:report时,由于内存大小问题,我的集成测试不再运行[2].

如何停止jacoco:报告影响集成测试阶段?


[1] http://www.eclemma.org/jacoco/

[2]

java.lang.instrument.IllegalClassFormatException: Error while instrumenting class com/steadystate/css/parser/SACParserCSS21TokenManager.
        at org.jacoco.agent.rt_6l8m50.CoverageTransformer.transform(CoverageTransformer.java:91)
        at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
        at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:424)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
        at com.steadystate.css.parser.SACParserCSS21.<init>(SACParserCSS21.java:2196)
        at com.steadystate.css.parser.SACParserCSS21.<init>(SACParserCSS21.java:23)
        at com.gargoylesoftware.htmlunit.javascript.host.css.CSSStyleSheet.parseCSS(CSSStyleSheet.java:530)
        at com.gargoylesoftware.htmlunit.javascript.host.css.CSSStyleSheet.<init>(CSSStyleSheet.java:152)
        at com.gargoylesoftware.htmlunit.javascript.host.html.HTMLStyleElement.getSheet(HTMLStyleElement.java:73)
        at com.gargoylesoftware.htmlunit.javascript.host.css.StyleSheetList.item(StyleSheetList.java:129)
        at com.gargoylesoftware.htmlunit.javascript.host.Window.getComputedStyle(Window.java:1591)
        at com.gargoylesoftware.htmlunit.javascript.host.html.HTMLElement.getCurrentStyle(HTMLElement.java:2465)
        at com.gargoylesoftware.htmlunit.html.DomNode.isDisplayed(DomNode.java:688)
        at com.gargoylesoftware.htmlunit.html.HtmlSerializer.isVisible(HtmlSerializer.java:377)
        at com.gargoylesoftware.htmlunit.html.HtmlSerializer.appendText(HtmlSerializer.java:371)
        at com.gargoylesoftware.htmlunit.html.HtmlSerializer.appendNode(HtmlSerializer.java:126)
        at com.gargoylesoftware.htmlunit.html.HtmlSerializer.appendChildren(HtmlSerializer.java:249)
        at com.gargoylesoftware.htmlunit.html.HtmlSerializer.appendNode(HtmlSerializer.java:198)
        at com.gargoylesoftware.htmlunit.html.HtmlSerializer.appendChildren(HtmlSerializer.java:249)
        at com.gargoylesoftware.htmlunit.html.HtmlSerializer.appendNode(HtmlSerializer.java:198)
        at …
Run Code Online (Sandbox Code Playgroud)

integration-testing maven jacoco

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

为什么我的来自 ant 的 docker 命令没有执行?

我有一个简单的 docker 命令

$ docker rm 1234
> Error response from daemon: No such container: 1234
Run Code Online (Sandbox Code Playgroud)

将其集成到 ant 中可以得到:

<target name="demo">
    <exec executable="docker">
        <arg value="rm 1234" />
    </exec>
</target>

> ant -v demo
> demo:
     [exec] Current OS is Linux
     [exec] Executing 'docker' with arguments:
     [exec] 'rm 1234'
     [exec] 
     [exec] The ' characters around the executable and arguments are
     [exec] not part of the command.
     [exec] docker: 'rm 1234' is not a docker command. See 'docker --help'.
     [exec] Result: 1 …
Run Code Online (Sandbox Code Playgroud)

ant docker

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

在 spring-boot 中,如何使用应用程序属性记录 MDC?

在我的spring-boot项目中,我使用 Logback-"Mapped Diagnostic Context" MDC来记录诊断上下文。

默认情况下不记录 MDC 数据(到控制台或文件)。

有没有办法仅使用应用程序属性将此 MDC 日志记录到输出日志中?

java logback mdc spring-boot

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

如何使用GCE Node.js客户端从实例模板创建新的GCE VM实例?

Google计算引擎中,我可以使用实例模板从该模板创建新的VM。使用GCE控制台可以正常工作,也可以使用API(URL参数“ sourceInstanceTemplate”)正常工作。

如何使用googleapis / nodejs-compute(Node.js GCE SDK)从实例模板创建新的GCE-VM ?

google-compute-engine google-api-nodejs-client

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

如何在 MicronautTest 中设置 @Value?

我使用Micronaut作为开发 AWS Java Lambda 的框架。

Micronaut 支持@Value来读取“值”。

@io.micronaut.context.annotation.Factory
public class SomeFactory {
  public SomeFactory(
    @io.micronaut.context.annotation.Value("${NameOfValue}") 
    final String value) {
    ...
  }
  ...
}
Run Code Online (Sandbox Code Playgroud)

测试,我想“NameOfValue”设置为特定值,我该怎么办呢?

@io.micronaut.test.annotation.MicronautTest
class SomeLambdaIT {

  @org.junit.jupiter.api.Test
  void aTest() {
    // When this test runs, "NameOfValue" shall be set to a specific value
  }
}
Run Code Online (Sandbox Code Playgroud)

java junit micronaut

0
推荐指数
1
解决办法
1519
查看次数