private int getCorePoolSize(Object executor) { return (Integer) new DirectFieldAccessor(executor).getPropertyValue("corePoolSize"); }
@Test public void expirationCheckPeriod() { DirectFieldAccessor accessor = new DirectFieldAccessor(this.store); Map<?,?> sessions = (Map<?, ?>) accessor.getPropertyValue("sessions"); assertNotNull(sessions); // Create 100 sessions IntStream.range(0, 100).forEach(i -> insertSession()); assertEquals(100, sessions.size()); // Force a new clock (31 min later), don't use setter which would clean expired sessions accessor.setPropertyValue("clock", Clock.offset(this.store.getClock(), Duration.ofMinutes(31))); assertEquals(100, sessions.size()); // Create 1 more which forces a time-based check (clock moved forward) insertSession(); assertEquals(1, sessions.size()); }
/** * Obtain a PropertyAccessor for the given target object, * accessing properties in direct field style. * @param target the target object to wrap * @return the property accessor * @see DirectFieldAccessor */ public static ConfigurablePropertyAccessor forDirectFieldAccess(Object target) { return new DirectFieldAccessor(target); }
private void mockTheOperationsCache(final StoredProcExecutor storedProcExecutor) { Object cache = TestUtils.getPropertyValue(storedProcExecutor, "guavaCacheWrapper.jdbcCallOperationsCache.localCache"); new DirectFieldAccessor(cache) .setPropertyValue("defaultLoader", new CacheLoader<String, SimpleJdbcCallOperations>() { @Override public SimpleJdbcCall load(String storedProcedureName) { return mock(SimpleJdbcCall.class); } }); }
@Test public void withShadowedField() { final StringBuilder sb = new StringBuilder(); @SuppressWarnings("serial") TestBean target = new TestBean() { @SuppressWarnings("unused") StringBuilder name = sb; }; DirectFieldAccessor dfa = createAccessor(target); assertEquals(StringBuilder.class, dfa.getPropertyType("name")); assertEquals(sb, dfa.getPropertyValue("name")); }
@Test @SuppressWarnings("unchecked") public void checkSession() throws Exception { TestWebSocketSession session1 = new TestWebSocketSession("id1"); TestWebSocketSession session2 = new TestWebSocketSession("id2"); session1.setOpen(true); session2.setOpen(true); session1.setAcceptedProtocol("v12.stomp"); session2.setAcceptedProtocol("v12.stomp"); this.webSocketHandler.setProtocolHandlers(Arrays.asList(this.stompHandler)); this.webSocketHandler.afterConnectionEstablished(session1); this.webSocketHandler.afterConnectionEstablished(session2); DirectFieldAccessor handlerAccessor = new DirectFieldAccessor(this.webSocketHandler); Map<String, ?> map = (Map<String, ?>) handlerAccessor.getPropertyValue("sessions"); DirectFieldAccessor session1Accessor = new DirectFieldAccessor(map.get("id1")); DirectFieldAccessor session2Accessor = new DirectFieldAccessor(map.get("id2")); long sixtyOneSecondsAgo = System.currentTimeMillis() - 61 * 1000; handlerAccessor.setPropertyValue("lastSessionCheckTime", sixtyOneSecondsAgo); session1Accessor.setPropertyValue("createTime", sixtyOneSecondsAgo); session2Accessor.setPropertyValue("createTime", sixtyOneSecondsAgo); this.webSocketHandler.start(); this.webSocketHandler.handleMessage(session1, new TextMessage("foo")); assertTrue(session1.isOpen()); assertNull(session1.getCloseStatus()); assertFalse(session2.isOpen()); assertEquals(CloseStatus.SESSION_NOT_RELIABLE, session2.getCloseStatus()); assertNotEquals("lastSessionCheckTime not updated", sixtyOneSecondsAgo, handlerAccessor.getPropertyValue("lastSessionCheckTime")); }
@Override protected DirectFieldAccessor newNestedPropertyAccessor(Object object, String nestedPath) { return new DirectFieldAccessor(object, nestedPath, this); }
private int getMaxPoolSize(Object executor) { return (Integer) new DirectFieldAccessor(executor).getPropertyValue("maxPoolSize"); }
/** * Obtain a PropertyAccessor for the given target object, * accessing properties in direct field style. * @param target the target object to wrap * @return the property accessor * @see DirectFieldAccessor */ public static ConfigurablePropertyAccessor forDirectFieldAccess(Object target) { return new DirectFieldAccessor(target); }
private int getQueueCapacity(Object executor) { return (Integer) new DirectFieldAccessor(executor).getPropertyValue("queueCapacity"); }
@Override protected DirectFieldAccessor newNestedPropertyAccessor(Object object, String nestedPath) { return new DirectFieldAccessor(object, nestedPath, this); }
private int getKeepAliveSeconds(Object executor) { return (Integer) new DirectFieldAccessor(executor).getPropertyValue("keepAliveSeconds"); }
@Override protected DirectFieldAccessor createAccessor(Object target) { return new DirectFieldAccessor(target); }
private boolean getAllowCoreThreadTimeOut(Object executor) { return (Boolean) new DirectFieldAccessor(executor).getPropertyValue("allowCoreThreadTimeOut"); }
@Override public RedisURI get() { RedisURI uri = uriFieldReference.get(); if (uri != null) { return uri; } uri = RedisURI.class.cast(new DirectFieldAccessor(client).getPropertyValue("redisURI")); return uriFieldReference.compareAndSet(null, uri) ? uri : uriFieldReference.get(); } };
public static void displayDirectories(ApplicationContext context) { File inDir = (File) new DirectFieldAccessor(context.getBean(FileReadingMessageSource.class)).getPropertyValue("directory"); LiteralExpression expression = (LiteralExpression) new DirectFieldAccessor(context.getBean(FileWritingMessageHandler.class)).getPropertyValue("destinationDirectoryExpression"); File outDir = new File(expression.getValue()); System.out.println("Input directory is: " + inDir.getAbsolutePath()); System.out.println("Output directory is: " + outDir.getAbsolutePath()); System.out.println("==================================================="); }
private HikariPool getHikariPool() { return (HikariPool) new DirectFieldAccessor(getDataSource()) .getPropertyValue("pool"); }
private void checkPropertyValues(ViewResolver resolver, Object... nameValuePairs) { DirectFieldAccessor accessor = new DirectFieldAccessor(resolver); for (int i = 0; i < nameValuePairs.length ; i++, i++) { Object expected = nameValuePairs[i + 1]; Object actual = accessor.getPropertyValue((String) nameValuePairs[i]); assertEquals(expected, actual); } }
private ErrorHandler getErrorHandler(String containerBeanName) { DefaultMessageListenerContainer container = this.context.getBean(containerBeanName, DefaultMessageListenerContainer.class); return (ErrorHandler) new DirectFieldAccessor(container).getPropertyValue("errorHandler"); }
private BackOff getBackOff(String containerBeanName) { DefaultMessageListenerContainer container = this.context.getBean(containerBeanName, DefaultMessageListenerContainer.class); return (BackOff) new DirectFieldAccessor(container).getPropertyValue("backOff"); }