Author: simonetripodi
Date: Mon Jul 15 09:29:36 2013
New Revision: 1503150

URL: http://svn.apache.org/r1503150
Log:
again, demonstrate the @Inject potentialities via the Version command, where 
properties injection are bound even from jar properties

Added:
    onami/sandbox/console/src/main/resources/META-INF/maven/
    onami/sandbox/console/src/main/resources/META-INF/maven/org.apache.onami/
    
onami/sandbox/console/src/main/resources/META-INF/maven/org.apache.onami/org.apache.onami.console/
    
onami/sandbox/console/src/main/resources/META-INF/maven/org.apache.onami/org.apache.onami.console/pom.properties
   (with props)
Removed:
    
onami/sandbox/console/src/main/resources/META-INF/services/java.lang.Runnable
Modified:
    onami/sandbox/console/pom.xml
    
onami/sandbox/console/src/main/java/org/apache/onami/console/commands/Config.java
    
onami/sandbox/console/src/main/java/org/apache/onami/console/commands/Exit.java
    
onami/sandbox/console/src/main/java/org/apache/onami/console/commands/Version.java
    
onami/sandbox/console/src/main/java/org/apache/onami/console/modules/BasicConfigurationModule.java

Modified: onami/sandbox/console/pom.xml
URL: 
http://svn.apache.org/viewvc/onami/sandbox/console/pom.xml?rev=1503150&r1=1503149&r2=1503150&view=diff
==============================================================================
--- onami/sandbox/console/pom.xml (original)
+++ onami/sandbox/console/pom.xml Mon Jul 15 09:29:36 2013
@@ -164,6 +164,14 @@
       <version>3.0.10</version>
     </dependency>
 
+    <!-- generates META-INF/services files -->
+    <dependency>
+      <groupId>org.kohsuke.metainf-services</groupId>
+      <artifactId>metainf-services</artifactId>
+      <version>1.5</version>
+      <scope>provided</scope>
+    </dependency>
+
     <!--
      | Test dependencies
     -->
@@ -193,6 +201,18 @@
 
       <resource>
         <directory>${basedir}/src/main/resources</directory>
+        <includes>
+          <include>logback-config.xml</include>
+          <include>META-INF/services/**</include>
+        </includes>
+      </resource>
+
+      <resource>
+        <directory>${basedir}/src/main/resources</directory>
+        <filtering>true</filtering>
+        <includes>
+          <include>META-INF/maven/**</include>
+        </includes>
       </resource>
     </resources>
 
@@ -248,7 +268,7 @@
           </programs>
           <repositoryLayout>flat</repositoryLayout>
           <repositoryName>lib</repositoryName>
-          <extraJvmArguments>-server 
-Dproject.artifactId=${project.artifactId} -Dproject.version=${project.version} 
-Xms500m -Xmx500m -XX:PermSize=128m -XX:-UseGCOverheadLimit</extraJvmArguments>
+          <extraJvmArguments>-server -Xms500m -Xmx500m -XX:PermSize=128m 
-XX:-UseGCOverheadLimit</extraJvmArguments>
           
<licenseHeaderFile>${basedir}/src/main/assembly/license-header.txt</licenseHeaderFile>
         </configuration>
       </plugin>

Modified: 
onami/sandbox/console/src/main/java/org/apache/onami/console/commands/Config.java
URL: 
http://svn.apache.org/viewvc/onami/sandbox/console/src/main/java/org/apache/onami/console/commands/Config.java?rev=1503150&r1=1503149&r2=1503150&view=diff
==============================================================================
--- 
onami/sandbox/console/src/main/java/org/apache/onami/console/commands/Config.java
 (original)
+++ 
onami/sandbox/console/src/main/java/org/apache/onami/console/commands/Config.java
 Mon Jul 15 09:29:36 2013
@@ -24,6 +24,7 @@ import io.airlift.command.Command;
 import java.util.Map.Entry;
 
 import org.apache.onami.logging.core.InjectLogger;
+import org.kohsuke.MetaInfServices;
 import org.slf4j.Logger;
 
 import com.google.inject.Binding;
@@ -33,6 +34,7 @@ import com.google.inject.Key;
 import com.google.inject.TypeLiteral;
 import com.google.inject.name.Named;
 
+@MetaInfServices
 @Command( name = "config", description = "Print configured variables." )
 public final class Config
     implements Runnable

Modified: 
onami/sandbox/console/src/main/java/org/apache/onami/console/commands/Exit.java
URL: 
http://svn.apache.org/viewvc/onami/sandbox/console/src/main/java/org/apache/onami/console/commands/Exit.java?rev=1503150&r1=1503149&r2=1503150&view=diff
==============================================================================
--- 
onami/sandbox/console/src/main/java/org/apache/onami/console/commands/Exit.java 
(original)
+++ 
onami/sandbox/console/src/main/java/org/apache/onami/console/commands/Exit.java 
Mon Jul 15 09:29:36 2013
@@ -20,8 +20,12 @@ package org.apache.onami.console.command
  */
 
 import static java.lang.System.exit;
+
+import org.kohsuke.MetaInfServices;
+
 import io.airlift.command.Command;
 
+@MetaInfServices
 @Command( name = "exit", description = "Terminates the program execution." )
 public final class Exit
     implements Runnable

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=1503150&r1=1503149&r2=1503150&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 09:29:36 2013
@@ -19,14 +19,18 @@ package org.apache.onami.console.command
  * under the License.
  */
 
+import java.util.Locale;
+
 import io.airlift.command.Command;
 
 import org.apache.onami.logging.core.InjectLogger;
+import org.kohsuke.MetaInfServices;
 import org.slf4j.Logger;
 
 import com.google.inject.Inject;
 import com.google.inject.name.Named;
 
+@MetaInfServices
 @Command( name = "version", description = "Display version information." )
 public final class Version
     implements Runnable
@@ -36,10 +40,18 @@ public final class Version
     private Logger logger;
 
     @Inject
-    @Named( "project.version" )
+    @Named( "project.name" )
+    private String projectName;
+
+    @Inject
+    @Named( "version" )
     private String projectVersion;
 
     @Inject
+    @Named( "implementation.build" )
+    private String implementationBuild;
+
+    @Inject
     @Named( "java.version" )
     private String javaVersion;
 
@@ -79,11 +91,21 @@ public final class Version
     @Named( "path.separator" )
     private String pathSeparathor;
 
+    public void setProjectName( String projectName )
+    {
+        this.projectName = projectName;
+    }
+
     public void setProjectVersion( String projectVersion )
     {
         this.projectVersion = projectVersion;
     }
 
+    public void setImplementationBuild( String implementationBuild )
+    {
+        this.implementationBuild = implementationBuild;
+    }
+
     public void setJavaVersion( String javaVersion )
     {
         this.javaVersion = javaVersion;
@@ -136,7 +158,7 @@ public final class Version
 
     public void run()
     {
-        logger.info( "Apache Onami Console {}", projectVersion );
+        logger.info( "{} {} (r{})", projectName, projectVersion, 
implementationBuild );
         logger.info( "Java version: {}, vendor: {}", javaVersion, javaVendor );
         logger.info( "Java home: {}", javaHome );
         logger.info( "Default locale: {}_{}, platform encoding: {}",
@@ -147,7 +169,7 @@ public final class Version
 
     private String getOsFamily()
     {
-        String osName = this.osName.toLowerCase();
+        String osName = this.osName.toLowerCase( Locale.ENGLISH );
 
         if ( osName.indexOf( "windows" ) != -1 )
         {

Modified: 
onami/sandbox/console/src/main/java/org/apache/onami/console/modules/BasicConfigurationModule.java
URL: 
http://svn.apache.org/viewvc/onami/sandbox/console/src/main/java/org/apache/onami/console/modules/BasicConfigurationModule.java?rev=1503150&r1=1503149&r2=1503150&view=diff
==============================================================================
--- 
onami/sandbox/console/src/main/java/org/apache/onami/console/modules/BasicConfigurationModule.java
 (original)
+++ 
onami/sandbox/console/src/main/java/org/apache/onami/console/modules/BasicConfigurationModule.java
 Mon Jul 15 09:29:36 2013
@@ -30,6 +30,8 @@ public final class BasicConfigurationMod
     {
         bindEnvironmentVariables();
         bindSystemProperties();
+
+        bindProperties( getClass().getResource( 
"/META-INF/maven/org.apache.onami/org.apache.onami.console/pom.properties" ) );
     }
 
 }

Added: 
onami/sandbox/console/src/main/resources/META-INF/maven/org.apache.onami/org.apache.onami.console/pom.properties
URL: 
http://svn.apache.org/viewvc/onami/sandbox/console/src/main/resources/META-INF/maven/org.apache.onami/org.apache.onami.console/pom.properties?rev=1503150&view=auto
==============================================================================
--- 
onami/sandbox/console/src/main/resources/META-INF/maven/org.apache.onami/org.apache.onami.console/pom.properties
 (added)
+++ 
onami/sandbox/console/src/main/resources/META-INF/maven/org.apache.onami/org.apache.onami.console/pom.properties
 Mon Jul 15 09:29:36 2013
@@ -0,0 +1,25 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+version=${project.version}
+groupId=${project.groupId}
+artifactId=${project.artifactId}
+project.name=${project.name}
+project.description=${project.description}
+implementation.build=${implementation.build}

Propchange: 
onami/sandbox/console/src/main/resources/META-INF/maven/org.apache.onami/org.apache.onami.console/pom.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
onami/sandbox/console/src/main/resources/META-INF/maven/org.apache.onami/org.apache.onami.console/pom.properties
------------------------------------------------------------------------------
    svn:keywords = Date Revision Author HeadURL Id


Reply via email to