From 49afc9327d276dfd43ec75ca3a734f3f5f1b2b55 Mon Sep 17 00:00:00 2001 From: Ivan Olexyn Date: Sun, 17 May 2020 21:56:35 +0200 Subject: [PATCH] + doc. --- README.md | 41 +- doc/flow-n-instances.png | Bin 55194 -> 68437 bytes doc/flow-n-instances.uxf | 458 ++++++++---------- ensync.plantuml | 100 ++++ .../ensync/artifacts/artifacts.plantuml | 89 ++++ src/com/olexyn/ensync/ensync.plantuml | 70 +++ src/com/olexyn/ensync/ui/ui.plantuml | 59 +++ test/files/files.plantuml | 14 + 8 files changed, 544 insertions(+), 287 deletions(-) create mode 100644 ensync.plantuml create mode 100644 src/com/olexyn/ensync/artifacts/artifacts.plantuml create mode 100644 src/com/olexyn/ensync/ensync.plantuml create mode 100644 src/com/olexyn/ensync/ui/ui.plantuml create mode 100644 test/files/files.plantuml diff --git a/README.md b/README.md index 0c8d9a7..cc8dce4 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -### Table of Contents +#### Table of Contents 1. [Demo](#demo) 1. [About](#about) 4. [Package Contents](#package-contents) @@ -7,19 +7,19 @@

-### Demo -[![IMAGE ALT TEXT](http://img.youtube.com/vi/cjoVE7d1JXY/0.jpg)](https://youtu.be/cjoVE7d1JXY "ensync WIP Demo") +#### Demo +[![IMAGE ALT TEXT](http://img.youtube.com/vi/znR3jyM_4Ss/0.jpg)](https://youtu.be/znR3jyM_4Ss "ensync WIP Demo")
-### About +#### About Sync files across directories. ![alt text](https://raw.githubusercontent.com/IO42630/ensync/master/doc/flow-n-instances.png "Hello!")

-### Package Contents +#### Package Contents | Path | Comment | |---------------|-------------| @@ -35,18 +35,12 @@ src.com.olexyn.ensync. | Low level helper methods.

-### Issues +#### Issues -##### High Prio - -- Have Map entries be remove, once file ops is performed. -- Create a parallel Thread for each SyncEnity. -- Add support for modification dates. - - And thereby eventually support 10 out of 10 file operation types. +- Add tests. +- Remove Map entries, once file ops is performed. - Reduce disk access. -- Have some error handling. (i.e. if a web-directory is not available) -- Create a UI. -- Start the program at system start. +- Add error handling. (i.e. if a web-directory is not available) - Track files that were modified during the loop. - currently `writeStateFile` just takes from `find` - this means any changes made during the loop will be written to the `StateFile` @@ -54,23 +48,10 @@ src.com.olexyn.ensync. | Low level helper methods. - because of this it will appear as if the file created while the loop was running was already there. - thus the creation of said file will not be replicated to the other directories. - - to solve this `writeStateFile` should take the old `State` and manually add every operation that was performed by the loop (!= user created file while the loop was running). - - however this will be done later . . maybe. - - -##### Medium Prio -- If file is deleted in DirA and DirB, then two delete commands will be issued. - - They will both return errors and effectively do nothing. - - However this is a dirty solution. - - Fix this by checking if deleted file of DirA exists in DirB.listDeleted - - To do so .listDeleted would need to be a field of Dir - - And the .lists of every dir would need to be calculated before any deletion took place. - - Check if the reduced reobustness is worth the prettier solution. + - to solve this `writeStateFile` should take the old `State` + and manually add every operation that was performed by the loop (!= user created file while the loop was running). - File is created in DirB - Sync creates the file in DirA - Sync creates the file in DirB - this means the file in DirB is overwritten with `cp` for no reason. - implement a check to prevent this. - - -##### Low Prio \ No newline at end of file diff --git a/doc/flow-n-instances.png b/doc/flow-n-instances.png index d68d937b6f5203972f8da8bf3802a5bd71229667..edbda8dd973087eca8b125ad57f2ce5a0c418e11 100644 GIT binary patch literal 68437 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 literal 55194 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 _RKF4Z<^46Hm#Nat|K!S)MgV@0+soEEP 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 diff --git a/doc/flow-n-instances.uxf b/doc/flow-n-instances.uxf index 0170764..a28d3ae 100644 --- a/doc/flow-n-instances.uxf +++ b/doc/flow-n-instances.uxf @@ -4,152 +4,163 @@ UMLState - 790 - 570 + 1070 + 500 120 40 make ListCreated -halign=left +halign=left +transparency=0 UMLState - 790 - 610 + 1070 + 540 120 40 make ListDeleted -halign=left +halign=left +transparency=0 UMLState - 790 - 720 + 760 + 650 120 40 doCreate halign=left -style=wordwrap +style=wordwrap +transparency=0 +transparency=0 UMLState - 540 - 380 + 1270 + 310 120 50 read StateFile -bg=yellow +bg=#FFF59D halign=left -style=wordwrap +style=wordwrap +transparency=0 UMLState - 790 - 650 + 1070 + 580 120 40 make ListModified -halign=left +halign=left +transparency=0 UMLState - 790 - 480 + 1070 + 410 120 40 readState -bg=green +bg=#A5D6A7 halign=left -style=wordwrap +style=wordwrap +transparency=0 UMLState - 790 - 320 + 750 + 260 120 30 START -bg=gray +bg=#B0BEC5 style=wordwrap UMLState - 790 - 880 + 1070 + 800 120 50 write StateFile -bg=yellow +bg=#FFF59D halign=left -style=wordwrap +style=wordwrap +transparency=0 UMLState - 790 - 760 + 760 + 690 120 40 doDelete halign=left -style=wordwrap +style=wordwrap +transparency=0 UMLState - 790 - 800 + 760 + 730 120 40 doModify halign=left -style=wordwrap +style=wordwrap +transparency=0 UMLSpecialState - 580 - 480 + 1310 + 410 40 40 - type=decision + type=decision +transparency=0 Relation - 590 - 420 + 1320 + 350 30 80 @@ -159,111 +170,114 @@ style=wordwrap Relation - 590 - 510 - 220 - 410 + 1180 + 440 + 170 + 400 lt=<- - 200.0;390.0;10.0;390.0;10.0;10.0 + 10.0;380.0;150.0;380.0;150.0;10.0 Relation - 610 - 480 - 200 + 1180 + 410 + 150 40 lt=<- - 180.0;20.0;10.0;20.0 + 10.0;20.0;130.0;20.0 Relation - 900 - 320 - 110 - 690 + 600 + 260 + 180 + 680 lt=<- - 10.0;10.0;90.0;10.0;90.0;670.0;10.0;670.0 + 150.0;10.0;10.0;10.0;10.0;660.0;160.0;660.0 Relation - 840 - 830 - 30 - 70 + 870 + 740 + 280 + 80 lt=<- - 10.0;50.0;10.0;10.0 + 260.0;60.0;260.0;10.0;10.0;10.0 UMLState - 790 - 970 + 760 + 900 120 - 50 + 40 Sleep -style=wordwrap +style=wordwrap +transparency=0 Relation - 840 - 920 - 30 - 70 + 870 + 840 + 280 + 100 lt=<- - 10.0;50.0;10.0;10.0 + 10.0;80.0;260.0;80.0;260.0;10.0 Relation - 650 - 390 - 200 + 1140 + 320 + 150 30 lt=<- - 10.0;10.0;180.0;10.0 + 130.0;10.0;10.0;10.0 UMLSpecialState - 830 - 380 + 1110 + 310 40 40 - type=decision + type=decision +transparency=0 Text - 600 - 550 - 160 - 30 + 1240 + 470 + 110 + 50 - [No State File] + [No +StateFile] Relation - 840 - 410 + 1120 + 340 30 90 @@ -273,8 +287,8 @@ style=wordwrap Text - 860 - 420 + 1030 + 360 110 30 @@ -284,20 +298,20 @@ style=wordwrap Relation - 840 - 340 - 30 - 60 + 860 + 260 + 290 + 70 lt=<- - 10.0;40.0;10.0;10.0 + 270.0;50.0;270.0;10.0;10.0;10.0 Text - 690 - 370 + 1150 + 300 130 30 @@ -307,31 +321,32 @@ style=wordwrap Text - 610 - 470 - 190 - 30 + 1200 + 390 + 100 + 50 - [State File exists] + [StateFile +exists] Relation - 840 - 680 - 30 - 60 + 870 + 610 + 280 + 80 lt=<- - 10.0;40.0;10.0;10.0 + 10.0;60.0;260.0;60.0;260.0;10.0 Relation - 840 - 510 + 1120 + 440 30 80 @@ -342,12 +357,12 @@ style=wordwrap UMLState - 900 - 1090 - 140 - 50 + 870 + 1040 + 250 + 40 - addDirectory + add/remove Collection (Map) halign=left style=wordwrap bg=#B39DDB @@ -356,8 +371,8 @@ bg=#B39DDB UMLSpecialState - 830 - 1090 + 800 + 1040 40 40 @@ -367,20 +382,20 @@ bg=#B39DDB Relation - 840 - 1010 + 810 + 930 30 - 100 + 130 lt=<- - 10.0;80.0;10.0;10.0 + 10.0;110.0;10.0;10.0 Relation - 860 - 1090 + 830 + 1040 60 40 @@ -391,20 +406,20 @@ bg=#B39DDB Relation - 840 - 270 - 270 + 800 + 220 + 680 840 lt=<- - 10.0;50.0;10.0;20.0;250.0;20.0;250.0;820.0 + 10.0;40.0;10.0;20.0;660.0;20.0;660.0;820.0 Relation - 840 - 1120 + 810 + 1070 80 70 @@ -415,12 +430,12 @@ bg=#B39DDB UMLState - 900 - 1150 - 140 - 50 + 870 + 1100 + 250 + 40 - removeDirectory + add/remove Directory halign=left style=wordwrap bg=#B39DDB @@ -429,20 +444,20 @@ bg=#B39DDB Relation - 1030 - 1090 - 60 + 1110 + 1040 + 350 40 lt=<- - 40.0;20.0;10.0;20.0 + 330.0;20.0;10.0;20.0 UMLSpecialState - 1070 - 1090 + 1440 + 1040 40 40 @@ -452,62 +467,20 @@ bg=#B39DDB Relation - 1030 - 1120 - 80 + 1110 + 1070 + 370 70 lt=<- - 60.0;10.0;60.0;50.0;10.0;50.0 - - - UMLState - - 890 - 480 - 20 - 20 - - -bg=green -halign=left -style=wordwrap - - - - UMLState - - 640 - 380 - 20 - 20 - - -bg=yellow -halign=left -style=wordwrap - - - - UMLState - - 890 - 880 - 20 - 20 - - -bg=yellow -halign=left -style=wordwrap - + 350.0;10.0;350.0;50.0;10.0;50.0 Text - 900 - 1060 + 870 + 1010 160 30 @@ -517,131 +490,102 @@ style=wordwrap UMLState - 890 - 570 - 20 - 20 + 440 + 160 + 1060 + 820 -halign=left - - - - UMLState - - 470 - 260 - 660 - 780 - - *Logic-Thread* +* Logic-Thread* halign=left valign=top -layer=-1 +layer=-1 +lt=. UMLState - 890 - 610 - 20 - 20 - - -halign=left - - - - UMLState - - 890 - 650 - 20 - 20 - - -halign=left - - - - UMLState - - 470 - 1040 - 660 + 440 + 990 + 1060 180 - *UI-Thread* + +* UI-Thread* valign=top halign=left -layer=-1 +layer=-1 +lt=. UMLNote - 680 - 730 - 90 - 100 + 630 + 660 + 110 + 90 - Compare the Lists of the different instances + Compare the Lists of the different Directories +transparency=0 - UMLNote + Relation - 540 - 320 - 90 + 730 + 660 + 50 50 - 1 per instance - + lt=. + 30.0;10.0;10.0;30.0 Relation - 620 - 330 + 730 + 700 50 - 80 + 30 lt=. - 10.0;10.0;30.0;10.0;30.0;60.0 + 30.0;10.0;10.0;10.0 Relation - 760 - 730 + 730 + 720 50 50 lt=. - 30.0;10.0;10.0;30.0 + 30.0;30.0;10.0;10.0 - Relation + UMLClass - 760 - 770 - 50 - 30 + 1010 + 190 + 420 + 770 - lt=. - 30.0;10.0;10.0;10.0 + SyncDirectory +bg=#F6F6F6 + - Relation + UMLClass - 760 - 790 - 50 - 50 + 700 + 190 + 230 + 770 - lt=. - 30.0;30.0;10.0;10.0 + SyncMap +bg=#F6F6F6 + diff --git a/ensync.plantuml b/ensync.plantuml new file mode 100644 index 0000000..4415ab5 --- /dev/null +++ b/ensync.plantuml @@ -0,0 +1,100 @@ +@startuml + +title __ENSYNC's Class Diagram__\n + + namespace com.olexyn.ensync { + class com.olexyn.ensync.Execute { + } + } + + + namespace com.olexyn.ensync { + class com.olexyn.ensync.Flow { + } + } + + + namespace com.olexyn.ensync { + class com.olexyn.ensync.Main { + } + } + + + namespace com.olexyn.ensync { + class com.olexyn.ensync.Tools { + } + } + + + namespace com.olexyn.ensync { + namespace artifacts { + class com.olexyn.ensync.artifacts.SyncDirectory { + } + } + } + + + namespace com.olexyn.ensync { + namespace artifacts { + class com.olexyn.ensync.artifacts.SyncFile { + } + } + } + + + namespace com.olexyn.ensync { + namespace artifacts { + class com.olexyn.ensync.artifacts.SyncMap { + } + } + } + + + namespace com.olexyn.ensync { + namespace ui { + class com.olexyn.ensync.ui.Bridge { + } + } + } + + + namespace com.olexyn.ensync { + namespace ui { + class com.olexyn.ensync.ui.Controller { + } + } + } + + + namespace com.olexyn.ensync { + namespace ui { + class com.olexyn.ensync.ui.UI { + } + } + } + + + com.olexyn.ensync.Flow .up.|> java.lang.Runnable + com.olexyn.ensync.Flow o-- com.olexyn.ensync.Tools : tools + com.olexyn.ensync.Tools o-- com.olexyn.ensync.Execute : x + com.olexyn.ensync.artifacts.SyncDirectory o-- com.olexyn.ensync.Tools : tools + com.olexyn.ensync.artifacts.SyncDirectory o-- com.olexyn.ensync.Execute : x + com.olexyn.ensync.artifacts.SyncDirectory o-- com.olexyn.ensync.artifacts.SyncMap : syncMap + com.olexyn.ensync.artifacts.SyncDirectory o-- com.olexyn.ensync.artifacts.SyncDirectory : thisSD + com.olexyn.ensync.artifacts.SyncFile -up-|> java.io.File + com.olexyn.ensync.artifacts.SyncFile o-- com.olexyn.ensync.artifacts.SyncDirectory : sd + com.olexyn.ensync.artifacts.SyncMap o-- com.olexyn.ensync.Tools : tools + com.olexyn.ensync.ui.Controller .up.|> javafx.fxml.Initializable + com.olexyn.ensync.ui.Controller o-- com.olexyn.ensync.ui.Bridge : bridge + com.olexyn.ensync.ui.UI .up.|> java.lang.Runnable + com.olexyn.ensync.ui.UI -up-|> javafx.application.Application + + +right footer + + +PlantUML diagram generated by SketchIt! (https://bitbucket.org/pmesmeur/sketch.it) +For more information about this tool, please contact philippe.mesmeur@gmail.com +endfooter + +@enduml diff --git a/src/com/olexyn/ensync/artifacts/artifacts.plantuml b/src/com/olexyn/ensync/artifacts/artifacts.plantuml new file mode 100644 index 0000000..36c6a39 --- /dev/null +++ b/src/com/olexyn/ensync/artifacts/artifacts.plantuml @@ -0,0 +1,89 @@ +@startuml + +title __ARTIFACTS's Class Diagram__\n + + namespace com.olexyn.ensync { + namespace artifacts { + class com.olexyn.ensync.artifacts.SyncDirectory { + + listCreated : Map + + listDeleted : Map + + listModified : Map + + path : String + - flowState : String + + SyncDirectory() + + doCreate() + + doDelete() + + doModify() + + makeListCreated() + + makeListDeleted() + + makeListModified() + + readFreshState() + + readStateFile() + + writeStateFile() + - copyModifDate() + - deleteFile() + - makeParentChain() + - writeFile() + } + } + } + + + namespace com.olexyn.ensync { + namespace artifacts { + class com.olexyn.ensync.artifacts.SyncDirectory.Info { + - otherFilePath : String + - otherParentFile : File + - otherParentPath : String + - thisFilePath : String + - Info() + } + } + } + + + namespace com.olexyn.ensync { + namespace artifacts { + class com.olexyn.ensync.artifacts.SyncFile { + + relativePath : String + + timeModifiedFromStateFile : long + + SyncFile() + + getTimeModified() + + getTimeModifiedFromStateFile() + + setTimeModifiedFromStateFile() + } + } + } + + + namespace com.olexyn.ensync { + namespace artifacts { + class com.olexyn.ensync.artifacts.SyncMap { + + name : String + + syncDirectories : Map + + SyncMap() + + addDirectory() + + removeDirectory() + } + } + } + + + com.olexyn.ensync.artifacts.SyncDirectory o-- com.olexyn.ensync.Tools : tools + com.olexyn.ensync.artifacts.SyncDirectory o-- com.olexyn.ensync.Execute : x + com.olexyn.ensync.artifacts.SyncDirectory o-- com.olexyn.ensync.artifacts.SyncMap : syncMap + com.olexyn.ensync.artifacts.SyncDirectory o-- com.olexyn.ensync.artifacts.SyncDirectory : thisSD + com.olexyn.ensync.artifacts.SyncDirectory +-down- com.olexyn.ensync.artifacts.SyncDirectory.Info + com.olexyn.ensync.artifacts.SyncFile -up-|> java.io.File + com.olexyn.ensync.artifacts.SyncFile o-- com.olexyn.ensync.artifacts.SyncDirectory : sd + com.olexyn.ensync.artifacts.SyncMap o-- com.olexyn.ensync.Tools : tools + + +right footer + + +PlantUML diagram generated by SketchIt! (https://bitbucket.org/pmesmeur/sketch.it) +For more information about this tool, please contact philippe.mesmeur@gmail.com +endfooter + +@enduml diff --git a/src/com/olexyn/ensync/ensync.plantuml b/src/com/olexyn/ensync/ensync.plantuml new file mode 100644 index 0000000..a2b15aa --- /dev/null +++ b/src/com/olexyn/ensync/ensync.plantuml @@ -0,0 +1,70 @@ +@startuml + +title __ENSYNC's Class Diagram__\n + + namespace com.olexyn.ensync { + class com.olexyn.ensync.Execute { + + execute() + + execute() + + executeBatch() + } + } + + + namespace com.olexyn.ensync { + class com.olexyn.ensync.Execute.TwoBr { + + error : BufferedReader + + output : BufferedReader + } + } + + + namespace com.olexyn.ensync { + class com.olexyn.ensync.Flow { + - state : String + + getState() + + run() + - readOrMakeStateFile() + } + } + + + namespace com.olexyn.ensync { + class com.olexyn.ensync.Main { + {static} + FLOW_THREAD : Thread + {static} + MAP_OF_SYNCMAPS : HashMap + {static} + UI_THREAD : Thread + {static} + main() + } + } + + + namespace com.olexyn.ensync { + class com.olexyn.ensync.Tools { + + Tools() + + brToListString() + + brToString() + + fileToLines() + + mapMinus() + + stateFilePath() + + stringListToSb() + + writeSbToFile() + + writeStringListToFile() + } + } + + + com.olexyn.ensync.Execute +-down- com.olexyn.ensync.Execute.TwoBr + com.olexyn.ensync.Flow .up.|> java.lang.Runnable + com.olexyn.ensync.Flow o-- com.olexyn.ensync.Tools : tools + com.olexyn.ensync.Tools o-- com.olexyn.ensync.Execute : x + + +right footer + + +PlantUML diagram generated by SketchIt! (https://bitbucket.org/pmesmeur/sketch.it) +For more information about this tool, please contact philippe.mesmeur@gmail.com +endfooter + +@enduml diff --git a/src/com/olexyn/ensync/ui/ui.plantuml b/src/com/olexyn/ensync/ui/ui.plantuml new file mode 100644 index 0000000..2e09370 --- /dev/null +++ b/src/com/olexyn/ensync/ui/ui.plantuml @@ -0,0 +1,59 @@ +@startuml + +title __UI's Class Diagram__\n + + namespace com.olexyn.ensync { + namespace ui { + class com.olexyn.ensync.ui.Bridge { + ~ addDirectory() + ~ newCollection() + ~ removeCollection() + ~ removeDirectory() + } + } + } + + + namespace com.olexyn.ensync { + namespace ui { + class com.olexyn.ensync.ui.Controller { + # gridPane : GridPane + {static} ~ COLUMN_COUNT : int + {static} ~ SPACE : Text + ~ collection_count : int + + initialize() + - addDirectory() + - insertPayload() + - newCollection() + - redraw() + - removeCollection() + - removeDirectory() + } + } + } + + + namespace com.olexyn.ensync { + namespace ui { + class com.olexyn.ensync.ui.UI { + + run() + + start() + } + } + } + + + com.olexyn.ensync.ui.Controller .up.|> javafx.fxml.Initializable + com.olexyn.ensync.ui.Controller o-- com.olexyn.ensync.ui.Bridge : bridge + com.olexyn.ensync.ui.UI .up.|> java.lang.Runnable + com.olexyn.ensync.ui.UI -up-|> javafx.application.Application + + +right footer + + +PlantUML diagram generated by SketchIt! (https://bitbucket.org/pmesmeur/sketch.it) +For more information about this tool, please contact philippe.mesmeur@gmail.com +endfooter + +@enduml diff --git a/test/files/files.plantuml b/test/files/files.plantuml new file mode 100644 index 0000000..c92063f --- /dev/null +++ b/test/files/files.plantuml @@ -0,0 +1,14 @@ +@startuml + +title __FILES's Class Diagram__\n + + + +right footer + + +PlantUML diagram generated by SketchIt! (https://bitbucket.org/pmesmeur/sketch.it) +For more information about this tool, please contact philippe.mesmeur@gmail.com +endfooter + +@enduml