Class ClassicProcessIdResolver

  • All Implemented Interfaces:
    Prioritized, ProcessIdResolver, java.lang.Comparable<Prioritized>

    public class ClassicProcessIdResolver
    extends java.lang.Object
    implements ProcessIdResolver
    A ProcessIdResolver implementation for classic JDK versions (5 - 8).

    This class resolves the current process ID using the name obtained from RuntimeMXBean.getName(). The format of the returned name is usually:

    • pid@hostname
    where pid represents the process ID. This resolver extracts and returns the numeric part before the '@' symbol.

    Supported Environments

    This resolver is designed to work on Java 5 through Java 8, where newer APIs like java.lang.ProcessHandle#current() are not available.

    Example Output

    
     // Assuming RuntimeMXBean.getName() returns "12345@localhost"
     ClassicProcessIdResolver resolver = new ClassicProcessIdResolver();
     if (resolver.supports()) {
         Long pid = resolver.current();
         System.out.println("Current PID: " + pid); // Outputs: Current PID: 12345
     }
     

    Logging Behavior

    If trace logging is enabled via the underlying logger (Logger), this resolver logs the resolved PID along with the raw value obtained from the runtime MXBean:

    
     [TRACE] The PID was resolved from the method 'java.lang.management.RuntimeMXBean#getName()' = 12345@localhost : 12345
     

    Priority

    This resolver has a priority level set to Prioritized.NORMAL_PRIORITY plus 9, which means it will be considered after resolvers with higher priority but before those with lower.

    Since:
    1.0.0
    Author:
    Mercy
    See Also:
    ProcessIdResolver
    • Constructor Detail

      • ClassicProcessIdResolver

        public ClassicProcessIdResolver()
    • Method Detail

      • supports

        public boolean supports()
        Description copied from interface: ProcessIdResolver
        Whether supports to resolve the process id or not?
        Specified by:
        supports in interface ProcessIdResolver
        Returns:
        true if supports, otherwise false
      • current

        public java.lang.Long current()
        Description copied from interface: ProcessIdResolver
        Resolve the current process id
        Specified by:
        current in interface ProcessIdResolver
        Returns:
        >null if can't be resolved