Author: simonetripodi Date: Mon Jul 15 08:53:30 2013 New Revision: 1503141 URL: http://svn.apache.org/r1503141 Log: demonstrate the @Inject potentialities via the Version command, where properties are just injected and not manually discovered
Modified: onami/sandbox/console/src/main/java/org/apache/onami/console/OnamiConsole.java onami/sandbox/console/src/main/java/org/apache/onami/console/commands/Version.java Modified: onami/sandbox/console/src/main/java/org/apache/onami/console/OnamiConsole.java URL: http://svn.apache.org/viewvc/onami/sandbox/console/src/main/java/org/apache/onami/console/OnamiConsole.java?rev=1503141&r1=1503140&r2=1503141&view=diff ============================================================================== --- onami/sandbox/console/src/main/java/org/apache/onami/console/OnamiConsole.java (original) +++ onami/sandbox/console/src/main/java/org/apache/onami/console/OnamiConsole.java Mon Jul 15 08:53:30 2013 @@ -19,16 +19,14 @@ package org.apache.onami.console; * under the License. */ -import static java.lang.System.out; import static java.lang.System.getProperty; - -import org.apache.onami.console.commands.ConsoleRunner; -import org.apache.onami.console.commands.Version; - +import static java.lang.System.out; import io.airlift.command.Cli; import io.airlift.command.Help; import io.airlift.command.ParseArgumentsUnexpectedException; +import org.apache.onami.console.commands.ConsoleRunner; + public final class OnamiConsole { @@ -42,7 +40,6 @@ public final class OnamiConsole Cli.<Runnable> builder( getProperty( "app.name" ) ) .withCommand( Help.class ) .withCommand( ConsoleRunner.class ) - .withCommand( Version.class ) .withDefaultCommand( Help.class ) .build() .parse( args ) Modified: onami/sandbox/console/src/main/java/org/apache/onami/console/commands/Version.java URL: http://svn.apache.org/viewvc/onami/sandbox/console/src/main/java/org/apache/onami/console/commands/Version.java?rev=1503141&r1=1503140&r2=1503141&view=diff ============================================================================== --- onami/sandbox/console/src/main/java/org/apache/onami/console/commands/Version.java (original) +++ onami/sandbox/console/src/main/java/org/apache/onami/console/commands/Version.java Mon Jul 15 08:53:30 2013 @@ -19,38 +19,135 @@ package org.apache.onami.console.command * under the License. */ -import static java.lang.System.getProperty; -import static java.lang.System.out; import io.airlift.command.Command; +import org.apache.onami.logging.core.InjectLogger; +import org.slf4j.Logger; + +import com.google.inject.Inject; +import com.google.inject.name.Named; + @Command( name = "version", description = "Display version information." ) public final class Version implements Runnable { + @InjectLogger + private Logger logger; + + @Inject + @Named( "project.version" ) + private String projectVersion; + + @Inject + @Named( "java.version" ) + private String javaVersion; + + @Inject + @Named( "java.vendor" ) + private String javaVendor; + + @Inject + @Named( "java.home" ) + private String javaHome; + + @Inject + @Named( "user.language" ) + private String userLanguage; + + @Inject + @Named( "user.country" ) + private String userCountry; + + @Inject + @Named( "sun.jnu.encoding" ) + private String encoding; + + @Inject + @Named( "os.name" ) + private String osName; + + @Inject + @Named( "os.version" ) + private String osVersion; + + @Inject + @Named( "os.arch" ) + private String osArch; + + @Inject + @Named( "path.separator" ) + private String pathSeparathor; + + public void setProjectVersion( String projectVersion ) + { + this.projectVersion = projectVersion; + } + + public void setJavaVersion( String javaVersion ) + { + this.javaVersion = javaVersion; + } + + public void setJavaVendor( String javaVendor ) + { + this.javaVendor = javaVendor; + } + + public void setJavaHome( String javaHome ) + { + this.javaHome = javaHome; + } + + public void setUserLanguage( String userLanguage ) + { + this.userLanguage = userLanguage; + } + + public void setUserCountry( String userCountry ) + { + this.userCountry = userCountry; + } + + public void setEncoding( String encoding ) + { + this.encoding = encoding; + } + + public void setOsName( String osName ) + { + this.osName = osName; + } + + public void setOsVersion( String osVersion ) + { + this.osVersion = osVersion; + } + + public void setOsArch( String osArch ) + { + this.osArch = osArch; + } + + public void setPathSeparathor( String pathSeparathor ) + { + this.pathSeparathor = pathSeparathor; + } + public void run() { - out.printf( "Apache Onami-Console %s%n", - getProperty( "project.version" ) ); - out.printf( "Java version: %s, vendor: %s%n", - getProperty( "java.version" ), - getProperty( "java.vendor" ) ); - out.printf( "Java home: %s%n", getProperty( "java.home" ) ); - out.printf( "Default locale: %s_%s, platform encoding: %s%n", - getProperty( "user.language" ), - getProperty( "user.country" ), - getProperty( "sun.jnu.encoding" ) ); - out.printf( "OS name: \"%s\", version: \"%s\", arch: \"%s\", family: \"%s\"%n", - getProperty( "os.name" ), - getProperty( "os.version" ), - getProperty( "os.arch" ), - getOsFamily() ); + logger.info( "Apache Onami Console {}", projectVersion ); + logger.info( "Java version: {}, vendor: {}", javaVersion, javaVendor ); + logger.info( "Java home: {}", javaHome ); + logger.info( "Default locale: {}_{}, platform encoding: {}", + userLanguage, userCountry, encoding ); + logger.info( "OS name: \"{}\", version: \"{}\", arch: \"{}\", family: \"{}\"", + osName, osVersion, osArch, getOsFamily() ); } - private static final String getOsFamily() + private String getOsFamily() { - String osName = getProperty( "os.name" ).toLowerCase(); - String pathSep = getProperty( "path.separator" ); + String osName = this.osName.toLowerCase(); if ( osName.indexOf( "windows" ) != -1 ) { @@ -68,7 +165,7 @@ public final class Version { return "os/400"; } - else if ( pathSep.equals( ";" ) ) + else if ( pathSeparathor.equals( ";" ) ) { return "dos"; } @@ -88,7 +185,7 @@ public final class Version { return "openvms"; } - else if ( pathSep.equals( ":" ) ) + else if ( pathSeparathor.equals( ":" ) ) { return "unix"; }