我正在寻找Java的ORMs和Active Objects引起了我的注意.显然,它的灵感来自Rails的ActiveRecord.基于我所读到的,这种方法似乎通过采用约定优于配置来解决现有Java ORM的许多问题.
你的经历是什么?
我是java代理的新手.我创建了一个简单的HotswapAgent类(从Play!Framework中嗅探):
public class HotswapAgent {
static Instrumentation instrumentation;
public static boolean enabled = false;
public static void premain(String agentArgs, Instrumentation instrumentation)
{
HotswapAgent.instrumentation = instrumentation;
HotswapAgent.enabled = true;
}
public static void reload(ClassDefinition... definitions)
throws UnmodifiableClassException, ClassNotFoundException
{
instrumentation.redefineClasses(definitions);
}
}
Run Code Online (Sandbox Code Playgroud)
有了这个清单:
Manifest-Version: 1.0
Premain-Class: path.to.HotswapAgent
Can-Redefine-Classes: true
Run Code Online (Sandbox Code Playgroud)
我尝试以这种方式重新加载一个新的类定义:
CtClass modelClass = ....
...
byte [] bcode = modelClass.toBytecode();
Class c = modelClass.toClass();
modelClass.defrost();
ClassDefinition cdef = new ClassDefinition(c, bcode);
HotswapAgent.reload(cdef);
Run Code Online (Sandbox Code Playgroud)
所有这些类都在一个jar中,最后我得到了这个错误(在reload()调用时):
redefineClasses is not supported in this environment
Run Code Online (Sandbox Code Playgroud)
但是在Manifest中宣布了 …
我试过这个属性文件:
# test config
# global configuration
!title=Test report
!background=fff
query=...
paramSource=...
Run Code Online (Sandbox Code Playgroud)
但!param
与!background
被从来没有读过.
为什么?