RFR: 6627: Bring bundles to core [v3]
Alex Macdonald
aptmac at openjdk.org
Tue Nov 21 14:30:44 UTC 2023
On Wed, 8 Nov 2023 01:01:29 GMT, Alex Macdonald <aptmac at openjdk.org> wrote:
>> This PR addresses JMC-6627 [[0]](https://bugs.openjdk.org/browse/JMC-6627) in which it would be nice to bring some bundles from application to core. Most notably, **flightrecorder.configuration** which has a PR open for review [[1]](https://github.com/openjdk/jmc/pull/469) and is also tracked by JMC-7307 [[2]](https://bugs.openjdk.org/browse/JMC-7307), and **RJMX** which is also tracked by JMC-7069 [[3]](https://bugs.openjdk.org/browse/JMC-7069).
>>
>> While #469 is still under review, I copied a branch of it and squashed all the commits down into one commit [[4]](https://github.com/openjdk/jmc/commit/72c08b3f65671d16fcbb1333a5782e10ac9c874f) for easier rebasing. Review comments for flightrecorder.configuration should go towards #469. RJMX does have reliance on the flightrecorder.configuration changes (and some still in ui.common), so the second commit [[5]](https://github.com/openjdk/jmc/commit/f1c828dd46f24d9075cd3eedbf5a15bb9daf9a72) here is where this PR really starts. Once #469 is merged I can rebase this PR so that it handles RJMX.
>>
>> As mentioned in JMC-6627 [[0]](https://bugs.openjdk.org/browse/JMC-6627), because of the way Eclipse is intertwined with the RJMX code, this isn't a straightforward movement of classes. There are some parts that will need to stay on the side of jmc/application, but much of the code can come over to jmc/core with modification. This is accomplished by having a `rjmx.common` module in core, and keeping regular `rjmx` in application.
>>
>> There are a handful of classes (e.g., `NameConverter`, `SyntheticAttributeRepository`, `SyntheticNotificationRepository`, ..) that use Eclipse to initialize them by parsing through values in plugin.xml, or use classes (like Persistence and Preferences) that are closely tied to the Eclipse RCP side of things. I brought over these classes to core and kept the code that initializes the values from extensions on the application side, so they could be set from application -> core when running JMC, but for third-party applications that want to use the RJMX code then they might not need/require this initialization.
>>
>> [0] https://bugs.openjdk.org/browse/JMC-6627
>> [1] https://github.com/openjdk/jmc/pull/469
>> [2] https://bugs.openjdk.org/browse/JMC-7307
>> [3] https://bugs.openjdk.org/browse/JMC-7069
>> [4] https://github.com/openjdk/jmc/commit/72c08b3f65671d16fcbb1333a5782e10ac9c874f
>> [5] https://github.com/openjdk/jmc/commit/f1c828dd46f24d9075cd3eedbf5a15bb9daf9a72
>
> Alex Macdonald has updated the pull request incrementally with three additional commits since the last revision:
>
> - Remove duplication of MRITransformationToolkit
> - Remove flightrecorder.configuration from application/coverage
> - Fix typo in SyntheticRepositoryInitializer function
Ping for reviews.
I know there's a lot of movement here, I generated a couple trees to better illustrate the changes and hopefully make reviewing this PR a bit less daunting. Running a diff on the trees it looks like ~102 classes were moved from rjmx to rjmx.common, plus rjmx.services.jfr and a handful of classes in jmc.common & flightrecorder.configuration.
Let me know if you need any more clarification or questions answered.
**Before:**
<details closed>
<summary>jmc/application/org.openjdk.jmc.rjmx</summary>
application/org.openjdk.jmc.rjmx/
├── build.properties
├── icons
│ ├── console_view.png
│ ├── date-span-16.png
│ ├── day-of-week-16.png
│ ├── diagnostic-command-16.png
│ ├── hprof-16.png
│ ├── send-email-16.png
│ └── time-span-16.png
├── META-INF
│ └── MANIFEST.MF
├── plugin.properties
├── plugin.readme
├── plugin.xml
├── pom.xml
├── schema
│ ├── actionProvider.exsd
│ ├── attributeTransformation.exsd
│ ├── descriptorProvider.exsd
│ ├── metadataprovider.exsd
│ ├── service.exsd
│ ├── syntheticattribute.exsd
│ ├── syntheticnotification.exsd
│ ├── triggerActionExceptionHandlers.exsd
│ ├── triggerActions.exsd
│ ├── triggerConstraints.exsd
│ └── triggerEvaluators.exsd
└── src
└── main
├── java
│ └── org
│ └── openjdk
│ └── jmc
│ └── rjmx
│ ├── actionprovider
│ │ ├── IActionFactory.java
│ │ ├── IActionProviderFactory.java
│ │ ├── internal
│ │ │ ├── ActionDescriptor.java
│ │ │ ├── ActionProviderDescriptor.java
│ │ │ ├── ActionProviderGrammar.java
│ │ │ ├── ActionProvider.java
│ │ │ ├── ActionProviderRepository.java
│ │ │ └── DefaultActionFactory.java
│ │ └── package-info.java
│ ├── ConnectionDescriptorBuilder.java
│ ├── ConnectionException.java
│ ├── ConnectionToolkit.java
│ ├── descriptorprovider
│ │ ├── AbstractDescriptorProvider.java
│ │ ├── IDescriptorListener.java
│ │ ├── IDescriptorProvider.java
│ │ └── package-info.java
│ ├── IConnectionDescriptor.java
│ ├── IConnectionHandle.java
│ ├── IConnectionListener.java
│ ├── internal
│ │ ├── DefaultConnectionHandle.java
│ │ ├── IDisposableService.java
│ │ ├── JMXConnectionDescriptor.java
│ │ ├── JMXRMISystemPropertiesProvider.java
│ │ ├── MBeanOperationWrapper.java
│ │ ├── MCMBeanServerConnection.java
│ │ ├── package-info.java
│ │ ├── RJMXConnection.java
│ │ ├── RJMXSingleton.java
│ │ ├── ServerDescriptor.java
│ │ ├── ServerHandle.java
│ │ ├── ServerToolkit.java
│ │ ├── SyntheticAttributeEntry.java
│ │ ├── SyntheticAttributeMBeanEntry.java
│ │ ├── SyntheticAttributeRepository.java
│ │ ├── SyntheticNotificationEntry.java
│ │ ├── SyntheticNotificationMBean.java
│ │ ├── SyntheticNotificationRepository.java
│ │ └── WrappedConnectionException.java
│ ├── IPropertySyntheticAttribute.java
│ ├── IServerDescriptor.java
│ ├── IServerHandle.java
│ ├── ISyntheticAttribute.java
│ ├── ISyntheticNotification.java
│ ├── JVMSupportToolkit.java
│ ├── messages
│ │ └── internal
│ │ └── Messages.java
│ ├── package-info.java
│ ├── persistence
│ │ └── internal
│ │ ├── AttributeWriter.java
│ │ ├── package-info.java
│ │ ├── PersistenceFile.java
│ │ ├── PersistenceReader.java
│ │ ├── PersistenceServiceFactory.java
│ │ └── PersistenceWriter.java
│ ├── preferences
│ │ ├── Initializer.java
│ │ ├── JMXRMIPreferences.java
│ │ └── PreferencesKeys.java
│ ├── RJMXPlugin.java
│ ├── servermodel
│ │ ├── IDiscoveryInfo.java
│ │ ├── internal
│ │ │ ├── DiscoveryInfo.java
│ │ │ ├── ModelPersistence.java
│ │ │ ├── Server.java
│ │ │ ├── ServerModelCredentials.java
│ │ │ └── ServerModel.java
│ │ ├── IServer.java
│ │ ├── IServerModel.java
│ │ └── package-info.java
│ ├── ServiceNotAvailableException.java
│ ├── services
│ │ ├── IAttributeChild.java
│ │ ├── IAttributeInfo.java
│ │ ├── IAttribute.java
│ │ ├── IAttributeStorage.java
│ │ ├── IAttributeStorageService.java
│ │ ├── ICommercialFeaturesService.java
│ │ ├── IDiagnosticCommandService.java
│ │ ├── IDummyService.java
│ │ ├── IIndexedAttributeChild.java
│ │ ├── IKeyedAttributeChild.java
│ │ ├── IllegalOperandException.java
│ │ ├── internal
│ │ │ ├── AbstractOperation.java
│ │ │ ├── AttributeStorageServiceFactory.java
│ │ │ ├── CommercialFeaturesServiceFactory.java
│ │ │ ├── DiagnosticCommandServiceFactory.java
│ │ │ ├── HotSpot23CommercialFeaturesService.java
│ │ │ ├── HotSpot24DiagnosticCommandService.java
│ │ │ ├── HotspotManagementToolkit.java
│ │ │ ├── Messages.java
│ │ │ ├── MRIMetadataServiceFactory.java
│ │ │ ├── NoCommercialFeaturesService.java
│ │ │ ├── package-info.java
│ │ │ ├── ServiceEntry.java
│ │ │ ├── ServiceFactoryManager.java
│ │ │ └── SubscriptionServiceFactory.java
│ │ ├── IOperation.java
│ │ ├── IPersistenceService.java
│ │ ├── IReadOnlyAttribute.java
│ │ ├── IServiceFactory.java
│ │ ├── IUpdateInterval.java
│ │ ├── MRIDataSeries.java
│ │ └── package-info.java
│ ├── subscription
│ │ ├── IMBeanHelperService.java
│ │ ├── IMBeanServerChangeListener.java
│ │ ├── IMRIMetadata.java
│ │ ├── IMRIMetadataProvider.java
│ │ ├── IMRIMetadataProviderService.java
│ │ ├── IMRIMetadataService.java
│ │ ├── IMRIService.java
│ │ ├── IMRISubscription.java
│ │ ├── IMRITransformationFactory.java
│ │ ├── IMRITransformation.java
│ │ ├── IMRIValueListener.java
│ │ ├── internal
│ │ │ ├── AbstractAttributeSubscription.java
│ │ │ ├── AbstractPropertySyntheticAttribute.java
│ │ │ ├── AbstractSingleMRITransformation.java
│ │ │ ├── AbstractSyntheticAttribute.java
│ │ │ ├── AbstractSyntheticNotification.java
│ │ │ ├── AbstractUpdatePolicy.java
│ │ │ ├── AttributeExceptionEvent.java
│ │ │ ├── AttributeReregisteredEvent.java
│ │ │ ├── AttributeValueToolkit.java
│ │ │ ├── AverageTransformation.java
│ │ │ ├── ConnectionLostEvent.java
│ │ │ ├── DeadlockedThreadCountAttribute.java
│ │ │ ├── DefaultAttributeSubscription.java
│ │ │ ├── DefaultAttributeSubscriptionService.java
│ │ │ ├── DefaultAttributeSubscriptionThread.java
│ │ │ ├── DefaultMRIMetadataService.java
│ │ │ ├── DefaultNotificationSubscriptionManager.java
│ │ │ ├── DefaultSubscriptionDebugInformation.java
│ │ │ ├── DefaultUpdatePolicy.java
│ │ │ ├── DeltaTransformation.java
│ │ │ ├── DifferenceAttribute.java
│ │ │ ├── DifferenceTransformation.java
│ │ │ ├── DivisionAttribute.java
│ │ │ ├── EmptySubscriptionDebugService.java
│ │ │ ├── ExtendedMRIMetadataToolkit.java
│ │ │ ├── ExtensionMetadataProviderService.java
│ │ │ ├── FileMRIMetadataDB.java
│ │ │ ├── FileMRIMetadata.java
│ │ │ ├── HotSpotGcNotification.java
│ │ │ ├── HotSpotLastGcAttribute.java
│ │ │ ├── HotSpotLiveSetAttribute.java
│ │ │ ├── IIntervalUpdatePolicy.java
│ │ │ ├── IMRISubscriptionDebugInformation.java
│ │ │ ├── InvoluntaryDisconnectException.java
│ │ │ ├── ISubscriptionDebugService.java
│ │ │ ├── LongDifferenceAttribute.java
│ │ │ ├── MBeanMRIMetadataDB.java
│ │ │ ├── MonitoredDeadlockedThreadCountAttribute.java
│ │ │ ├── MRIMetadataWrapper.java
│ │ │ ├── MRITransformationToolkit.java
│ │ │ ├── OneShotUpdatePolicy.java
│ │ │ ├── package-info.java
│ │ │ ├── SimpleUpdatePolicy.java
│ │ │ ├── SingleMRITransformationFactory.java
│ │ │ ├── SyntheticAttributeToolkit.java
│ │ │ ├── TransformationSubscription.java
│ │ │ ├── UnavailableChildSubscriptions.java
│ │ │ ├── UnavailableSubscriptionsRepository.java
│ │ │ └── UpdatePolicyToolkit.java
│ │ ├── ISubscriptionService.java
│ │ ├── IUpdatePolicy.java
│ │ ├── MRI.java
│ │ ├── MRIMetadataToolkit.java
│ │ ├── MRIValueEvent.java
│ │ ├── package-info.java
│ │ ├── PolicyFactory.java
│ │ └── storage
│ │ └── internal
│ │ ├── BufferingAttributeStorage.java
│ │ ├── DefaultAttributeStorageService.java
│ │ └── package-info.java
│ ├── triggers
│ │ ├── actions
│ │ │ └── internal
│ │ │ ├── Messages.java
│ │ │ ├── package-info.java
│ │ │ ├── TriggerActionDiagnosticCommand.java
│ │ │ ├── TriggerActionHPROF.java
│ │ │ ├── TriggerActionLogToFile.java
│ │ │ ├── TriggerActionMail.java
│ │ │ └── TriggerActionSystemOut.java
│ │ ├── condition
│ │ │ └── internal
│ │ │ ├── Messages.java
│ │ │ ├── package-info.java
│ │ │ └── TriggerCondition.java
│ │ ├── constraints
│ │ │ └── internal
│ │ │ ├── package-info.java
│ │ │ ├── TriggerConstraintDateRange.java
│ │ │ ├── TriggerConstraintDayOfWeek.java
│ │ │ └── TriggerConstraintTimeRange.java
│ │ ├── extension
│ │ │ └── internal
│ │ │ ├── ExtensionLoader.java
│ │ │ ├── package-info.java
│ │ │ ├── TriggerComponent.java
│ │ │ └── TriggerFactory.java
│ │ ├── fields
│ │ │ └── internal
│ │ │ ├── BooleanField.java
│ │ │ ├── DateField.java
│ │ │ ├── FieldHolder.java
│ │ │ ├── Field.java
│ │ │ ├── FileField.java
│ │ │ ├── FloatField.java
│ │ │ ├── IntegerField.java
│ │ │ ├── package-info.java
│ │ │ ├── PasswordField.java
│ │ │ ├── QuantityField.java
│ │ │ ├── StringField.java
│ │ │ └── TimeField.java
│ │ ├── IActivatableTriggerAction.java
│ │ ├── IExceptionHandler.java
│ │ ├── internal
│ │ │ ├── DefaultExceptionHandler.java
│ │ │ ├── INotificationFactory.java
│ │ │ ├── Messages.java
│ │ │ ├── NotificationRegistry.java
│ │ │ ├── NotificationRuleBag.java
│ │ │ ├── NotificationToolkit.java
│ │ │ ├── NotificationTrigger.java
│ │ │ ├── package-info.java
│ │ │ ├── RegistryEntry.java
│ │ │ ├── ValueEvaluationException.java
│ │ │ ├── ValueEvaluatorBoolean.java
│ │ │ ├── ValueEvaluatorNumberMax.java
│ │ │ ├── ValueEvaluatorNumberMin.java
│ │ │ └── ValueEvaluatorStringMatch.java
│ │ ├── ISetting.java
│ │ ├── ITriggerAction.java
│ │ ├── ITriggerConstraint.java
│ │ ├── ITrigger.java
│ │ ├── IValueEvaluator.java
│ │ ├── package-info.java
│ │ ├── TriggerAction.java
│ │ ├── TriggerConstraintHolder.java
│ │ ├── TriggerConstraint.java
│ │ ├── TriggerEvent.java
│ │ └── TriggerRule.java
│ └── util
│ └── internal
│ ├── AbstractReadOnlyAttribute.java
│ ├── DefaultAttribute.java
│ ├── package-info.java
│ ├── PartitionedList.java
│ ├── RJMXStartCommand.java
│ └── SimpleAttributeInfo.java
└── resources
└── org
└── openjdk
└── jmc
└── rjmx
├── messages
│ └── internal
│ └── messages.properties
├── services
│ └── internal
│ └── messages.properties
├── subscription
│ └── internal
│ └── mrimetadata.xml
└── triggers
├── actions
│ └── internal
│ └── messages.properties
├── condition
│ └── internal
│ └── messages.properties
└── internal
└── messages.properties
</details>
**After**
<details closed>
<summary>jmc/application/org.openjdk.jmc.rjmx</summary>
application/org.openjdk.jmc.rjmx/
├── build.properties
├── icons
│ ├── console_view.png
│ ├── date-span-16.png
│ ├── day-of-week-16.png
│ ├── diagnostic-command-16.png
│ ├── hprof-16.png
│ ├── send-email-16.png
│ └── time-span-16.png
├── META-INF
│ └── MANIFEST.MF
├── plugin.properties
├── plugin.readme
├── plugin.xml
├── pom.xml
├── schema
│ ├── actionProvider.exsd
│ ├── attributeTransformation.exsd
│ ├── descriptorProvider.exsd
│ ├── metadataprovider.exsd
│ ├── service.exsd
│ ├── syntheticattribute.exsd
│ ├── syntheticnotification.exsd
│ ├── triggerActionExceptionHandlers.exsd
│ ├── triggerActions.exsd
│ ├── triggerConstraints.exsd
│ └── triggerEvaluators.exsd
└── src
└── main
├── java
│ └── org
│ └── openjdk
│ └── jmc
│ └── rjmx
│ ├── actionprovider
│ │ ├── IActionFactory.java
│ │ ├── IActionProviderFactory.java
│ │ ├── internal
│ │ │ ├── ActionDescriptor.java
│ │ │ ├── ActionProviderDescriptor.java
│ │ │ ├── ActionProviderGrammar.java
│ │ │ ├── ActionProvider.java
│ │ │ ├── ActionProviderRepository.java
│ │ │ └── DefaultActionFactory.java
│ │ └── package-info.java
│ ├── descriptorprovider
│ │ ├── AbstractDescriptorProvider.java
│ │ ├── IDescriptorListener.java
│ │ ├── IDescriptorProvider.java
│ │ └── package-info.java
│ ├── internal
│ │ ├── package-info.java
│ │ ├── RJMXSingleton.java
│ │ ├── ServerHandle.java
│ │ ├── ServerToolkit.java
│ │ ├── ServiceFactoryInitializer.java
│ │ └── SyntheticRepositoryInitializer.java
│ ├── IPropertySyntheticAttribute.java
│ ├── IServerHandle.java
│ ├── JVMSupportToolkit.java
│ ├── messages
│ │ └── internal
│ │ └── Messages.java
│ ├── package-info.java
│ ├── persistence
│ │ └── internal
│ │ ├── AttributeWriter.java
│ │ ├── package-info.java
│ │ ├── PersistenceFile.java
│ │ ├── PersistenceReader.java
│ │ ├── PersistenceServiceFactory.java
│ │ └── PersistenceWriter.java
│ ├── preferences
│ │ ├── Initializer.java
│ │ └── PreferencesKeys.java
│ ├── RJMXPlugin.java
│ ├── servermodel
│ │ ├── internal
│ │ │ ├── DiscoveryInfo.java
│ │ │ ├── ModelPersistence.java
│ │ │ ├── Server.java
│ │ │ ├── ServerModelCredentials.java
│ │ │ └── ServerModel.java
│ │ ├── IServer.java
│ │ └── IServerModel.java
│ ├── services
│ │ ├── IAttributeChild.java
│ │ ├── IAttribute.java
│ │ ├── IIndexedAttributeChild.java
│ │ ├── IKeyedAttributeChild.java
│ │ ├── internal
│ │ │ ├── MRIMetadataServiceFactory.java
│ │ │ └── package-info.java
│ │ ├── IPersistenceService.java
│ │ ├── IReadOnlyAttribute.java
│ │ ├── IUpdateInterval.java
│ │ └── package-info.java
│ ├── subscription
│ │ ├── IMRIMetadataProviderService.java
│ │ ├── internal
│ │ │ ├── AbstractPropertySyntheticAttribute.java
│ │ │ ├── AbstractSingleMRITransformation.java
│ │ │ ├── AbstractSyntheticAttribute.java
│ │ │ ├── AbstractSyntheticNotification.java
│ │ │ ├── AverageTransformation.java
│ │ │ ├── DeadlockedThreadCountAttribute.java
│ │ │ ├── DefaultMRIMetadataService.java
│ │ │ ├── DeltaTransformation.java
│ │ │ ├── DifferenceAttribute.java
│ │ │ ├── DifferenceTransformation.java
│ │ │ ├── DivisionAttribute.java
│ │ │ ├── EmptySubscriptionDebugService.java
│ │ │ ├── ExtendedMRIMetadataToolkit.java
│ │ │ ├── ExtensionMetadataProviderService.java
│ │ │ ├── FileMRIMetadataDB.java
│ │ │ ├── FileMRIMetadata.java
│ │ │ ├── HotSpotGcNotification.java
│ │ │ ├── HotSpotLastGcAttribute.java
│ │ │ ├── HotSpotLiveSetAttribute.java
│ │ │ ├── LongDifferenceAttribute.java
│ │ │ ├── MonitoredDeadlockedThreadCountAttribute.java
│ │ │ ├── MRIMetadataWrapper.java
│ │ │ ├── MRITransformationToolkit.java
│ │ │ ├── package-info.java
│ │ │ ├── SyntheticAttributeToolkit.java
│ │ │ └── UpdatePolicyToolkit.java
│ │ ├── MRIMetadataToolkit.java
│ │ ├── package-info.java
│ │ └── PolicyFactory.java
│ ├── triggers
│ │ ├── actions
│ │ │ └── internal
│ │ │ ├── Messages.java
│ │ │ ├── package-info.java
│ │ │ ├── TriggerActionDiagnosticCommand.java
│ │ │ ├── TriggerActionHPROF.java
│ │ │ ├── TriggerActionLogToFile.java
│ │ │ ├── TriggerActionMail.java
│ │ │ └── TriggerActionSystemOut.java
│ │ ├── condition
│ │ │ └── internal
│ │ │ ├── Messages.java
│ │ │ ├── package-info.java
│ │ │ └── TriggerCondition.java
│ │ ├── constraints
│ │ │ └── internal
│ │ │ ├── package-info.java
│ │ │ ├── TriggerConstraintDateRange.java
│ │ │ ├── TriggerConstraintDayOfWeek.java
│ │ │ └── TriggerConstraintTimeRange.java
│ │ ├── extension
│ │ │ └── internal
│ │ │ ├── ExtensionLoader.java
│ │ │ ├── package-info.java
│ │ │ ├── TriggerComponent.java
│ │ │ └── TriggerFactory.java
│ │ ├── fields
│ │ │ └── internal
│ │ │ ├── BooleanField.java
│ │ │ ├── DateField.java
│ │ │ ├── FieldHolder.java
│ │ │ ├── Field.java
│ │ │ ├── FileField.java
│ │ │ ├── FloatField.java
│ │ │ ├── IntegerField.java
│ │ │ ├── package-info.java
│ │ │ ├── PasswordField.java
│ │ │ ├── QuantityField.java
│ │ │ ├── StringField.java
│ │ │ └── TimeField.java
│ │ ├── IActivatableTriggerAction.java
│ │ ├── IExceptionHandler.java
│ │ ├── internal
│ │ │ ├── DefaultExceptionHandler.java
│ │ │ ├── INotificationFactory.java
│ │ │ ├── Messages.java
│ │ │ ├── NotificationRegistry.java
│ │ │ ├── NotificationRuleBag.java
│ │ │ ├── NotificationToolkit.java
│ │ │ ├── NotificationTrigger.java
│ │ │ ├── package-info.java
│ │ │ ├── RegistryEntry.java
│ │ │ ├── ValueEvaluationException.java
│ │ │ ├── ValueEvaluatorBoolean.java
│ │ │ ├── ValueEvaluatorNumberMax.java
│ │ │ ├── ValueEvaluatorNumberMin.java
│ │ │ └── ValueEvaluatorStringMatch.java
│ │ ├── ISetting.java
│ │ ├── ITriggerAction.java
│ │ ├── ITriggerConstraint.java
│ │ ├── ITrigger.java
│ │ ├── IValueEvaluator.java
│ │ ├── package-info.java
│ │ ├── TriggerAction.java
│ │ ├── TriggerConstraintHolder.java
│ │ ├── TriggerConstraint.java
│ │ ├── TriggerEvent.java
│ │ └── TriggerRule.java
│ └── util
│ └── internal
│ ├── AbstractReadOnlyAttribute.java
│ ├── DefaultAttribute.java
│ ├── package-info.java
│ ├── PartitionedList.java
│ └── RJMXStartCommand.java
└── resources
└── org
└── openjdk
└── jmc
└── rjmx
├── messages
│ └── internal
│ └── messages.properties
├── subscription
│ └── internal
│ └── mrimetadata.xml
└── triggers
├── actions
│ └── internal
│ └── messages.properties
├── condition
│ └── internal
│ └── messages.properties
└── internal
└── messages.properties
</details>
<details closed>
<summary>jmc/core/org.openjdk.jmc.rjmx.common</summary>
core/org.openjdk.jmc.rjmx.common/
├── build.properties
├── META-INF
│ └── MANIFEST.MF
├── pom.xml
└── src
└── main
├── java
│ └── org
│ └── openjdk
│ └── jmc
│ └── rjmx
│ └── common
│ ├── ConnectionDescriptorBuilder.java
│ ├── ConnectionException.java
│ ├── ConnectionToolkit.java
│ ├── IConnectionDescriptor.java
│ ├── IConnectionHandle.java
│ ├── IConnectionListener.java
│ ├── internal
│ │ ├── DefaultConnectionHandle.java
│ │ ├── IDisposableService.java
│ │ ├── JMXConnectionDescriptor.java
│ │ ├── JMXRMISystemPropertiesProvider.java
│ │ ├── MBeanOperationWrapper.java
│ │ ├── MCMBeanServerConnection.java
│ │ ├── RJMXConnection.java
│ │ ├── ServerDescriptor.java
│ │ ├── SyntheticAttributeEntry.java
│ │ ├── SyntheticAttributeMBeanEntry.java
│ │ ├── SyntheticAttributeRepository.java
│ │ ├── SyntheticNotificationEntry.java
│ │ ├── SyntheticNotificationMBean.java
│ │ ├── SyntheticNotificationRepository.java
│ │ └── WrappedConnectionException.java
│ ├── IServerDescriptor.java
│ ├── ISyntheticAttribute.java
│ ├── ISyntheticNotification.java
│ ├── messages
│ │ └── internal
│ │ └── Messages.java
│ ├── preferences
│ │ └── JMXRMIPreferences.java
│ ├── RJMXCorePlugin.java
│ ├── servermodel
│ │ ├── IDiscoveryInfo.java
│ │ └── package-info.java
│ ├── ServiceNotAvailableException.java
│ ├── services
│ │ ├── IAttributeInfo.java
│ │ ├── IAttributeStorage.java
│ │ ├── ICommercialFeaturesService.java
│ │ ├── IDiagnosticCommandService.java
│ │ ├── IDummyService.java
│ │ ├── IllegalOperandException.java
│ │ ├── internal
│ │ │ ├── AbstractOperation.java
│ │ │ ├── AttributeStorageServiceFactory.java
│ │ │ ├── CommercialFeaturesServiceFactory.java
│ │ │ ├── DiagnosticCommandServiceFactory.java
│ │ │ ├── HotSpot23CommercialFeaturesService.java
│ │ │ ├── HotSpot24DiagnosticCommandService.java
│ │ │ ├── IAttributeStorageService.java
│ │ │ ├── NoCommercialFeaturesService.java
│ │ │ ├── ServiceEntry.java
│ │ │ ├── ServiceFactoryManager.java
│ │ │ └── SubscriptionServiceFactory.java
│ │ ├── IOperation.java
│ │ ├── IServiceFactory.java
│ │ ├── jfr
│ │ │ ├── FlightRecorderToolkit.java
│ │ │ ├── internal
│ │ │ │ ├── EventOptionsToolkitV1.java
│ │ │ │ ├── EventTypeMetadataV1.java
│ │ │ │ ├── EventTypeMetadataV2.java
│ │ │ │ ├── ExcludingEventOptionMapper.java
│ │ │ │ ├── FlightRecorderCommunicationHelperV1.java
│ │ │ │ ├── FlightRecorderCommunicationHelperV2.java
│ │ │ │ ├── FlightRecorderServiceFactory.java
│ │ │ │ ├── FlightRecorderServiceV1.java
│ │ │ │ ├── FlightRecorderServiceV2.java
│ │ │ │ ├── HotspotManagementToolkit.java
│ │ │ │ ├── IFlightRecorderCommunicationHelper.java
│ │ │ │ ├── JfrRecordingInputStreamV1.java
│ │ │ │ ├── JfrRecordingInputStreamV2.java
│ │ │ │ ├── Messages.java
│ │ │ │ ├── OpenTypeConverter.java
│ │ │ │ ├── RecordingDescriptorToolkitV1.java
│ │ │ │ ├── RecordingDescriptorV1.java
│ │ │ │ ├── RecordingDescriptorV2.java
│ │ │ │ ├── RecordingOptionsToolkitV1.java
│ │ │ │ ├── RecordingOptionsToolkitV2.java
│ │ │ │ └── RecordingTemplateToolkit.java
│ │ │ └── package-info.java
│ │ └── MRIDataSeries.java
│ ├── subscription
│ │ ├── IMBeanHelperService.java
│ │ ├── IMBeanServerChangeListener.java
│ │ ├── IMRIMetadata.java
│ │ ├── IMRIMetadataProvider.java
│ │ ├── IMRIMetadataService.java
│ │ ├── IMRIService.java
│ │ ├── IMRISubscription.java
│ │ ├── IMRITransformationFactory.java
│ │ ├── IMRITransformation.java
│ │ ├── IMRIValueListener.java
│ │ ├── internal
│ │ │ ├── AbstractAttributeSubscription.java
│ │ │ ├── AbstractUpdatePolicy.java
│ │ │ ├── AttributeExceptionEvent.java
│ │ │ ├── AttributeReregisteredEvent.java
│ │ │ ├── AttributeValueToolkit.java
│ │ │ ├── ConnectionLostEvent.java
│ │ │ ├── DefaultAttributeSubscription.java
│ │ │ ├── DefaultAttributeSubscriptionService.java
│ │ │ ├── DefaultAttributeSubscriptionThread.java
│ │ │ ├── DefaultNotificationSubscriptionManager.java
│ │ │ ├── DefaultSubscriptionDebugInformation.java
│ │ │ ├── DefaultUpdatePolicy.java
│ │ │ ├── IIntervalUpdatePolicy.java
│ │ │ ├── IMRISubscriptionDebugInformation.java
│ │ │ ├── InvoluntaryDisconnectException.java
│ │ │ ├── ISubscriptionDebugService.java
│ │ │ ├── MBeanMRIMetadataDB.java
│ │ │ ├── MRITransformationBaseToolkit.java
│ │ │ ├── OneShotUpdatePolicy.java
│ │ │ ├── SimpleUpdatePolicy.java
│ │ │ ├── SingleMRITransformationFactory.java
│ │ │ ├── TransformationSubscription.java
│ │ │ ├── UnavailableChildSubscriptions.java
│ │ │ ├── UnavailableSubscriptionsRepository.java
│ │ │ └── UpdatePolicyToolkit.java
│ │ ├── ISubscriptionService.java
│ │ ├── IUpdatePolicy.java
│ │ ├── MRI.java
│ │ ├── MRIValueEvent.java
│ │ └── storage
│ │ └── internal
│ │ ├── BufferingAttributeStorage.java
│ │ ├── DefaultAttributeStorageService.java
│ │ └── package-info.java
│ └── util
│ └── internal
│ └── SimpleAttributeInfo.java
└── resources
└── org
└── openjdk
└── jmc
└── rjmx
└── common
├── messages
│ └── internal
│ └── messages.properties
└── services
└── jfr
└── internal
├── messages_ja.properties
├── messages.properties
└── messages_zh_CN.properties
</details>
-------------
PR Comment: https://git.openjdk.org/jmc/pull/531#issuecomment-1821029134
More information about the jmc-dev
mailing list