我正在开发一个带有许多someInterface的项目 - someInterfaceImpl-pairs.前几天我得到了这个想法(可能是通过阅读一些客观的c代码来启发),将默认实现包含在内部类中.现在一些同事(都有比我更多的java经验)看到了这个想法 - 反馈是震惊和惊讶之间("这有用吗?").
我google了一下,但没有发现这个"模式"(个人我喜欢它)有用的证据: pdf-paper 和 关于代码风格的常见问题
您如何看待 - 特别是在"默认"实现紧密耦合到接口的情况下.
更新 我发现这个:Java接口 - 实现对
(见接受的答案)
是否有gwt.xml的文档,包含所有可接受值的设置列表?在我的情况下,我在调试/开发环境中关闭了css混淆.但对于生产环境,我想打开它.我使用"gwt.enableDebugId"也是如此.在.gwt.xml中是真的,在-production.gwt.xml中是假的 - 这很好用.同样我想要"CssResource.style".
我到目前为止唯一发现的是值"obf",但似乎值也产生了"人类可读的类" ,例如这里.我尝试了这个值,但名字保持相当.
澄清要求:这会使css混淆:
<set-configuration-property name="CssResource.style" value="pretty"/>
Run Code Online (Sandbox Code Playgroud)
但是如何打开它?
我想使用Commons-DBCP 2.0.在官方网站上我发现:
升级到2.x的用户应该知道Java包名称已经改变,以及Maven坐标,因为DBCP 2.x与DBCP 1.x不是二进制兼容的.
但是新的坐标是什么?正如预期的那样在这里只提供1.x的.
我想对在java中使用bean配置的单个路由进行单元测试.我在骆驼的行动中读到(第6.1.4章)如何做到这一点:
protected RouteBuilder createRouteBuilder() throws Exception {
return new myRoute();
}
Run Code Online (Sandbox Code Playgroud)
但在我的情况下,溃败需要注册一些bean.我知道如何在独立应用程序中注册bean:请参阅此处 但是如何在"CamelTestSupport"中注册bean?有没有办法在没有注册表的情况下使用bean?可能通过注入它们(所有bean都没有arg构造函数)?我正在使用Guice,在我的测试中我使用的是Jukito(Guice + Mockito).
我只是试图让一个使用RecipentList的骆驼路线工作.但首先是一个问题:两者之间有什么区别
在我的情况下,我希望我的一些路线并行处理.目前所有人都使用多个
在for循环中添加"to":
RouteDefinition someRoute = createSomeRout(fromPart, id); \\ method
for (String pcrfTarget : cepConfig.pcrfCepTargets()) {
log.info("...to " + pcrfTarget);
someRoute.to(pcrfTarget + "?mode=" + Mode.insertAddId.name());
}
Run Code Online (Sandbox Code Playgroud)
是否有直接的方法来使用recipientList并在最后添加parallelProcessing?我也尝试创建一个简单的例子,但它失败了(书籍和互联网中唯一的例子就是使用/操作标题:-().这是我的例子(错误):
public class Experiments extends CamelTestSupport {
private static final String MOCK2 = "mock:mock2";
private static final String MOCK1 = "mock:mock1";
private static String PCRF_TEST_FILES;
public Experiments() throws URISyntaxException {
PCRF_TEST_FILES = ClassLoader.getSystemResource("pcrf-files").toURI().toString();
}
@Test
public void test() throws InterruptedException {
MockEndpoint mockIn = getMockEndpoint(MOCK1);
MockEndpoint mockOut = getMockEndpoint(MOCK2);
mockIn.expectedMessageCount(5);
mockOut.expectedMessageCount(5);
// …
Run Code Online (Sandbox Code Playgroud) 目前似乎无法编辑提交问题。
我在我的 apache 骆驼应用程序中使用 log4j2。在骆驼文件名可以这样配置"?fileName=${date:now:yyyyMMdd-HHmmss}ID.${id}.gz"
如果我将日志级别设置为调试camel 尝试记录它正在执行的操作但log4j 似乎尝试使用“date:”查找/解释字符串并抛出异常:
2014-11-24 11:29:19,218 ERROR Invalid date format: "now:yyyyMMdd-HHmmss", using default java.lang.IllegalArgumentExcepti
on: Illegal pattern character 'n'
at java.text.SimpleDateFormat.compile(Unknown Source)
at java.text.SimpleDateFormat.initialize(Unknown Source)
at java.text.SimpleDateFormat.<init>(Unknown Source)
at java.text.SimpleDateFormat.<init>(Unknown Source)
at org.apache.logging.log4j.core.lookup.DateLookup.formatDate(DateLookup.java:60)
at org.apache.logging.log4j.core.lookup.DateLookup.lookup(DateLookup.java:53)
at org.apache.logging.log4j.core.lookup.Interpolator.lookup(Interpolator.java:144)
at org.apache.logging.log4j.core.lookup.StrSubstitutor.resolveVariable(StrSubstitutor.java:1008)
at org.apache.logging.log4j.core.lookup.StrSubstitutor.substitute(StrSubstitutor.java:926)
at org.apache.logging.log4j.core.lookup.StrSubstitutor.substitute(StrSubstitutor.java:816)
at org.apache.logging.log4j.core.lookup.StrSubstitutor.replace(StrSubstitutor.java:385)
at org.apache.logging.log4j.core.pattern.MessagePatternConverter.format(MessagePatternConverter.java:71)
at org.apache.logging.log4j.core.pattern.PatternFormatter.format(PatternFormatter.java:36)
at org.apache.logging.log4j.core.layout.PatternLayout.toSerializable(PatternLayout.java:189)
at org.apache.logging.log4j.core.layout.PatternLayout.toSerializable(PatternLayout.java:53)
at org.apache.logging.log4j.core.layout.AbstractStringLayout.toByteArray(AbstractStringLayout.java:52)
at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:
104)
at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:97)
at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:428)
at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:407)
at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:365)
at org.apache.logging.log4j.core.Logger.logMessage(Logger.java:112)
at org.apache.logging.log4j.spi.AbstractLogger.logMessage(AbstractLogger.java:1347)
at …
Run Code Online (Sandbox Code Playgroud) 我已经创建了一个jax-rs rest api并且放心地进行了测试.所有测试都是绿色的.现在我正在尝试为它创建一个html/js前端.
我的问题是我不知道我的json对象应该如何被我的其他api接受.感谢restassured/jax-rs我从未处理过请求字符串.我填写对象,我得到对象,(联合国)编组(json)是不可见的.
有什么方法可以看到(调试)由rest-assured/java创建的字符串并通过"wire"发送?
Camel自动为处理器和其他东西(processor1..processor25)生成id.有没有办法设置这个名字?我们需要通过jmx识别某些处理器以获取遥测数据.
我想要设置的名称是通过属性给出的 - 它们在开始时间是已知的.所以我需要在定义路由时或在处理器内设置它们(名称是通过处理器构造函数给出的,字符串也用于处理).
更新
示例:对于路由,from("some:where").process(myProcessor).to(no:where)
我需要设置myProcessor的id.我需要"ExchangesTotal"和某些处理器的其他东西
我需要一个Java DSL解决方案.
我为 nodejs 项目创建了一个 Dockerfile。它包含一个带有许多脚本的 package.json。
"scripts": {
"start": "npm run",
"server": "cd server && npm start",
"generator": "cd generator && npm start",
...
},
Run Code Online (Sandbox Code Playgroud)
我需要运行server
,并genberator
在我的码头工人的形象。如何实现这一目标?
我试过:
CMD ls;npm run server ; npm run generator
这不会找到包 json 因为 shellform 似乎在/bin/sh -c
.
CMD ["npm","run","server"]
也无法正常工作并且缺少第二个命令
第一次尝试中的 ls 向我展示了所有文件都已就位(包括 package.json)。
为了完整起见,有问题的项目是https://github.com/seekwhencer/node-bilder-brause(不是我的)。当前的 Dockerfile:
FROM node:14
# Create app directory
WORKDIR /usr/src/app
# Bundle app source
COPY ./* ./
RUN npm install
EXPOSE 3050
EXPOSE 3055
CMD …
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写我的第一个firefox附加组件.主要问题似乎是我也是javascript的新手.目前我有:
require('sdk/page-mod').PageMod({
include: ["*"],
contentScript: 'window.addEventListener("click", function(e) { alert("blub"); }, false);',
attachTo: ["existing", "top"]
});
Run Code Online (Sandbox Code Playgroud)
(这里是答案.)现在我想使用声明的函数而不是匿名函数,但我不能让它工作:
require('sdk/page-mod').PageMod({
include: ["*"],
contentScript: 'window.addEventListener("click", function(e) { alert("blub"); }, false);',
attachTo: ["existing", "top"]
});
getImgData function (e) {
alert("blubber3");
}
Run Code Online (Sandbox Code Playgroud)
第一个问题是我通过添加函数"missing; before statement"得到语法错误.但cfx没有告诉我错误的路线.(有没有任何有用的js编辑工具,具有良好的语法检查/内容辅助?)那么如何声明一个函数并在脚本中的其他地方使用ist.最后,函数需要获取click的目标并解析它.(我阅读了教程但你的所有使用匿名函数:-P)
thx提前
apache-camel ×4
java ×2
coding-style ×1
docker ×1
firefox ×1
guice ×1
gwt ×1
interface ×1
javascript ×1
jax-rs ×1
jukito ×1
junit ×1
log4j2 ×1
maven ×1
node.js ×1
npm ×1
rest-assured ×1
wildfly ×1
xml ×1