-
Concrete POJO
-
No-arg constructor
-
Constructor with @Inject
-
-
Objects returned by Producers
-
EE Spec
-
Session Bean
-
DataSource, PersistentContext
-
-
Field Injection
MATCH
(a:Type)-[:DECLARES]->(member:Field:Cdi:InjectionPoint)
RETURN
DISTINCT a.fqn AS FieldInjectionTarget
-
Constructor Injection
MATCH
(a:Type)-[:DECLARES]->(member:Method:Cdi:InjectionPoint)
WHERE member.name = "<init>"
RETURN
a.fqn AS ConstructorInjectionTarget
-
Parameter Injection
-
Setter Methods
-
MATCH
(a:Type)-[:DECLARES]->(member:Method:Cdi:InjectionPoint)
RETURN
a.fqn AS InjectionTarget, member.name AS SetterInjectionPoint
-
Initializer Method
-
Observer, Producer, Disposer Methods
A producer method may be declared by annotating a method with the @javax.enterprise.inject.Produces annotation.
MATCH
(a:Type)-[:DECLARES]->(member:Field:Cdi:InjectionPoint)-[:OF_TYPE]->(injectType:Type)
WHERE
injectType.fqn = "javax.enterprise.event.Event"
RETURN
a.fqn AS CdiEventProducer
MATCH
(a:Type)-[:DECLARES]->(member:Method)-[:HAS]->(p:Parameter)-[:ANNOTATED_BY]->()-[:OF_TYPE]->(injectType:Type)
WHERE injectType.fqn = "javax.enterprise.event.Observes"
RETURN
a.fqn AS CdiEventConsumer
Singleton scoped classes
MATCH
(t:Type)-[:ANNOTATED_BY]->()-[:OF_TYPE]->(scopeType:Type)
WHERE
scopeType.fqn="javax.inject.Singleton"
RETURN
t.fqn AS cdiSingleton
Methods producing singletons
MATCH
(t:Type)-[:DECLARES]->(m:Method),
(m)-[:ANNOTATED_BY]->()-[:OF_TYPE]->(scopeType:Type)
WHERE
scopeType.fqn="javax.inject.Singleton"
RETURN
m.signature, t.fqn AS cdiSingletonProducer
@Inject @Named ( "ordersBean" ) private OrdersBean orderBean ;
MATCH (t:Type)-[:DECLARES]->(member:Cdi:InjectionPoint), (member)-[:ANNOTATED_BY]->()-[:OF_TYPE]->(a:Type) WHERE a.fqn = "javax.inject.Named" RETURN distinct t.fqn AS invalidBean
@WebServlet(urlPatterns = "/itemServlet") public class ItemServlet extends HttpServlet { private NumberGenerator numberGenerator; private ItemEJB itemEJB; @Inject public void setNumberGenerator(@ThirteenDigits NumberGenerator numberGenerator) { this.numberGenerator = numberGenerator; } @Inject public void setItemEJB(ItemEJB itemEJB) { this.itemEJB = itemEJB; } ... }