private ConverterServerInformation fetchConverterServerInformation() { return logConverterServerInformation(makeTarget() .request(MediaType.APPLICATION_XML_TYPE) .get(ConverterServerInformation.class)); }
protected RemoteConverter(URI baseUri, File baseFolder, long requestTimeout, int corePoolSize, int maximumPoolSize, long keepAliveTime, SSLContext sslContext) { super(baseFolder); this.client = makeClient(requestTimeout, maximumPoolSize, sslContext); this.baseUri = baseUri; this.executorService = makeExecutorService(corePoolSize, maximumPoolSize, keepAliveTime); this.requestTimeout = requestTimeout; LOGGER.info("The documents4j remote converter has started successfully (URI: {})", baseUri); }
@Override protected File makeTemporaryFile(String suffix) { return RemoteConverter.this.makeTemporaryFile(suffix); } }
/** * Creates a new {@link RemoteConverter} with default configuration. * * @param baseUri The base URI of the remote conversion server. * @return A {@link RemoteConverter} with default configuration. */ public static IConverter make(String baseUri) { return builder().baseUri(baseUri).build(); }
private static Client makeClient(long requestTimeout, int maxConnections, SSLContext sslContext) { ClientConfig clientConfig = new ClientConfig(); int castRequestTimeout = Ints.checkedCast(requestTimeout); clientConfig.register(makeGZipFeature()); clientConfig.property(ClientProperties.ASYNC_THREADPOOL_SIZE, maxConnections); clientConfig.property(ClientProperties.CONNECT_TIMEOUT, castRequestTimeout); clientConfig.property(ClientProperties.READ_TIMEOUT, castRequestTimeout); clientConfig.property(ApacheClientProperties.CONNECTION_MANAGER, makeConnectionManager(maxConnections)); clientConfig.connectorProvider(new ApacheConnectorProvider()); if (sslContext != null) { return ClientBuilder.newBuilder().sslContext(sslContext).withConfig(clientConfig).build(); } else { return ClientBuilder.newClient(clientConfig); } }
@Override public boolean isOperational() { try { return !executorService.isShutdown() && fetchConverterServerInformation().isOperational(); } catch (Exception e) { LOGGER.warn("Could not connect to conversion server @ {}", baseUri, e); return false; } }
@Override public IConverter build() { checkNotNull(baseUri, "The base URI was not set"); return new RemoteConverter(baseUri, normalizedBaseFolder(), requestTimeout, corePoolSize, maximumPoolSize, keepAliveTime, sslContext); }
/** * Creates a new {@link RemoteConverter} with default configuration. * * @param baseUri The base URI of the remote conversion server. * @return A {@link RemoteConverter} with default configuration. */ public static IConverter make(URI baseUri) { return builder().baseUri(baseUri).build(); }
@Override public Map<DocumentType, Set<DocumentType>> getSupportedConversions() { return fetchConverterServerInformation().getSupportedConversions(); }
RemoteConverter.Builder builder = RemoteConverter.builder() .requestTimeout(requestTimeout, TimeUnit.MILLISECONDS) .baseUri(baseUri);