/** * @param vTimeZone * @return */ private VTimeZone updateDefinition(VTimeZone vTimeZone) throws IOException, ParserException { final TzUrl tzUrl = vTimeZone.getTimeZoneUrl(); if (tzUrl != null) { final int connectTimeout = Configurator.getIntProperty(UPDATE_CONNECT_TIMEOUT).orElse(0); final int readTimeout = Configurator.getIntProperty(UPDATE_READ_TIMEOUT).orElse(0); URLConnection connection; URL url = tzUrl.getUri().toURL(); if ("true".equals(Configurator.getProperty(UPDATE_PROXY_ENABLED).orElse("false")) && proxy != null) { connection = url.openConnection(proxy); } else { connection = url.openConnection(); } connection.setConnectTimeout(connectTimeout); connection.setReadTimeout(readTimeout); final CalendarBuilder builder = new CalendarBuilder(); final Calendar calendar = builder.build(connection.getInputStream()); final VTimeZone updatedVTimeZone = (VTimeZone) calendar.getComponent(Component.VTIMEZONE); if (updatedVTimeZone != null) { return updatedVTimeZone; } } return vTimeZone; }
/** * @param vTimeZone * @return */ private VTimeZone updateDefinition(VTimeZone vTimeZone) throws IOException, ParserException { final TzUrl tzUrl = vTimeZone.getTimeZoneUrl(); if (tzUrl != null) { final int connectTimeout = Configurator.getIntProperty(UPDATE_CONNECT_TIMEOUT).orElse(0); final int readTimeout = Configurator.getIntProperty(UPDATE_READ_TIMEOUT).orElse(0); URLConnection connection; URL url = tzUrl.getUri().toURL(); if ("true".equals(Configurator.getProperty(UPDATE_PROXY_ENABLED).orElse("false")) && proxy != null) { connection = url.openConnection(proxy); } else { connection = url.openConnection(); } connection.setConnectTimeout(connectTimeout); connection.setReadTimeout(readTimeout); final CalendarBuilder builder = new CalendarBuilder(); final Calendar calendar = builder.build(connection.getInputStream()); final VTimeZone updatedVTimeZone = (VTimeZone) calendar.getComponent(Component.VTIMEZONE); if (updatedVTimeZone != null) { return updatedVTimeZone; } } return vTimeZone; }