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();