https://code.cor-lab.de/https://code.cor-lab.de/favicon.ico?14019720732014-02-25T17:36:33ZOpen Source Collaboration PlatformRobotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=51862014-02-25T17:36:33ZJ. Moringenjmoringe@cor-lab.uni-bielefeld.de
<ul><li><strong>Description</strong> updated (<a href="/journals/diff/5186?detail_id=6124" title="View differences">diff</a>)</li></ul> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=53352014-03-26T00:36:49ZJ. Moringenjmoringe@cor-lab.uni-bielefeld.de
<ul><li><strong>Assignee</strong> set to <i>S. Wrede</i></li></ul> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=53782014-04-10T12:35:50ZJ. Moringenjmoringe@cor-lab.uni-bielefeld.de
<ul><li><strong>Assignee</strong> changed from <i>S. Wrede</i> to <i>S. Sharma</i></li></ul> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=54032014-04-14T21:40:14ZS. Sharmasuchitsharma_2007@yahoo.co.in
<ul><li><strong>% Done</strong> changed from <i>0</i> to <i>10</i></li></ul> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=54182014-04-17T09:26:17ZS. Sharmasuchitsharma_2007@yahoo.co.in
<ul><li><strong>% Done</strong> changed from <i>10</i> to <i>20</i></li></ul><p>- created basic structure<br />- divided model.cpp to hostinfo.java , partipantinfo.java , etc<br />- done with extracting mac address for host info - yet to test<br />- working on methods of informationsender.java , 20 % done yet<br />Question :<br />Do I need to attend the thursday meeting ?</p> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=54192014-04-17T11:33:15ZJ. Moringenjmoringe@cor-lab.uni-bielefeld.de
<ul></ul><p>Suchit Sharma wrote:</p>
<blockquote>
<p>Question :<br />Do I need to attend the thursday meeting ?</p>
</blockquote>
<p>Only if you want. It is not clear whether there will be a meeting today, anyway.</p> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=54202014-04-22T11:33:59ZS. Sharmasuchitsharma_2007@yahoo.co.in
<ul></ul><p>the function "bye" in introspectionsender.cpp calls rsb::protocol::introspection::Bye , do we need to implement this class rsb::protocol::introspection::Bye i java as well . If yes , could you please send me the cpp code for it for reference.</p> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=54222014-04-22T13:29:00ZJ. Wienkejwienke@techfak.uni-bielefeld.de
<ul></ul><p>This is automatically generated from the protobuf files that are part of the rsb-protocol project. If you use the correct version of the protocol, you should automatically have an implementation for that class in java as well.</p> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=54232014-04-22T14:14:39ZJ. Moringenjmoringe@cor-lab.uni-bielefeld.de
<ul><li><strong>Status</strong> changed from <i>New</i> to <i>In Progress</i></li></ul> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=54742014-04-24T09:43:20ZS. Sharmasuchitsharma_2007@yahoo.co.in
<ul><li><strong>% Done</strong> changed from <i>20</i> to <i>40</i></li></ul><ul>
<li>How can I test the introspection client , do I nned to make some java version of plugin.cpp(in introspection package in c++ version) or is there any other way ?</li>
</ul>
<ul>
<li>There are few rsc references in c++ code like:<br /><code> void handle(EventPtr query) {<br />if (query->getType() == rsc::runtime::typeName<void>()) { .. }<br />}</code><br />I could not understand what is the class of query compared to here(what does rsc::runtime::typeName<void>() return) ?</li>
</ul>
<ul>
<li>The Logger has many states fine, finer etc . Which ones have to be used in which case ? In c++ there is a RSCDEBUG but I dont see LOG.debug in java so should these messages go to LOG.fine()</li>
</ul> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=54762014-04-24T13:07:50ZJ. Wienkejwienke@techfak.uni-bielefeld.de
<ul></ul><p>I'll try to answer whatever I can.</p>
<p>Suchit Sharma wrote:</p>
<blockquote>
<ul>
<li>There are few rsc references in c++ code like:<br /><code> void handle(EventPtr query) {<br />if (query->getType() == rsc::runtime::typeName<void>()) { .. }<br />}</code><br />I could not understand what is the class of query compared to here(what does rsc::runtime::typeName<void>() return) ?</li>
</ul>
</blockquote>
<p>Your example would check whether the data included in the event are of type void. This is done by a string comparison due to the lack of real reflection capabilities in C++. typeName returns a string representation for the type that is given in the template argument, in this case <code><void></code>.</p>
<p>As java has real reflection capabilities, there is no string declaring the data type. Instead, Class objects are used. So a similar comparison in java would be<br /><pre>
event.getType().equals(Void.class)
</pre></p>
<p>In C++, your variable <code>query</code> is also just an rsb event.</p>
<blockquote>
<ul>
<li>The Logger has many states fine, finer etc . Which ones have to be used in which case ? In c++ there is a RSCDEBUG but I dont see LOG.debug in java so should these messages go to LOG.fine()</li>
</ul>
</blockquote>
<p>There are no real rules that we use. Using fine for debug sounds ok. Finer would probably relate to TRACE in C++.</p> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=54782014-04-24T13:52:42ZJ. Moringenjmoringe@cor-lab.uni-bielefeld.de
<ul></ul><p>Suchit Sharma wrote:</p>
<blockquote>
<ul>
<li>How can I test the introspection client , do I nned to make some java version of plugin.cpp(in introspection package in c++ version) or is there any other way ?</li>
</ul>
</blockquote>
<p>If your code already sends introspection events, the RSB logger should be able to display these events. If your code already sends correct introspection events, we can test whether it works with the introspection display tool.</p>
<p>We can schedule another meeting if you are not sure how to proceed.</p> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=55992014-05-21T11:21:03ZS. Sharmasuchitsharma_2007@yahoo.co.in
<ul></ul><p>I impelemented introspection.java according to RSB protocol specification ,and still facing some issues while testing , can we schedule a meeting to verify this and decide on how to proceed.</p> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=56002014-05-23T11:27:10ZS. Sharmasuchitsharma_2007@yahoo.co.in
<ul></ul><p>I was again getting spread connection error after a few minor changes(which should not be the cause) , the port is commented in rsb.conf so that socket connection is used , below is the error in QueryHandlerTest.java , it occurs when testListner(Listner to the queue of events is activated) :<br /><code>May 23, 2014 1:04:15 PM rsb.transport.spread.SpreadWrapper makeConnection<br />INFO: reoccuring +SpreadException+ during connect to daemon: Socket(): java.net.ConnectException: Connection refused<br /></code><br />may be it is still trying to connect to spread.</p> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=56022014-05-23T15:30:08ZS. Wredeswrede@cor-lab.uni-bielefeld.de
<ul></ul><p>Are you 100% sure that no further <code>rsb.conf</code> is involved? Please also check your home directory: <code>~/.config/rsb.conf</code></p> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=56032014-05-23T15:37:12ZJ. Wienkejwienke@techfak.uni-bielefeld.de
<ul></ul><p>There is also a rsb.conf inside the project root folder. If you launch your binaries with PWD being the project root folder, this config is evaluated.</p> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=56042014-05-23T19:53:15ZS. Wredeswrede@cor-lab.uni-bielefeld.de
<ul></ul><p>Johannes: This is true. However, I suspect that Suchit wants to run the unit tests from within Eclipse. The <code>rsb.conf</code> in the project's root folder is defined for use with the ant-based unit tests, isn't it?</p>
<p>So, either he configures his spread daemon to use the ports defined in this rsb.conf or the tests from within Eclipse will fail.</p> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=56052014-05-25T22:50:41ZS. Sharmasuchitsharma_2007@yahoo.co.in
<ul></ul><p>Thanks, the problem was due to presence of rsb.conf in ~/.config/rsb.conf as well as the project folder, after commenting both , socket connection was made.<br />I was also able to remove certain exceptions due which tests were failing, but there was a conversion exception:</p>
<p>*rsb.converter.NoSuchConverterException:No conveter with key rsb.protocol.introspection.HelloType$Hello$Builder registered in ConverterMap
*</p>
<p>this seems to occur when event.setdata() is used for Hello's builder.<br />Do we need to register the hello builder before using?</p> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=56062014-05-26T08:34:51ZS. Wredeswrede@cor-lab.uni-bielefeld.de
<ul></ul><p>You are right. As you use the converter subsystem as any regular RSB application, you have to tell the framework how to convert these types. I've just added the fundamental introspection types (feel free to extend / correct if necessary) at the respective place:</p>
<p><a class="external" href="https://code.cor-lab.de/projects/rsb/repository/rsb-java/diff?utf8=%E2%9C%93&rev=a78aaf9e1e6af47659d92c41cc8fb52c2515d2a2&rev_to=dfdff019f6c3f4fcd516ac506352499c41af4ef5">https://code.cor-lab.de/projects/rsb/repository/rsb-java/diff?utf8=%E2%9C%93&rev=a78aaf9e1e6af47659d92c41cc8fb52c2515d2a2&rev_to=dfdff019f6c3f4fcd516ac506352499c41af4ef5</a></p>
<p>Please pull these changes and try again...</p> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=56072014-05-26T14:36:39ZS. Sharmasuchitsharma_2007@yahoo.co.in
<ul></ul><p>I have pulled the changes but still get the same error.I even tried some other things but doesn't seem to work.</p> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=56082014-05-26T15:40:12ZJ. Wienkejwienke@techfak.uni-bielefeld.de
<ul></ul><p>The important thing is that the converter registration needs to be done before you create the participants.</p> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=56102014-05-27T08:41:17ZS. Wredeswrede@cor-lab.uni-bielefeld.de
<ul></ul><p>The code should be called through the <code>rsb.Factory</code>. I suppose that there is a different problem.</p>
<p>BTW: What kind of test are you executing? The QueryHandlerTest still fails for me with the <code>NullPointerException</code> at the exact same location as last week.</p> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=56112014-05-27T10:43:22ZS. Sharmasuchitsharma_2007@yahoo.co.in
<ul></ul><p>I had made changes to QueryHandlerTest.java and commited them earlier, in my machine I dont get the null pointer exception anymore.Could you please pull the changes and try once more.</p>
<p>@Johannes - Could you please explain how the converter registration has to be done.<br />Do I have to register the converters somewhere in QueryHandlerTest.java</p> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=56122014-05-27T10:45:26ZS. Wredeswrede@cor-lab.uni-bielefeld.de
<ul></ul><p>@Suchit. You must not register the converters manually for your case.</p> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=56132014-05-27T10:47:53ZS. Wredeswrede@cor-lab.uni-bielefeld.de
<ul></ul><p>@Suchit. Did you push your changes?</p>
<p>There aren't any recent commits from your side:</p>
<p><a class="external" href="https://code.cor-lab.de/projects/rsb/repository/rsb-java?utf8=%E2%9C%93&rev=feature-introspection">https://code.cor-lab.de/projects/rsb/repository/rsb-java?utf8=%E2%9C%93&rev=feature-introspection</a></p> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=56142014-05-27T10:54:01ZS. Wredeswrede@cor-lab.uni-bielefeld.de
<ul></ul><p>And, for the converter registration, please check the corresponding example (although it should not be implemented this way for this feature):</p>
<p><a class="external" href="http://docs.cor-lab.de//rsb-manual/trunk/html/examples-converters.html#tutorial-converters">http://docs.cor-lab.de//rsb-manual/trunk/html/examples-converters.html#tutorial-converters</a></p> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=56152014-05-28T11:32:34ZS. Sharmasuchitsharma_2007@yahoo.co.in
<ul></ul><p>I have done the changes we discussed yesterday , test case is running now. Could you please verify if its fine and also tell me what to do next.</p> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=56162014-05-28T15:56:00ZS. Sharmasuchitsharma_2007@yahoo.co.in
<ul></ul><p>Test case for ProcessInfoServerTest.java is also getting passed but throws NosuchConverterException on the console.<br />Also I have implemented the checks if data is correct or not, but the checks to see if the real functionality of synchronyzing the clocks is working or not ,has to be impemented ,but I dont have much idea how to do that.</p> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=56512014-07-09T00:06:07ZS. Sharmasuchitsharma_2007@yahoo.co.in
<ul></ul><p>I was trying call c code through JNI in rsb java , this c code gets host name and host id of the machine by calling some functions (does the same thing as cpp implementation of introspection).the JVM throws fatal error without significant logs when I try to run this .The error is due to currentHostId function in c thats for sure but I dont get an idea since my knowledge with c is limited.<br />To run the program I have made a simple class TestJNIString.java in rsb.introspection package it calls the native library file in rsb/native/libs folder. Right now make configuration and genrated libmyjni.so is for linux , to compile it for MAC name has to be changed in make file from libmyjni.so to libmyjni.dylib. The make file to compile c code is in "native" folder in feature-introspection of rsb project.</p> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=56522014-07-09T14:11:36ZJ. Wienkejwienke@techfak.uni-bielefeld.de
<ul></ul><p>I have no idea where you got the C code from, but in its contains an error that is causing the crash you see.</p>
<p>First of all I had to fix several java issues before I could even compile that java code. Please make sure that the code you check in compiles.</p>
<p>For the error: If you add the <code>-ggdb</code> flag to the compiler invocation in <code>makefile</code>, your native library will be compiled with debug symbols so that we can use the <code>gdb</code> debugger to find out what is going on. After recompiling the library (<code>make clean && make</code>) we can now start the whole java process inside <code>gdb</code> to get a C debugger (from the root folder of the project):<br /><pre>
gdb --args java -cp bin/ -Djava.library.path=native/libs/ rsb.introspection.TestJNIString
</pre><br />After pressing <code>r</code> the program will run until it crashes, which happens quite soon here. After that you can enter <code>bt</code> which shows the following backtrace:<br /><pre>
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffff7fb0700 (LWP 17543)]
__isoc99_fscanf (stream=0x0, format=0x7fffe5299b8a "%[^\n]") at isoc99_fscanf.c:31
31 isoc99_fscanf.c: No such file or directory.
(gdb) bt
#0 __isoc99_fscanf (stream=0x0, format=0x7fffe5299b8a "%[^\n]") at isoc99_fscanf.c:31
#1 0x00007fffe5299a3d in tryFile (filename=0x7fffe5299b5f "/etc/machine-id") at TestJNIString.c:72
#2 0x00007fffe5299995 in currentHostId () at TestJNIString.c:40
#3 0x00007fffe5299911 in Java_rsb_introspection_TestJNIString_sayHello (env=0x7ffff00071d8, thisObj=0x7ffff7faf9a8, inJNIStr=0x7ffff7faf9a0) at TestJNIString.c:18
#4 0x00007fffed011790 in ?? ()
#5 0x00007ffff7faf9a8 in ?? ()
#6 0x00007fffed0130a8 in ?? ()
#7 0x00007ffff7faf940 in ?? ()
#8 0x000000077a271f40 in ?? ()
#9 0x00007ffff7faf9a8 in ?? ()
#10 0x000000077a272340 in ?? ()
#11 0x0000000000000000 in ?? ()
</pre><br />This indicates that <code>tryFile</code> from your code tries to open <code>/etc/machine-id</code> which does not exist. The name of the method <code>tryFile</code> implies that it should actually be graceful in case a file does not exist, but the implementation in your branch is not. So this is the root cause of the crash you are experiencing. You somehow need to fix this and check for existence of the file before trying to scan through it.</p>
<p>Where did you get the C code from?</p> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=56532014-07-09T21:48:01ZS. Sharmasuchitsharma_2007@yahoo.co.in
<ul></ul><p>Thanks , I wrote the c code myself , taking rsb cpp as reference.</p> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=56582014-07-16T12:56:37ZS. Sharmasuchitsharma_2007@yahoo.co.in
<ul></ul><p>I implemented the below methods in C and am able to call them through JNI in Java:<br /> currentProcessId();<br /> currentHostId();<br /> currentHostname();<br /> currentProgramName();<br /> currentCommandlineArguments();<br /> currentProcessStartTime();</p>
<p>the c implementaion is in rsb/native/introspectionJNI.c , can be called by test java class rsb.introspection.IntrospectionJNI.java which works fine , same methods are also called in HostInfo.java and ProcessInfo.java(Unit testing yet to be done) .</p>
<p>There were two doubts/problem: <br />1. currentCommandlineArguments() is this method required , its not present in introspection c++ version as well.<br />2. In currentProcessStartTime() in rsb/native/introspection.c there is a problem in parsing regex to read start times from /proc/stat and /proc/self/stat files . Even though regex is correct , there is some problem in matching of regex , I tried to resolve it but since I am not very familiar with C it was not resolved.</p>
<p>P.S. as you might know I will be leaving for next 12 days starting tommorow and will be back on 29th . I still have to unit test host and process info and then test the whole thing with CL introspection tool.</p>
<p>I will be in citec today and tommorow so you can call me anytime if its required.</p> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=57512014-08-27T10:23:27ZS. Sharmasuchitsharma_2007@yahoo.co.in
<ul><li><strong>% Done</strong> changed from <i>40</i> to <i>80</i></li></ul><p>Portable as well as default(native) version of introspection sender seem to be working now.I will get it verified by Jan.<br />Please suggest what I should be doing after this.</p> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=57692014-09-02T13:31:11ZS. Wredeswrede@cor-lab.uni-bielefeld.de
<ul></ul><p>On MacOS, the current way of getting the PID does not work.</p>
<pre>
java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:504)
at java.lang.Integer.parseInt(Integer.java:527)
at rsb.introspection.PortableProcessInfo.getPid(PortableProcessInfo.java:94)
at rsb.introspection.PortableProcessInfo.<init>(PortableProcessInfo.java:62)
at rsb.introspection.IntrospectionSender.<init>(IntrospectionSender.java:88)
at rsb.introspection.IntrospectionObserver.<init>(IntrospectionObserver.java:48)
at rsb.Factory.enableIntrospection(Factory.java:83)
at rsb.introspection.EnableIntrospectionTest.test(EnableIntrospectionTest.java:42)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
</pre>
<p>However, according to <a class="external" href="http://stackoverflow.com/questions/35842/how-can-a-java-program-get-its-own-process-id">http://stackoverflow.com/questions/35842/how-can-a-java-program-get-its-own-process-id</a><br />the following JVM call should do on most implementations:</p>
<pre>
Using the java management and monitoring API (java.lang.management):
ManagementFactory.getRuntimeMXBean().getName();
returns something like:
28906@localhost
where 28906 is the PID of JVM's process, which is in fact the PID of my app.
</pre> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=57702014-09-02T13:41:30ZS. Wredeswrede@cor-lab.uni-bielefeld.de
<ul></ul><p>Next: Command line does not work with current linux-based implementation on MacOS:</p>
<pre>
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.AbstractStringBuilder.substring(AbstractStringBuilder.java:872)
at java.lang.StringBuilder.substring(StringBuilder.java:72)
at java.lang.AbstractStringBuilder.subSequence(AbstractStringBuilder.java:849)
at java.lang.StringBuilder.subSequence(StringBuilder.java:72)
at rsb.introspection.PortableProcessInfo.getProgramName(PortableProcessInfo.java:125)
at rsb.introspection.PortableProcessInfo.<init>(PortableProcessInfo.java:64)
at rsb.introspection.IntrospectionSender.<init>(IntrospectionSender.java:88)
at rsb.introspection.IntrospectionObserver.<init>(IntrospectionObserver.java:48)
at rsb.Factory.enableIntrospection(Factory.java:83)
at rsb.introspection.EnableIntrospectionTest.test(EnableIntrospectionTest.java:42)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
</pre> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=57712014-09-02T13:49:05ZS. Wredeswrede@cor-lab.uni-bielefeld.de
<ul></ul><p>Missing bits and pieces:</p>
<ul>
<li>MacOS non-JNI implementations</li>
<li>Kind of participant not set</li>
<li>Hierarchical participants</li>
<li>Introspection Listener / Informer objects shouldn't introspect themselves...</li>
<li>Testing, Testing, Testing, ... (also load testing)</li>
</ul> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=58172014-09-14T11:00:11ZJ. Moringenjmoringe@cor-lab.uni-bielefeld.de
<ul><li><strong>Category</strong> changed from <i>Java</i> to <i>Introspection</i></li></ul> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=58322014-09-14T11:01:33ZJ. Moringenjmoringe@cor-lab.uni-bielefeld.de
<ul><li><strong>Assignee</strong> changed from <i>S. Sharma</i> to <i>S. Wrede</i></li></ul> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=58412014-09-14T13:48:57ZJ. Moringenjmoringe@cor-lab.uni-bielefeld.de
<ul><li><strong>Category</strong> changed from <i>Introspection</i> to <i>Java</i></li></ul> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=63122014-12-07T17:38:14ZS. Wredeswrede@cor-lab.uni-bielefeld.de
<ul><li><strong>Status</strong> changed from <i>In Progress</i> to <i>Feedback</i></li><li><strong>Assignee</strong> changed from <i>S. Wrede</i> to <i>J. Wienke</i></li><li><strong>% Done</strong> changed from <i>80</i> to <i>100</i></li></ul><p>Initial implementation done and available in <code>wip-introspection</code>. Complete refactoring and partial rewrite of <code>feature-introspection</code>. Incorporated Johannes review feedback. Tested so far on MacOS 10.10 and Ubuntu 14.04 with Java 7. Should partially work on Windows as well. That said, the introspection code definitely requires more testing.</p>
<p>I am handing this over to Johannes for a final check and to eventually push this to master.</p> Robotics Service Bus - Feature #1742: Implement introspection event senderhttps://code.cor-lab.de/issues/1742?journal_id=63182014-12-11T12:12:51ZJ. Wienkejwienke@techfak.uni-bielefeld.de
<ul><li><strong>Status</strong> changed from <i>Feedback</i> to <i>Resolved</i></li></ul><p>Applied in changeset <a href="https://code.cor-lab.de/projects/rsb/repository/rsb-java/revisions/8abc8f82fb2108e09e62cc842b7ca472b10d23e4" class="changeset" title="Implement introspection support Implements introspection support for java. fixes #1742 fixes #1...">rsb-java|8abc8f82fb2108e09e62cc842b7ca472b10d23e4</a>.</p>