我有一个使用mysql数据库的应用程序,但我想在hsqldb内存数据库中运行应用程序的单元测试.问题是我的一些可持久模型对象有一些字段,我已经注释为columnDefinition ="TEXT"来强制mysql来满足长字符串值,但现在hsqldb不知道TEXT的含义.如果我将其更改为CLOB,那么hsqldb很好但是mysql失败了.
是否有标准列定义,我可以用于与mysql和hsqldb兼容的长字符串?
我已经创建了一个类,我在其中设置了一些要加载LAZY的字段(其他实体).现在我需要在从会话中分离后使用该对象,因此我显然需要确保在分离之前填充所需的所有字段.我试着把这些懒惰的字段叫做吸气剂,但这似乎不起作用.任何人都知道如何强制加载这些字段?
在JPA中创建命名查询时,对于这些查询的名称是否存在可接受的最佳实践(例如EntityName.allActive,findAllActiveFoos等等),并且在它们查询的实体类中或在实用程序类中一起声明这些命名查询也是好的?
我正在尝试将我的一些单元测试从使用JMock转换为使用Mockito并且遇到了一些绊脚石.
首先,在我使用JMock的测试中,存根的验证和返回按以下步骤进行
contextMockery.checking(new Expectations() {{
oneOf(dateUtilityService).isBeforeToday(URGENT_DATE);
will(returnValue(true));
}});
Run Code Online (Sandbox Code Playgroud)
这实质上验证了该方法是否被调用并同时返回一个固定值.如果未调用isBeforeToday方法并且同时返回我的固定值true,则测试失败.然而,当使用Mockito时,我必须验证该方法是否被调用,然后在单独的步骤中返回我的固定值,这些步骤几乎是重复的,如下所示:
doReturn(true).when(dateUtilityService).isBeforeToday(URGENT_DATE);
verify(dateUtilityService).isBeforeToday(URGENT_DATE);
Run Code Online (Sandbox Code Playgroud)
有没有办法一步到位?
其次,如果我忘记在我的期望中列出对我的一个模拟的方法调用,JMock以"意外调用异常"失败测试,在我看来这是正确的,而Mockito将很乐意通过测试,除非我明确验证方法调用对于模拟必须永远不会发生,这是正确的(似乎错了)?如果对我的模拟依赖项进行了意外的方法调用,有没有办法告诉mockito失败测试?
我在我的哈德森服务器上使用jira插件.在将代码提交给svn时,我的提交注释包含在我的jira问题中,但它有任何方式可以将注释归因于执行提交的实际人员而不是为所有hudson生成的注释设置一个全局jira用户.
我必须不unless正确理解属性.我有一个属性文件,其属性如下:
module.project.enabled=false
module.finance.enabled=true
Run Code Online (Sandbox Code Playgroud)
在我的Ant构建文件中,我有以下内容
<echo message="Finance module enabled is ${module.finance.enabled}"/>
<echo message="Project module enabled is ${module.project.enabled}"/>
<javac srcdir="src" destdir="${classes}" debug="true">
<classpath>
<pathelement path="src"/>
<fileset dir="web/WEB-INF/lib" includes="*.jar"/>
<fileset dir="lib" includes="*.jar"/>
<fileset dir="${GWT.HOME}" includes="gwt-user.jar,gwt-servlet.jar"/>
</classpath>
<exclude name="bla/finance/*.java" unless="${module.finance.enabled}"/>
<exclude name="bla/project/*.java" unless="${module.project.enabled}"/>
</javac>
Run Code Online (Sandbox Code Playgroud)
运行我的ant目标时,似乎可以读取属性
[echo] Finance module enabled is true
[echo] Project module enabled is false
Run Code Online (Sandbox Code Playgroud)
但是当我查看${classes}目录时,我希望看到项目包中没有类和财务包中的类,但是它似乎排除了两个包?
我有一个GWT应用程序,它创建了一个XML结构,然后将其发布到servlet.是否有可能在发送之前在客户端gzip这个xml doc(我在servlet上有一个过滤器,它将解压缩它)
谢谢
我有一个使用spring-security的应用程序.在我的注册过程中,新的用户实体将使用HASHED密码保留,包含激活令牌的电子邮件将发送给用户.单击此标记会将用户定向到UserActivationServlet,UserActivationServlet通过令牌查找用户,激活用户并将其重定向到应用程序.我想自动将用户登录到应用程序中,并在我的servlet中包含此方法来执行此操作
private void authenticateUserAndSetSession(HttpServletRequest request, User u) {
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(
u.getUsername(), u.getPassword()); //PROBLEM: THIS PASSWORD IS HASHED
// generate session if one doesn't exist
request.getSession();
token.setDetails(new WebAuthenticationDetails(request));
Authentication authenticatedUser = authenticationManager.authenticate(token);
SecurityContextHolder.getContext().setAuthentication(authenticatedUser);
request.getSession().setAttribute(HttpSessionSecurityContextRepository.SPRING_SECURITY_CONTEXT_KEY,
SecurityContextHolder.getContext());
}
Run Code Online (Sandbox Code Playgroud)
这里的问题是User实体上的密码字段在创建时已经过哈希处理.所以我能想到的唯一其他选择是将未散列的密码作为请求参数传递给servelet(讨厌!)
我是否遗漏了某些内容,是否有另一种预先验证用户的方法?
谢谢
我们需要外部承包商对项目进行一些工作,但是希望将它们限制在我们(私有)存储库的某个分支上,并管理这个分支自己合并到发布分支.有没有办法将用户限制在存储库的单个分支中?
我已经转储了一个在默认端口上运行的独立 mongo 数据库(14Gb 大),如下所示:
mongodump --username <username> --password <password> --db <dbname>
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用以下内容将其恢复到副本集:
mongorestore --host myReplSet/127.0.0.1:27020 --drop --username <username> --password <password>
Run Code Online (Sandbox Code Playgroud)
恢复似乎工作(需要一分钟左右,输出看起来不错)创建了数据库并创建了所有集合,但集合中没有数据,它们都是空的。我究竟做错了什么?
值得一提的是,本地数据库显示它有 10 Gb 大(我不确定还原前有多大)
如何在gwt复选框的标签(构造函数)中放置一个unicode字符.如果我把角色放进去,gwt就会逃避&而且我最终会以ë 在复选框的标签而不是ë.
GWT 2.5 的发行说明说GWT编译器可以选择使用Closure编译器来提供额外的JavaScript优化,是否有人知道如何启用此优化?