You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@onami.apache.org by si...@apache.org on 2013/08/02 16:50:56 UTC

svn commit: r1509729 - /onami/sandbox/console/src/main/java/org/apache/onami/console/commands/ConsoleRunner.java

Author: simonetripodi
Date: Fri Aug  2 14:50:56 2013
New Revision: 1509729

URL: http://svn.apache.org/r1509729
Log:
onami-spi modules lazy loading makes Guice not expand variables, so let's load 'em all first and then use onami-configuration to resolve all variables

Modified:
    onami/sandbox/console/src/main/java/org/apache/onami/console/commands/ConsoleRunner.java

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=1509729&r1=1509728&r2=1509729&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 Fri Aug  2 14:50:56 2013
@@ -45,6 +45,7 @@ import org.apache.onami.console.modules.
 
 import com.google.inject.Inject;
 import com.google.inject.Injector;
+import com.google.inject.Module;
 
 @Command( name = "run" )
 public final class ConsoleRunner
@@ -84,7 +85,16 @@ public final class ConsoleRunner
 
         // setup the injector by discovering modules and commands automatically
 
-        Injector injector = createInjector( expandVariables( loadModules( artifactsClassLoader ) ),
+        // NOTE: lazy loading makes Guice not expand variables, so let's load 'em all first
+        Iterable<? extends Module> modules = loadModules( artifactsClassLoader );
+        List<Module> modulesList = new LinkedList<Module>();
+        for ( Module module : modules )
+        {
+            modulesList.add( module );
+        }
+
+        Injector injector = createInjector( expandVariables( modulesList ),
+                                            // ClassLoaderModule does not need to be expanded
                                             new ClassLoaderModule( artifactsClassLoader ) );
 
         // retrieve components needed to run the console