diff --git a/modello-core/src/main/java/org/codehaus/modello/Modello.java b/modello-core/src/main/java/org/codehaus/modello/Modello.java index 00fb71147..0572fce66 100644 --- a/modello-core/src/main/java/org/codehaus/modello/Modello.java +++ b/modello-core/src/main/java/org/codehaus/modello/Modello.java @@ -22,8 +22,6 @@ * SOFTWARE. */ -import javax.inject.Inject; - import java.io.Reader; import java.io.Writer; import java.util.Map; @@ -31,17 +29,33 @@ import org.codehaus.modello.core.ModelloCore; import org.codehaus.modello.model.Model; import org.codehaus.modello.model.ModelValidationException; +import org.codehaus.plexus.ContainerConfiguration; +import org.codehaus.plexus.DefaultContainerConfiguration; +import org.codehaus.plexus.DefaultPlexusContainer; +import org.codehaus.plexus.PlexusConstants; +import org.codehaus.plexus.PlexusContainer; /** * @author Jason van Zyl * @author Trygve Laugstøl */ public class Modello { - private final ModelloCore core; + private PlexusContainer container; + + private ModelloCore core; + + public Modello() throws ModelloException { + try { + ContainerConfiguration configuration = new DefaultContainerConfiguration(); + configuration.setAutoWiring(true); + configuration.setClassPathScanning(PlexusConstants.SCANNING_INDEX); + + container = new DefaultPlexusContainer(configuration); - @Inject - public Modello(ModelloCore core) { - this.core = core; + core = (ModelloCore) container.lookup(ModelloCore.ROLE); + } catch (Exception ex) { + throw new ModelloException("Error while starting plexus.", ex); + } } public void generate(Reader modelReader, String outputType, Map parameters) diff --git a/modello-core/src/main/java/org/codehaus/modello/ModelloCli.java b/modello-core/src/main/java/org/codehaus/modello/ModelloCli.java index 1b4cd9743..a1452c1a4 100644 --- a/modello-core/src/main/java/org/codehaus/modello/ModelloCli.java +++ b/modello-core/src/main/java/org/codehaus/modello/ModelloCli.java @@ -26,7 +26,6 @@ import java.util.HashMap; import java.util.Map; -import org.codehaus.plexus.DefaultPlexusContainer; import org.codehaus.plexus.util.StringUtils; import org.codehaus.plexus.util.xml.XmlStreamReader; @@ -40,12 +39,17 @@ public class ModelloCli { private static Map parameters; - public static void main(String[] args) throws Exception { - Modello modello = new DefaultPlexusContainer().lookup(Modello.class); + public static void main(String[] args) { + try { + Modello modello = new Modello(); - parseArgumentsFromCommandLine(args); + parseArgumentsFromCommandLine(args); - modello.generate(new XmlStreamReader(modelFile), outputType, parameters); + modello.generate(new XmlStreamReader(modelFile), outputType, parameters); + + } catch (Exception e) { + e.printStackTrace(); + } } public static void parseArgumentsFromCommandLine(String[] args) throws Exception {