From f7074a49d6a364f95a7ff5056da2ffb3c2856f07 Mon Sep 17 00:00:00 2001 From: superhugebetformiladze Date: Sun, 21 Jan 2024 19:17:15 +0400 Subject: [PATCH] simonov nikita lab 2 ready --- simonov_nikita_lab_2/.idea/.gitignore | 3 + simonov_nikita_lab_2/.idea/misc.xml | 6 + simonov_nikita_lab_2/.idea/modules.xml | 10 ++ .../.idea/simonov_nikita_lab2.iml | 12 ++ .../03a92d5d92427ae83731739f82560657bd7e1d33 | 11 ++ .../35b8c13cf2eb2a194eada000eb310d65aed53b2a | 0 .../502eff2775ccdc92a339926170a76685b0db195b | 0 .../6b3c7820a55d6a07cc9d46efa42c98ebf1f45354 | 0 .../7a3b22c128c191dcaf132b29cd87547571c08e36 | 0 .../83ed28ddb28df8a1891a8bb18462429f6bf9c67a | 0 .../8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d | 0 .../92c4d1ca65baa16d74df9bf3d5b6393a87742c07 | 13 ++ .../94c92b7b02fdd2531b355bac9c83b9f486abe86c | 3 + .../a44778d2018213866a7c7700d98e9b5a0c8bb0d7 | 0 .../adb97326bef634ca60e90d62c3e817831b0e62ad | 0 .../d1d02446e29911114aa8461a6d339c8a9b233292 | 0 .../de9026ba42f1709def40029bb15d3a5c09210226 | 0 .../e69c92c782a7aaf8d0c509cb120e1ead92c1002a | 0 .../ec82235829a15dc40a553c3fb4b789f1198f4425 | 0 .../ed0d20f6dbf0bbada896a9094ff70ec66340a7a2 | 0 .../ee36fd8c882eeb7d494b394d46fbdb34cd105ba9 | 0 .../f4cf0185d9befba3e1246fec6ecc3fb42d5b2f98 | 0 .../fbfd3efcc3c334f991162df3f9840f75dd4ac2b6 | 0 .../.idea/sonarlint/issuestore/index.pb | 39 ++++++ .../03a92d5d92427ae83731739f82560657bd7e1d33 | 0 .../35b8c13cf2eb2a194eada000eb310d65aed53b2a | 0 .../502eff2775ccdc92a339926170a76685b0db195b | 0 .../6b3c7820a55d6a07cc9d46efa42c98ebf1f45354 | 0 .../7a3b22c128c191dcaf132b29cd87547571c08e36 | 0 .../83ed28ddb28df8a1891a8bb18462429f6bf9c67a | 0 .../8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d | 0 .../92c4d1ca65baa16d74df9bf3d5b6393a87742c07 | 0 .../94c92b7b02fdd2531b355bac9c83b9f486abe86c | 0 .../a44778d2018213866a7c7700d98e9b5a0c8bb0d7 | 0 .../adb97326bef634ca60e90d62c3e817831b0e62ad | 0 .../d1d02446e29911114aa8461a6d339c8a9b233292 | 0 .../de9026ba42f1709def40029bb15d3a5c09210226 | 0 .../e69c92c782a7aaf8d0c509cb120e1ead92c1002a | 0 .../ec82235829a15dc40a553c3fb4b789f1198f4425 | 0 .../ed0d20f6dbf0bbada896a9094ff70ec66340a7a2 | 0 .../ee36fd8c882eeb7d494b394d46fbdb34cd105ba9 | 0 .../f4cf0185d9befba3e1246fec6ecc3fb42d5b2f98 | 0 .../fbfd3efcc3c334f991162df3f9840f75dd4ac2b6 | 0 .../sonarlint/securityhotspotstore/index.pb | 39 ++++++ simonov_nikita_lab_2/.idea/uiDesigner.xml | 124 ++++++++++++++++++ simonov_nikita_lab_2/README.md | 117 +++++++++++++++++ simonov_nikita_lab_2/data/Shugar_Dady.txt | 9 ++ simonov_nikita_lab_2/data/Uncle_Bob.txt | 8 ++ simonov_nikita_lab_2/data/other_mom.txt | 11 ++ simonov_nikita_lab_2/docker-compose.yml | 17 +++ simonov_nikita_lab_2/result/data.txt | 11 ++ simonov_nikita_lab_2/result/result.txt | 1 + simonov_nikita_lab_2/screens/Screenshot_1.png | Bin 0 -> 41519 bytes simonov_nikita_lab_2/screens/Screenshot_2.png | Bin 0 -> 6894 bytes simonov_nikita_lab_2/screens/Screenshot_3.png | Bin 0 -> 6522 bytes simonov_nikita_lab_2/screens/Screenshot_4.png | Bin 0 -> 1247 bytes simonov_nikita_lab_2/screens/Screenshot_5.png | Bin 0 -> 20171 bytes simonov_nikita_lab_2/screens/Screenshot_6.png | Bin 0 -> 24026 bytes simonov_nikita_lab_2/worker-1/.gitignore | 29 ++++ .../worker-1/.idea/.gitignore | 8 ++ simonov_nikita_lab_2/worker-1/.idea/misc.xml | 6 + .../worker-1/.idea/modules.xml | 8 ++ simonov_nikita_lab_2/worker-1/Dockerfile | 18 +++ .../worker-1/src/FindShortestFileName.java | 71 ++++++++++ simonov_nikita_lab_2/worker-1/worker-1.iml | 14 ++ simonov_nikita_lab_2/worker-2/.gitignore | 29 ++++ .../worker-2/.idea/.gitignore | 8 ++ simonov_nikita_lab_2/worker-2/.idea/misc.xml | 6 + .../worker-2/.idea/modules.xml | 8 ++ simonov_nikita_lab_2/worker-2/Dockerfile | 18 +++ .../src/FindingLargestNumberFile.java | 56 ++++++++ simonov_nikita_lab_2/worker-2/worker-2.iml | 14 ++ 72 files changed, 727 insertions(+) create mode 100644 simonov_nikita_lab_2/.idea/.gitignore create mode 100644 simonov_nikita_lab_2/.idea/misc.xml create mode 100644 simonov_nikita_lab_2/.idea/modules.xml create mode 100644 simonov_nikita_lab_2/.idea/simonov_nikita_lab2.iml create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/issuestore/0/3/03a92d5d92427ae83731739f82560657bd7e1d33 create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/issuestore/3/5/35b8c13cf2eb2a194eada000eb310d65aed53b2a create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/issuestore/5/0/502eff2775ccdc92a339926170a76685b0db195b create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/issuestore/6/b/6b3c7820a55d6a07cc9d46efa42c98ebf1f45354 create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/issuestore/7/a/7a3b22c128c191dcaf132b29cd87547571c08e36 create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/issuestore/8/3/83ed28ddb28df8a1891a8bb18462429f6bf9c67a create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/issuestore/8/e/8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/issuestore/9/2/92c4d1ca65baa16d74df9bf3d5b6393a87742c07 create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/issuestore/9/4/94c92b7b02fdd2531b355bac9c83b9f486abe86c create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/issuestore/a/4/a44778d2018213866a7c7700d98e9b5a0c8bb0d7 create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/issuestore/a/d/adb97326bef634ca60e90d62c3e817831b0e62ad create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/issuestore/d/1/d1d02446e29911114aa8461a6d339c8a9b233292 create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/issuestore/d/e/de9026ba42f1709def40029bb15d3a5c09210226 create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/issuestore/e/6/e69c92c782a7aaf8d0c509cb120e1ead92c1002a create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/issuestore/e/c/ec82235829a15dc40a553c3fb4b789f1198f4425 create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/issuestore/e/d/ed0d20f6dbf0bbada896a9094ff70ec66340a7a2 create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/issuestore/e/e/ee36fd8c882eeb7d494b394d46fbdb34cd105ba9 create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/issuestore/f/4/f4cf0185d9befba3e1246fec6ecc3fb42d5b2f98 create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/issuestore/f/b/fbfd3efcc3c334f991162df3f9840f75dd4ac2b6 create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/issuestore/index.pb create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/0/3/03a92d5d92427ae83731739f82560657bd7e1d33 create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/3/5/35b8c13cf2eb2a194eada000eb310d65aed53b2a create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/5/0/502eff2775ccdc92a339926170a76685b0db195b create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/6/b/6b3c7820a55d6a07cc9d46efa42c98ebf1f45354 create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/7/a/7a3b22c128c191dcaf132b29cd87547571c08e36 create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/8/3/83ed28ddb28df8a1891a8bb18462429f6bf9c67a create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/8/e/8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/9/2/92c4d1ca65baa16d74df9bf3d5b6393a87742c07 create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/9/4/94c92b7b02fdd2531b355bac9c83b9f486abe86c create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/a/4/a44778d2018213866a7c7700d98e9b5a0c8bb0d7 create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/a/d/adb97326bef634ca60e90d62c3e817831b0e62ad create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/d/1/d1d02446e29911114aa8461a6d339c8a9b233292 create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/d/e/de9026ba42f1709def40029bb15d3a5c09210226 create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/e/6/e69c92c782a7aaf8d0c509cb120e1ead92c1002a create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/e/c/ec82235829a15dc40a553c3fb4b789f1198f4425 create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/e/d/ed0d20f6dbf0bbada896a9094ff70ec66340a7a2 create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/e/e/ee36fd8c882eeb7d494b394d46fbdb34cd105ba9 create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/f/4/f4cf0185d9befba3e1246fec6ecc3fb42d5b2f98 create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/f/b/fbfd3efcc3c334f991162df3f9840f75dd4ac2b6 create mode 100644 simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/index.pb create mode 100644 simonov_nikita_lab_2/.idea/uiDesigner.xml create mode 100644 simonov_nikita_lab_2/README.md create mode 100644 simonov_nikita_lab_2/data/Shugar_Dady.txt create mode 100644 simonov_nikita_lab_2/data/Uncle_Bob.txt create mode 100644 simonov_nikita_lab_2/data/other_mom.txt create mode 100644 simonov_nikita_lab_2/docker-compose.yml create mode 100644 simonov_nikita_lab_2/result/data.txt create mode 100644 simonov_nikita_lab_2/result/result.txt create mode 100644 simonov_nikita_lab_2/screens/Screenshot_1.png create mode 100644 simonov_nikita_lab_2/screens/Screenshot_2.png create mode 100644 simonov_nikita_lab_2/screens/Screenshot_3.png create mode 100644 simonov_nikita_lab_2/screens/Screenshot_4.png create mode 100644 simonov_nikita_lab_2/screens/Screenshot_5.png create mode 100644 simonov_nikita_lab_2/screens/Screenshot_6.png create mode 100644 simonov_nikita_lab_2/worker-1/.gitignore create mode 100644 simonov_nikita_lab_2/worker-1/.idea/.gitignore create mode 100644 simonov_nikita_lab_2/worker-1/.idea/misc.xml create mode 100644 simonov_nikita_lab_2/worker-1/.idea/modules.xml create mode 100644 simonov_nikita_lab_2/worker-1/Dockerfile create mode 100644 simonov_nikita_lab_2/worker-1/src/FindShortestFileName.java create mode 100644 simonov_nikita_lab_2/worker-1/worker-1.iml create mode 100644 simonov_nikita_lab_2/worker-2/.gitignore create mode 100644 simonov_nikita_lab_2/worker-2/.idea/.gitignore create mode 100644 simonov_nikita_lab_2/worker-2/.idea/misc.xml create mode 100644 simonov_nikita_lab_2/worker-2/.idea/modules.xml create mode 100644 simonov_nikita_lab_2/worker-2/Dockerfile create mode 100644 simonov_nikita_lab_2/worker-2/src/FindingLargestNumberFile.java create mode 100644 simonov_nikita_lab_2/worker-2/worker-2.iml diff --git a/simonov_nikita_lab_2/.idea/.gitignore b/simonov_nikita_lab_2/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/simonov_nikita_lab_2/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/simonov_nikita_lab_2/.idea/misc.xml b/simonov_nikita_lab_2/.idea/misc.xml new file mode 100644 index 0000000..a818314 --- /dev/null +++ b/simonov_nikita_lab_2/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/simonov_nikita_lab_2/.idea/modules.xml b/simonov_nikita_lab_2/.idea/modules.xml new file mode 100644 index 0000000..cee9423 --- /dev/null +++ b/simonov_nikita_lab_2/.idea/modules.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/simonov_nikita_lab_2/.idea/simonov_nikita_lab2.iml b/simonov_nikita_lab_2/.idea/simonov_nikita_lab2.iml new file mode 100644 index 0000000..160cdf9 --- /dev/null +++ b/simonov_nikita_lab_2/.idea/simonov_nikita_lab2.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/0/3/03a92d5d92427ae83731739f82560657bd7e1d33 b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/0/3/03a92d5d92427ae83731739f82560657bd7e1d33 new file mode 100644 index 0000000..9377de0 --- /dev/null +++ b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/0/3/03a92d5d92427ae83731739f82560657bd7e1d33 @@ -0,0 +1,11 @@ + +W +java:S1141"5Extract this nested try block into a separate method.(81 +c +java:S1075"ARefactor your code to get this URI from a customizable parameter.(ٞ8ꮗ1 +c +java:S1075"ARefactor your code to get this URI from a customizable parameter.(8ꮗ1 +@ java:S106-"+Replace this use of System.out by a logger.( +@ java:S106."+Replace this use of System.out by a logger.(㆛ +E java:S106/"+Replace this use of System.out by a logger.( +E java:S1061"+Replace this use of System.out by a logger.( \ No newline at end of file diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/3/5/35b8c13cf2eb2a194eada000eb310d65aed53b2a b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/3/5/35b8c13cf2eb2a194eada000eb310d65aed53b2a new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/5/0/502eff2775ccdc92a339926170a76685b0db195b b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/5/0/502eff2775ccdc92a339926170a76685b0db195b new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/6/b/6b3c7820a55d6a07cc9d46efa42c98ebf1f45354 b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/6/b/6b3c7820a55d6a07cc9d46efa42c98ebf1f45354 new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/7/a/7a3b22c128c191dcaf132b29cd87547571c08e36 b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/7/a/7a3b22c128c191dcaf132b29cd87547571c08e36 new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/8/3/83ed28ddb28df8a1891a8bb18462429f6bf9c67a b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/8/3/83ed28ddb28df8a1891a8bb18462429f6bf9c67a new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/8/e/8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/8/e/8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/9/2/92c4d1ca65baa16d74df9bf3d5b6393a87742c07 b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/9/2/92c4d1ca65baa16d74df9bf3d5b6393a87742c07 new file mode 100644 index 0000000..92faf16 --- /dev/null +++ b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/9/2/92c4d1ca65baa16d74df9bf3d5b6393a87742c07 @@ -0,0 +1,13 @@ + +W +java:S1141"5Extract this nested try block into a separate method.(8ɞ1 +c +java:S1075"ARefactor your code to get this URI from a customizable parameter.(ٞ8ɞ1 +U +java:S1481"3Remove this unused "sourceFilePath" local variable.(ٞ8ɞ1 +c +java:S1075"ARefactor your code to get this URI from a customizable parameter.(8ɞ1 +c +java:S1075"ARefactor your code to get this URI from a customizable parameter.(8ɞ1 +G java:S106*"+Replace this use of System.out by a logger.(8ɞ1 +L java:S106+"+Replace this use of System.out by a logger.(힃8ɞ1 \ No newline at end of file diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/9/4/94c92b7b02fdd2531b355bac9c83b9f486abe86c b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/9/4/94c92b7b02fdd2531b355bac9c83b9f486abe86c new file mode 100644 index 0000000..b3ad7ab --- /dev/null +++ b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/9/4/94c92b7b02fdd2531b355bac9c83b9f486abe86c @@ -0,0 +1,3 @@ + +L java:S106"+Replace this use of System.out by a logger.(Λ81 +L java:S106 "+Replace this use of System.out by a logger.(81 \ No newline at end of file diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/a/4/a44778d2018213866a7c7700d98e9b5a0c8bb0d7 b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/a/4/a44778d2018213866a7c7700d98e9b5a0c8bb0d7 new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/a/d/adb97326bef634ca60e90d62c3e817831b0e62ad b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/a/d/adb97326bef634ca60e90d62c3e817831b0e62ad new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/d/1/d1d02446e29911114aa8461a6d339c8a9b233292 b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/d/1/d1d02446e29911114aa8461a6d339c8a9b233292 new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/d/e/de9026ba42f1709def40029bb15d3a5c09210226 b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/d/e/de9026ba42f1709def40029bb15d3a5c09210226 new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/e/6/e69c92c782a7aaf8d0c509cb120e1ead92c1002a b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/e/6/e69c92c782a7aaf8d0c509cb120e1ead92c1002a new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/e/c/ec82235829a15dc40a553c3fb4b789f1198f4425 b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/e/c/ec82235829a15dc40a553c3fb4b789f1198f4425 new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/e/d/ed0d20f6dbf0bbada896a9094ff70ec66340a7a2 b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/e/d/ed0d20f6dbf0bbada896a9094ff70ec66340a7a2 new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/e/e/ee36fd8c882eeb7d494b394d46fbdb34cd105ba9 b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/e/e/ee36fd8c882eeb7d494b394d46fbdb34cd105ba9 new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/f/4/f4cf0185d9befba3e1246fec6ecc3fb42d5b2f98 b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/f/4/f4cf0185d9befba3e1246fec6ecc3fb42d5b2f98 new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/f/b/fbfd3efcc3c334f991162df3f9840f75dd4ac2b6 b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/f/b/fbfd3efcc3c334f991162df3f9840f75dd4ac2b6 new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/index.pb b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/index.pb new file mode 100644 index 0000000..881929a --- /dev/null +++ b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/index.pb @@ -0,0 +1,39 @@ + +Z +*worker-2/src/FindingLargestNumberFile.java,0\3\03a92d5d92427ae83731739f82560657bd7e1d33 +C +worker-1/Dockerfile,e\6\e69c92c782a7aaf8d0c509cb120e1ead92c1002a +C +worker-2/Dockerfile,8\3\83ed28ddb28df8a1891a8bb18462429f6bf9c67a +F +data/awdafgergssdf.txt,a\4\a44778d2018213866a7c7700d98e9b5a0c8bb0d7 +C +data/sgeagfdsfh.txt,e\e\ee36fd8c882eeb7d494b394d46fbdb34cd105ba9 +? +data/sdfwef.txt,e\c\ec82235829a15dc40a553c3fb4b789f1198f4425 +V +&worker-1/src/FindShortestFileName.java,9\4\94c92b7b02fdd2531b355bac9c83b9f486abe86c +9 + README.md,8\e\8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d +B +docker-compose.yml,3\5\35b8c13cf2eb2a194eada000eb310d65aed53b2a +S +#worker-3/src/CheckingTheResult.java,9\2\92c4d1ca65baa16d74df9bf3d5b6393a87742c07 +C +worker-3/Dockerfile,6\b\6b3c7820a55d6a07cc9d46efa42c98ebf1f45354 +E +worker-3/worker-2.iml,5\0\502eff2775ccdc92a339926170a76685b0db195b += + service1.yaml,d\e\de9026ba42f1709def40029bb15d3a5c09210226 += + service2.yaml,f\b\fbfd3efcc3c334f991162df3f9840f75dd4ac2b6 += + service3.yaml,d\1\d1d02446e29911114aa8461a6d339c8a9b233292 +C +worker-3/.gitignore,e\d\ed0d20f6dbf0bbada896a9094ff70ec66340a7a2 +G +result/check_result.txt,7\a\7a3b22c128c191dcaf132b29cd87547571c08e36 +A +result/result.txt,f\4\f4cf0185d9befba3e1246fec6ecc3fb42d5b2f98 +? +result/data.txt,a\d\adb97326bef634ca60e90d62c3e817831b0e62ad \ No newline at end of file diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/0/3/03a92d5d92427ae83731739f82560657bd7e1d33 b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/0/3/03a92d5d92427ae83731739f82560657bd7e1d33 new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/3/5/35b8c13cf2eb2a194eada000eb310d65aed53b2a b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/3/5/35b8c13cf2eb2a194eada000eb310d65aed53b2a new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/5/0/502eff2775ccdc92a339926170a76685b0db195b b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/5/0/502eff2775ccdc92a339926170a76685b0db195b new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/6/b/6b3c7820a55d6a07cc9d46efa42c98ebf1f45354 b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/6/b/6b3c7820a55d6a07cc9d46efa42c98ebf1f45354 new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/7/a/7a3b22c128c191dcaf132b29cd87547571c08e36 b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/7/a/7a3b22c128c191dcaf132b29cd87547571c08e36 new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/8/3/83ed28ddb28df8a1891a8bb18462429f6bf9c67a b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/8/3/83ed28ddb28df8a1891a8bb18462429f6bf9c67a new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/8/e/8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/8/e/8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/9/2/92c4d1ca65baa16d74df9bf3d5b6393a87742c07 b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/9/2/92c4d1ca65baa16d74df9bf3d5b6393a87742c07 new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/9/4/94c92b7b02fdd2531b355bac9c83b9f486abe86c b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/9/4/94c92b7b02fdd2531b355bac9c83b9f486abe86c new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/a/4/a44778d2018213866a7c7700d98e9b5a0c8bb0d7 b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/a/4/a44778d2018213866a7c7700d98e9b5a0c8bb0d7 new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/a/d/adb97326bef634ca60e90d62c3e817831b0e62ad b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/a/d/adb97326bef634ca60e90d62c3e817831b0e62ad new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/d/1/d1d02446e29911114aa8461a6d339c8a9b233292 b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/d/1/d1d02446e29911114aa8461a6d339c8a9b233292 new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/d/e/de9026ba42f1709def40029bb15d3a5c09210226 b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/d/e/de9026ba42f1709def40029bb15d3a5c09210226 new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/e/6/e69c92c782a7aaf8d0c509cb120e1ead92c1002a b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/e/6/e69c92c782a7aaf8d0c509cb120e1ead92c1002a new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/e/c/ec82235829a15dc40a553c3fb4b789f1198f4425 b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/e/c/ec82235829a15dc40a553c3fb4b789f1198f4425 new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/e/d/ed0d20f6dbf0bbada896a9094ff70ec66340a7a2 b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/e/d/ed0d20f6dbf0bbada896a9094ff70ec66340a7a2 new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/e/e/ee36fd8c882eeb7d494b394d46fbdb34cd105ba9 b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/e/e/ee36fd8c882eeb7d494b394d46fbdb34cd105ba9 new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/f/4/f4cf0185d9befba3e1246fec6ecc3fb42d5b2f98 b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/f/4/f4cf0185d9befba3e1246fec6ecc3fb42d5b2f98 new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/f/b/fbfd3efcc3c334f991162df3f9840f75dd4ac2b6 b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/f/b/fbfd3efcc3c334f991162df3f9840f75dd4ac2b6 new file mode 100644 index 0000000..e69de29 diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/index.pb b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/index.pb new file mode 100644 index 0000000..a5126dc --- /dev/null +++ b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/index.pb @@ -0,0 +1,39 @@ + +C +worker-1/Dockerfile,e\6\e69c92c782a7aaf8d0c509cb120e1ead92c1002a +C +worker-2/Dockerfile,8\3\83ed28ddb28df8a1891a8bb18462429f6bf9c67a +Z +*worker-2/src/FindingLargestNumberFile.java,0\3\03a92d5d92427ae83731739f82560657bd7e1d33 +F +data/awdafgergssdf.txt,a\4\a44778d2018213866a7c7700d98e9b5a0c8bb0d7 +? +data/sdfwef.txt,e\c\ec82235829a15dc40a553c3fb4b789f1198f4425 +C +data/sgeagfdsfh.txt,e\e\ee36fd8c882eeb7d494b394d46fbdb34cd105ba9 +B +docker-compose.yml,3\5\35b8c13cf2eb2a194eada000eb310d65aed53b2a +V +&worker-1/src/FindShortestFileName.java,9\4\94c92b7b02fdd2531b355bac9c83b9f486abe86c +9 + README.md,8\e\8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d +C +worker-3/Dockerfile,6\b\6b3c7820a55d6a07cc9d46efa42c98ebf1f45354 +S +#worker-3/src/CheckingTheResult.java,9\2\92c4d1ca65baa16d74df9bf3d5b6393a87742c07 += + service1.yaml,d\e\de9026ba42f1709def40029bb15d3a5c09210226 += + service2.yaml,f\b\fbfd3efcc3c334f991162df3f9840f75dd4ac2b6 += + service3.yaml,d\1\d1d02446e29911114aa8461a6d339c8a9b233292 +E +worker-3/worker-2.iml,5\0\502eff2775ccdc92a339926170a76685b0db195b +C +worker-3/.gitignore,e\d\ed0d20f6dbf0bbada896a9094ff70ec66340a7a2 +G +result/check_result.txt,7\a\7a3b22c128c191dcaf132b29cd87547571c08e36 +A +result/result.txt,f\4\f4cf0185d9befba3e1246fec6ecc3fb42d5b2f98 +? +result/data.txt,a\d\adb97326bef634ca60e90d62c3e817831b0e62ad \ No newline at end of file diff --git a/simonov_nikita_lab_2/.idea/uiDesigner.xml b/simonov_nikita_lab_2/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/simonov_nikita_lab_2/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/simonov_nikita_lab_2/README.md b/simonov_nikita_lab_2/README.md new file mode 100644 index 0000000..00b264e --- /dev/null +++ b/simonov_nikita_lab_2/README.md @@ -0,0 +1,117 @@ +# Лабораторная работа №2 + +Цель: изучение техники создания простого распределенного приложения. + +Задачи: + +- Согласно вышему варианту (выбирайте любой) разработать два приложения такие, что результат первого является исходными данными для второго. +- Изучить файлы сборки образов docker и разработать их для созданных приложений. +- Собрать файл docker-compose.yml для запуска приложений. Разобраться с монтированием каталогов из хост-системы. +- Правильно закоммитить результат без лишних файлов. +- Оформить pull request по правилам и отправить его на проверку. + +# Разработка двух приложений + +Вариант первого приложения(worker-1): 5 - Ищет в каталоге /var/data файл с самым коротким названием и перекладывает его в /var/result/data.txt +Вариант второго приложения(worker-2): 1 - Ищет набольшее число из файла /var/data/data.txt и сохраняет его вторую степень в /var/result/result.txt + +## Структура проекта + +![](/screens/Screenshot_1.png) + +# Работа программы + +- Создание двух директорий: worker-1 и worker-2 для реализаций двух программ. +- Описание Dockerfile для создания образов для обоих программ. + +## Docker файл для первого сервиса + +```yml +# Используем образ с Java +FROM openjdk:21 + +# Создаем директории для данных и результата внутри контейнера +RUN mkdir /var/data +RUN mkdir /var/result + +# Создаем директорию приложения внутри контейнера +WORKDIR /app + +# Копируем исходные файлы вашего Java-приложения внутрь контейнера +COPY src /app/src + +# Компилируем Java-код +RUN javac /app/src/FindShortestFileName.java + +# Запускаем Java-приложение +CMD ["java", "-cp", "/app/src", "FindShortestFileName"] +``` + +## Docker файл для второго сервиса + +```yml +# Используем образ с Java +FROM openjdk:21 + + # Создаем директории для данных и результата внутри контейнера +RUN mkdir /var/data +RUN mkdir /var/result + + # Создаем директорию приложения внутри контейнера +WORKDIR /app + + # Копируем исходные файлы вашего Java-приложения внутрь контейнера +COPY src /app/src + +Компилируем Java-код +RUN javac /app/src/FindingLargestNumberFile.java + + # Запускаем Java-приложение +CMD ["java", "-cp", "/app/src", "FindingLargestNumberFile"] +``` + +## Docker-compose + +```yml +services: + worker-1: + build: + context: /worker-1 + dockerfile: Dockerfile + volumes: + - D:\рил\simonov_nikita_lab_2\data:/var/data + - D:\рил\simonov_nikita_lab_2\result:/var/result + worker-2: + build: + context: /worker-2 + dockerfile: Dockerfile + volumes: + - D:\рил\simonov_nikita_lab_2\data:/var/data + - D:\рил\simonov_nikita_lab_2\result:/var/result + depends_on: + - worker-1 +``` + +## Исходные файлы + +![](/screens/Screenshot_5.png) + +## После запуска контейнера создаются файлы `data.txt` и `result.txt`: + +![](/screens/Screenshot_2.png) + +- `data.txt` + +![](/screens/Screenshot_3.png) + +- `result.txt` + +![](/screens/Screenshot_4.png) + +# Запушенный контейнер + +![](/screens/Screenshot_6.png) + +# Ссылка на видео + +https://drive.google.com/file/d/1kPXcYOX0bRmjzBbg8GBWp0JfFWb2rUGm/view?usp=sharing diff --git a/simonov_nikita_lab_2/data/Shugar_Dady.txt b/simonov_nikita_lab_2/data/Shugar_Dady.txt new file mode 100644 index 0000000..229a860 --- /dev/null +++ b/simonov_nikita_lab_2/data/Shugar_Dady.txt @@ -0,0 +1,9 @@ +44 +65 +23 +90 +98 +65 +32 +87 + diff --git a/simonov_nikita_lab_2/data/Uncle_Bob.txt b/simonov_nikita_lab_2/data/Uncle_Bob.txt new file mode 100644 index 0000000..abdfc63 --- /dev/null +++ b/simonov_nikita_lab_2/data/Uncle_Bob.txt @@ -0,0 +1,8 @@ +12 +34 +56 +13 +11 +6 +4 +7 \ No newline at end of file diff --git a/simonov_nikita_lab_2/data/other_mom.txt b/simonov_nikita_lab_2/data/other_mom.txt new file mode 100644 index 0000000..df6c9b1 --- /dev/null +++ b/simonov_nikita_lab_2/data/other_mom.txt @@ -0,0 +1,11 @@ +67 +23 +56 +89 +1 +48 +44 +90 +12 +32 +78 diff --git a/simonov_nikita_lab_2/docker-compose.yml b/simonov_nikita_lab_2/docker-compose.yml new file mode 100644 index 0000000..ff14c10 --- /dev/null +++ b/simonov_nikita_lab_2/docker-compose.yml @@ -0,0 +1,17 @@ +services: + worker-1: + build: + context: /worker-1 + dockerfile: Dockerfile + volumes: + - D:\рил\simonov_nikita_lab_2\data:/var/data + - D:\рил\simonov_nikita_lab_2\result:/var/result + worker-2: + build: + context: /worker-2 + dockerfile: Dockerfile + volumes: + - D:\рил\simonov_nikita_lab_2\data:/var/data + - D:\рил\simonov_nikita_lab_2\result:/var/result + depends_on: + - worker-1 \ No newline at end of file diff --git a/simonov_nikita_lab_2/result/data.txt b/simonov_nikita_lab_2/result/data.txt new file mode 100644 index 0000000..df6c9b1 --- /dev/null +++ b/simonov_nikita_lab_2/result/data.txt @@ -0,0 +1,11 @@ +67 +23 +56 +89 +1 +48 +44 +90 +12 +32 +78 diff --git a/simonov_nikita_lab_2/result/result.txt b/simonov_nikita_lab_2/result/result.txt new file mode 100644 index 0000000..78452b4 --- /dev/null +++ b/simonov_nikita_lab_2/result/result.txt @@ -0,0 +1 @@ +8100.0 \ No newline at end of file diff --git a/simonov_nikita_lab_2/screens/Screenshot_1.png b/simonov_nikita_lab_2/screens/Screenshot_1.png new file mode 100644 index 0000000000000000000000000000000000000000..31ea6defeb0f397704ff14125d783604037a1620 GIT binary patch literal 41519 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 literal 0 HcmV?d00001 diff --git a/simonov_nikita_lab_2/screens/Screenshot_2.png b/simonov_nikita_lab_2/screens/Screenshot_2.png new file mode 100644 index 0000000000000000000000000000000000000000..2b68d66e3d9df1961a810dc063032ec4f02d411e GIT binary patch literal 6894 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 W^Jv-q48(s_Nb;{$WGbXg1OEfqwhRIQ literal 0 HcmV?d00001 diff --git a/simonov_nikita_lab_2/screens/Screenshot_3.png b/simonov_nikita_lab_2/screens/Screenshot_3.png new file mode 100644 index 0000000000000000000000000000000000000000..f20b2db7d10cc6e3cf8c250525ebc1e81c0d005a GIT binary patch literal 6522 zcmb_hc|4ST*Ow?|&l(0xLYB(tZYD&9?E6@fh|wrZ zV;|etvS-hGx!?PF-skze_xt|y+<(k+=DN=LUBBx(=X<{2Gl_=!aK`gI=c%Zu7COP}OL@j<;Nz74UHC1k5(3`>V9+>g+|i(-dY?*vXh#d!=X|uy{i&#! z+D~4mI=x>%q@udWtOM1!7i_&U=51y?6y3Rg0MjqORWA52Eml%n@S@<&wmZME2nxZx z3#&}^q)=KT5Y8$RiIZe4={EHsznas~b&dIy5cOge=IrK7Nr=3`oJmh()C9}$W4?5% z?erD9!yCJA+myxS)jkDbnlhG;#4*iO(9(<}Z@#vu$cO~%H1)dUd`@U7n~f$LWCx$Q zO{=ljsRC*>vVOX)#JVC0gWDpIGqwmCSb{dwUmCHN#LFS>++W$|4ZY>x3K%0+cEjfs zCDo3s9PJjI5t#)g!r0p(sc5XsEgci?)n~?DU>3H8Wgah*H*e*PrDmqtE9+QvhN9<6(D$ z_jK2=YjAM3W~C?$t_|$Qz3uyf?3QVvko}`Dn#~MnqYT+^#Tu)_^rK37%BsMYlhMDU z^v#*QBvU433hvoHDd=0X4Wyb%36g8BsI6HOX8IliL<60ihCbphk-2fNmpEJx%T6#9 zz+IDqpa{shB)J@32#s8VDRd-#KJnpc_VtP@5T5X;;si5kK7R8LJu7-jEU)2KGa@Bw zmTeR0dXrS6WX!Ic6YCMiX~0*gTdI%vzI}{O%YWoi=KguT!6lpg6t*si1-JMaaTYz* z_T?=R=@-c@#b%x5l$Oj{|I;p0&i=^iJES$;rE6GCXhE(Rk2-`GemYl!2SsHy(b4c4 zS!2h|H6;3R8I~h;M{mqk_oo#UTBD|Orx{}L#S|aKI2*fkL~v|Xe{Sz+}CKi9sAv@k3;jC<(Suk*LssN zmr&6WwF)=T8K+jHhBRJj?WLf{&%jg8&TZQzf_@nCb|+PWFe&U-r=H0W>0@-@c9;D)q3Ca~*RT6j;X{1-CRPIA9y8ID*Yq2;Nx3PqeKDwD_6bp>u;z$Ggrvkq$YDW^>WL4#B zvAYkI;tvu;BN7F$!|^k~X|O=`P4 zN=MY2(IJ$~w^(O+nOHre06~?oXZE^IT=h=D7S*ZEpARp+TTQW4pVE_Zf8X=q)uUv4 zhN;mR5&gZ&x^~($PMwCYMq8rbO}ODw|1ZCMcjCn#S4^xb(kc!(Vd`$5hA%}U{W30q zv}_o{tY`u<11Spo)V-V-ar(Z;IW`~Khn1Rt2{O2o{LN4}?qK<(2E1D9=%{>&jS?MK z0&w@zFJPiKoaEz1j8;l+5;@%&@mCfp>@Ai*;tH=6@iQK%ces#c_jj`1+WZw-y%1X^ zBP*eVweEY-`=>F<>-tp45v=*_iN_< zEadlI;_1kEpK8=~;*TeqhkOoaR%N2!3S~S0Ihsy>;H7qq%FG>!)W?I&` z+Q`MocuEO%$GkLb;5uOeJSfI@5XgWhNZN(EF&wR)9e5#A9_MTCL;e1PT#vp1d83Q& zEzkH+lD5Pv!h*|pC$=tVr9U?)ig+nKhRDhd5>oz;jO#G?`zmrwYeSB%YNuuR`Sush z=bZN;H>+BWl+$BGyUd;RD1Bt*1Y8pt0cT$%;_LJp(Dsw#a>*DbpSrtPDeXiwwx;dk^35vE z28*iKIO8PaAZuGeH%s+7l})NdZ>G0-H9^z+{oLa+2DAl&p%?v)xuzTt$m^n_5STNa z2L7xVBVKTTco|Bu=X>8O9oz$Bf1>5%<-u<@9$1oBs+9O5%WDecPQn*@QmrRsvpfWR zGj}Lp7?;~EPq3o1dMU?6e+Uryk@jR4nO@cWLEB0aX363Uc;6}ad1%yonF*+4+BsS@ zXKrI1vhJnkGfR#%ZM_X1kd||Fz7zAI$ru)SJ`@eRd;rI)?-xrLcuIM^xc%B^?iSm;hxRQGr$Bx+0HiL!M@yk4<)8kZ{Eu@1`7 z?n!J)rfH#hA5WV-t{o{P*~2cEwfsQfrjwK|;KV1%R!qdK4PFe^?OV+c&9V>~YMqz* z@+!fjo* z{)=KfDzHb#Y9rMsWktas@a+)d?;T`GKzOl{n9iO7Vek~NR`pDTkn)(% z;w$Y@36uIGmNH$F>Pd+m+@VdbslwPhIw|NZM`!|aBl>U1!v9WVI|oF%URFK!sP<@A zQBswB?G;o-6sTl`(-Q?Kk$pVjqe4nmgRN_l{jUBY^6aKD<#m6GLU$)jCEF&WH~4| z1igmStgLu-M??Z5d>buDeMud)O$s|D2Z8!&CjkH?5!aBX$5_tq02V9mDr>{&hp6BuC8xfyC9!5lg8I4%67McGUM{?mbq5lSc#ucTDN0eycx8z z;y8urT!#f(Msm{BS0UzL4vC!3L&GJw(nYiHe!UbO}w1|O#A zn{&krboyTMFclaYAb-PfaU*$#Quhd|H_6XW7cU{f#^bn(dZjSlE4p`O45diiK$&%n zm(H``H<)y$@Esq!q-4D<1%s&!0wcr0U_tM>Z!Tk2E6umg%#UaKl12b+A53i;xZcP-H!cu zc1m|H@i4RuJ>s)5AUM>%ar*=10e;pMQ~#LR$@lEz(fEQ&H55<6&n!t3t!bl5a7<|-*-txCSt>)SZJ zF$ad4*K!$t>Y*ym1TXPZKOZ$S3{rgst4VfKZ3l_zHZjGG7)22 z%f{H{8TU@>v&;iexHHZJ;9YQQN?JCN6R=^fG4hCcH)TN;zT2O5WA{)KLqvx8Fr2cJey%=H^;P} z@%s0&Ih`yIiXBt*(PM(uVR^`Fvx*Q1y>9L-nBAfe>?Cve^2~ktT8`e26pv~k0D;XY zuzwDbuE|;<9vy$BK}>OUgd6iNFlKmBmDN#P2C{!G_|}Tgv#JoY$NU(npqOE@D(kG6 z6ePZ1kmt0?RW}3}iz1jdXn6SMoscTb3_2&jIbto#J*dru{-`cl@t+Y>t+>7#BT2 z5!)kLW>W>Z#}ndhSsXhG-VQanEdT&4&BtT@AtvoBWo@W+#E<>-PM+N|!glugMi=ee zNb@tT!%hR@Q`HGl%<2#IjtTUJSE7qVND3M&5#2tKSl@k@dke;`$NQy>p3})}d91cs zK7Oa8`!^k0;^&;_^>h=uh-Y7d)T8`+i#kTf=G-u)mB|ispu_w_t^iA zhzvu}I|lq9n$@TPzzahr1DDi&{la|4S)NfJnI#OG5Kpn0m-XL9x-HpmTg+8Sct5oP zIGI5GjT3M#XzW`M(KO~5uGmn<+%%TEl6|_8x0*x$+HRk{y{vNbT>%5#M@nl)napRU z?WEP>+~vc#SLPoYh^$^vP5_z_?(b_x0QV$vv~jF-u5{w98Ph}DSE5baMt1cbYvE!cmyHWpw7Zt zX1~oPRpcy86m~Tz2}uD;vvJKC>MWr8b9o4_TPK!Y!v?bYZfE&4aXQ>3U@8!pfZ&P5 zY;1YR>c(0(Q%q|mr13nh9Y+xBgN<^c5sF%A`zy7WG;DBM7g{$PA!P1dbSvQZ)2)Uy z&2tg2gDkRFgMURr;j*UFYdhyg@g&;pGn%@uv_et|Jo#T@NCg1e)uY!0fa3e7ytZc4 zPiAw?d_oZkGAJ7gYO(Mlgj&;I*B7y{vJNiJ0`Yx7gtMGYS2wHs!1RKXM!hcK`*2V& zuKI$0p`p`sgBjG~@dc2kD@)YJ2Y0;08(|<2FdvC*Cx4wV;mnGE9~r`(Pl?_Y$(lVJ zQ@aPyrswI`8~f`m+a-iZ=6_$4SRi(7$MwBg9lkr{qezF%E*A#6vlh7Myznqj+yo}n zt_1AYy5bH0-BE@*O6-Y6Ro$yX2;^iEllAt0CNW@w|B3Uq0bIP!O0US9`7nTA$xW!3 zBGQ+sfcSmTQ8Q|s&e*T6e~wC5zV@+M$&`sv8FNiRr|&gebM=p7f=KIeCTJ)1oBNI3 z%imc*O>6`2?vy3k!8b@7H)%@9W2~TmnZa=Tt2_TVqfr^50x8U31!>Z{J%}koaoPLP zw$5M-;vBP~onh>!hrGy69<1vl&a9H%>y351G{owzM14OqT?)c_v#>RO5YsG z-b7-&b*$P?F1?%Swg_*Q&2Mki-(WLTrN^5#3h-f>qaFs+tJat6&+|3yvEv^N#XKHL z+K-s`5l(B#zwu_(*7xL&)tvsL(wAX|A?aN}skd@;h_}m*8c0qV zdGH;L-6?y^%yzPw&m`j1fLHZEE)(kt!(Yy8|E+h$Mv6fqOWu>)HGgn)y{NF#gudYh zO*vwx%Q&WpnPP{lc>K$B)hyNQ6a%Cb~@_qOP%aSu@Q$vYv*M28XULjA)l)tzmPukFieuT zluTsp$KfcX^}X9!G6?CT{0IBXOHYY9 zlXvB-JmTiZSbKWIldexMrh_6P4@BKv1`qpIy?sxSnaSJd-U0L6hEHea+S*Fz&HGca_Uscl>vuD zFdJ}c8Tdxd2t&iGa-LaR;y*vFWiz(YgSx4(U`7GA_BO7!7+F}_UJx00csX!V@y?%rR79zlH{w>e`mw{I2c;+cMqKha8iT`8V e$8h~n;O3{Km!qB^4T1klsC2aSp(VF$qyGzJWp`Qt literal 0 HcmV?d00001 diff --git a/simonov_nikita_lab_2/screens/Screenshot_4.png b/simonov_nikita_lab_2/screens/Screenshot_4.png new file mode 100644 index 0000000000000000000000000000000000000000..df6a6b370f69da8429a9451c52556484205bd7f8 GIT binary patch literal 1247 zcmeAS@N?(olHy`uVBq!ia0vp^OMzIQgAGVFF>s{-DaPU;cPEB*=VV?2IV|apzK#qG z8~eHcB(eheoCO|{#S9F5he4R}c>W5Y4we#67srr_xVN|8`$vV#954JoN%yTsW7-0i z*H?ZvcN8Dm)^u%F6mPcG_Oe2kIq%%JrOi5*CuAzQV`XtvHgERTU)lmoIj)6$Pw<~+ zd+Yzkzs&OsSDaw&E6{JL$op0Mp{ruwa{=LdjPHDPs^5P7tl**|qAJMe>e=EPDD*I3 zii<_6X@0arhsP)d&>^ZYU92yR!w zTUAW|WyM#0o%Ff#*-w$`I9@NYrEc;3?Z^9Xwy*wiGWYR2!A29W-fu$d{M`hi{>WW_ zV-~TV=fL)lGTif?P2TzTGy9FIU7YL71rPRUnBMY=`T9=bM}o-pw`CF5Y!C0>Illg# zTIA=NF5C5Ds+~cLw=Vd7PwCI$`HP-+SBko39-rPHpKvI&Zd2Os&8;7voPAuWZ4-QX z$K5K7r6wQEnfSZS)!CJ z;`ddNrJUz33S6tri_ki?aQ(|e9tuq>{iXV!KfNGZKjrh{H^=&SOG{+=t(CN!clh34 z#}L&;XKek~&0Timb5`J|_fxXECS8<}`EaIPuydb-irC>#E4Zi55w|Iyvh~H>TL%xX zmtF31a=!Qc`OAUo9Rru`4c^y!Zli)(owVEeRQ8;?%rhdYyJqg2eqVFxr@g_ie7+h; z`_(Uha(3zY^TBT_w=U3F8aV5hfoyHhzqTvfH6M?e9MV3#A#Kl#FCSyAM3$PI(&B%X z)PEsA3H-$1gVJ-~3_5XK;W1o~2W&>pqo-+-s`;F7WWc_KZnK)V}YzHC4ll zo$XoJ#w~lMrTv*Ub@zXr)VLQhE8ZQNkndXb`Hz_tum0hL?JaF`vP!$^r=;ndafg3e zb>~e>b<^EDeX8gD`)gWm^~`?0^I4~@ns{A>(9vsa*h?kfHx!*)9edJ#pX+o{Rm)=Z z^t(i()j2R|%Av}q|KHDcJsGW@-o6MXwopUU3z#L~Nk3IEaGQyQLCI#dM%!m^6;B0D zVRgwg%G&sL`{VugRhKrHnmwMY_$hD-*J7LUcf2yXmYbStmrpz49H`Y(^uUeR z+)WeC|5W~d_Z@+yH{|X`D)GCnG&q&cJ$reHO z{)veQGbhdbbLtT9q(tL;l1lQfkq%SN%x~PbM&YJZzJ6faA{~QMt-If+xSqULQQc`I zlG+$J>C!?C?w(D1A4~oF^?SZa_`0&f??S5Q9@o!!_VBkV-;E8xLW#lC)z4*}Q$iB} D&NW%= literal 0 HcmV?d00001 diff --git a/simonov_nikita_lab_2/screens/Screenshot_5.png b/simonov_nikita_lab_2/screens/Screenshot_5.png new file mode 100644 index 0000000000000000000000000000000000000000..122f89b9cd8bcefdade9796ab79c34d441c0b61f GIT binary patch literal 20171 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 Ss14|2-)9OtZ(MBX6!kAwynzP* literal 0 HcmV?d00001 diff --git a/simonov_nikita_lab_2/worker-1/.gitignore b/simonov_nikita_lab_2/worker-1/.gitignore new file mode 100644 index 0000000..f68d109 --- /dev/null +++ b/simonov_nikita_lab_2/worker-1/.gitignore @@ -0,0 +1,29 @@ +### IntelliJ IDEA ### +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/simonov_nikita_lab_2/worker-1/.idea/.gitignore b/simonov_nikita_lab_2/worker-1/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/simonov_nikita_lab_2/worker-1/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/simonov_nikita_lab_2/worker-1/.idea/misc.xml b/simonov_nikita_lab_2/worker-1/.idea/misc.xml new file mode 100644 index 0000000..07115cd --- /dev/null +++ b/simonov_nikita_lab_2/worker-1/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/simonov_nikita_lab_2/worker-1/.idea/modules.xml b/simonov_nikita_lab_2/worker-1/.idea/modules.xml new file mode 100644 index 0000000..98d26e9 --- /dev/null +++ b/simonov_nikita_lab_2/worker-1/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/simonov_nikita_lab_2/worker-1/Dockerfile b/simonov_nikita_lab_2/worker-1/Dockerfile new file mode 100644 index 0000000..06c62f8 --- /dev/null +++ b/simonov_nikita_lab_2/worker-1/Dockerfile @@ -0,0 +1,18 @@ +# Используем образ с Java +FROM openjdk:21 + +# Создаем директории для данных и результата внутри контейнера +RUN mkdir /var/data +RUN mkdir /var/result + +# Создаем директорию приложения внутри контейнера +WORKDIR /app + +# Копируем исходные файлы вашего Java-приложения внутрь контейнера +COPY src /app/src + +# Компилируем Java-код +RUN javac /app/src/FindShortestFileName.java + +# Запускаем Java-приложение +CMD ["java", "-cp", "/app/src", "FindShortestFileName"] diff --git a/simonov_nikita_lab_2/worker-1/src/FindShortestFileName.java b/simonov_nikita_lab_2/worker-1/src/FindShortestFileName.java new file mode 100644 index 0000000..7d57364 --- /dev/null +++ b/simonov_nikita_lab_2/worker-1/src/FindShortestFileName.java @@ -0,0 +1,71 @@ +import java.io.IOException; +import java.nio.file.*; +import java.util.List; + +/** + * Программа для перемещения файла с самым коротким именем из одной директории в другую. + */ +public class FindShortestFileName { + + /** + * Точка входа в программу. + */ + public static void main(String[] args) { + // Указываем пути исходной и целевой директорий, а также путь результирующего файла + String sourceDirectory = "/var/data"; + String destinationDirectory = "/var/result"; + String resultFile = destinationDirectory + "/data.txt"; + + try { + // Получаем список файлов в исходной директории + List files = getFilesInDirectory(sourceDirectory); + + if (!files.isEmpty()) { + // Находим файл с самым коротким именем + Path shortestFileName = findShortestFileName(files); + + // Копируем найденный файл в целевую директорию + Files.copy(shortestFileName, Paths.get(resultFile), StandardCopyOption.REPLACE_EXISTING); + + System.out.println("Файл " + shortestFileName.getFileName() + " был скопирован в " + resultFile); + } else { + System.out.println("В исходной директории нет файлов для копирования."); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + + /** + * Получает список файлов в указанной директории. + * + * @param directory Путь к директории. + * @return Список файлов в директории. + * @throws IOException В случае ошибок при чтении директории. + */ + private static List getFilesInDirectory(String directory) throws IOException { + try (DirectoryStream stream = Files.newDirectoryStream(Paths.get(directory))) { + List fileList = new java.util.ArrayList<>(); + for (Path entry : stream) { + fileList.add(entry); + } + return fileList; + } + } + + /** + * Находит файл с самым коротким именем в списке. + * + * @param files Список файлов. + * @return Путь к файлу с самым коротким именем. + */ + private static Path findShortestFileName(List files) { + Path shortestFile = files.get(0); + for (Path file : files) { + if (file.getFileName().toString().length() < shortestFile.getFileName().toString().length()) { + shortestFile = file; + } + } + return shortestFile; + } +} diff --git a/simonov_nikita_lab_2/worker-1/worker-1.iml b/simonov_nikita_lab_2/worker-1/worker-1.iml new file mode 100644 index 0000000..d89d290 --- /dev/null +++ b/simonov_nikita_lab_2/worker-1/worker-1.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/simonov_nikita_lab_2/worker-2/.gitignore b/simonov_nikita_lab_2/worker-2/.gitignore new file mode 100644 index 0000000..f68d109 --- /dev/null +++ b/simonov_nikita_lab_2/worker-2/.gitignore @@ -0,0 +1,29 @@ +### IntelliJ IDEA ### +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/simonov_nikita_lab_2/worker-2/.idea/.gitignore b/simonov_nikita_lab_2/worker-2/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/simonov_nikita_lab_2/worker-2/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/simonov_nikita_lab_2/worker-2/.idea/misc.xml b/simonov_nikita_lab_2/worker-2/.idea/misc.xml new file mode 100644 index 0000000..07115cd --- /dev/null +++ b/simonov_nikita_lab_2/worker-2/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/simonov_nikita_lab_2/worker-2/.idea/modules.xml b/simonov_nikita_lab_2/worker-2/.idea/modules.xml new file mode 100644 index 0000000..ba047c4 --- /dev/null +++ b/simonov_nikita_lab_2/worker-2/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/simonov_nikita_lab_2/worker-2/Dockerfile b/simonov_nikita_lab_2/worker-2/Dockerfile new file mode 100644 index 0000000..ca43d4a --- /dev/null +++ b/simonov_nikita_lab_2/worker-2/Dockerfile @@ -0,0 +1,18 @@ +# Используем образ с Java +FROM openjdk:21 + +# Создаем директории для данных и результата внутри контейнера +RUN mkdir /var/data +RUN mkdir /var/result + +# Создаем директорию приложения внутри контейнера +WORKDIR /app + +# Копируем исходные файлы вашего Java-приложения внутрь контейнера +COPY src /app/src + + Компилируем Java-код +RUN javac /app/src/FindingLargestNumberFile.java + +# Запускаем Java-приложение +CMD ["java", "-cp", "/app/src", "FindingLargestNumberFile"] diff --git a/simonov_nikita_lab_2/worker-2/src/FindingLargestNumberFile.java b/simonov_nikita_lab_2/worker-2/src/FindingLargestNumberFile.java new file mode 100644 index 0000000..e1007c6 --- /dev/null +++ b/simonov_nikita_lab_2/worker-2/src/FindingLargestNumberFile.java @@ -0,0 +1,56 @@ +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; + +/** + * Программа для поиска наибольшего числа в файле, вычисления его второй степени и сохранения результата в другом файле. + */ +public class FindingLargestNumberFile { + + /** + * Точка входа в программу. + */ + public static void main(String[] args) { + // Указываем пути к исходному и результативному файлам + String sourceFilePath = "/var/result/data.txt"; + String resultFilePath = "/var/result/result.txt"; + + try (BufferedReader reader = new BufferedReader(new FileReader(sourceFilePath))) { + String line; + double largestNumber = Double.MIN_VALUE; + + // Читаем файл построчно и находим наибольшее число + while ((line = reader.readLine()) != null) { + try { + double number = Double.parseDouble(line); + if (number > largestNumber) { + largestNumber = number; + } + } catch (NumberFormatException e) { + // Пропускаем строки, которые не могут быть преобразованы в числа + } + } + + if (largestNumber != Double.MIN_VALUE) { + // Вычисляем вторую степень наибольшего числа + double square = Math.pow(largestNumber, 2); + + // Записываем результат в новый файл + try (FileWriter writer = new FileWriter(resultFilePath)) { + writer.write(Double.toString(square)); + } + + // Выводим результаты на экран + System.out.println("Наибольшее число в файле: " + largestNumber); + System.out.println("Вторая степень наибольшего числа: " + square); + System.out.println("Результат сохранен в " + resultFilePath); + } else { + System.out.println("Файл не содержит чисел."); + } + + } catch (IOException e) { + e.printStackTrace(); + } + } +} diff --git a/simonov_nikita_lab_2/worker-2/worker-2.iml b/simonov_nikita_lab_2/worker-2/worker-2.iml new file mode 100644 index 0000000..9facd37 --- /dev/null +++ b/simonov_nikita_lab_2/worker-2/worker-2.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + \ No newline at end of file