Using Hawkular for Rest services built using CXF - trace

I am new to Distributed Tracing / Hawkular. And would like to experiment tracing for my distributed cxf rest services using hawkular.
Will it be possible to trace cxf servcies using hawkular and if any one has doc or reference sample app, that will be great.
Also, is there any other tracing tool which can solve this requirement(tracing java cxf rest services). Zipkin-brave has a feature for this which I am looking at also.

I'd recommend instrumenting your application using the OpenTracing API, and later choose a concrete implementation. Under the Hawkular project, there's the Hawkular APM module which provides a solution for capturing, visualizing and making sense of the data. However, we (Hawkular APM) recently decided to join the Jaeger project, to have a better support for the OpenTracing case. We expect to have similar features from Hawkular APM ported to Jaeger "soon".
For OpenTracing, there are quite a few "framework integrations" under the OpenTracing Contrib organization, including JAX-RS, which might serve as base or reference for a CXF-specific implementation. If nothing suits you, I'm certain we'd welcome a contribution.
If you are just looking to learn OpenTracing, I'd suggest taking a look at the Hawkular APM's example directory, including a vertx-opentracing example.

Related

REST Api documentation for Apache CXF application

We use Apache CXF in our application with jax-rs to build REST Api. As of now, there is no documentation about the various endpoints available and is deployed on Tomcat 8.5 server.
I have done some R&D on how to find a solution. I understand that Swagger can be used.
But, I did not find enough documentation to user swagger with Apache CXF.
I understand that these type of questions are prohibited in the site. At the same time, I am not sure which chat room to use for this purpose.
Any information on this would help me a lot.
Depending on the CXF version that you are using, I would suggest to use OpenApiFeature (OpenAPI is newer than Swagger) as described here: http://cxf.apache.org/docs/openapifeature.html
You can also find multiple sample projects with Swagger or OpenAPI here: https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jax_rs

what is the need & use of apache felix web console bundle in liferay 7.1

I am new in liferay want to perform crud operation using service builder so i want to understand need & use of apache felix web console bundle in liferay 7.1 so that i use it in order to check json/webservice api.
I would say you are not looking at the right tool for the job.
The console enables you to interact with the OSGi framework, a good place to start is not on the console but on the file systems if you are looking into understanding how Liferay uses the framework. The framework is embedded into the web app in order to provide the environment where bundles can live and provide services collectively.
Gogo is an auxiliary tool that enables interaction, you can query if bundles are installed, check the dependencies that you missed and who is providing a certain service or exposing a package.
Most of day-to-day of this kind of information you can also find in the app manager and/or logs.
About testing you api, I assume you are looking for seeing if it was installed and if it was resolved and activated. The app managers can provide the first clue for this, but gogo is an adequate tool as well, you will need to learn its commands and syntax. Do not worry they are trivial, you can find a description on the Apache's project page an on Liferay's dev guide.
Now, if you are looking to test the API for correctives or availability, using gogo will demand custom commands and lots of extra logic other tools provide for you.

Does com.sun.net.httpserver.HttpServer have scalability issues (for production environments)?

I want to use an embedded http server in my enterprise apps (and move away from standalone containers) and was expecting Tomcat to provide an implementation. I was assuming Sun, Jetty and Jersey's implementations cannot support enterprise load.
But looking at Tomcat, I see no way to run REST apps that use JAX-RS, only servlets. So my questions are:
Will use of com.sun.net.httpserver.HttpServer work in a production environment, or do I need another library?
Am I understanding correctly the boundary between JAX-RS embedded servers and servlet containers (maybe that will explain why Tomcat doesn't provide such a server)
Other notes:
I do not want to use Spring unless that's the only choice

ISO8583 middleware with JBoss

I want to ask about JBoss Middleware for ISO8583.
So, I kinda new on ISO8583, from what I know is we could use JPOS framework for this one. Then my supervisor ask me to research about JBoss Middleware that could be used to develop middleware application for send, receive, and parse ISO8583 message.
I have read on JBoss Middleware website, unfortunately I'm still not sure which JBoss technology should I use to develop such application.
Here is my questions:
1. In order develop enterprise application that capable to send, receive, and parse ISO8583, should I combine JPOS with JBoss Middleware? or JBoss Middleware has a complete capability to handle it?
2. Does anyone has/know good material/tutorial for me to learn about building ISO8583 middleware with JBoss technology?
Thank you.
JBoss Middleware is a family of products and its components alone do not provide ISO8583 capabilities out of the box.
jPOS is one of the most popular Java frameworks that provide complete capabilities to handle sending and receiving ISO8583 messages. There are other alternatives such as j8583 and IsoTypes.
You can combine any of these ISO8583 libraries together with JBoss Fuse (part of the JBoss Middleware family) to build a solution capable of sending, receiving and parsing ISO8583 messages.
I'm not aware of a definitive guide about building such solutions. If you need to use JBoss Middleware, you can follow this route:
Look into IsoTypes, which provides an ISO8583 marshalling library for Apache Camel (used by JBoss Fuse).
Start by building a Camel route that implements the IsoType library functions. Look into this sample project.
Please, be aware that building a production ready ISO8583 server and/or client from open source solutions require significant work in terms of scalability, information security and compatibility with multiple financial hosts and switches.
My answer only refers to the first basic steps to understand your problem/solution fit a bit better.
As a side note, you may be interested in looking at jreactive-8583, an ISO8583 connector that handles message parsing and the network layer out of the box. You may build your application using this and deploy it into JBoss Application Server (part of the JBoss Middleware family too). I use it in production.
You can take advantage of JPos Q2 and create a servlet deployable to JBoss container.
In the service init method you can do this:
Q2 q2 = new Q2();
q2.start();

Manage UDDI registry with CXF

I have an application using Apache CXF with a lots of SOAP services implemented. So, i would like to use the "service registry" concept and then, i´d hear about UDDI, but i dont know how to implemented that.
Is Apache CXF already composed by an API to deploy UDDI engine or should i fix another library to do that?
Take a look at JUDDI:
http://juddi.apache.org/
which is a UDDI service. The latest version is written to JAX-WS and is tested by default with CXF.
To add, jUDDI has a neat way to automate the registration of web services using annotations and a servlet startup listener.
Source: http://svn.apache.org/repos/asf/juddi/trunk/juddi-examples/uddi-annotations/