public class ServerAnnotationProcessor
extends java.lang.Object
Processes annotations in server-side service objects.
Service objects must be annotated with Service
at class level to be processed by this processor,
for example:
@Service public class MyService { @Session private ServerSession session; @Configure("/foo") public void configureFoo(ConfigurableServerChannel channel) { channel.setPersistent(...); channel.addListener(...); channel.addAuthorizer(...); } @Listener("/foo") public void handleFooMessages(ServerSession remote, ServerMessage.Mutable message) { // Do something } }
The processor is used in this way:
BayeuxServer bayeux = ...; ServerAnnotationProcessor processor = ServerAnnotationProcessor.get(bayeux); MyService s = new MyService(); processor.process(s);
ClientAnnotationProcessor
Modifier and Type | Field | Description |
---|---|---|
protected org.slf4j.Logger |
logger |
Constructor | Description |
---|---|
ServerAnnotationProcessor(org.cometd.bayeux.server.BayeuxServer bayeuxServer) |
|
ServerAnnotationProcessor(org.cometd.bayeux.server.BayeuxServer bayeuxServer,
java.lang.Object... injectables) |
Modifier and Type | Method | Description |
---|---|---|
protected static java.lang.Object |
callPublic(java.lang.Object target,
java.lang.reflect.Method method,
java.lang.Object... arguments) |
|
protected static void |
checkMethodsPublic(java.lang.Object bean,
java.lang.Class<? extends java.lang.annotation.Annotation> annotationClass) |
|
protected static void |
checkSignaturesMatch(java.lang.reflect.Method method,
java.lang.Class<?>[] expectedTypes,
java.util.List<java.lang.String> paramNames) |
|
boolean |
deprocess(java.lang.Object bean) |
Performs the opposite processing done by
process(Object) on callbacks methods
annotated with Listener , Subscription and RemoteCall , and on
lifecycle methods annotated with PreDestroy . |
boolean |
deprocessCallbacks(java.lang.Object bean) |
Performs the opposite processing done by
processCallbacks(Object) on callback methods
annotated with Listener , Subscription and RemoteCall . |
protected java.util.List<java.lang.reflect.Method> |
findAnnotatedMethods(java.lang.Object bean,
java.lang.Class<? extends java.lang.annotation.Annotation> annotationClass) |
|
protected java.lang.Object |
getField(java.lang.Object bean,
java.lang.reflect.Field field) |
|
protected java.lang.Object |
invokePrivate(java.lang.Object bean,
java.lang.reflect.Method method,
java.lang.Object... args) |
|
protected static java.lang.Object |
invokePublic(java.lang.Object target,
java.lang.reflect.Method method,
java.lang.Object[] arguments) |
|
boolean |
process(java.lang.Object bean) |
Processes dependencies annotated with
Inject and Session ,
configuration methods annotated with Configure , callback methods
annotated with Listener , Subscription and RemoteCall ,
and lifecycle methods annotated with PostConstruct . |
boolean |
processCallbacks(java.lang.Object bean) |
|
boolean |
processConfigurations(java.lang.Object bean) |
Processes the methods annotated with
Configure . |
boolean |
processDependencies(java.lang.Object bean) |
Processes the dependencies annotated with
Inject and Session . |
protected boolean |
processInjectable(java.lang.Object bean,
java.lang.Object injectable) |
|
protected boolean |
processInjectables(java.lang.Object bean,
java.util.List<java.lang.Object> injectables) |
|
protected java.util.List<java.lang.String> |
processParameters(java.lang.reflect.Method method) |
|
boolean |
processPostConstruct(java.lang.Object bean) |
Processes lifecycle methods annotated with
PostConstruct . |
boolean |
processPreDestroy(java.lang.Object bean) |
Processes lifecycle methods annotated with
PreDestroy . |
protected void |
setField(java.lang.Object bean,
java.lang.reflect.Field field,
java.lang.Object value) |
public ServerAnnotationProcessor(org.cometd.bayeux.server.BayeuxServer bayeuxServer)
public ServerAnnotationProcessor(org.cometd.bayeux.server.BayeuxServer bayeuxServer, java.lang.Object... injectables)
public boolean process(java.lang.Object bean)
Inject
and Session
,
configuration methods annotated with Configure
, callback methods
annotated with Listener
, Subscription
and RemoteCall
,
and lifecycle methods annotated with PostConstruct
.bean
- the annotated service instancepublic boolean processConfigurations(java.lang.Object bean)
Configure
.bean
- the annotated service instancepublic boolean processDependencies(java.lang.Object bean)
Inject
and Session
.bean
- the annotated service instancepublic boolean processPostConstruct(java.lang.Object bean)
PostConstruct
.bean
- the annotated service instancepublic boolean processCallbacks(java.lang.Object bean)
bean
- the annotated service instancepublic boolean deprocess(java.lang.Object bean)
process(Object)
on callbacks methods
annotated with Listener
, Subscription
and RemoteCall
, and on
lifecycle methods annotated with PreDestroy
.bean
- the annotated service instanceprocess(Object)
public boolean deprocessCallbacks(java.lang.Object bean)
processCallbacks(Object)
on callback methods
annotated with Listener
, Subscription
and RemoteCall
.bean
- the annotated service instancepublic boolean processPreDestroy(java.lang.Object bean)
PreDestroy
.bean
- the annotated service instanceprotected java.util.List<java.lang.reflect.Method> findAnnotatedMethods(java.lang.Object bean, java.lang.Class<? extends java.lang.annotation.Annotation> annotationClass)
protected java.util.List<java.lang.String> processParameters(java.lang.reflect.Method method)
protected java.lang.Object invokePrivate(java.lang.Object bean, java.lang.reflect.Method method, java.lang.Object... args)
protected static java.lang.Object invokePublic(java.lang.Object target, java.lang.reflect.Method method, java.lang.Object[] arguments) throws java.lang.Throwable
java.lang.Throwable
protected static java.lang.Object callPublic(java.lang.Object target, java.lang.reflect.Method method, java.lang.Object... arguments)
protected java.lang.Object getField(java.lang.Object bean, java.lang.reflect.Field field)
protected void setField(java.lang.Object bean, java.lang.reflect.Field field, java.lang.Object value)
protected static void checkMethodsPublic(java.lang.Object bean, java.lang.Class<? extends java.lang.annotation.Annotation> annotationClass)
protected static void checkSignaturesMatch(java.lang.reflect.Method method, java.lang.Class<?>[] expectedTypes, java.util.List<java.lang.String> paramNames)
protected boolean processInjectables(java.lang.Object bean, java.util.List<java.lang.Object> injectables)
protected boolean processInjectable(java.lang.Object bean, java.lang.Object injectable)
Copyright © 2008–2017 The CometD Project. All rights reserved.