Author: simonetripodi
Date: Wed Jul 17 13:04:29 2013
New Revision: 1504110

URL: http://svn.apache.org/r1504110
Log:
tweak the classloader in order to load additional artifacts in the system

Added:
    
onami/sandbox/console/src/main/java/org/apache/onami/console/modules/classloader/
    
onami/sandbox/console/src/main/java/org/apache/onami/console/modules/classloader/ClassLoaderModule.java
   (with props)
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/cli/CliParserProvider.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=1504110&r1=1504109&r2=1504110&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 13:04:29 2013
@@ -19,7 +19,6 @@ 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.System.err;
 import static java.lang.System.setProperty;
@@ -41,6 +40,7 @@ import java.util.List;
 
 import jline.console.ConsoleReader;
 
+import org.apache.onami.console.modules.classloader.ClassLoaderModule;
 import org.slf4j.Logger;
 
 import ch.qos.logback.classic.LoggerContext;
@@ -67,7 +67,7 @@ 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 )
+    @Option( name = { "-a", "--artifacts" }, description = "Additional 
artifacts to customize the console." )
     private List<String> artifacts = new LinkedList<String>();
 
     @Inject
@@ -116,7 +116,8 @@ public final class ConsoleRunner
 
         // setup the injector by discovering modules automatically
 
-        Injector injector = createInjector( expandVariables( loadModules( 
artifactsClassLoader ) ) );
+        Injector injector = createInjector( expandVariables( loadModules( 
artifactsClassLoader ) ),
+                                            new ClassLoaderModule( 
artifactsClassLoader ) );
 
         // retrieve components needed to run the console
 

Added: 
onami/sandbox/console/src/main/java/org/apache/onami/console/modules/classloader/ClassLoaderModule.java
URL: 
http://svn.apache.org/viewvc/onami/sandbox/console/src/main/java/org/apache/onami/console/modules/classloader/ClassLoaderModule.java?rev=1504110&view=auto
==============================================================================
--- 
onami/sandbox/console/src/main/java/org/apache/onami/console/modules/classloader/ClassLoaderModule.java
 (added)
+++ 
onami/sandbox/console/src/main/java/org/apache/onami/console/modules/classloader/ClassLoaderModule.java
 Wed Jul 17 13:04:29 2013
@@ -0,0 +1,41 @@
+package org.apache.onami.console.modules.classloader;
+
+/*
+ * 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.
+ */
+
+import com.google.inject.AbstractModule;
+
+public final class ClassLoaderModule
+    extends AbstractModule
+{
+
+    private final ClassLoader classLoader;
+
+    public ClassLoaderModule( ClassLoader classLoader )
+    {
+        this.classLoader = classLoader;
+    }
+
+    @Override
+    protected void configure()
+    {
+        bind( ClassLoader.class ).toInstance( classLoader );
+    }
+
+}

Propchange: 
onami/sandbox/console/src/main/java/org/apache/onami/console/modules/classloader/ClassLoaderModule.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
onami/sandbox/console/src/main/java/org/apache/onami/console/modules/classloader/ClassLoaderModule.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: 
onami/sandbox/console/src/main/java/org/apache/onami/console/modules/classloader/ClassLoaderModule.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: 
onami/sandbox/console/src/main/java/org/apache/onami/console/modules/cli/CliParserProvider.java
URL: 
http://svn.apache.org/viewvc/onami/sandbox/console/src/main/java/org/apache/onami/console/modules/cli/CliParserProvider.java?rev=1504110&r1=1504109&r2=1504110&view=diff
==============================================================================
--- 
onami/sandbox/console/src/main/java/org/apache/onami/console/modules/cli/CliParserProvider.java
 (original)
+++ 
onami/sandbox/console/src/main/java/org/apache/onami/console/modules/cli/CliParserProvider.java
 Wed Jul 17 13:04:29 2013
@@ -35,10 +35,13 @@ public final class CliParserProvider
     @Named( "app.name" )
     private String applicationName;
 
+    @Inject
+    private ClassLoader classLoader;
+
     public Cli<Runnable> get()
     {
         return Cli.<Runnable> builder( applicationName )
-                             .withCommands( load( Runnable.class ) )
+                             .withCommands( load( Runnable.class, classLoader 
) )
                              .withCommand( Help.class )
                              .withDefaultCommand( Help.class )
                              .build();


Reply via email to