Closed gdi-by closed 6 years ago
Hierzu sollte es ausreichen, die Variablen http_proxy
, https_proxy
und no_proxy
der environment
Map des ProcessBuilder
(https://github.com/gdi-by/downloadclient/blob/05b93dc34752559d59c7bbb44c151cc3931d8397/src/main/java/de/bayern/gdi/processor/ExternalProcessJob.java) hinzuzufügen.
List<String> cmd = commandList();
ProcessBuilder builder = new ProcessBuilder(cmd);
Map<String, String> env = builder.environment();
env.put("http_proxy", "http://proxy-url");
env.put("https_proxy", "http://proxy-url");
env.put("no_proxy", "localhost,127.0.0.1");
Verifiziert mit Windows 7.
Wir haben vor einiger Zeit bereits das setzen mit Umgebungsvariablen in Betracht gezogen. Diese Methode erscheint uns jedoch nicht gefestigt genug. In den anschließenden Programmen, die in der Verabeitungskette genutzt werden gibt es keine oder nur wenige Dokumentation und Hinweise darüber, ob die Software auf die gesetzten Umgebungsvariablen zugreift. Zudem wissen wir nicht, wie das handling von Umgebungsvariablen in exotischeren Betriebssystemen von statten geht. Es gab viele "wenns" und "abers", die uns bislang davon abgehalten haben.
Im speziellen Fall von ogr2ogr gibt es Hinweise über eine Berücksichtigung (https://trac.osgeo.org/gdal/wiki/ConfigOptions#GDAL_HTTP_PROXY), da dies aber Third-Party-Software ist, kann keine Garantie dafür gegeben werden dass es fortlaufend und sicher funktioniert. Wir haben keinen Einfluss auf die Entwicklung dieser Software.
Risiko bei Third-Party-Software ist bekannt. Bisherige Tests unter WIN 7 waren aber erfolgreich, wie bereits oben erwähnt. Bei der Umsetzung obige Kommentare von Owner und Collaborator bitte beachten.
Mit https://github.com/gdi-by/downloadclient/pull/80 wurde dieser Punkt umgesetzt.
Verifiziert mit PR #99. Issue behoben und wird damit geschlossen
Die Proxy-Einstellungen aus der Konfigurationsdatei proxy.xml sollen auch für die Konsolenprogramme der Verarbeitungskette (z.B. ogr2ogr) verwendet werden. Bevor durch den DownloadClient die Konsolenprogramme gestartet werden, soll dieser dynamisch die entsprechenden Umgebungsvariablen (http_proxy, https_proxy, no_proxy) gemäß proxy.xml setzen.
Hintergrund: die aktuelle Version ogr2ogr (verwendet im Verarbeitungsschritt "toShape") hat zwei unterschiedliche Modi zur Konvertierung einer GML-Datei in das Format Shapefile. Falls auf das Schema im Header der GML-Datei zugegriffen werden kann, wird dieses verwendet. Falls nicht zugegriffen werden kann, wird eine generische Analyse des GML durchgeführt.