mirror of
https://github.com/angryip/ipscan.git
synced 2025-10-26 11:18:17 +00:00
separate non-gui and gui registries to make tests run on mac
This commit is contained in:
parent
061e45d1c7
commit
2140e2bf76
@ -6,21 +6,12 @@
|
||||
package net.azib.ipscan.config;
|
||||
|
||||
import net.azib.ipscan.core.PluginLoader;
|
||||
import net.azib.ipscan.core.state.StateMachine;
|
||||
import net.azib.ipscan.di.Injector;
|
||||
import net.azib.ipscan.exporters.CSVExporter;
|
||||
import net.azib.ipscan.exporters.IPListExporter;
|
||||
import net.azib.ipscan.exporters.TXTExporter;
|
||||
import net.azib.ipscan.exporters.XMLExporter;
|
||||
import net.azib.ipscan.feeders.FeederRegistry;
|
||||
import net.azib.ipscan.fetchers.*;
|
||||
import net.azib.ipscan.gui.SWTAwareStateMachine;
|
||||
import net.azib.ipscan.gui.feeders.*;
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.widgets.Button;
|
||||
import org.eclipse.swt.widgets.Display;
|
||||
import org.eclipse.swt.widgets.Menu;
|
||||
import org.eclipse.swt.widgets.Shell;
|
||||
|
||||
/**
|
||||
* This class is the dependency injection configuration
|
||||
@ -28,33 +19,27 @@ import org.eclipse.swt.widgets.Shell;
|
||||
* @author Anton Keks
|
||||
*/
|
||||
public class ComponentRegistry {
|
||||
public void register(Injector i) throws Exception {
|
||||
Display display = Display.getDefault();
|
||||
i.register(Display.class, display);
|
||||
Shell shell = new Shell();
|
||||
i.register(Shell.class, shell);
|
||||
i.register(Menu.class, new Menu(shell, SWT.BAR));
|
||||
i.register(FeederSelectionCombo.class, new FeederSelectionCombo(i.require(ControlsArea.class)));
|
||||
i.register(Button.class, new Button(i.require(ControlsArea.class), SWT.NONE));
|
||||
SWTAwareStateMachine stateMachine = new SWTAwareStateMachine(display);
|
||||
i.register(SWTAwareStateMachine.class, stateMachine);
|
||||
i.register(StateMachine.class, stateMachine);
|
||||
i.register(RangeFeederGUI.class, RandomFeederGUI.class, FileFeederGUI.class);
|
||||
i.register(TXTExporter.class, CSVExporter.class, XMLExporter.class, IPListExporter.class);
|
||||
|
||||
public void register(Injector i) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
|
||||
i.register(IPFetcher.class, PingFetcher.class, PingTTLFetcher.class, HostnameFetcher.class, PortsFetcher.class);
|
||||
i.register(MACFetcher.class, (MACFetcher) Class.forName(MACFetcher.class.getPackage().getName() +
|
||||
(Platform.WINDOWS ? ".WinMACFetcher" : Platform.LINUX ? ".LinuxMACFetcher" : ".UnixMACFetcher")).newInstance());
|
||||
i.register(CommentFetcher.class, FilteredPortsFetcher.class, WebDetectFetcher.class, HTTPSenderFetcher.class,
|
||||
NetBIOSInfoFetcher.class, PacketLossFetcher.class, HTTPProxyFetcher.class, MACVendorFetcher.class);
|
||||
i.register(FeederRegistry.class, i.require(FeederGUIRegistry.class));
|
||||
i.register(TXTExporter.class, CSVExporter.class, XMLExporter.class, IPListExporter.class);
|
||||
}
|
||||
|
||||
public Injector init() throws Exception {
|
||||
return init(true);
|
||||
}
|
||||
|
||||
public Injector init(boolean withGUI) throws Exception {
|
||||
Injector i = new Injector();
|
||||
new ConfigModule().register(i);
|
||||
new ComponentRegistry().register(i);
|
||||
new PluginLoader().getClasses().forEach(i::require);
|
||||
if (withGUI) {
|
||||
new GUIRegistry().register(i);
|
||||
new PluginLoader().getClasses().forEach(i::require);
|
||||
}
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
@ -13,6 +13,5 @@ public class ConfigModule {
|
||||
i.register(ScannerConfig.class, config.forScanner());
|
||||
i.register(OpenersConfig.class, config.forOpeners());
|
||||
i.register(FavoritesConfig.class, config.forFavorites());
|
||||
i.register(GUIConfig.class, config.forGUI());
|
||||
}
|
||||
}
|
||||
|
||||
33
src/net/azib/ipscan/config/GUIRegistry.java
Normal file
33
src/net/azib/ipscan/config/GUIRegistry.java
Normal file
@ -0,0 +1,33 @@
|
||||
package net.azib.ipscan.config;
|
||||
|
||||
import net.azib.ipscan.core.state.StateMachine;
|
||||
import net.azib.ipscan.di.Injector;
|
||||
import net.azib.ipscan.feeders.FeederRegistry;
|
||||
import net.azib.ipscan.gui.SWTAwareStateMachine;
|
||||
import net.azib.ipscan.gui.feeders.*;
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.widgets.Button;
|
||||
import org.eclipse.swt.widgets.Display;
|
||||
import org.eclipse.swt.widgets.Menu;
|
||||
import org.eclipse.swt.widgets.Shell;
|
||||
|
||||
public class GUIRegistry {
|
||||
public void register(Injector i) {
|
||||
Display display = Display.getDefault();
|
||||
i.register(Display.class, display);
|
||||
i.register(GUIConfig.class, Config.getConfig().forGUI());
|
||||
|
||||
Shell shell = new Shell();
|
||||
i.register(Shell.class, shell);
|
||||
i.register(Menu.class, new Menu(shell, SWT.BAR));
|
||||
i.register(FeederSelectionCombo.class, new FeederSelectionCombo(i.require(ControlsArea.class)));
|
||||
i.register(Button.class, new Button(i.require(ControlsArea.class), SWT.NONE));
|
||||
|
||||
SWTAwareStateMachine stateMachine = new SWTAwareStateMachine(display);
|
||||
i.register(SWTAwareStateMachine.class, stateMachine);
|
||||
i.register(StateMachine.class, stateMachine);
|
||||
i.register(RangeFeederGUI.class, RandomFeederGUI.class, FileFeederGUI.class);
|
||||
|
||||
i.register(FeederRegistry.class, i.require(FeederGUIRegistry.class));
|
||||
}
|
||||
}
|
||||
@ -17,7 +17,7 @@ abstract class AbstractPingerTest {
|
||||
Pinger pinger;
|
||||
|
||||
AbstractPingerTest(Class<? extends Pinger> pingerClass) throws Exception {
|
||||
Injector injector = new ComponentRegistry().init();
|
||||
Injector injector = new ComponentRegistry().init(false);
|
||||
this.pinger = injector.require(pingerClass);
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user