Class FsAgent

    • Field Detail

      • AGENTS

        private static final java.util.Map<VmInfo,​FsAgent> AGENTS
      • cp

        private final java.util.List<java.io.File> cp
      • suffix

        private final java.lang.String suffix
      • originals

        private final java.util.Map<java.lang.String,​java.lang.String> originals
        This is exact oposite of how remote agent does this. Remote agent keeps all overrides, because when new class defintion is laoded original is plled, and is modifed (overvritten) by new deffnitio.

        On contrary, in FS, the class is after writing immediately overriden in file FileSystem. So we keep original, saved during first override. If we keep original, we know class was overwritten. The removal of of override == restore of original (and remvoal of original from map

        In addition, insted of byte[] we store base64 encoded String

    • Constructor Detail

      • FsAgent

        private FsAgent​(java.util.List<java.io.File> cp,
                        java.lang.String suffix)
    • Method Detail

      • createAdditionalClassPathFsAgent

        public static FsAgent createAdditionalClassPathFsAgent​(java.lang.String cp)
      • createAdditionalClassPathFsAgent

        public static FsAgent createAdditionalClassPathFsAgent​(java.util.List<java.io.File> cp)
      • createAdditionalSourcePathFsAgent

        public static FsAgent createAdditionalSourcePathFsAgent​(java.lang.String cp)
      • createAdditionalSourcePathFsAgent

        public static FsAgent createAdditionalSourcePathFsAgent​(java.util.List<java.io.File> cp)
      • getOverrides

        public java.util.List<java.lang.String> getOverrides()
      • cleanOverrides

        private int cleanOverrides​(java.util.regex.Pattern pattern)
      • submitRequest

        public java.lang.String submitRequest​(java.lang.String request)
        Opens a socket and sends the request to the agent via socket.
        Specified by:
        submitRequest in interface DelegatingJrdAgent
        Specified by:
        submitRequest in interface JrdAgent
        Parameters:
        request - either "CLASSES" or "BYTES \n className", other formats are refused
        Returns:
        agents response or null
      • uploadByteCode

        private java.lang.Void uploadByteCode​(java.lang.String clazz,
                                              java.lang.String body)
      • sendByteCode

        private java.lang.String sendByteCode​(java.lang.String clazz)
      • readClasses

        private java.lang.String readClasses​(boolean details)
                                      throws java.io.IOException
        Throws:
        java.io.IOException
      • addJustClass

        private static void addJustClass​(java.lang.String s,
                                         java.util.List<java.lang.String> classes,
                                         java.lang.String root,
                                         boolean details,
                                         java.lang.String detailsPath)
      • toClass

        public static java.lang.String toClass​(java.lang.String s)
      • sanitize

        private static java.lang.String sanitize​(java.lang.String s)