Package org.jrd.backend.communication
Class FsAgent
- java.lang.Object
-
- org.jrd.backend.communication.FsAgent
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static interface
FsAgent.CpOperator<T>
private static class
FsAgent.ListingCpOperator
private static class
FsAgent.OperateOnCp<T>
private static class
FsAgent.ReadingCpOperator
private static class
FsAgent.WritingCpOperator
-
Constructor Summary
Constructors Modifier Constructor Description private
FsAgent(java.util.List<java.io.File> cp)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description 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)
private int
cleanOverrides(java.util.regex.Pattern pattern)
static FsAgent
get(VmInfo vmInfo)
java.util.List<java.lang.String>
getOverrides()
private java.lang.String
readClasses(boolean details)
private static java.lang.String
sanitize(java.lang.String s)
private java.lang.String
sendByteCode(java.lang.String clazz)
java.lang.String
submitRequest(java.lang.String request)
Opens a socket and sends the request to the agent via socket.static java.lang.String
toClass(java.lang.String s)
private java.lang.Void
uploadByteCode(java.lang.String clazz, java.lang.String body)
-
-
-
Field Detail
-
cp
private final java.util.List<java.io.File> cp
-
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
-
-
Method Detail
-
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 interfaceJrdAgent
- 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)
-
-