# HG changeset patch # User Raimund Renkert # Date 1307707443 -7200 # Node ID 163d474165b0c089b8d1637684dbb9e0cb911dce # Parent 3ca2ec55fb3b14e4317d72f94bc534ba00051f04 Added check for ArcGISDesktop environment. diff -r 3ca2ec55fb3b -r 163d474165b0 ChangeLog --- a/ChangeLog Fri Jun 10 11:35:41 2011 +0200 +++ b/ChangeLog Fri Jun 10 14:04:03 2011 +0200 @@ -1,3 +1,11 @@ +2011-06-10 Raimund Renkert + + * src/java/de/intevation/mxd/ArcGISInitializer.java: + Check for ArcGISDesktop environment and added logging. + + * src/java/de/intevation/mxd/reader/MXDReader.java: + Check the initializer return value. + 2011-06-10 Raimund Renkert * src/java/de/intevation/mxd/writer/MapScriptWriter.java: diff -r 3ca2ec55fb3b -r 163d474165b0 src/java/de/intevation/mxd/ArcGISInitializer.java --- a/src/java/de/intevation/mxd/ArcGISInitializer.java Fri Jun 10 11:35:41 2011 +0200 +++ b/src/java/de/intevation/mxd/ArcGISInitializer.java Fri Jun 10 14:04:03 2011 +0200 @@ -1,6 +1,9 @@ package de.intevation.mxd; import java.io.IOException; +import java.io.File; + +import org.apache.log4j.Logger; import com.esri.arcgis.system.AoInitialize; import com.esri.arcgis.system.EngineInitializer; @@ -15,6 +18,11 @@ public class ArcGISInitializer { /** + * The Logger. + */ + private static final Logger logger = Logger.getLogger(ArcGISInitializer.class); + + /** * Private member. */ private AoInitialize aoInit; @@ -26,17 +34,32 @@ */ public boolean initArcGIS () throws IOException { + logger.debug("initArcGIS()"); EngineInitializer.initializeEngine(); aoInit = new AoInitialize(); engineInstallDir = System.getenv("AGSENGINEJAVA"); + File installDir = new File(engineInstallDir); + if(!installDir.exists()) { + engineInstallDir = System.getenv("AGSDESKTOPJAVA"); + installDir = new File(engineInstallDir); + if(!installDir.exists()) { + logger.error("Could not find ArcGIS Environment. \n" + + "AGSENGINEJAVA or AGSDESKTOPJAVA not set."); + return false; + } + } + else { + return true; + } return true; } /** * Init ArcGIS License. */ - public void initArcGISLicenses() + public boolean initArcGISLicenses() throws IOException { + logger.debug("initArcGISLicenses()"); if(aoInit.isProductCodeAvailable (esriLicenseProductCode.esriLicenseProductCodeEngine) == esriLicenseStatus.esriLicenseAvailable) { @@ -50,11 +73,13 @@ (esriLicenseProductCode.esriLicenseProductCodeArcView); } else { - System.err.println("Engine Runtime or ArcView" + - " license not initialized."); - System.err.println("Exiting application."); - System.exit(-1); + logger.error("Engine Runtime or ArcView" + + " license not initialized.\n" + + "Please install an ArcGIS product and set the" + + " PATH-variable correctly."); + return false; } + return true; } /** diff -r 3ca2ec55fb3b -r 163d474165b0 src/java/de/intevation/mxd/reader/MXDReader.java --- a/src/java/de/intevation/mxd/reader/MXDReader.java Fri Jun 10 11:35:41 2011 +0200 +++ b/src/java/de/intevation/mxd/reader/MXDReader.java Fri Jun 10 14:04:03 2011 +0200 @@ -55,8 +55,12 @@ public boolean init() throws IOException { logger.debug("init()"); - initializer.initArcGIS(); - initializer.initArcGISLicenses(); + if(!initializer.initArcGIS()) { + return false; + } + if(!initializer.initArcGISLicenses()) { + return false; + } return true; }