diff --git a/.gitattributes b/.gitattributes index 5d3ffc5a953e83b23458c681a9783365e24b12c9..3cd50e25f4251b2e624786c99513fc6aeb1c110f 100644 --- a/.gitattributes +++ b/.gitattributes @@ -139,3 +139,59 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text 17[[:space:]]-[[:space:]]GIT/007[[:space:]]Git[[:space:]]remote[[:space:]]repositories.mp4 filter=lfs diff=lfs merge=lfs -text 17[[:space:]]-[[:space:]]GIT/008[[:space:]]SSH[[:space:]]Connection.mp4 filter=lfs diff=lfs merge=lfs -text 17[[:space:]]-[[:space:]]GIT/010[[:space:]]Pull[[:space:]]Requests[[:space:]]&[[:space:]]Merge[[:space:]]Requests.mp4 filter=lfs diff=lfs merge=lfs -text +17[[:space:]]-[[:space:]]GIT/011[[:space:]]Updating[[:space:]]local[[:space:]]repository[[:space:]](fetch,[[:space:]]merge,[[:space:]]pull)[[:space:]]&[[:space:]]Team[[:space:]]development[[:space:]]demo.mp4 filter=lfs diff=lfs merge=lfs -text +17[[:space:]]-[[:space:]]GIT/009[[:space:]]Git[[:space:]]Branching.mp4 filter=lfs diff=lfs merge=lfs -text +17[[:space:]]-[[:space:]]GIT/013[[:space:]]Git[[:space:]]Rebasing[[:space:]]&[[:space:]]Force[[:space:]]Update[[:space:]]of[[:space:]]remote[[:space:]]repository.mp4 filter=lfs diff=lfs merge=lfs -text +17[[:space:]]-[[:space:]]GIT/014[[:space:]]Git[[:space:]]Interactive[[:space:]]Rebase.mp4 filter=lfs diff=lfs merge=lfs -text +17[[:space:]]-[[:space:]]GIT/015[[:space:]]Git[[:space:]]reset.mp4 filter=lfs diff=lfs merge=lfs -text +17[[:space:]]-[[:space:]]GIT/012[[:space:]]Merge[[:space:]]Conflicts.mp4 filter=lfs diff=lfs merge=lfs -text +17[[:space:]]-[[:space:]]GIT/016[[:space:]]Git[[:space:]]stash.mp4 filter=lfs diff=lfs merge=lfs -text +17[[:space:]]-[[:space:]]GIT/017[[:space:]]Restoring[[:space:]]lost[[:space:]]snapshots[[:space:]]in[[:space:]]Git[[:space:]]git[[:space:]]reflog.mp4 filter=lfs diff=lfs merge=lfs -text +17[[:space:]]-[[:space:]]GIT/018[[:space:]]Git[[:space:]]cherry-pick[[:space:]]moving[[:space:]]commits[[:space:]]between[[:space:]]branches.mp4 filter=lfs diff=lfs merge=lfs -text +17[[:space:]]-[[:space:]]GIT/020[[:space:]]Git[[:space:]]and[[:space:]]Eclipse[[:space:]]integration.mp4 filter=lfs diff=lfs merge=lfs -text +19[[:space:]]-[[:space:]]Java[[:space:]]Collections[[:space:]]Framework/001[[:space:]]Java[[:space:]]Collections[[:space:]]Framework[[:space:]]Overview.mp4 filter=lfs diff=lfs merge=lfs -text +18[[:space:]]-[[:space:]]Excpetion[[:space:]]Handling/001[[:space:]]Exception[[:space:]]Handling[[:space:]]in[[:space:]]Java.mp4 filter=lfs diff=lfs merge=lfs -text +19[[:space:]]-[[:space:]]Java[[:space:]]Collections[[:space:]]Framework/003[[:space:]]Interfaces[[:space:]]List,[[:space:]]Set[[:space:]]and[[:space:]]Queue[[:space:]]Overview.mp4 filter=lfs diff=lfs merge=lfs -text +19[[:space:]]-[[:space:]]Java[[:space:]]Collections[[:space:]]Framework/002[[:space:]]Collection[[:space:]]Interface.mp4 filter=lfs diff=lfs merge=lfs -text +19[[:space:]]-[[:space:]]Java[[:space:]]Collections[[:space:]]Framework/004[[:space:]]List[[:space:]]implementations[[:space:]]-[[:space:]]ArrayList,[[:space:]]Vector,[[:space:]]CopyOnWriteArrayList[[:space:]]&[[:space:]]Stack.mp4 filter=lfs diff=lfs merge=lfs -text +19[[:space:]]-[[:space:]]Java[[:space:]]Collections[[:space:]]Framework/005[[:space:]]LinkedList[[:space:]]VS[[:space:]]ArrayList,[[:space:]]Big[[:space:]]O[[:space:]]Notation[[:space:]]&[[:space:]]Homework.mp4 filter=lfs diff=lfs merge=lfs -text +19[[:space:]]-[[:space:]]Java[[:space:]]Collections[[:space:]]Framework/008[[:space:]]Comparator[[:space:]]and[[:space:]]Comparable.mp4 filter=lfs diff=lfs merge=lfs -text +19[[:space:]]-[[:space:]]Java[[:space:]]Collections[[:space:]]Framework/012[[:space:]]Queue[[:space:]]and[[:space:]]Deque.mp4 filter=lfs diff=lfs merge=lfs -text +19[[:space:]]-[[:space:]]Java[[:space:]]Collections[[:space:]]Framework/010[[:space:]]Iterable,[[:space:]]Iterator[[:space:]]&[[:space:]]ListIterator.mp4 filter=lfs diff=lfs merge=lfs -text +19[[:space:]]-[[:space:]]Java[[:space:]]Collections[[:space:]]Framework/014[[:space:]]Map[[:space:]]Hierarchy.mp4 filter=lfs diff=lfs merge=lfs -text +19[[:space:]]-[[:space:]]Java[[:space:]]Collections[[:space:]]Framework/015[[:space:]]Hash[[:space:]]Tables[[:space:]]&[[:space:]]HashMap.mp4 filter=lfs diff=lfs merge=lfs -text +19[[:space:]]-[[:space:]]Java[[:space:]]Collections[[:space:]]Framework/016[[:space:]]LinkedHashMap.mp4 filter=lfs diff=lfs merge=lfs -text +19[[:space:]]-[[:space:]]Java[[:space:]]Collections[[:space:]]Framework/018[[:space:]]SortedMap,[[:space:]]NavigableMap[[:space:]]&[[:space:]]TreeMap.mp4 filter=lfs diff=lfs merge=lfs -text +19[[:space:]]-[[:space:]]Java[[:space:]]Collections[[:space:]]Framework/019[[:space:]]Set[[:space:]]Implementations[[:space:]](HashSet[[:space:]]practice)[[:space:]]&[[:space:]]java.util.Colelctions[[:space:]]class.mp4 filter=lfs diff=lfs merge=lfs -text +22[[:space:]]-[[:space:]]Functional[[:space:]]Programming[[:space:]]in[[:space:]]Java[[:space:]](including[[:space:]]lambda[[:space:]]functions[[:space:]]&[[:space:]]method[[:space:]]references)/001[[:space:]]Functional[[:space:]]Programming[[:space:]]in[[:space:]]Java[[:space:]]Overview.mp4 filter=lfs diff=lfs merge=lfs -text +20[[:space:]]-[[:space:]]Generics/001[[:space:]]Generics[[:space:]]in[[:space:]]Java.mp4 filter=lfs diff=lfs merge=lfs -text +22[[:space:]]-[[:space:]]Functional[[:space:]]Programming[[:space:]]in[[:space:]]Java[[:space:]](including[[:space:]]lambda[[:space:]]functions[[:space:]]&[[:space:]]method[[:space:]]references)/002[[:space:]]Functional[[:space:]]Interface,[[:space:]]Lambda[[:space:]]Functions[[:space:]]&[[:space:]]Method[[:space:]]References.mp4 filter=lfs diff=lfs merge=lfs -text +22[[:space:]]-[[:space:]]Functional[[:space:]]Programming[[:space:]]in[[:space:]]Java[[:space:]](including[[:space:]]lambda[[:space:]]functions[[:space:]]&[[:space:]]method[[:space:]]references)/003[[:space:]]Function[[:space:]]&[[:space:]]BiFunction[[:space:]]Theory[[:space:]]&[[:space:]]Practice.mp4 filter=lfs diff=lfs merge=lfs -text +22[[:space:]]-[[:space:]]Functional[[:space:]]Programming[[:space:]]in[[:space:]]Java[[:space:]](including[[:space:]]lambda[[:space:]]functions[[:space:]]&[[:space:]]method[[:space:]]references)/004[[:space:]]Consumer,[[:space:]]BiConsumer,[[:space:]]Predicate[[:space:]]&[[:space:]]BiPredicate.mp4 filter=lfs diff=lfs merge=lfs -text +23[[:space:]]-[[:space:]]Stream[[:space:]]API/001[[:space:]]Stream[[:space:]]API[[:space:]]with[[:space:]]Practical[[:space:]]Exercises.mp4 filter=lfs diff=lfs merge=lfs -text +25[[:space:]]-[[:space:]]Input[[:space:]]and[[:space:]]Output[[:space:]]Streams[[:space:]]in[[:space:]]Java/005[[:space:]]Serialization[[:space:]]and[[:space:]]Cloning.mp4 filter=lfs diff=lfs merge=lfs -text +27[[:space:]]-[[:space:]]Multithreading/001[[:space:]]Multithreading[[:space:]]Overview.mp4 filter=lfs diff=lfs merge=lfs -text +25[[:space:]]-[[:space:]]Input[[:space:]]and[[:space:]]Output[[:space:]]Streams[[:space:]]in[[:space:]]Java/001[[:space:]]Input[[:space:]]and[[:space:]]Output[[:space:]]Streams[[:space:]]in[[:space:]]Java.mp4 filter=lfs diff=lfs merge=lfs -text +27[[:space:]]-[[:space:]]Multithreading/002[[:space:]]First[[:space:]]Multithreading[[:space:]]Program[[:space:]]Thread[[:space:]]&[[:space:]]Runnable.mp4 filter=lfs diff=lfs merge=lfs -text +27[[:space:]]-[[:space:]]Multithreading/003[[:space:]]Thread[[:space:]]Scheduler,[[:space:]]Race[[:space:]]Condition,[[:space:]]Daemon[[:space:]]Threads[[:space:]]&[[:space:]]Thread[[:space:]]Groups.mp4 filter=lfs diff=lfs merge=lfs -text +27[[:space:]]-[[:space:]]Multithreading/004[[:space:]]Synchronization[[:space:]]Basics.mp4 filter=lfs diff=lfs merge=lfs -text +27[[:space:]]-[[:space:]]Multithreading/005[[:space:]]Memory[[:space:]]Management[[:space:]]in[[:space:]]Multithreading[[:space:]]Programs.mp4 filter=lfs diff=lfs merge=lfs -text +27[[:space:]]-[[:space:]]Multithreading/006[[:space:]]Deadlock[[:space:]]&[[:space:]]Livelock.mp4 filter=lfs diff=lfs merge=lfs -text +27[[:space:]]-[[:space:]]Multithreading/007[[:space:]]Executor[[:space:]]Services,[[:space:]]Callable[[:space:]]&[[:space:]]Future.mp4 filter=lfs diff=lfs merge=lfs -text +27[[:space:]]-[[:space:]]Multithreading/009[[:space:]]ForkJoin[[:space:]]Framework.mp4 filter=lfs diff=lfs merge=lfs -text +27[[:space:]]-[[:space:]]Multithreading/008[[:space:]]Executor[[:space:]]Service[[:space:]]Implementations[[:space:]]&[[:space:]]ThreadFactory.mp4 filter=lfs diff=lfs merge=lfs -text +27[[:space:]]-[[:space:]]Multithreading/013[[:space:]]Homework[[:space:]]Multithreading.mp4 filter=lfs diff=lfs merge=lfs -text +27[[:space:]]-[[:space:]]Multithreading/010[[:space:]]CompletableFuture.mp4 filter=lfs diff=lfs merge=lfs -text +27[[:space:]]-[[:space:]]Multithreading/012[[:space:]]Synchronizers[[:space:]]-[[:space:]]CyclicBarrier,[[:space:]]CountDownLatch,[[:space:]]Semaphore,[[:space:]]Exchanger[[:space:]]&[[:space:]]Phaser.mp4 filter=lfs diff=lfs merge=lfs -text +27[[:space:]]-[[:space:]]Multithreading/011[[:space:]]Lock[[:space:]]API[[:space:]]-[[:space:]]Lock,[[:space:]]ReadWriteLock,[[:space:]]ReentrantLock,[[:space:]]ReentrantReadWriteLock,[[:space:]]StampedLo.mp4 filter=lfs diff=lfs merge=lfs -text +29[[:space:]]-[[:space:]]Date[[:space:]]and[[:space:]]Time[[:space:]]in[[:space:]]JDK/001[[:space:]]Time[[:space:]]Standards[[:space:]](GMT,[[:space:]]UTC),[[:space:]]Date[[:space:]]and[[:space:]]Calendar[[:space:]]from[[:space:]]java.util.mp4 filter=lfs diff=lfs merge=lfs -text +29[[:space:]]-[[:space:]]Date[[:space:]]and[[:space:]]Time[[:space:]]in[[:space:]]JDK/002[[:space:]]java.time[[:space:]]package[[:space:]](Instant,[[:space:]]LocalDateTime,[[:space:]]ZonedDateTime,[[:space:]]OffsetDateTime[[:space:]]etc).mp4 filter=lfs diff=lfs merge=lfs -text +30[[:space:]]-[[:space:]]Java[[:space:]]Reflection[[:space:]]API/002[[:space:]]Annotations.mp4 filter=lfs diff=lfs merge=lfs -text +31[[:space:]]-[[:space:]]JDK[[:space:]]API/001[[:space:]]StringBuilder[[:space:]]&[[:space:]]StringBuffer.mp4 filter=lfs diff=lfs merge=lfs -text +30[[:space:]]-[[:space:]]Java[[:space:]]Reflection[[:space:]]API/001[[:space:]]Java[[:space:]]Reflection[[:space:]]API.mp4 filter=lfs diff=lfs merge=lfs -text +31[[:space:]]-[[:space:]]JDK[[:space:]]API/002[[:space:]]java.util.Optional[[:space:]]-[[:space:]]Optional[[:space:]]in[[:space:]]Java.mp4 filter=lfs diff=lfs merge=lfs -text +31[[:space:]]-[[:space:]]JDK[[:space:]]API/003[[:space:]]Reactive[[:space:]]Programming[[:space:]]in[[:space:]]Java[[:space:]]Flow[[:space:]]API,[[:space:]]Reactive[[:space:]]Streams.mp4 filter=lfs diff=lfs merge=lfs -text +32[[:space:]]-[[:space:]]Java[[:space:]]Platform[[:space:]]Module[[:space:]]System[[:space:]]Modules[[:space:]]in[[:space:]]Java[[:space:]]&[[:space:]]Migration[[:space:]]of[[:space:]]Java[[:space:]]Apps/002[[:space:]]Migration[[:space:]]of[[:space:]]Java[[:space:]]Apps[[:space:]]Example[[:space:]]of[[:space:]]migration[[:space:]]to[[:space:]]a[[:space:]]modular[[:space:]]application.mp4 filter=lfs diff=lfs merge=lfs -text +32[[:space:]]-[[:space:]]Java[[:space:]]Platform[[:space:]]Module[[:space:]]System[[:space:]]Modules[[:space:]]in[[:space:]]Java[[:space:]]&[[:space:]]Migration[[:space:]]of[[:space:]]Java[[:space:]]Apps/001[[:space:]]Modules[[:space:]]in[[:space:]]Java[[:space:]]Modular[[:space:]]Application[[:space:]]Example.mp4 filter=lfs diff=lfs merge=lfs -text +33[[:space:]]-[[:space:]]Testing[[:space:]]for[[:space:]]Software[[:space:]]Engineers/001[[:space:]]Testing[[:space:]]for[[:space:]]software[[:space:]]engineers[[:space:]]Overview.mp4 filter=lfs diff=lfs merge=lfs -text +34[[:space:]]-[[:space:]]Unit[[:space:]]Testing[[:space:]]&[[:space:]]JUnit[[:space:]]5/001[[:space:]]Unit[[:space:]]Testing[[:space:]]&[[:space:]]JUnit[[:space:]]Overview.mp4 filter=lfs diff=lfs merge=lfs -text diff --git a/17 - GIT/009 Git Branching.mp4 b/17 - GIT/009 Git Branching.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..6acced9050ef3fd8e28dbce74f021e26d3786aaf --- /dev/null +++ b/17 - GIT/009 Git Branching.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:218abb10730e4158f55ba59d1b291a87768f89d1c8364096902febd077492fab +size 202761384 diff --git a/17 - GIT/011 Updating local repository (fetch, merge, pull) & Team development demo.mp4 b/17 - GIT/011 Updating local repository (fetch, merge, pull) & Team development demo.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..b8f8cc4a1e73828ec25c893f27e565345aabe209 --- /dev/null +++ b/17 - GIT/011 Updating local repository (fetch, merge, pull) & Team development demo.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:846870d477d9e4ed3974d66d05ff50884ee15205b0b33256b584996ba8326ae7 +size 164568458 diff --git a/17 - GIT/012 Merge Conflicts.mp4 b/17 - GIT/012 Merge Conflicts.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..b768fd2e7495d8cca211d9adb7a56be14c0b348a --- /dev/null +++ b/17 - GIT/012 Merge Conflicts.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de0d64d3e7e0575a077e8f73ba6a96c4b2abcf227acd1aaeaa1bef58a75b4645 +size 220074868 diff --git a/17 - GIT/013 Git Rebasing & Force Update of remote repository.mp4 b/17 - GIT/013 Git Rebasing & Force Update of remote repository.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..53cfac7c18f7575ebd26456b8aebbd32244439eb --- /dev/null +++ b/17 - GIT/013 Git Rebasing & Force Update of remote repository.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8211b680fe6f06470b6912dae1ec70d2d1e78d9280137ff9abe848ee0c2ffe36 +size 170851787 diff --git a/17 - GIT/014 Git Interactive Rebase.mp4 b/17 - GIT/014 Git Interactive Rebase.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..9a9041321e40322f47d16f1f7d895aa7768cd337 --- /dev/null +++ b/17 - GIT/014 Git Interactive Rebase.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:abca98b5b1c68baf62a57238385caad19aaa2eea935d4ee49c9585eea18c7757 +size 134827939 diff --git a/17 - GIT/015 Git reset.mp4 b/17 - GIT/015 Git reset.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..f308c0f48e974cc58ef9800df21a984b02505878 --- /dev/null +++ b/17 - GIT/015 Git reset.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca5a7a7254aea06865c1f189b81a5b911a66905dae990c92c68afca5c6796bd9 +size 104868390 diff --git a/17 - GIT/016 Git stash.mp4 b/17 - GIT/016 Git stash.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..76e798125e58f77dec0764a6af709fb387c399cb --- /dev/null +++ b/17 - GIT/016 Git stash.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2450595605315dacecf9374adfb3ad1621eae2a351e3828bde556198ba470fb2 +size 153828560 diff --git a/17 - GIT/017 Restoring lost snapshots in Git git reflog.mp4 b/17 - GIT/017 Restoring lost snapshots in Git git reflog.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..dccc7f357a31bab0e3885c9de76e5abc0a9c088b --- /dev/null +++ b/17 - GIT/017 Restoring lost snapshots in Git git reflog.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac9676df34002d181ad66a0bfc751871b15e51f27d42c6f65fef5b3ea61c822f +size 107509482 diff --git a/17 - GIT/018 Git cherry-pick moving commits between branches.mp4 b/17 - GIT/018 Git cherry-pick moving commits between branches.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..b6deb92c2608f162869c789a993c75899920c0e7 --- /dev/null +++ b/17 - GIT/018 Git cherry-pick moving commits between branches.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e513acce304a5ec4d4a32a10805d7af3e960721926f4115f62da87ab81009f42 +size 123346061 diff --git a/17 - GIT/020 Git and Eclipse integration.mp4 b/17 - GIT/020 Git and Eclipse integration.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..c85d3990eac7d6ba92dae14dd2f23f57ead0321b --- /dev/null +++ b/17 - GIT/020 Git and Eclipse integration.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b147e25a4e415c6b8687f215e8b3b4b8978891d968b11a83d1a1225a67099bf +size 201394707 diff --git a/18 - Excpetion Handling/001 Exception Handling in Java.mp4 b/18 - Excpetion Handling/001 Exception Handling in Java.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..d039c8a19d97562c0b05c2b6faf34b4e51dfc927 --- /dev/null +++ b/18 - Excpetion Handling/001 Exception Handling in Java.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e84431ef9f13c38ee5c0839fb1125cca05c533d93d4b75d0b3b3aa4a3e59870e +size 418047455 diff --git a/19 - Java Collections Framework/001 Java Collections Framework Overview.mp4 b/19 - Java Collections Framework/001 Java Collections Framework Overview.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..9c0c252fbe4e8497e0f7f190d18853fac95fe98f --- /dev/null +++ b/19 - Java Collections Framework/001 Java Collections Framework Overview.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c97a949192191c4c5443a220f7b5247b8069ec38bbe6e14652be11efaec9498e +size 60798643 diff --git a/19 - Java Collections Framework/002 Collection Interface.mp4 b/19 - Java Collections Framework/002 Collection Interface.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..17521c0a51d1814f06d7bb7fef516e7ef8a13773 --- /dev/null +++ b/19 - Java Collections Framework/002 Collection Interface.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:164c913687e95bc4c40742a284a03c115945f4a5f831af8e459a7bb50b5acd95 +size 122395076 diff --git a/19 - Java Collections Framework/003 Interfaces List, Set and Queue Overview.mp4 b/19 - Java Collections Framework/003 Interfaces List, Set and Queue Overview.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..dc10f4a63a5f33aa6a6a87e88573dad3ea8f0cdd --- /dev/null +++ b/19 - Java Collections Framework/003 Interfaces List, Set and Queue Overview.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a34e68ea407b07936e7bf302ae69aaae236650b1f076f29777403f21c3379c1c +size 63891900 diff --git a/19 - Java Collections Framework/004 List implementations - ArrayList, Vector, CopyOnWriteArrayList & Stack.mp4 b/19 - Java Collections Framework/004 List implementations - ArrayList, Vector, CopyOnWriteArrayList & Stack.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..bdda9c021478d9a41572aab79aa86b6191343494 --- /dev/null +++ b/19 - Java Collections Framework/004 List implementations - ArrayList, Vector, CopyOnWriteArrayList & Stack.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96d28a37de646a8114dff474d018d2e8ae21b5fea754f209979329779854bcc3 +size 324663028 diff --git a/19 - Java Collections Framework/005 LinkedList VS ArrayList, Big O Notation & Homework.mp4 b/19 - Java Collections Framework/005 LinkedList VS ArrayList, Big O Notation & Homework.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..8d581c0ad10cd0a6bdefd27e5c29b9032d845a56 --- /dev/null +++ b/19 - Java Collections Framework/005 LinkedList VS ArrayList, Big O Notation & Homework.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca0b545705e4611ae9da5b47fe09c4a567edc1d2d6c66ddd771791461d537791 +size 292652913 diff --git a/19 - Java Collections Framework/008 Comparator and Comparable.mp4 b/19 - Java Collections Framework/008 Comparator and Comparable.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..e40f51ecb15286f12f3dfb8e05ca8711d19228d2 --- /dev/null +++ b/19 - Java Collections Framework/008 Comparator and Comparable.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a057d15bff244745cdba3685c4fb1bac18ca6e5c77bbc50fc9bb5c9990eafcb6 +size 379384370 diff --git a/19 - Java Collections Framework/010 Iterable, Iterator & ListIterator.mp4 b/19 - Java Collections Framework/010 Iterable, Iterator & ListIterator.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..035402abeb1a9630bfca6828625585663d8000eb --- /dev/null +++ b/19 - Java Collections Framework/010 Iterable, Iterator & ListIterator.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:458f7d82934d97c506144cf1f027a5763cf885d86f35752cc88ba032d4ebf60c +size 485929345 diff --git a/19 - Java Collections Framework/012 Queue and Deque.mp4 b/19 - Java Collections Framework/012 Queue and Deque.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..84e17317616355cd1f70a4c008410c1fc11a509f --- /dev/null +++ b/19 - Java Collections Framework/012 Queue and Deque.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77d2802e9d38efc71f77b111c1f5a0b4bc777bf8316da95736ec5d794f8600c4 +size 247864975 diff --git a/19 - Java Collections Framework/014 Map Hierarchy.mp4 b/19 - Java Collections Framework/014 Map Hierarchy.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..96095603e315ec375452e501edd0d1d7ad9de5b7 --- /dev/null +++ b/19 - Java Collections Framework/014 Map Hierarchy.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9ec5c302272c4d28a877d6256fb69f95a81f5f33ec6602f06fd253f5234469d +size 279004465 diff --git a/19 - Java Collections Framework/015 Hash Tables & HashMap.mp4 b/19 - Java Collections Framework/015 Hash Tables & HashMap.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..d95e8253873bb4535c6a3af5549e7bddb2b1c31b --- /dev/null +++ b/19 - Java Collections Framework/015 Hash Tables & HashMap.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f75ba2cb4f1600cff700688030398486f3420d81cbdfd3132acc88fe8f127acf +size 443243571 diff --git a/19 - Java Collections Framework/016 LinkedHashMap.mp4 b/19 - Java Collections Framework/016 LinkedHashMap.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..5c08510a49f75e86f07935a2173e3bfff18dd145 --- /dev/null +++ b/19 - Java Collections Framework/016 LinkedHashMap.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bdaf10a0ffdbf67ea339df7c5b5f96de6d20396069db04489aa3a8b6a279a689 +size 137642522 diff --git a/19 - Java Collections Framework/018 SortedMap, NavigableMap & TreeMap.mp4 b/19 - Java Collections Framework/018 SortedMap, NavigableMap & TreeMap.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..47cddf70c2ed00b5ff177620131a92c1ebc14eae --- /dev/null +++ b/19 - Java Collections Framework/018 SortedMap, NavigableMap & TreeMap.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5525a07ad5d3628adb922f8be4d67fd8484619ac819b7da872a81b08ea2f6743 +size 253795293 diff --git a/19 - Java Collections Framework/019 Set Implementations (HashSet practice) & java.util.Colelctions class.mp4 b/19 - Java Collections Framework/019 Set Implementations (HashSet practice) & java.util.Colelctions class.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..5cafc34e3cef78163810f090256af5bad2ad92b5 --- /dev/null +++ b/19 - Java Collections Framework/019 Set Implementations (HashSet practice) & java.util.Colelctions class.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d06c410949955f231cc830a190e74263869b518791747faa465b5570413319aa +size 287884026 diff --git a/20 - Generics/001 Generics in Java.mp4 b/20 - Generics/001 Generics in Java.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..1734258330f077582b19f3f821fe6cb6ddab8b83 --- /dev/null +++ b/20 - Generics/001 Generics in Java.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c162ad55b8a4fafd29516cb3826c68d5951c4ee165aa44c2ae140699dfba2cf5 +size 526557972 diff --git a/22 - Functional Programming in Java (including lambda functions & method references)/001 Functional Programming in Java Overview.mp4 b/22 - Functional Programming in Java (including lambda functions & method references)/001 Functional Programming in Java Overview.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..4e1471f6ec9dfd6f770b5f79627816785d1f3ca1 --- /dev/null +++ b/22 - Functional Programming in Java (including lambda functions & method references)/001 Functional Programming in Java Overview.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84824cf4f1504eece9cd8f9d2be5eabc28ba613a6cafcfc252416584d404c9b8 +size 122618578 diff --git a/22 - Functional Programming in Java (including lambda functions & method references)/002 Functional Interface, Lambda Functions & Method References.mp4 b/22 - Functional Programming in Java (including lambda functions & method references)/002 Functional Interface, Lambda Functions & Method References.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..5f4b6d6d7931f4e837738a15170240d561df7d1a --- /dev/null +++ b/22 - Functional Programming in Java (including lambda functions & method references)/002 Functional Interface, Lambda Functions & Method References.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9eb0ce0238982b65f582b476299a0c5fa9b27911f1a6a438f4eb1eee0d8e383f +size 304693518 diff --git a/22 - Functional Programming in Java (including lambda functions & method references)/003 Function & BiFunction Theory & Practice.mp4 b/22 - Functional Programming in Java (including lambda functions & method references)/003 Function & BiFunction Theory & Practice.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..380905f6e6d897e3d996841c9231b0d51d7631cc --- /dev/null +++ b/22 - Functional Programming in Java (including lambda functions & method references)/003 Function & BiFunction Theory & Practice.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2de22ca6c0331ccb204924fc68fad9f2757eda21a54658dad0bac1e4833eed87 +size 494518978 diff --git a/22 - Functional Programming in Java (including lambda functions & method references)/004 Consumer, BiConsumer, Predicate & BiPredicate.mp4 b/22 - Functional Programming in Java (including lambda functions & method references)/004 Consumer, BiConsumer, Predicate & BiPredicate.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..9e7c5adcc7289ab170c09decc88c66822c72955f --- /dev/null +++ b/22 - Functional Programming in Java (including lambda functions & method references)/004 Consumer, BiConsumer, Predicate & BiPredicate.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd34d4c1c638c479cbf373dc1602592e3c4526e7438132501a17ac715ff3f5f3 +size 371378599 diff --git a/23 - Stream API/001 Stream API with Practical Exercises.mp4 b/23 - Stream API/001 Stream API with Practical Exercises.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..f16d06995415b20ceaadf9a1eab72581f52df694 --- /dev/null +++ b/23 - Stream API/001 Stream API with Practical Exercises.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad69a87a8e8d796c5b813b2b0fd99fa7b6c9767dec69080740109e9e706b7019 +size 488007059 diff --git a/25 - Input and Output Streams in Java/001 Input and Output Streams in Java.mp4 b/25 - Input and Output Streams in Java/001 Input and Output Streams in Java.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..ebf12866df628fb548329eb3741b4b6bceac777c --- /dev/null +++ b/25 - Input and Output Streams in Java/001 Input and Output Streams in Java.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:904f0f98bde219325ad683b1b3de01533f1e518a3b0c59a9c25cedd7e8feb240 +size 684318439 diff --git a/25 - Input and Output Streams in Java/005 Serialization and Cloning.mp4 b/25 - Input and Output Streams in Java/005 Serialization and Cloning.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..c3dcd646781a346dabaf557d0f8b7be1b35bf195 --- /dev/null +++ b/25 - Input and Output Streams in Java/005 Serialization and Cloning.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0ca89ea37317a3f0cf71e36bb7b5b3258129308269c98bd9368564d1d117315d +size 331951074 diff --git a/27 - Multithreading/001 Multithreading Overview.mp4 b/27 - Multithreading/001 Multithreading Overview.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..48a3a4eb86fb9c269656c56d2b91326579b09d2c --- /dev/null +++ b/27 - Multithreading/001 Multithreading Overview.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ea82b22ac241e89122cfafe6b30ba8b26ecb359af3a52b4b7e1b25d6ad0b8ec +size 95431526 diff --git a/27 - Multithreading/002 First Multithreading Program Thread & Runnable.mp4 b/27 - Multithreading/002 First Multithreading Program Thread & Runnable.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..ab7ccbd609fc971ed037f1131962a934133effa0 --- /dev/null +++ b/27 - Multithreading/002 First Multithreading Program Thread & Runnable.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:50db882ab651765d757ef89fd3aafc93f440b2074982fc2011a552f152c56bbd +size 384375398 diff --git a/27 - Multithreading/003 Thread Scheduler, Race Condition, Daemon Threads & Thread Groups.mp4 b/27 - Multithreading/003 Thread Scheduler, Race Condition, Daemon Threads & Thread Groups.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..a8a804784f80fbab49e2c4f203b081cb3b4df73f --- /dev/null +++ b/27 - Multithreading/003 Thread Scheduler, Race Condition, Daemon Threads & Thread Groups.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d08071796e35c1e3585858caa71312ea3c6b7af487896c3f95d08acaddd46e3 +size 259096726 diff --git a/27 - Multithreading/004 Synchronization Basics.mp4 b/27 - Multithreading/004 Synchronization Basics.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..f47984ab1ee90f64829103bb5950b921f48a0d45 --- /dev/null +++ b/27 - Multithreading/004 Synchronization Basics.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1452ab97fe92bce4fa8e48dcf8e3fedb906ef8724917215076a48ee6a2025990 +size 352309376 diff --git a/27 - Multithreading/005 Memory Management in Multithreading Programs.mp4 b/27 - Multithreading/005 Memory Management in Multithreading Programs.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..7c203c8d517870be874b74d691f4212e05838b85 --- /dev/null +++ b/27 - Multithreading/005 Memory Management in Multithreading Programs.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:720b79ec311c44ce28e17c8ac6de822ddbbaaf8efb4379f0d8b1e72c4bf79171 +size 272336763 diff --git a/27 - Multithreading/006 Deadlock & Livelock.mp4 b/27 - Multithreading/006 Deadlock & Livelock.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..aed59ddc1f7bc093fb86fc38a0448f42ea84003c --- /dev/null +++ b/27 - Multithreading/006 Deadlock & Livelock.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84a9345eba8df98372ff53b9309ae146ddc4a596ffa61c8e4013d2da0ad02eb2 +size 167336205 diff --git a/27 - Multithreading/007 Executor Services, Callable & Future.mp4 b/27 - Multithreading/007 Executor Services, Callable & Future.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..07c3e58c8b2c202c09d38aab4c93137344b4c8bd --- /dev/null +++ b/27 - Multithreading/007 Executor Services, Callable & Future.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22036a64f39712186e856dea09088250bdabcec0d9e911b04598e866b0db44c3 +size 265935711 diff --git a/27 - Multithreading/008 Executor Service Implementations & ThreadFactory.mp4 b/27 - Multithreading/008 Executor Service Implementations & ThreadFactory.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..6eed9f0ba4af8ac27a2475dc5d05c2cb1396166a --- /dev/null +++ b/27 - Multithreading/008 Executor Service Implementations & ThreadFactory.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6744e1fd551086319fb13e1adfba784b675c8be87b1cdd8cffeea558f05d3bdc +size 362710837 diff --git a/27 - Multithreading/009 ForkJoin Framework.mp4 b/27 - Multithreading/009 ForkJoin Framework.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..93243c0ffea10ece5147222d164e091dc57a5ff1 --- /dev/null +++ b/27 - Multithreading/009 ForkJoin Framework.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f846706b56ade8a22b62153db5091e0545aade1aac99333e510e97808801556 +size 208731635 diff --git a/27 - Multithreading/010 CompletableFuture.mp4 b/27 - Multithreading/010 CompletableFuture.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..f06d5b15485e1824d4d9c6aea45d5b24cba23be9 --- /dev/null +++ b/27 - Multithreading/010 CompletableFuture.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5aa2a6b0d8be0e548d151e56873f41b4246d7c9bd384a6384ad62a35814cf8ec +size 402000938 diff --git a/27 - Multithreading/011 Lock API - Lock, ReadWriteLock, ReentrantLock, ReentrantReadWriteLock, StampedLo.mp4 b/27 - Multithreading/011 Lock API - Lock, ReadWriteLock, ReentrantLock, ReentrantReadWriteLock, StampedLo.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..4ab1bfc4f4974563785295d2cff9abe0b682d6a6 --- /dev/null +++ b/27 - Multithreading/011 Lock API - Lock, ReadWriteLock, ReentrantLock, ReentrantReadWriteLock, StampedLo.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:305ef04abca66e4075c8cabf8925d8badcceb4e7ffe916a90bbfdc5b46f47106 +size 587013820 diff --git a/27 - Multithreading/012 Synchronizers - CyclicBarrier, CountDownLatch, Semaphore, Exchanger & Phaser.mp4 b/27 - Multithreading/012 Synchronizers - CyclicBarrier, CountDownLatch, Semaphore, Exchanger & Phaser.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..479e297162a9168fda84f7eee565aaaa14d289be --- /dev/null +++ b/27 - Multithreading/012 Synchronizers - CyclicBarrier, CountDownLatch, Semaphore, Exchanger & Phaser.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5639f93293323ebc7898ae1bc040cbcb8e8264ac9ff87ebc5a718b45217235ff +size 422228738 diff --git a/27 - Multithreading/013 Homework Multithreading.mp4 b/27 - Multithreading/013 Homework Multithreading.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..860bcfc7bd8cfcbc69205054d2f49819890b306b --- /dev/null +++ b/27 - Multithreading/013 Homework Multithreading.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2618e77f326f38c5a05d3f3e2e7a3707495d40878689b592fdb9e3847607217f +size 76206596 diff --git a/29 - Date and Time in JDK/001 Time Standards (GMT, UTC), Date and Calendar from java.util.mp4 b/29 - Date and Time in JDK/001 Time Standards (GMT, UTC), Date and Calendar from java.util.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..b468e00dc9268864f70a540b57853bba28909304 --- /dev/null +++ b/29 - Date and Time in JDK/001 Time Standards (GMT, UTC), Date and Calendar from java.util.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1fedbf765d9d23fbb66a8f3aa9371c19a6dd014cf875949a747ea42e39f5dd41 +size 400442143 diff --git a/29 - Date and Time in JDK/002 java.time package (Instant, LocalDateTime, ZonedDateTime, OffsetDateTime etc).mp4 b/29 - Date and Time in JDK/002 java.time package (Instant, LocalDateTime, ZonedDateTime, OffsetDateTime etc).mp4 new file mode 100644 index 0000000000000000000000000000000000000000..6f4feda72f355898a49f2db59333301ed797a905 --- /dev/null +++ b/29 - Date and Time in JDK/002 java.time package (Instant, LocalDateTime, ZonedDateTime, OffsetDateTime etc).mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68365e517ef286045e58d8e2be42d7ff5968fcedc60d379bc281d2d8916d8cd0 +size 510095697 diff --git a/30 - Java Reflection API/001 Java Reflection API.mp4 b/30 - Java Reflection API/001 Java Reflection API.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..ff7e723c22b2906edf6d54a23ddc716c621d04b8 --- /dev/null +++ b/30 - Java Reflection API/001 Java Reflection API.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:968889f33b36701c074e8ae2eed722c95840a5748c88575317fee32c996dc3bd +size 388959125 diff --git a/30 - Java Reflection API/002 Annotations.mp4 b/30 - Java Reflection API/002 Annotations.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..9b1f7b3871444c110486e45b7c7800dbf598248e --- /dev/null +++ b/30 - Java Reflection API/002 Annotations.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:385f995dd382c0aea91aef0980bb9201d687e40d47bc5c1da3f91f446821c45d +size 241238247 diff --git a/31 - JDK API/001 StringBuilder & StringBuffer.mp4 b/31 - JDK API/001 StringBuilder & StringBuffer.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..8edc2921da4612e2d372baafa1fd438be655a291 --- /dev/null +++ b/31 - JDK API/001 StringBuilder & StringBuffer.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5cc34cf132e6d9eb54789ae013a40a9f1a8eb4a6e0fdd4be7a495682324a4c5 +size 198973018 diff --git a/31 - JDK API/002 java.util.Optional - Optional in Java.mp4 b/31 - JDK API/002 java.util.Optional - Optional in Java.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..544ad84bc0b71664d1e0e9fbe5014d9a0bd7d3cf --- /dev/null +++ b/31 - JDK API/002 java.util.Optional - Optional in Java.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05a6090be5c2666cb025f7fce79226f8786b795e2926438ba830722c24209355 +size 126147889 diff --git a/31 - JDK API/003 Reactive Programming in Java Flow API, Reactive Streams.mp4 b/31 - JDK API/003 Reactive Programming in Java Flow API, Reactive Streams.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..045c25729c01b149b9189b01e305c9085e505ecd --- /dev/null +++ b/31 - JDK API/003 Reactive Programming in Java Flow API, Reactive Streams.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5812a6bad2ece2300bf3a09e02c4d71b60ef255741dcaaa16e6f4e9ac1709845 +size 281775902 diff --git a/32 - Java Platform Module System Modules in Java & Migration of Java Apps/001 Modules in Java Modular Application Example.mp4 b/32 - Java Platform Module System Modules in Java & Migration of Java Apps/001 Modules in Java Modular Application Example.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..f30e7e02ae7037aa1a86311e85fcf16bc29a9400 --- /dev/null +++ b/32 - Java Platform Module System Modules in Java & Migration of Java Apps/001 Modules in Java Modular Application Example.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd2f62eb3450831ec0fa0a04dac884857cb3c274f09a9a7900b3de97117c0411 +size 333959321 diff --git a/32 - Java Platform Module System Modules in Java & Migration of Java Apps/002 Migration of Java Apps Example of migration to a modular application.mp4 b/32 - Java Platform Module System Modules in Java & Migration of Java Apps/002 Migration of Java Apps Example of migration to a modular application.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..5a64cbf4c588819a5335406230c4b6d5091eddcb --- /dev/null +++ b/32 - Java Platform Module System Modules in Java & Migration of Java Apps/002 Migration of Java Apps Example of migration to a modular application.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:640ea7808ff7c1fa1362e105f3dfbad4257cdac0334dfffa23783e617bdef702 +size 108272142 diff --git a/33 - Testing for Software Engineers/001 Testing for software engineers Overview.mp4 b/33 - Testing for Software Engineers/001 Testing for software engineers Overview.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..90caf05ff9672a240ad845352270489187df4e5d --- /dev/null +++ b/33 - Testing for Software Engineers/001 Testing for software engineers Overview.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78dc8d18cfa0dfd9a411884a73c7810fdcb9dcece693677b61b0482e2fc7c7d4 +size 165860153 diff --git a/34 - Unit Testing & JUnit 5/001 Unit Testing & JUnit Overview.mp4 b/34 - Unit Testing & JUnit 5/001 Unit Testing & JUnit Overview.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..a4cd45f0813ec3201cacf196e0976e9d3698b261 --- /dev/null +++ b/34 - Unit Testing & JUnit 5/001 Unit Testing & JUnit Overview.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91600091373bb99c2e80510a800381853fe3edac35284f8f52f71af2be2b3a03 +size 193940702 diff --git a/99 - Jira/002 First Project in Jira Cloud_en.srt b/99 - Jira/002 First Project in Jira Cloud_en.srt new file mode 100644 index 0000000000000000000000000000000000000000..9edc492d39c7f22f5ed8a65620d7ff9fd584921f --- /dev/null +++ b/99 - Jira/002 First Project in Jira Cloud_en.srt @@ -0,0 +1,1232 @@ +1 +00:00:06,000 --> 00:00:06,000 +Hello again. + +2 +00:00:06,000 --> 00:00:09,000 +With this lesson we start learning of Jira API. + +3 +00:00:10,000 --> 00:00:12,000 +Let me just remind you our end goal. + +4 +00:00:12,000 --> 00:00:19,000 +Our end goal is to automate project management operations on the project using our own web application. + +5 +00:00:19,000 --> 00:00:25,000 +ChatGPT Messenger and integration with issue tracking system like Jira. + +6 +00:00:26,000 --> 00:00:33,000 +And to keep moving towards this goal, we need to understand what Jira is to create a Jira project to + +7 +00:00:33,000 --> 00:00:37,000 +populate Jira project with data that we are going to work with. + +8 +00:00:37,000 --> 00:00:41,000 +That's why this lesson is going to be completely about Jira. + +9 +00:00:42,000 --> 00:00:48,000 +We are going to start the lesson from understanding what Jira is and for what purposes we are going + +10 +00:00:48,000 --> 00:00:49,000 +to use it. + +11 +00:00:49,000 --> 00:00:55,000 +I will explain you different Jira editions and deployment options in this course. + +12 +00:00:55,000 --> 00:01:01,000 +We are going to work with Jira Software Cloud, so I will share with you advantages of using Jira Cloud, + +13 +00:01:01,000 --> 00:01:08,000 +but nevertheless I'm going to make an overview of Jira competitors just in case you are looking for + +14 +00:01:08,000 --> 00:01:15,000 +some analogs or in case Jira doesn't suit you during the lesson, you are supposed to create an Atlassian + +15 +00:01:15,000 --> 00:01:17,000 +account and Jira project. + +16 +00:01:18,000 --> 00:01:24,000 +I will explain the difference between Kanban template and Scrum template for your Jira project. + +17 +00:01:24,000 --> 00:01:30,000 +After that we will make a brief overview of Jira Interface Board project settings. + +18 +00:01:31,000 --> 00:01:37,000 +Namely, I'm going to show you how to work with issue types, how to add new issue types to the project, + +19 +00:01:37,000 --> 00:01:41,000 +how to add fields to the issue types and lots more. + +20 +00:01:41,000 --> 00:01:47,000 +And by the end of the lesson, I need to make sure that we created at least some fake data to be ready + +21 +00:01:47,000 --> 00:01:49,000 +for the following lessons in the course. + +22 +00:01:49,000 --> 00:01:54,000 +Let's start our lesson and the first thing in our lesson. + +23 +00:01:54,000 --> 00:02:01,000 +Let's make sure that we are on the same page and we understand what Jira is because different engineering + +24 +00:02:01,000 --> 00:02:07,000 +teams use different toolset for collaboration and job tracking, while Jira is super popular and most + +25 +00:02:07,000 --> 00:02:09,000 +likely you already worked with it. + +26 +00:02:09,000 --> 00:02:14,000 +Let me make an overview of this tool in case you didn't work with it before. + +27 +00:02:14,000 --> 00:02:19,000 +Jira is a popular project management and issue tracking tool developed by Atlassian. + +28 +00:02:19,000 --> 00:02:27,000 +Atlassian is a popular company that has more popular products like Bitbucket, Confluence, Trello, + +29 +00:02:27,000 --> 00:02:29,000 +Surge three and others. + +30 +00:02:30,000 --> 00:02:37,000 +Jira is widely used by software development teams to plan, track and manage their projects and tasks. + +31 +00:02:37,000 --> 00:02:44,000 +Jira provides a wide range of features and capabilities that help teams organize their work, collaborate + +32 +00:02:44,000 --> 00:02:47,000 +effectively and streamline their workflows. + +33 +00:02:47,000 --> 00:02:51,000 +Here are some key aspects of Jira Issue tracking. + +34 +00:02:51,000 --> 00:02:57,000 +Jira allows team to create and track issues or tasks related to their projects. + +35 +00:02:57,000 --> 00:03:04,000 +These issues can represent bugs, new features, improvements or any other work items that need to be + +36 +00:03:04,000 --> 00:03:05,000 +addressed. + +37 +00:03:05,000 --> 00:03:07,000 +About project management. + +38 +00:03:07,000 --> 00:03:13,000 +Jira provides project management features like creating and organizing tasks, setting priorities, + +39 +00:03:13,000 --> 00:03:21,000 +assigning tasks to key members, tracking progress and defining workflows to ensure that work is moving + +40 +00:03:21,000 --> 00:03:23,000 +smoothly through various stages. + +41 +00:03:24,000 --> 00:03:26,000 +Customizable Workflows. + +42 +00:03:26,000 --> 00:03:33,000 +Jira allows teams to define custom workflows that reflect their specific processes and how work flows + +43 +00:03:33,000 --> 00:03:35,000 +from one status to another. + +44 +00:03:35,000 --> 00:03:42,000 +Workflows can be tailored to match the team's preferred way of working Agile methodologies. + +45 +00:03:42,000 --> 00:03:49,000 +Support Jira offers comprehensive support for Agile methodologies like Scrum and Kanban. + +46 +00:03:50,000 --> 00:03:56,000 +It provides features for managing backlogs, creating sprints, visualizing work on boards, tracking + +47 +00:03:56,000 --> 00:04:04,000 +burndown charts and facilitating collaboration during agile ceremonies, integration and extensibility. + +48 +00:04:04,000 --> 00:04:11,000 +Jira can be integrated with other tools and systems such as version control systems like Bitbucket, + +49 +00:04:11,000 --> 00:04:17,000 +continuous integration tools, collaboration platforms like Confluence and more. + +50 +00:04:17,000 --> 00:04:24,000 +Additionally, Jira functionality can be extended through a wide range of add ons and plugins available + +51 +00:04:24,000 --> 00:04:26,000 +in that license marketplace. + +52 +00:04:26,000 --> 00:04:28,000 +Reporting and Analytics. + +53 +00:04:28,000 --> 00:04:35,000 +Jira provides reporting capabilities to track team performance, monitor progress and analyze project + +54 +00:04:35,000 --> 00:04:36,000 +metrics. + +55 +00:04:36,000 --> 00:04:43,000 +It offers built in reports and customizable dashboards to visualize data and gain insights into project + +56 +00:04:43,000 --> 00:04:45,000 +status and productivity. + +57 +00:04:45,000 --> 00:04:51,000 +Please note that the features and functionalities of Jira may vary depending on the specific edition + +58 +00:04:51,000 --> 00:04:54,000 +or deployment option chosen. + +59 +00:04:55,000 --> 00:05:02,000 +Jira offers different editions to satisfy the diverse needs of teams and organizations. + +60 +00:05:02,000 --> 00:05:08,000 +Let's make an overview of different deployment options, because depending on the deployment option, + +61 +00:05:08,000 --> 00:05:11,000 +some specifics of further integrations may vary. + +62 +00:05:11,000 --> 00:05:16,000 +Here's an overview of the main editions and deployment options available for Jira. + +63 +00:05:17,000 --> 00:05:18,000 +Jira Software. + +64 +00:05:18,000 --> 00:05:25,000 +Jira Software is specifically designed for software development teams following Agile methodologies. + +65 +00:05:25,000 --> 00:05:32,000 +It provides features and tools tailored for agile project management such as Scrum boards, Kanban boards, + +66 +00:05:32,000 --> 00:05:35,000 +backlog management and Agile reporting. + +67 +00:05:36,000 --> 00:05:37,000 +Jira Core. + +68 +00:05:37,000 --> 00:05:44,000 +Jira Core is simplified version of Jira that focuses on providing essential project management capabilities + +69 +00:05:44,000 --> 00:05:47,000 +for business teams and non-technical users. + +70 +00:05:47,000 --> 00:05:55,000 +It is suitable for teams working on projects outside the realm of software development, such as marketing, + +71 +00:05:55,000 --> 00:05:58,000 +HR, finance and operations. + +72 +00:05:58,000 --> 00:06:03,000 +General Service Management, formerly known as Jira Service Desk. + +73 +00:06:03,000 --> 00:06:09,000 +Jira Service Management is an IT service management solution built on the Jira platform. + +74 +00:06:09,000 --> 00:06:16,000 +It is designed to help IT teams manage and deliver services to internal or external customers. + +75 +00:06:16,000 --> 00:06:22,000 +It includes features like incident management, problem management, change management, self-service + +76 +00:06:22,000 --> 00:06:27,000 +portals, SLA tracking, and IT support. + +77 +00:06:28,000 --> 00:06:29,000 +Jira Cloud. + +78 +00:06:29,000 --> 00:06:37,000 +Jira Cloud refers to the software as a service version of Jira that is hosted and managed by Atlassian. + +79 +00:06:38,000 --> 00:06:46,000 +Was Jira Cloud Team's can access Jira through a web browser without the need for self hosting or infrastructure + +80 +00:06:46,000 --> 00:06:46,000 +management. + +81 +00:06:46,000 --> 00:06:51,000 +It offers flexibility, scalability and automatic updates. + +82 +00:06:51,000 --> 00:06:59,000 +Jira Cloud also provides seamless integration with other Atlassian cloud products like Confluence and + +83 +00:06:59,000 --> 00:06:59,000 +Bitbucket. + +84 +00:07:00,000 --> 00:07:01,000 +Jira Server. + +85 +00:07:01,000 --> 00:07:07,000 +Jira Server is a self-hosted on premises deployment option of Jira. + +86 +00:07:07,000 --> 00:07:14,000 +It allows organizations to install Jira on their own servers and have full control over the infrastructure + +87 +00:07:14,000 --> 00:07:15,000 +and data. + +88 +00:07:15,000 --> 00:07:23,000 +Jira Server offers greater customization options, direct database access and the ability to integrate + +89 +00:07:23,000 --> 00:07:26,000 +with other systems behind the organization's firewall. + +90 +00:07:27,000 --> 00:07:34,000 +Jira Software can be accessed through various deployment options, including Jira Cloud and Jira Server. + +91 +00:07:34,000 --> 00:07:38,000 +But in this course we are going to work with Jira Software Cloud. + +92 +00:07:39,000 --> 00:07:42,000 +Taking into account we are going to work with Jira Cloud. + +93 +00:07:42,000 --> 00:07:46,000 +We need to understand the motivation of such choice. + +94 +00:07:46,000 --> 00:07:51,000 +So let me explain you what advantages Jira Cloud has over other Jira editions. + +95 +00:07:52,000 --> 00:07:54,000 +Easy setup and maintenance. + +96 +00:07:54,000 --> 00:08:00,000 +With Jira Cloud, there is no need to set up and maintain your own server infrastructure. + +97 +00:08:00,000 --> 00:08:05,000 +Atlassian handles the server management updates, backups and security. + +98 +00:08:05,000 --> 00:08:14,000 +Allowing your team to focus on using Jira rather than managing the underlying infrastructure accessibility. + +99 +00:08:14,000 --> 00:08:20,000 +Jira Cloud is accessible from any web browser, providing convenience and flexibility for team members + +100 +00:08:20,000 --> 00:08:26,000 +who can access and collaborate on projects from anywhere using various devices. + +101 +00:08:27,000 --> 00:08:34,000 +It allows for seamless collaboration across distributed teams, remote workers or those working in different + +102 +00:08:34,000 --> 00:08:35,000 +time zones. + +103 +00:08:35,000 --> 00:08:36,000 +Scalability. + +104 +00:08:36,000 --> 00:08:41,000 +Jira Cloud offers scalability to accommodate growing teams and projects. + +105 +00:08:42,000 --> 00:08:48,000 +Atlassian ensures that the infrastructure is scalable, providing reliable performance even as the volume + +106 +00:08:48,000 --> 00:08:50,000 +of data and users increases. + +107 +00:08:50,000 --> 00:08:58,000 +This allows your team to focus on their work without worrying about server capacity or performance issues. + +108 +00:08:58,000 --> 00:09:00,000 +Automatic updates. + +109 +00:09:00,000 --> 00:09:06,000 +Julia Cloud receives regular automatic updates, ensuring that you always have access to the latest + +110 +00:09:06,000 --> 00:09:10,000 +features, bug fixes and security patches. + +111 +00:09:10,000 --> 00:09:12,000 +Seamless integrations. + +112 +00:09:12,000 --> 00:09:19,000 +Julia Cloud offers seamless integration with other licensed cloud products such as Confluence, Bitbucket, + +113 +00:09:19,000 --> 00:09:22,000 +Trello and other third party apps. + +114 +00:09:23,000 --> 00:09:25,000 +Atlassian ecosystem. + +115 +00:09:25,000 --> 00:09:32,000 +Jira Cloud is part of the larger Atlassian ecosystem, which includes various collaboration and productivity + +116 +00:09:32,000 --> 00:09:32,000 +tools. + +117 +00:09:33,000 --> 00:09:34,000 +Administration. + +118 +00:09:35,000 --> 00:09:39,000 +Google Cloud provides simplified administration and user management capabilities. + +119 +00:09:39,000 --> 00:09:47,000 +You can easily manage user access permissions and project settings, making it straightforward to control + +120 +00:09:47,000 --> 00:09:52,000 +who can view, edit or interact with different projects and issues. + +121 +00:09:53,000 --> 00:09:54,000 +Data security. + +122 +00:09:54,000 --> 00:09:59,000 +Atlassian takes care of data security and compliance in Jira Cloud. + +123 +00:09:59,000 --> 00:10:06,000 +They implement industry standard security practices, data encryption and backup procedures to ensure + +124 +00:10:06,000 --> 00:10:09,000 +the safety and integrity of your data. + +125 +00:10:10,000 --> 00:10:17,000 +These advantages make Jira cloud an attractive option for teams looking for a hassle free, accessible + +126 +00:10:17,000 --> 00:10:22,000 +and scalable project management solution with regular updates and seamless integrations. + +127 +00:10:22,000 --> 00:10:29,000 +Jira is not the one tool for task tracking, and definitely it's not the one tool that we can integrate + +128 +00:10:29,000 --> 00:10:30,000 +with. + +129 +00:10:30,000 --> 00:10:36,000 +In this course, we are going to discuss approaches of how you can integrate your web application with + +130 +00:10:36,000 --> 00:10:42,000 +Jira, but the same principles apply to other tools for tasks management. + +131 +00:10:42,000 --> 00:10:49,000 +The details of implementation may be different, may be different, but the general approach of integration + +132 +00:10:49,000 --> 00:10:51,000 +will be the same. + +133 +00:10:51,000 --> 00:10:58,000 +Let me just make a brief overview of key Jira competitors, because I understand that Jira may be not + +134 +00:10:58,000 --> 00:11:03,000 +the choice number one for everyone, and I want to give you options to choose from. + +135 +00:11:04,000 --> 00:11:09,000 +I just want to provide you with options to choose from in case during this course you want to implement + +136 +00:11:09,000 --> 00:11:16,000 +something similar for your organization and you are not completely satisfied with Jira for some reasons. + +137 +00:11:16,000 --> 00:11:25,000 +So the key Jira competitors are Microsoft Azure DevOps, formerly known as Visual Studio Team Services. + +138 +00:11:26,000 --> 00:11:30,000 +Azure DevOps is a set of development tools provided by Microsoft. + +139 +00:11:30,000 --> 00:11:37,000 +It includes features for project planning, version control, continuous integration, continuous delivery + +140 +00:11:37,000 --> 00:11:38,000 +and issue tracking. + +141 +00:11:38,000 --> 00:11:43,000 +My personal opinion, really amazing tool in my opinion. + +142 +00:11:43,000 --> 00:11:48,000 +This is number one competitor of Jironza market based on today Trello. + +143 +00:11:48,000 --> 00:11:55,000 +Trevor, also developed by Atlassian, offers a user friendly visual approach to project management. + +144 +00:11:55,000 --> 00:12:02,000 +It utilizes boards, lists and cards to help teams organize and track their work. + +145 +00:12:02,000 --> 00:12:09,000 +While Trello focuses on simplicity and ease of use, Jira Cloud provides more advanced features and + +146 +00:12:09,000 --> 00:12:11,000 +customization options. + +147 +00:12:12,000 --> 00:12:18,000 +Asana Asana is a popular project management tools that enables teams to plan, organize and track their + +148 +00:12:18,000 --> 00:12:19,000 +work. + +149 +00:12:19,000 --> 00:12:25,000 +It offers features like task management, project timelines and team collaboration. + +150 +00:12:25,000 --> 00:12:29,000 +Asana emphasizes simplicity and intuitive design. + +151 +00:12:30,000 --> 00:12:37,000 +Monday.com It is a visual collaboration and project management platform that allows teams to manage + +152 +00:12:37,000 --> 00:12:42,000 +tasks, workflows and projects in a flexible and customizable manner. + +153 +00:12:42,000 --> 00:12:48,000 +It provides features for tracking progress, assigning tasks and team communication. + +154 +00:12:48,000 --> 00:12:53,000 +I believe that you can also have your personal favorite tool, and that is fine. + +155 +00:12:53,000 --> 00:13:02,000 +The market is huge and in case your organization or your company uses other tools, the main thing in + +156 +00:13:02,000 --> 00:13:08,000 +scope of this course is that the tool you selected exposes some API for external integration. + +157 +00:13:09,000 --> 00:13:10,000 +Okay. + +158 +00:13:10,000 --> 00:13:14,000 +So I believe you have enough understanding of what Jira Cloud is. + +159 +00:13:14,000 --> 00:13:20,000 +Anyway, in case you have any questions, just remember that I'm always two clicks away from you. + +160 +00:13:20,000 --> 00:13:25,000 +You can post your questions below the video and I will be happy to answer. + +161 +00:13:25,000 --> 00:13:28,000 +Let's proceed with creating an account at Atlassian. + +162 +00:13:29,000 --> 00:13:33,000 +You need to create an Atlassian account in order to work with Jira Cloud. + +163 +00:13:34,000 --> 00:13:41,000 +As you already know, Atlassian owns multiple successful projects like Jira, Confluence, Trello and + +164 +00:13:41,000 --> 00:13:41,000 +others. + +165 +00:13:41,000 --> 00:13:49,000 +And in order to get access to these services, you need to have Atlassian account on the main website. + +166 +00:13:49,000 --> 00:13:51,000 +atlassian.com. + +167 +00:13:51,000 --> 00:13:54,000 +Click on try now button in the header. + +168 +00:13:55,000 --> 00:13:59,000 +On this page, you can find a list of projects that you can try. + +169 +00:13:59,000 --> 00:14:00,000 +On the top. + +170 +00:14:00,000 --> 00:14:01,000 +You can see Jira Software. + +171 +00:14:02,000 --> 00:14:04,000 +Click on the button, Try Cloud. + +172 +00:14:04,000 --> 00:14:11,000 +You can start for free with a free cloud plan that supports up to ten users and two gigabytes of file + +173 +00:14:11,000 --> 00:14:12,000 +storage. + +174 +00:14:12,000 --> 00:14:18,000 +And don't worry, it is not some kind of services like call them three key free. + +175 +00:14:18,000 --> 00:14:23,000 +When you are asked to provide your credit card in order to use free plan. + +176 +00:14:23,000 --> 00:14:28,000 +Why should I provide a credit card to use a free plan if it is free? + +177 +00:14:28,000 --> 00:14:28,000 +Correct. + +178 +00:14:28,000 --> 00:14:35,000 +And then they charge you because you accidentally used some features that you didn't know that it is + +179 +00:14:35,000 --> 00:14:35,000 +paid. + +180 +00:14:35,000 --> 00:14:38,000 +Don't like those kind of platforms. + +181 +00:14:38,000 --> 00:14:40,000 +But here everything is fair. + +182 +00:14:40,000 --> 00:14:42,000 +If it is free, then it is free. + +183 +00:14:42,000 --> 00:14:49,000 +Don't be afraid of to sign up and you don't need to provide your credit card details for faster process + +184 +00:14:49,000 --> 00:14:50,000 +of sign up. + +185 +00:14:50,000 --> 00:14:54,000 +You can use your Google account taking into account. + +186 +00:14:54,000 --> 00:14:56,000 +I already have my free account. + +187 +00:14:56,000 --> 00:15:03,000 +I wouldn't be able to walk you through the each step of onboarding because not all steps are the same + +188 +00:15:03,000 --> 00:15:05,000 +when you already have account. + +189 +00:15:05,000 --> 00:15:07,000 +But still, don't worry. + +190 +00:15:07,000 --> 00:15:09,000 +I prepared for you a detailed guide. + +191 +00:15:10,000 --> 00:15:17,000 +After you signed up you are redirected to the next page where you can see some nice animation that tells + +192 +00:15:17,000 --> 00:15:19,000 +you that your product is starting up. + +193 +00:15:19,000 --> 00:15:26,000 +Then you will be asked what template you want to use for your first project, Kanban or Scrum. + +194 +00:15:26,000 --> 00:15:33,000 +Let me make a short review of these two templates in order you can select which one suits better for + +195 +00:15:33,000 --> 00:15:33,000 +your needs. + +196 +00:15:34,000 --> 00:15:41,000 +So let me start with review from Kanban template to understand what Kanban template is about. + +197 +00:15:41,000 --> 00:15:45,000 +You need to be familiar with fundamentals of Kanban framework. + +198 +00:15:45,000 --> 00:15:51,000 +Kanban is a project management framework that emphasizes visualizing work and optimizing flow. + +199 +00:15:52,000 --> 00:15:59,000 +The Kanban template in Jira Cloud provides a board based view of your project where you can create and + +200 +00:15:59,000 --> 00:16:02,000 +track tasks using customizable columns. + +201 +00:16:02,000 --> 00:16:09,000 +You can set up columns to represent different stages of work, like, for example, to do in progress + +202 +00:16:09,000 --> 00:16:14,000 +done and move tasks across the columns as work progresses. + +203 +00:16:14,000 --> 00:16:20,000 +It allows you to limit work in progress, to maintain focus and reduce bottlenecks. + +204 +00:16:20,000 --> 00:16:27,000 +You can configure Swimlanes, which provide additional ways to categorize and organize your work, such + +205 +00:16:27,000 --> 00:16:30,000 +as by priority team or issue type. + +206 +00:16:31,000 --> 00:16:37,000 +The Kanban template is flexible and suitable for teams that prefer a continuous flow approach to managing + +207 +00:16:37,000 --> 00:16:38,000 +their work. + +208 +00:16:38,000 --> 00:16:46,000 +Usually Kanban framework works the best for support operations, small teams who needs a lot of flexibility + +209 +00:16:46,000 --> 00:16:48,000 +in changing priorities if needed? + +210 +00:16:49,000 --> 00:16:56,000 +Let's now talk about Scrum template and again to understand Scrum template in Jira, it is better you + +211 +00:16:56,000 --> 00:16:58,000 +have some basic understanding of Scrum framework. + +212 +00:16:58,000 --> 00:17:05,000 +Scrum is an Agile project management framework that focuses on iterative and incremental delivery. + +213 +00:17:05,000 --> 00:17:12,000 +The Scrum template in Jira Cloud provides boards and backlogs specifically designed for Scrum teams. + +214 +00:17:12,000 --> 00:17:19,000 +It includes features like sprints, user stories and burndown charts to support the Scrum methodology. + +215 +00:17:19,000 --> 00:17:26,000 +You can create and manage product backlogs, plan sprints and track progress through the Sprint board. + +216 +00:17:26,000 --> 00:17:34,000 +The Scrum template allows you to define user stories and tasks estimated for using story points and + +217 +00:17:34,000 --> 00:17:37,000 +track progress using the Burndown chart. + +218 +00:17:37,000 --> 00:17:44,000 +It facilitates agile ceremonies such as Sprint planning, daily stand ups and Sprint reviews. + +219 +00:17:44,000 --> 00:17:51,000 +The Scrum template is suitable for teams that follow scrum practices and want to organize their work + +220 +00:17:51,000 --> 00:17:53,000 +into Timeboxed iterations. + +221 +00:17:54,000 --> 00:17:58,000 +Probably you think which one we would select for our course. + +222 +00:17:58,000 --> 00:18:05,000 +To be honest, if we talk about technical side of integration, it doesn't critically matter because + +223 +00:18:05,000 --> 00:18:07,000 +you can fetch data from any type of project. + +224 +00:18:07,000 --> 00:18:12,000 +It depends on what data you need and how you want to manage your project. + +225 +00:18:13,000 --> 00:18:19,000 +For the sake of the demo today I will select Kanban template because it will be a little bit easier + +226 +00:18:19,000 --> 00:18:27,000 +to fill it out with imaginary work and tasks and it doesn't have iterations that simplifies configuration + +227 +00:18:27,000 --> 00:18:29,000 +of boards, at least in some degree. + +228 +00:18:29,000 --> 00:18:36,000 +And I want to save some of your time in order to put all the focus on the integration part. + +229 +00:18:36,000 --> 00:18:40,000 +One day I am going to have a course for project managers. + +230 +00:18:40,000 --> 00:18:44,000 +Then I will make a detailed overview of different frameworks. + +231 +00:18:44,000 --> 00:18:50,000 +But so far in this course we need to focus on the technical side of the integration. + +232 +00:18:50,000 --> 00:18:54,000 +So I selected Kanban and clicked next. + +233 +00:18:54,000 --> 00:18:57,000 +And now we can see our Kanban board. + +234 +00:18:58,000 --> 00:19:00,000 +The interface is super intuitive. + +235 +00:19:00,000 --> 00:19:04,000 +You can add new column by clicking this plus icon. + +236 +00:19:04,000 --> 00:19:06,000 +Create new ticket. + +237 +00:19:06,000 --> 00:19:11,000 +You can by clicking create issue or create button in the navigation pane. + +238 +00:19:11,000 --> 00:19:15,000 +So let me share with you basics of Jira terminology. + +239 +00:19:15,000 --> 00:19:21,000 +All tickets in Jira are called issues, but issues may have different types. + +240 +00:19:21,000 --> 00:19:27,000 +For example, it can be bug issue type, which means something what's supposed to work in one way, + +241 +00:19:27,000 --> 00:19:34,000 +but it doesn't work in expected way according to requirements and you create the bug to describe this + +242 +00:19:35,000 --> 00:19:36,000 +task issue type. + +243 +00:19:36,000 --> 00:19:41,000 +It is just for task description epic issue type. + +244 +00:19:41,000 --> 00:19:43,000 +It is for group of tasks. + +245 +00:19:43,000 --> 00:19:48,000 +Usually epic serves as a container for multiple features and so on. + +246 +00:19:48,000 --> 00:19:56,000 +By default on Kanban board you can create only issues of type task, but if you also want to have opportunity + +247 +00:19:56,000 --> 00:20:01,000 +to create box and stores here, you need to adjust configurations. + +248 +00:20:01,000 --> 00:20:04,000 +I'm going to show you how to do this in Jira. + +249 +00:20:04,000 --> 00:20:10,000 +I can add different types of issues and make them available for selection in my project. + +250 +00:20:10,000 --> 00:20:17,000 +You need to go to project settings and in project configuration you can add all the required issue types + +251 +00:20:17,000 --> 00:20:18,000 +that you want to work with. + +252 +00:20:19,000 --> 00:20:27,000 +Click on Project Settings menu from the left pane, then click on issue types and here you can add other + +253 +00:20:27,000 --> 00:20:28,000 +issue types. + +254 +00:20:28,000 --> 00:20:31,000 +Let's also add bug story. + +255 +00:20:32,000 --> 00:20:36,000 +Also, as you can see, you can configure the properties of each issue type. + +256 +00:20:36,000 --> 00:20:40,000 +You can add custom ones in case there is a such need. + +257 +00:20:40,000 --> 00:20:46,000 +Here on the right, you can see interactive menus that allows you to create new field for the selected + +258 +00:20:46,000 --> 00:20:51,000 +issue type, or you can select some field from existing ones. + +259 +00:20:51,000 --> 00:20:58,000 +For example, if you want to add due date field in order to specify by due date of some issue, you + +260 +00:20:58,000 --> 00:21:00,000 +need to find this field and add it. + +261 +00:21:01,000 --> 00:21:06,000 +I added due date field for task issue type in Jira. + +262 +00:21:06,000 --> 00:21:12,000 +The story issue type is commonly used to represent a user story, which is a lightweight description + +263 +00:21:13,000 --> 00:21:17,000 +of a feature or functionality from an end user perspective. + +264 +00:21:17,000 --> 00:21:25,000 +Stories capture the what and why of a particular requirement or piece of work in Jira. + +265 +00:21:25,000 --> 00:21:28,000 +Both is a story and task issue. + +266 +00:21:28,000 --> 00:21:32,000 +Types are commonly used to represent work items within a project. + +267 +00:21:32,000 --> 00:21:38,000 +However, they serve different purposes and have distinct characteristics. + +268 +00:21:38,000 --> 00:21:42,000 +More details about the difference between user story and task. + +269 +00:21:42,000 --> 00:21:48,000 +We are going to learn in the separate project management course, but for now you need just to understand + +270 +00:21:48,000 --> 00:21:55,000 +that there are different types of issues in Jira because when we will fetch work items from Jira and + +271 +00:21:55,000 --> 00:22:01,000 +work with them, it will be important for you to understand what different issue types are. + +272 +00:22:01,000 --> 00:22:08,000 +So my recommendation for you would be to spend some time just clicking on different buttons, exploring + +273 +00:22:08,000 --> 00:22:12,000 +the interface, understanding the configurations. + +274 +00:22:12,000 --> 00:22:15,000 +Like I said, interface is pretty intuitive. + +275 +00:22:15,000 --> 00:22:22,000 +You can change the name of the board by clicking on it, and most of all, interaction scenes are straightforward + +276 +00:22:22,000 --> 00:22:23,000 +in the similar way. + +277 +00:22:24,000 --> 00:22:31,000 +Click on Gear Icon, check some other settings and project settings and in case you would have any questions, + +278 +00:22:31,000 --> 00:22:34,000 +feel free to ask me in comments below the video. + +279 +00:22:34,000 --> 00:22:39,000 +For the sake of the demo, let's create some fake test data here on the board. + +280 +00:22:39,000 --> 00:22:42,000 +You can create some tasks and bugs. + +281 +00:22:42,000 --> 00:22:47,000 +We are going to use this test data when we will work with Jira API. + +282 +00:22:48,000 --> 00:22:51,000 +Also, I assigned these issues on me. + +283 +00:22:51,000 --> 00:22:55,000 +Feel free to explore what other properties we have here. + +284 +00:22:55,000 --> 00:23:01,000 +I believe there is no need for me going over each of these fields because it will be hard for you to + +285 +00:23:01,000 --> 00:23:03,000 +remember all the details. + +286 +00:23:03,000 --> 00:23:07,000 +It is better to learn them gradually during the course. + +287 +00:23:07,000 --> 00:23:09,000 +That's all for this lesson. + +288 +00:23:09,000 --> 00:23:15,000 +We still have a lot of things to learn about Jira API integration, but at least now we have Jira project + +289 +00:23:15,000 --> 00:23:19,000 +created and configured and we have some test data to work with. + +290 +00:23:19,000 --> 00:23:23,000 +We are going to continue learning in the next lesson. + +291 +00:23:23,000 --> 00:23:27,000 +And now let's recap what we have learned in this lesson. + +292 +00:23:27,000 --> 00:23:30,000 +In this lesson, we learned what Jira is. + +293 +00:23:30,000 --> 00:23:34,000 +I showed the different Jira editions and different deployment options. + +294 +00:23:35,000 --> 00:23:39,000 +We discussed advantages of Jira Cloud also. + +295 +00:23:39,000 --> 00:23:42,000 +Now you know, key competitors of Jira on the market. + +296 +00:23:42,000 --> 00:23:49,000 +This will give you an opportunity to select another tool if for some reasons Jira doesn't suit you. + +297 +00:23:50,000 --> 00:23:56,000 +During the lesson together we created a lesson account organization and Jira project. + +298 +00:23:56,000 --> 00:24:01,000 +We learned the difference between Kanban Project template and Scrum template. + +299 +00:24:02,000 --> 00:24:07,000 +We hold the review of Kanban board and review of Jira Project settings. + +300 +00:24:07,000 --> 00:24:10,000 +Now you know how to configure issue types. + +301 +00:24:10,000 --> 00:24:17,000 +Add new issue type to the project and you saw how we can add fields to the issue view. + +302 +00:24:17,000 --> 00:24:22,000 +In case we need to store some additional information and details about the issue. + +303 +00:24:22,000 --> 00:24:29,000 +And at the end of the lesson, we learned how to create issues in Jira and added fake issues in order + +304 +00:24:29,000 --> 00:24:31,000 +to have some data to work with. + +305 +00:24:31,000 --> 00:24:33,000 +In the following lessons. + +306 +00:24:33,000 --> 00:24:35,000 +That's all for this lesson. + +307 +00:24:35,000 --> 00:24:37,000 +Thanks a lot for your attention. + +308 +00:24:37,000 --> 00:24:40,000 +Have a great day and see you in the next lesson. + diff --git a/99 - Jira/002 Official-Atlassian-Website.url b/99 - Jira/002 Official-Atlassian-Website.url new file mode 100644 index 0000000000000000000000000000000000000000..259a3639d37a8d62a231ce5ea6cfb41906c8cd6c --- /dev/null +++ b/99 - Jira/002 Official-Atlassian-Website.url @@ -0,0 +1,2 @@ +[InternetShortcut] +URL=https://www.atlassian.com/ \ No newline at end of file diff --git a/99 - Jira/003 API-Tokens-of-Atlassian-Account.url b/99 - Jira/003 API-Tokens-of-Atlassian-Account.url new file mode 100644 index 0000000000000000000000000000000000000000..ba10841c0c49af988913b60759c2783b36421e25 --- /dev/null +++ b/99 - Jira/003 API-Tokens-of-Atlassian-Account.url @@ -0,0 +1,2 @@ +[InternetShortcut] +URL=https://id.atlassian.com/manage-profile/security/api-tokens \ No newline at end of file diff --git a/99 - Jira/003 Jira API_en.srt b/99 - Jira/003 Jira API_en.srt new file mode 100644 index 0000000000000000000000000000000000000000..93ac2267bbe1aa1c675a8af8a71320a13481e4c8 --- /dev/null +++ b/99 - Jira/003 Jira API_en.srt @@ -0,0 +1,992 @@ +1 +00:00:05,000 --> 00:00:06,000 +Hello, Tim. + +2 +00:00:06,000 --> 00:00:09,000 +In this lesson we are going to learn how to work with Jira API. + +3 +00:00:10,000 --> 00:00:17,000 +We're going to start this lesson from the general Jira API overview just to help you understand why + +4 +00:00:17,000 --> 00:00:20,000 +it is needed, what key and points it includes. + +5 +00:00:20,000 --> 00:00:24,000 +I will explain what Jira API versions exist. + +6 +00:00:25,000 --> 00:00:30,000 +Then we are going to learn different ways of authentication and authorization in Jira API. + +7 +00:00:31,000 --> 00:00:35,000 +I will explain what Forge Ops and connect ops are. + +8 +00:00:35,000 --> 00:00:41,000 +We'll learn what JWT and three are during the lesson. + +9 +00:00:41,000 --> 00:00:44,000 +We'll create API token for Atlassian account. + +10 +00:00:44,000 --> 00:00:51,000 +I will show you how to encrypt credentials in base64 encoding because this would be required for basic + +11 +00:00:51,000 --> 00:00:53,000 +authentication. + +12 +00:00:53,000 --> 00:01:01,000 +Also, we will make calls to Jira API via Postman and then we'll review Java based example of Jira API + +13 +00:01:01,000 --> 00:01:02,000 +call in order. + +14 +00:01:02,000 --> 00:01:07,000 +We would be completely prepared for the next lessons and at the end of the lesson I'm going to teach + +15 +00:01:07,000 --> 00:01:10,000 +you how to use Jira API documentation. + +16 +00:01:10,000 --> 00:01:12,000 +Let's start our lesson. + +17 +00:01:12,000 --> 00:01:16,000 +Let's understand first what Jira API is. + +18 +00:01:16,000 --> 00:01:24,000 +The Jira API is a set of web services that allows developers to interact with Atlassian's Jira software + +19 +00:01:24,000 --> 00:01:26,000 +for issue tracking and project management. + +20 +00:01:26,000 --> 00:01:34,000 +With a Jira API, you can programmatically create, read, update and delete Jira issues, manage projects, + +21 +00:01:34,000 --> 00:01:39,000 +access user information and perform various other operations. + +22 +00:01:40,000 --> 00:01:47,000 +The public Jira API provides a restful interface that you can communicate with using Json data format. + +23 +00:01:48,000 --> 00:01:54,000 +The Jira API exposes several endpoints that allow you to perform various actions. + +24 +00:01:54,000 --> 00:02:01,000 +Some of the key endpoints include Issue API allows you to create, update, retrieve and search for + +25 +00:02:01,000 --> 00:02:09,000 +issues you can perform operations like creating new issues, updating fields, adding comments, assigning + +26 +00:02:09,000 --> 00:02:14,000 +issues to users, and transitioning issues through different workflow statuses. + +27 +00:02:14,000 --> 00:02:18,000 +Project API enables you to manage projects in Jira. + +28 +00:02:18,000 --> 00:02:25,000 +You can create projects, retrieve project information, update project details, and perform other + +29 +00:02:25,000 --> 00:02:26,000 +project related tasks. + +30 +00:02:26,000 --> 00:02:31,000 +User API provides access to user information in Jira. + +31 +00:02:31,000 --> 00:02:38,000 +You can retrieve user details, manage user groups and permissions and perform operations related to + +32 +00:02:38,000 --> 00:02:39,000 +user management. + +33 +00:02:39,000 --> 00:02:45,000 +Such API allows you to search for issues based on various criteria. + +34 +00:02:45,000 --> 00:02:53,000 +You can construct complex queries using Jira query language to filter issues based on fields, statuses, + +35 +00:02:54,000 --> 00:02:56,000 +assignees and other parameters. + +36 +00:02:57,000 --> 00:03:06,000 +Agile API provides endpoints for working with Jira, Agile features like boards, sprints and backlogs. + +37 +00:03:06,000 --> 00:03:12,000 +You can create and manage boards, retrieve sprint information and perform Agile specific operations. + +38 +00:03:13,000 --> 00:03:20,000 +The Jira API documentation provides detailed information about the available end points requests and + +39 +00:03:20,000 --> 00:03:27,000 +response formats, authentication methods and examples to help you get started with integrating Jira + +40 +00:03:27,000 --> 00:03:33,000 +into your applications, you can find the official documentation at that Lesson Developer website. + +41 +00:03:33,000 --> 00:03:40,000 +Also, we're going to make an overview of documentation at the end of the lesson, and I'm going to + +42 +00:03:40,000 --> 00:03:46,000 +teach you how to work with it and you can find the reference to the Jira API documentation in attachments + +43 +00:03:46,000 --> 00:03:47,000 +to the video. + +44 +00:03:48,000 --> 00:03:54,000 +Atlassian regularly updates and improves their APIs, so it is recommended to refer to the official + +45 +00:03:54,000 --> 00:04:01,000 +documentation for the most up to date information and guidelines on using the public Jira API. + +46 +00:04:02,000 --> 00:04:08,000 +There are different versions of the Jira API each representing a different major version of Jira. + +47 +00:04:08,000 --> 00:04:17,000 +The two most commonly used versions are Jira API version three, which is the latest version, but it + +48 +00:04:17,000 --> 00:04:18,000 +is in beta now. + +49 +00:04:18,000 --> 00:04:26,000 +Version to version two and version three of the API offers the same collection of operations. + +50 +00:04:26,000 --> 00:04:35,000 +However, version three provides support of the lesson document format in body in comments, including + +51 +00:04:35,000 --> 00:04:44,000 +the comments I used in issue issue, link and transition resources in comment, in work logs, in description + +52 +00:04:44,000 --> 00:04:50,000 +and environment fields in issues, in text area type custom fields in issues. + +53 +00:04:50,000 --> 00:04:57,000 +Single one custom fields accept the string and don't handle Atlassian document format content. + +54 +00:04:58,000 --> 00:05:02,000 +However, these new features are under development based on today and. + +55 +00:05:03,000 --> 00:05:03,000 +Change. + +56 +00:05:04,000 --> 00:05:09,000 +So basically we can use either API version two or API version three. + +57 +00:05:10,000 --> 00:05:14,000 +There are different authentication and authorization options in Jira API. + +58 +00:05:14,000 --> 00:05:17,000 +Let's review the main options. + +59 +00:05:17,000 --> 00:05:20,000 +Authentication for Forge apps. + +60 +00:05:20,000 --> 00:05:28,000 +Forge apps are a type of application development platform provided by Atlassian, specifically designed + +61 +00:05:28,000 --> 00:05:35,000 +for building cloud based apps that extends the functionality of Atlassian products such as Jira. + +62 +00:05:35,000 --> 00:05:44,000 +Cloud Forge aims to simplify the app development process by providing a streamlined and serverless environment. + +63 +00:05:44,000 --> 00:05:51,000 +Rest API scopes are used when authenticating with Jira Cloud platform in Forge apps. + +64 +00:05:51,000 --> 00:05:57,000 +Authentication scopes are set in the app's manifest file during the configuration process. + +65 +00:05:58,000 --> 00:06:00,000 +Authentication for Connect Apps. + +66 +00:06:00,000 --> 00:06:05,000 +Connect is a development framework for extending Atlassian cloud products. + +67 +00:06:05,000 --> 00:06:13,000 +Connect gives you control over the tech stack infrastructure and integration with Atlassian cloud products. + +68 +00:06:13,000 --> 00:06:19,000 +You determine your security implementation and authentication with external cloud providers such as + +69 +00:06:20,000 --> 00:06:22,000 +AWS, Google Cloud or Heroku. + +70 +00:06:23,000 --> 00:06:31,000 +It handles discovery installation authentication and seamless integration into the user interface for + +71 +00:06:31,000 --> 00:06:32,000 +Connect apps. + +72 +00:06:32,000 --> 00:06:38,000 +Authentication JWT based is built into the Connect libraries. + +73 +00:06:38,000 --> 00:06:41,000 +Let me remind you what it is. + +74 +00:06:41,000 --> 00:06:45,000 +JWT stands for Json Web token. + +75 +00:06:45,000 --> 00:06:53,000 +It is a compact, self-contained mechanism for securely transmitting information between parties as + +76 +00:06:53,000 --> 00:06:54,000 +a Json object. + +77 +00:06:54,000 --> 00:07:03,000 +JWT is are commonly used for authentication and authorization purposes in web applications and APIs. + +78 +00:07:04,000 --> 00:07:10,000 +The next authentication option can be called as authentication for other integrations. + +79 +00:07:10,000 --> 00:07:18,000 +According to the Atlassian documentation for integrations that are not forge or connect apps, use OAuth + +80 +00:07:18,000 --> 00:07:22,000 +2.0 Authorization code grants for security. + +81 +00:07:22,000 --> 00:07:23,000 +Three oh. + +82 +00:07:24,000 --> 00:07:25,000 +What is three? + +83 +00:07:25,000 --> 00:07:27,000 +Oh, let me explain. + +84 +00:07:27,000 --> 00:07:31,000 +Three allow stands for three legged allows. + +85 +00:07:31,000 --> 00:07:39,000 +It is a specific variant of the OAuth 2.0 protocol used for authorization and authentication in the + +86 +00:07:39,000 --> 00:07:42,000 +context of Atlassian Cloud applications. + +87 +00:07:42,000 --> 00:07:50,000 +OAuth 2.0 is an industry standard protocol that allows users to grant limited access to their resources. + +88 +00:07:50,000 --> 00:07:59,000 +On one website referred to as the OAuth provider to another website or application known as the OAuth + +89 +00:07:59,000 --> 00:08:03,000 +consumer without sharing their credentials. + +90 +00:08:03,000 --> 00:08:05,000 +Username and password directly. + +91 +00:08:06,000 --> 00:08:13,000 +In the case of Atlassian, cloud applications 300 is used for integrating third party applications or + +92 +00:08:13,000 --> 00:08:18,000 +services with Atlassian products such as Jira Cloud. + +93 +00:08:18,000 --> 00:08:25,000 +The three legs in three yellow refer to the three steps involved in the authorization process. + +94 +00:08:26,000 --> 00:08:33,000 +The first step authorization request that allows consumer initiates the process by redirecting the end + +95 +00:08:33,000 --> 00:08:35,000 +user to the OAuth provider. + +96 +00:08:35,000 --> 00:08:36,000 +Atlassian. + +97 +00:08:36,000 --> 00:08:44,000 +To obtain the authorization, the user is prompt to grant or deny access to the consumer. + +98 +00:08:44,000 --> 00:08:48,000 +The second step user authentication and consent. + +99 +00:08:49,000 --> 00:08:56,000 +The end user is redirected to the OAuth provider's authentication page, where they login and are presented + +100 +00:08:56,000 --> 00:08:59,000 +with the details of the requested access. + +101 +00:09:00,000 --> 00:09:04,000 +They can choose to grant or deny access to the OAuth consumer. + +102 +00:09:04,000 --> 00:09:08,000 +The third step Access Token exchange. + +103 +00:09:08,000 --> 00:09:16,000 +If the end user grants access, the OAuth provider generates an access token and sends it to the OAuth + +104 +00:09:16,000 --> 00:09:17,000 +consumer. + +105 +00:09:17,000 --> 00:09:24,000 +This access token allows the consumer to authenticate and make authorize requests on behalf of the user + +106 +00:09:24,000 --> 00:09:32,000 +by using three allow third party applications, can securely access and interact with the user's resource + +107 +00:09:32,000 --> 00:09:36,000 +within that lesson product without directly handling their credentials. + +108 +00:09:37,000 --> 00:09:43,000 +This ensures better security and privacy for end users, while enabling seamless integration between + +109 +00:09:43,000 --> 00:09:47,000 +Atlassian products and external services or applications. + +110 +00:09:48,000 --> 00:09:54,000 +And the last, but not the least, a syndication option is called authentication for ad hoc API calls + +111 +00:09:54,000 --> 00:09:59,000 +for personal scripts, boards and ad hoc execution of the rest. + +112 +00:09:59,000 --> 00:10:02,000 +APIs use basic authentication. + +113 +00:10:02,000 --> 00:10:10,000 +Basic authentication is a simple and widely used authentication scheme for accessing web based resources. + +114 +00:10:11,000 --> 00:10:19,000 +It involves sending the username and password encoded in base64 format as part of the Http request header. + +115 +00:10:20,000 --> 00:10:27,000 +The basic authentication scheme is standardized in the Http protocol and is supported by most web servers + +116 +00:10:27,000 --> 00:10:28,000 +and clients. + +117 +00:10:29,000 --> 00:10:37,000 +The Jira Rest API is protected by the same restrictions that apply in the standard Jira web interface. + +118 +00:10:37,000 --> 00:10:43,000 +These restrictions mean that if you don't log in, you access Jira anonymously. + +119 +00:10:43,000 --> 00:10:50,000 +If you log in and don't have permission to view something in Jira, you won't be able to view it using + +120 +00:10:50,000 --> 00:10:52,000 +the Jira rest API either. + +121 +00:10:52,000 --> 00:10:56,000 +So which option we are going to choose? + +122 +00:10:56,000 --> 00:10:57,000 +Definitely. + +123 +00:10:57,000 --> 00:11:04,000 +The basic authorization is the simplest and the most straightforward option which suits our business + +124 +00:11:04,000 --> 00:11:04,000 +case. + +125 +00:11:04,000 --> 00:11:09,000 +So let me show you how to configure basic authorization. + +126 +00:11:09,000 --> 00:11:15,000 +To configure basic authorization, you need to create your API token first. + +127 +00:11:15,000 --> 00:11:18,000 +How to do this in the attachments to the lesson. + +128 +00:11:18,000 --> 00:11:25,000 +I will leave direct link to the settings of your Atlassian account where you can generate the token. + +129 +00:11:25,000 --> 00:11:33,000 +Just follow the URL to create your API token, you need to be logged in into your Atlassian account + +130 +00:11:33,000 --> 00:11:35,000 +to access this page. + +131 +00:11:35,000 --> 00:11:38,000 +I believe that interface is pretty intuitive. + +132 +00:11:38,000 --> 00:11:45,000 +Just click on the big blue button, create API token, give it a label, I will give some test label + +133 +00:11:45,000 --> 00:11:53,000 +and click create button, copy your token and save it in the secure place because you will never see + +134 +00:11:53,000 --> 00:11:55,000 +this token ever again. + +135 +00:11:56,000 --> 00:11:58,000 +Then you can close the pop up. + +136 +00:11:58,000 --> 00:12:03,000 +You can always revoke your token and create a new one if you wish. + +137 +00:12:04,000 --> 00:12:09,000 +So we created API token, but we are not done yet. + +138 +00:12:09,000 --> 00:12:13,000 +Now we need to create basic authorization header. + +139 +00:12:13,000 --> 00:12:18,000 +To do this we need base64 encoding of our credentials. + +140 +00:12:19,000 --> 00:12:27,000 +I believe that by this moment in the course you already installed the git and git bash open git bash + +141 +00:12:27,000 --> 00:12:32,000 +or terminal and execute the following command echo. + +142 +00:12:32,000 --> 00:12:38,000 +The echo command is used to print text a variable to the terminal dash. + +143 +00:12:38,000 --> 00:12:38,000 +N. + +144 +00:12:38,000 --> 00:12:40,000 +What does dash n mean? + +145 +00:12:41,000 --> 00:12:45,000 +The n option is specific to the echo command. + +146 +00:12:45,000 --> 00:12:51,000 +It tells Echo not to append a newline character at the end of the output. + +147 +00:12:51,000 --> 00:12:56,000 +This option ensures that the output is displayed without a trailing new line. + +148 +00:12:57,000 --> 00:13:07,000 +Then goes your email that you use for login to the Atlassian account column, and then you specify API + +149 +00:13:07,000 --> 00:13:09,000 +token that we have just created. + +150 +00:13:09,000 --> 00:13:11,000 +Then goes pipe symbol. + +151 +00:13:11,000 --> 00:13:18,000 +The pipe symbol is used to redirect the output of one command to the input of another command. + +152 +00:13:19,000 --> 00:13:27,000 +It takes the output of the preceding command and passes it as input to the following command and the + +153 +00:13:27,000 --> 00:13:27,000 +base. + +154 +00:13:27,000 --> 00:13:28,000 +64. + +155 +00:13:29,000 --> 00:13:36,000 +The base 64 command is a utility that encodes or decodes data in base64 format. + +156 +00:13:36,000 --> 00:13:37,000 +Click enter. + +157 +00:13:38,000 --> 00:13:42,000 +The resulting encoded output is then displayed in the terminal. + +158 +00:13:42,000 --> 00:13:45,000 +Copy this encrypted token. + +159 +00:13:45,000 --> 00:13:48,000 +We are going to use it for the authentication. + +160 +00:13:48,000 --> 00:13:55,000 +This is the token that you need to store in the secret and never tells this token to anyone. + +161 +00:13:55,000 --> 00:14:01,000 +We already learned in my web development course that in the cloud based environments there are specific + +162 +00:14:01,000 --> 00:14:08,000 +secrets management tools that you can use to store your keys and tokens privately. + +163 +00:14:08,000 --> 00:14:13,000 +Let me show you how we are going to use this token for authentication. + +164 +00:14:13,000 --> 00:14:18,000 +On the example of the Simple Postman request I opened the postman. + +165 +00:14:18,000 --> 00:14:24,000 +If you are not familiar with this tool in my course Java from zero to first job in the section about + +166 +00:14:24,000 --> 00:14:28,000 +web development, I have lessons about Postman and how to use it. + +167 +00:14:29,000 --> 00:14:33,000 +Please refer to that section if you want to learn more about the postman. + +168 +00:14:34,000 --> 00:14:40,000 +And for today's demo we are going to extract the details of our test ticket that we created in the previous + +169 +00:14:40,000 --> 00:14:41,000 +lesson. + +170 +00:14:41,000 --> 00:14:45,000 +Let me walk you through the details of this API request. + +171 +00:14:45,000 --> 00:14:49,000 +In the URL, you specify the name of your organization. + +172 +00:14:49,000 --> 00:14:54,000 +In my case it is Andre Petaja dot Atlassian dot net. + +173 +00:14:54,000 --> 00:15:01,000 +Then you specify rest resource url it is rest slash API. + +174 +00:15:02,000 --> 00:15:09,000 +Slash then ghost version of the API and we already discussed with you API versions at the beginning + +175 +00:15:09,000 --> 00:15:10,000 +of the lesson. + +176 +00:15:10,000 --> 00:15:13,000 +So you can paste here 2 or 3. + +177 +00:15:13,000 --> 00:15:20,000 +Then again goes slash issue URL and then ID of your ticket. + +178 +00:15:20,000 --> 00:15:27,000 +The idea of the ticket you can find on the dashboard that we created in the previous lesson here on + +179 +00:15:27,000 --> 00:15:30,000 +the board, you can see that each ticket has an ID. + +180 +00:15:30,000 --> 00:15:35,000 +It consists from the project key dash and index. + +181 +00:15:35,000 --> 00:15:42,000 +Project key is also configurable so you can change it if you wish in the project settings. + +182 +00:15:42,000 --> 00:15:46,000 +For the sake of the demo, you can take any task that you wish. + +183 +00:15:46,000 --> 00:15:49,000 +And let's get back to the postman. + +184 +00:15:49,000 --> 00:15:50,000 +In Postman. + +185 +00:15:50,000 --> 00:15:57,000 +You should specify the idea of your ticket at the end of the URL, like you can see in my example. + +186 +00:15:57,000 --> 00:16:07,000 +Then go to headers tab on this tab you need to add new header with key authorization and value basic + +187 +00:16:07,000 --> 00:16:15,000 +space and the token in the base64 encoding that we created based on our credentials. + +188 +00:16:15,000 --> 00:16:18,000 +You can see that I added it as a variable. + +189 +00:16:19,000 --> 00:16:23,000 +Also I added content type header with application Json value. + +190 +00:16:24,000 --> 00:16:25,000 +Basically that's it. + +191 +00:16:25,000 --> 00:16:33,000 +We are ready to send our get request and in response we receive a Json with information about our ticket + +192 +00:16:33,000 --> 00:16:34,000 +from Jira. + +193 +00:16:34,000 --> 00:16:37,000 +As you can see, everything is simple here. + +194 +00:16:37,000 --> 00:16:44,000 +My recommendation for you take your time to explore the data structure of the data that you received + +195 +00:16:44,000 --> 00:16:45,000 +in the response. + +196 +00:16:45,000 --> 00:16:51,000 +All properties names are self-describing and I am sure you are not going to have challenges understanding + +197 +00:16:51,000 --> 00:16:53,000 +what each field means. + +198 +00:16:54,000 --> 00:17:01,000 +Anyway, we are going to learn this structure also in the next lessons when we will build our web application + +199 +00:17:01,000 --> 00:17:06,000 +that integrates with Jira and when we will process this data structure. + +200 +00:17:06,000 --> 00:17:11,000 +In scope of this lesson, I also prepared Java example for you. + +201 +00:17:11,000 --> 00:17:17,000 +Basically, that is the same query that you already saw in the previous example with Postman. + +202 +00:17:18,000 --> 00:17:25,000 +I just decided to put it in code in Java because in the following lessons we will be busy with the integration + +203 +00:17:25,000 --> 00:17:27,000 +of Jira and our web application. + +204 +00:17:27,000 --> 00:17:31,000 +So this would be the hook for the next lessons. + +205 +00:17:32,000 --> 00:17:40,000 +I created Jira Integration Controller and implemented one method get issue by ID on the top. + +206 +00:17:40,000 --> 00:17:43,000 +You can see fields injected from my properties file. + +207 +00:17:44,000 --> 00:17:53,000 +This is base URL of Jira rest API, URL of issue source and Jira tokens that I need to use for authorization + +208 +00:17:53,000 --> 00:17:54,000 +header. + +209 +00:17:55,000 --> 00:18:02,000 +Pay attention that in case you want to use this code in learning purposes and execute it, you would + +210 +00:18:02,000 --> 00:18:09,000 +need to add your own token for this property because you will not be able to find my secret token in + +211 +00:18:09,000 --> 00:18:10,000 +the repository. + +212 +00:18:10,000 --> 00:18:17,000 +That's why if you just clone the source code and try to execute it, it wouldn't work until you set + +213 +00:18:17,000 --> 00:18:19,000 +your own token for this property. + +214 +00:18:20,000 --> 00:18:23,000 +Also, I injected Http client. + +215 +00:18:23,000 --> 00:18:30,000 +I'm going to use it to send the http request in the method I build URLs that consists from the Jira + +216 +00:18:30,000 --> 00:18:38,000 +rest API URL, base issue URL and issue ID that I take from request parameter. + +217 +00:18:38,000 --> 00:18:43,000 +Then I add necessary headers and execute requests in response. + +218 +00:18:43,000 --> 00:18:47,000 +I receive Json of the issues that we already saw in the Postman. + +219 +00:18:48,000 --> 00:18:54,000 +I will leave the link to the source code in attachments to the lesson, but still, in case you have + +220 +00:18:54,000 --> 00:19:01,000 +any questions, do not hesitate to ask your questions below the video and I will be happy to answer. + +221 +00:19:02,000 --> 00:19:08,000 +Also in attachments to the lesson, you can find the link to the official rest API documentation. + +222 +00:19:08,000 --> 00:19:15,000 +Your homework would be to spend some time looking through the documentation, explore entities that + +223 +00:19:15,000 --> 00:19:22,000 +you can interact with in the left pane, open them and just learn the structure of the documentation. + +224 +00:19:22,000 --> 00:19:30,000 +For example, here is the issues resource and you can see operations that you can do with this resource. + +225 +00:19:30,000 --> 00:19:32,000 +Today we read the resource. + +226 +00:19:32,000 --> 00:19:37,000 +So this is get issue section of the documentation. + +227 +00:19:37,000 --> 00:19:45,000 +You can explore example of requests with Squirrel or Java and learn example of response. + +228 +00:19:45,000 --> 00:19:51,000 +This is official and the main documentation that we are going to use during the course during lessons. + +229 +00:19:51,000 --> 00:19:58,000 +Always keep this documentation open and check everything what I say you in the documentation because + +230 +00:19:58,000 --> 00:20:01,000 +sometimes API may change. + +231 +00:20:01,000 --> 00:20:07,000 +This is less likely for the same version, but still you can always open the documentation of the latest + +232 +00:20:07,000 --> 00:20:10,000 +version and check the latest updates. + +233 +00:20:11,000 --> 00:20:14,000 +That's all what I wanted to share with you in this lesson. + +234 +00:20:14,000 --> 00:20:17,000 +So now we are ready for the next lessons. + +235 +00:20:17,000 --> 00:20:21,000 +But let's recap what we have learned today. + +236 +00:20:21,000 --> 00:20:24,000 +Now you know what Jira is. + +237 +00:20:24,000 --> 00:20:28,000 +We did a review of different Jira versions. + +238 +00:20:28,000 --> 00:20:34,000 +Also, we discussed different authentication and authorization options in Jira API. + +239 +00:20:34,000 --> 00:20:39,000 +I explained what Forge app and Connect app in Atlassian are. + +240 +00:20:39,000 --> 00:20:43,000 +You learned what JWT and three LR are. + +241 +00:20:44,000 --> 00:20:51,000 +During the lesson we created API token for Atlassian account and we encrypted credentials in base 64 + +242 +00:20:51,000 --> 00:20:52,000 +encoding. + +243 +00:20:53,000 --> 00:20:58,000 +Then we saw real examples of sending requests to Jira API via Postman. + +244 +00:20:58,000 --> 00:21:04,000 +And also I showed to you how to send request to Jira API from the Java code. + +245 +00:21:04,000 --> 00:21:10,000 +And at the end of the lesson we learned how to work with Jira API documentation. + +246 +00:21:11,000 --> 00:21:12,000 +That's all for this lesson. + +247 +00:21:12,000 --> 00:21:14,000 +Thanks a lot for your attention. + +248 +00:21:14,000 --> 00:21:18,000 +Have a great day and see you in the next lesson. + diff --git a/99 - Jira/003 Official-documentation.url b/99 - Jira/003 Official-documentation.url new file mode 100644 index 0000000000000000000000000000000000000000..2ed5ea4264890112efcac8ea3f4022fa3d11628d --- /dev/null +++ b/99 - Jira/003 Official-documentation.url @@ -0,0 +1,2 @@ +[InternetShortcut] +URL=https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issues/#api-group-issues \ No newline at end of file diff --git a/99 - Jira/003 Source-code-of-examples-from-the-lesson-commit-with-changes-.url b/99 - Jira/003 Source-code-of-examples-from-the-lesson-commit-with-changes-.url new file mode 100644 index 0000000000000000000000000000000000000000..a1d38228946435275bf66a17acc52db3ec8254ba --- /dev/null +++ b/99 - Jira/003 Source-code-of-examples-from-the-lesson-commit-with-changes-.url @@ -0,0 +1,2 @@ +[InternetShortcut] +URL=https://github.com/AndriiPiatakha/openai-learnit/commit/9599d410056177ee452520899fe6af50471eadd8 \ No newline at end of file diff --git a/99 - Jira/external-links.txt b/99 - Jira/external-links.txt new file mode 100644 index 0000000000000000000000000000000000000000..bf7106a0f1f082fec8016103869e274bc632fadd --- /dev/null +++ b/99 - Jira/external-links.txt @@ -0,0 +1,12 @@ + +002 Official-Atlassian-Website +https://www.atlassian.com/ + +003 API-Tokens-of-Atlassian-Account +https://id.atlassian.com/manage-profile/security/api-tokens + +003 Source-code-of-examples-from-the-lesson-commit-with-changes- +https://github.com/AndriiPiatakha/openai-learnit/commit/9599d410056177ee452520899fe6af50471eadd8 + +003 Official-documentation +https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issues/#api-group-issues