@@ -1421,12 +1421,17 @@ data NodeJVMInfo = NodeJVMInfo {
1421 , nodeJVMVMVersion :: VMVersion
1421 , nodeJVMVMVersion :: VMVersion
1422 -- ^ JVM doesn't seme to follow normal version conventions
1422 -- ^ JVM doesn't seme to follow normal version conventions
1423 , nodeJVMVMName :: Text
1423 , nodeJVMVMName :: Text
1424− , nodeJVMVersion :: VersionNumber
1424+ , nodeJVMVersion :: JVMVersion
1425 , nodeJVMPID :: PID
1425 , nodeJVMPID :: PID
1426 } deriving (Eq, Show)
1426 } deriving (Eq, Show)
1428−-- | Handles quirks in the way JVM versions are rendered (1.7.0_101 -> 1.7.0.101)
1428+-- | We cannot parse JVM version numbers and we're not going to try.
1429+newtype JVMVersion =
1429−newtype JVMVersion = JVMVersion { unJVMVersion :: VersionNumber }
1430+ JVMVersion { unJVMVersion :: Text }
1431+ deriving (Eq, Show)
1433+instance FromJSON JVMVersion where
1434+ parseJSON = withText "JVMVersion" (pure . JVMVersion)
1431data JVMMemoryInfo = JVMMemoryInfo {
1436data JVMMemoryInfo = JVMMemoryInfo {
1432 jvmMemoryInfoDirectMax :: Bytes
1437 jvmMemoryInfoDirectMax :: Bytes
@@ -2240,14 +2245,9 @@ instance FromJSON NodeJVMInfo where
2240 <*> o .: "vm_vendor"
2245 <*> o .: "vm_vendor"
2241 <*> o .: "vm_version"
2246 <*> o .: "vm_version"
2242 <*> o .: "vm_name"
2247 <*> o .: "vm_name"
2243− <*> (unJVMVersion <$> o .: "version")
2248+ <*> o .: "version"
2244 <*> o .: "pid"
2249 <*> o .: "pid"
2246−instance FromJSON JVMVersion where
2247− parseJSON (String t) =
2248− JVMVersion <$> parseJSON (String (T.replace "_" "." t))
2249− parseJSON v = JVMVersion <$> parseJSON v
2251instance FromJSON JVMMemoryInfo where
2251instance FromJSON JVMMemoryInfo where
2252 parseJSON = withObject "JVMMemoryInfo" parse
2252 parseJSON = withObject "JVMMemoryInfo" parse