[CVS nano] Pico-refactoring: Merged Stoppable into Startable.
Aslak Hellesoy <rinkrank-yCVjj/[email protected]> Wed, 28 Jan 2004 16:56:48 -0600
| Newsgroups | gmane.comp.java.nanocontainer.cvs |
|---|---|
| Message-ID | <[email protected]> |
Commit in nano/src on MAIN
java/org/nanocontainer/Main.java +19 -11 1.7 -> 1.8
/XmlCompositionNanoContainer.java +2 -2 1.6 -> 1.7
/JavaScriptCompositionNanoContainer.java -66 1.6 removed
/JythonCompositionNanoContainer.java -70 1.4 removed
test/org/nanocontainer/BespokeNanoRhinoScriptable.java -38 1.7 removed
/BogusNanoRhinoScriptable.java -25 1.5 removed
+21 -212
4 removed + 2 modified, total 6 files
Pico-refactoring: Merged Stoppable into Startable.
----------
nano /src /java /org /nanocontainer
Main.java 1.7 -> 1.8
diff -u -r1.7 -r1.8
--- Main.java 25 Jan 2004 15:39:43 -0000 1.7
+++ Main.java 28 Jan 2004 22:56:48 -0000 1.8
@@ -11,11 +11,12 @@
import org.picocontainer.defaults.ObjectReference;
import org.picocontainer.defaults.SimpleReference;
-import org.picoextras.integrationkit.ContainerAssembler;
+import org.picoextras.integrationkit.ContainerComposer;
import org.picoextras.integrationkit.ContainerBuilder;
-import org.picoextras.script.jython.JythonContainerAssembler;
-import org.picoextras.script.rhino.JavascriptContainerAssembler;
+import org.picoextras.integrationkit.DefaultLifecycleContainerBuilder;
+import org.picoextras.script.rhino.JavascriptContainerBuilder;
import org.picoextras.script.xml.XMLContainerBuilder;
+import org.picoextras.script.jython.JythonContainerBuilder;
import org.realityforge.cli.CLArgsParser;
import org.realityforge.cli.CLOption;
import org.realityforge.cli.CLOptionDescriptor;
@@ -36,9 +37,9 @@
private static final Map extensionToAssemblerMap = new HashMap();
static {
- extensionToAssemblerMap.put(".js", JavascriptContainerAssembler.class);
+ extensionToAssemblerMap.put(".js", JavascriptContainerBuilder.class);
extensionToAssemblerMap.put(".xml", XMLContainerBuilder.class);
- extensionToAssemblerMap.put(".py", JythonContainerAssembler.class);
+ extensionToAssemblerMap.put(".py", JythonContainerBuilder.class);
}
private static final CLOptionDescriptor[] OPTIONS = new CLOptionDescriptor[]
@@ -62,7 +63,7 @@
};
- public static void main(String[] args) throws IllegalAccessException, InstantiationException {
+ public static void main(String[] args) throws Exception, InstantiationException {
List options = getOptions(args);
String monitor = "";
@@ -118,18 +119,18 @@
but at a much higher level of abstraction. It would be more reusable, since it would enable monitoring
outside the scope of nano. It could be useful in e.g. WebWork or other environments.
- I think it should be up to the ContainerBuilder instances (in integrationkit) to decide what kind of
+ I think it should be up to the ContainerComposer instances (in integrationkit) to decide what kind of
monitor/InvocationInterceptor to use.
AH
*/
- private static void buildAndStartContainer(String composition, NanoContainerMonitor nanoContainerMonitor) throws IllegalAccessException, InstantiationException {
+ private static void buildAndStartContainer(String composition, NanoContainerMonitor nanoContainerMonitor) throws Exception, InstantiationException {
final String extension = composition.substring(composition.indexOf("."));
Class containerAssemblerClass = (Class) extensionToAssemblerMap.get(extension);
// This won't work. They all need different ctor parameters. We should use pico itself to assemble this!!
- ContainerAssembler ca = (ContainerAssembler) containerAssemblerClass.newInstance();
- final ContainerBuilder cb = new org.picoextras.integrationkit.DefaultLifecycleContainerBuilder(ca);
+ ContainerComposer ca = (ContainerComposer) containerAssemblerClass.newInstance();
+ final ContainerBuilder cb = new DefaultLifecycleContainerBuilder(null);
final ObjectReference containerRef = new SimpleReference();
@@ -139,7 +140,14 @@
// add a shutdown hook that will tell the builder to kill it.
Runnable shutdownHook = new Runnable() {
public void run() {
- cb.killContainer(containerRef);
+ System.out.println("Shutting Down NanoContainer");
+ try {
+ cb.killContainer(containerRef);
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ System.out.println("Exiting VM");
+ }
}
};
Runtime.getRuntime().addShutdownHook(new Thread(shutdownHook));
----------
nano /src /java /org /nanocontainer
XmlCompositionNanoContainer.java 1.6 -> 1.7
diff -u -r1.6 -r1.7
--- XmlCompositionNanoContainer.java 25 Jan 2004 15:39:43 -0000 1.6
+++ XmlCompositionNanoContainer.java 28 Jan 2004 22:56:48 -0000 1.7
@@ -14,9 +14,9 @@
* @author Aslak Hellesøy
* @author Paul Hammant
* @author Ward Cunningham
- * @version $Revision: 1.6 $
+ * @version $Revision: 1.7 $
* @deprecated To replace with a NanoContainer instance that is given a
- * {@link XMLContainerBuilder} instance in its ctor.
+ * {@link XMLContainerBuilder} instance in its ctor.
*/
public class XmlCompositionNanoContainer /*extends NanoContainer*/ {
----------
nano /src /java /org /nanocontainer
JavaScriptCompositionNanoContainer.java removed after 1.6
diff -N JavaScriptCompositionNanoContainer.java
--- JavaScriptCompositionNanoContainer.java 19 Jan 2004 20:40:24 -0000 1.6
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,66 +0,0 @@
-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- *****************************************************************************/
-package org.nanocontainer;
-
-import org.picoextras.script.rhino.PicoScriptable;
-import org.picoextras.script.rhino.JavascriptContainerAssembler;
-import org.picoextras.integrationkit.PicoAssemblyException;
-import org.picoextras.integrationkit.PicoAssemblyException;
-import org.picocontainer.PicoContainer;
-import org.mozilla.javascript.JavaScriptException;
-
-import java.io.IOException;
-import java.io.Reader;
-import java.io.FileReader;
-/**
- * @deprecated All this Javascript stuff is moved to PicoExtras-Script. We should avoid parallel
- * class hierarchies and use Dependency Injection instead ;-)
- */
-public class JavaScriptCompositionNanoContainer extends NanoContainer {
-
-// private final Class nanoRhinoScriptableClass;
-// private final Reader script;
-//
-// public JavaScriptCompositionNanoContainer(Reader script, NanoContainerMonitor monitor, Class nanoRhinoScriptableClass)
-// throws PicoAssemblyException{
-// super(monitor);
-// this.nanoRhinoScriptableClass = nanoRhinoScriptableClass;
-// this.script = script;
-// init();
-// }
-//
-// public JavaScriptCompositionNanoContainer(Reader script, NanoContainerMonitor monitor)
-// throws PicoAssemblyException{
-// this(script, monitor, PicoScriptable.class);
-// }
-//
-// public JavaScriptCompositionNanoContainer(Reader script)
-// throws PicoAssemblyException{
-// this(script, new NullNanoContainerMonitor());
-// }
-//
-// protected PicoContainer createPicoContainer() throws PicoAssemblyException {
-// try {
-// return new JavascriptContainerAssembler().execute(nanoRhinoScriptableClass, script);
-// } catch (IOException e) {
-// throw new PicoAssemblyException(e);
-// } catch (JavaScriptException e) {
-// throw new PicoAssemblyException(e);
-// }
-// }
-//
-// public static void main(String[] args) throws Exception {
-// String nanoContainerJs = args[0];
-// if (nanoContainerJs == null) {
-// nanoContainerJs = "composition/components.js";
-// }
-// NanoContainer nano = new JavaScriptCompositionNanoContainer(new FileReader(nanoContainerJs));
-// nano.addShutdownHook();
-// }
-}
----------
nano /src /java /org /nanocontainer
JythonCompositionNanoContainer.java removed after 1.4
diff -N JythonCompositionNanoContainer.java
--- JythonCompositionNanoContainer.java 19 Jan 2004 20:40:24 -0000 1.4
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,70 +0,0 @@
-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- *****************************************************************************/
-package org.nanocontainer;
-
-import org.picoextras.reflection.DefaultReflectionContainerAdapter;
-import org.picoextras.reflection.ReflectionContainerAdapter;
-import org.picoextras.integrationkit.PicoAssemblyException;
-import org.picoextras.integrationkit.PicoAssemblyException;
-import org.picocontainer.PicoContainer;
-import org.python.util.PythonInterpreter;
-
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Reader;
-
-/**
- * @author Paul Hammant
- * @author Mike Royle
- * @author Aslak Hellesøy
- *
- * @deprecated All this Jython stuff is moved to PicoExtras-Script. We should avoid parallel
- * class hierarchies and use Dependency Injection instead ;-)
- */
-public class JythonCompositionNanoContainer extends NanoContainer {
-//
-// private ReflectionContainerAdapter reflectionRootContainer;
-// private PythonInterpreter interpreter;
-// private Reader script;
-//
-// public JythonCompositionNanoContainer(Reader script, NanoContainerMonitor monitor)
-// throws PicoAssemblyException{
-// super(monitor);
-// this.script = script;
-// interpreter = new PythonInterpreter();
-// interpreter.exec("from org.picoextras.reflection import DefaultReflectionContainerAdapter");
-// reflectionRootContainer = new DefaultReflectionContainerAdapter();
-// init();
-// }
-//
-// public JythonCompositionNanoContainer(Reader script)
-// throws PicoAssemblyException {
-// this(script, new NullNanoContainerMonitor());
-// }
-//
-// public static void main(String[] args) throws Exception {
-// String nanoContainerPy = args[0];
-// if (nanoContainerPy == null) {
-// nanoContainerPy = "composition/components.py";
-// }
-// NanoContainer nano = new JythonCompositionNanoContainer(new FileReader(nanoContainerPy));
-// nano.addShutdownHook();
-// }
-//
-// protected PicoContainer createPicoContainer() throws PicoAssemblyException {
-// interpreter.set("rootContainer", reflectionRootContainer);
-// interpreter.execfile(new InputStream() {
-// public int read() throws IOException {
-// return script.read();
-// }
-// });
-// return reflectionRootContainer.getPicoContainer();
-// }
-}
----------
nano /src /test /org /nanocontainer
BespokeNanoRhinoScriptable.java removed after 1.7
diff -N BespokeNanoRhinoScriptable.java
--- BespokeNanoRhinoScriptable.java 19 Jan 2004 20:40:24 -0000 1.7
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,38 +0,0 @@
-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- *****************************************************************************/
-
-package org.nanocontainer;
-
-import org.mozilla.javascript.Context;
-import org.mozilla.javascript.Function;
-import org.mozilla.javascript.Scriptable;
-import org.picoextras.script.rhino.PicoScriptable;
-
-
-public class BespokeNanoRhinoScriptable extends PicoScriptable {
-// public static boolean used;
-//
-// public BespokeNanoRhinoScriptable() {
-// used = true;
-// }
-//
-// public static Object jsConstructor(Context cx, Object[] args, Function ctorObj, boolean inNewExpr) {
-// return PicoScriptable.jsConstructor(cx, args, ctorObj, inNewExpr);
-// }
-//
-// public static void jsFunction_registerComponentImplementation(Context cx, Scriptable thisObj, Object[] args, Function funObj)
-// throws ClassNotFoundException {
-// PicoScriptable.jsFunction_registerComponentImplementation(cx, thisObj, args, funObj);
-// }
-//
-// public static void jsFunction_addParent(Context cx, Scriptable thisObj, Object[] args, Function funObj) {
-// PicoScriptable.jsFunction_addParent(cx, thisObj, args, funObj);
-// }
-
-}
----------
nano /src /test /org /nanocontainer
BogusNanoRhinoScriptable.java removed after 1.5
diff -N BogusNanoRhinoScriptable.java
--- BogusNanoRhinoScriptable.java 24 Dec 2003 00:34:25 -0000 1.5
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,25 +0,0 @@
-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- *****************************************************************************/
-
-package org.nanocontainer;
-
-import org.mozilla.javascript.Context;
-import org.mozilla.javascript.Function;
-import org.mozilla.javascript.Scriptable;
-import org.mozilla.javascript.ScriptableObject;
-import org.picoextras.script.rhino.PicoScriptable;
-
-
-public class BogusNanoRhinoScriptable extends ScriptableObject {
- public String getClassName() {
- return "PicoScriptable";
- }
-
- // all pub static javascript methods missing.
-}