Title: [waffle-scm] [790] trunk/examples/jruby-example/src/main/webapp/WEB-INF: Updated RubyPicoContextContainerFactory.createRegistrar to return a RubyScriptedRegistrar

Diff

Modified: trunk/examples/jruby-example/src/main/webapp/WEB-INF/web.xml (789 => 790)

--- trunk/examples/jruby-example/src/main/webapp/WEB-INF/web.xml	2008-08-28 04:14:57 UTC (rev 789)
+++ trunk/examples/jruby-example/src/main/webapp/WEB-INF/web.xml	2008-08-28 04:41:41 UTC (rev 790)
@@ -45,10 +45,10 @@
   </context-param>
 
   <!-- Define a relative path to the ruby script directory (for development) -->
+  <!-- TODO: this needs to be more forgiving -->
   <context-param>
     <param-name>org.codehaus.waffle.ruby.path</param-name>
-    <param-value>dir:../../../target/waffle-jruby-example-1.2-SNAPSHOT/WEB-INF/classes/org/codehaus/waffle</param-value>
-    <!-- TODO: this needs to be more forgiving -->
+    <param-value>dir:../../../examples/jruby-example/src/main/ruby/</param-value>
   </context-param>
 
   <listener>

Modified: trunk/waffle-core/src/main/java/org/codehaus/waffle/context/pico/PicoContextContainerFactory.java (789 => 790)

--- trunk/waffle-core/src/main/java/org/codehaus/waffle/context/pico/PicoContextContainerFactory.java	2008-08-28 04:14:57 UTC (rev 789)
+++ trunk/waffle-core/src/main/java/org/codehaus/waffle/context/pico/PicoContextContainerFactory.java	2008-08-28 04:41:41 UTC (rev 790)
@@ -88,4 +88,20 @@
     private MutablePicoContainer buildMutablePicoContainer(PicoContainer parent) {
         return new DefaultPicoContainer(picoComponentMonitor, picoLifecycleStrategy, parent);
     }
+
+    protected ComponentMonitor getPicoComponentMonitor() {
+        return picoComponentMonitor;
+    }
+
+    protected LifecycleStrategy getPicoLifecycleStrategy() {
+        return picoLifecycleStrategy;
+    }
+
+    protected RegistrarMonitor getRegistrarMonitor() {
+        return registrarMonitor;
+    }
+
+    protected ParameterResolver getParameterResolver() {
+        return parameterResolver;
+    }
 }

Modified: trunk/waffle-ruby/src/main/java/org/codehaus/waffle/context/pico/RubyPicoContextContainerFactory.java (789 => 790)

--- trunk/waffle-ruby/src/main/java/org/codehaus/waffle/context/pico/RubyPicoContextContainerFactory.java	2008-08-28 04:14:57 UTC (rev 789)
+++ trunk/waffle-ruby/src/main/java/org/codehaus/waffle/context/pico/RubyPicoContextContainerFactory.java	2008-08-28 04:41:41 UTC (rev 790)
@@ -8,7 +8,9 @@
 import org.codehaus.waffle.i18n.MessageResources;
 import org.codehaus.waffle.monitor.ContextMonitor;
 import org.codehaus.waffle.monitor.RegistrarMonitor;
+import org.codehaus.waffle.registrar.Registrar;
 import org.codehaus.waffle.registrar.pico.ParameterResolver;
+import org.codehaus.waffle.registrar.pico.RubyScriptedRegistrar;
 import org.jruby.Ruby;
 import static org.picocontainer.Characteristics.CACHE;
 import org.picocontainer.MutablePicoContainer;
@@ -19,6 +21,10 @@
 import java.io.InputStreamReader;
 import java.util.ArrayList;
 
+/**
+ * @author Michael Ward
+ * @author Mauro Talevi
+ */
 public class RubyPicoContextContainerFactory extends ScriptedPicoContextContainerFactory {
 
     public RubyPicoContextContainerFactory(MessageResources messageResources,
@@ -47,6 +53,21 @@
         picoContainer.as(CACHE).addComponent(RubyScriptLoader.class);
     }
 
+    @Override
+    protected Registrar createRegistrar(ContextContainer contextContainer) { // todo we need tests for this ... can this be refactored cleaner?
+        MutablePicoContainer delegateContainer = (MutablePicoContainer) contextContainer.getDelegate();
+        RegistrarMonitor registrarMonitor = getRegistrarMonitor();
+
+        Registrar registrar = new RubyScriptedRegistrar(delegateContainer,
+                                                        getParameterResolver(),
+                                                        getPicoLifecycleStrategy(),
+                                                        registrarMonitor,
+                                                        getPicoComponentMonitor());
+
+        getContextMonitor().registrarCreated(registrar, registrarMonitor);
+        return registrar;
+    }
+
     private void loadRubyScriptFromClassLoader(String fileName, Ruby runtime) {
         BufferedReader bufferedReader = null;
         InputStream inputStream = null;

Modified: trunk/waffle-ruby/src/main/java/org/codehaus/waffle/registrar/pico/RubyScriptedRegistrar.java (789 => 790)

--- trunk/waffle-ruby/src/main/java/org/codehaus/waffle/registrar/pico/RubyScriptedRegistrar.java	2008-08-28 04:14:57 UTC (rev 789)
+++ trunk/waffle-ruby/src/main/java/org/codehaus/waffle/registrar/pico/RubyScriptedRegistrar.java	2008-08-28 04:41:41 UTC (rev 790)
@@ -7,7 +7,6 @@
 import org.picocontainer.ComponentMonitor;
 import org.picocontainer.LifecycleStrategy;
 import org.picocontainer.MutablePicoContainer;
-import org.picocontainer.behaviors.Cached;
 
 /**
  * Pico-based ScriptedRegistrar that allows to register Ruby scripts
@@ -29,5 +28,4 @@
         this.registerCachedComponentAdapter(new RubyScriptComponentAdapter(key, className));
     }
 
-
 }


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to