You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Nov 20, 2019. It is now read-only.
Copy file name to clipboardExpand all lines: thesis.md
+42-6Lines changed: 42 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -398,7 +398,7 @@ its dependencies as mentioned in [@sec:j9_adv]. This is done using a module
398
398
descriptor, a file called `module-info.java` in the root package, that will be
399
399
compiled as classes to a file called `module-info.class`[@Mac2017].
400
400
[@lst:module-desc] shows the module descriptor of the default Java module
401
-
`java.prefs` that contains Java's Preferences +API as an example^[All examples in [@sec:j9_impl] were taken from the source code of Oracle's JDK version 9.0.4. The source code is available in `${JAVA_HOME}/lib/src.zip`.].
401
+
`java.prefs` that contains Java's Preferences +API as an example^[Most examples in [@sec:j9_impl] were taken from the source code of Oracle's JDK version 9.0.4. The source code is available in `${JAVA_HOME}/lib/src.zip`.].
402
402
403
403
```{#lst:module-desc .java caption="Excerpt of Module Descriptor of `java.prefs`"}
404
404
module java.prefs {
@@ -1028,6 +1028,31 @@ open module org.jabref {
1028
1028
}
1029
1029
```
1030
1030
1031
+
An event bus is an implementation of the Observer pattern, implementing a
1032
+
publish-subscribe style communication.
1033
+
The event bus handles the dispatching of events without requiring publishers to
1034
+
explicitly know who the subscribers are or vice-versa.
1035
+
As shown in [@lst:guava], Guava uses annotations, such as the `@Subscribe`
1036
+
annotation, to register event listeners in an event bus.
1037
+
Those annotations are accessed using reflection, thus Guava requires the
1038
+
packages to be open.
1039
+
Since the event bus is an integral part of JabRef and is used across many
1040
+
packages, the whole module was declared as open, instead of opening each package
1041
+
on its own.
1042
+
1043
+
```{#lst:guava .java caption="Excerpt of JabRef's `BibDatabase`"}
0 commit comments