/* * Copyright (c) 2016 Mockito contributors * This program is made available under the terms of the MIT License. */ package org.mockito.plugins; import org.mockito.Incubating; /** * Allows switching off the plugins that are discovered on classpath. * *
* Mockito will invoke this interface in order to select whether a plugin is enabled or not. *
* ** When a particular plugin is switched off, the default Mockito behavior is used. * For example, if Android's dexmaker MockMaker is switched off, * Mockito default MockMaker implementation is used {@link org.mockito.plugins.MockMaker} *
* *
* The plugin mechanism of mockito works in a similar way as the {@link java.util.ServiceLoader}, however instead of
* looking in the META-INF
directory, Mockito will look in mockito-extensions
directory.
* The reason for that is that Android SDK strips jar from the META-INF
directory when creating an APK.
*
org.awesome.mockito.AwesomeMockMaker
that extends the MockMaker
.mockito-extensions/org.mockito.plugins.MockMaker
". The content of this file is
* exactly a one line with the qualified name: org.awesome.mockito.AwesomeMockMaker
.Note that if several mockito-extensions/org.mockito.plugins.MockMaker
files exists in the classpath
* Mockito will only use the first returned by the standard {@link ClassLoader#getResource} mechanism.
*
* So just create a custom implementation of {@link PluginSwitch} and place the qualified name in the following file
* mockito-extensions/org.mockito.plugins.PluginSwitch
.
*