Version 5 (modified by lauer, 12 years ago) (diff) |
---|
Intended Features
- pluggable conversion scheme
- XML-RPC
- JSON
- ...
- pluggable transport protocol
- embeddable in a servlet or standalone
- HTTP - XML-RPC
- HTTP - JSON-RPC
- HTTP - REST-like - JAX-RS?
- ...
- pluggable set of method annotations
- former XmlRpc-Delight annotations, e.g., declaring Convertibles, etc.
- JSR 311- JAX-RS or subset of it?
- automatic deployment of handlers based on annotations
- e.g., @Tag(name="scope", value="myApp") @DelightHandler
- or @DelightHandler(scope="myApp")
- fetching handlers by scope (maybe also a pattern) methodInvocationManager.addHandlerByScope("myApp")
- Processing building blocks
- ParameterConversionManager: handles transformations of parameter values api representation <-> transport representation
- MethodAnalyzer: searches for annotations for some api method
- MethodCallSender: performs sending a call through some transport (e.g., making the http call)
- HandlerMethodInvocationManager: server-side, finds appropriate handler for an incoming call, performs method invocation
- Basic processing cycle
- handle interface call (proxy invocation handler)
- read method meta-data (from annotations)
- convert (java) method parameters into a transport representation, client-side
- send call to remote endpoint
- receive call on server side
- convert parameters back to java representation
- find appropriate method/handler based on information sent and meta-data read
- perform call
- convert result value returned by method call (if any) back to transport representation
- send back answer to client
- convert return value back to java representation
- return value in interface call