Hi Christian,
thank you so much for this work! I will go through it and try to match
it with the current impl.
Regarding the bus handling: in our original implementation we were not
limiting the publication of endpoints to only one. So basically the
administrator could establish several "endpoint publication contexts
(?)" to potentially publishing different applications with different
management on each. Maybe this no longer makes sense in the context of
this new impl. It it true that, if we keep the ability to have more than
one endpoint, we would need to mark the buses somehow so only the
interesting ones are tracked. This Buses could be created, for
instance, after configuration admin factories. Anyhow, as I said
before, this might no longer make sense in the context of this RI.
I am also making use of the Servlet Whiteboard, which is why I publish
the Servlet, and might not be desirable either.
I am in the process of pushing the integration tests, so we can be more
confident when making refactors.
Carlos.
El 1/12/16 a las 10:36, Christian Schneider escribió:
I analyzed the Design of jax-rs whiteboard and how the trackers are
interrelated. This is what I came up with:
http://liquid-reality.de/display/liquid/Design+Aries+JAX-RS-whiteboard
Do you think this is correct? Would be happy about any hints or ideas
how to improve this doc. I will also try to mive this to an apache
system so we can all work on it.
One other finding:
I am not sure if the Bus handling is correct. ServicesRegistrator
creates a Bus and a Servlet and publishes them as services.
BusServiceTrackerCustomizer then picks up all Bus services and
registers several trackers for each. I think this can be problematic
if other bundles using CXF also publish Bus services.
What is the purpose of tracking the Bus as a service? I wonder if it
would also work to just use the one Bus we create without the
indirection of a tracker.
Christian
On 29.11.2016 12:05, Christian Schneider wrote:
I took some time to look into the jax-rs whiteboard code and noted
some findings below.
Formatting:
* The code is formatted with tabs. I propose to use spaces like in
the other aries modules
* In some java files there is a empty line between each line of
code. I think empty lines should only be used for bigger blocks.
* Some attribute defs are in the end of the class code. Will move
them to the top
* The line wrapping for parameters is different from the default.
Generally I like the wrapping this way but the formatter is not
configured for it so an autoformat would destroy this.
So I propose to rather use the default formatting we have.
I just checked the aries coding conventions. Seems we have the rule
of 4 Spaces instead of Tabs but not further rules. I think most of
the code uses the eclipse defaults but we might want to provide a
formatter to make it easier. Any opinions here?
Other:
* The poms did not have the apache header. I already added it
* The classes all have the author tag of Carlos. I propose we remove
these as the author of each line is visible from git anyway and
the author tag can be misleading if other people also edit the code
* I get an error in each pom in eclipse at Manifest.write. Not sure
what causes this but we should try to fix that
* There is a project for log4j-configuration. I propose we use pax
logging or logback instead of a fragment
Besides these there also might be some issues with concurrency. I
will look into these in more detail.
Christian
--
Christian Schneider
http://www.liquid-reality.de
Open Source Architect
http://www.talend.com