On Fri, Feb 22, 2019 at 1:40 PM Matteo Alessandroni <skylar...@apache.org>
wrote:

>
>
> On 22/02/19 12:28, Matteo Alessandroni wrote:
> >
> >
> > On 22/02/19 10:31, Martin Grigorov wrote:
> >> On Fri, Feb 22, 2019 at 10:50 AM Matteo Alessandroni
> >> <skylar...@apache.org>
> >> wrote:
> >>
> >>>
> >>> On 21/02/19 18:50, Martin Grigorov wrote:
> >>>> On Thu, Feb 21, 2019, 18:29 Matteo Alessandroni <skylar...@apache.org
> >
> >>>> wrote:
> >>>>
> >>>>> On 21/02/19 16:43, Martin Grigorov wrote:
> >>>>>> On Thu, Feb 21, 2019 at 5:35 PM Matteo Alessandroni <
> >>>>> skylar...@apache.org>
> >>>>>> wrote:
> >>>>>>
> >>>>>>> On 21/02/19 16:30, Martin Grigorov wrote:
> >>>>>>>> On Thu, Feb 21, 2019 at 5:24 PM Matteo Alessandroni <
> >>>>>>> skylar...@apache.org>
> >>>>>>>> wrote:
> >>>>>>>>
> >>>>>>>>> On 21/02/19 16:07, Martin Grigorov wrote:
> >>>>>>>>>> On Thu, Feb 21, 2019 at 4:41 PM Matteo Alessandroni <
> >>>>>>>>> skylar...@apache.org>
> >>>>>>>>>> wrote:
> >>>>>>>>>>
> >>>>>>>>>>> On 21/02/19 12:14, Martin Grigorov wrote:
> >>>>>>>>>>>> On Thu, Feb 21, 2019 at 12:11 PM Matteo Alessandroni <
> >>>>>>>>>>>> matteo.alessandr...@tirasa.net> wrote:
> >>>>>>>>>>>>
> >>>>>>>>>>>>> Hi,
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> On 21/02/19 11:05, Martin Grigorov wrote:
> >>>>>>>>>>>>>> When the WebSocket connection is established (maybe when the
> >>> page
> >>>>>>> is
> >>>>>>>>>>>>>> loaded) you should see an entry in the Network tab.
> >>>>>>>>>>>>>> If you select this entry then on the right-side you
> >>>>>>>>>>>>>> should see
> >>>>> any
> >>>>>>> WS
> >>>>>>>>>>>>>> messages to/from the server.
> >>>>>>>>>>>>> Yes I know how about WS debugging, but I do not see any WS
> >>> request
> >>>>>>>>> (with
> >>>>>>>>>>>>> WS devtool filter and without it).
> >>>>>>>>>>>>>
> >>>>>>>>>>>> Maybe this is the problem.
> >>>>>>>>>>>> If there is no WebSocket response at all then there is no
> >>>>>>>>>>>> way the
> >>>>> JS
> >>>>>>>>> code
> >>>>>>>>>>>> to be executed.
> >>>>>>>>>>>>
> >>>>>>>>>>>> But since your WebSocketBehavior callback method is
> >>>>>>>>>>>> executed then
> >>>>>>> there
> >>>>>>>>>>>> must be an established WebSocket connection.
> >>>>>>>>>>>> I have no idea what goes wrong.
> >>>>>>>>>>> It is strange because in our application version that uses
> >>>>>>>>>>> Wicket
> >>>>> 7.x
> >>>>>>> I
> >>>>>>>>>>> see no WS requests in DevTools console as well, but the code is
> >>>>>>>>>>> correctly executed and everything works.
> >>>>>>>>>>> Yes the WebSocket connection seems to be established anyway in
> >>> both
> >>>>>>> our
> >>>>>>>>>>> versions so with both Wicket 7.x and 8.x, but for some
> >>>>>>>>>>> reason the
> >>>>>>>>>>> "appendJavaScript()" method does not work on the
> >>>>>>>>>>> "WebSocketRequestHandler" object with Wicket 8.x.
> >>>>>>>>>>>
> >>>>>>>>>>> Is there anything else we can try to make it work?
> >>>>>>>>>>>
> >>>>>>>>>> Put a breakpoint at
> >>>>>>>>>>
> >>>
> https://github.com/apache/wicket/blob/3704144b73521c6b10de5fa7864773230762e86c/wicket-core/src/main/java/org/apache/wicket/page/XmlPartialPageUpdate.java#L141
> >>>
> >>>>>>>>>> and see whether it is called.
> >>>>>>>>>> And another one at
> >>>>>>>>>>
> >>>
> https://github.com/apache/wicket/blob/3704144b73521c6b10de5fa7864773230762e86c/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketResponse.java#L86
> >>>
> >>>>>>>>>> to see whether the XML response is being written back to the
> >>> browser
> >>>>> in
> >>>>>>>>> the
> >>>>>>>>>> WebSocketConnection.
> >>>>>>>>> Thanks!
> >>>>>>>>> Ok the first method [1] was called many times and once was the
> >>>>>>>>> one
> >>> I'm
> >>>>>>>>> interested on where the "script" variable was:
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>
> "window.Wicket.WebSocket.send('{"kind":"ADD_ENDPOINT","target":"...","source":"...","scope":"..."}');"
>
> >>>
> >>>>>>>>> also the second one [2] was called, but *only once* and both the
> >>>>> "text"
> >>>>>>>>> and "binary" variables were null.
> >>>>>>>>>
> >>>>>>>> What is the type of "response" variable at
> >>>>>>>>
> >>>
> https://github.com/apache/wicket/blob/3704144b73521c6b10de5fa7864773230762e86c/wicket-core/src/main/java/org/apache/wicket/page/XmlPartialPageUpdate.java#L141
> >>>
> >>>>>>>> ?
> >>>>>>>> It seems it is not WebSocketResponse
> >>>>>>> Ideed, it's "StringResponse"!
> >>>>>>> And it's content is something like this:
> >>>>>>>
> >>>>>> I didn't expect this!
> >>>>>> Can you please put a breakpoint
> >>>>>> at org.apache.wicket.response.StringResponse#StringResponse() (the
> >>>>>> constructor) and see where it is instantiated.
> >>>>>> AjaxRequestHandler uses StringResponse, but WebSocketRequestHandler
> >>> does
> >>>>>> not.
> >>>>> I'm not completely sure but it seems that all the times the
> >>>>> application
> >>>>> enters in [1] (including when "script" contains "addEnpoint(...)")
> >>>>> and
> >>>>> then the "StringResponse()" constructor is called, the source is [2].
> >>>>>
> >>>>> [1]
> >>>>>
> >>>>>
> >>>
> https://github.com/apache/wicket/blob/3704144b73521c6b10de5fa7864773230762e86c/wicket-core/src/main/java/org/apache/wicket/page/XmlPartialPageUpdate.java#L141
> >>>
> >>>>> [2]
> >>>>>
> >>>>>
> >>>
> https://github.com/apache/wicket/blob/3704144b73521c6b10de5fa7864773230762e86c/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxRequestHandler.java#L360
> >>>
> >>>> It seems WebSocketRequestHandler#respond() is not called at all.
> >>>> Put a breakpoint in AbstractWebSocketProcessor and see what happens
> >>> there.
> >>>
> >>> Hi,
> >>> ok thanks, I did that and the constructor of
> >>> "AbstractWebSocketProcessor" is never called!
> >>>
> >> The constructor should be called when the WS connection is established.
> >> I guess you use wicket-native-websocket-javax.
> >> Check org.apache.wicket.protocol.ws.javax.JavaxWebSocketProcessor and
> >> its
> >> org.apache.wicket.protocol.ws
> .javax.JavaxWebSocketProcessor.StringMessageHandler
> >> onMessage() method is called when the client sends something to the
> >> server.
> >> onMessage() delegates
> >> to
> >> org.apache.wicket.protocol.ws
> .api.AbstractWebSocketProcessor#broadcastMessage()
> >> where the processing happens, i.e. WebSocketBehavior#onMessage() is
> >> called.
> >
> > Yes we use "wicket-native-websocket-javax" [1].
> > What I have just done is putting a breackpoint in both that method
> > from
> >
> "org.apache.wicket.protocol.ws.javax.JavaxWebSocketProcessor#StringMessageHandler
> > onMessage()" and
> >
> "org.apache.wicket.protocol.ws.api.AbstractWebSocketProcessor#broadcastMessage()",
>
> > but it does *not* enter there either.
> >
> > So at that point I have tried to start v2.0.x with Wicket 7.x and
> > tried to debug the same way, the result is that it enters in [2] only.
> >
> >
> > [1]
> > https://github.com/apache/syncope/blob/2_1_X/client/console/pom.xml#L83
> > [2]
> >
> https://github.com/apache/wicket/blob/3704144b73521c6b10de5fa7864773230762e86c/wicket-native-websocket/wicket-native-websocket-javax/src/main/java/org/apache/wicket/protocol/ws/javax/JavaxWebSocketProcessor.java#L65
>
> Sorry I correct myself, I tried again with 2.1.x (Wicket 8.x) and it
> entered in [1] and [2].
>
> [1]
>
> https://github.com/apache/wicket/blob/3704144b73521c6b10de5fa7864773230762e86c/wicket-native-websocket/wicket-native-websocket-javax/src/main/java/org/apache/wicket/protocol/ws/javax/JavaxWebSocketProcessor.java#L65
>
> [2]
>
> https://github.com/apache/wicket/blob/3704144b73521c6b10de5fa7864773230762e86c/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/AbstractWebSocketProcessor.java#L213


Once the debugger is here set another breakpoint at
https://github.com/apache/wicket/blob/3704144b73521c6b10de5fa7864773230762e86c/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java#L840
and
https://github.com/apache/wicket/blob/3704144b73521c6b10de5fa7864773230762e86c/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java#L871

it seems something removes WebSocketRequestHandler from the pipeline and
that's why its #respond() method is not executed.

>
>
> >
> >>
> >>
> >>>>
> >>>>
> >>>>>>> <?xml version="1.0" encoding="UTF-8"?><ajax-response><component
> >>>>>>> id="id178" ><![CDATA[<span id="id178">
> >>>>>>> <div class="wizard-form">
> >>>>>>> <div id="id204">
> >>>>>>> <div class="wizard-overview">
> >>>>>>>
> >>>>>>> </div>
> >>>>>>> <div class="wizard-header">
> >>>>>>> <div>
> >>>>>>> <div>
> >>>>>>> <div class="wizard-step-title">
> >>>>>>> <div></div>
> >>>>>>> </div>
> >>>>>>> <div class="wizard-step-summary">
> >>>>>>> <div></div>
> >>>>>>> </div>
> >>>>>>> </div>
> >>>>>>> </div>
> >>>>>>> </div>
> >>>>>>> <div class="wizard-view">
> >>>>>>> <div id="id207">
> >>>>>>> <span id="id226">
> >>>>>>> <span id="id227">
> >>>>>>>
> >>>>>>> ...
> >>>>>>>
> >>>>>>>>> [1]
> >>>>>>>>>
> >>>>>>>>>
> >>>
> https://github.com/apache/wicket/blob/3704144b73521c6b10de5fa7864773230762e86c/wicket-core/src/main/java/org/apache/wicket/page/XmlPartialPageUpdate.java#L141
> >>>
> >>>>>>>>> [2]
> >>>>>>>>>
> >>>>>>>>>
> >>>
> https://github.com/apache/wicket/blob/3704144b73521c6b10de5fa7864773230762e86c/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketResponse.java#L86
> >>>
> >>>>>>>>>>> Thanks
> >>>>>>>>>>>
> >>>>>>>>>>>>>> What is the type of resourceCreateEvent.getTarget() ?
> >>>>>>>>>>>>>> Is it WebSocketRequestHandler or AjaxRequestHandler ?
> >>>>>>>>>>>>> "resourceCreateEvent.getTarget()"type is
> >>>>>>>>>>>>> "AjaxRequestHandler".
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>>> [1]
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>
> https://github.com/apache/syncope/blob/2_1_X/client/console/src/main/java/org/apache/syncope/client/console/topology/Topology.java#L602-L609
> >>>
> >>>>>>>>>>>>>>> On 21/02/19 10:01, Martin Grigorov wrote:
> >>>>>>>>>>>>>>>> Hi,
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Check the browser's Dev Tools' console for any JavaScript
> >>>>> errors.
> >>>>>>>>>>>>>>>> If there are no errors then check in the DevTools
> >>>>>>>>>>>>>>>> Network tab
> >>>>>>>>> whether
> >>>>>>>>>>>>> the
> >>>>>>>>>>>>>>>> WebSocket response frame contains the JS code in its
> >>>>>>>>>>>>>>>> body. It
> >>>>>>> must
> >>>>>>>>> be
> >>>>>>>>>>>>>>>> inside <execution> XML element. If it is not there at all
> >>> then
> >>>>> it
> >>>>>>>>>>> must
> >>>>>>>>>>>>> be
> >>>>>>>>>>>>>>>> something on the server side.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> On Thu, Feb 21, 2019 at 10:54 AM Matteo Alessandroni <
> >>>>>>>>>>>>>>> skylar...@apache.org>
> >>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> Hi,
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> we have a logic where a websocket message is sent from an
> >>>>>>>>>>> "onEvent()"
> >>>>>>>>>>>>>>>>> method [1] and catched in a WebSocketBehavior class [2].
> >>>>>>>>>>>>>>>>> Then, a call to a js method "addEndpoint()"[3] must be
> >>>>> executed.
> >>>>>>>>>>>>>>>>> Our problem is that the js code "addEndpoint(...)" inside
> >>>>>>>>>>>>>>>>> "handler.appendJavaScript(...)" [4] is not executed,
> >>>>>>>>>>>>>>>>> so the
> >>>>> code
> >>>>>>>>>>>>>>>>> correctly reaches that switch case but it's like the
> >>>>>>>>>>>>>>>>> "appendJavaScript(...)" is not working.
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> On our application v2.0.x that code works and it uses
> >>>>>>>>>>>>>>>>> Wicket
> >>>>>>> 7.x,
> >>>>>>>>>>>>> while
> >>>>>>>>>>>>>>>>> the newer v2.1.x  uses Wicket 8.x and it does not work.
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> Could you please give us an hint of this? Is there
> >>>>>>>>>>>>>>>>> anything
> >>> we
> >>>>>>> are
> >>>>>>>>>>>>>>>>> missing to make it work for Wicket 8.x?
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> Thank you!
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> [1]
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>
> https://github.com/apache/syncope/blob/2_1_X/client/console/src/main/java/org/apache/syncope/client/console/topology/Topology.java#L602-L609
> >>>
> >>>>>>>>>>>>>>>>> [2]
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>
> https://github.com/apache/syncope/blob/2_1_X/client/console/src/main/java/org/apache/syncope/client/console/topology/TopologyWebSocketBehavior.java#L153-L157
> >>>
> >>>>>>>>>>>>>>>>> [3]
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>
> https://github.com/apache/syncope/blob/2_1_X/client/console/src/main/resources/META-INF/resources/js/topology.js#L269-L280
> >>>
> >>>>>>>>>>>>>>>>> [4]
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>
> https://github.com/apache/syncope/blob/2_1_X/client/console/src/main/java/org/apache/syncope/client/console/topology/TopologyWebSocketBehavior.java#L154
> >>>
> >>>>>>>>>>>>>>>>> --
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> Dott. Matteo Alessandroni
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> Software Engineer @ Tirasa S.r.l.
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> Viale Vittoria Colonna, 97 - 65127 Pescara
> >>>>>>>>>>>>>>>>> Tel +39 0859116307 / FAX +39 0859111173
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> http://www.tirasa.net
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> Apache Syncope PMC Member
> >>>>>>>>>>>>>>>>> http://people.apache.org/phonebook.html?uid=skylark17
> >>>>>>>>>>>>>>>>> <http://people.apache.org/phonebook.html?uid=skylark17>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> Tirasa S.r.l. <http://www.tirasa.net>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> --
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> Dott. Matteo Alessandroni
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> Software Engineer @ Tirasa S.r.l.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> Viale Vittoria Colonna, 97 - 65127 Pescara
> >>>>>>>>>>>>>>> Tel +39 0859116307 / FAX +39 0859111173
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> http://www.tirasa.net
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> Apache Syncope PMC Member
> >>>>>>>>>>>>>>> http://people.apache.org/phonebook.html?uid=skylark17
> >>>>>>>>>>>>>>> <http://people.apache.org/phonebook.html?uid=skylark17>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> Tirasa S.r.l. <http://www.tirasa.net>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>> --
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Dott. Matteo Alessandroni
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Software Engineer @ Tirasa S.r.l.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Viale Vittoria Colonna, 97 - 65127 Pescara
> >>>>>>>>>>>>> Tel +39 0859116307 / FAX +39 0859111173
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> http://www.tirasa.net
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Apache Syncope PMC Member
> >>>>>>>>>>>>> http://people.apache.org/phonebook.html?uid=skylark17
> >>>>>>>>>>>>> <http://people.apache.org/phonebook.html?uid=skylark17>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Tirasa S.r.l. <http://www.tirasa.net>
> >>>>>>>>>>>>>
> >>>>>>>>>>> --
> >>>>>>>>>>>
> >>>>>>>>>>> Dott. Matteo Alessandroni
> >>>>>>>>>>>
> >>>>>>>>>>> Software Engineer @ Tirasa S.r.l.
> >>>>>>>>>>>
> >>>>>>>>>>> Viale Vittoria Colonna, 97 - 65127 Pescara
> >>>>>>>>>>> Tel +39 0859116307 / FAX +39 0859111173
> >>>>>>>>>>>
> >>>>>>>>>>> http://www.tirasa.net
> >>>>>>>>>>>
> >>>>>>>>>>> Apache Syncope PMC Member
> >>>>>>>>>>> http://people.apache.org/phonebook.html?uid=skylark17
> >>>>>>>>>>> <http://people.apache.org/phonebook.html?uid=skylark17>
> >>>>>>>>>>>
> >>>>>>>>>>> Tirasa S.r.l. <http://www.tirasa.net>
> >>>>>>>>>>>
> >>>>>>>>> --
> >>>>>>>>>
> >>>>>>>>> Dott. Matteo Alessandroni
> >>>>>>>>>
> >>>>>>>>> Software Engineer @ Tirasa S.r.l.
> >>>>>>>>>
> >>>>>>>>> Viale Vittoria Colonna, 97 - 65127 Pescara
> >>>>>>>>> Tel +39 0859116307 / FAX +39 0859111173
> >>>>>>>>>
> >>>>>>>>> http://www.tirasa.net
> >>>>>>>>>
> >>>>>>>>> Apache Syncope PMC Member
> >>>>>>>>> http://people.apache.org/phonebook.html?uid=skylark17
> >>>>>>>>> <http://people.apache.org/phonebook.html?uid=skylark17>
> >>>>>>>>>
> >>>>>>>>> Tirasa S.r.l. <http://www.tirasa.net>
> >>>>>>>>>
> >>>>>>> --
> >>>>>>>
> >>>>>>> Dott. Matteo Alessandroni
> >>>>>>>
> >>>>>>> Software Engineer @ Tirasa S.r.l.
> >>>>>>>
> >>>>>>> Viale Vittoria Colonna, 97 - 65127 Pescara
> >>>>>>> Tel +39 0859116307 / FAX +39 0859111173
> >>>>>>>
> >>>>>>> http://www.tirasa.net
> >>>>>>>
> >>>>>>> Apache Syncope PMC Member
> >>>>>>> http://people.apache.org/phonebook.html?uid=skylark17
> >>>>>>> <http://people.apache.org/phonebook.html?uid=skylark17>
> >>>>>>>
> >>>>>>> Tirasa S.r.l. <http://www.tirasa.net>
> >>>>>>>
> >>>>> --
> >>>>>
> >>>>> Dott. Matteo Alessandroni
> >>>>>
> >>>>> Software Engineer @ Tirasa S.r.l.
> >>>>>
> >>>>> Viale Vittoria Colonna, 97 - 65127 Pescara
> >>>>> Tel +39 0859116307 / FAX +39 0859111173
> >>>>>
> >>>>> http://www.tirasa.net
> >>>>>
> >>>>> Apache Syncope PMC Member
> >>>>> http://people.apache.org/phonebook.html?uid=skylark17
> >>>>> <http://people.apache.org/phonebook.html?uid=skylark17>
> >>>>>
> >>>>> Tirasa S.r.l. <http://www.tirasa.net>
> >>>>>
> >>> --
> >>>
> >>> Dott. Matteo Alessandroni
> >>>
> >>> Software Engineer @ Tirasa S.r.l.
> >>>
> >>> Viale Vittoria Colonna, 97 - 65127 Pescara
> >>> Tel +39 0859116307 / FAX +39 0859111173
> >>>
> >>> http://www.tirasa.net
> >>>
> >>> Apache Syncope PMC Member
> >>> http://people.apache.org/phonebook.html?uid=skylark17
> >>> <http://people.apache.org/phonebook.html?uid=skylark17>
> >>>
> >>> Tirasa S.r.l. <http://www.tirasa.net>
> >>>
> >
>
> --
>
> Dott. Matteo Alessandroni
>
> Software Engineer @ Tirasa S.r.l.
>
> Viale Vittoria Colonna, 97 - 65127 Pescara
> Tel +39 0859116307 / FAX +39 0859111173
>
> http://www.tirasa.net
>
> Apache Syncope PMC Member
> http://people.apache.org/phonebook.html?uid=skylark17
> <http://people.apache.org/phonebook.html?uid=skylark17>
>
> Tirasa S.r.l. <http://www.tirasa.net>
>

Reply via email to