NetworkedPlanet | TMCore Engine API Guide |
Topic merging is handled automatically by TMCore under the following circumstances:
Two topics have at least one common string value in their SubjectLocators property.
Two topics have at least one common string value in their SubjectIdentifiers property.
Two topics have at least one common string value in their for the SourceLocators property.
One topic has a SubjectIdentifier property value that is in the SourceLocators property of another topic.
The need for merging is detected only when a topic is saved to the TMCore system. When merging takes place, the topic which was saved and whose modification is the cause of the merge receives all of the names and occurrences of the other topic and replaces that topic in all typing and scoping relationships. The other topic is then removed from the TMCore system. Any local reference to the removed topic is mapped through to the remaining topic automatically, but this only happens in the thread that caused the merging to take place. For all other threads, the changes will appear just as if one topic was modified and the other deleted from the system - any attempt to save changes to either of these topics after the merge occurred will result in a ConcurrentModificationException (assuming that the topics were initially retrieved from the system prior to the merge taking place).