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