cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christian Schneider <ch...@die-schneider.net>
Subject [Heads up] CXF DOSGi 2.0.0 release soon (maybe next week)
Date Thu, 11 Aug 2016 09:16:24 GMT
The new major release of CXF DOSGi has matured quite nicely during the 
last weeks. The things left to do are

  * Solving the distribution question I handled in the previous mail
    (optionally)
  * Some improvements in the examples to make them more usable
  * Documentation on the CXF Wiki

Apart from this I think we are almost ready for a CXF DOSGi release.

So I would like to encourage everyone to try out the new version and 
give feedback if something important should be changed before the major 
release. I am also happy about any bug reports of course but it is even 
more important to review the changes.

As the documentation is still a bit sparse in some areas I offer to help 
anyone personally who is willing to try the version on master. Below you 
can find a recap of how the new version is structured.

The easiest way to test CXF-DOSGi is in apache karaf. The examples in 
the source should provide explanations of how to install in karaf.

Apart from this I experiemented with bndtools based packaging which 
seems to be very suitable for microservice work.
See https://github.com/cschneider/osgi-chat
This is also backed by my talk Lean microservices on OSGi: 
http://www.slideshare.net/ChristianSchneider3/lean-microservices-on-osgi

Christian

---

So the goals for CXF DOSGi 2 were to make it simpler and more light 
weight and of course to fully support Java 8.

So this is the new design looks like this:

- cxf-dosgi-common : HttpServiceManager, IntentManager, ProxyFactory and 
other small util classes. These are all shared for the providers
- cxf-dosgi-provider-ws: SOAP support. If @Webservice annotation is 
present it does JAXWS/JAXB if not it does Simple/Aegis
- cxf-dosgi-provider-rs: REST support. Exposes the service as a default 
JAX-RS service. It has not property support for setting providers or 
interceptors
- cxf-dosgi-decorator: Allows to expose services using xml. I am not 
sure if we still need this as Aries RSA can now expose services using 
configs
- cxf-dosgi-repository: Pom that defines all dependencies to OSGi 
bundles. This can be used as a OSGi repository in the upcoming bnd and 
bndtools

Both providers support intents which can be used to set DataBinding, 
Binding Config and Features. I think we might be missing support for 
JAXRS @Provider classes but I am not sure.
Apart from this I removed all deprecated config properties and also 
slimmed down the other config properties. I hope we still cover most use 
cases but I need your feedback.
I created some Readme.md docs in the source code to explain the current 
properties.

The multi bundle distro is still there and is not really smaller as it 
still relies on the current karaf cxf and pax-web features which are 
really big. The karaf features are split into ws and rs. So we do not
need to install everything at runtime.

To show how small a DOSGi deployment can be I created a small example 
using bndtools and the repository above and was able to get a SOAP 
service exported with a runnable jar that just is about
6 MB. So I hope we can support much smaller deployments of CXF DOSGi in 
the future. Unfortunately I can not yet add this example to CXF DOSGi as 
it relies on some an experimental pom based repo plugin. As soon as this 
support is part of a bnd release I will add an example for this packaging.

I also hope the new CXF DOSGi can be the default way for karaf boot to 
expose and consume REST services.


-- 
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message