jQAssistant 的 EJB3 插件应该创建手册中列出的概念吗?



我正在尝试几个jQAssistant插件,在本例中是EJB3插件。

我想我还没有掌握概念的概念。我期望Node标签像"ej";本地";和";Remote"在扫描包含一些ejb的Maven模块后出现。

但是,我没有看到这样的东西。

但是如果我运行手册中的查询,例如

MATCH (t:Type)-[:ANNOTATED_BY]->()-[:OF_TYPE]->(a:Type)
WHERE a.fqn="javax.ejb.Local"
SET t:Ejb:Local
RETURN t AS LocalBean

然后我看到标签"Local"-好吧,查询设置它,毕竟:-)

这可能是个新手问题…但是我应该在扫描后运行查询吗?或者这些标签应该由EJB3插件设置?

扫描只导入" raw ";在Java中,它只是表示字节码的结构,包含包、类、方法、字段、注释或调用等元素。

concepts的目的是用更高层次的抽象来丰富这些信息,例如,用@Local注释的表示Java类的节点被标记为EjbLocal,以便其他概念或约束更容易使用。然后,它们可以只依赖标签Ejb来执行检查,例如在服务层包中正确的位置。它们本身应该根据项目特定的命名规则被一个概念标记:

[[adr:ServiceLayer]]
[source,cypher]
.The package named `service` within the root package represents the `Service` `Layer`.
----
MATCH
(root:Package)-[:CONTAINS]->(serviceLayer:Package)
WHERE
root.fqn = "my.project.root"
and serviceLayer.fqn = "service"
SET
serviceLayer:Service:Layer
RETURN
serviceLayer as `Service Layer`

约束现在将依赖于两个概念,并使用如下查询:

[[adr:EjbsMustBeLocatedInServiceLayer]]
[source,cypher,role=constraint,requiresConcepts="ejb:*,adr:ServiceLayer"]
.All EJBs must be located in the service layer.
----
MATCH
(ejb:Ejb)
WHERE NOT
(:Service:Layer)-[:CONTAINS*]->(ejb)
RETURN
ejb as `EJB Outside Service Layer`
----

概念必须显式地应用,通常它们被定义为依赖项:

最新更新