我正在尝试编写一个自定义匹配器,在对象图中深入导航以检查重要属性.
assertThat( writeRequest, hasRole("admin") );
Run Code Online (Sandbox Code Playgroud)
当这失败时,我希望看到如下消息:
Expected: "admin"
but: was "read-only"
Run Code Online (Sandbox Code Playgroud)
然而,当断言失败,它打印出toString()的writeRequest,这意味着我需要的信息将是字符串中深.更糟糕的是,沿着对象图是一个生成的类,它不会@Override Object.toString()让你甚至找不到(没有记录或断点)用户的实际角色!
那么,在Hamcrest中,有没有办法自定义but: was子句中出现的输出?
我是WSO2 ESB的新手,我对消息处理器有以下问题.
我有这个消息处理器定义,每秒从队列中提取一个元素(以前存储的XML文档)并处理它调用名为transferProcessorSequence的序列.这是配置:
<?xml version="1.0" encoding="UTF-8"?>
<messageProcessor class="org.apache.synapse.message.processor.impl.sampler.SamplingProcessor" messageStore="transferFromMessageStore" name="transferFromMessageProcessor" xmlns="http://ws.apache.org/ns/synapse">
<parameter name="sequence">transferProcessorSequence</parameter>
<parameter name="interval">1000</parameter>
<parameter name="is.active">true</parameter>
<parameter name="concurrency">1</parameter>
</messageProcessor>
Run Code Online (Sandbox Code Playgroud)
它工作正常.我的问题是我不必每秒都做(它不应该是固定值)但必须使用我已存储到注册表中的值(最终我可以将此值存储在其他地方).
而不是这个设置:
<parameter name="interval">1000</parameter>
Run Code Online (Sandbox Code Playgroud)
我必须从注册表或类似的东西(也是属性)中检索存储的值.
我怎么能这样做?
**编辑1:我正在尝试遵循Jean-Michel提供的解决方案,但我发现在使用Maven构建我的项目时遇到了一些困难.
我创建了一个简单的Maven项目,这是我的pom.xml文件内容(此时我还没有实现Java类,我只是尝试编译一个空项目):
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.toolkit</groupId>
<artifactId>SamplingProcessorHeaderRateLimitation</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>bundle</packaging>
<name>Sampling Processor Header Rate Limitation</name>
<description>Custom Sampling Mesageprocessor using response header to implement the rate limitation</description>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.3.4</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>com.sample.messageprocessor</Bundle-SymbolicName>
<Bundle-Name>com.sample.messageprocessor</Bundle-Name> …Run Code Online (Sandbox Code Playgroud) 如何覆盖Spring Boot导入的版本号,而无需在依赖项管理部分中手动设置每个工件?
<properties>
<spring.boot.version>1.5.7.RELEASE</spring.boot.version>
<jackson.version>2.9.1</jackson.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring.boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson</groupId>
<artifactId>jackson-bom</artifactId>
<version>${jackson.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Run Code Online (Sandbox Code Playgroud)
但是,当我跑步时
mvn dependency:tree "-Dincludes=com.fasterxml.jackson.*" -Dverbose
Run Code Online (Sandbox Code Playgroud)
输出
[INFO] ------------------------------------------------------------------------
[INFO] Building dpt-domain-core 1.0.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ dpt-domain-core ---
[INFO] net.initech.dpt:dpt-domain-core:jar:1.0.0
[INFO] +- com.fasterxml.jackson.core:jackson-annotations:jar:2.8.0:compile
[INFO] +- com.fasterxml.jackson.core:jackson-core:jar:2.8.10:compile
[INFO] +- com.fasterxml.jackson.core:jackson-databind:jar:2.8.10:compile
[INFO] | +- (com.fasterxml.jackson.core:jackson-annotations:jar:2.8.0:compile - omitted for duplicate)
[INFO] | \- (com.fasterxml.jackson.core:jackson-core:jar:2.8.10:compile - omitted for duplicate)
[INFO] \- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.8.10:compile
[INFO] +- (com.fasterxml.jackson.core:jackson-annotations:jar:2.8.0:compile - …Run Code Online (Sandbox Code Playgroud) 我听说有传言称PHP正计划引入"goto"命令.该怎么办?
我尝试了一下,但没有找到任何描述性的东西.我明白这不会是一个" GOTO 10"式的命令......
我有一个我的应用程序的类图,它包含几个组合和聚合.
现在我想要基于显示类实例的类图的图表.如果你愿意的快照.我需要这个,因为它有助于讨论一些功能需求.
类图:
-------- 1 * -------
| Parent |----------------------| Child |
-------- -------
Run Code Online (Sandbox Code Playgroud)
"实例"图:
-------- ---------
| Parent |----------------------| Child 1 |
-------- | ---------
|
| ---------
+-----------| Child 2 |
| ---------
|
| ---------
+-----------| Child 3 |
---------
Run Code Online (Sandbox Code Playgroud)
这有图表类型吗?(目前我错误地使用了类图,其中我的所有实例都是单独的类)
我正在开发具有CRM功能的大型Java EE Web应用程序,我们正在寻找安全性方法/库/解决方案/任何东西。基本的基于角色的安全性将无法正常工作,因为访问控制必须同时基于角色和层次结构,但必须可以选择对每个文档进行自定义。因为将存储机密和专有信息,所以安全性必须正常工作。
示例:要使用百货商店,货架缠扰者存货商可以创建报告,其他存货商只能在以下情况下阅读他们在同一个部门。现在,他们的部门经理可以读取/写入/更新/删除库存人员编写的所有报告,并编写报告,所有其他部门经理可以阅读但看不到商店经理的报告等,而区域经理可以对它们进行读/写/读/写等现在,问题变得复杂了:较高级别的人员可以使较低级别的人员可以看到东西,无论是个人(部门将文档写给几个特定的库存商)的用户,还是其下的每个人(商店经理向整个商店写备忘录)或您可以想象的排列。此外,个人可以创建其同事无法看到的报告,也可以选择授予对其他地区的商店库存者的访问权限。
我们正在考虑对每个实体授予一个权限的ACL,但担心会创建大量记录。即使只有一个报告对30人的部门中的每个人及其上方的每个人(在命令链中)可读,创建一个报告也将需要约40条记录!每个用户每周有1个报告,即每个用户每年2000个权限。1,500个用户意味着每年超过3,000,000个权限。
看起来基于规则引擎的方法似乎不错,但是我没有看到任何博客或文章提到该方法,因此我们对这种方法感到犹豫。
我们还在考虑使用某些ACL /规则自酿混合功能,您可以在其中授予区分“ manager”或“ stockers”等标识符的部门ID进行子选择,但担心检查所有可能的权限(您可能会被授予特别是由另一个用户授予的许可,您有权作为部门的成员,您可能具有作为商店或区域成员的许可),听起来像是容易出错的繁琐噩梦。
什么是我们应用程序的最佳方法?
我无法EmbeddedSolrServer运行.JavaDoc for CoreContainer稀疏至少可以说.我看过"MergeIndexesEmbeddedTest",我的代码看起来应该可行.(这是一个Maven项目)我在src/main/resources文件夹的根目录中有"Schema.xml"和"solr.xml" .我可以实例化服务器,但当我尝试添加SolrInputDocument到服务器时,我得到:
org.apache.solr.common.SolrException: 'No such core: butterfly'
at org.apache.solr.client.solrj.embedded.EmbeddedSolrServer.request(EmbeddedSolrServer.java:104)
at org.apache.solr.client.solrj.request.AbstractUpdateRequest.process(AbstractUpdateRequest.java:105)
at org.apache.solr.client.solrj.SolrServer.add(SolrServer.java:64)
Run Code Online (Sandbox Code Playgroud)
我设置服务器的代码是:
final File solrConfigXml = new File( "C:/code/butterfly/src/main/resources/solr.xml" );
final String solrHome = "C:/code/butterfly/src/main/resources/";
CoreContainer coreContainer;
try{
coreContainer = new CoreContainer( solrHome, solrConfigXml );
}catch( Exception e ){
e.printStackTrace( System.err );
throw new RuntimeException( e );
}
solrServer = new EmbeddedSolrServer( coreContainer, "butterfly" );
Run Code Online (Sandbox Code Playgroud)
我的solr.xml文件是:
<?xml version="1.0" encoding="UTF-8" ?>
<solr persistent="false">
<cores adminPath="/admin/cores" defaultCoreName="butterfly1">
<core name="butterfly" …Run Code Online (Sandbox Code Playgroud) 我正在寻找一个Java示例程序,用于使用EXIficient或OpenEXI编码/解码EXI(高效XML交换)流.
有人可以帮忙吗?我似乎无法找到一个示例应用程序.
编辑:或者,如果有人可以指向我允许我使用EXIficient或OpenEXI的文档,那将是有帮助的.我找到了javadoc,但我不知道要使用哪个类.
或者,正如@StaxMan指出的那样,是否有一个特定的提及/讨论适当的顶级类与一个标准XML API一起使用?
我试图在一个项目中生成两个xmlbeans.例如,每一个都获得参与者对象,因此我不能将它们放在一个配置中.我的方式是使用两次执行,这是我的pom文件:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>xmlbeans-maven-plugin</artifactId>
<version>2.3.3</version>
<executions>
<execution>
<id>xmlbean1</id>
<phase>generate-sources</phase>
<goals>
<goal>xmlbeans</goal>
</goals>
<configuration>
<xmlConfigs>
<xmlConfig implementation="java.io.File">src/main/xsdconfig/xmlbean1</xmlConfig>
</xmlConfigs>
<verbose>true</verbose>
<schemaDirectory>src/main/xsd/xmlbean1</schemaDirectory>
</configuration>
</execution>
<execution>
<id>xmlbean2</id>
<phase>generate-sources</phase>
<goals>
<goal>xmlbeans</goal>
</goals>
<configuration>
<xmlConfigs>
<xmlConfig implementation="java.io.File">src/main/xsdconfig/xmlbean2</xmlConfig>
</xmlConfigs>
<verbose>true</verbose>
<schemaDirectory>src/main/xsd/xmlbean2</schemaDirectory>
</configuration>
</execution>
</executions>
<inherited>true</inherited>
</plugin>
Run Code Online (Sandbox Code Playgroud)
但它根本不起作用.有人可以帮助我,谢谢
我正在移植一些旧的iBatis版本2.?代码,我想知道如何更换<isParameterPresent>标签?我已经阅读了MyBatis用户指南,知道你可以做一个<if test="">但我不知道如何引用参数对象?它有一个特殊的名字吗?是否有不同的标签可供使用?