diff options
-rw-r--r-- | pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ArgumentHandler.java | 6 | ||||
-rw-r--r-- | pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareConfigurationState.java | 245 |
2 files changed, 128 insertions, 123 deletions
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ArgumentHandler.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ArgumentHandler.java index 6ba19809..dbc61e24 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ArgumentHandler.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ArgumentHandler.java @@ -106,7 +106,7 @@ public class ArgumentHandler { } /** - * Set by an cli argument if it wants the program to exit + * Set by a cli argument if it wants the program to exit * * @param requireExit */ @@ -115,11 +115,11 @@ public class ArgumentHandler { } /** - * Checks if one argument required the program to exit again + * Checks if one argument required the program to exit immediately * * @return true or false */ - public boolean IsRequireExit() { + public boolean doesRequireExit() { return this.requiredExit; } } diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareConfigurationState.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareConfigurationState.java index e9f75539..e726d7b4 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareConfigurationState.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareConfigurationState.java @@ -63,7 +63,7 @@ public class PrepareConfigurationState extends State { private ArgumentHandler handler; - private ArgumentHandler configFilehandler; + private ArgumentHandler configFileHandler; /** * @param stateMachine @@ -83,8 +83,8 @@ public class PrepareConfigurationState extends State { // adding config file argument to this handler so it appears in help this.handler.addCLIArgument(new ConfigFileArgument()); - this.configFilehandler = new ArgumentHandler(this.stateMachine); - this.configFilehandler.addCLIArgument(new ConfigFileArgument()); + this.configFileHandler = new ArgumentHandler(this.stateMachine); + this.configFileHandler.addCLIArgument(new ConfigFileArgument()); } private void initializeFromConfigurationFile(String filename) @@ -127,150 +127,155 @@ public class PrepareConfigurationState extends State { throws InitializationException { handler.handleArguments(args); - if (handler.IsRequireExit()) { + if (handler.doesRequireExit()) { this.stateMachine.exit(); } } - @Override - public void run() { - // Read config file - try { + private void createConfiguration(File configDir) throws InitializationException { + boolean allOK = false; - File configDir = new File(this.stateMachine.getConfigProvider().getConfigurationDirectory()); - File configFile = new File(this.stateMachine.getConfigProvider().getConfigurationDirectory() - + FILE_SEPARATOR + Constants.DEFAULT_CONFIG_FILENAME); - if (!configDir.exists() || !configFile.exists()) { - boolean allOK = false; + log.info("Creating configuration directory"); //$NON-NLS-1$ - log.info("Creating configuration directory"); //$NON-NLS-1$ + try { + if (!configDir.exists()) { + configDir.mkdir(); + } + // Copy PDFOver config to config Dir - try { - if (!configDir.exists()) { - configDir.mkdir(); - } - // Copy PDFOver config to config Dir + // 1Kb buffer + byte[] buffer = new byte[1024]; + int byteCount = 0; - // 1Kb buffer - byte[] buffer = new byte[1024]; - int byteCount = 0; + InputStream inputStream = null; + FileOutputStream pdfOverConfig = null; + try { + inputStream = this.getClass().getResourceAsStream( + RES_SEPARATOR + Constants.DEFAULT_CONFIG_FILENAME); + pdfOverConfig = new FileOutputStream(this.stateMachine.getConfigProvider().getConfigurationDirectory() + + FILE_SEPARATOR + Constants.DEFAULT_CONFIG_FILENAME); - InputStream inputStream = null; - FileOutputStream pdfOverConfig = null; + while ((byteCount = inputStream.read(buffer)) >= 0) { + pdfOverConfig.write(buffer, 0, byteCount); + } + } catch (Exception e) { + log.error( + "Failed to write PDF Over config file to config directory", e); //$NON-NLS-1$ + throw new InitializationException( + "Failed to write PDF Over config file to config directory", //$NON-NLS-1$ + e); + } finally { + if (pdfOverConfig != null) { try { - inputStream = this.getClass().getResourceAsStream( - RES_SEPARATOR + Constants.DEFAULT_CONFIG_FILENAME); - pdfOverConfig = new FileOutputStream(this.stateMachine.getConfigProvider().getConfigurationDirectory() - + FILE_SEPARATOR + Constants.DEFAULT_CONFIG_FILENAME); - - while ((byteCount = inputStream.read(buffer)) >= 0) { - pdfOverConfig.write(buffer, 0, byteCount); - } - } catch (Exception e) { - log.error( - "Failed to write PDF Over config file to config directory", e); //$NON-NLS-1$ - throw new InitializationException( - "Failed to write PDF Over config file to config directory", //$NON-NLS-1$ - e); - } finally { - if (pdfOverConfig != null) { - try { - pdfOverConfig.close(); - } catch (IOException e) { - log.warn( - "Failed to close File stream for PDFOver config", e); //$NON-NLS-1$ - } - } - - if (inputStream != null) { - try { - inputStream.close(); - } catch (IOException e) { - log.warn( - "Failed to close Resource stream for PDFOver config", e); //$NON-NLS-1$ - } - } + pdfOverConfig.close(); + } catch (IOException e) { + log.warn( + "Failed to close File stream for PDFOver config", e); //$NON-NLS-1$ } + } - inputStream = null; - pdfOverConfig = null; + if (inputStream != null) { try { - inputStream = this.getClass().getResourceAsStream( - RES_SEPARATOR + Constants.DEFAULT_LOG4J_FILENAME); - pdfOverConfig = new FileOutputStream(this.stateMachine.getConfigProvider().getConfigurationDirectory() - + FILE_SEPARATOR + Constants.DEFAULT_LOG4J_FILENAME); - - while ((byteCount = inputStream.read(buffer)) >= 0) { - pdfOverConfig.write(buffer, 0, byteCount); - } - } catch (Exception e) { - log.error( - "Failed to write log4j config file to config directory", e); //$NON-NLS-1$ - throw new InitializationException( - "Failed to write log4j config file to config directory", //$NON-NLS-1$ - e); - } finally { - if (pdfOverConfig != null) { - try { - pdfOverConfig.close(); - } catch (IOException e) { - log.warn( - "Failed to close File stream for log4j config", e); //$NON-NLS-1$ - } - } - - if (inputStream != null) { - try { - inputStream.close(); - } catch (IOException e) { - log.warn( - "Failed to close Resource stream for log4j config", e); //$NON-NLS-1$ - } - } + inputStream.close(); + } catch (IOException e) { + log.warn( + "Failed to close Resource stream for PDFOver config", e); //$NON-NLS-1$ } - - InputStream is = this.getClass().getResourceAsStream( - "/cfg/PDFASConfig.zip"); //$NON-NLS-1$ + } + } + inputStream = null; + pdfOverConfig = null; + try { + inputStream = this.getClass().getResourceAsStream( + RES_SEPARATOR + Constants.DEFAULT_LOG4J_FILENAME); + pdfOverConfig = new FileOutputStream(this.stateMachine.getConfigProvider().getConfigurationDirectory() + + FILE_SEPARATOR + Constants.DEFAULT_LOG4J_FILENAME); + + while ((byteCount = inputStream.read(buffer)) >= 0) { + pdfOverConfig.write(buffer, 0, byteCount); + } + } catch (Exception e) { + log.error( + "Failed to write log4j config file to config directory", e); //$NON-NLS-1$ + throw new InitializationException( + "Failed to write log4j config file to config directory", //$NON-NLS-1$ + e); + } finally { + if (pdfOverConfig != null) { try { - Unzipper.unzip(is, configDir.getAbsolutePath()); + pdfOverConfig.close(); } catch (IOException e) { - log.error( - "Failed to create local configuration directory!", e); //$NON-NLS-1$ - throw new InitializationException( - "Failed to create local configuration directory!", //$NON-NLS-1$ - e); + log.warn( + "Failed to close File stream for log4j config", e); //$NON-NLS-1$ } - - // initialize from config file - this.initializeFromConfigurationFile(this.stateMachine - .getConfigProvider().getConfigurationFile()); - - this.stateMachine.getConfigManipulator().setSignatureNote(Messages.getString("simple_config.Note_Default")); //$NON-NLS-1$ - + } + + if (inputStream != null) { try { - this.stateMachine.getConfigManipulator().saveCurrentConfiguration(); + inputStream.close(); } catch (IOException e) { - log.error( - "Failed to set local configuration signature note!", e); //$NON-NLS-1$ - throw new InitializationException( - "Failed to set local configuration signature note!", //$NON-NLS-1$ - e); - } - - allOK = true; - } finally { - if (!allOK) { - configDir.delete(); + log.warn( + "Failed to close Resource stream for log4j config", e); //$NON-NLS-1$ } } + } + + InputStream is = this.getClass().getResourceAsStream( + "/cfg/PDFASConfig.zip"); //$NON-NLS-1$ + + try { + Unzipper.unzip(is, configDir.getAbsolutePath()); + } catch (IOException e) { + log.error( + "Failed to create local configuration directory!", e); //$NON-NLS-1$ + throw new InitializationException( + "Failed to create local configuration directory!", //$NON-NLS-1$ + e); + } + + // initialize from config file + this.initializeFromConfigurationFile(this.stateMachine + .getConfigProvider().getConfigurationFile()); + + this.stateMachine.getConfigManipulator().setSignatureNote(Messages.getString("simple_config.Note_Default")); //$NON-NLS-1$ + + try { + this.stateMachine.getConfigManipulator().saveCurrentConfiguration(); + } catch (IOException e) { + log.error( + "Failed to set local configuration signature note!", e); //$NON-NLS-1$ + throw new InitializationException( + "Failed to set local configuration signature note!", //$NON-NLS-1$ + e); + } + + allOK = true; + } finally { + if (!allOK) { + configDir.delete(); + } + } + } + + @Override + public void run() { + // Read config file + try { + + File configDir = new File(this.stateMachine.getConfigProvider().getConfigurationDirectory()); + File configFile = new File(this.stateMachine.getConfigProvider().getConfigurationDirectory() + + FILE_SEPARATOR + Constants.DEFAULT_CONFIG_FILENAME); + if (!configDir.exists() || !configFile.exists()) { + log.debug("Creating configuration file"); //$NON-NLS-1$ + createConfiguration(configDir); } else { log.debug("Configuration directory exists!"); //$NON-NLS-1$ } - // Read cli arguments with for config file! + // Read cli arguments for config file first this.initializeFromArguments(this.stateMachine.getCmdArgs(), - this.configFilehandler); + this.configFileHandler); // initialize from config file this.initializeFromConfigurationFile(this.stateMachine |