Re: SOAP Monitoring console for CXF

2010-02-04 Thread Daniel Kulp

Looks good to me.  :-)

Dan


On Thu February 4 2010 5:57:20 am Sergey Beryozkin wrote:
> Hi Rémi
> 
> Thanks...
> Does anyone has any objections to committing the Rémi's patch ?
> 
> IMHO it makes sense to have 'helper' interceptors for users be able to
>  persist exchange details and kind of 'break free' from JMX, as far as the
>  management is concerned. I've nothing against JMX , it is just about
>  giving the users an extra choice...Next, we can try to do something in
>  rt/management-web for CXF to provide a simple but useful OTB management
>  console.
> 
> Thoughts ? Objections ?
> Sergey
> 
> > Hi,
> >
> > Ok, CXF-2641 updated with a new patch, I hope this time everything is OK
> > :)
> >
> > - Exchange has been renamed to ExchangeData.
> > - ExchangeDAO has been renamed to ExchangeDataDAO and contains only the
> > save() method. - Statistics has been removed.
> > - It gets the service and operation name the way
> > AbstractMessageResponseTimeInterceptor does (but it doesn't add the "
> > around).
> >
> > Regards,
> > Rémi.
> >
> >> Hi R�mi
> >>
> >>>  Hi,
> >>>
> >>>  I've updated CXF-2641 with a new patch (which can be applied to the
> >>>  2.2.x branch or to the trunk) so that maven dependencies don't need to
> >>>  be changed.
> >>
> >> thanks for your effort. I hope you agree the code is getting much better
> >> now. Some more comments :
> >>
> >> - can you update ExchangeDAO to have save() method only ? All other
> >> methods have to do with managing/viewing/searching the
> >> previously persisted exchanges which is not what PersistsIn/Out
> >> interceptors are interested in. Instead we can have a CXF JAXRS
> >> endpoint (see below) in rt/management-web implementing an interface to
> >> do with searching the exchanges.
> >>
> >> - please remove Statistics class, we can introduce it later on, when
> >> working on exposing exchanges over the web. Now, I'm also
> >> thinking that may be we can ensure it can keep the data accumulated in
> >> JMX beans too...
> >>
> >> - I appreciate you'd like to have a SOAP monitoring console but can you
> >> please get the service and operation name the way
> >> AbstractMessageResponseTimeInterceptor does ? This way JAXRS exchanges
> >> will also be properly populated.
> >>
> >>
> >> - should Exchange be a JAXB bean ? (we can worry about it later though).
> >> Should it be renamed ? Say ExchangeData or similar ? It is
> >> just CXF also has Exchange
> >>
> >>>  Basically I've removed all the spring-orm/ibatis part and I've added a
> >>>  simple implementation of ExchangeDAO which logs to text files.
> >>
> >> I was about to tell you that we can decide later on, when working on
> >> rt/management-web, how exactly the exchanges can be persisted
> >> and how to build the views. Perhaps, by default we can reuse the file
> >> based storage. I'd be keen on relying on xslt to have a bunch
> >> of prepaired html templates merged with XML data (say with the JAXB
> >> serialized Statistics) for nice views be created. May be we can
> >> introduce some other light deps, GWT may be ?
> >>
> >>>  Then if I need to log in a database I can use my ibatis implementation
> >>>  by changing the spring configuration.
> >>
> >> exactly
> >>
> >>>  I'm not familiar at all with OSGI or JAX-RS, so I can't give you any
> >>>  thought on this part yet :)
> >>
> >> CXF JAXRS endpoint will just act as a simple controller. It won't matter
> >> it is SOAP or plain XML exchanges which are being
> >> viewed/managed...Please see :
> >> http://cwiki.apache.org/CXF20DOC/jax-rs.html
> >>
> >> ex, you might have :
> >>
> >> @Path("/exchanges")
> >> public class Controller {
> >>
> >>@GET @Path("/stats")
> >>@Produces(text/xml, application/xml)
> >>public Statistics getStats() {
> >>// let JAXB serialize it and then the XSLTProvider will put it
> >> into a nice view return exchangeDaoReader.getStatistics();
> >>}
> >>...
> >> }
> >>
> >> cheers, Sergey
> 

-- 
Daniel Kulp
dk...@apache.org
http://www.dankulp.com/blog


Re: SOAP Monitoring console for CXF

2010-02-04 Thread Sergey Beryozkin

Hi Rémi

Thanks...
Does anyone has any objections to committing the Rémi's patch ?

IMHO it makes sense to have 'helper' interceptors for users be able to persist exchange details and kind of 'break free' from JMX, 
as far as the management is concerned. I've nothing against JMX , it is just about giving the users an extra choice...Next, we can 
try to do something in rt/management-web for CXF to provide a simple but useful OTB management console.


Thoughts ? Objections ?
Sergey




Hi,

Ok, CXF-2641 updated with a new patch, I hope this time everything is OK :)

- Exchange has been renamed to ExchangeData.
- ExchangeDAO has been renamed to ExchangeDataDAO and contains only the save() 
method.
- Statistics has been removed.
- It gets the service and operation name the way 
AbstractMessageResponseTimeInterceptor does (but it doesn't add the " around).

Regards,
Rémi.



Hi R�mi


 Hi,

 I've updated CXF-2641 with a new patch (which can be applied to the
 2.2.x branch or to the trunk) so that maven dependencies don't need to
 be changed.


thanks for your effort. I hope you agree the code is getting much better now.
Some more comments :

- can you update ExchangeDAO to have save() method only ? All other methods 
have to do with
managing/viewing/searching the
previously persisted exchanges which is not what PersistsIn/Out interceptors 
are interested
in. Instead we can have a CXF JAXRS
endpoint (see below) in rt/management-web implementing an interface to do with 
searching the
exchanges.

- please remove Statistics class, we can introduce it later on, when working on 
exposing exchanges
over the web. Now, I'm also
thinking that may be we can ensure it can keep the data accumulated in JMX 
beans too...

- I appreciate you'd like to have a SOAP monitoring console but can you please 
get the service
and operation name the way
AbstractMessageResponseTimeInterceptor does ? This way JAXRS exchanges will 
also be properly
populated.


- should Exchange be a JAXB bean ? (we can worry about it later though). Should 
it be renamed
? Say ExchangeData or similar ? It is
just CXF also has Exchange


 Basically I've removed all the spring-orm/ibatis part and I've added a
 simple implementation of ExchangeDAO which logs to text files.


I was about to tell you that we can decide later on, when working on 
rt/management-web, how
exactly the exchanges can be persisted
and how to build the views. Perhaps, by default we can reuse the file based 
storage. I'd be
keen on relying on xslt to have a bunch
of prepaired html templates merged with XML data (say with the JAXB serialized 
Statistics)
for nice views be created. May be we can
introduce some other light deps, GWT may be ?



 Then if I need to log in a database I can use my ibatis implementation
 by changing the spring configuration.


exactly



 I'm not familiar at all with OSGI or JAX-RS, so I can't give you any
 thought on this part yet :)


CXF JAXRS endpoint will just act as a simple controller. It won't matter it is 
SOAP or plain
XML exchanges which are being
viewed/managed...Please see :
http://cwiki.apache.org/CXF20DOC/jax-rs.html

ex, you might have :

@Path("/exchanges")
public class Controller {

   @GET @Path("/stats")
   @Produces(text/xml, application/xml)
   public Statistics getStats() {
   // let JAXB serialize it and then the XSLTProvider will put it into a 
nice view
   return exchangeDaoReader.getStatistics();
   }
   ...
}

cheers, Sergey










Re: SOAP Monitoring console for CXF

2010-02-03 Thread Rémi Flament

Hi,

Ok, CXF-2641 updated with a new patch, I hope this time everything is OK :)

- Exchange has been renamed to ExchangeData.
- ExchangeDAO has been renamed to ExchangeDataDAO and contains only the 
save() method.

- Statistics has been removed.
- It gets the service and operation name the way 
AbstractMessageResponseTimeInterceptor does (but it doesn't add the " 
around).


Regards,
Rémi.



Hi R�mi


 Hi,

 I've updated CXF-2641 with a new patch (which can be applied to the
 2.2.x branch or to the trunk) so that maven dependencies don't need to
 be changed.


thanks for your effort. I hope you agree the code is getting much 
better now.

Some more comments :

- can you update ExchangeDAO to have save() method only ? All other 
methods have to do with

managing/viewing/searching the
previously persisted exchanges which is not what PersistsIn/Out 
interceptors are interested

in. Instead we can have a CXF JAXRS
endpoint (see below) in rt/management-web implementing an interface to 
do with searching the

exchanges.

- please remove Statistics class, we can introduce it later on, when 
working on exposing exchanges

over the web. Now, I'm also
thinking that may be we can ensure it can keep the data accumulated in 
JMX beans too...


- I appreciate you'd like to have a SOAP monitoring console but can 
you please get the service

and operation name the way
AbstractMessageResponseTimeInterceptor does ? This way JAXRS exchanges 
will also be properly

populated.


- should Exchange be a JAXB bean ? (we can worry about it later 
though). Should it be renamed

? Say ExchangeData or similar ? It is
just CXF also has Exchange


 Basically I've removed all the spring-orm/ibatis part and I've added a
 simple implementation of ExchangeDAO which logs to text files.


I was about to tell you that we can decide later on, when working on 
rt/management-web, how

exactly the exchanges can be persisted
and how to build the views. Perhaps, by default we can reuse the file 
based storage. I'd be

keen on relying on xslt to have a bunch
of prepaired html templates merged with XML data (say with the JAXB 
serialized Statistics)

for nice views be created. May be we can
introduce some other light deps, GWT may be ?



 Then if I need to log in a database I can use my ibatis implementation
 by changing the spring configuration.


exactly



 I'm not familiar at all with OSGI or JAX-RS, so I can't give you any
 thought on this part yet :)


CXF JAXRS endpoint will just act as a simple controller. It won't 
matter it is SOAP or plain

XML exchanges which are being
viewed/managed...Please see :
http://cwiki.apache.org/CXF20DOC/jax-rs.html

ex, you might have :

@Path("/exchanges")
public class Controller {

   @GET @Path("/stats")
   @Produces(text/xml, application/xml)
   public Statistics getStats() {
   // let JAXB serialize it and then the XSLTProvider will put it 
into a nice view

   return exchangeDaoReader.getStatistics();
   }
   ...
}

cheers, Sergey







Re: SOAP Monitoring console for CXF

2010-02-03 Thread Sergey Beryozkin

Hi Rémi


Hi,

I've updated CXF-2641 with a new patch (which can be applied to the
2.2.x branch or to the trunk) so that maven dependencies don't need to
be changed.


thanks for your effort. I hope you agree the code is getting much better now.
Some more comments :

- can you update ExchangeDAO to have save() method only ? All other methods have to do with managing/viewing/searching the 
previously persisted exchanges which is not what PersistsIn/Out interceptors are interested in. Instead we can have a CXF JAXRS 
endpoint (see below) in rt/management-web implementing an interface to do with searching the exchanges.


- please remove Statistics class, we can introduce it later on, when working on exposing exchanges over the web. Now, I'm also 
thinking that may be we can ensure it can keep the data accumulated in JMX beans too...


- I appreciate you'd like to have a SOAP monitoring console but can you please 
get the service and operation name the way
AbstractMessageResponseTimeInterceptor does ? This way JAXRS exchanges will 
also be properly populated.


- should Exchange be a JAXB bean ? (we can worry about it later though). Should it be renamed ? Say ExchangeData or similar ? It is 
just CXF also has Exchange



Basically I've removed all the spring-orm/ibatis part and I've added a
simple implementation of ExchangeDAO which logs to text files.


I was about to tell you that we can decide later on, when working on rt/management-web, how exactly the exchanges can be persisted 
and how to build the views. Perhaps, by default we can reuse the file based storage. I'd be keen on relying on xslt to have a bunch 
of prepaired html templates merged with XML data (say with the JAXB serialized Statistics) for nice views be created. May be we can 
introduce some other light deps, GWT may be ?




Then if I need to log in a database I can use my ibatis implementation
by changing the spring configuration.


exactly



I'm not familiar at all with OSGI or JAX-RS, so I can't give you any
thought on this part yet :)


CXF JAXRS endpoint will just act as a simple controller. It won't matter it is SOAP or plain XML exchanges which are being 
viewed/managed...Please see :

http://cwiki.apache.org/CXF20DOC/jax-rs.html

ex, you might have :

@Path("/exchanges")
public class Controller {

  @GET @Path("/stats")
  @Produces(text/xml, application/xml)
  public Statistics getStats() {
  // let JAXB serialize it and then the XSLTProvider will put it into a 
nice view
  return exchangeDaoReader.getStatistics();
  }
  ...
}

cheers, Sergey



Regards,
Rémi.


Hi


 Hi,

 I have submitted the interceptor part as a patch in jira :
https://issues.apache.org/jira/browse/CXF-2641.


thanks. Personally, I'm not sure we can commit it just yet. The
existing response time management
feature is a light weight
component whose goal is to collect some operation statistics and
eventually expose it over
JMX. The idea of persisting exchanges and
ultimately showing them without JMX being involved seems to be
generally useful, but there
are quite a few depedencies/details in
the patch which would require users of the in/out persistence
interceptors to stick to specific
technologies like spring orm, etc,
but they may just want to save exchanges into a text file or push them
over a socket/http.

IMHO it would be useful to have persistence interceptors added to the
management feature but
it would be better to abstract away the
details of how a current exchange can be persisted. Example, I'd only
add say 2  interceptors
(in/out) plus, say, some simple
interface which can be used to save an exchange.

Next, we can have a demo showing one way (as shown in the patch) how
the exchanges can be
persisted.



 I also have a question regarding the rt/management-web module : the
packaging is "jar"

in the pom.xml. Does it mean this is a

 library that should be included by users in their own webapp or
should the packaging

be "war" instead ?

It will be a jar, but ultimately it will become a 'bundle' which is a
jar with its manifest
updated with few extra OSGI
instructions.



 If this module is intended to be the management webapp, is it OK to
add spring-webmvc

dependency in it ?

The idea behind introducing this module is to let users do a number of
useful management-related
tasks over HTTP, by relying on the
existing CXF modules and technologies already available in JDK. Ex,
CXF JAXRS module can be
used to create various endpoints (one
will be used to let users subscribe to atom logging events, the other
one will actually let
users view the statisics amd possibly do
spme management operations, etc). I'd prefer to have a JAXRS endpoint
which could be used
to show the statistics and possibly the
exchanges persisted by various CXF 'working' endpoints.

Thoughts ?

thanks, Sergey









Re: SOAP Monitoring console for CXF

2010-02-02 Thread Rémi Flament

Hi,

I've updated CXF-2641 with a new patch (which can be applied to the 
2.2.x branch or to the trunk) so that maven dependencies don't need to 
be changed.
Basically I've removed all the spring-orm/ibatis part and I've added a 
simple implementation of ExchangeDAO which logs to text files.


Then if I need to log in a database I can use my ibatis implementation 
by changing the spring configuration.


I'm not familiar at all with OSGI or JAX-RS, so I can't give you any 
thought on this part yet :)


Regards,
Rémi.


Hi


 Hi,

 I have submitted the interceptor part as a patch in jira : 
https://issues.apache.org/jira/browse/CXF-2641.


thanks. Personally, I'm not sure we can commit it just yet. The 
existing response time management

feature is a light weight
component whose goal is to collect some operation statistics and 
eventually expose it over

JMX. The idea of persisting exchanges and
ultimately showing them without JMX being involved seems to be 
generally useful, but there

are quite a few depedencies/details in
the patch which would require users of the in/out persistence 
interceptors to stick to specific

technologies like spring orm, etc,
but they may just want to save exchanges into a text file or push them 
over a socket/http.


IMHO it would be useful to have persistence interceptors added to the 
management feature but

it would be better to abstract away the
details of how a current exchange can be persisted. Example, I'd only 
add say 2  interceptors

(in/out) plus, say, some simple
interface which can be used to save an exchange.

Next, we can have a demo showing one way (as shown in the patch) how 
the exchanges can be

persisted.



 I also have a question regarding the rt/management-web module : the 
packaging is "jar"

in the pom.xml. Does it mean this is a
 library that should be included by users in their own webapp or 
should the packaging

be "war" instead ?

It will be a jar, but ultimately it will become a 'bundle' which is a 
jar with its manifest

updated with few extra OSGI
instructions.



 If this module is intended to be the management webapp, is it OK to 
add spring-webmvc

dependency in it ?

The idea behind introducing this module is to let users do a number of 
useful management-related

tasks over HTTP, by relying on the
existing CXF modules and technologies already available in JDK. Ex, 
CXF JAXRS module can be

used to create various endpoints (one
will be used to let users subscribe to atom logging events, the other 
one will actually let

users view the statisics amd possibly do
spme management operations, etc). I'd prefer to have a JAXRS endpoint 
which could be used

to show the statistics and possibly the
exchanges persisted by various CXF 'working' endpoints.

Thoughts ?

thanks, Sergey




Index: 
rt/management/src/main/java/org/apache/cxf/management/persistence/Exchange.java
===
--- 
rt/management/src/main/java/org/apache/cxf/management/persistence/Exchange.java 
(révision 0)
+++ 
rt/management/src/main/java/org/apache/cxf/management/persistence/Exchange.java 
(révision 0)
@@ -0,0 +1,186 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.management.persistence;
+
+import java.util.Date;
+import java.util.List;
+
+public class Exchange {
+
+private String encoding;
+
+private String exceptionType;
+
+private Integer id;
+
+private Date inDate;
+
+private String operation;
+
+private Date outDate;
+
+private List properties;
+
+private String request;
+
+private Integer requestSize;
+
+private String response;
+
+private Integer responseSize;
+
+private String serviceName;
+
+private String stackTrace;
+
+private String status;
+
+private String uri;
+
+private String userAgent;
+
+public String getEncoding() {
+return this.encoding;
+}
+
+public String getExceptionType() {
+return this.exceptionType;
+}
+
+public Integer getId() {
+return this.id;
+}
+
+public Date getInDate() {
+return this.inDate;
+}
+
+public String getOperation() {
+return this.operation;
+  

Re: SOAP Monitoring console for CXF

2010-02-01 Thread Sergey Beryozkin

Hi


Hi,

I have submitted the interceptor part as a patch in jira : 
https://issues.apache.org/jira/browse/CXF-2641.


thanks. Personally, I'm not sure we can commit it just yet. The existing response time management feature is a light weight 
component whose goal is to collect some operation statistics and eventually expose it over JMX. The idea of persisting exchanges and 
ultimately showing them without JMX being involved seems to be generally useful, but there are quite a few depedencies/details in 
the patch which would require users of the in/out persistence interceptors to stick to specific technologies like spring orm, etc, 
but they may just want to save exchanges into a text file or push them over a socket/http.


IMHO it would be useful to have persistence interceptors added to the management feature but it would be better to abstract away the 
details of how a current exchange can be persisted. Example, I'd only add say 2  interceptors (in/out) plus, say, some simple 
interface which can be used to save an exchange.


Next, we can have a demo showing one way (as shown in the patch) how the 
exchanges can be persisted.



I also have a question regarding the rt/management-web module : the packaging is "jar" in the pom.xml. Does it mean this is a 
library that should be included by users in their own webapp or should the packaging be "war" instead ?


It will be a jar, but ultimately it will become a 'bundle' which is a jar with its manifest updated with few extra OSGI 
instructions.




If this module is intended to be the management webapp, is it OK to add 
spring-webmvc dependency in it ?


The idea behind introducing this module is to let users do a number of useful management-related tasks over HTTP, by relying on the 
existing CXF modules and technologies already available in JDK. Ex, CXF JAXRS module can be used to create various endpoints (one 
will be used to let users subscribe to atom logging events, the other one will actually let users view the statisics amd possibly do 
spme management operations, etc). I'd prefer to have a JAXRS endpoint which could be used to show the statistics and possibly the 
exchanges persisted by various CXF 'working' endpoints.


Thoughts ?

thanks, Sergey



Thanks,
Rémi.



Hi


 Hi,

 I wrote a soap monitoring tool for cxf and I'd like to make it open
 source. I'd like to know if it could be included in cxf package since I
 think it could be useful to other cxf users.

 Basically it's just two soap interceptors that store requests, responses
 and some more data in a database.
 Additional data is the service name, the operation name, the exception
 type and the stacktrace if the response is a fault, the response time,
 the status, the user agent, the encoding, http headers, etc.
 It also provides a mechanism so users can store their own additional
 data if they need to.


What is your opinion about contributing some of this code to the rt/management 
module ?
Cyrille and other experts can help. The rt/management conrtains a management 
featire which
can be used to monitor both SOAP and
RESTful services. And it looks like it can do most of what you've described 
above but perhaps
you can help enhancing it for it to
match what your interceptors can do ?



 The cxf console comes with 3 maven modules :

 - cxf-soap-console-dao : used for CRUD operation in database, use
 iBatis. MySQL is supported, I'll add Oracle and Postgres support soon
 since I need it, I might also add derby support.
 - cxf-soap-console-interceptors : the soap interceptors that users need
 to add to their webservices. They are basically extended versions of
 LoggingInterceptors from cxf.
 - cxf-soap-console-webapp : a webapp to show data stored by the
 interceptors (see attached screenshots)

 It is still in an alpha stage, here are some planned features ;

 - statistics by service
 - statistics by operation
 - jfreechart inclusion in the webapp
 - a search form
 - make it a cxf feature


This is quite interesting. You may've seen we've discussed the possibility of 
introducing
a rt/management-web module which will
initially contain :
- atom based pull/push logging support for individual jaxrs/jaxrs endpoints 
(thsi code is
currently in CXF JAX-RS) with the eventual
possibility to subscribe or register callback URIs from CXF /services page
- CXF JAX-RS based endpoint for showing JMX-based data over HTTP for all CXF 
endpoints and
providing more advanced management
capabilities over time

I hope this component will eventually turn CXF itself into a well-featured Web 
application
on its own. We'll need to complete some
intial support for the Atom pull logging stuff (nearly there) and then I will 
do the move.

It looks like what you've done may be eventually added to this new CXF module. 
Others may
have a different opinion though...


cheers, Sergey



 I've attached the source code, some screenshots, and the ddl script to
 create the database. Maven should generate a war deployable in 

Re: SOAP Monitoring console for CXF

2010-01-31 Thread Rémi Flament

Hi,

I have submitted the interceptor part as a patch in jira : 
https://issues.apache.org/jira/browse/CXF-2641.


I also have a question regarding the rt/management-web module : the 
packaging is "jar" in the pom.xml. Does it mean this is a library that 
should be included by users in their own webapp or should the packaging 
be "war" instead ?


If this module is intended to be the management webapp, is it OK to add 
spring-webmvc dependency in it ?


Thanks,
Rémi.



Hi


 Hi,

 I wrote a soap monitoring tool for cxf and I'd like to make it open
 source. I'd like to know if it could be included in cxf package since I
 think it could be useful to other cxf users.

 Basically it's just two soap interceptors that store requests, 
responses

 and some more data in a database.
 Additional data is the service name, the operation name, the exception
 type and the stacktrace if the response is a fault, the response time,
 the status, the user agent, the encoding, http headers, etc.
 It also provides a mechanism so users can store their own additional
 data if they need to.


What is your opinion about contributing some of this code to the 
rt/management module ?
Cyrille and other experts can help. The rt/management conrtains a 
management featire which

can be used to monitor both SOAP and
RESTful services. And it looks like it can do most of what you've 
described above but perhaps

you can help enhancing it for it to
match what your interceptors can do ?



 The cxf console comes with 3 maven modules :

 - cxf-soap-console-dao : used for CRUD operation in database, use
 iBatis. MySQL is supported, I'll add Oracle and Postgres support soon
 since I need it, I might also add derby support.
 - cxf-soap-console-interceptors : the soap interceptors that users need
 to add to their webservices. They are basically extended versions of
 LoggingInterceptors from cxf.
 - cxf-soap-console-webapp : a webapp to show data stored by the
 interceptors (see attached screenshots)

 It is still in an alpha stage, here are some planned features ;

 - statistics by service
 - statistics by operation
 - jfreechart inclusion in the webapp
 - a search form
 - make it a cxf feature


This is quite interesting. You may've seen we've discussed the 
possibility of introducing

a rt/management-web module which will
initially contain :
- atom based pull/push logging support for individual jaxrs/jaxrs 
endpoints (thsi code is

currently in CXF JAX-RS) with the eventual
possibility to subscribe or register callback URIs from CXF /services 
page
- CXF JAX-RS based endpoint for showing JMX-based data over HTTP for 
all CXF endpoints and

providing more advanced management
capabilities over time

I hope this component will eventually turn CXF itself into a 
well-featured Web application

on its own. We'll need to complete some
intial support for the Atom pull logging stuff (nearly there) and then 
I will do the move.


It looks like what you've done may be eventually added to this new CXF 
module. Others may

have a different opinion though...


cheers, Sergey



 I've attached the source code, some screenshots, and the ddl script to
 create the database. Maven should generate a war deployable in tomcat,
 mvn eclipse:eclipse will generate the eclipse projects. The datasource
 must be named jdbc/cxf/console.

 Has this any chance to be included in cxf or should I create a separate
 project on google code/sourceforge ?

 Regards,
 R�mi.









Re: SOAP Monitoring console for CXF

2010-01-19 Thread Sergey Beryozkin

Hi


Hi,

I wrote a soap monitoring tool for cxf and I'd like to make it open
source. I'd like to know if it could be included in cxf package since I
think it could be useful to other cxf users.

Basically it's just two soap interceptors that store requests, responses
and some more data in a database.
Additional data is the service name, the operation name, the exception
type and the stacktrace if the response is a fault, the response time,
the status, the user agent, the encoding, http headers, etc.
It also provides a mechanism so users can store their own additional
data if they need to.


What is your opinion about contributing some of this code to the rt/management 
module ?
Cyrille and other experts can help. The rt/management conrtains a management featire which can be used to monitor both SOAP and 
RESTful services. And it looks like it can do most of what you've described above but perhaps you can help enhancing it for it to 
match what your interceptors can do ?




The cxf console comes with 3 maven modules :

- cxf-soap-console-dao : used for CRUD operation in database, use
iBatis. MySQL is supported, I'll add Oracle and Postgres support soon
since I need it, I might also add derby support.
- cxf-soap-console-interceptors : the soap interceptors that users need
to add to their webservices. They are basically extended versions of
LoggingInterceptors from cxf.
- cxf-soap-console-webapp : a webapp to show data stored by the
interceptors (see attached screenshots)

It is still in an alpha stage, here are some planned features ;

- statistics by service
- statistics by operation
- jfreechart inclusion in the webapp
- a search form
- make it a cxf feature


This is quite interesting. You may've seen we've discussed the possibility of introducing a rt/management-web module which will 
initially contain :
- atom based pull/push logging support for individual jaxrs/jaxrs endpoints (thsi code is currently in CXF JAX-RS) with the eventual 
possibility to subscribe or register callback URIs from CXF /services page
- CXF JAX-RS based endpoint for showing JMX-based data over HTTP for all CXF endpoints and providing more advanced management 
capabilities over time


I hope this component will eventually turn CXF itself into a well-featured Web application on its own. We'll need to complete some 
intial support for the Atom pull logging stuff (nearly there) and then I will do the move.


It looks like what you've done may be eventually added to this new CXF module. 
Others may have a different opinion though...


cheers, Sergey



I've attached the source code, some screenshots, and the ddl script to
create the database. Maven should generate a war deployable in tomcat,
mvn eclipse:eclipse will generate the eclipse projects. The datasource
must be named jdbc/cxf/console.

Has this any chance to be included in cxf or should I create a separate
project on google code/sourceforge ?

Regards,
Rémi.