您好我要做什么对存储库进行编程配置,因为存储库中配置的大部分参数只能在运行时确定。
似乎我无法使用匿名凭据当我尝试打印会话时它会抛出NPE 代码
config.repositorySource("store")
.usingClass(DiskSource.class)
.setProperty("repositoryRootPath", "c:/x/repo1")
.setProperty("defaultWorkspaceName","default");
config.repository("content")
.setOption(JcrRepository.Option.USE_ANONYMOUS_ACCESS_ON_FAILED_LOGIN, "true")
.setSource("store");
Session session = engine.getRepository("content").login("default");
我可以将自定义身份验证器添加到JcrConfiguration吗?
答案 0 :(得分:0)
配置ModeShape引擎的正确方法是使用JcrConfiguration对象,如here所述。这似乎就是你正在做的事情,因此这部分是正确的。
创建配置后,您可以检查问题:
if ( !configuration.getProblems().isEmpty() ) {
for ( Problem problem : configuration.getProblems() ) {
// Report these problems!
}
}
假设没有问题,您可以使用您的配置创建新的JcrEngine实例(请参阅documentation):
JcrConfiguration config = ...
JcrEngine engine = config.build();
engine.start();
然后,按名称查找存储库并使用JCR API登录:
javax.jcr.Repository repository = engine.getRepository("Name of repository");
Credentials credentials = ...; // JCR credentials
String workspaceName = ...; // Name of repository workspace
Session session = repository.login(credentials,workspaceName);