Feature #1982

Feature #2139: Finalize introspection implementation

Enable introspection senders by default?

Added by J. Moringen over 9 years ago. Updated over 6 years ago.

Status:In ProgressStart date:09/05/2014
Priority:NormalDue date:
Assignee:J. Moringen% Done:

60%

Category:Introspection
Target version:rsb-0.18

Description

I think we decided to enable introspection by default at some point.

Now we should probably discuss when and how we want to make that transition after the implementations get pushed.

Associated revisions

Revision e9a5887c
Added by J. Moringen about 9 years ago

Disable introspection by default in rsb/__init__.py

refs #1982

  • rsb/__init__.py (ParticipantConfig.__fromDict): disable introspection
    by default
    (ParticipantConfig.fromDefaultSources): likewise

Revision 59e3ef41
Added by J. Moringen about 9 years ago

Enable introspection by default in

refs #1982

Note that the introspection plugin still has to be loaded manually for
now.

  • src/rsb/ParticipantConfig.cpp (ParticipantConfig::ParticipantConfig):
    initialize the introspection member variable to true

Revision b06849e5
Added by J. Moringen about 9 years ago

Enable introspection by default in src/rsb/ParticipantConfig.cpp

refs #1982

Note that the introspection plugin still has to be loaded manually for
now.

  • src/rsb/ParticipantConfig.cpp (ParticipantConfig::ParticipantConfig):
    initialize the introspection member variable to true

Revision 6180b9a5
Added by J. Moringen about 9 years ago

Enable introspection by default in src/rsb/config/ParticipantConfig[Creator].java

refs #1982

  • src/rsb/config/ParticipantConfig.java
    (ParticipantConfig.introspectionEnabled): changed value false -> true
  • src/rsb/config/ParticipantConfigCreator.java
    (ParticipantConfigCreator.reconfigure): changed default value of
    introspection property false -> true
  • test/rsb/ParticipantObservationTest.java
    (ParticipantObservationTest.config): new member variable;
    configuration without introspection for tests
    (ParticipantObservationTest.setUp): initialize new config member
    (Participant.listenerNotifies): use configuration when constructing
    (ParticipantObservatonTest.participantNotifies): likewise
    (ParticipantObservatonTest.informerNotifies): likewise
    (ParticipantObservatonTest.remoteServerNotifies): likewise
    (ParticipantObservatonTest.localServerNotifies): likewise
    (ParticipantObservatonTest.localMethodNotifies): likewise
    (ParticipantObservatonTest.remoteMethodNotifies): likewise
  • test/rsb/config/ParticipantConfigTest.java
    (ParticipantConfigTest.introspectionEnabled): adapted expected values
    to changed default value
  • test/rsb/config/ParticipantConfigCreatorTest.java
    (ParticipantConfigCreatorTest.introspection): likewise

History

#1 Updated by J. Moringen over 9 years ago

@Johannes, Sebastian: Do you think we should attempt this?

For Common Lisp, Python and probably Java, enabling introspection by default should (technically) not be problem since the functionality is always available.

In C++, introspection can only be enabled, if the plugin is loaded. As a result, making "enabled" the default would only have an effect if the plugin is loaded. Otherwise the configuration option would be ignored.

There are also the potential stability and performance implications to consider (additional Spread connections, additional communication, periodic ping events, etc).

In the apartment context, introspection did not cause any problems (that I am aware of). However, in some situations, for example on embedded systems, users may object to having introspection enabled by default.

#2 Updated by S. Wrede over 9 years ago

Generally, I vote for switching introspection on by default as it provides an important tool for both new and experienced users. For experienced users, it should be no problem to switch off the introspection in case it leads to resource issues.

A more conservative strategy could also be to let it switched off by default in RSB 0.11 and enable it by default in 0.12. That way, we could first get some hands-on experience with the new feature.

#3 Updated by J. Moringen over 9 years ago

  • Status changed from Feedback to In Progress
  • Target version changed from rsb-0.11 to rsb-0.12
We decided to not enable introspection by default for the 0.11 release for the following reasons:
  • Avoid the possibility of introducing stability and/or performance issues for systems running with default configuration
  • How would always loading the C++ introspection plugin be accomplished?
  • How will introspection interact with participant configuration via URLs?

We will reconsider the possibility for the 0.12 release.

#4 Updated by J. Moringen over 9 years ago

  • Parent task changed from #44 to #2139

#5 Updated by J. Moringen about 9 years ago

  • Assignee set to J. Moringen

#6 Updated by J. Moringen about 9 years ago

  • % Done changed from 0 to 60

#7 Updated by J. Wienke almost 9 years ago

Is there anything missing for this issue to be resolved?

#8 Updated by J. Wienke over 8 years ago

  • Target version changed from rsb-0.12 to rsb-0.13

#9 Updated by J. Moringen about 8 years ago

  • Target version changed from rsb-0.13 to rsb-0.14

#10 Updated by J. Moringen almost 8 years ago

  • Target version changed from rsb-0.14 to rsb-0.15

#11 Updated by J. Moringen over 7 years ago

  • Target version changed from rsb-0.15 to rsb-0.16

#12 Updated by J. Moringen almost 7 years ago

  • Target version changed from rsb-0.16 to rsb-0.17

#13 Updated by J. Moringen over 6 years ago

  • Target version changed from rsb-0.17 to rsb-0.18

Also available in: Atom PDF