You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@karaf.apache.org by Paul Fraser <pa...@qnenet.com> on 2019/06/01 06:01:35 UTC
Debugging Itests
Hi,
The example itests code has line "KarafDistributionOption.debugConfiguration("8889", true) commented
out.
Presumably, the idea is to uncomment and debug of the itest becomes possible. (for intellij set port
to 5005 and remote debug config set in intellij)
When I try to debug the target connects -
"Connected to the target VM, address: '127.0.0.1:52458', transport: 'socket' " and then
"Listening for transport dt_socket at address:5005"
If I run debugging outside an itest with "bin\karaf debug" , it works.
What am I missing in the debug itests case?
Paul Fraser
Re: Debugging Itests
Posted by Paul Fraser <pa...@qnenet.com>.
Hi,
On 2/06/2019 7:20 am, Paul Fraser wrote:
> Hmm,
> Over thinking the problem..I was looking in the wrong place.
>
> When setting up MavenArtifactUrlReference I had the artifact "type" being set AFTER
> "versionAsInProject"
> Fixed this and the Karaf magic worked.
My comments (above) are rubbish.
The order of the build of the MavenArtifactUrlReference does not matter.
Paul Fraser
Re: Debugging Itests
Posted by Łukasz Dywicki <lu...@code-house.org>.
Hey Paul,
Within pax exam there are several processes which gets started. One
which you need to debug is Karaf one. All steps you mentioned seems to
be correct.
Debugging of option creation is not subject of debugConfiguration. This
code is executed by maven (surefire) or IDE you run. In order to debug
calculation of runtime configurations you need to debug process which
does that, namely junit executor.
General guide - @Configuration method is called before managed process
is launched thus can't be subject of standard Karaf debugging.
Keep in mind that surefire debugging might be tricky, but IntelliJ
should be rather smooth. Just remember to swap debugger ports.
In terms of exam debug configuration - pax allows you to specify port
but also "hold" flag to wait for debugger to be attached:
See:
org.ops4j.pax.exam.karaf.options.KarafDistributionOption#debugConfiguration(java.lang.String,
boolean)
If you will set second argument to true runtime won't be started until
you attach your debugger. Sometimes it is necessary to catch events
associated with bundles which are starting early.
From what I observed IntelliJ can also skip breakpoints which have
signature mismatches. Make sure you have all versions in sync.
Kind regards,
Łukasz
--
Code-House http://code-house.org
On 11.06.2019 12:07, Paul Fraser wrote:
> Hi Again,
>
> Is it possible in an itest to debug into the inner karaf runtime?
>
> To try and debug into the "listBundleCommand" test in the Karaf Itest
> example I tried
>
> 1. Set breakpoint on "String httpPort = ..." in the "public Option[]
> config()" method in the itest code.
> 2. Set breakpoint at first line in "listBundleCommand" test.
> 3. Set a remote configuration in Intellij with port 5005.
> 4. start karaf with bin/karaf debug.
> 5. console displays "Listening for transport dt at address: 5005
> 6. Karaf starts up with branding and prompt.
> 7. Shift-F9 in intellij starts a debug session.
> 8. Debug console displays "Connected to the target VM, address:
> 'localhost:5005", transport: 'socket'
> 9. Run test (debug)
> 10. Debugger stops at breakpoint '1' above.
> 11. Does not stop at breakpoint '2' above.
> 12. "listBundleCommand" test runs to completion and output as expected.
>
> If it can be done, what am I missing?
>
> Paul Fraser
>
>
>
>
>
>
>
>
>
Re: Debugging Itests
Posted by Paul Fraser <pa...@qnenet.com>.
Hi Again,
Is it possible in an itest to debug into the inner karaf runtime?
To try and debug into the "listBundleCommand" test in the Karaf Itest example I tried
1. Set breakpoint on "String httpPort = ..." in the "public Option[] config()" method in the itest
code.
2. Set breakpoint at first line in "listBundleCommand" test.
3. Set a remote configuration in Intellij with port 5005.
4. start karaf with bin/karaf debug.
5. console displays "Listening for transport dt at address: 5005
6. Karaf starts up with branding and prompt.
7. Shift-F9 in intellij starts a debug session.
8. Debug console displays "Connected to the target VM, address: 'localhost:5005", transport: 'socket'
9. Run test (debug)
10. Debugger stops at breakpoint '1' above.
11. Does not stop at breakpoint '2' above.
12. "listBundleCommand" test runs to completion and output as expected.
If it can be done, what am I missing?
Paul Fraser
Re: Debugging Itests
Posted by Paul Fraser <pa...@qnenet.com>.
Hmm,
Over thinking the problem..I was looking in the wrong place.
When setting up MavenArtifactUrlReference I had the artifact "type" being set AFTER "versionAsInProject"
Fixed this and the Karaf magic worked.
Thanks JB and Francois for your assistance.
Also, https://www.youtube.com/watch?v=qNmBZjJcups&feature=youtu.be Eclipsecon presentation by Łukasz
Dywicki has been very helpful.
In fact, the presentation by Lukasz, fortunately, caused me to take a new look at Karaf, which I
have been ignoring for years.
Support on this list during this learning phase has been outstanding, thanks..
Paul
On 2/06/2019 2:06 am, Jean-Baptiste Onofré wrote:
> You need debugConfiguration only if you want to specify the port.
>
> By default it's 5005 (not random), so, yes, it should work straight forward.
>
> Regards
> JB
>
> On 01/06/2019 14:04, Paul Fraser wrote:
>> On 1/06/2019 7:10 pm, Jean-Baptiste Onofré wrote:
>>> Actually, if you run in debug mode directly in intellij, it works,
>>> nothing special is required.
>> Does this mean it is not necessary to uncomment
>> "KarafDistributionOption.debugConfiguration("5005", true)"?
>>> Are you running your itests in IntelliJ ?
>> Yes. Trying to..
>>
>> It seems that somewhere the port for the connection to the java vm is
>> not being set to 5005 but a random high value.
>>
>> Should the port for the vm be set to 5005 by Karaf when debugging?
>>
>> Paul
>>
>>
>>> Regards
>>> JB
>>>
>>> On 01/06/2019 08:09, Paul Fraser wrote:
>>>> On 1/06/2019 4:03 pm, Jean-Baptiste Onofré wrote:
>>>>> Hi Paul,
>>>>>
>>>>> What Pax Exam version are you using ?
>>>> pax exam 4.13.1 and Karaf 4.2.5
>>>>
>>>> Paul
>>>>
>>>>> Regards
>>>>> JB
>>>>>
>>>>> On 01/06/2019 08:01, Paul Fraser wrote:
>>>>>> Hi,
>>>>>>
>>>>>> The example itests code has line
>>>>>> "KarafDistributionOption.debugConfiguration("8889", true) commented
>>>>>> out.
>>>>>>
>>>>>> Presumably, the idea is to uncomment and debug of the itest becomes
>>>>>> possible. (for intellij set port to 5005 and remote debug config
>>>>>> set in
>>>>>> intellij)
>>>>>>
>>>>>> When I try to debug the target connects -
>>>>>>
>>>>>> "Connected to the target VM, address: '127.0.0.1:52458', transport:
>>>>>> 'socket' " and then
>>>>>>
>>>>>> "Listening for transport dt_socket at address:5005"
>>>>>>
>>>>>> If I run debugging outside an itest with "bin\karaf debug" , it works.
>>>>>>
>>>>>> What am I missing in the debug itests case?
>>>>>>
>>>>>> Paul Fraser
>>>>>>
>>>>>>
Re: Debugging Itests
Posted by Jean-Baptiste Onofré <jb...@nanthrax.net>.
You need debugConfiguration only if you want to specify the port.
By default it's 5005 (not random), so, yes, it should work straight forward.
Regards
JB
On 01/06/2019 14:04, Paul Fraser wrote:
> On 1/06/2019 7:10 pm, Jean-Baptiste Onofré wrote:
>> Actually, if you run in debug mode directly in intellij, it works,
>> nothing special is required.
> Does this mean it is not necessary to uncomment
> "KarafDistributionOption.debugConfiguration("5005", true)"?
>> Are you running your itests in IntelliJ ?
>
> Yes. Trying to..
>
> It seems that somewhere the port for the connection to the java vm is
> not being set to 5005 but a random high value.
>
> Should the port for the vm be set to 5005 by Karaf when debugging?
>
> Paul
>
>
>>
>> Regards
>> JB
>>
>> On 01/06/2019 08:09, Paul Fraser wrote:
>>> On 1/06/2019 4:03 pm, Jean-Baptiste Onofré wrote:
>>>> Hi Paul,
>>>>
>>>> What Pax Exam version are you using ?
>>> pax exam 4.13.1 and Karaf 4.2.5
>>>
>>> Paul
>>>
>>>> Regards
>>>> JB
>>>>
>>>> On 01/06/2019 08:01, Paul Fraser wrote:
>>>>> Hi,
>>>>>
>>>>> The example itests code has line
>>>>> "KarafDistributionOption.debugConfiguration("8889", true) commented
>>>>> out.
>>>>>
>>>>> Presumably, the idea is to uncomment and debug of the itest becomes
>>>>> possible. (for intellij set port to 5005 and remote debug config
>>>>> set in
>>>>> intellij)
>>>>>
>>>>> When I try to debug the target connects -
>>>>>
>>>>> "Connected to the target VM, address: '127.0.0.1:52458', transport:
>>>>> 'socket' " and then
>>>>>
>>>>> "Listening for transport dt_socket at address:5005"
>>>>>
>>>>> If I run debugging outside an itest with "bin\karaf debug" , it works.
>>>>>
>>>>> What am I missing in the debug itests case?
>>>>>
>>>>> Paul Fraser
>>>>>
>>>>>
>
--
Jean-Baptiste Onofré
jbonofre@apache.org
http://blog.nanthrax.net
Talend - http://www.talend.com
Re: Debugging Itests
Posted by "francois.papon" <fr...@openobject.fr>.
Hi,Don't you have another Karaf instance runing?Pax-exam will try to find a newer free portregards,FrancoisEnvoyé depuis mon smartphone Samsung Galaxy.
-------- Message d'origine --------De : Paul Fraser <pa...@qnenet.com> Date : 01/06/2019 16:04 (GMT+04:00) À : user@karaf.apache.org Objet : Re: Debugging Itests On 1/06/2019 7:10 pm, Jean-Baptiste Onofré wrote:> Actually, if you run in debug mode directly in intellij, it works,> nothing special is required.Does this mean it is not necessary to uncomment "KarafDistributionOption.debugConfiguration("5005", true)"?> Are you running your itests in IntelliJ ?Yes. Trying to..It seems that somewhere the port for the connection to the java vm is not being set to 5005 but a random high value.Should the port for the vm be set to 5005 by Karaf when debugging?Paul>> Regards> JB>> On 01/06/2019 08:09, Paul Fraser wrote:>> On 1/06/2019 4:03 pm, Jean-Baptiste Onofré wrote:>>> Hi Paul,>>>>>> What Pax Exam version are you using ?>> pax exam 4.13.1 and Karaf 4.2.5>>>> Paul>>>>> Regards>>> JB>>>>>> On 01/06/2019 08:01, Paul Fraser wrote:>>>> Hi,>>>>>>>> The example itests code has line>>>> "KarafDistributionOption.debugConfiguration("8889", true) commented out.>>>>>>>> Presumably, the idea is to uncomment and debug of the itest becomes>>>> possible. (for intellij set port to 5005 and remote debug config set in>>>> intellij)>>>>>>>> When I try to debug the target connects ->>>>>>>> "Connected to the target VM, address: '127.0.0.1:52458', transport:>>>> 'socket' " and then>>>>>>>> "Listening for transport dt_socket at address:5005">>>>>>>> If I run debugging outside an itest with "bin\karaf debug" , it works.>>>>>>>> What am I missing in the debug itests case?>>>>>>>> Paul Fraser>>>>>>>>
Re: Debugging Itests
Posted by Paul Fraser <pa...@qnenet.com>.
On 1/06/2019 7:10 pm, Jean-Baptiste Onofré wrote:
> Actually, if you run in debug mode directly in intellij, it works,
> nothing special is required.
Does this mean it is not necessary to uncomment "KarafDistributionOption.debugConfiguration("5005",
true)"?
> Are you running your itests in IntelliJ ?
Yes. Trying to..
It seems that somewhere the port for the connection to the java vm is not being set to 5005 but a
random high value.
Should the port for the vm be set to 5005 by Karaf when debugging?
Paul
>
> Regards
> JB
>
> On 01/06/2019 08:09, Paul Fraser wrote:
>> On 1/06/2019 4:03 pm, Jean-Baptiste Onofré wrote:
>>> Hi Paul,
>>>
>>> What Pax Exam version are you using ?
>> pax exam 4.13.1 and Karaf 4.2.5
>>
>> Paul
>>
>>> Regards
>>> JB
>>>
>>> On 01/06/2019 08:01, Paul Fraser wrote:
>>>> Hi,
>>>>
>>>> The example itests code has line
>>>> "KarafDistributionOption.debugConfiguration("8889", true) commented out.
>>>>
>>>> Presumably, the idea is to uncomment and debug of the itest becomes
>>>> possible. (for intellij set port to 5005 and remote debug config set in
>>>> intellij)
>>>>
>>>> When I try to debug the target connects -
>>>>
>>>> "Connected to the target VM, address: '127.0.0.1:52458', transport:
>>>> 'socket' " and then
>>>>
>>>> "Listening for transport dt_socket at address:5005"
>>>>
>>>> If I run debugging outside an itest with "bin\karaf debug" , it works.
>>>>
>>>> What am I missing in the debug itests case?
>>>>
>>>> Paul Fraser
>>>>
>>>>
Re: Debugging Itests
Posted by Jean-Baptiste Onofré <jb...@nanthrax.net>.
Actually, if you run in debug mode directly in intellij, it works,
nothing special is required.
Are you running your itests in IntelliJ ?
Regards
JB
On 01/06/2019 08:09, Paul Fraser wrote:
> On 1/06/2019 4:03 pm, Jean-Baptiste Onofré wrote:
>> Hi Paul,
>>
>> What Pax Exam version are you using ?
>
> pax exam 4.13.1 and Karaf 4.2.5
>
> Paul
>
>>
>> Regards
>> JB
>>
>> On 01/06/2019 08:01, Paul Fraser wrote:
>>> Hi,
>>>
>>> The example itests code has line
>>> "KarafDistributionOption.debugConfiguration("8889", true) commented out.
>>>
>>> Presumably, the idea is to uncomment and debug of the itest becomes
>>> possible. (for intellij set port to 5005 and remote debug config set in
>>> intellij)
>>>
>>> When I try to debug the target connects -
>>>
>>> "Connected to the target VM, address: '127.0.0.1:52458', transport:
>>> 'socket' " and then
>>>
>>> "Listening for transport dt_socket at address:5005"
>>>
>>> If I run debugging outside an itest with "bin\karaf debug" , it works.
>>>
>>> What am I missing in the debug itests case?
>>>
>>> Paul Fraser
>>>
>>>
>
--
Jean-Baptiste Onofré
jbonofre@apache.org
http://blog.nanthrax.net
Talend - http://www.talend.com
Re: Debugging Itests
Posted by Paul Fraser <pa...@qnenet.com>.
On 1/06/2019 4:03 pm, Jean-Baptiste Onofré wrote:
> Hi Paul,
>
> What Pax Exam version are you using ?
pax exam 4.13.1 and Karaf 4.2.5
Paul
>
> Regards
> JB
>
> On 01/06/2019 08:01, Paul Fraser wrote:
>> Hi,
>>
>> The example itests code has line
>> "KarafDistributionOption.debugConfiguration("8889", true) commented out.
>>
>> Presumably, the idea is to uncomment and debug of the itest becomes
>> possible. (for intellij set port to 5005 and remote debug config set in
>> intellij)
>>
>> When I try to debug the target connects -
>>
>> "Connected to the target VM, address: '127.0.0.1:52458', transport:
>> 'socket' " and then
>>
>> "Listening for transport dt_socket at address:5005"
>>
>> If I run debugging outside an itest with "bin\karaf debug" , it works.
>>
>> What am I missing in the debug itests case?
>>
>> Paul Fraser
>>
>>
Re: Debugging Itests
Posted by Jean-Baptiste Onofré <jb...@nanthrax.net>.
Hi Paul,
What Pax Exam version are you using ?
Regards
JB
On 01/06/2019 08:01, Paul Fraser wrote:
> Hi,
>
> The example itests code has line
> "KarafDistributionOption.debugConfiguration("8889", true) commented out.
>
> Presumably, the idea is to uncomment and debug of the itest becomes
> possible. (for intellij set port to 5005 and remote debug config set in
> intellij)
>
> When I try to debug the target connects -
>
> "Connected to the target VM, address: '127.0.0.1:52458', transport:
> 'socket' " and then
>
> "Listening for transport dt_socket at address:5005"
>
> If I run debugging outside an itest with "bin\karaf debug" , it works.
>
> What am I missing in the debug itests case?
>
> Paul Fraser
>
>
--
Jean-Baptiste Onofré
jbonofre@apache.org
http://blog.nanthrax.net
Talend - http://www.talend.com