@SuppressWarnings("unchecked") public <StarterClass extends Starter> StarterClass find(String key) { return (StarterClass) find(Starter.class, key); }
@Deprecated public Starter find(Object key) { return find(Starter.class, key); }
@Deprecated public <StarterClass extends Starter> StarterClass find(Class<StarterClass> sc, StarterNode nope) { return find(sc); }
public boolean isStarted(Object key) { boolean s = false; Starter st = find(Starter.class, key); if(st != null) s = st.isStarted(); return s; }
public Snmp getSnmp() { return getLevel().find(MainStarter.class).snmp; }
public <StarterClass extends Starter> StarterClass find(Class<StarterClass> sc) { Object key; try { Method m = sc.getMethod("makeKey", StarterNode.class); key = m.invoke(null, this); } catch (NoSuchMethodException e) { // Not an error, the key is the the class key = sc.getName(); } catch (Exception e) { log(Level.ERROR, e, "Error for %s with %s: %s", this, sc, e); return null; } return find(sc, key); }
private SSLConnectionSocketFactory getSSLSocketFactory() { SSLStarter sslstarter = getLevel().find(SSLStarter.class); if (sslstarter == null) { return null; } else { SSLContext sc = sslstarter.getContext(); return new SSLConnectionSocketFactory(sc); } }
@Override public void stopConnection() { IpmiConnectorStarter mainStarter = getLevel().find(IpmiConnectorStarter.class); if(mainStarter != null && mainStarter.connector != null) { jrdsHandle.closeConnection(); } jrdsHandle = null; }
@Override public boolean isStarted() { SSLStarter sslfactory = getLevel().find(SSLStarter.class); // if no sslfactory, don't check if it's started return client != null && (sslfactory != null ? sslfactory.isStarted() : true); } }
@Override public boolean startConnection() { SocketFactory ss = getLevel().find(SocketFactory.class); channel = new SocketChannels(); try { channel.muninsSocket = ss.createSocket(getHostName(), port); channel.out = new PrintWriter(channel.muninsSocket.getOutputStream(), true); channel.in = new BufferedReader(new InputStreamReader(channel.muninsSocket.getInputStream())); } catch (IOException e) { log(Level.ERROR, e, "Connection error", e.getMessage()); return false; } return true; }
Socket makeSocket(String host, int port) throws IOException { SocketFactory sf = getLevel().find(SocketFactory.class); return sf.createSocket(host, port); }
public Socket connect(String host, int port) throws NoSuchAlgorithmException, KeyManagementException, IOException { SocketFactory ss = getLevel().find(SocketFactory.class); Socket s = ss.createSocket(host, port); SSLSocketFactory ssf = getContext().getSocketFactory(); s = ssf.createSocket(s, host, port, true); log(Level.DEBUG, "done SSL handshake for %s", host); return s; }
public Socket createSocket(StarterNode host, int port) throws IOException { if(!isStarted()) return null; Resolver r = host.find(Resolver.class); if(r == null || !r.isStarted()) return null; Socket s = getSocket(); s.connect(new InetSocketAddress(r.getInetAddress(), port), getTimeout()); return s; }
public Socket createSocket(String host, int port) throws IOException { log(Level.DEBUG, "creating a RMI socket to %s:%d", host, port); return getLevel().find(SocketFactory.class).createSocket(host, port); } }
public Socket createSocket(String host, int port) throws IOException { log(Level.DEBUG, "creating a RMI socket to %s:%d", host, port); return getLevel().find(SocketFactory.class).createSocket(host, port); }
public Resolver getResolver() { String hostName = getHostName(); Resolver r = getLevel().find(Resolver.class); if(r == null) { r = new Resolver(hostName); getLevel().registerStarter(r); } return r; }
@Test public void simpleStarter() { StarterNode n = new StarterNode() { }; Starter s = new Starter() { }; n.registerStarter(s); Assert.assertNotNull(n.find(s.getClass())); }
@Test public void simpleStarter2() { StarterNode n1 = new StarterNode() { }; Starter s1 = new Starter() { }; n1.registerStarter(s1); StarterNode n2 = new StarterNode(n1) { }; Assert.assertNotNull(n2.find(s1.getClass())); }
@Test public void oneLevel() { StarterNode n = new StarterNode() { }; Starter s = new LocalStarter(0); n.registerStarter(s); Assert.assertNotNull(n.find(LocalStarter.class, 0)); }
@Test public void twoLevel() { StarterNode n1 = new StarterNode() { }; Starter s1 = new LocalStarter(0); n1.registerStarter(s1); StarterNode n2 = new StarterNode() { }; n2.setParent(n1); Starter s2 = new LocalStarter(1); n2.registerStarter(s2); Assert.assertNotNull(n2.find(LocalStarter.class, 1)); Assert.assertNotNull(n2.find(LocalStarter.class, 0)); }