-
Notifications
You must be signed in to change notification settings - Fork 17
Instantiate beans and set their properties (New in 0.17.0)
Holger Thurow edited this page Nov 25, 2019
·
2 revisions
Thanks to Jarrad Waterloo you can now not only set bean properties of type String but also of many more types. See this bean and this properties file for all supported types. To make this work you have to declare the bean's type and the converter to use in the properties file:
type = org.osjava.sj.BeanWithSupportedSetters
converter = org.osjava.sj.loader.convert.BeanConverter
What you will get is the bean with all properties set as specified:
ctx = new InitialContext();
final BeanWithSupportedSetters bean = (BeanWithSupportedSetters) ctx.lookup("java:comp/env/bean");
assert bean != null;
assertEquals("Hello World", bean.getString());
assertEquals("Hello World", bean.getCharSequence());
assertEquals(true, bean.getBooleanPrimitive());
assertEquals(false, bean.getBooleanObject());
assertEquals(Byte.parseByte("5"), bean.getBytePrimitive());
assertEquals(new Byte("7"), bean.getByteObject());
assertEquals('x', bean.getCharacterPrimitive());
assertEquals(new Character('Z'), bean.getCharacterObject());
assertEquals(Short.parseShort("10"), bean.getShortPrimitive());
assertEquals(new Short("11"), bean.getShortObject());
assertEquals(Integer.parseInt("100"), bean.getIntegerPrimitive());
assertEquals(new Integer("101"), bean.getIntegerObject());
assertEquals(Long.parseLong("1000"), bean.getLongPrimitive());
assertEquals(new Long("1001"), bean.getLongObject());
assertEquals(Float.parseFloat("2000"), bean.getFloatPrimitive(), 0);
assertEquals(new Float("2001"), bean.getFloatObject());
assertEquals(Double.parseDouble("3000"), bean.getDoublePrimitive(), 0);
assertEquals(new Double("3001"), bean.getDoubleObject());
assertEquals(new java.math.BigDecimal("4000000"), bean.getBigDecimal());
assertEquals(new java.math.BigInteger("4000001"), bean.getBigInteger());
assertEquals(java.util.Locale.US, bean.getLocale());
assertEquals(java.math.RoundingMode.HALF_DOWN, bean.getRoundingMode());
assertEquals((new SimpleDateFormat("yyyy-MM-dd'T'HH:mm")).parse("2017-11-21T08:30"), bean.getUtilDate());
assertEquals(new java.sql.Date((new SimpleDateFormat("yyyy-MM-dd")).parse("2017-11-21").getTime()), bean.getSqlDate());
assertEquals(new java.sql.Time((new SimpleDateFormat("HH:mm")).parse("08:30").getTime()), bean.getTime());
assertEquals(new java.sql.Timestamp((new SimpleDateFormat("yyyy-MM-dd'T'HH:mm")).parse("2017-11-21T08:30").getTime()), bean.getTimestamp());