Hi Richard,
Obviously yes. The idea is to allow a user to easily extend brooklyn
without having to even restart the process. I am also thinking about
karaf commands and other features that would provide for a better user
experience.
Again, we are interested in your thoughts, keep them coming.
Hadrian
On 08/31/2015 10:43 AM, Richard Davidson wrote:
Hadrian,
You are correct. I am focusing on 2).
1) is also interesting. Are you planning on splitting Brooklyn into multiple
Karaf features similar to Camel in Karaf? For example:
brooklyn-core
brookyln-nodejs
brookyln-kafka
etc.
I think this works really well for Camel and a similar model for Brooklyn
would make it really pluggable.
Thanks,
Richard
On Mon, Aug 31, 2015 at 3:25 PM, Hadrian Zbarcea <[email protected]> wrote:
Hi Richard,
I agree about the value of integrating with ServiceMix. There are two sets
of features I am currently working on. I planned to have a set of PRs ready
yesterday, but I am a bit behind.
1. Brooklyn is already OSGi enabled, but it's not Karaf enabled, there are
a few fixes necessary and I am working on it. That would allow Brooklyn
itself to run in Karaf or any Karaf based distribution, open source like
ServiceMix or more commercial, there are a few out there.
2. Allow Brooklyn to see Karaf based distros (SMX included) as both an app
and a location where one could deploy (micro)services. This is I think what
you had in mind. That has a lot of value for managing services (both WS-*
and REST based on CXF as well as integration services based on Camel; I see
less value for ActiveMQ, but even there there could be some value in
managing brokers, I had a presentation at ApacheCon earlier this year
talking about that).
Contributions and ideas are very welcome and stay tuned because these
features are in the works.
Cheers,
Hadrian
On 08/31/2015 05:59 AM, Richard Davidson wrote:
Hi All,
I am new to Brooklyn so would appreciate you feedback on the proposal
below.
Servicemix is an integration platform based on Apache Karaf. At a high
level it consists of:
- Apache CXF
- Apache Karaf,
- Apache ActiveMQ
- Apache Camel.
The value of Servicemix over standard Karaf is that it pre integrates and
tests all these components work together.
I think it would be useful to have a Servicemix entity for Brooklyn. Below
is my proposal, but I am very new to Brooklyn so please comment:
1. Servicemix is an OSGi container so I was thinking of using the package
name org.apache.brooklyn.entity.osgi.servicemix.
2. As Servicemix is an extension of Karaf, I am thinking of extending the
Java files under *org.apache.brooklyn.entity.osgi.karaf.* This will
provide
a lot of the functionality required.
3. I will provide a few new properties to the Karaf entity. Servicemix
will
also inherit these properties.
- *bootFeatures *- List if features to install on startup of the
container.
- *bootRepositories* - List of repositories to install on startup of the
container.
-* hotDeployArtifacts* - List of URLs to deploy into the hot deploy
directory. This is very useful to deploy artefacts such as Camel routes
quickly. We could have a simple camel XML file in Github, and point
Brooklyn
at it. On startup it would be downloaded and placed into the deploy
directory within Servicemix / Karaf:
4. We should also add a property for *javaOpts*. This will allow the JVM
settings such heap size and GC settings to be customised.
5. It would be useful to have a way to configure OSGi PIDs via Brooklyn.
PIDs are Java properties namespaced by a PID name. The best structure to
represent this is Map<String, Map<String,String>. Is Brooklyn able to
handle receiving a sensor datatype like the example below?:
public static final BasicAttributeSensorAndConfigKey<Map<String,
Map<String,String>> PID_CONFIG = new
BasicAttributeSensorAndConfigKey<String>(<Map<String, Map<String,String>>,
"pidConfig");
If people are happy with the approach and it is something you would like
to
have in Brooklyn, I will start to work through it and submit a pull
request.
Thanks,
Richard