@After public void tearDown() { webServer.setWebServerShutdownHandler( null ); // disable system.exit webServer.stopServer(); System.getProperties().remove( Const.KETTLE_CARTE_JETTY_ACCEPTORS ); System.getProperties().remove( Const.KETTLE_CARTE_JETTY_ACCEPT_QUEUE_SIZE ); System.getProperties().remove( Const.KETTLE_CARTE_JETTY_RES_MAX_IDLE_TIME ); }
/** * This method registers a timer to check up on all the registered slave servers every X seconds.<br> */ private void startSlaveMonitoring() { slaveMonitoringTimer = new Timer( "WebServer Timer" ); TimerTask timerTask = new TimerTask() { public void run() { for ( SlaveServerDetection slaveServerDetection : detections ) { SlaveServer slaveServer = slaveServerDetection.getSlaveServer(); // See if we can get a status... // try { // TODO: consider making this lighter or retaining more information... slaveServer.getStatus(); // throws the exception slaveServerDetection.setActive( true ); slaveServerDetection.setLastActiveDate( new Date() ); } catch ( Exception e ) { slaveServerDetection.setActive( false ); slaveServerDetection.setLastInactiveDate( new Date() ); // TODO: kick it out after a configurable period of time... } } } }; int detectionTime = defaultDetectionTimer(); slaveMonitoringTimer.schedule( timerTask, detectionTime, detectionTime ); }
private List<SocketConnector> getSocketConnectors( WebServer wServer ) { List<SocketConnector> sConnectors = new ArrayList<SocketConnector>(); Connector[] connectors = wServer.getServer().getConnectors(); for ( Connector cn : connectors ) { if ( cn instanceof SocketConnector ) { sConnectors.add( (SocketConnector) cn ); } } return sConnectors; }
@Test public void testNoExceptionAndUsingDefaultServerValue_WhenJettyOptionSetAsInvalidValue() throws Exception { System.setProperty( Const.KETTLE_CARTE_JETTY_ACCEPTORS, "TEST" ); try { webServerNg = new WebServer( logMock, trMapMock, jbMapMock, sRepoMock, detections, HOST_NAME, PORT + 1, SHOULD_JOIN, null ); } catch ( NumberFormatException nmbfExc ) { fail( "Should not have thrown any NumberFormatException but it does: " + nmbfExc ); } assertEquals( getSocketConnectors( webServerNg ).size(), EXPECTED_CONNECTORS_SIZE ); for ( SocketConnector sc : getSocketConnectors( webServerNg ) ) { assertEquals( defSocketConnector.getAcceptors(), sc.getAcceptors() ); } webServerNg.setWebServerShutdownHandler( null ); // disable system.exit webServerNg.stopServer(); }
@Ignore @Test public void test() throws Exception { CountDownLatch latch = new CountDownLatch( 1 ); System.setProperty( Const.KETTLE_SLAVE_DETECTION_TIMER, "100" ); SlaveServer master = new SlaveServer(); master.setHostname( "127.0.0.1" ); master.setPort( "9000" ); master.setUsername( "cluster" ); master.setPassword( "cluster" ); master.setMaster( true ); SlaveServerConfig config = new SlaveServerConfig(); config.setSlaveServer( master ); Carte carte = new Carte( config ); SlaveServerDetection slaveServerDetection = mock( SlaveServerDetection.class ); carte.getWebServer().getDetections().add( slaveServerDetection ); SlaveServer slaveServer = mock( SlaveServer.class, RETURNS_MOCKS ); when( slaveServerDetection.getSlaveServer() ).thenReturn( slaveServer ); when( slaveServer.getStatus() ).thenAnswer( new Answer<SlaveServerStatus>() { @Override public SlaveServerStatus answer( InvocationOnMock invocation ) throws Throwable { SlaveServerDetection anotherDetection = mock( SlaveServerDetection.class ); carte.getWebServer().getDetections().add( anotherDetection ); latch.countDown(); return new SlaveServerStatus(); } } ); latch.await( 10, TimeUnit.SECONDS ); assertEquals( carte.getWebServer().getDetections().size(), 2 ); carte.getWebServer().stopServer(); }
@Override public void run() { if ( !shuttingDown ) { try { webServer.stopServer(); } catch ( Exception e ) { e.printStackTrace(); } } }
@Before public void setup() throws Exception { System.setProperty( Const.KETTLE_CARTE_JETTY_ACCEPTORS, ACCEPTORS ); System.setProperty( Const.KETTLE_CARTE_JETTY_ACCEPT_QUEUE_SIZE, ACCEPT_QUEUE_SIZE ); System.setProperty( Const.KETTLE_CARTE_JETTY_RES_MAX_IDLE_TIME, RES_MAX_IDLE_TIME ); when( sServerConfMock.getSlaveServer() ).thenReturn( sServer ); when( trMapMock.getSlaveServerConfig() ).thenReturn( sServerConfMock ); when( sServer.getPassword() ).thenReturn( "cluster" ); when( sServer.getUsername() ).thenReturn( "cluster" ); webServer = new WebServer( logMock, trMapMock, jbMapMock, sRepoMock, detections, HOST_NAME, PORT, SHOULD_JOIN, null ); }
private void createListeners() { SocketConnector connector = getConnector(); setupJettyOptions( connector ); connector.setPort( port ); connector.setHost( hostname ); connector.setName( BaseMessages.getString( PKG, "WebServer.Log.KettleHTTPListener", hostname ) ); log.logBasic( BaseMessages.getString( PKG, "WebServer.Log.CreateListener", hostname, "" + port ) ); server.setConnectors( new Connector[] { connector } ); }
new ServletContextHandler( contexts, getContextPath( servlet ), ServletContextHandler.SESSIONS ); ServletHolder servletHolder = new ServletHolder( (Servlet) servlet ); servletContext.addServlet( servletHolder, "/*" ); createListeners();
@Override public SlaveServerStatus answer( InvocationOnMock invocation ) throws Throwable { SlaveServerDetection anotherDetection = mock( SlaveServerDetection.class ); carte.getWebServer().getDetections().add( anotherDetection ); latch.countDown(); return new SlaveServerStatus(); } } );
public static void runCarte( SlaveServerConfig config ) throws Exception { KettleLogStore.init( config.getMaxLogLines(), config.getMaxLogTimeoutMinutes() ); config.setJoining( true ); Carte carte = new Carte( config, false ); CarteSingleton.setCarte( carte ); carte.getWebServer().join(); }
@Test public void testNoExceptionAndUsingDefaultServerValue_WhenJettyOptionSetAsEmpty() throws Exception { System.setProperty( Const.KETTLE_CARTE_JETTY_ACCEPTORS, EMPTY_STRING ); try { webServerNg = new WebServer( logMock, trMapMock, jbMapMock, sRepoMock, detections, HOST_NAME, PORT + 1, SHOULD_JOIN, null ); } catch ( NumberFormatException nmbfExc ) { fail( "Should not have thrown any NumberFormatException but it does: " + nmbfExc ); } assertEquals( getSocketConnectors( webServerNg ).size(), EXPECTED_CONNECTORS_SIZE ); for ( SocketConnector sc : getSocketConnectors( webServerNg ) ) { assertEquals( defSocketConnector.getAcceptors(), sc.getAcceptors() ); } webServerNg.setWebServerShutdownHandler( null ); // disable system.exit webServerNg.stopServer(); }
@Override public void run() { carte.getWebServer().stopServer(); exitJVM( 0 ); } }, 1000 );
new WebServer( log, transformationMap, jobMap, socketRepository, detections, hostname, port, shouldJoin, config.getPasswordFile(), slaveServer.getSslConfig() );