Author: simonetripodi Date: Wed Jul 17 12:34:53 2013 New Revision: 1504099 URL: http://svn.apache.org/r1504099 Log: there's no need for a textual configuration
Removed: onami/sandbox/console/src/main/java/org/apache/onami/console/modules/descriptor/ onami/sandbox/console/src/main/mdo/ Modified: onami/sandbox/console/src/main/java/org/apache/onami/console/commands/ConsoleRunner.java onami/sandbox/console/src/main/java/org/apache/onami/console/modules/config/DefaultConfigurationModule.java onami/sandbox/console/src/main/resources/META-INF/services/com.google.inject.Module Modified: onami/sandbox/console/src/main/java/org/apache/onami/console/commands/ConsoleRunner.java URL: http://svn.apache.org/viewvc/onami/sandbox/console/src/main/java/org/apache/onami/console/commands/ConsoleRunner.java?rev=1504099&r1=1504098&r2=1504099&view=diff ============================================================================== --- onami/sandbox/console/src/main/java/org/apache/onami/console/commands/ConsoleRunner.java (original) +++ onami/sandbox/console/src/main/java/org/apache/onami/console/commands/ConsoleRunner.java Wed Jul 17 12:34:53 2013 @@ -19,10 +19,9 @@ package org.apache.onami.console.command * under the License. */ +import static java.lang.Integer.MAX_VALUE; import static com.google.inject.Guice.createInjector; -import static java.lang.String.format; import static java.lang.System.err; -import static java.lang.System.getProperty; import static java.lang.System.setProperty; import static org.apache.onami.configuration.OnamiVariablesExpander.expandVariables; import static org.apache.onami.spi.modules.GuiceServiceLoader.loadModules; @@ -34,23 +33,14 @@ import io.airlift.command.Help; import io.airlift.command.Option; import io.airlift.command.ParseArgumentsUnexpectedException; -import java.io.Closeable; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import java.net.URLClassLoader; +import java.util.LinkedList; +import java.util.List; import jline.console.ConsoleReader; -import org.apache.onami.console.descriptor.ConsoleConfiguration; -import org.apache.onami.console.descriptor.io.jackson.OnamiConsoleConfigurationJacksonReader; -import org.apache.onami.console.descriptor.io.snakeyaml.OnamiConsoleConfigurationSnakeYamlReader; -import org.apache.onami.console.descriptor.io.xpp3.OnamiConsoleConfigurationXpp3Reader; -import org.apache.onami.console.modules.config.DefaultConfigurationModule; -import org.codehaus.plexus.util.xml.pull.XmlPullParserException; import org.slf4j.Logger; import ch.qos.logback.classic.LoggerContext; @@ -77,6 +67,9 @@ public final class ConsoleRunner @Option( name = { "-v", "--verbose" }, description = "Produce execution debug output." ) private boolean verbose; + @Option( name = { "-a", "--artifacts" }, description = "Additional artifacts to customize the console.", arity = MAX_VALUE ) + private List<String> artifacts = new LinkedList<String>(); + @Inject private ConsoleReader consoleReader; @@ -89,27 +82,28 @@ public final class ConsoleRunner // read the console configuration - ConsoleConfiguration consoleConfiguration = readConsoleConfiguration(); - - // build the console classloader - ClassLoader artifactsClassLoader; - if ( !consoleConfiguration.getArtifacts().isEmpty() ) + if ( !artifacts.isEmpty() ) { - URL[] urls = new URL[consoleConfiguration.getArtifacts().size()]; + URL[] urls = new URL[artifacts.size()]; for ( int i = 0; i < urls.length; i++ ) { - String artifactUrl = consoleConfiguration.getArtifacts().get( i ); + String artifact = artifacts.get( i ); + + logger.debug( "Adding artifact {}...", artifact ); + try { - urls[i] = new URL( artifactUrl ); + urls[i] = new URL( artifact ); + + logger.debug( "Artifact {} added for class loading building.", artifact ); } catch ( MalformedURLException e ) { logger.warn( "Artifact {} can not be loaded: {} - It will be ignored", - artifactUrl, e.getMessage() ); + artifact, e.getMessage() ); } } @@ -122,8 +116,7 @@ public final class ConsoleRunner // setup the injector by discovering modules automatically - Injector injector = createInjector( expandVariables( loadModules( artifactsClassLoader ) ), - new DefaultConfigurationModule( consoleConfiguration.getProperties() ) ); + Injector injector = createInjector( expandVariables( loadModules( artifactsClassLoader ) ) ); // retrieve components needed to run the console @@ -226,125 +219,4 @@ public final class ConsoleRunner } } - private ConsoleConfiguration readConsoleConfiguration() - { - File userDir = new File( getProperty( "user.dir" ) ); - File ocrXmlDescriptor = new File( userDir, "ocr.xml" ); - File ocrJsonDescriptor = new File( userDir, "ocr.json" ); - File ocrYamlDescriptor = new File( userDir, "ocr.yaml" ); - - ConsoleConfiguration console = null; - FileInputStream fis = null; - - if (ocrXmlDescriptor.exists()) - { - logger.info( "Reading XML configuration {}...", ocrXmlDescriptor ); - - try - { - fis = new FileInputStream( ocrXmlDescriptor ); - console = new OnamiConsoleConfigurationXpp3Reader().read( fis ); - - logger.info( "XML configuration {} read", ocrXmlDescriptor ); - } - catch ( FileNotFoundException e ) - { - // cannot happen - } - catch ( IOException e ) - { - throw newRuntimeException( "An error occurred while reading %s file: %s", - ocrXmlDescriptor, e.getMessage() ); - } - catch ( XmlPullParserException e ) - { - throw newRuntimeException( "Configuration file %s does not match the expected input: %s", - ocrXmlDescriptor, e.getMessage() ); - } - finally - { - closeQuietly( fis ); - } - } - else if ( ocrJsonDescriptor.exists() ) - { - logger.info( "Reading JSON configuration {}...", ocrJsonDescriptor ); - - try - { - fis = new FileInputStream( ocrJsonDescriptor ); - console = new OnamiConsoleConfigurationJacksonReader().read( fis ); - - logger.info( "JSON configuration {} read", ocrJsonDescriptor ); - } - catch ( FileNotFoundException e ) - { - // cannot happen - } - catch ( IOException e ) - { - throw newRuntimeException( "An error occurred while reading %s file: %s", - ocrJsonDescriptor, e.getMessage() ); - } - finally - { - closeQuietly( fis ); - } - } - else if ( ocrYamlDescriptor.exists() ) - { - logger.info( "Reading YAML configuration {}...", ocrYamlDescriptor ); - - try - { - fis = new FileInputStream( ocrYamlDescriptor ); - console = new OnamiConsoleConfigurationSnakeYamlReader().read( fis ); - - logger.info( "YAML configuration {} read", ocrYamlDescriptor ); - } - catch ( FileNotFoundException e ) - { - // cannot happen - } - catch ( IOException e ) - { - throw newRuntimeException( "An error occurred while reading %s file: %s", - ocrYamlDescriptor, e.getMessage() ); - } - finally - { - closeQuietly( fis ); - } - } - else - { - logger.info( "No ocr.xml/ocr.json/ocr.yaml configuration file found in {}, creating default console.", - userDir); - - console = new ConsoleConfiguration(); - } - - return console; - } - - private static RuntimeException newRuntimeException( String messageFormat, Object...args ) - { - return new RuntimeException( format( messageFormat, args ) ); - } - - private static void closeQuietly( Closeable closeable ) - { - if ( closeable != null ) - { - try - { - closeable.close(); - } - catch ( IOException e ) - { - // swallow it - } - } - } - } Modified: onami/sandbox/console/src/main/java/org/apache/onami/console/modules/config/DefaultConfigurationModule.java URL: http://svn.apache.org/viewvc/onami/sandbox/console/src/main/java/org/apache/onami/console/modules/config/DefaultConfigurationModule.java?rev=1504099&r1=1504098&r2=1504099&view=diff ============================================================================== --- onami/sandbox/console/src/main/java/org/apache/onami/console/modules/config/DefaultConfigurationModule.java (original) +++ onami/sandbox/console/src/main/java/org/apache/onami/console/modules/config/DefaultConfigurationModule.java Wed Jul 17 12:34:53 2013 @@ -23,7 +23,6 @@ import static com.google.inject.Scopes.S import static com.google.inject.name.Names.named; import java.io.File; -import java.util.Properties; import org.apache.onami.configuration.ConfigurationModule; @@ -31,14 +30,6 @@ public final class DefaultConfigurationM extends ConfigurationModule { - private final Properties consoleConfiguration; - - public DefaultConfigurationModule( Properties consoleConfiguration ) - { - this.consoleConfiguration = consoleConfiguration; - } - - @Override protected void bindConfigurations() { @@ -54,9 +45,6 @@ public final class DefaultConfigurationM // OCR directories bind( File.class ).annotatedWith( named( "ocr.dir" ) ).toProvider( OnamiConsoleRunnerDirProvider.class ).in( SINGLETON ); bind( File.class ).annotatedWith( named( "ocr.repo.dir" ) ).toProvider( OnamiConsoleRepoDirProvider.class ).in( SINGLETON ); - - // configuration - bindProperties( consoleConfiguration ); } } Modified: onami/sandbox/console/src/main/resources/META-INF/services/com.google.inject.Module URL: http://svn.apache.org/viewvc/onami/sandbox/console/src/main/resources/META-INF/services/com.google.inject.Module?rev=1504099&r1=1504098&r2=1504099&view=diff ============================================================================== --- onami/sandbox/console/src/main/resources/META-INF/services/com.google.inject.Module (original) +++ onami/sandbox/console/src/main/resources/META-INF/services/com.google.inject.Module Wed Jul 17 12:34:53 2013 @@ -18,8 +18,8 @@ # required startup modules org.apache.onami.console.modules.cli.CliParserModule +org.apache.onami.console.modules.config.DefaultConfigurationModule org.apache.onami.console.modules.console.ConsoleReaderModule -org.apache.onami.console.modules.descriptor.IoDescriptorsModule # 3rd parts modules