@Override @SneakyThrows public long getPhysicalTime() { return getTimestamp().ntpValue(); }
@Activate protected void activate(ComponentContext ctx) throws SocketException { client = new NTPUDPClient(); String serversList = (String) ctx.getProperties().get("ntp.servers"); setServers(serversList.split(",")); setSocketTimeout(); }
@Override protected void startUp() throws Exception { update(); }
@SneakyThrows @Test(timeOut = 5000) public void unavailableTimeServer() { NTPServerTimeProvider timeProvider = new NTPServerTimeProvider(new String[]{"255.255.255.255"}); timeProvider.startAsync().awaitRunning(); try { timeProvider.getTimestamp(); assertEquals("Should throw TimeoutException", true, false); } catch (TimeoutException e) { return; } timeProvider.stopAsync().awaitTerminated(); }
@Test @SneakyThrows public void serializableComparable() { IndexedCollection<EntityHandle<Car>> collection = new ConcurrentIndexedCollection<>(); NavigableIndex index = onAttribute(Car.TIMESTAMP); index.clear(noQueryOptions()); collection.addIndex(index); Car car1 = CarFactory.createCar(1); Car car2 = CarFactory.createCar(2); NTPServerTimeProvider ntpServerTimeProvider = new NTPServerTimeProvider(); ntpServerTimeProvider.startAsync().awaitRunning(); HybridTimestamp ts1 = new HybridTimestamp(ntpServerTimeProvider); HybridTimestamp ts2 = ts1.clone(); Thread.sleep(1000); ts2.update(); assertTrue(ts2.compareTo(ts1) > 0); assertTrue(ts2.getSerializableComparable().compareTo(ts1.getSerializableComparable()) > 0); car1.timestamp(ts1); car2.timestamp(ts2); collection.add(new ResolvedEntityHandle<>(car1)); collection.add(new ResolvedEntityHandle<>(car2)); try (ResultSet<EntityHandle<Car>> resultSet = collection.retrieve(greaterThan(Car.TIMESTAMP, ts1))) { assertEquals(resultSet.size(), 1); assertEquals(resultSet.uniqueResult().get().getModel(), "Taurus"); } index.clear(noQueryOptions()); ntpServerTimeProvider.stopAsync().awaitTerminated(); }
@BeforeClass public void setup() throws UnknownHostException, ExecutionException, InterruptedException, SocketException { provider = new NTPServerTimeProvider(new String[]{"localhost"}); // use localhost to avoid delays and usage caps serviceManager = new ServiceManager(Arrays.asList(provider)); serviceManager.startAsync().awaitHealthy(); }
@SneakyThrows public IndexEngineTest(T indexEngine) { this.indexEngine = indexEngine; repository = new StandardRepository(); journal = new MemoryJournal(); journal.setRepository(repository); repository.setJournal(journal); repository.addCommandSetProvider(new PackageCommandSetProvider(new Package[]{getClass().getPackage()})); repository.addEventSetProvider(new PackageEventSetProvider(new Package[]{getClass().getPackage()})); repository.setIndexEngine(indexEngine); repository.setLockProvider(new LocalLockProvider()); timeProvider = new NTPServerTimeProvider(new String[]{"localhost"}); repository.setPhysicalTimeProvider(timeProvider); indexEngine.setJournal(journal); indexEngine.setRepository(repository); }
@Activate protected void activate(ComponentContext ctx) throws SocketException { client = new NTPUDPClient(); String serversList = (String) ctx.getProperties().get("ntp.servers"); setServers(serversList.split(",")); setSocketTimeout(); }
@BeforeMethod public void setUp() throws Exception { repository = new StandardRepository(); repository.addCommandSetProvider( new PackageCommandSetProvider(new Package[]{EntityQueryFactoryTest.class.getPackage()})); repository.addEventSetProvider( new PackageEventSetProvider(new Package[]{EntityQueryFactoryTest.class.getPackage()})); repository.setJournal(new MemoryJournal()); NTPServerTimeProvider timeProvider = new NTPServerTimeProvider(new String[]{"localhost"}); repository.setPhysicalTimeProvider(timeProvider); repository.setIndexEngine(new MemoryIndexEngine()); repository.setLockProvider(new LocalLockProvider()); repository.startAsync().awaitRunning(); }
@Override @SneakyThrows public long getPhysicalTime() { return getTimestamp().ntpValue(); }
@Override protected void runOneIteration() throws Exception { update(); }
/** * Creates NTPServerTimeProvider with a custom list of NTP server addresses * * @param ntpServers Array of custom NTP server addresses * @throws UnknownHostException Throws UnknownHostException for the first unresolved host, if no hosts were resolvable */ public NTPServerTimeProvider(String[] ntpServers) throws UnknownHostException, SocketException { client = new NTPUDPClient(); setServers(ntpServers); if (servers.isEmpty()) { throw new UnknownHostException(ntpServers[0]); } setSocketTimeout(); }
@BeforeMethod public void setUp() throws Exception { timeProvider = new NTPServerTimeProvider(new String[]{"localhost"}); repository = new StandardRepository(); repository.setPhysicalTimeProvider(timeProvider); repository.setJournal(new MemoryJournal()); repository.setIndexEngine(new MemoryIndexEngine()); lockProvider = new LocalLockProvider(); repository.setLockProvider(lockProvider); repository.startAsync().awaitRunning(); // Add commands/events after the startup, to simulate production better repository.addCommandSetProvider(new PackageCommandSetProvider(packages)); repository.addEventSetProvider(new PackageEventSetProvider(packages)); }
@Test(successPercentage = 99, dataProvider = "delays") public void secondsPassed(int delay) throws UnknownHostException, InterruptedException, TimeoutException { TimeStamp ts1 = provider.getTimestamp(); Thread.sleep(delay); TimeStamp ts2 = provider.getTimestamp(); long seconds = delay / 1000; // Verify that seconds passed were calculated properly // since the last time NTP timestamp was fetched. Measuring fractions // is pointless as there's a gap between sleeping and requesting the timestamp. assertEquals("Delay=" + delay + " time_diff=" + (ts2.getTime() - ts1.getTime()), seconds, (ts2.getTime() - ts1.getTime()) / 1000); }
@Override protected void startUp() throws Exception { update(); }
/** * Creates NTPServerTimeProvider with a custom list of NTP server addresses * * @param ntpServers Array of custom NTP server addresses * @throws UnknownHostException Throws UnknownHostException for the first unresolved host, if no hosts were resolvable */ public NTPServerTimeProvider(String[] ntpServers) throws UnknownHostException, SocketException { client = new NTPUDPClient(); setServers(ntpServers); if (servers.isEmpty()) { throw new UnknownHostException(ntpServers[0]); } setSocketTimeout(); }
@Override protected void runOneIteration() throws Exception { update(); }