Uploaded image for project: 'Java Mission Control'
  1. Java Mission Control
  2. JMC-7308

Move non-Eclipse dependant classes from org.openjdk.jmc.ui.common to org.openjdk.jmc.common



    • Type: Enhancement
    • Status: In Progress
    • Priority: P4
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: 9.0.0
    • Component/s: Mission Control Core
    • Labels:


      Summary: In a similar vein to JMC-7307[0], there are a number of classes currently in jmc.ui.common that would be a great asset to the core distribution (and the third-party applications that consume jmc-core), and these classes could live in jmc.common.

      It isn't as straightforward as moving all of the packages to core, as there are still classes in these jmc.ui.common packages that have dependencies on Eclipse or rjmx. Having said that, the ones listed below can be moved without much difficulty:

      • org.openjdk.jmc.ui.common.action (3)
        Executable, IActionProvider, IUserAction
      • org.openjdk.jmc.ui.common.jvm (5)
        Connectable, JVMArch, JVMCommandLineToolkit, JVMDescriptor, JVMType
      • org.openjdk.jmc.ui.common.labelingrules (7) (note, this is move probably better suited for JMC-7069, as NameConverter won't be necessary until then)
        Constants, Formatter, IVariableEvaluator, Matcher, NameConverter*, NamingRule, Variables. *NameConverter itself is a bit tricky because it relies on Eclipse, but it's core functionality does not. In my wip approach I extracted the core NameConverter logic into an abstract class (NameConverterBase) that can be extended in application/../NameConverter to keep Eclipse out of core.
      • org.openjdk.jmc.ui.common.resource (2)
        IImageResource, Resource
      • org.openjdk.jmc.ui.common.security (10)
        ActionNotGrantedException, CredentialsNotAvailableException, FailedToSaveException, ICredentials, InMemoryCredentials, ISecurityManager, PersistentCredentials, SecurlyStoredByteArray, SecurityException, SecurityManagerFactory
      • org.opendjk.jmc.ui.common.tree (3)
        IArray, IChild, IParent
      • org.openjdk.jmc.ui.common.util (4)
        Environment, Filename, ICopyable, IObservable
      • org.openjdk.jmc.ui.common.xydata (5)
        DataSeries, DefautlTimestampedData, DefaultXYData, ITimeStampedData, IXYData

      These classes could be beneficial to 3rd party applications trying to use jmc-core libraries.

      I have a wip branch that contains the above proposed changes, it can be found at: https://github.com/aptmac/jmc/tree/jmc-ui-common-to-core

      These classes are also required for a move of rjmx to core, as tracked by: https://bugs.openjdk.java.net/browse/JMC-7069

      [0] https://bugs.openjdk.java.net/browse/JMC-7307


          Issue Links



              aptmac Alex Macdonald
              aptmac Alex Macdonald
              0 Vote for this issue
              1 Start watching this issue