From 3eb75fcd178495e1462e871b92b6509807f0597e Mon Sep 17 00:00:00 2001 From: Jihoon Song Date: Mon, 4 Nov 2013 16:21:09 +0900 Subject: [PATCH] CLI: Add an uncaught exception handling policy 'web-signing' module doesn't stop process when exception occurred. This cause is that CLI policy don't have an uncaught exception handler. So, this policy is added. Change-Id: I03021e09a3285b802b94d0fd636b923f7624cc5c Signed-off-by: Jihoon Song --- .../org/tizen/cli/exec/PolicyRegistryFactory.java | 163 +++++++++++---------- .../src/org/tizen/cli/exec/sign/Main.java | 3 + 2 files changed, 88 insertions(+), 78 deletions(-) diff --git a/org.tizen.cli/src/org/tizen/cli/exec/PolicyRegistryFactory.java b/org.tizen.cli/src/org/tizen/cli/exec/PolicyRegistryFactory.java index 8f70b31..d3c2e24 100644 --- a/org.tizen.cli/src/org/tizen/cli/exec/PolicyRegistryFactory.java +++ b/org.tizen.cli/src/org/tizen/cli/exec/PolicyRegistryFactory.java @@ -26,6 +26,7 @@ package org.tizen.cli.exec; import static org.tizen.common.core.command.Policy.EXIST_OUT_FILE; import static org.tizen.common.core.command.Policy.NONEXIST_IN_FILE; +import static org.tizen.common.core.command.Policy.EXCEPTION_UNHANDLED; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -36,6 +37,7 @@ import org.tizen.common.core.command.policy.FilePolicy; import org.tizen.common.core.command.policy.MessagePolicy; import org.tizen.common.core.command.policy.OptionPolicy; import org.tizen.common.core.command.policy.PolicyRegistry; +import org.tizen.common.core.command.policy.UncaughtExceptionHandlingPolicy; import org.tizen.common.core.command.prompter.FileHandlingOption; /** @@ -52,85 +54,90 @@ public class PolicyRegistryFactory implements Factory { - /** - * Logger for this instance - */ - protected final Logger logger = - LoggerFactory.getLogger( PolicyRegistryFactory.class ); - - /** - *

- * CLIPolicy. - * - * {@link Policy} when command line interface - *

- * - * @author BonYong Lee{@literal } (S-Core) - * - * @see PolicyRegistry, {@link Policy} - */ - class CLIPolicy - extends AbstractPolicy - { - /** - *

- * Constructor with name - *

- * - * @param name policy name - */ - public CLIPolicy( final String name ) - { - super( name ); - } + /** + * Logger for this instance + */ + protected final Logger logger = + LoggerFactory.getLogger( PolicyRegistryFactory.class ); + + /** + *

+ * CLIPolicy. + * + * {@link Policy} when command line interface + *

+ * + * @author BonYong Lee{@literal } (S-Core) + * + * @see PolicyRegistry, {@link Policy} + */ + class CLIPolicy + extends AbstractPolicy + { + /** + *

+ * Constructor with name + *

+ * + * @param name policy name + */ + public CLIPolicy( final String name ) + { + super( name ); + } - /* (non-Javadoc) - * @see org.tizen.common.Adaptable#adapt(java.lang.Class) - */ - @Override - @SuppressWarnings("unchecked") - public - T - adapt( - final Class clazz - ) - { - if ( clazz.isAssignableFrom( FilePolicy.class ) ) - { - return (T) FilePolicy.STOP_PROCESS; - } - else if ( clazz.isAssignableFrom( MessagePolicy.class) ) - { - return (T) MessagePolicy.PROMPTER; - } - return null; - } + /* (non-Javadoc) + * @see org.tizen.common.Adaptable#adapt(java.lang.Class) + */ + @Override + @SuppressWarnings("unchecked") + public + T + adapt( + final Class clazz + ) + { + if ( clazz.isAssignableFrom( FilePolicy.class ) ) + { + return (T) FilePolicy.STOP_PROCESS; + } + else if ( clazz.isAssignableFrom( MessagePolicy.class) ) + { + return (T) MessagePolicy.PROMPTER; + } + else if ( clazz.isAssignableFrom( UncaughtExceptionHandlingPolicy.class ) ) + { + return (T) UncaughtExceptionHandlingPolicy.INSTANCE; + } + return null; + } - } - /* (non-Javadoc) - * @see org.tizen.common.Factory#create() - */ - @Override - public - PolicyRegistry - create() - { - final PolicyRegistry registry = new PolicyRegistry(); - - registry.register( new CLIPolicy( EXIST_OUT_FILE ) ); - registry.register( new CLIPolicy( NONEXIST_IN_FILE ) ); - - CLIPolicy existFileWhenCopy = new CLIPolicy(Policy.EXIST_FILE_WHEN_COPY) { - - @SuppressWarnings("unchecked") - @Override - public T adapt(Class clazz) { - return (T)(new OptionPolicy(FileHandlingOption.OVERWRITE, FileHandlingOption.IGNORE, FileHandlingOption.OVERWRITE_ALL, FileHandlingOption.IGNORE_ALL, FileHandlingOption.CANCEL)); - } - }; - - registry.register(existFileWhenCopy); - return registry; - } + } + /* (non-Javadoc) + * @see org.tizen.common.Factory#create() + */ + @Override + public + PolicyRegistry + create() + { + final PolicyRegistry registry = new PolicyRegistry(); + + registry.register( new CLIPolicy( EXIST_OUT_FILE ) ); + registry.register( new CLIPolicy( NONEXIST_IN_FILE ) ); + registry.register( new CLIPolicy( EXCEPTION_UNHANDLED ) ); + + CLIPolicy existFileWhenCopy = new CLIPolicy(Policy.EXIST_FILE_WHEN_COPY) { + + @SuppressWarnings("unchecked") + @Override + public T adapt(Class clazz) { + return (T)(new OptionPolicy(FileHandlingOption.OVERWRITE, FileHandlingOption.IGNORE, FileHandlingOption.OVERWRITE_ALL, FileHandlingOption.IGNORE_ALL, FileHandlingOption.CANCEL)); + } + }; + + registry.register(existFileWhenCopy); + return registry; + } } diff --git a/org.tizen.cli/src/org/tizen/cli/exec/sign/Main.java b/org.tizen.cli/src/org/tizen/cli/exec/sign/Main.java index c57f384..59f41f1 100644 --- a/org.tizen.cli/src/org/tizen/cli/exec/sign/Main.java +++ b/org.tizen.cli/src/org/tizen/cli/exec/sign/Main.java @@ -249,6 +249,7 @@ extends AbstractLauncher if ( null == profilesFilePath ) { getExecutionContext().getPrompter().error( "Profiles file not found. Try to specify profiles path using -p option or environment variable cli.home" ); + exit( 1 ); return ; } profilesFilePath = convertPath( profilesFilePath ); @@ -256,6 +257,7 @@ extends AbstractLauncher // preload profile XML for convert boolean bSuccess = tryConvert( cmdLine, profilesFilePath ); if ( ! bSuccess ) { + exit( 1 ); return; } @@ -268,6 +270,7 @@ extends AbstractLauncher if ( profile == null ) { getPrompter().error( "No Signing profile( " + profileName + " ) item in " + profilesFilePath ); + exit( 1 ); return ; } -- 2.7.4