A special java.lang.ClassLoader
to load the Jetty 8 dependency of
PhantomJSEnv in a private space.
A RetryingComJSEnv allows to automatically retry if a call to the underlying ComJSRunner fails.
A RetryingComJSEnv allows to automatically retry if a call to the underlying ComJSRunner fails.
While it protects the JVM side from observing state that differs inbetween runs that have been retried, it assumes that the executed JavaScript code does not have side-effects other than the ones visible through the channel (e.g. writing to a file). It is the users responsibility to ensure this property.
No retrying is performed for synchronous, or normal asynchronous runs.
Although RetryingComJSEnv
is agnostic of the underlying JS env, and is
therefore not tied to PhantomJS, it is most often used to compensate for
flakiness effects of PhantomJS.
A special
java.lang.ClassLoader
to load the Jetty 8 dependency of PhantomJSEnv in a private space.It loads everything that belongs to
JettyWebsocketManager
itself (while retrieving the requested class file from its parent. For all other classes, it first tries to load them fromjettyLoader
, which should only contain the Jetty 8 classpath. If this fails, it delegates to its parent.The rationale is, that
JettyWebsocketManager
and its dependees can use the classes on the Jetty 8 classpath, while they remain hidden from the rest of the Java world. This allows to load another version of Jetty in the same JVM for the rest of the project.